diff --git a/.editorconfig b/.editorconfig index af1a28411da9..e5e9997f44fa 100644 --- a/.editorconfig +++ b/.editorconfig @@ -1,38 +1,142 @@ -# top-most EditorConfig file for gcc +# Copyright 2025 Free Software Foundation, Inc. +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see . + +# This file helps editors auto-configure whitespace settings. +# +# See here for more information about the format and editor support: +# +# https://editorconfig.org/ + +# This file is common to the GCC and GDB/Binutils projects. If you +# update one, please sync it with the other. + +# top-most EditorConfig file root = true [*] end_of_line = lf insert_final_newline = true +tab_width = 8 -[*.{h,cc}] +# EditorConfig files +[.editorconfig] charset = utf-8 -indent_style = tab -indent_size = 2 -tab_width = 8 trim_trailing_whitespace = true -[{Makefile,ChangeLog}*] +# Makefile +[{Makefile,*.mk,*.am}*] indent_style = tab indent_size = 8 trim_trailing_whitespace = true +# ChangeLogs [ChangeLog*] +indent_style = tab +indent_size = 8 +trim_trailing_whitespace = true +charset = utf-8 + +# C/C++ +[*.{c,h,cc}] charset = utf-8 +indent_style = tab +indent_size = 2 +trim_trailing_whitespace = true +# GCC .def files. These are generally C fragments that get included +# one or more times +[gcc/**.def] +charset = utf-8 +indent_style = tab +indent_size = 2 +trim_trailing_whitespace = true + +# Texinfo files [*.texi] charset = utf-8 indent_size = 2 -tab_width = 8 trim_trailing_whitespace = true +# Expect / TCL +[*.{exp,tcl}] +indent_style = tab +indent_size = 4 +trim_trailing_whitespace = true + +# Python [*.py] indent_style = space indent_size = 4 trim_trailing_whitespace = true -[*.exp] +# Assembler +[*.{s,S,asm}] +indent_style = tab +indent_size = 8 +trim_trailing_whitespace = true + +# GCC Machine description files +[gcc/config/**.md] +indent_style = tab +indent_size = 2 +trim_trailing_whitespace = true + +# Awk +[*.awk] +indent_style = tab +indent_size = 2 +trim_trailing_whitespace = true + +# Autoconf +[*.{ac,m4}] +indent_style = tab +indent_size = 2 +trim_trailing_whitespace = true + +# Shell scripts +[*.sh] indent_style = tab indent_size = 4 -tab_width = 8 +trim_trailing_whitespace = true + +# Ada +[*.ad[bs]] +indent_style = space +indent_size = 3 +trim_trailing_whitespace = true + +# D +[*.d] +indent_style = space +indent_size = 4 +trim_trailing_whitespace = true + +# Go +[*.go] +indent_style = tab +indent_size = 8 +trim_trailing_whitespace = true + +# Fortran +[*.[Ff]90] +indent_style = space +indent_size = 2 +trim_trailing_whitespace = true + +# Cobol +[*.cbl] +indent_style = space +indent_size = 2 trim_trailing_whitespace = true diff --git a/ChangeLog b/ChangeLog index 31d659802b9a..805299d1e39f 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,27 @@ +2025-10-09 Prathamesh Kulkarni + Matthew Malcolmson + + PR driver/81358 + * Makefile.def: Add no_atomic=true for libraries that don't depend on + libatomic. + * Makefile.tpl: Export TARGET_CONFIGDIRS and create rule to + add dependencies for libatomic. + * configure.ac: Add libatomic to bootstrap_target_libs. + * Makefile.in: Regenerate. + * configure: Regenerate. + +2025-10-02 H.J. Lu + + * Makefile.in: Regenerated. + * configure: Likewise. + * Makefile.tpl: Synced from binutils-gdb. + * configure.ac: Likewise. + * libtool.m4: Likewise. + +2025-10-01 Richard Earnshaw + + * .editorconfig: Unify the GCC and GDB/binutils root config. + 2025-09-23 Richard Earnshaw * .editorconfig: Fix glob patterns. diff --git a/Makefile.def b/Makefile.def index fa60f6ea0b90..e7f33345aa82 100644 --- a/Makefile.def +++ b/Makefile.def @@ -313,7 +313,6 @@ flags_to_pass = { flag= GNATBIND ; }; flags_to_pass = { flag= GNATMAKE ; }; flags_to_pass = { flag= GDC ; }; flags_to_pass = { flag= GDCFLAGS ; }; -flags_to_pass = { flag= GUILE ; }; // Target tools flags_to_pass = { flag= AR_FOR_TARGET ; }; @@ -463,9 +462,11 @@ dependencies = { module=all-gdb; on=all-libbacktrace; }; // Host modules specific to gdbserver. dependencies = { module=configure-gdbserver; on=all-gnulib; }; +dependencies = { module=configure-gdbserver; on=all-libiconv; }; dependencies = { module=all-gdbserver; on=all-gdbsupport; }; dependencies = { module=all-gdbserver; on=all-gnulib; }; dependencies = { module=all-gdbserver; on=all-libiberty; }; +dependencies = { module=all-gdbserver; on=all-libiconv; }; dependencies = { module=configure-libgui; on=configure-tcl; }; dependencies = { module=configure-libgui; on=configure-tk; }; @@ -524,7 +525,7 @@ dependencies = { module=install-bfd; on=install-libsframe; }; dependencies = { module=install-strip-bfd; on=install-strip-libsframe; }; // libopcodes depends on libbfd -dependencies = { module=configure-opcodes; on=configure-bfd; hard=true; }; +dependencies = { module=configure-opcodes; on=all-bfd; hard=true; }; dependencies = { module=install-opcodes; on=install-bfd; }; dependencies = { module=install-strip-opcodes; on=install-strip-bfd; }; @@ -550,8 +551,8 @@ dependencies = { module=install-gprofng; on=install-opcodes; }; dependencies = { module=install-gprofng; on=install-bfd; }; dependencies = { module=configure-ld; on=configure-gettext; }; +dependencies = { module=configure-ld; on=all-bfd; }; dependencies = { module=all-ld; on=all-libiberty; }; -dependencies = { module=all-ld; on=all-bfd; }; dependencies = { module=all-ld; on=all-opcodes; }; dependencies = { module=all-ld; on=all-build-bison; }; dependencies = { module=all-ld; on=all-build-flex; }; @@ -649,14 +650,15 @@ dependencies = { module=all-m4; on=all-build-texinfo; }; // on libgcc and newlib/libgloss. lang_env_dependencies = { module=libitm; cxx=true; }; lang_env_dependencies = { module=libffi; cxx=true; }; -lang_env_dependencies = { module=newlib; no_c=true; }; -lang_env_dependencies = { module=libgloss; no_c=true; }; -lang_env_dependencies = { module=libgcc; no_gcc=true; no_c=true; }; +lang_env_dependencies = { module=newlib; no_c=true; no_atomic=true; }; +lang_env_dependencies = { module=libgloss; no_c=true; no_atomic=true; }; +lang_env_dependencies = { module=libgcc; no_gcc=true; no_c=true; no_atomic=true; }; // libiberty does not depend on newlib or libgloss because it must be // built newlib on some targets (e.g. Cygwin). It still needs // a dependency on libgcc for native targets to configure. -lang_env_dependencies = { module=libiberty; no_c=true; }; -lang_env_dependencies = { module=libgcobol; cxx=true; }; +lang_env_dependencies = { module=libiberty; no_c=true; no_atomic=true; }; +lang_env_dependencies = { module=libgcobol; cxx=true; no_atomic=true; }; +lang_env_dependencies = { module=libatomic; no_atomic=true; }; dependencies = { module=configure-target-fastjar; on=configure-target-zlib; }; dependencies = { module=all-target-fastjar; on=all-target-zlib; }; diff --git a/Makefile.in b/Makefile.in index 12d4395d8e2f..8ac778a0e09c 100644 --- a/Makefile.in +++ b/Makefile.in @@ -3,7 +3,7 @@ # # Makefile for directory with subdirs to build. # Copyright (C) 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, -# 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2023 +# 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 # Free Software Foundation # # This file is free software; you can redistribute it and/or modify @@ -144,8 +144,7 @@ BASE_EXPORTS = \ M4="$(M4)"; export M4; \ SED="$(SED)"; export SED; \ AWK="$(AWK)"; export AWK; \ - MAKEINFO="$(MAKEINFO)"; export MAKEINFO; \ - GUILE="$(GUILE)"; export GUILE; + MAKEINFO="$(MAKEINFO)"; export MAKEINFO; # This is the list of variables to export in the environment when # configuring subdirectories for the build system. @@ -244,6 +243,7 @@ HOST_EXPORTS = \ GMPINC="$(HOST_GMPINC)"; export GMPINC; \ ISLLIBS="$(HOST_ISLLIBS)"; export ISLLIBS; \ ISLINC="$(HOST_ISLINC)"; export ISLINC; \ + TARGET_CONFIGDIRS="$(TARGET_CONFIGDIRS)"; export TARGET_CONFIGDIRS; \ XGCC_FLAGS_FOR_TARGET="$(XGCC_FLAGS_FOR_TARGET)"; export XGCC_FLAGS_FOR_TARGET; \ @if gcc-bootstrap $(RPATH_ENVVAR)=`echo "$(TARGET_LIB_PATH)$$$(RPATH_ENVVAR)" | sed 's,::*,:,g;s,^:*,,;s,:*$$,,'`; export $(RPATH_ENVVAR); \ @@ -434,7 +434,7 @@ DLLTOOL = @DLLTOOL@ DSYMUTIL = @DSYMUTIL@ LD = @LD@ LIPO = @LIPO@ -NM = @NM@ +NM = @NM@ @NM_PLUGIN_OPTION@ OBJDUMP = @OBJDUMP@ OTOOL = @OTOOL@ RANLIB = @RANLIB@ @RANLIB_PLUGIN_OPTION@ @@ -460,8 +460,6 @@ CRAB1_LIBS = @CRAB1_LIBS@ PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ -GUILE = guile - # Pass additional PGO and LTO compiler options to the PGO build. BUILD_CFLAGS = $(PGO_BUILD_CFLAGS) $(PGO_BUILD_LTO_CFLAGS) override CFLAGS += $(BUILD_CFLAGS) @@ -667,7 +665,7 @@ do-compare3 = $(do-compare) # Programs producing files for the TARGET machine # ----------------------------------------------- -AR_FOR_TARGET=@AR_FOR_TARGET@ +AR_FOR_TARGET=@AR_FOR_TARGET@ @AR_PLUGIN_OPTION_FOR_TARGET@ AS_FOR_TARGET=@AS_FOR_TARGET@ CC_FOR_TARGET=$(STAGE_CC_WRAPPER) @CC_FOR_TARGET@ @@ -687,11 +685,11 @@ DSYMUTIL_FOR_TARGET=@DSYMUTIL_FOR_TARGET@ LD_FOR_TARGET=@LD_FOR_TARGET@ LIPO_FOR_TARGET=@LIPO_FOR_TARGET@ -NM_FOR_TARGET=@NM_FOR_TARGET@ +NM_FOR_TARGET=@NM_FOR_TARGET@ @NM_PLUGIN_OPTION_FOR_TARGET@ OBJDUMP_FOR_TARGET=@OBJDUMP_FOR_TARGET@ OBJCOPY_FOR_TARGET=@OBJCOPY_FOR_TARGET@ OTOOL_FOR_TARGET=@OTOOL_FOR_TARGET@ -RANLIB_FOR_TARGET=@RANLIB_FOR_TARGET@ +RANLIB_FOR_TARGET=@RANLIB_FOR_TARGET@ @RANLIB_PLUGIN_OPTION_FOR_TARGET@ READELF_FOR_TARGET=@READELF_FOR_TARGET@ STRIP_FOR_TARGET=@STRIP_FOR_TARGET@ WINDRES_FOR_TARGET=@WINDRES_FOR_TARGET@ @@ -891,7 +889,6 @@ BASE_FLAGS_TO_PASS = \ "GNATMAKE=$(GNATMAKE)" \ "GDC=$(GDC)" \ "GDCFLAGS=$(GDCFLAGS)" \ - "GUILE=$(GUILE)" \ "AR_FOR_TARGET=$(AR_FOR_TARGET)" \ "AS_FOR_TARGET=$(AS_FOR_TARGET)" \ "CC_FOR_TARGET=$(CC_FOR_TARGET)" \ @@ -68682,16 +68679,16 @@ install-strip-ld: maybe-install-strip-bfd install-strip-ld: maybe-install-strip-libctf install-bfd: maybe-install-libsframe install-strip-bfd: maybe-install-strip-libsframe -configure-opcodes: configure-bfd -configure-stage1-opcodes: configure-stage1-bfd -configure-stage2-opcodes: configure-stage2-bfd -configure-stage3-opcodes: configure-stage3-bfd -configure-stage4-opcodes: configure-stage4-bfd -configure-stageprofile-opcodes: configure-stageprofile-bfd -configure-stagetrain-opcodes: configure-stagetrain-bfd -configure-stagefeedback-opcodes: configure-stagefeedback-bfd -configure-stageautoprofile-opcodes: configure-stageautoprofile-bfd -configure-stageautofeedback-opcodes: configure-stageautofeedback-bfd +configure-opcodes: all-bfd +configure-stage1-opcodes: all-stage1-bfd +configure-stage2-opcodes: all-stage2-bfd +configure-stage3-opcodes: all-stage3-bfd +configure-stage4-opcodes: all-stage4-bfd +configure-stageprofile-opcodes: all-stageprofile-bfd +configure-stagetrain-opcodes: all-stagetrain-bfd +configure-stagefeedback-opcodes: all-stagefeedback-bfd +configure-stageautoprofile-opcodes: all-stageautoprofile-bfd +configure-stageautofeedback-opcodes: all-stageautofeedback-bfd install-opcodes: maybe-install-bfd install-strip-opcodes: maybe-install-strip-bfd configure-gas: maybe-configure-gettext @@ -68756,6 +68753,16 @@ configure-stagetrain-ld: maybe-configure-stagetrain-gettext configure-stagefeedback-ld: maybe-configure-stagefeedback-gettext configure-stageautoprofile-ld: maybe-configure-stageautoprofile-gettext configure-stageautofeedback-ld: maybe-configure-stageautofeedback-gettext +configure-ld: maybe-all-bfd +configure-stage1-ld: maybe-all-stage1-bfd +configure-stage2-ld: maybe-all-stage2-bfd +configure-stage3-ld: maybe-all-stage3-bfd +configure-stage4-ld: maybe-all-stage4-bfd +configure-stageprofile-ld: maybe-all-stageprofile-bfd +configure-stagetrain-ld: maybe-all-stagetrain-bfd +configure-stagefeedback-ld: maybe-all-stagefeedback-bfd +configure-stageautoprofile-ld: maybe-all-stageautoprofile-bfd +configure-stageautofeedback-ld: maybe-all-stageautofeedback-bfd all-ld: maybe-all-libiberty all-stage1-ld: maybe-all-stage1-libiberty all-stage2-ld: maybe-all-stage2-libiberty @@ -68766,16 +68773,6 @@ all-stagetrain-ld: maybe-all-stagetrain-libiberty all-stagefeedback-ld: maybe-all-stagefeedback-libiberty all-stageautoprofile-ld: maybe-all-stageautoprofile-libiberty all-stageautofeedback-ld: maybe-all-stageautofeedback-libiberty -all-ld: maybe-all-bfd -all-stage1-ld: maybe-all-stage1-bfd -all-stage2-ld: maybe-all-stage2-bfd -all-stage3-ld: maybe-all-stage3-bfd -all-stage4-ld: maybe-all-stage4-bfd -all-stageprofile-ld: maybe-all-stageprofile-bfd -all-stagetrain-ld: maybe-all-stagetrain-bfd -all-stagefeedback-ld: maybe-all-stagefeedback-bfd -all-stageautoprofile-ld: maybe-all-stageautoprofile-bfd -all-stageautofeedback-ld: maybe-all-stageautofeedback-bfd all-ld: maybe-all-opcodes all-stage1-ld: maybe-all-stage1-opcodes all-stage2-ld: maybe-all-stage2-opcodes @@ -69249,7 +69246,9 @@ all-gdb: maybe-all-opcodes all-gdb: maybe-all-libdecnumber all-gdb: maybe-all-libctf all-gdb: maybe-all-libbacktrace +configure-gdbserver: maybe-all-libiconv all-gdbserver: maybe-all-libiberty +all-gdbserver: maybe-all-libiconv configure-gdbsupport: maybe-configure-gettext all-gdbsupport: maybe-all-gettext configure-gprof: maybe-configure-gettext @@ -69401,54 +69400,3332 @@ configure-target-libgcobol: maybe-all-target-libgcc configure-target-libstdc++-v3: maybe-all-target-newlib maybe-all-target-libgloss +@if gcc-bootstrap +configure-stage1-target-libstdc++-v3: maybe-all-stage1-target-libatomic +configure-stage2-target-libstdc++-v3: maybe-all-stage2-target-libatomic +configure-stage3-target-libstdc++-v3: maybe-all-stage3-target-libatomic +configure-stage4-target-libstdc++-v3: maybe-all-stage4-target-libatomic +configure-stageprofile-target-libstdc++-v3: maybe-all-stageprofile-target-libatomic +configure-stagetrain-target-libstdc++-v3: maybe-all-stagetrain-target-libatomic +configure-stagefeedback-target-libstdc++-v3: maybe-all-stagefeedback-target-libatomic +configure-stageautoprofile-target-libstdc++-v3: maybe-all-stageautoprofile-target-libatomic +configure-stageautofeedback-target-libstdc++-v3: maybe-all-stageautofeedback-target-libatomic +configure-stage1-target-libsanitizer: maybe-all-stage1-target-libatomic +configure-stage2-target-libsanitizer: maybe-all-stage2-target-libatomic +configure-stage3-target-libsanitizer: maybe-all-stage3-target-libatomic +configure-stage4-target-libsanitizer: maybe-all-stage4-target-libatomic +configure-stageprofile-target-libsanitizer: maybe-all-stageprofile-target-libatomic +configure-stagetrain-target-libsanitizer: maybe-all-stagetrain-target-libatomic +configure-stagefeedback-target-libsanitizer: maybe-all-stagefeedback-target-libatomic +configure-stageautoprofile-target-libsanitizer: maybe-all-stageautoprofile-target-libatomic +configure-stageautofeedback-target-libsanitizer: maybe-all-stageautofeedback-target-libatomic +configure-stage1-target-libvtv: maybe-all-stage1-target-libatomic +configure-stage2-target-libvtv: maybe-all-stage2-target-libatomic +configure-stage3-target-libvtv: maybe-all-stage3-target-libatomic +configure-stage4-target-libvtv: maybe-all-stage4-target-libatomic +configure-stageprofile-target-libvtv: maybe-all-stageprofile-target-libatomic +configure-stagetrain-target-libvtv: maybe-all-stagetrain-target-libatomic +configure-stagefeedback-target-libvtv: maybe-all-stagefeedback-target-libatomic +configure-stageautoprofile-target-libvtv: maybe-all-stageautoprofile-target-libatomic +configure-stageautofeedback-target-libvtv: maybe-all-stageautofeedback-target-libatomic +configure-stage1-target-libssp: maybe-all-stage1-target-libatomic +configure-stage2-target-libssp: maybe-all-stage2-target-libatomic +configure-stage3-target-libssp: maybe-all-stage3-target-libatomic +configure-stage4-target-libssp: maybe-all-stage4-target-libatomic +configure-stageprofile-target-libssp: maybe-all-stageprofile-target-libatomic +configure-stagetrain-target-libssp: maybe-all-stagetrain-target-libatomic +configure-stagefeedback-target-libssp: maybe-all-stagefeedback-target-libatomic +configure-stageautoprofile-target-libssp: maybe-all-stageautoprofile-target-libatomic +configure-stageautofeedback-target-libssp: maybe-all-stageautofeedback-target-libatomic +configure-stage1-target-libbacktrace: maybe-all-stage1-target-libatomic +configure-stage2-target-libbacktrace: maybe-all-stage2-target-libatomic +configure-stage3-target-libbacktrace: maybe-all-stage3-target-libatomic +configure-stage4-target-libbacktrace: maybe-all-stage4-target-libatomic +configure-stageprofile-target-libbacktrace: maybe-all-stageprofile-target-libatomic +configure-stagetrain-target-libbacktrace: maybe-all-stagetrain-target-libatomic +configure-stagefeedback-target-libbacktrace: maybe-all-stagefeedback-target-libatomic +configure-stageautoprofile-target-libbacktrace: maybe-all-stageautoprofile-target-libatomic +configure-stageautofeedback-target-libbacktrace: maybe-all-stageautofeedback-target-libatomic +configure-stage1-target-libquadmath: maybe-all-stage1-target-libatomic +configure-stage2-target-libquadmath: maybe-all-stage2-target-libatomic +configure-stage3-target-libquadmath: maybe-all-stage3-target-libatomic +configure-stage4-target-libquadmath: maybe-all-stage4-target-libatomic +configure-stageprofile-target-libquadmath: maybe-all-stageprofile-target-libatomic +configure-stagetrain-target-libquadmath: maybe-all-stagetrain-target-libatomic +configure-stagefeedback-target-libquadmath: maybe-all-stagefeedback-target-libatomic +configure-stageautoprofile-target-libquadmath: maybe-all-stageautoprofile-target-libatomic +configure-stageautofeedback-target-libquadmath: maybe-all-stageautofeedback-target-libatomic +configure-stage1-target-libgfortran: maybe-all-stage1-target-libatomic +configure-stage2-target-libgfortran: maybe-all-stage2-target-libatomic +configure-stage3-target-libgfortran: maybe-all-stage3-target-libatomic +configure-stage4-target-libgfortran: maybe-all-stage4-target-libatomic +configure-stageprofile-target-libgfortran: maybe-all-stageprofile-target-libatomic +configure-stagetrain-target-libgfortran: maybe-all-stagetrain-target-libatomic +configure-stagefeedback-target-libgfortran: maybe-all-stagefeedback-target-libatomic +configure-stageautoprofile-target-libgfortran: maybe-all-stageautoprofile-target-libatomic +configure-stageautofeedback-target-libgfortran: maybe-all-stageautofeedback-target-libatomic +configure-stage1-target-libobjc: maybe-all-stage1-target-libatomic +configure-stage2-target-libobjc: maybe-all-stage2-target-libatomic +configure-stage3-target-libobjc: maybe-all-stage3-target-libatomic +configure-stage4-target-libobjc: maybe-all-stage4-target-libatomic +configure-stageprofile-target-libobjc: maybe-all-stageprofile-target-libatomic +configure-stagetrain-target-libobjc: maybe-all-stagetrain-target-libatomic +configure-stagefeedback-target-libobjc: maybe-all-stagefeedback-target-libatomic +configure-stageautoprofile-target-libobjc: maybe-all-stageautoprofile-target-libatomic +configure-stageautofeedback-target-libobjc: maybe-all-stageautofeedback-target-libatomic +configure-stage1-target-libgo: maybe-all-stage1-target-libatomic +configure-stage2-target-libgo: maybe-all-stage2-target-libatomic +configure-stage3-target-libgo: maybe-all-stage3-target-libatomic +configure-stage4-target-libgo: maybe-all-stage4-target-libatomic +configure-stageprofile-target-libgo: maybe-all-stageprofile-target-libatomic +configure-stagetrain-target-libgo: maybe-all-stagetrain-target-libatomic +configure-stagefeedback-target-libgo: maybe-all-stagefeedback-target-libatomic +configure-stageautoprofile-target-libgo: maybe-all-stageautoprofile-target-libatomic +configure-stageautofeedback-target-libgo: maybe-all-stageautofeedback-target-libatomic +configure-stage1-target-libphobos: maybe-all-stage1-target-libatomic +configure-stage2-target-libphobos: maybe-all-stage2-target-libatomic +configure-stage3-target-libphobos: maybe-all-stage3-target-libatomic +configure-stage4-target-libphobos: maybe-all-stage4-target-libatomic +configure-stageprofile-target-libphobos: maybe-all-stageprofile-target-libatomic +configure-stagetrain-target-libphobos: maybe-all-stagetrain-target-libatomic +configure-stagefeedback-target-libphobos: maybe-all-stagefeedback-target-libatomic +configure-stageautoprofile-target-libphobos: maybe-all-stageautoprofile-target-libatomic +configure-stageautofeedback-target-libphobos: maybe-all-stageautofeedback-target-libatomic +configure-stage1-target-libtermcap: maybe-all-stage1-target-libatomic +configure-stage2-target-libtermcap: maybe-all-stage2-target-libatomic +configure-stage3-target-libtermcap: maybe-all-stage3-target-libatomic +configure-stage4-target-libtermcap: maybe-all-stage4-target-libatomic +configure-stageprofile-target-libtermcap: maybe-all-stageprofile-target-libatomic +configure-stagetrain-target-libtermcap: maybe-all-stagetrain-target-libatomic +configure-stagefeedback-target-libtermcap: maybe-all-stagefeedback-target-libatomic +configure-stageautoprofile-target-libtermcap: maybe-all-stageautoprofile-target-libatomic +configure-stageautofeedback-target-libtermcap: maybe-all-stageautofeedback-target-libatomic +configure-stage1-target-winsup: maybe-all-stage1-target-libatomic +configure-stage2-target-winsup: maybe-all-stage2-target-libatomic +configure-stage3-target-winsup: maybe-all-stage3-target-libatomic +configure-stage4-target-winsup: maybe-all-stage4-target-libatomic +configure-stageprofile-target-winsup: maybe-all-stageprofile-target-libatomic +configure-stagetrain-target-winsup: maybe-all-stagetrain-target-libatomic +configure-stagefeedback-target-winsup: maybe-all-stagefeedback-target-libatomic +configure-stageautoprofile-target-winsup: maybe-all-stageautoprofile-target-libatomic +configure-stageautofeedback-target-winsup: maybe-all-stageautofeedback-target-libatomic +configure-stage1-target-libffi: maybe-all-stage1-target-libatomic +configure-stage2-target-libffi: maybe-all-stage2-target-libatomic +configure-stage3-target-libffi: maybe-all-stage3-target-libatomic +configure-stage4-target-libffi: maybe-all-stage4-target-libatomic +configure-stageprofile-target-libffi: maybe-all-stageprofile-target-libatomic +configure-stagetrain-target-libffi: maybe-all-stagetrain-target-libatomic +configure-stagefeedback-target-libffi: maybe-all-stagefeedback-target-libatomic +configure-stageautoprofile-target-libffi: maybe-all-stageautoprofile-target-libatomic +configure-stageautofeedback-target-libffi: maybe-all-stageautofeedback-target-libatomic +configure-stage1-target-zlib: maybe-all-stage1-target-libatomic +configure-stage2-target-zlib: maybe-all-stage2-target-libatomic +configure-stage3-target-zlib: maybe-all-stage3-target-libatomic +configure-stage4-target-zlib: maybe-all-stage4-target-libatomic +configure-stageprofile-target-zlib: maybe-all-stageprofile-target-libatomic +configure-stagetrain-target-zlib: maybe-all-stagetrain-target-libatomic +configure-stagefeedback-target-zlib: maybe-all-stagefeedback-target-libatomic +configure-stageautoprofile-target-zlib: maybe-all-stageautoprofile-target-libatomic +configure-stageautofeedback-target-zlib: maybe-all-stageautofeedback-target-libatomic +configure-stage1-target-rda: maybe-all-stage1-target-libatomic +configure-stage2-target-rda: maybe-all-stage2-target-libatomic +configure-stage3-target-rda: maybe-all-stage3-target-libatomic +configure-stage4-target-rda: maybe-all-stage4-target-libatomic +configure-stageprofile-target-rda: maybe-all-stageprofile-target-libatomic +configure-stagetrain-target-rda: maybe-all-stagetrain-target-libatomic +configure-stagefeedback-target-rda: maybe-all-stagefeedback-target-libatomic +configure-stageautoprofile-target-rda: maybe-all-stageautoprofile-target-libatomic +configure-stageautofeedback-target-rda: maybe-all-stageautofeedback-target-libatomic +configure-stage1-target-libada: maybe-all-stage1-target-libatomic +configure-stage2-target-libada: maybe-all-stage2-target-libatomic +configure-stage3-target-libada: maybe-all-stage3-target-libatomic +configure-stage4-target-libada: maybe-all-stage4-target-libatomic +configure-stageprofile-target-libada: maybe-all-stageprofile-target-libatomic +configure-stagetrain-target-libada: maybe-all-stagetrain-target-libatomic +configure-stagefeedback-target-libada: maybe-all-stagefeedback-target-libatomic +configure-stageautoprofile-target-libada: maybe-all-stageautoprofile-target-libatomic +configure-stageautofeedback-target-libada: maybe-all-stageautofeedback-target-libatomic +configure-stage1-target-libgm2: maybe-all-stage1-target-libatomic +configure-stage2-target-libgm2: maybe-all-stage2-target-libatomic +configure-stage3-target-libgm2: maybe-all-stage3-target-libatomic +configure-stage4-target-libgm2: maybe-all-stage4-target-libatomic +configure-stageprofile-target-libgm2: maybe-all-stageprofile-target-libatomic +configure-stagetrain-target-libgm2: maybe-all-stagetrain-target-libatomic +configure-stagefeedback-target-libgm2: maybe-all-stagefeedback-target-libatomic +configure-stageautoprofile-target-libgm2: maybe-all-stageautoprofile-target-libatomic +configure-stageautofeedback-target-libgm2: maybe-all-stageautofeedback-target-libatomic +configure-stage1-target-libgomp: maybe-all-stage1-target-libatomic +configure-stage2-target-libgomp: maybe-all-stage2-target-libatomic +configure-stage3-target-libgomp: maybe-all-stage3-target-libatomic +configure-stage4-target-libgomp: maybe-all-stage4-target-libatomic +configure-stageprofile-target-libgomp: maybe-all-stageprofile-target-libatomic +configure-stagetrain-target-libgomp: maybe-all-stagetrain-target-libatomic +configure-stagefeedback-target-libgomp: maybe-all-stagefeedback-target-libatomic +configure-stageautoprofile-target-libgomp: maybe-all-stageautoprofile-target-libatomic +configure-stageautofeedback-target-libgomp: maybe-all-stageautofeedback-target-libatomic +configure-stage1-target-libitm: maybe-all-stage1-target-libatomic +configure-stage2-target-libitm: maybe-all-stage2-target-libatomic +configure-stage3-target-libitm: maybe-all-stage3-target-libatomic +configure-stage4-target-libitm: maybe-all-stage4-target-libatomic +configure-stageprofile-target-libitm: maybe-all-stageprofile-target-libatomic +configure-stagetrain-target-libitm: maybe-all-stagetrain-target-libatomic +configure-stagefeedback-target-libitm: maybe-all-stagefeedback-target-libatomic +configure-stageautoprofile-target-libitm: maybe-all-stageautoprofile-target-libatomic +configure-stageautofeedback-target-libitm: maybe-all-stageautofeedback-target-libatomic +configure-stage1-target-libgrust: maybe-all-stage1-target-libatomic +configure-stage2-target-libgrust: maybe-all-stage2-target-libatomic +configure-stage3-target-libgrust: maybe-all-stage3-target-libatomic +configure-stage4-target-libgrust: maybe-all-stage4-target-libatomic +configure-stageprofile-target-libgrust: maybe-all-stageprofile-target-libatomic +configure-stagetrain-target-libgrust: maybe-all-stagetrain-target-libatomic +configure-stagefeedback-target-libgrust: maybe-all-stagefeedback-target-libatomic +configure-stageautoprofile-target-libgrust: maybe-all-stageautoprofile-target-libatomic +configure-stageautofeedback-target-libgrust: maybe-all-stageautofeedback-target-libatomic +@endif gcc-bootstrap + +@if gcc-no-bootstrap +configure-target-libstdc++-v3: maybe-all-target-libatomic +configure-target-libsanitizer: maybe-all-target-libatomic +configure-target-libvtv: maybe-all-target-libatomic +configure-target-libssp: maybe-all-target-libatomic +configure-target-libbacktrace: maybe-all-target-libatomic +configure-target-libquadmath: maybe-all-target-libatomic +configure-target-libgfortran: maybe-all-target-libatomic +configure-target-libobjc: maybe-all-target-libatomic +configure-target-libgo: maybe-all-target-libatomic +configure-target-libphobos: maybe-all-target-libatomic +configure-target-libtermcap: maybe-all-target-libatomic +configure-target-winsup: maybe-all-target-libatomic +configure-target-libffi: maybe-all-target-libatomic +configure-target-zlib: maybe-all-target-libatomic +configure-target-rda: maybe-all-target-libatomic +configure-target-libada: maybe-all-target-libatomic +configure-target-libgm2: maybe-all-target-libatomic +configure-target-libgomp: maybe-all-target-libatomic +configure-target-libitm: maybe-all-target-libatomic +configure-target-libgrust: maybe-all-target-libatomic +@endif gcc-no-bootstrap + configure-target-libsanitizer: maybe-all-target-newlib maybe-all-target-libgloss +@if gcc-bootstrap +configure-stage1-target-libstdc++-v3: maybe-all-stage1-target-libatomic +configure-stage2-target-libstdc++-v3: maybe-all-stage2-target-libatomic +configure-stage3-target-libstdc++-v3: maybe-all-stage3-target-libatomic +configure-stage4-target-libstdc++-v3: maybe-all-stage4-target-libatomic +configure-stageprofile-target-libstdc++-v3: maybe-all-stageprofile-target-libatomic +configure-stagetrain-target-libstdc++-v3: maybe-all-stagetrain-target-libatomic +configure-stagefeedback-target-libstdc++-v3: maybe-all-stagefeedback-target-libatomic +configure-stageautoprofile-target-libstdc++-v3: maybe-all-stageautoprofile-target-libatomic +configure-stageautofeedback-target-libstdc++-v3: maybe-all-stageautofeedback-target-libatomic +configure-stage1-target-libsanitizer: maybe-all-stage1-target-libatomic +configure-stage2-target-libsanitizer: maybe-all-stage2-target-libatomic +configure-stage3-target-libsanitizer: maybe-all-stage3-target-libatomic +configure-stage4-target-libsanitizer: maybe-all-stage4-target-libatomic +configure-stageprofile-target-libsanitizer: maybe-all-stageprofile-target-libatomic +configure-stagetrain-target-libsanitizer: maybe-all-stagetrain-target-libatomic +configure-stagefeedback-target-libsanitizer: maybe-all-stagefeedback-target-libatomic +configure-stageautoprofile-target-libsanitizer: maybe-all-stageautoprofile-target-libatomic +configure-stageautofeedback-target-libsanitizer: maybe-all-stageautofeedback-target-libatomic +configure-stage1-target-libvtv: maybe-all-stage1-target-libatomic +configure-stage2-target-libvtv: maybe-all-stage2-target-libatomic +configure-stage3-target-libvtv: maybe-all-stage3-target-libatomic +configure-stage4-target-libvtv: maybe-all-stage4-target-libatomic +configure-stageprofile-target-libvtv: maybe-all-stageprofile-target-libatomic +configure-stagetrain-target-libvtv: maybe-all-stagetrain-target-libatomic +configure-stagefeedback-target-libvtv: maybe-all-stagefeedback-target-libatomic +configure-stageautoprofile-target-libvtv: maybe-all-stageautoprofile-target-libatomic +configure-stageautofeedback-target-libvtv: maybe-all-stageautofeedback-target-libatomic +configure-stage1-target-libssp: maybe-all-stage1-target-libatomic +configure-stage2-target-libssp: maybe-all-stage2-target-libatomic +configure-stage3-target-libssp: maybe-all-stage3-target-libatomic +configure-stage4-target-libssp: maybe-all-stage4-target-libatomic +configure-stageprofile-target-libssp: maybe-all-stageprofile-target-libatomic +configure-stagetrain-target-libssp: maybe-all-stagetrain-target-libatomic +configure-stagefeedback-target-libssp: maybe-all-stagefeedback-target-libatomic +configure-stageautoprofile-target-libssp: maybe-all-stageautoprofile-target-libatomic +configure-stageautofeedback-target-libssp: maybe-all-stageautofeedback-target-libatomic +configure-stage1-target-libbacktrace: maybe-all-stage1-target-libatomic +configure-stage2-target-libbacktrace: maybe-all-stage2-target-libatomic +configure-stage3-target-libbacktrace: maybe-all-stage3-target-libatomic +configure-stage4-target-libbacktrace: maybe-all-stage4-target-libatomic +configure-stageprofile-target-libbacktrace: maybe-all-stageprofile-target-libatomic +configure-stagetrain-target-libbacktrace: maybe-all-stagetrain-target-libatomic +configure-stagefeedback-target-libbacktrace: maybe-all-stagefeedback-target-libatomic +configure-stageautoprofile-target-libbacktrace: maybe-all-stageautoprofile-target-libatomic +configure-stageautofeedback-target-libbacktrace: maybe-all-stageautofeedback-target-libatomic +configure-stage1-target-libquadmath: maybe-all-stage1-target-libatomic +configure-stage2-target-libquadmath: maybe-all-stage2-target-libatomic +configure-stage3-target-libquadmath: maybe-all-stage3-target-libatomic +configure-stage4-target-libquadmath: maybe-all-stage4-target-libatomic +configure-stageprofile-target-libquadmath: maybe-all-stageprofile-target-libatomic +configure-stagetrain-target-libquadmath: maybe-all-stagetrain-target-libatomic +configure-stagefeedback-target-libquadmath: maybe-all-stagefeedback-target-libatomic +configure-stageautoprofile-target-libquadmath: maybe-all-stageautoprofile-target-libatomic +configure-stageautofeedback-target-libquadmath: maybe-all-stageautofeedback-target-libatomic +configure-stage1-target-libgfortran: maybe-all-stage1-target-libatomic +configure-stage2-target-libgfortran: maybe-all-stage2-target-libatomic +configure-stage3-target-libgfortran: maybe-all-stage3-target-libatomic +configure-stage4-target-libgfortran: maybe-all-stage4-target-libatomic +configure-stageprofile-target-libgfortran: maybe-all-stageprofile-target-libatomic +configure-stagetrain-target-libgfortran: maybe-all-stagetrain-target-libatomic +configure-stagefeedback-target-libgfortran: maybe-all-stagefeedback-target-libatomic +configure-stageautoprofile-target-libgfortran: maybe-all-stageautoprofile-target-libatomic +configure-stageautofeedback-target-libgfortran: maybe-all-stageautofeedback-target-libatomic +configure-stage1-target-libobjc: maybe-all-stage1-target-libatomic +configure-stage2-target-libobjc: maybe-all-stage2-target-libatomic +configure-stage3-target-libobjc: maybe-all-stage3-target-libatomic +configure-stage4-target-libobjc: maybe-all-stage4-target-libatomic +configure-stageprofile-target-libobjc: maybe-all-stageprofile-target-libatomic +configure-stagetrain-target-libobjc: maybe-all-stagetrain-target-libatomic +configure-stagefeedback-target-libobjc: maybe-all-stagefeedback-target-libatomic +configure-stageautoprofile-target-libobjc: maybe-all-stageautoprofile-target-libatomic +configure-stageautofeedback-target-libobjc: maybe-all-stageautofeedback-target-libatomic +configure-stage1-target-libgo: maybe-all-stage1-target-libatomic +configure-stage2-target-libgo: maybe-all-stage2-target-libatomic +configure-stage3-target-libgo: maybe-all-stage3-target-libatomic +configure-stage4-target-libgo: maybe-all-stage4-target-libatomic +configure-stageprofile-target-libgo: maybe-all-stageprofile-target-libatomic +configure-stagetrain-target-libgo: maybe-all-stagetrain-target-libatomic +configure-stagefeedback-target-libgo: maybe-all-stagefeedback-target-libatomic +configure-stageautoprofile-target-libgo: maybe-all-stageautoprofile-target-libatomic +configure-stageautofeedback-target-libgo: maybe-all-stageautofeedback-target-libatomic +configure-stage1-target-libphobos: maybe-all-stage1-target-libatomic +configure-stage2-target-libphobos: maybe-all-stage2-target-libatomic +configure-stage3-target-libphobos: maybe-all-stage3-target-libatomic +configure-stage4-target-libphobos: maybe-all-stage4-target-libatomic +configure-stageprofile-target-libphobos: maybe-all-stageprofile-target-libatomic +configure-stagetrain-target-libphobos: maybe-all-stagetrain-target-libatomic +configure-stagefeedback-target-libphobos: maybe-all-stagefeedback-target-libatomic +configure-stageautoprofile-target-libphobos: maybe-all-stageautoprofile-target-libatomic +configure-stageautofeedback-target-libphobos: maybe-all-stageautofeedback-target-libatomic +configure-stage1-target-libtermcap: maybe-all-stage1-target-libatomic +configure-stage2-target-libtermcap: maybe-all-stage2-target-libatomic +configure-stage3-target-libtermcap: maybe-all-stage3-target-libatomic +configure-stage4-target-libtermcap: maybe-all-stage4-target-libatomic +configure-stageprofile-target-libtermcap: maybe-all-stageprofile-target-libatomic +configure-stagetrain-target-libtermcap: maybe-all-stagetrain-target-libatomic +configure-stagefeedback-target-libtermcap: maybe-all-stagefeedback-target-libatomic +configure-stageautoprofile-target-libtermcap: maybe-all-stageautoprofile-target-libatomic +configure-stageautofeedback-target-libtermcap: maybe-all-stageautofeedback-target-libatomic +configure-stage1-target-winsup: maybe-all-stage1-target-libatomic +configure-stage2-target-winsup: maybe-all-stage2-target-libatomic +configure-stage3-target-winsup: maybe-all-stage3-target-libatomic +configure-stage4-target-winsup: maybe-all-stage4-target-libatomic +configure-stageprofile-target-winsup: maybe-all-stageprofile-target-libatomic +configure-stagetrain-target-winsup: maybe-all-stagetrain-target-libatomic +configure-stagefeedback-target-winsup: maybe-all-stagefeedback-target-libatomic +configure-stageautoprofile-target-winsup: maybe-all-stageautoprofile-target-libatomic +configure-stageautofeedback-target-winsup: maybe-all-stageautofeedback-target-libatomic +configure-stage1-target-libffi: maybe-all-stage1-target-libatomic +configure-stage2-target-libffi: maybe-all-stage2-target-libatomic +configure-stage3-target-libffi: maybe-all-stage3-target-libatomic +configure-stage4-target-libffi: maybe-all-stage4-target-libatomic +configure-stageprofile-target-libffi: maybe-all-stageprofile-target-libatomic +configure-stagetrain-target-libffi: maybe-all-stagetrain-target-libatomic +configure-stagefeedback-target-libffi: maybe-all-stagefeedback-target-libatomic +configure-stageautoprofile-target-libffi: maybe-all-stageautoprofile-target-libatomic +configure-stageautofeedback-target-libffi: maybe-all-stageautofeedback-target-libatomic +configure-stage1-target-zlib: maybe-all-stage1-target-libatomic +configure-stage2-target-zlib: maybe-all-stage2-target-libatomic +configure-stage3-target-zlib: maybe-all-stage3-target-libatomic +configure-stage4-target-zlib: maybe-all-stage4-target-libatomic +configure-stageprofile-target-zlib: maybe-all-stageprofile-target-libatomic +configure-stagetrain-target-zlib: maybe-all-stagetrain-target-libatomic +configure-stagefeedback-target-zlib: maybe-all-stagefeedback-target-libatomic +configure-stageautoprofile-target-zlib: maybe-all-stageautoprofile-target-libatomic +configure-stageautofeedback-target-zlib: maybe-all-stageautofeedback-target-libatomic +configure-stage1-target-rda: maybe-all-stage1-target-libatomic +configure-stage2-target-rda: maybe-all-stage2-target-libatomic +configure-stage3-target-rda: maybe-all-stage3-target-libatomic +configure-stage4-target-rda: maybe-all-stage4-target-libatomic +configure-stageprofile-target-rda: maybe-all-stageprofile-target-libatomic +configure-stagetrain-target-rda: maybe-all-stagetrain-target-libatomic +configure-stagefeedback-target-rda: maybe-all-stagefeedback-target-libatomic +configure-stageautoprofile-target-rda: maybe-all-stageautoprofile-target-libatomic +configure-stageautofeedback-target-rda: maybe-all-stageautofeedback-target-libatomic +configure-stage1-target-libada: maybe-all-stage1-target-libatomic +configure-stage2-target-libada: maybe-all-stage2-target-libatomic +configure-stage3-target-libada: maybe-all-stage3-target-libatomic +configure-stage4-target-libada: maybe-all-stage4-target-libatomic +configure-stageprofile-target-libada: maybe-all-stageprofile-target-libatomic +configure-stagetrain-target-libada: maybe-all-stagetrain-target-libatomic +configure-stagefeedback-target-libada: maybe-all-stagefeedback-target-libatomic +configure-stageautoprofile-target-libada: maybe-all-stageautoprofile-target-libatomic +configure-stageautofeedback-target-libada: maybe-all-stageautofeedback-target-libatomic +configure-stage1-target-libgm2: maybe-all-stage1-target-libatomic +configure-stage2-target-libgm2: maybe-all-stage2-target-libatomic +configure-stage3-target-libgm2: maybe-all-stage3-target-libatomic +configure-stage4-target-libgm2: maybe-all-stage4-target-libatomic +configure-stageprofile-target-libgm2: maybe-all-stageprofile-target-libatomic +configure-stagetrain-target-libgm2: maybe-all-stagetrain-target-libatomic +configure-stagefeedback-target-libgm2: maybe-all-stagefeedback-target-libatomic +configure-stageautoprofile-target-libgm2: maybe-all-stageautoprofile-target-libatomic +configure-stageautofeedback-target-libgm2: maybe-all-stageautofeedback-target-libatomic +configure-stage1-target-libgomp: maybe-all-stage1-target-libatomic +configure-stage2-target-libgomp: maybe-all-stage2-target-libatomic +configure-stage3-target-libgomp: maybe-all-stage3-target-libatomic +configure-stage4-target-libgomp: maybe-all-stage4-target-libatomic +configure-stageprofile-target-libgomp: maybe-all-stageprofile-target-libatomic +configure-stagetrain-target-libgomp: maybe-all-stagetrain-target-libatomic +configure-stagefeedback-target-libgomp: maybe-all-stagefeedback-target-libatomic +configure-stageautoprofile-target-libgomp: maybe-all-stageautoprofile-target-libatomic +configure-stageautofeedback-target-libgomp: maybe-all-stageautofeedback-target-libatomic +configure-stage1-target-libitm: maybe-all-stage1-target-libatomic +configure-stage2-target-libitm: maybe-all-stage2-target-libatomic +configure-stage3-target-libitm: maybe-all-stage3-target-libatomic +configure-stage4-target-libitm: maybe-all-stage4-target-libatomic +configure-stageprofile-target-libitm: maybe-all-stageprofile-target-libatomic +configure-stagetrain-target-libitm: maybe-all-stagetrain-target-libatomic +configure-stagefeedback-target-libitm: maybe-all-stagefeedback-target-libatomic +configure-stageautoprofile-target-libitm: maybe-all-stageautoprofile-target-libatomic +configure-stageautofeedback-target-libitm: maybe-all-stageautofeedback-target-libatomic +configure-stage1-target-libgrust: maybe-all-stage1-target-libatomic +configure-stage2-target-libgrust: maybe-all-stage2-target-libatomic +configure-stage3-target-libgrust: maybe-all-stage3-target-libatomic +configure-stage4-target-libgrust: maybe-all-stage4-target-libatomic +configure-stageprofile-target-libgrust: maybe-all-stageprofile-target-libatomic +configure-stagetrain-target-libgrust: maybe-all-stagetrain-target-libatomic +configure-stagefeedback-target-libgrust: maybe-all-stagefeedback-target-libatomic +configure-stageautoprofile-target-libgrust: maybe-all-stageautoprofile-target-libatomic +configure-stageautofeedback-target-libgrust: maybe-all-stageautofeedback-target-libatomic +@endif gcc-bootstrap + +@if gcc-no-bootstrap +configure-target-libstdc++-v3: maybe-all-target-libatomic +configure-target-libsanitizer: maybe-all-target-libatomic +configure-target-libvtv: maybe-all-target-libatomic +configure-target-libssp: maybe-all-target-libatomic +configure-target-libbacktrace: maybe-all-target-libatomic +configure-target-libquadmath: maybe-all-target-libatomic +configure-target-libgfortran: maybe-all-target-libatomic +configure-target-libobjc: maybe-all-target-libatomic +configure-target-libgo: maybe-all-target-libatomic +configure-target-libphobos: maybe-all-target-libatomic +configure-target-libtermcap: maybe-all-target-libatomic +configure-target-winsup: maybe-all-target-libatomic +configure-target-libffi: maybe-all-target-libatomic +configure-target-zlib: maybe-all-target-libatomic +configure-target-rda: maybe-all-target-libatomic +configure-target-libada: maybe-all-target-libatomic +configure-target-libgm2: maybe-all-target-libatomic +configure-target-libgomp: maybe-all-target-libatomic +configure-target-libitm: maybe-all-target-libatomic +configure-target-libgrust: maybe-all-target-libatomic +@endif gcc-no-bootstrap + configure-target-libvtv: maybe-all-target-newlib maybe-all-target-libgloss +@if gcc-bootstrap +configure-stage1-target-libstdc++-v3: maybe-all-stage1-target-libatomic +configure-stage2-target-libstdc++-v3: maybe-all-stage2-target-libatomic +configure-stage3-target-libstdc++-v3: maybe-all-stage3-target-libatomic +configure-stage4-target-libstdc++-v3: maybe-all-stage4-target-libatomic +configure-stageprofile-target-libstdc++-v3: maybe-all-stageprofile-target-libatomic +configure-stagetrain-target-libstdc++-v3: maybe-all-stagetrain-target-libatomic +configure-stagefeedback-target-libstdc++-v3: maybe-all-stagefeedback-target-libatomic +configure-stageautoprofile-target-libstdc++-v3: maybe-all-stageautoprofile-target-libatomic +configure-stageautofeedback-target-libstdc++-v3: maybe-all-stageautofeedback-target-libatomic +configure-stage1-target-libsanitizer: maybe-all-stage1-target-libatomic +configure-stage2-target-libsanitizer: maybe-all-stage2-target-libatomic +configure-stage3-target-libsanitizer: maybe-all-stage3-target-libatomic +configure-stage4-target-libsanitizer: maybe-all-stage4-target-libatomic +configure-stageprofile-target-libsanitizer: maybe-all-stageprofile-target-libatomic +configure-stagetrain-target-libsanitizer: maybe-all-stagetrain-target-libatomic +configure-stagefeedback-target-libsanitizer: maybe-all-stagefeedback-target-libatomic +configure-stageautoprofile-target-libsanitizer: maybe-all-stageautoprofile-target-libatomic +configure-stageautofeedback-target-libsanitizer: maybe-all-stageautofeedback-target-libatomic +configure-stage1-target-libvtv: maybe-all-stage1-target-libatomic +configure-stage2-target-libvtv: maybe-all-stage2-target-libatomic +configure-stage3-target-libvtv: maybe-all-stage3-target-libatomic +configure-stage4-target-libvtv: maybe-all-stage4-target-libatomic +configure-stageprofile-target-libvtv: maybe-all-stageprofile-target-libatomic +configure-stagetrain-target-libvtv: maybe-all-stagetrain-target-libatomic +configure-stagefeedback-target-libvtv: maybe-all-stagefeedback-target-libatomic +configure-stageautoprofile-target-libvtv: maybe-all-stageautoprofile-target-libatomic +configure-stageautofeedback-target-libvtv: maybe-all-stageautofeedback-target-libatomic +configure-stage1-target-libssp: maybe-all-stage1-target-libatomic +configure-stage2-target-libssp: maybe-all-stage2-target-libatomic +configure-stage3-target-libssp: maybe-all-stage3-target-libatomic +configure-stage4-target-libssp: maybe-all-stage4-target-libatomic +configure-stageprofile-target-libssp: maybe-all-stageprofile-target-libatomic +configure-stagetrain-target-libssp: maybe-all-stagetrain-target-libatomic +configure-stagefeedback-target-libssp: maybe-all-stagefeedback-target-libatomic +configure-stageautoprofile-target-libssp: maybe-all-stageautoprofile-target-libatomic +configure-stageautofeedback-target-libssp: maybe-all-stageautofeedback-target-libatomic +configure-stage1-target-libbacktrace: maybe-all-stage1-target-libatomic +configure-stage2-target-libbacktrace: maybe-all-stage2-target-libatomic +configure-stage3-target-libbacktrace: maybe-all-stage3-target-libatomic +configure-stage4-target-libbacktrace: maybe-all-stage4-target-libatomic +configure-stageprofile-target-libbacktrace: maybe-all-stageprofile-target-libatomic +configure-stagetrain-target-libbacktrace: maybe-all-stagetrain-target-libatomic +configure-stagefeedback-target-libbacktrace: maybe-all-stagefeedback-target-libatomic +configure-stageautoprofile-target-libbacktrace: maybe-all-stageautoprofile-target-libatomic +configure-stageautofeedback-target-libbacktrace: maybe-all-stageautofeedback-target-libatomic +configure-stage1-target-libquadmath: maybe-all-stage1-target-libatomic +configure-stage2-target-libquadmath: maybe-all-stage2-target-libatomic +configure-stage3-target-libquadmath: maybe-all-stage3-target-libatomic +configure-stage4-target-libquadmath: maybe-all-stage4-target-libatomic +configure-stageprofile-target-libquadmath: maybe-all-stageprofile-target-libatomic +configure-stagetrain-target-libquadmath: maybe-all-stagetrain-target-libatomic +configure-stagefeedback-target-libquadmath: maybe-all-stagefeedback-target-libatomic +configure-stageautoprofile-target-libquadmath: maybe-all-stageautoprofile-target-libatomic +configure-stageautofeedback-target-libquadmath: maybe-all-stageautofeedback-target-libatomic +configure-stage1-target-libgfortran: maybe-all-stage1-target-libatomic +configure-stage2-target-libgfortran: maybe-all-stage2-target-libatomic +configure-stage3-target-libgfortran: maybe-all-stage3-target-libatomic +configure-stage4-target-libgfortran: maybe-all-stage4-target-libatomic +configure-stageprofile-target-libgfortran: maybe-all-stageprofile-target-libatomic +configure-stagetrain-target-libgfortran: maybe-all-stagetrain-target-libatomic +configure-stagefeedback-target-libgfortran: maybe-all-stagefeedback-target-libatomic +configure-stageautoprofile-target-libgfortran: maybe-all-stageautoprofile-target-libatomic +configure-stageautofeedback-target-libgfortran: maybe-all-stageautofeedback-target-libatomic +configure-stage1-target-libobjc: maybe-all-stage1-target-libatomic +configure-stage2-target-libobjc: maybe-all-stage2-target-libatomic +configure-stage3-target-libobjc: maybe-all-stage3-target-libatomic +configure-stage4-target-libobjc: maybe-all-stage4-target-libatomic +configure-stageprofile-target-libobjc: maybe-all-stageprofile-target-libatomic +configure-stagetrain-target-libobjc: maybe-all-stagetrain-target-libatomic +configure-stagefeedback-target-libobjc: maybe-all-stagefeedback-target-libatomic +configure-stageautoprofile-target-libobjc: maybe-all-stageautoprofile-target-libatomic +configure-stageautofeedback-target-libobjc: maybe-all-stageautofeedback-target-libatomic +configure-stage1-target-libgo: maybe-all-stage1-target-libatomic +configure-stage2-target-libgo: maybe-all-stage2-target-libatomic +configure-stage3-target-libgo: maybe-all-stage3-target-libatomic +configure-stage4-target-libgo: maybe-all-stage4-target-libatomic +configure-stageprofile-target-libgo: maybe-all-stageprofile-target-libatomic +configure-stagetrain-target-libgo: maybe-all-stagetrain-target-libatomic +configure-stagefeedback-target-libgo: maybe-all-stagefeedback-target-libatomic +configure-stageautoprofile-target-libgo: maybe-all-stageautoprofile-target-libatomic +configure-stageautofeedback-target-libgo: maybe-all-stageautofeedback-target-libatomic +configure-stage1-target-libphobos: maybe-all-stage1-target-libatomic +configure-stage2-target-libphobos: maybe-all-stage2-target-libatomic +configure-stage3-target-libphobos: maybe-all-stage3-target-libatomic +configure-stage4-target-libphobos: maybe-all-stage4-target-libatomic +configure-stageprofile-target-libphobos: maybe-all-stageprofile-target-libatomic +configure-stagetrain-target-libphobos: maybe-all-stagetrain-target-libatomic +configure-stagefeedback-target-libphobos: maybe-all-stagefeedback-target-libatomic +configure-stageautoprofile-target-libphobos: maybe-all-stageautoprofile-target-libatomic +configure-stageautofeedback-target-libphobos: maybe-all-stageautofeedback-target-libatomic +configure-stage1-target-libtermcap: maybe-all-stage1-target-libatomic +configure-stage2-target-libtermcap: maybe-all-stage2-target-libatomic +configure-stage3-target-libtermcap: maybe-all-stage3-target-libatomic +configure-stage4-target-libtermcap: maybe-all-stage4-target-libatomic +configure-stageprofile-target-libtermcap: maybe-all-stageprofile-target-libatomic +configure-stagetrain-target-libtermcap: maybe-all-stagetrain-target-libatomic +configure-stagefeedback-target-libtermcap: maybe-all-stagefeedback-target-libatomic +configure-stageautoprofile-target-libtermcap: maybe-all-stageautoprofile-target-libatomic +configure-stageautofeedback-target-libtermcap: maybe-all-stageautofeedback-target-libatomic +configure-stage1-target-winsup: maybe-all-stage1-target-libatomic +configure-stage2-target-winsup: maybe-all-stage2-target-libatomic +configure-stage3-target-winsup: maybe-all-stage3-target-libatomic +configure-stage4-target-winsup: maybe-all-stage4-target-libatomic +configure-stageprofile-target-winsup: maybe-all-stageprofile-target-libatomic +configure-stagetrain-target-winsup: maybe-all-stagetrain-target-libatomic +configure-stagefeedback-target-winsup: maybe-all-stagefeedback-target-libatomic +configure-stageautoprofile-target-winsup: maybe-all-stageautoprofile-target-libatomic +configure-stageautofeedback-target-winsup: maybe-all-stageautofeedback-target-libatomic +configure-stage1-target-libffi: maybe-all-stage1-target-libatomic +configure-stage2-target-libffi: maybe-all-stage2-target-libatomic +configure-stage3-target-libffi: maybe-all-stage3-target-libatomic +configure-stage4-target-libffi: maybe-all-stage4-target-libatomic +configure-stageprofile-target-libffi: maybe-all-stageprofile-target-libatomic +configure-stagetrain-target-libffi: maybe-all-stagetrain-target-libatomic +configure-stagefeedback-target-libffi: maybe-all-stagefeedback-target-libatomic +configure-stageautoprofile-target-libffi: maybe-all-stageautoprofile-target-libatomic +configure-stageautofeedback-target-libffi: maybe-all-stageautofeedback-target-libatomic +configure-stage1-target-zlib: maybe-all-stage1-target-libatomic +configure-stage2-target-zlib: maybe-all-stage2-target-libatomic +configure-stage3-target-zlib: maybe-all-stage3-target-libatomic +configure-stage4-target-zlib: maybe-all-stage4-target-libatomic +configure-stageprofile-target-zlib: maybe-all-stageprofile-target-libatomic +configure-stagetrain-target-zlib: maybe-all-stagetrain-target-libatomic +configure-stagefeedback-target-zlib: maybe-all-stagefeedback-target-libatomic +configure-stageautoprofile-target-zlib: maybe-all-stageautoprofile-target-libatomic +configure-stageautofeedback-target-zlib: maybe-all-stageautofeedback-target-libatomic +configure-stage1-target-rda: maybe-all-stage1-target-libatomic +configure-stage2-target-rda: maybe-all-stage2-target-libatomic +configure-stage3-target-rda: maybe-all-stage3-target-libatomic +configure-stage4-target-rda: maybe-all-stage4-target-libatomic +configure-stageprofile-target-rda: maybe-all-stageprofile-target-libatomic +configure-stagetrain-target-rda: maybe-all-stagetrain-target-libatomic +configure-stagefeedback-target-rda: maybe-all-stagefeedback-target-libatomic +configure-stageautoprofile-target-rda: maybe-all-stageautoprofile-target-libatomic +configure-stageautofeedback-target-rda: maybe-all-stageautofeedback-target-libatomic +configure-stage1-target-libada: maybe-all-stage1-target-libatomic +configure-stage2-target-libada: maybe-all-stage2-target-libatomic +configure-stage3-target-libada: maybe-all-stage3-target-libatomic +configure-stage4-target-libada: maybe-all-stage4-target-libatomic +configure-stageprofile-target-libada: maybe-all-stageprofile-target-libatomic +configure-stagetrain-target-libada: maybe-all-stagetrain-target-libatomic +configure-stagefeedback-target-libada: maybe-all-stagefeedback-target-libatomic +configure-stageautoprofile-target-libada: maybe-all-stageautoprofile-target-libatomic +configure-stageautofeedback-target-libada: maybe-all-stageautofeedback-target-libatomic +configure-stage1-target-libgm2: maybe-all-stage1-target-libatomic +configure-stage2-target-libgm2: maybe-all-stage2-target-libatomic +configure-stage3-target-libgm2: maybe-all-stage3-target-libatomic +configure-stage4-target-libgm2: maybe-all-stage4-target-libatomic +configure-stageprofile-target-libgm2: maybe-all-stageprofile-target-libatomic +configure-stagetrain-target-libgm2: maybe-all-stagetrain-target-libatomic +configure-stagefeedback-target-libgm2: maybe-all-stagefeedback-target-libatomic +configure-stageautoprofile-target-libgm2: maybe-all-stageautoprofile-target-libatomic +configure-stageautofeedback-target-libgm2: maybe-all-stageautofeedback-target-libatomic +configure-stage1-target-libgomp: maybe-all-stage1-target-libatomic +configure-stage2-target-libgomp: maybe-all-stage2-target-libatomic +configure-stage3-target-libgomp: maybe-all-stage3-target-libatomic +configure-stage4-target-libgomp: maybe-all-stage4-target-libatomic +configure-stageprofile-target-libgomp: maybe-all-stageprofile-target-libatomic +configure-stagetrain-target-libgomp: maybe-all-stagetrain-target-libatomic +configure-stagefeedback-target-libgomp: maybe-all-stagefeedback-target-libatomic +configure-stageautoprofile-target-libgomp: maybe-all-stageautoprofile-target-libatomic +configure-stageautofeedback-target-libgomp: maybe-all-stageautofeedback-target-libatomic +configure-stage1-target-libitm: maybe-all-stage1-target-libatomic +configure-stage2-target-libitm: maybe-all-stage2-target-libatomic +configure-stage3-target-libitm: maybe-all-stage3-target-libatomic +configure-stage4-target-libitm: maybe-all-stage4-target-libatomic +configure-stageprofile-target-libitm: maybe-all-stageprofile-target-libatomic +configure-stagetrain-target-libitm: maybe-all-stagetrain-target-libatomic +configure-stagefeedback-target-libitm: maybe-all-stagefeedback-target-libatomic +configure-stageautoprofile-target-libitm: maybe-all-stageautoprofile-target-libatomic +configure-stageautofeedback-target-libitm: maybe-all-stageautofeedback-target-libatomic +configure-stage1-target-libgrust: maybe-all-stage1-target-libatomic +configure-stage2-target-libgrust: maybe-all-stage2-target-libatomic +configure-stage3-target-libgrust: maybe-all-stage3-target-libatomic +configure-stage4-target-libgrust: maybe-all-stage4-target-libatomic +configure-stageprofile-target-libgrust: maybe-all-stageprofile-target-libatomic +configure-stagetrain-target-libgrust: maybe-all-stagetrain-target-libatomic +configure-stagefeedback-target-libgrust: maybe-all-stagefeedback-target-libatomic +configure-stageautoprofile-target-libgrust: maybe-all-stageautoprofile-target-libatomic +configure-stageautofeedback-target-libgrust: maybe-all-stageautofeedback-target-libatomic +@endif gcc-bootstrap + +@if gcc-no-bootstrap +configure-target-libstdc++-v3: maybe-all-target-libatomic +configure-target-libsanitizer: maybe-all-target-libatomic +configure-target-libvtv: maybe-all-target-libatomic +configure-target-libssp: maybe-all-target-libatomic +configure-target-libbacktrace: maybe-all-target-libatomic +configure-target-libquadmath: maybe-all-target-libatomic +configure-target-libgfortran: maybe-all-target-libatomic +configure-target-libobjc: maybe-all-target-libatomic +configure-target-libgo: maybe-all-target-libatomic +configure-target-libphobos: maybe-all-target-libatomic +configure-target-libtermcap: maybe-all-target-libatomic +configure-target-winsup: maybe-all-target-libatomic +configure-target-libffi: maybe-all-target-libatomic +configure-target-zlib: maybe-all-target-libatomic +configure-target-rda: maybe-all-target-libatomic +configure-target-libada: maybe-all-target-libatomic +configure-target-libgm2: maybe-all-target-libatomic +configure-target-libgomp: maybe-all-target-libatomic +configure-target-libitm: maybe-all-target-libatomic +configure-target-libgrust: maybe-all-target-libatomic +@endif gcc-no-bootstrap + configure-target-libssp: maybe-all-target-newlib maybe-all-target-libgloss +@if gcc-bootstrap +configure-stage1-target-libstdc++-v3: maybe-all-stage1-target-libatomic +configure-stage2-target-libstdc++-v3: maybe-all-stage2-target-libatomic +configure-stage3-target-libstdc++-v3: maybe-all-stage3-target-libatomic +configure-stage4-target-libstdc++-v3: maybe-all-stage4-target-libatomic +configure-stageprofile-target-libstdc++-v3: maybe-all-stageprofile-target-libatomic +configure-stagetrain-target-libstdc++-v3: maybe-all-stagetrain-target-libatomic +configure-stagefeedback-target-libstdc++-v3: maybe-all-stagefeedback-target-libatomic +configure-stageautoprofile-target-libstdc++-v3: maybe-all-stageautoprofile-target-libatomic +configure-stageautofeedback-target-libstdc++-v3: maybe-all-stageautofeedback-target-libatomic +configure-stage1-target-libsanitizer: maybe-all-stage1-target-libatomic +configure-stage2-target-libsanitizer: maybe-all-stage2-target-libatomic +configure-stage3-target-libsanitizer: maybe-all-stage3-target-libatomic +configure-stage4-target-libsanitizer: maybe-all-stage4-target-libatomic +configure-stageprofile-target-libsanitizer: maybe-all-stageprofile-target-libatomic +configure-stagetrain-target-libsanitizer: maybe-all-stagetrain-target-libatomic +configure-stagefeedback-target-libsanitizer: maybe-all-stagefeedback-target-libatomic +configure-stageautoprofile-target-libsanitizer: maybe-all-stageautoprofile-target-libatomic +configure-stageautofeedback-target-libsanitizer: maybe-all-stageautofeedback-target-libatomic +configure-stage1-target-libvtv: maybe-all-stage1-target-libatomic +configure-stage2-target-libvtv: maybe-all-stage2-target-libatomic +configure-stage3-target-libvtv: maybe-all-stage3-target-libatomic +configure-stage4-target-libvtv: maybe-all-stage4-target-libatomic +configure-stageprofile-target-libvtv: maybe-all-stageprofile-target-libatomic +configure-stagetrain-target-libvtv: maybe-all-stagetrain-target-libatomic +configure-stagefeedback-target-libvtv: maybe-all-stagefeedback-target-libatomic +configure-stageautoprofile-target-libvtv: maybe-all-stageautoprofile-target-libatomic +configure-stageautofeedback-target-libvtv: maybe-all-stageautofeedback-target-libatomic +configure-stage1-target-libbacktrace: maybe-all-stage1-target-libatomic +configure-stage2-target-libbacktrace: maybe-all-stage2-target-libatomic +configure-stage3-target-libbacktrace: maybe-all-stage3-target-libatomic +configure-stage4-target-libbacktrace: maybe-all-stage4-target-libatomic +configure-stageprofile-target-libbacktrace: maybe-all-stageprofile-target-libatomic +configure-stagetrain-target-libbacktrace: maybe-all-stagetrain-target-libatomic +configure-stagefeedback-target-libbacktrace: maybe-all-stagefeedback-target-libatomic +configure-stageautoprofile-target-libbacktrace: maybe-all-stageautoprofile-target-libatomic +configure-stageautofeedback-target-libbacktrace: maybe-all-stageautofeedback-target-libatomic +configure-stage1-target-libphobos: maybe-all-stage1-target-libatomic +configure-stage2-target-libphobos: maybe-all-stage2-target-libatomic +configure-stage3-target-libphobos: maybe-all-stage3-target-libatomic +configure-stage4-target-libphobos: maybe-all-stage4-target-libatomic +configure-stageprofile-target-libphobos: maybe-all-stageprofile-target-libatomic +configure-stagetrain-target-libphobos: maybe-all-stagetrain-target-libatomic +configure-stagefeedback-target-libphobos: maybe-all-stagefeedback-target-libatomic +configure-stageautoprofile-target-libphobos: maybe-all-stageautoprofile-target-libatomic +configure-stageautofeedback-target-libphobos: maybe-all-stageautofeedback-target-libatomic +configure-stage1-target-zlib: maybe-all-stage1-target-libatomic +configure-stage2-target-zlib: maybe-all-stage2-target-libatomic +configure-stage3-target-zlib: maybe-all-stage3-target-libatomic +configure-stage4-target-zlib: maybe-all-stage4-target-libatomic +configure-stageprofile-target-zlib: maybe-all-stageprofile-target-libatomic +configure-stagetrain-target-zlib: maybe-all-stagetrain-target-libatomic +configure-stagefeedback-target-zlib: maybe-all-stagefeedback-target-libatomic +configure-stageautoprofile-target-zlib: maybe-all-stageautoprofile-target-libatomic +configure-stageautofeedback-target-zlib: maybe-all-stageautofeedback-target-libatomic +configure-stage1-target-libgomp: maybe-all-stage1-target-libatomic +configure-stage2-target-libgomp: maybe-all-stage2-target-libatomic +configure-stage3-target-libgomp: maybe-all-stage3-target-libatomic +configure-stage4-target-libgomp: maybe-all-stage4-target-libatomic +configure-stageprofile-target-libgomp: maybe-all-stageprofile-target-libatomic +configure-stagetrain-target-libgomp: maybe-all-stagetrain-target-libatomic +configure-stagefeedback-target-libgomp: maybe-all-stagefeedback-target-libatomic +configure-stageautoprofile-target-libgomp: maybe-all-stageautoprofile-target-libatomic +configure-stageautofeedback-target-libgomp: maybe-all-stageautofeedback-target-libatomic +@endif gcc-bootstrap + +@if gcc-no-bootstrap +configure-target-libstdc++-v3: maybe-all-target-libatomic +configure-target-libsanitizer: maybe-all-target-libatomic +configure-target-libvtv: maybe-all-target-libatomic +configure-target-libssp: maybe-all-target-libatomic +configure-target-libbacktrace: maybe-all-target-libatomic +configure-target-libquadmath: maybe-all-target-libatomic +configure-target-libgfortran: maybe-all-target-libatomic +configure-target-libobjc: maybe-all-target-libatomic +configure-target-libgo: maybe-all-target-libatomic +configure-target-libphobos: maybe-all-target-libatomic +configure-target-libtermcap: maybe-all-target-libatomic +configure-target-winsup: maybe-all-target-libatomic +configure-target-libffi: maybe-all-target-libatomic +configure-target-zlib: maybe-all-target-libatomic +configure-target-rda: maybe-all-target-libatomic +configure-target-libada: maybe-all-target-libatomic +configure-target-libgm2: maybe-all-target-libatomic +configure-target-libgomp: maybe-all-target-libatomic +configure-target-libitm: maybe-all-target-libatomic +configure-target-libgrust: maybe-all-target-libatomic +@endif gcc-no-bootstrap +@if gcc-bootstrap +configure-stage1-target-libstdc++-v3: maybe-all-stage1-target-libatomic +configure-stage2-target-libstdc++-v3: maybe-all-stage2-target-libatomic +configure-stage3-target-libstdc++-v3: maybe-all-stage3-target-libatomic +configure-stage4-target-libstdc++-v3: maybe-all-stage4-target-libatomic +configure-stageprofile-target-libstdc++-v3: maybe-all-stageprofile-target-libatomic +configure-stagetrain-target-libstdc++-v3: maybe-all-stagetrain-target-libatomic +configure-stagefeedback-target-libstdc++-v3: maybe-all-stagefeedback-target-libatomic +configure-stageautoprofile-target-libstdc++-v3: maybe-all-stageautoprofile-target-libatomic +configure-stageautofeedback-target-libstdc++-v3: maybe-all-stageautofeedback-target-libatomic +configure-stage1-target-libsanitizer: maybe-all-stage1-target-libatomic +configure-stage2-target-libsanitizer: maybe-all-stage2-target-libatomic +configure-stage3-target-libsanitizer: maybe-all-stage3-target-libatomic +configure-stage4-target-libsanitizer: maybe-all-stage4-target-libatomic +configure-stageprofile-target-libsanitizer: maybe-all-stageprofile-target-libatomic +configure-stagetrain-target-libsanitizer: maybe-all-stagetrain-target-libatomic +configure-stagefeedback-target-libsanitizer: maybe-all-stagefeedback-target-libatomic +configure-stageautoprofile-target-libsanitizer: maybe-all-stageautoprofile-target-libatomic +configure-stageautofeedback-target-libsanitizer: maybe-all-stageautofeedback-target-libatomic +configure-stage1-target-libvtv: maybe-all-stage1-target-libatomic +configure-stage2-target-libvtv: maybe-all-stage2-target-libatomic +configure-stage3-target-libvtv: maybe-all-stage3-target-libatomic +configure-stage4-target-libvtv: maybe-all-stage4-target-libatomic +configure-stageprofile-target-libvtv: maybe-all-stageprofile-target-libatomic +configure-stagetrain-target-libvtv: maybe-all-stagetrain-target-libatomic +configure-stagefeedback-target-libvtv: maybe-all-stagefeedback-target-libatomic +configure-stageautoprofile-target-libvtv: maybe-all-stageautoprofile-target-libatomic +configure-stageautofeedback-target-libvtv: maybe-all-stageautofeedback-target-libatomic +configure-stage1-target-libbacktrace: maybe-all-stage1-target-libatomic +configure-stage2-target-libbacktrace: maybe-all-stage2-target-libatomic +configure-stage3-target-libbacktrace: maybe-all-stage3-target-libatomic +configure-stage4-target-libbacktrace: maybe-all-stage4-target-libatomic +configure-stageprofile-target-libbacktrace: maybe-all-stageprofile-target-libatomic +configure-stagetrain-target-libbacktrace: maybe-all-stagetrain-target-libatomic +configure-stagefeedback-target-libbacktrace: maybe-all-stagefeedback-target-libatomic +configure-stageautoprofile-target-libbacktrace: maybe-all-stageautoprofile-target-libatomic +configure-stageautofeedback-target-libbacktrace: maybe-all-stageautofeedback-target-libatomic +configure-stage1-target-libphobos: maybe-all-stage1-target-libatomic +configure-stage2-target-libphobos: maybe-all-stage2-target-libatomic +configure-stage3-target-libphobos: maybe-all-stage3-target-libatomic +configure-stage4-target-libphobos: maybe-all-stage4-target-libatomic +configure-stageprofile-target-libphobos: maybe-all-stageprofile-target-libatomic +configure-stagetrain-target-libphobos: maybe-all-stagetrain-target-libatomic +configure-stagefeedback-target-libphobos: maybe-all-stagefeedback-target-libatomic +configure-stageautoprofile-target-libphobos: maybe-all-stageautoprofile-target-libatomic +configure-stageautofeedback-target-libphobos: maybe-all-stageautofeedback-target-libatomic +configure-stage1-target-zlib: maybe-all-stage1-target-libatomic +configure-stage2-target-zlib: maybe-all-stage2-target-libatomic +configure-stage3-target-zlib: maybe-all-stage3-target-libatomic +configure-stage4-target-zlib: maybe-all-stage4-target-libatomic +configure-stageprofile-target-zlib: maybe-all-stageprofile-target-libatomic +configure-stagetrain-target-zlib: maybe-all-stagetrain-target-libatomic +configure-stagefeedback-target-zlib: maybe-all-stagefeedback-target-libatomic +configure-stageautoprofile-target-zlib: maybe-all-stageautoprofile-target-libatomic +configure-stageautofeedback-target-zlib: maybe-all-stageautofeedback-target-libatomic +configure-stage1-target-libgomp: maybe-all-stage1-target-libatomic +configure-stage2-target-libgomp: maybe-all-stage2-target-libatomic +configure-stage3-target-libgomp: maybe-all-stage3-target-libatomic +configure-stage4-target-libgomp: maybe-all-stage4-target-libatomic +configure-stageprofile-target-libgomp: maybe-all-stageprofile-target-libatomic +configure-stagetrain-target-libgomp: maybe-all-stagetrain-target-libatomic +configure-stagefeedback-target-libgomp: maybe-all-stagefeedback-target-libatomic +configure-stageautoprofile-target-libgomp: maybe-all-stageautoprofile-target-libatomic +configure-stageautofeedback-target-libgomp: maybe-all-stageautofeedback-target-libatomic +@endif gcc-bootstrap + +@if gcc-no-bootstrap +configure-target-libstdc++-v3: maybe-all-target-libatomic +configure-target-libsanitizer: maybe-all-target-libatomic +configure-target-libvtv: maybe-all-target-libatomic +configure-target-libssp: maybe-all-target-libatomic +configure-target-libbacktrace: maybe-all-target-libatomic +configure-target-libquadmath: maybe-all-target-libatomic +configure-target-libgfortran: maybe-all-target-libatomic +configure-target-libobjc: maybe-all-target-libatomic +configure-target-libgo: maybe-all-target-libatomic +configure-target-libphobos: maybe-all-target-libatomic +configure-target-libtermcap: maybe-all-target-libatomic +configure-target-winsup: maybe-all-target-libatomic +configure-target-libffi: maybe-all-target-libatomic +configure-target-zlib: maybe-all-target-libatomic +configure-target-rda: maybe-all-target-libatomic +configure-target-libada: maybe-all-target-libatomic +configure-target-libgm2: maybe-all-target-libatomic +configure-target-libgomp: maybe-all-target-libatomic +configure-target-libitm: maybe-all-target-libatomic +configure-target-libgrust: maybe-all-target-libatomic +@endif gcc-no-bootstrap + + +@if gcc-bootstrap +configure-stage1-target-libstdc++-v3: maybe-all-stage1-target-libatomic +configure-stage2-target-libstdc++-v3: maybe-all-stage2-target-libatomic +configure-stage3-target-libstdc++-v3: maybe-all-stage3-target-libatomic +configure-stage4-target-libstdc++-v3: maybe-all-stage4-target-libatomic +configure-stageprofile-target-libstdc++-v3: maybe-all-stageprofile-target-libatomic +configure-stagetrain-target-libstdc++-v3: maybe-all-stagetrain-target-libatomic +configure-stagefeedback-target-libstdc++-v3: maybe-all-stagefeedback-target-libatomic +configure-stageautoprofile-target-libstdc++-v3: maybe-all-stageautoprofile-target-libatomic +configure-stageautofeedback-target-libstdc++-v3: maybe-all-stageautofeedback-target-libatomic +configure-stage1-target-libsanitizer: maybe-all-stage1-target-libatomic +configure-stage2-target-libsanitizer: maybe-all-stage2-target-libatomic +configure-stage3-target-libsanitizer: maybe-all-stage3-target-libatomic +configure-stage4-target-libsanitizer: maybe-all-stage4-target-libatomic +configure-stageprofile-target-libsanitizer: maybe-all-stageprofile-target-libatomic +configure-stagetrain-target-libsanitizer: maybe-all-stagetrain-target-libatomic +configure-stagefeedback-target-libsanitizer: maybe-all-stagefeedback-target-libatomic +configure-stageautoprofile-target-libsanitizer: maybe-all-stageautoprofile-target-libatomic +configure-stageautofeedback-target-libsanitizer: maybe-all-stageautofeedback-target-libatomic +configure-stage1-target-libvtv: maybe-all-stage1-target-libatomic +configure-stage2-target-libvtv: maybe-all-stage2-target-libatomic +configure-stage3-target-libvtv: maybe-all-stage3-target-libatomic +configure-stage4-target-libvtv: maybe-all-stage4-target-libatomic +configure-stageprofile-target-libvtv: maybe-all-stageprofile-target-libatomic +configure-stagetrain-target-libvtv: maybe-all-stagetrain-target-libatomic +configure-stagefeedback-target-libvtv: maybe-all-stagefeedback-target-libatomic +configure-stageautoprofile-target-libvtv: maybe-all-stageautoprofile-target-libatomic +configure-stageautofeedback-target-libvtv: maybe-all-stageautofeedback-target-libatomic +configure-stage1-target-libssp: maybe-all-stage1-target-libatomic +configure-stage2-target-libssp: maybe-all-stage2-target-libatomic +configure-stage3-target-libssp: maybe-all-stage3-target-libatomic +configure-stage4-target-libssp: maybe-all-stage4-target-libatomic +configure-stageprofile-target-libssp: maybe-all-stageprofile-target-libatomic +configure-stagetrain-target-libssp: maybe-all-stagetrain-target-libatomic +configure-stagefeedback-target-libssp: maybe-all-stagefeedback-target-libatomic +configure-stageautoprofile-target-libssp: maybe-all-stageautoprofile-target-libatomic +configure-stageautofeedback-target-libssp: maybe-all-stageautofeedback-target-libatomic +configure-stage1-target-libbacktrace: maybe-all-stage1-target-libatomic +configure-stage2-target-libbacktrace: maybe-all-stage2-target-libatomic +configure-stage3-target-libbacktrace: maybe-all-stage3-target-libatomic +configure-stage4-target-libbacktrace: maybe-all-stage4-target-libatomic +configure-stageprofile-target-libbacktrace: maybe-all-stageprofile-target-libatomic +configure-stagetrain-target-libbacktrace: maybe-all-stagetrain-target-libatomic +configure-stagefeedback-target-libbacktrace: maybe-all-stagefeedback-target-libatomic +configure-stageautoprofile-target-libbacktrace: maybe-all-stageautoprofile-target-libatomic +configure-stageautofeedback-target-libbacktrace: maybe-all-stageautofeedback-target-libatomic +configure-stage1-target-libquadmath: maybe-all-stage1-target-libatomic +configure-stage2-target-libquadmath: maybe-all-stage2-target-libatomic +configure-stage3-target-libquadmath: maybe-all-stage3-target-libatomic +configure-stage4-target-libquadmath: maybe-all-stage4-target-libatomic +configure-stageprofile-target-libquadmath: maybe-all-stageprofile-target-libatomic +configure-stagetrain-target-libquadmath: maybe-all-stagetrain-target-libatomic +configure-stagefeedback-target-libquadmath: maybe-all-stagefeedback-target-libatomic +configure-stageautoprofile-target-libquadmath: maybe-all-stageautoprofile-target-libatomic +configure-stageautofeedback-target-libquadmath: maybe-all-stageautofeedback-target-libatomic +configure-stage1-target-libgfortran: maybe-all-stage1-target-libatomic +configure-stage2-target-libgfortran: maybe-all-stage2-target-libatomic +configure-stage3-target-libgfortran: maybe-all-stage3-target-libatomic +configure-stage4-target-libgfortran: maybe-all-stage4-target-libatomic +configure-stageprofile-target-libgfortran: maybe-all-stageprofile-target-libatomic +configure-stagetrain-target-libgfortran: maybe-all-stagetrain-target-libatomic +configure-stagefeedback-target-libgfortran: maybe-all-stagefeedback-target-libatomic +configure-stageautoprofile-target-libgfortran: maybe-all-stageautoprofile-target-libatomic +configure-stageautofeedback-target-libgfortran: maybe-all-stageautofeedback-target-libatomic +configure-stage1-target-libobjc: maybe-all-stage1-target-libatomic +configure-stage2-target-libobjc: maybe-all-stage2-target-libatomic +configure-stage3-target-libobjc: maybe-all-stage3-target-libatomic +configure-stage4-target-libobjc: maybe-all-stage4-target-libatomic +configure-stageprofile-target-libobjc: maybe-all-stageprofile-target-libatomic +configure-stagetrain-target-libobjc: maybe-all-stagetrain-target-libatomic +configure-stagefeedback-target-libobjc: maybe-all-stagefeedback-target-libatomic +configure-stageautoprofile-target-libobjc: maybe-all-stageautoprofile-target-libatomic +configure-stageautofeedback-target-libobjc: maybe-all-stageautofeedback-target-libatomic +configure-stage1-target-libgo: maybe-all-stage1-target-libatomic +configure-stage2-target-libgo: maybe-all-stage2-target-libatomic +configure-stage3-target-libgo: maybe-all-stage3-target-libatomic +configure-stage4-target-libgo: maybe-all-stage4-target-libatomic +configure-stageprofile-target-libgo: maybe-all-stageprofile-target-libatomic +configure-stagetrain-target-libgo: maybe-all-stagetrain-target-libatomic +configure-stagefeedback-target-libgo: maybe-all-stagefeedback-target-libatomic +configure-stageautoprofile-target-libgo: maybe-all-stageautoprofile-target-libatomic +configure-stageautofeedback-target-libgo: maybe-all-stageautofeedback-target-libatomic +configure-stage1-target-libphobos: maybe-all-stage1-target-libatomic +configure-stage2-target-libphobos: maybe-all-stage2-target-libatomic +configure-stage3-target-libphobos: maybe-all-stage3-target-libatomic +configure-stage4-target-libphobos: maybe-all-stage4-target-libatomic +configure-stageprofile-target-libphobos: maybe-all-stageprofile-target-libatomic +configure-stagetrain-target-libphobos: maybe-all-stagetrain-target-libatomic +configure-stagefeedback-target-libphobos: maybe-all-stagefeedback-target-libatomic +configure-stageautoprofile-target-libphobos: maybe-all-stageautoprofile-target-libatomic +configure-stageautofeedback-target-libphobos: maybe-all-stageautofeedback-target-libatomic +configure-stage1-target-libtermcap: maybe-all-stage1-target-libatomic +configure-stage2-target-libtermcap: maybe-all-stage2-target-libatomic +configure-stage3-target-libtermcap: maybe-all-stage3-target-libatomic +configure-stage4-target-libtermcap: maybe-all-stage4-target-libatomic +configure-stageprofile-target-libtermcap: maybe-all-stageprofile-target-libatomic +configure-stagetrain-target-libtermcap: maybe-all-stagetrain-target-libatomic +configure-stagefeedback-target-libtermcap: maybe-all-stagefeedback-target-libatomic +configure-stageautoprofile-target-libtermcap: maybe-all-stageautoprofile-target-libatomic +configure-stageautofeedback-target-libtermcap: maybe-all-stageautofeedback-target-libatomic +configure-stage1-target-winsup: maybe-all-stage1-target-libatomic +configure-stage2-target-winsup: maybe-all-stage2-target-libatomic +configure-stage3-target-winsup: maybe-all-stage3-target-libatomic +configure-stage4-target-winsup: maybe-all-stage4-target-libatomic +configure-stageprofile-target-winsup: maybe-all-stageprofile-target-libatomic +configure-stagetrain-target-winsup: maybe-all-stagetrain-target-libatomic +configure-stagefeedback-target-winsup: maybe-all-stagefeedback-target-libatomic +configure-stageautoprofile-target-winsup: maybe-all-stageautoprofile-target-libatomic +configure-stageautofeedback-target-winsup: maybe-all-stageautofeedback-target-libatomic +configure-stage1-target-libffi: maybe-all-stage1-target-libatomic +configure-stage2-target-libffi: maybe-all-stage2-target-libatomic +configure-stage3-target-libffi: maybe-all-stage3-target-libatomic +configure-stage4-target-libffi: maybe-all-stage4-target-libatomic +configure-stageprofile-target-libffi: maybe-all-stageprofile-target-libatomic +configure-stagetrain-target-libffi: maybe-all-stagetrain-target-libatomic +configure-stagefeedback-target-libffi: maybe-all-stagefeedback-target-libatomic +configure-stageautoprofile-target-libffi: maybe-all-stageautoprofile-target-libatomic +configure-stageautofeedback-target-libffi: maybe-all-stageautofeedback-target-libatomic +configure-stage1-target-zlib: maybe-all-stage1-target-libatomic +configure-stage2-target-zlib: maybe-all-stage2-target-libatomic +configure-stage3-target-zlib: maybe-all-stage3-target-libatomic +configure-stage4-target-zlib: maybe-all-stage4-target-libatomic +configure-stageprofile-target-zlib: maybe-all-stageprofile-target-libatomic +configure-stagetrain-target-zlib: maybe-all-stagetrain-target-libatomic +configure-stagefeedback-target-zlib: maybe-all-stagefeedback-target-libatomic +configure-stageautoprofile-target-zlib: maybe-all-stageautoprofile-target-libatomic +configure-stageautofeedback-target-zlib: maybe-all-stageautofeedback-target-libatomic +configure-stage1-target-rda: maybe-all-stage1-target-libatomic +configure-stage2-target-rda: maybe-all-stage2-target-libatomic +configure-stage3-target-rda: maybe-all-stage3-target-libatomic +configure-stage4-target-rda: maybe-all-stage4-target-libatomic +configure-stageprofile-target-rda: maybe-all-stageprofile-target-libatomic +configure-stagetrain-target-rda: maybe-all-stagetrain-target-libatomic +configure-stagefeedback-target-rda: maybe-all-stagefeedback-target-libatomic +configure-stageautoprofile-target-rda: maybe-all-stageautoprofile-target-libatomic +configure-stageautofeedback-target-rda: maybe-all-stageautofeedback-target-libatomic +configure-stage1-target-libada: maybe-all-stage1-target-libatomic +configure-stage2-target-libada: maybe-all-stage2-target-libatomic +configure-stage3-target-libada: maybe-all-stage3-target-libatomic +configure-stage4-target-libada: maybe-all-stage4-target-libatomic +configure-stageprofile-target-libada: maybe-all-stageprofile-target-libatomic +configure-stagetrain-target-libada: maybe-all-stagetrain-target-libatomic +configure-stagefeedback-target-libada: maybe-all-stagefeedback-target-libatomic +configure-stageautoprofile-target-libada: maybe-all-stageautoprofile-target-libatomic +configure-stageautofeedback-target-libada: maybe-all-stageautofeedback-target-libatomic +configure-stage1-target-libgm2: maybe-all-stage1-target-libatomic +configure-stage2-target-libgm2: maybe-all-stage2-target-libatomic +configure-stage3-target-libgm2: maybe-all-stage3-target-libatomic +configure-stage4-target-libgm2: maybe-all-stage4-target-libatomic +configure-stageprofile-target-libgm2: maybe-all-stageprofile-target-libatomic +configure-stagetrain-target-libgm2: maybe-all-stagetrain-target-libatomic +configure-stagefeedback-target-libgm2: maybe-all-stagefeedback-target-libatomic +configure-stageautoprofile-target-libgm2: maybe-all-stageautoprofile-target-libatomic +configure-stageautofeedback-target-libgm2: maybe-all-stageautofeedback-target-libatomic +configure-stage1-target-libgomp: maybe-all-stage1-target-libatomic +configure-stage2-target-libgomp: maybe-all-stage2-target-libatomic +configure-stage3-target-libgomp: maybe-all-stage3-target-libatomic +configure-stage4-target-libgomp: maybe-all-stage4-target-libatomic +configure-stageprofile-target-libgomp: maybe-all-stageprofile-target-libatomic +configure-stagetrain-target-libgomp: maybe-all-stagetrain-target-libatomic +configure-stagefeedback-target-libgomp: maybe-all-stagefeedback-target-libatomic +configure-stageautoprofile-target-libgomp: maybe-all-stageautoprofile-target-libatomic +configure-stageautofeedback-target-libgomp: maybe-all-stageautofeedback-target-libatomic +configure-stage1-target-libitm: maybe-all-stage1-target-libatomic +configure-stage2-target-libitm: maybe-all-stage2-target-libatomic +configure-stage3-target-libitm: maybe-all-stage3-target-libatomic +configure-stage4-target-libitm: maybe-all-stage4-target-libatomic +configure-stageprofile-target-libitm: maybe-all-stageprofile-target-libatomic +configure-stagetrain-target-libitm: maybe-all-stagetrain-target-libatomic +configure-stagefeedback-target-libitm: maybe-all-stagefeedback-target-libatomic +configure-stageautoprofile-target-libitm: maybe-all-stageautoprofile-target-libatomic +configure-stageautofeedback-target-libitm: maybe-all-stageautofeedback-target-libatomic +configure-stage1-target-libgrust: maybe-all-stage1-target-libatomic +configure-stage2-target-libgrust: maybe-all-stage2-target-libatomic +configure-stage3-target-libgrust: maybe-all-stage3-target-libatomic +configure-stage4-target-libgrust: maybe-all-stage4-target-libatomic +configure-stageprofile-target-libgrust: maybe-all-stageprofile-target-libatomic +configure-stagetrain-target-libgrust: maybe-all-stagetrain-target-libatomic +configure-stagefeedback-target-libgrust: maybe-all-stagefeedback-target-libatomic +configure-stageautoprofile-target-libgrust: maybe-all-stageautoprofile-target-libatomic +configure-stageautofeedback-target-libgrust: maybe-all-stageautofeedback-target-libatomic +@endif gcc-bootstrap + +@if gcc-no-bootstrap +configure-target-libstdc++-v3: maybe-all-target-libatomic +configure-target-libsanitizer: maybe-all-target-libatomic +configure-target-libvtv: maybe-all-target-libatomic +configure-target-libssp: maybe-all-target-libatomic +configure-target-libbacktrace: maybe-all-target-libatomic +configure-target-libquadmath: maybe-all-target-libatomic +configure-target-libgfortran: maybe-all-target-libatomic +configure-target-libobjc: maybe-all-target-libatomic +configure-target-libgo: maybe-all-target-libatomic +configure-target-libphobos: maybe-all-target-libatomic +configure-target-libtermcap: maybe-all-target-libatomic +configure-target-winsup: maybe-all-target-libatomic +configure-target-libffi: maybe-all-target-libatomic +configure-target-zlib: maybe-all-target-libatomic +configure-target-rda: maybe-all-target-libatomic +configure-target-libada: maybe-all-target-libatomic +configure-target-libgm2: maybe-all-target-libatomic +configure-target-libgomp: maybe-all-target-libatomic +configure-target-libitm: maybe-all-target-libatomic +configure-target-libgrust: maybe-all-target-libatomic +@endif gcc-no-bootstrap + configure-target-libbacktrace: maybe-all-target-newlib maybe-all-target-libgloss +@if gcc-bootstrap +configure-stage1-target-libstdc++-v3: maybe-all-stage1-target-libatomic +configure-stage2-target-libstdc++-v3: maybe-all-stage2-target-libatomic +configure-stage3-target-libstdc++-v3: maybe-all-stage3-target-libatomic +configure-stage4-target-libstdc++-v3: maybe-all-stage4-target-libatomic +configure-stageprofile-target-libstdc++-v3: maybe-all-stageprofile-target-libatomic +configure-stagetrain-target-libstdc++-v3: maybe-all-stagetrain-target-libatomic +configure-stagefeedback-target-libstdc++-v3: maybe-all-stagefeedback-target-libatomic +configure-stageautoprofile-target-libstdc++-v3: maybe-all-stageautoprofile-target-libatomic +configure-stageautofeedback-target-libstdc++-v3: maybe-all-stageautofeedback-target-libatomic +configure-stage1-target-libsanitizer: maybe-all-stage1-target-libatomic +configure-stage2-target-libsanitizer: maybe-all-stage2-target-libatomic +configure-stage3-target-libsanitizer: maybe-all-stage3-target-libatomic +configure-stage4-target-libsanitizer: maybe-all-stage4-target-libatomic +configure-stageprofile-target-libsanitizer: maybe-all-stageprofile-target-libatomic +configure-stagetrain-target-libsanitizer: maybe-all-stagetrain-target-libatomic +configure-stagefeedback-target-libsanitizer: maybe-all-stagefeedback-target-libatomic +configure-stageautoprofile-target-libsanitizer: maybe-all-stageautoprofile-target-libatomic +configure-stageautofeedback-target-libsanitizer: maybe-all-stageautofeedback-target-libatomic +configure-stage1-target-libvtv: maybe-all-stage1-target-libatomic +configure-stage2-target-libvtv: maybe-all-stage2-target-libatomic +configure-stage3-target-libvtv: maybe-all-stage3-target-libatomic +configure-stage4-target-libvtv: maybe-all-stage4-target-libatomic +configure-stageprofile-target-libvtv: maybe-all-stageprofile-target-libatomic +configure-stagetrain-target-libvtv: maybe-all-stagetrain-target-libatomic +configure-stagefeedback-target-libvtv: maybe-all-stagefeedback-target-libatomic +configure-stageautoprofile-target-libvtv: maybe-all-stageautoprofile-target-libatomic +configure-stageautofeedback-target-libvtv: maybe-all-stageautofeedback-target-libatomic +configure-stage1-target-libssp: maybe-all-stage1-target-libatomic +configure-stage2-target-libssp: maybe-all-stage2-target-libatomic +configure-stage3-target-libssp: maybe-all-stage3-target-libatomic +configure-stage4-target-libssp: maybe-all-stage4-target-libatomic +configure-stageprofile-target-libssp: maybe-all-stageprofile-target-libatomic +configure-stagetrain-target-libssp: maybe-all-stagetrain-target-libatomic +configure-stagefeedback-target-libssp: maybe-all-stagefeedback-target-libatomic +configure-stageautoprofile-target-libssp: maybe-all-stageautoprofile-target-libatomic +configure-stageautofeedback-target-libssp: maybe-all-stageautofeedback-target-libatomic +configure-stage1-target-libbacktrace: maybe-all-stage1-target-libatomic +configure-stage2-target-libbacktrace: maybe-all-stage2-target-libatomic +configure-stage3-target-libbacktrace: maybe-all-stage3-target-libatomic +configure-stage4-target-libbacktrace: maybe-all-stage4-target-libatomic +configure-stageprofile-target-libbacktrace: maybe-all-stageprofile-target-libatomic +configure-stagetrain-target-libbacktrace: maybe-all-stagetrain-target-libatomic +configure-stagefeedback-target-libbacktrace: maybe-all-stagefeedback-target-libatomic +configure-stageautoprofile-target-libbacktrace: maybe-all-stageautoprofile-target-libatomic +configure-stageautofeedback-target-libbacktrace: maybe-all-stageautofeedback-target-libatomic +configure-stage1-target-libquadmath: maybe-all-stage1-target-libatomic +configure-stage2-target-libquadmath: maybe-all-stage2-target-libatomic +configure-stage3-target-libquadmath: maybe-all-stage3-target-libatomic +configure-stage4-target-libquadmath: maybe-all-stage4-target-libatomic +configure-stageprofile-target-libquadmath: maybe-all-stageprofile-target-libatomic +configure-stagetrain-target-libquadmath: maybe-all-stagetrain-target-libatomic +configure-stagefeedback-target-libquadmath: maybe-all-stagefeedback-target-libatomic +configure-stageautoprofile-target-libquadmath: maybe-all-stageautoprofile-target-libatomic +configure-stageautofeedback-target-libquadmath: maybe-all-stageautofeedback-target-libatomic +configure-stage1-target-libgfortran: maybe-all-stage1-target-libatomic +configure-stage2-target-libgfortran: maybe-all-stage2-target-libatomic +configure-stage3-target-libgfortran: maybe-all-stage3-target-libatomic +configure-stage4-target-libgfortran: maybe-all-stage4-target-libatomic +configure-stageprofile-target-libgfortran: maybe-all-stageprofile-target-libatomic +configure-stagetrain-target-libgfortran: maybe-all-stagetrain-target-libatomic +configure-stagefeedback-target-libgfortran: maybe-all-stagefeedback-target-libatomic +configure-stageautoprofile-target-libgfortran: maybe-all-stageautoprofile-target-libatomic +configure-stageautofeedback-target-libgfortran: maybe-all-stageautofeedback-target-libatomic +configure-stage1-target-libobjc: maybe-all-stage1-target-libatomic +configure-stage2-target-libobjc: maybe-all-stage2-target-libatomic +configure-stage3-target-libobjc: maybe-all-stage3-target-libatomic +configure-stage4-target-libobjc: maybe-all-stage4-target-libatomic +configure-stageprofile-target-libobjc: maybe-all-stageprofile-target-libatomic +configure-stagetrain-target-libobjc: maybe-all-stagetrain-target-libatomic +configure-stagefeedback-target-libobjc: maybe-all-stagefeedback-target-libatomic +configure-stageautoprofile-target-libobjc: maybe-all-stageautoprofile-target-libatomic +configure-stageautofeedback-target-libobjc: maybe-all-stageautofeedback-target-libatomic +configure-stage1-target-libgo: maybe-all-stage1-target-libatomic +configure-stage2-target-libgo: maybe-all-stage2-target-libatomic +configure-stage3-target-libgo: maybe-all-stage3-target-libatomic +configure-stage4-target-libgo: maybe-all-stage4-target-libatomic +configure-stageprofile-target-libgo: maybe-all-stageprofile-target-libatomic +configure-stagetrain-target-libgo: maybe-all-stagetrain-target-libatomic +configure-stagefeedback-target-libgo: maybe-all-stagefeedback-target-libatomic +configure-stageautoprofile-target-libgo: maybe-all-stageautoprofile-target-libatomic +configure-stageautofeedback-target-libgo: maybe-all-stageautofeedback-target-libatomic +configure-stage1-target-libphobos: maybe-all-stage1-target-libatomic +configure-stage2-target-libphobos: maybe-all-stage2-target-libatomic +configure-stage3-target-libphobos: maybe-all-stage3-target-libatomic +configure-stage4-target-libphobos: maybe-all-stage4-target-libatomic +configure-stageprofile-target-libphobos: maybe-all-stageprofile-target-libatomic +configure-stagetrain-target-libphobos: maybe-all-stagetrain-target-libatomic +configure-stagefeedback-target-libphobos: maybe-all-stagefeedback-target-libatomic +configure-stageautoprofile-target-libphobos: maybe-all-stageautoprofile-target-libatomic +configure-stageautofeedback-target-libphobos: maybe-all-stageautofeedback-target-libatomic +configure-stage1-target-libtermcap: maybe-all-stage1-target-libatomic +configure-stage2-target-libtermcap: maybe-all-stage2-target-libatomic +configure-stage3-target-libtermcap: maybe-all-stage3-target-libatomic +configure-stage4-target-libtermcap: maybe-all-stage4-target-libatomic +configure-stageprofile-target-libtermcap: maybe-all-stageprofile-target-libatomic +configure-stagetrain-target-libtermcap: maybe-all-stagetrain-target-libatomic +configure-stagefeedback-target-libtermcap: maybe-all-stagefeedback-target-libatomic +configure-stageautoprofile-target-libtermcap: maybe-all-stageautoprofile-target-libatomic +configure-stageautofeedback-target-libtermcap: maybe-all-stageautofeedback-target-libatomic +configure-stage1-target-winsup: maybe-all-stage1-target-libatomic +configure-stage2-target-winsup: maybe-all-stage2-target-libatomic +configure-stage3-target-winsup: maybe-all-stage3-target-libatomic +configure-stage4-target-winsup: maybe-all-stage4-target-libatomic +configure-stageprofile-target-winsup: maybe-all-stageprofile-target-libatomic +configure-stagetrain-target-winsup: maybe-all-stagetrain-target-libatomic +configure-stagefeedback-target-winsup: maybe-all-stagefeedback-target-libatomic +configure-stageautoprofile-target-winsup: maybe-all-stageautoprofile-target-libatomic +configure-stageautofeedback-target-winsup: maybe-all-stageautofeedback-target-libatomic +configure-stage1-target-libffi: maybe-all-stage1-target-libatomic +configure-stage2-target-libffi: maybe-all-stage2-target-libatomic +configure-stage3-target-libffi: maybe-all-stage3-target-libatomic +configure-stage4-target-libffi: maybe-all-stage4-target-libatomic +configure-stageprofile-target-libffi: maybe-all-stageprofile-target-libatomic +configure-stagetrain-target-libffi: maybe-all-stagetrain-target-libatomic +configure-stagefeedback-target-libffi: maybe-all-stagefeedback-target-libatomic +configure-stageautoprofile-target-libffi: maybe-all-stageautoprofile-target-libatomic +configure-stageautofeedback-target-libffi: maybe-all-stageautofeedback-target-libatomic +configure-stage1-target-zlib: maybe-all-stage1-target-libatomic +configure-stage2-target-zlib: maybe-all-stage2-target-libatomic +configure-stage3-target-zlib: maybe-all-stage3-target-libatomic +configure-stage4-target-zlib: maybe-all-stage4-target-libatomic +configure-stageprofile-target-zlib: maybe-all-stageprofile-target-libatomic +configure-stagetrain-target-zlib: maybe-all-stagetrain-target-libatomic +configure-stagefeedback-target-zlib: maybe-all-stagefeedback-target-libatomic +configure-stageautoprofile-target-zlib: maybe-all-stageautoprofile-target-libatomic +configure-stageautofeedback-target-zlib: maybe-all-stageautofeedback-target-libatomic +configure-stage1-target-rda: maybe-all-stage1-target-libatomic +configure-stage2-target-rda: maybe-all-stage2-target-libatomic +configure-stage3-target-rda: maybe-all-stage3-target-libatomic +configure-stage4-target-rda: maybe-all-stage4-target-libatomic +configure-stageprofile-target-rda: maybe-all-stageprofile-target-libatomic +configure-stagetrain-target-rda: maybe-all-stagetrain-target-libatomic +configure-stagefeedback-target-rda: maybe-all-stagefeedback-target-libatomic +configure-stageautoprofile-target-rda: maybe-all-stageautoprofile-target-libatomic +configure-stageautofeedback-target-rda: maybe-all-stageautofeedback-target-libatomic +configure-stage1-target-libada: maybe-all-stage1-target-libatomic +configure-stage2-target-libada: maybe-all-stage2-target-libatomic +configure-stage3-target-libada: maybe-all-stage3-target-libatomic +configure-stage4-target-libada: maybe-all-stage4-target-libatomic +configure-stageprofile-target-libada: maybe-all-stageprofile-target-libatomic +configure-stagetrain-target-libada: maybe-all-stagetrain-target-libatomic +configure-stagefeedback-target-libada: maybe-all-stagefeedback-target-libatomic +configure-stageautoprofile-target-libada: maybe-all-stageautoprofile-target-libatomic +configure-stageautofeedback-target-libada: maybe-all-stageautofeedback-target-libatomic +configure-stage1-target-libgm2: maybe-all-stage1-target-libatomic +configure-stage2-target-libgm2: maybe-all-stage2-target-libatomic +configure-stage3-target-libgm2: maybe-all-stage3-target-libatomic +configure-stage4-target-libgm2: maybe-all-stage4-target-libatomic +configure-stageprofile-target-libgm2: maybe-all-stageprofile-target-libatomic +configure-stagetrain-target-libgm2: maybe-all-stagetrain-target-libatomic +configure-stagefeedback-target-libgm2: maybe-all-stagefeedback-target-libatomic +configure-stageautoprofile-target-libgm2: maybe-all-stageautoprofile-target-libatomic +configure-stageautofeedback-target-libgm2: maybe-all-stageautofeedback-target-libatomic +configure-stage1-target-libgomp: maybe-all-stage1-target-libatomic +configure-stage2-target-libgomp: maybe-all-stage2-target-libatomic +configure-stage3-target-libgomp: maybe-all-stage3-target-libatomic +configure-stage4-target-libgomp: maybe-all-stage4-target-libatomic +configure-stageprofile-target-libgomp: maybe-all-stageprofile-target-libatomic +configure-stagetrain-target-libgomp: maybe-all-stagetrain-target-libatomic +configure-stagefeedback-target-libgomp: maybe-all-stagefeedback-target-libatomic +configure-stageautoprofile-target-libgomp: maybe-all-stageautoprofile-target-libatomic +configure-stageautofeedback-target-libgomp: maybe-all-stageautofeedback-target-libatomic +configure-stage1-target-libitm: maybe-all-stage1-target-libatomic +configure-stage2-target-libitm: maybe-all-stage2-target-libatomic +configure-stage3-target-libitm: maybe-all-stage3-target-libatomic +configure-stage4-target-libitm: maybe-all-stage4-target-libatomic +configure-stageprofile-target-libitm: maybe-all-stageprofile-target-libatomic +configure-stagetrain-target-libitm: maybe-all-stagetrain-target-libatomic +configure-stagefeedback-target-libitm: maybe-all-stagefeedback-target-libatomic +configure-stageautoprofile-target-libitm: maybe-all-stageautoprofile-target-libatomic +configure-stageautofeedback-target-libitm: maybe-all-stageautofeedback-target-libatomic +configure-stage1-target-libgrust: maybe-all-stage1-target-libatomic +configure-stage2-target-libgrust: maybe-all-stage2-target-libatomic +configure-stage3-target-libgrust: maybe-all-stage3-target-libatomic +configure-stage4-target-libgrust: maybe-all-stage4-target-libatomic +configure-stageprofile-target-libgrust: maybe-all-stageprofile-target-libatomic +configure-stagetrain-target-libgrust: maybe-all-stagetrain-target-libatomic +configure-stagefeedback-target-libgrust: maybe-all-stagefeedback-target-libatomic +configure-stageautoprofile-target-libgrust: maybe-all-stageautoprofile-target-libatomic +configure-stageautofeedback-target-libgrust: maybe-all-stageautofeedback-target-libatomic +@endif gcc-bootstrap + +@if gcc-no-bootstrap +configure-target-libstdc++-v3: maybe-all-target-libatomic +configure-target-libsanitizer: maybe-all-target-libatomic +configure-target-libvtv: maybe-all-target-libatomic +configure-target-libssp: maybe-all-target-libatomic +configure-target-libbacktrace: maybe-all-target-libatomic +configure-target-libquadmath: maybe-all-target-libatomic +configure-target-libgfortran: maybe-all-target-libatomic +configure-target-libobjc: maybe-all-target-libatomic +configure-target-libgo: maybe-all-target-libatomic +configure-target-libphobos: maybe-all-target-libatomic +configure-target-libtermcap: maybe-all-target-libatomic +configure-target-winsup: maybe-all-target-libatomic +configure-target-libffi: maybe-all-target-libatomic +configure-target-zlib: maybe-all-target-libatomic +configure-target-rda: maybe-all-target-libatomic +configure-target-libada: maybe-all-target-libatomic +configure-target-libgm2: maybe-all-target-libatomic +configure-target-libgomp: maybe-all-target-libatomic +configure-target-libitm: maybe-all-target-libatomic +configure-target-libgrust: maybe-all-target-libatomic +@endif gcc-no-bootstrap + configure-target-libquadmath: maybe-all-target-newlib maybe-all-target-libgloss +@if gcc-bootstrap +configure-stage1-target-libstdc++-v3: maybe-all-stage1-target-libatomic +configure-stage2-target-libstdc++-v3: maybe-all-stage2-target-libatomic +configure-stage3-target-libstdc++-v3: maybe-all-stage3-target-libatomic +configure-stage4-target-libstdc++-v3: maybe-all-stage4-target-libatomic +configure-stageprofile-target-libstdc++-v3: maybe-all-stageprofile-target-libatomic +configure-stagetrain-target-libstdc++-v3: maybe-all-stagetrain-target-libatomic +configure-stagefeedback-target-libstdc++-v3: maybe-all-stagefeedback-target-libatomic +configure-stageautoprofile-target-libstdc++-v3: maybe-all-stageautoprofile-target-libatomic +configure-stageautofeedback-target-libstdc++-v3: maybe-all-stageautofeedback-target-libatomic +configure-stage1-target-libsanitizer: maybe-all-stage1-target-libatomic +configure-stage2-target-libsanitizer: maybe-all-stage2-target-libatomic +configure-stage3-target-libsanitizer: maybe-all-stage3-target-libatomic +configure-stage4-target-libsanitizer: maybe-all-stage4-target-libatomic +configure-stageprofile-target-libsanitizer: maybe-all-stageprofile-target-libatomic +configure-stagetrain-target-libsanitizer: maybe-all-stagetrain-target-libatomic +configure-stagefeedback-target-libsanitizer: maybe-all-stagefeedback-target-libatomic +configure-stageautoprofile-target-libsanitizer: maybe-all-stageautoprofile-target-libatomic +configure-stageautofeedback-target-libsanitizer: maybe-all-stageautofeedback-target-libatomic +configure-stage1-target-libvtv: maybe-all-stage1-target-libatomic +configure-stage2-target-libvtv: maybe-all-stage2-target-libatomic +configure-stage3-target-libvtv: maybe-all-stage3-target-libatomic +configure-stage4-target-libvtv: maybe-all-stage4-target-libatomic +configure-stageprofile-target-libvtv: maybe-all-stageprofile-target-libatomic +configure-stagetrain-target-libvtv: maybe-all-stagetrain-target-libatomic +configure-stagefeedback-target-libvtv: maybe-all-stagefeedback-target-libatomic +configure-stageautoprofile-target-libvtv: maybe-all-stageautoprofile-target-libatomic +configure-stageautofeedback-target-libvtv: maybe-all-stageautofeedback-target-libatomic +configure-stage1-target-libbacktrace: maybe-all-stage1-target-libatomic +configure-stage2-target-libbacktrace: maybe-all-stage2-target-libatomic +configure-stage3-target-libbacktrace: maybe-all-stage3-target-libatomic +configure-stage4-target-libbacktrace: maybe-all-stage4-target-libatomic +configure-stageprofile-target-libbacktrace: maybe-all-stageprofile-target-libatomic +configure-stagetrain-target-libbacktrace: maybe-all-stagetrain-target-libatomic +configure-stagefeedback-target-libbacktrace: maybe-all-stagefeedback-target-libatomic +configure-stageautoprofile-target-libbacktrace: maybe-all-stageautoprofile-target-libatomic +configure-stageautofeedback-target-libbacktrace: maybe-all-stageautofeedback-target-libatomic +configure-stage1-target-libphobos: maybe-all-stage1-target-libatomic +configure-stage2-target-libphobos: maybe-all-stage2-target-libatomic +configure-stage3-target-libphobos: maybe-all-stage3-target-libatomic +configure-stage4-target-libphobos: maybe-all-stage4-target-libatomic +configure-stageprofile-target-libphobos: maybe-all-stageprofile-target-libatomic +configure-stagetrain-target-libphobos: maybe-all-stagetrain-target-libatomic +configure-stagefeedback-target-libphobos: maybe-all-stagefeedback-target-libatomic +configure-stageautoprofile-target-libphobos: maybe-all-stageautoprofile-target-libatomic +configure-stageautofeedback-target-libphobos: maybe-all-stageautofeedback-target-libatomic +configure-stage1-target-zlib: maybe-all-stage1-target-libatomic +configure-stage2-target-zlib: maybe-all-stage2-target-libatomic +configure-stage3-target-zlib: maybe-all-stage3-target-libatomic +configure-stage4-target-zlib: maybe-all-stage4-target-libatomic +configure-stageprofile-target-zlib: maybe-all-stageprofile-target-libatomic +configure-stagetrain-target-zlib: maybe-all-stagetrain-target-libatomic +configure-stagefeedback-target-zlib: maybe-all-stagefeedback-target-libatomic +configure-stageautoprofile-target-zlib: maybe-all-stageautoprofile-target-libatomic +configure-stageautofeedback-target-zlib: maybe-all-stageautofeedback-target-libatomic +configure-stage1-target-libgomp: maybe-all-stage1-target-libatomic +configure-stage2-target-libgomp: maybe-all-stage2-target-libatomic +configure-stage3-target-libgomp: maybe-all-stage3-target-libatomic +configure-stage4-target-libgomp: maybe-all-stage4-target-libatomic +configure-stageprofile-target-libgomp: maybe-all-stageprofile-target-libatomic +configure-stagetrain-target-libgomp: maybe-all-stagetrain-target-libatomic +configure-stagefeedback-target-libgomp: maybe-all-stagefeedback-target-libatomic +configure-stageautoprofile-target-libgomp: maybe-all-stageautoprofile-target-libatomic +configure-stageautofeedback-target-libgomp: maybe-all-stageautofeedback-target-libatomic +@endif gcc-bootstrap + +@if gcc-no-bootstrap +configure-target-libstdc++-v3: maybe-all-target-libatomic +configure-target-libsanitizer: maybe-all-target-libatomic +configure-target-libvtv: maybe-all-target-libatomic +configure-target-libssp: maybe-all-target-libatomic +configure-target-libbacktrace: maybe-all-target-libatomic +configure-target-libquadmath: maybe-all-target-libatomic +configure-target-libgfortran: maybe-all-target-libatomic +configure-target-libobjc: maybe-all-target-libatomic +configure-target-libgo: maybe-all-target-libatomic +configure-target-libphobos: maybe-all-target-libatomic +configure-target-libtermcap: maybe-all-target-libatomic +configure-target-winsup: maybe-all-target-libatomic +configure-target-libffi: maybe-all-target-libatomic +configure-target-zlib: maybe-all-target-libatomic +configure-target-rda: maybe-all-target-libatomic +configure-target-libada: maybe-all-target-libatomic +configure-target-libgm2: maybe-all-target-libatomic +configure-target-libgomp: maybe-all-target-libatomic +configure-target-libitm: maybe-all-target-libatomic +configure-target-libgrust: maybe-all-target-libatomic +@endif gcc-no-bootstrap + configure-target-libgfortran: maybe-all-target-newlib maybe-all-target-libgloss +@if gcc-bootstrap +configure-stage1-target-libstdc++-v3: maybe-all-stage1-target-libatomic +configure-stage2-target-libstdc++-v3: maybe-all-stage2-target-libatomic +configure-stage3-target-libstdc++-v3: maybe-all-stage3-target-libatomic +configure-stage4-target-libstdc++-v3: maybe-all-stage4-target-libatomic +configure-stageprofile-target-libstdc++-v3: maybe-all-stageprofile-target-libatomic +configure-stagetrain-target-libstdc++-v3: maybe-all-stagetrain-target-libatomic +configure-stagefeedback-target-libstdc++-v3: maybe-all-stagefeedback-target-libatomic +configure-stageautoprofile-target-libstdc++-v3: maybe-all-stageautoprofile-target-libatomic +configure-stageautofeedback-target-libstdc++-v3: maybe-all-stageautofeedback-target-libatomic +configure-stage1-target-libsanitizer: maybe-all-stage1-target-libatomic +configure-stage2-target-libsanitizer: maybe-all-stage2-target-libatomic +configure-stage3-target-libsanitizer: maybe-all-stage3-target-libatomic +configure-stage4-target-libsanitizer: maybe-all-stage4-target-libatomic +configure-stageprofile-target-libsanitizer: maybe-all-stageprofile-target-libatomic +configure-stagetrain-target-libsanitizer: maybe-all-stagetrain-target-libatomic +configure-stagefeedback-target-libsanitizer: maybe-all-stagefeedback-target-libatomic +configure-stageautoprofile-target-libsanitizer: maybe-all-stageautoprofile-target-libatomic +configure-stageautofeedback-target-libsanitizer: maybe-all-stageautofeedback-target-libatomic +configure-stage1-target-libvtv: maybe-all-stage1-target-libatomic +configure-stage2-target-libvtv: maybe-all-stage2-target-libatomic +configure-stage3-target-libvtv: maybe-all-stage3-target-libatomic +configure-stage4-target-libvtv: maybe-all-stage4-target-libatomic +configure-stageprofile-target-libvtv: maybe-all-stageprofile-target-libatomic +configure-stagetrain-target-libvtv: maybe-all-stagetrain-target-libatomic +configure-stagefeedback-target-libvtv: maybe-all-stagefeedback-target-libatomic +configure-stageautoprofile-target-libvtv: maybe-all-stageautoprofile-target-libatomic +configure-stageautofeedback-target-libvtv: maybe-all-stageautofeedback-target-libatomic +configure-stage1-target-libbacktrace: maybe-all-stage1-target-libatomic +configure-stage2-target-libbacktrace: maybe-all-stage2-target-libatomic +configure-stage3-target-libbacktrace: maybe-all-stage3-target-libatomic +configure-stage4-target-libbacktrace: maybe-all-stage4-target-libatomic +configure-stageprofile-target-libbacktrace: maybe-all-stageprofile-target-libatomic +configure-stagetrain-target-libbacktrace: maybe-all-stagetrain-target-libatomic +configure-stagefeedback-target-libbacktrace: maybe-all-stagefeedback-target-libatomic +configure-stageautoprofile-target-libbacktrace: maybe-all-stageautoprofile-target-libatomic +configure-stageautofeedback-target-libbacktrace: maybe-all-stageautofeedback-target-libatomic +configure-stage1-target-libphobos: maybe-all-stage1-target-libatomic +configure-stage2-target-libphobos: maybe-all-stage2-target-libatomic +configure-stage3-target-libphobos: maybe-all-stage3-target-libatomic +configure-stage4-target-libphobos: maybe-all-stage4-target-libatomic +configure-stageprofile-target-libphobos: maybe-all-stageprofile-target-libatomic +configure-stagetrain-target-libphobos: maybe-all-stagetrain-target-libatomic +configure-stagefeedback-target-libphobos: maybe-all-stagefeedback-target-libatomic +configure-stageautoprofile-target-libphobos: maybe-all-stageautoprofile-target-libatomic +configure-stageautofeedback-target-libphobos: maybe-all-stageautofeedback-target-libatomic +configure-stage1-target-zlib: maybe-all-stage1-target-libatomic +configure-stage2-target-zlib: maybe-all-stage2-target-libatomic +configure-stage3-target-zlib: maybe-all-stage3-target-libatomic +configure-stage4-target-zlib: maybe-all-stage4-target-libatomic +configure-stageprofile-target-zlib: maybe-all-stageprofile-target-libatomic +configure-stagetrain-target-zlib: maybe-all-stagetrain-target-libatomic +configure-stagefeedback-target-zlib: maybe-all-stagefeedback-target-libatomic +configure-stageautoprofile-target-zlib: maybe-all-stageautoprofile-target-libatomic +configure-stageautofeedback-target-zlib: maybe-all-stageautofeedback-target-libatomic +configure-stage1-target-libgomp: maybe-all-stage1-target-libatomic +configure-stage2-target-libgomp: maybe-all-stage2-target-libatomic +configure-stage3-target-libgomp: maybe-all-stage3-target-libatomic +configure-stage4-target-libgomp: maybe-all-stage4-target-libatomic +configure-stageprofile-target-libgomp: maybe-all-stageprofile-target-libatomic +configure-stagetrain-target-libgomp: maybe-all-stagetrain-target-libatomic +configure-stagefeedback-target-libgomp: maybe-all-stagefeedback-target-libatomic +configure-stageautoprofile-target-libgomp: maybe-all-stageautoprofile-target-libatomic +configure-stageautofeedback-target-libgomp: maybe-all-stageautofeedback-target-libatomic +@endif gcc-bootstrap + +@if gcc-no-bootstrap +configure-target-libstdc++-v3: maybe-all-target-libatomic +configure-target-libsanitizer: maybe-all-target-libatomic +configure-target-libvtv: maybe-all-target-libatomic +configure-target-libssp: maybe-all-target-libatomic +configure-target-libbacktrace: maybe-all-target-libatomic +configure-target-libquadmath: maybe-all-target-libatomic +configure-target-libgfortran: maybe-all-target-libatomic +configure-target-libobjc: maybe-all-target-libatomic +configure-target-libgo: maybe-all-target-libatomic +configure-target-libphobos: maybe-all-target-libatomic +configure-target-libtermcap: maybe-all-target-libatomic +configure-target-winsup: maybe-all-target-libatomic +configure-target-libffi: maybe-all-target-libatomic +configure-target-zlib: maybe-all-target-libatomic +configure-target-rda: maybe-all-target-libatomic +configure-target-libada: maybe-all-target-libatomic +configure-target-libgm2: maybe-all-target-libatomic +configure-target-libgomp: maybe-all-target-libatomic +configure-target-libitm: maybe-all-target-libatomic +configure-target-libgrust: maybe-all-target-libatomic +@endif gcc-no-bootstrap + configure-target-libobjc: maybe-all-target-newlib maybe-all-target-libgloss +@if gcc-bootstrap +configure-stage1-target-libstdc++-v3: maybe-all-stage1-target-libatomic +configure-stage2-target-libstdc++-v3: maybe-all-stage2-target-libatomic +configure-stage3-target-libstdc++-v3: maybe-all-stage3-target-libatomic +configure-stage4-target-libstdc++-v3: maybe-all-stage4-target-libatomic +configure-stageprofile-target-libstdc++-v3: maybe-all-stageprofile-target-libatomic +configure-stagetrain-target-libstdc++-v3: maybe-all-stagetrain-target-libatomic +configure-stagefeedback-target-libstdc++-v3: maybe-all-stagefeedback-target-libatomic +configure-stageautoprofile-target-libstdc++-v3: maybe-all-stageautoprofile-target-libatomic +configure-stageautofeedback-target-libstdc++-v3: maybe-all-stageautofeedback-target-libatomic +configure-stage1-target-libsanitizer: maybe-all-stage1-target-libatomic +configure-stage2-target-libsanitizer: maybe-all-stage2-target-libatomic +configure-stage3-target-libsanitizer: maybe-all-stage3-target-libatomic +configure-stage4-target-libsanitizer: maybe-all-stage4-target-libatomic +configure-stageprofile-target-libsanitizer: maybe-all-stageprofile-target-libatomic +configure-stagetrain-target-libsanitizer: maybe-all-stagetrain-target-libatomic +configure-stagefeedback-target-libsanitizer: maybe-all-stagefeedback-target-libatomic +configure-stageautoprofile-target-libsanitizer: maybe-all-stageautoprofile-target-libatomic +configure-stageautofeedback-target-libsanitizer: maybe-all-stageautofeedback-target-libatomic +configure-stage1-target-libvtv: maybe-all-stage1-target-libatomic +configure-stage2-target-libvtv: maybe-all-stage2-target-libatomic +configure-stage3-target-libvtv: maybe-all-stage3-target-libatomic +configure-stage4-target-libvtv: maybe-all-stage4-target-libatomic +configure-stageprofile-target-libvtv: maybe-all-stageprofile-target-libatomic +configure-stagetrain-target-libvtv: maybe-all-stagetrain-target-libatomic +configure-stagefeedback-target-libvtv: maybe-all-stagefeedback-target-libatomic +configure-stageautoprofile-target-libvtv: maybe-all-stageautoprofile-target-libatomic +configure-stageautofeedback-target-libvtv: maybe-all-stageautofeedback-target-libatomic +configure-stage1-target-libbacktrace: maybe-all-stage1-target-libatomic +configure-stage2-target-libbacktrace: maybe-all-stage2-target-libatomic +configure-stage3-target-libbacktrace: maybe-all-stage3-target-libatomic +configure-stage4-target-libbacktrace: maybe-all-stage4-target-libatomic +configure-stageprofile-target-libbacktrace: maybe-all-stageprofile-target-libatomic +configure-stagetrain-target-libbacktrace: maybe-all-stagetrain-target-libatomic +configure-stagefeedback-target-libbacktrace: maybe-all-stagefeedback-target-libatomic +configure-stageautoprofile-target-libbacktrace: maybe-all-stageautoprofile-target-libatomic +configure-stageautofeedback-target-libbacktrace: maybe-all-stageautofeedback-target-libatomic +configure-stage1-target-libphobos: maybe-all-stage1-target-libatomic +configure-stage2-target-libphobos: maybe-all-stage2-target-libatomic +configure-stage3-target-libphobos: maybe-all-stage3-target-libatomic +configure-stage4-target-libphobos: maybe-all-stage4-target-libatomic +configure-stageprofile-target-libphobos: maybe-all-stageprofile-target-libatomic +configure-stagetrain-target-libphobos: maybe-all-stagetrain-target-libatomic +configure-stagefeedback-target-libphobos: maybe-all-stagefeedback-target-libatomic +configure-stageautoprofile-target-libphobos: maybe-all-stageautoprofile-target-libatomic +configure-stageautofeedback-target-libphobos: maybe-all-stageautofeedback-target-libatomic +configure-stage1-target-zlib: maybe-all-stage1-target-libatomic +configure-stage2-target-zlib: maybe-all-stage2-target-libatomic +configure-stage3-target-zlib: maybe-all-stage3-target-libatomic +configure-stage4-target-zlib: maybe-all-stage4-target-libatomic +configure-stageprofile-target-zlib: maybe-all-stageprofile-target-libatomic +configure-stagetrain-target-zlib: maybe-all-stagetrain-target-libatomic +configure-stagefeedback-target-zlib: maybe-all-stagefeedback-target-libatomic +configure-stageautoprofile-target-zlib: maybe-all-stageautoprofile-target-libatomic +configure-stageautofeedback-target-zlib: maybe-all-stageautofeedback-target-libatomic +configure-stage1-target-libgomp: maybe-all-stage1-target-libatomic +configure-stage2-target-libgomp: maybe-all-stage2-target-libatomic +configure-stage3-target-libgomp: maybe-all-stage3-target-libatomic +configure-stage4-target-libgomp: maybe-all-stage4-target-libatomic +configure-stageprofile-target-libgomp: maybe-all-stageprofile-target-libatomic +configure-stagetrain-target-libgomp: maybe-all-stagetrain-target-libatomic +configure-stagefeedback-target-libgomp: maybe-all-stagefeedback-target-libatomic +configure-stageautoprofile-target-libgomp: maybe-all-stageautoprofile-target-libatomic +configure-stageautofeedback-target-libgomp: maybe-all-stageautofeedback-target-libatomic +@endif gcc-bootstrap + +@if gcc-no-bootstrap +configure-target-libstdc++-v3: maybe-all-target-libatomic +configure-target-libsanitizer: maybe-all-target-libatomic +configure-target-libvtv: maybe-all-target-libatomic +configure-target-libssp: maybe-all-target-libatomic +configure-target-libbacktrace: maybe-all-target-libatomic +configure-target-libquadmath: maybe-all-target-libatomic +configure-target-libgfortran: maybe-all-target-libatomic +configure-target-libobjc: maybe-all-target-libatomic +configure-target-libgo: maybe-all-target-libatomic +configure-target-libphobos: maybe-all-target-libatomic +configure-target-libtermcap: maybe-all-target-libatomic +configure-target-winsup: maybe-all-target-libatomic +configure-target-libffi: maybe-all-target-libatomic +configure-target-zlib: maybe-all-target-libatomic +configure-target-rda: maybe-all-target-libatomic +configure-target-libada: maybe-all-target-libatomic +configure-target-libgm2: maybe-all-target-libatomic +configure-target-libgomp: maybe-all-target-libatomic +configure-target-libitm: maybe-all-target-libatomic +configure-target-libgrust: maybe-all-target-libatomic +@endif gcc-no-bootstrap + configure-target-libgo: maybe-all-target-newlib maybe-all-target-libgloss +@if gcc-bootstrap +configure-stage1-target-libstdc++-v3: maybe-all-stage1-target-libatomic +configure-stage2-target-libstdc++-v3: maybe-all-stage2-target-libatomic +configure-stage3-target-libstdc++-v3: maybe-all-stage3-target-libatomic +configure-stage4-target-libstdc++-v3: maybe-all-stage4-target-libatomic +configure-stageprofile-target-libstdc++-v3: maybe-all-stageprofile-target-libatomic +configure-stagetrain-target-libstdc++-v3: maybe-all-stagetrain-target-libatomic +configure-stagefeedback-target-libstdc++-v3: maybe-all-stagefeedback-target-libatomic +configure-stageautoprofile-target-libstdc++-v3: maybe-all-stageautoprofile-target-libatomic +configure-stageautofeedback-target-libstdc++-v3: maybe-all-stageautofeedback-target-libatomic +configure-stage1-target-libsanitizer: maybe-all-stage1-target-libatomic +configure-stage2-target-libsanitizer: maybe-all-stage2-target-libatomic +configure-stage3-target-libsanitizer: maybe-all-stage3-target-libatomic +configure-stage4-target-libsanitizer: maybe-all-stage4-target-libatomic +configure-stageprofile-target-libsanitizer: maybe-all-stageprofile-target-libatomic +configure-stagetrain-target-libsanitizer: maybe-all-stagetrain-target-libatomic +configure-stagefeedback-target-libsanitizer: maybe-all-stagefeedback-target-libatomic +configure-stageautoprofile-target-libsanitizer: maybe-all-stageautoprofile-target-libatomic +configure-stageautofeedback-target-libsanitizer: maybe-all-stageautofeedback-target-libatomic +configure-stage1-target-libvtv: maybe-all-stage1-target-libatomic +configure-stage2-target-libvtv: maybe-all-stage2-target-libatomic +configure-stage3-target-libvtv: maybe-all-stage3-target-libatomic +configure-stage4-target-libvtv: maybe-all-stage4-target-libatomic +configure-stageprofile-target-libvtv: maybe-all-stageprofile-target-libatomic +configure-stagetrain-target-libvtv: maybe-all-stagetrain-target-libatomic +configure-stagefeedback-target-libvtv: maybe-all-stagefeedback-target-libatomic +configure-stageautoprofile-target-libvtv: maybe-all-stageautoprofile-target-libatomic +configure-stageautofeedback-target-libvtv: maybe-all-stageautofeedback-target-libatomic +configure-stage1-target-libbacktrace: maybe-all-stage1-target-libatomic +configure-stage2-target-libbacktrace: maybe-all-stage2-target-libatomic +configure-stage3-target-libbacktrace: maybe-all-stage3-target-libatomic +configure-stage4-target-libbacktrace: maybe-all-stage4-target-libatomic +configure-stageprofile-target-libbacktrace: maybe-all-stageprofile-target-libatomic +configure-stagetrain-target-libbacktrace: maybe-all-stagetrain-target-libatomic +configure-stagefeedback-target-libbacktrace: maybe-all-stagefeedback-target-libatomic +configure-stageautoprofile-target-libbacktrace: maybe-all-stageautoprofile-target-libatomic +configure-stageautofeedback-target-libbacktrace: maybe-all-stageautofeedback-target-libatomic +configure-stage1-target-libphobos: maybe-all-stage1-target-libatomic +configure-stage2-target-libphobos: maybe-all-stage2-target-libatomic +configure-stage3-target-libphobos: maybe-all-stage3-target-libatomic +configure-stage4-target-libphobos: maybe-all-stage4-target-libatomic +configure-stageprofile-target-libphobos: maybe-all-stageprofile-target-libatomic +configure-stagetrain-target-libphobos: maybe-all-stagetrain-target-libatomic +configure-stagefeedback-target-libphobos: maybe-all-stagefeedback-target-libatomic +configure-stageautoprofile-target-libphobos: maybe-all-stageautoprofile-target-libatomic +configure-stageautofeedback-target-libphobos: maybe-all-stageautofeedback-target-libatomic +configure-stage1-target-zlib: maybe-all-stage1-target-libatomic +configure-stage2-target-zlib: maybe-all-stage2-target-libatomic +configure-stage3-target-zlib: maybe-all-stage3-target-libatomic +configure-stage4-target-zlib: maybe-all-stage4-target-libatomic +configure-stageprofile-target-zlib: maybe-all-stageprofile-target-libatomic +configure-stagetrain-target-zlib: maybe-all-stagetrain-target-libatomic +configure-stagefeedback-target-zlib: maybe-all-stagefeedback-target-libatomic +configure-stageautoprofile-target-zlib: maybe-all-stageautoprofile-target-libatomic +configure-stageautofeedback-target-zlib: maybe-all-stageautofeedback-target-libatomic +configure-stage1-target-libgomp: maybe-all-stage1-target-libatomic +configure-stage2-target-libgomp: maybe-all-stage2-target-libatomic +configure-stage3-target-libgomp: maybe-all-stage3-target-libatomic +configure-stage4-target-libgomp: maybe-all-stage4-target-libatomic +configure-stageprofile-target-libgomp: maybe-all-stageprofile-target-libatomic +configure-stagetrain-target-libgomp: maybe-all-stagetrain-target-libatomic +configure-stagefeedback-target-libgomp: maybe-all-stagefeedback-target-libatomic +configure-stageautoprofile-target-libgomp: maybe-all-stageautoprofile-target-libatomic +configure-stageautofeedback-target-libgomp: maybe-all-stageautofeedback-target-libatomic +@endif gcc-bootstrap + +@if gcc-no-bootstrap +configure-target-libstdc++-v3: maybe-all-target-libatomic +configure-target-libsanitizer: maybe-all-target-libatomic +configure-target-libvtv: maybe-all-target-libatomic +configure-target-libssp: maybe-all-target-libatomic +configure-target-libbacktrace: maybe-all-target-libatomic +configure-target-libquadmath: maybe-all-target-libatomic +configure-target-libgfortran: maybe-all-target-libatomic +configure-target-libobjc: maybe-all-target-libatomic +configure-target-libgo: maybe-all-target-libatomic +configure-target-libphobos: maybe-all-target-libatomic +configure-target-libtermcap: maybe-all-target-libatomic +configure-target-winsup: maybe-all-target-libatomic +configure-target-libffi: maybe-all-target-libatomic +configure-target-zlib: maybe-all-target-libatomic +configure-target-rda: maybe-all-target-libatomic +configure-target-libada: maybe-all-target-libatomic +configure-target-libgm2: maybe-all-target-libatomic +configure-target-libgomp: maybe-all-target-libatomic +configure-target-libitm: maybe-all-target-libatomic +configure-target-libgrust: maybe-all-target-libatomic +@endif gcc-no-bootstrap + configure-target-libphobos: maybe-all-target-newlib maybe-all-target-libgloss +@if gcc-bootstrap +configure-stage1-target-libstdc++-v3: maybe-all-stage1-target-libatomic +configure-stage2-target-libstdc++-v3: maybe-all-stage2-target-libatomic +configure-stage3-target-libstdc++-v3: maybe-all-stage3-target-libatomic +configure-stage4-target-libstdc++-v3: maybe-all-stage4-target-libatomic +configure-stageprofile-target-libstdc++-v3: maybe-all-stageprofile-target-libatomic +configure-stagetrain-target-libstdc++-v3: maybe-all-stagetrain-target-libatomic +configure-stagefeedback-target-libstdc++-v3: maybe-all-stagefeedback-target-libatomic +configure-stageautoprofile-target-libstdc++-v3: maybe-all-stageautoprofile-target-libatomic +configure-stageautofeedback-target-libstdc++-v3: maybe-all-stageautofeedback-target-libatomic +configure-stage1-target-libsanitizer: maybe-all-stage1-target-libatomic +configure-stage2-target-libsanitizer: maybe-all-stage2-target-libatomic +configure-stage3-target-libsanitizer: maybe-all-stage3-target-libatomic +configure-stage4-target-libsanitizer: maybe-all-stage4-target-libatomic +configure-stageprofile-target-libsanitizer: maybe-all-stageprofile-target-libatomic +configure-stagetrain-target-libsanitizer: maybe-all-stagetrain-target-libatomic +configure-stagefeedback-target-libsanitizer: maybe-all-stagefeedback-target-libatomic +configure-stageautoprofile-target-libsanitizer: maybe-all-stageautoprofile-target-libatomic +configure-stageautofeedback-target-libsanitizer: maybe-all-stageautofeedback-target-libatomic +configure-stage1-target-libvtv: maybe-all-stage1-target-libatomic +configure-stage2-target-libvtv: maybe-all-stage2-target-libatomic +configure-stage3-target-libvtv: maybe-all-stage3-target-libatomic +configure-stage4-target-libvtv: maybe-all-stage4-target-libatomic +configure-stageprofile-target-libvtv: maybe-all-stageprofile-target-libatomic +configure-stagetrain-target-libvtv: maybe-all-stagetrain-target-libatomic +configure-stagefeedback-target-libvtv: maybe-all-stagefeedback-target-libatomic +configure-stageautoprofile-target-libvtv: maybe-all-stageautoprofile-target-libatomic +configure-stageautofeedback-target-libvtv: maybe-all-stageautofeedback-target-libatomic +configure-stage1-target-libssp: maybe-all-stage1-target-libatomic +configure-stage2-target-libssp: maybe-all-stage2-target-libatomic +configure-stage3-target-libssp: maybe-all-stage3-target-libatomic +configure-stage4-target-libssp: maybe-all-stage4-target-libatomic +configure-stageprofile-target-libssp: maybe-all-stageprofile-target-libatomic +configure-stagetrain-target-libssp: maybe-all-stagetrain-target-libatomic +configure-stagefeedback-target-libssp: maybe-all-stagefeedback-target-libatomic +configure-stageautoprofile-target-libssp: maybe-all-stageautoprofile-target-libatomic +configure-stageautofeedback-target-libssp: maybe-all-stageautofeedback-target-libatomic +configure-stage1-target-libbacktrace: maybe-all-stage1-target-libatomic +configure-stage2-target-libbacktrace: maybe-all-stage2-target-libatomic +configure-stage3-target-libbacktrace: maybe-all-stage3-target-libatomic +configure-stage4-target-libbacktrace: maybe-all-stage4-target-libatomic +configure-stageprofile-target-libbacktrace: maybe-all-stageprofile-target-libatomic +configure-stagetrain-target-libbacktrace: maybe-all-stagetrain-target-libatomic +configure-stagefeedback-target-libbacktrace: maybe-all-stagefeedback-target-libatomic +configure-stageautoprofile-target-libbacktrace: maybe-all-stageautoprofile-target-libatomic +configure-stageautofeedback-target-libbacktrace: maybe-all-stageautofeedback-target-libatomic +configure-stage1-target-libquadmath: maybe-all-stage1-target-libatomic +configure-stage2-target-libquadmath: maybe-all-stage2-target-libatomic +configure-stage3-target-libquadmath: maybe-all-stage3-target-libatomic +configure-stage4-target-libquadmath: maybe-all-stage4-target-libatomic +configure-stageprofile-target-libquadmath: maybe-all-stageprofile-target-libatomic +configure-stagetrain-target-libquadmath: maybe-all-stagetrain-target-libatomic +configure-stagefeedback-target-libquadmath: maybe-all-stagefeedback-target-libatomic +configure-stageautoprofile-target-libquadmath: maybe-all-stageautoprofile-target-libatomic +configure-stageautofeedback-target-libquadmath: maybe-all-stageautofeedback-target-libatomic +configure-stage1-target-libgfortran: maybe-all-stage1-target-libatomic +configure-stage2-target-libgfortran: maybe-all-stage2-target-libatomic +configure-stage3-target-libgfortran: maybe-all-stage3-target-libatomic +configure-stage4-target-libgfortran: maybe-all-stage4-target-libatomic +configure-stageprofile-target-libgfortran: maybe-all-stageprofile-target-libatomic +configure-stagetrain-target-libgfortran: maybe-all-stagetrain-target-libatomic +configure-stagefeedback-target-libgfortran: maybe-all-stagefeedback-target-libatomic +configure-stageautoprofile-target-libgfortran: maybe-all-stageautoprofile-target-libatomic +configure-stageautofeedback-target-libgfortran: maybe-all-stageautofeedback-target-libatomic +configure-stage1-target-libobjc: maybe-all-stage1-target-libatomic +configure-stage2-target-libobjc: maybe-all-stage2-target-libatomic +configure-stage3-target-libobjc: maybe-all-stage3-target-libatomic +configure-stage4-target-libobjc: maybe-all-stage4-target-libatomic +configure-stageprofile-target-libobjc: maybe-all-stageprofile-target-libatomic +configure-stagetrain-target-libobjc: maybe-all-stagetrain-target-libatomic +configure-stagefeedback-target-libobjc: maybe-all-stagefeedback-target-libatomic +configure-stageautoprofile-target-libobjc: maybe-all-stageautoprofile-target-libatomic +configure-stageautofeedback-target-libobjc: maybe-all-stageautofeedback-target-libatomic +configure-stage1-target-libgo: maybe-all-stage1-target-libatomic +configure-stage2-target-libgo: maybe-all-stage2-target-libatomic +configure-stage3-target-libgo: maybe-all-stage3-target-libatomic +configure-stage4-target-libgo: maybe-all-stage4-target-libatomic +configure-stageprofile-target-libgo: maybe-all-stageprofile-target-libatomic +configure-stagetrain-target-libgo: maybe-all-stagetrain-target-libatomic +configure-stagefeedback-target-libgo: maybe-all-stagefeedback-target-libatomic +configure-stageautoprofile-target-libgo: maybe-all-stageautoprofile-target-libatomic +configure-stageautofeedback-target-libgo: maybe-all-stageautofeedback-target-libatomic +configure-stage1-target-libphobos: maybe-all-stage1-target-libatomic +configure-stage2-target-libphobos: maybe-all-stage2-target-libatomic +configure-stage3-target-libphobos: maybe-all-stage3-target-libatomic +configure-stage4-target-libphobos: maybe-all-stage4-target-libatomic +configure-stageprofile-target-libphobos: maybe-all-stageprofile-target-libatomic +configure-stagetrain-target-libphobos: maybe-all-stagetrain-target-libatomic +configure-stagefeedback-target-libphobos: maybe-all-stagefeedback-target-libatomic +configure-stageautoprofile-target-libphobos: maybe-all-stageautoprofile-target-libatomic +configure-stageautofeedback-target-libphobos: maybe-all-stageautofeedback-target-libatomic +configure-stage1-target-libtermcap: maybe-all-stage1-target-libatomic +configure-stage2-target-libtermcap: maybe-all-stage2-target-libatomic +configure-stage3-target-libtermcap: maybe-all-stage3-target-libatomic +configure-stage4-target-libtermcap: maybe-all-stage4-target-libatomic +configure-stageprofile-target-libtermcap: maybe-all-stageprofile-target-libatomic +configure-stagetrain-target-libtermcap: maybe-all-stagetrain-target-libatomic +configure-stagefeedback-target-libtermcap: maybe-all-stagefeedback-target-libatomic +configure-stageautoprofile-target-libtermcap: maybe-all-stageautoprofile-target-libatomic +configure-stageautofeedback-target-libtermcap: maybe-all-stageautofeedback-target-libatomic +configure-stage1-target-winsup: maybe-all-stage1-target-libatomic +configure-stage2-target-winsup: maybe-all-stage2-target-libatomic +configure-stage3-target-winsup: maybe-all-stage3-target-libatomic +configure-stage4-target-winsup: maybe-all-stage4-target-libatomic +configure-stageprofile-target-winsup: maybe-all-stageprofile-target-libatomic +configure-stagetrain-target-winsup: maybe-all-stagetrain-target-libatomic +configure-stagefeedback-target-winsup: maybe-all-stagefeedback-target-libatomic +configure-stageautoprofile-target-winsup: maybe-all-stageautoprofile-target-libatomic +configure-stageautofeedback-target-winsup: maybe-all-stageautofeedback-target-libatomic +configure-stage1-target-libffi: maybe-all-stage1-target-libatomic +configure-stage2-target-libffi: maybe-all-stage2-target-libatomic +configure-stage3-target-libffi: maybe-all-stage3-target-libatomic +configure-stage4-target-libffi: maybe-all-stage4-target-libatomic +configure-stageprofile-target-libffi: maybe-all-stageprofile-target-libatomic +configure-stagetrain-target-libffi: maybe-all-stagetrain-target-libatomic +configure-stagefeedback-target-libffi: maybe-all-stagefeedback-target-libatomic +configure-stageautoprofile-target-libffi: maybe-all-stageautoprofile-target-libatomic +configure-stageautofeedback-target-libffi: maybe-all-stageautofeedback-target-libatomic +configure-stage1-target-zlib: maybe-all-stage1-target-libatomic +configure-stage2-target-zlib: maybe-all-stage2-target-libatomic +configure-stage3-target-zlib: maybe-all-stage3-target-libatomic +configure-stage4-target-zlib: maybe-all-stage4-target-libatomic +configure-stageprofile-target-zlib: maybe-all-stageprofile-target-libatomic +configure-stagetrain-target-zlib: maybe-all-stagetrain-target-libatomic +configure-stagefeedback-target-zlib: maybe-all-stagefeedback-target-libatomic +configure-stageautoprofile-target-zlib: maybe-all-stageautoprofile-target-libatomic +configure-stageautofeedback-target-zlib: maybe-all-stageautofeedback-target-libatomic +configure-stage1-target-rda: maybe-all-stage1-target-libatomic +configure-stage2-target-rda: maybe-all-stage2-target-libatomic +configure-stage3-target-rda: maybe-all-stage3-target-libatomic +configure-stage4-target-rda: maybe-all-stage4-target-libatomic +configure-stageprofile-target-rda: maybe-all-stageprofile-target-libatomic +configure-stagetrain-target-rda: maybe-all-stagetrain-target-libatomic +configure-stagefeedback-target-rda: maybe-all-stagefeedback-target-libatomic +configure-stageautoprofile-target-rda: maybe-all-stageautoprofile-target-libatomic +configure-stageautofeedback-target-rda: maybe-all-stageautofeedback-target-libatomic +configure-stage1-target-libada: maybe-all-stage1-target-libatomic +configure-stage2-target-libada: maybe-all-stage2-target-libatomic +configure-stage3-target-libada: maybe-all-stage3-target-libatomic +configure-stage4-target-libada: maybe-all-stage4-target-libatomic +configure-stageprofile-target-libada: maybe-all-stageprofile-target-libatomic +configure-stagetrain-target-libada: maybe-all-stagetrain-target-libatomic +configure-stagefeedback-target-libada: maybe-all-stagefeedback-target-libatomic +configure-stageautoprofile-target-libada: maybe-all-stageautoprofile-target-libatomic +configure-stageautofeedback-target-libada: maybe-all-stageautofeedback-target-libatomic +configure-stage1-target-libgm2: maybe-all-stage1-target-libatomic +configure-stage2-target-libgm2: maybe-all-stage2-target-libatomic +configure-stage3-target-libgm2: maybe-all-stage3-target-libatomic +configure-stage4-target-libgm2: maybe-all-stage4-target-libatomic +configure-stageprofile-target-libgm2: maybe-all-stageprofile-target-libatomic +configure-stagetrain-target-libgm2: maybe-all-stagetrain-target-libatomic +configure-stagefeedback-target-libgm2: maybe-all-stagefeedback-target-libatomic +configure-stageautoprofile-target-libgm2: maybe-all-stageautoprofile-target-libatomic +configure-stageautofeedback-target-libgm2: maybe-all-stageautofeedback-target-libatomic +configure-stage1-target-libgomp: maybe-all-stage1-target-libatomic +configure-stage2-target-libgomp: maybe-all-stage2-target-libatomic +configure-stage3-target-libgomp: maybe-all-stage3-target-libatomic +configure-stage4-target-libgomp: maybe-all-stage4-target-libatomic +configure-stageprofile-target-libgomp: maybe-all-stageprofile-target-libatomic +configure-stagetrain-target-libgomp: maybe-all-stagetrain-target-libatomic +configure-stagefeedback-target-libgomp: maybe-all-stagefeedback-target-libatomic +configure-stageautoprofile-target-libgomp: maybe-all-stageautoprofile-target-libatomic +configure-stageautofeedback-target-libgomp: maybe-all-stageautofeedback-target-libatomic +configure-stage1-target-libitm: maybe-all-stage1-target-libatomic +configure-stage2-target-libitm: maybe-all-stage2-target-libatomic +configure-stage3-target-libitm: maybe-all-stage3-target-libatomic +configure-stage4-target-libitm: maybe-all-stage4-target-libatomic +configure-stageprofile-target-libitm: maybe-all-stageprofile-target-libatomic +configure-stagetrain-target-libitm: maybe-all-stagetrain-target-libatomic +configure-stagefeedback-target-libitm: maybe-all-stagefeedback-target-libatomic +configure-stageautoprofile-target-libitm: maybe-all-stageautoprofile-target-libatomic +configure-stageautofeedback-target-libitm: maybe-all-stageautofeedback-target-libatomic +configure-stage1-target-libgrust: maybe-all-stage1-target-libatomic +configure-stage2-target-libgrust: maybe-all-stage2-target-libatomic +configure-stage3-target-libgrust: maybe-all-stage3-target-libatomic +configure-stage4-target-libgrust: maybe-all-stage4-target-libatomic +configure-stageprofile-target-libgrust: maybe-all-stageprofile-target-libatomic +configure-stagetrain-target-libgrust: maybe-all-stagetrain-target-libatomic +configure-stagefeedback-target-libgrust: maybe-all-stagefeedback-target-libatomic +configure-stageautoprofile-target-libgrust: maybe-all-stageautoprofile-target-libatomic +configure-stageautofeedback-target-libgrust: maybe-all-stageautofeedback-target-libatomic +@endif gcc-bootstrap + +@if gcc-no-bootstrap +configure-target-libstdc++-v3: maybe-all-target-libatomic +configure-target-libsanitizer: maybe-all-target-libatomic +configure-target-libvtv: maybe-all-target-libatomic +configure-target-libssp: maybe-all-target-libatomic +configure-target-libbacktrace: maybe-all-target-libatomic +configure-target-libquadmath: maybe-all-target-libatomic +configure-target-libgfortran: maybe-all-target-libatomic +configure-target-libobjc: maybe-all-target-libatomic +configure-target-libgo: maybe-all-target-libatomic +configure-target-libphobos: maybe-all-target-libatomic +configure-target-libtermcap: maybe-all-target-libatomic +configure-target-winsup: maybe-all-target-libatomic +configure-target-libffi: maybe-all-target-libatomic +configure-target-zlib: maybe-all-target-libatomic +configure-target-rda: maybe-all-target-libatomic +configure-target-libada: maybe-all-target-libatomic +configure-target-libgm2: maybe-all-target-libatomic +configure-target-libgomp: maybe-all-target-libatomic +configure-target-libitm: maybe-all-target-libatomic +configure-target-libgrust: maybe-all-target-libatomic +@endif gcc-no-bootstrap + configure-target-libtermcap: maybe-all-target-newlib maybe-all-target-libgloss +@if gcc-bootstrap +configure-stage1-target-libstdc++-v3: maybe-all-stage1-target-libatomic +configure-stage2-target-libstdc++-v3: maybe-all-stage2-target-libatomic +configure-stage3-target-libstdc++-v3: maybe-all-stage3-target-libatomic +configure-stage4-target-libstdc++-v3: maybe-all-stage4-target-libatomic +configure-stageprofile-target-libstdc++-v3: maybe-all-stageprofile-target-libatomic +configure-stagetrain-target-libstdc++-v3: maybe-all-stagetrain-target-libatomic +configure-stagefeedback-target-libstdc++-v3: maybe-all-stagefeedback-target-libatomic +configure-stageautoprofile-target-libstdc++-v3: maybe-all-stageautoprofile-target-libatomic +configure-stageautofeedback-target-libstdc++-v3: maybe-all-stageautofeedback-target-libatomic +configure-stage1-target-libsanitizer: maybe-all-stage1-target-libatomic +configure-stage2-target-libsanitizer: maybe-all-stage2-target-libatomic +configure-stage3-target-libsanitizer: maybe-all-stage3-target-libatomic +configure-stage4-target-libsanitizer: maybe-all-stage4-target-libatomic +configure-stageprofile-target-libsanitizer: maybe-all-stageprofile-target-libatomic +configure-stagetrain-target-libsanitizer: maybe-all-stagetrain-target-libatomic +configure-stagefeedback-target-libsanitizer: maybe-all-stagefeedback-target-libatomic +configure-stageautoprofile-target-libsanitizer: maybe-all-stageautoprofile-target-libatomic +configure-stageautofeedback-target-libsanitizer: maybe-all-stageautofeedback-target-libatomic +configure-stage1-target-libvtv: maybe-all-stage1-target-libatomic +configure-stage2-target-libvtv: maybe-all-stage2-target-libatomic +configure-stage3-target-libvtv: maybe-all-stage3-target-libatomic +configure-stage4-target-libvtv: maybe-all-stage4-target-libatomic +configure-stageprofile-target-libvtv: maybe-all-stageprofile-target-libatomic +configure-stagetrain-target-libvtv: maybe-all-stagetrain-target-libatomic +configure-stagefeedback-target-libvtv: maybe-all-stagefeedback-target-libatomic +configure-stageautoprofile-target-libvtv: maybe-all-stageautoprofile-target-libatomic +configure-stageautofeedback-target-libvtv: maybe-all-stageautofeedback-target-libatomic +configure-stage1-target-libbacktrace: maybe-all-stage1-target-libatomic +configure-stage2-target-libbacktrace: maybe-all-stage2-target-libatomic +configure-stage3-target-libbacktrace: maybe-all-stage3-target-libatomic +configure-stage4-target-libbacktrace: maybe-all-stage4-target-libatomic +configure-stageprofile-target-libbacktrace: maybe-all-stageprofile-target-libatomic +configure-stagetrain-target-libbacktrace: maybe-all-stagetrain-target-libatomic +configure-stagefeedback-target-libbacktrace: maybe-all-stagefeedback-target-libatomic +configure-stageautoprofile-target-libbacktrace: maybe-all-stageautoprofile-target-libatomic +configure-stageautofeedback-target-libbacktrace: maybe-all-stageautofeedback-target-libatomic +configure-stage1-target-libphobos: maybe-all-stage1-target-libatomic +configure-stage2-target-libphobos: maybe-all-stage2-target-libatomic +configure-stage3-target-libphobos: maybe-all-stage3-target-libatomic +configure-stage4-target-libphobos: maybe-all-stage4-target-libatomic +configure-stageprofile-target-libphobos: maybe-all-stageprofile-target-libatomic +configure-stagetrain-target-libphobos: maybe-all-stagetrain-target-libatomic +configure-stagefeedback-target-libphobos: maybe-all-stagefeedback-target-libatomic +configure-stageautoprofile-target-libphobos: maybe-all-stageautoprofile-target-libatomic +configure-stageautofeedback-target-libphobos: maybe-all-stageautofeedback-target-libatomic +configure-stage1-target-zlib: maybe-all-stage1-target-libatomic +configure-stage2-target-zlib: maybe-all-stage2-target-libatomic +configure-stage3-target-zlib: maybe-all-stage3-target-libatomic +configure-stage4-target-zlib: maybe-all-stage4-target-libatomic +configure-stageprofile-target-zlib: maybe-all-stageprofile-target-libatomic +configure-stagetrain-target-zlib: maybe-all-stagetrain-target-libatomic +configure-stagefeedback-target-zlib: maybe-all-stagefeedback-target-libatomic +configure-stageautoprofile-target-zlib: maybe-all-stageautoprofile-target-libatomic +configure-stageautofeedback-target-zlib: maybe-all-stageautofeedback-target-libatomic +configure-stage1-target-libgomp: maybe-all-stage1-target-libatomic +configure-stage2-target-libgomp: maybe-all-stage2-target-libatomic +configure-stage3-target-libgomp: maybe-all-stage3-target-libatomic +configure-stage4-target-libgomp: maybe-all-stage4-target-libatomic +configure-stageprofile-target-libgomp: maybe-all-stageprofile-target-libatomic +configure-stagetrain-target-libgomp: maybe-all-stagetrain-target-libatomic +configure-stagefeedback-target-libgomp: maybe-all-stagefeedback-target-libatomic +configure-stageautoprofile-target-libgomp: maybe-all-stageautoprofile-target-libatomic +configure-stageautofeedback-target-libgomp: maybe-all-stageautofeedback-target-libatomic +@endif gcc-bootstrap + +@if gcc-no-bootstrap +configure-target-libstdc++-v3: maybe-all-target-libatomic +configure-target-libsanitizer: maybe-all-target-libatomic +configure-target-libvtv: maybe-all-target-libatomic +configure-target-libssp: maybe-all-target-libatomic +configure-target-libbacktrace: maybe-all-target-libatomic +configure-target-libquadmath: maybe-all-target-libatomic +configure-target-libgfortran: maybe-all-target-libatomic +configure-target-libobjc: maybe-all-target-libatomic +configure-target-libgo: maybe-all-target-libatomic +configure-target-libphobos: maybe-all-target-libatomic +configure-target-libtermcap: maybe-all-target-libatomic +configure-target-winsup: maybe-all-target-libatomic +configure-target-libffi: maybe-all-target-libatomic +configure-target-zlib: maybe-all-target-libatomic +configure-target-rda: maybe-all-target-libatomic +configure-target-libada: maybe-all-target-libatomic +configure-target-libgm2: maybe-all-target-libatomic +configure-target-libgomp: maybe-all-target-libatomic +configure-target-libitm: maybe-all-target-libatomic +configure-target-libgrust: maybe-all-target-libatomic +@endif gcc-no-bootstrap + configure-target-winsup: maybe-all-target-newlib maybe-all-target-libgloss +@if gcc-bootstrap +configure-stage1-target-libstdc++-v3: maybe-all-stage1-target-libatomic +configure-stage2-target-libstdc++-v3: maybe-all-stage2-target-libatomic +configure-stage3-target-libstdc++-v3: maybe-all-stage3-target-libatomic +configure-stage4-target-libstdc++-v3: maybe-all-stage4-target-libatomic +configure-stageprofile-target-libstdc++-v3: maybe-all-stageprofile-target-libatomic +configure-stagetrain-target-libstdc++-v3: maybe-all-stagetrain-target-libatomic +configure-stagefeedback-target-libstdc++-v3: maybe-all-stagefeedback-target-libatomic +configure-stageautoprofile-target-libstdc++-v3: maybe-all-stageautoprofile-target-libatomic +configure-stageautofeedback-target-libstdc++-v3: maybe-all-stageautofeedback-target-libatomic +configure-stage1-target-libsanitizer: maybe-all-stage1-target-libatomic +configure-stage2-target-libsanitizer: maybe-all-stage2-target-libatomic +configure-stage3-target-libsanitizer: maybe-all-stage3-target-libatomic +configure-stage4-target-libsanitizer: maybe-all-stage4-target-libatomic +configure-stageprofile-target-libsanitizer: maybe-all-stageprofile-target-libatomic +configure-stagetrain-target-libsanitizer: maybe-all-stagetrain-target-libatomic +configure-stagefeedback-target-libsanitizer: maybe-all-stagefeedback-target-libatomic +configure-stageautoprofile-target-libsanitizer: maybe-all-stageautoprofile-target-libatomic +configure-stageautofeedback-target-libsanitizer: maybe-all-stageautofeedback-target-libatomic +configure-stage1-target-libvtv: maybe-all-stage1-target-libatomic +configure-stage2-target-libvtv: maybe-all-stage2-target-libatomic +configure-stage3-target-libvtv: maybe-all-stage3-target-libatomic +configure-stage4-target-libvtv: maybe-all-stage4-target-libatomic +configure-stageprofile-target-libvtv: maybe-all-stageprofile-target-libatomic +configure-stagetrain-target-libvtv: maybe-all-stagetrain-target-libatomic +configure-stagefeedback-target-libvtv: maybe-all-stagefeedback-target-libatomic +configure-stageautoprofile-target-libvtv: maybe-all-stageautoprofile-target-libatomic +configure-stageautofeedback-target-libvtv: maybe-all-stageautofeedback-target-libatomic +configure-stage1-target-libbacktrace: maybe-all-stage1-target-libatomic +configure-stage2-target-libbacktrace: maybe-all-stage2-target-libatomic +configure-stage3-target-libbacktrace: maybe-all-stage3-target-libatomic +configure-stage4-target-libbacktrace: maybe-all-stage4-target-libatomic +configure-stageprofile-target-libbacktrace: maybe-all-stageprofile-target-libatomic +configure-stagetrain-target-libbacktrace: maybe-all-stagetrain-target-libatomic +configure-stagefeedback-target-libbacktrace: maybe-all-stagefeedback-target-libatomic +configure-stageautoprofile-target-libbacktrace: maybe-all-stageautoprofile-target-libatomic +configure-stageautofeedback-target-libbacktrace: maybe-all-stageautofeedback-target-libatomic +configure-stage1-target-libphobos: maybe-all-stage1-target-libatomic +configure-stage2-target-libphobos: maybe-all-stage2-target-libatomic +configure-stage3-target-libphobos: maybe-all-stage3-target-libatomic +configure-stage4-target-libphobos: maybe-all-stage4-target-libatomic +configure-stageprofile-target-libphobos: maybe-all-stageprofile-target-libatomic +configure-stagetrain-target-libphobos: maybe-all-stagetrain-target-libatomic +configure-stagefeedback-target-libphobos: maybe-all-stagefeedback-target-libatomic +configure-stageautoprofile-target-libphobos: maybe-all-stageautoprofile-target-libatomic +configure-stageautofeedback-target-libphobos: maybe-all-stageautofeedback-target-libatomic +configure-stage1-target-zlib: maybe-all-stage1-target-libatomic +configure-stage2-target-zlib: maybe-all-stage2-target-libatomic +configure-stage3-target-zlib: maybe-all-stage3-target-libatomic +configure-stage4-target-zlib: maybe-all-stage4-target-libatomic +configure-stageprofile-target-zlib: maybe-all-stageprofile-target-libatomic +configure-stagetrain-target-zlib: maybe-all-stagetrain-target-libatomic +configure-stagefeedback-target-zlib: maybe-all-stagefeedback-target-libatomic +configure-stageautoprofile-target-zlib: maybe-all-stageautoprofile-target-libatomic +configure-stageautofeedback-target-zlib: maybe-all-stageautofeedback-target-libatomic +configure-stage1-target-libgomp: maybe-all-stage1-target-libatomic +configure-stage2-target-libgomp: maybe-all-stage2-target-libatomic +configure-stage3-target-libgomp: maybe-all-stage3-target-libatomic +configure-stage4-target-libgomp: maybe-all-stage4-target-libatomic +configure-stageprofile-target-libgomp: maybe-all-stageprofile-target-libatomic +configure-stagetrain-target-libgomp: maybe-all-stagetrain-target-libatomic +configure-stagefeedback-target-libgomp: maybe-all-stagefeedback-target-libatomic +configure-stageautoprofile-target-libgomp: maybe-all-stageautoprofile-target-libatomic +configure-stageautofeedback-target-libgomp: maybe-all-stageautofeedback-target-libatomic +@endif gcc-bootstrap + +@if gcc-no-bootstrap +configure-target-libstdc++-v3: maybe-all-target-libatomic +configure-target-libsanitizer: maybe-all-target-libatomic +configure-target-libvtv: maybe-all-target-libatomic +configure-target-libssp: maybe-all-target-libatomic +configure-target-libbacktrace: maybe-all-target-libatomic +configure-target-libquadmath: maybe-all-target-libatomic +configure-target-libgfortran: maybe-all-target-libatomic +configure-target-libobjc: maybe-all-target-libatomic +configure-target-libgo: maybe-all-target-libatomic +configure-target-libphobos: maybe-all-target-libatomic +configure-target-libtermcap: maybe-all-target-libatomic +configure-target-winsup: maybe-all-target-libatomic +configure-target-libffi: maybe-all-target-libatomic +configure-target-zlib: maybe-all-target-libatomic +configure-target-rda: maybe-all-target-libatomic +configure-target-libada: maybe-all-target-libatomic +configure-target-libgm2: maybe-all-target-libatomic +configure-target-libgomp: maybe-all-target-libatomic +configure-target-libitm: maybe-all-target-libatomic +configure-target-libgrust: maybe-all-target-libatomic +@endif gcc-no-bootstrap + + +@if gcc-bootstrap +configure-stage1-target-libstdc++-v3: maybe-all-stage1-target-libatomic +configure-stage2-target-libstdc++-v3: maybe-all-stage2-target-libatomic +configure-stage3-target-libstdc++-v3: maybe-all-stage3-target-libatomic +configure-stage4-target-libstdc++-v3: maybe-all-stage4-target-libatomic +configure-stageprofile-target-libstdc++-v3: maybe-all-stageprofile-target-libatomic +configure-stagetrain-target-libstdc++-v3: maybe-all-stagetrain-target-libatomic +configure-stagefeedback-target-libstdc++-v3: maybe-all-stagefeedback-target-libatomic +configure-stageautoprofile-target-libstdc++-v3: maybe-all-stageautoprofile-target-libatomic +configure-stageautofeedback-target-libstdc++-v3: maybe-all-stageautofeedback-target-libatomic +configure-stage1-target-libsanitizer: maybe-all-stage1-target-libatomic +configure-stage2-target-libsanitizer: maybe-all-stage2-target-libatomic +configure-stage3-target-libsanitizer: maybe-all-stage3-target-libatomic +configure-stage4-target-libsanitizer: maybe-all-stage4-target-libatomic +configure-stageprofile-target-libsanitizer: maybe-all-stageprofile-target-libatomic +configure-stagetrain-target-libsanitizer: maybe-all-stagetrain-target-libatomic +configure-stagefeedback-target-libsanitizer: maybe-all-stagefeedback-target-libatomic +configure-stageautoprofile-target-libsanitizer: maybe-all-stageautoprofile-target-libatomic +configure-stageautofeedback-target-libsanitizer: maybe-all-stageautofeedback-target-libatomic +configure-stage1-target-libvtv: maybe-all-stage1-target-libatomic +configure-stage2-target-libvtv: maybe-all-stage2-target-libatomic +configure-stage3-target-libvtv: maybe-all-stage3-target-libatomic +configure-stage4-target-libvtv: maybe-all-stage4-target-libatomic +configure-stageprofile-target-libvtv: maybe-all-stageprofile-target-libatomic +configure-stagetrain-target-libvtv: maybe-all-stagetrain-target-libatomic +configure-stagefeedback-target-libvtv: maybe-all-stagefeedback-target-libatomic +configure-stageautoprofile-target-libvtv: maybe-all-stageautoprofile-target-libatomic +configure-stageautofeedback-target-libvtv: maybe-all-stageautofeedback-target-libatomic +configure-stage1-target-libbacktrace: maybe-all-stage1-target-libatomic +configure-stage2-target-libbacktrace: maybe-all-stage2-target-libatomic +configure-stage3-target-libbacktrace: maybe-all-stage3-target-libatomic +configure-stage4-target-libbacktrace: maybe-all-stage4-target-libatomic +configure-stageprofile-target-libbacktrace: maybe-all-stageprofile-target-libatomic +configure-stagetrain-target-libbacktrace: maybe-all-stagetrain-target-libatomic +configure-stagefeedback-target-libbacktrace: maybe-all-stagefeedback-target-libatomic +configure-stageautoprofile-target-libbacktrace: maybe-all-stageautoprofile-target-libatomic +configure-stageautofeedback-target-libbacktrace: maybe-all-stageautofeedback-target-libatomic +configure-stage1-target-libphobos: maybe-all-stage1-target-libatomic +configure-stage2-target-libphobos: maybe-all-stage2-target-libatomic +configure-stage3-target-libphobos: maybe-all-stage3-target-libatomic +configure-stage4-target-libphobos: maybe-all-stage4-target-libatomic +configure-stageprofile-target-libphobos: maybe-all-stageprofile-target-libatomic +configure-stagetrain-target-libphobos: maybe-all-stagetrain-target-libatomic +configure-stagefeedback-target-libphobos: maybe-all-stagefeedback-target-libatomic +configure-stageautoprofile-target-libphobos: maybe-all-stageautoprofile-target-libatomic +configure-stageautofeedback-target-libphobos: maybe-all-stageautofeedback-target-libatomic +configure-stage1-target-zlib: maybe-all-stage1-target-libatomic +configure-stage2-target-zlib: maybe-all-stage2-target-libatomic +configure-stage3-target-zlib: maybe-all-stage3-target-libatomic +configure-stage4-target-zlib: maybe-all-stage4-target-libatomic +configure-stageprofile-target-zlib: maybe-all-stageprofile-target-libatomic +configure-stagetrain-target-zlib: maybe-all-stagetrain-target-libatomic +configure-stagefeedback-target-zlib: maybe-all-stagefeedback-target-libatomic +configure-stageautoprofile-target-zlib: maybe-all-stageautoprofile-target-libatomic +configure-stageautofeedback-target-zlib: maybe-all-stageautofeedback-target-libatomic +configure-stage1-target-libgomp: maybe-all-stage1-target-libatomic +configure-stage2-target-libgomp: maybe-all-stage2-target-libatomic +configure-stage3-target-libgomp: maybe-all-stage3-target-libatomic +configure-stage4-target-libgomp: maybe-all-stage4-target-libatomic +configure-stageprofile-target-libgomp: maybe-all-stageprofile-target-libatomic +configure-stagetrain-target-libgomp: maybe-all-stagetrain-target-libatomic +configure-stagefeedback-target-libgomp: maybe-all-stagefeedback-target-libatomic +configure-stageautoprofile-target-libgomp: maybe-all-stageautoprofile-target-libatomic +configure-stageautofeedback-target-libgomp: maybe-all-stageautofeedback-target-libatomic +@endif gcc-bootstrap + +@if gcc-no-bootstrap +configure-target-libstdc++-v3: maybe-all-target-libatomic +configure-target-libsanitizer: maybe-all-target-libatomic +configure-target-libvtv: maybe-all-target-libatomic +configure-target-libssp: maybe-all-target-libatomic +configure-target-libbacktrace: maybe-all-target-libatomic +configure-target-libquadmath: maybe-all-target-libatomic +configure-target-libgfortran: maybe-all-target-libatomic +configure-target-libobjc: maybe-all-target-libatomic +configure-target-libgo: maybe-all-target-libatomic +configure-target-libphobos: maybe-all-target-libatomic +configure-target-libtermcap: maybe-all-target-libatomic +configure-target-winsup: maybe-all-target-libatomic +configure-target-libffi: maybe-all-target-libatomic +configure-target-zlib: maybe-all-target-libatomic +configure-target-rda: maybe-all-target-libatomic +configure-target-libada: maybe-all-target-libatomic +configure-target-libgm2: maybe-all-target-libatomic +configure-target-libgomp: maybe-all-target-libatomic +configure-target-libitm: maybe-all-target-libatomic +configure-target-libgrust: maybe-all-target-libatomic +@endif gcc-no-bootstrap configure-target-libffi: maybe-all-target-newlib maybe-all-target-libgloss configure-target-libffi: maybe-all-target-libstdc++-v3 +@if gcc-bootstrap +configure-stage1-target-libstdc++-v3: maybe-all-stage1-target-libatomic +configure-stage2-target-libstdc++-v3: maybe-all-stage2-target-libatomic +configure-stage3-target-libstdc++-v3: maybe-all-stage3-target-libatomic +configure-stage4-target-libstdc++-v3: maybe-all-stage4-target-libatomic +configure-stageprofile-target-libstdc++-v3: maybe-all-stageprofile-target-libatomic +configure-stagetrain-target-libstdc++-v3: maybe-all-stagetrain-target-libatomic +configure-stagefeedback-target-libstdc++-v3: maybe-all-stagefeedback-target-libatomic +configure-stageautoprofile-target-libstdc++-v3: maybe-all-stageautoprofile-target-libatomic +configure-stageautofeedback-target-libstdc++-v3: maybe-all-stageautofeedback-target-libatomic +configure-stage1-target-libsanitizer: maybe-all-stage1-target-libatomic +configure-stage2-target-libsanitizer: maybe-all-stage2-target-libatomic +configure-stage3-target-libsanitizer: maybe-all-stage3-target-libatomic +configure-stage4-target-libsanitizer: maybe-all-stage4-target-libatomic +configure-stageprofile-target-libsanitizer: maybe-all-stageprofile-target-libatomic +configure-stagetrain-target-libsanitizer: maybe-all-stagetrain-target-libatomic +configure-stagefeedback-target-libsanitizer: maybe-all-stagefeedback-target-libatomic +configure-stageautoprofile-target-libsanitizer: maybe-all-stageautoprofile-target-libatomic +configure-stageautofeedback-target-libsanitizer: maybe-all-stageautofeedback-target-libatomic +configure-stage1-target-libvtv: maybe-all-stage1-target-libatomic +configure-stage2-target-libvtv: maybe-all-stage2-target-libatomic +configure-stage3-target-libvtv: maybe-all-stage3-target-libatomic +configure-stage4-target-libvtv: maybe-all-stage4-target-libatomic +configure-stageprofile-target-libvtv: maybe-all-stageprofile-target-libatomic +configure-stagetrain-target-libvtv: maybe-all-stagetrain-target-libatomic +configure-stagefeedback-target-libvtv: maybe-all-stagefeedback-target-libatomic +configure-stageautoprofile-target-libvtv: maybe-all-stageautoprofile-target-libatomic +configure-stageautofeedback-target-libvtv: maybe-all-stageautofeedback-target-libatomic +configure-stage1-target-libbacktrace: maybe-all-stage1-target-libatomic +configure-stage2-target-libbacktrace: maybe-all-stage2-target-libatomic +configure-stage3-target-libbacktrace: maybe-all-stage3-target-libatomic +configure-stage4-target-libbacktrace: maybe-all-stage4-target-libatomic +configure-stageprofile-target-libbacktrace: maybe-all-stageprofile-target-libatomic +configure-stagetrain-target-libbacktrace: maybe-all-stagetrain-target-libatomic +configure-stagefeedback-target-libbacktrace: maybe-all-stagefeedback-target-libatomic +configure-stageautoprofile-target-libbacktrace: maybe-all-stageautoprofile-target-libatomic +configure-stageautofeedback-target-libbacktrace: maybe-all-stageautofeedback-target-libatomic +configure-stage1-target-libphobos: maybe-all-stage1-target-libatomic +configure-stage2-target-libphobos: maybe-all-stage2-target-libatomic +configure-stage3-target-libphobos: maybe-all-stage3-target-libatomic +configure-stage4-target-libphobos: maybe-all-stage4-target-libatomic +configure-stageprofile-target-libphobos: maybe-all-stageprofile-target-libatomic +configure-stagetrain-target-libphobos: maybe-all-stagetrain-target-libatomic +configure-stagefeedback-target-libphobos: maybe-all-stagefeedback-target-libatomic +configure-stageautoprofile-target-libphobos: maybe-all-stageautoprofile-target-libatomic +configure-stageautofeedback-target-libphobos: maybe-all-stageautofeedback-target-libatomic +configure-stage1-target-zlib: maybe-all-stage1-target-libatomic +configure-stage2-target-zlib: maybe-all-stage2-target-libatomic +configure-stage3-target-zlib: maybe-all-stage3-target-libatomic +configure-stage4-target-zlib: maybe-all-stage4-target-libatomic +configure-stageprofile-target-zlib: maybe-all-stageprofile-target-libatomic +configure-stagetrain-target-zlib: maybe-all-stagetrain-target-libatomic +configure-stagefeedback-target-zlib: maybe-all-stagefeedback-target-libatomic +configure-stageautoprofile-target-zlib: maybe-all-stageautoprofile-target-libatomic +configure-stageautofeedback-target-zlib: maybe-all-stageautofeedback-target-libatomic +configure-stage1-target-libgomp: maybe-all-stage1-target-libatomic +configure-stage2-target-libgomp: maybe-all-stage2-target-libatomic +configure-stage3-target-libgomp: maybe-all-stage3-target-libatomic +configure-stage4-target-libgomp: maybe-all-stage4-target-libatomic +configure-stageprofile-target-libgomp: maybe-all-stageprofile-target-libatomic +configure-stagetrain-target-libgomp: maybe-all-stagetrain-target-libatomic +configure-stagefeedback-target-libgomp: maybe-all-stagefeedback-target-libatomic +configure-stageautoprofile-target-libgomp: maybe-all-stageautoprofile-target-libatomic +configure-stageautofeedback-target-libgomp: maybe-all-stageautofeedback-target-libatomic +@endif gcc-bootstrap + +@if gcc-no-bootstrap +configure-target-libstdc++-v3: maybe-all-target-libatomic +configure-target-libsanitizer: maybe-all-target-libatomic +configure-target-libvtv: maybe-all-target-libatomic +configure-target-libssp: maybe-all-target-libatomic +configure-target-libbacktrace: maybe-all-target-libatomic +configure-target-libquadmath: maybe-all-target-libatomic +configure-target-libgfortran: maybe-all-target-libatomic +configure-target-libobjc: maybe-all-target-libatomic +configure-target-libgo: maybe-all-target-libatomic +configure-target-libphobos: maybe-all-target-libatomic +configure-target-libtermcap: maybe-all-target-libatomic +configure-target-winsup: maybe-all-target-libatomic +configure-target-libffi: maybe-all-target-libatomic +configure-target-zlib: maybe-all-target-libatomic +configure-target-rda: maybe-all-target-libatomic +configure-target-libada: maybe-all-target-libatomic +configure-target-libgm2: maybe-all-target-libatomic +configure-target-libgomp: maybe-all-target-libatomic +configure-target-libitm: maybe-all-target-libatomic +configure-target-libgrust: maybe-all-target-libatomic +@endif gcc-no-bootstrap + configure-target-zlib: maybe-all-target-newlib maybe-all-target-libgloss +@if gcc-bootstrap +configure-stage1-target-libstdc++-v3: maybe-all-stage1-target-libatomic +configure-stage2-target-libstdc++-v3: maybe-all-stage2-target-libatomic +configure-stage3-target-libstdc++-v3: maybe-all-stage3-target-libatomic +configure-stage4-target-libstdc++-v3: maybe-all-stage4-target-libatomic +configure-stageprofile-target-libstdc++-v3: maybe-all-stageprofile-target-libatomic +configure-stagetrain-target-libstdc++-v3: maybe-all-stagetrain-target-libatomic +configure-stagefeedback-target-libstdc++-v3: maybe-all-stagefeedback-target-libatomic +configure-stageautoprofile-target-libstdc++-v3: maybe-all-stageautoprofile-target-libatomic +configure-stageautofeedback-target-libstdc++-v3: maybe-all-stageautofeedback-target-libatomic +configure-stage1-target-libsanitizer: maybe-all-stage1-target-libatomic +configure-stage2-target-libsanitizer: maybe-all-stage2-target-libatomic +configure-stage3-target-libsanitizer: maybe-all-stage3-target-libatomic +configure-stage4-target-libsanitizer: maybe-all-stage4-target-libatomic +configure-stageprofile-target-libsanitizer: maybe-all-stageprofile-target-libatomic +configure-stagetrain-target-libsanitizer: maybe-all-stagetrain-target-libatomic +configure-stagefeedback-target-libsanitizer: maybe-all-stagefeedback-target-libatomic +configure-stageautoprofile-target-libsanitizer: maybe-all-stageautoprofile-target-libatomic +configure-stageautofeedback-target-libsanitizer: maybe-all-stageautofeedback-target-libatomic +configure-stage1-target-libvtv: maybe-all-stage1-target-libatomic +configure-stage2-target-libvtv: maybe-all-stage2-target-libatomic +configure-stage3-target-libvtv: maybe-all-stage3-target-libatomic +configure-stage4-target-libvtv: maybe-all-stage4-target-libatomic +configure-stageprofile-target-libvtv: maybe-all-stageprofile-target-libatomic +configure-stagetrain-target-libvtv: maybe-all-stagetrain-target-libatomic +configure-stagefeedback-target-libvtv: maybe-all-stagefeedback-target-libatomic +configure-stageautoprofile-target-libvtv: maybe-all-stageautoprofile-target-libatomic +configure-stageautofeedback-target-libvtv: maybe-all-stageautofeedback-target-libatomic +configure-stage1-target-libssp: maybe-all-stage1-target-libatomic +configure-stage2-target-libssp: maybe-all-stage2-target-libatomic +configure-stage3-target-libssp: maybe-all-stage3-target-libatomic +configure-stage4-target-libssp: maybe-all-stage4-target-libatomic +configure-stageprofile-target-libssp: maybe-all-stageprofile-target-libatomic +configure-stagetrain-target-libssp: maybe-all-stagetrain-target-libatomic +configure-stagefeedback-target-libssp: maybe-all-stagefeedback-target-libatomic +configure-stageautoprofile-target-libssp: maybe-all-stageautoprofile-target-libatomic +configure-stageautofeedback-target-libssp: maybe-all-stageautofeedback-target-libatomic +configure-stage1-target-libbacktrace: maybe-all-stage1-target-libatomic +configure-stage2-target-libbacktrace: maybe-all-stage2-target-libatomic +configure-stage3-target-libbacktrace: maybe-all-stage3-target-libatomic +configure-stage4-target-libbacktrace: maybe-all-stage4-target-libatomic +configure-stageprofile-target-libbacktrace: maybe-all-stageprofile-target-libatomic +configure-stagetrain-target-libbacktrace: maybe-all-stagetrain-target-libatomic +configure-stagefeedback-target-libbacktrace: maybe-all-stagefeedback-target-libatomic +configure-stageautoprofile-target-libbacktrace: maybe-all-stageautoprofile-target-libatomic +configure-stageautofeedback-target-libbacktrace: maybe-all-stageautofeedback-target-libatomic +configure-stage1-target-libquadmath: maybe-all-stage1-target-libatomic +configure-stage2-target-libquadmath: maybe-all-stage2-target-libatomic +configure-stage3-target-libquadmath: maybe-all-stage3-target-libatomic +configure-stage4-target-libquadmath: maybe-all-stage4-target-libatomic +configure-stageprofile-target-libquadmath: maybe-all-stageprofile-target-libatomic +configure-stagetrain-target-libquadmath: maybe-all-stagetrain-target-libatomic +configure-stagefeedback-target-libquadmath: maybe-all-stagefeedback-target-libatomic +configure-stageautoprofile-target-libquadmath: maybe-all-stageautoprofile-target-libatomic +configure-stageautofeedback-target-libquadmath: maybe-all-stageautofeedback-target-libatomic +configure-stage1-target-libgfortran: maybe-all-stage1-target-libatomic +configure-stage2-target-libgfortran: maybe-all-stage2-target-libatomic +configure-stage3-target-libgfortran: maybe-all-stage3-target-libatomic +configure-stage4-target-libgfortran: maybe-all-stage4-target-libatomic +configure-stageprofile-target-libgfortran: maybe-all-stageprofile-target-libatomic +configure-stagetrain-target-libgfortran: maybe-all-stagetrain-target-libatomic +configure-stagefeedback-target-libgfortran: maybe-all-stagefeedback-target-libatomic +configure-stageautoprofile-target-libgfortran: maybe-all-stageautoprofile-target-libatomic +configure-stageautofeedback-target-libgfortran: maybe-all-stageautofeedback-target-libatomic +configure-stage1-target-libobjc: maybe-all-stage1-target-libatomic +configure-stage2-target-libobjc: maybe-all-stage2-target-libatomic +configure-stage3-target-libobjc: maybe-all-stage3-target-libatomic +configure-stage4-target-libobjc: maybe-all-stage4-target-libatomic +configure-stageprofile-target-libobjc: maybe-all-stageprofile-target-libatomic +configure-stagetrain-target-libobjc: maybe-all-stagetrain-target-libatomic +configure-stagefeedback-target-libobjc: maybe-all-stagefeedback-target-libatomic +configure-stageautoprofile-target-libobjc: maybe-all-stageautoprofile-target-libatomic +configure-stageautofeedback-target-libobjc: maybe-all-stageautofeedback-target-libatomic +configure-stage1-target-libgo: maybe-all-stage1-target-libatomic +configure-stage2-target-libgo: maybe-all-stage2-target-libatomic +configure-stage3-target-libgo: maybe-all-stage3-target-libatomic +configure-stage4-target-libgo: maybe-all-stage4-target-libatomic +configure-stageprofile-target-libgo: maybe-all-stageprofile-target-libatomic +configure-stagetrain-target-libgo: maybe-all-stagetrain-target-libatomic +configure-stagefeedback-target-libgo: maybe-all-stagefeedback-target-libatomic +configure-stageautoprofile-target-libgo: maybe-all-stageautoprofile-target-libatomic +configure-stageautofeedback-target-libgo: maybe-all-stageautofeedback-target-libatomic +configure-stage1-target-libphobos: maybe-all-stage1-target-libatomic +configure-stage2-target-libphobos: maybe-all-stage2-target-libatomic +configure-stage3-target-libphobos: maybe-all-stage3-target-libatomic +configure-stage4-target-libphobos: maybe-all-stage4-target-libatomic +configure-stageprofile-target-libphobos: maybe-all-stageprofile-target-libatomic +configure-stagetrain-target-libphobos: maybe-all-stagetrain-target-libatomic +configure-stagefeedback-target-libphobos: maybe-all-stagefeedback-target-libatomic +configure-stageautoprofile-target-libphobos: maybe-all-stageautoprofile-target-libatomic +configure-stageautofeedback-target-libphobos: maybe-all-stageautofeedback-target-libatomic +configure-stage1-target-libtermcap: maybe-all-stage1-target-libatomic +configure-stage2-target-libtermcap: maybe-all-stage2-target-libatomic +configure-stage3-target-libtermcap: maybe-all-stage3-target-libatomic +configure-stage4-target-libtermcap: maybe-all-stage4-target-libatomic +configure-stageprofile-target-libtermcap: maybe-all-stageprofile-target-libatomic +configure-stagetrain-target-libtermcap: maybe-all-stagetrain-target-libatomic +configure-stagefeedback-target-libtermcap: maybe-all-stagefeedback-target-libatomic +configure-stageautoprofile-target-libtermcap: maybe-all-stageautoprofile-target-libatomic +configure-stageautofeedback-target-libtermcap: maybe-all-stageautofeedback-target-libatomic +configure-stage1-target-winsup: maybe-all-stage1-target-libatomic +configure-stage2-target-winsup: maybe-all-stage2-target-libatomic +configure-stage3-target-winsup: maybe-all-stage3-target-libatomic +configure-stage4-target-winsup: maybe-all-stage4-target-libatomic +configure-stageprofile-target-winsup: maybe-all-stageprofile-target-libatomic +configure-stagetrain-target-winsup: maybe-all-stagetrain-target-libatomic +configure-stagefeedback-target-winsup: maybe-all-stagefeedback-target-libatomic +configure-stageautoprofile-target-winsup: maybe-all-stageautoprofile-target-libatomic +configure-stageautofeedback-target-winsup: maybe-all-stageautofeedback-target-libatomic +configure-stage1-target-libffi: maybe-all-stage1-target-libatomic +configure-stage2-target-libffi: maybe-all-stage2-target-libatomic +configure-stage3-target-libffi: maybe-all-stage3-target-libatomic +configure-stage4-target-libffi: maybe-all-stage4-target-libatomic +configure-stageprofile-target-libffi: maybe-all-stageprofile-target-libatomic +configure-stagetrain-target-libffi: maybe-all-stagetrain-target-libatomic +configure-stagefeedback-target-libffi: maybe-all-stagefeedback-target-libatomic +configure-stageautoprofile-target-libffi: maybe-all-stageautoprofile-target-libatomic +configure-stageautofeedback-target-libffi: maybe-all-stageautofeedback-target-libatomic +configure-stage1-target-zlib: maybe-all-stage1-target-libatomic +configure-stage2-target-zlib: maybe-all-stage2-target-libatomic +configure-stage3-target-zlib: maybe-all-stage3-target-libatomic +configure-stage4-target-zlib: maybe-all-stage4-target-libatomic +configure-stageprofile-target-zlib: maybe-all-stageprofile-target-libatomic +configure-stagetrain-target-zlib: maybe-all-stagetrain-target-libatomic +configure-stagefeedback-target-zlib: maybe-all-stagefeedback-target-libatomic +configure-stageautoprofile-target-zlib: maybe-all-stageautoprofile-target-libatomic +configure-stageautofeedback-target-zlib: maybe-all-stageautofeedback-target-libatomic +configure-stage1-target-rda: maybe-all-stage1-target-libatomic +configure-stage2-target-rda: maybe-all-stage2-target-libatomic +configure-stage3-target-rda: maybe-all-stage3-target-libatomic +configure-stage4-target-rda: maybe-all-stage4-target-libatomic +configure-stageprofile-target-rda: maybe-all-stageprofile-target-libatomic +configure-stagetrain-target-rda: maybe-all-stagetrain-target-libatomic +configure-stagefeedback-target-rda: maybe-all-stagefeedback-target-libatomic +configure-stageautoprofile-target-rda: maybe-all-stageautoprofile-target-libatomic +configure-stageautofeedback-target-rda: maybe-all-stageautofeedback-target-libatomic +configure-stage1-target-libada: maybe-all-stage1-target-libatomic +configure-stage2-target-libada: maybe-all-stage2-target-libatomic +configure-stage3-target-libada: maybe-all-stage3-target-libatomic +configure-stage4-target-libada: maybe-all-stage4-target-libatomic +configure-stageprofile-target-libada: maybe-all-stageprofile-target-libatomic +configure-stagetrain-target-libada: maybe-all-stagetrain-target-libatomic +configure-stagefeedback-target-libada: maybe-all-stagefeedback-target-libatomic +configure-stageautoprofile-target-libada: maybe-all-stageautoprofile-target-libatomic +configure-stageautofeedback-target-libada: maybe-all-stageautofeedback-target-libatomic +configure-stage1-target-libgm2: maybe-all-stage1-target-libatomic +configure-stage2-target-libgm2: maybe-all-stage2-target-libatomic +configure-stage3-target-libgm2: maybe-all-stage3-target-libatomic +configure-stage4-target-libgm2: maybe-all-stage4-target-libatomic +configure-stageprofile-target-libgm2: maybe-all-stageprofile-target-libatomic +configure-stagetrain-target-libgm2: maybe-all-stagetrain-target-libatomic +configure-stagefeedback-target-libgm2: maybe-all-stagefeedback-target-libatomic +configure-stageautoprofile-target-libgm2: maybe-all-stageautoprofile-target-libatomic +configure-stageautofeedback-target-libgm2: maybe-all-stageautofeedback-target-libatomic +configure-stage1-target-libgomp: maybe-all-stage1-target-libatomic +configure-stage2-target-libgomp: maybe-all-stage2-target-libatomic +configure-stage3-target-libgomp: maybe-all-stage3-target-libatomic +configure-stage4-target-libgomp: maybe-all-stage4-target-libatomic +configure-stageprofile-target-libgomp: maybe-all-stageprofile-target-libatomic +configure-stagetrain-target-libgomp: maybe-all-stagetrain-target-libatomic +configure-stagefeedback-target-libgomp: maybe-all-stagefeedback-target-libatomic +configure-stageautoprofile-target-libgomp: maybe-all-stageautoprofile-target-libatomic +configure-stageautofeedback-target-libgomp: maybe-all-stageautofeedback-target-libatomic +configure-stage1-target-libitm: maybe-all-stage1-target-libatomic +configure-stage2-target-libitm: maybe-all-stage2-target-libatomic +configure-stage3-target-libitm: maybe-all-stage3-target-libatomic +configure-stage4-target-libitm: maybe-all-stage4-target-libatomic +configure-stageprofile-target-libitm: maybe-all-stageprofile-target-libatomic +configure-stagetrain-target-libitm: maybe-all-stagetrain-target-libatomic +configure-stagefeedback-target-libitm: maybe-all-stagefeedback-target-libatomic +configure-stageautoprofile-target-libitm: maybe-all-stageautoprofile-target-libatomic +configure-stageautofeedback-target-libitm: maybe-all-stageautofeedback-target-libatomic +configure-stage1-target-libgrust: maybe-all-stage1-target-libatomic +configure-stage2-target-libgrust: maybe-all-stage2-target-libatomic +configure-stage3-target-libgrust: maybe-all-stage3-target-libatomic +configure-stage4-target-libgrust: maybe-all-stage4-target-libatomic +configure-stageprofile-target-libgrust: maybe-all-stageprofile-target-libatomic +configure-stagetrain-target-libgrust: maybe-all-stagetrain-target-libatomic +configure-stagefeedback-target-libgrust: maybe-all-stagefeedback-target-libatomic +configure-stageautoprofile-target-libgrust: maybe-all-stageautoprofile-target-libatomic +configure-stageautofeedback-target-libgrust: maybe-all-stageautofeedback-target-libatomic +@endif gcc-bootstrap + +@if gcc-no-bootstrap +configure-target-libstdc++-v3: maybe-all-target-libatomic +configure-target-libsanitizer: maybe-all-target-libatomic +configure-target-libvtv: maybe-all-target-libatomic +configure-target-libssp: maybe-all-target-libatomic +configure-target-libbacktrace: maybe-all-target-libatomic +configure-target-libquadmath: maybe-all-target-libatomic +configure-target-libgfortran: maybe-all-target-libatomic +configure-target-libobjc: maybe-all-target-libatomic +configure-target-libgo: maybe-all-target-libatomic +configure-target-libphobos: maybe-all-target-libatomic +configure-target-libtermcap: maybe-all-target-libatomic +configure-target-winsup: maybe-all-target-libatomic +configure-target-libffi: maybe-all-target-libatomic +configure-target-zlib: maybe-all-target-libatomic +configure-target-rda: maybe-all-target-libatomic +configure-target-libada: maybe-all-target-libatomic +configure-target-libgm2: maybe-all-target-libatomic +configure-target-libgomp: maybe-all-target-libatomic +configure-target-libitm: maybe-all-target-libatomic +configure-target-libgrust: maybe-all-target-libatomic +@endif gcc-no-bootstrap + configure-target-rda: maybe-all-target-newlib maybe-all-target-libgloss +@if gcc-bootstrap +configure-stage1-target-libstdc++-v3: maybe-all-stage1-target-libatomic +configure-stage2-target-libstdc++-v3: maybe-all-stage2-target-libatomic +configure-stage3-target-libstdc++-v3: maybe-all-stage3-target-libatomic +configure-stage4-target-libstdc++-v3: maybe-all-stage4-target-libatomic +configure-stageprofile-target-libstdc++-v3: maybe-all-stageprofile-target-libatomic +configure-stagetrain-target-libstdc++-v3: maybe-all-stagetrain-target-libatomic +configure-stagefeedback-target-libstdc++-v3: maybe-all-stagefeedback-target-libatomic +configure-stageautoprofile-target-libstdc++-v3: maybe-all-stageautoprofile-target-libatomic +configure-stageautofeedback-target-libstdc++-v3: maybe-all-stageautofeedback-target-libatomic +configure-stage1-target-libsanitizer: maybe-all-stage1-target-libatomic +configure-stage2-target-libsanitizer: maybe-all-stage2-target-libatomic +configure-stage3-target-libsanitizer: maybe-all-stage3-target-libatomic +configure-stage4-target-libsanitizer: maybe-all-stage4-target-libatomic +configure-stageprofile-target-libsanitizer: maybe-all-stageprofile-target-libatomic +configure-stagetrain-target-libsanitizer: maybe-all-stagetrain-target-libatomic +configure-stagefeedback-target-libsanitizer: maybe-all-stagefeedback-target-libatomic +configure-stageautoprofile-target-libsanitizer: maybe-all-stageautoprofile-target-libatomic +configure-stageautofeedback-target-libsanitizer: maybe-all-stageautofeedback-target-libatomic +configure-stage1-target-libvtv: maybe-all-stage1-target-libatomic +configure-stage2-target-libvtv: maybe-all-stage2-target-libatomic +configure-stage3-target-libvtv: maybe-all-stage3-target-libatomic +configure-stage4-target-libvtv: maybe-all-stage4-target-libatomic +configure-stageprofile-target-libvtv: maybe-all-stageprofile-target-libatomic +configure-stagetrain-target-libvtv: maybe-all-stagetrain-target-libatomic +configure-stagefeedback-target-libvtv: maybe-all-stagefeedback-target-libatomic +configure-stageautoprofile-target-libvtv: maybe-all-stageautoprofile-target-libatomic +configure-stageautofeedback-target-libvtv: maybe-all-stageautofeedback-target-libatomic +configure-stage1-target-libbacktrace: maybe-all-stage1-target-libatomic +configure-stage2-target-libbacktrace: maybe-all-stage2-target-libatomic +configure-stage3-target-libbacktrace: maybe-all-stage3-target-libatomic +configure-stage4-target-libbacktrace: maybe-all-stage4-target-libatomic +configure-stageprofile-target-libbacktrace: maybe-all-stageprofile-target-libatomic +configure-stagetrain-target-libbacktrace: maybe-all-stagetrain-target-libatomic +configure-stagefeedback-target-libbacktrace: maybe-all-stagefeedback-target-libatomic +configure-stageautoprofile-target-libbacktrace: maybe-all-stageautoprofile-target-libatomic +configure-stageautofeedback-target-libbacktrace: maybe-all-stageautofeedback-target-libatomic +configure-stage1-target-libphobos: maybe-all-stage1-target-libatomic +configure-stage2-target-libphobos: maybe-all-stage2-target-libatomic +configure-stage3-target-libphobos: maybe-all-stage3-target-libatomic +configure-stage4-target-libphobos: maybe-all-stage4-target-libatomic +configure-stageprofile-target-libphobos: maybe-all-stageprofile-target-libatomic +configure-stagetrain-target-libphobos: maybe-all-stagetrain-target-libatomic +configure-stagefeedback-target-libphobos: maybe-all-stagefeedback-target-libatomic +configure-stageautoprofile-target-libphobos: maybe-all-stageautoprofile-target-libatomic +configure-stageautofeedback-target-libphobos: maybe-all-stageautofeedback-target-libatomic +configure-stage1-target-zlib: maybe-all-stage1-target-libatomic +configure-stage2-target-zlib: maybe-all-stage2-target-libatomic +configure-stage3-target-zlib: maybe-all-stage3-target-libatomic +configure-stage4-target-zlib: maybe-all-stage4-target-libatomic +configure-stageprofile-target-zlib: maybe-all-stageprofile-target-libatomic +configure-stagetrain-target-zlib: maybe-all-stagetrain-target-libatomic +configure-stagefeedback-target-zlib: maybe-all-stagefeedback-target-libatomic +configure-stageautoprofile-target-zlib: maybe-all-stageautoprofile-target-libatomic +configure-stageautofeedback-target-zlib: maybe-all-stageautofeedback-target-libatomic +configure-stage1-target-libgomp: maybe-all-stage1-target-libatomic +configure-stage2-target-libgomp: maybe-all-stage2-target-libatomic +configure-stage3-target-libgomp: maybe-all-stage3-target-libatomic +configure-stage4-target-libgomp: maybe-all-stage4-target-libatomic +configure-stageprofile-target-libgomp: maybe-all-stageprofile-target-libatomic +configure-stagetrain-target-libgomp: maybe-all-stagetrain-target-libatomic +configure-stagefeedback-target-libgomp: maybe-all-stagefeedback-target-libatomic +configure-stageautoprofile-target-libgomp: maybe-all-stageautoprofile-target-libatomic +configure-stageautofeedback-target-libgomp: maybe-all-stageautofeedback-target-libatomic +@endif gcc-bootstrap + +@if gcc-no-bootstrap +configure-target-libstdc++-v3: maybe-all-target-libatomic +configure-target-libsanitizer: maybe-all-target-libatomic +configure-target-libvtv: maybe-all-target-libatomic +configure-target-libssp: maybe-all-target-libatomic +configure-target-libbacktrace: maybe-all-target-libatomic +configure-target-libquadmath: maybe-all-target-libatomic +configure-target-libgfortran: maybe-all-target-libatomic +configure-target-libobjc: maybe-all-target-libatomic +configure-target-libgo: maybe-all-target-libatomic +configure-target-libphobos: maybe-all-target-libatomic +configure-target-libtermcap: maybe-all-target-libatomic +configure-target-winsup: maybe-all-target-libatomic +configure-target-libffi: maybe-all-target-libatomic +configure-target-zlib: maybe-all-target-libatomic +configure-target-rda: maybe-all-target-libatomic +configure-target-libada: maybe-all-target-libatomic +configure-target-libgm2: maybe-all-target-libatomic +configure-target-libgomp: maybe-all-target-libatomic +configure-target-libitm: maybe-all-target-libatomic +configure-target-libgrust: maybe-all-target-libatomic +@endif gcc-no-bootstrap + configure-target-libada: maybe-all-target-newlib maybe-all-target-libgloss +@if gcc-bootstrap +configure-stage1-target-libstdc++-v3: maybe-all-stage1-target-libatomic +configure-stage2-target-libstdc++-v3: maybe-all-stage2-target-libatomic +configure-stage3-target-libstdc++-v3: maybe-all-stage3-target-libatomic +configure-stage4-target-libstdc++-v3: maybe-all-stage4-target-libatomic +configure-stageprofile-target-libstdc++-v3: maybe-all-stageprofile-target-libatomic +configure-stagetrain-target-libstdc++-v3: maybe-all-stagetrain-target-libatomic +configure-stagefeedback-target-libstdc++-v3: maybe-all-stagefeedback-target-libatomic +configure-stageautoprofile-target-libstdc++-v3: maybe-all-stageautoprofile-target-libatomic +configure-stageautofeedback-target-libstdc++-v3: maybe-all-stageautofeedback-target-libatomic +configure-stage1-target-libsanitizer: maybe-all-stage1-target-libatomic +configure-stage2-target-libsanitizer: maybe-all-stage2-target-libatomic +configure-stage3-target-libsanitizer: maybe-all-stage3-target-libatomic +configure-stage4-target-libsanitizer: maybe-all-stage4-target-libatomic +configure-stageprofile-target-libsanitizer: maybe-all-stageprofile-target-libatomic +configure-stagetrain-target-libsanitizer: maybe-all-stagetrain-target-libatomic +configure-stagefeedback-target-libsanitizer: maybe-all-stagefeedback-target-libatomic +configure-stageautoprofile-target-libsanitizer: maybe-all-stageautoprofile-target-libatomic +configure-stageautofeedback-target-libsanitizer: maybe-all-stageautofeedback-target-libatomic +configure-stage1-target-libvtv: maybe-all-stage1-target-libatomic +configure-stage2-target-libvtv: maybe-all-stage2-target-libatomic +configure-stage3-target-libvtv: maybe-all-stage3-target-libatomic +configure-stage4-target-libvtv: maybe-all-stage4-target-libatomic +configure-stageprofile-target-libvtv: maybe-all-stageprofile-target-libatomic +configure-stagetrain-target-libvtv: maybe-all-stagetrain-target-libatomic +configure-stagefeedback-target-libvtv: maybe-all-stagefeedback-target-libatomic +configure-stageautoprofile-target-libvtv: maybe-all-stageautoprofile-target-libatomic +configure-stageautofeedback-target-libvtv: maybe-all-stageautofeedback-target-libatomic +configure-stage1-target-libbacktrace: maybe-all-stage1-target-libatomic +configure-stage2-target-libbacktrace: maybe-all-stage2-target-libatomic +configure-stage3-target-libbacktrace: maybe-all-stage3-target-libatomic +configure-stage4-target-libbacktrace: maybe-all-stage4-target-libatomic +configure-stageprofile-target-libbacktrace: maybe-all-stageprofile-target-libatomic +configure-stagetrain-target-libbacktrace: maybe-all-stagetrain-target-libatomic +configure-stagefeedback-target-libbacktrace: maybe-all-stagefeedback-target-libatomic +configure-stageautoprofile-target-libbacktrace: maybe-all-stageautoprofile-target-libatomic +configure-stageautofeedback-target-libbacktrace: maybe-all-stageautofeedback-target-libatomic +configure-stage1-target-libphobos: maybe-all-stage1-target-libatomic +configure-stage2-target-libphobos: maybe-all-stage2-target-libatomic +configure-stage3-target-libphobos: maybe-all-stage3-target-libatomic +configure-stage4-target-libphobos: maybe-all-stage4-target-libatomic +configure-stageprofile-target-libphobos: maybe-all-stageprofile-target-libatomic +configure-stagetrain-target-libphobos: maybe-all-stagetrain-target-libatomic +configure-stagefeedback-target-libphobos: maybe-all-stagefeedback-target-libatomic +configure-stageautoprofile-target-libphobos: maybe-all-stageautoprofile-target-libatomic +configure-stageautofeedback-target-libphobos: maybe-all-stageautofeedback-target-libatomic +configure-stage1-target-zlib: maybe-all-stage1-target-libatomic +configure-stage2-target-zlib: maybe-all-stage2-target-libatomic +configure-stage3-target-zlib: maybe-all-stage3-target-libatomic +configure-stage4-target-zlib: maybe-all-stage4-target-libatomic +configure-stageprofile-target-zlib: maybe-all-stageprofile-target-libatomic +configure-stagetrain-target-zlib: maybe-all-stagetrain-target-libatomic +configure-stagefeedback-target-zlib: maybe-all-stagefeedback-target-libatomic +configure-stageautoprofile-target-zlib: maybe-all-stageautoprofile-target-libatomic +configure-stageautofeedback-target-zlib: maybe-all-stageautofeedback-target-libatomic +configure-stage1-target-libgomp: maybe-all-stage1-target-libatomic +configure-stage2-target-libgomp: maybe-all-stage2-target-libatomic +configure-stage3-target-libgomp: maybe-all-stage3-target-libatomic +configure-stage4-target-libgomp: maybe-all-stage4-target-libatomic +configure-stageprofile-target-libgomp: maybe-all-stageprofile-target-libatomic +configure-stagetrain-target-libgomp: maybe-all-stagetrain-target-libatomic +configure-stagefeedback-target-libgomp: maybe-all-stagefeedback-target-libatomic +configure-stageautoprofile-target-libgomp: maybe-all-stageautoprofile-target-libatomic +configure-stageautofeedback-target-libgomp: maybe-all-stageautofeedback-target-libatomic +@endif gcc-bootstrap + +@if gcc-no-bootstrap +configure-target-libstdc++-v3: maybe-all-target-libatomic +configure-target-libsanitizer: maybe-all-target-libatomic +configure-target-libvtv: maybe-all-target-libatomic +configure-target-libssp: maybe-all-target-libatomic +configure-target-libbacktrace: maybe-all-target-libatomic +configure-target-libquadmath: maybe-all-target-libatomic +configure-target-libgfortran: maybe-all-target-libatomic +configure-target-libobjc: maybe-all-target-libatomic +configure-target-libgo: maybe-all-target-libatomic +configure-target-libphobos: maybe-all-target-libatomic +configure-target-libtermcap: maybe-all-target-libatomic +configure-target-winsup: maybe-all-target-libatomic +configure-target-libffi: maybe-all-target-libatomic +configure-target-zlib: maybe-all-target-libatomic +configure-target-rda: maybe-all-target-libatomic +configure-target-libada: maybe-all-target-libatomic +configure-target-libgm2: maybe-all-target-libatomic +configure-target-libgomp: maybe-all-target-libatomic +configure-target-libitm: maybe-all-target-libatomic +configure-target-libgrust: maybe-all-target-libatomic +@endif gcc-no-bootstrap + configure-target-libgm2: maybe-all-target-newlib maybe-all-target-libgloss +@if gcc-bootstrap +configure-stage1-target-libstdc++-v3: maybe-all-stage1-target-libatomic +configure-stage2-target-libstdc++-v3: maybe-all-stage2-target-libatomic +configure-stage3-target-libstdc++-v3: maybe-all-stage3-target-libatomic +configure-stage4-target-libstdc++-v3: maybe-all-stage4-target-libatomic +configure-stageprofile-target-libstdc++-v3: maybe-all-stageprofile-target-libatomic +configure-stagetrain-target-libstdc++-v3: maybe-all-stagetrain-target-libatomic +configure-stagefeedback-target-libstdc++-v3: maybe-all-stagefeedback-target-libatomic +configure-stageautoprofile-target-libstdc++-v3: maybe-all-stageautoprofile-target-libatomic +configure-stageautofeedback-target-libstdc++-v3: maybe-all-stageautofeedback-target-libatomic +configure-stage1-target-libsanitizer: maybe-all-stage1-target-libatomic +configure-stage2-target-libsanitizer: maybe-all-stage2-target-libatomic +configure-stage3-target-libsanitizer: maybe-all-stage3-target-libatomic +configure-stage4-target-libsanitizer: maybe-all-stage4-target-libatomic +configure-stageprofile-target-libsanitizer: maybe-all-stageprofile-target-libatomic +configure-stagetrain-target-libsanitizer: maybe-all-stagetrain-target-libatomic +configure-stagefeedback-target-libsanitizer: maybe-all-stagefeedback-target-libatomic +configure-stageautoprofile-target-libsanitizer: maybe-all-stageautoprofile-target-libatomic +configure-stageautofeedback-target-libsanitizer: maybe-all-stageautofeedback-target-libatomic +configure-stage1-target-libvtv: maybe-all-stage1-target-libatomic +configure-stage2-target-libvtv: maybe-all-stage2-target-libatomic +configure-stage3-target-libvtv: maybe-all-stage3-target-libatomic +configure-stage4-target-libvtv: maybe-all-stage4-target-libatomic +configure-stageprofile-target-libvtv: maybe-all-stageprofile-target-libatomic +configure-stagetrain-target-libvtv: maybe-all-stagetrain-target-libatomic +configure-stagefeedback-target-libvtv: maybe-all-stagefeedback-target-libatomic +configure-stageautoprofile-target-libvtv: maybe-all-stageautoprofile-target-libatomic +configure-stageautofeedback-target-libvtv: maybe-all-stageautofeedback-target-libatomic +configure-stage1-target-libbacktrace: maybe-all-stage1-target-libatomic +configure-stage2-target-libbacktrace: maybe-all-stage2-target-libatomic +configure-stage3-target-libbacktrace: maybe-all-stage3-target-libatomic +configure-stage4-target-libbacktrace: maybe-all-stage4-target-libatomic +configure-stageprofile-target-libbacktrace: maybe-all-stageprofile-target-libatomic +configure-stagetrain-target-libbacktrace: maybe-all-stagetrain-target-libatomic +configure-stagefeedback-target-libbacktrace: maybe-all-stagefeedback-target-libatomic +configure-stageautoprofile-target-libbacktrace: maybe-all-stageautoprofile-target-libatomic +configure-stageautofeedback-target-libbacktrace: maybe-all-stageautofeedback-target-libatomic +configure-stage1-target-libphobos: maybe-all-stage1-target-libatomic +configure-stage2-target-libphobos: maybe-all-stage2-target-libatomic +configure-stage3-target-libphobos: maybe-all-stage3-target-libatomic +configure-stage4-target-libphobos: maybe-all-stage4-target-libatomic +configure-stageprofile-target-libphobos: maybe-all-stageprofile-target-libatomic +configure-stagetrain-target-libphobos: maybe-all-stagetrain-target-libatomic +configure-stagefeedback-target-libphobos: maybe-all-stagefeedback-target-libatomic +configure-stageautoprofile-target-libphobos: maybe-all-stageautoprofile-target-libatomic +configure-stageautofeedback-target-libphobos: maybe-all-stageautofeedback-target-libatomic +configure-stage1-target-zlib: maybe-all-stage1-target-libatomic +configure-stage2-target-zlib: maybe-all-stage2-target-libatomic +configure-stage3-target-zlib: maybe-all-stage3-target-libatomic +configure-stage4-target-zlib: maybe-all-stage4-target-libatomic +configure-stageprofile-target-zlib: maybe-all-stageprofile-target-libatomic +configure-stagetrain-target-zlib: maybe-all-stagetrain-target-libatomic +configure-stagefeedback-target-zlib: maybe-all-stagefeedback-target-libatomic +configure-stageautoprofile-target-zlib: maybe-all-stageautoprofile-target-libatomic +configure-stageautofeedback-target-zlib: maybe-all-stageautofeedback-target-libatomic +configure-stage1-target-libgomp: maybe-all-stage1-target-libatomic +configure-stage2-target-libgomp: maybe-all-stage2-target-libatomic +configure-stage3-target-libgomp: maybe-all-stage3-target-libatomic +configure-stage4-target-libgomp: maybe-all-stage4-target-libatomic +configure-stageprofile-target-libgomp: maybe-all-stageprofile-target-libatomic +configure-stagetrain-target-libgomp: maybe-all-stagetrain-target-libatomic +configure-stagefeedback-target-libgomp: maybe-all-stagefeedback-target-libatomic +configure-stageautoprofile-target-libgomp: maybe-all-stageautoprofile-target-libatomic +configure-stageautofeedback-target-libgomp: maybe-all-stageautofeedback-target-libatomic +@endif gcc-bootstrap + +@if gcc-no-bootstrap +configure-target-libstdc++-v3: maybe-all-target-libatomic +configure-target-libsanitizer: maybe-all-target-libatomic +configure-target-libvtv: maybe-all-target-libatomic +configure-target-libssp: maybe-all-target-libatomic +configure-target-libbacktrace: maybe-all-target-libatomic +configure-target-libquadmath: maybe-all-target-libatomic +configure-target-libgfortran: maybe-all-target-libatomic +configure-target-libobjc: maybe-all-target-libatomic +configure-target-libgo: maybe-all-target-libatomic +configure-target-libphobos: maybe-all-target-libatomic +configure-target-libtermcap: maybe-all-target-libatomic +configure-target-winsup: maybe-all-target-libatomic +configure-target-libffi: maybe-all-target-libatomic +configure-target-zlib: maybe-all-target-libatomic +configure-target-rda: maybe-all-target-libatomic +configure-target-libada: maybe-all-target-libatomic +configure-target-libgm2: maybe-all-target-libatomic +configure-target-libgomp: maybe-all-target-libatomic +configure-target-libitm: maybe-all-target-libatomic +configure-target-libgrust: maybe-all-target-libatomic +@endif gcc-no-bootstrap + configure-target-libgomp: maybe-all-target-newlib maybe-all-target-libgloss +@if gcc-bootstrap +configure-stage1-target-libstdc++-v3: maybe-all-stage1-target-libatomic +configure-stage2-target-libstdc++-v3: maybe-all-stage2-target-libatomic +configure-stage3-target-libstdc++-v3: maybe-all-stage3-target-libatomic +configure-stage4-target-libstdc++-v3: maybe-all-stage4-target-libatomic +configure-stageprofile-target-libstdc++-v3: maybe-all-stageprofile-target-libatomic +configure-stagetrain-target-libstdc++-v3: maybe-all-stagetrain-target-libatomic +configure-stagefeedback-target-libstdc++-v3: maybe-all-stagefeedback-target-libatomic +configure-stageautoprofile-target-libstdc++-v3: maybe-all-stageautoprofile-target-libatomic +configure-stageautofeedback-target-libstdc++-v3: maybe-all-stageautofeedback-target-libatomic +configure-stage1-target-libsanitizer: maybe-all-stage1-target-libatomic +configure-stage2-target-libsanitizer: maybe-all-stage2-target-libatomic +configure-stage3-target-libsanitizer: maybe-all-stage3-target-libatomic +configure-stage4-target-libsanitizer: maybe-all-stage4-target-libatomic +configure-stageprofile-target-libsanitizer: maybe-all-stageprofile-target-libatomic +configure-stagetrain-target-libsanitizer: maybe-all-stagetrain-target-libatomic +configure-stagefeedback-target-libsanitizer: maybe-all-stagefeedback-target-libatomic +configure-stageautoprofile-target-libsanitizer: maybe-all-stageautoprofile-target-libatomic +configure-stageautofeedback-target-libsanitizer: maybe-all-stageautofeedback-target-libatomic +configure-stage1-target-libvtv: maybe-all-stage1-target-libatomic +configure-stage2-target-libvtv: maybe-all-stage2-target-libatomic +configure-stage3-target-libvtv: maybe-all-stage3-target-libatomic +configure-stage4-target-libvtv: maybe-all-stage4-target-libatomic +configure-stageprofile-target-libvtv: maybe-all-stageprofile-target-libatomic +configure-stagetrain-target-libvtv: maybe-all-stagetrain-target-libatomic +configure-stagefeedback-target-libvtv: maybe-all-stagefeedback-target-libatomic +configure-stageautoprofile-target-libvtv: maybe-all-stageautoprofile-target-libatomic +configure-stageautofeedback-target-libvtv: maybe-all-stageautofeedback-target-libatomic +configure-stage1-target-libssp: maybe-all-stage1-target-libatomic +configure-stage2-target-libssp: maybe-all-stage2-target-libatomic +configure-stage3-target-libssp: maybe-all-stage3-target-libatomic +configure-stage4-target-libssp: maybe-all-stage4-target-libatomic +configure-stageprofile-target-libssp: maybe-all-stageprofile-target-libatomic +configure-stagetrain-target-libssp: maybe-all-stagetrain-target-libatomic +configure-stagefeedback-target-libssp: maybe-all-stagefeedback-target-libatomic +configure-stageautoprofile-target-libssp: maybe-all-stageautoprofile-target-libatomic +configure-stageautofeedback-target-libssp: maybe-all-stageautofeedback-target-libatomic +configure-stage1-target-libbacktrace: maybe-all-stage1-target-libatomic +configure-stage2-target-libbacktrace: maybe-all-stage2-target-libatomic +configure-stage3-target-libbacktrace: maybe-all-stage3-target-libatomic +configure-stage4-target-libbacktrace: maybe-all-stage4-target-libatomic +configure-stageprofile-target-libbacktrace: maybe-all-stageprofile-target-libatomic +configure-stagetrain-target-libbacktrace: maybe-all-stagetrain-target-libatomic +configure-stagefeedback-target-libbacktrace: maybe-all-stagefeedback-target-libatomic +configure-stageautoprofile-target-libbacktrace: maybe-all-stageautoprofile-target-libatomic +configure-stageautofeedback-target-libbacktrace: maybe-all-stageautofeedback-target-libatomic +configure-stage1-target-libquadmath: maybe-all-stage1-target-libatomic +configure-stage2-target-libquadmath: maybe-all-stage2-target-libatomic +configure-stage3-target-libquadmath: maybe-all-stage3-target-libatomic +configure-stage4-target-libquadmath: maybe-all-stage4-target-libatomic +configure-stageprofile-target-libquadmath: maybe-all-stageprofile-target-libatomic +configure-stagetrain-target-libquadmath: maybe-all-stagetrain-target-libatomic +configure-stagefeedback-target-libquadmath: maybe-all-stagefeedback-target-libatomic +configure-stageautoprofile-target-libquadmath: maybe-all-stageautoprofile-target-libatomic +configure-stageautofeedback-target-libquadmath: maybe-all-stageautofeedback-target-libatomic +configure-stage1-target-libgfortran: maybe-all-stage1-target-libatomic +configure-stage2-target-libgfortran: maybe-all-stage2-target-libatomic +configure-stage3-target-libgfortran: maybe-all-stage3-target-libatomic +configure-stage4-target-libgfortran: maybe-all-stage4-target-libatomic +configure-stageprofile-target-libgfortran: maybe-all-stageprofile-target-libatomic +configure-stagetrain-target-libgfortran: maybe-all-stagetrain-target-libatomic +configure-stagefeedback-target-libgfortran: maybe-all-stagefeedback-target-libatomic +configure-stageautoprofile-target-libgfortran: maybe-all-stageautoprofile-target-libatomic +configure-stageautofeedback-target-libgfortran: maybe-all-stageautofeedback-target-libatomic +configure-stage1-target-libobjc: maybe-all-stage1-target-libatomic +configure-stage2-target-libobjc: maybe-all-stage2-target-libatomic +configure-stage3-target-libobjc: maybe-all-stage3-target-libatomic +configure-stage4-target-libobjc: maybe-all-stage4-target-libatomic +configure-stageprofile-target-libobjc: maybe-all-stageprofile-target-libatomic +configure-stagetrain-target-libobjc: maybe-all-stagetrain-target-libatomic +configure-stagefeedback-target-libobjc: maybe-all-stagefeedback-target-libatomic +configure-stageautoprofile-target-libobjc: maybe-all-stageautoprofile-target-libatomic +configure-stageautofeedback-target-libobjc: maybe-all-stageautofeedback-target-libatomic +configure-stage1-target-libgo: maybe-all-stage1-target-libatomic +configure-stage2-target-libgo: maybe-all-stage2-target-libatomic +configure-stage3-target-libgo: maybe-all-stage3-target-libatomic +configure-stage4-target-libgo: maybe-all-stage4-target-libatomic +configure-stageprofile-target-libgo: maybe-all-stageprofile-target-libatomic +configure-stagetrain-target-libgo: maybe-all-stagetrain-target-libatomic +configure-stagefeedback-target-libgo: maybe-all-stagefeedback-target-libatomic +configure-stageautoprofile-target-libgo: maybe-all-stageautoprofile-target-libatomic +configure-stageautofeedback-target-libgo: maybe-all-stageautofeedback-target-libatomic +configure-stage1-target-libphobos: maybe-all-stage1-target-libatomic +configure-stage2-target-libphobos: maybe-all-stage2-target-libatomic +configure-stage3-target-libphobos: maybe-all-stage3-target-libatomic +configure-stage4-target-libphobos: maybe-all-stage4-target-libatomic +configure-stageprofile-target-libphobos: maybe-all-stageprofile-target-libatomic +configure-stagetrain-target-libphobos: maybe-all-stagetrain-target-libatomic +configure-stagefeedback-target-libphobos: maybe-all-stagefeedback-target-libatomic +configure-stageautoprofile-target-libphobos: maybe-all-stageautoprofile-target-libatomic +configure-stageautofeedback-target-libphobos: maybe-all-stageautofeedback-target-libatomic +configure-stage1-target-libtermcap: maybe-all-stage1-target-libatomic +configure-stage2-target-libtermcap: maybe-all-stage2-target-libatomic +configure-stage3-target-libtermcap: maybe-all-stage3-target-libatomic +configure-stage4-target-libtermcap: maybe-all-stage4-target-libatomic +configure-stageprofile-target-libtermcap: maybe-all-stageprofile-target-libatomic +configure-stagetrain-target-libtermcap: maybe-all-stagetrain-target-libatomic +configure-stagefeedback-target-libtermcap: maybe-all-stagefeedback-target-libatomic +configure-stageautoprofile-target-libtermcap: maybe-all-stageautoprofile-target-libatomic +configure-stageautofeedback-target-libtermcap: maybe-all-stageautofeedback-target-libatomic +configure-stage1-target-winsup: maybe-all-stage1-target-libatomic +configure-stage2-target-winsup: maybe-all-stage2-target-libatomic +configure-stage3-target-winsup: maybe-all-stage3-target-libatomic +configure-stage4-target-winsup: maybe-all-stage4-target-libatomic +configure-stageprofile-target-winsup: maybe-all-stageprofile-target-libatomic +configure-stagetrain-target-winsup: maybe-all-stagetrain-target-libatomic +configure-stagefeedback-target-winsup: maybe-all-stagefeedback-target-libatomic +configure-stageautoprofile-target-winsup: maybe-all-stageautoprofile-target-libatomic +configure-stageautofeedback-target-winsup: maybe-all-stageautofeedback-target-libatomic +configure-stage1-target-libffi: maybe-all-stage1-target-libatomic +configure-stage2-target-libffi: maybe-all-stage2-target-libatomic +configure-stage3-target-libffi: maybe-all-stage3-target-libatomic +configure-stage4-target-libffi: maybe-all-stage4-target-libatomic +configure-stageprofile-target-libffi: maybe-all-stageprofile-target-libatomic +configure-stagetrain-target-libffi: maybe-all-stagetrain-target-libatomic +configure-stagefeedback-target-libffi: maybe-all-stagefeedback-target-libatomic +configure-stageautoprofile-target-libffi: maybe-all-stageautoprofile-target-libatomic +configure-stageautofeedback-target-libffi: maybe-all-stageautofeedback-target-libatomic +configure-stage1-target-zlib: maybe-all-stage1-target-libatomic +configure-stage2-target-zlib: maybe-all-stage2-target-libatomic +configure-stage3-target-zlib: maybe-all-stage3-target-libatomic +configure-stage4-target-zlib: maybe-all-stage4-target-libatomic +configure-stageprofile-target-zlib: maybe-all-stageprofile-target-libatomic +configure-stagetrain-target-zlib: maybe-all-stagetrain-target-libatomic +configure-stagefeedback-target-zlib: maybe-all-stagefeedback-target-libatomic +configure-stageautoprofile-target-zlib: maybe-all-stageautoprofile-target-libatomic +configure-stageautofeedback-target-zlib: maybe-all-stageautofeedback-target-libatomic +configure-stage1-target-rda: maybe-all-stage1-target-libatomic +configure-stage2-target-rda: maybe-all-stage2-target-libatomic +configure-stage3-target-rda: maybe-all-stage3-target-libatomic +configure-stage4-target-rda: maybe-all-stage4-target-libatomic +configure-stageprofile-target-rda: maybe-all-stageprofile-target-libatomic +configure-stagetrain-target-rda: maybe-all-stagetrain-target-libatomic +configure-stagefeedback-target-rda: maybe-all-stagefeedback-target-libatomic +configure-stageautoprofile-target-rda: maybe-all-stageautoprofile-target-libatomic +configure-stageautofeedback-target-rda: maybe-all-stageautofeedback-target-libatomic +configure-stage1-target-libada: maybe-all-stage1-target-libatomic +configure-stage2-target-libada: maybe-all-stage2-target-libatomic +configure-stage3-target-libada: maybe-all-stage3-target-libatomic +configure-stage4-target-libada: maybe-all-stage4-target-libatomic +configure-stageprofile-target-libada: maybe-all-stageprofile-target-libatomic +configure-stagetrain-target-libada: maybe-all-stagetrain-target-libatomic +configure-stagefeedback-target-libada: maybe-all-stagefeedback-target-libatomic +configure-stageautoprofile-target-libada: maybe-all-stageautoprofile-target-libatomic +configure-stageautofeedback-target-libada: maybe-all-stageautofeedback-target-libatomic +configure-stage1-target-libgm2: maybe-all-stage1-target-libatomic +configure-stage2-target-libgm2: maybe-all-stage2-target-libatomic +configure-stage3-target-libgm2: maybe-all-stage3-target-libatomic +configure-stage4-target-libgm2: maybe-all-stage4-target-libatomic +configure-stageprofile-target-libgm2: maybe-all-stageprofile-target-libatomic +configure-stagetrain-target-libgm2: maybe-all-stagetrain-target-libatomic +configure-stagefeedback-target-libgm2: maybe-all-stagefeedback-target-libatomic +configure-stageautoprofile-target-libgm2: maybe-all-stageautoprofile-target-libatomic +configure-stageautofeedback-target-libgm2: maybe-all-stageautofeedback-target-libatomic +configure-stage1-target-libgomp: maybe-all-stage1-target-libatomic +configure-stage2-target-libgomp: maybe-all-stage2-target-libatomic +configure-stage3-target-libgomp: maybe-all-stage3-target-libatomic +configure-stage4-target-libgomp: maybe-all-stage4-target-libatomic +configure-stageprofile-target-libgomp: maybe-all-stageprofile-target-libatomic +configure-stagetrain-target-libgomp: maybe-all-stagetrain-target-libatomic +configure-stagefeedback-target-libgomp: maybe-all-stagefeedback-target-libatomic +configure-stageautoprofile-target-libgomp: maybe-all-stageautoprofile-target-libatomic +configure-stageautofeedback-target-libgomp: maybe-all-stageautofeedback-target-libatomic +configure-stage1-target-libitm: maybe-all-stage1-target-libatomic +configure-stage2-target-libitm: maybe-all-stage2-target-libatomic +configure-stage3-target-libitm: maybe-all-stage3-target-libatomic +configure-stage4-target-libitm: maybe-all-stage4-target-libatomic +configure-stageprofile-target-libitm: maybe-all-stageprofile-target-libatomic +configure-stagetrain-target-libitm: maybe-all-stagetrain-target-libatomic +configure-stagefeedback-target-libitm: maybe-all-stagefeedback-target-libatomic +configure-stageautoprofile-target-libitm: maybe-all-stageautoprofile-target-libatomic +configure-stageautofeedback-target-libitm: maybe-all-stageautofeedback-target-libatomic +configure-stage1-target-libgrust: maybe-all-stage1-target-libatomic +configure-stage2-target-libgrust: maybe-all-stage2-target-libatomic +configure-stage3-target-libgrust: maybe-all-stage3-target-libatomic +configure-stage4-target-libgrust: maybe-all-stage4-target-libatomic +configure-stageprofile-target-libgrust: maybe-all-stageprofile-target-libatomic +configure-stagetrain-target-libgrust: maybe-all-stagetrain-target-libatomic +configure-stagefeedback-target-libgrust: maybe-all-stagefeedback-target-libatomic +configure-stageautoprofile-target-libgrust: maybe-all-stageautoprofile-target-libatomic +configure-stageautofeedback-target-libgrust: maybe-all-stageautofeedback-target-libatomic +@endif gcc-bootstrap + +@if gcc-no-bootstrap +configure-target-libstdc++-v3: maybe-all-target-libatomic +configure-target-libsanitizer: maybe-all-target-libatomic +configure-target-libvtv: maybe-all-target-libatomic +configure-target-libssp: maybe-all-target-libatomic +configure-target-libbacktrace: maybe-all-target-libatomic +configure-target-libquadmath: maybe-all-target-libatomic +configure-target-libgfortran: maybe-all-target-libatomic +configure-target-libobjc: maybe-all-target-libatomic +configure-target-libgo: maybe-all-target-libatomic +configure-target-libphobos: maybe-all-target-libatomic +configure-target-libtermcap: maybe-all-target-libatomic +configure-target-winsup: maybe-all-target-libatomic +configure-target-libffi: maybe-all-target-libatomic +configure-target-zlib: maybe-all-target-libatomic +configure-target-rda: maybe-all-target-libatomic +configure-target-libada: maybe-all-target-libatomic +configure-target-libgm2: maybe-all-target-libatomic +configure-target-libgomp: maybe-all-target-libatomic +configure-target-libitm: maybe-all-target-libatomic +configure-target-libgrust: maybe-all-target-libatomic +@endif gcc-no-bootstrap + configure-target-libitm: maybe-all-target-newlib maybe-all-target-libgloss configure-target-libitm: maybe-all-target-libstdc++-v3 +@if gcc-bootstrap +configure-stage1-target-libstdc++-v3: maybe-all-stage1-target-libatomic +configure-stage2-target-libstdc++-v3: maybe-all-stage2-target-libatomic +configure-stage3-target-libstdc++-v3: maybe-all-stage3-target-libatomic +configure-stage4-target-libstdc++-v3: maybe-all-stage4-target-libatomic +configure-stageprofile-target-libstdc++-v3: maybe-all-stageprofile-target-libatomic +configure-stagetrain-target-libstdc++-v3: maybe-all-stagetrain-target-libatomic +configure-stagefeedback-target-libstdc++-v3: maybe-all-stagefeedback-target-libatomic +configure-stageautoprofile-target-libstdc++-v3: maybe-all-stageautoprofile-target-libatomic +configure-stageautofeedback-target-libstdc++-v3: maybe-all-stageautofeedback-target-libatomic +configure-stage1-target-libsanitizer: maybe-all-stage1-target-libatomic +configure-stage2-target-libsanitizer: maybe-all-stage2-target-libatomic +configure-stage3-target-libsanitizer: maybe-all-stage3-target-libatomic +configure-stage4-target-libsanitizer: maybe-all-stage4-target-libatomic +configure-stageprofile-target-libsanitizer: maybe-all-stageprofile-target-libatomic +configure-stagetrain-target-libsanitizer: maybe-all-stagetrain-target-libatomic +configure-stagefeedback-target-libsanitizer: maybe-all-stagefeedback-target-libatomic +configure-stageautoprofile-target-libsanitizer: maybe-all-stageautoprofile-target-libatomic +configure-stageautofeedback-target-libsanitizer: maybe-all-stageautofeedback-target-libatomic +configure-stage1-target-libvtv: maybe-all-stage1-target-libatomic +configure-stage2-target-libvtv: maybe-all-stage2-target-libatomic +configure-stage3-target-libvtv: maybe-all-stage3-target-libatomic +configure-stage4-target-libvtv: maybe-all-stage4-target-libatomic +configure-stageprofile-target-libvtv: maybe-all-stageprofile-target-libatomic +configure-stagetrain-target-libvtv: maybe-all-stagetrain-target-libatomic +configure-stagefeedback-target-libvtv: maybe-all-stagefeedback-target-libatomic +configure-stageautoprofile-target-libvtv: maybe-all-stageautoprofile-target-libatomic +configure-stageautofeedback-target-libvtv: maybe-all-stageautofeedback-target-libatomic +configure-stage1-target-libbacktrace: maybe-all-stage1-target-libatomic +configure-stage2-target-libbacktrace: maybe-all-stage2-target-libatomic +configure-stage3-target-libbacktrace: maybe-all-stage3-target-libatomic +configure-stage4-target-libbacktrace: maybe-all-stage4-target-libatomic +configure-stageprofile-target-libbacktrace: maybe-all-stageprofile-target-libatomic +configure-stagetrain-target-libbacktrace: maybe-all-stagetrain-target-libatomic +configure-stagefeedback-target-libbacktrace: maybe-all-stagefeedback-target-libatomic +configure-stageautoprofile-target-libbacktrace: maybe-all-stageautoprofile-target-libatomic +configure-stageautofeedback-target-libbacktrace: maybe-all-stageautofeedback-target-libatomic +configure-stage1-target-libphobos: maybe-all-stage1-target-libatomic +configure-stage2-target-libphobos: maybe-all-stage2-target-libatomic +configure-stage3-target-libphobos: maybe-all-stage3-target-libatomic +configure-stage4-target-libphobos: maybe-all-stage4-target-libatomic +configure-stageprofile-target-libphobos: maybe-all-stageprofile-target-libatomic +configure-stagetrain-target-libphobos: maybe-all-stagetrain-target-libatomic +configure-stagefeedback-target-libphobos: maybe-all-stagefeedback-target-libatomic +configure-stageautoprofile-target-libphobos: maybe-all-stageautoprofile-target-libatomic +configure-stageautofeedback-target-libphobos: maybe-all-stageautofeedback-target-libatomic +configure-stage1-target-zlib: maybe-all-stage1-target-libatomic +configure-stage2-target-zlib: maybe-all-stage2-target-libatomic +configure-stage3-target-zlib: maybe-all-stage3-target-libatomic +configure-stage4-target-zlib: maybe-all-stage4-target-libatomic +configure-stageprofile-target-zlib: maybe-all-stageprofile-target-libatomic +configure-stagetrain-target-zlib: maybe-all-stagetrain-target-libatomic +configure-stagefeedback-target-zlib: maybe-all-stagefeedback-target-libatomic +configure-stageautoprofile-target-zlib: maybe-all-stageautoprofile-target-libatomic +configure-stageautofeedback-target-zlib: maybe-all-stageautofeedback-target-libatomic +configure-stage1-target-libgomp: maybe-all-stage1-target-libatomic +configure-stage2-target-libgomp: maybe-all-stage2-target-libatomic +configure-stage3-target-libgomp: maybe-all-stage3-target-libatomic +configure-stage4-target-libgomp: maybe-all-stage4-target-libatomic +configure-stageprofile-target-libgomp: maybe-all-stageprofile-target-libatomic +configure-stagetrain-target-libgomp: maybe-all-stagetrain-target-libatomic +configure-stagefeedback-target-libgomp: maybe-all-stagefeedback-target-libatomic +configure-stageautoprofile-target-libgomp: maybe-all-stageautoprofile-target-libatomic +configure-stageautofeedback-target-libgomp: maybe-all-stageautofeedback-target-libatomic +@endif gcc-bootstrap + +@if gcc-no-bootstrap +configure-target-libstdc++-v3: maybe-all-target-libatomic +configure-target-libsanitizer: maybe-all-target-libatomic +configure-target-libvtv: maybe-all-target-libatomic +configure-target-libssp: maybe-all-target-libatomic +configure-target-libbacktrace: maybe-all-target-libatomic +configure-target-libquadmath: maybe-all-target-libatomic +configure-target-libgfortran: maybe-all-target-libatomic +configure-target-libobjc: maybe-all-target-libatomic +configure-target-libgo: maybe-all-target-libatomic +configure-target-libphobos: maybe-all-target-libatomic +configure-target-libtermcap: maybe-all-target-libatomic +configure-target-winsup: maybe-all-target-libatomic +configure-target-libffi: maybe-all-target-libatomic +configure-target-zlib: maybe-all-target-libatomic +configure-target-rda: maybe-all-target-libatomic +configure-target-libada: maybe-all-target-libatomic +configure-target-libgm2: maybe-all-target-libatomic +configure-target-libgomp: maybe-all-target-libatomic +configure-target-libitm: maybe-all-target-libatomic +configure-target-libgrust: maybe-all-target-libatomic +@endif gcc-no-bootstrap + configure-target-libatomic: maybe-all-target-newlib maybe-all-target-libgloss +@if gcc-bootstrap +configure-stage1-target-libstdc++-v3: maybe-all-stage1-target-libatomic +configure-stage2-target-libstdc++-v3: maybe-all-stage2-target-libatomic +configure-stage3-target-libstdc++-v3: maybe-all-stage3-target-libatomic +configure-stage4-target-libstdc++-v3: maybe-all-stage4-target-libatomic +configure-stageprofile-target-libstdc++-v3: maybe-all-stageprofile-target-libatomic +configure-stagetrain-target-libstdc++-v3: maybe-all-stagetrain-target-libatomic +configure-stagefeedback-target-libstdc++-v3: maybe-all-stagefeedback-target-libatomic +configure-stageautoprofile-target-libstdc++-v3: maybe-all-stageautoprofile-target-libatomic +configure-stageautofeedback-target-libstdc++-v3: maybe-all-stageautofeedback-target-libatomic +configure-stage1-target-libsanitizer: maybe-all-stage1-target-libatomic +configure-stage2-target-libsanitizer: maybe-all-stage2-target-libatomic +configure-stage3-target-libsanitizer: maybe-all-stage3-target-libatomic +configure-stage4-target-libsanitizer: maybe-all-stage4-target-libatomic +configure-stageprofile-target-libsanitizer: maybe-all-stageprofile-target-libatomic +configure-stagetrain-target-libsanitizer: maybe-all-stagetrain-target-libatomic +configure-stagefeedback-target-libsanitizer: maybe-all-stagefeedback-target-libatomic +configure-stageautoprofile-target-libsanitizer: maybe-all-stageautoprofile-target-libatomic +configure-stageautofeedback-target-libsanitizer: maybe-all-stageautofeedback-target-libatomic +configure-stage1-target-libvtv: maybe-all-stage1-target-libatomic +configure-stage2-target-libvtv: maybe-all-stage2-target-libatomic +configure-stage3-target-libvtv: maybe-all-stage3-target-libatomic +configure-stage4-target-libvtv: maybe-all-stage4-target-libatomic +configure-stageprofile-target-libvtv: maybe-all-stageprofile-target-libatomic +configure-stagetrain-target-libvtv: maybe-all-stagetrain-target-libatomic +configure-stagefeedback-target-libvtv: maybe-all-stagefeedback-target-libatomic +configure-stageautoprofile-target-libvtv: maybe-all-stageautoprofile-target-libatomic +configure-stageautofeedback-target-libvtv: maybe-all-stageautofeedback-target-libatomic +configure-stage1-target-libssp: maybe-all-stage1-target-libatomic +configure-stage2-target-libssp: maybe-all-stage2-target-libatomic +configure-stage3-target-libssp: maybe-all-stage3-target-libatomic +configure-stage4-target-libssp: maybe-all-stage4-target-libatomic +configure-stageprofile-target-libssp: maybe-all-stageprofile-target-libatomic +configure-stagetrain-target-libssp: maybe-all-stagetrain-target-libatomic +configure-stagefeedback-target-libssp: maybe-all-stagefeedback-target-libatomic +configure-stageautoprofile-target-libssp: maybe-all-stageautoprofile-target-libatomic +configure-stageautofeedback-target-libssp: maybe-all-stageautofeedback-target-libatomic +configure-stage1-target-libbacktrace: maybe-all-stage1-target-libatomic +configure-stage2-target-libbacktrace: maybe-all-stage2-target-libatomic +configure-stage3-target-libbacktrace: maybe-all-stage3-target-libatomic +configure-stage4-target-libbacktrace: maybe-all-stage4-target-libatomic +configure-stageprofile-target-libbacktrace: maybe-all-stageprofile-target-libatomic +configure-stagetrain-target-libbacktrace: maybe-all-stagetrain-target-libatomic +configure-stagefeedback-target-libbacktrace: maybe-all-stagefeedback-target-libatomic +configure-stageautoprofile-target-libbacktrace: maybe-all-stageautoprofile-target-libatomic +configure-stageautofeedback-target-libbacktrace: maybe-all-stageautofeedback-target-libatomic +configure-stage1-target-libquadmath: maybe-all-stage1-target-libatomic +configure-stage2-target-libquadmath: maybe-all-stage2-target-libatomic +configure-stage3-target-libquadmath: maybe-all-stage3-target-libatomic +configure-stage4-target-libquadmath: maybe-all-stage4-target-libatomic +configure-stageprofile-target-libquadmath: maybe-all-stageprofile-target-libatomic +configure-stagetrain-target-libquadmath: maybe-all-stagetrain-target-libatomic +configure-stagefeedback-target-libquadmath: maybe-all-stagefeedback-target-libatomic +configure-stageautoprofile-target-libquadmath: maybe-all-stageautoprofile-target-libatomic +configure-stageautofeedback-target-libquadmath: maybe-all-stageautofeedback-target-libatomic +configure-stage1-target-libgfortran: maybe-all-stage1-target-libatomic +configure-stage2-target-libgfortran: maybe-all-stage2-target-libatomic +configure-stage3-target-libgfortran: maybe-all-stage3-target-libatomic +configure-stage4-target-libgfortran: maybe-all-stage4-target-libatomic +configure-stageprofile-target-libgfortran: maybe-all-stageprofile-target-libatomic +configure-stagetrain-target-libgfortran: maybe-all-stagetrain-target-libatomic +configure-stagefeedback-target-libgfortran: maybe-all-stagefeedback-target-libatomic +configure-stageautoprofile-target-libgfortran: maybe-all-stageautoprofile-target-libatomic +configure-stageautofeedback-target-libgfortran: maybe-all-stageautofeedback-target-libatomic +configure-stage1-target-libobjc: maybe-all-stage1-target-libatomic +configure-stage2-target-libobjc: maybe-all-stage2-target-libatomic +configure-stage3-target-libobjc: maybe-all-stage3-target-libatomic +configure-stage4-target-libobjc: maybe-all-stage4-target-libatomic +configure-stageprofile-target-libobjc: maybe-all-stageprofile-target-libatomic +configure-stagetrain-target-libobjc: maybe-all-stagetrain-target-libatomic +configure-stagefeedback-target-libobjc: maybe-all-stagefeedback-target-libatomic +configure-stageautoprofile-target-libobjc: maybe-all-stageautoprofile-target-libatomic +configure-stageautofeedback-target-libobjc: maybe-all-stageautofeedback-target-libatomic +configure-stage1-target-libgo: maybe-all-stage1-target-libatomic +configure-stage2-target-libgo: maybe-all-stage2-target-libatomic +configure-stage3-target-libgo: maybe-all-stage3-target-libatomic +configure-stage4-target-libgo: maybe-all-stage4-target-libatomic +configure-stageprofile-target-libgo: maybe-all-stageprofile-target-libatomic +configure-stagetrain-target-libgo: maybe-all-stagetrain-target-libatomic +configure-stagefeedback-target-libgo: maybe-all-stagefeedback-target-libatomic +configure-stageautoprofile-target-libgo: maybe-all-stageautoprofile-target-libatomic +configure-stageautofeedback-target-libgo: maybe-all-stageautofeedback-target-libatomic +configure-stage1-target-libphobos: maybe-all-stage1-target-libatomic +configure-stage2-target-libphobos: maybe-all-stage2-target-libatomic +configure-stage3-target-libphobos: maybe-all-stage3-target-libatomic +configure-stage4-target-libphobos: maybe-all-stage4-target-libatomic +configure-stageprofile-target-libphobos: maybe-all-stageprofile-target-libatomic +configure-stagetrain-target-libphobos: maybe-all-stagetrain-target-libatomic +configure-stagefeedback-target-libphobos: maybe-all-stagefeedback-target-libatomic +configure-stageautoprofile-target-libphobos: maybe-all-stageautoprofile-target-libatomic +configure-stageautofeedback-target-libphobos: maybe-all-stageautofeedback-target-libatomic +configure-stage1-target-libtermcap: maybe-all-stage1-target-libatomic +configure-stage2-target-libtermcap: maybe-all-stage2-target-libatomic +configure-stage3-target-libtermcap: maybe-all-stage3-target-libatomic +configure-stage4-target-libtermcap: maybe-all-stage4-target-libatomic +configure-stageprofile-target-libtermcap: maybe-all-stageprofile-target-libatomic +configure-stagetrain-target-libtermcap: maybe-all-stagetrain-target-libatomic +configure-stagefeedback-target-libtermcap: maybe-all-stagefeedback-target-libatomic +configure-stageautoprofile-target-libtermcap: maybe-all-stageautoprofile-target-libatomic +configure-stageautofeedback-target-libtermcap: maybe-all-stageautofeedback-target-libatomic +configure-stage1-target-winsup: maybe-all-stage1-target-libatomic +configure-stage2-target-winsup: maybe-all-stage2-target-libatomic +configure-stage3-target-winsup: maybe-all-stage3-target-libatomic +configure-stage4-target-winsup: maybe-all-stage4-target-libatomic +configure-stageprofile-target-winsup: maybe-all-stageprofile-target-libatomic +configure-stagetrain-target-winsup: maybe-all-stagetrain-target-libatomic +configure-stagefeedback-target-winsup: maybe-all-stagefeedback-target-libatomic +configure-stageautoprofile-target-winsup: maybe-all-stageautoprofile-target-libatomic +configure-stageautofeedback-target-winsup: maybe-all-stageautofeedback-target-libatomic +configure-stage1-target-libffi: maybe-all-stage1-target-libatomic +configure-stage2-target-libffi: maybe-all-stage2-target-libatomic +configure-stage3-target-libffi: maybe-all-stage3-target-libatomic +configure-stage4-target-libffi: maybe-all-stage4-target-libatomic +configure-stageprofile-target-libffi: maybe-all-stageprofile-target-libatomic +configure-stagetrain-target-libffi: maybe-all-stagetrain-target-libatomic +configure-stagefeedback-target-libffi: maybe-all-stagefeedback-target-libatomic +configure-stageautoprofile-target-libffi: maybe-all-stageautoprofile-target-libatomic +configure-stageautofeedback-target-libffi: maybe-all-stageautofeedback-target-libatomic +configure-stage1-target-zlib: maybe-all-stage1-target-libatomic +configure-stage2-target-zlib: maybe-all-stage2-target-libatomic +configure-stage3-target-zlib: maybe-all-stage3-target-libatomic +configure-stage4-target-zlib: maybe-all-stage4-target-libatomic +configure-stageprofile-target-zlib: maybe-all-stageprofile-target-libatomic +configure-stagetrain-target-zlib: maybe-all-stagetrain-target-libatomic +configure-stagefeedback-target-zlib: maybe-all-stagefeedback-target-libatomic +configure-stageautoprofile-target-zlib: maybe-all-stageautoprofile-target-libatomic +configure-stageautofeedback-target-zlib: maybe-all-stageautofeedback-target-libatomic +configure-stage1-target-rda: maybe-all-stage1-target-libatomic +configure-stage2-target-rda: maybe-all-stage2-target-libatomic +configure-stage3-target-rda: maybe-all-stage3-target-libatomic +configure-stage4-target-rda: maybe-all-stage4-target-libatomic +configure-stageprofile-target-rda: maybe-all-stageprofile-target-libatomic +configure-stagetrain-target-rda: maybe-all-stagetrain-target-libatomic +configure-stagefeedback-target-rda: maybe-all-stagefeedback-target-libatomic +configure-stageautoprofile-target-rda: maybe-all-stageautoprofile-target-libatomic +configure-stageautofeedback-target-rda: maybe-all-stageautofeedback-target-libatomic +configure-stage1-target-libada: maybe-all-stage1-target-libatomic +configure-stage2-target-libada: maybe-all-stage2-target-libatomic +configure-stage3-target-libada: maybe-all-stage3-target-libatomic +configure-stage4-target-libada: maybe-all-stage4-target-libatomic +configure-stageprofile-target-libada: maybe-all-stageprofile-target-libatomic +configure-stagetrain-target-libada: maybe-all-stagetrain-target-libatomic +configure-stagefeedback-target-libada: maybe-all-stagefeedback-target-libatomic +configure-stageautoprofile-target-libada: maybe-all-stageautoprofile-target-libatomic +configure-stageautofeedback-target-libada: maybe-all-stageautofeedback-target-libatomic +configure-stage1-target-libgm2: maybe-all-stage1-target-libatomic +configure-stage2-target-libgm2: maybe-all-stage2-target-libatomic +configure-stage3-target-libgm2: maybe-all-stage3-target-libatomic +configure-stage4-target-libgm2: maybe-all-stage4-target-libatomic +configure-stageprofile-target-libgm2: maybe-all-stageprofile-target-libatomic +configure-stagetrain-target-libgm2: maybe-all-stagetrain-target-libatomic +configure-stagefeedback-target-libgm2: maybe-all-stagefeedback-target-libatomic +configure-stageautoprofile-target-libgm2: maybe-all-stageautoprofile-target-libatomic +configure-stageautofeedback-target-libgm2: maybe-all-stageautofeedback-target-libatomic +configure-stage1-target-libgomp: maybe-all-stage1-target-libatomic +configure-stage2-target-libgomp: maybe-all-stage2-target-libatomic +configure-stage3-target-libgomp: maybe-all-stage3-target-libatomic +configure-stage4-target-libgomp: maybe-all-stage4-target-libatomic +configure-stageprofile-target-libgomp: maybe-all-stageprofile-target-libatomic +configure-stagetrain-target-libgomp: maybe-all-stagetrain-target-libatomic +configure-stagefeedback-target-libgomp: maybe-all-stagefeedback-target-libatomic +configure-stageautoprofile-target-libgomp: maybe-all-stageautoprofile-target-libatomic +configure-stageautofeedback-target-libgomp: maybe-all-stageautofeedback-target-libatomic +configure-stage1-target-libitm: maybe-all-stage1-target-libatomic +configure-stage2-target-libitm: maybe-all-stage2-target-libatomic +configure-stage3-target-libitm: maybe-all-stage3-target-libatomic +configure-stage4-target-libitm: maybe-all-stage4-target-libatomic +configure-stageprofile-target-libitm: maybe-all-stageprofile-target-libatomic +configure-stagetrain-target-libitm: maybe-all-stagetrain-target-libatomic +configure-stagefeedback-target-libitm: maybe-all-stagefeedback-target-libatomic +configure-stageautoprofile-target-libitm: maybe-all-stageautoprofile-target-libatomic +configure-stageautofeedback-target-libitm: maybe-all-stageautofeedback-target-libatomic +configure-stage1-target-libgrust: maybe-all-stage1-target-libatomic +configure-stage2-target-libgrust: maybe-all-stage2-target-libatomic +configure-stage3-target-libgrust: maybe-all-stage3-target-libatomic +configure-stage4-target-libgrust: maybe-all-stage4-target-libatomic +configure-stageprofile-target-libgrust: maybe-all-stageprofile-target-libatomic +configure-stagetrain-target-libgrust: maybe-all-stagetrain-target-libatomic +configure-stagefeedback-target-libgrust: maybe-all-stagefeedback-target-libatomic +configure-stageautoprofile-target-libgrust: maybe-all-stageautoprofile-target-libatomic +configure-stageautofeedback-target-libgrust: maybe-all-stageautofeedback-target-libatomic +@endif gcc-bootstrap + +@if gcc-no-bootstrap +configure-target-libstdc++-v3: maybe-all-target-libatomic +configure-target-libsanitizer: maybe-all-target-libatomic +configure-target-libvtv: maybe-all-target-libatomic +configure-target-libssp: maybe-all-target-libatomic +configure-target-libbacktrace: maybe-all-target-libatomic +configure-target-libquadmath: maybe-all-target-libatomic +configure-target-libgfortran: maybe-all-target-libatomic +configure-target-libobjc: maybe-all-target-libatomic +configure-target-libgo: maybe-all-target-libatomic +configure-target-libphobos: maybe-all-target-libatomic +configure-target-libtermcap: maybe-all-target-libatomic +configure-target-winsup: maybe-all-target-libatomic +configure-target-libffi: maybe-all-target-libatomic +configure-target-zlib: maybe-all-target-libatomic +configure-target-rda: maybe-all-target-libatomic +configure-target-libada: maybe-all-target-libatomic +configure-target-libgm2: maybe-all-target-libatomic +configure-target-libgomp: maybe-all-target-libatomic +configure-target-libitm: maybe-all-target-libatomic +configure-target-libgrust: maybe-all-target-libatomic +@endif gcc-no-bootstrap + configure-target-libgrust: maybe-all-target-newlib maybe-all-target-libgloss +@if gcc-bootstrap +configure-stage1-target-libstdc++-v3: maybe-all-stage1-target-libatomic +configure-stage2-target-libstdc++-v3: maybe-all-stage2-target-libatomic +configure-stage3-target-libstdc++-v3: maybe-all-stage3-target-libatomic +configure-stage4-target-libstdc++-v3: maybe-all-stage4-target-libatomic +configure-stageprofile-target-libstdc++-v3: maybe-all-stageprofile-target-libatomic +configure-stagetrain-target-libstdc++-v3: maybe-all-stagetrain-target-libatomic +configure-stagefeedback-target-libstdc++-v3: maybe-all-stagefeedback-target-libatomic +configure-stageautoprofile-target-libstdc++-v3: maybe-all-stageautoprofile-target-libatomic +configure-stageautofeedback-target-libstdc++-v3: maybe-all-stageautofeedback-target-libatomic +configure-stage1-target-libsanitizer: maybe-all-stage1-target-libatomic +configure-stage2-target-libsanitizer: maybe-all-stage2-target-libatomic +configure-stage3-target-libsanitizer: maybe-all-stage3-target-libatomic +configure-stage4-target-libsanitizer: maybe-all-stage4-target-libatomic +configure-stageprofile-target-libsanitizer: maybe-all-stageprofile-target-libatomic +configure-stagetrain-target-libsanitizer: maybe-all-stagetrain-target-libatomic +configure-stagefeedback-target-libsanitizer: maybe-all-stagefeedback-target-libatomic +configure-stageautoprofile-target-libsanitizer: maybe-all-stageautoprofile-target-libatomic +configure-stageautofeedback-target-libsanitizer: maybe-all-stageautofeedback-target-libatomic +configure-stage1-target-libvtv: maybe-all-stage1-target-libatomic +configure-stage2-target-libvtv: maybe-all-stage2-target-libatomic +configure-stage3-target-libvtv: maybe-all-stage3-target-libatomic +configure-stage4-target-libvtv: maybe-all-stage4-target-libatomic +configure-stageprofile-target-libvtv: maybe-all-stageprofile-target-libatomic +configure-stagetrain-target-libvtv: maybe-all-stagetrain-target-libatomic +configure-stagefeedback-target-libvtv: maybe-all-stagefeedback-target-libatomic +configure-stageautoprofile-target-libvtv: maybe-all-stageautoprofile-target-libatomic +configure-stageautofeedback-target-libvtv: maybe-all-stageautofeedback-target-libatomic +configure-stage1-target-libbacktrace: maybe-all-stage1-target-libatomic +configure-stage2-target-libbacktrace: maybe-all-stage2-target-libatomic +configure-stage3-target-libbacktrace: maybe-all-stage3-target-libatomic +configure-stage4-target-libbacktrace: maybe-all-stage4-target-libatomic +configure-stageprofile-target-libbacktrace: maybe-all-stageprofile-target-libatomic +configure-stagetrain-target-libbacktrace: maybe-all-stagetrain-target-libatomic +configure-stagefeedback-target-libbacktrace: maybe-all-stagefeedback-target-libatomic +configure-stageautoprofile-target-libbacktrace: maybe-all-stageautoprofile-target-libatomic +configure-stageautofeedback-target-libbacktrace: maybe-all-stageautofeedback-target-libatomic +configure-stage1-target-libphobos: maybe-all-stage1-target-libatomic +configure-stage2-target-libphobos: maybe-all-stage2-target-libatomic +configure-stage3-target-libphobos: maybe-all-stage3-target-libatomic +configure-stage4-target-libphobos: maybe-all-stage4-target-libatomic +configure-stageprofile-target-libphobos: maybe-all-stageprofile-target-libatomic +configure-stagetrain-target-libphobos: maybe-all-stagetrain-target-libatomic +configure-stagefeedback-target-libphobos: maybe-all-stagefeedback-target-libatomic +configure-stageautoprofile-target-libphobos: maybe-all-stageautoprofile-target-libatomic +configure-stageautofeedback-target-libphobos: maybe-all-stageautofeedback-target-libatomic +configure-stage1-target-zlib: maybe-all-stage1-target-libatomic +configure-stage2-target-zlib: maybe-all-stage2-target-libatomic +configure-stage3-target-zlib: maybe-all-stage3-target-libatomic +configure-stage4-target-zlib: maybe-all-stage4-target-libatomic +configure-stageprofile-target-zlib: maybe-all-stageprofile-target-libatomic +configure-stagetrain-target-zlib: maybe-all-stagetrain-target-libatomic +configure-stagefeedback-target-zlib: maybe-all-stagefeedback-target-libatomic +configure-stageautoprofile-target-zlib: maybe-all-stageautoprofile-target-libatomic +configure-stageautofeedback-target-zlib: maybe-all-stageautofeedback-target-libatomic +configure-stage1-target-libgomp: maybe-all-stage1-target-libatomic +configure-stage2-target-libgomp: maybe-all-stage2-target-libatomic +configure-stage3-target-libgomp: maybe-all-stage3-target-libatomic +configure-stage4-target-libgomp: maybe-all-stage4-target-libatomic +configure-stageprofile-target-libgomp: maybe-all-stageprofile-target-libatomic +configure-stagetrain-target-libgomp: maybe-all-stagetrain-target-libatomic +configure-stagefeedback-target-libgomp: maybe-all-stagefeedback-target-libatomic +configure-stageautoprofile-target-libgomp: maybe-all-stageautoprofile-target-libatomic +configure-stageautofeedback-target-libgomp: maybe-all-stageautofeedback-target-libatomic +@endif gcc-bootstrap + +@if gcc-no-bootstrap +configure-target-libstdc++-v3: maybe-all-target-libatomic +configure-target-libsanitizer: maybe-all-target-libatomic +configure-target-libvtv: maybe-all-target-libatomic +configure-target-libssp: maybe-all-target-libatomic +configure-target-libbacktrace: maybe-all-target-libatomic +configure-target-libquadmath: maybe-all-target-libatomic +configure-target-libgfortran: maybe-all-target-libatomic +configure-target-libobjc: maybe-all-target-libatomic +configure-target-libgo: maybe-all-target-libatomic +configure-target-libphobos: maybe-all-target-libatomic +configure-target-libtermcap: maybe-all-target-libatomic +configure-target-winsup: maybe-all-target-libatomic +configure-target-libffi: maybe-all-target-libatomic +configure-target-zlib: maybe-all-target-libatomic +configure-target-rda: maybe-all-target-libatomic +configure-target-libada: maybe-all-target-libatomic +configure-target-libgm2: maybe-all-target-libatomic +configure-target-libgomp: maybe-all-target-libatomic +configure-target-libitm: maybe-all-target-libatomic +configure-target-libgrust: maybe-all-target-libatomic +@endif gcc-no-bootstrap + configure-target-libgcobol: maybe-all-target-newlib maybe-all-target-libgloss configure-target-libgcobol: maybe-all-target-libstdc++-v3 +@if gcc-bootstrap +configure-stage1-target-libstdc++-v3: maybe-all-stage1-target-libatomic +configure-stage2-target-libstdc++-v3: maybe-all-stage2-target-libatomic +configure-stage3-target-libstdc++-v3: maybe-all-stage3-target-libatomic +configure-stage4-target-libstdc++-v3: maybe-all-stage4-target-libatomic +configure-stageprofile-target-libstdc++-v3: maybe-all-stageprofile-target-libatomic +configure-stagetrain-target-libstdc++-v3: maybe-all-stagetrain-target-libatomic +configure-stagefeedback-target-libstdc++-v3: maybe-all-stagefeedback-target-libatomic +configure-stageautoprofile-target-libstdc++-v3: maybe-all-stageautoprofile-target-libatomic +configure-stageautofeedback-target-libstdc++-v3: maybe-all-stageautofeedback-target-libatomic +configure-stage1-target-libsanitizer: maybe-all-stage1-target-libatomic +configure-stage2-target-libsanitizer: maybe-all-stage2-target-libatomic +configure-stage3-target-libsanitizer: maybe-all-stage3-target-libatomic +configure-stage4-target-libsanitizer: maybe-all-stage4-target-libatomic +configure-stageprofile-target-libsanitizer: maybe-all-stageprofile-target-libatomic +configure-stagetrain-target-libsanitizer: maybe-all-stagetrain-target-libatomic +configure-stagefeedback-target-libsanitizer: maybe-all-stagefeedback-target-libatomic +configure-stageautoprofile-target-libsanitizer: maybe-all-stageautoprofile-target-libatomic +configure-stageautofeedback-target-libsanitizer: maybe-all-stageautofeedback-target-libatomic +configure-stage1-target-libvtv: maybe-all-stage1-target-libatomic +configure-stage2-target-libvtv: maybe-all-stage2-target-libatomic +configure-stage3-target-libvtv: maybe-all-stage3-target-libatomic +configure-stage4-target-libvtv: maybe-all-stage4-target-libatomic +configure-stageprofile-target-libvtv: maybe-all-stageprofile-target-libatomic +configure-stagetrain-target-libvtv: maybe-all-stagetrain-target-libatomic +configure-stagefeedback-target-libvtv: maybe-all-stagefeedback-target-libatomic +configure-stageautoprofile-target-libvtv: maybe-all-stageautoprofile-target-libatomic +configure-stageautofeedback-target-libvtv: maybe-all-stageautofeedback-target-libatomic +configure-stage1-target-libbacktrace: maybe-all-stage1-target-libatomic +configure-stage2-target-libbacktrace: maybe-all-stage2-target-libatomic +configure-stage3-target-libbacktrace: maybe-all-stage3-target-libatomic +configure-stage4-target-libbacktrace: maybe-all-stage4-target-libatomic +configure-stageprofile-target-libbacktrace: maybe-all-stageprofile-target-libatomic +configure-stagetrain-target-libbacktrace: maybe-all-stagetrain-target-libatomic +configure-stagefeedback-target-libbacktrace: maybe-all-stagefeedback-target-libatomic +configure-stageautoprofile-target-libbacktrace: maybe-all-stageautoprofile-target-libatomic +configure-stageautofeedback-target-libbacktrace: maybe-all-stageautofeedback-target-libatomic +configure-stage1-target-libphobos: maybe-all-stage1-target-libatomic +configure-stage2-target-libphobos: maybe-all-stage2-target-libatomic +configure-stage3-target-libphobos: maybe-all-stage3-target-libatomic +configure-stage4-target-libphobos: maybe-all-stage4-target-libatomic +configure-stageprofile-target-libphobos: maybe-all-stageprofile-target-libatomic +configure-stagetrain-target-libphobos: maybe-all-stagetrain-target-libatomic +configure-stagefeedback-target-libphobos: maybe-all-stagefeedback-target-libatomic +configure-stageautoprofile-target-libphobos: maybe-all-stageautoprofile-target-libatomic +configure-stageautofeedback-target-libphobos: maybe-all-stageautofeedback-target-libatomic +configure-stage1-target-zlib: maybe-all-stage1-target-libatomic +configure-stage2-target-zlib: maybe-all-stage2-target-libatomic +configure-stage3-target-zlib: maybe-all-stage3-target-libatomic +configure-stage4-target-zlib: maybe-all-stage4-target-libatomic +configure-stageprofile-target-zlib: maybe-all-stageprofile-target-libatomic +configure-stagetrain-target-zlib: maybe-all-stagetrain-target-libatomic +configure-stagefeedback-target-zlib: maybe-all-stagefeedback-target-libatomic +configure-stageautoprofile-target-zlib: maybe-all-stageautoprofile-target-libatomic +configure-stageautofeedback-target-zlib: maybe-all-stageautofeedback-target-libatomic +configure-stage1-target-libgomp: maybe-all-stage1-target-libatomic +configure-stage2-target-libgomp: maybe-all-stage2-target-libatomic +configure-stage3-target-libgomp: maybe-all-stage3-target-libatomic +configure-stage4-target-libgomp: maybe-all-stage4-target-libatomic +configure-stageprofile-target-libgomp: maybe-all-stageprofile-target-libatomic +configure-stagetrain-target-libgomp: maybe-all-stagetrain-target-libatomic +configure-stagefeedback-target-libgomp: maybe-all-stagefeedback-target-libatomic +configure-stageautoprofile-target-libgomp: maybe-all-stageautoprofile-target-libatomic +configure-stageautofeedback-target-libgomp: maybe-all-stageautofeedback-target-libatomic +@endif gcc-bootstrap + +@if gcc-no-bootstrap +configure-target-libstdc++-v3: maybe-all-target-libatomic +configure-target-libsanitizer: maybe-all-target-libatomic +configure-target-libvtv: maybe-all-target-libatomic +configure-target-libssp: maybe-all-target-libatomic +configure-target-libbacktrace: maybe-all-target-libatomic +configure-target-libquadmath: maybe-all-target-libatomic +configure-target-libgfortran: maybe-all-target-libatomic +configure-target-libobjc: maybe-all-target-libatomic +configure-target-libgo: maybe-all-target-libatomic +configure-target-libphobos: maybe-all-target-libatomic +configure-target-libtermcap: maybe-all-target-libatomic +configure-target-winsup: maybe-all-target-libatomic +configure-target-libffi: maybe-all-target-libatomic +configure-target-zlib: maybe-all-target-libatomic +configure-target-rda: maybe-all-target-libatomic +configure-target-libada: maybe-all-target-libatomic +configure-target-libgm2: maybe-all-target-libatomic +configure-target-libgomp: maybe-all-target-libatomic +configure-target-libitm: maybe-all-target-libatomic +configure-target-libgrust: maybe-all-target-libatomic +@endif gcc-no-bootstrap + CONFIGURE_GDB_TK = @CONFIGURE_GDB_TK@ GDB_TK = @GDB_TK@ diff --git a/Makefile.tpl b/Makefile.tpl index ddcca5589137..431ce5ceb9c0 100644 --- a/Makefile.tpl +++ b/Makefile.tpl @@ -6,7 +6,7 @@ in # # Makefile for directory with subdirs to build. # Copyright (C) 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, -# 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2023 +# 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 # Free Software Foundation # # This file is free software; you can redistribute it and/or modify @@ -147,8 +147,7 @@ BASE_EXPORTS = \ M4="$(M4)"; export M4; \ SED="$(SED)"; export SED; \ AWK="$(AWK)"; export AWK; \ - MAKEINFO="$(MAKEINFO)"; export MAKEINFO; \ - GUILE="$(GUILE)"; export GUILE; + MAKEINFO="$(MAKEINFO)"; export MAKEINFO; # This is the list of variables to export in the environment when # configuring subdirectories for the build system. @@ -247,6 +246,7 @@ HOST_EXPORTS = \ GMPINC="$(HOST_GMPINC)"; export GMPINC; \ ISLLIBS="$(HOST_ISLLIBS)"; export ISLLIBS; \ ISLINC="$(HOST_ISLINC)"; export ISLINC; \ + TARGET_CONFIGDIRS="$(TARGET_CONFIGDIRS)"; export TARGET_CONFIGDIRS; \ XGCC_FLAGS_FOR_TARGET="$(XGCC_FLAGS_FOR_TARGET)"; export XGCC_FLAGS_FOR_TARGET; \ @if gcc-bootstrap $(RPATH_ENVVAR)=`echo "$(TARGET_LIB_PATH)$$$(RPATH_ENVVAR)" | sed 's,::*,:,g;s,^:*,,;s,:*$$,,'`; export $(RPATH_ENVVAR); \ @@ -437,7 +437,7 @@ DLLTOOL = @DLLTOOL@ DSYMUTIL = @DSYMUTIL@ LD = @LD@ LIPO = @LIPO@ -NM = @NM@ +NM = @NM@ @NM_PLUGIN_OPTION@ OBJDUMP = @OBJDUMP@ OTOOL = @OTOOL@ RANLIB = @RANLIB@ @RANLIB_PLUGIN_OPTION@ @@ -463,8 +463,6 @@ CRAB1_LIBS = @CRAB1_LIBS@ PKG_CONFIG_PATH = @PKG_CONFIG_PATH@ -GUILE = guile - # Pass additional PGO and LTO compiler options to the PGO build. BUILD_CFLAGS = $(PGO_BUILD_CFLAGS) $(PGO_BUILD_LTO_CFLAGS) override CFLAGS += $(BUILD_CFLAGS) @@ -590,7 +588,7 @@ do-compare3 = $(do-compare) # Programs producing files for the TARGET machine # ----------------------------------------------- -AR_FOR_TARGET=@AR_FOR_TARGET@ +AR_FOR_TARGET=@AR_FOR_TARGET@ @AR_PLUGIN_OPTION_FOR_TARGET@ AS_FOR_TARGET=@AS_FOR_TARGET@ CC_FOR_TARGET=$(STAGE_CC_WRAPPER) @CC_FOR_TARGET@ @@ -610,11 +608,11 @@ DSYMUTIL_FOR_TARGET=@DSYMUTIL_FOR_TARGET@ LD_FOR_TARGET=@LD_FOR_TARGET@ LIPO_FOR_TARGET=@LIPO_FOR_TARGET@ -NM_FOR_TARGET=@NM_FOR_TARGET@ +NM_FOR_TARGET=@NM_FOR_TARGET@ @NM_PLUGIN_OPTION_FOR_TARGET@ OBJDUMP_FOR_TARGET=@OBJDUMP_FOR_TARGET@ OBJCOPY_FOR_TARGET=@OBJCOPY_FOR_TARGET@ OTOOL_FOR_TARGET=@OTOOL_FOR_TARGET@ -RANLIB_FOR_TARGET=@RANLIB_FOR_TARGET@ +RANLIB_FOR_TARGET=@RANLIB_FOR_TARGET@ @RANLIB_PLUGIN_OPTION_FOR_TARGET@ READELF_FOR_TARGET=@READELF_FOR_TARGET@ STRIP_FOR_TARGET=@STRIP_FOR_TARGET@ WINDRES_FOR_TARGET=@WINDRES_FOR_TARGET@ @@ -2101,6 +2099,11 @@ ENDFOR dependencies +]@endif gcc-bootstrap (if (exist? "no_gcc") (hash-create-handle! lang-env-deps (string-append (get "module") "-" "no_gcc") #t)) + + (if (exist? "no_atomic") + (hash-create-handle! lang-env-deps + (string-append (get "module") "-" "no_atomic") #t)) + "" +][+ ENDFOR lang_env_dependencies +] @if gcc-bootstrap[+ FOR target_modules +][+ IF (not (lang-dep "no_gcc")) @@ -2119,6 +2122,17 @@ configure-target-[+module+]: maybe-all-target-newlib maybe-all-target-libgloss[+ ENDIF +][+ IF (lang-dep "cxx") +] configure-target-[+module+]: maybe-all-target-libstdc++-v3[+ ENDIF +] + +@if gcc-bootstrap[+ FOR target_modules +][+ IF (not (lang-dep "no_atomic")) + +][+ IF bootstrap +][+ FOR bootstrap_stage +] +configure-stage[+id+]-target-[+module+]: maybe-all-stage[+id+]-target-libatomic[+ + ENDFOR +][+ ENDIF bootstrap +][+ ENDIF +][+ ENDFOR target_modules +] +@endif gcc-bootstrap + +@if gcc-no-bootstrap[+ FOR target_modules +][+ IF (not (lang-dep "no_atomic")) +] +configure-target-[+module+]: maybe-all-target-libatomic[+ + ENDIF +][+ ENDFOR target_modules +] +@endif gcc-no-bootstrap [+ ENDFOR target_modules +] CONFIGURE_GDB_TK = @CONFIGURE_GDB_TK@ diff --git a/config/ChangeLog b/config/ChangeLog index 10bce27d8e91..473d9a0a1826 100644 --- a/config/ChangeLog +++ b/config/ChangeLog @@ -1,3 +1,8 @@ +2025-10-02 H.J. Lu + + * clang-plugin.m4: Synced from binutils-gdb. + * gcc-plugin.m4: Likewise. + 2025-08-10 Ijaz, Abdul B * lib-link.m4: Handle dash in the library name for diff --git a/config/acx.m4 b/config/acx.m4 index c45e55e7f517..db54ccf1c7c1 100644 --- a/config/acx.m4 +++ b/config/acx.m4 @@ -107,9 +107,9 @@ AC_SUBST([target_subdir]) []dnl #### -# _NCN_TOOL_PREFIXES: Some stuff that oughtta be done in AC_CANONICAL_SYSTEM +# _NCN_TOOL_PREFIXES: Some stuff that oughtta be done in AC_CANONICAL_TARGET # or AC_INIT. -# These demand that AC_CANONICAL_SYSTEM be called beforehand. +# These demand that AC_CANONICAL_HOST and AC_CANONICAL_TARGET be called beforehand. AC_DEFUN([_NCN_TOOL_PREFIXES], [ncn_tool_prefix= test -n "$host_alias" && ncn_tool_prefix=$host_alias- diff --git a/config/clang-plugin.m4 b/config/clang-plugin.m4 new file mode 100644 index 000000000000..cc051fe48e32 --- /dev/null +++ b/config/clang-plugin.m4 @@ -0,0 +1,114 @@ +# clang-plugin.m4 -*- Autoconf -*- +# Check clang plugin file. + +dnl Copyright (C) 2025 Free Software Foundation, Inc. +dnl This file is free software, distributed under the terms of the GNU +dnl General Public License. As a special exception to the GNU General +dnl Public License, this file may be distributed as part of a program +dnl that contains a configuration script generated by Autoconf, under +dnl the same distribution terms as the rest of that program. + +dnl +dnl +dnl CLANG_PLUGIN_FILE +dnl (SHELL-CODE_HANDLER) +dnl +AC_DEFUN([CLANG_PLUGIN_FILE],[dnl + AC_CACHE_CHECK([for clang], clang_cv_is_clang, [ + AC_EGREP_CPP(yes, [ +#ifdef __clang__ + yes +#endif + ], clang_cv_is_clang=yes, clang_cv_is_clang=no)]) + plugin_file= + if test $clang_cv_is_clang = yes; then + AC_MSG_CHECKING([for clang plugin file]) + plugin_names="LLVMgold.so" + for plugin in $plugin_names; do + plugin_file=`${CC} ${CFLAGS} --print-file-name $plugin` + if test x$plugin_file = x$plugin; then + AC_CHECK_TOOL(LLVM_CONFIG, llvm-config) + if test "$?" != 0; then + AC_MSG_ERROR([Required tool 'llvm-config' not found on PATH.]) + fi + clang_lib_dir=`$LLVM_CONFIG --libdir` + if test -f $clang_lib_dir/$plugin; then + plugin_file=$clang_lib_dir/$plugin + fi + if test x$plugin_file != x$plugin; then + break; + fi + fi + done + if test -z $plugin_file; then + AC_MSG_ERROR([Couldn't find clang plugin file for $CC.]) + fi + dnl Check if ${AR} $plugin_option rc works. + AC_CHECK_TOOL(AR, ar) + if test "${AR}" = "" ; then + AC_MSG_ERROR([Required archive tool 'ar' not found on PATH.]) + fi + plugin_option="--plugin $plugin_file" + touch conftest.c + ${AR} $plugin_option rc conftest.a conftest.c + if test "$?" != 0; then + AC_MSG_WARN([Failed: $AR $plugin_option rc]) + plugin_file= + fi + rm -f conftest.* + AC_MSG_RESULT($plugin_file) + fi + $1="$plugin_file" +]) + +dnl +dnl +dnl CLANG_PLUGIN_FILE_FOR_TARGET +dnl (SHELL-CODE_HANDLER) +dnl +AC_DEFUN([CLANG_PLUGIN_FILE_FOR_TARGET],[dnl + COMPILER_FOR_TARGET="${CC_FOR_TARGET}" + if test x"${COMPILER_FOR_TARGET}" = x"\$(CC)"; then + COMPILER_FOR_TARGET="$CC" + fi + saved_CC="$CC" + CC="$COMPILER_FOR_TARGET" + AC_CACHE_CHECK([for clang for target], clang_target_cv_working, [ + AC_TRY_COMPILE([ +#ifndef __clang__ +#error Not clang +#endif + ], + [], + clang_target_cv_working=yes, clang_target_cv_working=no)]) + CC="$saved_CC" + plugin_file= + if test $clang_target_cv_working = yes; then + AC_MSG_CHECKING([for clang plugin file for target]) + plugin_names="LLVMgold.so" + dnl Check if the host compiler is used. + for plugin in $plugin_names; do + plugin_file=`${COMPILER_FOR_TARGET} ${CFLAGS_FOR_TARGET} --print-file-name $plugin` + if test x$plugin_file = x$plugin; then + GCC_TARGET_TOOL(llvm-config, LLVM_CONFIG_FOR_TARGET, LLVM_CONFIG) + if test "$?" != 0; then + AC_MSG_ERROR([Required target tool 'llvm-config' not found.]) + fi + clang_lib_dir=`$LLVM_CONFIG_FOR_TARGET --libdir` + if test -f $clang_lib_dir/$plugin; then + plugin_file=$clang_lib_dir/$plugin + fi + fi + if test x$plugin_file != x$plugin; then + break; + fi + plugin_file= + done + if test -n $plugin_file; then + AC_MSG_RESULT($plugin_file) + else + AC_MSG_RESULT([no]) + fi + fi + $1="$plugin_file" +]) diff --git a/config/gcc-plugin.m4 b/config/gcc-plugin.m4 index c30cfdd8fadb..0382147b3818 100644 --- a/config/gcc-plugin.m4 +++ b/config/gcc-plugin.m4 @@ -169,3 +169,46 @@ else AC_MSG_RESULT([no]) fi ]) + +dnl +dnl +dnl GCC_PLUGIN_OPTION_FOR_TARGET +dnl (SHELL-CODE_HANDLER) +dnl +AC_DEFUN([GCC_PLUGIN_OPTION_FOR_TARGET],[dnl +COMPILER_FOR_TARGET="${CC_FOR_TARGET}" +dnl Check if the host compiler is used. +if test x"${COMPILER_FOR_TARGET}" = x"\$(CC)"; then + COMPILER_FOR_TARGET="$CC" +fi +saved_CC="$CC" +CC="$COMPILER_FOR_TARGET" +AC_CACHE_CHECK([for gcc for target], gcc_target_cv_working, [ + AC_TRY_COMPILE( + [], + [], + gcc_target_cv_working=yes, + gcc_target_cv_working=no)]) +CC="$saved_CC" +AC_MSG_CHECKING([for -plugin option]) +plugin_option= +if test $gcc_target_cv_working = yes; then + plugin_names="liblto_plugin.so liblto_plugin-0.dll cyglto_plugin-0.dll" + for plugin in $plugin_names; do + plugin_so=`${COMPILER_FOR_TARGET} ${CFLAGS_FOR_TARGET} --print-prog-name $plugin` + if test x$plugin_so = x$plugin; then + plugin_so=`${COMPILER_FOR_TARGET} ${CFLAGS_FOR_TARGET} --print-file-name $plugin` + fi + if test x$plugin_so != x$plugin; then + plugin_option="--plugin $plugin_so" + break + fi + done +fi +if test -n "$plugin_option"; then + $1="$plugin_option" + AC_MSG_RESULT($plugin_option) +else + AC_MSG_RESULT([no]) +fi +]) diff --git a/config/lthostflags.m4 b/config/lthostflags.m4 index bc0f59ee79e0..4a389a75ea83 100644 --- a/config/lthostflags.m4 +++ b/config/lthostflags.m4 @@ -10,7 +10,7 @@ dnl Defines and AC_SUBSTs lt_host_flags AC_DEFUN([ACX_LT_HOST_FLAGS], [ -AC_REQUIRE([AC_CANONICAL_SYSTEM]) +AC_REQUIRE([AC_CANONICAL_HOST]) case $host in *-cygwin* | *-mingw*) diff --git a/configure b/configure index ccec3f21cd85..4f2ba5e8a056 100755 --- a/configure +++ b/configure @@ -596,6 +596,10 @@ MAINTAINER_MODE_TRUE COMPILER_NM_FOR_TARGET COMPILER_LD_FOR_TARGET COMPILER_AS_FOR_TARGET +RANLIB_PLUGIN_OPTION_FOR_TARGET +NM_PLUGIN_OPTION_FOR_TARGET +AR_PLUGIN_OPTION_FOR_TARGET +LLVM_CONFIG_FOR_TARGET FLAGS_FOR_TARGET RAW_CXX_FOR_TARGET WINDMC_FOR_TARGET @@ -621,7 +625,12 @@ GCC_FOR_TARGET CXX_FOR_TARGET CC_FOR_TARGET RANLIB_PLUGIN_OPTION +NM_PLUGIN_OPTION AR_PLUGIN_OPTION +LLVM_CONFIG +EGREP +GREP +CPP PKG_CONFIG_PATH GDCFLAGS READELF @@ -893,6 +902,7 @@ OBJCOPY OBJDUMP OTOOL READELF +CPP CC_FOR_TARGET CXX_FOR_TARGET GCC_FOR_TARGET @@ -1693,6 +1703,7 @@ Some influential environment variables: OBJDUMP OBJDUMP for the host OTOOL OTOOL for the host READELF READELF for the host + CPP C preprocessor CC_FOR_TARGET CC for the target CXX_FOR_TARGET @@ -1985,6 +1996,43 @@ fi as_fn_set_status $ac_retval } # ac_fn_c_try_link + +# ac_fn_c_try_cpp LINENO +# ---------------------- +# Try to preprocess conftest.$ac_ext, and return whether this succeeded. +ac_fn_c_try_cpp () +{ + as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack + if { { ac_try="$ac_cpp conftest.$ac_ext" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" +$as_echo "$ac_try_echo"; } >&5 + (eval "$ac_cpp conftest.$ac_ext") 2>conftest.err + ac_status=$? + if test -s conftest.err; then + grep -v '^ *+' conftest.err >conftest.er1 + cat conftest.er1 >&5 + mv -f conftest.er1 conftest.err + fi + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } > conftest.i && { + test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" || + test ! -s conftest.err + }; then : + ac_retval=0 +else + $as_echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_retval=1 +fi + eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno + as_fn_set_status $ac_retval + +} # ac_fn_c_try_cpp cat >config.log <<_ACEOF This file contains any messages produced by compilers while running configure, to aid debugging if configure makes a mistake. @@ -2343,6 +2391,7 @@ ac_compiler_gnu=$ac_cv_c_compiler_gnu + progname=$0 # if PWD already has a value, it is probably wrong. if test -n "$PWD" ; then PWD=`${PWDCMD-pwd}`; fi @@ -2538,7 +2587,6 @@ test -n "$target_alias" && test "$program_prefix$program_suffix$program_transform_name" = \ NONENONEs,x,x, && program_prefix=${target_alias}- - test "$program_prefix" != NONE && program_transform_name="s&^&$program_prefix&;$program_transform_name" # Use a double $ so make ignores it. @@ -4104,10 +4152,6 @@ case "${target}" in # always build newlib. skipdirs=`echo " ${skipdirs} " | sed -e 's/ target-newlib / /'` ;; - # This is temporary until we can link against shared libraries - powerpcle-*-solaris*) - noconfigdirs="$noconfigdirs gdb sim tcl tk itcl" - ;; powerpc-*-beos*) noconfigdirs="$noconfigdirs gdb" ;; @@ -11031,6 +11075,11 @@ if echo " ${target_configdirs} " | grep " libgomp " > /dev/null 2>&1 ; then bootstrap_target_libs=${bootstrap_target_libs}target-libgomp, fi +# If we are building libatomic, bootstrap it. +if echo " ${target_configdirs} " | grep " libatomic " > /dev/null 2>&1 ; then + bootstrap_target_libs=${bootstrap_target_libs}target-libatomic, +fi + # If we are building libsanitizer and $BUILD_CONFIG contains bootstrap-asan # or bootstrap-ubsan, bootstrap it. if echo " ${target_configdirs} " | grep " libsanitizer " > /dev/null 2>&1; then @@ -14221,7 +14270,529 @@ fi GDCFLAGS=${GDCFLAGS-${CFLAGS}} -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for -plugin option" >&5 +# Try CLANG_PLUGIN_FILE first since GCC_PLUGIN_OPTION may return the +# wrong PLUGIN_OPTION with clang. +ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to run the C preprocessor" >&5 +$as_echo_n "checking how to run the C preprocessor... " >&6; } +# On Suns, sometimes $CPP names a directory. +if test -n "$CPP" && test -d "$CPP"; then + CPP= +fi +if test -z "$CPP"; then + if ${ac_cv_prog_CPP+:} false; then : + $as_echo_n "(cached) " >&6 +else + # Double quotes because CPP needs to be expanded + for CPP in "$CC -E" "$CC -E -traditional-cpp" "/lib/cpp" + do + ac_preproc_ok=false +for ac_c_preproc_warn_flag in '' yes +do + # Use a header file that comes with gcc, so configuring glibc + # with a fresh cross-compiler works. + # Prefer to if __STDC__ is defined, since + # exists even on freestanding compilers. + # On the NeXT, cc -E runs the code through the compiler's parser, + # not just through cpp. "Syntax error" is here to catch this case. + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#ifdef __STDC__ +# include +#else +# include +#endif + Syntax error +_ACEOF +if ac_fn_c_try_cpp "$LINENO"; then : + +else + # Broken: fails on valid input. +continue +fi +rm -f conftest.err conftest.i conftest.$ac_ext + + # OK, works on sane cases. Now check whether nonexistent headers + # can be detected and how. + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include +_ACEOF +if ac_fn_c_try_cpp "$LINENO"; then : + # Broken: success on invalid input. +continue +else + # Passes both tests. +ac_preproc_ok=: +break +fi +rm -f conftest.err conftest.i conftest.$ac_ext + +done +# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped. +rm -f conftest.i conftest.err conftest.$ac_ext +if $ac_preproc_ok; then : + break +fi + + done + ac_cv_prog_CPP=$CPP + +fi + CPP=$ac_cv_prog_CPP +else + ac_cv_prog_CPP=$CPP +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $CPP" >&5 +$as_echo "$CPP" >&6; } +ac_preproc_ok=false +for ac_c_preproc_warn_flag in '' yes +do + # Use a header file that comes with gcc, so configuring glibc + # with a fresh cross-compiler works. + # Prefer to if __STDC__ is defined, since + # exists even on freestanding compilers. + # On the NeXT, cc -E runs the code through the compiler's parser, + # not just through cpp. "Syntax error" is here to catch this case. + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#ifdef __STDC__ +# include +#else +# include +#endif + Syntax error +_ACEOF +if ac_fn_c_try_cpp "$LINENO"; then : + +else + # Broken: fails on valid input. +continue +fi +rm -f conftest.err conftest.i conftest.$ac_ext + + # OK, works on sane cases. Now check whether nonexistent headers + # can be detected and how. + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include +_ACEOF +if ac_fn_c_try_cpp "$LINENO"; then : + # Broken: success on invalid input. +continue +else + # Passes both tests. +ac_preproc_ok=: +break +fi +rm -f conftest.err conftest.i conftest.$ac_ext + +done +# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped. +rm -f conftest.i conftest.err conftest.$ac_ext +if $ac_preproc_ok; then : + +else + { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 +$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} +as_fn_error $? "C preprocessor \"$CPP\" fails sanity check +See \`config.log' for more details" "$LINENO" 5; } +fi + +ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu + + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for grep that handles long lines and -e" >&5 +$as_echo_n "checking for grep that handles long lines and -e... " >&6; } +if ${ac_cv_path_GREP+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -z "$GREP"; then + ac_path_GREP_found=false + # Loop through the user's path and test for each of PROGNAME-LIST + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_prog in grep ggrep; do + for ac_exec_ext in '' $ac_executable_extensions; do + ac_path_GREP="$as_dir/$ac_prog$ac_exec_ext" + as_fn_executable_p "$ac_path_GREP" || continue +# Check for GNU ac_path_GREP and select it if it is found. + # Check for GNU $ac_path_GREP +case `"$ac_path_GREP" --version 2>&1` in +*GNU*) + ac_cv_path_GREP="$ac_path_GREP" ac_path_GREP_found=:;; +*) + ac_count=0 + $as_echo_n 0123456789 >"conftest.in" + while : + do + cat "conftest.in" "conftest.in" >"conftest.tmp" + mv "conftest.tmp" "conftest.in" + cp "conftest.in" "conftest.nl" + $as_echo 'GREP' >> "conftest.nl" + "$ac_path_GREP" -e 'GREP$' -e '-(cannot match)-' < "conftest.nl" >"conftest.out" 2>/dev/null || break + diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break + as_fn_arith $ac_count + 1 && ac_count=$as_val + if test $ac_count -gt ${ac_path_GREP_max-0}; then + # Best one so far, save it but keep looking for a better one + ac_cv_path_GREP="$ac_path_GREP" + ac_path_GREP_max=$ac_count + fi + # 10*(2^10) chars as input seems more than enough + test $ac_count -gt 10 && break + done + rm -f conftest.in conftest.tmp conftest.nl conftest.out;; +esac + + $ac_path_GREP_found && break 3 + done + done + done +IFS=$as_save_IFS + if test -z "$ac_cv_path_GREP"; then + as_fn_error $? "no acceptable grep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5 + fi +else + ac_cv_path_GREP=$GREP +fi + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_GREP" >&5 +$as_echo "$ac_cv_path_GREP" >&6; } + GREP="$ac_cv_path_GREP" + + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for egrep" >&5 +$as_echo_n "checking for egrep... " >&6; } +if ${ac_cv_path_EGREP+:} false; then : + $as_echo_n "(cached) " >&6 +else + if echo a | $GREP -E '(a|b)' >/dev/null 2>&1 + then ac_cv_path_EGREP="$GREP -E" + else + if test -z "$EGREP"; then + ac_path_EGREP_found=false + # Loop through the user's path and test for each of PROGNAME-LIST + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_prog in egrep; do + for ac_exec_ext in '' $ac_executable_extensions; do + ac_path_EGREP="$as_dir/$ac_prog$ac_exec_ext" + as_fn_executable_p "$ac_path_EGREP" || continue +# Check for GNU ac_path_EGREP and select it if it is found. + # Check for GNU $ac_path_EGREP +case `"$ac_path_EGREP" --version 2>&1` in +*GNU*) + ac_cv_path_EGREP="$ac_path_EGREP" ac_path_EGREP_found=:;; +*) + ac_count=0 + $as_echo_n 0123456789 >"conftest.in" + while : + do + cat "conftest.in" "conftest.in" >"conftest.tmp" + mv "conftest.tmp" "conftest.in" + cp "conftest.in" "conftest.nl" + $as_echo 'EGREP' >> "conftest.nl" + "$ac_path_EGREP" 'EGREP$' < "conftest.nl" >"conftest.out" 2>/dev/null || break + diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break + as_fn_arith $ac_count + 1 && ac_count=$as_val + if test $ac_count -gt ${ac_path_EGREP_max-0}; then + # Best one so far, save it but keep looking for a better one + ac_cv_path_EGREP="$ac_path_EGREP" + ac_path_EGREP_max=$ac_count + fi + # 10*(2^10) chars as input seems more than enough + test $ac_count -gt 10 && break + done + rm -f conftest.in conftest.tmp conftest.nl conftest.out;; +esac + + $ac_path_EGREP_found && break 3 + done + done + done +IFS=$as_save_IFS + if test -z "$ac_cv_path_EGREP"; then + as_fn_error $? "no acceptable egrep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5 + fi +else + ac_cv_path_EGREP=$EGREP +fi + + fi +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_EGREP" >&5 +$as_echo "$ac_cv_path_EGREP" >&6; } + EGREP="$ac_cv_path_EGREP" + + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for clang" >&5 +$as_echo_n "checking for clang... " >&6; } +if ${clang_cv_is_clang+:} false; then : + $as_echo_n "(cached) " >&6 +else + + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +#ifdef __clang__ + yes +#endif + +_ACEOF +if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | + $EGREP "yes" >/dev/null 2>&1; then : + clang_cv_is_clang=yes +else + clang_cv_is_clang=no +fi +rm -f conftest* + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $clang_cv_is_clang" >&5 +$as_echo "$clang_cv_is_clang" >&6; } + plugin_file= + if test $clang_cv_is_clang = yes; then + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for clang plugin file" >&5 +$as_echo_n "checking for clang plugin file... " >&6; } + plugin_names="LLVMgold.so" + for plugin in $plugin_names; do + plugin_file=`${CC} ${CFLAGS} --print-file-name $plugin` + if test x$plugin_file = x$plugin; then + if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}llvm-config", so it can be a program name with args. +set dummy ${ac_tool_prefix}llvm-config; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_LLVM_CONFIG+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$LLVM_CONFIG"; then + ac_cv_prog_LLVM_CONFIG="$LLVM_CONFIG" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_LLVM_CONFIG="${ac_tool_prefix}llvm-config" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +LLVM_CONFIG=$ac_cv_prog_LLVM_CONFIG +if test -n "$LLVM_CONFIG"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $LLVM_CONFIG" >&5 +$as_echo "$LLVM_CONFIG" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + +fi +if test -z "$ac_cv_prog_LLVM_CONFIG"; then + ac_ct_LLVM_CONFIG=$LLVM_CONFIG + # Extract the first word of "llvm-config", so it can be a program name with args. +set dummy llvm-config; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_ac_ct_LLVM_CONFIG+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$ac_ct_LLVM_CONFIG"; then + ac_cv_prog_ac_ct_LLVM_CONFIG="$ac_ct_LLVM_CONFIG" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_ac_ct_LLVM_CONFIG="llvm-config" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +ac_ct_LLVM_CONFIG=$ac_cv_prog_ac_ct_LLVM_CONFIG +if test -n "$ac_ct_LLVM_CONFIG"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_LLVM_CONFIG" >&5 +$as_echo "$ac_ct_LLVM_CONFIG" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + if test "x$ac_ct_LLVM_CONFIG" = x; then + LLVM_CONFIG="" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + LLVM_CONFIG=$ac_ct_LLVM_CONFIG + fi +else + LLVM_CONFIG="$ac_cv_prog_LLVM_CONFIG" +fi + + if test "$?" != 0; then + as_fn_error $? "Required tool 'llvm-config' not found on PATH." "$LINENO" 5 + fi + clang_lib_dir=`$LLVM_CONFIG --libdir` + if test -f $clang_lib_dir/$plugin; then + plugin_file=$clang_lib_dir/$plugin + fi + if test x$plugin_file != x$plugin; then + break; + fi + fi + done + if test -z $plugin_file; then + as_fn_error $? "Couldn't find clang plugin file for $CC." "$LINENO" 5 + fi + if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}ar", so it can be a program name with args. +set dummy ${ac_tool_prefix}ar; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_AR+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$AR"; then + ac_cv_prog_AR="$AR" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_AR="${ac_tool_prefix}ar" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +AR=$ac_cv_prog_AR +if test -n "$AR"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $AR" >&5 +$as_echo "$AR" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + +fi +if test -z "$ac_cv_prog_AR"; then + ac_ct_AR=$AR + # Extract the first word of "ar", so it can be a program name with args. +set dummy ar; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_ac_ct_AR+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$ac_ct_AR"; then + ac_cv_prog_ac_ct_AR="$ac_ct_AR" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_ac_ct_AR="ar" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +ac_ct_AR=$ac_cv_prog_ac_ct_AR +if test -n "$ac_ct_AR"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_AR" >&5 +$as_echo "$ac_ct_AR" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + if test "x$ac_ct_AR" = x; then + AR="" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + AR=$ac_ct_AR + fi +else + AR="$ac_cv_prog_AR" +fi + + if test "${AR}" = "" ; then + as_fn_error $? "Required archive tool 'ar' not found on PATH." "$LINENO" 5 + fi + plugin_option="--plugin $plugin_file" + touch conftest.c + ${AR} $plugin_option rc conftest.a conftest.c + if test "$?" != 0; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Failed: $AR $plugin_option rc" >&5 +$as_echo "$as_me: WARNING: Failed: $AR $plugin_option rc" >&2;} + plugin_file= + fi + rm -f conftest.* + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $plugin_file" >&5 +$as_echo "$plugin_file" >&6; } + fi + PLUGIN_FILE="$plugin_file" + +if test -n "$PLUGIN_FILE"; then + PLUGIN_OPTION="--plugin $PLUGIN_FILE" +else + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for -plugin option" >&5 $as_echo_n "checking for -plugin option... " >&6; } plugin_names="liblto_plugin.so liblto_plugin-0.dll cyglto_plugin-0.dll" @@ -14348,12 +14919,17 @@ else $as_echo "no" >&6; } fi +fi AR_PLUGIN_OPTION= +NM_PLUGIN_OPTION= RANLIB_PLUGIN_OPTION= if test -n "$PLUGIN_OPTION"; then if $AR --help 2>&1 | grep -q "\--plugin"; then AR_PLUGIN_OPTION="$PLUGIN_OPTION" fi + if $NM --help 2>&1 | grep -q "\--plugin"; then + NM_PLUGIN_OPTION="$PLUGIN_OPTION" + fi if $RANLIB --help 2>&1 | grep -q "\--plugin"; then RANLIB_PLUGIN_OPTION="$PLUGIN_OPTION" fi @@ -14361,6 +14937,7 @@ fi + # Target tools. # Check whether --with-build-time-tools was given. @@ -20024,6 +20601,182 @@ AR_FOR_TARGET=${AR_FOR_TARGET}${extra_arflags_for_target} RANLIB_FOR_TARGET=${RANLIB_FOR_TARGET}${extra_ranlibflags_for_target} NM_FOR_TARGET=${NM_FOR_TARGET}${extra_nmflags_for_target} +# Try CLANG_PLUGIN_FILE_FOR_TARGET first since GCC_PLUGIN_OPTION_FOR_TARGET +# may return the wrong PLUGIN_OPTION_FOR_TARGET with clang. + COMPILER_FOR_TARGET="${CC_FOR_TARGET}" + if test x"${COMPILER_FOR_TARGET}" = x"\$(CC)"; then + COMPILER_FOR_TARGET="$CC" + fi + saved_CC="$CC" + CC="$COMPILER_FOR_TARGET" + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for clang for target" >&5 +$as_echo_n "checking for clang for target... " >&6; } +if ${clang_target_cv_working+:} false; then : + $as_echo_n "(cached) " >&6 +else + + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +#ifndef __clang__ +#error Not clang +#endif + +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + clang_target_cv_working=yes +else + clang_target_cv_working=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $clang_target_cv_working" >&5 +$as_echo "$clang_target_cv_working" >&6; } + CC="$saved_CC" + plugin_file= + if test $clang_target_cv_working = yes; then + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for clang plugin file for target" >&5 +$as_echo_n "checking for clang plugin file for target... " >&6; } + plugin_names="LLVMgold.so" + for plugin in $plugin_names; do + plugin_file=`${COMPILER_FOR_TARGET} ${CFLAGS_FOR_TARGET} --print-file-name $plugin` + if test x$plugin_file = x$plugin; then + { $as_echo "$as_me:${as_lineno-$LINENO}: checking where to find the target llvm-config" >&5 +$as_echo_n "checking where to find the target llvm-config... " >&6; } +if test "x${build}" != "x${host}" ; then + if expr "x$LLVM_CONFIG_FOR_TARGET" : "x/" > /dev/null; then + # We already found the complete path + ac_dir=`dirname $LLVM_CONFIG_FOR_TARGET` + { $as_echo "$as_me:${as_lineno-$LINENO}: result: pre-installed in $ac_dir" >&5 +$as_echo "pre-installed in $ac_dir" >&6; } + else + # Canadian cross, just use what we found + { $as_echo "$as_me:${as_lineno-$LINENO}: result: pre-installed" >&5 +$as_echo "pre-installed" >&6; } + fi +else + if expr "x$LLVM_CONFIG_FOR_TARGET" : "x/" > /dev/null; then + # We already found the complete path + ac_dir=`dirname $LLVM_CONFIG_FOR_TARGET` + { $as_echo "$as_me:${as_lineno-$LINENO}: result: pre-installed in $ac_dir" >&5 +$as_echo "pre-installed in $ac_dir" >&6; } + elif test "x$target" = "x$host"; then + # We can use an host tool + LLVM_CONFIG_FOR_TARGET='$(LLVM_CONFIG)' + { $as_echo "$as_me:${as_lineno-$LINENO}: result: host tool" >&5 +$as_echo "host tool" >&6; } + else + # We need a cross tool + { $as_echo "$as_me:${as_lineno-$LINENO}: result: pre-installed" >&5 +$as_echo "pre-installed" >&6; } + fi +fi + + if test "$?" != 0; then + as_fn_error $? "Required target tool 'llvm-config' not found." "$LINENO" 5 + fi + clang_lib_dir=`$LLVM_CONFIG_FOR_TARGET --libdir` + if test -f $clang_lib_dir/$plugin; then + plugin_file=$clang_lib_dir/$plugin + fi + fi + if test x$plugin_file != x$plugin; then + break; + fi + plugin_file= + done + if test -n $plugin_file; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $plugin_file" >&5 +$as_echo "$plugin_file" >&6; } + else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + fi + fi + PLUGIN_FILE_FOR_TARGET="$plugin_file" + +if test -n "$PLUGIN_FILE_FOR_TARGET"; then + PLUGIN_OPTION_FOR_TARGET="--plugin $PLUGIN_FILE_FOR_TARGET" +else + COMPILER_FOR_TARGET="${CC_FOR_TARGET}" +if test x"${COMPILER_FOR_TARGET}" = x"\$(CC)"; then + COMPILER_FOR_TARGET="$CC" +fi +saved_CC="$CC" +CC="$COMPILER_FOR_TARGET" +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for gcc for target" >&5 +$as_echo_n "checking for gcc for target... " >&6; } +if ${gcc_target_cv_working+:} false; then : + $as_echo_n "(cached) " >&6 +else + + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + gcc_target_cv_working=yes +else + gcc_target_cv_working=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gcc_target_cv_working" >&5 +$as_echo "$gcc_target_cv_working" >&6; } +CC="$saved_CC" +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for -plugin option" >&5 +$as_echo_n "checking for -plugin option... " >&6; } +plugin_option= +if test $gcc_target_cv_working = yes; then + plugin_names="liblto_plugin.so liblto_plugin-0.dll cyglto_plugin-0.dll" + for plugin in $plugin_names; do + plugin_so=`${COMPILER_FOR_TARGET} ${CFLAGS_FOR_TARGET} --print-prog-name $plugin` + if test x$plugin_so = x$plugin; then + plugin_so=`${COMPILER_FOR_TARGET} ${CFLAGS_FOR_TARGET} --print-file-name $plugin` + fi + if test x$plugin_so != x$plugin; then + plugin_option="--plugin $plugin_so" + break + fi + done +fi +if test -n "$plugin_option"; then + PLUGIN_OPTION_FOR_TARGET="$plugin_option" + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $plugin_option" >&5 +$as_echo "$plugin_option" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + +fi +if test -n "$PLUGIN_OPTION_FOR_TARGET"; then + AR_PLUGIN_OPTION_FOR_TARGET="$PLUGIN_OPTION_FOR_TARGET" + NM_PLUGIN_OPTION_FOR_TARGET="$PLUGIN_OPTION_FOR_TARGET" + RANLIB_PLUGIN_OPTION_FOR_TARGET="$PLUGIN_OPTION_FOR_TARGET" +else + AR_PLUGIN_OPTION_FOR_TARGET= + NM_PLUGIN_OPTION_FOR_TARGET= + RANLIB_PLUGIN_OPTION_FOR_TARGET= +fi + + + + # When building target libraries, except in a Canadian cross, we use # the same toolchain as the compiler we just built. COMPILER_AS_FOR_TARGET='$(AS_FOR_TARGET)' diff --git a/configure.ac b/configure.ac index 89ebe4041b61..94321ffd20ab 100644 --- a/configure.ac +++ b/configure.ac @@ -24,6 +24,7 @@ m4_include(config/override.m4) m4_include(config/proginstall.m4) m4_include(config/elf.m4) m4_include(config/ax_cxx_compile_stdcxx.m4) +m4_include(config/clang-plugin.m4) m4_include(config/gcc-plugin.m4) m4_include([libtool.m4]) m4_include([ltoptions.m4]) @@ -32,7 +33,8 @@ m4_include([ltversion.m4]) m4_include([lt~obsolete.m4]) m4_include([config/isl.m4]) -AC_INIT(move-if-change) +AC_INIT +AC_CONFIG_SRCDIR([move-if-change]) AC_DISABLE_OPTION_CHECKING progname=$0 @@ -70,14 +72,14 @@ ACX_NONCANONICAL_TARGET dnl Autoconf 2.5x and later will set a default program prefix if dnl --target was used, even if it was the same as --host. Disable -dnl that behavior. This must be done before AC_CANONICAL_SYSTEM +dnl that behavior. This must be done before AC_CANONICAL_TARGET dnl to take effect. test "$host_noncanonical" = "$target_noncanonical" && test "$program_prefix$program_suffix$program_transform_name" = \ NONENONEs,x,x, && program_transform_name=s,y,y, -AC_CANONICAL_SYSTEM +AC_CANONICAL_TARGET AC_ARG_PROGRAM m4_pattern_allow([^AS_FOR_TARGET$])dnl @@ -1319,10 +1321,6 @@ case "${target}" in # always build newlib. skipdirs=`echo " ${skipdirs} " | sed -e 's/ target-newlib / /'` ;; - # This is temporary until we can link against shared libraries - powerpcle-*-solaris*) - noconfigdirs="$noconfigdirs gdb sim tcl tk itcl" - ;; powerpc-*-beos*) noconfigdirs="$noconfigdirs gdb" ;; @@ -3253,6 +3251,11 @@ if echo " ${target_configdirs} " | grep " libgomp " > /dev/null 2>&1 ; then bootstrap_target_libs=${bootstrap_target_libs}target-libgomp, fi +# If we are building libatomic, bootstrap it. +if echo " ${target_configdirs} " | grep " libatomic " > /dev/null 2>&1 ; then + bootstrap_target_libs=${bootstrap_target_libs}target-libatomic, +fi + # If we are building libsanitizer and $BUILD_CONFIG contains bootstrap-asan # or bootstrap-ubsan, bootstrap it. if echo " ${target_configdirs} " | grep " libsanitizer " > /dev/null 2>&1; then @@ -4015,18 +4018,30 @@ AC_SUBST(GDCFLAGS) GDCFLAGS=${GDCFLAGS-${CFLAGS}} AC_SUBST(PKG_CONFIG_PATH) -GCC_PLUGIN_OPTION(PLUGIN_OPTION) +# Try CLANG_PLUGIN_FILE first since GCC_PLUGIN_OPTION may return the +# wrong PLUGIN_OPTION with clang. +CLANG_PLUGIN_FILE(PLUGIN_FILE) +if test -n "$PLUGIN_FILE"; then + PLUGIN_OPTION="--plugin $PLUGIN_FILE" +else + GCC_PLUGIN_OPTION(PLUGIN_OPTION) +fi AR_PLUGIN_OPTION= +NM_PLUGIN_OPTION= RANLIB_PLUGIN_OPTION= if test -n "$PLUGIN_OPTION"; then if $AR --help 2>&1 | grep -q "\--plugin"; then AR_PLUGIN_OPTION="$PLUGIN_OPTION" fi + if $NM --help 2>&1 | grep -q "\--plugin"; then + NM_PLUGIN_OPTION="$PLUGIN_OPTION" + fi if $RANLIB --help 2>&1 | grep -q "\--plugin"; then RANLIB_PLUGIN_OPTION="$PLUGIN_OPTION" fi fi AC_SUBST(AR_PLUGIN_OPTION) +AC_SUBST(NM_PLUGIN_OPTION) AC_SUBST(RANLIB_PLUGIN_OPTION) # Target tools. @@ -4121,6 +4136,27 @@ AR_FOR_TARGET=${AR_FOR_TARGET}${extra_arflags_for_target} RANLIB_FOR_TARGET=${RANLIB_FOR_TARGET}${extra_ranlibflags_for_target} NM_FOR_TARGET=${NM_FOR_TARGET}${extra_nmflags_for_target} +# Try CLANG_PLUGIN_FILE_FOR_TARGET first since GCC_PLUGIN_OPTION_FOR_TARGET +# may return the wrong PLUGIN_OPTION_FOR_TARGET with clang. +CLANG_PLUGIN_FILE_FOR_TARGET(PLUGIN_FILE_FOR_TARGET) +if test -n "$PLUGIN_FILE_FOR_TARGET"; then + PLUGIN_OPTION_FOR_TARGET="--plugin $PLUGIN_FILE_FOR_TARGET" +else + GCC_PLUGIN_OPTION_FOR_TARGET(PLUGIN_OPTION_FOR_TARGET) +fi +if test -n "$PLUGIN_OPTION_FOR_TARGET"; then + AR_PLUGIN_OPTION_FOR_TARGET="$PLUGIN_OPTION_FOR_TARGET" + NM_PLUGIN_OPTION_FOR_TARGET="$PLUGIN_OPTION_FOR_TARGET" + RANLIB_PLUGIN_OPTION_FOR_TARGET="$PLUGIN_OPTION_FOR_TARGET" +else + AR_PLUGIN_OPTION_FOR_TARGET= + NM_PLUGIN_OPTION_FOR_TARGET= + RANLIB_PLUGIN_OPTION_FOR_TARGET= +fi +AC_SUBST(AR_PLUGIN_OPTION_FOR_TARGET) +AC_SUBST(NM_PLUGIN_OPTION_FOR_TARGET) +AC_SUBST(RANLIB_PLUGIN_OPTION_FOR_TARGET) + # When building target libraries, except in a Canadian cross, we use # the same toolchain as the compiler we just built. COMPILER_AS_FOR_TARGET='$(AS_FOR_TARGET)' diff --git a/contrib/ChangeLog b/contrib/ChangeLog index 7bd3d6af459f..55737ced848a 100644 --- a/contrib/ChangeLog +++ b/contrib/ChangeLog @@ -1,3 +1,36 @@ +2025-10-08 Jakub Jelinek + + * unicode/README: Add HangulSyllableType.txt file to the + list as newest utf8_gen.py from glibc now needs it. Adjust + git commit hash and change unicode 16 version to 17. + * unicode/from_glibc/utf8_gen.py: Updated from glibc. + * unicode/DerivedCoreProperties.txt: Updated from Unicode 17.0.0. + * unicode/emoji-data.txt: Likewise. + * unicode/PropList.txt: Likewise. + * unicode/GraphemeBreakProperty.txt: Likewise. + * unicode/DerivedNormalizationProps.txt: Likewise. + * unicode/NameAliases.txt: Likewise. + * unicode/UnicodeData.txt: Likewise. + * unicode/EastAsianWidth.txt: Likewise. + * unicode/DerivedGeneralCategory.txt: Likewise. + * unicode/HangulSyllableType.txt: New file. + +2025-10-05 Mark Wielaard + + * gcc-changelog/git_update_version.py (ignored_commits): Add + commit b40ef6e9dc096c8c19399e94947a1965258a6942. + +2025-10-03 David Malcolm + + Revert: + 2025-10-02 David Malcolm + + * gcc.doxy (INPUT): Add gcc/custom-sarif-properties + +2025-10-02 David Malcolm + + * gcc.doxy (INPUT): Add gcc/custom-sarif-properties + 2025-09-23 Jonathan Wakely * unicode/gen_libstdcxx_unicode_data.py: Fix comment type. diff --git a/contrib/gcc-changelog/git_update_version.py b/contrib/gcc-changelog/git_update_version.py index b3ea33bb5161..09a42520624f 100755 --- a/contrib/gcc-changelog/git_update_version.py +++ b/contrib/gcc-changelog/git_update_version.py @@ -47,7 +47,8 @@ '72677e1119dc40aa680755d009e079ad49446c46', '10d76b7f1e5b63ad6d2b92940c39007913ced037', 'de3b277247ce98d189f121155b75f490725a42f6', - '13cf22eb557eb5e3d796822247d8d4957bdb25da'} + '13cf22eb557eb5e3d796822247d8d4957bdb25da', + 'b40ef6e9dc096c8c19399e94947a1965258a6942'} FORMAT = '%(asctime)s:%(levelname)s:%(name)s:%(message)s' logging.basicConfig(level=logging.INFO, format=FORMAT, diff --git a/contrib/unicode/DerivedCoreProperties.txt b/contrib/unicode/DerivedCoreProperties.txt index 1075638f1a65..f327784bf395 100644 --- a/contrib/unicode/DerivedCoreProperties.txt +++ b/contrib/unicode/DerivedCoreProperties.txt @@ -1,6 +1,6 @@ -# DerivedCoreProperties-16.0.0.txt -# Date: 2024-05-31, 18:09:32 GMT -# © 2024 Unicode®, Inc. +# DerivedCoreProperties-17.0.0.txt +# Date: 2025-07-30, 23:55:08 GMT +# © 2025 Unicode®, Inc. # Unicode and the Unicode Logo are registered trademarks of Unicode, Inc. in the U.S. and other countries. # For terms of use and license, see https://www.unicode.org/terms_of_use.html # @@ -178,6 +178,7 @@ FF5E ; Math # Sm FULLWIDTH TILDE FFE2 ; Math # Sm FULLWIDTH NOT SIGN FFE9..FFEC ; Math # Sm [4] HALFWIDTH LEFTWARDS ARROW..HALFWIDTH DOWNWARDS ARROW 10D8E..10D8F ; Math # Sm [2] GARAY PLUS SIGN..GARAY MINUS SIGN +1CEF0 ; Math # Sm MEDIUM SMALL WHITE CIRCLE WITH HORIZONTAL BAR 1D400..1D454 ; Math # L& [85] MATHEMATICAL BOLD CAPITAL A..MATHEMATICAL ITALIC SMALL G 1D456..1D49C ; Math # L& [71] MATHEMATICAL ITALIC SMALL I..MATHEMATICAL SCRIPT CAPITAL A 1D49E..1D49F ; Math # L& [2] MATHEMATICAL SCRIPT CAPITAL C..MATHEMATICAL SCRIPT CAPITAL D @@ -253,8 +254,9 @@ FFE9..FFEC ; Math # Sm [4] HALFWIDTH LEFTWARDS ARROW..HALFWIDTH DOWNWARDS A 1EEA5..1EEA9 ; Math # Lo [5] ARABIC MATHEMATICAL DOUBLE-STRUCK WAW..ARABIC MATHEMATICAL DOUBLE-STRUCK YEH 1EEAB..1EEBB ; Math # Lo [17] ARABIC MATHEMATICAL DOUBLE-STRUCK LAM..ARABIC MATHEMATICAL DOUBLE-STRUCK GHAIN 1EEF0..1EEF1 ; Math # Sm [2] ARABIC MATHEMATICAL OPERATOR MEEM WITH HAH WITH TATWEEL..ARABIC MATHEMATICAL OPERATOR HAH WITH DAL +1F8D0..1F8D8 ; Math # Sm [9] LONG RIGHTWARDS ARROW OVER LONG LEFTWARDS ARROW..LONG LEFT RIGHT ARROW WITH DEPENDENT LOBE -# Total code points: 2312 +# Total code points: 2322 # ================================================ @@ -273,8 +275,8 @@ FFE9..FFEC ; Math # Sm [4] HALFWIDTH LEFTWARDS ARROW..HALFWIDTH DOWNWARDS A 01BC..01BF ; Alphabetic # L& [4] LATIN CAPITAL LETTER TONE FIVE..LATIN LETTER WYNN 01C0..01C3 ; Alphabetic # Lo [4] LATIN LETTER DENTAL CLICK..LATIN LETTER RETROFLEX CLICK 01C4..0293 ; Alphabetic # L& [208] LATIN CAPITAL LETTER DZ WITH CARON..LATIN SMALL LETTER EZH WITH CURL -0294 ; Alphabetic # Lo LATIN LETTER GLOTTAL STOP -0295..02AF ; Alphabetic # L& [27] LATIN LETTER PHARYNGEAL VOICED FRICATIVE..LATIN SMALL LETTER TURNED H WITH FISHHOOK AND TAIL +0294..0295 ; Alphabetic # Lo [2] LATIN LETTER GLOTTAL STOP..LATIN LETTER PHARYNGEAL VOICED FRICATIVE +0296..02AF ; Alphabetic # L& [26] LATIN LETTER INVERTED GLOTTAL STOP..LATIN SMALL LETTER TURNED H WITH FISHHOOK AND TAIL 02B0..02C1 ; Alphabetic # Lm [18] MODIFIER LETTER SMALL H..MODIFIER LETTER REVERSED GLOTTAL STOP 02C6..02D1 ; Alphabetic # Lm [12] MODIFIER LETTER CIRCUMFLEX ACCENT..MODIFIER LETTER HALF TRIANGULAR COLON 02E0..02E4 ; Alphabetic # Lm [5] MODIFIER LETTER SMALL GAMMA..MODIFIER LETTER SMALL REVERSED GLOTTAL STOP @@ -344,7 +346,7 @@ FFE9..FFEC ; Math # Sm [4] HALFWIDTH LEFTWARDS ARROW..HALFWIDTH DOWNWARDS A 0840..0858 ; Alphabetic # Lo [25] MANDAIC LETTER HALQA..MANDAIC LETTER AIN 0860..086A ; Alphabetic # Lo [11] SYRIAC LETTER MALAYALAM NGA..SYRIAC LETTER MALAYALAM SSA 0870..0887 ; Alphabetic # Lo [24] ARABIC LETTER ALEF WITH ATTACHED FATHA..ARABIC BASELINE ROUND DOT -0889..088E ; Alphabetic # Lo [6] ARABIC LETTER NOON WITH INVERTED SMALL V..ARABIC VERTICAL TAIL +0889..088F ; Alphabetic # Lo [7] ARABIC LETTER NOON WITH INVERTED SMALL V..ARABIC LETTER NOON WITH RING ABOVE 0897 ; Alphabetic # Mn ARABIC PEPET 08A0..08C8 ; Alphabetic # Lo [41] ARABIC LETTER BEH WITH SMALL V BELOW..ARABIC LETTER GRAF 08C9 ; Alphabetic # Lm ARABIC SMALL FARSI YEH @@ -477,7 +479,7 @@ FFE9..FFEC ; Math # Sm [4] HALFWIDTH LEFTWARDS ARROW..HALFWIDTH DOWNWARDS A 0C4A..0C4C ; Alphabetic # Mn [3] TELUGU VOWEL SIGN O..TELUGU VOWEL SIGN AU 0C55..0C56 ; Alphabetic # Mn [2] TELUGU LENGTH MARK..TELUGU AI LENGTH MARK 0C58..0C5A ; Alphabetic # Lo [3] TELUGU LETTER TSA..TELUGU LETTER RRRA -0C5D ; Alphabetic # Lo TELUGU LETTER NAKAARA POLLU +0C5C..0C5D ; Alphabetic # Lo [2] TELUGU ARCHAIC SHRII..TELUGU LETTER NAKAARA POLLU 0C60..0C61 ; Alphabetic # Lo [2] TELUGU LETTER VOCALIC RR..TELUGU LETTER VOCALIC LL 0C62..0C63 ; Alphabetic # Mn [2] TELUGU VOWEL SIGN VOCALIC L..TELUGU VOWEL SIGN VOCALIC LL 0C80 ; Alphabetic # Lo KANNADA SIGN SPACING CANDRABINDU @@ -497,7 +499,7 @@ FFE9..FFEC ; Math # Sm [4] HALFWIDTH LEFTWARDS ARROW..HALFWIDTH DOWNWARDS A 0CCA..0CCB ; Alphabetic # Mc [2] KANNADA VOWEL SIGN O..KANNADA VOWEL SIGN OO 0CCC ; Alphabetic # Mn KANNADA VOWEL SIGN AU 0CD5..0CD6 ; Alphabetic # Mc [2] KANNADA LENGTH MARK..KANNADA AI LENGTH MARK -0CDD..0CDE ; Alphabetic # Lo [2] KANNADA LETTER NAKAARA POLLU..KANNADA LETTER FA +0CDC..0CDE ; Alphabetic # Lo [3] KANNADA ARCHAIC SHRII..KANNADA LETTER FA 0CE0..0CE1 ; Alphabetic # Lo [2] KANNADA LETTER VOCALIC RR..KANNADA LETTER VOCALIC LL 0CE2..0CE3 ; Alphabetic # Mn [2] KANNADA VOWEL SIGN VOCALIC L..KANNADA VOWEL SIGN VOCALIC LL 0CF1..0CF2 ; Alphabetic # Lo [2] KANNADA SIGN JIHVAMULIYA..KANNADA SIGN UPADHMANIYA @@ -833,11 +835,8 @@ A771..A787 ; Alphabetic # L& [23] LATIN SMALL LETTER DUM..LATIN SMALL LETTER A788 ; Alphabetic # Lm MODIFIER LETTER LOW CIRCUMFLEX ACCENT A78B..A78E ; Alphabetic # L& [4] LATIN CAPITAL LETTER SALTILLO..LATIN SMALL LETTER L WITH RETROFLEX HOOK AND BELT A78F ; Alphabetic # Lo LATIN LETTER SINOLOGICAL DOT -A790..A7CD ; Alphabetic # L& [62] LATIN CAPITAL LETTER N WITH DESCENDER..LATIN SMALL LETTER S WITH DIAGONAL STROKE -A7D0..A7D1 ; Alphabetic # L& [2] LATIN CAPITAL LETTER CLOSED INSULAR G..LATIN SMALL LETTER CLOSED INSULAR G -A7D3 ; Alphabetic # L& LATIN SMALL LETTER DOUBLE THORN -A7D5..A7DC ; Alphabetic # L& [8] LATIN SMALL LETTER DOUBLE WYNN..LATIN CAPITAL LETTER LAMBDA WITH STROKE -A7F2..A7F4 ; Alphabetic # Lm [3] MODIFIER LETTER CAPITAL C..MODIFIER LETTER CAPITAL Q +A790..A7DC ; Alphabetic # L& [77] LATIN CAPITAL LETTER N WITH DESCENDER..LATIN CAPITAL LETTER LAMBDA WITH STROKE +A7F1..A7F4 ; Alphabetic # Lm [4] MODIFIER LETTER CAPITAL S..MODIFIER LETTER CAPITAL Q A7F5..A7F6 ; Alphabetic # L& [2] LATIN CAPITAL LETTER REVERSED HALF H..LATIN SMALL LETTER REVERSED HALF H A7F7 ; Alphabetic # Lo LATIN EPIGRAPHIC LETTER SIDEWAYS I A7F8..A7F9 ; Alphabetic # Lm [2] MODIFIER LETTER CAPITAL H WITH STROKE..MODIFIER LETTER SMALL LIGATURE OE @@ -1020,6 +1019,7 @@ FFDA..FFDC ; Alphabetic # Lo [3] HALFWIDTH HANGUL LETTER EU..HALFWIDTH HANG 108F4..108F5 ; Alphabetic # Lo [2] HATRAN LETTER SHIN..HATRAN LETTER TAW 10900..10915 ; Alphabetic # Lo [22] PHOENICIAN LETTER ALF..PHOENICIAN LETTER TAU 10920..10939 ; Alphabetic # Lo [26] LYDIAN LETTER A..LYDIAN LETTER C +10940..10959 ; Alphabetic # Lo [26] SIDETIC LETTER N01..SIDETIC LETTER N26 10980..109B7 ; Alphabetic # Lo [56] MEROITIC HIEROGLYPHIC LETTER A..MEROITIC CURSIVE LETTER DA 109BE..109BF ; Alphabetic # Lo [2] MEROITIC CURSIVE LOGOGRAM RMT..MEROITIC CURSIVE LOGOGRAM IMN 10A00 ; Alphabetic # Lo KHAROSHTHI LETTER A @@ -1053,7 +1053,9 @@ FFDA..FFDC ; Alphabetic # Lo [3] HALFWIDTH HANGUL LETTER EU..HALFWIDTH HANG 10EAB..10EAC ; Alphabetic # Mn [2] YEZIDI COMBINING HAMZA MARK..YEZIDI COMBINING MADDA MARK 10EB0..10EB1 ; Alphabetic # Lo [2] YEZIDI LETTER LAM WITH DOT ABOVE..YEZIDI LETTER YOT WITH CIRCUMFLEX ABOVE 10EC2..10EC4 ; Alphabetic # Lo [3] ARABIC LETTER DAL WITH TWO DOTS VERTICALLY BELOW..ARABIC LETTER KAF WITH TWO DOTS VERTICALLY BELOW -10EFC ; Alphabetic # Mn ARABIC COMBINING ALEF OVERLAY +10EC5 ; Alphabetic # Lm ARABIC SMALL YEH BARREE WITH TWO DOTS BELOW +10EC6..10EC7 ; Alphabetic # Lo [2] ARABIC LETTER THIN NOON..ARABIC LETTER YEH WITH FOUR DOTS BELOW +10EFA..10EFC ; Alphabetic # Mn [3] ARABIC DOUBLE VERTICAL BAR BELOW..ARABIC COMBINING ALEF OVERLAY 10F00..10F1C ; Alphabetic # Lo [29] OLD SOGDIAN LETTER ALEPH..OLD SOGDIAN LETTER FINAL TAW WITH VERTICAL TAIL 10F27 ; Alphabetic # Lo OLD SOGDIAN LIGATURE AYIN-DALETH 10F30..10F45 ; Alphabetic # Lo [22] SOGDIAN LETTER ALEPH..SOGDIAN INDEPENDENT SHIN @@ -1239,6 +1241,12 @@ FFDA..FFDC ; Alphabetic # Lo [3] HALFWIDTH HANGUL LETTER EU..HALFWIDTH HANG 11A97 ; Alphabetic # Mc SOYOMBO SIGN VISARGA 11A9D ; Alphabetic # Lo SOYOMBO MARK PLUTA 11AB0..11AF8 ; Alphabetic # Lo [73] CANADIAN SYLLABICS NATTILIK HI..PAU CIN HAU GLOTTAL STOP FINAL +11B60 ; Alphabetic # Mn SHARADA VOWEL SIGN OE +11B61 ; Alphabetic # Mc SHARADA VOWEL SIGN OOE +11B62..11B64 ; Alphabetic # Mn [3] SHARADA VOWEL SIGN UE..SHARADA VOWEL SIGN SHORT E +11B65 ; Alphabetic # Mc SHARADA VOWEL SIGN SHORT O +11B66 ; Alphabetic # Mn SHARADA VOWEL SIGN CANDRA E +11B67 ; Alphabetic # Mc SHARADA VOWEL SIGN CANDRA O 11BC0..11BE0 ; Alphabetic # Lo [33] SUNUWAR LETTER DEVI..SUNUWAR LETTER KLOKO 11C00..11C08 ; Alphabetic # Lo [9] BHAIKSUKI LETTER A..BHAIKSUKI LETTER VOCALIC L 11C0A..11C2E ; Alphabetic # Lo [37] BHAIKSUKI LETTER E..BHAIKSUKI LETTER HA @@ -1274,6 +1282,9 @@ FFDA..FFDC ; Alphabetic # Lo [3] HALFWIDTH HANGUL LETTER EU..HALFWIDTH HANG 11D95 ; Alphabetic # Mn GUNJALA GONDI SIGN ANUSVARA 11D96 ; Alphabetic # Mc GUNJALA GONDI SIGN VISARGA 11D98 ; Alphabetic # Lo GUNJALA GONDI OM +11DB0..11DD8 ; Alphabetic # Lo [41] TOLONG SIKI LETTER I..TOLONG SIKI LETTER RRH +11DD9 ; Alphabetic # Lm TOLONG SIKI SIGN SELA +11DDA..11DDB ; Alphabetic # Lo [2] TOLONG SIKI SIGN HECAKA..TOLONG SIKI UNGGA 11EE0..11EF2 ; Alphabetic # Lo [19] MAKASAR LETTER KA..MAKASAR ANGKA 11EF3..11EF4 ; Alphabetic # Mn [2] MAKASAR VOWEL SIGN I..MAKASAR VOWEL SIGN U 11EF5..11EF6 ; Alphabetic # Mc [2] MAKASAR VOWEL SIGN E..MAKASAR VOWEL SIGN O @@ -1311,6 +1322,8 @@ FFDA..FFDC ; Alphabetic # Lo [3] HALFWIDTH HANGUL LETTER EU..HALFWIDTH HANG 16D43..16D6A ; Alphabetic # Lo [40] KIRAT RAI LETTER A..KIRAT RAI VOWEL SIGN AU 16D6B..16D6C ; Alphabetic # Lm [2] KIRAT RAI SIGN VIRAMA..KIRAT RAI SIGN SAAT 16E40..16E7F ; Alphabetic # L& [64] MEDEFAIDRIN CAPITAL LETTER M..MEDEFAIDRIN SMALL LETTER Y +16EA0..16EB8 ; Alphabetic # L& [25] BERIA ERFE CAPITAL LETTER ARKAB..BERIA ERFE CAPITAL LETTER AY +16EBB..16ED3 ; Alphabetic # L& [25] BERIA ERFE SMALL LETTER ARKAB..BERIA ERFE SMALL LETTER AY 16F00..16F4A ; Alphabetic # Lo [75] MIAO LETTER PA..MIAO LETTER RTE 16F4F ; Alphabetic # Mn MIAO SIGN CONSONANT MODIFIER BAR 16F50 ; Alphabetic # Lo MIAO LETTER NASALIZATION @@ -1320,9 +1333,11 @@ FFDA..FFDC ; Alphabetic # Lo [3] HALFWIDTH HANGUL LETTER EU..HALFWIDTH HANG 16FE0..16FE1 ; Alphabetic # Lm [2] TANGUT ITERATION MARK..NUSHU ITERATION MARK 16FE3 ; Alphabetic # Lm OLD CHINESE ITERATION MARK 16FF0..16FF1 ; Alphabetic # Mc [2] VIETNAMESE ALTERNATE READING MARK CA..VIETNAMESE ALTERNATE READING MARK NHAY -17000..187F7 ; Alphabetic # Lo [6136] TANGUT IDEOGRAPH-17000..TANGUT IDEOGRAPH-187F7 -18800..18CD5 ; Alphabetic # Lo [1238] TANGUT COMPONENT-001..KHITAN SMALL SCRIPT CHARACTER-18CD5 -18CFF..18D08 ; Alphabetic # Lo [10] KHITAN SMALL SCRIPT CHARACTER-18CFF..TANGUT IDEOGRAPH-18D08 +16FF2..16FF3 ; Alphabetic # Lm [2] CHINESE SMALL SIMPLIFIED ER..CHINESE SMALL TRADITIONAL ER +16FF4..16FF6 ; Alphabetic # Nl [3] YANGQIN SIGN SLOW ONE BEAT..YANGQIN SIGN SLOW TWO BEATS +17000..18CD5 ; Alphabetic # Lo [7382] TANGUT IDEOGRAPH-17000..KHITAN SMALL SCRIPT CHARACTER-18CD5 +18CFF..18D1E ; Alphabetic # Lo [32] KHITAN SMALL SCRIPT CHARACTER-18CFF..TANGUT IDEOGRAPH-18D1E +18D80..18DF2 ; Alphabetic # Lo [115] TANGUT COMPONENT-769..TANGUT COMPONENT-883 1AFF0..1AFF3 ; Alphabetic # Lm [4] KATAKANA LETTER MINNAN TONE-2..KATAKANA LETTER MINNAN TONE-5 1AFF5..1AFFB ; Alphabetic # Lm [7] KATAKANA LETTER MINNAN TONE-7..KATAKANA LETTER MINNAN NASALIZED TONE-5 1AFFD..1AFFE ; Alphabetic # Lm [2] KATAKANA LETTER MINNAN NASALIZED TONE-7..KATAKANA LETTER MINNAN NASALIZED TONE-8 @@ -1387,6 +1402,17 @@ FFDA..FFDC ; Alphabetic # Lo [3] HALFWIDTH HANGUL LETTER EU..HALFWIDTH HANG 1E4EB ; Alphabetic # Lm NAG MUNDARI SIGN OJOD 1E5D0..1E5ED ; Alphabetic # Lo [30] OL ONAL LETTER O..OL ONAL LETTER EG 1E5F0 ; Alphabetic # Lo OL ONAL SIGN HODDOND +1E6C0..1E6DE ; Alphabetic # Lo [31] TAI YO LETTER LOW KO..TAI YO LETTER HIGH KVO +1E6E0..1E6E2 ; Alphabetic # Lo [3] TAI YO LETTER AA..TAI YO LETTER UE +1E6E3 ; Alphabetic # Mn TAI YO SIGN UE +1E6E4..1E6E5 ; Alphabetic # Lo [2] TAI YO LETTER U..TAI YO LETTER AE +1E6E6 ; Alphabetic # Mn TAI YO SIGN AU +1E6E7..1E6ED ; Alphabetic # Lo [7] TAI YO LETTER O..TAI YO LETTER AUE +1E6EE..1E6EF ; Alphabetic # Mn [2] TAI YO SIGN AY..TAI YO SIGN ANG +1E6F0..1E6F4 ; Alphabetic # Lo [5] TAI YO LETTER AN..TAI YO LETTER AP +1E6F5 ; Alphabetic # Mn TAI YO SIGN OM +1E6FE ; Alphabetic # Lo TAI YO SYMBOL MUEANG +1E6FF ; Alphabetic # Lm TAI YO XAM LAI 1E7E0..1E7E6 ; Alphabetic # Lo [7] ETHIOPIC SYLLABLE HHYA..ETHIOPIC SYLLABLE HHYO 1E7E8..1E7EB ; Alphabetic # Lo [4] ETHIOPIC SYLLABLE GURAGE HHWA..ETHIOPIC SYLLABLE HHWE 1E7ED..1E7EE ; Alphabetic # Lo [2] ETHIOPIC SYLLABLE GURAGE MWI..ETHIOPIC SYLLABLE GURAGE MWEE @@ -1432,16 +1458,15 @@ FFDA..FFDC ; Alphabetic # Lo [3] HALFWIDTH HANGUL LETTER EU..HALFWIDTH HANG 1F150..1F169 ; Alphabetic # So [26] NEGATIVE CIRCLED LATIN CAPITAL LETTER A..NEGATIVE CIRCLED LATIN CAPITAL LETTER Z 1F170..1F189 ; Alphabetic # So [26] NEGATIVE SQUARED LATIN CAPITAL LETTER A..NEGATIVE SQUARED LATIN CAPITAL LETTER Z 20000..2A6DF ; Alphabetic # Lo [42720] CJK UNIFIED IDEOGRAPH-20000..CJK UNIFIED IDEOGRAPH-2A6DF -2A700..2B739 ; Alphabetic # Lo [4154] CJK UNIFIED IDEOGRAPH-2A700..CJK UNIFIED IDEOGRAPH-2B739 -2B740..2B81D ; Alphabetic # Lo [222] CJK UNIFIED IDEOGRAPH-2B740..CJK UNIFIED IDEOGRAPH-2B81D -2B820..2CEA1 ; Alphabetic # Lo [5762] CJK UNIFIED IDEOGRAPH-2B820..CJK UNIFIED IDEOGRAPH-2CEA1 +2A700..2B81D ; Alphabetic # Lo [4382] CJK UNIFIED IDEOGRAPH-2A700..CJK UNIFIED IDEOGRAPH-2B81D +2B820..2CEAD ; Alphabetic # Lo [5774] CJK UNIFIED IDEOGRAPH-2B820..CJK UNIFIED IDEOGRAPH-2CEAD 2CEB0..2EBE0 ; Alphabetic # Lo [7473] CJK UNIFIED IDEOGRAPH-2CEB0..CJK UNIFIED IDEOGRAPH-2EBE0 2EBF0..2EE5D ; Alphabetic # Lo [622] CJK UNIFIED IDEOGRAPH-2EBF0..CJK UNIFIED IDEOGRAPH-2EE5D 2F800..2FA1D ; Alphabetic # Lo [542] CJK COMPATIBILITY IDEOGRAPH-2F800..CJK COMPATIBILITY IDEOGRAPH-2FA1D 30000..3134A ; Alphabetic # Lo [4939] CJK UNIFIED IDEOGRAPH-30000..CJK UNIFIED IDEOGRAPH-3134A -31350..323AF ; Alphabetic # Lo [4192] CJK UNIFIED IDEOGRAPH-31350..CJK UNIFIED IDEOGRAPH-323AF +31350..33479 ; Alphabetic # Lo [8490] CJK UNIFIED IDEOGRAPH-31350..CJK UNIFIED IDEOGRAPH-33479 -# Total code points: 142759 +# Total code points: 147421 # ================================================ @@ -1595,7 +1620,7 @@ FFDA..FFDC ; Alphabetic # Lo [3] HALFWIDTH HANGUL LETTER EU..HALFWIDTH HANG 024B ; Lowercase # L& LATIN SMALL LETTER Q WITH HOOK TAIL 024D ; Lowercase # L& LATIN SMALL LETTER R WITH STROKE 024F..0293 ; Lowercase # L& [69] LATIN SMALL LETTER Y WITH STROKE..LATIN SMALL LETTER EZH WITH CURL -0295..02AF ; Lowercase # L& [27] LATIN LETTER PHARYNGEAL VOICED FRICATIVE..LATIN SMALL LETTER TURNED H WITH FISHHOOK AND TAIL +0296..02AF ; Lowercase # L& [26] LATIN LETTER INVERTED GLOTTAL STOP..LATIN SMALL LETTER TURNED H WITH FISHHOOK AND TAIL 02B0..02B8 ; Lowercase # Lm [9] MODIFIER LETTER SMALL H..MODIFIER LETTER SMALL Y 02C0..02C1 ; Lowercase # Lm [2] MODIFIER LETTER GLOTTAL STOP..MODIFIER LETTER REVERSED GLOTTAL STOP 02E0..02E4 ; Lowercase # Lm [5] MODIFIER LETTER SMALL GAMMA..MODIFIER LETTER SMALL REVERSED GLOTTAL STOP @@ -2073,13 +2098,14 @@ A7C3 ; Lowercase # L& LATIN SMALL LETTER ANGLICANA W A7C8 ; Lowercase # L& LATIN SMALL LETTER D WITH SHORT STROKE OVERLAY A7CA ; Lowercase # L& LATIN SMALL LETTER S WITH SHORT STROKE OVERLAY A7CD ; Lowercase # L& LATIN SMALL LETTER S WITH DIAGONAL STROKE +A7CF ; Lowercase # L& LATIN SMALL LETTER PHARYNGEAL VOICED FRICATIVE A7D1 ; Lowercase # L& LATIN SMALL LETTER CLOSED INSULAR G A7D3 ; Lowercase # L& LATIN SMALL LETTER DOUBLE THORN A7D5 ; Lowercase # L& LATIN SMALL LETTER DOUBLE WYNN A7D7 ; Lowercase # L& LATIN SMALL LETTER MIDDLE SCOTS S A7D9 ; Lowercase # L& LATIN SMALL LETTER SIGMOID S A7DB ; Lowercase # L& LATIN SMALL LETTER LAMBDA -A7F2..A7F4 ; Lowercase # Lm [3] MODIFIER LETTER CAPITAL C..MODIFIER LETTER CAPITAL Q +A7F1..A7F4 ; Lowercase # Lm [4] MODIFIER LETTER CAPITAL S..MODIFIER LETTER CAPITAL Q A7F6 ; Lowercase # L& LATIN SMALL LETTER REVERSED HALF H A7F8..A7F9 ; Lowercase # Lm [2] MODIFIER LETTER CAPITAL H WITH STROKE..MODIFIER LETTER SMALL LIGATURE OE A7FA ; Lowercase # L& LATIN LETTER SMALL CAPITAL TURNED M @@ -2105,6 +2131,7 @@ FF41..FF5A ; Lowercase # L& [26] FULLWIDTH LATIN SMALL LETTER A..FULLWIDTH L 10D70..10D85 ; Lowercase # L& [22] GARAY SMALL LETTER A..GARAY SMALL LETTER OLD NA 118C0..118DF ; Lowercase # L& [32] WARANG CITI SMALL LETTER NGAA..WARANG CITI SMALL LETTER VIYO 16E60..16E7F ; Lowercase # L& [32] MEDEFAIDRIN SMALL LETTER M..MEDEFAIDRIN SMALL LETTER Y +16EBB..16ED3 ; Lowercase # L& [25] BERIA ERFE SMALL LETTER ARKAB..BERIA ERFE SMALL LETTER AY 1D41A..1D433 ; Lowercase # L& [26] MATHEMATICAL BOLD SMALL A..MATHEMATICAL BOLD SMALL Z 1D44E..1D454 ; Lowercase # L& [7] MATHEMATICAL ITALIC SMALL A..MATHEMATICAL ITALIC SMALL G 1D456..1D467 ; Lowercase # L& [18] MATHEMATICAL ITALIC SMALL I..MATHEMATICAL ITALIC SMALL Z @@ -2139,7 +2166,7 @@ FF41..FF5A ; Lowercase # L& [26] FULLWIDTH LATIN SMALL LETTER A..FULLWIDTH L 1E030..1E06D ; Lowercase # Lm [62] MODIFIER LETTER CYRILLIC SMALL A..MODIFIER LETTER CYRILLIC SMALL STRAIGHT U WITH STROKE 1E922..1E943 ; Lowercase # L& [34] ADLAM SMALL LETTER ALIF..ADLAM SMALL LETTER SHA -# Total code points: 2569 +# Total code points: 2595 # ================================================ @@ -2750,7 +2777,10 @@ A7C2 ; Uppercase # L& LATIN CAPITAL LETTER ANGLICANA W A7C4..A7C7 ; Uppercase # L& [4] LATIN CAPITAL LETTER C WITH PALATAL HOOK..LATIN CAPITAL LETTER D WITH SHORT STROKE OVERLAY A7C9 ; Uppercase # L& LATIN CAPITAL LETTER S WITH SHORT STROKE OVERLAY A7CB..A7CC ; Uppercase # L& [2] LATIN CAPITAL LETTER RAMS HORN..LATIN CAPITAL LETTER S WITH DIAGONAL STROKE +A7CE ; Uppercase # L& LATIN CAPITAL LETTER PHARYNGEAL VOICED FRICATIVE A7D0 ; Uppercase # L& LATIN CAPITAL LETTER CLOSED INSULAR G +A7D2 ; Uppercase # L& LATIN CAPITAL LETTER DOUBLE THORN +A7D4 ; Uppercase # L& LATIN CAPITAL LETTER DOUBLE WYNN A7D6 ; Uppercase # L& LATIN CAPITAL LETTER MIDDLE SCOTS S A7D8 ; Uppercase # L& LATIN CAPITAL LETTER SIGMOID S A7DA ; Uppercase # L& LATIN CAPITAL LETTER LAMBDA @@ -2767,6 +2797,7 @@ FF21..FF3A ; Uppercase # L& [26] FULLWIDTH LATIN CAPITAL LETTER A..FULLWIDTH 10D50..10D65 ; Uppercase # L& [22] GARAY CAPITAL LETTER A..GARAY CAPITAL LETTER OLD NA 118A0..118BF ; Uppercase # L& [32] WARANG CITI CAPITAL LETTER NGAA..WARANG CITI CAPITAL LETTER VIYO 16E40..16E5F ; Uppercase # L& [32] MEDEFAIDRIN CAPITAL LETTER M..MEDEFAIDRIN CAPITAL LETTER Y +16EA0..16EB8 ; Uppercase # L& [25] BERIA ERFE CAPITAL LETTER ARKAB..BERIA ERFE CAPITAL LETTER AY 1D400..1D419 ; Uppercase # L& [26] MATHEMATICAL BOLD CAPITAL A..MATHEMATICAL BOLD CAPITAL Z 1D434..1D44D ; Uppercase # L& [26] MATHEMATICAL ITALIC CAPITAL A..MATHEMATICAL ITALIC CAPITAL Z 1D468..1D481 ; Uppercase # L& [26] MATHEMATICAL BOLD ITALIC CAPITAL A..MATHEMATICAL BOLD ITALIC CAPITAL Z @@ -2803,7 +2834,7 @@ FF21..FF3A ; Uppercase # L& [26] FULLWIDTH LATIN CAPITAL LETTER A..FULLWIDTH 1F150..1F169 ; Uppercase # So [26] NEGATIVE CIRCLED LATIN CAPITAL LETTER A..NEGATIVE CIRCLED LATIN CAPITAL LETTER Z 1F170..1F189 ; Uppercase # So [26] NEGATIVE SQUARED LATIN CAPITAL LETTER A..NEGATIVE SQUARED LATIN CAPITAL LETTER Z -# Total code points: 1978 +# Total code points: 2006 # ================================================ @@ -2821,7 +2852,7 @@ FF21..FF3A ; Uppercase # L& [26] FULLWIDTH LATIN CAPITAL LETTER A..FULLWIDTH 00F8..01BA ; Cased # L& [195] LATIN SMALL LETTER O WITH STROKE..LATIN SMALL LETTER EZH WITH TAIL 01BC..01BF ; Cased # L& [4] LATIN CAPITAL LETTER TONE FIVE..LATIN LETTER WYNN 01C4..0293 ; Cased # L& [208] LATIN CAPITAL LETTER DZ WITH CARON..LATIN SMALL LETTER EZH WITH CURL -0295..02AF ; Cased # L& [27] LATIN LETTER PHARYNGEAL VOICED FRICATIVE..LATIN SMALL LETTER TURNED H WITH FISHHOOK AND TAIL +0296..02AF ; Cased # L& [26] LATIN LETTER INVERTED GLOTTAL STOP..LATIN SMALL LETTER TURNED H WITH FISHHOOK AND TAIL 02B0..02B8 ; Cased # Lm [9] MODIFIER LETTER SMALL H..MODIFIER LETTER SMALL Y 02C0..02C1 ; Cased # Lm [2] MODIFIER LETTER GLOTTAL STOP..MODIFIER LETTER REVERSED GLOTTAL STOP 02E0..02E4 ; Cased # Lm [5] MODIFIER LETTER SMALL GAMMA..MODIFIER LETTER SMALL REVERSED GLOTTAL STOP @@ -2911,11 +2942,8 @@ A722..A76F ; Cased # L& [78] LATIN CAPITAL LETTER EGYPTOLOGICAL ALEF..LATIN A770 ; Cased # Lm MODIFIER LETTER US A771..A787 ; Cased # L& [23] LATIN SMALL LETTER DUM..LATIN SMALL LETTER INSULAR T A78B..A78E ; Cased # L& [4] LATIN CAPITAL LETTER SALTILLO..LATIN SMALL LETTER L WITH RETROFLEX HOOK AND BELT -A790..A7CD ; Cased # L& [62] LATIN CAPITAL LETTER N WITH DESCENDER..LATIN SMALL LETTER S WITH DIAGONAL STROKE -A7D0..A7D1 ; Cased # L& [2] LATIN CAPITAL LETTER CLOSED INSULAR G..LATIN SMALL LETTER CLOSED INSULAR G -A7D3 ; Cased # L& LATIN SMALL LETTER DOUBLE THORN -A7D5..A7DC ; Cased # L& [8] LATIN SMALL LETTER DOUBLE WYNN..LATIN CAPITAL LETTER LAMBDA WITH STROKE -A7F2..A7F4 ; Cased # Lm [3] MODIFIER LETTER CAPITAL C..MODIFIER LETTER CAPITAL Q +A790..A7DC ; Cased # L& [77] LATIN CAPITAL LETTER N WITH DESCENDER..LATIN CAPITAL LETTER LAMBDA WITH STROKE +A7F1..A7F4 ; Cased # Lm [4] MODIFIER LETTER CAPITAL S..MODIFIER LETTER CAPITAL Q A7F5..A7F6 ; Cased # L& [2] LATIN CAPITAL LETTER REVERSED HALF H..LATIN SMALL LETTER REVERSED HALF H A7F8..A7F9 ; Cased # Lm [2] MODIFIER LETTER CAPITAL H WITH STROKE..MODIFIER LETTER SMALL LIGATURE OE A7FA ; Cased # L& LATIN LETTER SMALL CAPITAL TURNED M @@ -2949,6 +2977,8 @@ FF41..FF5A ; Cased # L& [26] FULLWIDTH LATIN SMALL LETTER A..FULLWIDTH LATIN 10D70..10D85 ; Cased # L& [22] GARAY SMALL LETTER A..GARAY SMALL LETTER OLD NA 118A0..118DF ; Cased # L& [64] WARANG CITI CAPITAL LETTER NGAA..WARANG CITI SMALL LETTER VIYO 16E40..16E7F ; Cased # L& [64] MEDEFAIDRIN CAPITAL LETTER M..MEDEFAIDRIN SMALL LETTER Y +16EA0..16EB8 ; Cased # L& [25] BERIA ERFE CAPITAL LETTER ARKAB..BERIA ERFE CAPITAL LETTER AY +16EBB..16ED3 ; Cased # L& [25] BERIA ERFE SMALL LETTER ARKAB..BERIA ERFE SMALL LETTER AY 1D400..1D454 ; Cased # L& [85] MATHEMATICAL BOLD CAPITAL A..MATHEMATICAL ITALIC SMALL G 1D456..1D49C ; Cased # L& [71] MATHEMATICAL ITALIC SMALL I..MATHEMATICAL SCRIPT CAPITAL A 1D49E..1D49F ; Cased # L& [2] MATHEMATICAL SCRIPT CAPITAL C..MATHEMATICAL SCRIPT CAPITAL D @@ -2988,7 +3018,7 @@ FF41..FF5A ; Cased # L& [26] FULLWIDTH LATIN SMALL LETTER A..FULLWIDTH LATIN 1F150..1F169 ; Cased # So [26] NEGATIVE CIRCLED LATIN CAPITAL LETTER A..NEGATIVE CIRCLED LATIN CAPITAL LETTER Z 1F170..1F189 ; Cased # So [26] NEGATIVE SQUARED LATIN CAPITAL LETTER A..NEGATIVE SQUARED LATIN CAPITAL LETTER Z -# Total code points: 4578 +# Total code points: 4632 # ================================================ @@ -3194,7 +3224,8 @@ FF41..FF5A ; Cased # L& [26] FULLWIDTH LATIN SMALL LETTER A..FULLWIDTH LATIN 1AA7 ; Case_Ignorable # Lm TAI THAM SIGN MAI YAMOK 1AB0..1ABD ; Case_Ignorable # Mn [14] COMBINING DOUBLED CIRCUMFLEX ACCENT..COMBINING PARENTHESES BELOW 1ABE ; Case_Ignorable # Me COMBINING PARENTHESES OVERLAY -1ABF..1ACE ; Case_Ignorable # Mn [16] COMBINING LATIN SMALL LETTER W BELOW..COMBINING LATIN SMALL LETTER INSULAR T +1ABF..1ADD ; Case_Ignorable # Mn [31] COMBINING LATIN SMALL LETTER W BELOW..COMBINING DOT-AND-RING BELOW +1AE0..1AEB ; Case_Ignorable # Mn [12] COMBINING LEFT TACK ABOVE..COMBINING DOUBLE RIGHTWARDS ARROW ABOVE 1B00..1B03 ; Case_Ignorable # Mn [4] BALINESE SIGN ULU RICEM..BALINESE SIGN SURANG 1B34 ; Case_Ignorable # Mn BALINESE SIGN REREKAN 1B36..1B3A ; Case_Ignorable # Mn [5] BALINESE VOWEL SIGN ULU..BALINESE VOWEL SIGN RA REPA @@ -3274,7 +3305,7 @@ A720..A721 ; Case_Ignorable # Sk [2] MODIFIER LETTER STRESS AND HIGH TONE.. A770 ; Case_Ignorable # Lm MODIFIER LETTER US A788 ; Case_Ignorable # Lm MODIFIER LETTER LOW CIRCUMFLEX ACCENT A789..A78A ; Case_Ignorable # Sk [2] MODIFIER LETTER COLON..MODIFIER LETTER SHORT EQUALS SIGN -A7F2..A7F4 ; Case_Ignorable # Lm [3] MODIFIER LETTER CAPITAL C..MODIFIER LETTER CAPITAL Q +A7F1..A7F4 ; Case_Ignorable # Lm [4] MODIFIER LETTER CAPITAL S..MODIFIER LETTER CAPITAL Q A7F8..A7F9 ; Case_Ignorable # Lm [2] MODIFIER LETTER CAPITAL H WITH STROKE..MODIFIER LETTER SMALL LIGATURE OE A802 ; Case_Ignorable # Mn SYLOTI NAGRI SIGN DVISVARA A806 ; Case_Ignorable # Mn SYLOTI NAGRI SIGN HASANTA @@ -3350,7 +3381,8 @@ FFF9..FFFB ; Case_Ignorable # Cf [3] INTERLINEAR ANNOTATION ANCHOR..INTERLI 10D69..10D6D ; Case_Ignorable # Mn [5] GARAY VOWEL SIGN E..GARAY CONSONANT NASALIZATION MARK 10D6F ; Case_Ignorable # Lm GARAY REDUPLICATION MARK 10EAB..10EAC ; Case_Ignorable # Mn [2] YEZIDI COMBINING HAMZA MARK..YEZIDI COMBINING MADDA MARK -10EFC..10EFF ; Case_Ignorable # Mn [4] ARABIC COMBINING ALEF OVERLAY..ARABIC SMALL LOW WORD MADDA +10EC5 ; Case_Ignorable # Lm ARABIC SMALL YEH BARREE WITH TWO DOTS BELOW +10EFA..10EFF ; Case_Ignorable # Mn [6] ARABIC DOUBLE VERTICAL BAR BELOW..ARABIC SMALL LOW WORD MADDA 10F46..10F50 ; Case_Ignorable # Mn [11] SOGDIAN COMBINING DOT BELOW..SOGDIAN COMBINING STROKE BELOW 10F82..10F85 ; Case_Ignorable # Mn [4] OLD UYGHUR COMBINING DOT ABOVE..OLD UYGHUR COMBINING TWO DOTS BELOW 11001 ; Case_Ignorable # Mn BRAHMI SIGN ANUSVARA @@ -3427,6 +3459,9 @@ FFF9..FFFB ; Case_Ignorable # Cf [3] INTERLINEAR ANNOTATION ANCHOR..INTERLI 11A59..11A5B ; Case_Ignorable # Mn [3] SOYOMBO VOWEL SIGN VOCALIC R..SOYOMBO VOWEL LENGTH MARK 11A8A..11A96 ; Case_Ignorable # Mn [13] SOYOMBO FINAL CONSONANT SIGN G..SOYOMBO SIGN ANUSVARA 11A98..11A99 ; Case_Ignorable # Mn [2] SOYOMBO GEMINATION MARK..SOYOMBO SUBJOINER +11B60 ; Case_Ignorable # Mn SHARADA VOWEL SIGN OE +11B62..11B64 ; Case_Ignorable # Mn [3] SHARADA VOWEL SIGN UE..SHARADA VOWEL SIGN SHORT E +11B66 ; Case_Ignorable # Mn SHARADA VOWEL SIGN CANDRA E 11C30..11C36 ; Case_Ignorable # Mn [7] BHAIKSUKI VOWEL SIGN I..BHAIKSUKI VOWEL SIGN VOCALIC L 11C38..11C3D ; Case_Ignorable # Mn [6] BHAIKSUKI VOWEL SIGN E..BHAIKSUKI SIGN ANUSVARA 11C3F ; Case_Ignorable # Mn BHAIKSUKI SIGN VIRAMA @@ -3442,6 +3477,7 @@ FFF9..FFFB ; Case_Ignorable # Cf [3] INTERLINEAR ANNOTATION ANCHOR..INTERLI 11D90..11D91 ; Case_Ignorable # Mn [2] GUNJALA GONDI VOWEL SIGN EE..GUNJALA GONDI VOWEL SIGN AI 11D95 ; Case_Ignorable # Mn GUNJALA GONDI SIGN ANUSVARA 11D97 ; Case_Ignorable # Mn GUNJALA GONDI VIRAMA +11DD9 ; Case_Ignorable # Lm TOLONG SIKI SIGN SELA 11EF3..11EF4 ; Case_Ignorable # Mn [2] MAKASAR VOWEL SIGN I..MAKASAR VOWEL SIGN U 11F00..11F01 ; Case_Ignorable # Mn [2] KAWI SIGN CANDRABINDU..KAWI SIGN ANUSVARA 11F36..11F3A ; Case_Ignorable # Mn [5] KAWI VOWEL SIGN I..KAWI VOWEL SIGN VOCALIC R @@ -3464,6 +3500,7 @@ FFF9..FFFB ; Case_Ignorable # Cf [3] INTERLINEAR ANNOTATION ANCHOR..INTERLI 16FE0..16FE1 ; Case_Ignorable # Lm [2] TANGUT ITERATION MARK..NUSHU ITERATION MARK 16FE3 ; Case_Ignorable # Lm OLD CHINESE ITERATION MARK 16FE4 ; Case_Ignorable # Mn KHITAN SMALL SCRIPT FILLER +16FF2..16FF3 ; Case_Ignorable # Lm [2] CHINESE SMALL SIMPLIFIED ER..CHINESE SMALL TRADITIONAL ER 1AFF0..1AFF3 ; Case_Ignorable # Lm [4] KATAKANA LETTER MINNAN TONE-2..KATAKANA LETTER MINNAN TONE-5 1AFF5..1AFFB ; Case_Ignorable # Lm [7] KATAKANA LETTER MINNAN TONE-7..KATAKANA LETTER MINNAN NASALIZED TONE-5 1AFFD..1AFFE ; Case_Ignorable # Lm [2] KATAKANA LETTER MINNAN NASALIZED TONE-7..KATAKANA LETTER MINNAN NASALIZED TONE-8 @@ -3497,6 +3534,11 @@ FFF9..FFFB ; Case_Ignorable # Cf [3] INTERLINEAR ANNOTATION ANCHOR..INTERLI 1E4EB ; Case_Ignorable # Lm NAG MUNDARI SIGN OJOD 1E4EC..1E4EF ; Case_Ignorable # Mn [4] NAG MUNDARI SIGN MUHOR..NAG MUNDARI SIGN SUTUH 1E5EE..1E5EF ; Case_Ignorable # Mn [2] OL ONAL SIGN MU..OL ONAL SIGN IKIR +1E6E3 ; Case_Ignorable # Mn TAI YO SIGN UE +1E6E6 ; Case_Ignorable # Mn TAI YO SIGN AU +1E6EE..1E6EF ; Case_Ignorable # Mn [2] TAI YO SIGN AY..TAI YO SIGN ANG +1E6F5 ; Case_Ignorable # Mn TAI YO SIGN OM +1E6FF ; Case_Ignorable # Lm TAI YO XAM LAI 1E8D0..1E8D6 ; Case_Ignorable # Mn [7] MENDE KIKAKUI COMBINING NUMBER TEENS..MENDE KIKAKUI COMBINING NUMBER MILLIONS 1E944..1E94A ; Case_Ignorable # Mn [7] ADLAM ALIF LENGTHENER..ADLAM NUKTA 1E94B ; Case_Ignorable # Lm ADLAM NASALIZATION MARK @@ -3505,13 +3547,14 @@ E0001 ; Case_Ignorable # Cf LANGUAGE TAG E0020..E007F ; Case_Ignorable # Cf [96] TAG SPACE..CANCEL TAG E0100..E01EF ; Case_Ignorable # Mn [240] VARIATION SELECTOR-17..VARIATION SELECTOR-256 -# Total code points: 2749 +# Total code points: 2794 # ================================================ # Derived Property: Changes_When_Lowercased (CWL) # Characters whose normalized forms are not stable under a toLowercase mapping. -# For more information, see D139 in Section 3.13, "Default Case Algorithms". +# For more information, see the definition of "isLowercase(X)" +# in the "Conformance" / "Default Case Algorithms" section of the core specification. # Changes_When_Lowercased(X) is true when toLowercase(toNFD(X)) != toNFD(X) 0041..005A ; Changes_When_Lowercased # L& [26] LATIN CAPITAL LETTER A..LATIN CAPITAL LETTER Z @@ -4110,7 +4153,10 @@ A7C2 ; Changes_When_Lowercased # L& LATIN CAPITAL LETTER ANGLICAN A7C4..A7C7 ; Changes_When_Lowercased # L& [4] LATIN CAPITAL LETTER C WITH PALATAL HOOK..LATIN CAPITAL LETTER D WITH SHORT STROKE OVERLAY A7C9 ; Changes_When_Lowercased # L& LATIN CAPITAL LETTER S WITH SHORT STROKE OVERLAY A7CB..A7CC ; Changes_When_Lowercased # L& [2] LATIN CAPITAL LETTER RAMS HORN..LATIN CAPITAL LETTER S WITH DIAGONAL STROKE +A7CE ; Changes_When_Lowercased # L& LATIN CAPITAL LETTER PHARYNGEAL VOICED FRICATIVE A7D0 ; Changes_When_Lowercased # L& LATIN CAPITAL LETTER CLOSED INSULAR G +A7D2 ; Changes_When_Lowercased # L& LATIN CAPITAL LETTER DOUBLE THORN +A7D4 ; Changes_When_Lowercased # L& LATIN CAPITAL LETTER DOUBLE WYNN A7D6 ; Changes_When_Lowercased # L& LATIN CAPITAL LETTER MIDDLE SCOTS S A7D8 ; Changes_When_Lowercased # L& LATIN CAPITAL LETTER SIGMOID S A7DA ; Changes_When_Lowercased # L& LATIN CAPITAL LETTER LAMBDA @@ -4127,15 +4173,17 @@ FF21..FF3A ; Changes_When_Lowercased # L& [26] FULLWIDTH LATIN CAPITAL LETTE 10D50..10D65 ; Changes_When_Lowercased # L& [22] GARAY CAPITAL LETTER A..GARAY CAPITAL LETTER OLD NA 118A0..118BF ; Changes_When_Lowercased # L& [32] WARANG CITI CAPITAL LETTER NGAA..WARANG CITI CAPITAL LETTER VIYO 16E40..16E5F ; Changes_When_Lowercased # L& [32] MEDEFAIDRIN CAPITAL LETTER M..MEDEFAIDRIN CAPITAL LETTER Y +16EA0..16EB8 ; Changes_When_Lowercased # L& [25] BERIA ERFE CAPITAL LETTER ARKAB..BERIA ERFE CAPITAL LETTER AY 1E900..1E921 ; Changes_When_Lowercased # L& [34] ADLAM CAPITAL LETTER ALIF..ADLAM CAPITAL LETTER SHA -# Total code points: 1460 +# Total code points: 1488 # ================================================ # Derived Property: Changes_When_Uppercased (CWU) # Characters whose normalized forms are not stable under a toUppercase mapping. -# For more information, see D140 in Section 3.13, "Default Case Algorithms". +# For more information, see the definition of "isUppercase(X)" +# in the "Conformance" / "Default Case Algorithms" section of the core specification. # Changes_When_Uppercased(X) is true when toUppercase(toNFD(X)) != toNFD(X) 0061..007A ; Changes_When_Uppercased # L& [26] LATIN SMALL LETTER A..LATIN SMALL LETTER Z @@ -4747,7 +4795,10 @@ A7C3 ; Changes_When_Uppercased # L& LATIN SMALL LETTER ANGLICANA A7C8 ; Changes_When_Uppercased # L& LATIN SMALL LETTER D WITH SHORT STROKE OVERLAY A7CA ; Changes_When_Uppercased # L& LATIN SMALL LETTER S WITH SHORT STROKE OVERLAY A7CD ; Changes_When_Uppercased # L& LATIN SMALL LETTER S WITH DIAGONAL STROKE +A7CF ; Changes_When_Uppercased # L& LATIN SMALL LETTER PHARYNGEAL VOICED FRICATIVE A7D1 ; Changes_When_Uppercased # L& LATIN SMALL LETTER CLOSED INSULAR G +A7D3 ; Changes_When_Uppercased # L& LATIN SMALL LETTER DOUBLE THORN +A7D5 ; Changes_When_Uppercased # L& LATIN SMALL LETTER DOUBLE WYNN A7D7 ; Changes_When_Uppercased # L& LATIN SMALL LETTER MIDDLE SCOTS S A7D9 ; Changes_When_Uppercased # L& LATIN SMALL LETTER SIGMOID S A7DB ; Changes_When_Uppercased # L& LATIN SMALL LETTER LAMBDA @@ -4767,15 +4818,17 @@ FF41..FF5A ; Changes_When_Uppercased # L& [26] FULLWIDTH LATIN SMALL LETTER 10D70..10D85 ; Changes_When_Uppercased # L& [22] GARAY SMALL LETTER A..GARAY SMALL LETTER OLD NA 118C0..118DF ; Changes_When_Uppercased # L& [32] WARANG CITI SMALL LETTER NGAA..WARANG CITI SMALL LETTER VIYO 16E60..16E7F ; Changes_When_Uppercased # L& [32] MEDEFAIDRIN SMALL LETTER M..MEDEFAIDRIN SMALL LETTER Y +16EBB..16ED3 ; Changes_When_Uppercased # L& [25] BERIA ERFE SMALL LETTER ARKAB..BERIA ERFE SMALL LETTER AY 1E922..1E943 ; Changes_When_Uppercased # L& [34] ADLAM SMALL LETTER ALIF..ADLAM SMALL LETTER SHA -# Total code points: 1552 +# Total code points: 1580 # ================================================ # Derived Property: Changes_When_Titlecased (CWT) # Characters whose normalized forms are not stable under a toTitlecase mapping. -# For more information, see D141 in Section 3.13, "Default Case Algorithms". +# For more information, see the definition of "isTitlecase(X)" +# in the "Conformance" / "Default Case Algorithms" section of the core specification. # Changes_When_Titlecased(X) is true when toTitlecase(toNFD(X)) != toNFD(X) 0061..007A ; Changes_When_Titlecased # L& [26] LATIN SMALL LETTER A..LATIN SMALL LETTER Z @@ -5386,7 +5439,10 @@ A7C3 ; Changes_When_Titlecased # L& LATIN SMALL LETTER ANGLICANA A7C8 ; Changes_When_Titlecased # L& LATIN SMALL LETTER D WITH SHORT STROKE OVERLAY A7CA ; Changes_When_Titlecased # L& LATIN SMALL LETTER S WITH SHORT STROKE OVERLAY A7CD ; Changes_When_Titlecased # L& LATIN SMALL LETTER S WITH DIAGONAL STROKE +A7CF ; Changes_When_Titlecased # L& LATIN SMALL LETTER PHARYNGEAL VOICED FRICATIVE A7D1 ; Changes_When_Titlecased # L& LATIN SMALL LETTER CLOSED INSULAR G +A7D3 ; Changes_When_Titlecased # L& LATIN SMALL LETTER DOUBLE THORN +A7D5 ; Changes_When_Titlecased # L& LATIN SMALL LETTER DOUBLE WYNN A7D7 ; Changes_When_Titlecased # L& LATIN SMALL LETTER MIDDLE SCOTS S A7D9 ; Changes_When_Titlecased # L& LATIN SMALL LETTER SIGMOID S A7DB ; Changes_When_Titlecased # L& LATIN SMALL LETTER LAMBDA @@ -5406,15 +5462,17 @@ FF41..FF5A ; Changes_When_Titlecased # L& [26] FULLWIDTH LATIN SMALL LETTER 10D70..10D85 ; Changes_When_Titlecased # L& [22] GARAY SMALL LETTER A..GARAY SMALL LETTER OLD NA 118C0..118DF ; Changes_When_Titlecased # L& [32] WARANG CITI SMALL LETTER NGAA..WARANG CITI SMALL LETTER VIYO 16E60..16E7F ; Changes_When_Titlecased # L& [32] MEDEFAIDRIN SMALL LETTER M..MEDEFAIDRIN SMALL LETTER Y +16EBB..16ED3 ; Changes_When_Titlecased # L& [25] BERIA ERFE SMALL LETTER ARKAB..BERIA ERFE SMALL LETTER AY 1E922..1E943 ; Changes_When_Titlecased # L& [34] ADLAM SMALL LETTER ALIF..ADLAM SMALL LETTER SHA -# Total code points: 1479 +# Total code points: 1507 # ================================================ # Derived Property: Changes_When_Casefolded (CWCF) # Characters whose normalized forms are not stable under case folding. -# For more information, see D142 in Section 3.13, "Default Case Algorithms". +# For more information, see the definition of "isCasefolded(X)" +# in the "Conformance" / "Default Case Algorithms" section of the core specification. # Changes_When_Casefolded(X) is true when toCasefold(toNFD(X)) != toNFD(X) 0041..005A ; Changes_When_Casefolded # L& [26] LATIN CAPITAL LETTER A..LATIN CAPITAL LETTER Z @@ -6022,7 +6080,10 @@ A7C2 ; Changes_When_Casefolded # L& LATIN CAPITAL LETTER ANGLICAN A7C4..A7C7 ; Changes_When_Casefolded # L& [4] LATIN CAPITAL LETTER C WITH PALATAL HOOK..LATIN CAPITAL LETTER D WITH SHORT STROKE OVERLAY A7C9 ; Changes_When_Casefolded # L& LATIN CAPITAL LETTER S WITH SHORT STROKE OVERLAY A7CB..A7CC ; Changes_When_Casefolded # L& [2] LATIN CAPITAL LETTER RAMS HORN..LATIN CAPITAL LETTER S WITH DIAGONAL STROKE +A7CE ; Changes_When_Casefolded # L& LATIN CAPITAL LETTER PHARYNGEAL VOICED FRICATIVE A7D0 ; Changes_When_Casefolded # L& LATIN CAPITAL LETTER CLOSED INSULAR G +A7D2 ; Changes_When_Casefolded # L& LATIN CAPITAL LETTER DOUBLE THORN +A7D4 ; Changes_When_Casefolded # L& LATIN CAPITAL LETTER DOUBLE WYNN A7D6 ; Changes_When_Casefolded # L& LATIN CAPITAL LETTER MIDDLE SCOTS S A7D8 ; Changes_When_Casefolded # L& LATIN CAPITAL LETTER SIGMOID S A7DA ; Changes_When_Casefolded # L& LATIN CAPITAL LETTER LAMBDA @@ -6042,15 +6103,17 @@ FF21..FF3A ; Changes_When_Casefolded # L& [26] FULLWIDTH LATIN CAPITAL LETTE 10D50..10D65 ; Changes_When_Casefolded # L& [22] GARAY CAPITAL LETTER A..GARAY CAPITAL LETTER OLD NA 118A0..118BF ; Changes_When_Casefolded # L& [32] WARANG CITI CAPITAL LETTER NGAA..WARANG CITI CAPITAL LETTER VIYO 16E40..16E5F ; Changes_When_Casefolded # L& [32] MEDEFAIDRIN CAPITAL LETTER M..MEDEFAIDRIN CAPITAL LETTER Y +16EA0..16EB8 ; Changes_When_Casefolded # L& [25] BERIA ERFE CAPITAL LETTER ARKAB..BERIA ERFE CAPITAL LETTER AY 1E900..1E921 ; Changes_When_Casefolded # L& [34] ADLAM CAPITAL LETTER ALIF..ADLAM CAPITAL LETTER SHA -# Total code points: 1533 +# Total code points: 1561 # ================================================ # Derived Property: Changes_When_Casemapped (CWCM) # Characters whose normalized forms are not stable under case mapping. -# For more information, see D143 in Section 3.13, "Default Case Algorithms". +# For more information, see the definition of "isCased(X)" +# in the "Conformance" / "Default Case Algorithms" section of the core specification. # Changes_When_Casemapped(X) is true when CWL(X), or CWT(X), or CWU(X) 0041..005A ; Changes_When_Casemapped # L& [26] LATIN CAPITAL LETTER A..LATIN CAPITAL LETTER Z @@ -6156,9 +6219,7 @@ A779..A787 ; Changes_When_Casemapped # L& [15] LATIN CAPITAL LETTER INSULAR A78B..A78D ; Changes_When_Casemapped # L& [3] LATIN CAPITAL LETTER SALTILLO..LATIN CAPITAL LETTER TURNED H A790..A794 ; Changes_When_Casemapped # L& [5] LATIN CAPITAL LETTER N WITH DESCENDER..LATIN SMALL LETTER C WITH PALATAL HOOK A796..A7AE ; Changes_When_Casemapped # L& [25] LATIN CAPITAL LETTER B WITH FLOURISH..LATIN CAPITAL LETTER SMALL CAPITAL I -A7B0..A7CD ; Changes_When_Casemapped # L& [30] LATIN CAPITAL LETTER TURNED K..LATIN SMALL LETTER S WITH DIAGONAL STROKE -A7D0..A7D1 ; Changes_When_Casemapped # L& [2] LATIN CAPITAL LETTER CLOSED INSULAR G..LATIN SMALL LETTER CLOSED INSULAR G -A7D6..A7DC ; Changes_When_Casemapped # L& [7] LATIN CAPITAL LETTER MIDDLE SCOTS S..LATIN CAPITAL LETTER LAMBDA WITH STROKE +A7B0..A7DC ; Changes_When_Casemapped # L& [45] LATIN CAPITAL LETTER TURNED K..LATIN CAPITAL LETTER LAMBDA WITH STROKE A7F5..A7F6 ; Changes_When_Casemapped # L& [2] LATIN CAPITAL LETTER REVERSED HALF H..LATIN SMALL LETTER REVERSED HALF H AB53 ; Changes_When_Casemapped # L& LATIN SMALL LETTER CHI AB70..ABBF ; Changes_When_Casemapped # L& [80] CHEROKEE SMALL LETTER A..CHEROKEE SMALL LETTER YA @@ -6183,9 +6244,11 @@ FF41..FF5A ; Changes_When_Casemapped # L& [26] FULLWIDTH LATIN SMALL LETTER 10D70..10D85 ; Changes_When_Casemapped # L& [22] GARAY SMALL LETTER A..GARAY SMALL LETTER OLD NA 118A0..118DF ; Changes_When_Casemapped # L& [64] WARANG CITI CAPITAL LETTER NGAA..WARANG CITI SMALL LETTER VIYO 16E40..16E7F ; Changes_When_Casemapped # L& [64] MEDEFAIDRIN CAPITAL LETTER M..MEDEFAIDRIN SMALL LETTER Y +16EA0..16EB8 ; Changes_When_Casemapped # L& [25] BERIA ERFE CAPITAL LETTER ARKAB..BERIA ERFE CAPITAL LETTER AY +16EBB..16ED3 ; Changes_When_Casemapped # L& [25] BERIA ERFE SMALL LETTER ARKAB..BERIA ERFE SMALL LETTER AY 1E900..1E943 ; Changes_When_Casemapped # L& [68] ADLAM CAPITAL LETTER ALIF..ADLAM SMALL LETTER SHA -# Total code points: 2981 +# Total code points: 3037 # ================================================ @@ -6210,8 +6273,8 @@ FF41..FF5A ; Changes_When_Casemapped # L& [26] FULLWIDTH LATIN SMALL LETTER 01BC..01BF ; ID_Start # L& [4] LATIN CAPITAL LETTER TONE FIVE..LATIN LETTER WYNN 01C0..01C3 ; ID_Start # Lo [4] LATIN LETTER DENTAL CLICK..LATIN LETTER RETROFLEX CLICK 01C4..0293 ; ID_Start # L& [208] LATIN CAPITAL LETTER DZ WITH CARON..LATIN SMALL LETTER EZH WITH CURL -0294 ; ID_Start # Lo LATIN LETTER GLOTTAL STOP -0295..02AF ; ID_Start # L& [27] LATIN LETTER PHARYNGEAL VOICED FRICATIVE..LATIN SMALL LETTER TURNED H WITH FISHHOOK AND TAIL +0294..0295 ; ID_Start # Lo [2] LATIN LETTER GLOTTAL STOP..LATIN LETTER PHARYNGEAL VOICED FRICATIVE +0296..02AF ; ID_Start # L& [26] LATIN LETTER INVERTED GLOTTAL STOP..LATIN SMALL LETTER TURNED H WITH FISHHOOK AND TAIL 02B0..02C1 ; ID_Start # Lm [18] MODIFIER LETTER SMALL H..MODIFIER LETTER REVERSED GLOTTAL STOP 02C6..02D1 ; ID_Start # Lm [12] MODIFIER LETTER CIRCUMFLEX ACCENT..MODIFIER LETTER HALF TRIANGULAR COLON 02E0..02E4 ; ID_Start # Lm [5] MODIFIER LETTER SMALL GAMMA..MODIFIER LETTER SMALL REVERSED GLOTTAL STOP @@ -6259,7 +6322,7 @@ FF41..FF5A ; Changes_When_Casemapped # L& [26] FULLWIDTH LATIN SMALL LETTER 0840..0858 ; ID_Start # Lo [25] MANDAIC LETTER HALQA..MANDAIC LETTER AIN 0860..086A ; ID_Start # Lo [11] SYRIAC LETTER MALAYALAM NGA..SYRIAC LETTER MALAYALAM SSA 0870..0887 ; ID_Start # Lo [24] ARABIC LETTER ALEF WITH ATTACHED FATHA..ARABIC BASELINE ROUND DOT -0889..088E ; ID_Start # Lo [6] ARABIC LETTER NOON WITH INVERTED SMALL V..ARABIC VERTICAL TAIL +0889..088F ; ID_Start # Lo [7] ARABIC LETTER NOON WITH INVERTED SMALL V..ARABIC LETTER NOON WITH RING ABOVE 08A0..08C8 ; ID_Start # Lo [41] ARABIC LETTER BEH WITH SMALL V BELOW..ARABIC LETTER GRAF 08C9 ; ID_Start # Lm ARABIC SMALL FARSI YEH 0904..0939 ; ID_Start # Lo [54] DEVANAGARI LETTER SHORT A..DEVANAGARI LETTER HA @@ -6327,7 +6390,7 @@ FF41..FF5A ; Changes_When_Casemapped # L& [26] FULLWIDTH LATIN SMALL LETTER 0C2A..0C39 ; ID_Start # Lo [16] TELUGU LETTER PA..TELUGU LETTER HA 0C3D ; ID_Start # Lo TELUGU SIGN AVAGRAHA 0C58..0C5A ; ID_Start # Lo [3] TELUGU LETTER TSA..TELUGU LETTER RRRA -0C5D ; ID_Start # Lo TELUGU LETTER NAKAARA POLLU +0C5C..0C5D ; ID_Start # Lo [2] TELUGU ARCHAIC SHRII..TELUGU LETTER NAKAARA POLLU 0C60..0C61 ; ID_Start # Lo [2] TELUGU LETTER VOCALIC RR..TELUGU LETTER VOCALIC LL 0C80 ; ID_Start # Lo KANNADA SIGN SPACING CANDRABINDU 0C85..0C8C ; ID_Start # Lo [8] KANNADA LETTER A..KANNADA LETTER VOCALIC L @@ -6336,7 +6399,7 @@ FF41..FF5A ; Changes_When_Casemapped # L& [26] FULLWIDTH LATIN SMALL LETTER 0CAA..0CB3 ; ID_Start # Lo [10] KANNADA LETTER PA..KANNADA LETTER LLA 0CB5..0CB9 ; ID_Start # Lo [5] KANNADA LETTER VA..KANNADA LETTER HA 0CBD ; ID_Start # Lo KANNADA SIGN AVAGRAHA -0CDD..0CDE ; ID_Start # Lo [2] KANNADA LETTER NAKAARA POLLU..KANNADA LETTER FA +0CDC..0CDE ; ID_Start # Lo [3] KANNADA ARCHAIC SHRII..KANNADA LETTER FA 0CE0..0CE1 ; ID_Start # Lo [2] KANNADA LETTER VOCALIC RR..KANNADA LETTER VOCALIC LL 0CF1..0CF2 ; ID_Start # Lo [2] KANNADA SIGN JIHVAMULIYA..KANNADA SIGN UPADHMANIYA 0D04..0D0C ; ID_Start # Lo [9] MALAYALAM LETTER VEDIC ANUSVARA..MALAYALAM LETTER VOCALIC L @@ -6561,11 +6624,8 @@ A771..A787 ; ID_Start # L& [23] LATIN SMALL LETTER DUM..LATIN SMALL LETTER I A788 ; ID_Start # Lm MODIFIER LETTER LOW CIRCUMFLEX ACCENT A78B..A78E ; ID_Start # L& [4] LATIN CAPITAL LETTER SALTILLO..LATIN SMALL LETTER L WITH RETROFLEX HOOK AND BELT A78F ; ID_Start # Lo LATIN LETTER SINOLOGICAL DOT -A790..A7CD ; ID_Start # L& [62] LATIN CAPITAL LETTER N WITH DESCENDER..LATIN SMALL LETTER S WITH DIAGONAL STROKE -A7D0..A7D1 ; ID_Start # L& [2] LATIN CAPITAL LETTER CLOSED INSULAR G..LATIN SMALL LETTER CLOSED INSULAR G -A7D3 ; ID_Start # L& LATIN SMALL LETTER DOUBLE THORN -A7D5..A7DC ; ID_Start # L& [8] LATIN SMALL LETTER DOUBLE WYNN..LATIN CAPITAL LETTER LAMBDA WITH STROKE -A7F2..A7F4 ; ID_Start # Lm [3] MODIFIER LETTER CAPITAL C..MODIFIER LETTER CAPITAL Q +A790..A7DC ; ID_Start # L& [77] LATIN CAPITAL LETTER N WITH DESCENDER..LATIN CAPITAL LETTER LAMBDA WITH STROKE +A7F1..A7F4 ; ID_Start # Lm [4] MODIFIER LETTER CAPITAL S..MODIFIER LETTER CAPITAL Q A7F5..A7F6 ; ID_Start # L& [2] LATIN CAPITAL LETTER REVERSED HALF H..LATIN SMALL LETTER REVERSED HALF H A7F7 ; ID_Start # Lo LATIN EPIGRAPHIC LETTER SIDEWAYS I A7F8..A7F9 ; ID_Start # Lm [2] MODIFIER LETTER CAPITAL H WITH STROKE..MODIFIER LETTER SMALL LIGATURE OE @@ -6702,6 +6762,7 @@ FFDA..FFDC ; ID_Start # Lo [3] HALFWIDTH HANGUL LETTER EU..HALFWIDTH HANGUL 108F4..108F5 ; ID_Start # Lo [2] HATRAN LETTER SHIN..HATRAN LETTER TAW 10900..10915 ; ID_Start # Lo [22] PHOENICIAN LETTER ALF..PHOENICIAN LETTER TAU 10920..10939 ; ID_Start # Lo [26] LYDIAN LETTER A..LYDIAN LETTER C +10940..10959 ; ID_Start # Lo [26] SIDETIC LETTER N01..SIDETIC LETTER N26 10980..109B7 ; ID_Start # Lo [56] MEROITIC HIEROGLYPHIC LETTER A..MEROITIC CURSIVE LETTER DA 109BE..109BF ; ID_Start # Lo [2] MEROITIC CURSIVE LOGOGRAM RMT..MEROITIC CURSIVE LOGOGRAM IMN 10A00 ; ID_Start # Lo KHAROSHTHI LETTER A @@ -6729,6 +6790,8 @@ FFDA..FFDC ; ID_Start # Lo [3] HALFWIDTH HANGUL LETTER EU..HALFWIDTH HANGUL 10E80..10EA9 ; ID_Start # Lo [42] YEZIDI LETTER ELIF..YEZIDI LETTER ET 10EB0..10EB1 ; ID_Start # Lo [2] YEZIDI LETTER LAM WITH DOT ABOVE..YEZIDI LETTER YOT WITH CIRCUMFLEX ABOVE 10EC2..10EC4 ; ID_Start # Lo [3] ARABIC LETTER DAL WITH TWO DOTS VERTICALLY BELOW..ARABIC LETTER KAF WITH TWO DOTS VERTICALLY BELOW +10EC5 ; ID_Start # Lm ARABIC SMALL YEH BARREE WITH TWO DOTS BELOW +10EC6..10EC7 ; ID_Start # Lo [2] ARABIC LETTER THIN NOON..ARABIC LETTER YEH WITH FOUR DOTS BELOW 10F00..10F1C ; ID_Start # Lo [29] OLD SOGDIAN LETTER ALEPH..OLD SOGDIAN LETTER FINAL TAW WITH VERTICAL TAIL 10F27 ; ID_Start # Lo OLD SOGDIAN LIGATURE AYIN-DALETH 10F30..10F45 ; ID_Start # Lo [22] SOGDIAN LETTER ALEPH..SOGDIAN INDEPENDENT SHIN @@ -6821,6 +6884,9 @@ FFDA..FFDC ; ID_Start # Lo [3] HALFWIDTH HANGUL LETTER EU..HALFWIDTH HANGUL 11D67..11D68 ; ID_Start # Lo [2] GUNJALA GONDI LETTER EE..GUNJALA GONDI LETTER AI 11D6A..11D89 ; ID_Start # Lo [32] GUNJALA GONDI LETTER OO..GUNJALA GONDI LETTER SA 11D98 ; ID_Start # Lo GUNJALA GONDI OM +11DB0..11DD8 ; ID_Start # Lo [41] TOLONG SIKI LETTER I..TOLONG SIKI LETTER RRH +11DD9 ; ID_Start # Lm TOLONG SIKI SIGN SELA +11DDA..11DDB ; ID_Start # Lo [2] TOLONG SIKI SIGN HECAKA..TOLONG SIKI UNGGA 11EE0..11EF2 ; ID_Start # Lo [19] MAKASAR LETTER KA..MAKASAR ANGKA 11F02 ; ID_Start # Lo KAWI SIGN REPHA 11F04..11F10 ; ID_Start # Lo [13] KAWI LETTER A..KAWI LETTER O @@ -6847,14 +6913,18 @@ FFDA..FFDC ; ID_Start # Lo [3] HALFWIDTH HANGUL LETTER EU..HALFWIDTH HANGUL 16D43..16D6A ; ID_Start # Lo [40] KIRAT RAI LETTER A..KIRAT RAI VOWEL SIGN AU 16D6B..16D6C ; ID_Start # Lm [2] KIRAT RAI SIGN VIRAMA..KIRAT RAI SIGN SAAT 16E40..16E7F ; ID_Start # L& [64] MEDEFAIDRIN CAPITAL LETTER M..MEDEFAIDRIN SMALL LETTER Y +16EA0..16EB8 ; ID_Start # L& [25] BERIA ERFE CAPITAL LETTER ARKAB..BERIA ERFE CAPITAL LETTER AY +16EBB..16ED3 ; ID_Start # L& [25] BERIA ERFE SMALL LETTER ARKAB..BERIA ERFE SMALL LETTER AY 16F00..16F4A ; ID_Start # Lo [75] MIAO LETTER PA..MIAO LETTER RTE 16F50 ; ID_Start # Lo MIAO LETTER NASALIZATION 16F93..16F9F ; ID_Start # Lm [13] MIAO LETTER TONE-2..MIAO LETTER REFORMED TONE-8 16FE0..16FE1 ; ID_Start # Lm [2] TANGUT ITERATION MARK..NUSHU ITERATION MARK 16FE3 ; ID_Start # Lm OLD CHINESE ITERATION MARK -17000..187F7 ; ID_Start # Lo [6136] TANGUT IDEOGRAPH-17000..TANGUT IDEOGRAPH-187F7 -18800..18CD5 ; ID_Start # Lo [1238] TANGUT COMPONENT-001..KHITAN SMALL SCRIPT CHARACTER-18CD5 -18CFF..18D08 ; ID_Start # Lo [10] KHITAN SMALL SCRIPT CHARACTER-18CFF..TANGUT IDEOGRAPH-18D08 +16FF2..16FF3 ; ID_Start # Lm [2] CHINESE SMALL SIMPLIFIED ER..CHINESE SMALL TRADITIONAL ER +16FF4..16FF6 ; ID_Start # Nl [3] YANGQIN SIGN SLOW ONE BEAT..YANGQIN SIGN SLOW TWO BEATS +17000..18CD5 ; ID_Start # Lo [7382] TANGUT IDEOGRAPH-17000..KHITAN SMALL SCRIPT CHARACTER-18CD5 +18CFF..18D1E ; ID_Start # Lo [32] KHITAN SMALL SCRIPT CHARACTER-18CFF..TANGUT IDEOGRAPH-18D1E +18D80..18DF2 ; ID_Start # Lo [115] TANGUT COMPONENT-769..TANGUT COMPONENT-883 1AFF0..1AFF3 ; ID_Start # Lm [4] KATAKANA LETTER MINNAN TONE-2..KATAKANA LETTER MINNAN TONE-5 1AFF5..1AFFB ; ID_Start # Lm [7] KATAKANA LETTER MINNAN TONE-7..KATAKANA LETTER MINNAN NASALIZED TONE-5 1AFFD..1AFFE ; ID_Start # Lm [2] KATAKANA LETTER MINNAN NASALIZED TONE-7..KATAKANA LETTER MINNAN NASALIZED TONE-8 @@ -6912,6 +6982,13 @@ FFDA..FFDC ; ID_Start # Lo [3] HALFWIDTH HANGUL LETTER EU..HALFWIDTH HANGUL 1E4EB ; ID_Start # Lm NAG MUNDARI SIGN OJOD 1E5D0..1E5ED ; ID_Start # Lo [30] OL ONAL LETTER O..OL ONAL LETTER EG 1E5F0 ; ID_Start # Lo OL ONAL SIGN HODDOND +1E6C0..1E6DE ; ID_Start # Lo [31] TAI YO LETTER LOW KO..TAI YO LETTER HIGH KVO +1E6E0..1E6E2 ; ID_Start # Lo [3] TAI YO LETTER AA..TAI YO LETTER UE +1E6E4..1E6E5 ; ID_Start # Lo [2] TAI YO LETTER U..TAI YO LETTER AE +1E6E7..1E6ED ; ID_Start # Lo [7] TAI YO LETTER O..TAI YO LETTER AUE +1E6F0..1E6F4 ; ID_Start # Lo [5] TAI YO LETTER AN..TAI YO LETTER AP +1E6FE ; ID_Start # Lo TAI YO SYMBOL MUEANG +1E6FF ; ID_Start # Lm TAI YO XAM LAI 1E7E0..1E7E6 ; ID_Start # Lo [7] ETHIOPIC SYLLABLE HHYA..ETHIOPIC SYLLABLE HHYO 1E7E8..1E7EB ; ID_Start # Lo [4] ETHIOPIC SYLLABLE GURAGE HHWA..ETHIOPIC SYLLABLE HHWE 1E7ED..1E7EE ; ID_Start # Lo [2] ETHIOPIC SYLLABLE GURAGE MWI..ETHIOPIC SYLLABLE GURAGE MWEE @@ -6953,16 +7030,15 @@ FFDA..FFDC ; ID_Start # Lo [3] HALFWIDTH HANGUL LETTER EU..HALFWIDTH HANGUL 1EEA5..1EEA9 ; ID_Start # Lo [5] ARABIC MATHEMATICAL DOUBLE-STRUCK WAW..ARABIC MATHEMATICAL DOUBLE-STRUCK YEH 1EEAB..1EEBB ; ID_Start # Lo [17] ARABIC MATHEMATICAL DOUBLE-STRUCK LAM..ARABIC MATHEMATICAL DOUBLE-STRUCK GHAIN 20000..2A6DF ; ID_Start # Lo [42720] CJK UNIFIED IDEOGRAPH-20000..CJK UNIFIED IDEOGRAPH-2A6DF -2A700..2B739 ; ID_Start # Lo [4154] CJK UNIFIED IDEOGRAPH-2A700..CJK UNIFIED IDEOGRAPH-2B739 -2B740..2B81D ; ID_Start # Lo [222] CJK UNIFIED IDEOGRAPH-2B740..CJK UNIFIED IDEOGRAPH-2B81D -2B820..2CEA1 ; ID_Start # Lo [5762] CJK UNIFIED IDEOGRAPH-2B820..CJK UNIFIED IDEOGRAPH-2CEA1 +2A700..2B81D ; ID_Start # Lo [4382] CJK UNIFIED IDEOGRAPH-2A700..CJK UNIFIED IDEOGRAPH-2B81D +2B820..2CEAD ; ID_Start # Lo [5774] CJK UNIFIED IDEOGRAPH-2B820..CJK UNIFIED IDEOGRAPH-2CEAD 2CEB0..2EBE0 ; ID_Start # Lo [7473] CJK UNIFIED IDEOGRAPH-2CEB0..CJK UNIFIED IDEOGRAPH-2EBE0 2EBF0..2EE5D ; ID_Start # Lo [622] CJK UNIFIED IDEOGRAPH-2EBF0..CJK UNIFIED IDEOGRAPH-2EE5D 2F800..2FA1D ; ID_Start # Lo [542] CJK COMPATIBILITY IDEOGRAPH-2F800..CJK COMPATIBILITY IDEOGRAPH-2FA1D 30000..3134A ; ID_Start # Lo [4939] CJK UNIFIED IDEOGRAPH-30000..CJK UNIFIED IDEOGRAPH-3134A -31350..323AF ; ID_Start # Lo [4192] CJK UNIFIED IDEOGRAPH-31350..CJK UNIFIED IDEOGRAPH-323AF +31350..33479 ; ID_Start # Lo [8490] CJK UNIFIED IDEOGRAPH-31350..CJK UNIFIED IDEOGRAPH-33479 -# Total code points: 141269 +# Total code points: 145916 # ================================================ @@ -6991,8 +7067,8 @@ FFDA..FFDC ; ID_Start # Lo [3] HALFWIDTH HANGUL LETTER EU..HALFWIDTH HANGUL 01BC..01BF ; ID_Continue # L& [4] LATIN CAPITAL LETTER TONE FIVE..LATIN LETTER WYNN 01C0..01C3 ; ID_Continue # Lo [4] LATIN LETTER DENTAL CLICK..LATIN LETTER RETROFLEX CLICK 01C4..0293 ; ID_Continue # L& [208] LATIN CAPITAL LETTER DZ WITH CARON..LATIN SMALL LETTER EZH WITH CURL -0294 ; ID_Continue # Lo LATIN LETTER GLOTTAL STOP -0295..02AF ; ID_Continue # L& [27] LATIN LETTER PHARYNGEAL VOICED FRICATIVE..LATIN SMALL LETTER TURNED H WITH FISHHOOK AND TAIL +0294..0295 ; ID_Continue # Lo [2] LATIN LETTER GLOTTAL STOP..LATIN LETTER PHARYNGEAL VOICED FRICATIVE +0296..02AF ; ID_Continue # L& [26] LATIN LETTER INVERTED GLOTTAL STOP..LATIN SMALL LETTER TURNED H WITH FISHHOOK AND TAIL 02B0..02C1 ; ID_Continue # Lm [18] MODIFIER LETTER SMALL H..MODIFIER LETTER REVERSED GLOTTAL STOP 02C6..02D1 ; ID_Continue # Lm [12] MODIFIER LETTER CIRCUMFLEX ACCENT..MODIFIER LETTER HALF TRIANGULAR COLON 02E0..02E4 ; ID_Continue # Lm [5] MODIFIER LETTER SMALL GAMMA..MODIFIER LETTER SMALL REVERSED GLOTTAL STOP @@ -7068,7 +7144,7 @@ FFDA..FFDC ; ID_Start # Lo [3] HALFWIDTH HANGUL LETTER EU..HALFWIDTH HANGUL 0859..085B ; ID_Continue # Mn [3] MANDAIC AFFRICATION MARK..MANDAIC GEMINATION MARK 0860..086A ; ID_Continue # Lo [11] SYRIAC LETTER MALAYALAM NGA..SYRIAC LETTER MALAYALAM SSA 0870..0887 ; ID_Continue # Lo [24] ARABIC LETTER ALEF WITH ATTACHED FATHA..ARABIC BASELINE ROUND DOT -0889..088E ; ID_Continue # Lo [6] ARABIC LETTER NOON WITH INVERTED SMALL V..ARABIC VERTICAL TAIL +0889..088F ; ID_Continue # Lo [7] ARABIC LETTER NOON WITH INVERTED SMALL V..ARABIC LETTER NOON WITH RING ABOVE 0897..089F ; ID_Continue # Mn [9] ARABIC PEPET..ARABIC HALF MADDA OVER MADDA 08A0..08C8 ; ID_Continue # Lo [41] ARABIC LETTER BEH WITH SMALL V BELOW..ARABIC LETTER GRAF 08C9 ; ID_Continue # Lm ARABIC SMALL FARSI YEH @@ -7218,7 +7294,7 @@ FFDA..FFDC ; ID_Start # Lo [3] HALFWIDTH HANGUL LETTER EU..HALFWIDTH HANGUL 0C4A..0C4D ; ID_Continue # Mn [4] TELUGU VOWEL SIGN O..TELUGU SIGN VIRAMA 0C55..0C56 ; ID_Continue # Mn [2] TELUGU LENGTH MARK..TELUGU AI LENGTH MARK 0C58..0C5A ; ID_Continue # Lo [3] TELUGU LETTER TSA..TELUGU LETTER RRRA -0C5D ; ID_Continue # Lo TELUGU LETTER NAKAARA POLLU +0C5C..0C5D ; ID_Continue # Lo [2] TELUGU ARCHAIC SHRII..TELUGU LETTER NAKAARA POLLU 0C60..0C61 ; ID_Continue # Lo [2] TELUGU LETTER VOCALIC RR..TELUGU LETTER VOCALIC LL 0C62..0C63 ; ID_Continue # Mn [2] TELUGU VOWEL SIGN VOCALIC L..TELUGU VOWEL SIGN VOCALIC LL 0C66..0C6F ; ID_Continue # Nd [10] TELUGU DIGIT ZERO..TELUGU DIGIT NINE @@ -7240,7 +7316,7 @@ FFDA..FFDC ; ID_Start # Lo [3] HALFWIDTH HANGUL LETTER EU..HALFWIDTH HANGUL 0CCA..0CCB ; ID_Continue # Mc [2] KANNADA VOWEL SIGN O..KANNADA VOWEL SIGN OO 0CCC..0CCD ; ID_Continue # Mn [2] KANNADA VOWEL SIGN AU..KANNADA SIGN VIRAMA 0CD5..0CD6 ; ID_Continue # Mc [2] KANNADA LENGTH MARK..KANNADA AI LENGTH MARK -0CDD..0CDE ; ID_Continue # Lo [2] KANNADA LETTER NAKAARA POLLU..KANNADA LETTER FA +0CDC..0CDE ; ID_Continue # Lo [3] KANNADA ARCHAIC SHRII..KANNADA LETTER FA 0CE0..0CE1 ; ID_Continue # Lo [2] KANNADA LETTER VOCALIC RR..KANNADA LETTER VOCALIC LL 0CE2..0CE3 ; ID_Continue # Mn [2] KANNADA VOWEL SIGN VOCALIC L..KANNADA VOWEL SIGN VOCALIC LL 0CE6..0CEF ; ID_Continue # Nd [10] KANNADA DIGIT ZERO..KANNADA DIGIT NINE @@ -7457,7 +7533,8 @@ FFDA..FFDC ; ID_Start # Lo [3] HALFWIDTH HANGUL LETTER EU..HALFWIDTH HANGUL 1A90..1A99 ; ID_Continue # Nd [10] TAI THAM THAM DIGIT ZERO..TAI THAM THAM DIGIT NINE 1AA7 ; ID_Continue # Lm TAI THAM SIGN MAI YAMOK 1AB0..1ABD ; ID_Continue # Mn [14] COMBINING DOUBLED CIRCUMFLEX ACCENT..COMBINING PARENTHESES BELOW -1ABF..1ACE ; ID_Continue # Mn [16] COMBINING LATIN SMALL LETTER W BELOW..COMBINING LATIN SMALL LETTER INSULAR T +1ABF..1ADD ; ID_Continue # Mn [31] COMBINING LATIN SMALL LETTER W BELOW..COMBINING DOT-AND-RING BELOW +1AE0..1AEB ; ID_Continue # Mn [12] COMBINING LEFT TACK ABOVE..COMBINING DOUBLE RIGHTWARDS ARROW ABOVE 1B00..1B03 ; ID_Continue # Mn [4] BALINESE SIGN ULU RICEM..BALINESE SIGN SURANG 1B04 ; ID_Continue # Mc BALINESE SIGN BISAH 1B05..1B33 ; ID_Continue # Lo [47] BALINESE LETTER AKARA..BALINESE LETTER HA @@ -7646,11 +7723,8 @@ A771..A787 ; ID_Continue # L& [23] LATIN SMALL LETTER DUM..LATIN SMALL LETTE A788 ; ID_Continue # Lm MODIFIER LETTER LOW CIRCUMFLEX ACCENT A78B..A78E ; ID_Continue # L& [4] LATIN CAPITAL LETTER SALTILLO..LATIN SMALL LETTER L WITH RETROFLEX HOOK AND BELT A78F ; ID_Continue # Lo LATIN LETTER SINOLOGICAL DOT -A790..A7CD ; ID_Continue # L& [62] LATIN CAPITAL LETTER N WITH DESCENDER..LATIN SMALL LETTER S WITH DIAGONAL STROKE -A7D0..A7D1 ; ID_Continue # L& [2] LATIN CAPITAL LETTER CLOSED INSULAR G..LATIN SMALL LETTER CLOSED INSULAR G -A7D3 ; ID_Continue # L& LATIN SMALL LETTER DOUBLE THORN -A7D5..A7DC ; ID_Continue # L& [8] LATIN SMALL LETTER DOUBLE WYNN..LATIN CAPITAL LETTER LAMBDA WITH STROKE -A7F2..A7F4 ; ID_Continue # Lm [3] MODIFIER LETTER CAPITAL C..MODIFIER LETTER CAPITAL Q +A790..A7DC ; ID_Continue # L& [77] LATIN CAPITAL LETTER N WITH DESCENDER..LATIN CAPITAL LETTER LAMBDA WITH STROKE +A7F1..A7F4 ; ID_Continue # Lm [4] MODIFIER LETTER CAPITAL S..MODIFIER LETTER CAPITAL Q A7F5..A7F6 ; ID_Continue # L& [2] LATIN CAPITAL LETTER REVERSED HALF H..LATIN SMALL LETTER REVERSED HALF H A7F7 ; ID_Continue # Lo LATIN EPIGRAPHIC LETTER SIDEWAYS I A7F8..A7F9 ; ID_Continue # Lm [2] MODIFIER LETTER CAPITAL H WITH STROKE..MODIFIER LETTER SMALL LIGATURE OE @@ -7857,6 +7931,7 @@ FFDA..FFDC ; ID_Continue # Lo [3] HALFWIDTH HANGUL LETTER EU..HALFWIDTH HAN 108F4..108F5 ; ID_Continue # Lo [2] HATRAN LETTER SHIN..HATRAN LETTER TAW 10900..10915 ; ID_Continue # Lo [22] PHOENICIAN LETTER ALF..PHOENICIAN LETTER TAU 10920..10939 ; ID_Continue # Lo [26] LYDIAN LETTER A..LYDIAN LETTER C +10940..10959 ; ID_Continue # Lo [26] SIDETIC LETTER N01..SIDETIC LETTER N26 10980..109B7 ; ID_Continue # Lo [56] MEROITIC HIEROGLYPHIC LETTER A..MEROITIC CURSIVE LETTER DA 109BE..109BF ; ID_Continue # Lo [2] MEROITIC CURSIVE LOGOGRAM RMT..MEROITIC CURSIVE LOGOGRAM IMN 10A00 ; ID_Continue # Lo KHAROSHTHI LETTER A @@ -7895,7 +7970,9 @@ FFDA..FFDC ; ID_Continue # Lo [3] HALFWIDTH HANGUL LETTER EU..HALFWIDTH HAN 10EAB..10EAC ; ID_Continue # Mn [2] YEZIDI COMBINING HAMZA MARK..YEZIDI COMBINING MADDA MARK 10EB0..10EB1 ; ID_Continue # Lo [2] YEZIDI LETTER LAM WITH DOT ABOVE..YEZIDI LETTER YOT WITH CIRCUMFLEX ABOVE 10EC2..10EC4 ; ID_Continue # Lo [3] ARABIC LETTER DAL WITH TWO DOTS VERTICALLY BELOW..ARABIC LETTER KAF WITH TWO DOTS VERTICALLY BELOW -10EFC..10EFF ; ID_Continue # Mn [4] ARABIC COMBINING ALEF OVERLAY..ARABIC SMALL LOW WORD MADDA +10EC5 ; ID_Continue # Lm ARABIC SMALL YEH BARREE WITH TWO DOTS BELOW +10EC6..10EC7 ; ID_Continue # Lo [2] ARABIC LETTER THIN NOON..ARABIC LETTER YEH WITH FOUR DOTS BELOW +10EFA..10EFF ; ID_Continue # Mn [6] ARABIC DOUBLE VERTICAL BAR BELOW..ARABIC SMALL LOW WORD MADDA 10F00..10F1C ; ID_Continue # Lo [29] OLD SOGDIAN LETTER ALEPH..OLD SOGDIAN LETTER FINAL TAW WITH VERTICAL TAIL 10F27 ; ID_Continue # Lo OLD SOGDIAN LIGATURE AYIN-DALETH 10F30..10F45 ; ID_Continue # Lo [22] SOGDIAN LETTER ALEPH..SOGDIAN INDEPENDENT SHIN @@ -8122,6 +8199,12 @@ FFDA..FFDC ; ID_Continue # Lo [3] HALFWIDTH HANGUL LETTER EU..HALFWIDTH HAN 11A98..11A99 ; ID_Continue # Mn [2] SOYOMBO GEMINATION MARK..SOYOMBO SUBJOINER 11A9D ; ID_Continue # Lo SOYOMBO MARK PLUTA 11AB0..11AF8 ; ID_Continue # Lo [73] CANADIAN SYLLABICS NATTILIK HI..PAU CIN HAU GLOTTAL STOP FINAL +11B60 ; ID_Continue # Mn SHARADA VOWEL SIGN OE +11B61 ; ID_Continue # Mc SHARADA VOWEL SIGN OOE +11B62..11B64 ; ID_Continue # Mn [3] SHARADA VOWEL SIGN UE..SHARADA VOWEL SIGN SHORT E +11B65 ; ID_Continue # Mc SHARADA VOWEL SIGN SHORT O +11B66 ; ID_Continue # Mn SHARADA VOWEL SIGN CANDRA E +11B67 ; ID_Continue # Mc SHARADA VOWEL SIGN CANDRA O 11BC0..11BE0 ; ID_Continue # Lo [33] SUNUWAR LETTER DEVI..SUNUWAR LETTER KLOKO 11BF0..11BF9 ; ID_Continue # Nd [10] SUNUWAR DIGIT ZERO..SUNUWAR DIGIT NINE 11C00..11C08 ; ID_Continue # Lo [9] BHAIKSUKI LETTER A..BHAIKSUKI LETTER VOCALIC L @@ -8162,6 +8245,10 @@ FFDA..FFDC ; ID_Continue # Lo [3] HALFWIDTH HANGUL LETTER EU..HALFWIDTH HAN 11D97 ; ID_Continue # Mn GUNJALA GONDI VIRAMA 11D98 ; ID_Continue # Lo GUNJALA GONDI OM 11DA0..11DA9 ; ID_Continue # Nd [10] GUNJALA GONDI DIGIT ZERO..GUNJALA GONDI DIGIT NINE +11DB0..11DD8 ; ID_Continue # Lo [41] TOLONG SIKI LETTER I..TOLONG SIKI LETTER RRH +11DD9 ; ID_Continue # Lm TOLONG SIKI SIGN SELA +11DDA..11DDB ; ID_Continue # Lo [2] TOLONG SIKI SIGN HECAKA..TOLONG SIKI UNGGA +11DE0..11DE9 ; ID_Continue # Nd [10] TOLONG SIKI DIGIT ZERO..TOLONG SIKI DIGIT NINE 11EE0..11EF2 ; ID_Continue # Lo [19] MAKASAR LETTER KA..MAKASAR ANGKA 11EF3..11EF4 ; ID_Continue # Mn [2] MAKASAR VOWEL SIGN I..MAKASAR VOWEL SIGN U 11EF5..11EF6 ; ID_Continue # Mc [2] MAKASAR VOWEL SIGN E..MAKASAR VOWEL SIGN O @@ -8212,6 +8299,8 @@ FFDA..FFDC ; ID_Continue # Lo [3] HALFWIDTH HANGUL LETTER EU..HALFWIDTH HAN 16D6B..16D6C ; ID_Continue # Lm [2] KIRAT RAI SIGN VIRAMA..KIRAT RAI SIGN SAAT 16D70..16D79 ; ID_Continue # Nd [10] KIRAT RAI DIGIT ZERO..KIRAT RAI DIGIT NINE 16E40..16E7F ; ID_Continue # L& [64] MEDEFAIDRIN CAPITAL LETTER M..MEDEFAIDRIN SMALL LETTER Y +16EA0..16EB8 ; ID_Continue # L& [25] BERIA ERFE CAPITAL LETTER ARKAB..BERIA ERFE CAPITAL LETTER AY +16EBB..16ED3 ; ID_Continue # L& [25] BERIA ERFE SMALL LETTER ARKAB..BERIA ERFE SMALL LETTER AY 16F00..16F4A ; ID_Continue # Lo [75] MIAO LETTER PA..MIAO LETTER RTE 16F4F ; ID_Continue # Mn MIAO SIGN CONSONANT MODIFIER BAR 16F50 ; ID_Continue # Lo MIAO LETTER NASALIZATION @@ -8222,9 +8311,11 @@ FFDA..FFDC ; ID_Continue # Lo [3] HALFWIDTH HANGUL LETTER EU..HALFWIDTH HAN 16FE3 ; ID_Continue # Lm OLD CHINESE ITERATION MARK 16FE4 ; ID_Continue # Mn KHITAN SMALL SCRIPT FILLER 16FF0..16FF1 ; ID_Continue # Mc [2] VIETNAMESE ALTERNATE READING MARK CA..VIETNAMESE ALTERNATE READING MARK NHAY -17000..187F7 ; ID_Continue # Lo [6136] TANGUT IDEOGRAPH-17000..TANGUT IDEOGRAPH-187F7 -18800..18CD5 ; ID_Continue # Lo [1238] TANGUT COMPONENT-001..KHITAN SMALL SCRIPT CHARACTER-18CD5 -18CFF..18D08 ; ID_Continue # Lo [10] KHITAN SMALL SCRIPT CHARACTER-18CFF..TANGUT IDEOGRAPH-18D08 +16FF2..16FF3 ; ID_Continue # Lm [2] CHINESE SMALL SIMPLIFIED ER..CHINESE SMALL TRADITIONAL ER +16FF4..16FF6 ; ID_Continue # Nl [3] YANGQIN SIGN SLOW ONE BEAT..YANGQIN SIGN SLOW TWO BEATS +17000..18CD5 ; ID_Continue # Lo [7382] TANGUT IDEOGRAPH-17000..KHITAN SMALL SCRIPT CHARACTER-18CD5 +18CFF..18D1E ; ID_Continue # Lo [32] KHITAN SMALL SCRIPT CHARACTER-18CFF..TANGUT IDEOGRAPH-18D1E +18D80..18DF2 ; ID_Continue # Lo [115] TANGUT COMPONENT-769..TANGUT COMPONENT-883 1AFF0..1AFF3 ; ID_Continue # Lm [4] KATAKANA LETTER MINNAN TONE-2..KATAKANA LETTER MINNAN TONE-5 1AFF5..1AFFB ; ID_Continue # Lm [7] KATAKANA LETTER MINNAN TONE-7..KATAKANA LETTER MINNAN NASALIZED TONE-5 1AFFD..1AFFE ; ID_Continue # Lm [2] KATAKANA LETTER MINNAN NASALIZED TONE-7..KATAKANA LETTER MINNAN NASALIZED TONE-8 @@ -8315,6 +8406,17 @@ FFDA..FFDC ; ID_Continue # Lo [3] HALFWIDTH HANGUL LETTER EU..HALFWIDTH HAN 1E5EE..1E5EF ; ID_Continue # Mn [2] OL ONAL SIGN MU..OL ONAL SIGN IKIR 1E5F0 ; ID_Continue # Lo OL ONAL SIGN HODDOND 1E5F1..1E5FA ; ID_Continue # Nd [10] OL ONAL DIGIT ZERO..OL ONAL DIGIT NINE +1E6C0..1E6DE ; ID_Continue # Lo [31] TAI YO LETTER LOW KO..TAI YO LETTER HIGH KVO +1E6E0..1E6E2 ; ID_Continue # Lo [3] TAI YO LETTER AA..TAI YO LETTER UE +1E6E3 ; ID_Continue # Mn TAI YO SIGN UE +1E6E4..1E6E5 ; ID_Continue # Lo [2] TAI YO LETTER U..TAI YO LETTER AE +1E6E6 ; ID_Continue # Mn TAI YO SIGN AU +1E6E7..1E6ED ; ID_Continue # Lo [7] TAI YO LETTER O..TAI YO LETTER AUE +1E6EE..1E6EF ; ID_Continue # Mn [2] TAI YO SIGN AY..TAI YO SIGN ANG +1E6F0..1E6F4 ; ID_Continue # Lo [5] TAI YO LETTER AN..TAI YO LETTER AP +1E6F5 ; ID_Continue # Mn TAI YO SIGN OM +1E6FE ; ID_Continue # Lo TAI YO SYMBOL MUEANG +1E6FF ; ID_Continue # Lm TAI YO XAM LAI 1E7E0..1E7E6 ; ID_Continue # Lo [7] ETHIOPIC SYLLABLE HHYA..ETHIOPIC SYLLABLE HHYO 1E7E8..1E7EB ; ID_Continue # Lo [4] ETHIOPIC SYLLABLE GURAGE HHWA..ETHIOPIC SYLLABLE HHWE 1E7ED..1E7EE ; ID_Continue # Lo [2] ETHIOPIC SYLLABLE GURAGE MWI..ETHIOPIC SYLLABLE GURAGE MWEE @@ -8360,17 +8462,16 @@ FFDA..FFDC ; ID_Continue # Lo [3] HALFWIDTH HANGUL LETTER EU..HALFWIDTH HAN 1EEAB..1EEBB ; ID_Continue # Lo [17] ARABIC MATHEMATICAL DOUBLE-STRUCK LAM..ARABIC MATHEMATICAL DOUBLE-STRUCK GHAIN 1FBF0..1FBF9 ; ID_Continue # Nd [10] SEGMENTED DIGIT ZERO..SEGMENTED DIGIT NINE 20000..2A6DF ; ID_Continue # Lo [42720] CJK UNIFIED IDEOGRAPH-20000..CJK UNIFIED IDEOGRAPH-2A6DF -2A700..2B739 ; ID_Continue # Lo [4154] CJK UNIFIED IDEOGRAPH-2A700..CJK UNIFIED IDEOGRAPH-2B739 -2B740..2B81D ; ID_Continue # Lo [222] CJK UNIFIED IDEOGRAPH-2B740..CJK UNIFIED IDEOGRAPH-2B81D -2B820..2CEA1 ; ID_Continue # Lo [5762] CJK UNIFIED IDEOGRAPH-2B820..CJK UNIFIED IDEOGRAPH-2CEA1 +2A700..2B81D ; ID_Continue # Lo [4382] CJK UNIFIED IDEOGRAPH-2A700..CJK UNIFIED IDEOGRAPH-2B81D +2B820..2CEAD ; ID_Continue # Lo [5774] CJK UNIFIED IDEOGRAPH-2B820..CJK UNIFIED IDEOGRAPH-2CEAD 2CEB0..2EBE0 ; ID_Continue # Lo [7473] CJK UNIFIED IDEOGRAPH-2CEB0..CJK UNIFIED IDEOGRAPH-2EBE0 2EBF0..2EE5D ; ID_Continue # Lo [622] CJK UNIFIED IDEOGRAPH-2EBF0..CJK UNIFIED IDEOGRAPH-2EE5D 2F800..2FA1D ; ID_Continue # Lo [542] CJK COMPATIBILITY IDEOGRAPH-2F800..CJK COMPATIBILITY IDEOGRAPH-2FA1D 30000..3134A ; ID_Continue # Lo [4939] CJK UNIFIED IDEOGRAPH-30000..CJK UNIFIED IDEOGRAPH-3134A -31350..323AF ; ID_Continue # Lo [4192] CJK UNIFIED IDEOGRAPH-31350..CJK UNIFIED IDEOGRAPH-323AF +31350..33479 ; ID_Continue # Lo [8490] CJK UNIFIED IDEOGRAPH-31350..CJK UNIFIED IDEOGRAPH-33479 E0100..E01EF ; ID_Continue # Mn [240] VARIATION SELECTOR-17..VARIATION SELECTOR-256 -# Total code points: 144541 +# Total code points: 149240 # ================================================ @@ -8393,8 +8494,8 @@ E0100..E01EF ; ID_Continue # Mn [240] VARIATION SELECTOR-17..VARIATION SELECTOR 01BC..01BF ; XID_Start # L& [4] LATIN CAPITAL LETTER TONE FIVE..LATIN LETTER WYNN 01C0..01C3 ; XID_Start # Lo [4] LATIN LETTER DENTAL CLICK..LATIN LETTER RETROFLEX CLICK 01C4..0293 ; XID_Start # L& [208] LATIN CAPITAL LETTER DZ WITH CARON..LATIN SMALL LETTER EZH WITH CURL -0294 ; XID_Start # Lo LATIN LETTER GLOTTAL STOP -0295..02AF ; XID_Start # L& [27] LATIN LETTER PHARYNGEAL VOICED FRICATIVE..LATIN SMALL LETTER TURNED H WITH FISHHOOK AND TAIL +0294..0295 ; XID_Start # Lo [2] LATIN LETTER GLOTTAL STOP..LATIN LETTER PHARYNGEAL VOICED FRICATIVE +0296..02AF ; XID_Start # L& [26] LATIN LETTER INVERTED GLOTTAL STOP..LATIN SMALL LETTER TURNED H WITH FISHHOOK AND TAIL 02B0..02C1 ; XID_Start # Lm [18] MODIFIER LETTER SMALL H..MODIFIER LETTER REVERSED GLOTTAL STOP 02C6..02D1 ; XID_Start # Lm [12] MODIFIER LETTER CIRCUMFLEX ACCENT..MODIFIER LETTER HALF TRIANGULAR COLON 02E0..02E4 ; XID_Start # Lm [5] MODIFIER LETTER SMALL GAMMA..MODIFIER LETTER SMALL REVERSED GLOTTAL STOP @@ -8441,7 +8542,7 @@ E0100..E01EF ; ID_Continue # Mn [240] VARIATION SELECTOR-17..VARIATION SELECTOR 0840..0858 ; XID_Start # Lo [25] MANDAIC LETTER HALQA..MANDAIC LETTER AIN 0860..086A ; XID_Start # Lo [11] SYRIAC LETTER MALAYALAM NGA..SYRIAC LETTER MALAYALAM SSA 0870..0887 ; XID_Start # Lo [24] ARABIC LETTER ALEF WITH ATTACHED FATHA..ARABIC BASELINE ROUND DOT -0889..088E ; XID_Start # Lo [6] ARABIC LETTER NOON WITH INVERTED SMALL V..ARABIC VERTICAL TAIL +0889..088F ; XID_Start # Lo [7] ARABIC LETTER NOON WITH INVERTED SMALL V..ARABIC LETTER NOON WITH RING ABOVE 08A0..08C8 ; XID_Start # Lo [41] ARABIC LETTER BEH WITH SMALL V BELOW..ARABIC LETTER GRAF 08C9 ; XID_Start # Lm ARABIC SMALL FARSI YEH 0904..0939 ; XID_Start # Lo [54] DEVANAGARI LETTER SHORT A..DEVANAGARI LETTER HA @@ -8509,7 +8610,7 @@ E0100..E01EF ; ID_Continue # Mn [240] VARIATION SELECTOR-17..VARIATION SELECTOR 0C2A..0C39 ; XID_Start # Lo [16] TELUGU LETTER PA..TELUGU LETTER HA 0C3D ; XID_Start # Lo TELUGU SIGN AVAGRAHA 0C58..0C5A ; XID_Start # Lo [3] TELUGU LETTER TSA..TELUGU LETTER RRRA -0C5D ; XID_Start # Lo TELUGU LETTER NAKAARA POLLU +0C5C..0C5D ; XID_Start # Lo [2] TELUGU ARCHAIC SHRII..TELUGU LETTER NAKAARA POLLU 0C60..0C61 ; XID_Start # Lo [2] TELUGU LETTER VOCALIC RR..TELUGU LETTER VOCALIC LL 0C80 ; XID_Start # Lo KANNADA SIGN SPACING CANDRABINDU 0C85..0C8C ; XID_Start # Lo [8] KANNADA LETTER A..KANNADA LETTER VOCALIC L @@ -8518,7 +8619,7 @@ E0100..E01EF ; ID_Continue # Mn [240] VARIATION SELECTOR-17..VARIATION SELECTOR 0CAA..0CB3 ; XID_Start # Lo [10] KANNADA LETTER PA..KANNADA LETTER LLA 0CB5..0CB9 ; XID_Start # Lo [5] KANNADA LETTER VA..KANNADA LETTER HA 0CBD ; XID_Start # Lo KANNADA SIGN AVAGRAHA -0CDD..0CDE ; XID_Start # Lo [2] KANNADA LETTER NAKAARA POLLU..KANNADA LETTER FA +0CDC..0CDE ; XID_Start # Lo [3] KANNADA ARCHAIC SHRII..KANNADA LETTER FA 0CE0..0CE1 ; XID_Start # Lo [2] KANNADA LETTER VOCALIC RR..KANNADA LETTER VOCALIC LL 0CF1..0CF2 ; XID_Start # Lo [2] KANNADA SIGN JIHVAMULIYA..KANNADA SIGN UPADHMANIYA 0D04..0D0C ; XID_Start # Lo [9] MALAYALAM LETTER VEDIC ANUSVARA..MALAYALAM LETTER VOCALIC L @@ -8742,11 +8843,8 @@ A771..A787 ; XID_Start # L& [23] LATIN SMALL LETTER DUM..LATIN SMALL LETTER A788 ; XID_Start # Lm MODIFIER LETTER LOW CIRCUMFLEX ACCENT A78B..A78E ; XID_Start # L& [4] LATIN CAPITAL LETTER SALTILLO..LATIN SMALL LETTER L WITH RETROFLEX HOOK AND BELT A78F ; XID_Start # Lo LATIN LETTER SINOLOGICAL DOT -A790..A7CD ; XID_Start # L& [62] LATIN CAPITAL LETTER N WITH DESCENDER..LATIN SMALL LETTER S WITH DIAGONAL STROKE -A7D0..A7D1 ; XID_Start # L& [2] LATIN CAPITAL LETTER CLOSED INSULAR G..LATIN SMALL LETTER CLOSED INSULAR G -A7D3 ; XID_Start # L& LATIN SMALL LETTER DOUBLE THORN -A7D5..A7DC ; XID_Start # L& [8] LATIN SMALL LETTER DOUBLE WYNN..LATIN CAPITAL LETTER LAMBDA WITH STROKE -A7F2..A7F4 ; XID_Start # Lm [3] MODIFIER LETTER CAPITAL C..MODIFIER LETTER CAPITAL Q +A790..A7DC ; XID_Start # L& [77] LATIN CAPITAL LETTER N WITH DESCENDER..LATIN CAPITAL LETTER LAMBDA WITH STROKE +A7F1..A7F4 ; XID_Start # Lm [4] MODIFIER LETTER CAPITAL S..MODIFIER LETTER CAPITAL Q A7F5..A7F6 ; XID_Start # L& [2] LATIN CAPITAL LETTER REVERSED HALF H..LATIN SMALL LETTER REVERSED HALF H A7F7 ; XID_Start # Lo LATIN EPIGRAPHIC LETTER SIDEWAYS I A7F8..A7F9 ; XID_Start # Lm [2] MODIFIER LETTER CAPITAL H WITH STROKE..MODIFIER LETTER SMALL LIGATURE OE @@ -8888,6 +8986,7 @@ FFDA..FFDC ; XID_Start # Lo [3] HALFWIDTH HANGUL LETTER EU..HALFWIDTH HANGU 108F4..108F5 ; XID_Start # Lo [2] HATRAN LETTER SHIN..HATRAN LETTER TAW 10900..10915 ; XID_Start # Lo [22] PHOENICIAN LETTER ALF..PHOENICIAN LETTER TAU 10920..10939 ; XID_Start # Lo [26] LYDIAN LETTER A..LYDIAN LETTER C +10940..10959 ; XID_Start # Lo [26] SIDETIC LETTER N01..SIDETIC LETTER N26 10980..109B7 ; XID_Start # Lo [56] MEROITIC HIEROGLYPHIC LETTER A..MEROITIC CURSIVE LETTER DA 109BE..109BF ; XID_Start # Lo [2] MEROITIC CURSIVE LOGOGRAM RMT..MEROITIC CURSIVE LOGOGRAM IMN 10A00 ; XID_Start # Lo KHAROSHTHI LETTER A @@ -8915,6 +9014,8 @@ FFDA..FFDC ; XID_Start # Lo [3] HALFWIDTH HANGUL LETTER EU..HALFWIDTH HANGU 10E80..10EA9 ; XID_Start # Lo [42] YEZIDI LETTER ELIF..YEZIDI LETTER ET 10EB0..10EB1 ; XID_Start # Lo [2] YEZIDI LETTER LAM WITH DOT ABOVE..YEZIDI LETTER YOT WITH CIRCUMFLEX ABOVE 10EC2..10EC4 ; XID_Start # Lo [3] ARABIC LETTER DAL WITH TWO DOTS VERTICALLY BELOW..ARABIC LETTER KAF WITH TWO DOTS VERTICALLY BELOW +10EC5 ; XID_Start # Lm ARABIC SMALL YEH BARREE WITH TWO DOTS BELOW +10EC6..10EC7 ; XID_Start # Lo [2] ARABIC LETTER THIN NOON..ARABIC LETTER YEH WITH FOUR DOTS BELOW 10F00..10F1C ; XID_Start # Lo [29] OLD SOGDIAN LETTER ALEPH..OLD SOGDIAN LETTER FINAL TAW WITH VERTICAL TAIL 10F27 ; XID_Start # Lo OLD SOGDIAN LIGATURE AYIN-DALETH 10F30..10F45 ; XID_Start # Lo [22] SOGDIAN LETTER ALEPH..SOGDIAN INDEPENDENT SHIN @@ -9007,6 +9108,9 @@ FFDA..FFDC ; XID_Start # Lo [3] HALFWIDTH HANGUL LETTER EU..HALFWIDTH HANGU 11D67..11D68 ; XID_Start # Lo [2] GUNJALA GONDI LETTER EE..GUNJALA GONDI LETTER AI 11D6A..11D89 ; XID_Start # Lo [32] GUNJALA GONDI LETTER OO..GUNJALA GONDI LETTER SA 11D98 ; XID_Start # Lo GUNJALA GONDI OM +11DB0..11DD8 ; XID_Start # Lo [41] TOLONG SIKI LETTER I..TOLONG SIKI LETTER RRH +11DD9 ; XID_Start # Lm TOLONG SIKI SIGN SELA +11DDA..11DDB ; XID_Start # Lo [2] TOLONG SIKI SIGN HECAKA..TOLONG SIKI UNGGA 11EE0..11EF2 ; XID_Start # Lo [19] MAKASAR LETTER KA..MAKASAR ANGKA 11F02 ; XID_Start # Lo KAWI SIGN REPHA 11F04..11F10 ; XID_Start # Lo [13] KAWI LETTER A..KAWI LETTER O @@ -9033,14 +9137,18 @@ FFDA..FFDC ; XID_Start # Lo [3] HALFWIDTH HANGUL LETTER EU..HALFWIDTH HANGU 16D43..16D6A ; XID_Start # Lo [40] KIRAT RAI LETTER A..KIRAT RAI VOWEL SIGN AU 16D6B..16D6C ; XID_Start # Lm [2] KIRAT RAI SIGN VIRAMA..KIRAT RAI SIGN SAAT 16E40..16E7F ; XID_Start # L& [64] MEDEFAIDRIN CAPITAL LETTER M..MEDEFAIDRIN SMALL LETTER Y +16EA0..16EB8 ; XID_Start # L& [25] BERIA ERFE CAPITAL LETTER ARKAB..BERIA ERFE CAPITAL LETTER AY +16EBB..16ED3 ; XID_Start # L& [25] BERIA ERFE SMALL LETTER ARKAB..BERIA ERFE SMALL LETTER AY 16F00..16F4A ; XID_Start # Lo [75] MIAO LETTER PA..MIAO LETTER RTE 16F50 ; XID_Start # Lo MIAO LETTER NASALIZATION 16F93..16F9F ; XID_Start # Lm [13] MIAO LETTER TONE-2..MIAO LETTER REFORMED TONE-8 16FE0..16FE1 ; XID_Start # Lm [2] TANGUT ITERATION MARK..NUSHU ITERATION MARK 16FE3 ; XID_Start # Lm OLD CHINESE ITERATION MARK -17000..187F7 ; XID_Start # Lo [6136] TANGUT IDEOGRAPH-17000..TANGUT IDEOGRAPH-187F7 -18800..18CD5 ; XID_Start # Lo [1238] TANGUT COMPONENT-001..KHITAN SMALL SCRIPT CHARACTER-18CD5 -18CFF..18D08 ; XID_Start # Lo [10] KHITAN SMALL SCRIPT CHARACTER-18CFF..TANGUT IDEOGRAPH-18D08 +16FF2..16FF3 ; XID_Start # Lm [2] CHINESE SMALL SIMPLIFIED ER..CHINESE SMALL TRADITIONAL ER +16FF4..16FF6 ; XID_Start # Nl [3] YANGQIN SIGN SLOW ONE BEAT..YANGQIN SIGN SLOW TWO BEATS +17000..18CD5 ; XID_Start # Lo [7382] TANGUT IDEOGRAPH-17000..KHITAN SMALL SCRIPT CHARACTER-18CD5 +18CFF..18D1E ; XID_Start # Lo [32] KHITAN SMALL SCRIPT CHARACTER-18CFF..TANGUT IDEOGRAPH-18D1E +18D80..18DF2 ; XID_Start # Lo [115] TANGUT COMPONENT-769..TANGUT COMPONENT-883 1AFF0..1AFF3 ; XID_Start # Lm [4] KATAKANA LETTER MINNAN TONE-2..KATAKANA LETTER MINNAN TONE-5 1AFF5..1AFFB ; XID_Start # Lm [7] KATAKANA LETTER MINNAN TONE-7..KATAKANA LETTER MINNAN NASALIZED TONE-5 1AFFD..1AFFE ; XID_Start # Lm [2] KATAKANA LETTER MINNAN NASALIZED TONE-7..KATAKANA LETTER MINNAN NASALIZED TONE-8 @@ -9098,6 +9206,13 @@ FFDA..FFDC ; XID_Start # Lo [3] HALFWIDTH HANGUL LETTER EU..HALFWIDTH HANGU 1E4EB ; XID_Start # Lm NAG MUNDARI SIGN OJOD 1E5D0..1E5ED ; XID_Start # Lo [30] OL ONAL LETTER O..OL ONAL LETTER EG 1E5F0 ; XID_Start # Lo OL ONAL SIGN HODDOND +1E6C0..1E6DE ; XID_Start # Lo [31] TAI YO LETTER LOW KO..TAI YO LETTER HIGH KVO +1E6E0..1E6E2 ; XID_Start # Lo [3] TAI YO LETTER AA..TAI YO LETTER UE +1E6E4..1E6E5 ; XID_Start # Lo [2] TAI YO LETTER U..TAI YO LETTER AE +1E6E7..1E6ED ; XID_Start # Lo [7] TAI YO LETTER O..TAI YO LETTER AUE +1E6F0..1E6F4 ; XID_Start # Lo [5] TAI YO LETTER AN..TAI YO LETTER AP +1E6FE ; XID_Start # Lo TAI YO SYMBOL MUEANG +1E6FF ; XID_Start # Lm TAI YO XAM LAI 1E7E0..1E7E6 ; XID_Start # Lo [7] ETHIOPIC SYLLABLE HHYA..ETHIOPIC SYLLABLE HHYO 1E7E8..1E7EB ; XID_Start # Lo [4] ETHIOPIC SYLLABLE GURAGE HHWA..ETHIOPIC SYLLABLE HHWE 1E7ED..1E7EE ; XID_Start # Lo [2] ETHIOPIC SYLLABLE GURAGE MWI..ETHIOPIC SYLLABLE GURAGE MWEE @@ -9139,16 +9254,15 @@ FFDA..FFDC ; XID_Start # Lo [3] HALFWIDTH HANGUL LETTER EU..HALFWIDTH HANGU 1EEA5..1EEA9 ; XID_Start # Lo [5] ARABIC MATHEMATICAL DOUBLE-STRUCK WAW..ARABIC MATHEMATICAL DOUBLE-STRUCK YEH 1EEAB..1EEBB ; XID_Start # Lo [17] ARABIC MATHEMATICAL DOUBLE-STRUCK LAM..ARABIC MATHEMATICAL DOUBLE-STRUCK GHAIN 20000..2A6DF ; XID_Start # Lo [42720] CJK UNIFIED IDEOGRAPH-20000..CJK UNIFIED IDEOGRAPH-2A6DF -2A700..2B739 ; XID_Start # Lo [4154] CJK UNIFIED IDEOGRAPH-2A700..CJK UNIFIED IDEOGRAPH-2B739 -2B740..2B81D ; XID_Start # Lo [222] CJK UNIFIED IDEOGRAPH-2B740..CJK UNIFIED IDEOGRAPH-2B81D -2B820..2CEA1 ; XID_Start # Lo [5762] CJK UNIFIED IDEOGRAPH-2B820..CJK UNIFIED IDEOGRAPH-2CEA1 +2A700..2B81D ; XID_Start # Lo [4382] CJK UNIFIED IDEOGRAPH-2A700..CJK UNIFIED IDEOGRAPH-2B81D +2B820..2CEAD ; XID_Start # Lo [5774] CJK UNIFIED IDEOGRAPH-2B820..CJK UNIFIED IDEOGRAPH-2CEAD 2CEB0..2EBE0 ; XID_Start # Lo [7473] CJK UNIFIED IDEOGRAPH-2CEB0..CJK UNIFIED IDEOGRAPH-2EBE0 2EBF0..2EE5D ; XID_Start # Lo [622] CJK UNIFIED IDEOGRAPH-2EBF0..CJK UNIFIED IDEOGRAPH-2EE5D 2F800..2FA1D ; XID_Start # Lo [542] CJK COMPATIBILITY IDEOGRAPH-2F800..CJK COMPATIBILITY IDEOGRAPH-2FA1D 30000..3134A ; XID_Start # Lo [4939] CJK UNIFIED IDEOGRAPH-30000..CJK UNIFIED IDEOGRAPH-3134A -31350..323AF ; XID_Start # Lo [4192] CJK UNIFIED IDEOGRAPH-31350..CJK UNIFIED IDEOGRAPH-323AF +31350..33479 ; XID_Start # Lo [8490] CJK UNIFIED IDEOGRAPH-31350..CJK UNIFIED IDEOGRAPH-33479 -# Total code points: 141246 +# Total code points: 145893 # ================================================ @@ -9174,8 +9288,8 @@ FFDA..FFDC ; XID_Start # Lo [3] HALFWIDTH HANGUL LETTER EU..HALFWIDTH HANGU 01BC..01BF ; XID_Continue # L& [4] LATIN CAPITAL LETTER TONE FIVE..LATIN LETTER WYNN 01C0..01C3 ; XID_Continue # Lo [4] LATIN LETTER DENTAL CLICK..LATIN LETTER RETROFLEX CLICK 01C4..0293 ; XID_Continue # L& [208] LATIN CAPITAL LETTER DZ WITH CARON..LATIN SMALL LETTER EZH WITH CURL -0294 ; XID_Continue # Lo LATIN LETTER GLOTTAL STOP -0295..02AF ; XID_Continue # L& [27] LATIN LETTER PHARYNGEAL VOICED FRICATIVE..LATIN SMALL LETTER TURNED H WITH FISHHOOK AND TAIL +0294..0295 ; XID_Continue # Lo [2] LATIN LETTER GLOTTAL STOP..LATIN LETTER PHARYNGEAL VOICED FRICATIVE +0296..02AF ; XID_Continue # L& [26] LATIN LETTER INVERTED GLOTTAL STOP..LATIN SMALL LETTER TURNED H WITH FISHHOOK AND TAIL 02B0..02C1 ; XID_Continue # Lm [18] MODIFIER LETTER SMALL H..MODIFIER LETTER REVERSED GLOTTAL STOP 02C6..02D1 ; XID_Continue # Lm [12] MODIFIER LETTER CIRCUMFLEX ACCENT..MODIFIER LETTER HALF TRIANGULAR COLON 02E0..02E4 ; XID_Continue # Lm [5] MODIFIER LETTER SMALL GAMMA..MODIFIER LETTER SMALL REVERSED GLOTTAL STOP @@ -9250,7 +9364,7 @@ FFDA..FFDC ; XID_Start # Lo [3] HALFWIDTH HANGUL LETTER EU..HALFWIDTH HANGU 0859..085B ; XID_Continue # Mn [3] MANDAIC AFFRICATION MARK..MANDAIC GEMINATION MARK 0860..086A ; XID_Continue # Lo [11] SYRIAC LETTER MALAYALAM NGA..SYRIAC LETTER MALAYALAM SSA 0870..0887 ; XID_Continue # Lo [24] ARABIC LETTER ALEF WITH ATTACHED FATHA..ARABIC BASELINE ROUND DOT -0889..088E ; XID_Continue # Lo [6] ARABIC LETTER NOON WITH INVERTED SMALL V..ARABIC VERTICAL TAIL +0889..088F ; XID_Continue # Lo [7] ARABIC LETTER NOON WITH INVERTED SMALL V..ARABIC LETTER NOON WITH RING ABOVE 0897..089F ; XID_Continue # Mn [9] ARABIC PEPET..ARABIC HALF MADDA OVER MADDA 08A0..08C8 ; XID_Continue # Lo [41] ARABIC LETTER BEH WITH SMALL V BELOW..ARABIC LETTER GRAF 08C9 ; XID_Continue # Lm ARABIC SMALL FARSI YEH @@ -9400,7 +9514,7 @@ FFDA..FFDC ; XID_Start # Lo [3] HALFWIDTH HANGUL LETTER EU..HALFWIDTH HANGU 0C4A..0C4D ; XID_Continue # Mn [4] TELUGU VOWEL SIGN O..TELUGU SIGN VIRAMA 0C55..0C56 ; XID_Continue # Mn [2] TELUGU LENGTH MARK..TELUGU AI LENGTH MARK 0C58..0C5A ; XID_Continue # Lo [3] TELUGU LETTER TSA..TELUGU LETTER RRRA -0C5D ; XID_Continue # Lo TELUGU LETTER NAKAARA POLLU +0C5C..0C5D ; XID_Continue # Lo [2] TELUGU ARCHAIC SHRII..TELUGU LETTER NAKAARA POLLU 0C60..0C61 ; XID_Continue # Lo [2] TELUGU LETTER VOCALIC RR..TELUGU LETTER VOCALIC LL 0C62..0C63 ; XID_Continue # Mn [2] TELUGU VOWEL SIGN VOCALIC L..TELUGU VOWEL SIGN VOCALIC LL 0C66..0C6F ; XID_Continue # Nd [10] TELUGU DIGIT ZERO..TELUGU DIGIT NINE @@ -9422,7 +9536,7 @@ FFDA..FFDC ; XID_Start # Lo [3] HALFWIDTH HANGUL LETTER EU..HALFWIDTH HANGU 0CCA..0CCB ; XID_Continue # Mc [2] KANNADA VOWEL SIGN O..KANNADA VOWEL SIGN OO 0CCC..0CCD ; XID_Continue # Mn [2] KANNADA VOWEL SIGN AU..KANNADA SIGN VIRAMA 0CD5..0CD6 ; XID_Continue # Mc [2] KANNADA LENGTH MARK..KANNADA AI LENGTH MARK -0CDD..0CDE ; XID_Continue # Lo [2] KANNADA LETTER NAKAARA POLLU..KANNADA LETTER FA +0CDC..0CDE ; XID_Continue # Lo [3] KANNADA ARCHAIC SHRII..KANNADA LETTER FA 0CE0..0CE1 ; XID_Continue # Lo [2] KANNADA LETTER VOCALIC RR..KANNADA LETTER VOCALIC LL 0CE2..0CE3 ; XID_Continue # Mn [2] KANNADA VOWEL SIGN VOCALIC L..KANNADA VOWEL SIGN VOCALIC LL 0CE6..0CEF ; XID_Continue # Nd [10] KANNADA DIGIT ZERO..KANNADA DIGIT NINE @@ -9639,7 +9753,8 @@ FFDA..FFDC ; XID_Start # Lo [3] HALFWIDTH HANGUL LETTER EU..HALFWIDTH HANGU 1A90..1A99 ; XID_Continue # Nd [10] TAI THAM THAM DIGIT ZERO..TAI THAM THAM DIGIT NINE 1AA7 ; XID_Continue # Lm TAI THAM SIGN MAI YAMOK 1AB0..1ABD ; XID_Continue # Mn [14] COMBINING DOUBLED CIRCUMFLEX ACCENT..COMBINING PARENTHESES BELOW -1ABF..1ACE ; XID_Continue # Mn [16] COMBINING LATIN SMALL LETTER W BELOW..COMBINING LATIN SMALL LETTER INSULAR T +1ABF..1ADD ; XID_Continue # Mn [31] COMBINING LATIN SMALL LETTER W BELOW..COMBINING DOT-AND-RING BELOW +1AE0..1AEB ; XID_Continue # Mn [12] COMBINING LEFT TACK ABOVE..COMBINING DOUBLE RIGHTWARDS ARROW ABOVE 1B00..1B03 ; XID_Continue # Mn [4] BALINESE SIGN ULU RICEM..BALINESE SIGN SURANG 1B04 ; XID_Continue # Mc BALINESE SIGN BISAH 1B05..1B33 ; XID_Continue # Lo [47] BALINESE LETTER AKARA..BALINESE LETTER HA @@ -9827,11 +9942,8 @@ A771..A787 ; XID_Continue # L& [23] LATIN SMALL LETTER DUM..LATIN SMALL LETT A788 ; XID_Continue # Lm MODIFIER LETTER LOW CIRCUMFLEX ACCENT A78B..A78E ; XID_Continue # L& [4] LATIN CAPITAL LETTER SALTILLO..LATIN SMALL LETTER L WITH RETROFLEX HOOK AND BELT A78F ; XID_Continue # Lo LATIN LETTER SINOLOGICAL DOT -A790..A7CD ; XID_Continue # L& [62] LATIN CAPITAL LETTER N WITH DESCENDER..LATIN SMALL LETTER S WITH DIAGONAL STROKE -A7D0..A7D1 ; XID_Continue # L& [2] LATIN CAPITAL LETTER CLOSED INSULAR G..LATIN SMALL LETTER CLOSED INSULAR G -A7D3 ; XID_Continue # L& LATIN SMALL LETTER DOUBLE THORN -A7D5..A7DC ; XID_Continue # L& [8] LATIN SMALL LETTER DOUBLE WYNN..LATIN CAPITAL LETTER LAMBDA WITH STROKE -A7F2..A7F4 ; XID_Continue # Lm [3] MODIFIER LETTER CAPITAL C..MODIFIER LETTER CAPITAL Q +A790..A7DC ; XID_Continue # L& [77] LATIN CAPITAL LETTER N WITH DESCENDER..LATIN CAPITAL LETTER LAMBDA WITH STROKE +A7F1..A7F4 ; XID_Continue # Lm [4] MODIFIER LETTER CAPITAL S..MODIFIER LETTER CAPITAL Q A7F5..A7F6 ; XID_Continue # L& [2] LATIN CAPITAL LETTER REVERSED HALF H..LATIN SMALL LETTER REVERSED HALF H A7F7 ; XID_Continue # Lo LATIN EPIGRAPHIC LETTER SIDEWAYS I A7F8..A7F9 ; XID_Continue # Lm [2] MODIFIER LETTER CAPITAL H WITH STROKE..MODIFIER LETTER SMALL LIGATURE OE @@ -10044,6 +10156,7 @@ FFDA..FFDC ; XID_Continue # Lo [3] HALFWIDTH HANGUL LETTER EU..HALFWIDTH HA 108F4..108F5 ; XID_Continue # Lo [2] HATRAN LETTER SHIN..HATRAN LETTER TAW 10900..10915 ; XID_Continue # Lo [22] PHOENICIAN LETTER ALF..PHOENICIAN LETTER TAU 10920..10939 ; XID_Continue # Lo [26] LYDIAN LETTER A..LYDIAN LETTER C +10940..10959 ; XID_Continue # Lo [26] SIDETIC LETTER N01..SIDETIC LETTER N26 10980..109B7 ; XID_Continue # Lo [56] MEROITIC HIEROGLYPHIC LETTER A..MEROITIC CURSIVE LETTER DA 109BE..109BF ; XID_Continue # Lo [2] MEROITIC CURSIVE LOGOGRAM RMT..MEROITIC CURSIVE LOGOGRAM IMN 10A00 ; XID_Continue # Lo KHAROSHTHI LETTER A @@ -10082,7 +10195,9 @@ FFDA..FFDC ; XID_Continue # Lo [3] HALFWIDTH HANGUL LETTER EU..HALFWIDTH HA 10EAB..10EAC ; XID_Continue # Mn [2] YEZIDI COMBINING HAMZA MARK..YEZIDI COMBINING MADDA MARK 10EB0..10EB1 ; XID_Continue # Lo [2] YEZIDI LETTER LAM WITH DOT ABOVE..YEZIDI LETTER YOT WITH CIRCUMFLEX ABOVE 10EC2..10EC4 ; XID_Continue # Lo [3] ARABIC LETTER DAL WITH TWO DOTS VERTICALLY BELOW..ARABIC LETTER KAF WITH TWO DOTS VERTICALLY BELOW -10EFC..10EFF ; XID_Continue # Mn [4] ARABIC COMBINING ALEF OVERLAY..ARABIC SMALL LOW WORD MADDA +10EC5 ; XID_Continue # Lm ARABIC SMALL YEH BARREE WITH TWO DOTS BELOW +10EC6..10EC7 ; XID_Continue # Lo [2] ARABIC LETTER THIN NOON..ARABIC LETTER YEH WITH FOUR DOTS BELOW +10EFA..10EFF ; XID_Continue # Mn [6] ARABIC DOUBLE VERTICAL BAR BELOW..ARABIC SMALL LOW WORD MADDA 10F00..10F1C ; XID_Continue # Lo [29] OLD SOGDIAN LETTER ALEPH..OLD SOGDIAN LETTER FINAL TAW WITH VERTICAL TAIL 10F27 ; XID_Continue # Lo OLD SOGDIAN LIGATURE AYIN-DALETH 10F30..10F45 ; XID_Continue # Lo [22] SOGDIAN LETTER ALEPH..SOGDIAN INDEPENDENT SHIN @@ -10309,6 +10424,12 @@ FFDA..FFDC ; XID_Continue # Lo [3] HALFWIDTH HANGUL LETTER EU..HALFWIDTH HA 11A98..11A99 ; XID_Continue # Mn [2] SOYOMBO GEMINATION MARK..SOYOMBO SUBJOINER 11A9D ; XID_Continue # Lo SOYOMBO MARK PLUTA 11AB0..11AF8 ; XID_Continue # Lo [73] CANADIAN SYLLABICS NATTILIK HI..PAU CIN HAU GLOTTAL STOP FINAL +11B60 ; XID_Continue # Mn SHARADA VOWEL SIGN OE +11B61 ; XID_Continue # Mc SHARADA VOWEL SIGN OOE +11B62..11B64 ; XID_Continue # Mn [3] SHARADA VOWEL SIGN UE..SHARADA VOWEL SIGN SHORT E +11B65 ; XID_Continue # Mc SHARADA VOWEL SIGN SHORT O +11B66 ; XID_Continue # Mn SHARADA VOWEL SIGN CANDRA E +11B67 ; XID_Continue # Mc SHARADA VOWEL SIGN CANDRA O 11BC0..11BE0 ; XID_Continue # Lo [33] SUNUWAR LETTER DEVI..SUNUWAR LETTER KLOKO 11BF0..11BF9 ; XID_Continue # Nd [10] SUNUWAR DIGIT ZERO..SUNUWAR DIGIT NINE 11C00..11C08 ; XID_Continue # Lo [9] BHAIKSUKI LETTER A..BHAIKSUKI LETTER VOCALIC L @@ -10349,6 +10470,10 @@ FFDA..FFDC ; XID_Continue # Lo [3] HALFWIDTH HANGUL LETTER EU..HALFWIDTH HA 11D97 ; XID_Continue # Mn GUNJALA GONDI VIRAMA 11D98 ; XID_Continue # Lo GUNJALA GONDI OM 11DA0..11DA9 ; XID_Continue # Nd [10] GUNJALA GONDI DIGIT ZERO..GUNJALA GONDI DIGIT NINE +11DB0..11DD8 ; XID_Continue # Lo [41] TOLONG SIKI LETTER I..TOLONG SIKI LETTER RRH +11DD9 ; XID_Continue # Lm TOLONG SIKI SIGN SELA +11DDA..11DDB ; XID_Continue # Lo [2] TOLONG SIKI SIGN HECAKA..TOLONG SIKI UNGGA +11DE0..11DE9 ; XID_Continue # Nd [10] TOLONG SIKI DIGIT ZERO..TOLONG SIKI DIGIT NINE 11EE0..11EF2 ; XID_Continue # Lo [19] MAKASAR LETTER KA..MAKASAR ANGKA 11EF3..11EF4 ; XID_Continue # Mn [2] MAKASAR VOWEL SIGN I..MAKASAR VOWEL SIGN U 11EF5..11EF6 ; XID_Continue # Mc [2] MAKASAR VOWEL SIGN E..MAKASAR VOWEL SIGN O @@ -10399,6 +10524,8 @@ FFDA..FFDC ; XID_Continue # Lo [3] HALFWIDTH HANGUL LETTER EU..HALFWIDTH HA 16D6B..16D6C ; XID_Continue # Lm [2] KIRAT RAI SIGN VIRAMA..KIRAT RAI SIGN SAAT 16D70..16D79 ; XID_Continue # Nd [10] KIRAT RAI DIGIT ZERO..KIRAT RAI DIGIT NINE 16E40..16E7F ; XID_Continue # L& [64] MEDEFAIDRIN CAPITAL LETTER M..MEDEFAIDRIN SMALL LETTER Y +16EA0..16EB8 ; XID_Continue # L& [25] BERIA ERFE CAPITAL LETTER ARKAB..BERIA ERFE CAPITAL LETTER AY +16EBB..16ED3 ; XID_Continue # L& [25] BERIA ERFE SMALL LETTER ARKAB..BERIA ERFE SMALL LETTER AY 16F00..16F4A ; XID_Continue # Lo [75] MIAO LETTER PA..MIAO LETTER RTE 16F4F ; XID_Continue # Mn MIAO SIGN CONSONANT MODIFIER BAR 16F50 ; XID_Continue # Lo MIAO LETTER NASALIZATION @@ -10409,9 +10536,11 @@ FFDA..FFDC ; XID_Continue # Lo [3] HALFWIDTH HANGUL LETTER EU..HALFWIDTH HA 16FE3 ; XID_Continue # Lm OLD CHINESE ITERATION MARK 16FE4 ; XID_Continue # Mn KHITAN SMALL SCRIPT FILLER 16FF0..16FF1 ; XID_Continue # Mc [2] VIETNAMESE ALTERNATE READING MARK CA..VIETNAMESE ALTERNATE READING MARK NHAY -17000..187F7 ; XID_Continue # Lo [6136] TANGUT IDEOGRAPH-17000..TANGUT IDEOGRAPH-187F7 -18800..18CD5 ; XID_Continue # Lo [1238] TANGUT COMPONENT-001..KHITAN SMALL SCRIPT CHARACTER-18CD5 -18CFF..18D08 ; XID_Continue # Lo [10] KHITAN SMALL SCRIPT CHARACTER-18CFF..TANGUT IDEOGRAPH-18D08 +16FF2..16FF3 ; XID_Continue # Lm [2] CHINESE SMALL SIMPLIFIED ER..CHINESE SMALL TRADITIONAL ER +16FF4..16FF6 ; XID_Continue # Nl [3] YANGQIN SIGN SLOW ONE BEAT..YANGQIN SIGN SLOW TWO BEATS +17000..18CD5 ; XID_Continue # Lo [7382] TANGUT IDEOGRAPH-17000..KHITAN SMALL SCRIPT CHARACTER-18CD5 +18CFF..18D1E ; XID_Continue # Lo [32] KHITAN SMALL SCRIPT CHARACTER-18CFF..TANGUT IDEOGRAPH-18D1E +18D80..18DF2 ; XID_Continue # Lo [115] TANGUT COMPONENT-769..TANGUT COMPONENT-883 1AFF0..1AFF3 ; XID_Continue # Lm [4] KATAKANA LETTER MINNAN TONE-2..KATAKANA LETTER MINNAN TONE-5 1AFF5..1AFFB ; XID_Continue # Lm [7] KATAKANA LETTER MINNAN TONE-7..KATAKANA LETTER MINNAN NASALIZED TONE-5 1AFFD..1AFFE ; XID_Continue # Lm [2] KATAKANA LETTER MINNAN NASALIZED TONE-7..KATAKANA LETTER MINNAN NASALIZED TONE-8 @@ -10502,6 +10631,17 @@ FFDA..FFDC ; XID_Continue # Lo [3] HALFWIDTH HANGUL LETTER EU..HALFWIDTH HA 1E5EE..1E5EF ; XID_Continue # Mn [2] OL ONAL SIGN MU..OL ONAL SIGN IKIR 1E5F0 ; XID_Continue # Lo OL ONAL SIGN HODDOND 1E5F1..1E5FA ; XID_Continue # Nd [10] OL ONAL DIGIT ZERO..OL ONAL DIGIT NINE +1E6C0..1E6DE ; XID_Continue # Lo [31] TAI YO LETTER LOW KO..TAI YO LETTER HIGH KVO +1E6E0..1E6E2 ; XID_Continue # Lo [3] TAI YO LETTER AA..TAI YO LETTER UE +1E6E3 ; XID_Continue # Mn TAI YO SIGN UE +1E6E4..1E6E5 ; XID_Continue # Lo [2] TAI YO LETTER U..TAI YO LETTER AE +1E6E6 ; XID_Continue # Mn TAI YO SIGN AU +1E6E7..1E6ED ; XID_Continue # Lo [7] TAI YO LETTER O..TAI YO LETTER AUE +1E6EE..1E6EF ; XID_Continue # Mn [2] TAI YO SIGN AY..TAI YO SIGN ANG +1E6F0..1E6F4 ; XID_Continue # Lo [5] TAI YO LETTER AN..TAI YO LETTER AP +1E6F5 ; XID_Continue # Mn TAI YO SIGN OM +1E6FE ; XID_Continue # Lo TAI YO SYMBOL MUEANG +1E6FF ; XID_Continue # Lm TAI YO XAM LAI 1E7E0..1E7E6 ; XID_Continue # Lo [7] ETHIOPIC SYLLABLE HHYA..ETHIOPIC SYLLABLE HHYO 1E7E8..1E7EB ; XID_Continue # Lo [4] ETHIOPIC SYLLABLE GURAGE HHWA..ETHIOPIC SYLLABLE HHWE 1E7ED..1E7EE ; XID_Continue # Lo [2] ETHIOPIC SYLLABLE GURAGE MWI..ETHIOPIC SYLLABLE GURAGE MWEE @@ -10547,17 +10687,16 @@ FFDA..FFDC ; XID_Continue # Lo [3] HALFWIDTH HANGUL LETTER EU..HALFWIDTH HA 1EEAB..1EEBB ; XID_Continue # Lo [17] ARABIC MATHEMATICAL DOUBLE-STRUCK LAM..ARABIC MATHEMATICAL DOUBLE-STRUCK GHAIN 1FBF0..1FBF9 ; XID_Continue # Nd [10] SEGMENTED DIGIT ZERO..SEGMENTED DIGIT NINE 20000..2A6DF ; XID_Continue # Lo [42720] CJK UNIFIED IDEOGRAPH-20000..CJK UNIFIED IDEOGRAPH-2A6DF -2A700..2B739 ; XID_Continue # Lo [4154] CJK UNIFIED IDEOGRAPH-2A700..CJK UNIFIED IDEOGRAPH-2B739 -2B740..2B81D ; XID_Continue # Lo [222] CJK UNIFIED IDEOGRAPH-2B740..CJK UNIFIED IDEOGRAPH-2B81D -2B820..2CEA1 ; XID_Continue # Lo [5762] CJK UNIFIED IDEOGRAPH-2B820..CJK UNIFIED IDEOGRAPH-2CEA1 +2A700..2B81D ; XID_Continue # Lo [4382] CJK UNIFIED IDEOGRAPH-2A700..CJK UNIFIED IDEOGRAPH-2B81D +2B820..2CEAD ; XID_Continue # Lo [5774] CJK UNIFIED IDEOGRAPH-2B820..CJK UNIFIED IDEOGRAPH-2CEAD 2CEB0..2EBE0 ; XID_Continue # Lo [7473] CJK UNIFIED IDEOGRAPH-2CEB0..CJK UNIFIED IDEOGRAPH-2EBE0 2EBF0..2EE5D ; XID_Continue # Lo [622] CJK UNIFIED IDEOGRAPH-2EBF0..CJK UNIFIED IDEOGRAPH-2EE5D 2F800..2FA1D ; XID_Continue # Lo [542] CJK COMPATIBILITY IDEOGRAPH-2F800..CJK COMPATIBILITY IDEOGRAPH-2FA1D 30000..3134A ; XID_Continue # Lo [4939] CJK UNIFIED IDEOGRAPH-30000..CJK UNIFIED IDEOGRAPH-3134A -31350..323AF ; XID_Continue # Lo [4192] CJK UNIFIED IDEOGRAPH-31350..CJK UNIFIED IDEOGRAPH-323AF +31350..33479 ; XID_Continue # Lo [8490] CJK UNIFIED IDEOGRAPH-31350..CJK UNIFIED IDEOGRAPH-33479 E0100..E01EF ; XID_Continue # Mn [240] VARIATION SELECTOR-17..VARIATION SELECTOR-256 -# Total code points: 144522 +# Total code points: 149221 # ================================================ @@ -10778,7 +10917,8 @@ E01F0..E0FFF ; Default_Ignorable_Code_Point # Cn [3600] .... 085F ; Cn # 086B..086F ; Cn # [5] .. -088F ; Cn # 0892..0896 ; Cn # [5] .. 0984 ; Cn # 098D..098E ; Cn # [2] .. @@ -120,7 +119,7 @@ 0C49 ; Cn # 0C4E..0C54 ; Cn # [7] .. 0C57 ; Cn # -0C5B..0C5C ; Cn # [2] .. +0C5B ; Cn # 0C5E..0C5F ; Cn # [2] .. 0C64..0C65 ; Cn # [2] .. 0C70..0C76 ; Cn # [7] .. @@ -132,7 +131,7 @@ 0CC5 ; Cn # 0CC9 ; Cn # 0CCE..0CD4 ; Cn # [7] .. -0CD7..0CDC ; Cn # [6] .. +0CD7..0CDB ; Cn # [5] .. 0CDF ; Cn # 0CE4..0CE5 ; Cn # [2] .. 0CF0 ; Cn # @@ -228,7 +227,8 @@ 1A8A..1A8F ; Cn # [6] .. 1A9A..1A9F ; Cn # [6] .. 1AAE..1AAF ; Cn # [2] .. -1ACF..1AFF ; Cn # [49] .. +1ADE..1ADF ; Cn # [2] .. +1AEC..1AFF ; Cn # [20] .. 1B4D ; Cn # 1BF4..1BFB ; Cn # [8] .. 1C38..1C3A ; Cn # [3] .. @@ -257,13 +257,12 @@ 2072..2073 ; Cn # [2] .. 208F ; Cn # 209D..209F ; Cn # [3] .. -20C1..20CF ; Cn # [15] .. +20C2..20CF ; Cn # [14] .. 20F1..20FF ; Cn # [15] .. 218C..218F ; Cn # [4] .. 242A..243F ; Cn # [22] .. 244B..245F ; Cn # [21] .. 2B74..2B75 ; Cn # [2] .. -2B96 ; Cn # 2CF4..2CF8 ; Cn # [5] .. 2D26 ; Cn # 2D28..2D2C ; Cn # [5] .. @@ -294,10 +293,7 @@ A48D..A48F ; Cn # [3] .. A4C7..A4CF ; Cn # [9] .. A62C..A63F ; Cn # [20] .. A6F8..A6FF ; Cn # [8] .. -A7CE..A7CF ; Cn # [2] .. -A7D2 ; Cn # -A7D4 ; Cn # -A7DD..A7F1 ; Cn # [21] .. +A7DD..A7F0 ; Cn # [20] .. A82D..A82F ; Cn # [3] .. A83A..A83F ; Cn # [6] .. A878..A87F ; Cn # [8] .. @@ -333,9 +329,6 @@ FB3D ; Cn # FB3F ; Cn # FB42 ; Cn # FB45 ; Cn # -FBC3..FBD2 ; Cn # [16] .. -FD90..FD91 ; Cn # [2] .. -FDC8..FDCE ; Cn # [7] .. FDD0..FDEF ; Cn # [32] .. FE1A..FE1F ; Cn # [6] .. FE53 ; Cn # @@ -407,7 +400,7 @@ FFFE..FFFF ; Cn # [2] .. 108F6..108FA ; Cn # [5] .. 1091C..1091E ; Cn # [3] .. 1093A..1093E ; Cn # [5] .. -10940..1097F ; Cn # [64] .. +1095A..1097F ; Cn # [38] .. 109B8..109BB ; Cn # [4] .. 109D0..109D1 ; Cn # [2] .. 10A04 ; Cn # @@ -439,7 +432,8 @@ FFFE..FFFF ; Cn # [2] .. 10EAA ; Cn # 10EAE..10EAF ; Cn # [2] .. 10EB2..10EC1 ; Cn # [16] .. -10EC5..10EFB ; Cn # [55] .. +10EC8..10ECF ; Cn # [8] .. +10ED9..10EF9 ; Cn # [33] .. 10F28..10F2F ; Cn # [8] .. 10F5A..10F6F ; Cn # [22] .. 10F8A..10FAF ; Cn # [38] .. @@ -522,7 +516,8 @@ FFFE..FFFF ; Cn # [2] .. 11A48..11A4F ; Cn # [8] .. 11AA3..11AAF ; Cn # [13] .. 11AF9..11AFF ; Cn # [7] .. -11B0A..11BBF ; Cn # [182] .. +11B0A..11B5F ; Cn # [86] .. +11B68..11BBF ; Cn # [88] .. 11BE2..11BEF ; Cn # [14] .. 11BFA..11BFF ; Cn # [6] .. 11C09 ; Cn # @@ -544,7 +539,9 @@ FFFE..FFFF ; Cn # [2] .. 11D8F ; Cn # 11D92 ; Cn # 11D99..11D9F ; Cn # [7] .. -11DAA..11EDF ; Cn # [310] .. +11DAA..11DAF ; Cn # [6] .. +11DDC..11DDF ; Cn # [4] .. +11DEA..11EDF ; Cn # [246] .. 11EF9..11EFF ; Cn # [7] .. 11F11 ; Cn # 11F3B..11F3D ; Cn # [3] .. @@ -573,15 +570,17 @@ FFFE..FFFF ; Cn # [2] .. 16B78..16B7C ; Cn # [5] .. 16B90..16D3F ; Cn # [432] .. 16D7A..16E3F ; Cn # [198] .. -16E9B..16EFF ; Cn # [101] .. +16E9B..16E9F ; Cn # [5] .. +16EB9..16EBA ; Cn # [2] .. +16ED4..16EFF ; Cn # [44] .. 16F4B..16F4E ; Cn # [4] .. 16F88..16F8E ; Cn # [7] .. 16FA0..16FDF ; Cn # [64] .. 16FE5..16FEF ; Cn # [11] .. -16FF2..16FFF ; Cn # [14] .. -187F8..187FF ; Cn # [8] .. +16FF7..16FFF ; Cn # [9] .. 18CD6..18CFE ; Cn # [41] .. -18D09..1AFEF ; Cn # [8935] .. +18D1F..18D7F ; Cn # [97] .. +18DF3..1AFEF ; Cn # [8701] .. 1AFF4 ; Cn # 1AFFC ; Cn # 1AFFF ; Cn # @@ -596,8 +595,10 @@ FFFE..FFFF ; Cn # [2] .. 1BC89..1BC8F ; Cn # [7] .. 1BC9A..1BC9B ; Cn # [2] .. 1BCA4..1CBFF ; Cn # [3932] .. -1CCFA..1CCFF ; Cn # [6] .. -1CEB4..1CEFF ; Cn # [76] .. +1CCFD..1CCFF ; Cn # [3] .. +1CEB4..1CEB9 ; Cn # [6] .. +1CED1..1CEDF ; Cn # [15] .. +1CEF1..1CEFF ; Cn # [15] .. 1CF2E..1CF2F ; Cn # [2] .. 1CF47..1CF4F ; Cn # [9] .. 1CFC4..1CFFF ; Cn # [60] .. @@ -650,7 +651,10 @@ FFFE..FFFF ; Cn # [2] .. 1E300..1E4CF ; Cn # [464] .. 1E4FA..1E5CF ; Cn # [214] .. 1E5FB..1E5FE ; Cn # [4] .. -1E600..1E7DF ; Cn # [480] .. +1E600..1E6BF ; Cn # [192] .. +1E6DF ; Cn # +1E6F6..1E6FD ; Cn # [8] .. +1E700..1E7DF ; Cn # [224] .. 1E7E7 ; Cn # 1E7EC ; Cn # 1E7EF ; Cn # @@ -708,10 +712,9 @@ FFFE..FFFF ; Cn # [2] .. 1F249..1F24F ; Cn # [7] .. 1F252..1F25F ; Cn # [14] .. 1F266..1F2FF ; Cn # [154] .. -1F6D8..1F6DB ; Cn # [4] .. +1F6D9..1F6DB ; Cn # [3] .. 1F6ED..1F6EF ; Cn # [3] .. 1F6FD..1F6FF ; Cn # [3] .. -1F777..1F77A ; Cn # [4] .. 1F7DA..1F7DF ; Cn # [6] .. 1F7EC..1F7EF ; Cn # [4] .. 1F7F1..1F7FF ; Cn # [15] .. @@ -721,33 +724,34 @@ FFFE..FFFF ; Cn # [2] .. 1F888..1F88F ; Cn # [8] .. 1F8AE..1F8AF ; Cn # [2] .. 1F8BC..1F8BF ; Cn # [4] .. -1F8C2..1F8FF ; Cn # [62] .. -1FA54..1FA5F ; Cn # [12] .. +1F8C2..1F8CF ; Cn # [14] .. +1F8D9..1F8FF ; Cn # [39] .. +1FA58..1FA5F ; Cn # [8] .. 1FA6E..1FA6F ; Cn # [2] .. 1FA7D..1FA7F ; Cn # [3] .. -1FA8A..1FA8E ; Cn # [5] .. -1FAC7..1FACD ; Cn # [7] .. +1FA8B..1FA8D ; Cn # [3] .. +1FAC7 ; Cn # +1FAC9..1FACC ; Cn # [4] .. 1FADD..1FADE ; Cn # [2] .. -1FAEA..1FAEF ; Cn # [6] .. +1FAEB..1FAEE ; Cn # [4] .. 1FAF9..1FAFF ; Cn # [7] .. 1FB93 ; Cn # -1FBFA..1FFFF ; Cn # [1030] .. +1FBFB..1FFFF ; Cn # [1029] .. 2A6E0..2A6FF ; Cn # [32] .. -2B73A..2B73F ; Cn # [6] .. 2B81E..2B81F ; Cn # [2] .. -2CEA2..2CEAF ; Cn # [14] .. +2CEAE..2CEAF ; Cn # [2] .. 2EBE1..2EBEF ; Cn # [15] .. 2EE5E..2F7FF ; Cn # [2466] .. 2FA1E..2FFFF ; Cn # [1506] .. 3134B..3134F ; Cn # [5] .. -323B0..E0000 ; Cn # [711761] .. +3347A..E0000 ; Cn # [707463] .. E0002..E001F ; Cn # [30] .. E0080..E00FF ; Cn # [128] .. E01F0..EFFFF ; Cn # [65040] .. FFFFE..FFFFF ; Cn # [2] .. 10FFFE..10FFFF; Cn # [2] .. -# Total code points: 819533 +# Total code points: 814730 # ================================================ @@ -1355,7 +1359,10 @@ A7C2 ; Lu # LATIN CAPITAL LETTER ANGLICANA W A7C4..A7C7 ; Lu # [4] LATIN CAPITAL LETTER C WITH PALATAL HOOK..LATIN CAPITAL LETTER D WITH SHORT STROKE OVERLAY A7C9 ; Lu # LATIN CAPITAL LETTER S WITH SHORT STROKE OVERLAY A7CB..A7CC ; Lu # [2] LATIN CAPITAL LETTER RAMS HORN..LATIN CAPITAL LETTER S WITH DIAGONAL STROKE +A7CE ; Lu # LATIN CAPITAL LETTER PHARYNGEAL VOICED FRICATIVE A7D0 ; Lu # LATIN CAPITAL LETTER CLOSED INSULAR G +A7D2 ; Lu # LATIN CAPITAL LETTER DOUBLE THORN +A7D4 ; Lu # LATIN CAPITAL LETTER DOUBLE WYNN A7D6 ; Lu # LATIN CAPITAL LETTER MIDDLE SCOTS S A7D8 ; Lu # LATIN CAPITAL LETTER SIGMOID S A7DA ; Lu # LATIN CAPITAL LETTER LAMBDA @@ -1372,6 +1379,7 @@ FF21..FF3A ; Lu # [26] FULLWIDTH LATIN CAPITAL LETTER A..FULLWIDTH LATIN CAP 10D50..10D65 ; Lu # [22] GARAY CAPITAL LETTER A..GARAY CAPITAL LETTER OLD NA 118A0..118BF ; Lu # [32] WARANG CITI CAPITAL LETTER NGAA..WARANG CITI CAPITAL LETTER VIYO 16E40..16E5F ; Lu # [32] MEDEFAIDRIN CAPITAL LETTER M..MEDEFAIDRIN CAPITAL LETTER Y +16EA0..16EB8 ; Lu # [25] BERIA ERFE CAPITAL LETTER ARKAB..BERIA ERFE CAPITAL LETTER AY 1D400..1D419 ; Lu # [26] MATHEMATICAL BOLD CAPITAL A..MATHEMATICAL BOLD CAPITAL Z 1D434..1D44D ; Lu # [26] MATHEMATICAL ITALIC CAPITAL A..MATHEMATICAL ITALIC CAPITAL Z 1D468..1D481 ; Lu # [26] MATHEMATICAL BOLD ITALIC CAPITAL A..MATHEMATICAL BOLD ITALIC CAPITAL Z @@ -1405,7 +1413,7 @@ FF21..FF3A ; Lu # [26] FULLWIDTH LATIN CAPITAL LETTER A..FULLWIDTH LATIN CAP 1D7CA ; Lu # MATHEMATICAL BOLD CAPITAL DIGAMMA 1E900..1E921 ; Lu # [34] ADLAM CAPITAL LETTER ALIF..ADLAM CAPITAL LETTER SHA -# Total code points: 1858 +# Total code points: 1886 # ================================================ @@ -1556,7 +1564,7 @@ FF21..FF3A ; Lu # [26] FULLWIDTH LATIN CAPITAL LETTER A..FULLWIDTH LATIN CAP 024B ; Ll # LATIN SMALL LETTER Q WITH HOOK TAIL 024D ; Ll # LATIN SMALL LETTER R WITH STROKE 024F..0293 ; Ll # [69] LATIN SMALL LETTER Y WITH STROKE..LATIN SMALL LETTER EZH WITH CURL -0295..02AF ; Ll # [27] LATIN LETTER PHARYNGEAL VOICED FRICATIVE..LATIN SMALL LETTER TURNED H WITH FISHHOOK AND TAIL +0296..02AF ; Ll # [26] LATIN LETTER INVERTED GLOTTAL STOP..LATIN SMALL LETTER TURNED H WITH FISHHOOK AND TAIL 0371 ; Ll # GREEK SMALL LETTER HETA 0373 ; Ll # GREEK SMALL LETTER ARCHAIC SAMPI 0377 ; Ll # GREEK SMALL LETTER PAMPHYLIAN DIGAMMA @@ -2017,6 +2025,7 @@ A7C3 ; Ll # LATIN SMALL LETTER ANGLICANA W A7C8 ; Ll # LATIN SMALL LETTER D WITH SHORT STROKE OVERLAY A7CA ; Ll # LATIN SMALL LETTER S WITH SHORT STROKE OVERLAY A7CD ; Ll # LATIN SMALL LETTER S WITH DIAGONAL STROKE +A7CF ; Ll # LATIN SMALL LETTER PHARYNGEAL VOICED FRICATIVE A7D1 ; Ll # LATIN SMALL LETTER CLOSED INSULAR G A7D3 ; Ll # LATIN SMALL LETTER DOUBLE THORN A7D5 ; Ll # LATIN SMALL LETTER DOUBLE WYNN @@ -2041,6 +2050,7 @@ FF41..FF5A ; Ll # [26] FULLWIDTH LATIN SMALL LETTER A..FULLWIDTH LATIN SMALL 10D70..10D85 ; Ll # [22] GARAY SMALL LETTER A..GARAY SMALL LETTER OLD NA 118C0..118DF ; Ll # [32] WARANG CITI SMALL LETTER NGAA..WARANG CITI SMALL LETTER VIYO 16E60..16E7F ; Ll # [32] MEDEFAIDRIN SMALL LETTER M..MEDEFAIDRIN SMALL LETTER Y +16EBB..16ED3 ; Ll # [25] BERIA ERFE SMALL LETTER ARKAB..BERIA ERFE SMALL LETTER AY 1D41A..1D433 ; Ll # [26] MATHEMATICAL BOLD SMALL A..MATHEMATICAL BOLD SMALL Z 1D44E..1D454 ; Ll # [7] MATHEMATICAL ITALIC SMALL A..MATHEMATICAL ITALIC SMALL G 1D456..1D467 ; Ll # [18] MATHEMATICAL ITALIC SMALL I..MATHEMATICAL ITALIC SMALL Z @@ -2074,7 +2084,7 @@ FF41..FF5A ; Ll # [26] FULLWIDTH LATIN SMALL LETTER A..FULLWIDTH LATIN SMALL 1DF25..1DF2A ; Ll # [6] LATIN SMALL LETTER D WITH MID-HEIGHT LEFT HOOK..LATIN SMALL LETTER T WITH MID-HEIGHT LEFT HOOK 1E922..1E943 ; Ll # [34] ADLAM SMALL LETTER ALIF..ADLAM SMALL LETTER SHA -# Total code points: 2258 +# Total code points: 2283 # ================================================ @@ -2143,7 +2153,7 @@ A69C..A69D ; Lm # [2] MODIFIER LETTER CYRILLIC HARD SIGN..MODIFIER LETTER C A717..A71F ; Lm # [9] MODIFIER LETTER DOT VERTICAL BAR..MODIFIER LETTER LOW INVERTED EXCLAMATION MARK A770 ; Lm # MODIFIER LETTER US A788 ; Lm # MODIFIER LETTER LOW CIRCUMFLEX ACCENT -A7F2..A7F4 ; Lm # [3] MODIFIER LETTER CAPITAL C..MODIFIER LETTER CAPITAL Q +A7F1..A7F4 ; Lm # [4] MODIFIER LETTER CAPITAL S..MODIFIER LETTER CAPITAL Q A7F8..A7F9 ; Lm # [2] MODIFIER LETTER CAPITAL H WITH STROKE..MODIFIER LETTER SMALL LIGATURE OE A9CF ; Lm # JAVANESE PANGRANGKEP A9E6 ; Lm # MYANMAR MODIFIER LETTER SHAN REDUPLICATION @@ -2159,21 +2169,25 @@ FF9E..FF9F ; Lm # [2] HALFWIDTH KATAKANA VOICED SOUND MARK..HALFWIDTH KATAK 107B2..107BA ; Lm # [9] MODIFIER LETTER SMALL CAPITAL Y..MODIFIER LETTER SMALL S WITH CURL 10D4E ; Lm # GARAY VOWEL LENGTH MARK 10D6F ; Lm # GARAY REDUPLICATION MARK +10EC5 ; Lm # ARABIC SMALL YEH BARREE WITH TWO DOTS BELOW +11DD9 ; Lm # TOLONG SIKI SIGN SELA 16B40..16B43 ; Lm # [4] PAHAWH HMONG SIGN VOS SEEV..PAHAWH HMONG SIGN IB YAM 16D40..16D42 ; Lm # [3] KIRAT RAI SIGN ANUSVARA..KIRAT RAI SIGN VISARGA 16D6B..16D6C ; Lm # [2] KIRAT RAI SIGN VIRAMA..KIRAT RAI SIGN SAAT 16F93..16F9F ; Lm # [13] MIAO LETTER TONE-2..MIAO LETTER REFORMED TONE-8 16FE0..16FE1 ; Lm # [2] TANGUT ITERATION MARK..NUSHU ITERATION MARK 16FE3 ; Lm # OLD CHINESE ITERATION MARK +16FF2..16FF3 ; Lm # [2] CHINESE SMALL SIMPLIFIED ER..CHINESE SMALL TRADITIONAL ER 1AFF0..1AFF3 ; Lm # [4] KATAKANA LETTER MINNAN TONE-2..KATAKANA LETTER MINNAN TONE-5 1AFF5..1AFFB ; Lm # [7] KATAKANA LETTER MINNAN TONE-7..KATAKANA LETTER MINNAN NASALIZED TONE-5 1AFFD..1AFFE ; Lm # [2] KATAKANA LETTER MINNAN NASALIZED TONE-7..KATAKANA LETTER MINNAN NASALIZED TONE-8 1E030..1E06D ; Lm # [62] MODIFIER LETTER CYRILLIC SMALL A..MODIFIER LETTER CYRILLIC SMALL STRAIGHT U WITH STROKE 1E137..1E13D ; Lm # [7] NYIAKENG PUACHUE HMONG SIGN FOR PERSON..NYIAKENG PUACHUE HMONG SYLLABLE LENGTHENER 1E4EB ; Lm # NAG MUNDARI SIGN OJOD +1E6FF ; Lm # TAI YO XAM LAI 1E94B ; Lm # ADLAM NASALIZATION MARK -# Total code points: 404 +# Total code points: 410 # ================================================ @@ -2183,7 +2197,7 @@ FF9E..FF9F ; Lm # [2] HALFWIDTH KATAKANA VOICED SOUND MARK..HALFWIDTH KATAK 00BA ; Lo # MASCULINE ORDINAL INDICATOR 01BB ; Lo # LATIN LETTER TWO WITH STROKE 01C0..01C3 ; Lo # [4] LATIN LETTER DENTAL CLICK..LATIN LETTER RETROFLEX CLICK -0294 ; Lo # LATIN LETTER GLOTTAL STOP +0294..0295 ; Lo # [2] LATIN LETTER GLOTTAL STOP..LATIN LETTER PHARYNGEAL VOICED FRICATIVE 05D0..05EA ; Lo # [27] HEBREW LETTER ALEF..HEBREW LETTER TAV 05EF..05F2 ; Lo # [4] HEBREW YOD TRIANGLE..HEBREW LIGATURE YIDDISH DOUBLE YOD 0620..063F ; Lo # [32] ARABIC LETTER KASHMIRI YEH..ARABIC LETTER FARSI YEH WITH THREE DOTS ABOVE @@ -2203,7 +2217,7 @@ FF9E..FF9F ; Lm # [2] HALFWIDTH KATAKANA VOICED SOUND MARK..HALFWIDTH KATAK 0840..0858 ; Lo # [25] MANDAIC LETTER HALQA..MANDAIC LETTER AIN 0860..086A ; Lo # [11] SYRIAC LETTER MALAYALAM NGA..SYRIAC LETTER MALAYALAM SSA 0870..0887 ; Lo # [24] ARABIC LETTER ALEF WITH ATTACHED FATHA..ARABIC BASELINE ROUND DOT -0889..088E ; Lo # [6] ARABIC LETTER NOON WITH INVERTED SMALL V..ARABIC VERTICAL TAIL +0889..088F ; Lo # [7] ARABIC LETTER NOON WITH INVERTED SMALL V..ARABIC LETTER NOON WITH RING ABOVE 08A0..08C8 ; Lo # [41] ARABIC LETTER BEH WITH SMALL V BELOW..ARABIC LETTER GRAF 0904..0939 ; Lo # [54] DEVANAGARI LETTER SHORT A..DEVANAGARI LETTER HA 093D ; Lo # DEVANAGARI SIGN AVAGRAHA @@ -2269,7 +2283,7 @@ FF9E..FF9F ; Lm # [2] HALFWIDTH KATAKANA VOICED SOUND MARK..HALFWIDTH KATAK 0C2A..0C39 ; Lo # [16] TELUGU LETTER PA..TELUGU LETTER HA 0C3D ; Lo # TELUGU SIGN AVAGRAHA 0C58..0C5A ; Lo # [3] TELUGU LETTER TSA..TELUGU LETTER RRRA -0C5D ; Lo # TELUGU LETTER NAKAARA POLLU +0C5C..0C5D ; Lo # [2] TELUGU ARCHAIC SHRII..TELUGU LETTER NAKAARA POLLU 0C60..0C61 ; Lo # [2] TELUGU LETTER VOCALIC RR..TELUGU LETTER VOCALIC LL 0C80 ; Lo # KANNADA SIGN SPACING CANDRABINDU 0C85..0C8C ; Lo # [8] KANNADA LETTER A..KANNADA LETTER VOCALIC L @@ -2278,7 +2292,7 @@ FF9E..FF9F ; Lm # [2] HALFWIDTH KATAKANA VOICED SOUND MARK..HALFWIDTH KATAK 0CAA..0CB3 ; Lo # [10] KANNADA LETTER PA..KANNADA LETTER LLA 0CB5..0CB9 ; Lo # [5] KANNADA LETTER VA..KANNADA LETTER HA 0CBD ; Lo # KANNADA SIGN AVAGRAHA -0CDD..0CDE ; Lo # [2] KANNADA LETTER NAKAARA POLLU..KANNADA LETTER FA +0CDC..0CDE ; Lo # [3] KANNADA ARCHAIC SHRII..KANNADA LETTER FA 0CE0..0CE1 ; Lo # [2] KANNADA LETTER VOCALIC RR..KANNADA LETTER VOCALIC LL 0CF1..0CF2 ; Lo # [2] KANNADA SIGN JIHVAMULIYA..KANNADA SIGN UPADHMANIYA 0D04..0D0C ; Lo # [9] MALAYALAM LETTER VEDIC ANUSVARA..MALAYALAM LETTER VOCALIC L @@ -2504,6 +2518,7 @@ FFDA..FFDC ; Lo # [3] HALFWIDTH HANGUL LETTER EU..HALFWIDTH HANGUL LETTER I 108F4..108F5 ; Lo # [2] HATRAN LETTER SHIN..HATRAN LETTER TAW 10900..10915 ; Lo # [22] PHOENICIAN LETTER ALF..PHOENICIAN LETTER TAU 10920..10939 ; Lo # [26] LYDIAN LETTER A..LYDIAN LETTER C +10940..10959 ; Lo # [26] SIDETIC LETTER N01..SIDETIC LETTER N26 10980..109B7 ; Lo # [56] MEROITIC HIEROGLYPHIC LETTER A..MEROITIC CURSIVE LETTER DA 109BE..109BF ; Lo # [2] MEROITIC CURSIVE LOGOGRAM RMT..MEROITIC CURSIVE LOGOGRAM IMN 10A00 ; Lo # KHAROSHTHI LETTER A @@ -2525,6 +2540,7 @@ FFDA..FFDC ; Lo # [3] HALFWIDTH HANGUL LETTER EU..HALFWIDTH HANGUL LETTER I 10E80..10EA9 ; Lo # [42] YEZIDI LETTER ELIF..YEZIDI LETTER ET 10EB0..10EB1 ; Lo # [2] YEZIDI LETTER LAM WITH DOT ABOVE..YEZIDI LETTER YOT WITH CIRCUMFLEX ABOVE 10EC2..10EC4 ; Lo # [3] ARABIC LETTER DAL WITH TWO DOTS VERTICALLY BELOW..ARABIC LETTER KAF WITH TWO DOTS VERTICALLY BELOW +10EC6..10EC7 ; Lo # [2] ARABIC LETTER THIN NOON..ARABIC LETTER YEH WITH FOUR DOTS BELOW 10F00..10F1C ; Lo # [29] OLD SOGDIAN LETTER ALEPH..OLD SOGDIAN LETTER FINAL TAW WITH VERTICAL TAIL 10F27 ; Lo # OLD SOGDIAN LIGATURE AYIN-DALETH 10F30..10F45 ; Lo # [22] SOGDIAN LETTER ALEPH..SOGDIAN INDEPENDENT SHIN @@ -2616,6 +2632,8 @@ FFDA..FFDC ; Lo # [3] HALFWIDTH HANGUL LETTER EU..HALFWIDTH HANGUL LETTER I 11D67..11D68 ; Lo # [2] GUNJALA GONDI LETTER EE..GUNJALA GONDI LETTER AI 11D6A..11D89 ; Lo # [32] GUNJALA GONDI LETTER OO..GUNJALA GONDI LETTER SA 11D98 ; Lo # GUNJALA GONDI OM +11DB0..11DD8 ; Lo # [41] TOLONG SIKI LETTER I..TOLONG SIKI LETTER RRH +11DDA..11DDB ; Lo # [2] TOLONG SIKI SIGN HECAKA..TOLONG SIKI UNGGA 11EE0..11EF2 ; Lo # [19] MAKASAR LETTER KA..MAKASAR ANGKA 11F02 ; Lo # KAWI SIGN REPHA 11F04..11F10 ; Lo # [13] KAWI LETTER A..KAWI LETTER O @@ -2639,9 +2657,9 @@ FFDA..FFDC ; Lo # [3] HALFWIDTH HANGUL LETTER EU..HALFWIDTH HANGUL LETTER I 16D43..16D6A ; Lo # [40] KIRAT RAI LETTER A..KIRAT RAI VOWEL SIGN AU 16F00..16F4A ; Lo # [75] MIAO LETTER PA..MIAO LETTER RTE 16F50 ; Lo # MIAO LETTER NASALIZATION -17000..187F7 ; Lo # [6136] TANGUT IDEOGRAPH-17000..TANGUT IDEOGRAPH-187F7 -18800..18CD5 ; Lo # [1238] TANGUT COMPONENT-001..KHITAN SMALL SCRIPT CHARACTER-18CD5 -18CFF..18D08 ; Lo # [10] KHITAN SMALL SCRIPT CHARACTER-18CFF..TANGUT IDEOGRAPH-18D08 +17000..18CD5 ; Lo # [7382] TANGUT IDEOGRAPH-17000..KHITAN SMALL SCRIPT CHARACTER-18CD5 +18CFF..18D1E ; Lo # [32] KHITAN SMALL SCRIPT CHARACTER-18CFF..TANGUT IDEOGRAPH-18D1E +18D80..18DF2 ; Lo # [115] TANGUT COMPONENT-769..TANGUT COMPONENT-883 1B000..1B122 ; Lo # [291] KATAKANA LETTER ARCHAIC E..KATAKANA LETTER ARCHAIC WU 1B132 ; Lo # HIRAGANA LETTER SMALL KO 1B150..1B152 ; Lo # [3] HIRAGANA LETTER SMALL WI..HIRAGANA LETTER SMALL WO @@ -2660,6 +2678,12 @@ FFDA..FFDC ; Lo # [3] HALFWIDTH HANGUL LETTER EU..HALFWIDTH HANGUL LETTER I 1E4D0..1E4EA ; Lo # [27] NAG MUNDARI LETTER O..NAG MUNDARI LETTER ELL 1E5D0..1E5ED ; Lo # [30] OL ONAL LETTER O..OL ONAL LETTER EG 1E5F0 ; Lo # OL ONAL SIGN HODDOND +1E6C0..1E6DE ; Lo # [31] TAI YO LETTER LOW KO..TAI YO LETTER HIGH KVO +1E6E0..1E6E2 ; Lo # [3] TAI YO LETTER AA..TAI YO LETTER UE +1E6E4..1E6E5 ; Lo # [2] TAI YO LETTER U..TAI YO LETTER AE +1E6E7..1E6ED ; Lo # [7] TAI YO LETTER O..TAI YO LETTER AUE +1E6F0..1E6F4 ; Lo # [5] TAI YO LETTER AN..TAI YO LETTER AP +1E6FE ; Lo # TAI YO SYMBOL MUEANG 1E7E0..1E7E6 ; Lo # [7] ETHIOPIC SYLLABLE HHYA..ETHIOPIC SYLLABLE HHYO 1E7E8..1E7EB ; Lo # [4] ETHIOPIC SYLLABLE GURAGE HHWA..ETHIOPIC SYLLABLE HHWE 1E7ED..1E7EE ; Lo # [2] ETHIOPIC SYLLABLE GURAGE MWI..ETHIOPIC SYLLABLE GURAGE MWEE @@ -2699,16 +2723,15 @@ FFDA..FFDC ; Lo # [3] HALFWIDTH HANGUL LETTER EU..HALFWIDTH HANGUL LETTER I 1EEA5..1EEA9 ; Lo # [5] ARABIC MATHEMATICAL DOUBLE-STRUCK WAW..ARABIC MATHEMATICAL DOUBLE-STRUCK YEH 1EEAB..1EEBB ; Lo # [17] ARABIC MATHEMATICAL DOUBLE-STRUCK LAM..ARABIC MATHEMATICAL DOUBLE-STRUCK GHAIN 20000..2A6DF ; Lo # [42720] CJK UNIFIED IDEOGRAPH-20000..CJK UNIFIED IDEOGRAPH-2A6DF -2A700..2B739 ; Lo # [4154] CJK UNIFIED IDEOGRAPH-2A700..CJK UNIFIED IDEOGRAPH-2B739 -2B740..2B81D ; Lo # [222] CJK UNIFIED IDEOGRAPH-2B740..CJK UNIFIED IDEOGRAPH-2B81D -2B820..2CEA1 ; Lo # [5762] CJK UNIFIED IDEOGRAPH-2B820..CJK UNIFIED IDEOGRAPH-2CEA1 +2A700..2B81D ; Lo # [4382] CJK UNIFIED IDEOGRAPH-2A700..CJK UNIFIED IDEOGRAPH-2B81D +2B820..2CEAD ; Lo # [5774] CJK UNIFIED IDEOGRAPH-2B820..CJK UNIFIED IDEOGRAPH-2CEAD 2CEB0..2EBE0 ; Lo # [7473] CJK UNIFIED IDEOGRAPH-2CEB0..CJK UNIFIED IDEOGRAPH-2EBE0 2EBF0..2EE5D ; Lo # [622] CJK UNIFIED IDEOGRAPH-2EBF0..CJK UNIFIED IDEOGRAPH-2EE5D 2F800..2FA1D ; Lo # [542] CJK COMPATIBILITY IDEOGRAPH-2F800..CJK COMPATIBILITY IDEOGRAPH-2FA1D 30000..3134A ; Lo # [4939] CJK UNIFIED IDEOGRAPH-30000..CJK UNIFIED IDEOGRAPH-3134A -31350..323AF ; Lo # [4192] CJK UNIFIED IDEOGRAPH-31350..CJK UNIFIED IDEOGRAPH-323AF +31350..33479 ; Lo # [8490] CJK UNIFIED IDEOGRAPH-31350..CJK UNIFIED IDEOGRAPH-33479 -# Total code points: 136477 +# Total code points: 141062 # ================================================ @@ -2856,7 +2879,8 @@ FFDA..FFDC ; Lo # [3] HALFWIDTH HANGUL LETTER EU..HALFWIDTH HANGUL LETTER I 1A73..1A7C ; Mn # [10] TAI THAM VOWEL SIGN OA ABOVE..TAI THAM SIGN KHUEN-LUE KARAN 1A7F ; Mn # TAI THAM COMBINING CRYPTOGRAMMIC DOT 1AB0..1ABD ; Mn # [14] COMBINING DOUBLED CIRCUMFLEX ACCENT..COMBINING PARENTHESES BELOW -1ABF..1ACE ; Mn # [16] COMBINING LATIN SMALL LETTER W BELOW..COMBINING LATIN SMALL LETTER INSULAR T +1ABF..1ADD ; Mn # [31] COMBINING LATIN SMALL LETTER W BELOW..COMBINING DOT-AND-RING BELOW +1AE0..1AEB ; Mn # [12] COMBINING LEFT TACK ABOVE..COMBINING DOUBLE RIGHTWARDS ARROW ABOVE 1B00..1B03 ; Mn # [4] BALINESE SIGN ULU RICEM..BALINESE SIGN SURANG 1B34 ; Mn # BALINESE SIGN REREKAN 1B36..1B3A ; Mn # [5] BALINESE VOWEL SIGN ULU..BALINESE VOWEL SIGN RA REPA @@ -2938,7 +2962,7 @@ FE20..FE2F ; Mn # [16] COMBINING LIGATURE LEFT HALF..COMBINING CYRILLIC TITL 10D24..10D27 ; Mn # [4] HANIFI ROHINGYA SIGN HARBAHAY..HANIFI ROHINGYA SIGN TASSI 10D69..10D6D ; Mn # [5] GARAY VOWEL SIGN E..GARAY CONSONANT NASALIZATION MARK 10EAB..10EAC ; Mn # [2] YEZIDI COMBINING HAMZA MARK..YEZIDI COMBINING MADDA MARK -10EFC..10EFF ; Mn # [4] ARABIC COMBINING ALEF OVERLAY..ARABIC SMALL LOW WORD MADDA +10EFA..10EFF ; Mn # [6] ARABIC DOUBLE VERTICAL BAR BELOW..ARABIC SMALL LOW WORD MADDA 10F46..10F50 ; Mn # [11] SOGDIAN COMBINING DOT BELOW..SOGDIAN COMBINING STROKE BELOW 10F82..10F85 ; Mn # [4] OLD UYGHUR COMBINING DOT ABOVE..OLD UYGHUR COMBINING TWO DOTS BELOW 11001 ; Mn # BRAHMI SIGN ANUSVARA @@ -3013,6 +3037,9 @@ FE20..FE2F ; Mn # [16] COMBINING LIGATURE LEFT HALF..COMBINING CYRILLIC TITL 11A59..11A5B ; Mn # [3] SOYOMBO VOWEL SIGN VOCALIC R..SOYOMBO VOWEL LENGTH MARK 11A8A..11A96 ; Mn # [13] SOYOMBO FINAL CONSONANT SIGN G..SOYOMBO SIGN ANUSVARA 11A98..11A99 ; Mn # [2] SOYOMBO GEMINATION MARK..SOYOMBO SUBJOINER +11B60 ; Mn # SHARADA VOWEL SIGN OE +11B62..11B64 ; Mn # [3] SHARADA VOWEL SIGN UE..SHARADA VOWEL SIGN SHORT E +11B66 ; Mn # SHARADA VOWEL SIGN CANDRA E 11C30..11C36 ; Mn # [7] BHAIKSUKI VOWEL SIGN I..BHAIKSUKI VOWEL SIGN VOCALIC L 11C38..11C3D ; Mn # [6] BHAIKSUKI VOWEL SIGN E..BHAIKSUKI SIGN ANUSVARA 11C3F ; Mn # BHAIKSUKI SIGN VIRAMA @@ -3068,11 +3095,15 @@ FE20..FE2F ; Mn # [16] COMBINING LIGATURE LEFT HALF..COMBINING CYRILLIC TITL 1E2EC..1E2EF ; Mn # [4] WANCHO TONE TUP..WANCHO TONE KOINI 1E4EC..1E4EF ; Mn # [4] NAG MUNDARI SIGN MUHOR..NAG MUNDARI SIGN SUTUH 1E5EE..1E5EF ; Mn # [2] OL ONAL SIGN MU..OL ONAL SIGN IKIR +1E6E3 ; Mn # TAI YO SIGN UE +1E6E6 ; Mn # TAI YO SIGN AU +1E6EE..1E6EF ; Mn # [2] TAI YO SIGN AY..TAI YO SIGN ANG +1E6F5 ; Mn # TAI YO SIGN OM 1E8D0..1E8D6 ; Mn # [7] MENDE KIKAKUI COMBINING NUMBER TEENS..MENDE KIKAKUI COMBINING NUMBER MILLIONS 1E944..1E94A ; Mn # [7] ADLAM ALIF LENGTHENER..ADLAM NUKTA E0100..E01EF ; Mn # [240] VARIATION SELECTOR-17..VARIATION SELECTOR-256 -# Total code points: 2020 +# Total code points: 2059 # ================================================ @@ -3262,6 +3293,9 @@ ABEC ; Mc # MEETEI MAYEK LUM IYEK 11A39 ; Mc # ZANABAZAR SQUARE SIGN VISARGA 11A57..11A58 ; Mc # [2] SOYOMBO VOWEL SIGN AI..SOYOMBO VOWEL SIGN AU 11A97 ; Mc # SOYOMBO SIGN VISARGA +11B61 ; Mc # SHARADA VOWEL SIGN OOE +11B65 ; Mc # SHARADA VOWEL SIGN SHORT O +11B67 ; Mc # SHARADA VOWEL SIGN CANDRA O 11C2F ; Mc # BHAIKSUKI VOWEL SIGN AA 11C3E ; Mc # BHAIKSUKI SIGN VISARGA 11CA9 ; Mc # MARCHEN SUBJOINED LETTER YA @@ -3281,7 +3315,7 @@ ABEC ; Mc # MEETEI MAYEK LUM IYEK 1D165..1D166 ; Mc # [2] MUSICAL SYMBOL COMBINING STEM..MUSICAL SYMBOL COMBINING SPRECHGESANG STEM 1D16D..1D172 ; Mc # [6] MUSICAL SYMBOL COMBINING AUGMENTATION DOT..MUSICAL SYMBOL COMBINING FLAG-5 -# Total code points: 468 +# Total code points: 471 # ================================================ @@ -3344,6 +3378,7 @@ FF10..FF19 ; Nd # [10] FULLWIDTH DIGIT ZERO..FULLWIDTH DIGIT NINE 11C50..11C59 ; Nd # [10] BHAIKSUKI DIGIT ZERO..BHAIKSUKI DIGIT NINE 11D50..11D59 ; Nd # [10] MASARAM GONDI DIGIT ZERO..MASARAM GONDI DIGIT NINE 11DA0..11DA9 ; Nd # [10] GUNJALA GONDI DIGIT ZERO..GUNJALA GONDI DIGIT NINE +11DE0..11DE9 ; Nd # [10] TOLONG SIKI DIGIT ZERO..TOLONG SIKI DIGIT NINE 11F50..11F59 ; Nd # [10] KAWI DIGIT ZERO..KAWI DIGIT NINE 16130..16139 ; Nd # [10] GURUNG KHEMA DIGIT ZERO..GURUNG KHEMA DIGIT NINE 16A60..16A69 ; Nd # [10] MRO DIGIT ZERO..MRO DIGIT NINE @@ -3359,7 +3394,7 @@ FF10..FF19 ; Nd # [10] FULLWIDTH DIGIT ZERO..FULLWIDTH DIGIT NINE 1E950..1E959 ; Nd # [10] ADLAM DIGIT ZERO..ADLAM DIGIT NINE 1FBF0..1FBF9 ; Nd # [10] SEGMENTED DIGIT ZERO..SEGMENTED DIGIT NINE -# Total code points: 760 +# Total code points: 770 # ================================================ @@ -3377,8 +3412,9 @@ A6E6..A6EF ; Nl # [10] BAMUM LETTER MO..BAMUM LETTER KOGHOM 1034A ; Nl # GOTHIC LETTER NINE HUNDRED 103D1..103D5 ; Nl # [5] OLD PERSIAN NUMBER ONE..OLD PERSIAN NUMBER HUNDRED 12400..1246E ; Nl # [111] CUNEIFORM NUMERIC SIGN TWO ASH..CUNEIFORM NUMERIC SIGN NINE U VARIANT FORM +16FF4..16FF6 ; Nl # [3] YANGQIN SIGN SLOW ONE BEAT..YANGQIN SIGN SLOW TWO BEATS -# Total code points: 236 +# Total code points: 239 # ================================================ @@ -3900,6 +3936,7 @@ FF64..FF65 ; Po # [2] HALFWIDTH IDEOGRAPHIC COMMA..HALFWIDTH KATAKANA MIDDL 10AF0..10AF6 ; Po # [7] MANICHAEAN PUNCTUATION STAR..MANICHAEAN PUNCTUATION LINE FILLER 10B39..10B3F ; Po # [7] AVESTAN ABBREVIATION MARK..LARGE ONE RING OVER TWO RINGS PUNCTUATION 10B99..10B9C ; Po # [4] PSALTER PAHLAVI SECTION MARK..PSALTER PAHLAVI FOUR DOTS WITH DOT +10ED0 ; Po # ARABIC BIBLICAL END OF VERSE 10F55..10F59 ; Po # [5] SOGDIAN PUNCTUATION TWO VERTICAL BARS..SOGDIAN PUNCTUATION HALF CIRCLE WITH DOT 10F86..10F89 ; Po # [4] OLD UYGHUR PUNCTUATION BAR..OLD UYGHUR PUNCTUATION FOUR DOTS 11047..1104D ; Po # [7] BRAHMI DANDA..BRAHMI PUNCTUATION LOTUS @@ -3951,7 +3988,7 @@ FF64..FF65 ; Po # [2] HALFWIDTH IDEOGRAPHIC COMMA..HALFWIDTH KATAKANA MIDDL 1E5FF ; Po # OL ONAL ABBREVIATION SIGN 1E95E..1E95F ; Po # [2] ADLAM INITIAL EXCLAMATION MARK..ADLAM INITIAL QUESTION MARK -# Total code points: 640 +# Total code points: 641 # ================================================ @@ -4011,6 +4048,7 @@ FF5E ; Sm # FULLWIDTH TILDE FFE2 ; Sm # FULLWIDTH NOT SIGN FFE9..FFEC ; Sm # [4] HALFWIDTH LEFTWARDS ARROW..HALFWIDTH DOWNWARDS ARROW 10D8E..10D8F ; Sm # [2] GARAY PLUS SIGN..GARAY MINUS SIGN +1CEF0 ; Sm # MEDIUM SMALL WHITE CIRCLE WITH HORIZONTAL BAR 1D6C1 ; Sm # MATHEMATICAL BOLD NABLA 1D6DB ; Sm # MATHEMATICAL BOLD PARTIAL DIFFERENTIAL 1D6FB ; Sm # MATHEMATICAL ITALIC NABLA @@ -4022,8 +4060,9 @@ FFE9..FFEC ; Sm # [4] HALFWIDTH LEFTWARDS ARROW..HALFWIDTH DOWNWARDS ARROW 1D7A9 ; Sm # MATHEMATICAL SANS-SERIF BOLD ITALIC NABLA 1D7C3 ; Sm # MATHEMATICAL SANS-SERIF BOLD ITALIC PARTIAL DIFFERENTIAL 1EEF0..1EEF1 ; Sm # [2] ARABIC MATHEMATICAL OPERATOR MEEM WITH HAH WITH TATWEEL..ARABIC MATHEMATICAL OPERATOR HAH WITH DAL +1F8D0..1F8D8 ; Sm # [9] LONG RIGHTWARDS ARROW OVER LONG LEFTWARDS ARROW..LONG LEFT RIGHT ARROW WITH DEPENDENT LOBE -# Total code points: 950 +# Total code points: 960 # ================================================ @@ -4040,7 +4079,7 @@ FFE9..FFEC ; Sm # [4] HALFWIDTH LEFTWARDS ARROW..HALFWIDTH DOWNWARDS ARROW 0BF9 ; Sc # TAMIL RUPEE SIGN 0E3F ; Sc # THAI CURRENCY SYMBOL BAHT 17DB ; Sc # KHMER CURRENCY SYMBOL RIEL -20A0..20C0 ; Sc # [33] EURO-CURRENCY SIGN..SOM SIGN +20A0..20C1 ; Sc # [34] EURO-CURRENCY SIGN..SAUDI RIYAL SIGN A838 ; Sc # NORTH INDIC RUPEE MARK FDFC ; Sc # RIAL SIGN FE69 ; Sc # SMALL DOLLAR SIGN @@ -4051,7 +4090,7 @@ FFE5..FFE6 ; Sc # [2] FULLWIDTH YEN SIGN..FULLWIDTH WON SIGN 1E2FF ; Sc # WANCHO NGUN SIGN 1ECB0 ; Sc # INDIC SIYAQ RUPEE MARK -# Total code points: 63 +# Total code points: 64 # ================================================ @@ -4174,8 +4213,7 @@ FFE3 ; Sk # FULLWIDTH MACRON 2B00..2B2F ; So # [48] NORTH EAST WHITE ARROW..WHITE VERTICAL ELLIPSE 2B45..2B46 ; So # [2] LEFTWARDS QUADRUPLE ARROW..RIGHTWARDS QUADRUPLE ARROW 2B4D..2B73 ; So # [39] DOWNWARDS TRIANGLE-HEADED ZIGZAG ARROW..DOWNWARDS TRIANGLE-HEADED ARROW TO BAR -2B76..2B95 ; So # [32] NORTH WEST TRIANGLE-HEADED ARROW TO BAR..RIGHTWARDS BLACK ARROW -2B97..2BFF ; So # [105] SYMBOL FOR TYPE A ELECTRONICS..HELLSCHREIBER PAUSE SYMBOL +2B76..2BFF ; So # [138] NORTH WEST TRIANGLE-HEADED ARROW TO BAR..HELLSCHREIBER PAUSE SYMBOL 2CE5..2CEA ; So # [6] COPTIC SYMBOL MI RO..COPTIC SYMBOL SHIMA SIMA 2E50..2E51 ; So # [2] CROSS PATTY WITH RIGHT CROSSBAR..CROSS PATTY WITH LEFT CROSSBAR 2E80..2E99 ; So # [26] CJK RADICAL REPEAT..CJK RADICAL RAP @@ -4203,8 +4241,10 @@ A828..A82B ; So # [4] SYLOTI NAGRI POETRY MARK-1..SYLOTI NAGRI POETRY MARK- A836..A837 ; So # [2] NORTH INDIC QUARTER MARK..NORTH INDIC PLACEHOLDER MARK A839 ; So # NORTH INDIC QUANTITY MARK AA77..AA79 ; So # [3] MYANMAR SYMBOL AITON EXCLAMATION..MYANMAR SYMBOL AITON TWO +FBC3..FBD2 ; So # [16] ARABIC LIGATURE JALLA WA-ALAA..ARABIC LIGATURE ALAYHI AR-RAHMAH FD40..FD4F ; So # [16] ARABIC LIGATURE RAHIMAHU ALLAAH..ARABIC LIGATURE RAHIMAHUM ALLAAH -FDCF ; So # ARABIC LIGATURE SALAAMUHU ALAYNAA +FD90..FD91 ; So # [2] ARABIC LIGATURE RAHMATU ALLAAHI ALAYH..ARABIC LIGATURE RAHMATU ALLAAHI ALAYHAA +FDC8..FDCF ; So # [8] ARABIC LIGATURE RAHIMAHU ALLAAH TAAALAA..ARABIC LIGATURE SALAAMUHU ALAYNAA FDFD..FDFF ; So # [3] ARABIC LIGATURE BISMILLAH AR-RAHMAN AR-RAHEEM..ARABIC LIGATURE AZZA WA JALL FFE4 ; So # FULLWIDTH BROKEN BAR FFE8 ; So # HALFWIDTH FORMS LIGHT VERTICAL @@ -4218,6 +4258,7 @@ FFFC..FFFD ; So # [2] OBJECT REPLACEMENT CHARACTER..REPLACEMENT CHARACTER 101D0..101FC ; So # [45] PHAISTOS DISC SIGN PEDESTRIAN..PHAISTOS DISC SIGN WAVY BAND 10877..10878 ; So # [2] PALMYRENE LEFT-POINTING FLEURON..PALMYRENE RIGHT-POINTING FLEURON 10AC8 ; So # MANICHAEAN SIGN UD +10ED1..10ED8 ; So # [8] ARABIC LIGATURE ALAYHAA AS-SALAATU WAS-SALAAM..ARABIC LIGATURE NAWWARA ALLAAHU MARQADAH 1173F ; So # AHOM SYMBOL VI 11FD5..11FDC ; So # [8] TAMIL SIGN NEL..TAMIL SIGN MUKKURUNI 11FE1..11FF1 ; So # [17] TAMIL SIGN PAARAM..TAMIL SIGN VAKAIYARAA @@ -4225,7 +4266,10 @@ FFFC..FFFD ; So # [2] OBJECT REPLACEMENT CHARACTER..REPLACEMENT CHARACTER 16B45 ; So # PAHAWH HMONG SIGN CIM TSOV ROG 1BC9C ; So # DUPLOYAN SIGN O WITH CROSS 1CC00..1CCEF ; So # [240] UP-POINTING GO-KART..OUTLINED LATIN CAPITAL LETTER Z +1CCFA..1CCFC ; So # [3] SNAKE SYMBOL..NOSE SYMBOL 1CD00..1CEB3 ; So # [436] BLOCK OCTANT-3..BLACK RIGHT TRIANGLE CARET +1CEBA..1CED0 ; So # [23] FRAGILE SYMBOL..LEUKOTHEA +1CEE0..1CEEF ; So # [16] GEOMANTIC FIGURE POPULUS..GEOMANTIC FIGURE VIA 1CF50..1CFC3 ; So # [116] ZNAMENNY NEUME KRYUK..ZNAMENNY NEUME PAUK 1D000..1D0F5 ; So # [246] BYZANTINE MUSICAL SYMBOL PSILI..BYZANTINE MUSICAL SYMBOL GORGON NEO KATO 1D100..1D126 ; So # [39] MUSICAL SYMBOL SINGLE BARLINE..MUSICAL SYMBOL DRUM CLEF-2 @@ -4258,11 +4302,10 @@ FFFC..FFFD ; So # [2] OBJECT REPLACEMENT CHARACTER..REPLACEMENT CHARACTER 1F250..1F251 ; So # [2] CIRCLED IDEOGRAPH ADVANTAGE..CIRCLED IDEOGRAPH ACCEPT 1F260..1F265 ; So # [6] ROUNDED SYMBOL FOR FU..ROUNDED SYMBOL FOR CAI 1F300..1F3FA ; So # [251] CYCLONE..AMPHORA -1F400..1F6D7 ; So # [728] RAT..ELEVATOR +1F400..1F6D8 ; So # [729] RAT..LANDSLIDE 1F6DC..1F6EC ; So # [17] WIRELESS..AIRPLANE ARRIVING 1F6F0..1F6FC ; So # [13] SATELLITE..ROLLER SKATE -1F700..1F776 ; So # [119] ALCHEMICAL SYMBOL FOR QUINTESSENCE..LUNAR ECLIPSE -1F77B..1F7D9 ; So # [95] HAUMEA..NINE POINTED WHITE STAR +1F700..1F7D9 ; So # [218] ALCHEMICAL SYMBOL FOR QUINTESSENCE..NINE POINTED WHITE STAR 1F7E0..1F7EB ; So # [12] LARGE ORANGE CIRCLE..LARGE BROWN SQUARE 1F7F0 ; So # HEAVY EQUALS SIGN 1F800..1F80B ; So # [12] LEFTWARDS ARROW WITH SMALL TRIANGLE ARROWHEAD..DOWNWARDS ARROW WITH LARGE TRIANGLE ARROWHEAD @@ -4272,18 +4315,20 @@ FFFC..FFFD ; So # [2] OBJECT REPLACEMENT CHARACTER..REPLACEMENT CHARACTER 1F890..1F8AD ; So # [30] LEFTWARDS TRIANGLE ARROWHEAD..WHITE ARROW SHAFT WIDTH TWO THIRDS 1F8B0..1F8BB ; So # [12] ARROW POINTING UPWARDS THEN NORTH WEST..SOUTH WEST ARROW FROM BAR 1F8C0..1F8C1 ; So # [2] LEFTWARDS ARROW FROM DOWNWARDS ARROW..RIGHTWARDS ARROW FROM DOWNWARDS ARROW -1F900..1FA53 ; So # [340] CIRCLED CROSS FORMEE WITH FOUR DOTS..BLACK CHESS KNIGHT-BISHOP +1F900..1FA57 ; So # [344] CIRCLED CROSS FORMEE WITH FOUR DOTS..BLACK CHESS ALFIL 1FA60..1FA6D ; So # [14] XIANGQI RED GENERAL..XIANGQI BLACK SOLDIER 1FA70..1FA7C ; So # [13] BALLET SHOES..CRUTCH -1FA80..1FA89 ; So # [10] YO-YO..HARP -1FA8F..1FAC6 ; So # [56] SHOVEL..FINGERPRINT -1FACE..1FADC ; So # [15] MOOSE..ROOT VEGETABLE -1FADF..1FAE9 ; So # [11] SPLATTER..FACE WITH BAGS UNDER EYES -1FAF0..1FAF8 ; So # [9] HAND WITH INDEX FINGER AND THUMB CROSSED..RIGHTWARDS PUSHING HAND +1FA80..1FA8A ; So # [11] YO-YO..TROMBONE +1FA8E..1FAC6 ; So # [57] TREASURE CHEST..FINGERPRINT +1FAC8 ; So # HAIRY CREATURE +1FACD..1FADC ; So # [16] ORCA..ROOT VEGETABLE +1FADF..1FAEA ; So # [12] SPLATTER..DISTORTED FACE +1FAEF..1FAF8 ; So # [10] FIGHT CLOUD..RIGHTWARDS PUSHING HAND 1FB00..1FB92 ; So # [147] BLOCK SEXTANT-1..UPPER HALF INVERSE MEDIUM SHADE AND LOWER HALF BLOCK 1FB94..1FBEF ; So # [92] LEFT HALF INVERSE MEDIUM SHADE AND RIGHT HALF BLOCK..TOP LEFT JUSTIFIED LOWER RIGHT QUARTER BLACK CIRCLE +1FBFA ; So # ALARM BELL SYMBOL -# Total code points: 7376 +# Total code points: 7468 # ================================================ diff --git a/contrib/unicode/DerivedNormalizationProps.txt b/contrib/unicode/DerivedNormalizationProps.txt index ce636abb537a..448ba69d6399 100644 --- a/contrib/unicode/DerivedNormalizationProps.txt +++ b/contrib/unicode/DerivedNormalizationProps.txt @@ -1,6 +1,6 @@ -# DerivedNormalizationProps-16.0.0.txt -# Date: 2024-04-30, 21:48:18 GMT -# © 2024 Unicode®, Inc. +# DerivedNormalizationProps-17.0.0.txt +# Date: 2025-01-27, 18:09:14 GMT +# © 2025 Unicode®, Inc. # Unicode and the Unicode Logo are registered trademarks of Unicode, Inc. in the U.S. and other countries. # For terms of use and license, see https://www.unicode.org/terms_of_use.html # @@ -132,6 +132,7 @@ 33DD ; FC_NFKC; 0077 0062 # So SQUARE WB 33DE ; FC_NFKC; 0076 2215 006D # So SQUARE V OVER M 33DF ; FC_NFKC; 0061 2215 006D # So SQUARE A OVER M +A7F1 ; FC_NFKC; 0073 # Lm MODIFIER LETTER CAPITAL S A7F2 ; FC_NFKC; 0063 # Lm MODIFIER LETTER CAPITAL C A7F3 ; FC_NFKC; 0066 # Lm MODIFIER LETTER CAPITAL F A7F4 ; FC_NFKC; 0071 # Lm MODIFIER LETTER CAPITAL Q @@ -679,7 +680,7 @@ A7F8 ; FC_NFKC; 0127 # Lm MODIFIER LETTER CAPITAL H WITH STROKE 1F16C ; FC_NFKC; 006D 0072 # So RAISED MR SIGN 1F190 ; FC_NFKC; 0064 006A # So SQUARE DJ -# Total code points: 663 +# Total code points: 664 # ================================================ @@ -1515,7 +1516,7 @@ FB46..FB4E ; NFC_QC; N # Lo [9] HEBREW LETTER TSADI WITH DAGESH..HEBREW LET 32C0..33FF ; NFKD_QC; N # So [320] IDEOGRAPHIC TELEGRAPH SYMBOL FOR JANUARY..SQUARE GAL A69C..A69D ; NFKD_QC; N # Lm [2] MODIFIER LETTER CYRILLIC HARD SIGN..MODIFIER LETTER CYRILLIC SOFT SIGN A770 ; NFKD_QC; N # Lm MODIFIER LETTER US -A7F2..A7F4 ; NFKD_QC; N # Lm [3] MODIFIER LETTER CAPITAL C..MODIFIER LETTER CAPITAL Q +A7F1..A7F4 ; NFKD_QC; N # Lm [4] MODIFIER LETTER CAPITAL S..MODIFIER LETTER CAPITAL Q A7F8..A7F9 ; NFKD_QC; N # Lm [2] MODIFIER LETTER CAPITAL H WITH STROKE..MODIFIER LETTER SMALL LIGATURE OE AB5C..AB5F ; NFKD_QC; N # Lm [4] MODIFIER LETTER SMALL HENG..MODIFIER LETTER SMALL U WITH LEFT HOOK AB69 ; NFKD_QC; N # Lm MODIFIER LETTER SMALL TURNED W @@ -1753,7 +1754,7 @@ FFED..FFEE ; NFKD_QC; N # So [2] HALFWIDTH BLACK SQUARE..HALFWIDTH WHITE CI 1FBF0..1FBF9 ; NFKD_QC; N # Nd [10] SEGMENTED DIGIT ZERO..SEGMENTED DIGIT NINE 2F800..2FA1D ; NFKD_QC; N # Lo [542] CJK COMPATIBILITY IDEOGRAPH-2F800..CJK COMPATIBILITY IDEOGRAPH-2FA1D -# Total code points: 17085 +# Total code points: 17086 # ================================================ @@ -1946,7 +1947,7 @@ FFED..FFEE ; NFKD_QC; N # So [2] HALFWIDTH BLACK SQUARE..HALFWIDTH WHITE CI 32C0..33FF ; NFKC_QC; N # So [320] IDEOGRAPHIC TELEGRAPH SYMBOL FOR JANUARY..SQUARE GAL A69C..A69D ; NFKC_QC; N # Lm [2] MODIFIER LETTER CYRILLIC HARD SIGN..MODIFIER LETTER CYRILLIC SOFT SIGN A770 ; NFKC_QC; N # Lm MODIFIER LETTER US -A7F2..A7F4 ; NFKC_QC; N # Lm [3] MODIFIER LETTER CAPITAL C..MODIFIER LETTER CAPITAL Q +A7F1..A7F4 ; NFKC_QC; N # Lm [4] MODIFIER LETTER CAPITAL S..MODIFIER LETTER CAPITAL Q A7F8..A7F9 ; NFKC_QC; N # Lm [2] MODIFIER LETTER CAPITAL H WITH STROKE..MODIFIER LETTER SMALL LIGATURE OE AB5C..AB5F ; NFKC_QC; N # Lm [4] MODIFIER LETTER SMALL HENG..MODIFIER LETTER SMALL U WITH LEFT HOOK AB69 ; NFKC_QC; N # Lm MODIFIER LETTER SMALL TURNED W @@ -2164,7 +2165,7 @@ FFED..FFEE ; NFKC_QC; N # So [2] HALFWIDTH BLACK SQUARE..HALFWIDTH WHITE CI 1FBF0..1FBF9 ; NFKC_QC; N # Nd [10] SEGMENTED DIGIT ZERO..SEGMENTED DIGIT NINE 2F800..2FA1D ; NFKC_QC; N # Lo [542] CJK COMPATIBILITY IDEOGRAPH-2F800..CJK COMPATIBILITY IDEOGRAPH-2FA1D -# Total code points: 4964 +# Total code points: 4965 # ================================================ @@ -5448,11 +5449,15 @@ A7C7 ; NFKC_CF; A7C8 # L& LATIN CAPITAL LETTER D WITH S A7C9 ; NFKC_CF; A7CA # L& LATIN CAPITAL LETTER S WITH SHORT STROKE OVERLAY A7CB ; NFKC_CF; 0264 # L& LATIN CAPITAL LETTER RAMS HORN A7CC ; NFKC_CF; A7CD # L& LATIN CAPITAL LETTER S WITH DIAGONAL STROKE +A7CE ; NFKC_CF; A7CF # L& LATIN CAPITAL LETTER PHARYNGEAL VOICED FRICATIVE A7D0 ; NFKC_CF; A7D1 # L& LATIN CAPITAL LETTER CLOSED INSULAR G +A7D2 ; NFKC_CF; A7D3 # L& LATIN CAPITAL LETTER DOUBLE THORN +A7D4 ; NFKC_CF; A7D5 # L& LATIN CAPITAL LETTER DOUBLE WYNN A7D6 ; NFKC_CF; A7D7 # L& LATIN CAPITAL LETTER MIDDLE SCOTS S A7D8 ; NFKC_CF; A7D9 # L& LATIN CAPITAL LETTER SIGMOID S A7DA ; NFKC_CF; A7DB # L& LATIN CAPITAL LETTER LAMBDA A7DC ; NFKC_CF; 019B # L& LATIN CAPITAL LETTER LAMBDA WITH STROKE +A7F1 ; NFKC_CF; 0073 # Lm MODIFIER LETTER CAPITAL S A7F2 ; NFKC_CF; 0063 # Lm MODIFIER LETTER CAPITAL C A7F3 ; NFKC_CF; 0066 # Lm MODIFIER LETTER CAPITAL F A7F4 ; NFKC_CF; 0071 # Lm MODIFIER LETTER CAPITAL Q @@ -7184,6 +7189,31 @@ FFF0..FFF8 ; NFKC_CF; # Cn [9] ...... -# Total code points: 10554 +# Total code points: 10583 # ================================================ @@ -11582,11 +11612,15 @@ A7C7 ; NFKC_SCF; A7C8 # L& LATIN CAPITAL LETTER D WITH A7C9 ; NFKC_SCF; A7CA # L& LATIN CAPITAL LETTER S WITH SHORT STROKE OVERLAY A7CB ; NFKC_SCF; 0264 # L& LATIN CAPITAL LETTER RAMS HORN A7CC ; NFKC_SCF; A7CD # L& LATIN CAPITAL LETTER S WITH DIAGONAL STROKE +A7CE ; NFKC_SCF; A7CF # L& LATIN CAPITAL LETTER PHARYNGEAL VOICED FRICATIVE A7D0 ; NFKC_SCF; A7D1 # L& LATIN CAPITAL LETTER CLOSED INSULAR G +A7D2 ; NFKC_SCF; A7D3 # L& LATIN CAPITAL LETTER DOUBLE THORN +A7D4 ; NFKC_SCF; A7D5 # L& LATIN CAPITAL LETTER DOUBLE WYNN A7D6 ; NFKC_SCF; A7D7 # L& LATIN CAPITAL LETTER MIDDLE SCOTS S A7D8 ; NFKC_SCF; A7D9 # L& LATIN CAPITAL LETTER SIGMOID S A7DA ; NFKC_SCF; A7DB # L& LATIN CAPITAL LETTER LAMBDA A7DC ; NFKC_SCF; 019B # L& LATIN CAPITAL LETTER LAMBDA WITH STROKE +A7F1 ; NFKC_SCF; 0073 # Lm MODIFIER LETTER CAPITAL S A7F2 ; NFKC_SCF; 0063 # Lm MODIFIER LETTER CAPITAL C A7F3 ; NFKC_SCF; 0066 # Lm MODIFIER LETTER CAPITAL F A7F4 ; NFKC_SCF; 0071 # Lm MODIFIER LETTER CAPITAL Q @@ -13318,6 +13352,31 @@ FFF0..FFF8 ; NFKC_SCF; # Cn [9] ...... -# Total code points: 10516 +# Total code points: 10545 # ================================================ @@ -16052,12 +16111,15 @@ A7C2 ; Changes_When_NFKC_Casefolded # L& LATIN CAPITAL LETTER ANG A7C4..A7C7 ; Changes_When_NFKC_Casefolded # L& [4] LATIN CAPITAL LETTER C WITH PALATAL HOOK..LATIN CAPITAL LETTER D WITH SHORT STROKE OVERLAY A7C9 ; Changes_When_NFKC_Casefolded # L& LATIN CAPITAL LETTER S WITH SHORT STROKE OVERLAY A7CB..A7CC ; Changes_When_NFKC_Casefolded # L& [2] LATIN CAPITAL LETTER RAMS HORN..LATIN CAPITAL LETTER S WITH DIAGONAL STROKE +A7CE ; Changes_When_NFKC_Casefolded # L& LATIN CAPITAL LETTER PHARYNGEAL VOICED FRICATIVE A7D0 ; Changes_When_NFKC_Casefolded # L& LATIN CAPITAL LETTER CLOSED INSULAR G +A7D2 ; Changes_When_NFKC_Casefolded # L& LATIN CAPITAL LETTER DOUBLE THORN +A7D4 ; Changes_When_NFKC_Casefolded # L& LATIN CAPITAL LETTER DOUBLE WYNN A7D6 ; Changes_When_NFKC_Casefolded # L& LATIN CAPITAL LETTER MIDDLE SCOTS S A7D8 ; Changes_When_NFKC_Casefolded # L& LATIN CAPITAL LETTER SIGMOID S A7DA ; Changes_When_NFKC_Casefolded # L& LATIN CAPITAL LETTER LAMBDA A7DC ; Changes_When_NFKC_Casefolded # L& LATIN CAPITAL LETTER LAMBDA WITH STROKE -A7F2..A7F4 ; Changes_When_NFKC_Casefolded # Lm [3] MODIFIER LETTER CAPITAL C..MODIFIER LETTER CAPITAL Q +A7F1..A7F4 ; Changes_When_NFKC_Casefolded # Lm [4] MODIFIER LETTER CAPITAL S..MODIFIER LETTER CAPITAL Q A7F5 ; Changes_When_NFKC_Casefolded # L& LATIN CAPITAL LETTER REVERSED HALF H A7F8..A7F9 ; Changes_When_NFKC_Casefolded # Lm [2] MODIFIER LETTER CAPITAL H WITH STROKE..MODIFIER LETTER SMALL LIGATURE OE AB5C..AB5F ; Changes_When_NFKC_Casefolded # Lm [4] MODIFIER LETTER SMALL HENG..MODIFIER LETTER SMALL U WITH LEFT HOOK @@ -16199,6 +16261,7 @@ FFF0..FFF8 ; Changes_When_NFKC_Casefolded # Cn [9] ...... -# Total code points: 10554 +# Total code points: 10583 # EOF diff --git a/contrib/unicode/EastAsianWidth.txt b/contrib/unicode/EastAsianWidth.txt index 99f7a31ea5d8..3e46eb65df2e 100644 --- a/contrib/unicode/EastAsianWidth.txt +++ b/contrib/unicode/EastAsianWidth.txt @@ -1,6 +1,6 @@ -# EastAsianWidth-16.0.0.txt -# Date: 2024-04-30, 21:48:20 GMT -# © 2024 Unicode®, Inc. +# EastAsianWidth-17.0.0.txt +# Date: 2025-07-24, 00:12:54 GMT +# © 2025 Unicode®, Inc. # Unicode and the Unicode Logo are registered trademarks of Unicode, Inc. in the U.S. and other countries. # For terms of use and license, see https://www.unicode.org/terms_of_use.html # @@ -180,8 +180,8 @@ 0252..0260 ; N # Ll [15] LATIN SMALL LETTER TURNED ALPHA..LATIN SMALL LETTER G WITH HOOK 0261 ; A # Ll LATIN SMALL LETTER SCRIPT G 0262..0293 ; N # Ll [50] LATIN LETTER SMALL CAPITAL G..LATIN SMALL LETTER EZH WITH CURL -0294 ; N # Lo LATIN LETTER GLOTTAL STOP -0295..02AF ; N # Ll [27] LATIN LETTER PHARYNGEAL VOICED FRICATIVE..LATIN SMALL LETTER TURNED H WITH FISHHOOK AND TAIL +0294..0295 ; N # Lo [2] LATIN LETTER GLOTTAL STOP..LATIN LETTER PHARYNGEAL VOICED FRICATIVE +0296..02AF ; N # Ll [26] LATIN LETTER INVERTED GLOTTAL STOP..LATIN SMALL LETTER TURNED H WITH FISHHOOK AND TAIL 02B0..02C1 ; N # Lm [18] MODIFIER LETTER SMALL H..MODIFIER LETTER REVERSED GLOTTAL STOP 02C2..02C3 ; N # Sk [2] MODIFIER LETTER LEFT ARROWHEAD..MODIFIER LETTER RIGHT ARROWHEAD 02C4 ; A # Sk MODIFIER LETTER UP ARROWHEAD @@ -332,7 +332,7 @@ 0860..086A ; N # Lo [11] SYRIAC LETTER MALAYALAM NGA..SYRIAC LETTER MALAYALAM SSA 0870..0887 ; N # Lo [24] ARABIC LETTER ALEF WITH ATTACHED FATHA..ARABIC BASELINE ROUND DOT 0888 ; N # Sk ARABIC RAISED ROUND DOT -0889..088E ; N # Lo [6] ARABIC LETTER NOON WITH INVERTED SMALL V..ARABIC VERTICAL TAIL +0889..088F ; N # Lo [7] ARABIC LETTER NOON WITH INVERTED SMALL V..ARABIC LETTER NOON WITH RING ABOVE 0890..0891 ; N # Cf [2] ARABIC POUND MARK ABOVE..ARABIC PIASTRE MARK ABOVE 0897..089F ; N # Mn [9] ARABIC PEPET..ARABIC HALF MADDA OVER MADDA 08A0..08C8 ; N # Lo [41] ARABIC LETTER BEH WITH SMALL V BELOW..ARABIC LETTER GRAF @@ -502,7 +502,7 @@ 0C4A..0C4D ; N # Mn [4] TELUGU VOWEL SIGN O..TELUGU SIGN VIRAMA 0C55..0C56 ; N # Mn [2] TELUGU LENGTH MARK..TELUGU AI LENGTH MARK 0C58..0C5A ; N # Lo [3] TELUGU LETTER TSA..TELUGU LETTER RRRA -0C5D ; N # Lo TELUGU LETTER NAKAARA POLLU +0C5C..0C5D ; N # Lo [2] TELUGU ARCHAIC SHRII..TELUGU LETTER NAKAARA POLLU 0C60..0C61 ; N # Lo [2] TELUGU LETTER VOCALIC RR..TELUGU LETTER VOCALIC LL 0C62..0C63 ; N # Mn [2] TELUGU VOWEL SIGN VOCALIC L..TELUGU VOWEL SIGN VOCALIC LL 0C66..0C6F ; N # Nd [10] TELUGU DIGIT ZERO..TELUGU DIGIT NINE @@ -528,7 +528,7 @@ 0CCA..0CCB ; N # Mc [2] KANNADA VOWEL SIGN O..KANNADA VOWEL SIGN OO 0CCC..0CCD ; N # Mn [2] KANNADA VOWEL SIGN AU..KANNADA SIGN VIRAMA 0CD5..0CD6 ; N # Mc [2] KANNADA LENGTH MARK..KANNADA AI LENGTH MARK -0CDD..0CDE ; N # Lo [2] KANNADA LETTER NAKAARA POLLU..KANNADA LETTER FA +0CDC..0CDE ; N # Lo [3] KANNADA ARCHAIC SHRII..KANNADA LETTER FA 0CE0..0CE1 ; N # Lo [2] KANNADA LETTER VOCALIC RR..KANNADA LETTER VOCALIC LL 0CE2..0CE3 ; N # Mn [2] KANNADA VOWEL SIGN VOCALIC L..KANNADA VOWEL SIGN VOCALIC LL 0CE6..0CEF ; N # Nd [10] KANNADA DIGIT ZERO..KANNADA DIGIT NINE @@ -806,7 +806,8 @@ 1AA8..1AAD ; N # Po [6] TAI THAM SIGN KAAN..TAI THAM SIGN CAANG 1AB0..1ABD ; N # Mn [14] COMBINING DOUBLED CIRCUMFLEX ACCENT..COMBINING PARENTHESES BELOW 1ABE ; N # Me COMBINING PARENTHESES OVERLAY -1ABF..1ACE ; N # Mn [16] COMBINING LATIN SMALL LETTER W BELOW..COMBINING LATIN SMALL LETTER INSULAR T +1ABF..1ADD ; N # Mn [31] COMBINING LATIN SMALL LETTER W BELOW..COMBINING DOT-AND-RING BELOW +1AE0..1AEB ; N # Mn [12] COMBINING LEFT TACK ABOVE..COMBINING DOUBLE RIGHTWARDS ARROW ABOVE 1B00..1B03 ; N # Mn [4] BALINESE SIGN ULU RICEM..BALINESE SIGN SURANG 1B04 ; N # Mc BALINESE SIGN BISAH 1B05..1B33 ; N # Lo [47] BALINESE LETTER AKARA..BALINESE LETTER HA @@ -976,7 +977,7 @@ 20A9 ; H # Sc WON SIGN 20AA..20AB ; N # Sc [2] NEW SHEQEL SIGN..DONG SIGN 20AC ; A # Sc EURO SIGN -20AD..20C0 ; N # Sc [20] KIP SIGN..SOM SIGN +20AD..20C1 ; N # Sc [21] KIP SIGN..SAUDI RIYAL SIGN 20D0..20DC ; N # Mn [13] COMBINING LEFT HARPOON ABOVE..COMBINING FOUR DOTS ABOVE 20DD..20E0 ; N # Me [4] COMBINING ENCLOSING CIRCLE..COMBINING ENCLOSING CIRCLE BACKSLASH 20E1 ; N # Mn COMBINING LEFT RIGHT ARROW ABOVE @@ -1351,8 +1352,7 @@ 2B55 ; W # So HEAVY LARGE CIRCLE 2B56..2B59 ; A # So [4] HEAVY OVAL WITH OVAL INSIDE..HEAVY CIRCLED SALTIRE 2B5A..2B73 ; N # So [26] SLANTED NORTH ARROW WITH HOOKED HEAD..DOWNWARDS TRIANGLE-HEADED ARROW TO BAR -2B76..2B95 ; N # So [32] NORTH WEST TRIANGLE-HEADED ARROW TO BAR..RIGHTWARDS BLACK ARROW -2B97..2BFF ; N # So [105] SYMBOL FOR TYPE A ELECTRONICS..HELLSCHREIBER PAUSE SYMBOL +2B76..2BFF ; N # So [138] NORTH WEST TRIANGLE-HEADED ARROW TO BAR..HELLSCHREIBER PAUSE SYMBOL 2C00..2C5F ; N # L& [96] GLAGOLITIC CAPITAL LETTER AZU..GLAGOLITIC SMALL LETTER CAUDATE CHRIVI 2C60..2C7B ; N # L& [28] LATIN CAPITAL LETTER L WITH DOUBLE BAR..LATIN LETTER SMALL CAPITAL TURNED E 2C7C..2C7D ; N # Lm [2] LATIN SUBSCRIPT SMALL LETTER J..MODIFIER LETTER CAPITAL V @@ -1548,11 +1548,8 @@ A788 ; N # Lm MODIFIER LETTER LOW CIRCUMFLEX ACCENT A789..A78A ; N # Sk [2] MODIFIER LETTER COLON..MODIFIER LETTER SHORT EQUALS SIGN A78B..A78E ; N # L& [4] LATIN CAPITAL LETTER SALTILLO..LATIN SMALL LETTER L WITH RETROFLEX HOOK AND BELT A78F ; N # Lo LATIN LETTER SINOLOGICAL DOT -A790..A7CD ; N # L& [62] LATIN CAPITAL LETTER N WITH DESCENDER..LATIN SMALL LETTER S WITH DIAGONAL STROKE -A7D0..A7D1 ; N # L& [2] LATIN CAPITAL LETTER CLOSED INSULAR G..LATIN SMALL LETTER CLOSED INSULAR G -A7D3 ; N # Ll LATIN SMALL LETTER DOUBLE THORN -A7D5..A7DC ; N # L& [8] LATIN SMALL LETTER DOUBLE WYNN..LATIN CAPITAL LETTER LAMBDA WITH STROKE -A7F2..A7F4 ; N # Lm [3] MODIFIER LETTER CAPITAL C..MODIFIER LETTER CAPITAL Q +A790..A7DC ; N # L& [77] LATIN CAPITAL LETTER N WITH DESCENDER..LATIN CAPITAL LETTER LAMBDA WITH STROKE +A7F1..A7F4 ; N # Lm [4] MODIFIER LETTER CAPITAL S..MODIFIER LETTER CAPITAL Q A7F5..A7F6 ; N # L& [2] LATIN CAPITAL LETTER REVERSED HALF H..LATIN SMALL LETTER REVERSED HALF H A7F7 ; N # Lo LATIN EPIGRAPHIC LETTER SIDEWAYS I A7F8..A7F9 ; N # Lm [2] MODIFIER LETTER CAPITAL H WITH STROKE..MODIFIER LETTER SMALL LIGATURE OE @@ -1709,13 +1706,15 @@ FB43..FB44 ; N # Lo [2] HEBREW LETTER FINAL PE WITH DAGESH..HEBREW LETT FB46..FB4F ; N # Lo [10] HEBREW LETTER TSADI WITH DAGESH..HEBREW LIGATURE ALEF LAMED FB50..FBB1 ; N # Lo [98] ARABIC LETTER ALEF WASLA ISOLATED FORM..ARABIC LETTER YEH BARREE WITH HAMZA ABOVE FINAL FORM FBB2..FBC2 ; N # Sk [17] ARABIC SYMBOL DOT ABOVE..ARABIC SYMBOL WASLA ABOVE +FBC3..FBD2 ; N # So [16] ARABIC LIGATURE JALLA WA-ALAA..ARABIC LIGATURE ALAYHI AR-RAHMAH FBD3..FD3D ; N # Lo [363] ARABIC LETTER NG ISOLATED FORM..ARABIC LIGATURE ALEF WITH FATHATAN ISOLATED FORM FD3E ; N # Pe ORNATE LEFT PARENTHESIS FD3F ; N # Ps ORNATE RIGHT PARENTHESIS FD40..FD4F ; N # So [16] ARABIC LIGATURE RAHIMAHU ALLAAH..ARABIC LIGATURE RAHIMAHUM ALLAAH FD50..FD8F ; N # Lo [64] ARABIC LIGATURE TEH WITH JEEM WITH MEEM INITIAL FORM..ARABIC LIGATURE MEEM WITH KHAH WITH MEEM INITIAL FORM +FD90..FD91 ; N # So [2] ARABIC LIGATURE RAHMATU ALLAAHI ALAYH..ARABIC LIGATURE RAHMATU ALLAAHI ALAYHAA FD92..FDC7 ; N # Lo [54] ARABIC LIGATURE MEEM WITH JEEM WITH KHAH INITIAL FORM..ARABIC LIGATURE NOON WITH JEEM WITH YEH FINAL FORM -FDCF ; N # So ARABIC LIGATURE SALAAMUHU ALAYNAA +FDC8..FDCF ; N # So [8] ARABIC LIGATURE RAHIMAHU ALLAAH TAAALAA..ARABIC LIGATURE SALAAMUHU ALAYNAA FDF0..FDFB ; N # Lo [12] ARABIC LIGATURE SALLA USED AS KORANIC STOP SIGN ISOLATED FORM..ARABIC LIGATURE JALLAJALALOUHOU FDFC ; N # Sc RIAL SIGN FDFD..FDFF ; N # So [3] ARABIC LIGATURE BISMILLAH AR-RAHMAN AR-RAHEEM..ARABIC LIGATURE AZZA WA JALL @@ -1904,6 +1903,7 @@ FFFD ; A # So REPLACEMENT CHARACTER 1091F ; N # Po PHOENICIAN WORD SEPARATOR 10920..10939 ; N # Lo [26] LYDIAN LETTER A..LYDIAN LETTER C 1093F ; N # Po LYDIAN TRIANGULAR MARK +10940..10959 ; N # Lo [26] SIDETIC LETTER N01..SIDETIC LETTER N26 10980..1099F ; N # Lo [32] MEROITIC HIEROGLYPHIC LETTER A..MEROITIC HIEROGLYPHIC SYMBOL VIDJ-2 109A0..109B7 ; N # Lo [24] MEROITIC CURSIVE LETTER A..MEROITIC CURSIVE LETTER DA 109BC..109BD ; N # No [2] MEROITIC CURSIVE FRACTION ELEVEN TWELFTHS..MEROITIC CURSIVE FRACTION ONE HALF @@ -1964,7 +1964,11 @@ FFFD ; A # So REPLACEMENT CHARACTER 10EAD ; N # Pd YEZIDI HYPHENATION MARK 10EB0..10EB1 ; N # Lo [2] YEZIDI LETTER LAM WITH DOT ABOVE..YEZIDI LETTER YOT WITH CIRCUMFLEX ABOVE 10EC2..10EC4 ; N # Lo [3] ARABIC LETTER DAL WITH TWO DOTS VERTICALLY BELOW..ARABIC LETTER KAF WITH TWO DOTS VERTICALLY BELOW -10EFC..10EFF ; N # Mn [4] ARABIC COMBINING ALEF OVERLAY..ARABIC SMALL LOW WORD MADDA +10EC5 ; N # Lm ARABIC SMALL YEH BARREE WITH TWO DOTS BELOW +10EC6..10EC7 ; N # Lo [2] ARABIC LETTER THIN NOON..ARABIC LETTER YEH WITH FOUR DOTS BELOW +10ED0 ; N # Po ARABIC BIBLICAL END OF VERSE +10ED1..10ED8 ; N # So [8] ARABIC LIGATURE ALAYHAA AS-SALAATU WAS-SALAAM..ARABIC LIGATURE NAWWARA ALLAAHU MARQADAH +10EFA..10EFF ; N # Mn [6] ARABIC DOUBLE VERTICAL BAR BELOW..ARABIC SMALL LOW WORD MADDA 10F00..10F1C ; N # Lo [29] OLD SOGDIAN LETTER ALEPH..OLD SOGDIAN LETTER FINAL TAW WITH VERTICAL TAIL 10F1D..10F26 ; N # No [10] OLD SOGDIAN NUMBER ONE..OLD SOGDIAN FRACTION ONE HALF 10F27 ; N # Lo OLD SOGDIAN LIGATURE AYIN-DALETH @@ -2235,6 +2239,12 @@ FFFD ; A # So REPLACEMENT CHARACTER 11AB0..11ABF ; N # Lo [16] CANADIAN SYLLABICS NATTILIK HI..CANADIAN SYLLABICS SPA 11AC0..11AF8 ; N # Lo [57] PAU CIN HAU LETTER PA..PAU CIN HAU GLOTTAL STOP FINAL 11B00..11B09 ; N # Po [10] DEVANAGARI HEAD MARK..DEVANAGARI SIGN MINDU +11B60 ; N # Mn SHARADA VOWEL SIGN OE +11B61 ; N # Mc SHARADA VOWEL SIGN OOE +11B62..11B64 ; N # Mn [3] SHARADA VOWEL SIGN UE..SHARADA VOWEL SIGN SHORT E +11B65 ; N # Mc SHARADA VOWEL SIGN SHORT O +11B66 ; N # Mn SHARADA VOWEL SIGN CANDRA E +11B67 ; N # Mc SHARADA VOWEL SIGN CANDRA O 11BC0..11BE0 ; N # Lo [33] SUNUWAR LETTER DEVI..SUNUWAR LETTER KLOKO 11BE1 ; N # Po SUNUWAR SIGN PVO 11BF0..11BF9 ; N # Nd [10] SUNUWAR DIGIT ZERO..SUNUWAR DIGIT NINE @@ -2279,6 +2289,10 @@ FFFD ; A # So REPLACEMENT CHARACTER 11D97 ; N # Mn GUNJALA GONDI VIRAMA 11D98 ; N # Lo GUNJALA GONDI OM 11DA0..11DA9 ; N # Nd [10] GUNJALA GONDI DIGIT ZERO..GUNJALA GONDI DIGIT NINE +11DB0..11DD8 ; N # Lo [41] TOLONG SIKI LETTER I..TOLONG SIKI LETTER RRH +11DD9 ; N # Lm TOLONG SIKI SIGN SELA +11DDA..11DDB ; N # Lo [2] TOLONG SIKI SIGN HECAKA..TOLONG SIKI UNGGA +11DE0..11DE9 ; N # Nd [10] TOLONG SIKI DIGIT ZERO..TOLONG SIKI DIGIT NINE 11EE0..11EF2 ; N # Lo [19] MAKASAR LETTER KA..MAKASAR ANGKA 11EF3..11EF4 ; N # Mn [2] MAKASAR VOWEL SIGN I..MAKASAR VOWEL SIGN U 11EF5..11EF6 ; N # Mc [2] MAKASAR VOWEL SIGN E..MAKASAR VOWEL SIGN O @@ -2349,6 +2363,8 @@ FFFD ; A # So REPLACEMENT CHARACTER 16E40..16E7F ; N # L& [64] MEDEFAIDRIN CAPITAL LETTER M..MEDEFAIDRIN SMALL LETTER Y 16E80..16E96 ; N # No [23] MEDEFAIDRIN DIGIT ZERO..MEDEFAIDRIN DIGIT THREE ALTERNATE FORM 16E97..16E9A ; N # Po [4] MEDEFAIDRIN COMMA..MEDEFAIDRIN EXCLAMATION OH +16EA0..16EB8 ; N # Lu [25] BERIA ERFE CAPITAL LETTER ARKAB..BERIA ERFE CAPITAL LETTER AY +16EBB..16ED3 ; N # Ll [25] BERIA ERFE SMALL LETTER ARKAB..BERIA ERFE SMALL LETTER AY 16F00..16F4A ; N # Lo [75] MIAO LETTER PA..MIAO LETTER RTE 16F4F ; N # Mn MIAO SIGN CONSONANT MODIFIER BAR 16F50 ; N # Lo MIAO LETTER NASALIZATION @@ -2360,11 +2376,14 @@ FFFD ; A # So REPLACEMENT CHARACTER 16FE3 ; W # Lm OLD CHINESE ITERATION MARK 16FE4 ; W # Mn KHITAN SMALL SCRIPT FILLER 16FF0..16FF1 ; W # Mc [2] VIETNAMESE ALTERNATE READING MARK CA..VIETNAMESE ALTERNATE READING MARK NHAY -17000..187F7 ; W # Lo [6136] TANGUT IDEOGRAPH-17000..TANGUT IDEOGRAPH-187F7 +16FF2..16FF3 ; W # Lm [2] CHINESE SMALL SIMPLIFIED ER..CHINESE SMALL TRADITIONAL ER +16FF4..16FF6 ; W # Nl [3] YANGQIN SIGN SLOW ONE BEAT..YANGQIN SIGN SLOW TWO BEATS +17000..187FF ; W # Lo [6144] TANGUT IDEOGRAPH-17000..TANGUT IDEOGRAPH-187FF 18800..18AFF ; W # Lo [768] TANGUT COMPONENT-001..TANGUT COMPONENT-768 18B00..18CD5 ; W # Lo [470] KHITAN SMALL SCRIPT CHARACTER-18B00..KHITAN SMALL SCRIPT CHARACTER-18CD5 18CFF ; W # Lo KHITAN SMALL SCRIPT CHARACTER-18CFF -18D00..18D08 ; W # Lo [9] TANGUT IDEOGRAPH-18D00..TANGUT IDEOGRAPH-18D08 +18D00..18D1E ; W # Lo [31] TANGUT IDEOGRAPH-18D00..TANGUT IDEOGRAPH-18D1E +18D80..18DF2 ; W # Lo [115] TANGUT COMPONENT-769..TANGUT COMPONENT-883 1AFF0..1AFF3 ; W # Lm [4] KATAKANA LETTER MINNAN TONE-2..KATAKANA LETTER MINNAN TONE-5 1AFF5..1AFFB ; W # Lm [7] KATAKANA LETTER MINNAN TONE-7..KATAKANA LETTER MINNAN NASALIZED TONE-5 1AFFD..1AFFE ; W # Lm [2] KATAKANA LETTER MINNAN NASALIZED TONE-7..KATAKANA LETTER MINNAN NASALIZED TONE-8 @@ -2385,7 +2404,12 @@ FFFD ; A # So REPLACEMENT CHARACTER 1BCA0..1BCA3 ; N # Cf [4] SHORTHAND FORMAT LETTER OVERLAP..SHORTHAND FORMAT UP STEP 1CC00..1CCEF ; N # So [240] UP-POINTING GO-KART..OUTLINED LATIN CAPITAL LETTER Z 1CCF0..1CCF9 ; N # Nd [10] OUTLINED DIGIT ZERO..OUTLINED DIGIT NINE +1CCFA..1CCFC ; N # So [3] SNAKE SYMBOL..NOSE SYMBOL 1CD00..1CEB3 ; N # So [436] BLOCK OCTANT-3..BLACK RIGHT TRIANGLE CARET +1CEBA..1CEBF ; N # So [6] FRAGILE SYMBOL..STRAWBERRY SYMBOL +1CEC0..1CED0 ; N # So [17] HEBE..LEUKOTHEA +1CEE0..1CEEF ; N # So [16] GEOMANTIC FIGURE POPULUS..GEOMANTIC FIGURE VIA +1CEF0 ; N # Sm MEDIUM SMALL WHITE CIRCLE WITH HORIZONTAL BAR 1CF00..1CF2D ; N # Mn [46] ZNAMENNY COMBINING MARK GORAZDO NIZKO S KRYZHEM ON LEFT..ZNAMENNY COMBINING MARK KRYZH ON LEFT 1CF30..1CF46 ; N # Mn [23] ZNAMENNY COMBINING TONAL RANGE MARK MRACHNO..ZNAMENNY PRIZNAK MODIFIER ROG 1CF50..1CFC3 ; N # So [116] ZNAMENNY NEUME KRYUK..ZNAMENNY NEUME PAUK @@ -2496,6 +2520,17 @@ FFFD ; A # So REPLACEMENT CHARACTER 1E5F0 ; N # Lo OL ONAL SIGN HODDOND 1E5F1..1E5FA ; N # Nd [10] OL ONAL DIGIT ZERO..OL ONAL DIGIT NINE 1E5FF ; N # Po OL ONAL ABBREVIATION SIGN +1E6C0..1E6DE ; N # Lo [31] TAI YO LETTER LOW KO..TAI YO LETTER HIGH KVO +1E6E0..1E6E2 ; N # Lo [3] TAI YO LETTER AA..TAI YO LETTER UE +1E6E3 ; N # Mn TAI YO SIGN UE +1E6E4..1E6E5 ; N # Lo [2] TAI YO LETTER U..TAI YO LETTER AE +1E6E6 ; N # Mn TAI YO SIGN AU +1E6E7..1E6ED ; N # Lo [7] TAI YO LETTER O..TAI YO LETTER AUE +1E6EE..1E6EF ; N # Mn [2] TAI YO SIGN AY..TAI YO SIGN ANG +1E6F0..1E6F4 ; N # Lo [5] TAI YO LETTER AN..TAI YO LETTER AP +1E6F5 ; N # Mn TAI YO SIGN OM +1E6FE ; N # Lo TAI YO SYMBOL MUEANG +1E6FF ; N # Lm TAI YO XAM LAI 1E7E0..1E7E6 ; N # Lo [7] ETHIOPIC SYLLABLE HHYA..ETHIOPIC SYLLABLE HHYO 1E7E8..1E7EB ; N # Lo [4] ETHIOPIC SYLLABLE GURAGE HHWA..ETHIOPIC SYLLABLE HHWE 1E7ED..1E7EE ; N # Lo [2] ETHIOPIC SYLLABLE GURAGE MWI..ETHIOPIC SYLLABLE GURAGE MWEE @@ -2623,14 +2658,13 @@ FFFD ; A # So REPLACEMENT CHARACTER 1F6CD..1F6CF ; N # So [3] SHOPPING BAGS..BED 1F6D0..1F6D2 ; W # So [3] PLACE OF WORSHIP..SHOPPING TROLLEY 1F6D3..1F6D4 ; N # So [2] STUPA..PAGODA -1F6D5..1F6D7 ; W # So [3] HINDU TEMPLE..ELEVATOR +1F6D5..1F6D8 ; W # So [4] HINDU TEMPLE..LANDSLIDE 1F6DC..1F6DF ; W # So [4] WIRELESS..RING BUOY 1F6E0..1F6EA ; N # So [11] HAMMER AND WRENCH..NORTHEAST-POINTING AIRPLANE 1F6EB..1F6EC ; W # So [2] AIRPLANE DEPARTURE..AIRPLANE ARRIVING 1F6F0..1F6F3 ; N # So [4] SATELLITE..PASSENGER SHIP 1F6F4..1F6FC ; W # So [9] SCOOTER..ROLLER SKATE -1F700..1F776 ; N # So [119] ALCHEMICAL SYMBOL FOR QUINTESSENCE..LUNAR ECLIPSE -1F77B..1F77F ; N # So [5] HAUMEA..ORCUS +1F700..1F77F ; N # So [128] ALCHEMICAL SYMBOL FOR QUINTESSENCE..ORCUS 1F780..1F7D9 ; N # So [90] BLACK LEFT-POINTING ISOSCELES RIGHT TRIANGLE..NINE POINTED WHITE STAR 1F7E0..1F7EB ; W # So [12] LARGE ORANGE CIRCLE..LARGE BROWN SQUARE 1F7F0 ; W # So HEAVY EQUALS SIGN @@ -2641,31 +2675,32 @@ FFFD ; A # So REPLACEMENT CHARACTER 1F890..1F8AD ; N # So [30] LEFTWARDS TRIANGLE ARROWHEAD..WHITE ARROW SHAFT WIDTH TWO THIRDS 1F8B0..1F8BB ; N # So [12] ARROW POINTING UPWARDS THEN NORTH WEST..SOUTH WEST ARROW FROM BAR 1F8C0..1F8C1 ; N # So [2] LEFTWARDS ARROW FROM DOWNWARDS ARROW..RIGHTWARDS ARROW FROM DOWNWARDS ARROW +1F8D0..1F8D8 ; N # Sm [9] LONG RIGHTWARDS ARROW OVER LONG LEFTWARDS ARROW..LONG LEFT RIGHT ARROW WITH DEPENDENT LOBE 1F900..1F90B ; N # So [12] CIRCLED CROSS FORMEE WITH FOUR DOTS..DOWNWARD FACING NOTCHED HOOK WITH DOT 1F90C..1F93A ; W # So [47] PINCHED FINGERS..FENCER 1F93B ; N # So MODERN PENTATHLON 1F93C..1F945 ; W # So [10] WRESTLERS..GOAL NET 1F946 ; N # So RIFLE 1F947..1F9FF ; W # So [185] FIRST PLACE MEDAL..NAZAR AMULET -1FA00..1FA53 ; N # So [84] NEUTRAL CHESS KING..BLACK CHESS KNIGHT-BISHOP +1FA00..1FA57 ; N # So [88] NEUTRAL CHESS KING..BLACK CHESS ALFIL 1FA60..1FA6D ; N # So [14] XIANGQI RED GENERAL..XIANGQI BLACK SOLDIER 1FA70..1FA7C ; W # So [13] BALLET SHOES..CRUTCH -1FA80..1FA89 ; W # So [10] YO-YO..HARP -1FA8F..1FAC6 ; W # So [56] SHOVEL..FINGERPRINT -1FACE..1FADC ; W # So [15] MOOSE..ROOT VEGETABLE -1FADF..1FAE9 ; W # So [11] SPLATTER..FACE WITH BAGS UNDER EYES -1FAF0..1FAF8 ; W # So [9] HAND WITH INDEX FINGER AND THUMB CROSSED..RIGHTWARDS PUSHING HAND +1FA80..1FA8A ; W # So [11] YO-YO..TROMBONE +1FA8E..1FAC6 ; W # So [57] TREASURE CHEST..FINGERPRINT +1FAC8 ; W # So HAIRY CREATURE +1FACD..1FADC ; W # So [16] ORCA..ROOT VEGETABLE +1FADF..1FAEA ; W # So [12] SPLATTER..DISTORTED FACE +1FAEF..1FAF8 ; W # So [10] FIGHT CLOUD..RIGHTWARDS PUSHING HAND 1FB00..1FB92 ; N # So [147] BLOCK SEXTANT-1..UPPER HALF INVERSE MEDIUM SHADE AND LOWER HALF BLOCK 1FB94..1FBEF ; N # So [92] LEFT HALF INVERSE MEDIUM SHADE AND RIGHT HALF BLOCK..TOP LEFT JUSTIFIED LOWER RIGHT QUARTER BLACK CIRCLE 1FBF0..1FBF9 ; N # Nd [10] SEGMENTED DIGIT ZERO..SEGMENTED DIGIT NINE +1FBFA ; N # So ALARM BELL SYMBOL 20000..2A6DF ; W # Lo [42720] CJK UNIFIED IDEOGRAPH-20000..CJK UNIFIED IDEOGRAPH-2A6DF 2A6E0..2A6FF ; W # Cn [32] .. -2A700..2B739 ; W # Lo [4154] CJK UNIFIED IDEOGRAPH-2A700..CJK UNIFIED IDEOGRAPH-2B739 -2B73A..2B73F ; W # Cn [6] .. -2B740..2B81D ; W # Lo [222] CJK UNIFIED IDEOGRAPH-2B740..CJK UNIFIED IDEOGRAPH-2B81D +2A700..2B81D ; W # Lo [4382] CJK UNIFIED IDEOGRAPH-2A700..CJK UNIFIED IDEOGRAPH-2B81D 2B81E..2B81F ; W # Cn [2] .. -2B820..2CEA1 ; W # Lo [5762] CJK UNIFIED IDEOGRAPH-2B820..CJK UNIFIED IDEOGRAPH-2CEA1 -2CEA2..2CEAF ; W # Cn [14] .. +2B820..2CEAD ; W # Lo [5774] CJK UNIFIED IDEOGRAPH-2B820..CJK UNIFIED IDEOGRAPH-2CEAD +2CEAE..2CEAF ; W # Cn [2] .. 2CEB0..2EBE0 ; W # Lo [7473] CJK UNIFIED IDEOGRAPH-2CEB0..CJK UNIFIED IDEOGRAPH-2EBE0 2EBE1..2EBEF ; W # Cn [15] .. 2EBF0..2EE5D ; W # Lo [622] CJK UNIFIED IDEOGRAPH-2EBF0..CJK UNIFIED IDEOGRAPH-2EE5D @@ -2675,8 +2710,8 @@ FFFD ; A # So REPLACEMENT CHARACTER 2FA20..2FFFD ; W # Cn [1502] .. 30000..3134A ; W # Lo [4939] CJK UNIFIED IDEOGRAPH-30000..CJK UNIFIED IDEOGRAPH-3134A 3134B..3134F ; W # Cn [5] .. -31350..323AF ; W # Lo [4192] CJK UNIFIED IDEOGRAPH-31350..CJK UNIFIED IDEOGRAPH-323AF -323B0..3FFFD ; W # Cn [56398] .. +31350..33479 ; W # Lo [8490] CJK UNIFIED IDEOGRAPH-31350..CJK UNIFIED IDEOGRAPH-33479 +3347A..3FFFD ; W # Cn [52100] .. E0001 ; N # Cf LANGUAGE TAG E0020..E007F ; N # Cf [96] TAG SPACE..CANCEL TAG E0100..E01EF ; A # Mn [240] VARIATION SELECTOR-17..VARIATION SELECTOR-256 diff --git a/contrib/unicode/GraphemeBreakProperty.txt b/contrib/unicode/GraphemeBreakProperty.txt index a863397ddaba..19b13571f347 100644 --- a/contrib/unicode/GraphemeBreakProperty.txt +++ b/contrib/unicode/GraphemeBreakProperty.txt @@ -1,6 +1,6 @@ -# GraphemeBreakProperty-16.0.0.txt -# Date: 2024-05-31, 18:09:38 GMT -# © 2024 Unicode®, Inc. +# GraphemeBreakProperty-17.0.0.txt +# Date: 2025-06-30, 06:20:23 GMT +# © 2025 Unicode®, Inc. # Unicode and the Unicode Logo are registered trademarks of Unicode, Inc. in the U.S. and other countries. # For terms of use and license, see https://www.unicode.org/terms_of_use.html # @@ -30,12 +30,11 @@ 113D1 ; Prepend # Lo TULU-TIGALARI REPHA 1193F ; Prepend # Lo DIVES AKURU PREFIXED NASAL SIGN 11941 ; Prepend # Lo DIVES AKURU INITIAL RA -11A3A ; Prepend # Lo ZANABAZAR SQUARE CLUSTER-INITIAL LETTER RA 11A84..11A89 ; Prepend # Lo [6] SOYOMBO SIGN JIHVAMULIYA..SOYOMBO CLUSTER-INITIAL LETTER SA 11D46 ; Prepend # Lo MASARAM GONDI REPHA 11F02 ; Prepend # Lo KAWI SIGN REPHA -# Total code points: 28 +# Total code points: 27 # ================================================ @@ -243,7 +242,8 @@ E01F0..E0FFF ; Control # Cn [3600] .. 1A7F ; Extend # Mn TAI THAM COMBINING CRYPTOGRAMMIC DOT 1AB0..1ABD ; Extend # Mn [14] COMBINING DOUBLED CIRCUMFLEX ACCENT..COMBINING PARENTHESES BELOW 1ABE ; Extend # Me COMBINING PARENTHESES OVERLAY -1ABF..1ACE ; Extend # Mn [16] COMBINING LATIN SMALL LETTER W BELOW..COMBINING LATIN SMALL LETTER INSULAR T +1ABF..1ADD ; Extend # Mn [31] COMBINING LATIN SMALL LETTER W BELOW..COMBINING DOT-AND-RING BELOW +1AE0..1AEB ; Extend # Mn [12] COMBINING LEFT TACK ABOVE..COMBINING DOUBLE RIGHTWARDS ARROW ABOVE 1B00..1B03 ; Extend # Mn [4] BALINESE SIGN ULU RICEM..BALINESE SIGN SURANG 1B34 ; Extend # Mn BALINESE SIGN REREKAN 1B35 ; Extend # Mc BALINESE VOWEL SIGN TEDUNG @@ -339,7 +339,7 @@ FF9E..FF9F ; Extend # Lm [2] HALFWIDTH KATAKANA VOICED SOUND MARK..HALFWIDT 10D24..10D27 ; Extend # Mn [4] HANIFI ROHINGYA SIGN HARBAHAY..HANIFI ROHINGYA SIGN TASSI 10D69..10D6D ; Extend # Mn [5] GARAY VOWEL SIGN E..GARAY CONSONANT NASALIZATION MARK 10EAB..10EAC ; Extend # Mn [2] YEZIDI COMBINING HAMZA MARK..YEZIDI COMBINING MADDA MARK -10EFC..10EFF ; Extend # Mn [4] ARABIC COMBINING ALEF OVERLAY..ARABIC SMALL LOW WORD MADDA +10EFA..10EFF ; Extend # Mn [6] ARABIC DOUBLE VERTICAL BAR BELOW..ARABIC SMALL LOW WORD MADDA 10F46..10F50 ; Extend # Mn [11] SOGDIAN COMBINING DOT BELOW..SOGDIAN COMBINING STROKE BELOW 10F82..10F85 ; Extend # Mn [4] OLD UYGHUR COMBINING DOT ABOVE..OLD UYGHUR COMBINING TWO DOTS BELOW 11001 ; Extend # Mn BRAHMI SIGN ANUSVARA @@ -430,6 +430,9 @@ FF9E..FF9F ; Extend # Lm [2] HALFWIDTH KATAKANA VOICED SOUND MARK..HALFWIDT 11A59..11A5B ; Extend # Mn [3] SOYOMBO VOWEL SIGN VOCALIC R..SOYOMBO VOWEL LENGTH MARK 11A8A..11A96 ; Extend # Mn [13] SOYOMBO FINAL CONSONANT SIGN G..SOYOMBO SIGN ANUSVARA 11A98..11A99 ; Extend # Mn [2] SOYOMBO GEMINATION MARK..SOYOMBO SUBJOINER +11B60 ; Extend # Mn SHARADA VOWEL SIGN OE +11B62..11B64 ; Extend # Mn [3] SHARADA VOWEL SIGN UE..SHARADA VOWEL SIGN SHORT E +11B66 ; Extend # Mn SHARADA VOWEL SIGN CANDRA E 11C30..11C36 ; Extend # Mn [7] BHAIKSUKI VOWEL SIGN I..BHAIKSUKI VOWEL SIGN VOCALIC L 11C38..11C3D ; Extend # Mn [6] BHAIKSUKI VOWEL SIGN E..BHAIKSUKI SIGN ANUSVARA 11C3F ; Extend # Mn BHAIKSUKI SIGN VIRAMA @@ -489,13 +492,17 @@ FF9E..FF9F ; Extend # Lm [2] HALFWIDTH KATAKANA VOICED SOUND MARK..HALFWIDT 1E2EC..1E2EF ; Extend # Mn [4] WANCHO TONE TUP..WANCHO TONE KOINI 1E4EC..1E4EF ; Extend # Mn [4] NAG MUNDARI SIGN MUHOR..NAG MUNDARI SIGN SUTUH 1E5EE..1E5EF ; Extend # Mn [2] OL ONAL SIGN MU..OL ONAL SIGN IKIR +1E6E3 ; Extend # Mn TAI YO SIGN UE +1E6E6 ; Extend # Mn TAI YO SIGN AU +1E6EE..1E6EF ; Extend # Mn [2] TAI YO SIGN AY..TAI YO SIGN ANG +1E6F5 ; Extend # Mn TAI YO SIGN OM 1E8D0..1E8D6 ; Extend # Mn [7] MENDE KIKAKUI COMBINING NUMBER TEENS..MENDE KIKAKUI COMBINING NUMBER MILLIONS 1E944..1E94A ; Extend # Mn [7] ADLAM ALIF LENGTHENER..ADLAM NUKTA 1F3FB..1F3FF ; Extend # Sk [5] EMOJI MODIFIER FITZPATRICK TYPE-1-2..EMOJI MODIFIER FITZPATRICK TYPE-6 E0020..E007F ; Extend # Cf [96] TAG SPACE..CANCEL TAG E0100..E01EF ; Extend # Mn [240] VARIATION SELECTOR-17..VARIATION SELECTOR-256 -# Total code points: 2198 +# Total code points: 2237 # ================================================ @@ -646,6 +653,9 @@ ABEC ; SpacingMark # Mc MEETEI MAYEK LUM IYEK 11A39 ; SpacingMark # Mc ZANABAZAR SQUARE SIGN VISARGA 11A57..11A58 ; SpacingMark # Mc [2] SOYOMBO VOWEL SIGN AI..SOYOMBO VOWEL SIGN AU 11A97 ; SpacingMark # Mc SOYOMBO SIGN VISARGA +11B61 ; SpacingMark # Mc SHARADA VOWEL SIGN OOE +11B65 ; SpacingMark # Mc SHARADA VOWEL SIGN SHORT O +11B67 ; SpacingMark # Mc SHARADA VOWEL SIGN CANDRA O 11C2F ; SpacingMark # Mc BHAIKSUKI VOWEL SIGN AA 11C3E ; SpacingMark # Mc BHAIKSUKI SIGN VISARGA 11CA9 ; SpacingMark # Mc MARCHEN SUBJOINED LETTER YA @@ -661,7 +671,7 @@ ABEC ; SpacingMark # Mc MEETEI MAYEK LUM IYEK 1612A..1612C ; SpacingMark # Mc [3] GURUNG KHEMA CONSONANT SIGN MEDIAL YA..GURUNG KHEMA CONSONANT SIGN MEDIAL HA 16F51..16F87 ; SpacingMark # Mc [55] MIAO SIGN ASPIRATION..MIAO VOWEL SIGN UI -# Total code points: 378 +# Total code points: 381 # ================================================ diff --git a/contrib/unicode/HangulSyllableType.txt b/contrib/unicode/HangulSyllableType.txt new file mode 100644 index 000000000000..8c3cf4a73672 --- /dev/null +++ b/contrib/unicode/HangulSyllableType.txt @@ -0,0 +1,858 @@ +# HangulSyllableType-17.0.0.txt +# Date: 2025-01-27, 18:09:16 GMT +# © 2025 Unicode®, Inc. +# Unicode and the Unicode Logo are registered trademarks of Unicode, Inc. in the U.S. and other countries. +# For terms of use and license, see https://www.unicode.org/terms_of_use.html +# +# Unicode Character Database +# For documentation, see https://www.unicode.org/reports/tr44/ + +# ================================================ + +# Property: Hangul_Syllable_Type + +# All code points not explicitly listed for Hangul_Syllable_Type +# have the value Not_Applicable (NA). + +# @missing: 0000..10FFFF; Not_Applicable + +# ================================================ + +# Hangul_Syllable_Type=Leading_Jamo + +1100..115F ; L # Lo [96] HANGUL CHOSEONG KIYEOK..HANGUL CHOSEONG FILLER +A960..A97C ; L # Lo [29] HANGUL CHOSEONG TIKEUT-MIEUM..HANGUL CHOSEONG SSANGYEORINHIEUH + +# Total code points: 125 + +# ================================================ + +# Hangul_Syllable_Type=Vowel_Jamo + +1160..11A7 ; V # Lo [72] HANGUL JUNGSEONG FILLER..HANGUL JUNGSEONG O-YAE +D7B0..D7C6 ; V # Lo [23] HANGUL JUNGSEONG O-YEO..HANGUL JUNGSEONG ARAEA-E + +# Total code points: 95 + +# ================================================ + +# Hangul_Syllable_Type=Trailing_Jamo + +11A8..11FF ; T # Lo [88] HANGUL JONGSEONG KIYEOK..HANGUL JONGSEONG SSANGNIEUN +D7CB..D7FB ; T # Lo [49] HANGUL JONGSEONG NIEUN-RIEUL..HANGUL JONGSEONG PHIEUPH-THIEUTH + +# Total code points: 137 + +# ================================================ + +# Hangul_Syllable_Type=LV_Syllable + +AC00 ; LV # Lo HANGUL SYLLABLE GA +AC1C ; LV # Lo HANGUL SYLLABLE GAE +AC38 ; LV # Lo HANGUL SYLLABLE GYA +AC54 ; LV # Lo HANGUL SYLLABLE GYAE +AC70 ; LV # Lo HANGUL SYLLABLE GEO +AC8C ; LV # Lo HANGUL SYLLABLE GE +ACA8 ; LV # Lo HANGUL SYLLABLE GYEO +ACC4 ; LV # Lo HANGUL SYLLABLE GYE +ACE0 ; LV # Lo HANGUL SYLLABLE GO +ACFC ; LV # Lo HANGUL SYLLABLE GWA +AD18 ; LV # Lo HANGUL SYLLABLE GWAE +AD34 ; LV # Lo HANGUL SYLLABLE GOE +AD50 ; LV # Lo HANGUL SYLLABLE GYO +AD6C ; LV # Lo HANGUL SYLLABLE GU +AD88 ; LV # Lo HANGUL SYLLABLE GWEO +ADA4 ; LV # Lo HANGUL SYLLABLE GWE +ADC0 ; LV # Lo HANGUL SYLLABLE GWI +ADDC ; LV # Lo HANGUL SYLLABLE GYU +ADF8 ; LV # Lo HANGUL SYLLABLE GEU +AE14 ; LV # Lo HANGUL SYLLABLE GYI +AE30 ; LV # Lo HANGUL SYLLABLE GI +AE4C ; LV # Lo HANGUL SYLLABLE GGA +AE68 ; LV # Lo HANGUL SYLLABLE GGAE +AE84 ; LV # Lo HANGUL SYLLABLE GGYA +AEA0 ; LV # Lo HANGUL SYLLABLE GGYAE +AEBC ; LV # Lo HANGUL SYLLABLE GGEO +AED8 ; LV # Lo HANGUL SYLLABLE GGE +AEF4 ; LV # Lo HANGUL SYLLABLE GGYEO +AF10 ; LV # Lo HANGUL SYLLABLE GGYE +AF2C ; LV # Lo HANGUL SYLLABLE GGO +AF48 ; LV # Lo HANGUL SYLLABLE GGWA +AF64 ; LV # Lo HANGUL SYLLABLE GGWAE +AF80 ; LV # Lo HANGUL SYLLABLE GGOE +AF9C ; LV # Lo HANGUL SYLLABLE GGYO +AFB8 ; LV # Lo HANGUL SYLLABLE GGU +AFD4 ; LV # Lo HANGUL SYLLABLE GGWEO +AFF0 ; LV # Lo HANGUL SYLLABLE GGWE +B00C ; LV # Lo HANGUL SYLLABLE GGWI +B028 ; LV # Lo HANGUL SYLLABLE GGYU +B044 ; LV # Lo HANGUL SYLLABLE GGEU +B060 ; LV # Lo HANGUL SYLLABLE GGYI +B07C ; LV # Lo HANGUL SYLLABLE GGI +B098 ; LV # Lo HANGUL SYLLABLE NA +B0B4 ; LV # Lo HANGUL SYLLABLE NAE +B0D0 ; LV # Lo HANGUL SYLLABLE NYA +B0EC ; LV # Lo HANGUL SYLLABLE NYAE +B108 ; LV # Lo HANGUL SYLLABLE NEO +B124 ; LV # Lo HANGUL SYLLABLE NE +B140 ; LV # Lo HANGUL SYLLABLE NYEO +B15C ; LV # Lo HANGUL SYLLABLE NYE +B178 ; LV # Lo HANGUL SYLLABLE NO +B194 ; LV # Lo HANGUL SYLLABLE NWA +B1B0 ; LV # Lo HANGUL SYLLABLE NWAE +B1CC ; LV # Lo HANGUL SYLLABLE NOE +B1E8 ; LV # Lo HANGUL SYLLABLE NYO +B204 ; LV # Lo HANGUL SYLLABLE NU +B220 ; LV # Lo HANGUL SYLLABLE NWEO +B23C ; LV # Lo HANGUL SYLLABLE NWE +B258 ; LV # Lo HANGUL SYLLABLE NWI +B274 ; LV # Lo HANGUL SYLLABLE NYU +B290 ; LV # Lo HANGUL SYLLABLE NEU +B2AC ; LV # Lo HANGUL SYLLABLE NYI +B2C8 ; LV # Lo HANGUL SYLLABLE NI +B2E4 ; LV # Lo HANGUL SYLLABLE DA +B300 ; LV # Lo HANGUL SYLLABLE DAE +B31C ; LV # Lo HANGUL SYLLABLE DYA +B338 ; LV # Lo HANGUL SYLLABLE DYAE +B354 ; LV # Lo HANGUL SYLLABLE DEO +B370 ; LV # Lo HANGUL SYLLABLE DE +B38C ; LV # Lo HANGUL SYLLABLE DYEO +B3A8 ; LV # Lo HANGUL SYLLABLE DYE +B3C4 ; LV # Lo HANGUL SYLLABLE DO +B3E0 ; LV # Lo HANGUL SYLLABLE DWA +B3FC ; LV # Lo HANGUL SYLLABLE DWAE +B418 ; LV # Lo HANGUL SYLLABLE DOE +B434 ; LV # Lo HANGUL SYLLABLE DYO +B450 ; LV # Lo HANGUL SYLLABLE DU +B46C ; LV # Lo HANGUL SYLLABLE DWEO +B488 ; LV # Lo HANGUL SYLLABLE DWE +B4A4 ; LV # Lo HANGUL SYLLABLE DWI +B4C0 ; LV # Lo HANGUL SYLLABLE DYU +B4DC ; LV # Lo HANGUL SYLLABLE DEU +B4F8 ; LV # Lo HANGUL SYLLABLE DYI +B514 ; LV # Lo HANGUL SYLLABLE DI +B530 ; LV # Lo HANGUL SYLLABLE DDA +B54C ; LV # Lo HANGUL SYLLABLE DDAE +B568 ; LV # Lo HANGUL SYLLABLE DDYA +B584 ; LV # Lo HANGUL SYLLABLE DDYAE +B5A0 ; LV # Lo HANGUL SYLLABLE DDEO +B5BC ; LV # Lo HANGUL SYLLABLE DDE +B5D8 ; LV # Lo HANGUL SYLLABLE DDYEO +B5F4 ; LV # Lo HANGUL SYLLABLE DDYE +B610 ; LV # Lo HANGUL SYLLABLE DDO +B62C ; LV # Lo HANGUL SYLLABLE DDWA +B648 ; LV # Lo HANGUL SYLLABLE DDWAE +B664 ; LV # Lo HANGUL SYLLABLE DDOE +B680 ; LV # Lo HANGUL SYLLABLE DDYO +B69C ; LV # Lo HANGUL SYLLABLE DDU +B6B8 ; LV # Lo HANGUL SYLLABLE DDWEO +B6D4 ; LV # Lo HANGUL SYLLABLE DDWE +B6F0 ; LV # Lo HANGUL SYLLABLE DDWI +B70C ; LV # Lo HANGUL SYLLABLE DDYU +B728 ; LV # Lo HANGUL SYLLABLE DDEU +B744 ; LV # Lo HANGUL SYLLABLE DDYI +B760 ; LV # Lo HANGUL SYLLABLE DDI +B77C ; LV # Lo HANGUL SYLLABLE RA +B798 ; LV # Lo HANGUL SYLLABLE RAE +B7B4 ; LV # Lo HANGUL SYLLABLE RYA +B7D0 ; LV # Lo HANGUL SYLLABLE RYAE +B7EC ; LV # Lo HANGUL SYLLABLE REO +B808 ; LV # Lo HANGUL SYLLABLE RE +B824 ; LV # Lo HANGUL SYLLABLE RYEO +B840 ; LV # Lo HANGUL SYLLABLE RYE +B85C ; LV # Lo HANGUL SYLLABLE RO +B878 ; LV # Lo HANGUL SYLLABLE RWA +B894 ; LV # Lo HANGUL SYLLABLE RWAE +B8B0 ; LV # Lo HANGUL SYLLABLE ROE +B8CC ; LV # Lo HANGUL SYLLABLE RYO +B8E8 ; LV # Lo HANGUL SYLLABLE RU +B904 ; LV # Lo HANGUL SYLLABLE RWEO +B920 ; LV # Lo HANGUL SYLLABLE RWE +B93C ; LV # Lo HANGUL SYLLABLE RWI +B958 ; LV # Lo HANGUL SYLLABLE RYU +B974 ; LV # Lo HANGUL SYLLABLE REU +B990 ; LV # Lo HANGUL SYLLABLE RYI +B9AC ; LV # Lo HANGUL SYLLABLE RI +B9C8 ; LV # Lo HANGUL SYLLABLE MA +B9E4 ; LV # Lo HANGUL SYLLABLE MAE +BA00 ; LV # Lo HANGUL SYLLABLE MYA +BA1C ; LV # Lo HANGUL SYLLABLE MYAE +BA38 ; LV # Lo HANGUL SYLLABLE MEO +BA54 ; LV # Lo HANGUL SYLLABLE ME +BA70 ; LV # Lo HANGUL SYLLABLE MYEO +BA8C ; LV # Lo HANGUL SYLLABLE MYE +BAA8 ; LV # Lo HANGUL SYLLABLE MO +BAC4 ; LV # Lo HANGUL SYLLABLE MWA +BAE0 ; LV # Lo HANGUL SYLLABLE MWAE +BAFC ; LV # Lo HANGUL SYLLABLE MOE +BB18 ; LV # Lo HANGUL SYLLABLE MYO +BB34 ; LV # Lo HANGUL SYLLABLE MU +BB50 ; LV # Lo HANGUL SYLLABLE MWEO +BB6C ; LV # Lo HANGUL SYLLABLE MWE +BB88 ; LV # Lo HANGUL SYLLABLE MWI +BBA4 ; LV # Lo HANGUL SYLLABLE MYU +BBC0 ; LV # Lo HANGUL SYLLABLE MEU +BBDC ; LV # Lo HANGUL SYLLABLE MYI +BBF8 ; LV # Lo HANGUL SYLLABLE MI +BC14 ; LV # Lo HANGUL SYLLABLE BA +BC30 ; LV # Lo HANGUL SYLLABLE BAE +BC4C ; LV # Lo HANGUL SYLLABLE BYA +BC68 ; LV # Lo HANGUL SYLLABLE BYAE +BC84 ; LV # Lo HANGUL SYLLABLE BEO +BCA0 ; LV # Lo HANGUL SYLLABLE BE +BCBC ; LV # Lo HANGUL SYLLABLE BYEO +BCD8 ; LV # Lo HANGUL SYLLABLE BYE +BCF4 ; LV # Lo HANGUL SYLLABLE BO +BD10 ; LV # Lo HANGUL SYLLABLE BWA +BD2C ; LV # Lo HANGUL SYLLABLE BWAE +BD48 ; LV # Lo HANGUL SYLLABLE BOE +BD64 ; LV # Lo HANGUL SYLLABLE BYO +BD80 ; LV # Lo HANGUL SYLLABLE BU +BD9C ; LV # Lo HANGUL SYLLABLE BWEO +BDB8 ; LV # Lo HANGUL SYLLABLE BWE +BDD4 ; LV # Lo HANGUL SYLLABLE BWI +BDF0 ; LV # Lo HANGUL SYLLABLE BYU +BE0C ; LV # Lo HANGUL SYLLABLE BEU +BE28 ; LV # Lo HANGUL SYLLABLE BYI +BE44 ; LV # Lo HANGUL SYLLABLE BI +BE60 ; LV # Lo HANGUL SYLLABLE BBA +BE7C ; LV # Lo HANGUL SYLLABLE BBAE +BE98 ; LV # Lo HANGUL SYLLABLE BBYA +BEB4 ; LV # Lo HANGUL SYLLABLE BBYAE +BED0 ; LV # Lo HANGUL SYLLABLE BBEO +BEEC ; LV # Lo HANGUL SYLLABLE BBE +BF08 ; LV # Lo HANGUL SYLLABLE BBYEO +BF24 ; LV # Lo HANGUL SYLLABLE BBYE +BF40 ; LV # Lo HANGUL SYLLABLE BBO +BF5C ; LV # Lo HANGUL SYLLABLE BBWA +BF78 ; LV # Lo HANGUL SYLLABLE BBWAE +BF94 ; LV # Lo HANGUL SYLLABLE BBOE +BFB0 ; LV # Lo HANGUL SYLLABLE BBYO +BFCC ; LV # Lo HANGUL SYLLABLE BBU +BFE8 ; LV # Lo HANGUL SYLLABLE BBWEO +C004 ; LV # Lo HANGUL SYLLABLE BBWE +C020 ; LV # Lo HANGUL SYLLABLE BBWI +C03C ; LV # Lo HANGUL SYLLABLE BBYU +C058 ; LV # Lo HANGUL SYLLABLE BBEU +C074 ; LV # Lo HANGUL SYLLABLE BBYI +C090 ; LV # Lo HANGUL SYLLABLE BBI +C0AC ; LV # Lo HANGUL SYLLABLE SA +C0C8 ; LV # Lo HANGUL SYLLABLE SAE +C0E4 ; LV # Lo HANGUL SYLLABLE SYA +C100 ; LV # Lo HANGUL SYLLABLE SYAE +C11C ; LV # Lo HANGUL SYLLABLE SEO +C138 ; LV # Lo HANGUL SYLLABLE SE +C154 ; LV # Lo HANGUL SYLLABLE SYEO +C170 ; LV # Lo HANGUL SYLLABLE SYE +C18C ; LV # Lo HANGUL SYLLABLE SO +C1A8 ; LV # Lo HANGUL SYLLABLE SWA +C1C4 ; LV # Lo HANGUL SYLLABLE SWAE +C1E0 ; LV # Lo HANGUL SYLLABLE SOE +C1FC ; LV # Lo HANGUL SYLLABLE SYO +C218 ; LV # Lo HANGUL SYLLABLE SU +C234 ; LV # Lo HANGUL SYLLABLE SWEO +C250 ; LV # Lo HANGUL SYLLABLE SWE +C26C ; LV # Lo HANGUL SYLLABLE SWI +C288 ; LV # Lo HANGUL SYLLABLE SYU +C2A4 ; LV # Lo HANGUL SYLLABLE SEU +C2C0 ; LV # Lo HANGUL SYLLABLE SYI +C2DC ; LV # Lo HANGUL SYLLABLE SI +C2F8 ; LV # Lo HANGUL SYLLABLE SSA +C314 ; LV # Lo HANGUL SYLLABLE SSAE +C330 ; LV # Lo HANGUL SYLLABLE SSYA +C34C ; LV # Lo HANGUL SYLLABLE SSYAE +C368 ; LV # Lo HANGUL SYLLABLE SSEO +C384 ; LV # Lo HANGUL SYLLABLE SSE +C3A0 ; LV # Lo HANGUL SYLLABLE SSYEO +C3BC ; LV # Lo HANGUL SYLLABLE SSYE +C3D8 ; LV # Lo HANGUL SYLLABLE SSO +C3F4 ; LV # Lo HANGUL SYLLABLE SSWA +C410 ; LV # Lo HANGUL SYLLABLE SSWAE +C42C ; LV # Lo HANGUL SYLLABLE SSOE +C448 ; LV # Lo HANGUL SYLLABLE SSYO +C464 ; LV # Lo HANGUL SYLLABLE SSU +C480 ; LV # Lo HANGUL SYLLABLE SSWEO +C49C ; LV # Lo HANGUL SYLLABLE SSWE +C4B8 ; LV # Lo HANGUL SYLLABLE SSWI +C4D4 ; LV # Lo HANGUL SYLLABLE SSYU +C4F0 ; LV # Lo HANGUL SYLLABLE SSEU +C50C ; LV # Lo HANGUL SYLLABLE SSYI +C528 ; LV # Lo HANGUL SYLLABLE SSI +C544 ; LV # Lo HANGUL SYLLABLE A +C560 ; LV # Lo HANGUL SYLLABLE AE +C57C ; LV # Lo HANGUL SYLLABLE YA +C598 ; LV # Lo HANGUL SYLLABLE YAE +C5B4 ; LV # Lo HANGUL SYLLABLE EO +C5D0 ; LV # Lo HANGUL SYLLABLE E +C5EC ; LV # Lo HANGUL SYLLABLE YEO +C608 ; LV # Lo HANGUL SYLLABLE YE +C624 ; LV # Lo HANGUL SYLLABLE O +C640 ; LV # Lo HANGUL SYLLABLE WA +C65C ; LV # Lo HANGUL SYLLABLE WAE +C678 ; LV # Lo HANGUL SYLLABLE OE +C694 ; LV # Lo HANGUL SYLLABLE YO +C6B0 ; LV # Lo HANGUL SYLLABLE U +C6CC ; LV # Lo HANGUL SYLLABLE WEO +C6E8 ; LV # Lo HANGUL SYLLABLE WE +C704 ; LV # Lo HANGUL SYLLABLE WI +C720 ; LV # Lo HANGUL SYLLABLE YU +C73C ; LV # Lo HANGUL SYLLABLE EU +C758 ; LV # Lo HANGUL SYLLABLE YI +C774 ; LV # Lo HANGUL SYLLABLE I +C790 ; LV # Lo HANGUL SYLLABLE JA +C7AC ; LV # Lo HANGUL SYLLABLE JAE +C7C8 ; LV # Lo HANGUL SYLLABLE JYA +C7E4 ; LV # Lo HANGUL SYLLABLE JYAE +C800 ; LV # Lo HANGUL SYLLABLE JEO +C81C ; LV # Lo HANGUL SYLLABLE JE +C838 ; LV # Lo HANGUL SYLLABLE JYEO +C854 ; LV # Lo HANGUL SYLLABLE JYE +C870 ; LV # Lo HANGUL SYLLABLE JO +C88C ; LV # Lo HANGUL SYLLABLE JWA +C8A8 ; LV # Lo HANGUL SYLLABLE JWAE +C8C4 ; LV # Lo HANGUL SYLLABLE JOE +C8E0 ; LV # Lo HANGUL SYLLABLE JYO +C8FC ; LV # Lo HANGUL SYLLABLE JU +C918 ; LV # Lo HANGUL SYLLABLE JWEO +C934 ; LV # Lo HANGUL SYLLABLE JWE +C950 ; LV # Lo HANGUL SYLLABLE JWI +C96C ; LV # Lo HANGUL SYLLABLE JYU +C988 ; LV # Lo HANGUL SYLLABLE JEU +C9A4 ; LV # Lo HANGUL SYLLABLE JYI +C9C0 ; LV # Lo HANGUL SYLLABLE JI +C9DC ; LV # Lo HANGUL SYLLABLE JJA +C9F8 ; LV # Lo HANGUL SYLLABLE JJAE +CA14 ; LV # Lo HANGUL SYLLABLE JJYA +CA30 ; LV # Lo HANGUL SYLLABLE JJYAE +CA4C ; LV # Lo HANGUL SYLLABLE JJEO +CA68 ; LV # Lo HANGUL SYLLABLE JJE +CA84 ; LV # Lo HANGUL SYLLABLE JJYEO +CAA0 ; LV # Lo HANGUL SYLLABLE JJYE +CABC ; LV # Lo HANGUL SYLLABLE JJO +CAD8 ; LV # Lo HANGUL SYLLABLE JJWA +CAF4 ; LV # Lo HANGUL SYLLABLE JJWAE +CB10 ; LV # Lo HANGUL SYLLABLE JJOE +CB2C ; LV # Lo HANGUL SYLLABLE JJYO +CB48 ; LV # Lo HANGUL SYLLABLE JJU +CB64 ; LV # Lo HANGUL SYLLABLE JJWEO +CB80 ; LV # Lo HANGUL SYLLABLE JJWE +CB9C ; LV # Lo HANGUL SYLLABLE JJWI +CBB8 ; LV # Lo HANGUL SYLLABLE JJYU +CBD4 ; LV # Lo HANGUL SYLLABLE JJEU +CBF0 ; LV # Lo HANGUL SYLLABLE JJYI +CC0C ; LV # Lo HANGUL SYLLABLE JJI +CC28 ; LV # Lo HANGUL SYLLABLE CA +CC44 ; LV # Lo HANGUL SYLLABLE CAE +CC60 ; LV # Lo HANGUL SYLLABLE CYA +CC7C ; LV # Lo HANGUL SYLLABLE CYAE +CC98 ; LV # Lo HANGUL SYLLABLE CEO +CCB4 ; LV # Lo HANGUL SYLLABLE CE +CCD0 ; LV # Lo HANGUL SYLLABLE CYEO +CCEC ; LV # Lo HANGUL SYLLABLE CYE +CD08 ; LV # Lo HANGUL SYLLABLE CO +CD24 ; LV # Lo HANGUL SYLLABLE CWA +CD40 ; LV # Lo HANGUL SYLLABLE CWAE +CD5C ; LV # Lo HANGUL SYLLABLE COE +CD78 ; LV # Lo HANGUL SYLLABLE CYO +CD94 ; LV # Lo HANGUL SYLLABLE CU +CDB0 ; LV # Lo HANGUL SYLLABLE CWEO +CDCC ; LV # Lo HANGUL SYLLABLE CWE +CDE8 ; LV # Lo HANGUL SYLLABLE CWI +CE04 ; LV # Lo HANGUL SYLLABLE CYU +CE20 ; LV # Lo HANGUL SYLLABLE CEU +CE3C ; LV # Lo HANGUL SYLLABLE CYI +CE58 ; LV # Lo HANGUL SYLLABLE CI +CE74 ; LV # Lo HANGUL SYLLABLE KA +CE90 ; LV # Lo HANGUL SYLLABLE KAE +CEAC ; LV # Lo HANGUL SYLLABLE KYA +CEC8 ; LV # Lo HANGUL SYLLABLE KYAE +CEE4 ; LV # Lo HANGUL SYLLABLE KEO +CF00 ; LV # Lo HANGUL SYLLABLE KE +CF1C ; LV # Lo HANGUL SYLLABLE KYEO +CF38 ; LV # Lo HANGUL SYLLABLE KYE +CF54 ; LV # Lo HANGUL SYLLABLE KO +CF70 ; LV # Lo HANGUL SYLLABLE KWA +CF8C ; LV # Lo HANGUL SYLLABLE KWAE +CFA8 ; LV # Lo HANGUL SYLLABLE KOE +CFC4 ; LV # Lo HANGUL SYLLABLE KYO +CFE0 ; LV # Lo HANGUL SYLLABLE KU +CFFC ; LV # Lo HANGUL SYLLABLE KWEO +D018 ; LV # Lo HANGUL SYLLABLE KWE +D034 ; LV # Lo HANGUL SYLLABLE KWI +D050 ; LV # Lo HANGUL SYLLABLE KYU +D06C ; LV # Lo HANGUL SYLLABLE KEU +D088 ; LV # Lo HANGUL SYLLABLE KYI +D0A4 ; LV # Lo HANGUL SYLLABLE KI +D0C0 ; LV # Lo HANGUL SYLLABLE TA +D0DC ; LV # Lo HANGUL SYLLABLE TAE +D0F8 ; LV # Lo HANGUL SYLLABLE TYA +D114 ; LV # Lo HANGUL SYLLABLE TYAE +D130 ; LV # Lo HANGUL SYLLABLE TEO +D14C ; LV # Lo HANGUL SYLLABLE TE +D168 ; LV # Lo HANGUL SYLLABLE TYEO +D184 ; LV # Lo HANGUL SYLLABLE TYE +D1A0 ; LV # Lo HANGUL SYLLABLE TO +D1BC ; LV # Lo HANGUL SYLLABLE TWA +D1D8 ; LV # Lo HANGUL SYLLABLE TWAE +D1F4 ; LV # Lo HANGUL SYLLABLE TOE +D210 ; LV # Lo HANGUL SYLLABLE TYO +D22C ; LV # Lo HANGUL SYLLABLE TU +D248 ; LV # Lo HANGUL SYLLABLE TWEO +D264 ; LV # Lo HANGUL SYLLABLE TWE +D280 ; LV # Lo HANGUL SYLLABLE TWI +D29C ; LV # Lo HANGUL SYLLABLE TYU +D2B8 ; LV # Lo HANGUL SYLLABLE TEU +D2D4 ; LV # Lo HANGUL SYLLABLE TYI +D2F0 ; LV # Lo HANGUL SYLLABLE TI +D30C ; LV # Lo HANGUL SYLLABLE PA +D328 ; LV # Lo HANGUL SYLLABLE PAE +D344 ; LV # Lo HANGUL SYLLABLE PYA +D360 ; LV # Lo HANGUL SYLLABLE PYAE +D37C ; LV # Lo HANGUL SYLLABLE PEO +D398 ; LV # Lo HANGUL SYLLABLE PE +D3B4 ; LV # Lo HANGUL SYLLABLE PYEO +D3D0 ; LV # Lo HANGUL SYLLABLE PYE +D3EC ; LV # Lo HANGUL SYLLABLE PO +D408 ; LV # Lo HANGUL SYLLABLE PWA +D424 ; LV # Lo HANGUL SYLLABLE PWAE +D440 ; LV # Lo HANGUL SYLLABLE POE +D45C ; LV # Lo HANGUL SYLLABLE PYO +D478 ; LV # Lo HANGUL SYLLABLE PU +D494 ; LV # Lo HANGUL SYLLABLE PWEO +D4B0 ; LV # Lo HANGUL SYLLABLE PWE +D4CC ; LV # Lo HANGUL SYLLABLE PWI +D4E8 ; LV # Lo HANGUL SYLLABLE PYU +D504 ; LV # Lo HANGUL SYLLABLE PEU +D520 ; LV # Lo HANGUL SYLLABLE PYI +D53C ; LV # Lo HANGUL SYLLABLE PI +D558 ; LV # Lo HANGUL SYLLABLE HA +D574 ; LV # Lo HANGUL SYLLABLE HAE +D590 ; LV # Lo HANGUL SYLLABLE HYA +D5AC ; LV # Lo HANGUL SYLLABLE HYAE +D5C8 ; LV # Lo HANGUL SYLLABLE HEO +D5E4 ; LV # Lo HANGUL SYLLABLE HE +D600 ; LV # Lo HANGUL SYLLABLE HYEO +D61C ; LV # Lo HANGUL SYLLABLE HYE +D638 ; LV # Lo HANGUL SYLLABLE HO +D654 ; LV # Lo HANGUL SYLLABLE HWA +D670 ; LV # Lo HANGUL SYLLABLE HWAE +D68C ; LV # Lo HANGUL SYLLABLE HOE +D6A8 ; LV # Lo HANGUL SYLLABLE HYO +D6C4 ; LV # Lo HANGUL SYLLABLE HU +D6E0 ; LV # Lo HANGUL SYLLABLE HWEO +D6FC ; LV # Lo HANGUL SYLLABLE HWE +D718 ; LV # Lo HANGUL SYLLABLE HWI +D734 ; LV # Lo HANGUL SYLLABLE HYU +D750 ; LV # Lo HANGUL SYLLABLE HEU +D76C ; LV # Lo HANGUL SYLLABLE HYI +D788 ; LV # Lo HANGUL SYLLABLE HI + +# Total code points: 399 + +# ================================================ + +# Hangul_Syllable_Type=LVT_Syllable + +AC01..AC1B ; LVT # Lo [27] HANGUL SYLLABLE GAG..HANGUL SYLLABLE GAH +AC1D..AC37 ; LVT # Lo [27] HANGUL SYLLABLE GAEG..HANGUL SYLLABLE GAEH +AC39..AC53 ; LVT # Lo [27] HANGUL SYLLABLE GYAG..HANGUL SYLLABLE GYAH +AC55..AC6F ; LVT # Lo [27] HANGUL SYLLABLE GYAEG..HANGUL SYLLABLE GYAEH +AC71..AC8B ; LVT # Lo [27] HANGUL SYLLABLE GEOG..HANGUL SYLLABLE GEOH +AC8D..ACA7 ; LVT # Lo [27] HANGUL SYLLABLE GEG..HANGUL SYLLABLE GEH +ACA9..ACC3 ; LVT # Lo [27] HANGUL SYLLABLE GYEOG..HANGUL SYLLABLE GYEOH +ACC5..ACDF ; LVT # Lo [27] HANGUL SYLLABLE GYEG..HANGUL SYLLABLE GYEH +ACE1..ACFB ; LVT # Lo [27] HANGUL SYLLABLE GOG..HANGUL SYLLABLE GOH +ACFD..AD17 ; LVT # Lo [27] HANGUL SYLLABLE GWAG..HANGUL SYLLABLE GWAH +AD19..AD33 ; LVT # Lo [27] HANGUL SYLLABLE GWAEG..HANGUL SYLLABLE GWAEH +AD35..AD4F ; LVT # Lo [27] HANGUL SYLLABLE GOEG..HANGUL SYLLABLE GOEH +AD51..AD6B ; LVT # Lo [27] HANGUL SYLLABLE GYOG..HANGUL SYLLABLE GYOH +AD6D..AD87 ; LVT # Lo [27] HANGUL SYLLABLE GUG..HANGUL SYLLABLE GUH +AD89..ADA3 ; LVT # Lo [27] HANGUL SYLLABLE GWEOG..HANGUL SYLLABLE GWEOH +ADA5..ADBF ; LVT # Lo [27] HANGUL SYLLABLE GWEG..HANGUL SYLLABLE GWEH +ADC1..ADDB ; LVT # Lo [27] HANGUL SYLLABLE GWIG..HANGUL SYLLABLE GWIH +ADDD..ADF7 ; LVT # Lo [27] HANGUL SYLLABLE GYUG..HANGUL SYLLABLE GYUH +ADF9..AE13 ; LVT # Lo [27] HANGUL SYLLABLE GEUG..HANGUL SYLLABLE GEUH +AE15..AE2F ; LVT # Lo [27] HANGUL SYLLABLE GYIG..HANGUL SYLLABLE GYIH +AE31..AE4B ; LVT # Lo [27] HANGUL SYLLABLE GIG..HANGUL SYLLABLE GIH +AE4D..AE67 ; LVT # Lo [27] HANGUL SYLLABLE GGAG..HANGUL SYLLABLE GGAH +AE69..AE83 ; LVT # Lo [27] HANGUL SYLLABLE GGAEG..HANGUL SYLLABLE GGAEH +AE85..AE9F ; LVT # Lo [27] HANGUL SYLLABLE GGYAG..HANGUL SYLLABLE GGYAH +AEA1..AEBB ; LVT # Lo [27] HANGUL SYLLABLE GGYAEG..HANGUL SYLLABLE GGYAEH +AEBD..AED7 ; LVT # Lo [27] HANGUL SYLLABLE GGEOG..HANGUL SYLLABLE GGEOH +AED9..AEF3 ; LVT # Lo [27] HANGUL SYLLABLE GGEG..HANGUL SYLLABLE GGEH +AEF5..AF0F ; LVT # Lo [27] HANGUL SYLLABLE GGYEOG..HANGUL SYLLABLE GGYEOH +AF11..AF2B ; LVT # Lo [27] HANGUL SYLLABLE GGYEG..HANGUL SYLLABLE GGYEH +AF2D..AF47 ; LVT # Lo [27] HANGUL SYLLABLE GGOG..HANGUL SYLLABLE GGOH +AF49..AF63 ; LVT # Lo [27] HANGUL SYLLABLE GGWAG..HANGUL SYLLABLE GGWAH +AF65..AF7F ; LVT # Lo [27] HANGUL SYLLABLE GGWAEG..HANGUL SYLLABLE GGWAEH +AF81..AF9B ; LVT # Lo [27] HANGUL SYLLABLE GGOEG..HANGUL SYLLABLE GGOEH +AF9D..AFB7 ; LVT # Lo [27] HANGUL SYLLABLE GGYOG..HANGUL SYLLABLE GGYOH +AFB9..AFD3 ; LVT # Lo [27] HANGUL SYLLABLE GGUG..HANGUL SYLLABLE GGUH +AFD5..AFEF ; LVT # Lo [27] HANGUL SYLLABLE GGWEOG..HANGUL SYLLABLE GGWEOH +AFF1..B00B ; LVT # Lo [27] HANGUL SYLLABLE GGWEG..HANGUL SYLLABLE GGWEH +B00D..B027 ; LVT # Lo [27] HANGUL SYLLABLE GGWIG..HANGUL SYLLABLE GGWIH +B029..B043 ; LVT # Lo [27] HANGUL SYLLABLE GGYUG..HANGUL SYLLABLE GGYUH +B045..B05F ; LVT # Lo [27] HANGUL SYLLABLE GGEUG..HANGUL SYLLABLE GGEUH +B061..B07B ; LVT # Lo [27] HANGUL SYLLABLE GGYIG..HANGUL SYLLABLE GGYIH +B07D..B097 ; LVT # Lo [27] HANGUL SYLLABLE GGIG..HANGUL SYLLABLE GGIH +B099..B0B3 ; LVT # Lo [27] HANGUL SYLLABLE NAG..HANGUL SYLLABLE NAH +B0B5..B0CF ; LVT # Lo [27] HANGUL SYLLABLE NAEG..HANGUL SYLLABLE NAEH +B0D1..B0EB ; LVT # Lo [27] HANGUL SYLLABLE NYAG..HANGUL SYLLABLE NYAH +B0ED..B107 ; LVT # Lo [27] HANGUL SYLLABLE NYAEG..HANGUL SYLLABLE NYAEH +B109..B123 ; LVT # Lo [27] HANGUL SYLLABLE NEOG..HANGUL SYLLABLE NEOH +B125..B13F ; LVT # Lo [27] HANGUL SYLLABLE NEG..HANGUL SYLLABLE NEH +B141..B15B ; LVT # Lo [27] HANGUL SYLLABLE NYEOG..HANGUL SYLLABLE NYEOH +B15D..B177 ; LVT # Lo [27] HANGUL SYLLABLE NYEG..HANGUL SYLLABLE NYEH +B179..B193 ; LVT # Lo [27] HANGUL SYLLABLE NOG..HANGUL SYLLABLE NOH +B195..B1AF ; LVT # Lo [27] HANGUL SYLLABLE NWAG..HANGUL SYLLABLE NWAH +B1B1..B1CB ; LVT # Lo [27] HANGUL SYLLABLE NWAEG..HANGUL SYLLABLE NWAEH +B1CD..B1E7 ; LVT # Lo [27] HANGUL SYLLABLE NOEG..HANGUL SYLLABLE NOEH +B1E9..B203 ; LVT # Lo [27] HANGUL SYLLABLE NYOG..HANGUL SYLLABLE NYOH +B205..B21F ; LVT # Lo [27] HANGUL SYLLABLE NUG..HANGUL SYLLABLE NUH +B221..B23B ; LVT # Lo [27] HANGUL SYLLABLE NWEOG..HANGUL SYLLABLE NWEOH +B23D..B257 ; LVT # Lo [27] HANGUL SYLLABLE NWEG..HANGUL SYLLABLE NWEH +B259..B273 ; LVT # Lo [27] HANGUL SYLLABLE NWIG..HANGUL SYLLABLE NWIH +B275..B28F ; LVT # Lo [27] HANGUL SYLLABLE NYUG..HANGUL SYLLABLE NYUH +B291..B2AB ; LVT # Lo [27] HANGUL SYLLABLE NEUG..HANGUL SYLLABLE NEUH +B2AD..B2C7 ; LVT # Lo [27] HANGUL SYLLABLE NYIG..HANGUL SYLLABLE NYIH +B2C9..B2E3 ; LVT # Lo [27] HANGUL SYLLABLE NIG..HANGUL SYLLABLE NIH +B2E5..B2FF ; LVT # Lo [27] HANGUL SYLLABLE DAG..HANGUL SYLLABLE DAH +B301..B31B ; LVT # Lo [27] HANGUL SYLLABLE DAEG..HANGUL SYLLABLE DAEH +B31D..B337 ; LVT # Lo [27] HANGUL SYLLABLE DYAG..HANGUL SYLLABLE DYAH +B339..B353 ; LVT # Lo [27] HANGUL SYLLABLE DYAEG..HANGUL SYLLABLE DYAEH +B355..B36F ; LVT # Lo [27] HANGUL SYLLABLE DEOG..HANGUL SYLLABLE DEOH +B371..B38B ; LVT # Lo [27] HANGUL SYLLABLE DEG..HANGUL SYLLABLE DEH +B38D..B3A7 ; LVT # Lo [27] HANGUL SYLLABLE DYEOG..HANGUL SYLLABLE DYEOH +B3A9..B3C3 ; LVT # Lo [27] HANGUL SYLLABLE DYEG..HANGUL SYLLABLE DYEH +B3C5..B3DF ; LVT # Lo [27] HANGUL SYLLABLE DOG..HANGUL SYLLABLE DOH +B3E1..B3FB ; LVT # Lo [27] HANGUL SYLLABLE DWAG..HANGUL SYLLABLE DWAH +B3FD..B417 ; LVT # Lo [27] HANGUL SYLLABLE DWAEG..HANGUL SYLLABLE DWAEH +B419..B433 ; LVT # Lo [27] HANGUL SYLLABLE DOEG..HANGUL SYLLABLE DOEH +B435..B44F ; LVT # Lo [27] HANGUL SYLLABLE DYOG..HANGUL SYLLABLE DYOH +B451..B46B ; LVT # Lo [27] HANGUL SYLLABLE DUG..HANGUL SYLLABLE DUH +B46D..B487 ; LVT # Lo [27] HANGUL SYLLABLE DWEOG..HANGUL SYLLABLE DWEOH +B489..B4A3 ; LVT # Lo [27] HANGUL SYLLABLE DWEG..HANGUL SYLLABLE DWEH +B4A5..B4BF ; LVT # Lo [27] HANGUL SYLLABLE DWIG..HANGUL SYLLABLE DWIH +B4C1..B4DB ; LVT # Lo [27] HANGUL SYLLABLE DYUG..HANGUL SYLLABLE DYUH +B4DD..B4F7 ; LVT # Lo [27] HANGUL SYLLABLE DEUG..HANGUL SYLLABLE DEUH +B4F9..B513 ; LVT # Lo [27] HANGUL SYLLABLE DYIG..HANGUL SYLLABLE DYIH +B515..B52F ; LVT # Lo [27] HANGUL SYLLABLE DIG..HANGUL SYLLABLE DIH +B531..B54B ; LVT # Lo [27] HANGUL SYLLABLE DDAG..HANGUL SYLLABLE DDAH +B54D..B567 ; LVT # Lo [27] HANGUL SYLLABLE DDAEG..HANGUL SYLLABLE DDAEH +B569..B583 ; LVT # Lo [27] HANGUL SYLLABLE DDYAG..HANGUL SYLLABLE DDYAH +B585..B59F ; LVT # Lo [27] HANGUL SYLLABLE DDYAEG..HANGUL SYLLABLE DDYAEH +B5A1..B5BB ; LVT # Lo [27] HANGUL SYLLABLE DDEOG..HANGUL SYLLABLE DDEOH +B5BD..B5D7 ; LVT # Lo [27] HANGUL SYLLABLE DDEG..HANGUL SYLLABLE DDEH +B5D9..B5F3 ; LVT # Lo [27] HANGUL SYLLABLE DDYEOG..HANGUL SYLLABLE DDYEOH +B5F5..B60F ; LVT # Lo [27] HANGUL SYLLABLE DDYEG..HANGUL SYLLABLE DDYEH +B611..B62B ; LVT # Lo [27] HANGUL SYLLABLE DDOG..HANGUL SYLLABLE DDOH +B62D..B647 ; LVT # Lo [27] HANGUL SYLLABLE DDWAG..HANGUL SYLLABLE DDWAH +B649..B663 ; LVT # Lo [27] HANGUL SYLLABLE DDWAEG..HANGUL SYLLABLE DDWAEH +B665..B67F ; LVT # Lo [27] HANGUL SYLLABLE DDOEG..HANGUL SYLLABLE DDOEH +B681..B69B ; LVT # Lo [27] HANGUL SYLLABLE DDYOG..HANGUL SYLLABLE DDYOH +B69D..B6B7 ; LVT # Lo [27] HANGUL SYLLABLE DDUG..HANGUL SYLLABLE DDUH +B6B9..B6D3 ; LVT # Lo [27] HANGUL SYLLABLE DDWEOG..HANGUL SYLLABLE DDWEOH +B6D5..B6EF ; LVT # Lo [27] HANGUL SYLLABLE DDWEG..HANGUL SYLLABLE DDWEH +B6F1..B70B ; LVT # Lo [27] HANGUL SYLLABLE DDWIG..HANGUL SYLLABLE DDWIH +B70D..B727 ; LVT # Lo [27] HANGUL SYLLABLE DDYUG..HANGUL SYLLABLE DDYUH +B729..B743 ; LVT # Lo [27] HANGUL SYLLABLE DDEUG..HANGUL SYLLABLE DDEUH +B745..B75F ; LVT # Lo [27] HANGUL SYLLABLE DDYIG..HANGUL SYLLABLE DDYIH +B761..B77B ; LVT # Lo [27] HANGUL SYLLABLE DDIG..HANGUL SYLLABLE DDIH +B77D..B797 ; LVT # Lo [27] HANGUL SYLLABLE RAG..HANGUL SYLLABLE RAH +B799..B7B3 ; LVT # Lo [27] HANGUL SYLLABLE RAEG..HANGUL SYLLABLE RAEH +B7B5..B7CF ; LVT # Lo [27] HANGUL SYLLABLE RYAG..HANGUL SYLLABLE RYAH +B7D1..B7EB ; LVT # Lo [27] HANGUL SYLLABLE RYAEG..HANGUL SYLLABLE RYAEH +B7ED..B807 ; LVT # Lo [27] HANGUL SYLLABLE REOG..HANGUL SYLLABLE REOH +B809..B823 ; LVT # Lo [27] HANGUL SYLLABLE REG..HANGUL SYLLABLE REH +B825..B83F ; LVT # Lo [27] HANGUL SYLLABLE RYEOG..HANGUL SYLLABLE RYEOH +B841..B85B ; LVT # Lo [27] HANGUL SYLLABLE RYEG..HANGUL SYLLABLE RYEH +B85D..B877 ; LVT # Lo [27] HANGUL SYLLABLE ROG..HANGUL SYLLABLE ROH +B879..B893 ; LVT # Lo [27] HANGUL SYLLABLE RWAG..HANGUL SYLLABLE RWAH +B895..B8AF ; LVT # Lo [27] HANGUL SYLLABLE RWAEG..HANGUL SYLLABLE RWAEH +B8B1..B8CB ; LVT # Lo [27] HANGUL SYLLABLE ROEG..HANGUL SYLLABLE ROEH +B8CD..B8E7 ; LVT # Lo [27] HANGUL SYLLABLE RYOG..HANGUL SYLLABLE RYOH +B8E9..B903 ; LVT # Lo [27] HANGUL SYLLABLE RUG..HANGUL SYLLABLE RUH +B905..B91F ; LVT # Lo [27] HANGUL SYLLABLE RWEOG..HANGUL SYLLABLE RWEOH +B921..B93B ; LVT # Lo [27] HANGUL SYLLABLE RWEG..HANGUL SYLLABLE RWEH +B93D..B957 ; LVT # Lo [27] HANGUL SYLLABLE RWIG..HANGUL SYLLABLE RWIH +B959..B973 ; LVT # Lo [27] HANGUL SYLLABLE RYUG..HANGUL SYLLABLE RYUH +B975..B98F ; LVT # Lo [27] HANGUL SYLLABLE REUG..HANGUL SYLLABLE REUH +B991..B9AB ; LVT # Lo [27] HANGUL SYLLABLE RYIG..HANGUL SYLLABLE RYIH +B9AD..B9C7 ; LVT # Lo [27] HANGUL SYLLABLE RIG..HANGUL SYLLABLE RIH +B9C9..B9E3 ; LVT # Lo [27] HANGUL SYLLABLE MAG..HANGUL SYLLABLE MAH +B9E5..B9FF ; LVT # Lo [27] HANGUL SYLLABLE MAEG..HANGUL SYLLABLE MAEH +BA01..BA1B ; LVT # Lo [27] HANGUL SYLLABLE MYAG..HANGUL SYLLABLE MYAH +BA1D..BA37 ; LVT # Lo [27] HANGUL SYLLABLE MYAEG..HANGUL SYLLABLE MYAEH +BA39..BA53 ; LVT # Lo [27] HANGUL SYLLABLE MEOG..HANGUL SYLLABLE MEOH +BA55..BA6F ; LVT # Lo [27] HANGUL SYLLABLE MEG..HANGUL SYLLABLE MEH +BA71..BA8B ; LVT # Lo [27] HANGUL SYLLABLE MYEOG..HANGUL SYLLABLE MYEOH +BA8D..BAA7 ; LVT # Lo [27] HANGUL SYLLABLE MYEG..HANGUL SYLLABLE MYEH +BAA9..BAC3 ; LVT # Lo [27] HANGUL SYLLABLE MOG..HANGUL SYLLABLE MOH +BAC5..BADF ; LVT # Lo [27] HANGUL SYLLABLE MWAG..HANGUL SYLLABLE MWAH +BAE1..BAFB ; LVT # Lo [27] HANGUL SYLLABLE MWAEG..HANGUL SYLLABLE MWAEH +BAFD..BB17 ; LVT # Lo [27] HANGUL SYLLABLE MOEG..HANGUL SYLLABLE MOEH +BB19..BB33 ; LVT # Lo [27] HANGUL SYLLABLE MYOG..HANGUL SYLLABLE MYOH +BB35..BB4F ; LVT # Lo [27] HANGUL SYLLABLE MUG..HANGUL SYLLABLE MUH +BB51..BB6B ; LVT # Lo [27] HANGUL SYLLABLE MWEOG..HANGUL SYLLABLE MWEOH +BB6D..BB87 ; LVT # Lo [27] HANGUL SYLLABLE MWEG..HANGUL SYLLABLE MWEH +BB89..BBA3 ; LVT # Lo [27] HANGUL SYLLABLE MWIG..HANGUL SYLLABLE MWIH +BBA5..BBBF ; LVT # Lo [27] HANGUL SYLLABLE MYUG..HANGUL SYLLABLE MYUH +BBC1..BBDB ; LVT # Lo [27] HANGUL SYLLABLE MEUG..HANGUL SYLLABLE MEUH +BBDD..BBF7 ; LVT # Lo [27] HANGUL SYLLABLE MYIG..HANGUL SYLLABLE MYIH +BBF9..BC13 ; LVT # Lo [27] HANGUL SYLLABLE MIG..HANGUL SYLLABLE MIH +BC15..BC2F ; LVT # Lo [27] HANGUL SYLLABLE BAG..HANGUL SYLLABLE BAH +BC31..BC4B ; LVT # Lo [27] HANGUL SYLLABLE BAEG..HANGUL SYLLABLE BAEH +BC4D..BC67 ; LVT # Lo [27] HANGUL SYLLABLE BYAG..HANGUL SYLLABLE BYAH +BC69..BC83 ; LVT # Lo [27] HANGUL SYLLABLE BYAEG..HANGUL SYLLABLE BYAEH +BC85..BC9F ; LVT # Lo [27] HANGUL SYLLABLE BEOG..HANGUL SYLLABLE BEOH +BCA1..BCBB ; LVT # Lo [27] HANGUL SYLLABLE BEG..HANGUL SYLLABLE BEH +BCBD..BCD7 ; LVT # Lo [27] HANGUL SYLLABLE BYEOG..HANGUL SYLLABLE BYEOH +BCD9..BCF3 ; LVT # Lo [27] HANGUL SYLLABLE BYEG..HANGUL SYLLABLE BYEH +BCF5..BD0F ; LVT # Lo [27] HANGUL SYLLABLE BOG..HANGUL SYLLABLE BOH +BD11..BD2B ; LVT # Lo [27] HANGUL SYLLABLE BWAG..HANGUL SYLLABLE BWAH +BD2D..BD47 ; LVT # Lo [27] HANGUL SYLLABLE BWAEG..HANGUL SYLLABLE BWAEH +BD49..BD63 ; LVT # Lo [27] HANGUL SYLLABLE BOEG..HANGUL SYLLABLE BOEH +BD65..BD7F ; LVT # Lo [27] HANGUL SYLLABLE BYOG..HANGUL SYLLABLE BYOH +BD81..BD9B ; LVT # Lo [27] HANGUL SYLLABLE BUG..HANGUL SYLLABLE BUH +BD9D..BDB7 ; LVT # Lo [27] HANGUL SYLLABLE BWEOG..HANGUL SYLLABLE BWEOH +BDB9..BDD3 ; LVT # Lo [27] HANGUL SYLLABLE BWEG..HANGUL SYLLABLE BWEH +BDD5..BDEF ; LVT # Lo [27] HANGUL SYLLABLE BWIG..HANGUL SYLLABLE BWIH +BDF1..BE0B ; LVT # Lo [27] HANGUL SYLLABLE BYUG..HANGUL SYLLABLE BYUH +BE0D..BE27 ; LVT # Lo [27] HANGUL SYLLABLE BEUG..HANGUL SYLLABLE BEUH +BE29..BE43 ; LVT # Lo [27] HANGUL SYLLABLE BYIG..HANGUL SYLLABLE BYIH +BE45..BE5F ; LVT # Lo [27] HANGUL SYLLABLE BIG..HANGUL SYLLABLE BIH +BE61..BE7B ; LVT # Lo [27] HANGUL SYLLABLE BBAG..HANGUL SYLLABLE BBAH +BE7D..BE97 ; LVT # Lo [27] HANGUL SYLLABLE BBAEG..HANGUL SYLLABLE BBAEH +BE99..BEB3 ; LVT # Lo [27] HANGUL SYLLABLE BBYAG..HANGUL SYLLABLE BBYAH +BEB5..BECF ; LVT # Lo [27] HANGUL SYLLABLE BBYAEG..HANGUL SYLLABLE BBYAEH +BED1..BEEB ; LVT # Lo [27] HANGUL SYLLABLE BBEOG..HANGUL SYLLABLE BBEOH +BEED..BF07 ; LVT # Lo [27] HANGUL SYLLABLE BBEG..HANGUL SYLLABLE BBEH +BF09..BF23 ; LVT # Lo [27] HANGUL SYLLABLE BBYEOG..HANGUL SYLLABLE BBYEOH +BF25..BF3F ; LVT # Lo [27] HANGUL SYLLABLE BBYEG..HANGUL SYLLABLE BBYEH +BF41..BF5B ; LVT # Lo [27] HANGUL SYLLABLE BBOG..HANGUL SYLLABLE BBOH +BF5D..BF77 ; LVT # Lo [27] HANGUL SYLLABLE BBWAG..HANGUL SYLLABLE BBWAH +BF79..BF93 ; LVT # Lo [27] HANGUL SYLLABLE BBWAEG..HANGUL SYLLABLE BBWAEH +BF95..BFAF ; LVT # Lo [27] HANGUL SYLLABLE BBOEG..HANGUL SYLLABLE BBOEH +BFB1..BFCB ; LVT # Lo [27] HANGUL SYLLABLE BBYOG..HANGUL SYLLABLE BBYOH +BFCD..BFE7 ; LVT # Lo [27] HANGUL SYLLABLE BBUG..HANGUL SYLLABLE BBUH +BFE9..C003 ; LVT # Lo [27] HANGUL SYLLABLE BBWEOG..HANGUL SYLLABLE BBWEOH +C005..C01F ; LVT # Lo [27] HANGUL SYLLABLE BBWEG..HANGUL SYLLABLE BBWEH +C021..C03B ; LVT # Lo [27] HANGUL SYLLABLE BBWIG..HANGUL SYLLABLE BBWIH +C03D..C057 ; LVT # Lo [27] HANGUL SYLLABLE BBYUG..HANGUL SYLLABLE BBYUH +C059..C073 ; LVT # Lo [27] HANGUL SYLLABLE BBEUG..HANGUL SYLLABLE BBEUH +C075..C08F ; LVT # Lo [27] HANGUL SYLLABLE BBYIG..HANGUL SYLLABLE BBYIH +C091..C0AB ; LVT # Lo [27] HANGUL SYLLABLE BBIG..HANGUL SYLLABLE BBIH +C0AD..C0C7 ; LVT # Lo [27] HANGUL SYLLABLE SAG..HANGUL SYLLABLE SAH +C0C9..C0E3 ; LVT # Lo [27] HANGUL SYLLABLE SAEG..HANGUL SYLLABLE SAEH +C0E5..C0FF ; LVT # Lo [27] HANGUL SYLLABLE SYAG..HANGUL SYLLABLE SYAH +C101..C11B ; LVT # Lo [27] HANGUL SYLLABLE SYAEG..HANGUL SYLLABLE SYAEH +C11D..C137 ; LVT # Lo [27] HANGUL SYLLABLE SEOG..HANGUL SYLLABLE SEOH +C139..C153 ; LVT # Lo [27] HANGUL SYLLABLE SEG..HANGUL SYLLABLE SEH +C155..C16F ; LVT # Lo [27] HANGUL SYLLABLE SYEOG..HANGUL SYLLABLE SYEOH +C171..C18B ; LVT # Lo [27] HANGUL SYLLABLE SYEG..HANGUL SYLLABLE SYEH +C18D..C1A7 ; LVT # Lo [27] HANGUL SYLLABLE SOG..HANGUL SYLLABLE SOH +C1A9..C1C3 ; LVT # Lo [27] HANGUL SYLLABLE SWAG..HANGUL SYLLABLE SWAH +C1C5..C1DF ; LVT # Lo [27] HANGUL SYLLABLE SWAEG..HANGUL SYLLABLE SWAEH +C1E1..C1FB ; LVT # Lo [27] HANGUL SYLLABLE SOEG..HANGUL SYLLABLE SOEH +C1FD..C217 ; LVT # Lo [27] HANGUL SYLLABLE SYOG..HANGUL SYLLABLE SYOH +C219..C233 ; LVT # Lo [27] HANGUL SYLLABLE SUG..HANGUL SYLLABLE SUH +C235..C24F ; LVT # Lo [27] HANGUL SYLLABLE SWEOG..HANGUL SYLLABLE SWEOH +C251..C26B ; LVT # Lo [27] HANGUL SYLLABLE SWEG..HANGUL SYLLABLE SWEH +C26D..C287 ; LVT # Lo [27] HANGUL SYLLABLE SWIG..HANGUL SYLLABLE SWIH +C289..C2A3 ; LVT # Lo [27] HANGUL SYLLABLE SYUG..HANGUL SYLLABLE SYUH +C2A5..C2BF ; LVT # Lo [27] HANGUL SYLLABLE SEUG..HANGUL SYLLABLE SEUH +C2C1..C2DB ; LVT # Lo [27] HANGUL SYLLABLE SYIG..HANGUL SYLLABLE SYIH +C2DD..C2F7 ; LVT # Lo [27] HANGUL SYLLABLE SIG..HANGUL SYLLABLE SIH +C2F9..C313 ; LVT # Lo [27] HANGUL SYLLABLE SSAG..HANGUL SYLLABLE SSAH +C315..C32F ; LVT # Lo [27] HANGUL SYLLABLE SSAEG..HANGUL SYLLABLE SSAEH +C331..C34B ; LVT # Lo [27] HANGUL SYLLABLE SSYAG..HANGUL SYLLABLE SSYAH +C34D..C367 ; LVT # Lo [27] HANGUL SYLLABLE SSYAEG..HANGUL SYLLABLE SSYAEH +C369..C383 ; LVT # Lo [27] HANGUL SYLLABLE SSEOG..HANGUL SYLLABLE SSEOH +C385..C39F ; LVT # Lo [27] HANGUL SYLLABLE SSEG..HANGUL SYLLABLE SSEH +C3A1..C3BB ; LVT # Lo [27] HANGUL SYLLABLE SSYEOG..HANGUL SYLLABLE SSYEOH +C3BD..C3D7 ; LVT # Lo [27] HANGUL SYLLABLE SSYEG..HANGUL SYLLABLE SSYEH +C3D9..C3F3 ; LVT # Lo [27] HANGUL SYLLABLE SSOG..HANGUL SYLLABLE SSOH +C3F5..C40F ; LVT # Lo [27] HANGUL SYLLABLE SSWAG..HANGUL SYLLABLE SSWAH +C411..C42B ; LVT # Lo [27] HANGUL SYLLABLE SSWAEG..HANGUL SYLLABLE SSWAEH +C42D..C447 ; LVT # Lo [27] HANGUL SYLLABLE SSOEG..HANGUL SYLLABLE SSOEH +C449..C463 ; LVT # Lo [27] HANGUL SYLLABLE SSYOG..HANGUL SYLLABLE SSYOH +C465..C47F ; LVT # Lo [27] HANGUL SYLLABLE SSUG..HANGUL SYLLABLE SSUH +C481..C49B ; LVT # Lo [27] HANGUL SYLLABLE SSWEOG..HANGUL SYLLABLE SSWEOH +C49D..C4B7 ; LVT # Lo [27] HANGUL SYLLABLE SSWEG..HANGUL SYLLABLE SSWEH +C4B9..C4D3 ; LVT # Lo [27] HANGUL SYLLABLE SSWIG..HANGUL SYLLABLE SSWIH +C4D5..C4EF ; LVT # Lo [27] HANGUL SYLLABLE SSYUG..HANGUL SYLLABLE SSYUH +C4F1..C50B ; LVT # Lo [27] HANGUL SYLLABLE SSEUG..HANGUL SYLLABLE SSEUH +C50D..C527 ; LVT # Lo [27] HANGUL SYLLABLE SSYIG..HANGUL SYLLABLE SSYIH +C529..C543 ; LVT # Lo [27] HANGUL SYLLABLE SSIG..HANGUL SYLLABLE SSIH +C545..C55F ; LVT # Lo [27] HANGUL SYLLABLE AG..HANGUL SYLLABLE AH +C561..C57B ; LVT # Lo [27] HANGUL SYLLABLE AEG..HANGUL SYLLABLE AEH +C57D..C597 ; LVT # Lo [27] HANGUL SYLLABLE YAG..HANGUL SYLLABLE YAH +C599..C5B3 ; LVT # Lo [27] HANGUL SYLLABLE YAEG..HANGUL SYLLABLE YAEH +C5B5..C5CF ; LVT # Lo [27] HANGUL SYLLABLE EOG..HANGUL SYLLABLE EOH +C5D1..C5EB ; LVT # Lo [27] HANGUL SYLLABLE EG..HANGUL SYLLABLE EH +C5ED..C607 ; LVT # Lo [27] HANGUL SYLLABLE YEOG..HANGUL SYLLABLE YEOH +C609..C623 ; LVT # Lo [27] HANGUL SYLLABLE YEG..HANGUL SYLLABLE YEH +C625..C63F ; LVT # Lo [27] HANGUL SYLLABLE OG..HANGUL SYLLABLE OH +C641..C65B ; LVT # Lo [27] HANGUL SYLLABLE WAG..HANGUL SYLLABLE WAH +C65D..C677 ; LVT # Lo [27] HANGUL SYLLABLE WAEG..HANGUL SYLLABLE WAEH +C679..C693 ; LVT # Lo [27] HANGUL SYLLABLE OEG..HANGUL SYLLABLE OEH +C695..C6AF ; LVT # Lo [27] HANGUL SYLLABLE YOG..HANGUL SYLLABLE YOH +C6B1..C6CB ; LVT # Lo [27] HANGUL SYLLABLE UG..HANGUL SYLLABLE UH +C6CD..C6E7 ; LVT # Lo [27] HANGUL SYLLABLE WEOG..HANGUL SYLLABLE WEOH +C6E9..C703 ; LVT # Lo [27] HANGUL SYLLABLE WEG..HANGUL SYLLABLE WEH +C705..C71F ; LVT # Lo [27] HANGUL SYLLABLE WIG..HANGUL SYLLABLE WIH +C721..C73B ; LVT # Lo [27] HANGUL SYLLABLE YUG..HANGUL SYLLABLE YUH +C73D..C757 ; LVT # Lo [27] HANGUL SYLLABLE EUG..HANGUL SYLLABLE EUH +C759..C773 ; LVT # Lo [27] HANGUL SYLLABLE YIG..HANGUL SYLLABLE YIH +C775..C78F ; LVT # Lo [27] HANGUL SYLLABLE IG..HANGUL SYLLABLE IH +C791..C7AB ; LVT # Lo [27] HANGUL SYLLABLE JAG..HANGUL SYLLABLE JAH +C7AD..C7C7 ; LVT # Lo [27] HANGUL SYLLABLE JAEG..HANGUL SYLLABLE JAEH +C7C9..C7E3 ; LVT # Lo [27] HANGUL SYLLABLE JYAG..HANGUL SYLLABLE JYAH +C7E5..C7FF ; LVT # Lo [27] HANGUL SYLLABLE JYAEG..HANGUL SYLLABLE JYAEH +C801..C81B ; LVT # Lo [27] HANGUL SYLLABLE JEOG..HANGUL SYLLABLE JEOH +C81D..C837 ; LVT # Lo [27] HANGUL SYLLABLE JEG..HANGUL SYLLABLE JEH +C839..C853 ; LVT # Lo [27] HANGUL SYLLABLE JYEOG..HANGUL SYLLABLE JYEOH +C855..C86F ; LVT # Lo [27] HANGUL SYLLABLE JYEG..HANGUL SYLLABLE JYEH +C871..C88B ; LVT # Lo [27] HANGUL SYLLABLE JOG..HANGUL SYLLABLE JOH +C88D..C8A7 ; LVT # Lo [27] HANGUL SYLLABLE JWAG..HANGUL SYLLABLE JWAH +C8A9..C8C3 ; LVT # Lo [27] HANGUL SYLLABLE JWAEG..HANGUL SYLLABLE JWAEH +C8C5..C8DF ; LVT # Lo [27] HANGUL SYLLABLE JOEG..HANGUL SYLLABLE JOEH +C8E1..C8FB ; LVT # Lo [27] HANGUL SYLLABLE JYOG..HANGUL SYLLABLE JYOH +C8FD..C917 ; LVT # Lo [27] HANGUL SYLLABLE JUG..HANGUL SYLLABLE JUH +C919..C933 ; LVT # Lo [27] HANGUL SYLLABLE JWEOG..HANGUL SYLLABLE JWEOH +C935..C94F ; LVT # Lo [27] HANGUL SYLLABLE JWEG..HANGUL SYLLABLE JWEH +C951..C96B ; LVT # Lo [27] HANGUL SYLLABLE JWIG..HANGUL SYLLABLE JWIH +C96D..C987 ; LVT # Lo [27] HANGUL SYLLABLE JYUG..HANGUL SYLLABLE JYUH +C989..C9A3 ; LVT # Lo [27] HANGUL SYLLABLE JEUG..HANGUL SYLLABLE JEUH +C9A5..C9BF ; LVT # Lo [27] HANGUL SYLLABLE JYIG..HANGUL SYLLABLE JYIH +C9C1..C9DB ; LVT # Lo [27] HANGUL SYLLABLE JIG..HANGUL SYLLABLE JIH +C9DD..C9F7 ; LVT # Lo [27] HANGUL SYLLABLE JJAG..HANGUL SYLLABLE JJAH +C9F9..CA13 ; LVT # Lo [27] HANGUL SYLLABLE JJAEG..HANGUL SYLLABLE JJAEH +CA15..CA2F ; LVT # Lo [27] HANGUL SYLLABLE JJYAG..HANGUL SYLLABLE JJYAH +CA31..CA4B ; LVT # Lo [27] HANGUL SYLLABLE JJYAEG..HANGUL SYLLABLE JJYAEH +CA4D..CA67 ; LVT # Lo [27] HANGUL SYLLABLE JJEOG..HANGUL SYLLABLE JJEOH +CA69..CA83 ; LVT # Lo [27] HANGUL SYLLABLE JJEG..HANGUL SYLLABLE JJEH +CA85..CA9F ; LVT # Lo [27] HANGUL SYLLABLE JJYEOG..HANGUL SYLLABLE JJYEOH +CAA1..CABB ; LVT # Lo [27] HANGUL SYLLABLE JJYEG..HANGUL SYLLABLE JJYEH +CABD..CAD7 ; LVT # Lo [27] HANGUL SYLLABLE JJOG..HANGUL SYLLABLE JJOH +CAD9..CAF3 ; LVT # Lo [27] HANGUL SYLLABLE JJWAG..HANGUL SYLLABLE JJWAH +CAF5..CB0F ; LVT # Lo [27] HANGUL SYLLABLE JJWAEG..HANGUL SYLLABLE JJWAEH +CB11..CB2B ; LVT # Lo [27] HANGUL SYLLABLE JJOEG..HANGUL SYLLABLE JJOEH +CB2D..CB47 ; LVT # Lo [27] HANGUL SYLLABLE JJYOG..HANGUL SYLLABLE JJYOH +CB49..CB63 ; LVT # Lo [27] HANGUL SYLLABLE JJUG..HANGUL SYLLABLE JJUH +CB65..CB7F ; LVT # Lo [27] HANGUL SYLLABLE JJWEOG..HANGUL SYLLABLE JJWEOH +CB81..CB9B ; LVT # Lo [27] HANGUL SYLLABLE JJWEG..HANGUL SYLLABLE JJWEH +CB9D..CBB7 ; LVT # Lo [27] HANGUL SYLLABLE JJWIG..HANGUL SYLLABLE JJWIH +CBB9..CBD3 ; LVT # Lo [27] HANGUL SYLLABLE JJYUG..HANGUL SYLLABLE JJYUH +CBD5..CBEF ; LVT # Lo [27] HANGUL SYLLABLE JJEUG..HANGUL SYLLABLE JJEUH +CBF1..CC0B ; LVT # Lo [27] HANGUL SYLLABLE JJYIG..HANGUL SYLLABLE JJYIH +CC0D..CC27 ; LVT # Lo [27] HANGUL SYLLABLE JJIG..HANGUL SYLLABLE JJIH +CC29..CC43 ; LVT # Lo [27] HANGUL SYLLABLE CAG..HANGUL SYLLABLE CAH +CC45..CC5F ; LVT # Lo [27] HANGUL SYLLABLE CAEG..HANGUL SYLLABLE CAEH +CC61..CC7B ; LVT # Lo [27] HANGUL SYLLABLE CYAG..HANGUL SYLLABLE CYAH +CC7D..CC97 ; LVT # Lo [27] HANGUL SYLLABLE CYAEG..HANGUL SYLLABLE CYAEH +CC99..CCB3 ; LVT # Lo [27] HANGUL SYLLABLE CEOG..HANGUL SYLLABLE CEOH +CCB5..CCCF ; LVT # Lo [27] HANGUL SYLLABLE CEG..HANGUL SYLLABLE CEH +CCD1..CCEB ; LVT # Lo [27] HANGUL SYLLABLE CYEOG..HANGUL SYLLABLE CYEOH +CCED..CD07 ; LVT # Lo [27] HANGUL SYLLABLE CYEG..HANGUL SYLLABLE CYEH +CD09..CD23 ; LVT # Lo [27] HANGUL SYLLABLE COG..HANGUL SYLLABLE COH +CD25..CD3F ; LVT # Lo [27] HANGUL SYLLABLE CWAG..HANGUL SYLLABLE CWAH +CD41..CD5B ; LVT # Lo [27] HANGUL SYLLABLE CWAEG..HANGUL SYLLABLE CWAEH +CD5D..CD77 ; LVT # Lo [27] HANGUL SYLLABLE COEG..HANGUL SYLLABLE COEH +CD79..CD93 ; LVT # Lo [27] HANGUL SYLLABLE CYOG..HANGUL SYLLABLE CYOH +CD95..CDAF ; LVT # Lo [27] HANGUL SYLLABLE CUG..HANGUL SYLLABLE CUH +CDB1..CDCB ; LVT # Lo [27] HANGUL SYLLABLE CWEOG..HANGUL SYLLABLE CWEOH +CDCD..CDE7 ; LVT # Lo [27] HANGUL SYLLABLE CWEG..HANGUL SYLLABLE CWEH +CDE9..CE03 ; LVT # Lo [27] HANGUL SYLLABLE CWIG..HANGUL SYLLABLE CWIH +CE05..CE1F ; LVT # Lo [27] HANGUL SYLLABLE CYUG..HANGUL SYLLABLE CYUH +CE21..CE3B ; LVT # Lo [27] HANGUL SYLLABLE CEUG..HANGUL SYLLABLE CEUH +CE3D..CE57 ; LVT # Lo [27] HANGUL SYLLABLE CYIG..HANGUL SYLLABLE CYIH +CE59..CE73 ; LVT # Lo [27] HANGUL SYLLABLE CIG..HANGUL SYLLABLE CIH +CE75..CE8F ; LVT # Lo [27] HANGUL SYLLABLE KAG..HANGUL SYLLABLE KAH +CE91..CEAB ; LVT # Lo [27] HANGUL SYLLABLE KAEG..HANGUL SYLLABLE KAEH +CEAD..CEC7 ; LVT # Lo [27] HANGUL SYLLABLE KYAG..HANGUL SYLLABLE KYAH +CEC9..CEE3 ; LVT # Lo [27] HANGUL SYLLABLE KYAEG..HANGUL SYLLABLE KYAEH +CEE5..CEFF ; LVT # Lo [27] HANGUL SYLLABLE KEOG..HANGUL SYLLABLE KEOH +CF01..CF1B ; LVT # Lo [27] HANGUL SYLLABLE KEG..HANGUL SYLLABLE KEH +CF1D..CF37 ; LVT # Lo [27] HANGUL SYLLABLE KYEOG..HANGUL SYLLABLE KYEOH +CF39..CF53 ; LVT # Lo [27] HANGUL SYLLABLE KYEG..HANGUL SYLLABLE KYEH +CF55..CF6F ; LVT # Lo [27] HANGUL SYLLABLE KOG..HANGUL SYLLABLE KOH +CF71..CF8B ; LVT # Lo [27] HANGUL SYLLABLE KWAG..HANGUL SYLLABLE KWAH +CF8D..CFA7 ; LVT # Lo [27] HANGUL SYLLABLE KWAEG..HANGUL SYLLABLE KWAEH +CFA9..CFC3 ; LVT # Lo [27] HANGUL SYLLABLE KOEG..HANGUL SYLLABLE KOEH +CFC5..CFDF ; LVT # Lo [27] HANGUL SYLLABLE KYOG..HANGUL SYLLABLE KYOH +CFE1..CFFB ; LVT # Lo [27] HANGUL SYLLABLE KUG..HANGUL SYLLABLE KUH +CFFD..D017 ; LVT # Lo [27] HANGUL SYLLABLE KWEOG..HANGUL SYLLABLE KWEOH +D019..D033 ; LVT # Lo [27] HANGUL SYLLABLE KWEG..HANGUL SYLLABLE KWEH +D035..D04F ; LVT # Lo [27] HANGUL SYLLABLE KWIG..HANGUL SYLLABLE KWIH +D051..D06B ; LVT # Lo [27] HANGUL SYLLABLE KYUG..HANGUL SYLLABLE KYUH +D06D..D087 ; LVT # Lo [27] HANGUL SYLLABLE KEUG..HANGUL SYLLABLE KEUH +D089..D0A3 ; LVT # Lo [27] HANGUL SYLLABLE KYIG..HANGUL SYLLABLE KYIH +D0A5..D0BF ; LVT # Lo [27] HANGUL SYLLABLE KIG..HANGUL SYLLABLE KIH +D0C1..D0DB ; LVT # Lo [27] HANGUL SYLLABLE TAG..HANGUL SYLLABLE TAH +D0DD..D0F7 ; LVT # Lo [27] HANGUL SYLLABLE TAEG..HANGUL SYLLABLE TAEH +D0F9..D113 ; LVT # Lo [27] HANGUL SYLLABLE TYAG..HANGUL SYLLABLE TYAH +D115..D12F ; LVT # Lo [27] HANGUL SYLLABLE TYAEG..HANGUL SYLLABLE TYAEH +D131..D14B ; LVT # Lo [27] HANGUL SYLLABLE TEOG..HANGUL SYLLABLE TEOH +D14D..D167 ; LVT # Lo [27] HANGUL SYLLABLE TEG..HANGUL SYLLABLE TEH +D169..D183 ; LVT # Lo [27] HANGUL SYLLABLE TYEOG..HANGUL SYLLABLE TYEOH +D185..D19F ; LVT # Lo [27] HANGUL SYLLABLE TYEG..HANGUL SYLLABLE TYEH +D1A1..D1BB ; LVT # Lo [27] HANGUL SYLLABLE TOG..HANGUL SYLLABLE TOH +D1BD..D1D7 ; LVT # Lo [27] HANGUL SYLLABLE TWAG..HANGUL SYLLABLE TWAH +D1D9..D1F3 ; LVT # Lo [27] HANGUL SYLLABLE TWAEG..HANGUL SYLLABLE TWAEH +D1F5..D20F ; LVT # Lo [27] HANGUL SYLLABLE TOEG..HANGUL SYLLABLE TOEH +D211..D22B ; LVT # Lo [27] HANGUL SYLLABLE TYOG..HANGUL SYLLABLE TYOH +D22D..D247 ; LVT # Lo [27] HANGUL SYLLABLE TUG..HANGUL SYLLABLE TUH +D249..D263 ; LVT # Lo [27] HANGUL SYLLABLE TWEOG..HANGUL SYLLABLE TWEOH +D265..D27F ; LVT # Lo [27] HANGUL SYLLABLE TWEG..HANGUL SYLLABLE TWEH +D281..D29B ; LVT # Lo [27] HANGUL SYLLABLE TWIG..HANGUL SYLLABLE TWIH +D29D..D2B7 ; LVT # Lo [27] HANGUL SYLLABLE TYUG..HANGUL SYLLABLE TYUH +D2B9..D2D3 ; LVT # Lo [27] HANGUL SYLLABLE TEUG..HANGUL SYLLABLE TEUH +D2D5..D2EF ; LVT # Lo [27] HANGUL SYLLABLE TYIG..HANGUL SYLLABLE TYIH +D2F1..D30B ; LVT # Lo [27] HANGUL SYLLABLE TIG..HANGUL SYLLABLE TIH +D30D..D327 ; LVT # Lo [27] HANGUL SYLLABLE PAG..HANGUL SYLLABLE PAH +D329..D343 ; LVT # Lo [27] HANGUL SYLLABLE PAEG..HANGUL SYLLABLE PAEH +D345..D35F ; LVT # Lo [27] HANGUL SYLLABLE PYAG..HANGUL SYLLABLE PYAH +D361..D37B ; LVT # Lo [27] HANGUL SYLLABLE PYAEG..HANGUL SYLLABLE PYAEH +D37D..D397 ; LVT # Lo [27] HANGUL SYLLABLE PEOG..HANGUL SYLLABLE PEOH +D399..D3B3 ; LVT # Lo [27] HANGUL SYLLABLE PEG..HANGUL SYLLABLE PEH +D3B5..D3CF ; LVT # Lo [27] HANGUL SYLLABLE PYEOG..HANGUL SYLLABLE PYEOH +D3D1..D3EB ; LVT # Lo [27] HANGUL SYLLABLE PYEG..HANGUL SYLLABLE PYEH +D3ED..D407 ; LVT # Lo [27] HANGUL SYLLABLE POG..HANGUL SYLLABLE POH +D409..D423 ; LVT # Lo [27] HANGUL SYLLABLE PWAG..HANGUL SYLLABLE PWAH +D425..D43F ; LVT # Lo [27] HANGUL SYLLABLE PWAEG..HANGUL SYLLABLE PWAEH +D441..D45B ; LVT # Lo [27] HANGUL SYLLABLE POEG..HANGUL SYLLABLE POEH +D45D..D477 ; LVT # Lo [27] HANGUL SYLLABLE PYOG..HANGUL SYLLABLE PYOH +D479..D493 ; LVT # Lo [27] HANGUL SYLLABLE PUG..HANGUL SYLLABLE PUH +D495..D4AF ; LVT # Lo [27] HANGUL SYLLABLE PWEOG..HANGUL SYLLABLE PWEOH +D4B1..D4CB ; LVT # Lo [27] HANGUL SYLLABLE PWEG..HANGUL SYLLABLE PWEH +D4CD..D4E7 ; LVT # Lo [27] HANGUL SYLLABLE PWIG..HANGUL SYLLABLE PWIH +D4E9..D503 ; LVT # Lo [27] HANGUL SYLLABLE PYUG..HANGUL SYLLABLE PYUH +D505..D51F ; LVT # Lo [27] HANGUL SYLLABLE PEUG..HANGUL SYLLABLE PEUH +D521..D53B ; LVT # Lo [27] HANGUL SYLLABLE PYIG..HANGUL SYLLABLE PYIH +D53D..D557 ; LVT # Lo [27] HANGUL SYLLABLE PIG..HANGUL SYLLABLE PIH +D559..D573 ; LVT # Lo [27] HANGUL SYLLABLE HAG..HANGUL SYLLABLE HAH +D575..D58F ; LVT # Lo [27] HANGUL SYLLABLE HAEG..HANGUL SYLLABLE HAEH +D591..D5AB ; LVT # Lo [27] HANGUL SYLLABLE HYAG..HANGUL SYLLABLE HYAH +D5AD..D5C7 ; LVT # Lo [27] HANGUL SYLLABLE HYAEG..HANGUL SYLLABLE HYAEH +D5C9..D5E3 ; LVT # Lo [27] HANGUL SYLLABLE HEOG..HANGUL SYLLABLE HEOH +D5E5..D5FF ; LVT # Lo [27] HANGUL SYLLABLE HEG..HANGUL SYLLABLE HEH +D601..D61B ; LVT # Lo [27] HANGUL SYLLABLE HYEOG..HANGUL SYLLABLE HYEOH +D61D..D637 ; LVT # Lo [27] HANGUL SYLLABLE HYEG..HANGUL SYLLABLE HYEH +D639..D653 ; LVT # Lo [27] HANGUL SYLLABLE HOG..HANGUL SYLLABLE HOH +D655..D66F ; LVT # Lo [27] HANGUL SYLLABLE HWAG..HANGUL SYLLABLE HWAH +D671..D68B ; LVT # Lo [27] HANGUL SYLLABLE HWAEG..HANGUL SYLLABLE HWAEH +D68D..D6A7 ; LVT # Lo [27] HANGUL SYLLABLE HOEG..HANGUL SYLLABLE HOEH +D6A9..D6C3 ; LVT # Lo [27] HANGUL SYLLABLE HYOG..HANGUL SYLLABLE HYOH +D6C5..D6DF ; LVT # Lo [27] HANGUL SYLLABLE HUG..HANGUL SYLLABLE HUH +D6E1..D6FB ; LVT # Lo [27] HANGUL SYLLABLE HWEOG..HANGUL SYLLABLE HWEOH +D6FD..D717 ; LVT # Lo [27] HANGUL SYLLABLE HWEG..HANGUL SYLLABLE HWEH +D719..D733 ; LVT # Lo [27] HANGUL SYLLABLE HWIG..HANGUL SYLLABLE HWIH +D735..D74F ; LVT # Lo [27] HANGUL SYLLABLE HYUG..HANGUL SYLLABLE HYUH +D751..D76B ; LVT # Lo [27] HANGUL SYLLABLE HEUG..HANGUL SYLLABLE HEUH +D76D..D787 ; LVT # Lo [27] HANGUL SYLLABLE HYIG..HANGUL SYLLABLE HYIH +D789..D7A3 ; LVT # Lo [27] HANGUL SYLLABLE HIG..HANGUL SYLLABLE HIH + +# Total code points: 10773 + +# EOF diff --git a/contrib/unicode/NameAliases.txt b/contrib/unicode/NameAliases.txt index 45744de96ac3..09df7d666f12 100644 --- a/contrib/unicode/NameAliases.txt +++ b/contrib/unicode/NameAliases.txt @@ -1,6 +1,6 @@ -# NameAliases-16.0.0.txt -# Date: 2024-04-24 -# © 2024 Unicode®, Inc. +# NameAliases-17.0.0.txt +# Date: 2025-04-23 +# © 2025 Unicode®, Inc. # Unicode and the Unicode Logo are registered trademarks of Unicode, Inc. in the U.S. and other countries. # For terms of use and license, see https://www.unicode.org/terms_of_use.html # @@ -323,6 +323,10 @@ FEFF;ZWNBSP;abbreviation 122D5;CUNEIFORM SIGN NU11 OVER NU11 BUR OVER BUR;correction 12327;CUNEIFORM SIGN KALAM;correction 1680B;BAMUM LETTER PHASE-A MAEMGBIEE;correction +16881;BAMUM LETTER PHASE-B PUNGGAAM;correction +1688E;BAMUM LETTER PHASE-B NGGOM;correction +168DC;BAMUM LETTER PHASE-C SHETFON;correction +1697D;BAMUM LETTER PHASE-E NGGOP;correction 16E56;MEDEFAIDRIN CAPITAL LETTER H;correction 16E57;MEDEFAIDRIN CAPITAL LETTER NG;correction 16E76;MEDEFAIDRIN SMALL LETTER H;correction diff --git a/contrib/unicode/PropList.txt b/contrib/unicode/PropList.txt index fae2831e7a5f..e64b4224d727 100644 --- a/contrib/unicode/PropList.txt +++ b/contrib/unicode/PropList.txt @@ -1,6 +1,6 @@ -# PropList-16.0.0.txt -# Date: 2024-05-31, 18:09:48 GMT -# © 2024 Unicode®, Inc. +# PropList-17.0.0.txt +# Date: 2025-06-30, 06:19:01 GMT +# © 2025 Unicode®, Inc. # Unicode and the Unicode Logo are registered trademarks of Unicode, Inc. in the U.S. and other countries. # For terms of use and license, see https://www.unicode.org/terms_of_use.html # @@ -702,7 +702,7 @@ FB1E ; Other_Alphabetic # Mn HEBREW POINT JUDEO-SPANISH VARIKA 10D24..10D27 ; Other_Alphabetic # Mn [4] HANIFI ROHINGYA SIGN HARBAHAY..HANIFI ROHINGYA SIGN TASSI 10D69 ; Other_Alphabetic # Mn GARAY VOWEL SIGN E 10EAB..10EAC ; Other_Alphabetic # Mn [2] YEZIDI COMBINING HAMZA MARK..YEZIDI COMBINING MADDA MARK -10EFC ; Other_Alphabetic # Mn ARABIC COMBINING ALEF OVERLAY +10EFA..10EFC ; Other_Alphabetic # Mn [3] ARABIC DOUBLE VERTICAL BAR BELOW..ARABIC COMBINING ALEF OVERLAY 11000 ; Other_Alphabetic # Mc BRAHMI SIGN CANDRABINDU 11001 ; Other_Alphabetic # Mn BRAHMI SIGN ANUSVARA 11002 ; Other_Alphabetic # Mc BRAHMI SIGN VISARGA @@ -809,6 +809,12 @@ FB1E ; Other_Alphabetic # Mn HEBREW POINT JUDEO-SPANISH VARIKA 11A59..11A5B ; Other_Alphabetic # Mn [3] SOYOMBO VOWEL SIGN VOCALIC R..SOYOMBO VOWEL LENGTH MARK 11A8A..11A96 ; Other_Alphabetic # Mn [13] SOYOMBO FINAL CONSONANT SIGN G..SOYOMBO SIGN ANUSVARA 11A97 ; Other_Alphabetic # Mc SOYOMBO SIGN VISARGA +11B60 ; Other_Alphabetic # Mn SHARADA VOWEL SIGN OE +11B61 ; Other_Alphabetic # Mc SHARADA VOWEL SIGN OOE +11B62..11B64 ; Other_Alphabetic # Mn [3] SHARADA VOWEL SIGN UE..SHARADA VOWEL SIGN SHORT E +11B65 ; Other_Alphabetic # Mc SHARADA VOWEL SIGN SHORT O +11B66 ; Other_Alphabetic # Mn SHARADA VOWEL SIGN CANDRA E +11B67 ; Other_Alphabetic # Mc SHARADA VOWEL SIGN CANDRA O 11C2F ; Other_Alphabetic # Mc BHAIKSUKI VOWEL SIGN AA 11C30..11C36 ; Other_Alphabetic # Mn [7] BHAIKSUKI VOWEL SIGN I..BHAIKSUKI VOWEL SIGN VOCALIC L 11C38..11C3D ; Other_Alphabetic # Mn [6] BHAIKSUKI VOWEL SIGN E..BHAIKSUKI SIGN ANUSVARA @@ -853,12 +859,16 @@ FB1E ; Other_Alphabetic # Mn HEBREW POINT JUDEO-SPANISH VARIKA 1E023..1E024 ; Other_Alphabetic # Mn [2] COMBINING GLAGOLITIC LETTER YU..COMBINING GLAGOLITIC LETTER SMALL YUS 1E026..1E02A ; Other_Alphabetic # Mn [5] COMBINING GLAGOLITIC LETTER YO..COMBINING GLAGOLITIC LETTER FITA 1E08F ; Other_Alphabetic # Mn COMBINING CYRILLIC SMALL LETTER BYELORUSSIAN-UKRAINIAN I +1E6E3 ; Other_Alphabetic # Mn TAI YO SIGN UE +1E6E6 ; Other_Alphabetic # Mn TAI YO SIGN AU +1E6EE..1E6EF ; Other_Alphabetic # Mn [2] TAI YO SIGN AY..TAI YO SIGN ANG +1E6F5 ; Other_Alphabetic # Mn TAI YO SIGN OM 1E947 ; Other_Alphabetic # Mn ADLAM HAMZA 1F130..1F149 ; Other_Alphabetic # So [26] SQUARED LATIN CAPITAL LETTER A..SQUARED LATIN CAPITAL LETTER Z 1F150..1F169 ; Other_Alphabetic # So [26] NEGATIVE CIRCLED LATIN CAPITAL LETTER A..NEGATIVE CIRCLED LATIN CAPITAL LETTER Z 1F170..1F189 ; Other_Alphabetic # So [26] NEGATIVE SQUARED LATIN CAPITAL LETTER A..NEGATIVE SQUARED LATIN CAPITAL LETTER Z -# Total code points: 1495 +# Total code points: 1510 # ================================================ @@ -871,21 +881,22 @@ FB1E ; Other_Alphabetic # Mn HEBREW POINT JUDEO-SPANISH VARIKA F900..FA6D ; Ideographic # Lo [366] CJK COMPATIBILITY IDEOGRAPH-F900..CJK COMPATIBILITY IDEOGRAPH-FA6D FA70..FAD9 ; Ideographic # Lo [106] CJK COMPATIBILITY IDEOGRAPH-FA70..CJK COMPATIBILITY IDEOGRAPH-FAD9 16FE4 ; Ideographic # Mn KHITAN SMALL SCRIPT FILLER -17000..187F7 ; Ideographic # Lo [6136] TANGUT IDEOGRAPH-17000..TANGUT IDEOGRAPH-187F7 -18800..18CD5 ; Ideographic # Lo [1238] TANGUT COMPONENT-001..KHITAN SMALL SCRIPT CHARACTER-18CD5 -18CFF..18D08 ; Ideographic # Lo [10] KHITAN SMALL SCRIPT CHARACTER-18CFF..TANGUT IDEOGRAPH-18D08 +16FF2..16FF3 ; Ideographic # Lm [2] CHINESE SMALL SIMPLIFIED ER..CHINESE SMALL TRADITIONAL ER +16FF4..16FF6 ; Ideographic # Nl [3] YANGQIN SIGN SLOW ONE BEAT..YANGQIN SIGN SLOW TWO BEATS +17000..18CD5 ; Ideographic # Lo [7382] TANGUT IDEOGRAPH-17000..KHITAN SMALL SCRIPT CHARACTER-18CD5 +18CFF..18D1E ; Ideographic # Lo [32] KHITAN SMALL SCRIPT CHARACTER-18CFF..TANGUT IDEOGRAPH-18D1E +18D80..18DF2 ; Ideographic # Lo [115] TANGUT COMPONENT-769..TANGUT COMPONENT-883 1B170..1B2FB ; Ideographic # Lo [396] NUSHU CHARACTER-1B170..NUSHU CHARACTER-1B2FB 20000..2A6DF ; Ideographic # Lo [42720] CJK UNIFIED IDEOGRAPH-20000..CJK UNIFIED IDEOGRAPH-2A6DF -2A700..2B739 ; Ideographic # Lo [4154] CJK UNIFIED IDEOGRAPH-2A700..CJK UNIFIED IDEOGRAPH-2B739 -2B740..2B81D ; Ideographic # Lo [222] CJK UNIFIED IDEOGRAPH-2B740..CJK UNIFIED IDEOGRAPH-2B81D -2B820..2CEA1 ; Ideographic # Lo [5762] CJK UNIFIED IDEOGRAPH-2B820..CJK UNIFIED IDEOGRAPH-2CEA1 +2A700..2B81D ; Ideographic # Lo [4382] CJK UNIFIED IDEOGRAPH-2A700..CJK UNIFIED IDEOGRAPH-2B81D +2B820..2CEAD ; Ideographic # Lo [5774] CJK UNIFIED IDEOGRAPH-2B820..CJK UNIFIED IDEOGRAPH-2CEAD 2CEB0..2EBE0 ; Ideographic # Lo [7473] CJK UNIFIED IDEOGRAPH-2CEB0..CJK UNIFIED IDEOGRAPH-2EBE0 2EBF0..2EE5D ; Ideographic # Lo [622] CJK UNIFIED IDEOGRAPH-2EBF0..CJK UNIFIED IDEOGRAPH-2EE5D 2F800..2FA1D ; Ideographic # Lo [542] CJK COMPATIBILITY IDEOGRAPH-2F800..CJK COMPATIBILITY IDEOGRAPH-2FA1D 30000..3134A ; Ideographic # Lo [4939] CJK UNIFIED IDEOGRAPH-30000..CJK UNIFIED IDEOGRAPH-3134A -31350..323AF ; Ideographic # Lo [4192] CJK UNIFIED IDEOGRAPH-31350..CJK UNIFIED IDEOGRAPH-323AF +31350..33479 ; Ideographic # Lo [8490] CJK UNIFIED IDEOGRAPH-31350..CJK UNIFIED IDEOGRAPH-33479 -# Total code points: 106477 +# Total code points: 110943 # ================================================ @@ -915,11 +926,11 @@ FA70..FAD9 ; Ideographic # Lo [106] CJK COMPATIBILITY IDEOGRAPH-FA70..CJK COM 0384..0385 ; Diacritic # Sk [2] GREEK TONOS..GREEK DIALYTIKA TONOS 0483..0487 ; Diacritic # Mn [5] COMBINING CYRILLIC TITLO..COMBINING CYRILLIC POKRYTIE 0559 ; Diacritic # Lm ARMENIAN MODIFIER LETTER LEFT HALF RING -0591..05A1 ; Diacritic # Mn [17] HEBREW ACCENT ETNAHTA..HEBREW ACCENT PAZER -05A3..05BD ; Diacritic # Mn [27] HEBREW ACCENT MUNAH..HEBREW POINT METEG +0591..05BD ; Diacritic # Mn [45] HEBREW ACCENT ETNAHTA..HEBREW POINT METEG 05BF ; Diacritic # Mn HEBREW POINT RAFE 05C1..05C2 ; Diacritic # Mn [2] HEBREW POINT SHIN DOT..HEBREW POINT SIN DOT -05C4 ; Diacritic # Mn HEBREW MARK UPPER DOT +05C4..05C5 ; Diacritic # Mn [2] HEBREW MARK UPPER DOT..HEBREW MARK LOWER DOT +05C7 ; Diacritic # Mn HEBREW POINT QAMATS QATAN 064B..0652 ; Diacritic # Mn [8] ARABIC FATHATAN..ARABIC SUKUN 0657..0658 ; Diacritic # Mn [2] ARABIC INVERTED DAMMA..ARABIC MARK NOON GHUNNA 06DF..06E0 ; Diacritic # Mn [2] ARABIC SMALL HIGH ROUNDED ZERO..ARABIC SMALL HIGH UPRIGHT RECTANGULAR ZERO @@ -990,6 +1001,8 @@ FA70..FAD9 ; Ideographic # Lo [106] CJK COMPATIBILITY IDEOGRAPH-FA70..CJK COM 1AB0..1ABD ; Diacritic # Mn [14] COMBINING DOUBLED CIRCUMFLEX ACCENT..COMBINING PARENTHESES BELOW 1ABE ; Diacritic # Me COMBINING PARENTHESES OVERLAY 1AC1..1ACB ; Diacritic # Mn [11] COMBINING LEFT PARENTHESIS ABOVE LEFT..COMBINING TRIPLE ACUTE ACCENT +1ACF..1ADD ; Diacritic # Mn [15] COMBINING DOUBLE CARON..COMBINING DOT-AND-RING BELOW +1AE0..1AEB ; Diacritic # Mn [12] COMBINING LEFT TACK ABOVE..COMBINING DOUBLE RIGHTWARDS ARROW ABOVE 1B34 ; Diacritic # Mn BALINESE SIGN REREKAN 1B44 ; Diacritic # Mc BALINESE ADEG ADEG 1B6B..1B73 ; Diacritic # Mn [9] BALINESE MUSICAL SYMBOL COMBINING TEGEH..BALINESE MUSICAL SYMBOL COMBINING GONG @@ -1009,6 +1022,7 @@ FA70..FAD9 ; Ideographic # Lo [106] CJK COMPATIBILITY IDEOGRAPH-FA70..CJK COM 1CF7 ; Diacritic # Mc VEDIC SIGN ATIKRAMA 1CF8..1CF9 ; Diacritic # Mn [2] VEDIC TONE RING ABOVE..VEDIC TONE DOUBLE RING ABOVE 1D2C..1D6A ; Diacritic # Lm [63] MODIFIER LETTER CAPITAL A..GREEK SUBSCRIPT SMALL LETTER CHI +1D9B..1DBE ; Diacritic # Lm [36] MODIFIER LETTER SMALL TURNED ALPHA..MODIFIER LETTER SMALL EZH 1DC4..1DCF ; Diacritic # Mn [12] COMBINING MACRON-ACUTE..COMBINING ZIGZAG BELOW 1DF5..1DFF ; Diacritic # Mn [11] COMBINING UP TACK ABOVE..COMBINING RIGHT ARROWHEAD AND DOWN ARROWHEAD BELOW 1FBD ; Diacritic # Sk GREEK KORONIS @@ -1034,6 +1048,7 @@ A717..A71F ; Diacritic # Lm [9] MODIFIER LETTER DOT VERTICAL BAR..MODIFIER A720..A721 ; Diacritic # Sk [2] MODIFIER LETTER STRESS AND HIGH TONE..MODIFIER LETTER STRESS AND LOW TONE A788 ; Diacritic # Lm MODIFIER LETTER LOW CIRCUMFLEX ACCENT A789..A78A ; Diacritic # Sk [2] MODIFIER LETTER COLON..MODIFIER LETTER SHORT EQUALS SIGN +A7F1 ; Diacritic # Lm MODIFIER LETTER CAPITAL S A7F8..A7F9 ; Diacritic # Lm [2] MODIFIER LETTER CAPITAL H WITH STROKE..MODIFIER LETTER SMALL LIGATURE OE A806 ; Diacritic # Mn SYLOTI NAGRI SIGN HASANTA A82C ; Diacritic # Mn SYLOTI NAGRI SIGN ALTERNATE HASANTA @@ -1077,6 +1092,7 @@ FFE3 ; Diacritic # Sk FULLWIDTH MACRON 10D24..10D27 ; Diacritic # Mn [4] HANIFI ROHINGYA SIGN HARBAHAY..HANIFI ROHINGYA SIGN TASSI 10D4E ; Diacritic # Lm GARAY VOWEL LENGTH MARK 10D69..10D6D ; Diacritic # Mn [5] GARAY VOWEL SIGN E..GARAY CONSONANT NASALIZATION MARK +10EFA ; Diacritic # Mn ARABIC DOUBLE VERTICAL BAR BELOW 10EFD..10EFF ; Diacritic # Mn [3] ARABIC SMALL LOW WORD SAKTA..ARABIC SMALL LOW WORD MADDA 10F46..10F50 ; Diacritic # Mn [11] SOGDIAN COMBINING DOT BELOW..SOGDIAN COMBINING STROKE BELOW 10F82..10F85 ; Diacritic # Mn [4] OLD UYGHUR COMBINING DOT ABOVE..OLD UYGHUR COMBINING TWO DOTS BELOW @@ -1120,6 +1136,7 @@ FFE3 ; Diacritic # Sk FULLWIDTH MACRON 11D42 ; Diacritic # Mn MASARAM GONDI SIGN NUKTA 11D44..11D45 ; Diacritic # Mn [2] MASARAM GONDI SIGN HALANTA..MASARAM GONDI VIRAMA 11D97 ; Diacritic # Mn GUNJALA GONDI VIRAMA +11DD9 ; Diacritic # Lm TOLONG SIKI SIGN SELA 11F41 ; Diacritic # Mc KAWI SIGN KILLER 11F42 ; Diacritic # Mn KAWI CONJOINER 11F5A ; Diacritic # Mn KAWI SIGN NUKTA @@ -1150,7 +1167,7 @@ FFE3 ; Diacritic # Sk FULLWIDTH MACRON 1E944..1E946 ; Diacritic # Mn [3] ADLAM ALIF LENGTHENER..ADLAM GEMINATION MARK 1E948..1E94A ; Diacritic # Mn [3] ADLAM CONSONANT MODIFIER..ADLAM NUKTA -# Total code points: 1178 +# Total code points: 1247 # ================================================ @@ -1190,14 +1207,16 @@ FF70 ; Extender # Lm HALFWIDTH KATAKANA-HIRAGANA PROLONGED SOUND 113D3 ; Extender # Lo TULU-TIGALARI SIGN PLUTA 115C6..115C8 ; Extender # Po [3] SIDDHAM REPETITION MARK-1..SIDDHAM REPETITION MARK-3 11A98 ; Extender # Mn SOYOMBO GEMINATION MARK +11DD9 ; Extender # Lm TOLONG SIKI SIGN SELA 16B42..16B43 ; Extender # Lm [2] PAHAWH HMONG SIGN VOS NRUA..PAHAWH HMONG SIGN IB YAM 16FE0..16FE1 ; Extender # Lm [2] TANGUT ITERATION MARK..NUSHU ITERATION MARK 16FE3 ; Extender # Lm OLD CHINESE ITERATION MARK +16FF2..16FF3 ; Extender # Lm [2] CHINESE SMALL SIMPLIFIED ER..CHINESE SMALL TRADITIONAL ER 1E13C..1E13D ; Extender # Lm [2] NYIAKENG PUACHUE HMONG SIGN XW XW..NYIAKENG PUACHUE HMONG SYLLABLE LENGTHENER 1E5EF ; Extender # Mn OL ONAL SIGN IKIR 1E944..1E946 ; Extender # Mn [3] ADLAM ALIF LENGTHENER..ADLAM GEMINATION MARK -# Total code points: 59 +# Total code points: 62 # ================================================ @@ -1220,7 +1239,7 @@ FF70 ; Extender # Lm HALFWIDTH KATAKANA-HIRAGANA PROLONGED SOUND 2C7C..2C7D ; Other_Lowercase # Lm [2] LATIN SUBSCRIPT SMALL LETTER J..MODIFIER LETTER CAPITAL V A69C..A69D ; Other_Lowercase # Lm [2] MODIFIER LETTER CYRILLIC HARD SIGN..MODIFIER LETTER CYRILLIC SOFT SIGN A770 ; Other_Lowercase # Lm MODIFIER LETTER US -A7F2..A7F4 ; Other_Lowercase # Lm [3] MODIFIER LETTER CAPITAL C..MODIFIER LETTER CAPITAL Q +A7F1..A7F4 ; Other_Lowercase # Lm [4] MODIFIER LETTER CAPITAL S..MODIFIER LETTER CAPITAL Q A7F8..A7F9 ; Other_Lowercase # Lm [2] MODIFIER LETTER CAPITAL H WITH STROKE..MODIFIER LETTER SMALL LIGATURE OE AB5C..AB5F ; Other_Lowercase # Lm [4] MODIFIER LETTER SMALL HENG..MODIFIER LETTER SMALL U WITH LEFT HOOK AB69 ; Other_Lowercase # Lm MODIFIER LETTER SMALL TURNED W @@ -1230,7 +1249,7 @@ AB69 ; Other_Lowercase # Lm MODIFIER LETTER SMALL TURNED W 107B2..107BA ; Other_Lowercase # Lm [9] MODIFIER LETTER SMALL CAPITAL Y..MODIFIER LETTER SMALL S WITH CURL 1E030..1E06D ; Other_Lowercase # Lm [62] MODIFIER LETTER CYRILLIC SMALL A..MODIFIER LETTER CYRILLIC SMALL STRAIGHT U WITH STROKE -# Total code points: 311 +# Total code points: 312 # ================================================ @@ -1359,15 +1378,14 @@ FA21 ; Unified_Ideograph # Lo CJK COMPATIBILITY IDEOGRAPH-FA21 FA23..FA24 ; Unified_Ideograph # Lo [2] CJK COMPATIBILITY IDEOGRAPH-FA23..CJK COMPATIBILITY IDEOGRAPH-FA24 FA27..FA29 ; Unified_Ideograph # Lo [3] CJK COMPATIBILITY IDEOGRAPH-FA27..CJK COMPATIBILITY IDEOGRAPH-FA29 20000..2A6DF ; Unified_Ideograph # Lo [42720] CJK UNIFIED IDEOGRAPH-20000..CJK UNIFIED IDEOGRAPH-2A6DF -2A700..2B739 ; Unified_Ideograph # Lo [4154] CJK UNIFIED IDEOGRAPH-2A700..CJK UNIFIED IDEOGRAPH-2B739 -2B740..2B81D ; Unified_Ideograph # Lo [222] CJK UNIFIED IDEOGRAPH-2B740..CJK UNIFIED IDEOGRAPH-2B81D -2B820..2CEA1 ; Unified_Ideograph # Lo [5762] CJK UNIFIED IDEOGRAPH-2B820..CJK UNIFIED IDEOGRAPH-2CEA1 +2A700..2B81D ; Unified_Ideograph # Lo [4382] CJK UNIFIED IDEOGRAPH-2A700..CJK UNIFIED IDEOGRAPH-2B81D +2B820..2CEAD ; Unified_Ideograph # Lo [5774] CJK UNIFIED IDEOGRAPH-2B820..CJK UNIFIED IDEOGRAPH-2CEAD 2CEB0..2EBE0 ; Unified_Ideograph # Lo [7473] CJK UNIFIED IDEOGRAPH-2CEB0..CJK UNIFIED IDEOGRAPH-2EBE0 2EBF0..2EE5D ; Unified_Ideograph # Lo [622] CJK UNIFIED IDEOGRAPH-2EBF0..CJK UNIFIED IDEOGRAPH-2EE5D 30000..3134A ; Unified_Ideograph # Lo [4939] CJK UNIFIED IDEOGRAPH-30000..CJK UNIFIED IDEOGRAPH-3134A -31350..323AF ; Unified_Ideograph # Lo [4192] CJK UNIFIED IDEOGRAPH-31350..CJK UNIFIED IDEOGRAPH-323AF +31350..33479 ; Unified_Ideograph # Lo [8490] CJK UNIFIED IDEOGRAPH-31350..CJK UNIFIED IDEOGRAPH-33479 -# Total code points: 97680 +# Total code points: 101996 # ================================================ @@ -1809,9 +1827,7 @@ E0100..E01EF ; Variation_Selector # Mn [240] VARIATION SELECTOR-17..VARIATION S 2B47..2B4C ; Pattern_Syntax # Sm [6] REVERSE TILDE OPERATOR ABOVE RIGHTWARDS ARROW..RIGHTWARDS ARROW ABOVE REVERSE TILDE OPERATOR 2B4D..2B73 ; Pattern_Syntax # So [39] DOWNWARDS TRIANGLE-HEADED ZIGZAG ARROW..DOWNWARDS TRIANGLE-HEADED ARROW TO BAR 2B74..2B75 ; Pattern_Syntax # Cn [2] .. -2B76..2B95 ; Pattern_Syntax # So [32] NORTH WEST TRIANGLE-HEADED ARROW TO BAR..RIGHTWARDS BLACK ARROW -2B96 ; Pattern_Syntax # Cn -2B97..2BFF ; Pattern_Syntax # So [105] SYMBOL FOR TYPE A ELECTRONICS..HELLSCHREIBER PAUSE SYMBOL +2B76..2BFF ; Pattern_Syntax # So [138] NORTH WEST TRIANGLE-HEADED ARROW TO BAR..HELLSCHREIBER PAUSE SYMBOL 2E00..2E01 ; Pattern_Syntax # Po [2] RIGHT ANGLE SUBSTITUTION MARKER..RIGHT ANGLE DOTTED SUBSTITUTION MARKER 2E02 ; Pattern_Syntax # Pi LEFT SUBSTITUTION BRACKET 2E03 ; Pattern_Syntax # Pf RIGHT SUBSTITUTION BRACKET diff --git a/contrib/unicode/README b/contrib/unicode/README index a459f3496e08..a9840647f689 100644 --- a/contrib/unicode/README +++ b/contrib/unicode/README @@ -15,6 +15,7 @@ ftp://ftp.unicode.org/Public/UNIDATA/PropList.txt ftp://ftp.unicode.org/Public/UNIDATA/DerivedNormalizationProps.txt ftp://ftp.unicode.org/Public/UNIDATA/DerivedCoreProperties.txt ftp://ftp.unicode.org/Public/UNIDATA/NameAliases.txt +ftp://ftp.unicode.org/Public/UNIDATA/HangulSyllableType.txt Three additional files are needed for lookup tables in libstdc++: @@ -36,7 +37,7 @@ localedata/unicode-gen/unicode_utils.py localedata/unicode-gen/utf8_gen.py And the most recent versions added to GCC are from glibc git commit: -064c708c78cc2a6b5802dce73108fc0c1c6bfc80 +2642002380aafb71a1d3b569b6d7ebeab3284816 The script gen_wcwidth.py found here contains the GCC-specific code to map glibc's output to the lookup tables we require. This script should not need @@ -53,7 +54,7 @@ The procedure to update GCC's Unicode support is the following: 3. Run ./gen_wcwidth.py X.Y > ../../libcpp/generated_cpp_wcwidth.h (where X.Y is the version of the Unicode standard corresponding to the - Unicode data files being used, most recently, 16.0.0). + Unicode data files being used, most recently, 17.0.0). 4. Update Unicode Copyright years in libcpp/makeucnid.cc and in libcpp/makeuname2c.cc up to the year in which the Unicode @@ -68,7 +69,7 @@ The procedure to update GCC's Unicode support is the following: > ../../libcpp/ucnid.h 7. Read the corresponding Unicode's standard and update correspondingly - generated_ranges table in libcpp/makeuname2c.cc (in Unicode 16 all + generated_ranges table in libcpp/makeuname2c.cc (in Unicode 17 all the needed information was in Table 4-8). 8. Compile makeuname2c, e.g. with: diff --git a/contrib/unicode/UnicodeData.txt b/contrib/unicode/UnicodeData.txt index 64258a373953..fca68e3e154e 100644 --- a/contrib/unicode/UnicodeData.txt +++ b/contrib/unicode/UnicodeData.txt @@ -659,7 +659,7 @@ 0292;LATIN SMALL LETTER EZH;Ll;0;L;;;;;N;LATIN SMALL LETTER YOGH;;01B7;;01B7 0293;LATIN SMALL LETTER EZH WITH CURL;Ll;0;L;;;;;N;LATIN SMALL LETTER YOGH CURL;;;; 0294;LATIN LETTER GLOTTAL STOP;Lo;0;L;;;;;N;;;;; -0295;LATIN LETTER PHARYNGEAL VOICED FRICATIVE;Ll;0;L;;;;;N;LATIN LETTER REVERSED GLOTTAL STOP;;;; +0295;LATIN LETTER PHARYNGEAL VOICED FRICATIVE;Lo;0;L;;;;;N;LATIN LETTER REVERSED GLOTTAL STOP;;;; 0296;LATIN LETTER INVERTED GLOTTAL STOP;Ll;0;L;;;;;N;;;;; 0297;LATIN LETTER STRETCHED C;Ll;0;L;;;;;N;;;;; 0298;LATIN LETTER BILABIAL CLICK;Ll;0;L;;;;;N;LATIN LETTER BULLSEYE;;;; @@ -2121,6 +2121,7 @@ 088C;ARABIC LETTER TAH WITH THREE DOTS BELOW;Lo;0;AL;;;;;N;;;;; 088D;ARABIC LETTER KEHEH WITH TWO DOTS VERTICALLY BELOW;Lo;0;AL;;;;;N;;;;; 088E;ARABIC VERTICAL TAIL;Lo;0;AL;;;;;N;;;;; +088F;ARABIC LETTER NOON WITH RING ABOVE;Lo;0;AL;;;;;N;;;;; 0890;ARABIC POUND MARK ABOVE;Cf;0;AN;;;;;N;;;;; 0891;ARABIC PIASTRE MARK ABOVE;Cf;0;AN;;;;;N;;;;; 0897;ARABIC PEPET;Mn;230;NSM;;;;;N;;;;; @@ -2862,6 +2863,7 @@ 0C58;TELUGU LETTER TSA;Lo;0;L;;;;;N;;;;; 0C59;TELUGU LETTER DZA;Lo;0;L;;;;;N;;;;; 0C5A;TELUGU LETTER RRRA;Lo;0;L;;;;;N;;;;; +0C5C;TELUGU ARCHAIC SHRII;Lo;0;L;;;;;N;;;;; 0C5D;TELUGU LETTER NAKAARA POLLU;Lo;0;L;;;;;N;;;;; 0C60;TELUGU LETTER VOCALIC RR;Lo;0;L;;;;;N;;;;; 0C61;TELUGU LETTER VOCALIC LL;Lo;0;L;;;;;N;;;;; @@ -2958,6 +2960,7 @@ 0CCD;KANNADA SIGN VIRAMA;Mn;9;NSM;;;;;N;;;;; 0CD5;KANNADA LENGTH MARK;Mc;0;L;;;;;N;;;;; 0CD6;KANNADA AI LENGTH MARK;Mc;0;L;;;;;N;;;;; +0CDC;KANNADA ARCHAIC SHRII;Lo;0;L;;;;;N;;;;; 0CDD;KANNADA LETTER NAKAARA POLLU;Lo;0;L;;;;;N;;;;; 0CDE;KANNADA LETTER FA;Lo;0;L;;;;;N;;;;; 0CE0;KANNADA LETTER VOCALIC RR;Lo;0;L;;;;;N;;;;; @@ -6137,6 +6140,33 @@ 1ACC;COMBINING LATIN SMALL LETTER INSULAR G;Mn;230;NSM;;;;;N;;;;; 1ACD;COMBINING LATIN SMALL LETTER INSULAR R;Mn;230;NSM;;;;;N;;;;; 1ACE;COMBINING LATIN SMALL LETTER INSULAR T;Mn;230;NSM;;;;;N;;;;; +1ACF;COMBINING DOUBLE CARON;Mn;230;NSM;;;;;N;;;;; +1AD0;COMBINING VERTICAL-LINE-ACUTE;Mn;230;NSM;;;;;N;;;;; +1AD1;COMBINING GRAVE-VERTICAL-LINE;Mn;230;NSM;;;;;N;;;;; +1AD2;COMBINING VERTICAL-LINE-GRAVE;Mn;230;NSM;;;;;N;;;;; +1AD3;COMBINING ACUTE-VERTICAL-LINE;Mn;230;NSM;;;;;N;;;;; +1AD4;COMBINING VERTICAL-LINE-MACRON;Mn;230;NSM;;;;;N;;;;; +1AD5;COMBINING MACRON-VERTICAL-LINE;Mn;230;NSM;;;;;N;;;;; +1AD6;COMBINING VERTICAL-LINE-ACUTE-GRAVE;Mn;230;NSM;;;;;N;;;;; +1AD7;COMBINING VERTICAL-LINE-GRAVE-ACUTE;Mn;230;NSM;;;;;N;;;;; +1AD8;COMBINING MACRON-ACUTE-GRAVE;Mn;230;NSM;;;;;N;;;;; +1AD9;COMBINING SHARP SIGN;Mn;230;NSM;;;;;N;;;;; +1ADA;COMBINING FLAT SIGN;Mn;230;NSM;;;;;N;;;;; +1ADB;COMBINING DOWN TACK ABOVE;Mn;230;NSM;;;;;N;;;;; +1ADC;COMBINING DIAERESIS WITH RAISED LEFT DOT;Mn;230;NSM;;;;;N;;;;; +1ADD;COMBINING DOT-AND-RING BELOW;Mn;220;NSM;;;;;N;;;;; +1AE0;COMBINING LEFT TACK ABOVE;Mn;230;NSM;;;;;N;;;;; +1AE1;COMBINING RIGHT TACK ABOVE;Mn;230;NSM;;;;;N;;;;; +1AE2;COMBINING MINUS SIGN ABOVE;Mn;230;NSM;;;;;N;;;;; +1AE3;COMBINING INVERTED BRIDGE ABOVE;Mn;230;NSM;;;;;N;;;;; +1AE4;COMBINING SQUARE ABOVE;Mn;230;NSM;;;;;N;;;;; +1AE5;COMBINING SEAGULL ABOVE;Mn;230;NSM;;;;;N;;;;; +1AE6;COMBINING DOUBLE ARCH BELOW;Mn;220;NSM;;;;;N;;;;; +1AE7;COMBINING DOUBLE ARCH ABOVE;Mn;230;NSM;;;;;N;;;;; +1AE8;COMBINING EQUALS SIGN ABOVE;Mn;230;NSM;;;;;N;;;;; +1AE9;COMBINING LEFT ANGLE CENTRED ABOVE;Mn;230;NSM;;;;;N;;;;; +1AEA;COMBINING UPWARDS ARROW ABOVE;Mn;230;NSM;;;;;N;;;;; +1AEB;COMBINING DOUBLE RIGHTWARDS ARROW ABOVE;Mn;234;NSM;;;;;N;;;;; 1B00;BALINESE SIGN ULU RICEM;Mn;0;NSM;;;;;N;;;;; 1B01;BALINESE SIGN ULU CANDRA;Mn;0;NSM;;;;;N;;;;; 1B02;BALINESE SIGN CECEK;Mn;0;NSM;;;;;N;;;;; @@ -7545,6 +7575,7 @@ 20BE;LARI SIGN;Sc;0;ET;;;;;N;;;;; 20BF;BITCOIN SIGN;Sc;0;ET;;;;;N;;;;; 20C0;SOM SIGN;Sc;0;ET;;;;;N;;;;; +20C1;SAUDI RIYAL SIGN;Sc;0;ET;;;;;N;;;;; 20D0;COMBINING LEFT HARPOON ABOVE;Mn;230;NSM;;;;;N;NON-SPACING LEFT HARPOON ABOVE;;;; 20D1;COMBINING RIGHT HARPOON ABOVE;Mn;230;NSM;;;;;N;NON-SPACING RIGHT HARPOON ABOVE;;;; 20D2;COMBINING LONG VERTICAL LINE OVERLAY;Mn;1;NSM;;;;;N;NON-SPACING LONG VERTICAL BAR OVERLAY;;;; @@ -10239,6 +10270,7 @@ 2B93;NEWLINE RIGHT;So;0;ON;;;;;N;;;;; 2B94;FOUR CORNER ARROWS CIRCLING ANTICLOCKWISE;So;0;ON;;;;;N;;;;; 2B95;RIGHTWARDS BLACK ARROW;So;0;ON;;;;;N;;;;; +2B96;EQUALS SIGN WITH INFINITY ABOVE;So;0;ON;;;;;N;;;;; 2B97;SYMBOL FOR TYPE A ELECTRONICS;So;0;ON;;;;;N;;;;; 2B98;THREE-D TOP-LIGHTED LEFTWARDS EQUILATERAL ARROWHEAD;So;0;ON;;;;;N;;;;; 2B99;THREE-D RIGHT-LIGHTED UPWARDS EQUILATERAL ARROWHEAD;So;0;ON;;;;;N;;;;; @@ -14274,10 +14306,14 @@ A7CA;LATIN SMALL LETTER S WITH SHORT STROKE OVERLAY;Ll;0;L;;;;;N;;;A7C9;;A7C9 A7CB;LATIN CAPITAL LETTER RAMS HORN;Lu;0;L;;;;;N;;;;0264; A7CC;LATIN CAPITAL LETTER S WITH DIAGONAL STROKE;Lu;0;L;;;;;N;;;;A7CD; A7CD;LATIN SMALL LETTER S WITH DIAGONAL STROKE;Ll;0;L;;;;;N;;;A7CC;;A7CC +A7CE;LATIN CAPITAL LETTER PHARYNGEAL VOICED FRICATIVE;Lu;0;L;;;;;N;;;;A7CF; +A7CF;LATIN SMALL LETTER PHARYNGEAL VOICED FRICATIVE;Ll;0;L;;;;;N;;;A7CE;;A7CE A7D0;LATIN CAPITAL LETTER CLOSED INSULAR G;Lu;0;L;;;;;N;;;;A7D1; A7D1;LATIN SMALL LETTER CLOSED INSULAR G;Ll;0;L;;;;;N;;;A7D0;;A7D0 -A7D3;LATIN SMALL LETTER DOUBLE THORN;Ll;0;L;;;;;N;;;;; -A7D5;LATIN SMALL LETTER DOUBLE WYNN;Ll;0;L;;;;;N;;;;; +A7D2;LATIN CAPITAL LETTER DOUBLE THORN;Lu;0;L;;;;;N;;;;A7D3; +A7D3;LATIN SMALL LETTER DOUBLE THORN;Ll;0;L;;;;;N;;;A7D2;;A7D2 +A7D4;LATIN CAPITAL LETTER DOUBLE WYNN;Lu;0;L;;;;;N;;;;A7D5; +A7D5;LATIN SMALL LETTER DOUBLE WYNN;Ll;0;L;;;;;N;;;A7D4;;A7D4 A7D6;LATIN CAPITAL LETTER MIDDLE SCOTS S;Lu;0;L;;;;;N;;;;A7D7; A7D7;LATIN SMALL LETTER MIDDLE SCOTS S;Ll;0;L;;;;;N;;;A7D6;;A7D6 A7D8;LATIN CAPITAL LETTER SIGMOID S;Lu;0;L;;;;;N;;;;A7D9; @@ -14285,6 +14321,7 @@ A7D9;LATIN SMALL LETTER SIGMOID S;Ll;0;L;;;;;N;;;A7D8;;A7D8 A7DA;LATIN CAPITAL LETTER LAMBDA;Lu;0;L;;;;;N;;;;A7DB; A7DB;LATIN SMALL LETTER LAMBDA;Ll;0;L;;;;;N;;;A7DA;;A7DA A7DC;LATIN CAPITAL LETTER LAMBDA WITH STROKE;Lu;0;L;;;;;N;;;;019B; +A7F1;MODIFIER LETTER CAPITAL S;Lm;0;L; 0053;;;;N;;;;; A7F2;MODIFIER LETTER CAPITAL C;Lm;0;L; 0043;;;;N;;;;; A7F3;MODIFIER LETTER CAPITAL F;Lm;0;L; 0046;;;;N;;;;; A7F4;MODIFIER LETTER CAPITAL Q;Lm;0;L; 0051;;;;N;;;;; @@ -15925,6 +15962,22 @@ FBBF;ARABIC SYMBOL RING;Sk;0;AL;;;;;N;;;;; FBC0;ARABIC SYMBOL SMALL TAH ABOVE;Sk;0;AL;;;;;N;;;;; FBC1;ARABIC SYMBOL SMALL TAH BELOW;Sk;0;AL;;;;;N;;;;; FBC2;ARABIC SYMBOL WASLA ABOVE;Sk;0;AL;;;;;N;;;;; +FBC3;ARABIC LIGATURE JALLA WA-ALAA;So;0;ON;;;;;N;;;;; +FBC4;ARABIC LIGATURE DAAMAT BARAKAATUHUM;So;0;ON;;;;;N;;;;; +FBC5;ARABIC LIGATURE RAHMATU ALLAAHI TAAALAA ALAYH;So;0;ON;;;;;N;;;;; +FBC6;ARABIC LIGATURE RAHMATU ALLAAHI ALAYHIM;So;0;ON;;;;;N;;;;; +FBC7;ARABIC LIGATURE RAHMATU ALLAAHI ALAYHIMAA;So;0;ON;;;;;N;;;;; +FBC8;ARABIC LIGATURE RAHIMAHUM ALLAAHU TAAALAA;So;0;ON;;;;;N;;;;; +FBC9;ARABIC LIGATURE RAHIMAHUMAA ALLAAH;So;0;ON;;;;;N;;;;; +FBCA;ARABIC LIGATURE RAHIMAHUMAA ALLAAHU TAAALAA;So;0;ON;;;;;N;;;;; +FBCB;ARABIC LIGATURE RADI ALLAAHU TAAALAA ANHUM;So;0;ON;;;;;N;;;;; +FBCC;ARABIC LIGATURE HAFIZAHU ALLAAH;So;0;ON;;;;;N;;;;; +FBCD;ARABIC LIGATURE HAFIZAHU ALLAAHU TAAALAA;So;0;ON;;;;;N;;;;; +FBCE;ARABIC LIGATURE HAFIZAHUM ALLAAHU TAAALAA;So;0;ON;;;;;N;;;;; +FBCF;ARABIC LIGATURE HAFIZAHUMAA ALLAAHU TAAALAA;So;0;ON;;;;;N;;;;; +FBD0;ARABIC LIGATURE SALLALLAAHU TAAALAA ALAYHI WA-SALLAM;So;0;ON;;;;;N;;;;; +FBD1;ARABIC LIGATURE AJJAL ALLAAHU FARAJAHU ASH-SHAREEF;So;0;ON;;;;;N;;;;; +FBD2;ARABIC LIGATURE ALAYHI AR-RAHMAH;So;0;ON;;;;;N;;;;; FBD3;ARABIC LETTER NG ISOLATED FORM;Lo;0;AL; 06AD;;;;N;;;;; FBD4;ARABIC LETTER NG FINAL FORM;Lo;0;AL; 06AD;;;;N;;;;; FBD5;ARABIC LETTER NG INITIAL FORM;Lo;0;AL; 06AD;;;;N;;;;; @@ -16370,6 +16423,8 @@ FD8C;ARABIC LIGATURE MEEM WITH JEEM WITH HAH INITIAL FORM;Lo;0;AL; 0645 FD8D;ARABIC LIGATURE MEEM WITH JEEM WITH MEEM INITIAL FORM;Lo;0;AL; 0645 062C 0645;;;;N;;;;; FD8E;ARABIC LIGATURE MEEM WITH KHAH WITH JEEM INITIAL FORM;Lo;0;AL; 0645 062E 062C;;;;N;;;;; FD8F;ARABIC LIGATURE MEEM WITH KHAH WITH MEEM INITIAL FORM;Lo;0;AL; 0645 062E 0645;;;;N;;;;; +FD90;ARABIC LIGATURE RAHMATU ALLAAHI ALAYH;So;0;ON;;;;;N;;;;; +FD91;ARABIC LIGATURE RAHMATU ALLAAHI ALAYHAA;So;0;ON;;;;;N;;;;; FD92;ARABIC LIGATURE MEEM WITH JEEM WITH KHAH INITIAL FORM;Lo;0;AL; 0645 062C 062E;;;;N;;;;; FD93;ARABIC LIGATURE HEH WITH MEEM WITH JEEM INITIAL FORM;Lo;0;AL; 0647 0645 062C;;;;N;;;;; FD94;ARABIC LIGATURE HEH WITH MEEM WITH MEEM INITIAL FORM;Lo;0;AL; 0647 0645 0645;;;;N;;;;; @@ -16424,6 +16479,13 @@ FDC4;ARABIC LIGATURE AIN WITH JEEM WITH MEEM INITIAL FORM;Lo;0;AL; 0639 FDC5;ARABIC LIGATURE SAD WITH MEEM WITH MEEM INITIAL FORM;Lo;0;AL; 0635 0645 0645;;;;N;;;;; FDC6;ARABIC LIGATURE SEEN WITH KHAH WITH YEH FINAL FORM;Lo;0;AL; 0633 062E 064A;;;;N;;;;; FDC7;ARABIC LIGATURE NOON WITH JEEM WITH YEH FINAL FORM;Lo;0;AL; 0646 062C 064A;;;;N;;;;; +FDC8;ARABIC LIGATURE RAHIMAHU ALLAAH TAAALAA;So;0;ON;;;;;N;;;;; +FDC9;ARABIC LIGATURE RADI ALLAAHU TAAALAA ANH;So;0;ON;;;;;N;;;;; +FDCA;ARABIC LIGATURE RADI ALLAAHU TAAALAA ANHAA;So;0;ON;;;;;N;;;;; +FDCB;ARABIC LIGATURE RADI ALLAAHU TAAALAA ANHUMAA;So;0;ON;;;;;N;;;;; +FDCC;ARABIC LIGATURE SALLALLAHU ALAYHI WA-ALAA AALIHEE WA-SALLAM;So;0;ON;;;;;N;;;;; +FDCD;ARABIC LIGATURE AJJAL ALLAAHU TAAALAA FARAJAHU ASH-SHAREEF;So;0;ON;;;;;N;;;;; +FDCE;ARABIC LIGATURE KARRAMA ALLAAHU WAJHAH;So;0;ON;;;;;N;;;;; FDCF;ARABIC LIGATURE SALAAMUHU ALAYNAA;So;0;ON;;;;;N;;;;; FDF0;ARABIC LIGATURE SALLA USED AS KORANIC STOP SIGN ISOLATED FORM;Lo;0;AL; 0635 0644 06D2;;;;N;;;;; FDF1;ARABIC LIGATURE QALA USED AS KORANIC STOP SIGN ISOLATED FORM;Lo;0;AL; 0642 0644 06D2;;;;N;;;;; @@ -18708,6 +18770,32 @@ FFFD;REPLACEMENT CHARACTER;So;0;ON;;;;;N;;;;; 10938;LYDIAN LETTER NN;Lo;0;R;;;;;N;;;;; 10939;LYDIAN LETTER C;Lo;0;R;;;;;N;;;;; 1093F;LYDIAN TRIANGULAR MARK;Po;0;R;;;;;N;;;;; +10940;SIDETIC LETTER N01;Lo;0;R;;;;;N;;;;; +10941;SIDETIC LETTER N02;Lo;0;R;;;;;N;;;;; +10942;SIDETIC LETTER N03;Lo;0;R;;;;;N;;;;; +10943;SIDETIC LETTER N04;Lo;0;R;;;;;N;;;;; +10944;SIDETIC LETTER N05;Lo;0;R;;;;;N;;;;; +10945;SIDETIC LETTER N06;Lo;0;R;;;;;N;;;;; +10946;SIDETIC LETTER N07;Lo;0;R;;;;;N;;;;; +10947;SIDETIC LETTER N08;Lo;0;R;;;;;N;;;;; +10948;SIDETIC LETTER N09;Lo;0;R;;;;;N;;;;; +10949;SIDETIC LETTER N10;Lo;0;R;;;;;N;;;;; +1094A;SIDETIC LETTER N11;Lo;0;R;;;;;N;;;;; +1094B;SIDETIC LETTER N12;Lo;0;R;;;;;N;;;;; +1094C;SIDETIC LETTER N13;Lo;0;R;;;;;N;;;;; +1094D;SIDETIC LETTER N14;Lo;0;R;;;;;N;;;;; +1094E;SIDETIC LETTER N15;Lo;0;R;;;;;N;;;;; +1094F;SIDETIC LETTER N16;Lo;0;R;;;;;N;;;;; +10950;SIDETIC LETTER N17;Lo;0;R;;;;;N;;;;; +10951;SIDETIC LETTER N18;Lo;0;R;;;;;N;;;;; +10952;SIDETIC LETTER N19;Lo;0;R;;;;;N;;;;; +10953;SIDETIC LETTER N20;Lo;0;R;;;;;N;;;;; +10954;SIDETIC LETTER N21;Lo;0;R;;;;;N;;;;; +10955;SIDETIC LETTER N22;Lo;0;R;;;;;N;;;;; +10956;SIDETIC LETTER N23;Lo;0;R;;;;;N;;;;; +10957;SIDETIC LETTER N24;Lo;0;R;;;;;N;;;;; +10958;SIDETIC LETTER N25;Lo;0;R;;;;;N;;;;; +10959;SIDETIC LETTER N26;Lo;0;R;;;;;N;;;;; 10980;MEROITIC HIEROGLYPHIC LETTER A;Lo;0;R;;;;;N;;;;; 10981;MEROITIC HIEROGLYPHIC LETTER E;Lo;0;R;;;;;N;;;;; 10982;MEROITIC HIEROGLYPHIC LETTER I;Lo;0;R;;;;;N;;;;; @@ -19541,6 +19629,20 @@ FFFD;REPLACEMENT CHARACTER;So;0;ON;;;;;N;;;;; 10EC2;ARABIC LETTER DAL WITH TWO DOTS VERTICALLY BELOW;Lo;0;AL;;;;;N;;;;; 10EC3;ARABIC LETTER TAH WITH TWO DOTS VERTICALLY BELOW;Lo;0;AL;;;;;N;;;;; 10EC4;ARABIC LETTER KAF WITH TWO DOTS VERTICALLY BELOW;Lo;0;AL;;;;;N;;;;; +10EC5;ARABIC SMALL YEH BARREE WITH TWO DOTS BELOW;Lm;0;AL;;;;;N;;;;; +10EC6;ARABIC LETTER THIN NOON;Lo;0;AL;;;;;N;;;;; +10EC7;ARABIC LETTER YEH WITH FOUR DOTS BELOW;Lo;0;AL;;;;;N;;;;; +10ED0;ARABIC BIBLICAL END OF VERSE;Po;0;ON;;;;;N;;;;; +10ED1;ARABIC LIGATURE ALAYHAA AS-SALAATU WAS-SALAAM;So;0;ON;;;;;N;;;;; +10ED2;ARABIC LIGATURE ALAYHIM AS-SALAATU WAS-SALAAM;So;0;ON;;;;;N;;;;; +10ED3;ARABIC LIGATURE ALAYHIMAA AS-SALAATU WAS-SALAAM;So;0;ON;;;;;N;;;;; +10ED4;ARABIC LIGATURE QADDASA ALLAAHU SIRRAH;So;0;ON;;;;;N;;;;; +10ED5;ARABIC LIGATURE QUDDISA SIRRUHUM;So;0;ON;;;;;N;;;;; +10ED6;ARABIC LIGATURE QUDDISA SIRRUHUMAA;So;0;ON;;;;;N;;;;; +10ED7;ARABIC LIGATURE QUDDISAT ASRAARUHUM;So;0;ON;;;;;N;;;;; +10ED8;ARABIC LIGATURE NAWWARA ALLAAHU MARQADAH;So;0;ON;;;;;N;;;;; +10EFA;ARABIC DOUBLE VERTICAL BAR BELOW;Mn;220;NSM;;;;;N;;;;; +10EFB;ARABIC SMALL LOW NOON;Mn;220;NSM;;;;;N;;;;; 10EFC;ARABIC COMBINING ALEF OVERLAY;Mn;0;NSM;;;;;N;;;;; 10EFD;ARABIC SMALL LOW WORD SAKTA;Mn;220;NSM;;;;;N;;;;; 10EFE;ARABIC SMALL LOW WORD QASR;Mn;220;NSM;;;;;N;;;;; @@ -21521,6 +21623,14 @@ FFFD;REPLACEMENT CHARACTER;So;0;ON;;;;;N;;;;; 11B07;DEVANAGARI SIGN WESTERN NINE-LIKE BHALE;Po;0;L;;;;;N;;;;; 11B08;DEVANAGARI SIGN REVERSED NINE-LIKE BHALE;Po;0;L;;;;;N;;;;; 11B09;DEVANAGARI SIGN MINDU;Po;0;L;;;;;N;;;;; +11B60;SHARADA VOWEL SIGN OE;Mn;0;NSM;;;;;N;;;;; +11B61;SHARADA VOWEL SIGN OOE;Mc;0;L;;;;;N;;;;; +11B62;SHARADA VOWEL SIGN UE;Mn;0;NSM;;;;;N;;;;; +11B63;SHARADA VOWEL SIGN UUE;Mn;0;NSM;;;;;N;;;;; +11B64;SHARADA VOWEL SIGN SHORT E;Mn;0;NSM;;;;;N;;;;; +11B65;SHARADA VOWEL SIGN SHORT O;Mc;0;L;;;;;N;;;;; +11B66;SHARADA VOWEL SIGN CANDRA E;Mn;0;NSM;;;;;N;;;;; +11B67;SHARADA VOWEL SIGN CANDRA O;Mc;0;L;;;;;N;;;;; 11BC0;SUNUWAR LETTER DEVI;Lo;0;L;;;;;N;;;;; 11BC1;SUNUWAR LETTER TASLA;Lo;0;L;;;;;N;;;;; 11BC2;SUNUWAR LETTER EKO;Lo;0;L;;;;;N;;;;; @@ -21868,6 +21978,60 @@ FFFD;REPLACEMENT CHARACTER;So;0;ON;;;;;N;;;;; 11DA7;GUNJALA GONDI DIGIT SEVEN;Nd;0;L;;7;7;7;N;;;;; 11DA8;GUNJALA GONDI DIGIT EIGHT;Nd;0;L;;8;8;8;N;;;;; 11DA9;GUNJALA GONDI DIGIT NINE;Nd;0;L;;9;9;9;N;;;;; +11DB0;TOLONG SIKI LETTER I;Lo;0;L;;;;;N;;;;; +11DB1;TOLONG SIKI LETTER E;Lo;0;L;;;;;N;;;;; +11DB2;TOLONG SIKI LETTER U;Lo;0;L;;;;;N;;;;; +11DB3;TOLONG SIKI LETTER O;Lo;0;L;;;;;N;;;;; +11DB4;TOLONG SIKI LETTER A;Lo;0;L;;;;;N;;;;; +11DB5;TOLONG SIKI LETTER AA;Lo;0;L;;;;;N;;;;; +11DB6;TOLONG SIKI LETTER P;Lo;0;L;;;;;N;;;;; +11DB7;TOLONG SIKI LETTER PH;Lo;0;L;;;;;N;;;;; +11DB8;TOLONG SIKI LETTER B;Lo;0;L;;;;;N;;;;; +11DB9;TOLONG SIKI LETTER BH;Lo;0;L;;;;;N;;;;; +11DBA;TOLONG SIKI LETTER M;Lo;0;L;;;;;N;;;;; +11DBB;TOLONG SIKI LETTER T;Lo;0;L;;;;;N;;;;; +11DBC;TOLONG SIKI LETTER TH;Lo;0;L;;;;;N;;;;; +11DBD;TOLONG SIKI LETTER D;Lo;0;L;;;;;N;;;;; +11DBE;TOLONG SIKI LETTER DH;Lo;0;L;;;;;N;;;;; +11DBF;TOLONG SIKI LETTER N;Lo;0;L;;;;;N;;;;; +11DC0;TOLONG SIKI LETTER TT;Lo;0;L;;;;;N;;;;; +11DC1;TOLONG SIKI LETTER TTH;Lo;0;L;;;;;N;;;;; +11DC2;TOLONG SIKI LETTER DD;Lo;0;L;;;;;N;;;;; +11DC3;TOLONG SIKI LETTER DDH;Lo;0;L;;;;;N;;;;; +11DC4;TOLONG SIKI LETTER NN;Lo;0;L;;;;;N;;;;; +11DC5;TOLONG SIKI LETTER C;Lo;0;L;;;;;N;;;;; +11DC6;TOLONG SIKI LETTER CH;Lo;0;L;;;;;N;;;;; +11DC7;TOLONG SIKI LETTER J;Lo;0;L;;;;;N;;;;; +11DC8;TOLONG SIKI LETTER JH;Lo;0;L;;;;;N;;;;; +11DC9;TOLONG SIKI LETTER NY;Lo;0;L;;;;;N;;;;; +11DCA;TOLONG SIKI LETTER K;Lo;0;L;;;;;N;;;;; +11DCB;TOLONG SIKI LETTER KH;Lo;0;L;;;;;N;;;;; +11DCC;TOLONG SIKI LETTER G;Lo;0;L;;;;;N;;;;; +11DCD;TOLONG SIKI LETTER GH;Lo;0;L;;;;;N;;;;; +11DCE;TOLONG SIKI LETTER NG;Lo;0;L;;;;;N;;;;; +11DCF;TOLONG SIKI LETTER Y;Lo;0;L;;;;;N;;;;; +11DD0;TOLONG SIKI LETTER R;Lo;0;L;;;;;N;;;;; +11DD1;TOLONG SIKI LETTER L;Lo;0;L;;;;;N;;;;; +11DD2;TOLONG SIKI LETTER V;Lo;0;L;;;;;N;;;;; +11DD3;TOLONG SIKI LETTER NNY;Lo;0;L;;;;;N;;;;; +11DD4;TOLONG SIKI LETTER S;Lo;0;L;;;;;N;;;;; +11DD5;TOLONG SIKI LETTER H;Lo;0;L;;;;;N;;;;; +11DD6;TOLONG SIKI LETTER X;Lo;0;L;;;;;N;;;;; +11DD7;TOLONG SIKI LETTER RR;Lo;0;L;;;;;N;;;;; +11DD8;TOLONG SIKI LETTER RRH;Lo;0;L;;;;;N;;;;; +11DD9;TOLONG SIKI SIGN SELA;Lm;0;L;;;;;N;;;;; +11DDA;TOLONG SIKI SIGN HECAKA;Lo;0;L;;;;;N;;;;; +11DDB;TOLONG SIKI UNGGA;Lo;0;L;;;;;N;;;;; +11DE0;TOLONG SIKI DIGIT ZERO;Nd;0;L;;0;0;0;N;;;;; +11DE1;TOLONG SIKI DIGIT ONE;Nd;0;L;;1;1;1;N;;;;; +11DE2;TOLONG SIKI DIGIT TWO;Nd;0;L;;2;2;2;N;;;;; +11DE3;TOLONG SIKI DIGIT THREE;Nd;0;L;;3;3;3;N;;;;; +11DE4;TOLONG SIKI DIGIT FOUR;Nd;0;L;;4;4;4;N;;;;; +11DE5;TOLONG SIKI DIGIT FIVE;Nd;0;L;;5;5;5;N;;;;; +11DE6;TOLONG SIKI DIGIT SIX;Nd;0;L;;6;6;6;N;;;;; +11DE7;TOLONG SIKI DIGIT SEVEN;Nd;0;L;;7;7;7;N;;;;; +11DE8;TOLONG SIKI DIGIT EIGHT;Nd;0;L;;8;8;8;N;;;;; +11DE9;TOLONG SIKI DIGIT NINE;Nd;0;L;;9;9;9;N;;;;; 11EE0;MAKASAR LETTER KA;Lo;0;L;;;;;N;;;;; 11EE1;MAKASAR LETTER GA;Lo;0;L;;;;;N;;;;; 11EE2;MAKASAR LETTER NGA;Lo;0;L;;;;;N;;;;; @@ -22088,8 +22252,8 @@ FFFD;REPLACEMENT CHARACTER;So;0;ON;;;;;N;;;;; 12035;CUNEIFORM SIGN ARAD TIMES KUR;Lo;0;L;;;;;N;;;;; 12036;CUNEIFORM SIGN ARKAB;Lo;0;L;;;;;N;;;;; 12037;CUNEIFORM SIGN ASAL2;Lo;0;L;;;;;N;;;;; -12038;CUNEIFORM SIGN ASH;Lo;0;L;;;;;N;;;;; -12039;CUNEIFORM SIGN ASH ZIDA TENU;Lo;0;L;;;;;N;;;;; +12038;CUNEIFORM SIGN ASH;Lo;0;L;;;;1;N;;;;; +12039;CUNEIFORM SIGN ASH ZIDA TENU;Lo;0;L;;;;1;N;;;;; 1203A;CUNEIFORM SIGN ASH KABA TENU;Lo;0;L;;;;;N;;;;; 1203B;CUNEIFORM SIGN ASH OVER ASH TUG2 OVER TUG2 TUG2 OVER TUG2 PAP;Lo;0;L;;;;;N;;;;; 1203C;CUNEIFORM SIGN ASH OVER ASH OVER ASH;Lo;0;L;;;;;N;;;;; @@ -22153,7 +22317,7 @@ FFFD;REPLACEMENT CHARACTER;So;0;ON;;;;;N;;;;; 12076;CUNEIFORM SIGN DIM2;Lo;0;L;;;;;N;;;;; 12077;CUNEIFORM SIGN DIN;Lo;0;L;;;;;N;;;;; 12078;CUNEIFORM SIGN DIN KASKAL U GUNU DISH;Lo;0;L;;;;;N;;;;; -12079;CUNEIFORM SIGN DISH;Lo;0;L;;;;;N;;;;; +12079;CUNEIFORM SIGN DISH;Lo;0;L;;;;1;N;;;;; 1207A;CUNEIFORM SIGN DU;Lo;0;L;;;;;N;;;;; 1207B;CUNEIFORM SIGN DU OVER DU;Lo;0;L;;;;;N;;;;; 1207C;CUNEIFORM SIGN DU GUNU;Lo;0;L;;;;;N;;;;; @@ -22582,12 +22746,12 @@ FFFD;REPLACEMENT CHARACTER;So;0;ON;;;;;N;;;;; 12223;CUNEIFORM SIGN MA2;Lo;0;L;;;;;N;;;;; 12224;CUNEIFORM SIGN MAH;Lo;0;L;;;;;N;;;;; 12225;CUNEIFORM SIGN MAR;Lo;0;L;;;;;N;;;;; -12226;CUNEIFORM SIGN MASH;Lo;0;L;;;;;N;;;;; +12226;CUNEIFORM SIGN MASH;Lo;0;L;;;;1/2;N;;;;; 12227;CUNEIFORM SIGN MASH2;Lo;0;L;;;;;N;;;;; 12228;CUNEIFORM SIGN ME;Lo;0;L;;;;;N;;;;; 12229;CUNEIFORM SIGN MES;Lo;0;L;;;;;N;;;;; 1222A;CUNEIFORM SIGN MI;Lo;0;L;;;;;N;;;;; -1222B;CUNEIFORM SIGN MIN;Lo;0;L;;;;;N;;;;; +1222B;CUNEIFORM SIGN MIN;Lo;0;L;;;;2;N;;;;; 1222C;CUNEIFORM SIGN MU;Lo;0;L;;;;;N;;;;; 1222D;CUNEIFORM SIGN MU OVER MU;Lo;0;L;;;;;N;;;;; 1222E;CUNEIFORM SIGN MUG;Lo;0;L;;;;;N;;;;; @@ -22811,9 +22975,9 @@ FFFD;REPLACEMENT CHARACTER;So;0;ON;;;;;N;;;;; 12308;CUNEIFORM SIGN TUM;Lo;0;L;;;;;N;;;;; 12309;CUNEIFORM SIGN TUR;Lo;0;L;;;;;N;;;;; 1230A;CUNEIFORM SIGN TUR OVER TUR ZA OVER ZA;Lo;0;L;;;;;N;;;;; -1230B;CUNEIFORM SIGN U;Lo;0;L;;;;;N;;;;; +1230B;CUNEIFORM SIGN U;Lo;0;L;;;;1;N;;;;; 1230C;CUNEIFORM SIGN U GUD;Lo;0;L;;;;;N;;;;; -1230D;CUNEIFORM SIGN U U U;Lo;0;L;;;;;N;;;;; +1230D;CUNEIFORM SIGN U U U;Lo;0;L;;;;3;N;;;;; 1230E;CUNEIFORM SIGN U OVER U PA OVER PA GAR OVER GAR;Lo;0;L;;;;;N;;;;; 1230F;CUNEIFORM SIGN U OVER U SUR OVER SUR;Lo;0;L;;;;;N;;;;; 12310;CUNEIFORM SIGN U OVER U U REVERSED OVER U REVERSED;Lo;0;L;;;;;N;;;;; @@ -22953,7 +23117,7 @@ FFFD;REPLACEMENT CHARACTER;So;0;ON;;;;;N;;;;; 12396;CUNEIFORM SIGN SAG TIMES IGI GUNU;Lo;0;L;;;;;N;;;;; 12397;CUNEIFORM SIGN TI2;Lo;0;L;;;;;N;;;;; 12398;CUNEIFORM SIGN UM TIMES ME;Lo;0;L;;;;;N;;;;; -12399;CUNEIFORM SIGN U U;Lo;0;L;;;;;N;;;;; +12399;CUNEIFORM SIGN U U;Lo;0;L;;;;2;N;;;;; 12400;CUNEIFORM NUMERIC SIGN TWO ASH;Nl;0;L;;;;2;N;;;;; 12401;CUNEIFORM NUMERIC SIGN THREE ASH;Nl;0;L;;;;3;N;;;;; 12402;CUNEIFORM NUMERIC SIGN FOUR ASH;Nl;0;L;;;;4;N;;;;; @@ -30124,6 +30288,56 @@ FFFD;REPLACEMENT CHARACTER;So;0;ON;;;;;N;;;;; 16E98;MEDEFAIDRIN FULL STOP;Po;0;L;;;;;N;;;;; 16E99;MEDEFAIDRIN SYMBOL AIVA;Po;0;L;;;;;N;;;;; 16E9A;MEDEFAIDRIN EXCLAMATION OH;Po;0;L;;;;;N;;;;; +16EA0;BERIA ERFE CAPITAL LETTER ARKAB;Lu;0;L;;;;;N;;;;16EBB; +16EA1;BERIA ERFE CAPITAL LETTER BASIGNA;Lu;0;L;;;;;N;;;;16EBC; +16EA2;BERIA ERFE CAPITAL LETTER DARBAI;Lu;0;L;;;;;N;;;;16EBD; +16EA3;BERIA ERFE CAPITAL LETTER EH;Lu;0;L;;;;;N;;;;16EBE; +16EA4;BERIA ERFE CAPITAL LETTER FITKO;Lu;0;L;;;;;N;;;;16EBF; +16EA5;BERIA ERFE CAPITAL LETTER GOWAY;Lu;0;L;;;;;N;;;;16EC0; +16EA6;BERIA ERFE CAPITAL LETTER HIRDEABO;Lu;0;L;;;;;N;;;;16EC1; +16EA7;BERIA ERFE CAPITAL LETTER I;Lu;0;L;;;;;N;;;;16EC2; +16EA8;BERIA ERFE CAPITAL LETTER DJAI;Lu;0;L;;;;;N;;;;16EC3; +16EA9;BERIA ERFE CAPITAL LETTER KOBO;Lu;0;L;;;;;N;;;;16EC4; +16EAA;BERIA ERFE CAPITAL LETTER LAKKO;Lu;0;L;;;;;N;;;;16EC5; +16EAB;BERIA ERFE CAPITAL LETTER MERI;Lu;0;L;;;;;N;;;;16EC6; +16EAC;BERIA ERFE CAPITAL LETTER NINI;Lu;0;L;;;;;N;;;;16EC7; +16EAD;BERIA ERFE CAPITAL LETTER GNA;Lu;0;L;;;;;N;;;;16EC8; +16EAE;BERIA ERFE CAPITAL LETTER NGAY;Lu;0;L;;;;;N;;;;16EC9; +16EAF;BERIA ERFE CAPITAL LETTER OI;Lu;0;L;;;;;N;;;;16ECA; +16EB0;BERIA ERFE CAPITAL LETTER PI;Lu;0;L;;;;;N;;;;16ECB; +16EB1;BERIA ERFE CAPITAL LETTER ERIGO;Lu;0;L;;;;;N;;;;16ECC; +16EB2;BERIA ERFE CAPITAL LETTER ERIGO TAMURA;Lu;0;L;;;;;N;;;;16ECD; +16EB3;BERIA ERFE CAPITAL LETTER SERI;Lu;0;L;;;;;N;;;;16ECE; +16EB4;BERIA ERFE CAPITAL LETTER SHEP;Lu;0;L;;;;;N;;;;16ECF; +16EB5;BERIA ERFE CAPITAL LETTER TATASOUE;Lu;0;L;;;;;N;;;;16ED0; +16EB6;BERIA ERFE CAPITAL LETTER UI;Lu;0;L;;;;;N;;;;16ED1; +16EB7;BERIA ERFE CAPITAL LETTER WASSE;Lu;0;L;;;;;N;;;;16ED2; +16EB8;BERIA ERFE CAPITAL LETTER AY;Lu;0;L;;;;;N;;;;16ED3; +16EBB;BERIA ERFE SMALL LETTER ARKAB;Ll;0;L;;;;;N;;;16EA0;;16EA0 +16EBC;BERIA ERFE SMALL LETTER BASIGNA;Ll;0;L;;;;;N;;;16EA1;;16EA1 +16EBD;BERIA ERFE SMALL LETTER DARBAI;Ll;0;L;;;;;N;;;16EA2;;16EA2 +16EBE;BERIA ERFE SMALL LETTER EH;Ll;0;L;;;;;N;;;16EA3;;16EA3 +16EBF;BERIA ERFE SMALL LETTER FITKO;Ll;0;L;;;;;N;;;16EA4;;16EA4 +16EC0;BERIA ERFE SMALL LETTER GOWAY;Ll;0;L;;;;;N;;;16EA5;;16EA5 +16EC1;BERIA ERFE SMALL LETTER HIRDEABO;Ll;0;L;;;;;N;;;16EA6;;16EA6 +16EC2;BERIA ERFE SMALL LETTER I;Ll;0;L;;;;;N;;;16EA7;;16EA7 +16EC3;BERIA ERFE SMALL LETTER DJAI;Ll;0;L;;;;;N;;;16EA8;;16EA8 +16EC4;BERIA ERFE SMALL LETTER KOBO;Ll;0;L;;;;;N;;;16EA9;;16EA9 +16EC5;BERIA ERFE SMALL LETTER LAKKO;Ll;0;L;;;;;N;;;16EAA;;16EAA +16EC6;BERIA ERFE SMALL LETTER MERI;Ll;0;L;;;;;N;;;16EAB;;16EAB +16EC7;BERIA ERFE SMALL LETTER NINI;Ll;0;L;;;;;N;;;16EAC;;16EAC +16EC8;BERIA ERFE SMALL LETTER GNA;Ll;0;L;;;;;N;;;16EAD;;16EAD +16EC9;BERIA ERFE SMALL LETTER NGAY;Ll;0;L;;;;;N;;;16EAE;;16EAE +16ECA;BERIA ERFE SMALL LETTER OI;Ll;0;L;;;;;N;;;16EAF;;16EAF +16ECB;BERIA ERFE SMALL LETTER PI;Ll;0;L;;;;;N;;;16EB0;;16EB0 +16ECC;BERIA ERFE SMALL LETTER ERIGO;Ll;0;L;;;;;N;;;16EB1;;16EB1 +16ECD;BERIA ERFE SMALL LETTER ERIGO TAMURA;Ll;0;L;;;;;N;;;16EB2;;16EB2 +16ECE;BERIA ERFE SMALL LETTER SERI;Ll;0;L;;;;;N;;;16EB3;;16EB3 +16ECF;BERIA ERFE SMALL LETTER SHEP;Ll;0;L;;;;;N;;;16EB4;;16EB4 +16ED0;BERIA ERFE SMALL LETTER TATASOUE;Ll;0;L;;;;;N;;;16EB5;;16EB5 +16ED1;BERIA ERFE SMALL LETTER UI;Ll;0;L;;;;;N;;;16EB6;;16EB6 +16ED2;BERIA ERFE SMALL LETTER WASSE;Ll;0;L;;;;;N;;;16EB7;;16EB7 +16ED3;BERIA ERFE SMALL LETTER AY;Ll;0;L;;;;;N;;;16EB8;;16EB8 16F00;MIAO LETTER PA;Lo;0;L;;;;;N;;;;; 16F01;MIAO LETTER BA;Lo;0;L;;;;;N;;;;; 16F02;MIAO LETTER YI PA;Lo;0;L;;;;;N;;;;; @@ -30280,8 +30494,13 @@ FFFD;REPLACEMENT CHARACTER;So;0;ON;;;;;N;;;;; 16FE4;KHITAN SMALL SCRIPT FILLER;Mn;0;NSM;;;;;N;;;;; 16FF0;VIETNAMESE ALTERNATE READING MARK CA;Mc;6;L;;;;;N;;;;; 16FF1;VIETNAMESE ALTERNATE READING MARK NHAY;Mc;6;L;;;;;N;;;;; +16FF2;CHINESE SMALL SIMPLIFIED ER;Lm;0;L;;;;;N;;;;; +16FF3;CHINESE SMALL TRADITIONAL ER;Lm;0;L;;;;;N;;;;; +16FF4;YANGQIN SIGN SLOW ONE BEAT;Nl;0;L;;;;1;N;;;;; +16FF5;YANGQIN SIGN SLOW THREE HALF BEATS;Nl;0;L;;;;3/2;N;;;;; +16FF6;YANGQIN SIGN SLOW TWO BEATS;Nl;0;L;;;;2;N;;;;; 17000;;Lo;0;L;;;;;N;;;;; -187F7;;Lo;0;L;;;;;N;;;;; +187FF;;Lo;0;L;;;;;N;;;;; 18800;TANGUT COMPONENT-001;Lo;0;L;;;;;N;;;;; 18801;TANGUT COMPONENT-002;Lo;0;L;;;;;N;;;;; 18802;TANGUT COMPONENT-003;Lo;0;L;;;;;N;;;;; @@ -31522,7 +31741,122 @@ FFFD;REPLACEMENT CHARACTER;So;0;ON;;;;;N;;;;; 18CD5;KHITAN SMALL SCRIPT CHARACTER-18CD5;Lo;0;L;;;;;N;;;;; 18CFF;KHITAN SMALL SCRIPT CHARACTER-18CFF;Lo;0;L;;;;;N;;;;; 18D00;;Lo;0;L;;;;;N;;;;; -18D08;;Lo;0;L;;;;;N;;;;; +18D1E;;Lo;0;L;;;;;N;;;;; +18D80;TANGUT COMPONENT-769;Lo;0;L;;;;;N;;;;; +18D81;TANGUT COMPONENT-770;Lo;0;L;;;;;N;;;;; +18D82;TANGUT COMPONENT-771;Lo;0;L;;;;;N;;;;; +18D83;TANGUT COMPONENT-772;Lo;0;L;;;;;N;;;;; +18D84;TANGUT COMPONENT-773;Lo;0;L;;;;;N;;;;; +18D85;TANGUT COMPONENT-774;Lo;0;L;;;;;N;;;;; +18D86;TANGUT COMPONENT-775;Lo;0;L;;;;;N;;;;; +18D87;TANGUT COMPONENT-776;Lo;0;L;;;;;N;;;;; +18D88;TANGUT COMPONENT-777;Lo;0;L;;;;;N;;;;; +18D89;TANGUT COMPONENT-778;Lo;0;L;;;;;N;;;;; +18D8A;TANGUT COMPONENT-779;Lo;0;L;;;;;N;;;;; +18D8B;TANGUT COMPONENT-780;Lo;0;L;;;;;N;;;;; +18D8C;TANGUT COMPONENT-781;Lo;0;L;;;;;N;;;;; +18D8D;TANGUT COMPONENT-782;Lo;0;L;;;;;N;;;;; +18D8E;TANGUT COMPONENT-783;Lo;0;L;;;;;N;;;;; +18D8F;TANGUT COMPONENT-784;Lo;0;L;;;;;N;;;;; +18D90;TANGUT COMPONENT-785;Lo;0;L;;;;;N;;;;; +18D91;TANGUT COMPONENT-786;Lo;0;L;;;;;N;;;;; +18D92;TANGUT COMPONENT-787;Lo;0;L;;;;;N;;;;; +18D93;TANGUT COMPONENT-788;Lo;0;L;;;;;N;;;;; +18D94;TANGUT COMPONENT-789;Lo;0;L;;;;;N;;;;; +18D95;TANGUT COMPONENT-790;Lo;0;L;;;;;N;;;;; +18D96;TANGUT COMPONENT-791;Lo;0;L;;;;;N;;;;; +18D97;TANGUT COMPONENT-792;Lo;0;L;;;;;N;;;;; +18D98;TANGUT COMPONENT-793;Lo;0;L;;;;;N;;;;; +18D99;TANGUT COMPONENT-794;Lo;0;L;;;;;N;;;;; +18D9A;TANGUT COMPONENT-795;Lo;0;L;;;;;N;;;;; +18D9B;TANGUT COMPONENT-796;Lo;0;L;;;;;N;;;;; +18D9C;TANGUT COMPONENT-797;Lo;0;L;;;;;N;;;;; +18D9D;TANGUT COMPONENT-798;Lo;0;L;;;;;N;;;;; +18D9E;TANGUT COMPONENT-799;Lo;0;L;;;;;N;;;;; +18D9F;TANGUT COMPONENT-800;Lo;0;L;;;;;N;;;;; +18DA0;TANGUT COMPONENT-801;Lo;0;L;;;;;N;;;;; +18DA1;TANGUT COMPONENT-802;Lo;0;L;;;;;N;;;;; +18DA2;TANGUT COMPONENT-803;Lo;0;L;;;;;N;;;;; +18DA3;TANGUT COMPONENT-804;Lo;0;L;;;;;N;;;;; +18DA4;TANGUT COMPONENT-805;Lo;0;L;;;;;N;;;;; +18DA5;TANGUT COMPONENT-806;Lo;0;L;;;;;N;;;;; +18DA6;TANGUT COMPONENT-807;Lo;0;L;;;;;N;;;;; +18DA7;TANGUT COMPONENT-808;Lo;0;L;;;;;N;;;;; +18DA8;TANGUT COMPONENT-809;Lo;0;L;;;;;N;;;;; +18DA9;TANGUT COMPONENT-810;Lo;0;L;;;;;N;;;;; +18DAA;TANGUT COMPONENT-811;Lo;0;L;;;;;N;;;;; +18DAB;TANGUT COMPONENT-812;Lo;0;L;;;;;N;;;;; +18DAC;TANGUT COMPONENT-813;Lo;0;L;;;;;N;;;;; +18DAD;TANGUT COMPONENT-814;Lo;0;L;;;;;N;;;;; +18DAE;TANGUT COMPONENT-815;Lo;0;L;;;;;N;;;;; +18DAF;TANGUT COMPONENT-816;Lo;0;L;;;;;N;;;;; +18DB0;TANGUT COMPONENT-817;Lo;0;L;;;;;N;;;;; +18DB1;TANGUT COMPONENT-818;Lo;0;L;;;;;N;;;;; +18DB2;TANGUT COMPONENT-819;Lo;0;L;;;;;N;;;;; +18DB3;TANGUT COMPONENT-820;Lo;0;L;;;;;N;;;;; +18DB4;TANGUT COMPONENT-821;Lo;0;L;;;;;N;;;;; +18DB5;TANGUT COMPONENT-822;Lo;0;L;;;;;N;;;;; +18DB6;TANGUT COMPONENT-823;Lo;0;L;;;;;N;;;;; +18DB7;TANGUT COMPONENT-824;Lo;0;L;;;;;N;;;;; +18DB8;TANGUT COMPONENT-825;Lo;0;L;;;;;N;;;;; +18DB9;TANGUT COMPONENT-826;Lo;0;L;;;;;N;;;;; +18DBA;TANGUT COMPONENT-827;Lo;0;L;;;;;N;;;;; +18DBB;TANGUT COMPONENT-828;Lo;0;L;;;;;N;;;;; +18DBC;TANGUT COMPONENT-829;Lo;0;L;;;;;N;;;;; +18DBD;TANGUT COMPONENT-830;Lo;0;L;;;;;N;;;;; +18DBE;TANGUT COMPONENT-831;Lo;0;L;;;;;N;;;;; +18DBF;TANGUT COMPONENT-832;Lo;0;L;;;;;N;;;;; +18DC0;TANGUT COMPONENT-833;Lo;0;L;;;;;N;;;;; +18DC1;TANGUT COMPONENT-834;Lo;0;L;;;;;N;;;;; +18DC2;TANGUT COMPONENT-835;Lo;0;L;;;;;N;;;;; +18DC3;TANGUT COMPONENT-836;Lo;0;L;;;;;N;;;;; +18DC4;TANGUT COMPONENT-837;Lo;0;L;;;;;N;;;;; +18DC5;TANGUT COMPONENT-838;Lo;0;L;;;;;N;;;;; +18DC6;TANGUT COMPONENT-839;Lo;0;L;;;;;N;;;;; +18DC7;TANGUT COMPONENT-840;Lo;0;L;;;;;N;;;;; +18DC8;TANGUT COMPONENT-841;Lo;0;L;;;;;N;;;;; +18DC9;TANGUT COMPONENT-842;Lo;0;L;;;;;N;;;;; +18DCA;TANGUT COMPONENT-843;Lo;0;L;;;;;N;;;;; +18DCB;TANGUT COMPONENT-844;Lo;0;L;;;;;N;;;;; +18DCC;TANGUT COMPONENT-845;Lo;0;L;;;;;N;;;;; +18DCD;TANGUT COMPONENT-846;Lo;0;L;;;;;N;;;;; +18DCE;TANGUT COMPONENT-847;Lo;0;L;;;;;N;;;;; +18DCF;TANGUT COMPONENT-848;Lo;0;L;;;;;N;;;;; +18DD0;TANGUT COMPONENT-849;Lo;0;L;;;;;N;;;;; +18DD1;TANGUT COMPONENT-850;Lo;0;L;;;;;N;;;;; +18DD2;TANGUT COMPONENT-851;Lo;0;L;;;;;N;;;;; +18DD3;TANGUT COMPONENT-852;Lo;0;L;;;;;N;;;;; +18DD4;TANGUT COMPONENT-853;Lo;0;L;;;;;N;;;;; +18DD5;TANGUT COMPONENT-854;Lo;0;L;;;;;N;;;;; +18DD6;TANGUT COMPONENT-855;Lo;0;L;;;;;N;;;;; +18DD7;TANGUT COMPONENT-856;Lo;0;L;;;;;N;;;;; +18DD8;TANGUT COMPONENT-857;Lo;0;L;;;;;N;;;;; +18DD9;TANGUT COMPONENT-858;Lo;0;L;;;;;N;;;;; +18DDA;TANGUT COMPONENT-859;Lo;0;L;;;;;N;;;;; +18DDB;TANGUT COMPONENT-860;Lo;0;L;;;;;N;;;;; +18DDC;TANGUT COMPONENT-861;Lo;0;L;;;;;N;;;;; +18DDD;TANGUT COMPONENT-862;Lo;0;L;;;;;N;;;;; +18DDE;TANGUT COMPONENT-863;Lo;0;L;;;;;N;;;;; +18DDF;TANGUT COMPONENT-864;Lo;0;L;;;;;N;;;;; +18DE0;TANGUT COMPONENT-865;Lo;0;L;;;;;N;;;;; +18DE1;TANGUT COMPONENT-866;Lo;0;L;;;;;N;;;;; +18DE2;TANGUT COMPONENT-867;Lo;0;L;;;;;N;;;;; +18DE3;TANGUT COMPONENT-868;Lo;0;L;;;;;N;;;;; +18DE4;TANGUT COMPONENT-869;Lo;0;L;;;;;N;;;;; +18DE5;TANGUT COMPONENT-870;Lo;0;L;;;;;N;;;;; +18DE6;TANGUT COMPONENT-871;Lo;0;L;;;;;N;;;;; +18DE7;TANGUT COMPONENT-872;Lo;0;L;;;;;N;;;;; +18DE8;TANGUT COMPONENT-873;Lo;0;L;;;;;N;;;;; +18DE9;TANGUT COMPONENT-874;Lo;0;L;;;;;N;;;;; +18DEA;TANGUT COMPONENT-875;Lo;0;L;;;;;N;;;;; +18DEB;TANGUT COMPONENT-876;Lo;0;L;;;;;N;;;;; +18DEC;TANGUT COMPONENT-877;Lo;0;L;;;;;N;;;;; +18DED;TANGUT COMPONENT-878;Lo;0;L;;;;;N;;;;; +18DEE;TANGUT COMPONENT-879;Lo;0;L;;;;;N;;;;; +18DEF;TANGUT COMPONENT-880;Lo;0;L;;;;;N;;;;; +18DF0;TANGUT COMPONENT-881;Lo;0;L;;;;;N;;;;; +18DF1;TANGUT COMPONENT-882;Lo;0;L;;;;;N;;;;; +18DF2;TANGUT COMPONENT-883;Lo;0;L;;;;;N;;;;; 1AFF0;KATAKANA LETTER MINNAN TONE-2;Lm;0;L;;;;;N;;;;; 1AFF1;KATAKANA LETTER MINNAN TONE-3;Lm;0;L;;;;;N;;;;; 1AFF2;KATAKANA LETTER MINNAN TONE-4;Lm;0;L;;;;;N;;;;; @@ -32629,6 +32963,9 @@ FFFD;REPLACEMENT CHARACTER;So;0;ON;;;;;N;;;;; 1CCF7;OUTLINED DIGIT SEVEN;Nd;0;EN; 0037;7;7;7;N;;;;; 1CCF8;OUTLINED DIGIT EIGHT;Nd;0;EN; 0038;8;8;8;N;;;;; 1CCF9;OUTLINED DIGIT NINE;Nd;0;EN; 0039;9;9;9;N;;;;; +1CCFA;SNAKE SYMBOL;So;0;ON;;;;;N;;;;; +1CCFB;FLYING SAUCER SYMBOL;So;0;ON;;;;;N;;;;; +1CCFC;NOSE SYMBOL;So;0;ON;;;;;N;;;;; 1CD00;BLOCK OCTANT-3;So;0;ON;;;;;N;;;;; 1CD01;BLOCK OCTANT-23;So;0;ON;;;;;N;;;;; 1CD02;BLOCK OCTANT-123;So;0;ON;;;;;N;;;;; @@ -33065,6 +33402,46 @@ FFFD;REPLACEMENT CHARACTER;So;0;ON;;;;;N;;;;; 1CEB1;KEYHOLE;So;0;ON;;;;;N;;;;; 1CEB2;OLD PERSONAL COMPUTER WITH MONITOR IN PORTRAIT ORIENTATION;So;0;ON;;;;;N;;;;; 1CEB3;BLACK RIGHT TRIANGLE CARET;So;0;ON;;;;;N;;;;; +1CEBA;FRAGILE SYMBOL;So;0;ON;;;;;N;;;;; +1CEBB;OFFICE BUILDING SYMBOL;So;0;ON;;;;;N;;;;; +1CEBC;TREE SYMBOL;So;0;ON;;;;;N;;;;; +1CEBD;APPLE SYMBOL;So;0;ON;;;;;N;;;;; +1CEBE;CHERRY SYMBOL;So;0;ON;;;;;N;;;;; +1CEBF;STRAWBERRY SYMBOL;So;0;ON;;;;;N;;;;; +1CEC0;HEBE;So;0;ON;;;;;N;;;;; +1CEC1;IRIS;So;0;ON;;;;;N;;;;; +1CEC2;FLORA;So;0;ON;;;;;N;;;;; +1CEC3;METIS;So;0;ON;;;;;N;;;;; +1CEC4;PARTHENOPE;So;0;ON;;;;;N;;;;; +1CEC5;VICTORIA;So;0;ON;;;;;N;;;;; +1CEC6;EGERIA;So;0;ON;;;;;N;;;;; +1CEC7;IRENE;So;0;ON;;;;;N;;;;; +1CEC8;EUNOMIA;So;0;ON;;;;;N;;;;; +1CEC9;PSYCHE;So;0;ON;;;;;N;;;;; +1CECA;THETIS;So;0;ON;;;;;N;;;;; +1CECB;MELPOMENE;So;0;ON;;;;;N;;;;; +1CECC;FORTUNA;So;0;ON;;;;;N;;;;; +1CECD;ASTRONOMICAL SYMBOL FOR ASTEROID PROSERPINA;So;0;ON;;;;;N;;;;; +1CECE;BELLONA;So;0;ON;;;;;N;;;;; +1CECF;AMPHITRITE;So;0;ON;;;;;N;;;;; +1CED0;LEUKOTHEA;So;0;ON;;;;;N;;;;; +1CEE0;GEOMANTIC FIGURE POPULUS;So;0;ON;;;;;N;;;;; +1CEE1;GEOMANTIC FIGURE TRISTITIA;So;0;ON;;;;;N;;;;; +1CEE2;GEOMANTIC FIGURE ALBUS;So;0;ON;;;;;N;;;;; +1CEE3;GEOMANTIC FIGURE FORTUNA MAJOR;So;0;ON;;;;;N;;;;; +1CEE4;GEOMANTIC FIGURE RUBEUS;So;0;ON;;;;;N;;;;; +1CEE5;GEOMANTIC FIGURE ACQUISITIO;So;0;ON;;;;;N;;;;; +1CEE6;GEOMANTIC FIGURE CONJUNCTIO;So;0;ON;;;;;N;;;;; +1CEE7;GEOMANTIC FIGURE CAPUT DRACONIS;So;0;ON;;;;;N;;;;; +1CEE8;GEOMANTIC FIGURE LAETITIA;So;0;ON;;;;;N;;;;; +1CEE9;GEOMANTIC FIGURE CARCER;So;0;ON;;;;;N;;;;; +1CEEA;GEOMANTIC FIGURE AMISSIO;So;0;ON;;;;;N;;;;; +1CEEB;GEOMANTIC FIGURE PUELLA;So;0;ON;;;;;N;;;;; +1CEEC;GEOMANTIC FIGURE FORTUNA MINOR;So;0;ON;;;;;N;;;;; +1CEED;GEOMANTIC FIGURE PUER;So;0;ON;;;;;N;;;;; +1CEEE;GEOMANTIC FIGURE CAUDA DRACONIS;So;0;ON;;;;;N;;;;; +1CEEF;GEOMANTIC FIGURE VIA;So;0;ON;;;;;N;;;;; +1CEF0;MEDIUM SMALL WHITE CIRCLE WITH HORIZONTAL BAR;Sm;0;ON;;;;;N;;;;; 1CF00;ZNAMENNY COMBINING MARK GORAZDO NIZKO S KRYZHEM ON LEFT;Mn;0;NSM;;;;;N;;;;; 1CF01;ZNAMENNY COMBINING MARK NIZKO S KRYZHEM ON LEFT;Mn;0;NSM;;;;;N;;;;; 1CF02;ZNAMENNY COMBINING MARK TSATA ON LEFT;Mn;0;NSM;;;;;N;;;;; @@ -36004,6 +36381,61 @@ FFFD;REPLACEMENT CHARACTER;So;0;ON;;;;;N;;;;; 1E5F9;OL ONAL DIGIT EIGHT;Nd;0;L;;8;8;8;N;;;;; 1E5FA;OL ONAL DIGIT NINE;Nd;0;L;;9;9;9;N;;;;; 1E5FF;OL ONAL ABBREVIATION SIGN;Po;0;L;;;;;N;;;;; +1E6C0;TAI YO LETTER LOW KO;Lo;0;L;;;;;N;;;;; +1E6C1;TAI YO LETTER HIGH KO;Lo;0;L;;;;;N;;;;; +1E6C2;TAI YO LETTER LOW KHO;Lo;0;L;;;;;N;;;;; +1E6C3;TAI YO LETTER HIGH KHO;Lo;0;L;;;;;N;;;;; +1E6C4;TAI YO LETTER GO;Lo;0;L;;;;;N;;;;; +1E6C5;TAI YO LETTER NGO;Lo;0;L;;;;;N;;;;; +1E6C6;TAI YO LETTER CO;Lo;0;L;;;;;N;;;;; +1E6C7;TAI YO LETTER LOW XO;Lo;0;L;;;;;N;;;;; +1E6C8;TAI YO LETTER HIGH XO;Lo;0;L;;;;;N;;;;; +1E6C9;TAI YO LETTER LOW NYO;Lo;0;L;;;;;N;;;;; +1E6CA;TAI YO LETTER HIGH NYO;Lo;0;L;;;;;N;;;;; +1E6CB;TAI YO LETTER DO;Lo;0;L;;;;;N;;;;; +1E6CC;TAI YO LETTER LOW TO;Lo;0;L;;;;;N;;;;; +1E6CD;TAI YO LETTER HIGH TO;Lo;0;L;;;;;N;;;;; +1E6CE;TAI YO LETTER THO;Lo;0;L;;;;;N;;;;; +1E6CF;TAI YO LETTER NO;Lo;0;L;;;;;N;;;;; +1E6D0;TAI YO LETTER BO;Lo;0;L;;;;;N;;;;; +1E6D1;TAI YO LETTER LOW PO;Lo;0;L;;;;;N;;;;; +1E6D2;TAI YO LETTER HIGH PO;Lo;0;L;;;;;N;;;;; +1E6D3;TAI YO LETTER PHO;Lo;0;L;;;;;N;;;;; +1E6D4;TAI YO LETTER LOW FO;Lo;0;L;;;;;N;;;;; +1E6D5;TAI YO LETTER HIGH FO;Lo;0;L;;;;;N;;;;; +1E6D6;TAI YO LETTER MO;Lo;0;L;;;;;N;;;;; +1E6D7;TAI YO LETTER YO;Lo;0;L;;;;;N;;;;; +1E6D8;TAI YO LETTER LO;Lo;0;L;;;;;N;;;;; +1E6D9;TAI YO LETTER VO;Lo;0;L;;;;;N;;;;; +1E6DA;TAI YO LETTER LOW HO;Lo;0;L;;;;;N;;;;; +1E6DB;TAI YO LETTER HIGH HO;Lo;0;L;;;;;N;;;;; +1E6DC;TAI YO LETTER QO;Lo;0;L;;;;;N;;;;; +1E6DD;TAI YO LETTER LOW KVO;Lo;0;L;;;;;N;;;;; +1E6DE;TAI YO LETTER HIGH KVO;Lo;0;L;;;;;N;;;;; +1E6E0;TAI YO LETTER AA;Lo;0;L;;;;;N;;;;; +1E6E1;TAI YO LETTER I;Lo;0;L;;;;;N;;;;; +1E6E2;TAI YO LETTER UE;Lo;0;L;;;;;N;;;;; +1E6E3;TAI YO SIGN UE;Mn;230;NSM;;;;;N;;;;; +1E6E4;TAI YO LETTER U;Lo;0;L;;;;;N;;;;; +1E6E5;TAI YO LETTER AE;Lo;0;L;;;;;N;;;;; +1E6E6;TAI YO SIGN AU;Mn;230;NSM;;;;;N;;;;; +1E6E7;TAI YO LETTER O;Lo;0;L;;;;;N;;;;; +1E6E8;TAI YO LETTER E;Lo;0;L;;;;;N;;;;; +1E6E9;TAI YO LETTER IA;Lo;0;L;;;;;N;;;;; +1E6EA;TAI YO LETTER UEA;Lo;0;L;;;;;N;;;;; +1E6EB;TAI YO LETTER UA;Lo;0;L;;;;;N;;;;; +1E6EC;TAI YO LETTER OO;Lo;0;L;;;;;N;;;;; +1E6ED;TAI YO LETTER AUE;Lo;0;L;;;;;N;;;;; +1E6EE;TAI YO SIGN AY;Mn;230;NSM;;;;;N;;;;; +1E6EF;TAI YO SIGN ANG;Mn;230;NSM;;;;;N;;;;; +1E6F0;TAI YO LETTER AN;Lo;0;L;;;;;N;;;;; +1E6F1;TAI YO LETTER AM;Lo;0;L;;;;;N;;;;; +1E6F2;TAI YO LETTER AK;Lo;0;L;;;;;N;;;;; +1E6F3;TAI YO LETTER AT;Lo;0;L;;;;;N;;;;; +1E6F4;TAI YO LETTER AP;Lo;0;L;;;;;N;;;;; +1E6F5;TAI YO SIGN OM;Mn;230;NSM;;;;;N;;;;; +1E6FE;TAI YO SYMBOL MUEANG;Lo;0;L;;;;;N;;;;; +1E6FF;TAI YO XAM LAI;Lm;0;L;;;;;N;;;;; 1E7E0;ETHIOPIC SYLLABLE HHYA;Lo;0;L;;;;;N;;;;; 1E7E1;ETHIOPIC SYLLABLE HHYU;Lo;0;L;;;;;N;;;;; 1E7E2;ETHIOPIC SYLLABLE HHYI;Lo;0;L;;;;;N;;;;; @@ -38079,6 +38511,7 @@ FFFD;REPLACEMENT CHARACTER;So;0;ON;;;;;N;;;;; 1F6D5;HINDU TEMPLE;So;0;ON;;;;;N;;;;; 1F6D6;HUT;So;0;ON;;;;;N;;;;; 1F6D7;ELEVATOR;So;0;ON;;;;;N;;;;; +1F6D8;LANDSLIDE;So;0;ON;;;;;N;;;;; 1F6DC;WIRELESS;So;0;ON;;;;;N;;;;; 1F6DD;PLAYGROUND SLIDE;So;0;ON;;;;;N;;;;; 1F6DE;WHEEL;So;0;ON;;;;;N;;;;; @@ -38228,6 +38661,10 @@ FFFD;REPLACEMENT CHARACTER;So;0;ON;;;;;N;;;;; 1F774;LOT OF FORTUNE;So;0;ON;;;;;N;;;;; 1F775;OCCULTATION;So;0;ON;;;;;N;;;;; 1F776;LUNAR ECLIPSE;So;0;ON;;;;;N;;;;; +1F777;VESTA FORM TWO;So;0;ON;;;;;N;;;;; +1F778;ASTRAEA FORM TWO;So;0;ON;;;;;N;;;;; +1F779;HYGIEA FORM TWO;So;0;ON;;;;;N;;;;; +1F77A;PARTHENOPE FORM TWO;So;0;ON;;;;;N;;;;; 1F77B;HAUMEA;So;0;ON;;;;;N;;;;; 1F77C;MAKEMAKE;So;0;ON;;;;;N;;;;; 1F77D;GONGGONG;So;0;ON;;;;;N;;;;; @@ -38498,6 +38935,15 @@ FFFD;REPLACEMENT CHARACTER;So;0;ON;;;;;N;;;;; 1F8BB;SOUTH WEST ARROW FROM BAR;So;0;ON;;;;;N;;;;; 1F8C0;LEFTWARDS ARROW FROM DOWNWARDS ARROW;So;0;ON;;;;;N;;;;; 1F8C1;RIGHTWARDS ARROW FROM DOWNWARDS ARROW;So;0;ON;;;;;N;;;;; +1F8D0;LONG RIGHTWARDS ARROW OVER LONG LEFTWARDS ARROW;Sm;0;ON;;;;;N;;;;; +1F8D1;LONG RIGHTWARDS HARPOON OVER LONG LEFTWARDS HARPOON;Sm;0;ON;;;;;N;;;;; +1F8D2;LONG RIGHTWARDS HARPOON ABOVE SHORT LEFTWARDS HARPOON;Sm;0;ON;;;;;N;;;;; +1F8D3;SHORT RIGHTWARDS HARPOON ABOVE LONG LEFTWARDS HARPOON;Sm;0;ON;;;;;N;;;;; +1F8D4;LONG LEFTWARDS HARPOON ABOVE SHORT RIGHTWARDS HARPOON;Sm;0;ON;;;;;N;;;;; +1F8D5;SHORT LEFTWARDS HARPOON ABOVE LONG RIGHTWARDS HARPOON;Sm;0;ON;;;;;N;;;;; +1F8D6;LONG RIGHTWARDS ARROW THROUGH X;Sm;0;ON;;;;;N;;;;; +1F8D7;LONG RIGHTWARDS ARROW WITH DOUBLE SLASH;Sm;0;ON;;;;;N;;;;; +1F8D8;LONG LEFT RIGHT ARROW WITH DEPENDENT LOBE;Sm;0;ON;;;;;N;;;;; 1F900;CIRCLED CROSS FORMEE WITH FOUR DOTS;So;0;ON;;;;;N;;;;; 1F901;CIRCLED CROSS FORMEE WITH TWO DOTS;So;0;ON;;;;;N;;;;; 1F902;CIRCLED CROSS FORMEE;So;0;ON;;;;;N;;;;; @@ -38838,6 +39284,10 @@ FFFD;REPLACEMENT CHARACTER;So;0;ON;;;;;N;;;;; 1FA51;BLACK CHESS KNIGHT-QUEEN;So;0;ON;;;;;N;;;;; 1FA52;BLACK CHESS KNIGHT-ROOK;So;0;ON;;;;;N;;;;; 1FA53;BLACK CHESS KNIGHT-BISHOP;So;0;ON;;;;;N;;;;; +1FA54;WHITE CHESS FERZ;So;0;ON;;;;;N;;;;; +1FA55;WHITE CHESS ALFIL;So;0;ON;;;;;N;;;;; +1FA56;BLACK CHESS FERZ;So;0;ON;;;;;N;;;;; +1FA57;BLACK CHESS ALFIL;So;0;ON;;;;;N;;;;; 1FA60;XIANGQI RED GENERAL;So;0;ON;;;;;N;;;;; 1FA61;XIANGQI RED MANDARIN;So;0;ON;;;;;N;;;;; 1FA62;XIANGQI RED ELEPHANT;So;0;ON;;;;;N;;;;; @@ -38875,6 +39325,8 @@ FFFD;REPLACEMENT CHARACTER;So;0;ON;;;;;N;;;;; 1FA87;MARACAS;So;0;ON;;;;;N;;;;; 1FA88;FLUTE;So;0;ON;;;;;N;;;;; 1FA89;HARP;So;0;ON;;;;;N;;;;; +1FA8A;TROMBONE;So;0;ON;;;;;N;;;;; +1FA8E;TREASURE CHEST;So;0;ON;;;;;N;;;;; 1FA8F;SHOVEL;So;0;ON;;;;;N;;;;; 1FA90;RINGED PLANET;So;0;ON;;;;;N;;;;; 1FA91;CHAIR;So;0;ON;;;;;N;;;;; @@ -38931,6 +39383,8 @@ FFFD;REPLACEMENT CHARACTER;So;0;ON;;;;;N;;;;; 1FAC4;PREGNANT PERSON;So;0;ON;;;;;N;;;;; 1FAC5;PERSON WITH CROWN;So;0;ON;;;;;N;;;;; 1FAC6;FINGERPRINT;So;0;ON;;;;;N;;;;; +1FAC8;HAIRY CREATURE;So;0;ON;;;;;N;;;;; +1FACD;ORCA;So;0;ON;;;;;N;;;;; 1FACE;MOOSE;So;0;ON;;;;;N;;;;; 1FACF;DONKEY;So;0;ON;;;;;N;;;;; 1FAD0;BLUEBERRIES;So;0;ON;;;;;N;;;;; @@ -38957,6 +39411,8 @@ FFFD;REPLACEMENT CHARACTER;So;0;ON;;;;;N;;;;; 1FAE7;BUBBLES;So;0;ON;;;;;N;;;;; 1FAE8;SHAKING FACE;So;0;ON;;;;;N;;;;; 1FAE9;FACE WITH BAGS UNDER EYES;So;0;ON;;;;;N;;;;; +1FAEA;DISTORTED FACE;So;0;ON;;;;;N;;;;; +1FAEF;FIGHT CLOUD;So;0;ON;;;;;N;;;;; 1FAF0;HAND WITH INDEX FINGER AND THUMB CROSSED;So;0;ON;;;;;N;;;;; 1FAF1;RIGHTWARDS HAND;So;0;ON;;;;;N;;;;; 1FAF2;LEFTWARDS HAND;So;0;ON;;;;;N;;;;; @@ -39215,14 +39671,15 @@ FFFD;REPLACEMENT CHARACTER;So;0;ON;;;;;N;;;;; 1FBF7;SEGMENTED DIGIT SEVEN;Nd;0;EN; 0037;7;7;7;N;;;;; 1FBF8;SEGMENTED DIGIT EIGHT;Nd;0;EN; 0038;8;8;8;N;;;;; 1FBF9;SEGMENTED DIGIT NINE;Nd;0;EN; 0039;9;9;9;N;;;;; +1FBFA;ALARM BELL SYMBOL;So;0;ON;;;;;N;;;;; 20000;;Lo;0;L;;;;;N;;;;; 2A6DF;;Lo;0;L;;;;;N;;;;; 2A700;;Lo;0;L;;;;;N;;;;; -2B739;;Lo;0;L;;;;;N;;;;; +2B73F;;Lo;0;L;;;;;N;;;;; 2B740;;Lo;0;L;;;;;N;;;;; 2B81D;;Lo;0;L;;;;;N;;;;; 2B820;;Lo;0;L;;;;;N;;;;; -2CEA1;;Lo;0;L;;;;;N;;;;; +2CEAD;;Lo;0;L;;;;;N;;;;; 2CEB0;;Lo;0;L;;;;;N;;;;; 2EBE0;;Lo;0;L;;;;;N;;;;; 2EBF0;;Lo;0;L;;;;;N;;;;; @@ -39773,6 +40230,8 @@ FFFD;REPLACEMENT CHARACTER;So;0;ON;;;;;N;;;;; 3134A;;Lo;0;L;;;;;N;;;;; 31350;;Lo;0;L;;;;;N;;;;; 323AF;;Lo;0;L;;;;;N;;;;; +323B0;;Lo;0;L;;;;;N;;;;; +33479;;Lo;0;L;;;;;N;;;;; E0001;LANGUAGE TAG;Cf;0;BN;;;;;N;;;;; E0020;TAG SPACE;Cf;0;BN;;;;;N;;;;; E0021;TAG EXCLAMATION MARK;Cf;0;BN;;;;;N;;;;; diff --git a/contrib/unicode/emoji-data.txt b/contrib/unicode/emoji-data.txt index ff99028248b5..450252c4df3f 100644 --- a/contrib/unicode/emoji-data.txt +++ b/contrib/unicode/emoji-data.txt @@ -1,11 +1,11 @@ # emoji-data.txt -# Date: 2024-05-01, 21:25:24 GMT -# © 2024 Unicode®, Inc. +# Date: 2025-07-25, 17:54:31 GMT +# © 2025 Unicode®, Inc. # Unicode and the Unicode Logo are registered trademarks of Unicode, Inc. in the U.S. and other countries. # For terms of use and license, see https://www.unicode.org/terms_of_use.html # # Emoji Data for UTS #51 -# Used with Emoji Version 16.0 and subsequent minor revisions (if any) +# Version: 17.0 # # For documentation and usage, see https://www.unicode.org/reports/tr51 # @@ -340,6 +340,7 @@ 1F6D1..1F6D2 ; Emoji # E3.0 [2] (🛑..🛒) stop sign..shopping cart 1F6D5 ; Emoji # E12.0 [1] (🛕) hindu temple 1F6D6..1F6D7 ; Emoji # E13.0 [2] (🛖..🛗) hut..elevator +1F6D8 ; Emoji # E17.0 [1] (🛘) landslide 1F6DC ; Emoji # E15.0 [1] (🛜) wireless 1F6DD..1F6DF ; Emoji # E14.0 [3] (🛝..🛟) playground slide..ring buoy 1F6E0..1F6E5 ; Emoji # E0.7 [6] (🛠️..🛥️) hammer and wrench..motor boat @@ -408,6 +409,8 @@ 1FA83..1FA86 ; Emoji # E13.0 [4] (🪃..🪆) boomerang..nesting dolls 1FA87..1FA88 ; Emoji # E15.0 [2] (🪇..🪈) maracas..flute 1FA89 ; Emoji # E16.0 [1] (🪉) harp +1FA8A ; Emoji # E17.0 [1] (🪊) trombone +1FA8E ; Emoji # E17.0 [1] (🪎) treasure chest 1FA8F ; Emoji # E16.0 [1] (🪏) shovel 1FA90..1FA95 ; Emoji # E12.0 [6] (🪐..🪕) ringed planet..banjo 1FA96..1FAA8 ; Emoji # E13.0 [19] (🪖..🪨) military helmet..rock @@ -421,6 +424,8 @@ 1FAC0..1FAC2 ; Emoji # E13.0 [3] (🫀..🫂) anatomical heart..people hugging 1FAC3..1FAC5 ; Emoji # E14.0 [3] (🫃..🫅) pregnant man..person with crown 1FAC6 ; Emoji # E16.0 [1] (🫆) fingerprint +1FAC8 ; Emoji # E17.0 [1] (🫈) hairy creature +1FACD ; Emoji # E17.0 [1] (🫍) orca 1FACE..1FACF ; Emoji # E15.0 [2] (🫎..🫏) moose..donkey 1FAD0..1FAD6 ; Emoji # E13.0 [7] (🫐..🫖) blueberries..teapot 1FAD7..1FAD9 ; Emoji # E14.0 [3] (🫗..🫙) pouring liquid..jar @@ -430,10 +435,12 @@ 1FAE0..1FAE7 ; Emoji # E14.0 [8] (🫠..🫧) melting face..bubbles 1FAE8 ; Emoji # E15.0 [1] (🫨) shaking face 1FAE9 ; Emoji # E16.0 [1] (🫩) face with bags under eyes +1FAEA ; Emoji # E17.0 [1] (🫪) distorted face +1FAEF ; Emoji # E17.0 [1] (🫯) fight cloud 1FAF0..1FAF6 ; Emoji # E14.0 [7] (🫰..🫶) hand with index finger and thumb crossed..heart hands 1FAF7..1FAF8 ; Emoji # E15.0 [2] (🫷..🫸) leftwards pushing hand..rightwards pushing hand -# Total elements: 1431 +# Total elements: 1438 # ================================================ @@ -640,6 +647,7 @@ 1F6D1..1F6D2 ; Emoji_Presentation # E3.0 [2] (🛑..🛒) stop sign..shopping cart 1F6D5 ; Emoji_Presentation # E12.0 [1] (🛕) hindu temple 1F6D6..1F6D7 ; Emoji_Presentation # E13.0 [2] (🛖..🛗) hut..elevator +1F6D8 ; Emoji_Presentation # E17.0 [1] (🛘) landslide 1F6DC ; Emoji_Presentation # E15.0 [1] (🛜) wireless 1F6DD..1F6DF ; Emoji_Presentation # E14.0 [3] (🛝..🛟) playground slide..ring buoy 1F6EB..1F6EC ; Emoji_Presentation # E1.0 [2] (🛫..🛬) airplane departure..airplane arrival @@ -704,6 +712,8 @@ 1FA83..1FA86 ; Emoji_Presentation # E13.0 [4] (🪃..🪆) boomerang..nesting dolls 1FA87..1FA88 ; Emoji_Presentation # E15.0 [2] (🪇..🪈) maracas..flute 1FA89 ; Emoji_Presentation # E16.0 [1] (🪉) harp +1FA8A ; Emoji_Presentation # E17.0 [1] (🪊) trombone +1FA8E ; Emoji_Presentation # E17.0 [1] (🪎) treasure chest 1FA8F ; Emoji_Presentation # E16.0 [1] (🪏) shovel 1FA90..1FA95 ; Emoji_Presentation # E12.0 [6] (🪐..🪕) ringed planet..banjo 1FA96..1FAA8 ; Emoji_Presentation # E13.0 [19] (🪖..🪨) military helmet..rock @@ -717,6 +727,8 @@ 1FAC0..1FAC2 ; Emoji_Presentation # E13.0 [3] (🫀..🫂) anatomical heart..people hugging 1FAC3..1FAC5 ; Emoji_Presentation # E14.0 [3] (🫃..🫅) pregnant man..person with crown 1FAC6 ; Emoji_Presentation # E16.0 [1] (🫆) fingerprint +1FAC8 ; Emoji_Presentation # E17.0 [1] (🫈) hairy creature +1FACD ; Emoji_Presentation # E17.0 [1] (🫍) orca 1FACE..1FACF ; Emoji_Presentation # E15.0 [2] (🫎..🫏) moose..donkey 1FAD0..1FAD6 ; Emoji_Presentation # E13.0 [7] (🫐..🫖) blueberries..teapot 1FAD7..1FAD9 ; Emoji_Presentation # E14.0 [3] (🫗..🫙) pouring liquid..jar @@ -726,10 +738,12 @@ 1FAE0..1FAE7 ; Emoji_Presentation # E14.0 [8] (🫠..🫧) melting face..bubbles 1FAE8 ; Emoji_Presentation # E15.0 [1] (🫨) shaking face 1FAE9 ; Emoji_Presentation # E16.0 [1] (🫩) face with bags under eyes +1FAEA ; Emoji_Presentation # E17.0 [1] (🫪) distorted face +1FAEF ; Emoji_Presentation # E17.0 [1] (🫯) fight cloud 1FAF0..1FAF6 ; Emoji_Presentation # E14.0 [7] (🫰..🫶) hand with index finger and thumb crossed..heart hands 1FAF7..1FAF8 ; Emoji_Presentation # E15.0 [2] (🫷..🫸) leftwards pushing hand..rightwards pushing hand -# Total elements: 1212 +# Total elements: 1219 # ================================================ @@ -827,7 +841,6 @@ E0020..E007F ; Emoji_Component # E0.0 [96] (󠀠..󠁿) tag space..c 21A9..21AA ; Extended_Pictographic# E0.6 [2] (↩️..↪️) right arrow curving left..left arrow curving right 231A..231B ; Extended_Pictographic# E0.6 [2] (⌚..⌛) watch..hourglass done 2328 ; Extended_Pictographic# E1.0 [1] (⌨️) keyboard -2388 ; Extended_Pictographic# E0.0 [1] (⎈) HELM SYMBOL 23CF ; Extended_Pictographic# E1.0 [1] (⏏️) eject button 23E9..23EC ; Extended_Pictographic# E0.6 [4] (⏩..⏬) fast-forward button..fast down button 23ED..23EE ; Extended_Pictographic# E0.7 [2] (⏭️..⏮️) next track button..last track button @@ -844,106 +857,63 @@ E0020..E007F ; Emoji_Component # E0.0 [96] (󠀠..󠁿) tag space..c 2600..2601 ; Extended_Pictographic# E0.6 [2] (☀️..☁️) sun..cloud 2602..2603 ; Extended_Pictographic# E0.7 [2] (☂️..☃️) umbrella..snowman 2604 ; Extended_Pictographic# E1.0 [1] (☄️) comet -2605 ; Extended_Pictographic# E0.0 [1] (★) BLACK STAR -2607..260D ; Extended_Pictographic# E0.0 [7] (☇..☍) LIGHTNING..OPPOSITION 260E ; Extended_Pictographic# E0.6 [1] (☎️) telephone -260F..2610 ; Extended_Pictographic# E0.0 [2] (☏..☐) WHITE TELEPHONE..BALLOT BOX 2611 ; Extended_Pictographic# E0.6 [1] (☑️) check box with check -2612 ; Extended_Pictographic# E0.0 [1] (☒) BALLOT BOX WITH X 2614..2615 ; Extended_Pictographic# E0.6 [2] (☔..☕) umbrella with rain drops..hot beverage -2616..2617 ; Extended_Pictographic# E0.0 [2] (☖..☗) WHITE SHOGI PIECE..BLACK SHOGI PIECE 2618 ; Extended_Pictographic# E1.0 [1] (☘️) shamrock -2619..261C ; Extended_Pictographic# E0.0 [4] (☙..☜) REVERSED ROTATED FLORAL HEART BULLET..WHITE LEFT POINTING INDEX 261D ; Extended_Pictographic# E0.6 [1] (☝️) index pointing up -261E..261F ; Extended_Pictographic# E0.0 [2] (☞..☟) WHITE RIGHT POINTING INDEX..WHITE DOWN POINTING INDEX 2620 ; Extended_Pictographic# E1.0 [1] (☠️) skull and crossbones -2621 ; Extended_Pictographic# E0.0 [1] (☡) CAUTION SIGN 2622..2623 ; Extended_Pictographic# E1.0 [2] (☢️..☣️) radioactive..biohazard -2624..2625 ; Extended_Pictographic# E0.0 [2] (☤..☥) CADUCEUS..ANKH 2626 ; Extended_Pictographic# E1.0 [1] (☦️) orthodox cross -2627..2629 ; Extended_Pictographic# E0.0 [3] (☧..☩) CHI RHO..CROSS OF JERUSALEM 262A ; Extended_Pictographic# E0.7 [1] (☪️) star and crescent -262B..262D ; Extended_Pictographic# E0.0 [3] (☫..☭) FARSI SYMBOL..HAMMER AND SICKLE 262E ; Extended_Pictographic# E1.0 [1] (☮️) peace symbol 262F ; Extended_Pictographic# E0.7 [1] (☯️) yin yang -2630..2637 ; Extended_Pictographic# E0.0 [8] (☰..☷) TRIGRAM FOR HEAVEN..TRIGRAM FOR EARTH 2638..2639 ; Extended_Pictographic# E0.7 [2] (☸️..☹️) wheel of dharma..frowning face 263A ; Extended_Pictographic# E0.6 [1] (☺️) smiling face -263B..263F ; Extended_Pictographic# E0.0 [5] (☻..☿) BLACK SMILING FACE..MERCURY 2640 ; Extended_Pictographic# E4.0 [1] (♀️) female sign -2641 ; Extended_Pictographic# E0.0 [1] (♁) EARTH 2642 ; Extended_Pictographic# E4.0 [1] (♂️) male sign -2643..2647 ; Extended_Pictographic# E0.0 [5] (♃..♇) JUPITER..PLUTO 2648..2653 ; Extended_Pictographic# E0.6 [12] (♈..♓) Aries..Pisces -2654..265E ; Extended_Pictographic# E0.0 [11] (♔..♞) WHITE CHESS KING..BLACK CHESS KNIGHT 265F ; Extended_Pictographic# E11.0 [1] (♟️) chess pawn 2660 ; Extended_Pictographic# E0.6 [1] (♠️) spade suit -2661..2662 ; Extended_Pictographic# E0.0 [2] (♡..♢) WHITE HEART SUIT..WHITE DIAMOND SUIT 2663 ; Extended_Pictographic# E0.6 [1] (♣️) club suit -2664 ; Extended_Pictographic# E0.0 [1] (♤) WHITE SPADE SUIT 2665..2666 ; Extended_Pictographic# E0.6 [2] (♥️..♦️) heart suit..diamond suit -2667 ; Extended_Pictographic# E0.0 [1] (♧) WHITE CLUB SUIT 2668 ; Extended_Pictographic# E0.6 [1] (♨️) hot springs -2669..267A ; Extended_Pictographic# E0.0 [18] (♩..♺) QUARTER NOTE..RECYCLING SYMBOL FOR GENERIC MATERIALS 267B ; Extended_Pictographic# E0.6 [1] (♻️) recycling symbol -267C..267D ; Extended_Pictographic# E0.0 [2] (♼..♽) RECYCLED PAPER SYMBOL..PARTIALLY-RECYCLED PAPER SYMBOL 267E ; Extended_Pictographic# E11.0 [1] (♾️) infinity 267F ; Extended_Pictographic# E0.6 [1] (♿) wheelchair symbol -2680..2685 ; Extended_Pictographic# E0.0 [6] (⚀..⚅) DIE FACE-1..DIE FACE-6 -2690..2691 ; Extended_Pictographic# E0.0 [2] (⚐..⚑) WHITE FLAG..BLACK FLAG 2692 ; Extended_Pictographic# E1.0 [1] (⚒️) hammer and pick 2693 ; Extended_Pictographic# E0.6 [1] (⚓) anchor 2694 ; Extended_Pictographic# E1.0 [1] (⚔️) crossed swords 2695 ; Extended_Pictographic# E4.0 [1] (⚕️) medical symbol 2696..2697 ; Extended_Pictographic# E1.0 [2] (⚖️..⚗️) balance scale..alembic -2698 ; Extended_Pictographic# E0.0 [1] (⚘) FLOWER 2699 ; Extended_Pictographic# E1.0 [1] (⚙️) gear -269A ; Extended_Pictographic# E0.0 [1] (⚚) STAFF OF HERMES 269B..269C ; Extended_Pictographic# E1.0 [2] (⚛️..⚜️) atom symbol..fleur-de-lis -269D..269F ; Extended_Pictographic# E0.0 [3] (⚝..⚟) OUTLINED WHITE STAR..THREE LINES CONVERGING LEFT 26A0..26A1 ; Extended_Pictographic# E0.6 [2] (⚠️..⚡) warning..high voltage -26A2..26A6 ; Extended_Pictographic# E0.0 [5] (⚢..⚦) DOUBLED FEMALE SIGN..MALE WITH STROKE SIGN 26A7 ; Extended_Pictographic# E13.0 [1] (⚧️) transgender symbol -26A8..26A9 ; Extended_Pictographic# E0.0 [2] (⚨..⚩) VERTICAL MALE WITH STROKE SIGN..HORIZONTAL MALE WITH STROKE SIGN 26AA..26AB ; Extended_Pictographic# E0.6 [2] (⚪..⚫) white circle..black circle -26AC..26AF ; Extended_Pictographic# E0.0 [4] (⚬..⚯) MEDIUM SMALL WHITE CIRCLE..UNMARRIED PARTNERSHIP SYMBOL 26B0..26B1 ; Extended_Pictographic# E1.0 [2] (⚰️..⚱️) coffin..funeral urn -26B2..26BC ; Extended_Pictographic# E0.0 [11] (⚲..⚼) NEUTER..SESQUIQUADRATE 26BD..26BE ; Extended_Pictographic# E0.6 [2] (⚽..⚾) soccer ball..baseball -26BF..26C3 ; Extended_Pictographic# E0.0 [5] (⚿..⛃) SQUARED KEY..BLACK DRAUGHTS KING 26C4..26C5 ; Extended_Pictographic# E0.6 [2] (⛄..⛅) snowman without snow..sun behind cloud -26C6..26C7 ; Extended_Pictographic# E0.0 [2] (⛆..⛇) RAIN..BLACK SNOWMAN 26C8 ; Extended_Pictographic# E0.7 [1] (⛈️) cloud with lightning and rain -26C9..26CD ; Extended_Pictographic# E0.0 [5] (⛉..⛍) TURNED WHITE SHOGI PIECE..DISABLED CAR 26CE ; Extended_Pictographic# E0.6 [1] (⛎) Ophiuchus 26CF ; Extended_Pictographic# E0.7 [1] (⛏️) pick -26D0 ; Extended_Pictographic# E0.0 [1] (⛐) CAR SLIDING 26D1 ; Extended_Pictographic# E0.7 [1] (⛑️) rescue worker’s helmet -26D2 ; Extended_Pictographic# E0.0 [1] (⛒) CIRCLED CROSSING LANES 26D3 ; Extended_Pictographic# E0.7 [1] (⛓️) chains 26D4 ; Extended_Pictographic# E0.6 [1] (⛔) no entry -26D5..26E8 ; Extended_Pictographic# E0.0 [20] (⛕..⛨) ALTERNATE ONE-WAY LEFT WAY TRAFFIC..BLACK CROSS ON SHIELD 26E9 ; Extended_Pictographic# E0.7 [1] (⛩️) shinto shrine 26EA ; Extended_Pictographic# E0.6 [1] (⛪) church -26EB..26EF ; Extended_Pictographic# E0.0 [5] (⛫..⛯) CASTLE..MAP SYMBOL FOR LIGHTHOUSE 26F0..26F1 ; Extended_Pictographic# E0.7 [2] (⛰️..⛱️) mountain..umbrella on ground 26F2..26F3 ; Extended_Pictographic# E0.6 [2] (⛲..⛳) fountain..flag in hole 26F4 ; Extended_Pictographic# E0.7 [1] (⛴️) ferry 26F5 ; Extended_Pictographic# E0.6 [1] (⛵) sailboat -26F6 ; Extended_Pictographic# E0.0 [1] (⛶) SQUARE FOUR CORNERS 26F7..26F9 ; Extended_Pictographic# E0.7 [3] (⛷️..⛹️) skier..person bouncing ball 26FA ; Extended_Pictographic# E0.6 [1] (⛺) tent -26FB..26FC ; Extended_Pictographic# E0.0 [2] (⛻..⛼) JAPANESE BANK SYMBOL..HEADSTONE GRAVEYARD SYMBOL 26FD ; Extended_Pictographic# E0.6 [1] (⛽) fuel pump -26FE..2701 ; Extended_Pictographic# E0.0 [4] (⛾..✁) CUP ON BLACK SQUARE..UPPER BLADE SCISSORS 2702 ; Extended_Pictographic# E0.6 [1] (✂️) scissors -2703..2704 ; Extended_Pictographic# E0.0 [2] (✃..✄) LOWER BLADE SCISSORS..WHITE SCISSORS 2705 ; Extended_Pictographic# E0.6 [1] (✅) check mark button 2708..270C ; Extended_Pictographic# E0.6 [5] (✈️..✌️) airplane..victory hand 270D ; Extended_Pictographic# E0.7 [1] (✍️) writing hand -270E ; Extended_Pictographic# E0.0 [1] (✎) LOWER RIGHT PENCIL 270F ; Extended_Pictographic# E0.6 [1] (✏️) pencil -2710..2711 ; Extended_Pictographic# E0.0 [2] (✐..✑) UPPER RIGHT PENCIL..WHITE NIB 2712 ; Extended_Pictographic# E0.6 [1] (✒️) black nib 2714 ; Extended_Pictographic# E0.6 [1] (✔️) check mark 2716 ; Extended_Pictographic# E0.6 [1] (✖️) multiply @@ -959,7 +929,6 @@ E0020..E007F ; Emoji_Component # E0.0 [96] (󠀠..󠁿) tag space..c 2757 ; Extended_Pictographic# E0.6 [1] (❗) red exclamation mark 2763 ; Extended_Pictographic# E1.0 [1] (❣️) heart exclamation 2764 ; Extended_Pictographic# E0.6 [1] (❤️) red heart -2765..2767 ; Extended_Pictographic# E0.0 [3] (❥..❧) ROTATED HEAVY BLACK HEART BULLET..ROTATED FLORAL HEART BULLET 2795..2797 ; Extended_Pictographic# E0.6 [3] (➕..➗) plus..divide 27A1 ; Extended_Pictographic# E0.6 [1] (➡️) right arrow 27B0 ; Extended_Pictographic# E0.6 [1] (➰) curly loop @@ -973,19 +942,19 @@ E0020..E007F ; Emoji_Component # E0.0 [96] (󠀠..󠁿) tag space..c 303D ; Extended_Pictographic# E0.6 [1] (〽️) part alternation mark 3297 ; Extended_Pictographic# E0.6 [1] (㊗️) Japanese “congratulations” button 3299 ; Extended_Pictographic# E0.6 [1] (㊙️) Japanese “secret” button -1F000..1F003 ; Extended_Pictographic# E0.0 [4] (🀀..🀃) MAHJONG TILE EAST WIND..MAHJONG TILE NORTH WIND 1F004 ; Extended_Pictographic# E0.6 [1] (🀄) mahjong red dragon -1F005..1F0CE ; Extended_Pictographic# E0.0 [202] (🀅..🃎) MAHJONG TILE GREEN DRAGON..PLAYING CARD KING OF DIAMONDS +1F02C..1F02F ; Extended_Pictographic# E0.0 [4] (🀬..🀯) .. +1F094..1F09F ; Extended_Pictographic# E0.0 [12] (🂔..🂟) .. +1F0AF..1F0B0 ; Extended_Pictographic# E0.0 [2] (🂯..🂰) .. +1F0C0 ; Extended_Pictographic# E0.0 [1] (🃀) 1F0CF ; Extended_Pictographic# E0.6 [1] (🃏) joker -1F0D0..1F0FF ; Extended_Pictographic# E0.0 [48] (🃐..🃿) .. -1F10D..1F10F ; Extended_Pictographic# E0.0 [3] (🄍..🄏) CIRCLED ZERO WITH SLASH..CIRCLED DOLLAR SIGN WITH OVERLAID BACKSLASH -1F12F ; Extended_Pictographic# E0.0 [1] (🄯) COPYLEFT SYMBOL -1F16C..1F16F ; Extended_Pictographic# E0.0 [4] (🅬..🅯) RAISED MR SIGN..CIRCLED HUMAN FIGURE +1F0D0 ; Extended_Pictographic# E0.0 [1] (🃐) +1F0F6..1F0FF ; Extended_Pictographic# E0.0 [10] (🃶..🃿) .. 1F170..1F171 ; Extended_Pictographic# E0.6 [2] (🅰️..🅱️) A button (blood type)..B button (blood type) 1F17E..1F17F ; Extended_Pictographic# E0.6 [2] (🅾️..🅿️) O button (blood type)..P button 1F18E ; Extended_Pictographic# E0.6 [1] (🆎) AB button (blood type) 1F191..1F19A ; Extended_Pictographic# E0.6 [10] (🆑..🆚) CL button..VS button -1F1AD..1F1E5 ; Extended_Pictographic# E0.0 [57] (🆭..🇥) MASK WORK SYMBOL.. +1F1AE..1F1E5 ; Extended_Pictographic# E0.0 [56] (🆮..🇥) .. 1F201..1F202 ; Extended_Pictographic# E0.6 [2] (🈁..🈂️) Japanese “here” button..Japanese “service charge” button 1F203..1F20F ; Extended_Pictographic# E0.0 [13] (🈃..🈏) .. 1F21A ; Extended_Pictographic# E0.6 [1] (🈚) Japanese “free of charge” button @@ -994,7 +963,8 @@ E0020..E007F ; Emoji_Component # E0.0 [96] (󠀠..󠁿) tag space..c 1F23C..1F23F ; Extended_Pictographic# E0.0 [4] (🈼..🈿) .. 1F249..1F24F ; Extended_Pictographic# E0.0 [7] (🉉..🉏) .. 1F250..1F251 ; Extended_Pictographic# E0.6 [2] (🉐..🉑) Japanese “bargain” button..Japanese “acceptable” button -1F252..1F2FF ; Extended_Pictographic# E0.0 [174] (🉒..🋿) .. +1F252..1F25F ; Extended_Pictographic# E0.0 [14] (🉒..🉟) .. +1F266..1F2FF ; Extended_Pictographic# E0.0 [154] (🉦..🋿) .. 1F300..1F30C ; Extended_Pictographic# E0.6 [13] (🌀..🌌) cyclone..milky way 1F30D..1F30E ; Extended_Pictographic# E0.7 [2] (🌍..🌎) globe showing Europe-Africa..globe showing Americas 1F30F ; Extended_Pictographic# E0.6 [1] (🌏) globe showing Asia-Australia @@ -1010,7 +980,6 @@ E0020..E007F ; Emoji_Component # E0.0 [96] (󠀠..󠁿) tag space..c 1F31D..1F31E ; Extended_Pictographic# E1.0 [2] (🌝..🌞) full moon face..sun with face 1F31F..1F320 ; Extended_Pictographic# E0.6 [2] (🌟..🌠) glowing star..shooting star 1F321 ; Extended_Pictographic# E0.7 [1] (🌡️) thermometer -1F322..1F323 ; Extended_Pictographic# E0.0 [2] (🌢..🌣) BLACK DROPLET..WHITE SUN 1F324..1F32C ; Extended_Pictographic# E0.7 [9] (🌤️..🌬️) sun behind small cloud..wind face 1F32D..1F32F ; Extended_Pictographic# E1.0 [3] (🌭..🌯) hot dog..burrito 1F330..1F331 ; Extended_Pictographic# E0.6 [2] (🌰..🌱) chestnut..seedling @@ -1026,11 +995,8 @@ E0020..E007F ; Emoji_Component # E0.0 [96] (󠀠..󠁿) tag space..c 1F37D ; Extended_Pictographic# E0.7 [1] (🍽️) fork and knife with plate 1F37E..1F37F ; Extended_Pictographic# E1.0 [2] (🍾..🍿) bottle with popping cork..popcorn 1F380..1F393 ; Extended_Pictographic# E0.6 [20] (🎀..🎓) ribbon..graduation cap -1F394..1F395 ; Extended_Pictographic# E0.0 [2] (🎔..🎕) HEART WITH TIP ON THE LEFT..BOUQUET OF FLOWERS 1F396..1F397 ; Extended_Pictographic# E0.7 [2] (🎖️..🎗️) military medal..reminder ribbon -1F398 ; Extended_Pictographic# E0.0 [1] (🎘) MUSICAL KEYBOARD WITH JACKS 1F399..1F39B ; Extended_Pictographic# E0.7 [3] (🎙️..🎛️) studio microphone..control knobs -1F39C..1F39D ; Extended_Pictographic# E0.0 [2] (🎜..🎝) BEAMED ASCENDING MUSICAL NOTES..BEAMED DESCENDING MUSICAL NOTES 1F39E..1F39F ; Extended_Pictographic# E0.7 [2] (🎞️..🎟️) film frames..admission tickets 1F3A0..1F3C4 ; Extended_Pictographic# E0.6 [37] (🎠..🏄) carousel horse..person surfing 1F3C5 ; Extended_Pictographic# E1.0 [1] (🏅) sports medal @@ -1045,11 +1011,9 @@ E0020..E007F ; Emoji_Component # E0.0 [96] (󠀠..󠁿) tag space..c 1F3E0..1F3E3 ; Extended_Pictographic# E0.6 [4] (🏠..🏣) house..Japanese post office 1F3E4 ; Extended_Pictographic# E1.0 [1] (🏤) post office 1F3E5..1F3F0 ; Extended_Pictographic# E0.6 [12] (🏥..🏰) hospital..castle -1F3F1..1F3F2 ; Extended_Pictographic# E0.0 [2] (🏱..🏲) WHITE PENNANT..BLACK PENNANT 1F3F3 ; Extended_Pictographic# E0.7 [1] (🏳️) white flag 1F3F4 ; Extended_Pictographic# E1.0 [1] (🏴) black flag 1F3F5 ; Extended_Pictographic# E0.7 [1] (🏵️) rosette -1F3F6 ; Extended_Pictographic# E0.0 [1] (🏶) BLACK ROSETTE 1F3F7 ; Extended_Pictographic# E0.7 [1] (🏷️) label 1F3F8..1F3FA ; Extended_Pictographic# E1.0 [3] (🏸..🏺) badminton..amphora 1F400..1F407 ; Extended_Pictographic# E1.0 [8] (🐀..🐇) rat..rabbit @@ -1086,7 +1050,6 @@ E0020..E007F ; Emoji_Component # E0.0 [96] (󠀠..󠁿) tag space..c 1F4F8 ; Extended_Pictographic# E1.0 [1] (📸) camera with flash 1F4F9..1F4FC ; Extended_Pictographic# E0.6 [4] (📹..📼) video camera..videocassette 1F4FD ; Extended_Pictographic# E0.7 [1] (📽️) film projector -1F4FE ; Extended_Pictographic# E0.0 [1] (📾) PORTABLE STEREO 1F4FF..1F502 ; Extended_Pictographic# E1.0 [4] (📿..🔂) prayer beads..repeat single button 1F503 ; Extended_Pictographic# E0.6 [1] (🔃) clockwise vertical arrows 1F504..1F507 ; Extended_Pictographic# E1.0 [4] (🔄..🔇) counterclockwise arrows button..muted speaker @@ -1097,51 +1060,30 @@ E0020..E007F ; Emoji_Component # E0.0 [96] (󠀠..󠁿) tag space..c 1F516..1F52B ; Extended_Pictographic# E0.6 [22] (🔖..🔫) bookmark..water pistol 1F52C..1F52D ; Extended_Pictographic# E1.0 [2] (🔬..🔭) microscope..telescope 1F52E..1F53D ; Extended_Pictographic# E0.6 [16] (🔮..🔽) crystal ball..downwards button -1F546..1F548 ; Extended_Pictographic# E0.0 [3] (🕆..🕈) WHITE LATIN CROSS..CELTIC CROSS 1F549..1F54A ; Extended_Pictographic# E0.7 [2] (🕉️..🕊️) om..dove 1F54B..1F54E ; Extended_Pictographic# E1.0 [4] (🕋..🕎) kaaba..menorah -1F54F ; Extended_Pictographic# E0.0 [1] (🕏) BOWL OF HYGIEIA 1F550..1F55B ; Extended_Pictographic# E0.6 [12] (🕐..🕛) one o’clock..twelve o’clock 1F55C..1F567 ; Extended_Pictographic# E0.7 [12] (🕜..🕧) one-thirty..twelve-thirty -1F568..1F56E ; Extended_Pictographic# E0.0 [7] (🕨..🕮) RIGHT SPEAKER..BOOK 1F56F..1F570 ; Extended_Pictographic# E0.7 [2] (🕯️..🕰️) candle..mantelpiece clock -1F571..1F572 ; Extended_Pictographic# E0.0 [2] (🕱..🕲) BLACK SKULL AND CROSSBONES..NO PIRACY 1F573..1F579 ; Extended_Pictographic# E0.7 [7] (🕳️..🕹️) hole..joystick 1F57A ; Extended_Pictographic# E3.0 [1] (🕺) man dancing -1F57B..1F586 ; Extended_Pictographic# E0.0 [12] (🕻..🖆) LEFT HAND TELEPHONE RECEIVER..PEN OVER STAMPED ENVELOPE 1F587 ; Extended_Pictographic# E0.7 [1] (🖇️) linked paperclips -1F588..1F589 ; Extended_Pictographic# E0.0 [2] (🖈..🖉) BLACK PUSHPIN..LOWER LEFT PENCIL 1F58A..1F58D ; Extended_Pictographic# E0.7 [4] (🖊️..🖍️) pen..crayon -1F58E..1F58F ; Extended_Pictographic# E0.0 [2] (🖎..🖏) LEFT WRITING HAND..TURNED OK HAND SIGN 1F590 ; Extended_Pictographic# E0.7 [1] (🖐️) hand with fingers splayed -1F591..1F594 ; Extended_Pictographic# E0.0 [4] (🖑..🖔) REVERSED RAISED HAND WITH FINGERS SPLAYED..REVERSED VICTORY HAND 1F595..1F596 ; Extended_Pictographic# E1.0 [2] (🖕..🖖) middle finger..vulcan salute -1F597..1F5A3 ; Extended_Pictographic# E0.0 [13] (🖗..🖣) WHITE DOWN POINTING LEFT HAND INDEX..BLACK DOWN POINTING BACKHAND INDEX 1F5A4 ; Extended_Pictographic# E3.0 [1] (🖤) black heart 1F5A5 ; Extended_Pictographic# E0.7 [1] (🖥️) desktop computer -1F5A6..1F5A7 ; Extended_Pictographic# E0.0 [2] (🖦..🖧) KEYBOARD AND MOUSE..THREE NETWORKED COMPUTERS 1F5A8 ; Extended_Pictographic# E0.7 [1] (🖨️) printer -1F5A9..1F5B0 ; Extended_Pictographic# E0.0 [8] (🖩..🖰) POCKET CALCULATOR..TWO BUTTON MOUSE 1F5B1..1F5B2 ; Extended_Pictographic# E0.7 [2] (🖱️..🖲️) computer mouse..trackball -1F5B3..1F5BB ; Extended_Pictographic# E0.0 [9] (🖳..🖻) OLD PERSONAL COMPUTER..DOCUMENT WITH PICTURE 1F5BC ; Extended_Pictographic# E0.7 [1] (🖼️) framed picture -1F5BD..1F5C1 ; Extended_Pictographic# E0.0 [5] (🖽..🗁) FRAME WITH TILES..OPEN FOLDER 1F5C2..1F5C4 ; Extended_Pictographic# E0.7 [3] (🗂️..🗄️) card index dividers..file cabinet -1F5C5..1F5D0 ; Extended_Pictographic# E0.0 [12] (🗅..🗐) EMPTY NOTE..PAGES 1F5D1..1F5D3 ; Extended_Pictographic# E0.7 [3] (🗑️..🗓️) wastebasket..spiral calendar -1F5D4..1F5DB ; Extended_Pictographic# E0.0 [8] (🗔..🗛) DESKTOP WINDOW..DECREASE FONT SIZE SYMBOL 1F5DC..1F5DE ; Extended_Pictographic# E0.7 [3] (🗜️..🗞️) clamp..rolled-up newspaper -1F5DF..1F5E0 ; Extended_Pictographic# E0.0 [2] (🗟..🗠) PAGE WITH CIRCLED TEXT..STOCK CHART 1F5E1 ; Extended_Pictographic# E0.7 [1] (🗡️) dagger -1F5E2 ; Extended_Pictographic# E0.0 [1] (🗢) LIPS 1F5E3 ; Extended_Pictographic# E0.7 [1] (🗣️) speaking head -1F5E4..1F5E7 ; Extended_Pictographic# E0.0 [4] (🗤..🗧) THREE RAYS ABOVE..THREE RAYS RIGHT 1F5E8 ; Extended_Pictographic# E2.0 [1] (🗨️) left speech bubble -1F5E9..1F5EE ; Extended_Pictographic# E0.0 [6] (🗩..🗮) RIGHT SPEECH BUBBLE..LEFT ANGER BUBBLE 1F5EF ; Extended_Pictographic# E0.7 [1] (🗯️) right anger bubble -1F5F0..1F5F2 ; Extended_Pictographic# E0.0 [3] (🗰..🗲) MOOD BUBBLE..LIGHTNING MOOD 1F5F3 ; Extended_Pictographic# E0.7 [1] (🗳️) ballot box with ballot -1F5F4..1F5F9 ; Extended_Pictographic# E0.0 [6] (🗴..🗹) BALLOT SCRIPT X..BALLOT BOX WITH BOLD CHECK 1F5FA ; Extended_Pictographic# E0.7 [1] (🗺️) world map 1F5FB..1F5FF ; Extended_Pictographic# E0.6 [5] (🗻..🗿) mount fuji..moai 1F600 ; Extended_Pictographic# E1.0 [1] (😀) grinning face @@ -1210,26 +1152,22 @@ E0020..E007F ; Emoji_Component # E0.0 [96] (󠀠..󠁿) tag space..c 1F6BF ; Extended_Pictographic# E1.0 [1] (🚿) shower 1F6C0 ; Extended_Pictographic# E0.6 [1] (🛀) person taking bath 1F6C1..1F6C5 ; Extended_Pictographic# E1.0 [5] (🛁..🛅) bathtub..left luggage -1F6C6..1F6CA ; Extended_Pictographic# E0.0 [5] (🛆..🛊) TRIANGLE WITH ROUNDED CORNERS..GIRLS SYMBOL 1F6CB ; Extended_Pictographic# E0.7 [1] (🛋️) couch and lamp 1F6CC ; Extended_Pictographic# E1.0 [1] (🛌) person in bed 1F6CD..1F6CF ; Extended_Pictographic# E0.7 [3] (🛍️..🛏️) shopping bags..bed 1F6D0 ; Extended_Pictographic# E1.0 [1] (🛐) place of worship 1F6D1..1F6D2 ; Extended_Pictographic# E3.0 [2] (🛑..🛒) stop sign..shopping cart -1F6D3..1F6D4 ; Extended_Pictographic# E0.0 [2] (🛓..🛔) STUPA..PAGODA 1F6D5 ; Extended_Pictographic# E12.0 [1] (🛕) hindu temple 1F6D6..1F6D7 ; Extended_Pictographic# E13.0 [2] (🛖..🛗) hut..elevator -1F6D8..1F6DB ; Extended_Pictographic# E0.0 [4] (🛘..🛛) .. +1F6D8 ; Extended_Pictographic# E17.0 [1] (🛘) landslide +1F6D9..1F6DB ; Extended_Pictographic# E0.0 [3] (🛙..🛛) .. 1F6DC ; Extended_Pictographic# E15.0 [1] (🛜) wireless 1F6DD..1F6DF ; Extended_Pictographic# E14.0 [3] (🛝..🛟) playground slide..ring buoy 1F6E0..1F6E5 ; Extended_Pictographic# E0.7 [6] (🛠️..🛥️) hammer and wrench..motor boat -1F6E6..1F6E8 ; Extended_Pictographic# E0.0 [3] (🛦..🛨) UP-POINTING MILITARY AIRPLANE..UP-POINTING SMALL AIRPLANE 1F6E9 ; Extended_Pictographic# E0.7 [1] (🛩️) small airplane -1F6EA ; Extended_Pictographic# E0.0 [1] (🛪) NORTHEAST-POINTING AIRPLANE 1F6EB..1F6EC ; Extended_Pictographic# E1.0 [2] (🛫..🛬) airplane departure..airplane arrival 1F6ED..1F6EF ; Extended_Pictographic# E0.0 [3] (🛭..🛯) .. 1F6F0 ; Extended_Pictographic# E0.7 [1] (🛰️) satellite -1F6F1..1F6F2 ; Extended_Pictographic# E0.0 [2] (🛱..🛲) ONCOMING FIRE ENGINE..DIESEL LOCOMOTIVE 1F6F3 ; Extended_Pictographic# E0.7 [1] (🛳️) passenger ship 1F6F4..1F6F6 ; Extended_Pictographic# E3.0 [3] (🛴..🛶) kick scooter..canoe 1F6F7..1F6F8 ; Extended_Pictographic# E5.0 [2] (🛷..🛸) sled..flying saucer @@ -1237,8 +1175,7 @@ E0020..E007F ; Emoji_Component # E0.0 [96] (󠀠..󠁿) tag space..c 1F6FA ; Extended_Pictographic# E12.0 [1] (🛺) auto rickshaw 1F6FB..1F6FC ; Extended_Pictographic# E13.0 [2] (🛻..🛼) pickup truck..roller skate 1F6FD..1F6FF ; Extended_Pictographic# E0.0 [3] (🛽..🛿) .. -1F774..1F77F ; Extended_Pictographic# E0.0 [12] (🝴..🝿) LOT OF FORTUNE..ORCUS -1F7D5..1F7DF ; Extended_Pictographic# E0.0 [11] (🟕..🟟) CIRCLED TRIANGLE.. +1F7DA..1F7DF ; Extended_Pictographic# E0.0 [6] (🟚..🟟) .. 1F7E0..1F7EB ; Extended_Pictographic# E12.0 [12] (🟠..🟫) orange circle..brown square 1F7EC..1F7EF ; Extended_Pictographic# E0.0 [4] (🟬..🟯) .. 1F7F0 ; Extended_Pictographic# E14.0 [1] (🟰) heavy equals sign @@ -1247,7 +1184,10 @@ E0020..E007F ; Emoji_Component # E0.0 [96] (󠀠..󠁿) tag space..c 1F848..1F84F ; Extended_Pictographic# E0.0 [8] (🡈..🡏) .. 1F85A..1F85F ; Extended_Pictographic# E0.0 [6] (🡚..🡟) .. 1F888..1F88F ; Extended_Pictographic# E0.0 [8] (🢈..🢏) .. -1F8AE..1F8FF ; Extended_Pictographic# E0.0 [82] (🢮..🣿) .. +1F8AE..1F8AF ; Extended_Pictographic# E0.0 [2] (🢮..🢯) .. +1F8BC..1F8BF ; Extended_Pictographic# E0.0 [4] (🢼..🢿) .. +1F8C2..1F8CF ; Extended_Pictographic# E0.0 [14] (🣂..🣏) .. +1F8D9..1F8FF ; Extended_Pictographic# E0.0 [39] (🣙..🣿) .. 1F90C ; Extended_Pictographic# E13.0 [1] (🤌) pinched fingers 1F90D..1F90F ; Extended_Pictographic# E12.0 [3] (🤍..🤏) white heart..pinching hand 1F910..1F918 ; Extended_Pictographic# E1.0 [9] (🤐..🤘) zipper-mouth face..sign of the horns @@ -1293,7 +1233,8 @@ E0020..E007F ; Emoji_Component # E0.0 [96] (󠀠..󠁿) tag space..c 1F9CD..1F9CF ; Extended_Pictographic# E12.0 [3] (🧍..🧏) person standing..deaf person 1F9D0..1F9E6 ; Extended_Pictographic# E5.0 [23] (🧐..🧦) face with monocle..socks 1F9E7..1F9FF ; Extended_Pictographic# E11.0 [25] (🧧..🧿) red envelope..nazar amulet -1FA00..1FA6F ; Extended_Pictographic# E0.0 [112] (🨀..🩯) NEUTRAL CHESS KING.. +1FA58..1FA5F ; Extended_Pictographic# E0.0 [8] (🩘..🩟) .. +1FA6E..1FA6F ; Extended_Pictographic# E0.0 [2] (🩮..🩯) .. 1FA70..1FA73 ; Extended_Pictographic# E12.0 [4] (🩰..🩳) ballet shoes..shorts 1FA74 ; Extended_Pictographic# E13.0 [1] (🩴) thong sandal 1FA75..1FA77 ; Extended_Pictographic# E15.0 [3] (🩵..🩷) light blue heart..pink heart @@ -1304,7 +1245,9 @@ E0020..E007F ; Emoji_Component # E0.0 [96] (󠀠..󠁿) tag space..c 1FA83..1FA86 ; Extended_Pictographic# E13.0 [4] (🪃..🪆) boomerang..nesting dolls 1FA87..1FA88 ; Extended_Pictographic# E15.0 [2] (🪇..🪈) maracas..flute 1FA89 ; Extended_Pictographic# E16.0 [1] (🪉) harp -1FA8A..1FA8E ; Extended_Pictographic# E0.0 [5] (🪊..🪎) .. +1FA8A ; Extended_Pictographic# E17.0 [1] (🪊) trombone +1FA8B..1FA8D ; Extended_Pictographic# E0.0 [3] (🪋..🪍) .. +1FA8E ; Extended_Pictographic# E17.0 [1] (🪎) treasure chest 1FA8F ; Extended_Pictographic# E16.0 [1] (🪏) shovel 1FA90..1FA95 ; Extended_Pictographic# E12.0 [6] (🪐..🪕) ringed planet..banjo 1FA96..1FAA8 ; Extended_Pictographic# E13.0 [19] (🪖..🪨) military helmet..rock @@ -1318,7 +1261,10 @@ E0020..E007F ; Emoji_Component # E0.0 [96] (󠀠..󠁿) tag space..c 1FAC0..1FAC2 ; Extended_Pictographic# E13.0 [3] (🫀..🫂) anatomical heart..people hugging 1FAC3..1FAC5 ; Extended_Pictographic# E14.0 [3] (🫃..🫅) pregnant man..person with crown 1FAC6 ; Extended_Pictographic# E16.0 [1] (🫆) fingerprint -1FAC7..1FACD ; Extended_Pictographic# E0.0 [7] (🫇..🫍) .. +1FAC7 ; Extended_Pictographic# E0.0 [1] (🫇) +1FAC8 ; Extended_Pictographic# E17.0 [1] (🫈) hairy creature +1FAC9..1FACC ; Extended_Pictographic# E0.0 [4] (🫉..🫌) .. +1FACD ; Extended_Pictographic# E17.0 [1] (🫍) orca 1FACE..1FACF ; Extended_Pictographic# E15.0 [2] (🫎..🫏) moose..donkey 1FAD0..1FAD6 ; Extended_Pictographic# E13.0 [7] (🫐..🫖) blueberries..teapot 1FAD7..1FAD9 ; Extended_Pictographic# E14.0 [3] (🫗..🫙) pouring liquid..jar @@ -1329,12 +1275,14 @@ E0020..E007F ; Emoji_Component # E0.0 [96] (󠀠..󠁿) tag space..c 1FAE0..1FAE7 ; Extended_Pictographic# E14.0 [8] (🫠..🫧) melting face..bubbles 1FAE8 ; Extended_Pictographic# E15.0 [1] (🫨) shaking face 1FAE9 ; Extended_Pictographic# E16.0 [1] (🫩) face with bags under eyes -1FAEA..1FAEF ; Extended_Pictographic# E0.0 [6] (🫪..🫯) .. +1FAEA ; Extended_Pictographic# E17.0 [1] (🫪) distorted face +1FAEB..1FAEE ; Extended_Pictographic# E0.0 [4] (🫫..🫮) .. +1FAEF ; Extended_Pictographic# E17.0 [1] (🫯) fight cloud 1FAF0..1FAF6 ; Extended_Pictographic# E14.0 [7] (🫰..🫶) hand with index finger and thumb crossed..heart hands 1FAF7..1FAF8 ; Extended_Pictographic# E15.0 [2] (🫷..🫸) leftwards pushing hand..rightwards pushing hand 1FAF9..1FAFF ; Extended_Pictographic# E0.0 [7] (🫹..🫿) .. 1FC00..1FFFD ; Extended_Pictographic# E0.0[1022] (🰀..🿽) .. -# Total elements: 3537 +# Total elements: 2848 #EOF diff --git a/contrib/unicode/from_glibc/utf8_gen.py b/contrib/unicode/from_glibc/utf8_gen.py index 59cd9bbfa9d8..2e01fab96586 100755 --- a/contrib/unicode/from_glibc/utf8_gen.py +++ b/contrib/unicode/from_glibc/utf8_gen.py @@ -1,6 +1,7 @@ #!/usr/bin/python3 # -*- coding: utf-8 -*- # Copyright (C) 2014-2025 Free Software Foundation, Inc. +# Copyright The GNU Toolchain Authors. # This file is part of the GNU C Library. # # The GNU C Library is free software; you can redistribute it and/or @@ -10,7 +11,7 @@ # # The GNU C Library 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 +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU # Lesser General Public License for more details. # # You should have received a copy of the GNU Lesser General Public @@ -28,7 +29,6 @@ ''' import argparse -import sys import re import unicode_utils @@ -200,30 +200,40 @@ def write_header_charmap(outfile): def write_header_width(outfile, unicode_version): '''Writes the header on top of the WIDTH section to the output file''' - outfile.write('% Character width according to Unicode ' - + '{:s}.\n'.format(unicode_version)) - outfile.write('% - Default width is 1.\n') + outfile.write('% Character width according to Unicode {:s}.\n'.format(unicode_version)) + outfile.write('% Width is determined by the following rules, in order of decreasing precedence:\n') + outfile.write('% - U+00AD SOFT HYPHEN has width 1, as a special case for compatibility (https://archive.is/b5Ck).\n') + outfile.write('% - U+115F HANGUL CHOSEONG FILLER has width 2.\n') + outfile.write('% This character stands in for an intentionally omitted leading consonant\n') + outfile.write('% in a Hangul syllable block; as such it must be assigned width 2 despite its lack\n') + outfile.write('% of visible display to ensure that the complete block has the correct width.\n') + outfile.write('% (See below for more information on Hangul syllables.)\n') + outfile.write('% - Combining jungseong and jongseong Hangul jamo have width 0; generated from\n') + outfile.write('% "grep \'^[^;]*;[VT]\' HangulSyllableType.txt".\n') + outfile.write('% One composed Hangul "syllable block" like 퓛 is made up of\n') + outfile.write('% two to three individual component characters called "jamo".\n') + outfile.write('% The complete block must have total width 2;\n') + outfile.write('% to achieve this, we assign a width of 2 to leading "choseong" jamo,\n') + outfile.write('% and of 0 to medial vowel "jungseong" and trailing "jongseong" jamo.\n') + outfile.write('% - Non-spacing and enclosing marks have width 0; generated from\n') + outfile.write('% "grep -E \'^[^;]*;[^;]*;(Mn|Me);\' UnicodeData.txt".\n') + outfile.write('% - "Default_Ignorable_Code_Point"s have width 0; generated from\n') + outfile.write('% "grep \'^[^;]*;\\s*Default_Ignorable_Code_Point\' DerivedCoreProperties.txt".\n') outfile.write('% - Double-width characters have width 2; generated from\n') - outfile.write('% "grep \'^[^;]*;\\s*[WF]\' EastAsianWidth.txt"\n') - outfile.write('% - Non-spacing characters have width 0; ' - + 'generated from PropList.txt or\n') - outfile.write('% "grep \'^[^;]*;[^;]*;[^;]*;[^;]*;NSM;\' ' - + 'UnicodeData.txt"\n') - outfile.write('% - Format control characters have width 0; ' - + 'generated from\n') - outfile.write("% \"grep '^[^;]*;[^;]*;Cf;' UnicodeData.txt\"\n") -# Not needed covered by Cf -# outfile.write("% - Zero width characters have width 0; generated from\n") -# outfile.write("% \"grep '^[^;]*;ZERO WIDTH ' UnicodeData.txt\"\n") + outfile.write('% "grep \'^[^;]*;[WF]\' EastAsianWidth.txt".\n') + outfile.write('% - Default width for all other characters is 1.\n') outfile.write("WIDTH\n") -def process_width(outfile, ulines, elines, plines): - '''ulines are lines from UnicodeData.txt, elines are lines from - EastAsianWidth.txt containing characters with width “W” or “F”, - plines are lines from PropList.txt which contain characters - with the property “Prepended_Concatenation_Mark”. - +def process_width(outfile, ulines, dlines, elines, klines): + '''ulines are lines from UnicodeData.txt. + elines are lines from EastAsianWidth.txt containing characters with width + “W” or “F”. + dlines are lines from DerivedCoreProperties.txt which contain + characters with the property “Default_Ignorable_Code_Point”. + klines are lines from HangulSyllableType.txt which contain characters + with syllable type “V” or “T”. ''' + # Wide and fullwidth characters have width 1 width_dict = {} for line in elines: fields = line.split(";") @@ -235,14 +245,14 @@ def process_width(outfile, ulines, elines, plines): int(code_points[1], 16)+1): width_dict[key] = 2 + # Nonspacing and enclosing marks have width 0 for line in ulines: fields = line.split(";") - if fields[4] == "NSM" or fields[2] in ("Cf", "Me", "Mn"): + if fields[4] == "NSM" or fields[2] in ("Me", "Mn"): width_dict[int(fields[0], 16)] = 0 - for line in plines: - # Characters with the property “Prepended_Concatenation_Mark” - # should have the width 1: + # Conjoining vowel and trailing jamo have width 0 + for line in klines: fields = line.split(";") if not '..' in fields[0]: code_points = (fields[0], fields[0]) @@ -250,21 +260,26 @@ def process_width(outfile, ulines, elines, plines): code_points = fields[0].split("..") for key in range(int(code_points[0], 16), int(code_points[1], 16)+1): - del width_dict[key] # default width is 1 - - # handle special cases for compatibility - for key in list((0x00AD,)): - # https://www.cs.tut.fi/~jkorpela/shy.html - if key in width_dict: - del width_dict[key] # default width is 1 - for key in list(range(0x1160, 0x1200)): - # Hangul jungseong and jongseong: - if key in unicode_utils.UNICODE_ATTRIBUTES: - width_dict[key] = 0 - for key in list(range(0xD7B0, 0xD800)): - # Hangul jungseong and jongseong: - if key in unicode_utils.UNICODE_ATTRIBUTES: width_dict[key] = 0 + + # “Default_Ignorable_Code_Point”s have width 0 + for line in dlines: + fields = line.split(";") + if not '..' in fields[0]: + code_points = (fields[0], fields[0]) + else: + code_points = fields[0].split("..") + for key in range(int(code_points[0], 16), + int(code_points[1], 16)+1): + width_dict[key] = 0 # default width is 1 + + + # Special case: U+00AD SOFT HYPHEN + del width_dict[0x00AD] + + # Special case: U+115F HANGUL CHOSEONG FILLER + width_dict[0x115F] = 2 + for key in list(range(0x3248, 0x3250)): # These are “A” which means we can decide whether to treat them # as “W” or “N” based on context: @@ -302,7 +317,7 @@ def process_width(outfile, ulines, elines, plines): if __name__ == "__main__": PARSER = argparse.ArgumentParser( description=''' - Generate a UTF-8 file from UnicodeData.txt, EastAsianWidth.txt, and PropList.txt. + Generate a UTF-8 file from UnicodeData.txt, DerivedCoreProperties.txt, EastAsianWidth.txt, and HangulSyllableType.txt ''') PARSER.add_argument( '-u', '--unicode_data_file', @@ -311,6 +326,13 @@ def process_width(outfile, ulines, elines, plines): default='UnicodeData.txt', help=('The UnicodeData.txt file to read, ' + 'default: %(default)s')) + PARSER.add_argument( + '-d', '--derived_core_properties_file', + nargs='?', + type=str, + default='DerivedCoreProperties.txt', + help=('The DerivedCoreProperties.txt file to read, ' + + 'default: %(default)s')) PARSER.add_argument( '-e', '--east_asian_with_file', nargs='?', @@ -319,11 +341,11 @@ def process_width(outfile, ulines, elines, plines): help=('The EastAsianWidth.txt file to read, ' + 'default: %(default)s')) PARSER.add_argument( - '-p', '--prop_list_file', + '-k', '--hangul_syllable_type_file', nargs='?', type=str, - default='PropList.txt', - help=('The PropList.txt file to read, ' + default='HangulSyllableType.txt', + help=('The HangulSyllableType.txt file to read, ' + 'default: %(default)s')) PARSER.add_argument( '--unicode_version', @@ -336,27 +358,35 @@ def process_width(outfile, ulines, elines, plines): unicode_utils.fill_attributes(ARGS.unicode_data_file) with open(ARGS.unicode_data_file, mode='r') as UNIDATA_FILE: UNICODE_DATA_LINES = UNIDATA_FILE.readlines() - with open(ARGS.east_asian_with_file, mode='r') as EAST_ASIAN_WIDTH_FILE: - EAST_ASIAN_WIDTH_LINES = [] - for LINE in EAST_ASIAN_WIDTH_FILE: - # If characters from EastAsianWidth.txt which are from - # reserved ranges (i.e. not yet assigned code points) + with open(ARGS.derived_core_properties_file, mode='r') as DERIVED_CORE_PROPERTIES_FILE: + DERIVED_CORE_PROPERTIES_LINES = [] + for LINE in DERIVED_CORE_PROPERTIES_FILE: + # If characters which are from reserved ranges + # (i.e. not yet assigned code points) # are added to the WIDTH section of the UTF-8 file, then # “make check” produces “Unknown Character” errors for # these code points because such unassigned code points # are not in the CHARMAP section of the UTF-8 file. # - # Therefore, we skip all reserved code points when reading - # the EastAsianWidth.txt file. - if re.match(r'.*\.\..*', LINE): + # Therefore, we skip all reserved code points. + if re.match(r'.*', LINE): + continue + if re.match(r'^[^;]*;\s*Default_Ignorable_Code_Point', LINE): + DERIVED_CORE_PROPERTIES_LINES.append(LINE.strip()) + with open(ARGS.east_asian_with_file, mode='r') as EAST_ASIAN_WIDTH_FILE: + EAST_ASIAN_WIDTH_LINES = [] + for LINE in EAST_ASIAN_WIDTH_FILE: + if re.match(r'.*', LINE): continue if re.match(r'^[^;]*;\s*[WF]', LINE): EAST_ASIAN_WIDTH_LINES.append(LINE.strip()) - with open(ARGS.prop_list_file, mode='r') as PROP_LIST_FILE: - PROP_LIST_LINES = [] - for LINE in PROP_LIST_FILE: - if re.match(r'^[^;]*;[\s]*Prepended_Concatenation_Mark', LINE): - PROP_LIST_LINES.append(LINE.strip()) + with open(ARGS.hangul_syllable_type_file, mode='r') as HANGUL_SYLLABLE_TYPE_FILE: + HANGUL_SYLLABLE_TYPE_LINES = [] + for LINE in HANGUL_SYLLABLE_TYPE_FILE: + if re.match(r'.*', LINE): + continue + if re.match(r'^[^;]*;\s*[VT]', LINE): + HANGUL_SYLLABLE_TYPE_LINES.append(LINE.strip()) with open('UTF-8', mode='w') as OUTFILE: # Processing UnicodeData.txt and write CHARMAP to UTF-8 file write_header_charmap(OUTFILE) @@ -366,6 +396,7 @@ def process_width(outfile, ulines, elines, plines): write_header_width(OUTFILE, ARGS.unicode_version) process_width(OUTFILE, UNICODE_DATA_LINES, + DERIVED_CORE_PROPERTIES_LINES, EAST_ASIAN_WIDTH_LINES, - PROP_LIST_LINES) + HANGUL_SYLLABLE_TYPE_LINES) OUTFILE.write("END WIDTH\n") diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 63fd0f27d032..96e5a1fbc01b 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,1312 @@ +2025-10-10 YunQiang Su + + Revert: + 2025-09-27 Jie Mei + + * config/mips/mips.cc(mips_option_override):Add conditions + for use of the -mmips16e2 and -mips16 option. + +2025-10-09 David Faust + + * doc/extend.texi (Common Function Attributes) + (Common Variable Attributes): Document btf_decl_tag attribute. + (Common Type Attributes): Document btf_type_tag attribute. + +2025-10-09 David Faust + + * btfout.cc (get_btf_kind): Handle DECL_TAG and TYPE_TAG kinds. + (btf_calc_num_vbytes): Likewise. + (btf_asm_type): Likewise. + (output_asm_btf_vlen_bytes): Likewise. + (output_btf_tags): New. + (btf_output): Call it here. + (btf_add_used_type): Replace with simple wrapper around... + (btf_add_used_type_1): ...the implementation. Handle + BTF_KIND_DECL_TAG and BTF_KIND_TYPE_TAG. + (btf_add_vars): Update btf_add_used_type call. + (btf_assign_tag_ids): New. + (btf_mark_type_used): Update btf_add_used_type call. + (btf_collect_pruned_types): Likewise. Handle type and decl tags. + (btf_finish): Call btf_assign_tag_ids. + +2025-10-09 David Faust + + * ctfc.cc (ctf_dtu_d_union_selector): Handle CTF_K_DECL_TAG and + CTF_K_TYPE_TAG. + (ctf_add_type_tag, ctf_add_decl_tag): New. + (ctf_add_variable): Return the new ctf_dvdef_ref rather than zero. + (new_ctf_container): Initialize new members. + (ctfc_delete_container): Deallocate new members. + * ctfc.h (ctf_dvdef, ctf_dvdef_t, ctf_dvdef_ref): Move forward + declarations earlier in file. + (ctf_decl_tag_t): New typedef. + (ctf_dtdef): Add ctf_decl_tag_t member to dtd_u union. + (ctf_dtu_d_union_enum): Add new CTF_DTU_D_TAG enumerator. + (ctf_container): Add ctfc_tags vector and ctfc_type_tags_map hash_map + members. + (ctf_add_type_tag, ctf_add_decl_tag): New function protos. + (ctf_add_variable): Change prototype return type to ctf_dvdef_ref. + * dwarf2ctf.cc (gen_ctf_type_tags, gen_ctf_decl_tags) + (gen_ctf_decl_tags_for_var): New static functions. + (gen_ctf_pointer_type): Handle type tags. + (gen_ctf_sou_type): Handle decl tags. + (gen_ctf_function_type): Likewise. + (gen_ctf_variable): Likewise. + (gen_ctf_function): Likewise. + (gen_ctf_type): Handle TAG_GNU_annotation DIEs. + +2025-10-09 David Faust + + * dwarf2out.cc (struct annotation_node, struct annotation_node_hasher) + (btf_tag_htab): New ancillary structures and hash table. + (annotation_node_hasher::hash, annotation_node_hasher::equal): New. + (hash_btf_tag, gen_btf_tag_dies, maybe_gen_btf_type_tag_dies) + (maybe_gen_btf_decl_tag_dies): New functions. + (modified_type_die): Add new argument to pass type attributes. + Handle btf_type_tag, and update recursive calls. + (base_type_for_mode): Add new arg for modified_type_die call. + (add_type_attribute): Likewise. + (gen_array_type_die): Call maybe_gen_btf_type_tag_dies for the type. + (gen_formal_parameter_die): Call maybe_gen_btf_decl_tag_dies for the + parameter. + (override_type_for_decl_p): Add new arg for modified_type_die call. + (force_type_die): Likewise. + (gen_tagged_type_die): Call maybe_gen_btf_type_tag_dies for the type. + (gen_decl_die): Call maybe_gen_btf_decl_tag_dies for the decl. + (dwarf2out_finish): Empty btf_tag_htab. + (dwarf2out_cc_finalize): Delete btf_tag_htab hash table. + +2025-10-09 Jakub Jelinek + + * ginclude/stdarg.h (va_start): Use __builtin_c23_va_start + also for C++26. + (__STDC_VERSION_STDARG_H__): Also define for C++26. + +2025-10-09 David Malcolm + + * diagnostic-global-context.cc: Define INCLUDE_VECTOR. + * diagnostics/buffering.cc: Likewise. + * diagnostics/context.cc (context::finish): Call + finalize_extensions on each sink. + (sink::dump): Dump any extensions. + (sink::finalize_extensions): New. + * diagnostics/macro-unwinding.cc: Define INCLUDE_VECTOR. + * diagnostics/selftest-context.cc: Likewise. + * diagnostics/sink.h (class sink::extension): New. + (sink::add_extension): New. + (sink::finalize_extensions): New decl. + (sink::m_extensions): New member. + * gcc.cc: Define INCLUDE_VECTOR. + * langhooks.cc: Likewise. + * opts.cc: Likewise. + * tree-diagnostic-client-data-hooks.cc: Likewise. + * tree-diagnostic.cc: Likewise. + +2025-10-09 Filip Kastl + + * Makefile.in: Add gimple-ssa-pta-constraints.cc. + * tree-ssa-structalias.cc (determine_global_memory_access): + External linkage, move to namespace pointer_analysis. + (fndecl_maybe_in_other_partition): External linkage, move to + namespace pointer_analysis. + (new_var_info): External linkage, move to namespace + pointer_analysis. + (create_variable_info_for): Move to + gimple-ssa-pta-constraints.cc. + (lookup_vi_for_tree): External linkage, move to namespace + pointer_analysis, move to gimple-ssa-pta-constraints.cc. + (type_can_have_subvars): Move to gimple-ssa-pta-constraints.cc. + (make_param_constraints): Move to gimple-ssa-pta-constraints.cc. + (get_call_vi): Move to gimple-ssa-pta-constraints.cc. + (lookup_call_use_vi): External linkage, move to namespace + pointer_analysis, move to gimple-ssa-pta-constraints.cc. + (lookup_call_clobber_vi): External linkage, move to namespace + pointer_analysis, move to gimple-ssa-pta-constraints.cc. + (get_call_use_vi): Move to gimple-ssa-pta-constraints.cc. + (get_call_clobber_vi): Move to gimple-ssa-pta-constraints.cc. + (get_constraint_for_1): Move to gimple-ssa-pta-constraints.cc. + (get_constraint_for): Move to gimple-ssa-pta-constraints.cc. + (get_constraint_for_rhs): Move to gimple-ssa-pta-constraints.cc. + (do_deref): Move to gimple-ssa-pta-constraints.cc. + (constraint_pool): Move to gimple-ssa-pta-constraints.cc. + (new_constraint): Move to gimple-ssa-pta-constraints.cc. + (insert_vi_for_tree): Move to gimple-ssa-pta-constraints.cc. + (alias_get_name): Move to gimple-ssa-pta-constraints.cc. + (get_vi_for_tree): Move to gimple-ssa-pta-constraints.cc. + (new_scalar_tmp_constraint_exp): Move to + gimple-ssa-pta-constraints.cc. + (get_constraint_for_ssa_var): Move to + gimple-ssa-pta-constraints.cc. + (process_constraint): Move to gimple-ssa-pta-constraints.cc. + (bitpos_of_field): Move to gimple-ssa-pta-constraints.cc. + (get_constraint_for_ptr_offset): Move to + gimple-ssa-pta-constraints.cc. + (get_constraint_for_component_ref): Move to + gimple-ssa-pta-constraints.cc. + (get_constraint_for_address_of): Move to + gimple-ssa-pta-constraints.cc. + (process_all_all_constraints): Move to + gimple-ssa-pta-constraints.cc. + (do_structure_copy): Move to gimple-ssa-pta-constraints.cc. + (make_constraints_to): Move to gimple-ssa-pta-constraints.cc. + (make_constraint_to): Move to gimple-ssa-pta-constraints.cc. + (make_constraint_from): Move to gimple-ssa-pta-constraints.cc. + (make_copy_constraint): Move to gimple-ssa-pta-constraints.cc. + (make_escape_constraint): Move to gimple-ssa-pta-constraints.cc. + (make_indirect_escape_constraint): Move to + gimple-ssa-pta-constraints.cc. + (make_transitive_closure_constraints): Move to + gimple-ssa-pta-constraints.cc. + (make_any_offset_constraints): Move to + gimple-ssa-pta-constraints.cc. + (struct obstack fake_var_decl_obstack): Move to + gimple-ssa-pta-constraints.cc. + (build_fake_var_decl): Move to gimple-ssa-pta-constraints.cc. + (make_heapvar): Move to gimple-ssa-pta-constraints.cc. + (make_constraint_from_restrict): Move to + gimple-ssa-pta-constraints.cc. + (make_constraint_from_global_restrict): Move to + gimple-ssa-pta-constraints.cc. + (get_function_part_constraint): Move to + gimple-ssa-pta-constraints.cc. + (handle_call_arg): Move to gimple-ssa-pta-constraints.cc. + (handle_rhs_call): Move to gimple-ssa-pta-constraints.cc. + (handle_lhs_call): Move to gimple-ssa-pta-constraints.cc. + (get_fi_for_callee): Move to gimple-ssa-pta-constraints.cc. + (find_func_aliases_for_call_arg): Move to + gimple-ssa-pta-constraints.cc. + (find_func_aliases_for_builtin_call): Move to + gimple-ssa-pta-constraints.cc. + (find_func_aliases_for_call): Move to + gimple-ssa-pta-constraints.cc. + (find_func_aliases): Move to gimple-ssa-pta-constraints.cc. + (process_ipa_clobber): Move to gimple-ssa-pta-constraints.cc. + (find_func_clobbers): Move to gimple-ssa-pta-constraints.cc. + (struct fieldoff): Move to gimple-ssa-pta-constraints.cc. + (fieldoff_compare): Move to gimple-ssa-pta-constraints.cc. + (sort_fieldstack): Move to gimple-ssa-pta-constraints.cc. + (var_can_have_subvars): Move to gimple-ssa-pta-constraints.cc. + (type_must_have_pointers): Move to + gimple-ssa-pta-constraints.cc. + (field_must_have_pointers): Move to + gimple-ssa-pta-constraints.cc. + (push_fields_onto_fieldstack): Move to + gimple-ssa-pta-constraints.cc. + (count_num_arguments): Move to gimple-ssa-pta-constraints.cc. + (create_function_info_for): Move to + gimple-ssa-pta-constraints.cc. + (check_for_overlaps): Move to gimple-ssa-pta-constraints.cc. + (create_variable_info_for_1): Move to + gimple-ssa-pta-constraints.cc. + (intra_create_variable_infos): Move to + gimple-ssa-pta-constraints.cc. + (init_base_vars): Move to gimple-ssa-pta-constraints.cc. + (init_constraint_builder): Move to + gimple-ssa-pta-constraints.cc. + (delete_constraint_builder): Move to + gimple-ssa-pta-constraints.cc. + (intra_build_constraints): Move to + gimple-ssa-pta-constraints.cc. + (delete_points_to_sets): Move to gimple-ssa-pta-constraints.cc. + (associate_varinfo_to_alias): Move to + gimple-ssa-pta-constraints.cc + (refered_from_nonlocal_fn): Move to + gimple-ssa-pta-constraints.cc + (refered_from_nonlocal_var): Move to + gimple-ssa-pta-constraints.cc + (ipa_create_function_infos): Move to + gimple-ssa-pta-constraints.cc + (ipa_create_global_variable_infos): Move to + gimple-ssa-pta-constraints.cc + (ipa_build_constraints): Move to gimple-ssa-pta-constraints.cc + * tree-ssa-structalias.h (struct constraint_stats): + (determine_global_memory_access): External linkage, move to + namespace pointer_analysis. + (fndecl_maybe_in_other_partition): External linkage, move to + namespace pointer_analysis. + (new_var_info): External linkage, move to namespace + pointer_analysis. + * gimple-ssa-pta-constraints.cc: New file. + * gimple-ssa-pta-constraints.h: New file. + +2025-10-09 Filip Kastl + + * tree-ssa-structalias.cc (init_constraint_builder): New + function. + (delete_constraint_builder): New function. + (compute_points_to_sets): Put constraint building into + intra_build_constraints and call it. + (intra_build_constraints): New function. + (delete_points_to_sets): Put cleanup of constraint builder + global vars into delete_constraint_builder and call it. + (ipa_pta_execute): Put constraint building into + ipa_build_constraints and call it. + (ipa_create_function_infos): New function. + (ipa_create_global_variable_infos): New function. + (ipa_build_constraints): New function. + +2025-10-09 Takayuki 'January June' Suwa + + * config/xtensa/xtensa-protos.h (xtensa_constantsynth): Remove. + * config/xtensa/xtensa.cc + (#include): Remove "context.h" and "pass_manager.h". + (machine_function): Remove "litpool_usage" member. + (xtensa_constantsynth_2insn, xtensa_constantsynth_rtx_SLLI, + xtensa_constantsynth_rtx_ADDSUBX, xtensa_constantsynth): Remove. + (constantsynth_method_lshr_m1, split_hwi_to_MOVI_ADDMI, + constantsynth_method_16bits, constantsynth_method_32bits, + constantsynth_method_square): New worker function related to + constant synthesis methods. + (constantsynth_method_info, constantsynth_methods): + New structure representing the list of all constant synthesis + methods. + (constantsynth_info): New structure that stores internal + information for "constantsynth". + (constantsynth_pass1, verify_synth_seq, constantsynth_pass2): + New functions that are the core of "constantsynth". + (do_largeconst): Add a call to constantsynth_pass1() to the insn + enumeration loop, and add a call to constantsynth_pass2() to the + end of this function. + * config/xtensa/xtensa.md (SHI): Remove. + (The two auxiliary define_splits for mov[sh]i_internal): Remove. + (The two auxiliary define_splits for movsf_internal): Remove. + +2025-10-09 Takayuki 'January June' Suwa + + * config/xtensa/xtensa-protos.h + (xtensa_split_DI_reg_imm): Remove. + * config/xtensa/xtensa.cc (xtensa_split_DI_reg_imm): Remove. + (split_DI_SF_DF_const): New worker function. + (do_largeconst): Add a call to split_DI_SF_DF_const() to the insn + enumeration loop. + * config/xtensa/xtensa.md (movdi): Remove split code when the + source is constant. + (movdi_internal): Add a new constraint pair (a, Y) to the second + of the existing constraint alternatives. + (The auxiliary define_split for movdi_internal): Remove. + +2025-10-09 Takayuki 'January June' Suwa + + * config/xtensa/xtensa.cc (xt_full_rtx_costs): + New struct, derived from full_rtx_costs. + (FPreg_neg_scaled_simm12b_1, FPreg_neg_scaled_simm12b): + New worker functions. + (do_largeconst): Add a call to FPreg_neg_scaled_simm12b() to the + insn enumeration loop. + +2025-10-09 Takayuki 'January June' Suwa + + * config/xtensa/constraints.md (Y): + Change to reference xtensa_postreload_completed_p() instead of + xtensa_split1_finished_p(). + * config/xtensa/predicates.md (move_operand): Ditto. + * config/xtensa/t-xtensa (PASSES_EXTRA): + Add xtensa-passes.def as target-specific pass description. + * config/xtensa/xtensa-passes.def: + New definition file that inserts pass_xtensa_largeconst after + pass_postreload_cse. + * config/xtensa/xtensa-protos.h (xtensa_split1_finished_p): Remove. + (xtensa_postreload_completed_p, make_pass_xtensa_largeconst): + New function prototypes. + * config/xtensa/xtensa.cc (machine_function): + Add a new member "postreload_completed". + (xtensa_emit_move_sequence): + Change to reference xtensa_postreload_completed_p() instead of + can_create_pseudo_p(). + (xtensa_split1_finished_p): Remove. + (xtensa_postreload_completed_p): New function. + (xtensa_legitimate_constant_p): Change to also consider + xtensa_postreload_completed_p(). + (litpool_set_src_1, litpool_set_src, do_largeconst, + rest_of_handle_largeconst): + New sub-functions for pass_xtensa_largeconst. + (pass_data_xtensa_largeconst, pass_xtensa_largeconst): + New target-specific pass definition. + (make_pass_xtensa_largeconst): + New function called by the pass manager. + * config/xtensa/xtensa.md + (The auxiliary define_split for movdi_internal): + Change to reference xtensa_postreload_completed_p() instead of + xtensa_split1_finished_p(). + (The first of three auxiliary define_splits for mov[sh]i_internal): + Remove. + +2025-10-09 Takayuki 'January June' Suwa + + * config/xtensa/xtensa.cc + (TARGET_MD_ASM_ADJUST): New macro definition. + (xtensa_md_asm_adjust): New function prototype and definition, that + prepends all 'g'-constraints in the "constraints" vector with 'n', + if neither TARGET_CONST16 nor TARGET_AUTO_LITPOOLS is enabled. + +2025-10-09 Richard Biener + + PR tree-optimization/122212 + * tree-ssa-forwprop.cc (simplify_count_zeroes): Apply + bias for CLZ after dealing with the zero special value. + +2025-10-09 Kito Cheng + + * config/riscv/riscv-protos.h (vls_mode_valid_p): New argument + allow_up_to_lmul_8. + * config/riscv/riscv-v.cc (autovectorize_vector_modes): Set + allow_up_to_lmul_8 to false. + (vls_mode_valid_p): Add new argument allow_up_to_lmul_8, and use + it to determine whether to allow LMUL 8. + +2025-10-09 Prathamesh Kulkarni + Matthew Malcolmson + + PR driver/81358 + * common.opt: New option -flink-libatomic. + * gcc.cc (LINK_LIBATOMIC_SPEC): New macro. + * config/alpha/linux.h (LINK_GCC_C_SEQUENCE_SPEC): Use LINK_LIBATOMIC_SPEC. + * config/arm/uclinux-elf.h: Likewise. + * config/arm/unknown-elf.h: Likewise. + * config/avr/avrlibc.h: Likewise. + * config/bfin/linux.h: Likewise. + * config/darwin.h: Likewise. + * config/gnu-user.h: Likewise. + * config/lm32/uclinux-elf.h: Likewise. + * config/rs6000/linux64.h: Likewise. + * config/rs6000/rtems.h: Likewise. + * config/sparc/sparc.h: Likewise. + * doc/invoke.texi: Document -flink-libatomic. + * configure.ac: Define TARGET_PROVIDES_LIBATOMIC. + * configure: Regenerate. + * config.in: Regenerate. + * common.opt.urls: Regenerate. + +2025-10-09 Robin Dapp + + * config/aarch64/aarch64.cc (aarch64_builtin_support_vector_misalignment): + Remove type. + * config/arm/arm.cc (arm_builtin_support_vector_misalignment): + Ditto. + * config/epiphany/epiphany.cc (epiphany_support_vector_misalignment): + Ditto. + * config/gcn/gcn.cc (gcn_vectorize_support_vector_misalignment): + Ditto. + * config/loongarch/loongarch.cc (loongarch_builtin_support_vector_misalignment): + Ditto. + * config/riscv/riscv.cc (riscv_support_vector_misalignment): + Ditto. + * config/rs6000/rs6000.cc (rs6000_builtin_support_vector_misalignment): + Ditto. + * config/s390/s390.cc (s390_support_vector_misalignment): + Ditto. + * doc/tm.texi: Adjust vector misalignment docs. + * target.def: Ditto. + * targhooks.cc (default_builtin_support_vector_misalignment): + Remove type. + * targhooks.h (default_builtin_support_vector_misalignment): + Ditto. + * tree-vect-data-refs.cc (vect_can_force_dr_alignment_p): + Set misalignment for gather/scatter and remove type. + (vect_supportable_dr_alignment): Ditto. + +2025-10-09 Sam James + + PR c++/117219 + * doc/invoke.texi (-fstrict-aliasing): Explain that type-punning + through a union in C++ is supported as a GNU extension. + +2025-10-09 Sam James + + * doc/invoke.texi: Add missing full stop. + +2025-10-09 Sam James + + PR tree-optimization/18501 + * doc/invoke.texi (-Wmaybe-uninitialized): Mention interaction with + CCP. + +2025-10-08 Antoni Boucher + + * configure: Regenerate. + +2025-10-08 Trevor Gross + + PR target/115054 + * config/i386/i386.cc (function_arg_ms_64, + function_value_ms_64): Pass and return _Float16 in vector + registers on Windows. + +2025-10-08 Richard Biener + + PR tree-optimization/110223 + PR tree-optimization/122128 + * tree-vect-patterns.cc (vect_recog_bool_pattern): Add + compensation for mixed mask/data bitwise operations. + +2025-10-08 Richard Biener + + * tree-vect-patterns.cc (integer_type_for_mask): Only + reject vect_external_defs. + +2025-10-08 Richard Biener + + * doc/tm.texi.in (JIT Language and ABI): Add menu item. + * doc/tm.texi: Re-generate. + +2025-10-08 Richard Biener + + PR tree-optimization/110223 + * tree-vect-patterns.cc (vect_recog_bool_pattern): Fix + mistakes in the store-from-mask bool pattern. Add + required mask conversions. + +2025-10-08 Richard Biener + + PR tree-optimization/105490 + * tree-vect-patterns.cc (build_mask_conversion): Move earlier. + (vect_convert_mask_for_vectype): Likewise. + (vect_recog_bool_pattern): Remove redundant truth type + construction. Add missing possibly required mask conversion. + +2025-10-08 Antoni Boucher + + PR jit/112466 + * Makefile.in (tm_jit_file_list, tm_jit_include_list, TM_JIT_H, + JIT_TARGET_DEF, JIT_TARGET_H, JIT_TARGET_OBJS): New variables. + (tm_jit.h, cs-tm_jit.h, jit/jit-target-hooks-def.h, + s-jit-target-hooks-def-h, default-jit.o): New rules. + (s-tm-texi): Also check timestamp on jit-target.def. + (generated_files): Add TM_JIT_H and jit/jit-target-hooks-def.h. + (build/genhooks.o): Also depend on JIT_TARGET_DEF. + * config.gcc (tm_jit_file, jit_target_objs, target_has_targetjitm): + New variables. + * config/i386/t-i386 (i386-jit.o): New rule. + * configure: Regenerate. + * configure.ac (tm_jit_file_list, tm_jit_include_list, + jit_target_objs): Add substitutes. + * doc/tm.texi: Regenerate. + * doc/tm.texi.in (targetjitm): Document. + (target_has_targetjitm): Document. + * genhooks.cc: Include jit/jit-target.def. + * config/default-jit.cc: New file. + * config/i386/i386-jit.cc: New file. + * config/i386/i386-jit.h: New file. + +2025-10-07 Alfie Richards + + * doc/tm.texi: Regenerate. + * doc/tm.texi.in: Add documentation for TARGET_HAS_FMV_TARGET_ATTRIBUTE. + +2025-10-07 Georg-Johann Lay + + PR target/122187 + * config/avr/avr.cc (avr_out_extr, avr_out_extr_not): + Make a local copy of the passed rtx[] operands. + +2025-10-07 Jonathan Wakely + + * config/i386/i386-features.cc + (general_scalar_chain::vector_const_cost): Fix spelling in + comment. + * ipa-prop.h (enum jump_func_type): Likewise. + * tree-vectorizer.cc (try_vectorize_loop_1): Likewise. + +2025-10-07 Robin Dapp + + PR target/121845 + * config/riscv/riscv-v.cc (shuffle_series_patterns): + Modulo indices for VLA and punt when wrapping for VLS. + +2025-10-07 Raphael Moreira Zinsly + + PR target/122124 + * config/riscv/riscv-v.cc (shuffle_slide_patterns): Check if + the second pivot is in OP1 and improve comments. + +2025-10-07 Andrew Pinski + + PR tree-optimization/121921 + * match.pd (`-(a ptrdiff b)`): Extend for a nop_convert + between the neg and ptrdiff. + +2025-10-07 Andrew Pinski + + PR tree-optimization/122083 + * tree-ssa-phiopt.cc (single_trailing_store_in_bb): Rename to ... + (trailing_store_in_bb): This and take new argument to check for + only store. + (cond_if_else_store_replacement_limited): Update to use + trailing_store_in_bb. + (cond_if_else_store_replacement): Loop until + cond_if_else_store_replacement_limited returns false. + (pass_phiopt::execute): Instead of calling cond_if_else_store_replacement_limited + once, also loop on it. + +2025-10-06 Andrew Pinski + + PR tree-optimization/122155 + * tree-ssa-phiopt.cc (cond_if_else_store_replacement_1): Don't + create a phi if the 2 rhs are the same. + +2025-10-06 Jan Hubicka + + PR middle-end/122122 + * tree-cfgcleanup.cc (tree_forwarder_block_p): Cleanup. + * tree-ssa-dce.cc (propagate_counts): New function. + (eliminate_unnecessary_stmts): Use it. + +2025-10-06 Jan Hubicka + + * params.opt (-param=auto-profile-bbs=): Add missing full stop after + description. + +2025-10-06 Andrew MacLeod + + PR tree-optimization/121206 + * value-range.cc (irange::intersect_bitmask): Always call + set_range_from_bitmask if the bitmask changes. + +2025-10-06 Sam James + + PR rtl-optimization/111619 + * doc/install.texi (Building a native compiler): Discuss STAGE1_CFLAGS. + +2025-10-06 Jennifer Schmitz + + PR target/121599 + * config/aarch64/aarch64-sve-builtins.cc + (function_expander::use_cond_insn): Use add_fixed_operand if + fallback_arg == CONST0_RTX (mode). + +2025-10-06 Richard Biener + + PR tree-optimization/122131 + * tree-vect-data-refs.cc (vect_supportable_dr_alignment): Do + not use re-align loads for gathers. + +2025-10-06 Richard Biener + + PR tree-optimization/122158 + * tree-vect-loop.cc (vect_create_epilog_for_reduction): Handle + bit-precision result. + +2025-10-06 Jakub Jelinek + + PR middle-end/122133 + * stmt.cc (resolve_asm_operand_names): Handle % and 2 letters followed + by open square. + +2025-10-06 Andrew Pinski + + PR tree-optimization/122142 + * generic-match-head.cc: Include gimple-iterator.h + and gimple-fold.h. + * gimple-fold.cc (gimple_fold_builtin_constant_p): Use + fold_before_rtl_expansion_p. + (gimple_fold_builtin_assume_aligned): Likewise. + (gimple_fold_builtin_stdarg): Likewise. + (gimple_fold_call): Likewise. + * gimple-fold.h: Include "tree-pass.h". + (fold_before_rtl_expansion_p): New function. + * match.pd: Use fold_before_rtl_expansion_p + instead of `cfun->curr_properties & PROP_last_full_fold`. + * tree-ssa-forwprop.cc (simplify_builtin_memcmp): Likewise. + (optimize_stack_restore): Likewise. + +2025-10-05 H.J. Lu + + PR target/122150 + * config/i386/i386-expand.cc (setmem_epilogue_gen_val): Duplicate + OP if its size is smaller than MODE size. + +2025-10-05 John David Anglin + + * config/pa/pa.h (FUNCTION_BOUNDARY): Set to 32. + +2025-10-05 Pan Li + + * config/riscv/autovec-opt.md (*widen_waddu_wx_): Add new + pattern to match vwaddu.wx. + +2025-10-05 Pan Li + + * match.pd: Refactor the form 1 of SAT_MUL by keyword for. + +2025-10-04 Andrew Pinski + + PR tree-optimization/122143 + * tree-ssa-forwprop.cc (pass_forwprop::execute): Restrict setting + TODO_update_address_taken only when the statement was a call before fold_stmt. + +2025-10-04 Andrew Pinski + + PR tree-optimization/122153 + * tree-ssa-phiopt.cc (cond_if_else_store_replacement_1): Handle + stores of empty constructors too. + +2025-10-04 Matteo Nicoli + + PR tree-optimization/117760 + * match.pd: Add simplifications that exploit implied values after + logical tests. + +2025-10-04 Jakub Jelinek + + PR tree-optimization/122104 + * tree-ssa-math-opts.cc (maybe_optimize_guarding_check): Call + reset_flow_sensitive_info_in_bb on bb when optimizing out the + guarding condition. + +2025-10-04 Raphael Moreira Zinsly + + PR target/122114 + * config/riscv/riscv.cc + (riscv_allocate_and_probe_stack_space): Change initial_cfa_offset + type. + +2025-10-04 Jeff Law + + PR target/122147 + * config/riscv/predicates.md (move_operand): Only allow a REG as the + operand of a SUBREG. + +2025-10-04 Zhongyao Chen + + PR target/118945 + * config/riscv/riscv.cc (riscv_prefer_agnostic_p): New function. + (riscv_tune_param): Add prefer_agnostic member. + (various tune info structures): Initialize prefer_agnostic. + * config/riscv/riscv-protos.h (riscv_prefer_agnostic_p): Add + prototype. + * config/riscv/riscv-v.cc (get_prefer_tail_policy, + get_prefer_mask_policy): Use riscv_prefer_agnostic_p. + * config/riscv/riscv-vsetvl.cc (vsetvl_info::get_demand_flags): + demand policy for agnostic when prefer_agnostic is true. + +2025-10-04 Jakub Jelinek + + PR c++/114457 + * flag-types.h (enum auto_init_type): Add AUTO_INIT_CXX26. + * tree.h (VACUOUS_INIT_LABEL_P): Define. + * gimplify.cc (is_var_need_auto_init): Renamed to ... + (var_needs_auto_init_p): ... this. Don't return true for + vars with "indeterminate" attribute. Formatting fixes. + (gimplify_decl_expr): Use var_needs_auto_init_p instead of + is_var_need_auto_init. + (emit_warn_switch_unreachable): Remove the flag_auto_var_init + special cases. + (warn_switch_unreachable_and_auto_init_r): Handle them here + by doing just returning NULL. + (last_stmt_in_scope): Don't skip just debug stmts to find + the last stmt in seq, skip for + flag_auto_var_init > AUTO_INIT_UNINITIALIZED also IFN_DEFERRED_INIT + calls. + (collect_fallthrough_labels): For + flag_auto_var_init > AUTO_INIT_UNINITIALIZED ignore + IFN_DEFERRED_INIT calls and GIMPLE_GOTOs to + VACUOUS_INIT_LABEL_P. + (should_warn_for_implicit_fallthrough): For + flag_auto_var_init > AUTO_INIT_UNINITIALIZED also skip over + IFN_DEFERRED_INIT calls. + (expand_FALLTHROUGH_r): Likewise, and handle GIMPLE_GOTOs + to VACUOUS_INIT_LABEL_P. + (gimplify_init_constructor): Use var_needs_auto_init_p instead + of is_var_need_auto_init and for flag_auto_var_init + AUTO_INIT_CXX26 don't call gimple_add_padding_init_for_auto_var. + (gimplify_target_expr): If var_needs_auto_init_p and init has + void type, call gimple_add_init_for_auto_var and for + AUTO_INIT_PATTERN also gimple_add_padding_init_for_auto_var. + * tree-ssa-uninit.cc (maybe_warn_operand): Handle loads from *this + at the start of the function with "clobber *this" attribute on the + PARM_DECL. + * ipa-split.cc (split_function): Remove "clobber *this" attribute + from the first PARM_DECL (if any). + * doc/invoke.texi (ftrivial-auto-var-init=): Adjust documentation. + +2025-10-04 Nathaniel Shead + + PR c++/117658 + * doc/invoke.texi: Document '-Wno-external-tu-local'. + +2025-10-03 David Malcolm + + Revert: + 2025-10-03 David Malcolm + + * Makefile.in (OBJS-libcommon): Add + custom-sarif-properties/digraphs.o and + custom-sarif-properties/state-graphs.o. Remove + diagnostics/state-graphs.o. + * configure: Regenerate. + * configure.ac: Add custom-sarif-properties to subdir iteration. + * custom-sarif-properties/digraphs.cc: New file. + * custom-sarif-properties/digraphs.h: New file. + * custom-sarif-properties/state-graphs.cc: New file. + * custom-sarif-properties/state-graphs.h: New file. + * diagnostics/diagnostics-selftests.cc + (run_diagnostics_selftests): Drop call of state_graphs_cc_tests. + * diagnostics/diagnostics-selftests.h (state_graphs_cc_tests): + Delete decl. + * diagnostics/digraphs.cc: Include + "custom-sarif-properties/digraphs.h". Move include of + "selftest.h" to within CHECKING_P section. + (using digraph_object): New. + (namespace properties): New. + (diagnostics::digraphs::object::get_attr): Delete. + (diagnostics::digraphs::object::set_attr): Delete. + (diagnostics::digraphs::object::set_json_attr): Delete. + (digraph_object::get_property): New definitions, for various + property types. + (digraph_object::set_property): Likewise. + (digraph_object::maybe_get_property): New. + (digraph_object::get_property_as_tristate): New. + (digraph_object::ensure_property_bag): New. + (digraph::get_graph_kind): New. + (digraph::set_graph_kind): New. + Add include of "custom-sarif-properties/state-graphs.h". + (selftest::test_simple_graph): Rewrite to use json::property + instances rather than string attribute names. + (selftest::test_property_objects): New test. + (selftest::digraphs_cc_tests): Call it. + * diagnostics/digraphs.h: Include "tristate.h". + (object::get_attr): Delete. + (object::set_attr): Delete. + (object::get_property): New decls. + (object::set_property): New decls. + (object::maybe_get_property): New. + (object::get_property_as_tristate): New. + (object::set_json_attr): Delete. + (object::ensure_property_bag): New. + (graph::get_graph_kind): New. + (graph::set_graph_kind): New. + * diagnostics/html-sink.cc + (html_generation_options::html_generation_options): Update for + field renamings. + (html_generation_options::dump): Likewise. + (html_builder::maybe_make_state_diagram): Likewise. + (html_builder::add_graph): Show SARIF and .dot src inline, if + requested. + * diagnostics/html-sink.h + (html_generation_options::m_show_state_diagrams_sarif): Rename + to... + (html_generation_options::m_show_graph_sarif): ...this. + (html_generation_options::m_show_state_diagrams_dot_src): Rename + to... + (html_generation_options::m_show_graph_dot_src0): ...this. + * diagnostics/output-spec.cc + (html_scheme_handler::maybe_handle_kv): Rename keys. + (html_scheme_handler::get_keys): Likewise. + * diagnostics/state-graphs-to-dot.cc: : Reimplement throughout to + use json::property instances found within custom_sarif_properties + throughout, rather than types in diagnostics::state_graphs. + * diagnostics/state-graphs.cc: Deleted file. + * diagnostics/state-graphs.h: Delete almost all, except decl of + diagnostics::state_graphs::make_dot_graph. + * doc/invoke.texi: Update for changes to "experimental-html" sink + keys. + * json.cc (json::object::set_string): New. + (json::object::set_integer): New. + (json::object::set_bool): New. + (json::object::set_array_of_string): New. + * json.h: Include "label-text.h". + (struct json::property): New template. + (json::string_property): New. + (json::integer_property): New. + (json::bool_property): New. + (json::json_property): New. + (using json::array_of_string_property): New. + (struct json::enum_traits): New. + (enum_json::property): New. + (json::value::dyn_cast_array): New vfunc. + (json::value::dyn_cast_integer_number): New vfunc. + (json::value::set_string): New. + (json::value::set_integer): New. + (json::value::set_bool): New. + (json::value::set_array_of_string): New. + (json::value::maybe_get_enum): New. + (json::value::set_enum): New. + (json::array::dyn_cast_array): New. + (json::integer_number::dyn_cast_integer_number): New. + (object::maybe_get_enum): New. + (object::set_enum): New. + +2025-10-03 Jeff Law + + PR rtl-optimization/121937 + * simplify-rtx.cc (simplify_context::simplify_binary_operation_1): Make + sure we've got a scalar_int_mode before calling neg_poly_int_rtx. + +2025-10-03 Andrew Pinski + + PR tree-optimization/121762 + * passes.def: Remove both pass_fold_builtin. + Swap out pass_copy_prop for pass_forwprop with + full_walk = false and last=true. + * tree-pass.h (make_pass_fold_builtins): Remove. + * tree-ssa-ccp.cc (class pass_fold_builtins): Delete. + (pass_fold_builtins::execute): Delete. + (make_pass_fold_builtins): Remove. + * doc/passes.texi (Folding built-in functions): Remove. + +2025-10-03 Andrew Pinski + + PR tree-optimization/121762 + * gimple-isel.cc (gimple_nop_atomic_bit_test_and_p): New decl. + (gimple_nop_convert): Likewise. + (convert_atomic_bit_not): Moved from tree-ssa-ccp.cc. + (optimize_atomic_bit_test_and): Likewise. + (optimize_atomic_op_fetch_cmp_0): Likewise. + (gimple_isel_builtin_call): New function. + (CASE_ATOMIC): Moved from tree-ssa-ccp.cc. + (CASE_ATOMIC_CMP0): Likewise. + (CASE_ATOMIC_BIT_TEST_AND): Likewise. + (pass_gimple_isel::execute): For calls just call gimple_isel_builtin_call. + * tree-ssa-ccp.cc (convert_atomic_bit_not): Move to gimple-isel.cc. + (gimple_nop_atomic_bit_test_and_p): Likewise. + (gimple_nop_convert): Likewise. + (optimize_atomic_bit_test_and): Likewise. + (optimize_atomic_op_fetch_cmp_0): Likewise. + (pass_fold_builtins::execute): Just call fold_stmt for internal + or normal bultin calls. + (CASE_ATOMIC): Move to gimple-isel.cc. + (CASE_ATOMIC_CMP0): Likewise. + (CASE_ATOMIC_BIT_TEST_AND): Likewise. + +2025-10-03 Andrew Pinski + + * tree-ssa-ccp.cc (CASE_ATOMIC): New defined. + (CASE_ATOMIC_CMP0): New define. + (CASE_ATOMIC_BIT_TEST_AND): New defined. + (pass_fold_builtins::execute): Use CASE_ATOMIC, CASE_ATOMIC_CMP0, + and CASE_ATOMIC_BIT_TEST_AND. + +2025-10-03 Andrew Pinski + + PR tree-optimization/121762 + * gimple-fold.cc (gimple_fold_builtin_stdarg): New function, + moved from tree-ssa-ccp.cc (optimize_stdarg_builtin). + (gimple_fold_builtin): Call gimple_fold_builtin_stdarg for + va_start, va_copy and va_end. + * tree-ssa-ccp.cc (optimize_stdarg_builtin): Remove. + (pass_fold_builtins::execute): Remove handling of + va_start, va_copy and va_end. + * tree-ssa-forwprop.cc (pass_forwprop::execute): Update + todos if fold_stmt return true if last forwprop to include + TODO_update_address_taken. + +2025-10-03 Andrew Pinski + + PR tree-optimization/121762 + * tree-ssa-ccp.cc (optimize_unreachable): Move to tree-ssa-forwprop.cc + (pass_fold_builtins::execute): Remove handling of __builtin_unreachable. + * tree-ssa-forwprop.cc (optimize_unreachable): New function from + tree-ssa-ccp.cc. Change argument to bb. Remove check on first statement + being the __builtin_unreachable since it is handled already. + (pass_forwprop::execute): Handle first statement as being __builtin_unreachable + by calling optimize_unreachable. + +2025-10-03 Andrew Pinski + + PR tree-optimization/121762 + * tree-ssa-ccp.cc (optimize_stack_restore): Move to tree-ssa-forwprop.cc. + (pass_fold_builtins::execute): Don't call optimize_stack_restore. + * tree-ssa-forwprop.cc (optimize_stack_restore): New function from + tree-ssa-ccp.cc. Return bool instead of value, use replace_call_with_value + istead of returning integer_zero_node. + (simplify_builtin_call): Call optimize_stack_restore. + +2025-10-03 Andrew Pinski + + PR tree-optimization/122033 + * tree-ssa-ccp.cc (optimize_stack_restore): Rewrite the call check. + Update comment in the front to new rules on calls. + * tree.h (fndecl_builtin_alloc_p): New function. + +2025-10-03 Andrew Pinski + + PR tree-optimization/121762 + * gimple-fold.cc (gimple_fold_call): Remove ASSUME internal function + calls when PROP_last_full_fold is set. + * tree-ssa-ccp.cc (pass_fold_builtins::execute): Handling folding + of all internal functions. + +2025-10-03 Andrew Pinski + + * tree-ssa-ccp.cc (optimize_stdarg_builtin): Mannually create the + gimple statements instead of depending on the gimplifier. + (pass_fold_builtins::execute): Handle updated call to optimize_stdarg_builtin. + +2025-10-03 Andrew Pinski + + * tree-ssa-ccp.cc (optimize_memcmp_eq): Remove. + (pass_fold_builtins::execute): Remove handling of memcmp. + * tree-ssa-forwprop.cc (simplify_builtin_memcmp): Add folding + of memcmp to memcmp_eq for PROP_last_full_fold. + +2025-10-02 David Malcolm + + * Makefile.in (OBJS-libcommon): Add + custom-sarif-properties/digraphs.o and + custom-sarif-properties/state-graphs.o. Remove + diagnostics/state-graphs.o. + * configure: Regenerate. + * configure.ac: Add custom-sarif-properties to subdir iteration. + * custom-sarif-properties/digraphs.cc: New file. + * custom-sarif-properties/digraphs.h: New file. + * custom-sarif-properties/state-graphs.cc: New file. + * custom-sarif-properties/state-graphs.h: New file. + * diagnostics/diagnostics-selftests.cc + (run_diagnostics_selftests): Drop call of state_graphs_cc_tests. + * diagnostics/diagnostics-selftests.h (state_graphs_cc_tests): + Delete decl. + * diagnostics/digraphs.cc: Include + "custom-sarif-properties/digraphs.h". Move include of + "selftest.h" to within CHECKING_P section. + (using digraph_object): New. + (namespace properties): New. + (diagnostics::digraphs::object::get_attr): Delete. + (diagnostics::digraphs::object::set_attr): Delete. + (diagnostics::digraphs::object::set_json_attr): Delete. + (digraph_object::get_property): New definitions, for various + property types. + (digraph_object::set_property): Likewise. + (digraph_object::maybe_get_property): New. + (digraph_object::get_property_as_tristate): New. + (digraph_object::ensure_property_bag): New. + (digraph::get_graph_kind): New. + (digraph::set_graph_kind): New. + Add include of "custom-sarif-properties/state-graphs.h". + (selftest::test_simple_graph): Rewrite to use json::property + instances rather than string attribute names. + (selftest::test_property_objects): New test. + (selftest::digraphs_cc_tests): Call it. + * diagnostics/digraphs.h: Include "tristate.h". + (object::get_attr): Delete. + (object::set_attr): Delete. + (object::get_property): New decls. + (object::set_property): New decls. + (object::maybe_get_property): New. + (object::get_property_as_tristate): New. + (object::set_json_attr): Delete. + (object::ensure_property_bag): New. + (graph::get_graph_kind): New. + (graph::set_graph_kind): New. + * diagnostics/html-sink.cc + (html_generation_options::html_generation_options): Update for + field renamings. + (html_generation_options::dump): Likewise. + (html_builder::maybe_make_state_diagram): Likewise. + (html_builder::add_graph): Show SARIF and .dot src inline, if + requested. + * diagnostics/html-sink.h + (html_generation_options::m_show_state_diagrams_sarif): Rename + to... + (html_generation_options::m_show_graph_sarif): ...this. + (html_generation_options::m_show_state_diagrams_dot_src): Rename + to... + (html_generation_options::m_show_graph_dot_src0): ...this. + * diagnostics/output-spec.cc + (html_scheme_handler::maybe_handle_kv): Rename keys. + (html_scheme_handler::get_keys): Likewise. + * diagnostics/state-graphs-to-dot.cc: : Reimplement throughout to + use json::property instances found within custom_sarif_properties + throughout, rather than types in diagnostics::state_graphs. + * diagnostics/state-graphs.cc: Deleted file. + * diagnostics/state-graphs.h: Delete almost all, except decl of + diagnostics::state_graphs::make_dot_graph. + * doc/invoke.texi: Update for changes to "experimental-html" sink + keys. + * json.cc (json::object::set_string): New. + (json::object::set_integer): New. + (json::object::set_bool): New. + (json::object::set_array_of_string): New. + * json.h: Include "label-text.h". + (struct json::property): New template. + (json::string_property): New. + (json::integer_property): New. + (json::bool_property): New. + (json::json_property): New. + (using json::array_of_string_property): New. + (struct json::enum_traits): New. + (enum_json::property): New. + (json::value::dyn_cast_array): New vfunc. + (json::value::dyn_cast_integer_number): New vfunc. + (json::value::set_string): New. + (json::value::set_integer): New. + (json::value::set_bool): New. + (json::value::set_array_of_string): New. + (json::value::maybe_get_enum): New. + (json::value::set_enum): New. + (json::array::dyn_cast_array): New. + (json::integer_number::dyn_cast_integer_number): New. + (object::maybe_get_enum): New. + (object::set_enum): New. + +2025-10-02 Aurelien Jarno + + PR target/121652 + * config/riscv/riscv.md (round_pattern): special case NaN input + instead of saving/restoring fflags. + +2025-10-02 David Malcolm + + * diagnostics/output-spec.cc: (scheme_handler::parse_bool_value): + Convert to... + (key_handler::parse_bool_value): ...this. + (scheme_handler::parse_enum_value): Convert to... + (key_handler::parse_enum_value): ...this. + (struct text_scheme_handler::decoded_args): Eliminate, moving + fields into class text_scheme_handler. + (text_scheme_handler::text_scheme_handler): Initialize the new + fields. + Add a "dc" param and use it to initialize m_show_color. + (struct sarif_scheme_handler::decoded_args): Eliminate, moving + fields into class sarif_scheme_handler. + (sarif_scheme_handler::sarif_scheme_handler): Initialize the new + fields. + (struct html_scheme_handler::decoded_args): Eliminate, moving + fields into class html_scheme_handler. + (html_scheme_handler::html_scheme_handler): Initialize the new + fields. + (context::report_unknown_key): Get keys from scheme rather than + passing them in. Support client keys. + (context::parse_and_make_sink): Pass dc to output_factory ctor. + (output_factory::output_factory): Pass dc to text_scheme_handler. + (output_factory::get_scheme_handler): Make return non-const. + (output_factory::make_sink): Move key-handling here, rather than + in individual sinks. + (context::handle_kv): New. + (text_scheme_handler::make_sink): Eliminate key decoding. + (text_scheme_handler::decode_kv): Convert to... + (text_scheme_handler::maybe_handle_kv): ...this... + (text_scheme_handler::get_keys): ...and this. + (sarif_scheme_handler::make_sink): Eliminate key decoding. + (sarif_scheme_handler::decode_kv): Convert to... + (sarif_scheme_handler::maybe_handle_kv): ...this... + (sarif_scheme_handler::get_keys): ...and this. + (html_scheme_handler::make_sink): Eliminate key decoding. + (html_scheme_handler::decode_kv): Convert to... + (html_scheme_handler::maybe_handle_kv): ...this... + (html_scheme_handler::get_keys): ...and this. + (struct selftest::parser_test): Add "client_keys" arg, and update + for new param ordering. + (selftest::parser_test::parse_and_make_sink): New. + (selftest::test_output_arg_parsing): Move auto-fixes to caller. + (class selftest::test_key_handler): New. + (selftest::test_client_arg_parsing): New test. + (selftest::output_spec_cc_tests): Call it. + * diagnostics/output-spec.h (class key_handler): New. + (class scheme_handler): Move here from output-spec.cc. + (context::report_unknown_key): Simplify params. + (context::handle_kv): Update params. + (context::context): Add "client_keys" param. + (context::m_client_keys): New field. + (struct dc_spec_context): Update order of params. Add + "client_keys" param. + * libgdiagnostics.cc (spec_context::spec_context): Pass nullptr + for client keys. + * opts-diagnostic.cc (opt_spec_context::opt_spec_context): + Likewise. Update for new param ordering. + +2025-10-02 Richard Biener + + * tree-vect-loop.cc (vectorizable_reduction): Do not allow + mask reductions. + +2025-10-02 Jan Hubicka + H.J. Lu + + * cfghooks.cc (merge_blocks): Fix typo in the previous change. + +2025-10-02 Jeff Law + + PR target/122051 + * config/riscv/predicates.md (pmode_reg_or_uimm5_operand): Implement + directly rather than using vector_length_operand. + +2025-10-02 H.J. Lu + + * aclocal.m4: Regenerated. + * configure: Likewise. + +2025-10-02 Richard Biener + + PR tree-optimization/122079 + * tree-ssa-pre.cc (compute_antic_aux): Re-instantiate + ANTIC_IN value pruning by the old solution. + +2025-10-02 Richard Biener + + PR tree-optimization/122079 + * tree-ssa-pre.cc (prune_clobbered_mems): Do not prune + values when the maximum expression set is involved. + +2025-10-01 Jeff Law + + PR target/122106 + * config/riscv/bitmanip.md (crc expanders): Add predicate for + polynomial argument. Drop unnecessary constraints. + +2025-10-01 Andreas Schwab + + PR target/122066 + * config/m68k/m68k.md (adddi3, subdi3): Strip POST_INC and PRE_DEC + when generating high part of the destination operand. + +2025-10-01 Jan Hubicka + + * auto-profile.cc (afdo_calculate_branch_prob): Improve dump file. + +2025-10-01 Jan Hubicka + + * auto-profile.cc (determine_scale): Break out from ... + (afdo_adjust_guessed_profile): ... here. + (scale_bb_profile): New function. + (afdo_annotate_cfg): Use it. + * params.opt (auto-profile-bbs): New parmaeter. + * doc/invoke.texi (auto-profile-bbs): Document. + +2025-10-01 Jan Hubicka + + * auto-profile.cc (afdo_unscaled_edge_count): New function based on + part of ... + (afdo_set_bb_count): ... this function; use it here. + (afdo_calculate_branch_prob): Try to determine edge counts using + phi args and goto locuses. + +2025-10-01 Jan Hubicka + + * Makefile.in (ALL_FDAS): New variable. + (ALL_HOST_BACKEND_OBJ): Use all.fda instead of cc1plus.fda + (all.fda): New target + +2025-10-01 Jan Hubicka + + * cfghooks.cc (merge_blocks): Choose more reliable or higher BB + count. + +2025-10-01 Jan Hubicka + + * predict.cc (unlikely_executed_stmt_p): Remove redundant check. + (rebuild_frequencies): Also recompute unlikely bbs when profile is + present or consistent. + +2025-10-01 Andrew MacLeod + + PR tree-optimization/120560 + * vr-values.cc (range_from_loop_direction): Use wi::ge_p rather + than wi::gt_p. + +2025-10-01 Richard Biener + + PR tree-optimization/122110 + * tree-vect-loop.cc (vectorizable_reduction): Relax restriction + to mode-precision operations. + +2025-09-30 David Malcolm + + * diagnostics/output-spec.cc (text_scheme_handler::make_sink): Use + the value of the "color" to determine if the sink's printer is + colorized. + +2025-09-30 David Malcolm + + * diagnostics/output-spec.cc: Add comments. Introduce a + "struct decoded_args" within each scheme_handler subclass, + and split out per-scheme key-value parsing from each make_sink + implementation into new per-scheme decode_kv member functions. + +2025-09-30 David Malcolm + + * diagnostics/output-spec.cc: Move class scheme_handler out from + inside class output_factory. + +2025-09-30 David Malcolm + + * diagnostics/output-spec.cc: Rename "parsed_arg" to + "scheme_and_kvs" throughout. Rename "unparsed_arg" to + "unparsed_spec" throughout, and make a member of + output_spec::context rather than passing it around. + * diagnostics/output-spec.h: Likewise. + * libgdiagnostics.cc: Likewise. + * opts-diagnostic.cc: Likewise. + +2025-09-30 Alfie Richards + + * config/aarch64/aarch64.cc (aarch64_functions_b_resolvable_from_a): New + function. + (TARGET_OPTION_FUNCTIONS_B_RESOLVABLE_FROM_A): New define. + * doc/tm.texi: Regenerate. + * doc/tm.texi.in: Add documentation for + TARGET_OPTION_FUNCTIONS_B_RESOLVABLE_FROM_A. + * multiple_target.cc (redirect_to_specific_clone): Add new optimisation + logic. + (ipa_target_clone): Remove check for TARGET_HAS_FMV_TARGET_ATTRIBUTE. + * target.def: Document new hook.. + * attribs.cc: (functions_b_resolvable_from_a) New function. + * attribs.h: (functions_b_resolvable_from_a) New function. + +2025-09-30 Jakub Jelinek + + * auto-profile.h (maybe_hot_afdo_count_p): Fix comment typos, + possiby -> possibly and ture -> true. + * gimplify.cc (build_asan_poison_call_expr): Change "of a for" + to "memory of the" in a comment. + * ipa-devirt.cc (add_type_duplicate): Fix comment typo, + mangles -> mangled. + * auto-profile.cc: Fix comment typo, -fauto-profile-inlinig + -> -fauto-profile-inlining. + (maybe_hot_afdo_count_p): Fix comment typos, possiby -> possibly + and ture -> true. + (function_instance::removed_icall_target): Fix comment typo, + Reutrn -> Return. + (function_instance::in_worklist_): Fix comment typo, Ture -> True. + (function_instance::offline): Fix comment typo, tolevel -> toplevel. + (function_instance::match): Fix comment typo, craeate_gcov -> + create_gcov. + (autofdo_source_profile::offline_external_functions): Fix comment + typos, tolevel -> toplevel and porfile -> profile. + (autofdo_source_profile::get_function_instance_by_inline_stack): Fix + comment typo, chekcing -> checking. + (struct scale): Fix comment typo, scalle -> scale. + * gimple.h (currently_expanding_gimple_stmt): Fix comment typo, + comminucating -> communicating. + * tree.h (canonical_type_used_p): Fix comment typo, ture -> true. + * tree-ssa-alias.cc (types_equal_for_same_type_for_tbaa_p): Likewise. + * ipa-profile.cc (contains_hot_call_p): Likewise. + * cfgexpand.cc (add_scope_conflicts_2): Fix comment typos, + Querry -> Query, referendd -> referenced and Querrying -> Querying. + * ipa-param-manipulation.cc (currently_expanding_gimple_stmt): Fix + comment typo, comminucating -> communicating. + * ipa-prop.cc (ipa_cst_ref_desc::refcount): Fix comment typo, + if -> is. + * tree-if-conv.cc (version_loop_for_if_conversion): Fix comment typos, + porfile -> profile and confistency -> consistency. + * fold-const.cc: Change size_int_wide in comment to size_int as + size_int_wide doesn't exit for 21 years. + +2025-09-30 Jan Hubicka + + * auto-profile.cc (function_instance::match): Sanity check + that gimple PHI has no location. + * tree-cfg.cc (assign_discriminators): Also remap locations + of gimple PHI arguments. + +2025-09-30 Jan Hubicka + + * basic-block.h (GCOV_COMPUTE_SCALE): Remove. + * ipa-profile.cc (ipa_profile_generate_summary): Use + profile-count scaling. + * sched-rgn.cc (compute_trg_info): Likewise. + +2025-09-30 Jan Hubicka + + * auto-profile.cc (stmt_loc_used_by_debug_info): New function. + (autofdo_source_profile::get_count_info): Use it. + (afdo_set_bb_count): Likewise. + (afdo_vpt_for_early_inline): Likewise. + +2025-09-30 Andre Vieira + + * gimple-lower-bitint.cc (bitint_precision_kind): Fix inconsistency in + results between first and consecutive calls to this function. + 2025-09-28 liuhongt PR target/121970 diff --git a/gcc/DATESTAMP b/gcc/DATESTAMP index c5ef3a27f88c..4f7062df3d1c 100644 --- a/gcc/DATESTAMP +++ b/gcc/DATESTAMP @@ -1 +1 @@ -20250930 +20251010 diff --git a/gcc/Makefile.in b/gcc/Makefile.in index 4503dab60372..cf1408d56e29 100644 --- a/gcc/Makefile.in +++ b/gcc/Makefile.in @@ -613,6 +613,8 @@ tm_d_file_list=@tm_d_file_list@ tm_d_include_list=@tm_d_include_list@ tm_rust_file_list=@tm_rust_file_list@ tm_rust_include_list=@tm_rust_include_list@ +tm_jit_file_list=@tm_jit_file_list@ +tm_jit_include_list=@tm_jit_include_list@ build_xm_file_list=@build_xm_file_list@ build_xm_include_list=@build_xm_include_list@ build_xm_defines=@build_xm_defines@ @@ -917,6 +919,7 @@ TCONFIG_H = tconfig.h $(xm_file_list) TM_P_H = tm_p.h $(tm_p_file_list) $(TREE_H) TM_D_H = tm_d.h $(tm_d_file_list) TM_RUST_H = tm_rust.h $(tm_rust_file_list) +TM_JIT_H = tm_jit.h $(tm_jit_file_list) GTM_H = tm.h $(tm_file_list) insn-constants.h TM_H = $(GTM_H) insn-flags.h $(OPTIONS_H) @@ -977,11 +980,13 @@ C_TARGET_DEF = c-family/c-target.def target-hooks-macros.h COMMON_TARGET_DEF = common/common-target.def target-hooks-macros.h D_TARGET_DEF = d/d-target.def target-hooks-macros.h RUST_TARGET_DEF = rust/rust-target.def target-hooks-macros.h +JIT_TARGET_DEF = jit/jit-target.def target-hooks-macros.h TARGET_H = $(TM_H) target.h $(TARGET_DEF) insn-modes.h insn-codes.h C_TARGET_H = c-family/c-target.h $(C_TARGET_DEF) COMMON_TARGET_H = common/common-target.h $(INPUT_H) $(COMMON_TARGET_DEF) D_TARGET_H = d/d-target.h $(D_TARGET_DEF) RUST_TARGET_H = rust/rust-target.h $(RUST_TARGET_DEF) +JIT_TARGET_H = jit/jit-target.h $(JIT_TARGET_DEF) MACHMODE_H = machmode.h mode-classes.def HOOKS_H = hooks.h HOSTHOOKS_DEF_H = hosthooks-def.h $(HOOKS_H) @@ -1297,6 +1302,9 @@ CXX_TARGET_OBJS=@cxx_target_objs@ # Target specific, D specific object file D_TARGET_OBJS=@d_target_objs@ +# Target specific, JIT specific object file +JIT_TARGET_OBJS=@jit_target_objs@ + # Target specific, Fortran specific object file FORTRAN_TARGET_OBJS=@fortran_target_objs@ @@ -1796,6 +1804,7 @@ OBJS = \ tree-ssa-strlen.o \ tree-ssa-structalias.o \ pta-andersen.o \ + gimple-ssa-pta-constraints.o \ tree-ssa-tail-merge.o \ tree-ssa-ter.o \ tree-ssa-threadbackward.o \ @@ -1908,6 +1917,9 @@ OBJS-libcommon-target = $(common_out_object_file) prefix.o \ # This lists all host objects for the front ends. ALL_HOST_FRONTEND_OBJS = $(foreach v,$(CONFIG_LANGUAGES),$($(v)_OBJS)) +# All auto-profile files +ALL_FDAS = $(foreach v,$(CONFIG_LANGUAGES),$($(v)_FDAS)) + ALL_HOST_BACKEND_OBJS = $(GCC_OBJS) $(OBJS) $(OBJS-libcommon) \ $(OBJS-libcommon-target) main.o c-family/cppspec.o \ $(COLLECT2_OBJS) $(EXTRA_GCC_OBJS) $(GCOV_OBJS) $(GCOV_DUMP_OBJS) \ @@ -1918,8 +1930,8 @@ ALL_HOST_BACKEND_OBJS = $(GCC_OBJS) $(OBJS) $(OBJS-libcommon) \ # is likely the most exercised during the build ifeq ($(if $(wildcard ../stage_current),$(shell cat \ ../stage_current)),stageautofeedback) -$(ALL_HOST_BACKEND_OBJS): ALL_COMPILERFLAGS += -fauto-profile=cc1plus.fda -$(ALL_HOST_BACKEND_OBJS): cc1plus.fda +$(ALL_HOST_BACKEND_OBJS): ALL_COMPILERFLAGS += -fauto-profile=all.fda +$(ALL_HOST_BACKEND_OBJS): all.fda endif # This lists all host object files, whether they are included in this @@ -2102,6 +2114,7 @@ tm.h: cs-tm.h ; @true tm_p.h: cs-tm_p.h ; @true tm_d.h: cs-tm_d.h ; @true tm_rust.h: cs-tm_rust.h ; @true +tm_jit.h: cs-tm_jit.h ; @true cs-config.h: Makefile TARGET_CPU_DEFAULT="" \ @@ -2141,6 +2154,11 @@ cs-tm_rust.h: Makefile HEADERS="$(tm_rust_include_list)" DEFINES="" \ $(SHELL) $(srcdir)/mkconfig.sh tm_rust.h +cs-tm_jit.h: Makefile + TARGET_CPU_DEFAULT="" \ + HEADERS="$(tm_jit_include_list)" DEFINES="" \ + $(SHELL) $(srcdir)/mkconfig.sh tm_jit.h + # Don't automatically run autoconf, since configure.ac might be accidentally # newer than configure. Also, this writes into the source directory which # might be on a read-only file system. If configured for maintainer mode @@ -2608,6 +2626,12 @@ default-d.o: config/default-d.cc $(COMPILE) $< $(POSTCOMPILE) +# Files used by the JIT language front end. + +default-jit.o: config/default-jit.cc + $(COMPILE) $< + $(POSTCOMPILE) + # Files used by the Rust language front end. default-rust.o: config/default-rust.cc @@ -2960,6 +2984,15 @@ s-rust-target-hooks-def-h: build/genhooks$(build_exeext) rust/rust-target-hooks-def.h $(STAMP) s-rust-target-hooks-def-h +jit/jit-target-hooks-def.h: s-jit-target-hooks-def-h; @true + +s-jit-target-hooks-def-h: build/genhooks$(build_exeext) + $(RUN_GEN) build/genhooks$(build_exeext) "JIT Target Hook" \ + > tmp-jit-target-hooks-def.h + $(SHELL) $(srcdir)/../move-if-change tmp-jit-target-hooks-def.h \ + jit/jit-target-hooks-def.h + $(STAMP) s-jit-target-hooks-def-h + # check if someone mistakenly only changed tm.texi. # We use a different pathname here to avoid a circular dependency. s-tm-texi: $(srcdir)/doc/../doc/tm.texi @@ -3157,8 +3190,8 @@ s-gtype: $(EXTRA_GTYPE_DEPS) build/gengtype$(build_exeext) \ -r gtype.state $(STAMP) s-gtype -generated_files = config.h tm.h $(TM_P_H) $(TM_D_H) $(TM_H) multilib.h \ - $(simple_generated_h) specs.h \ +generated_files = config.h tm.h $(TM_P_H) $(TM_D_H) $(TM_JIT_H) $(TM_H) \ + multilib.h $(simple_generated_h) specs.h \ tree-check.h genrtl.h insn-modes.h insn-modes-inline.h \ tm-preds.h tm-constrs.h \ $(ALL_GTFILES_H) gtype-desc.cc gtype-desc.h version.h \ @@ -3169,6 +3202,7 @@ generated_files = config.h tm.h $(TM_P_H) $(TM_D_H) $(TM_H) multilib.h \ c-family/c-target-hooks-def.h d/d-target-hooks-def.h \ $(TM_RUST_H) rust/rust-target-hooks-def.h \ case-cfn-macros.h \ + jit/jit-target-hooks-def.h case-cfn-macros.h \ cfn-operators.pd omp-device-properties.h # @@ -3302,8 +3336,8 @@ build/genrecog.o : genrecog.cc $(RTL_BASE_H) $(BCONFIG_H) $(SYSTEM_H) \ $(CORETYPES_H) $(GTM_H) errors.h $(READ_MD_H) $(GENSUPPORT_H) \ $(HASH_TABLE_H) inchash.h build/genhooks.o : genhooks.cc $(TARGET_DEF) $(C_TARGET_DEF) \ - $(COMMON_TARGET_DEF) $(D_TARGET_DEF) $(RUST_TARGET_DEF) $(BCONFIG_H) \ - $(SYSTEM_H) errors.h + $(COMMON_TARGET_DEF) $(D_TARGET_DEF) $(RUST_TARGET_DEF) $(JIT_TARGET_DEF) \ + $(BCONFIG_H) $(SYSTEM_H) errors.h build/genmddump.o : genmddump.cc $(RTL_BASE_H) $(BCONFIG_H) $(SYSTEM_H) \ $(CORETYPES_H) $(GTM_H) errors.h $(READ_MD_H) $(GENSUPPORT_H) build/genmatch.o : genmatch.cc $(BCONFIG_H) $(SYSTEM_H) $(CORETYPES_H) \ @@ -4744,6 +4778,9 @@ paranoia.o: $(srcdir)/../contrib/paranoia.cc $(CONFIG_H) $(SYSTEM_H) $(TREE_H) paranoia: paranoia.o real.o $(LIBIBERTY) g++ -o $@ paranoia.o real.o $(LIBIBERTY) +all.fda: $(ALL_FDAS) + $(PROFILE_MERGER) $(ALL_FDAS) --output_file all.fda -gcov_version 2 + # These exist for maintenance purposes. CTAGS=@CTAGS@ diff --git a/gcc/aclocal.m4 b/gcc/aclocal.m4 index 762e9490b6a8..e44fc5fb2ab6 100644 --- a/gcc/aclocal.m4 +++ b/gcc/aclocal.m4 @@ -69,6 +69,7 @@ m4_include([../ltversion.m4]) m4_include([../lt~obsolete.m4]) m4_include([../config/acx.m4]) m4_include([../config/cet.m4]) +m4_include([../config/clang-plugin.m4]) m4_include([../config/codeset.m4]) m4_include([../config/depstand.m4]) m4_include([../config/dfp.m4]) diff --git a/gcc/ada/ChangeLog b/gcc/ada/ChangeLog index 16653d21e55b..08d714855aba 100644 --- a/gcc/ada/ChangeLog +++ b/gcc/ada/ChangeLog @@ -1,3 +1,73 @@ +2025-10-07 Eric Botcazou + + Revert: + 2025-10-05 Eric Botcazou + + PR ada/118343 + * Makefile.rtl (LLVM_BUILD): Delete. + +2025-10-06 Marc Poulhiès + Éric Botcazou + + * gcc-interface/decl.cc (get_extended_unconstrained_array): Handle + array subtype. + +2025-10-06 Eric Botcazou + + * gcc-interface/utils.cc (convert): Also extract the _Parent field + to implement upcasting in the case where only the sizes match. + +2025-10-06 Marc Poulhiès + + * gcc-interface/trans.cc (Attribute_to_gnu): Handle + extended access. + +2025-10-06 Ronan Desplanques + + * fmap.adb (File_Mapping, Path_Mapping): Fix instantiations. + (Add_To_File_Map): Use Table.Table.Append. + +2025-10-06 Ronan Desplanques + + * fmap.ads (Add_Forbidden_File_Name): Remove obsolete code. + * fmap.adb (Forbidden_Names, Add_Forbidden_File_Name, + Mapped_Path_Name, Reset_Tables): Remove obsolete code. + +2025-10-06 Tonu Naks + + * doc/gnat_ugn/building_executable_programs_with_gnat.rst: refine + description of -gnatwr + * gnat_ugn.texi: Regenerate. + +2025-10-05 Franck Behaghel + + PR ada/110314 + * sem_ch4.adb (Analyze_Allocator): Add call to New_Copy_Tree. + +2025-10-05 Eric Botcazou + + PR ada/112446 + * usage.adb (Usage): Add 'z' to the list of 'g' style. + +2025-10-05 Eric Botcazou + + PR ada/118343 + * Makefile.rtl (LLVM_BUILD): Delete. + +2025-10-04 Eric Botcazou + + PR ada/64869 + * sem_ch7.adb (Install_Private_Declarations): Also propagate the + Current_Use_Clause from partial to full view. + (Uninstall_Declarations): Extend implementation of RM 8.4(8.1/3) + subclause to all primitive subprograms. + +2025-09-30 Eric Botcazou + + PR ada/117517 + * sem_attr.adb (Resolve_Attribute) : Try to + resolve the reducer first. Fix casing of error message. + 2025-09-29 Tonu Naks * doc/gnat_rm/implementation_advice.rst: PolyORB diff --git a/gcc/ada/doc/gnat_ugn/building_executable_programs_with_gnat.rst b/gcc/ada/doc/gnat_ugn/building_executable_programs_with_gnat.rst index 80f81a87ffb9..9893c5b77276 100644 --- a/gcc/ada/doc/gnat_ugn/building_executable_programs_with_gnat.rst +++ b/gcc/ada/doc/gnat_ugn/building_executable_programs_with_gnat.rst @@ -3755,7 +3755,7 @@ of the pragma in the :title:`GNAT_Reference_manual`). * Assignment of an item to itself. - * Type conversion that converts an expression to its own type. + * Type conversion that converts an expression to its own subtype. * Use of the attribute ``Base`` where ``typ'Base`` is the same as ``typ``. diff --git a/gcc/ada/fmap.adb b/gcc/ada/fmap.adb index 4ca4f2330875..4f20231365dd 100644 --- a/gcc/ada/fmap.adb +++ b/gcc/ada/fmap.adb @@ -58,7 +58,7 @@ package body Fmap is package File_Mapping is new Table.Table ( Table_Component_Type => Mapping, Table_Index_Type => Int, - Table_Low_Bound => 0, + Table_Low_Bound => 1, Table_Initial => 1_000, Table_Increment => 1_000, Table_Name => "Fmap.File_Mapping"); @@ -67,7 +67,7 @@ package body Fmap is package Path_Mapping is new Table.Table ( Table_Component_Type => Mapping, Table_Index_Type => Int, - Table_Low_Bound => 0, + Table_Low_Bound => 1, Table_Initial => 1_000, Table_Increment => 1_000, Table_Name => "Fmap.Path_Mapping"); @@ -106,23 +106,6 @@ package body Fmap is Last_In_Table : Int := 0; - package Forbidden_Names is new GNAT.HTable.Simple_HTable ( - Header_Num => Header_Num, - Element => Boolean, - No_Element => False, - Key => File_Name_Type, - Hash => Hash, - Equal => "="); - - ----------------------------- - -- Add_Forbidden_File_Name -- - ----------------------------- - - procedure Add_Forbidden_File_Name (Name : File_Name_Type) is - begin - Forbidden_Names.Set (Name, True); - end Add_Forbidden_File_Name; - --------------------- -- Add_To_File_Map -- --------------------- @@ -138,19 +121,15 @@ package body Fmap is if Unit_Entry = No_Entry or else File_Mapping.Table (Unit_Entry).Fname /= File_Name then - File_Mapping.Increment_Last; + File_Mapping.Append ((Uname => Unit_Name, Fname => File_Name)); Unit_Hash_Table.Set (Unit_Name, File_Mapping.Last); - File_Mapping.Table (File_Mapping.Last) := - (Uname => Unit_Name, Fname => File_Name); end if; if File_Entry = No_Entry or else Path_Mapping.Table (File_Entry).Fname /= Path_Name then - Path_Mapping.Increment_Last; + Path_Mapping.Append ((Uname => Unit_Name, Fname => Path_Name)); File_Hash_Table.Set (File_Name, Path_Mapping.Last); - Path_Mapping.Table (Path_Mapping.Last) := - (Uname => Unit_Name, Fname => Path_Name); end if; end Add_To_File_Map; @@ -401,10 +380,6 @@ package body Fmap is Index : Int := No_Entry; begin - if Forbidden_Names.Get (File) then - return Error_File_Name; - end if; - Index := File_Hash_Table.Get (File); if Index = No_Entry then @@ -424,7 +399,6 @@ package body Fmap is Path_Mapping.Init; Unit_Hash_Table.Reset; File_Hash_Table.Reset; - Forbidden_Names.Reset; Last_In_Table := 0; end Reset_Tables; diff --git a/gcc/ada/fmap.ads b/gcc/ada/fmap.ads index 9fb77d8d5453..02f45882a037 100644 --- a/gcc/ada/fmap.ads +++ b/gcc/ada/fmap.ads @@ -70,9 +70,4 @@ package Fmap is procedure Reset_Tables; -- Initialize all the internal data structures - procedure Add_Forbidden_File_Name (Name : File_Name_Type); - -- Indicate that a source file name is forbidden. This is used when there - -- are excluded sources in projects (attributes Excluded_Source_Files or - -- Locally_Removed_Files). - end Fmap; diff --git a/gcc/ada/gcc-interface/decl.cc b/gcc/ada/gcc-interface/decl.cc index 9ade3fd8c4e9..7ebd43211953 100644 --- a/gcc/ada/gcc-interface/decl.cc +++ b/gcc/ada/gcc-interface/decl.cc @@ -5310,6 +5310,10 @@ get_extended_unconstrained_array (Entity_Id gnat_entity, tree gnu_type) gcc_assert (Is_Array_Type (gnat_entity) && TREE_CODE (gnu_type) == UNCONSTRAINED_ARRAY_TYPE); + + if (Ekind (gnat_entity) == E_Array_Subtype) + return get_extended_unconstrained_array (Etype (gnat_entity), gnu_type); + tree gnu_extended_type = TYPE_EXTENDED_UNCONSTRAINED_ARRAY (gnu_type); /* Building the extended type is achieved by translating the array type diff --git a/gcc/ada/gcc-interface/trans.cc b/gcc/ada/gcc-interface/trans.cc index e80002e31113..cdbd4828c825 100644 --- a/gcc/ada/gcc-interface/trans.cc +++ b/gcc/ada/gcc-interface/trans.cc @@ -1937,12 +1937,17 @@ Attribute_to_gnu (Node_Id gnat_node, tree *gnu_result_type_p, tree gnu_ptr = gnu_prefix; tree gnu_obj_type; - gnu_result_type = get_unpadded_type (Etype (gnat_node)); - - /* If this is fat pointer, the object must have been allocated with the - template in front of the array. So compute the template address; do - it by converting to a thin pointer. */ - if (TYPE_IS_FAT_POINTER_P (TREE_TYPE (gnu_ptr))) + if (Is_Extended_Access_Type (Etype (Prefix (gnat_node))) + && !Is_Constrained (Etype (gnat_node))) + gnu_result_type = get_unpadded_extended_type (Etype (gnat_node)); + else + gnu_result_type = get_unpadded_type (Etype (gnat_node)); + + /* If this is fat or extended pointer, the object must have been + allocated with the template in front of the array. So compute the + template address; do it by converting to a thin pointer. */ + if (TYPE_IS_FAT_POINTER_P (TREE_TYPE (gnu_ptr)) + || TYPE_IS_EXTENDED_POINTER_P (TREE_TYPE (gnu_ptr))) gnu_ptr = convert (build_pointer_type (TYPE_OBJECT_RECORD_TYPE diff --git a/gcc/ada/gcc-interface/utils.cc b/gcc/ada/gcc-interface/utils.cc index eff58b107519..f176ca9eb65f 100644 --- a/gcc/ada/gcc-interface/utils.cc +++ b/gcc/ada/gcc-interface/utils.cc @@ -5343,10 +5343,20 @@ convert (tree type, tree expr) && !type_annotate_only) { tree child_etype = etype; + /* Loop through the nested _Parent fields until we find one with either + directly the right type (simple record case), or only the right size + (discriminated record case), and extract it to be the new expression. + Note that build_component_ref will automatically build the chain of + COMPONENT_REFs in the case where it is not the immediate parent. */ do { tree field = TYPE_FIELDS (child_etype); - if (DECL_NAME (field) == parent_name_id && TREE_TYPE (field) == type) - return build_component_ref (expr, field, false); + if (DECL_NAME (field) == parent_name_id) + { + if (TREE_TYPE (field) == type) + return build_component_ref (expr, field, false); + if (operand_equal_p (DECL_SIZE (field), TYPE_SIZE (type), 0)) + return convert (type, build_component_ref (expr, field, false)); + } child_etype = TREE_TYPE (field); } while (TREE_CODE (child_etype) == RECORD_TYPE); } diff --git a/gcc/ada/gnat_ugn.texi b/gcc/ada/gnat_ugn.texi index c92aaadd3b4c..86b2cbc5d3f7 100644 --- a/gcc/ada/gnat_ugn.texi +++ b/gcc/ada/gnat_ugn.texi @@ -19,7 +19,7 @@ @copying @quotation -GNAT User's Guide for Native Platforms , Sep 29, 2025 +GNAT User's Guide for Native Platforms , Oct 06, 2025 AdaCore @@ -12181,7 +12181,7 @@ is the current list of constructs regarded as redundant: Assignment of an item to itself. @item -Type conversion that converts an expression to its own type. +Type conversion that converts an expression to its own subtype. @item Use of the attribute @code{Base} where @code{typ'Base} is the same @@ -30333,8 +30333,8 @@ to permit their use in free software. @printindex ge -@anchor{d2}@w{ } @anchor{gnat_ugn/gnat_utility_programs switches-related-to-project-files}@w{ } +@anchor{d2}@w{ } @c %**end of body @bye diff --git a/gcc/ada/sem_ch4.adb b/gcc/ada/sem_ch4.adb index 61a53f56a98c..5704bf142c84 100644 --- a/gcc/ada/sem_ch4.adb +++ b/gcc/ada/sem_ch4.adb @@ -630,7 +630,8 @@ package body Sem_Ch4 is begin while Present (Discr) loop - Append (Discriminant_Default_Value (Discr), Constr); + Append_To (Constr, + New_Copy_Tree (Discriminant_Default_Value (Discr))); Next_Discriminant (Discr); end loop; diff --git a/gcc/ada/sem_ch7.adb b/gcc/ada/sem_ch7.adb index 42abc894a296..1d838e24bf48 100644 --- a/gcc/ada/sem_ch7.adb +++ b/gcc/ada/sem_ch7.adb @@ -2521,11 +2521,13 @@ package body Sem_Ch7 is and then Scope (Full_View (Id)) = Scope (Id) and then Ekind (Full_View (Id)) /= E_Incomplete_Type then + Full := Full_View (Id); + -- If there is a use-type clause on the private type, set the full -- view accordingly. - Set_In_Use (Full_View (Id), In_Use (Id)); - Full := Full_View (Id); + Set_In_Use (Full, In_Use (Id)); + Set_Current_Use_Clause (Full, Current_Use_Clause (Id)); if Is_Private_Base_Type (Full) and then Has_Private_Declaration (Full) @@ -2893,7 +2895,12 @@ package body Sem_Ch7 is -- When compiling a child unit this needs to be done recursively. function Type_In_Use (T : Entity_Id) return Boolean; - -- Check whether type or base type appear in an active use_type clause + -- Check whether type T is declared in P and appears in an active + -- use_type clause. + + function Type_Of_Primitive_In_Use_All (Id : Entity_Id) return Boolean; + -- Check whether the profile of primitive subprogram Id mentions a type + -- declared in P that appears in an active use-all-type clause. ------------------------------ -- Preserve_Full_Attributes -- @@ -3058,11 +3065,86 @@ package body Sem_Ch7 is ----------------- function Type_In_Use (T : Entity_Id) return Boolean is + BT : constant Entity_Id := Base_Type (T); begin - return Scope (Base_Type (T)) = P - and then (In_Use (T) or else In_Use (Base_Type (T))); + return Scope (BT) = P and then (In_Use (T) or else In_Use (BT)); end Type_In_Use; + ---------------------------------- + -- Type_Of_Primitive_In_Use_All -- + ---------------------------------- + + function Type_Of_Primitive_In_Use_All (Id : Entity_Id) return Boolean is + function Type_In_Use_All (T : Entity_Id) return Boolean; + -- Check whether type T is declared in P and appears in an active + -- use-all-type clause. + + --------------------- + -- Type_In_Use_All -- + --------------------- + + function Type_In_Use_All (T : Entity_Id) return Boolean is + begin + return Type_In_Use (T) + and then Nkind (Current_Use_Clause (T)) = N_Use_Type_Clause + and then All_Present (Current_Use_Clause (T)); + end Type_In_Use_All; + + -- Local variables + + F : Node_Id; + + -- Start of processing for Type_Of_Primitive_In_Use_All + + begin + -- The use-all-type clauses were introduced in Ada 2005 + + if Ada_Version <= Ada_95 then + return False; + end if; + + -- For enumeration literals, check type + + if Ekind (Id) = E_Enumeration_Literal then + return Type_In_Use_All (Etype (Id)); + end if; + + -- For functions, check return type + + if Ekind (Id) = E_Function then + declare + Typ : constant Entity_Id := + (if Ekind (Etype (Id)) = E_Anonymous_Access_Type + then Designated_Type (Etype (Id)) + else Etype (Id)); + begin + if Type_In_Use_All (Typ) then + return True; + end if; + end; + end if; + + -- For all subprograms, check formals + + F := First_Formal (Id); + while Present (F) loop + declare + Typ : constant Entity_Id := + (if Ekind (Etype (F)) = E_Anonymous_Access_Type + then Designated_Type (Etype (F)) + else Etype (F)); + begin + if Type_In_Use_All (Typ) then + return True; + end if; + end; + + Next_Formal (F); + end loop; + + return False; + end Type_Of_Primitive_In_Use_All; + -- Start of processing for Uninstall_Declarations begin @@ -3120,13 +3202,13 @@ package body Sem_Ch7 is elsif No (Etype (Id)) and then Serious_Errors_Detected /= 0 then null; - -- We need to avoid incorrectly marking enumeration literals as - -- non-visible when a visible use-all-type clause is in effect. + -- RM 8.4(8.1/3): Each primitive subprogram of T, including each + -- enumeration literal (if any), is potentially use-visible if T + -- is named in an active use-all-type clause. - elsif Type_In_Use (Etype (Id)) - and then Nkind (Current_Use_Clause (Etype (Id))) = - N_Use_Type_Clause - and then All_Present (Current_Use_Clause (Etype (Id))) + elsif (Ekind (Id) = E_Enumeration_Literal + or else (Is_Subprogram (Id) and then Is_Primitive (Id))) + and then Type_Of_Primitive_In_Use_All (Id) then null; diff --git a/gcc/ada/usage.adb b/gcc/ada/usage.adb index e59f32448d17..bf8417a92c85 100644 --- a/gcc/ada/usage.adb +++ b/gcc/ada/usage.adb @@ -674,7 +674,7 @@ begin Write_Line (" D check declared identifiers in mixed case"); Write_Line (" e check end/exit labels present"); Write_Line (" f check no form feeds/vertical tabs in source"); - Write_Line (" g check standard GNAT style rules, same as ydISux"); + Write_Line (" g check GNAT style rules, same as ydISuxz"); Write_Line (" h check no horizontal tabs in source"); Write_Line (" i check if-then layout"); Write_Line (" I check mode in"); diff --git a/gcc/analyzer/ChangeLog b/gcc/analyzer/ChangeLog index 5e8a01c54c2e..a613dc563a31 100644 --- a/gcc/analyzer/ChangeLog +++ b/gcc/analyzer/ChangeLog @@ -1,3 +1,142 @@ +2025-10-09 David Malcolm + + * access-diagram.cc: Update for renaming of fields of binding_key. + * ana-state-to-diagnostic-state.cc: Likewise. + * bounds-checking.cc: Likewise. Add store_manager param. + * call-summary.cc: Likewise. + * diagnostic-manager.cc: Drop includes of "basic-block.h" and + "gimple.h". + * engine.cc: Likewise. + * infinite-recursion.cc: Update for renaming of fields of + binding_key. + * kf.cc: Pass store_manager to mark_as_escaped. + * program-state.cc: Update for renaming of fields of binding_key. + * region-model-asm.cc: Pass store manager to + get_or_create_cluster. + * region-model-reachability.cc: Likewise. Update for renaming of + fields of binding_key. + * region-model.cc: Likewise. + (struct bad_pointer_finder): Drop. + (region_model::poison_any_pointers_to_descendents): Implement + iteration directly, rather than using store::for_each_binding. + Drop return value. + (selftest::test_struct): Set field in order y then x. Verify + that iteration yields bindings in order x then y. + * region-model.h + (region_model::poison_any_pointers_to_descendents): Drop return + value. + * region.cc: Pass store manager to get_or_create_cluster. + * store.cc (binding_map::const_iterator::operator==): New. + (binding_map::const_iterator::operator++): New. + (binding_map::const_iterator::operator*): New. + (binding_map::iterator::operator==): New. + (binding_map::iterator::operator++): New. + (binding_map::iterator::operator*): New. + (binding_map::binding_map): Reimplement. + (binding_map::operator=): Reimplement. + (binding_map::operator==): Reimplement. + (binding_map::hash): Reimplement. + (binding_map::get): Reimplement. + (binding_map::put): Reimplement. + (binding_map::overwrite): New. + (binding_map::remove): New. + (binding_map::begin): New. + (binding_map::end): New. + (binding_map::elements): New. + (binding_map::dump_to_pp): Reimplement. + (binding_map::to_json): Iterate over *this directly; drop sort. + (binding_map::add_to_tree_widget): Likewise. + (binding_map::cmp): Reimplement. + (binding_map::get_overlapping_bindings): Update for field + renamings. + (binding_cluster::binding_cluster): Add store_mgr param. + (binding_cluster::validate): Update for field renamings. + (binding_cluster::bind_compound_sval): Likewise. + (binding_cluster::purge_state_involving): Likewise. + (binding_cluster::maybe_get_compound_binding): Likewise. Add + store_mgr param. + (binding_cluster::can_merge_p): Likewise. Update for new + implementation. + (binding_cluster::make_unknown_relative_to): Likewise. + (binding_cluster::on_unknown_fncall): Likewise. + (binding_cluster::on_asm): Likewise. + (binding_cluster::get_representative_path_vars): Likewise. + (store::set_value): Likewise. + (store::on_maybe_live_values): Pass around store_manager. + (store::fill_region): Likewise. + (store::mark_region_as_unknown): Likewise. + (store::get_or_create_cluster): Likewise. + (store::can_merge_p): Likewise. + (store::mark_as_escaped): Likewise. + (store::canonicalize): Update for field renamings. + (store::loop_replay_fixup): Likewise. Pass around store_manager. + (store::replay_call_summary_cluster): Likewise. + (selftest::test_binding_map_ops): New. + (selftest::analyzer_store_cc_tests): Call it. + * store.h (class binding_map): Reimplement. + (binding_map::map_t): Drop. + (struct binding_map::symbolic_binding): New. + (binding_map::concrete_bindings_t): New. + (binding_map::symbolic_bindings_t): New. + (struct binding_map::bindings_pair): New. + (class binding_map::const_iterator): New. + (class binding_map::iterator): New. + (binding_map::get): Reimplement. + (binding_map::overwrite): New decl. + (binding_map::remove): Reimplement. + (binding_map::clear): Reimplement. + (binding_map::put): Reimplement. + (binding_map::empty_p): Reimplement. + (binding_map::begin): Reimplement. + (binding_map::end): Reimplement. + (binding_map::elements): Reimplement. + (binding_map::m_map): Drop field. + (binding_map::m_store_mgr): New field. + (binding_map::m_concrete): New field. + (binding_map::m_symbolic): New field. + (BindingVisitor): Drop. + (binding_cluster::map_t): Drop. + (binding_cluster::iterator_t): Reimplement. + (binding_cluster::const_iterator_t): New. + (binding_cluster::binding_cluster): Add store_mgr param. + (binding_cluster::for_each_value): Reimplement. + (binding_cluster::empty_p): Reimplement. + (binding_cluster::for_each_binding): Drop. + (binding_cluster::begin): Split into const/non-const overloads. + (binding_cluster::get_map): Add non-const overload. + (store::get_or_create_cluster): Add store_mgr param. + (store::mark_as_escaped): Likewise. + (store::for_each_binding): Drop. + (store::on_maybe_live_values): Add store_mgr param. + * svalue.cc (compound_svalue::compound_svalue): Reimplement. + (compound_svalue::accept): Likewise. + (compound_svalue::calc_complexity): Likewise. + (compound_svalue::maybe_fold_bits_within): Likewise. + * svalue.h (compound_svalue::const_iterator_t): New. + (compound_svalue::begin): Split into const/non-const overloads. + (compound_svalue::end): Likewise. + +2025-10-03 David Malcolm + + Revert: + 2025-10-03 David Malcolm + + * ana-state-to-diagnostic-state.cc: Reimplement throughout to use + json::property instances found within custom_sarif_properties + throughout, rather than types in diagnostics::state_graphs. + * ana-state-to-diagnostic-state.h: Likewise. + * checker-event.cc: Likewise. + * sm-malloc.cc: Likewise. + +2025-10-02 David Malcolm + + * ana-state-to-diagnostic-state.cc: Reimplement throughout to use + json::property instances found within custom_sarif_properties + throughout, rather than types in diagnostics::state_graphs. + * ana-state-to-diagnostic-state.h: Likewise. + * checker-event.cc: Likewise. + * sm-malloc.cc: Likewise. + 2025-09-15 Alexandre Oliva * kf.cc (register_known_functions): Add __get_errno_ptr. diff --git a/gcc/analyzer/access-diagram.cc b/gcc/analyzer/access-diagram.cc index 166be08f1c28..6e301b9132b8 100644 --- a/gcc/analyzer/access-diagram.cc +++ b/gcc/analyzer/access-diagram.cc @@ -1216,8 +1216,8 @@ class compound_svalue_spatial_item : public svalue_spatial_item auto_vec binding_keys; for (auto iter : map) { - const binding_key *key = iter.first; - const svalue *bound_sval = iter.second; + const binding_key *key = iter.m_key; + const svalue *bound_sval = iter.m_sval; if (const concrete_binding *concrete_key = key->dyn_cast_concrete_binding ()) { diff --git a/gcc/analyzer/ana-state-to-diagnostic-state.cc b/gcc/analyzer/ana-state-to-diagnostic-state.cc index 996538c37852..25e66a0e5410 100644 --- a/gcc/analyzer/ana-state-to-diagnostic-state.cc +++ b/gcc/analyzer/ana-state-to-diagnostic-state.cc @@ -86,7 +86,7 @@ analyzer_state_graph::analyzer_state_graph (const program_state &state, for (auto cluster_iter : *state.m_region_model->get_store ()) for (auto binding_iter : *cluster_iter.second) { - const svalue *svalue = binding_iter.second; + const svalue *svalue = binding_iter.m_sval; if (const region *reg = svalue->maybe_get_region ()) if (svalue->get_type () && !reg->get_type ()) { @@ -417,8 +417,8 @@ create_state_nodes_for_binding_cluster (const binding_cluster &cluster, concrete_bindings_t conc_bindings; for (auto iter : cluster) { - const binding_key *key = iter.first; - const svalue *svalue = iter.second; + const binding_key *key = iter.m_key; + const svalue *svalue = iter.m_sval; if (auto conc_key = key->dyn_cast_concrete_binding ()) conc_bindings[conc_key->get_bit_range ()] = svalue; if (const region *reg = svalue->maybe_get_region ()) diff --git a/gcc/analyzer/bounds-checking.cc b/gcc/analyzer/bounds-checking.cc index 921ad16307e9..7c51ca27bc5b 100644 --- a/gcc/analyzer/bounds-checking.cc +++ b/gcc/analyzer/bounds-checking.cc @@ -1334,11 +1334,11 @@ strip_types (const svalue *sval, case SK_COMPOUND: { const compound_svalue *compound_sval = (const compound_svalue *)sval; - binding_map typeless_map; + binding_map typeless_map (*mgr.get_store_manager ()); for (auto iter : compound_sval->get_map ()) { - const binding_key *key = iter.first; - const svalue *bound_sval = iter.second; + const binding_key *key = iter.m_key; + const svalue *bound_sval = iter.m_sval; typeless_map.put (key, strip_types (bound_sval, mgr)); } return mgr.get_or_create_compound_svalue (NULL_TREE, typeless_map); diff --git a/gcc/analyzer/call-summary.cc b/gcc/analyzer/call-summary.cc index a094cbab87f0..14ff560b23a1 100644 --- a/gcc/analyzer/call-summary.cc +++ b/gcc/analyzer/call-summary.cc @@ -422,10 +422,10 @@ call_summary_replay::convert_svalue_from_summary_1 (const svalue *summary_sval) = as_a (summary_sval); region_model_manager *mgr = get_manager (); store_manager *store_mgr = mgr->get_store_manager (); - binding_map caller_map; + binding_map caller_map (*store_mgr); auto_vec summary_keys; for (auto kv : *compound_summary_sval) - summary_keys.safe_push (kv.first); + summary_keys.safe_push (kv.m_key); summary_keys.qsort (binding_key::cmp_ptrs); for (auto key : summary_keys) { @@ -447,8 +447,8 @@ call_summary_replay::convert_svalue_from_summary_1 (const svalue *summary_sval) for (auto inner_kv : *inner_compound_sval) { // These should already be mapped to the caller. - const binding_key *inner_key = inner_kv.first; - const svalue *inner_sval = inner_kv.second; + const binding_key *inner_key = inner_kv.m_key; + const svalue *inner_sval = inner_kv.m_sval; gcc_assert (inner_key->concrete_p ()); const concrete_binding *concrete_key = as_a (inner_key); diff --git a/gcc/analyzer/diagnostic-manager.cc b/gcc/analyzer/diagnostic-manager.cc index 88f72d17b03b..d3ed085b7129 100644 --- a/gcc/analyzer/diagnostic-manager.cc +++ b/gcc/analyzer/diagnostic-manager.cc @@ -21,8 +21,6 @@ along with GCC; see the file COPYING3. If not see #include "analyzer/common.h" #include "cfg.h" -#include "basic-block.h" -#include "gimple.h" #include "gimple-pretty-print.h" #include "gimple-iterator.h" #include "inlining-iterator.h" diff --git a/gcc/analyzer/engine.cc b/gcc/analyzer/engine.cc index 745ef7e52c83..9d22950d79b1 100644 --- a/gcc/analyzer/engine.cc +++ b/gcc/analyzer/engine.cc @@ -23,9 +23,7 @@ along with GCC; see the file COPYING3. If not see #include #include "cfg.h" -#include "basic-block.h" #include "gcc-rich-location.h" -#include "gimple.h" #include "gimple-iterator.h" #include "gimple-pretty-print.h" #include "cgraph.h" diff --git a/gcc/analyzer/infinite-recursion.cc b/gcc/analyzer/infinite-recursion.cc index 960b4872ee60..cde3016b4449 100644 --- a/gcc/analyzer/infinite-recursion.cc +++ b/gcc/analyzer/infinite-recursion.cc @@ -401,7 +401,7 @@ contains_unknown_p (const svalue *sval) if (const compound_svalue *compound_sval = sval->dyn_cast_compound_svalue ()) for (auto iter : *compound_sval) - if (iter.second->get_kind () == SK_UNKNOWN) + if (iter.m_sval->get_kind () == SK_UNKNOWN) return true; return false; } diff --git a/gcc/analyzer/kf.cc b/gcc/analyzer/kf.cc index 5c54b5564486..b3c02e843090 100644 --- a/gcc/analyzer/kf.cc +++ b/gcc/analyzer/kf.cc @@ -857,7 +857,8 @@ class kf_putenv : public known_function const svalue *ptr_sval = cd.get_arg_svalue (0); const region *reg = model->deref_rvalue (ptr_sval, cd.get_arg_tree (0), ctxt); - model->get_store ()->mark_as_escaped (reg); + store_manager *store_mgr = model->get_manager ()->get_store_manager (); + model->get_store ()->mark_as_escaped (*store_mgr, reg); enum memory_space mem_space = reg->get_memory_space (); switch (mem_space) { diff --git a/gcc/analyzer/program-state.cc b/gcc/analyzer/program-state.cc index e16a50f78c78..ac91ea4e194d 100644 --- a/gcc/analyzer/program-state.cc +++ b/gcc/analyzer/program-state.cc @@ -564,7 +564,7 @@ sm_state_map::impl_set_state (const svalue *sval, = sval->dyn_cast_compound_svalue ()) for (auto iter : *compound_sval) { - const svalue *inner_sval = iter.second; + const svalue *inner_sval = iter.m_sval; if (inner_sval->can_have_associated_state_p ()) impl_set_state (inner_sval, state, origin, ext_state); } @@ -1531,7 +1531,7 @@ program_state::can_purge_base_region_p (const extrinsic_state &ext_state, for (auto iter : *cluster) { - const svalue *sval = iter.second; + const svalue *sval = iter.m_sval; if (!can_purge_p (ext_state, sval)) return false; } diff --git a/gcc/analyzer/region-model-asm.cc b/gcc/analyzer/region-model-asm.cc index fe704901a978..347a938445ff 100644 --- a/gcc/analyzer/region-model-asm.cc +++ b/gcc/analyzer/region-model-asm.cc @@ -260,7 +260,9 @@ region_model::on_asm_stmt (const gasm *stmt, region_model_context *ctxt) || !base_reg->tracked_p ()) continue; - binding_cluster *cluster = m_store.get_or_create_cluster (base_reg); + binding_cluster *cluster + = m_store.get_or_create_cluster (*m_mgr->get_store_manager (), + base_reg); cluster->on_asm (stmt, m_mgr->get_store_manager (), conjured_purge (this, ctxt)); } diff --git a/gcc/analyzer/region-model-reachability.cc b/gcc/analyzer/region-model-reachability.cc index 0fe324d001fb..ea3f967ed4f8 100644 --- a/gcc/analyzer/region-model-reachability.cc +++ b/gcc/analyzer/region-model-reachability.cc @@ -169,10 +169,10 @@ reachable_regions::handle_sval (const svalue *sval) if (const compound_svalue *compound_sval = sval->dyn_cast_compound_svalue ()) { - for (compound_svalue::iterator_t iter = compound_sval->begin (); + for (auto iter = compound_sval->begin (); iter != compound_sval->end (); ++iter) { - const svalue *iter_sval = (*iter).second; + const svalue *iter_sval = (*iter).m_sval; handle_sval (iter_sval); } } @@ -235,10 +235,10 @@ reachable_regions::handle_parm (const svalue *sval, tree param_type) if (const compound_svalue *compound_sval = sval->dyn_cast_compound_svalue ()) { - for (compound_svalue::iterator_t iter = compound_sval->begin (); + for (auto iter = compound_sval->begin (); iter != compound_sval->end (); ++iter) { - const svalue *iter_sval = (*iter).second; + const svalue *iter_sval = (*iter).m_sval; handle_sval (iter_sval); } } @@ -259,7 +259,8 @@ reachable_regions::mark_escaped_clusters (region_model_context *ctxt) iter != m_mutable_base_regs.end (); ++iter) { const region *base_reg = *iter; - m_store->mark_as_escaped (base_reg); + store_manager *store_mgr = m_model->get_manager ()->get_store_manager (); + m_store->mark_as_escaped (*store_mgr, base_reg); /* If we have a function that's escaped, potentially add it to the worklist. */ diff --git a/gcc/analyzer/region-model.cc b/gcc/analyzer/region-model.cc index 618d96b6b7c1..ceb5064007cb 100644 --- a/gcc/analyzer/region-model.cc +++ b/gcc/analyzer/region-model.cc @@ -4495,8 +4495,8 @@ class iterable_cluster return; for (auto iter : *cluster) { - const binding_key *key = iter.first; - const svalue *sval = iter.second; + const binding_key *key = iter.m_key; + const svalue *sval = iter.m_sval; if (const concrete_binding *concrete_key = key->dyn_cast_concrete_binding ()) @@ -4696,7 +4696,7 @@ region_model::scan_for_null_terminator_1 (const region *reg, logger->end_log_line (); } - binding_map result; + binding_map result (*store_mgr); while (1) { @@ -5118,7 +5118,8 @@ region_model::mark_region_as_unknown (const region *reg, svalue_set maybe_live_values; m_store.mark_region_as_unknown (m_mgr->get_store_manager(), reg, uncertainty, &maybe_live_values); - m_store.on_maybe_live_values (maybe_live_values); + m_store.on_maybe_live_values (*m_mgr->get_store_manager (), + maybe_live_values); } /* Determine what is known about the condition "LHS_SVAL OP RHS_SVAL" within @@ -6733,7 +6734,8 @@ region_model::on_top_level_param (tree param, const svalue *init_ptr_sval = m_mgr->get_or_create_initial_value (param_reg); const region *pointee_reg = m_mgr->get_symbolic_region (init_ptr_sval); - m_store.mark_as_escaped (pointee_reg); + store_manager *store_mgr = m_mgr->get_store_manager (); + m_store.mark_as_escaped (*store_mgr, pointee_reg); if (nonnull) { const svalue *null_ptr_sval @@ -7085,52 +7087,39 @@ region_model::unbind_region_and_descendents (const region *reg, } } -/* Implementation of BindingVisitor. - Update the bound svalues for regions below REG to use poisoned - values instead. */ - -struct bad_pointer_finder -{ - bad_pointer_finder (const region *reg, enum poison_kind pkind, - region_model_manager *mgr) - : m_reg (reg), m_pkind (pkind), m_mgr (mgr), m_count (0) - {} - - void on_binding (const binding_key *, const svalue *&sval) - { - if (const region_svalue *ptr_sval = sval->dyn_cast_region_svalue ()) - { - const region *ptr_dst = ptr_sval->get_pointee (); - /* Poison ptrs to descendents of REG, but not to REG itself, - otherwise double-free detection doesn't work (since sm-state - for "free" is stored on the original ptr svalue). */ - if (ptr_dst->descendent_of_p (m_reg) - && ptr_dst != m_reg) - { - sval = m_mgr->get_or_create_poisoned_svalue (m_pkind, - sval->get_type ()); - ++m_count; - } - } - } - - const region *m_reg; - enum poison_kind m_pkind; - region_model_manager *const m_mgr; - int m_count; -}; - /* Find any pointers to REG or its descendents; convert them to - poisoned values of kind PKIND. - Return the number of pointers that were poisoned. */ + poisoned values of kind PKIND. */ -int +void region_model::poison_any_pointers_to_descendents (const region *reg, - enum poison_kind pkind) + enum poison_kind pkind) { - bad_pointer_finder bv (reg, pkind, m_mgr); - m_store.for_each_binding (bv); - return bv.m_count; + for (const auto &cluster_iter : m_store) + { + binding_cluster *cluster = cluster_iter.second; + for (auto iter = cluster->begin (); + iter != cluster->end (); + ++iter) + { + auto bp = *iter; + const svalue *sval = bp.m_sval; + if (const region_svalue *ptr_sval = sval->dyn_cast_region_svalue ()) + { + const region *ptr_dst = ptr_sval->get_pointee (); + /* Poison ptrs to descendents of REG, but not to REG itself, + otherwise double-free detection doesn't work (since sm-state + for "free" is stored on the original ptr svalue). */ + if (ptr_dst->descendent_of_p (reg) + && ptr_dst != reg) + { + const svalue *new_sval + = m_mgr->get_or_create_poisoned_svalue (pkind, + sval->get_type ()); + cluster->get_map ().overwrite (iter, new_sval); + } + } + } + } } /* Attempt to merge THIS with OTHER_MODEL, writing the result @@ -7647,12 +7636,12 @@ class exposure_through_uninit_copy /* Find keys for uninit svals. */ for (auto iter : *compound_sval) { - const svalue *sval = iter.second; + const svalue *sval = iter.m_sval; if (const poisoned_svalue *psval = sval->dyn_cast_poisoned_svalue ()) if (psval->get_poison_kind () == poison_kind::uninit) { - const binding_key *key = iter.first; + const binding_key *key = iter.m_key; const concrete_binding *ckey = key->dyn_cast_concrete_binding (); gcc_assert (ckey); @@ -7699,12 +7688,12 @@ class exposure_through_uninit_copy auto_vec uninit_keys; for (auto iter : *compound_sval) { - const svalue *sval = iter.second; + const svalue *sval = iter.m_sval; if (const poisoned_svalue *psval = sval->dyn_cast_poisoned_svalue ()) if (psval->get_poison_kind () == poison_kind::uninit) { - const binding_key *key = iter.first; + const binding_key *key = iter.m_key; const concrete_binding *ckey = key->dyn_cast_concrete_binding (); gcc_assert (ckey); @@ -7914,7 +7903,7 @@ contains_uninit_p (const svalue *sval) for (auto iter : *compound_sval) { - const svalue *sval = iter.second; + const svalue *sval = iter.m_sval; if (const poisoned_svalue *psval = sval->dyn_cast_poisoned_svalue ()) if (psval->get_poison_kind () == poison_kind::uninit) @@ -8352,8 +8341,9 @@ test_struct () region_model_manager mgr; region_model model (&mgr); - model.set_value (c_x, int_17, nullptr); + /* Set fields in order y, then x. */ model.set_value (c_y, int_m3, nullptr); + model.set_value (c_x, int_17, nullptr); /* Verify get_offset for "c.x". */ { @@ -8370,6 +8360,27 @@ test_struct () ASSERT_EQ (offset.get_base_region (), model.get_lvalue (c, nullptr)); ASSERT_EQ (offset.get_bit_offset (), INT_TYPE_SIZE); } + + /* Check iteration order of binding_cluster (and thus of binding_map). */ + { + std::vector vec; + auto cluster + = model.get_store ()->get_cluster (model.get_lvalue (c, nullptr)); + for (auto iter : *cluster) + vec.push_back (iter); + ASSERT_EQ (vec.size (), 2); + /* we should get them back in ascending order in memory (x then y). */ + /* x */ + ASSERT_EQ (vec[0].m_key->dyn_cast_concrete_binding ()->get_bit_range (), + bit_range (0, INT_TYPE_SIZE)); + ASSERT_TRUE (tree_int_cst_equal(vec[0].m_sval->maybe_get_constant (), + int_17)); + /* y */ + ASSERT_EQ (vec[1].m_key->dyn_cast_concrete_binding ()->get_bit_range (), + bit_range (INT_TYPE_SIZE, INT_TYPE_SIZE)); + ASSERT_TRUE (tree_int_cst_equal(vec[1].m_sval->maybe_get_constant (), + int_m3)); + } } /* Verify usage of an array element. */ diff --git a/gcc/analyzer/region-model.h b/gcc/analyzer/region-model.h index 6271ea27cd8f..7f33a4572e72 100644 --- a/gcc/analyzer/region-model.h +++ b/gcc/analyzer/region-model.h @@ -715,8 +715,8 @@ class region_model region_model_context *ctxt, std::unique_ptr *out); - int poison_any_pointers_to_descendents (const region *reg, - enum poison_kind pkind); + void poison_any_pointers_to_descendents (const region *reg, + enum poison_kind pkind); void on_top_level_param (tree param, bool nonnull, diff --git a/gcc/analyzer/region.cc b/gcc/analyzer/region.cc index e27fc6e720b0..8f294b533983 100644 --- a/gcc/analyzer/region.cc +++ b/gcc/analyzer/region.cc @@ -591,7 +591,7 @@ region::calc_initial_value_at_main (region_model_manager *mgr) const else { /* Get the value for REG within base_reg_init. */ - binding_cluster c (base_reg); + binding_cluster c (*mgr->get_store_manager (), base_reg); c.bind (mgr->get_store_manager (), base_reg, base_reg_init); const svalue *sval = c.get_any_binding (mgr->get_store_manager (), this); @@ -1713,7 +1713,7 @@ decl_region::calc_svalue_for_constructor (tree ctor, /* Create a binding map, applying ctor to it, using this decl_region as the base region when building child regions for offset calculations. */ - binding_map map; + binding_map map (*mgr->get_store_manager ()); if (!map.apply_ctor_to_region (this, ctor, mgr)) return mgr->get_or_create_unknown_svalue (get_type ()); @@ -1772,7 +1772,7 @@ decl_region::get_svalue_for_initializer (region_model_manager *mgr) const if (!tracked_p ()) return nullptr; - binding_cluster c (this); + binding_cluster c (*mgr->get_store_manager (), this); c.zero_fill_region (mgr->get_store_manager (), this); return mgr->get_or_create_compound_svalue (TREE_TYPE (m_decl), c.get_map ()); diff --git a/gcc/analyzer/store.cc b/gcc/analyzer/store.cc index 942c9455e588..b354f9b6387b 100644 --- a/gcc/analyzer/store.cc +++ b/gcc/analyzer/store.cc @@ -618,29 +618,120 @@ simplify_for_binding (const svalue *sval) return sval; } +/* class binding_map::const_iterator. */ + +bool +binding_map::const_iterator::operator== (const binding_map::const_iterator &other) const +{ + if (m_concrete != other.m_concrete) + return false; + if (m_symbolic != other.m_symbolic) + return false; + return true; +} + +binding_map::const_iterator & +binding_map::const_iterator::operator++ () +{ + if (m_concrete != m_map.m_concrete.end ()) + ++m_concrete; + else + ++m_symbolic; + return *this; +} + +binding_map::binding_pair +binding_map::const_iterator::operator* () +{ + if (m_concrete != m_map.m_concrete.end ()) + { + const bit_range &bits = m_concrete->first; + const svalue *sval = m_concrete->second; + return binding_pair (m_map.m_store_mgr.get_concrete_binding (bits), sval); + } + else + { + gcc_assert (m_symbolic != m_map.m_symbolic.end ()); + const region *reg = m_symbolic->m_region; + const svalue *sval = m_symbolic->m_sval; + return binding_pair (m_map.m_store_mgr.get_symbolic_binding (reg), sval); + } +} + +/* class binding_map::iterator. */ + +bool +binding_map::iterator::operator== (const binding_map::iterator &other) const +{ + if (m_concrete != other.m_concrete) + return false; + if (m_symbolic != other.m_symbolic) + return false; + return true; +} + +binding_map::iterator & +binding_map::iterator::operator++ () +{ + if (m_concrete != m_map.m_concrete.end ()) + ++m_concrete; + else + ++m_symbolic; + return *this; +} + +binding_map::binding_pair +binding_map::iterator::operator* () +{ + if (m_concrete != m_map.m_concrete.end ()) + { + const bit_range &bits = m_concrete->first; + const svalue *&sval = m_concrete->second; + return binding_pair (m_map.m_store_mgr.get_concrete_binding (bits), sval); + } + else + { + gcc_assert (m_symbolic != m_map.m_symbolic.end ()); + const region *reg = m_symbolic->m_region; + const svalue *&sval = m_symbolic->m_sval; + return binding_pair (m_map.m_store_mgr.get_symbolic_binding (reg), sval); + } +} + /* class binding_map. */ +// Construct an empty binding_map. + +binding_map::binding_map (store_manager &store_mgr) +: m_store_mgr (store_mgr), + m_concrete (), + m_symbolic () +{ +} + /* binding_map's copy ctor. */ binding_map::binding_map (const binding_map &other) -: m_map (other.m_map) +: m_store_mgr (other.m_store_mgr), + m_concrete (other.m_concrete), + m_symbolic (other.m_symbolic) { } /* binding_map's assignment operator. */ binding_map& -binding_map::operator=(const binding_map &other) +binding_map::operator= (const binding_map &other) { + gcc_assert (&m_store_mgr == &other.m_store_mgr); + /* For now, assume we only ever copy to an empty cluster. */ - gcc_assert (m_map.elements () == 0); - for (map_t::iterator iter = other.m_map.begin (); iter != other.m_map.end (); - ++iter) - { - const binding_key *key = (*iter).first; - const svalue *sval = (*iter).second; - m_map.put (key, sval); - } + gcc_assert (m_concrete.size () == 0); + gcc_assert (m_symbolic.size () == 0); + + m_concrete = other.m_concrete; + m_symbolic = other.m_symbolic; + return *this; } @@ -649,21 +740,11 @@ binding_map::operator=(const binding_map &other) bool binding_map::operator== (const binding_map &other) const { - if (m_map.elements () != other.m_map.elements ()) + if (m_concrete != other.m_concrete) + return false; + if (m_symbolic != other.m_symbolic) return false; - for (map_t::iterator iter = m_map.begin (); iter != m_map.end (); ++iter) - { - const binding_key *key = (*iter).first; - const svalue *sval = (*iter).second; - const svalue **other_slot - = const_cast (other.m_map).get (key); - if (other_slot == nullptr) - return false; - if (sval != *other_slot) - return false; - } - gcc_checking_assert (hash () == other.hash ()); return true; } @@ -673,18 +754,140 @@ hashval_t binding_map::hash () const { hashval_t result = 0; - for (map_t::iterator iter = m_map.begin (); iter != m_map.end (); ++iter) + for (auto iter : *this) { /* Use a new hasher for each key to avoid depending on the ordering of keys when accumulating the result. */ inchash::hash hstate; - hstate.add_ptr ((*iter).first); - hstate.add_ptr ((*iter).second); + hstate.add_ptr (iter.m_key); + hstate.add_ptr (iter.m_sval); result ^= hstate.end (); } return result; } +const svalue * +binding_map::get (const binding_key *key) const +{ + if (key->symbolic_p ()) + { + const ana::symbolic_binding &sym_key + = *static_cast (key); + const region *reg = sym_key.get_region (); + + for (auto iter : m_symbolic) + { + if (iter.m_region == reg) + return iter.m_sval; + } + return nullptr; + } + else + { + const concrete_binding &conc_key + = *static_cast (key); + const bit_range &bits = conc_key.get_bit_range (); + + concrete_bindings_t::const_iterator iter (m_concrete.find (bits)); + if (iter != m_concrete.end ()) + return iter->second; + else + return nullptr; + } +} + +void +binding_map::put (const binding_key *key, const svalue *sval) +{ + if (key->symbolic_p ()) + { + const ana::symbolic_binding &sym_key + = *static_cast (key); + const region *reg = sym_key.get_region (); + + m_symbolic.clear (); + + m_symbolic.push_back ({reg, sval}); + } + else + { + const concrete_binding &conc_key + = *static_cast (key); + const bit_range &bits = conc_key.get_bit_range (); + + concrete_bindings_t::iterator iter (m_concrete.find (bits)); + if (iter != m_concrete.end ()) + (*iter).second = sval; + else + m_concrete.insert ({bits, sval}); + } +} + +void +binding_map::overwrite (iterator_t &pos, const svalue *v) +{ + gcc_assert (&pos.m_map == this); + if (pos.m_symbolic != m_symbolic.end ()) + (*(pos.m_symbolic)).m_sval = v; + else + { + gcc_assert (pos.m_concrete != m_concrete.end ()); + (*(pos.m_concrete)).second = v; + } +} + +void +binding_map::remove (const binding_key *key) +{ + if (key->symbolic_p ()) + m_symbolic.clear (); + else + { + const concrete_binding &conc_key + = *static_cast (key); + const bit_range &bits = conc_key.get_bit_range (); + m_concrete.erase (bits); + } +} + +binding_map::const_iterator_t +binding_map::begin () const +{ + return binding_map::const_iterator_t (*this, + m_concrete.begin (), + m_symbolic.begin ()); +} + +binding_map::const_iterator_t +binding_map::end () const +{ + return binding_map::const_iterator_t (*this, + m_concrete.end (), + m_symbolic.end ()); +} + +binding_map::iterator_t +binding_map::begin () +{ + return binding_map::iterator_t (*this, + m_concrete.begin (), + m_symbolic.begin ()); +} + +binding_map::iterator_t +binding_map::end () +{ + return binding_map::iterator_t (*this, + m_concrete.end (), + m_symbolic.end ()); +} + +size_t +binding_map::elements () const +{ + return m_concrete.size () + m_symbolic.size (); +} + /* Dump a representation of this binding_map to PP. SIMPLE controls how values and regions are to be printed. If MULTILINE, then split the dump over multiple lines and @@ -694,20 +897,11 @@ void binding_map::dump_to_pp (pretty_printer *pp, bool simple, bool multiline) const { - auto_vec binding_keys; - for (map_t::iterator iter = m_map.begin (); - iter != m_map.end (); ++iter) - { - const binding_key *key = (*iter).first; - binding_keys.safe_push (key); - } - binding_keys.qsort (binding_key::cmp_ptrs); - - const binding_key *key; - unsigned i; - FOR_EACH_VEC_ELT (binding_keys, i, key) + bool first = true; + for (auto iter : *this) { - const svalue *value = *const_cast (m_map).get (key); + const binding_key *key = iter.m_key; + const svalue *value = iter.m_sval; if (multiline) { pp_string (pp, " key: {"); @@ -724,7 +918,9 @@ binding_map::dump_to_pp (pretty_printer *pp, bool simple, } else { - if (i > 0) + if (first) + first = false; + else pp_string (pp, ", "); pp_string (pp, "binding key: {"); key->dump_to_pp (pp, simple); @@ -754,21 +950,10 @@ binding_map::to_json () const { auto map_obj = std::make_unique (); - auto_vec binding_keys; - for (map_t::iterator iter = m_map.begin (); - iter != m_map.end (); ++iter) - { - const binding_key *key = (*iter).first; - binding_keys.safe_push (key); - } - binding_keys.qsort (binding_key::cmp_ptrs); - - const binding_key *key; - unsigned i; - FOR_EACH_VEC_ELT (binding_keys, i, key) + for (auto iter : *this) { - const svalue *value = *const_cast (m_map).get (key); - label_text key_desc = key->get_desc (); + const svalue *value = iter.m_sval; + label_text key_desc = iter.m_key->get_desc (); map_obj->set (key_desc.get (), value->to_json ()); } @@ -805,20 +990,10 @@ void binding_map::add_to_tree_widget (text_art::tree_widget &parent_widget, const text_art::dump_widget_info &dwi) const { - auto_vec binding_keys; - for (map_t::iterator iter = m_map.begin (); - iter != m_map.end (); ++iter) - { - const binding_key *key = (*iter).first; - binding_keys.safe_push (key); - } - binding_keys.qsort (binding_key::cmp_ptrs); - - const binding_key *key; - unsigned i; - FOR_EACH_VEC_ELT (binding_keys, i, key) + for (auto iter : *this) { - const svalue *sval = *const_cast (m_map).get (key); + const binding_key *key = iter.m_key; + const svalue *sval = iter.m_sval; add_binding_to_tree_widget (parent_widget, dwi, key, sval); } @@ -834,15 +1009,13 @@ binding_map::cmp (const binding_map &map1, const binding_map &map2) return count_cmp; auto_vec keys1 (map1.elements ()); - for (map_t::iterator iter = map1.begin (); - iter != map1.end (); ++iter) - keys1.quick_push ((*iter).first); + for (auto iter : map1) + keys1.quick_push (iter.m_key); keys1.qsort (binding_key::cmp_ptrs); auto_vec keys2 (map2.elements ()); - for (map_t::iterator iter = map2.begin (); - iter != map2.end (); ++iter) - keys2.quick_push ((*iter).first); + for (auto iter : map2) + keys2.quick_push (iter.m_key); keys2.qsort (binding_key::cmp_ptrs); for (size_t i = 0; i < keys1.length (); i++) @@ -1096,7 +1269,7 @@ binding_map::get_overlapping_bindings (const binding_key *key, { for (auto iter : *this) { - const binding_key *iter_key = iter.first; + const binding_key *iter_key = iter.m_key; if (const concrete_binding *ckey = key->dyn_cast_concrete_binding ()) { @@ -1200,7 +1373,7 @@ binding_map::remove_overlapping_bindings (store_manager *mgr, auto_vec bindings; if (always_overlap) for (auto iter : *this) - bindings.safe_push (iter.first); /* Add all bindings. */ + bindings.safe_push (iter.m_key); /* Add all bindings. */ else /* Just add overlapping bindings. */ get_overlapping_bindings (drop_key, &bindings); @@ -1234,7 +1407,7 @@ binding_map::remove_overlapping_bindings (store_manager *mgr, maybe_live_values->add (old_sval); /* Begin by removing the old binding. */ - m_map.remove (iter_binding); + remove (iter_binding); /* Don't attempt to handle prefixes/suffixes for the "always_overlap" case; everything's being removed. */ @@ -1266,7 +1439,7 @@ binding_map::remove_overlapping_bindings (store_manager *mgr, = old_sval->extract_bit_range (NULL_TREE, rel_prefix, mgr->get_svalue_manager ()); - m_map.put (prefix_key, prefix_sval); + put (prefix_key, prefix_sval); } if (iter_bits.get_next_bit_offset () @@ -1285,7 +1458,7 @@ binding_map::remove_overlapping_bindings (store_manager *mgr, = old_sval->extract_bit_range (NULL_TREE, rel_suffix, mgr->get_svalue_manager ()); - m_map.put (suffix_key, suffix_sval); + put (suffix_key, suffix_sval); } } } @@ -1293,8 +1466,9 @@ binding_map::remove_overlapping_bindings (store_manager *mgr, /* class binding_cluster. */ -binding_cluster::binding_cluster (const region *base_region) -: m_base_region (base_region), m_map (), +binding_cluster::binding_cluster (store_manager &store_mgr, + const region *base_region) +: m_base_region (base_region), m_map (store_mgr), m_escaped (false), m_touched (false) { } @@ -1414,7 +1588,7 @@ binding_cluster::validate () const int num_concrete = 0; for (auto iter : m_map) { - if (iter.first->symbolic_p ()) + if (iter.m_key->symbolic_p ()) num_symbolic++; else num_concrete++; @@ -1537,11 +1711,10 @@ binding_cluster::bind_compound_sval (store_manager *mgr, return; } - for (map_t::iterator iter = compound_sval->begin (); - iter != compound_sval->end (); ++iter) + for (auto iter : *compound_sval) { - const binding_key *iter_key = (*iter).first; - const svalue *iter_sval = (*iter).second; + const binding_key *iter_key = iter.m_key; + const svalue *iter_sval = iter.m_sval; if (const concrete_binding *concrete_key = iter_key->dyn_cast_concrete_binding ()) @@ -1650,7 +1823,7 @@ binding_cluster::purge_state_involving (const svalue *sval, auto_vec > to_make_unknown; for (auto iter : m_map) { - const binding_key *iter_key = iter.first; + const binding_key *iter_key = iter.m_key; if (const symbolic_binding *symbolic_key = iter_key->dyn_cast_symbolic_binding ()) { @@ -1658,7 +1831,7 @@ binding_cluster::purge_state_involving (const svalue *sval, if (reg->involves_p (sval)) to_remove.safe_push (iter_key); } - const svalue *iter_sval = iter.second; + const svalue *iter_sval = iter.m_sval; if (iter_sval->involves_p (sval)) to_make_unknown.safe_push (std::make_pair(iter_key, iter_sval->get_type ())); @@ -1847,8 +2020,8 @@ binding_cluster::maybe_get_compound_binding (store_manager *mgr, perhaps we should have a spatial-organized data structure for concrete keys, though. */ - binding_map result_map; - binding_map default_map; + binding_map result_map (*mgr); + binding_map default_map (*mgr); /* Set up default values in default_map. */ const svalue *default_sval; @@ -1866,12 +2039,13 @@ binding_cluster::maybe_get_compound_binding (store_manager *mgr, return nullptr; const concrete_binding *default_key_relative_to_reg = mgr->get_concrete_binding (0, concrete_default_key->get_size_in_bits ()); + default_map.put (default_key_relative_to_reg, default_sval); - for (map_t::iterator iter = m_map.begin (); iter != m_map.end (); ++iter) + for (auto iter : m_map) { - const binding_key *key = (*iter).first; - const svalue *sval = (*iter).second; + const binding_key *key = iter.m_key; + const svalue *sval = iter.m_sval; if (const concrete_binding *concrete_key = key->dyn_cast_concrete_binding ()) @@ -1957,8 +2131,8 @@ binding_cluster::maybe_get_compound_binding (store_manager *mgr, /* Merge any bindings from default_map into result_map. */ for (auto iter : default_map) { - const binding_key *key = iter.first; - const svalue *sval = iter.second; + const binding_key *key = iter.m_key; + const svalue *sval = iter.m_sval; result_map.put (key, sval); } @@ -2051,16 +2225,14 @@ binding_cluster::can_merge_p (const binding_cluster *cluster_a, gcc_assert (cluster_b->m_base_region == out_cluster->m_base_region); hash_set keys; - for (map_t::iterator iter_a = cluster_a->m_map.begin (); - iter_a != cluster_a->m_map.end (); ++iter_a) + for (auto iter_a : cluster_a->m_map) { - const binding_key *key_a = (*iter_a).first; + const binding_key *key_a = iter_a.m_key; keys.add (key_a); } - for (map_t::iterator iter_b = cluster_b->m_map.begin (); - iter_b != cluster_b->m_map.end (); ++iter_b) + for (auto iter_b : cluster_b->m_map) { - const binding_key *key_b = (*iter_b).first; + const binding_key *key_b = iter_b.m_key; keys.add (key_b); } int num_symbolic_keys = 0; @@ -2122,7 +2294,7 @@ binding_cluster::can_merge_p (const binding_cluster *cluster_a, || (num_concrete_keys > 0 && num_symbolic_keys > 0)) { out_cluster->m_touched = true; - out_cluster->m_map.empty (); + out_cluster->m_map.clear (); } /* We don't handle other kinds of overlaps yet. */ @@ -2141,11 +2313,10 @@ binding_cluster::make_unknown_relative_to (const binding_cluster *other, store *out_store, store_manager *mgr) { - for (map_t::iterator iter = other->m_map.begin (); - iter != other->m_map.end (); ++iter) + for (auto iter : *other) { - const binding_key *iter_key = (*iter).first; - const svalue *iter_sval = (*iter).second; + const binding_key *iter_key = iter.m_key; + const svalue *iter_sval = iter.m_sval; const svalue *unknown_sval = mgr->get_svalue_manager ()->get_or_create_unknown_svalue (iter_sval->get_type ()); @@ -2165,7 +2336,8 @@ binding_cluster::make_unknown_relative_to (const binding_cluster *other, if (base_reg->tracked_p () && !base_reg->symbolic_for_unknown_ptr_p ()) { - binding_cluster *c = out_store->get_or_create_cluster (base_reg); + binding_cluster *c + = out_store->get_or_create_cluster (*mgr, base_reg); c->mark_as_escaped (); } } @@ -2193,7 +2365,7 @@ binding_cluster::on_unknown_fncall (const gcall &call, { if (m_escaped) { - m_map.empty (); + m_map.clear (); if (!m_base_region->empty_p ()) { @@ -2216,7 +2388,7 @@ binding_cluster::on_asm (const gasm *stmt, store_manager *mgr, const conjured_purge &p) { - m_map.empty (); + m_map.clear (); /* Bind it to a new "conjured" value using CALL. */ const svalue *sval @@ -2279,10 +2451,10 @@ binding_cluster::get_representative_path_vars (const region_model *model, { sval = simplify_for_binding (sval); - for (map_t::iterator iter = m_map.begin (); iter != m_map.end (); ++iter) + for (auto iter : m_map) { - const binding_key *key = (*iter).first; - const svalue *bound_sval = (*iter).second; + const binding_key *key = iter.m_key; + const svalue *bound_sval = iter.m_sval; if (bound_sval == sval) { if (const concrete_binding *ckey @@ -2804,14 +2976,14 @@ store::set_value (store_manager *mgr, const region *lhs_reg, { const region *ptr_dst = ptr_sval->get_pointee (); const region *ptr_base_reg = ptr_dst->get_base_region (); - mark_as_escaped (ptr_base_reg); + mark_as_escaped (*mgr, ptr_base_reg); } if (uncertainty) uncertainty->on_maybe_bound_sval (rhs_sval); } else if (lhs_base_reg->tracked_p ()) { - lhs_cluster = get_or_create_cluster (lhs_base_reg); + lhs_cluster = get_or_create_cluster (*mgr, lhs_base_reg); lhs_cluster->bind (mgr, lhs_reg, rhs_sval); } else @@ -2887,7 +3059,7 @@ store::set_value (store_manager *mgr, const region *lhs_reg, (e.g. marking regions as escaped). We do this after the iteration to avoid potentially changing m_cluster_map whilst iterating over it. */ - on_maybe_live_values (maybe_live_values); + on_maybe_live_values (*mgr, maybe_live_values); } /* Determine if BASE_REG_A could be an alias of BASE_REG_B. */ @@ -2983,14 +3155,15 @@ store::eval_alias_1 (const region *base_reg_a, /* Record all of the values in MAYBE_LIVE_VALUES as being possibly live. */ void -store::on_maybe_live_values (const svalue_set &maybe_live_values) +store::on_maybe_live_values (store_manager &mgr, + const svalue_set &maybe_live_values) { for (auto sval : maybe_live_values) { if (const region_svalue *ptr_sval = sval->dyn_cast_region_svalue ()) { const region *base_reg = ptr_sval->get_pointee ()->get_base_region (); - mark_as_escaped (base_reg); + mark_as_escaped (mgr, base_reg); } } } @@ -3044,7 +3217,7 @@ store::fill_region (store_manager *mgr, const region *reg, const svalue *sval) if (base_reg->symbolic_for_unknown_ptr_p () || !base_reg->tracked_p ()) return; - binding_cluster *cluster = get_or_create_cluster (base_reg); + binding_cluster *cluster = get_or_create_cluster (*mgr, base_reg); cluster->fill_region (mgr, reg, sval); } @@ -3069,7 +3242,7 @@ store::mark_region_as_unknown (store_manager *mgr, const region *reg, if (base_reg->symbolic_for_unknown_ptr_p () || !base_reg->tracked_p ()) return; - binding_cluster *cluster = get_or_create_cluster (base_reg); + binding_cluster *cluster = get_or_create_cluster (*mgr, base_reg); cluster->mark_region_as_unknown (mgr, reg, reg, uncertainty, maybe_live_values); } @@ -3127,7 +3300,8 @@ store::get_cluster (const region *base_reg) /* Get the cluster for BASE_REG, creating it if doesn't already exist. */ binding_cluster * -store::get_or_create_cluster (const region *base_reg) +store::get_or_create_cluster (store_manager &store_mgr, + const region *base_reg) { gcc_assert (base_reg); gcc_assert (base_reg->get_base_region () == base_reg); @@ -3141,7 +3315,7 @@ store::get_or_create_cluster (const region *base_reg) if (binding_cluster **slot = m_cluster_map.get (base_reg)) return *slot; - binding_cluster *cluster = new binding_cluster (base_reg); + binding_cluster *cluster = new binding_cluster (store_mgr, base_reg); m_cluster_map.put (base_reg, cluster); return cluster; @@ -3206,7 +3380,7 @@ store::can_merge_p (const store *store_a, const store *store_b, const binding_cluster *cluster_b = store_b->get_cluster (base_reg); /* At least one of cluster_a and cluster_b must be non-NULL. */ binding_cluster *out_cluster - = out_store->get_or_create_cluster (base_reg); + = out_store->get_or_create_cluster (*mgr, base_reg); if (!binding_cluster::can_merge_p (cluster_a, cluster_b, out_cluster, out_store, mgr, merger)) return false; @@ -3221,7 +3395,7 @@ store::can_merge_p (const store *store_a, const store *store_b, isn't reachable from args of those calls. */ void -store::mark_as_escaped (const region *base_reg) +store::mark_as_escaped (store_manager &mgr, const region *base_reg) { gcc_assert (base_reg); gcc_assert (base_reg->get_base_region () == base_reg); @@ -3230,7 +3404,7 @@ store::mark_as_escaped (const region *base_reg) || !base_reg->tracked_p ()) return; - binding_cluster *cluster = get_or_create_cluster (base_reg); + binding_cluster *cluster = get_or_create_cluster (mgr, base_reg); cluster->mark_as_escaped (); } @@ -3361,7 +3535,7 @@ store::canonicalize (store_manager *mgr) binding_cluster *cluster = (*iter).second; for (binding_cluster::iterator_t bind_iter = cluster->m_map.begin (); bind_iter != cluster->m_map.end (); ++bind_iter) - (*bind_iter).second->accept (&s); + (*bind_iter).m_sval->accept (&s); } /* Locate heap-allocated regions that have empty bindings that weren't @@ -3442,12 +3616,13 @@ store::loop_replay_fixup (const store *other_store, for (binding_cluster::iterator_t bind_iter = cluster->m_map.begin (); bind_iter != cluster->m_map.end (); ++bind_iter) { - const binding_key *key = (*bind_iter).first; - const svalue *sval = (*bind_iter).second; + const binding_key *key = (*bind_iter).m_key; + const svalue *sval = (*bind_iter).m_sval; if (sval->get_kind () == SK_WIDENING) { binding_cluster *this_cluster - = get_or_create_cluster (base_reg); + = get_or_create_cluster (*mgr->get_store_manager (), + base_reg); const svalue *unknown = mgr->get_or_create_unknown_svalue (sval->get_type ()); this_cluster->bind_key (key, unknown); @@ -3505,7 +3680,7 @@ store::replay_call_summary_cluster (call_summary_replay &r, && !caller_base_reg->symbolic_for_unknown_ptr_p ()) { binding_cluster *caller_cluster - = get_or_create_cluster (caller_base_reg); + = get_or_create_cluster (*mgr, caller_base_reg); if (summary_cluster->escaped_p ()) caller_cluster->mark_as_escaped (); if (summary_cluster->touched_p ()) @@ -3830,6 +4005,22 @@ test_binding_key_overlap () ASSERT_DISJOINT (cb_8_23, cb_24_31); } +static void +test_binding_map_ops () +{ + region_model_manager region_mgr; + store_manager store_mgr (®ion_mgr); + + /* Assignment of empty. */ + { + binding_map src (store_mgr); + binding_map dst (store_mgr); + dst = src; + + ASSERT_EQ (src, dst); + } +} + /* Run all of the selftests within this file. */ void @@ -3838,6 +4029,7 @@ analyzer_store_cc_tests () test_bit_range_intersects_p (); test_bit_range_from_mask (); test_binding_key_overlap (); + test_binding_map_ops (); } } // namespace selftest diff --git a/gcc/analyzer/store.h b/gcc/analyzer/store.h index 95d38e30924f..33a973151b7d 100644 --- a/gcc/analyzer/store.h +++ b/gcc/analyzer/store.h @@ -512,15 +512,99 @@ template <> struct default_hash_traits namespace ana { /* A mapping from binding_keys to svalues, for use by binding_cluster - and compound_svalue. */ + and compound_svalue. + We store a map from concrete keys to svalues, which is ordered by + the start offset. + We also store a vector of (symbolic key, svalue) pairs, but for now + this has maximum length of 1. */ class binding_map { public: - typedef hash_map map_t; - typedef map_t::iterator iterator_t; - - binding_map () : m_map () {} + struct symbolic_binding + { + bool operator== (const symbolic_binding &other) const + { + return (m_region == other.m_region + && m_sval == other.m_sval); + } + + const region *m_region; + const svalue *m_sval; + }; + using concrete_bindings_t = std::map; + using symbolic_bindings_t = std::vector; + + struct binding_pair + { + binding_pair (const binding_key *key, + const svalue *sval) + : m_key (key), + m_sval (sval) + { + } + + const binding_key *m_key; + const svalue *m_sval; + }; + + typedef class const_iterator + { + public: + const_iterator (const binding_map &map, + concrete_bindings_t::const_iterator concrete_iter, + symbolic_bindings_t::const_iterator symbolic_iter) + : m_map (map), + m_concrete (concrete_iter), + m_symbolic (symbolic_iter) + { + } + bool operator== (const const_iterator &other) const; + bool operator!= (const const_iterator &other) const + { + return !(*this == other); + } + const_iterator &operator++ (); + + binding_pair operator* (); + + private: + const binding_map &m_map; + concrete_bindings_t::const_iterator m_concrete; + symbolic_bindings_t::const_iterator m_symbolic; + } const_iterator_t; + + typedef class iterator + { + public: + friend class binding_map; + + iterator (const binding_map &map, + concrete_bindings_t::iterator concrete_iter, + symbolic_bindings_t::iterator symbolic_iter) + : m_map (map), + m_concrete (concrete_iter), + m_symbolic (symbolic_iter) + { + } + bool operator== (const iterator &other) const; + bool operator!= (const iterator &other) const + { + return !(*this == other); + } + iterator &operator++ (); + + binding_pair operator* (); + + const binding_key *get_key () const; + + private: + const binding_map &m_map; + concrete_bindings_t::iterator m_concrete; + symbolic_bindings_t::iterator m_symbolic; + } iterator_t; + + binding_map (store_manager &store_mgr); binding_map (const binding_map &other); binding_map& operator=(const binding_map &other); @@ -532,26 +616,27 @@ class binding_map hashval_t hash () const; - const svalue *get (const binding_key *key) const + const svalue *get (const binding_key *key) const; + void put (const binding_key *k, const svalue *v); + void overwrite (iterator_t &pos, const svalue *v); + + void remove (const binding_key *k); + void clear () { - const svalue **slot = const_cast (m_map).get (key); - if (slot) - return *slot; - else - return nullptr; + m_concrete.clear (); + m_symbolic.clear (); } - bool put (const binding_key *k, const svalue *v) + + bool empty_p () const { - gcc_assert (v); - return m_map.put (k, v); + return m_concrete.empty () && m_symbolic.empty (); } - void remove (const binding_key *k) { m_map.remove (k); } - void empty () { m_map.empty (); } - - iterator_t begin () const { return m_map.begin (); } - iterator_t end () const { return m_map.end (); } - size_t elements () const { return m_map.elements (); } + const_iterator_t begin () const; + const_iterator_t end () const; + iterator_t begin (); + iterator_t end (); + size_t elements () const; void dump_to_pp (pretty_printer *pp, bool simple, bool multiline) const; void dump (bool simple) const; @@ -583,16 +668,11 @@ class binding_map region_model_manager *mgr, tree index, tree val); - map_t m_map; + store_manager &m_store_mgr; + concrete_bindings_t m_concrete; + symbolic_bindings_t m_symbolic; }; -/* Concept: BindingVisitor, for use by binding_cluster::for_each_binding - and store::for_each_binding. - - Should implement: - void on_binding (const binding_key *key, const svalue *&sval); -*/ - /* All of the bindings within a store for regions that share the same base region. */ @@ -601,10 +681,10 @@ class binding_cluster public: friend class store; - typedef hash_map map_t; - typedef map_t::iterator iterator_t; + typedef binding_map::const_iterator const_iterator_t; + typedef binding_map::iterator iterator_t; - binding_cluster (const region *base_region); + binding_cluster (store_manager &store_mgr, const region *base_region); binding_cluster (const binding_cluster &other); binding_cluster& operator=(const binding_cluster &other); @@ -661,8 +741,8 @@ class binding_cluster void for_each_value (void (*cb) (const svalue *sval, T user_data), T user_data) const { - for (map_t::iterator iter = m_map.begin (); iter != m_map.end (); ++iter) - cb ((*iter).second, user_data); + for (auto iter : m_map) + cb (iter.m_sval, user_data); } static bool can_merge_p (const binding_cluster *cluster_a, @@ -685,7 +765,7 @@ class binding_cluster bool touched_p () const { return m_touched; } bool redundant_p () const; - bool empty_p () const { return m_map.elements () == 0; } + bool empty_p () const { return m_map.empty_p (); } void get_representative_path_vars (const region_model *model, svalue_set *visited, @@ -696,21 +776,14 @@ class binding_cluster const svalue *maybe_get_simple_value (store_manager *mgr) const; - template - void for_each_binding (BindingVisitor &v) const - { - for (map_t::iterator iter = m_map.begin (); iter != m_map.end (); ++iter) - { - const binding_key *key = (*iter).first; - const svalue *&sval = (*iter).second; - v.on_binding (key, sval); - } - } + const_iterator_t begin () const { return m_map.begin (); } + const_iterator_t end () const { return m_map.end (); } - iterator_t begin () const { return m_map.begin (); } - iterator_t end () const { return m_map.end (); } + iterator_t begin () { return m_map.begin (); } + iterator_t end () { return m_map.end (); } const binding_map &get_map () const { return m_map; } + binding_map &get_map () { return m_map; } private: const svalue *get_any_value (const binding_key *key) const; @@ -793,7 +866,8 @@ class store const binding_cluster *get_cluster (const region *base_reg) const; binding_cluster *get_cluster (const region *base_reg); - binding_cluster *get_or_create_cluster (const region *base_reg); + binding_cluster *get_or_create_cluster (store_manager &store_mgr, + const region *base_reg); void purge_cluster (const region *base_reg); template @@ -809,7 +883,7 @@ class store store *out_store, store_manager *mgr, model_merger *merger); - void mark_as_escaped (const region *base_reg); + void mark_as_escaped (store_manager &mgr, const region *base_reg); void on_unknown_fncall (const gcall &call, store_manager *mgr, const conjured_purge &p); bool escaped_p (const region *reg) const; @@ -826,14 +900,6 @@ class store tristate eval_alias (const region *base_reg_a, const region *base_reg_b) const; - template - void for_each_binding (BindingVisitor &v) - { - for (cluster_map_t::iterator iter = m_cluster_map.begin (); - iter != m_cluster_map.end (); ++iter) - (*iter).second->for_each_binding (v); - } - void canonicalize (store_manager *mgr); void loop_replay_fixup (const store *other_store, region_model_manager *mgr); @@ -843,7 +909,8 @@ class store void replay_call_summary_cluster (call_summary_replay &r, const store &summary, const region *base_reg); - void on_maybe_live_values (const svalue_set &maybe_live_values); + void on_maybe_live_values (store_manager &mgr, + const svalue_set &maybe_live_values); private: void remove_overlapping_bindings (store_manager *mgr, const region *reg, diff --git a/gcc/analyzer/svalue.cc b/gcc/analyzer/svalue.cc index fbbd1d2c1768..44482bfefbe2 100644 --- a/gcc/analyzer/svalue.cc +++ b/gcc/analyzer/svalue.cc @@ -2232,15 +2232,15 @@ compound_svalue::compound_svalue (symbol::id_t id, : svalue (calc_complexity (map), id, type), m_map (map) { #if CHECKING_P - for (iterator_t iter = begin (); iter != end (); ++iter) + for (auto iter : *this) { /* All keys within the underlying binding_map are required to be concrete, not symbolic. */ - const binding_key *key = (*iter).first; + const binding_key *key = iter.m_key; gcc_assert (key->concrete_p ()); /* We don't nest compound svalues. */ - const svalue *sval = (*iter).second; + const svalue *sval = iter.m_sval; gcc_assert (sval->get_kind () != SK_COMPOUND); } #endif @@ -2302,11 +2302,10 @@ add_dump_widget_children (text_art::tree_widget &w, void compound_svalue::accept (visitor *v) const { - for (binding_map::iterator_t iter = m_map.begin (); - iter != m_map.end (); ++iter) + for (auto iter : m_map) { - //(*iter).first.accept (v); - (*iter).second->accept (v); + //iter.first.accept (v); + iter.m_sval->accept (v); } v->visit_compound_svalue (this); } @@ -2319,10 +2318,9 @@ compound_svalue::calc_complexity (const binding_map &map) { unsigned num_child_nodes = 0; unsigned max_child_depth = 0; - for (binding_map::iterator_t iter = map.begin (); - iter != map.end (); ++iter) + for (auto iter : map) { - const complexity &sval_c = (*iter).second->get_complexity (); + const complexity &sval_c = iter.m_sval->get_complexity (); num_child_nodes += sval_c.m_num_nodes; max_child_depth = MAX (max_child_depth, sval_c.m_max_depth); } @@ -2337,10 +2335,10 @@ compound_svalue::maybe_fold_bits_within (tree type, const bit_range &bits, region_model_manager *mgr) const { - binding_map result_map; + binding_map result_map (*mgr->get_store_manager ()); for (auto iter : m_map) { - const binding_key *key = iter.first; + const binding_key *key = iter.m_key; if (const concrete_binding *conc_key = key->dyn_cast_concrete_binding ()) { @@ -2348,7 +2346,7 @@ compound_svalue::maybe_fold_bits_within (tree type, if (!conc_key->get_bit_range ().intersects_p (bits)) continue; - const svalue *sval = iter.second; + const svalue *sval = iter.m_sval; /* Get the position of conc_key relative to BITS. */ bit_range result_location (conc_key->get_start_bit_offset () - bits.get_start_bit_offset (), diff --git a/gcc/analyzer/svalue.h b/gcc/analyzer/svalue.h index 0ccb5ce4bd6a..df236d736064 100644 --- a/gcc/analyzer/svalue.h +++ b/gcc/analyzer/svalue.h @@ -1391,6 +1391,7 @@ namespace ana { class compound_svalue : public svalue { public: + typedef binding_map::const_iterator_t const_iterator_t; typedef binding_map::iterator_t iterator_t; /* A support class for uniquifying instances of compound_svalue. @@ -1445,8 +1446,10 @@ class compound_svalue : public svalue const binding_map &get_map () const { return m_map; } - iterator_t begin () const { return m_map.begin (); } - iterator_t end () const { return m_map.end (); } + const_iterator_t begin () const { return m_map.begin (); } + const_iterator_t end () const { return m_map.end (); } + iterator_t begin () { return m_map.begin (); } + iterator_t end () { return m_map.end (); } struct key_t make_key () const { diff --git a/gcc/attribs.cc b/gcc/attribs.cc index 29b88b8d8360..7d7f8f36a7fc 100644 --- a/gcc/attribs.cc +++ b/gcc/attribs.cc @@ -1086,6 +1086,28 @@ make_attribute (string_slice name, string_slice arg_name, tree chain) return attr; } +/* Default implementation of TARGET_OPTION_FUNCTIONS_B_RESOLVABLE_FROM_A. + Used to check very basically if DECL_B is callable from DECL_A. + For now this checks if the version strings are the same. */ + +bool +functions_b_resolvable_from_a (tree decl_a, tree decl_b, + tree base ATTRIBUTE_UNUSED) +{ + const char *attr_name = TARGET_HAS_FMV_TARGET_ATTRIBUTE + ? "target" + : "target_version"; + + tree attr_a = lookup_attribute (attr_name, DECL_ATTRIBUTES (decl_a)); + tree attr_b = lookup_attribute (attr_name, DECL_ATTRIBUTES (decl_b)); + + gcc_assert (attr_b); + if (!attr_a) + return false; + + return attribute_value_equal (attr_a, attr_b); +} + /* Comparator function to be used in qsort routine to sort attribute specification strings to "target". */ diff --git a/gcc/attribs.h b/gcc/attribs.h index c4a4fb0e50b0..b6f3d5a0f9bb 100644 --- a/gcc/attribs.h +++ b/gcc/attribs.h @@ -56,6 +56,7 @@ extern struct scoped_attributes * extern char *sorted_attr_string (tree); extern tree make_dispatcher_decl (const tree); extern bool is_function_default_version (const tree); +extern bool functions_b_resolvable_from_a (tree, tree, tree); extern void handle_ignored_attributes_option (vec *); /* Return a type like TTYPE except that its TYPE_ATTRIBUTES diff --git a/gcc/auto-profile.cc b/gcc/auto-profile.cc index 8c8d9bed8c51..6971204ddf55 100644 --- a/gcc/auto-profile.cc +++ b/gcc/auto-profile.cc @@ -2972,6 +2972,48 @@ update_count_by_afdo_count (profile_count *count, profile_count c) *count = c; } +/* Try to determine unscaled count of edge E. + Return -1 if nothing is known. */ + +static gcov_type +afdo_unscaled_edge_count (edge e) +{ + gcov_type max_count = -1; + basic_block bb_succ = e->dest; + count_info info; + if (afdo_source_profile->get_count_info (e->goto_locus, &info)) + { + if (info.count > max_count) + max_count = info.count; + if (dump_file && info.count) + { + fprintf (dump_file, + " goto location of edge %i->%i with count %" PRIu64"\n", + e->src->index, e->dest->index, (int64_t)info.count); + } + } + for (gphi_iterator gpi = gsi_start_phis (bb_succ); + !gsi_end_p (gpi); gsi_next (&gpi)) + { + gphi *phi = gpi.phi (); + location_t phi_loc + = gimple_phi_arg_location_from_edge (phi, e); + if (afdo_source_profile->get_count_info (phi_loc, &info)) + { + if (info.count > max_count) + max_count = info.count; + if (dump_file && info.count) + { + fprintf (dump_file, + " phi op of edge %i->%i with count %" PRIu64": ", + e->src->index, e->dest->index, (int64_t)info.count); + print_gimple_stmt (dump_file, phi, 0, TDF_SLIM); + } + } + } + return max_count; +} + /* For a given BB, set its execution count. Attach value profile if a stmt is not in PROMOTED, because we only want to promote an indirect call once. Return TRUE if BB is annotated. */ @@ -2980,8 +3022,7 @@ static bool afdo_set_bb_count (basic_block bb, hash_set &zero_bbs) { gimple_stmt_iterator gsi; - gcov_type max_count = 0; - bool has_annotated = false; + gcov_type max_count = -1; if (dump_file) fprintf (dump_file, " Looking up AFDO count of bb %i\n", bb->index); @@ -3001,7 +3042,6 @@ afdo_set_bb_count (basic_block bb, hash_set &zero_bbs) (int64_t)info.count); print_gimple_stmt (dump_file, stmt, 0, TDF_SLIM); } - has_annotated = true; gcall *call = dyn_cast (gsi_stmt (gsi)); /* TODO; if inlined early and indirect call was not optimized out, we will end up speculating again. Early inliner should remove @@ -3012,44 +3052,11 @@ afdo_set_bb_count (basic_block bb, hash_set &zero_bbs) } } - if (!has_annotated) - { - /* For an empty BB with all debug stmt which assigne a value with - constant, check successors PHIs corresponding to the block and - use those counts. */ - edge tmp_e; - edge_iterator tmp_ei; - FOR_EACH_EDGE (tmp_e, tmp_ei, bb->succs) - { - basic_block bb_succ = tmp_e->dest; - for (gphi_iterator gpi = gsi_start_phis (bb_succ); - !gsi_end_p (gpi); - gsi_next (&gpi)) - { - gphi *phi = gpi.phi (); - location_t phi_loc - = gimple_phi_arg_location_from_edge (phi, tmp_e); - count_info info; - if (afdo_source_profile->get_count_info (phi_loc, &info) - && info.count != 0) - { - if (info.count > max_count) - max_count = info.count; - if (dump_file && info.count) - { - fprintf (dump_file, - " phi op in BB %i with count %" PRIu64": ", - bb_succ->index, (int64_t)info.count); - print_gimple_stmt (dump_file, phi, 0, TDF_SLIM); - } - has_annotated = true; - } - } - } + if (max_count == -1 && single_succ_p (bb)) + max_count = afdo_unscaled_edge_count (single_succ_edge (bb)); - if (!has_annotated) - return false; - } + if (max_count == -1) + return false; if (max_count) { @@ -3507,6 +3514,109 @@ scale_bbs (const vec &bbs, sreal scale) } } +/* Determine scaling factor by taking robust average of SCALES + and taking into account limits. + MAX_COUNT is maximal guessed count to be scaled while MAC_COUNT_IN_FN + is maximal count in function determined by auto-fdo. */ + +sreal +determine_scale (vec *scales, profile_count max_count, + profile_count max_count_in_fn) +{ + scales->qsort (cmp); + + uint64_t overall_weight = 0; + for (scale &e : *scales) + overall_weight += e.weight; + + uint64_t cummulated = 0, weight_sum = 0; + sreal scale_sum = 0; + for (scale &e : *scales) + { + uint64_t prev = cummulated; + cummulated += e.weight; + if (cummulated >= overall_weight / 4 + && prev <= 3 * overall_weight / 4) + { + scale_sum += e.scale * e.weight; + weight_sum += e.weight; + if (dump_file) + fprintf (dump_file, " accounting scale %.16f, weight %" PRId64 "\n", + e.scale.to_double (), e.weight); + } + else if (dump_file) + fprintf (dump_file, " ignoring scale %.16f, weight %" PRId64 "\n", + e.scale.to_double (), e.weight); + } + sreal scale = scale_sum / (sreal)weight_sum; + + /* Avoid scaled regions to have very large counts. + Otherwise they may dominate ipa-profile's histogram computing cutoff + of hot basic blocks. */ + if (max_count * scale > max_count_in_fn.guessed_local ().apply_scale (128, 1)) + { + if (dump_file) + { + fprintf (dump_file, "Scaling by %.16f produces max count ", + scale.to_double ()); + (max_count * scale).dump (dump_file); + fprintf (dump_file, " that exceeds max count in fn "); + max_count_in_fn.dump (dump_file); + fprintf (dump_file, "; capping\n"); + } + scale = max_count_in_fn.guessed_local ().to_sreal_scale (max_count); + } + return scale; +} + +/* Scale profile of the whole function to approximately match auto-profile. */ + +bool +scale_bb_profile () +{ + const function_instance *s + = afdo_source_profile->get_function_instance_by_decl + (current_function_decl); + + /* In the first pass only store non-zero counts. */ + gcov_type head_count = s->head_count () * autofdo::afdo_count_scale; + hash_set zero_bbs; + auto_vec bbs (n_basic_blocks_for_fn (cfun)); + auto_vec scales; + basic_block bb; + profile_count max_count = profile_count::zero (); + profile_count max_count_in_fn = profile_count::zero (); + bbs.quick_push (ENTRY_BLOCK_PTR_FOR_FN (cfun)); + bbs.quick_push (EXIT_BLOCK_PTR_FOR_FN (cfun)); + if (head_count > 0) + { + profile_count entry_count = ENTRY_BLOCK_PTR_FOR_FN (cfun)->count; + max_count = entry_count; + update_count_by_afdo_count (&entry_count, head_count); + max_count_in_fn = entry_count; + add_scale (&scales, entry_count, ENTRY_BLOCK_PTR_FOR_FN (cfun)->count); + } + FOR_EACH_BB_FN (bb, cfun) + { + profile_count cnt = bb->count; + bbs.safe_push (bb); + max_count = max_count.max (bb->count); + if (afdo_set_bb_count (bb, zero_bbs)) + { + std::swap (cnt, bb->count); + max_count_in_fn = max_count_in_fn.max (cnt); + add_scale (&scales, cnt, bb->count); + } + } + if (scales.length ()) + { + sreal scale = determine_scale (&scales, max_count, max_count_in_fn); + scale_bbs (bbs, scale); + return true; + } + return false; +} + /* In case given basic block was fully optimized out, AutoFDO will have no data about it. In this case try to preserve static profile. Identify connected components (in undirected form of CFG) which has @@ -3716,47 +3826,7 @@ afdo_adjust_guessed_profile (bb_set *annotated_bb) continue; } gcc_checking_assert (scales.length ()); - scales.qsort (cmp); - - uint64_t overall_weight = 0; - for (scale &e : scales) - overall_weight += e.weight; - - uint64_t cummulated = 0, weight_sum = 0; - sreal scale_sum = 0; - for (scale &e : scales) - { - uint64_t prev = cummulated; - cummulated += e.weight; - if (cummulated >= overall_weight / 4 - && prev <= 3 * overall_weight / 4) - { - scale_sum += e.scale * e.weight; - weight_sum += e.weight; - if (dump_file) - fprintf (dump_file, " accounting scale %.16f, weight %" PRId64 "\n", - e.scale.to_double (), e.weight); - } - else if (dump_file) - fprintf (dump_file, " ignoring scale %.16f, weight %" PRId64 "\n", - e.scale.to_double (), e.weight); - } - sreal scale = scale_sum / (sreal)weight_sum; - - /* Avoid scaled regions to have very large counts. - Otherwise they may dominate ipa-profile's histogram computing cutoff - of hot basic blocks. */ - if (max_count * scale > max_count_in_fn.guessed_local ()) - { - if (dump_file) - { - fprintf (dump_file, "Scaling by %.16f produces max count ", - scale.to_double ()); - (max_count * scale).dump (dump_file); - fprintf (dump_file, " that exceeds max count in fn; capping\n"); - } - scale = max_count_in_fn.guessed_local ().to_sreal_scale (max_count); - } + sreal scale = determine_scale (&scales, max_count, max_count_in_fn); scale_bbs (bbs, scale); } } @@ -3778,6 +3848,30 @@ afdo_calculate_branch_prob (bb_set *annotated_bb) { gcc_assert (e->aux == NULL); e->aux = new edge_info (); + gcov_type c = afdo_unscaled_edge_count (e); + if (c == 0 && e->count () == profile_count::zero ()) + { + AFDO_EINFO (e)->set_count (profile_count::zero ()); + if (dump_file) + fprintf (dump_file, + " Annotating edge %i->%i with count 0;" + " static profile aggress", + e->src->index, e->dest->index); + } + else if (c > 0) + { + AFDO_EINFO (e)->set_count + (profile_count::from_gcov_type + (c * autofdo::afdo_count_scale).afdo ()); + if (dump_file) + { + fprintf (dump_file, + " Annotating edge %i->%i with count ", + e->src->index, e->dest->index); + AFDO_EINFO (e)->get_count ().dump (dump_file); + fprintf (dump_file, "\n"); + } + } } } @@ -3808,24 +3902,41 @@ afdo_calculate_branch_prob (bb_set *annotated_bb) } if (!all_known || !total_count.nonzero_p ()) continue; + if (dump_file) + { + fprintf (dump_file, "Total count of bb %i is ", bb->index); + total_count.dump (dump_file); + fprintf (dump_file, "\n"); + } FOR_EACH_EDGE (e, ei, bb->succs) if (AFDO_EINFO (e)->is_annotated ()) { + profile_count cnt = AFDO_EINFO (e)->get_count (); /* If probability is 1, preserve reliable static prediction (This is, for example the case of single fallthru edge or single fallthru plus unlikely EH edge.) */ - if (AFDO_EINFO (e)->get_count () == total_count + if (cnt == total_count && e->probability == profile_probability::always ()) ; - else if (AFDO_EINFO (e)->get_count ().nonzero_p ()) + else if (cnt.nonzero_p ()) e->probability - = AFDO_EINFO (e)->get_count ().probability_in (total_count); + = cnt.probability_in (total_count); /* If probability is zero, preserve reliable static prediction. */ else if (e->probability.nonzero_p () || e->probability.quality () == GUESSED) e->probability = profile_probability::never ().afdo (); + if (dump_file) + { + fprintf (dump_file, " probability of edge %i->%i" + " with count ", + e->src->index, e->dest->index); + cnt.dump (dump_file); + fprintf (dump_file, " set to "); + e->probability.dump (dump_file); + fprintf (dump_file, "\n"); + } } } afdo_adjust_guessed_profile (annotated_bb); @@ -3882,21 +3993,30 @@ afdo_annotate_cfg (void) s->dump (dump_file); fprintf (dump_file, "\n"); } - - /* In the first pass only store non-zero counts. */ - gcov_type head_count = s->head_count () * autofdo::afdo_count_scale; - bool profile_found = head_count > 0; + bool profile_found = false; hash_set zero_bbs; - FOR_EACH_BB_FN (bb, cfun) + gcov_type head_count = s->head_count () * autofdo::afdo_count_scale; + + if (!param_auto_profile_bbs) { - if (afdo_set_bb_count (bb, zero_bbs)) + if (scale_bb_profile ()) + return; + } + else + { + /* In the first pass only store non-zero counts. */ + profile_found = head_count > 0; + FOR_EACH_BB_FN (bb, cfun) { - if (bb->count.quality () == AFDO) + if (afdo_set_bb_count (bb, zero_bbs)) { - gcc_assert (bb->count.nonzero_p ()); - profile_found = true; + if (bb->count.quality () == AFDO) + { + gcc_assert (bb->count.nonzero_p ()); + profile_found = true; + } + set_bb_annotated (bb, &annotated_bb); } - set_bb_annotated (bb, &annotated_bb); } } /* Exit without clobbering static profile if there was no diff --git a/gcc/btfout.cc b/gcc/btfout.cc index ff7ea42a9614..5a210cd51e6c 100644 --- a/gcc/btfout.cc +++ b/gcc/btfout.cc @@ -141,6 +141,8 @@ get_btf_kind (uint32_t ctf_kind) case CTF_K_VOLATILE: return BTF_KIND_VOLATILE; case CTF_K_CONST: return BTF_KIND_CONST; case CTF_K_RESTRICT: return BTF_KIND_RESTRICT; + case CTF_K_DECL_TAG: return BTF_KIND_DECL_TAG; + case CTF_K_TYPE_TAG: return BTF_KIND_TYPE_TAG; default:; } return BTF_KIND_UNKN; @@ -217,6 +219,7 @@ btf_calc_num_vbytes (ctf_dtdef_ref dtd) case BTF_KIND_CONST: case BTF_KIND_RESTRICT: case BTF_KIND_FUNC: + case BTF_KIND_TYPE_TAG: /* These kinds have no vlen data. */ break; @@ -256,6 +259,10 @@ btf_calc_num_vbytes (ctf_dtdef_ref dtd) vlen_bytes += vlen * sizeof (struct btf_var_secinfo); break; + case BTF_KIND_DECL_TAG: + vlen_bytes += sizeof (struct btf_decl_tag); + break; + default: break; } @@ -452,6 +459,20 @@ btf_asm_type (ctf_dtdef_ref dtd) and should write 0. */ dw2_asm_output_data (4, 0, "(unused)"); return; + case BTF_KIND_DECL_TAG: + { + if (dtd->ref_type) + break; + else if (dtd->dtd_u.dtu_tag.ref_var) + { + /* ref_type is NULL for decl tag attached to a variable. */ + ctf_dvdef_ref dvd = dtd->dtd_u.dtu_tag.ref_var; + dw2_asm_output_data (4, dvd->dvd_id, + "btt_type: (BTF_KIND_VAR '%s')", + dvd->dvd_name); + return; + } + } default: break; } @@ -801,6 +822,12 @@ output_asm_btf_vlen_bytes (ctf_container_ref ctfc, ctf_dtdef_ref dtd) at this point. */ gcc_unreachable (); + case BTF_KIND_DECL_TAG: + dw2_asm_output_data (4, dtd->dtd_u.dtu_tag.component_idx, + "component_idx=%d", + dtd->dtd_u.dtu_tag.component_idx); + break; + default: /* All other BTF type kinds have no variable length data. */ break; @@ -851,6 +878,20 @@ output_btf_func_types (void) btf_asm_func_type (ref); } +static void +output_btf_tags (ctf_container_ref ctfc) +{ + /* If pruning, tags which are not pruned have already been added to + the used list and output by output_btf_types. */ + if (debug_prune_btf) + return; + + ctf_dtdef_ref dtd; + unsigned i; + FOR_EACH_VEC_ELT (*ctfc->ctfc_tags, i, dtd) + output_asm_btf_type (ctfc, dtd); +} + /* Output all BTF_KIND_DATASEC records. */ static void @@ -869,6 +910,7 @@ btf_output (ctf_container_ref ctfc) output_btf_types (ctfc); output_btf_vars (ctfc); output_btf_func_types (); + output_btf_tags (ctfc); output_btf_datasec_types (); output_btf_strs (ctfc); } @@ -985,7 +1027,8 @@ static vec fixups; is created and emitted. This vector stores them. */ static GTY (()) vec *forwards; -/* Recursively add type DTD and any types it references to the used set. +/* Implementation of btf_add_used_type. + Recursively add type DTD and any types it references to the used set. Return a type that should be used for references to DTD - usually DTD itself, but may be NULL if DTD corresponds to a type which will not be emitted. CHECK_PTR is true if one of the predecessors in recursive calls is a struct @@ -996,8 +1039,8 @@ static GTY (()) vec *forwards; CREATE_FIXUPS is false. */ static ctf_dtdef_ref -btf_add_used_type (ctf_container_ref ctfc, ctf_dtdef_ref dtd, - bool check_ptr, bool seen_ptr, bool create_fixups) +btf_add_used_type_1 (ctf_container_ref ctfc, ctf_dtdef_ref dtd, + bool check_ptr, bool seen_ptr, bool create_fixups) { if (dtd == NULL) return NULL; @@ -1029,8 +1072,9 @@ btf_add_used_type (ctf_container_ref ctfc, ctf_dtdef_ref dtd, fixups.unordered_remove (i); /* Add the concrete base type. */ - dtd->ref_type = btf_add_used_type (ctfc, dtd->ref_type, check_ptr, - seen_ptr, create_fixups); + dtd->ref_type = btf_add_used_type_1 (ctfc, dtd->ref_type, + check_ptr, seen_ptr, + create_fixups); return dtd; } default: @@ -1044,8 +1088,8 @@ btf_add_used_type (ctf_container_ref ctfc, ctf_dtdef_ref dtd, the reference to the bitfield. The slice type won't be emitted, but we need the information in it when writing out the bitfield encoding. */ - btf_add_used_type (ctfc, dtd->dtd_u.dtu_slice.cts_type, - check_ptr, seen_ptr, create_fixups); + btf_add_used_type_1 (ctfc, dtd->dtd_u.dtu_slice.cts_type, + check_ptr, seen_ptr, create_fixups); return dtd; } @@ -1069,7 +1113,11 @@ btf_add_used_type (ctf_container_ref ctfc, ctf_dtdef_ref dtd, case BTF_KIND_INT: case BTF_KIND_FLOAT: case BTF_KIND_FWD: - /* Leaf kinds which do not refer to any other types. */ + case BTF_KIND_DECL_TAG: + /* Leaf kinds which do not refer to any other types. + BTF_KIND_DECL_TAG is a special case: we treat it as though it does not + refer to any other types, since we only want the DECL_TAG to be added + if the type to which it refers has already been added. */ break; case BTF_KIND_FUNC: @@ -1082,6 +1130,7 @@ btf_add_used_type (ctf_container_ref ctfc, ctf_dtdef_ref dtd, case BTF_KIND_CONST: case BTF_KIND_VOLATILE: case BTF_KIND_RESTRICT: + case BTF_KIND_TYPE_TAG: { /* These type kinds refer to exactly one other type. */ if (check_ptr && !seen_ptr) @@ -1106,18 +1155,18 @@ btf_add_used_type (ctf_container_ref ctfc, ctf_dtdef_ref dtd, } /* Add the type to which this type refers. */ - dtd->ref_type = btf_add_used_type (ctfc, dtd->ref_type, check_ptr, - seen_ptr, create_fixups); + dtd->ref_type = btf_add_used_type_1 (ctfc, dtd->ref_type, check_ptr, + seen_ptr, create_fixups); break; } case BTF_KIND_ARRAY: { /* Add element and index types. */ ctf_arinfo_t *arr = &(dtd->dtd_u.dtu_arr); - arr->ctr_contents = btf_add_used_type (ctfc, arr->ctr_contents, false, - false, create_fixups); - arr->ctr_index = btf_add_used_type (ctfc, arr->ctr_index, false, false, - create_fixups); + arr->ctr_contents = btf_add_used_type_1 (ctfc, arr->ctr_contents, + false, false, create_fixups); + arr->ctr_index = btf_add_used_type_1 (ctfc, arr->ctr_index, false, + false, create_fixups); break; } case BTF_KIND_STRUCT: @@ -1133,8 +1182,8 @@ btf_add_used_type (ctf_container_ref ctfc, ctf_dtdef_ref dtd, /* Add member type for struct/union members. For enums, only the enumerator names are needed. */ if (kind == BTF_KIND_STRUCT || kind == BTF_KIND_UNION) - dmd->dmd_type = btf_add_used_type (ctfc, dmd->dmd_type, true, - false, create_fixups); + dmd->dmd_type = btf_add_used_type_1 (ctfc, dmd->dmd_type, true, + false, create_fixups); ctf_add_string (ctfc, dmd->dmd_name, &(dmd->dmd_name_offset), CTF_STRTAB); } @@ -1143,16 +1192,17 @@ btf_add_used_type (ctf_container_ref ctfc, ctf_dtdef_ref dtd, case BTF_KIND_FUNC_PROTO: { /* Add return type. */ - dtd->ref_type = btf_add_used_type (ctfc, dtd->ref_type, false, false, - create_fixups); + dtd->ref_type = btf_add_used_type_1 (ctfc, dtd->ref_type, false, false, + create_fixups); /* Add arg types. */ ctf_func_arg_t * farg; for (farg = dtd->dtd_u.dtu_argv; farg != NULL; farg = (ctf_func_arg_t *) ctf_farg_list_next (farg)) { - farg->farg_type = btf_add_used_type (ctfc, farg->farg_type, false, - false, create_fixups); + farg->farg_type = btf_add_used_type_1 (ctfc, farg->farg_type, + false, false, + create_fixups); /* Note: argument names are stored in the auxilliary string table, since CTF does not include arg names. That table has not been cleared, so no need to re-add argument names here. */ @@ -1166,6 +1216,16 @@ btf_add_used_type (ctf_container_ref ctfc, ctf_dtdef_ref dtd, return dtd; } +/* Recursively add type DTD and any types it references to the used set. + Return a type that should be used for references to DTD - usually DTD itself, + but may be NULL if DTD corresponds to a type which will not be emitted. */ + +static ctf_dtdef_ref +btf_add_used_type (ctf_container_ref ctfc, ctf_dtdef_ref dtd) +{ + return btf_add_used_type_1 (ctfc, dtd, false, false, true); +} + /* Initial entry point of BTF generation, called at early_finish () after CTF information has possibly been output. Translate all CTF information to BTF, and do any processing that must be done early, such as creating @@ -1402,7 +1462,7 @@ btf_add_vars (ctf_container_ref ctfc) ctf_dmdef_t *dmd; for (dmd = dtd->dtd_u.dtu_members; dmd != NULL; dmd = (ctf_dmdef_t *) ctf_dmd_list_next (dmd)) - btf_add_used_type (ctfc, dmd->dmd_type, false, false, true); + btf_add_used_type (ctfc, dmd->dmd_type); } } } @@ -1488,6 +1548,39 @@ btf_assign_var_ids (ctf_container_ref ctfc) } } +/* Assign BTF IDs for type and decl tags and account for their size. */ + +static void +btf_assign_tag_ids (ctf_container_ref ctfc) +{ + size_t num_tags = vec_safe_length (ctfc->ctfc_tags); + if (num_tags == 0) + return; + + unsigned int i; + ctf_dtdef_ref dtd; + FOR_EACH_VEC_ELT (*ctfc->ctfc_tags, i, dtd) + { + /* Assign BTF id. */ + ctf_id_t id = ctfc->ctfc_nextid++; + gcc_assert (id <= BTF_MAX_TYPE); + dtd->dtd_type = id; + + /* Tags on functions will have a ref_type pointing to the + FUNC_PROTO, we want them to point the FUNC record instead. */ + ctf_dtdef_ref *pdtd = NULL; + if (dtd->ref_type && (pdtd = func_map->get (dtd->ref_type)) != NULL) + dtd->ref_type = *pdtd; + + /* Strings for tags are stored in the auxiliary strtab, which is + concatenated after the regular strtab. ctti_name only accounts + for offset in the auxiliary strtab until this point. */ + dtd->dtd_data.ctti_name += ctfc_get_strtab_len (ctfc, CTF_STRTAB); + ctfc->ctfc_num_types++; + ctfc->ctfc_num_vlen_bytes += btf_calc_num_vbytes (dtd); + } +} + /* Assign BTF IDs for datasec records and account for their size. */ static void @@ -1522,7 +1615,7 @@ btf_mark_type_used (tree t) if (!dtd) return; - btf_add_used_type (ctfc, dtd, false, false, true); + btf_add_used_type (ctfc, dtd); } /* Callback used for assembling the only-used-types list. Note that this is @@ -1549,7 +1642,7 @@ btf_collect_pruned_types (ctf_container_ref ctfc) size_t i; FOR_EACH_VEC_ELT (*funcs, i, dtd) { - btf_add_used_type (ctfc, dtd->ref_type, false, false, true); + btf_add_used_type (ctfc, dtd->ref_type); ctf_add_string (ctfc, dtd->dtd_name, &(dtd->dtd_data.ctti_name), CTF_STRTAB); } @@ -1558,10 +1651,33 @@ btf_collect_pruned_types (ctf_container_ref ctfc) for (i = 0; i < ctfc->ctfc_vars_list_count; i++) { ctf_dvdef_ref dvd = ctfc->ctfc_vars_list[i]; - btf_add_used_type (ctfc, dvd->dvd_type, false, false, true); + btf_add_used_type (ctfc, dvd->dvd_type); ctf_add_string (ctfc, dvd->dvd_name, &(dvd->dvd_name_offset), CTF_STRTAB); } + /* Used type tags will be added by recursive btf_add_used_type calls above. + For decl tags, scan the list and only add those decl tags whose referent + types are marked as used. We may have pruned a struct type with members + annotated by a decl tag. */ + FOR_EACH_VEC_ELT (*ctfc->ctfc_tags, i, dtd) + { + /* Only add decl tags whose referent types have not been pruned. + Variables are never pruned, so decl tags on variables are always + used. */ + if (btf_dtd_kind (dtd) == BTF_KIND_DECL_TAG + && ((dtd->ref_type && btf_used_types->contains (dtd->ref_type)) + || (dtd->dtd_u.dtu_tag.ref_var))) + btf_add_used_type (ctfc, dtd); + + /* Tags on functions or function args will have a ref_type pointing to the + FUNC_PROTO, we want them to point the FUNC record instead. */ + ctf_dtdef_ref *pdtd = NULL; + if (dtd->ref_type + && btf_used_types->contains (dtd->ref_type) + && (pdtd = func_map->get (dtd->ref_type)) != NULL) + dtd->ref_type = *pdtd; + } + /* Process fixups. If the base type was never added, create a forward for it and adjust the reference to point to that. If it was added, then nothing needs to change. */ @@ -1634,6 +1750,13 @@ btf_finish (void) btf_assign_var_ids (tu_ctfc); btf_assign_func_ids (tu_ctfc); + + /* Both decl and type tags may be pruned if the types/decls to which they + refer are pruned. This is handled in btf_collect_pruned_types, and + through that process they have also been assigned ids already. */ + if (!debug_prune_btf) + btf_assign_tag_ids (tu_ctfc); + btf_assign_datasec_ids (tu_ctfc); /* Finally, write out the complete .BTF section. */ diff --git a/gcc/c-family/ChangeLog b/gcc/c-family/ChangeLog index bf15d94c1bd4..feffdf143949 100644 --- a/gcc/c-family/ChangeLog +++ b/gcc/c-family/ChangeLog @@ -1,3 +1,62 @@ +2025-10-09 David Faust + + * c-attribs.cc (c_common_attribute_table): Add btf_decl_tag and + btf_type_tag attributes. + (handle_btf_decl_tag_attribute): New handler for btf_decl_tag. + (hanlde_btf_type_tag_attribute): New handler for btf_type_tag. + (btf_tag_args_ok): Helper for new attribute handlers. + +2025-10-09 Jakub Jelinek + + * c-common.h (D_CXX26): Define. + * c-common.cc (c_common_resword): Add D_CXX26 to + __builtin_c23_va_start flags, mention D_CXX26 in comment. + +2025-10-09 Jakub Jelinek + + PR c/122188 + * c-gimplify.cc (c_gimplify_expr): Also gimplify the second operand + before the COND_EXPR and use in COND_EXPR result of gimplification. + +2025-10-09 David Malcolm + + * c-opts.cc: Define INCLUDE_VECTOR. + +2025-10-08 Jakub Jelinek + + PR c/122188 + * c-gimplify.cc (c_gimplify_expr): Gimplify CALL_EXPR_ARG (*expr_p, 0) + instead of calling save_expr on it. + +2025-10-04 Jakub Jelinek + + PR c++/114457 + * c-opts.cc (c_common_post_options): For C++26 set + flag_auto_var_init to AUTO_INIT_CXX26 if not specified explicitly. + For C++ disable warn_trivial_auto_var_init. + +2025-10-04 Nathaniel Shead + + PR c++/117658 + * c.opt: New flag '-Wexternal-tu-local'. + * c.opt.urls: Regenerate. + +2025-10-02 Alfie Richards + + * c-attribs.cc (attr_target_clones_exclusions): Add simd and omp + exclusions. + (attr_target_version_exclusions): New definition with simd and omp + exclusions. + (attr_omp_declare_simd_exclusions): New definition with target_version + and clones exclusions. + (attr_simd_exclusions): Ditto. + (c_common_gnu_attributes): Add new target_version, simd, and omp + declare simd variables. + +2025-10-01 Alejandro Colomar + + * c.opt.urls: Regenerate + 2025-09-26 Alejandro Colomar * c.opt: Add -Wmultiple-parameter-fwd-decl-lists diff --git a/gcc/c-family/c-attribs.cc b/gcc/c-family/c-attribs.cc index df9ff9947a89..cf82cdf22316 100644 --- a/gcc/c-family/c-attribs.cc +++ b/gcc/c-family/c-attribs.cc @@ -189,6 +189,9 @@ static tree handle_fd_arg_attribute (tree *, tree, tree, int, bool *); static tree handle_flag_enum_attribute (tree *, tree, tree, int, bool *); static tree handle_null_terminated_string_arg_attribute (tree *, tree, tree, int, bool *); +static tree handle_btf_decl_tag_attribute (tree *, tree, tree, int, bool *); +static tree handle_btf_type_tag_attribute (tree *, tree, tree, int, bool *); + /* Helper to define attribute exclusions. */ #define ATTR_EXCL(name, function, type, variable) \ { name, function, type, variable } @@ -249,6 +252,29 @@ static const struct attribute_spec::exclusions attr_target_clones_exclusions[] = ATTR_EXCL ("always_inline", true, true, true), ATTR_EXCL ("target", TARGET_HAS_FMV_TARGET_ATTRIBUTE, TARGET_HAS_FMV_TARGET_ATTRIBUTE, TARGET_HAS_FMV_TARGET_ATTRIBUTE), + ATTR_EXCL ("omp declare simd", true, true, true), + ATTR_EXCL ("simd", true, true, true), + ATTR_EXCL (NULL, false, false, false), +}; + +static const struct attribute_spec::exclusions attr_target_version_exclusions[] = +{ + ATTR_EXCL ("omp declare simd", true, true, true), + ATTR_EXCL ("simd", true, true, true), + ATTR_EXCL (NULL, false, false, false), +}; + +static const struct attribute_spec::exclusions attr_omp_declare_simd_exclusions[] = +{ + ATTR_EXCL ("target_version", true, true, true), + ATTR_EXCL ("target_clones", true, true, true), + ATTR_EXCL (NULL, false, false, false), +}; + +static const struct attribute_spec::exclusions attr_simd_exclusions[] = +{ + ATTR_EXCL ("target_version", true, true, true), + ATTR_EXCL ("target_clones", true, true, true), ATTR_EXCL (NULL, false, false, false), }; @@ -536,7 +562,7 @@ const struct attribute_spec c_common_gnu_attributes[] = attr_target_exclusions }, { "target_version", 1, 1, true, false, false, false, handle_target_version_attribute, - NULL }, + attr_target_version_exclusions}, { "target_clones", 1, -1, true, false, false, false, handle_target_clones_attribute, attr_target_clones_exclusions }, @@ -563,7 +589,8 @@ const struct attribute_spec c_common_gnu_attributes[] = { "returns_nonnull", 0, 0, false, true, true, false, handle_returns_nonnull_attribute, NULL }, { "omp declare simd", 0, -1, true, false, false, false, - handle_omp_declare_simd_attribute, NULL }, + handle_omp_declare_simd_attribute, + attr_omp_declare_simd_exclusions }, { "omp declare variant base", 0, -1, true, false, false, false, handle_omp_declare_variant_attribute, NULL }, { "omp declare variant variant", 0, -1, true, false, false, false, @@ -572,7 +599,7 @@ const struct attribute_spec c_common_gnu_attributes[] = false, false, handle_omp_declare_variant_attribute, NULL }, { "simd", 0, 1, true, false, false, false, - handle_simd_attribute, NULL }, + handle_simd_attribute, attr_simd_exclusions }, { "omp declare target", 0, -1, true, false, false, false, handle_omp_declare_target_attribute, NULL }, { "omp declare target link", 0, 0, true, false, false, false, @@ -633,7 +660,11 @@ const struct attribute_spec c_common_gnu_attributes[] = { "flag_enum", 0, 0, false, true, false, false, handle_flag_enum_attribute, NULL }, { "null_terminated_string_arg", 1, 1, false, true, true, false, - handle_null_terminated_string_arg_attribute, NULL} + handle_null_terminated_string_arg_attribute, NULL}, + { "btf_type_tag", 1, 1, false, true, false, false, + handle_btf_type_tag_attribute, NULL}, + { "btf_decl_tag", 1, 1, true, false, false, false, + handle_btf_decl_tag_attribute, NULL} }; const struct scoped_attribute_specs c_common_gnu_attribute_table = @@ -5148,6 +5179,107 @@ handle_null_terminated_string_arg_attribute (tree *node, tree name, tree args, return NULL_TREE; } +/* Common argument checking for btf_type_tag and btf_decl_tag. + Return true if the ARGS are valid, otherwise emit an error and + return false. */ + +static bool +btf_tag_args_ok (tree name, tree args) +{ + if (!args) /* Correct number of args (1) is checked for us. */ + return false; + else if (TREE_CODE (TREE_VALUE (args)) != STRING_CST) + { + error ("%qE attribute requires a string argument", name); + return false; + } + + /* Only narrow character strings are accepted. */ + tree argtype = TREE_TYPE (TREE_TYPE (TREE_VALUE (args))); + if (!(argtype == char_type_node + || argtype == char8_type_node + || argtype == signed_char_type_node + || argtype == unsigned_char_type_node)) + { + error ("unsupported wide string type argument in %qE attribute", name); + return false; + } + + return true; +} + +/* Handle the "btf_decl_tag" attribute. */ + +static tree +handle_btf_decl_tag_attribute (tree * ARG_UNUSED (node), tree name, tree args, + int ARG_UNUSED (flags), bool *no_add_attrs) +{ + if (!btf_tag_args_ok (name, args)) + *no_add_attrs = true; + + return NULL_TREE; +} + +/* Handle the "btf_type_tag" attribute. */ + +static tree +handle_btf_type_tag_attribute (tree *node, tree name, tree args, + int flags, bool *no_add_attrs) +{ + if (!btf_tag_args_ok (name, args)) + { + *no_add_attrs = true; + return NULL_TREE; + } + + if (TREE_CODE (*node) == FUNCTION_TYPE || TREE_CODE (*node) == METHOD_TYPE) + { + warning (OPT_Wattributes, + "%qE attribute does not apply to functions", name); + *no_add_attrs = true; + return NULL_TREE; + } + + /* Ensure a variant type is always created to hold the type_tag, + unless ATTR_FLAG_IN_PLACE is set. Same logic as in + common_handle_aligned_attribute. */ + tree decl = NULL_TREE; + tree *type = NULL; + bool is_type = false; + + if (DECL_P (*node)) + { + decl = *node; + type = &TREE_TYPE (decl); + is_type = TREE_CODE (*node) == TYPE_DECL; + } + else if (TYPE_P (*node)) + type = node, is_type = true; + + if (is_type) + { + if ((flags & (int) ATTR_FLAG_TYPE_IN_PLACE)) + /* OK, modify the type in place. */; + + /* If we have a TYPE_DECL, then copy the type, so that we + don't accidentally modify a builtin type. See pushdecl. */ + else if (decl && TREE_TYPE (decl) != error_mark_node + && DECL_ORIGINAL_TYPE (decl) == NULL_TREE) + { + tree tt = TREE_TYPE (decl); + *type = build_variant_type_copy (*type); + DECL_ORIGINAL_TYPE (decl) = tt; + TYPE_NAME (*type) = decl; + TREE_USED (*type) = TREE_USED (decl); + TREE_TYPE (decl) = *type; + } + else + *type = build_variant_type_copy (*type); + } + + return NULL_TREE; +} + /* Handle the "nonstring" variable attribute. */ static tree diff --git a/gcc/c-family/c-common.cc b/gcc/c-family/c-common.cc index e7dd4602ac11..54e16f708134 100644 --- a/gcc/c-family/c-common.cc +++ b/gcc/c-family/c-common.cc @@ -376,9 +376,10 @@ static bool nonnull_check_p (tree, unsigned HOST_WIDE_INT); C --std=c17: D_C23 | D_CXXONLY | D_OBJC C --std=c23: D_CXXONLY | D_OBJC ObjC is like C except that D_OBJC and D_CXX_OBJC are not set - C++ --std=c++98: D_CONLY | D_CXX11 | D_CXX20 | D_OBJC - C++ --std=c++11: D_CONLY | D_CXX20 | D_OBJC - C++ --std=c++20: D_CONLY | D_OBJC + C++ --std=c++98: D_CONLY | D_CXX11 | D_CXX20 | D_CXX26 | D_OBJC + C++ --std=c++11: D_CONLY | D_CXX20 | D_CXX26 | D_OBJC + C++ --std=c++20: D_CONLY | D_CXX26 | D_OBJC + C++ --std=c++26: D_CONLY | D_OBJC ObjC++ is like C++ except that D_OBJC is not set If -fno-asm is used, D_ASM is added to the mask. If @@ -462,7 +463,7 @@ const struct c_common_resword c_common_reswords[] = { "__builtin_tgmath", RID_BUILTIN_TGMATH, D_CONLY }, { "__builtin_offsetof", RID_OFFSETOF, 0 }, { "__builtin_types_compatible_p", RID_TYPES_COMPATIBLE_P, D_CONLY }, - { "__builtin_c23_va_start", RID_C23_VA_START, D_C23 }, + { "__builtin_c23_va_start", RID_C23_VA_START, D_C23 | D_CXX26 }, { "__builtin_va_arg", RID_VA_ARG, 0 }, { "__complex", RID_COMPLEX, 0 }, { "__complex__", RID_COMPLEX, 0 }, diff --git a/gcc/c-family/c-common.h b/gcc/c-family/c-common.h index b6021d241731..bedbd4a94b0e 100644 --- a/gcc/c-family/c-common.h +++ b/gcc/c-family/c-common.h @@ -448,6 +448,7 @@ extern machine_mode c_default_pointer_mode; #define D_CXX20 0x8000 /* In C++, C++20 only. */ #define D_CXX_COROUTINES 0x10000 /* In C++, only with coroutines. */ #define D_CXX_MODULES 0x20000 /* In C++, only with modules. */ +#define D_CXX26 0x40000 /* In C++, C++26 only. */ #define D_CXX_CONCEPTS_FLAGS D_CXXONLY | D_CXX_CONCEPTS #define D_CXX_CHAR8_T_FLAGS D_CXXONLY | D_CXX_CHAR8_T diff --git a/gcc/c-family/c-gimplify.cc b/gcc/c-family/c-gimplify.cc index 131eca8297f8..2249c101cf56 100644 --- a/gcc/c-family/c-gimplify.cc +++ b/gcc/c-family/c-gimplify.cc @@ -1036,7 +1036,14 @@ c_gimplify_expr (tree *expr_p, gimple_seq *pre_p ATTRIBUTE_UNUSED, && call_expr_nargs (*expr_p) == 2 && TREE_CODE (CALL_EXPR_ARG (*expr_p, 1)) != INTEGER_CST) { - tree a = save_expr (CALL_EXPR_ARG (*expr_p, 0)); + tree a = CALL_EXPR_ARG (*expr_p, 0); + if (gimplify_expr (&a, pre_p, post_p, is_gimple_val, fb_rvalue) + == GS_ERROR) + return GS_ERROR; + tree b = CALL_EXPR_ARG (*expr_p, 1); + if (gimplify_expr (&b, pre_p, post_p, is_gimple_val, fb_rvalue) + == GS_ERROR) + return GS_ERROR; tree c = build_call_expr_loc (EXPR_LOCATION (*expr_p), fndecl, 1, a); *expr_p = build3_loc (EXPR_LOCATION (*expr_p), COND_EXPR, @@ -1044,7 +1051,7 @@ c_gimplify_expr (tree *expr_p, gimple_seq *pre_p ATTRIBUTE_UNUSED, build2_loc (EXPR_LOCATION (*expr_p), NE_EXPR, boolean_type_node, a, build_zero_cst (TREE_TYPE (a))), - c, CALL_EXPR_ARG (*expr_p, 1)); + c, b); return GS_OK; } break; diff --git a/gcc/c-family/c-opts.cc b/gcc/c-family/c-opts.cc index 0ec30e852158..7bec3f105997 100644 --- a/gcc/c-family/c-opts.cc +++ b/gcc/c-family/c-opts.cc @@ -18,6 +18,7 @@ You should have received a copy of the GNU General Public License along with GCC; see the file COPYING3. If not see . */ +#define INCLUDE_VECTOR #include "config.h" #include "system.h" #include "coretypes.h" @@ -913,6 +914,16 @@ c_common_post_options (const char **pfilename) else flag_permitted_flt_eval_methods = PERMITTED_FLT_EVAL_METHODS_C11; + if (cxx_dialect >= cxx26) + SET_OPTION_IF_UNSET (&global_options, &global_options_set, + flag_auto_var_init, AUTO_INIT_CXX26); + + /* The -Wtrivial-auto-var-init warning is useless for C++, where we always + add .DEFERRED_INIT calls when some (vacuous) initializers are bypassed + through jumps from switch condition to case/default label. */ + if (c_dialect_cxx ()) + warn_trivial_auto_var_init = 0; + /* C23 Annex F does not permit certain built-in functions to raise "inexact". */ if (flag_isoc23) diff --git a/gcc/c-family/c.opt b/gcc/c-family/c.opt index 4fd8770b65c3..abe0aa6b397a 100644 --- a/gcc/c-family/c.opt +++ b/gcc/c-family/c.opt @@ -761,6 +761,10 @@ Wexpansion-to-defined C ObjC C++ ObjC++ CPP(warn_expansion_to_defined) CppReason(CPP_W_EXPANSION_TO_DEFINED) Var(cpp_warn_expansion_to_defined) Init(0) Warning EnabledBy(Wextra || Wpedantic) Warn if \"defined\" is used outside #if. +Wexternal-tu-local +C++ ObjC++ Var(warn_tu_local) Warning Init(1) +Warn about naming a TU-local entity declared in another translation unit. + Wextra C ObjC C++ ObjC++ Warning ; in common.opt diff --git a/gcc/c-family/c.opt.urls b/gcc/c-family/c.opt.urls index e09d51d8afb9..399f9f8a659e 100644 --- a/gcc/c-family/c.opt.urls +++ b/gcc/c-family/c.opt.urls @@ -376,6 +376,9 @@ UrlSuffix(gcc/C_002b_002b-Dialect-Options.html#index-Wexceptions) Wexpansion-to-defined UrlSuffix(gcc/Warning-Options.html#index-Wexpansion-to-defined) +Wexternal-tu-local +UrlSuffix(gcc/C_002b_002b-Dialect-Options.html#index-Wexternal-tu-local) + Wextra UrlSuffix(gcc/Warning-Options.html#index-Wextra) LangUrlSuffix_D(gdc/Warnings.html#index-Wextra) LangUrlSuffix_Fortran(gfortran/Error-and-Warning-Options.html#index-Wextra) @@ -595,6 +598,9 @@ UrlSuffix(gcc/Warning-Options.html#index-Wmultichar) Wmultiple-inheritance UrlSuffix(gcc/C_002b_002b-Dialect-Options.html#index-Wmultiple-inheritance) +Wmultiple-parameter-fwd-decl-lists +UrlSuffix(gcc/Warning-Options.html#index-Wmultiple-parameter-fwd-decl-lists) + Wmultistatement-macros UrlSuffix(gcc/Warning-Options.html#index-Wmultistatement-macros) diff --git a/gcc/c/ChangeLog b/gcc/c/ChangeLog index ef985ba3d61b..241e71bf25ce 100644 --- a/gcc/c/ChangeLog +++ b/gcc/c/ChangeLog @@ -1,3 +1,61 @@ +2025-10-08 Joseph Myers + + * c-typeck.cc (in_generic, save_maybe_used, restore_maybe_used): + New. + (mark_decl_used, record_maybe_used_decl, pop_maybe_used): Use + in_generic. + (struct maybe_used_decl): Move to c-tree.h. + * c-tree.h (struct maybe_used_decl): Move from c-typeck.cc. + (in_generic, save_maybe_used, restore_maybe_used): Declare. + * c-parser.cc (c_parser_generic_selection): Increment and + decrement in_generic. Use pop_maybe_used, save_maybe_used and + restore_maybe_used. + +2025-10-08 Martin Uecker + + * c-parser.cc (c_parser_generic_selection): Change + error_at to pedwarn_c23. + +2025-10-08 Alfie Richards + + PR target/122180 + * c-decl.cc (pushdecl): Add TARGET_HAS_FMV_TARGET_ATTRIBUTE check. + +2025-10-07 Joseph Myers + + PR c/26581 + * c-decl.cc (c_finish_incomplete_decl): Give error for tentative + definition of incomplete array for C2y with internal linkage. + (finish_decl): Do not set DO_DEFAULT based on -pedantic. Use + pedwarn_c23 for missing array sizes for internal linkage. + +2025-10-02 Alfie Richards + + * c-decl.cc (maybe_mark_function_versioned): Add diagnostic. + * c-parser.cc (c_finish_omp_declare_simd): Add diagnostic. + +2025-10-02 Alfie Richards + + * c-decl.cc (maybe_mark_function_versioned): New function. + (merge_decls): Preserve DECL_FUNCTION_VERSIONED in merging. + (duplicate_decls): Add check and diagnostic for unmergable version decls. + (pushdecl): Add FMV target_version logic. + (lookup_name): Don't resolve non-default versions. + (start_decl): Mark and mangle versioned functions. + (start_function): Mark and mangle versioned functions. + (c_parse_final_cleanups): Add call to process_same_body_aliases. + +2025-10-01 Jan Hubicka + + * Make-lang.in: Add c_FDAS + (create_fdas_for_cc1): Be sure that build fails if create_gcov fails. + +2025-09-30 Martin Uecker + + PR target/121933 + * c-typeck.cc (mark_decl_used): Set DECL_NONLOCAL + only for VAR_DECL, FUNC_DECL, PARM_DECL. + 2025-09-26 Alejandro Colomar * c-decl.cc (c_scope): Rename {warned > had}_forward_parm_decls. diff --git a/gcc/c/Make-lang.in b/gcc/c/Make-lang.in index 2517b64439fe..f09fc99467b9 100644 --- a/gcc/c/Make-lang.in +++ b/gcc/c/Make-lang.in @@ -58,6 +58,7 @@ C_AND_OBJC_OBJS = attribs.o c/c-errors.o c/c-decl.o c/c-typeck.o \ # Language-specific object files for C. C_OBJS = c/c-lang.o c-family/stub-objc.o $(C_AND_OBJC_OBJS) c_OBJS = $(C_OBJS) cc1-checksum.o c/gccspec.o +c_FDAS = cc1.fda # Use strict warnings for this front end. c-warn = $(STRICT_WARN) @@ -101,7 +102,7 @@ create_fdas_for_cc1: ../stage1-gcc/cc1$(exeext) ../prev-gcc/$(PERF_DATA) echo $$perf_path; \ if [ -f $$perf_path ]; then \ profile_name=cc1_$$component_in_prev.fda; \ - $(CREATE_GCOV) -binary ../stage1-gcc/cc1$(exeext) -gcov $$profile_name -profile $$perf_path -gcov_version 2; \ + $(CREATE_GCOV) -binary ../stage1-gcc/cc1$(exeext) -gcov $$profile_name -profile $$perf_path -gcov_version 2 || exit 1; \ fi; \ done; @@ -111,7 +112,7 @@ create_fdas_for_cc1: ../stage1-gcc/cc1$(exeext) ../prev-gcc/$(PERF_DATA) echo $$perf_path; \ if [ -f $$perf_path ]; then \ profile_name=cc1_$$component_in_prev_target.fda; \ - $(CREATE_GCOV) -binary ../prev-gcc/cc1$(exeext) -gcov $$profile_name -profile $$perf_path -gcov_version 2; \ + $(CREATE_GCOV) -binary ../prev-gcc/cc1$(exeext) -gcov $$profile_name -profile $$perf_path -gcov_version 2 || exit 1; \ fi; \ done; diff --git a/gcc/c/c-decl.cc b/gcc/c/c-decl.cc index 7e4c7c2ac3f6..4a940d5eec33 100644 --- a/gcc/c/c-decl.cc +++ b/gcc/c/c-decl.cc @@ -908,8 +908,12 @@ c_finish_incomplete_decl (tree decl) && !DECL_EXTERNAL (decl) && TYPE_DOMAIN (type) == NULL_TREE) { - warning_at (DECL_SOURCE_LOCATION (decl), - 0, "array %q+D assumed to have one element", decl); + if (flag_isoc2y && !TREE_PUBLIC (decl)) + error_at (DECL_SOURCE_LOCATION (decl), + "array size missing in %q+D", decl); + else + warning_at (DECL_SOURCE_LOCATION (decl), + 0, "array %q+D assumed to have one element", decl); complete_array_type (&TREE_TYPE (decl), NULL_TREE, true); @@ -2086,6 +2090,35 @@ previous_tag (tree type) return NULL_TREE; } +/* Subroutine to mark functions as versioned when using the attribute + 'target_version'. */ + +static void +maybe_mark_function_versioned (tree decl) +{ + if (!DECL_FUNCTION_VERSIONED (decl)) + { + /* Check if the name of the function has been overridden. */ + if (DECL_ASSEMBLER_NAME_SET_P (decl) + && IDENTIFIER_POINTER (DECL_ASSEMBLER_NAME (decl))[0] == '*') + error_at (DECL_SOURCE_LOCATION (decl), + "cannot use function multiversioning on a renamed function"); + + /* We need to insert function version now to make sure the correct + pre-mangled assembler name is recorded. */ + cgraph_node *node = cgraph_node::get_create (decl); + + if (!node->function_version ()) + node->insert_new_function_version (); + + DECL_FUNCTION_VERSIONED (decl) = 1; + + tree mangled_name + = targetm.mangle_decl_assembler_name (decl, DECL_NAME (decl)); + SET_DECL_ASSEMBLER_NAME (decl, mangled_name); + } +} + /* Subroutine of duplicate_decls. Compare NEWDECL to OLDDECL. Returns true if the caller should proceed to merge the two, false if OLDDECL should simply be discarded. As a side effect, issues @@ -2505,6 +2538,10 @@ diagnose_mismatched_decls (tree newdecl, tree olddecl, "but not here"); } } + /* Check if these are unmergable overlapping FMV declarations. */ + if (!TARGET_HAS_FMV_TARGET_ATTRIBUTE + && diagnose_versioned_decls (olddecl, newdecl)) + return false; } else if (VAR_P (newdecl)) { @@ -2971,6 +3008,12 @@ merge_decls (tree newdecl, tree olddecl, tree newtype, tree oldtype) if (TREE_CODE (newdecl) == FUNCTION_DECL) { + if (DECL_FUNCTION_VERSIONED (olddecl) + || DECL_FUNCTION_VERSIONED (newdecl)) + { + maybe_mark_function_versioned (olddecl); + maybe_mark_function_versioned (newdecl); + } /* If we're redefining a function previously defined as extern inline, make sure we emit debug info for the inline before we throw it away, in case it was inlined into a function that @@ -3370,6 +3413,56 @@ pushdecl (tree x) TREE_TYPE (b_use->decl) = b_use->u.type; } } + + /* Check if x is part of a FMV set with b_use. + FMV is only supported in c for targets with target_version + attributes. */ + if (!TARGET_HAS_FMV_TARGET_ATTRIBUTE + && b_use && TREE_CODE (b_use->decl) == FUNCTION_DECL + && TREE_CODE (x) == FUNCTION_DECL && DECL_FILE_SCOPE_P (b_use->decl) + && DECL_FILE_SCOPE_P (x) + && disjoint_version_decls (x, b_use->decl) + && comptypes (vistype, type) != 0) + { + maybe_mark_function_versioned (b_use->decl); + maybe_mark_function_versioned (b->decl); + maybe_mark_function_versioned (x); + + cgraph_node *b_node = cgraph_node::get_create (b_use->decl); + cgraph_function_version_info *b_v = b_node->function_version (); + if (!b_v) + b_v = b_node->insert_new_function_version (); + + /* Check if this new node conflicts with any previous functions + in the set. */ + cgraph_function_version_info *version = b_v; + for (; version; version = version->next) + if (!disjoint_version_decls (version->this_node->decl, x)) + { + /* The decls define overlapping version, so attempt to merge + or diagnose the conflict. */ + if (duplicate_decls (x, version->this_node->decl)) + return version->this_node->decl; + else + return error_mark_node; + } + + /* This is a new version to be added to FMV structure. */ + cgraph_node::add_function_version (b_v, x); + + /* Get the first node from the structure. */ + cgraph_function_version_info *default_v = b_v; + while (default_v->prev) + default_v = default_v->prev; + /* Always use the default node for the bindings. */ + b_use->decl = default_v->this_node->decl; + b->decl = default_v->this_node->decl; + + /* Node is not a duplicate, so no need to do the rest of the + checks. */ + return x; + } + if (duplicate_decls (x, b_use->decl)) { if (b_use != b) @@ -4494,6 +4587,12 @@ tree lookup_name (tree name) { struct c_binding *b = I_SYMBOL_BINDING (name); + /* Do not resolve non-default function versions. */ + if (b + && TREE_CODE (b->decl) == FUNCTION_DECL + && DECL_FUNCTION_VERSIONED (b->decl) + && !is_function_default_version (b->decl)) + return NULL_TREE; if (b && !b->invisible) { maybe_record_typedef_use (b->decl); @@ -5776,6 +5875,17 @@ start_decl (struct c_declarator *declarator, struct c_declspecs *declspecs, && VAR_OR_FUNCTION_DECL_P (decl)) objc_check_global_decl (decl); + /* To enable versions to be created across TU's we mark and mangle all + non-default versioned functions. */ + if (TREE_CODE (decl) == FUNCTION_DECL + && !TARGET_HAS_FMV_TARGET_ATTRIBUTE + && get_target_version (decl).is_valid ()) + { + maybe_mark_function_versioned (decl); + if (current_scope != file_scope) + error ("versioned declarations are only allowed at file scope"); + } + /* Add this decl to the current scope. TEM may equal DECL or it may be a previous decl of the same name. */ if (do_push) @@ -5881,11 +5991,7 @@ finish_decl (tree decl, location_t init_loc, tree init, && !(TREE_PUBLIC (decl) && current_scope != file_scope)) { bool do_default - = (TREE_STATIC (decl) - /* Even if pedantic, an external linkage array - may have incomplete type at first. */ - ? pedantic && !TREE_PUBLIC (decl) - : !DECL_EXTERNAL (decl)); + = !TREE_STATIC (decl) && !DECL_EXTERNAL (decl); int failure = complete_array_type (&TREE_TYPE (decl), DECL_INITIAL (decl), do_default); @@ -5902,6 +6008,9 @@ finish_decl (tree decl, location_t init_loc, tree init, case 2: if (do_default) error ("array size missing in %q+D", decl); + else if (!TREE_PUBLIC (decl)) + pedwarn_c23 (DECL_SOURCE_LOCATION (decl), OPT_Wpedantic, + "array size missing in %q+D", decl); break; case 3: @@ -10754,6 +10863,17 @@ start_function (struct c_declspecs *declspecs, struct c_declarator *declarator, warn_parm_array_mismatch (origloc, old_decl, parms); } + /* To enable versions to be created across TU's we mark and mangle all + non-default versioned functions. */ + if (TREE_CODE (decl1) == FUNCTION_DECL + && !TARGET_HAS_FMV_TARGET_ATTRIBUTE + && get_target_version (decl1).is_valid ()) + { + maybe_mark_function_versioned (decl1); + if (current_scope != file_scope) + error ("versioned definitions are only allowed at file scope"); + } + /* Record the decl so that the function name is defined. If we already have a decl for this name, and it is a FUNCTION_DECL, use the old decl. */ @@ -13585,6 +13705,10 @@ c_parse_final_cleanups (void) c_write_global_declarations_1 (BLOCK_VARS (DECL_INITIAL (t))); c_write_global_declarations_1 (BLOCK_VARS (ext_block)); + /* Call this to set cpp_implicit_aliases_done on all nodes. This is + important for function multiversioning aliases to get resolved. */ + symtab->process_same_body_aliases (); + if (!in_lto_p) free_attr_access_data (); diff --git a/gcc/c/c-parser.cc b/gcc/c/c-parser.cc index df44a915ed4f..ea0294f0738e 100644 --- a/gcc/c/c-parser.cc +++ b/gcc/c/c-parser.cc @@ -11183,9 +11183,12 @@ c_parser_generic_selection (c_parser *parser) else { c_inhibit_evaluation_warnings++; + in_generic++; selector = c_parser_expr_no_commas (parser, NULL); selector = default_function_array_conversion (selector_loc, selector); c_inhibit_evaluation_warnings--; + in_generic--; + pop_maybe_used (!flag_isoc23); if (selector.value == error_mark_node) { @@ -11214,6 +11217,7 @@ c_parser_generic_selection (c_parser *parser) } auto_vec associations; + struct maybe_used_decl *maybe_used_default = NULL; while (1) { struct c_generic_association assoc, *iter; @@ -11253,9 +11257,9 @@ c_parser_generic_selection (c_parser *parser) "incomplete type before C2Y"); if (c_type_variably_modified_p (assoc.type)) - error_at (assoc.type_location, - "%<_Generic%> association has " - "variable length type"); + pedwarn_c23 (assoc.type_location, OPT_Wpedantic, + "ISO C does not support %<_Generic%> association with " + "variably-modified type before C2Y"); } if (!c_parser_require (parser, CPP_COLON, "expected %<:%>")) @@ -11269,11 +11273,19 @@ c_parser_generic_selection (c_parser *parser) if (!match) c_inhibit_evaluation_warnings++; + in_generic++; assoc.expression = c_parser_expr_no_commas (parser, NULL); if (!match) c_inhibit_evaluation_warnings--; + in_generic--; + if (!match) + pop_maybe_used (!flag_isoc23); + else if (assoc.type == NULL_TREE) + maybe_used_default = save_maybe_used (); + else + pop_maybe_used (true); if (assoc.expression.value == error_mark_node) { @@ -11334,6 +11346,20 @@ c_parser_generic_selection (c_parser *parser) c_parser_consume_token (parser); } + if (match_found >= 0 && matched_assoc.type == NULL_TREE) + { + /* Declarations referenced in the default association are used. */ + restore_maybe_used (maybe_used_default); + pop_maybe_used (true); + } + else if (maybe_used_default) + { + /* Declarations referenced in the default association are not used, but + are treated as used before C23. */ + restore_maybe_used (maybe_used_default); + pop_maybe_used (!flag_isoc23); + } + unsigned int ix; struct c_generic_association *iter; FOR_EACH_VEC_ELT (associations, ix, iter) @@ -27776,6 +27802,13 @@ c_finish_omp_declare_simd (c_parser *parser, tree fndecl, tree parms, clauses[0].type = CPP_EOF; return; } + if (DECL_FUNCTION_VERSIONED (fndecl)) + { + error_at (DECL_SOURCE_LOCATION (fndecl), + "%<#pragma omp declare %s%> cannot be used with function " + "multi-versioning", kind); + return; + } if (parms == NULL_TREE) parms = DECL_ARGUMENTS (fndecl); diff --git a/gcc/c/c-tree.h b/gcc/c/c-tree.h index a06565d1e8bc..162add0522ac 100644 --- a/gcc/c/c-tree.h +++ b/gcc/c/c-tree.h @@ -624,6 +624,19 @@ enum c_inline_static_type { csi_modifiable }; +/* Record details of decls possibly used inside sizeof or typeof. */ +struct maybe_used_decl +{ + /* The decl. */ + tree decl; + /* The level seen at (in_sizeof + in_typeof + in_countof + in_generic). */ + int level; + /* Seen in address-of. */ + bool address; + /* The next one at this level or above, or NULL. */ + struct maybe_used_decl *next; +}; + /* in c-parser.cc */ struct c_tree_token_vec; @@ -774,6 +787,7 @@ extern int in_alignof; extern int in_sizeof; extern int in_countof; extern int in_typeof; +extern int in_generic; extern bool c_in_omp_for; extern bool c_omp_array_section_p; @@ -833,6 +847,8 @@ extern tree build_array_ref (location_t, tree, tree); extern tree build_omp_array_section (location_t, tree, tree, tree); extern tree build_external_ref (location_t, tree, bool, tree *); extern void pop_maybe_used (bool); +extern struct maybe_used_decl *save_maybe_used (); +extern void restore_maybe_used (struct maybe_used_decl *); extern void mark_decl_used (tree, bool); extern struct c_expr c_expr_sizeof_expr (location_t, struct c_expr); extern struct c_expr c_expr_sizeof_type (location_t, struct c_type_name *); diff --git a/gcc/c/c-typeck.cc b/gcc/c/c-typeck.cc index b96215adc768..371583bd64ed 100644 --- a/gcc/c/c-typeck.cc +++ b/gcc/c/c-typeck.cc @@ -78,6 +78,9 @@ int in_countof; /* The level of nesting inside "typeof". */ int in_typeof; +/* The level of nesting inside "_Generic". */ +int in_generic; + /* True when parsing OpenMP loop expressions. */ bool c_in_omp_for; @@ -3690,13 +3693,14 @@ mark_decl_used (tree ref, bool address) return; /* If we may be in an unevaluated context, delay the decision. */ - if (in_sizeof || in_typeof || in_countof) + if (in_sizeof || in_typeof || in_countof || in_generic) return record_maybe_used_decl (ref, address); if (static_p) C_DECL_USED (ref) = 1; - if (nonloc_p) + if (nonloc_p && (VAR_OR_FUNCTION_DECL_P (ref) + || TREE_CODE (ref) == PARM_DECL)) DECL_NONLOCAL (ref) = 1; /* Nothing to do anymore. */ @@ -3841,46 +3845,36 @@ build_external_ref (location_t loc, tree id, bool fun, tree *type) return ref; } -/* Record details of decls possibly used inside sizeof or typeof. */ -struct maybe_used_decl -{ - /* The decl. */ - tree decl; - /* The level seen at (in_sizeof + in_typeof + in_countof). */ - int level; - /* Seen in address-of. */ - bool address; - /* The next one at this level or above, or NULL. */ - struct maybe_used_decl *next; -}; - static struct maybe_used_decl *maybe_used_decls; -/* Record that DECL, a reference seen inside sizeof or typeof, might be used - if the operand of sizeof is a VLA type or the operand of typeof is a variably - modified type. */ +/* Record that DECL, a reference seen inside sizeof or typeof or _Countof or + _Generic, might be used if the operand of sizeof is a VLA type or the + operand of typeof is a variably modified type or the operand of _Countof has + a variable number of elements or the operand of _Generic is the one selected + as the result. */ static void record_maybe_used_decl (tree decl, bool address) { struct maybe_used_decl *t = XOBNEW (&parser_obstack, struct maybe_used_decl); t->decl = decl; - t->level = in_sizeof + in_typeof + in_countof; + t->level = in_sizeof + in_typeof + in_countof + in_generic; t->address = address; t->next = maybe_used_decls; maybe_used_decls = t; } -/* Pop the stack of decls possibly used inside sizeof or typeof. If - USED is false, just discard them. If it is true, mark them used - (if no longer inside sizeof or typeof) or move them to the next - level up (if still inside sizeof or typeof). */ +/* Pop the stack of decls possibly used inside sizeof or typeof or _Countof or + _Generic. If USED is false, just discard them. If it is true, mark them + used (if no longer inside sizeof or typeof or _Countof or _Generic) or move + them to the next level up (if still inside sizeof or typeof or _Countof or + _Generic). */ void pop_maybe_used (bool used) { struct maybe_used_decl *p = maybe_used_decls; - int cur_level = in_sizeof + in_typeof + in_countof; + int cur_level = in_sizeof + in_typeof + in_countof + in_generic; while (p && p->level > cur_level) { if (used) @@ -3896,6 +3890,35 @@ pop_maybe_used (bool used) maybe_used_decls = p; } +/* Pop the stack of decls possibly used inside sizeof or typeof or _Countof or + _Generic, without acting on them, and return the pointer to the previous top + of the stack. This for use at the end of a default generic association when + it is not yet known whether the expression is used. If it later turns out + the expression is used (or treated as used before C23), restore_maybe_used + should be called on the return value followed by pop_maybe_used (true); + otherwise, the return value can be discarded. */ + +struct maybe_used_decl * +save_maybe_used () +{ + struct maybe_used_decl *p = maybe_used_decls, *orig = p; + int cur_level = in_sizeof + in_typeof + in_countof + in_generic; + while (p && p->level > cur_level) + p = p->next; + maybe_used_decls = p; + return orig; +} + +/* Restore the stack of decls possibly used inside sizeof or typeof or _Countof + or _Generic returned by save_maybe_used. It is required that the stack is + at exactly the point where it was left by save_maybe_used. */ + +void +restore_maybe_used (struct maybe_used_decl *stack) +{ + maybe_used_decls = stack; +} + /* Return the result of sizeof applied to EXPR. */ struct c_expr diff --git a/gcc/cfghooks.cc b/gcc/cfghooks.cc index 5f7fc2723745..25bc5d4b2732 100644 --- a/gcc/cfghooks.cc +++ b/gcc/cfghooks.cc @@ -817,6 +817,15 @@ merge_blocks (basic_block a, basic_block b) if (!cfg_hooks->merge_blocks) internal_error ("%s does not support merge_blocks", cfg_hooks->name); + /* Pick the more reliable count. If both qualities agrees, pick the larger + one since turning mistakely hot code to cold is more harmful. */ + if (!a->count.initialized_p ()) + a->count = b->count; + else if (a->count.quality () < b->count.quality ()) + a->count = b->count; + else if (a->count.quality () == b->count.quality ()) + a->count = a->count.max (b->count); + cfg_hooks->merge_blocks (a, b); if (current_loops != NULL) diff --git a/gcc/common.opt b/gcc/common.opt index f6d93dc05fbd..6c993a8a6d38 100644 --- a/gcc/common.opt +++ b/gcc/common.opt @@ -3439,6 +3439,10 @@ Use the Modern linker (MOLD) linker instead of the default linker. fuse-linker-plugin Common Undocumented Var(flag_use_linker_plugin) +flink-libatomic +Common Driver Var(flag_link_libatomic) Init(1) +Enable linking of libatomic. + ; Positive if we should track variables, negative if we should run ; the var-tracking pass only to discard debug annotations, zero if ; we're not to run it. diff --git a/gcc/common.opt.urls b/gcc/common.opt.urls index ddc5eaf9c6be..ab6b4316df9f 100644 --- a/gcc/common.opt.urls +++ b/gcc/common.opt.urls @@ -1634,6 +1634,9 @@ UrlSuffix(gcc/Link-Options.html#index-fuse-ld_003dmold) fuse-linker-plugin UrlSuffix(gcc/Optimize-Options.html#index-fuse-linker-plugin) +flink-libatomic +UrlSuffix(gcc/Link-Options.html#index-flink-libatomic) + fvar-tracking UrlSuffix(gcc/Debugging-Options.html#index-fvar-tracking) diff --git a/gcc/config.gcc b/gcc/config.gcc index 9c8f4d05330b..a73bf9578e91 100644 --- a/gcc/config.gcc +++ b/gcc/config.gcc @@ -149,6 +149,9 @@ # d_target_objs List of extra target-dependent objects that be # linked into the D compiler only. # +# jit_target_objs List of extra target-dependent objects that be +# linked into the jit compiler only. +# # fortran_target_objs List of extra target-dependent objects that be # linked into the fortran compiler only. # @@ -210,6 +213,9 @@ # # target_has_targetrustm Set to yes or no depending on whether the target # has its own definition of targetrustm. +# +# target_has_targetjitm Set to yes or no depending on whether the target +# has its own definition of targetjitm. out_file= common_out_file= @@ -226,12 +232,14 @@ extra_options= c_target_objs= cxx_target_objs= d_target_objs= +jit_target_objs= fortran_target_objs= rust_target_objs= target_has_targetcm=no target_has_targetm_common=yes target_has_targetdm=no target_has_targetrustm=no +target_has_targetjitm=no tm_defines= xm_defines= # Set this to force installation and use of collect2. @@ -416,6 +424,7 @@ i[34567]86-*-* | x86_64-*-*) c_target_objs="i386-c.o" cxx_target_objs="i386-c.o" d_target_objs="i386-d.o" + jit_target_objs="i386-jit.o" extra_objs="x86-tune-sched.o x86-tune-sched-bd.o x86-tune-sched-atom.o x86-tune-sched-core.o i386-options.o i386-builtins.o i386-expand.o i386-features.o" target_gtfiles="\$(srcdir)/config/i386/i386-builtins.cc \$(srcdir)/config/i386/i386-expand.cc \$(srcdir)/config/i386/i386-options.cc" extra_options="${extra_options} fused-madd.opt" @@ -620,6 +629,12 @@ then rust_target_objs="${rust_target_objs} ${cpu_type}-rust.o" fi +tm_jit_file= +if test -f ${srcdir}/config/${cpu_type}/${cpu_type}-jit.h +then + tm_jit_file="${tm_jit_file} ${cpu_type}/${cpu_type}-jit.h" +fi + extra_modes= if test -f ${srcdir}/config/${cpu_type}/${cpu_type}-modes.def then @@ -3714,6 +3729,10 @@ if [ "$target_has_targetrustm" = "no" ]; then rust_target_objs="$rust_target_objs default-rust.o" fi +if [ "$target_has_targetjitm" = "no" ]; then + jit_target_objs="$jit_target_objs default-jit.o" +fi + # Support for --with-cpu and related options (and a few unrelated options, # too). case ${with_cpu} in @@ -6087,6 +6106,7 @@ case ${target} in c_target_objs="${c_target_objs} ${cpu_type}-c.o" cxx_target_objs="${cxx_target_objs} ${cpu_type}-c.o" d_target_objs="${d_target_objs} ${cpu_type}-d.o" + jit_target_objs="${jit_target_objs} ${cpu_type}-jit.o" tmake_file="${cpu_type}/t-${cpu_type} ${tmake_file}" ;; diff --git a/gcc/config.in b/gcc/config.in index 183d0dfcada4..0c634dfc538e 100644 --- a/gcc/config.in +++ b/gcc/config.in @@ -2626,6 +2626,12 @@ #endif +/* Define if libatomic is built for the target. */ +#ifndef USED_FOR_TARGET +#undef TARGET_PROVIDES_LIBATOMIC +#endif + + /* Define to 1 if you can safely include both and . */ #ifndef USED_FOR_TARGET #undef TIME_WITH_SYS_TIME diff --git a/gcc/config/aarch64/aarch64-sve-builtins.cc b/gcc/config/aarch64/aarch64-sve-builtins.cc index 22d75197188d..4956e364929c 100644 --- a/gcc/config/aarch64/aarch64-sve-builtins.cc +++ b/gcc/config/aarch64/aarch64-sve-builtins.cc @@ -4356,7 +4356,11 @@ function_expander::use_cond_insn (insn_code icode, unsigned int merge_argno) add_input_operand (icode, pred); for (unsigned int i = 0; i < nops; ++i) add_input_operand (icode, args[opno + i]); - add_input_operand (icode, fallback_arg); + if (fallback_arg == CONST0_RTX (mode) + && insn_operand_matches (icode, m_ops.length (), fallback_arg)) + add_fixed_operand (fallback_arg); + else + add_input_operand (icode, fallback_arg); return generate_insn (icode); } diff --git a/gcc/config/aarch64/aarch64.cc b/gcc/config/aarch64/aarch64.cc index 9ccee4b8f3fa..9d2c3431ad36 100644 --- a/gcc/config/aarch64/aarch64.cc +++ b/gcc/config/aarch64/aarch64.cc @@ -355,7 +355,6 @@ static void aarch64_override_options_after_change (void); static bool aarch64_vector_mode_supported_p (machine_mode); static int aarch64_address_cost (rtx, machine_mode, addr_space_t, bool); static bool aarch64_builtin_support_vector_misalignment (machine_mode mode, - const_tree type, int misalignment, bool is_packed, bool is_gather_scatter); @@ -20640,6 +20639,30 @@ aarch64_compare_version_priority (tree decl1, tree decl2) return compare_feature_masks (mask1, mask2); } +/* Implement TARGET_OPTION_FUNCTIONS_B_RESOLVABLE_FROM_A. */ + +bool +aarch64_functions_b_resolvable_from_a (tree decl_a, tree decl_b, tree baseline) +{ + auto baseline_isa = aarch64_get_isa_flags + (TREE_TARGET_OPTION (aarch64_fndecl_options (baseline))); + auto isa_a = baseline_isa; + auto isa_b = baseline_isa; + + auto a_version = get_target_version (decl_a); + auto b_version = get_target_version (decl_b); + if (a_version.is_valid ()) + aarch64_parse_fmv_features (a_version, &isa_a, NULL, NULL); + if (b_version.is_valid ()) + aarch64_parse_fmv_features (b_version, &isa_b, NULL, NULL); + + /* Are there any bits of b that arent in a. */ + if (isa_b & (~isa_a)) + return false; + + return true; +} + /* Build the struct __ifunc_arg_t type: struct __ifunc_arg_t @@ -24540,7 +24563,7 @@ aarch64_simd_vector_alignment_reachable (const_tree type, bool is_packed) target. */ static bool aarch64_builtin_support_vector_misalignment (machine_mode mode, - const_tree type, int misalignment, + int misalignment, bool is_packed, bool is_gather_scatter) { @@ -24557,7 +24580,7 @@ aarch64_builtin_support_vector_misalignment (machine_mode mode, if (misalignment == -1) return false; } - return default_builtin_support_vector_misalignment (mode, type, misalignment, + return default_builtin_support_vector_misalignment (mode, misalignment, is_packed, is_gather_scatter); } @@ -32854,6 +32877,10 @@ aarch64_libgcc_floating_mode_supported_p #undef TARGET_COMPARE_VERSION_PRIORITY #define TARGET_COMPARE_VERSION_PRIORITY aarch64_compare_version_priority +#undef TARGET_OPTION_FUNCTIONS_B_RESOLVABLE_FROM_A +#define TARGET_OPTION_FUNCTIONS_B_RESOLVABLE_FROM_A \ + aarch64_functions_b_resolvable_from_a + #undef TARGET_GENERATE_VERSION_DISPATCHER_BODY #define TARGET_GENERATE_VERSION_DISPATCHER_BODY \ aarch64_generate_version_dispatcher_body diff --git a/gcc/config/alpha/linux.h b/gcc/config/alpha/linux.h index c4e843ff6f5b..758817a1c661 100644 --- a/gcc/config/alpha/linux.h +++ b/gcc/config/alpha/linux.h @@ -110,7 +110,7 @@ along with GCC; see the file COPYING3. If not see %{shared|pie:crtendS.o%s;:crtend.o%s} crtn.o%s" #define LINK_GCC_C_SEQUENCE_SPEC \ - "%{static|static-pie:--start-group} %G %{!nolibc:%L} \ + "%{static|static-pie:--start-group} %G %{!nolibc:" LINK_LIBATOMIC_SPEC "%L} \ %{static|static-pie:--end-group}%{!static:%{!static-pie:%G}}" /* Use --as-needed -lgcc_s for eh support. */ diff --git a/gcc/config/arm/arm.cc b/gcc/config/arm/arm.cc index 8b951f3d4a67..da28d96298a4 100644 --- a/gcc/config/arm/arm.cc +++ b/gcc/config/arm/arm.cc @@ -287,7 +287,6 @@ static bool arm_class_likely_spilled_p (reg_class_t); static HOST_WIDE_INT arm_vector_alignment (const_tree type); static bool arm_vector_alignment_reachable (const_tree type, bool is_packed); static bool arm_builtin_support_vector_misalignment (machine_mode mode, - const_tree type, int misalignment, bool is_packed, bool is_gather_scatter); @@ -30662,13 +30661,13 @@ arm_vector_alignment_reachable (const_tree type, bool is_packed) static bool arm_builtin_support_vector_misalignment (machine_mode mode, - const_tree type, int misalignment, + int misalignment, bool is_packed, bool is_gather_scatter) { if (TARGET_NEON && !BYTES_BIG_ENDIAN && unaligned_access) { - HOST_WIDE_INT align = TYPE_ALIGN_UNIT (type); + HOST_WIDE_INT align = GET_MODE_UNIT_SIZE (mode); if (is_gather_scatter) return true; @@ -30688,7 +30687,7 @@ arm_builtin_support_vector_misalignment (machine_mode mode, return ((misalignment % align) == 0); } - return default_builtin_support_vector_misalignment (mode, type, misalignment, + return default_builtin_support_vector_misalignment (mode, misalignment, is_packed, is_gather_scatter); } diff --git a/gcc/config/arm/uclinux-elf.h b/gcc/config/arm/uclinux-elf.h index 1e953d65281e..d7b99f5ff9af 100644 --- a/gcc/config/arm/uclinux-elf.h +++ b/gcc/config/arm/uclinux-elf.h @@ -67,8 +67,9 @@ #undef LINK_GCC_C_SEQUENCE_SPEC #define LINK_GCC_C_SEQUENCE_SPEC \ - "%{static|static-pie:--start-group} %G %{!nolibc:%L} \ - %{static|static-pie:--end-group}%{!static:%{!static-pie:%G %{!nolibc:%L}}}" + "%{static|static-pie:--start-group} %G %{!nolibc:" LINK_LIBATOMIC_SPEC "%L} \ + %{static|static-pie:--end-group}%{!static:%{!static-pie:%G %{!nolibc:" \ + LINK_LIBATOMIC_SPEC "%L}}}" /* Use --as-needed -lgcc_s for eh support. */ #ifdef HAVE_LD_AS_NEEDED diff --git a/gcc/config/arm/unknown-elf.h b/gcc/config/arm/unknown-elf.h index ab3918283d8c..a796d8702bd0 100644 --- a/gcc/config/arm/unknown-elf.h +++ b/gcc/config/arm/unknown-elf.h @@ -93,4 +93,4 @@ udivmoddi4, which will depend on the exception unwind routines, which will depend on abort, which is defined in libc. */ #undef LINK_GCC_C_SEQUENCE_SPEC -#define LINK_GCC_C_SEQUENCE_SPEC "--start-group %G %{!nolibc:%L} --end-group" +#define LINK_GCC_C_SEQUENCE_SPEC "--start-group %G %{!nolibc:" LINK_LIBATOMIC_SPEC "%L} --end-group" diff --git a/gcc/config/avr/avr.cc b/gcc/config/avr/avr.cc index 6c7ad4fec8ee..033bd09e7bfc 100644 --- a/gcc/config/avr/avr.cc +++ b/gcc/config/avr/avr.cc @@ -10142,16 +10142,17 @@ avr_out_insv (rtx_insn *insn, rtx xop[], int *plen) } -/* Output instructions to extract a bit to 8-bit register XOP[0]. - The input XOP[1] is a register or an 8-bit MEM in the lower I/O range. - XOP[2] is the const_int bit position. Return "". +/* Output instructions to extract a bit to 8-bit register OP[0]. + The input OP[1] is a register or an 8-bit MEM in the lower I/O range. + OP[2] is the const_int bit position. Return "". PLEN != 0: Set *PLEN to the code length in words. Don't output anything. PLEN == 0: Output instructions. */ const char * -avr_out_extr (rtx_insn *insn, rtx xop[], int *plen) +avr_out_extr (rtx_insn *insn, rtx op[], int *plen) { + rtx xop[] = { op[0], op[1], op[2] }; rtx dest = xop[0]; rtx src = xop[1]; int bit = INTVAL (xop[2]); @@ -10209,16 +10210,17 @@ avr_out_extr (rtx_insn *insn, rtx xop[], int *plen) } -/* Output instructions to extract a negated bit to 8-bit register XOP[0]. - The input XOP[1] is an 8-bit register or MEM in the lower I/O range. - XOP[2] is the const_int bit position. Return "". +/* Output instructions to extract a negated bit to 8-bit register OP[0]. + The input OP[1] is an 8-bit register or MEM in the lower I/O range. + OP[2] is the const_int bit position. Return "". PLEN != 0: Set *PLEN to the code length in words. Don't output anything. PLEN == 0: Output instructions. */ const char * -avr_out_extr_not (rtx_insn * /* insn */, rtx xop[], int *plen) +avr_out_extr_not (rtx_insn * /* insn */, rtx op[], int *plen) { + rtx xop[] = { op[0], op[1], op[2] }; rtx dest = xop[0]; rtx src = xop[1]; int bit = INTVAL (xop[2]); diff --git a/gcc/config/avr/avrlibc.h b/gcc/config/avr/avrlibc.h index 409a69451621..0e87fc4b8c55 100644 --- a/gcc/config/avr/avrlibc.h +++ b/gcc/config/avr/avrlibc.h @@ -36,4 +36,4 @@ along with GCC; see the file COPYING3. If not see #undef LINK_GCC_C_SEQUENCE_SPEC #define LINK_GCC_C_SEQUENCE_SPEC \ - "--start-group %G %{!nolibc:%L} --end-group" + "--start-group %G %{!nolibc:" LINK_LIBATOMIC_SPEC "%L} --end-group" diff --git a/gcc/config/bfin/linux.h b/gcc/config/bfin/linux.h index c3cecf776df6..b7599798742c 100644 --- a/gcc/config/bfin/linux.h +++ b/gcc/config/bfin/linux.h @@ -35,7 +35,7 @@ see the files COPYING3 and COPYING.RUNTIME respectively. If not, see #undef LINK_GCC_C_SEQUENCE_SPEC #define LINK_GCC_C_SEQUENCE_SPEC \ - "%{static|static-pie:--start-group} %{mfast-fp:-lbffastfp} %G %{!nolibc:%L} \ + "%{static|static-pie:--start-group} %{mfast-fp:-lbffastfp} %G %{!nolibc:" LINK_LIBATOMIC_SPEC "%L} \ %{static|static-pie:--end-group} \ %{!static:%{!static-pie:%{mfast-fp:-lbffastfp} %G}}" diff --git a/gcc/config/darwin.h b/gcc/config/darwin.h index c3e28e2fa81c..e23414c00b6d 100644 --- a/gcc/config/darwin.h +++ b/gcc/config/darwin.h @@ -487,7 +487,7 @@ extern GTY(()) int darwin_ms_struct; depend on libgcc. */ #undef LINK_GCC_C_SEQUENCE_SPEC #define LINK_GCC_C_SEQUENCE_SPEC \ - "%G %{!nolibc:%L} " + "%G %{!nolibc:" LINK_LIBATOMIC_SPEC "%L} " /* ld64 supports a sysroot, it just has a different name and there's no easy way to check for it at config time. */ diff --git a/gcc/config/default-jit.cc b/gcc/config/default-jit.cc new file mode 100644 index 000000000000..a03308ef6dab --- /dev/null +++ b/gcc/config/default-jit.cc @@ -0,0 +1,30 @@ +/* Default JIT language target hooks initializer. + Copyright (C) 2023 Free Software Foundation, Inc. + +GCC 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, or (at your option) any later +version. + +GCC 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 GCC; see the file COPYING3. If not see +. */ + +#define INCLUDE_STRING +#include "config.h" +#include "system.h" +#include "coretypes.h" +#include "tm_jit.h" +#include "jit/jit-target.h" +#include "jit/jit-target-def.h" + +/* Do not include tm.h or tm_p.h here; definitions needed by the target + architecture to initialize targetjitm should instead be added to tm_jit.h. + */ + +struct gcc_targetjitm targetjitm = TARGETJITM_INITIALIZER; diff --git a/gcc/config/epiphany/epiphany.cc b/gcc/config/epiphany/epiphany.cc index f53a643575b1..2446b02389aa 100644 --- a/gcc/config/epiphany/epiphany.cc +++ b/gcc/config/epiphany/epiphany.cc @@ -2815,15 +2815,15 @@ epiphany_vector_alignment_reachable (const_tree type, bool is_packed) } static bool -epiphany_support_vector_misalignment (machine_mode mode, const_tree type, - int misalignment, bool is_packed, +epiphany_support_vector_misalignment (machine_mode mode, int misalignment, + bool is_packed, bool is_gather_scatter) { if (is_gather_scatter) return true; if (GET_MODE_SIZE (mode) == 8 && misalignment % 4 == 0) return true; - return default_builtin_support_vector_misalignment (mode, type, misalignment, + return default_builtin_support_vector_misalignment (mode, misalignment, is_packed, is_gather_scatter); } diff --git a/gcc/config/gcn/gcn.cc b/gcc/config/gcn/gcn.cc index f3b6efc40c9d..1e04074d78b7 100644 --- a/gcc/config/gcn/gcn.cc +++ b/gcc/config/gcn/gcn.cc @@ -5368,14 +5368,13 @@ gcn_preferred_vector_alignment (const_tree type) static bool gcn_vectorize_support_vector_misalignment (machine_mode ARG_UNUSED (mode), - const_tree ARG_UNUSED (type), int ARG_UNUSED (misalignment), bool is_packed, bool ARG_UNUSED (is_gather_scatter)) { /* All Flat and Global load instructions support arbitrary alignment, so the types and such are irrelevant (Buffer instructions are not used). */ - + /* Disallow packed accesses because expand attempts to take scalar subregs of vector registers, which is nonsense. Testcase: gfortran.dg/recursive_alloc_comp_4.f08 */ diff --git a/gcc/config/gnu-user.h b/gcc/config/gnu-user.h index 4c4e31efa393..151871540e7b 100644 --- a/gcc/config/gnu-user.h +++ b/gcc/config/gnu-user.h @@ -109,8 +109,9 @@ see the files COPYING3 and COPYING.RUNTIME respectively. If not, see #define LINK_EH_SPEC "%{!static|static-pie:--eh-frame-hdr} " #endif + #define GNU_USER_TARGET_LINK_GCC_C_SEQUENCE_SPEC \ - "%{static|static-pie:--start-group} %G %{!nolibc:%L} \ + "%{static|static-pie:--start-group} %G %{!nolibc:" LINK_LIBATOMIC_SPEC "%L} \ %{static|static-pie:--end-group}%{!static:%{!static-pie:%G}}" #undef LINK_GCC_C_SEQUENCE_SPEC diff --git a/gcc/config/i386/i386-expand.cc b/gcc/config/i386/i386-expand.cc index c6f42275a3e5..0115af4d359e 100644 --- a/gcc/config/i386/i386-expand.cc +++ b/gcc/config/i386/i386-expand.cc @@ -8443,9 +8443,28 @@ setmem_epilogue_gen_val (void *op_p, void *prev_p, HOST_WIDE_INT, unsigned int op_size = GET_MODE_SIZE (op_mode); unsigned int size = GET_MODE_SIZE (mode); - unsigned int nunits = op_size / GET_MODE_SIZE (QImode); - machine_mode vec_mode - = mode_for_vector (QImode, nunits).require (); + unsigned int nunits; + machine_mode vec_mode; + if (op_size < size) + { + /* If OP size is smaller than MODE size, duplicate it. */ + nunits = size / GET_MODE_SIZE (QImode); + vec_mode = mode_for_vector (QImode, nunits).require (); + nunits = size / op_size; + gcc_assert (SCALAR_INT_MODE_P (op_mode)); + machine_mode dup_mode + = mode_for_vector (as_a (op_mode), + nunits).require (); + target = gen_reg_rtx (vec_mode); + op = gen_vec_duplicate (dup_mode, op); + rtx dup_op = gen_reg_rtx (dup_mode); + emit_move_insn (dup_op, op); + op = gen_rtx_SUBREG (vec_mode, dup_op, 0); + emit_move_insn (target, op); + return target; + } + nunits = op_size / GET_MODE_SIZE (QImode); + vec_mode = mode_for_vector (QImode, nunits).require (); target = gen_reg_rtx (vec_mode); op = gen_rtx_SUBREG (vec_mode, op, 0); emit_move_insn (target, op); diff --git a/gcc/config/i386/i386-features.cc b/gcc/config/i386/i386-features.cc index c313fb85f9ba..9348f55c2cd1 100644 --- a/gcc/config/i386/i386-features.cc +++ b/gcc/config/i386/i386-features.cc @@ -545,7 +545,7 @@ scalar_chain::build (bitmap candidates, unsigned insn_uid, bitmap disallowed) return true; } -/* Return a cost of building a vector costant +/* Return a cost of building a vector constant instead of using a scalar one. */ int diff --git a/gcc/config/i386/i386-jit.cc b/gcc/config/i386/i386-jit.cc new file mode 100644 index 000000000000..c1e2929a4735 --- /dev/null +++ b/gcc/config/i386/i386-jit.cc @@ -0,0 +1,71 @@ +/* Subroutines for the JIT front end on the x86 architecture. + Copyright (C) 2023 Free Software Foundation, Inc. + +GCC 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, or (at your option) +any later version. + +GCC 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 GCC; see the file COPYING3. If not see +. */ + +#define IN_TARGET_CODE 1 + +#define INCLUDE_STRING +#include "config.h" +#include "system.h" +#include "coretypes.h" +#include "target.h" +#include "tm.h" +#include "tm_jit.h" +#include "jit/jit-target.h" +#include "jit/jit-target-def.h" + +/* Implement TARGET_JIT_REGISTER_CPU_TARGET_INFO. */ + +#ifndef CROSS_DIRECTORY_STRUCTURE +extern const char *host_detect_local_cpu (int argc, const char **argv); +#endif + +#if TARGET_64BIT_DEFAULT +const char* x86_bits = "64"; +#else +const char* x86_bits = "32"; +#endif + +void +ix86_jit_register_target_info (void) +{ +#ifndef CROSS_DIRECTORY_STRUCTURE + const char *params[] = {"arch", x86_bits}; + const char* local_cpu = host_detect_local_cpu (2, params); + if (local_cpu) + { + std::string arch = local_cpu; + free (const_cast (local_cpu)); + + const char* arg = "-march="; + size_t arg_pos = arch.find (arg) + strlen (arg); + size_t end_pos = arch.find (" ", arg_pos); + + std::string cpu = arch.substr (arg_pos, end_pos - arg_pos); + jit_target_set_arch (cpu); + } +#endif + + if (targetm.scalar_mode_supported_p (TImode)) + { + jit_target_add_supported_target_dependent_type (GCC_JIT_TYPE_UINT128_T); + jit_target_add_supported_target_dependent_type (GCC_JIT_TYPE_INT128_T); + } + +#define ADD_TARGET_INFO jit_add_target_info +#include "i386-rust-and-jit.inc" +#undef ADD_TARGET_INFO +} diff --git a/gcc/config/i386/i386-jit.h b/gcc/config/i386/i386-jit.h new file mode 100644 index 000000000000..1d65001476ee --- /dev/null +++ b/gcc/config/i386/i386-jit.h @@ -0,0 +1,22 @@ +/* Definitions for the jit front end on the x86 architecture. + Copyright (C) 2023 Free Software Foundation, Inc. + +GCC 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, or (at your option) +any later version. + +GCC 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 GCC; see the file COPYING3. If not see +. */ + +/* In i386-jit.cc. */ +extern void ix86_jit_register_target_info (void); + +/* Target hooks for jit language. */ +#define TARGET_JIT_REGISTER_CPU_TARGET_INFO ix86_jit_register_target_info diff --git a/gcc/config/i386/i386.cc b/gcc/config/i386/i386.cc index a091e9438287..587b2bd0c1d2 100644 --- a/gcc/config/i386/i386.cc +++ b/gcc/config/i386/i386.cc @@ -3493,8 +3493,10 @@ function_arg_ms_64 (const CUMULATIVE_ARGS *cum, machine_mode mode, regno = x86_64_ms_abi_int_parameter_registers[cum->regno]; - /* Only floating point modes are passed in anything but integer regs. */ - if (TARGET_SSE && (mode == SFmode || mode == DFmode)) + /* Only floating point modes less than 64 bits are passed in anything but + integer regs. Larger floating point types are excluded as the Windows + ABI requires vreg args can be shadowed in GPRs (for red zone / varargs). */ + if (TARGET_SSE && (mode == HFmode || mode == SFmode || mode == DFmode)) { if (named) { @@ -4316,7 +4318,6 @@ function_value_ms_64 (machine_mode orig_mode, machine_mode mode, { case 16: if (valtype != NULL_TREE - && !VECTOR_INTEGER_TYPE_P (valtype) && !VECTOR_INTEGER_TYPE_P (valtype) && !INTEGRAL_TYPE_P (valtype) && !VECTOR_FLOAT_TYPE_P (valtype)) @@ -4327,9 +4328,10 @@ function_value_ms_64 (machine_mode orig_mode, machine_mode mode, break; case 8: case 4: + case 2: if (valtype != NULL_TREE && AGGREGATE_TYPE_P (valtype)) break; - if (mode == SFmode || mode == DFmode) + if (mode == HFmode || mode == SFmode || mode == DFmode) regno = FIRST_SSE_REG; break; default: diff --git a/gcc/config/i386/t-i386 b/gcc/config/i386/t-i386 index 2508f89cd06a..e5fc929c1fec 100644 --- a/gcc/config/i386/t-i386 +++ b/gcc/config/i386/t-i386 @@ -50,6 +50,10 @@ i386-rust.o: $(srcdir)/config/i386/i386-rust.cc $(COMPILE) $< $(POSTCOMPILE) +i386-jit.o: $(srcdir)/config/i386/i386-jit.cc + $(COMPILE) $< + $(POSTCOMPILE) + i386-options.o: $(srcdir)/config/i386/i386-options.cc $(COMPILE) $< $(POSTCOMPILE) diff --git a/gcc/config/lm32/uclinux-elf.h b/gcc/config/lm32/uclinux-elf.h index e3f51b39d029..1926e26ae014 100644 --- a/gcc/config/lm32/uclinux-elf.h +++ b/gcc/config/lm32/uclinux-elf.h @@ -69,7 +69,7 @@ #undef LINK_GCC_C_SEQUENCE_SPEC #define LINK_GCC_C_SEQUENCE_SPEC \ - "%{static|static-pie:--start-group} %G %{!nolibc:%L} \ + "%{static|static-pie:--start-group} %G %{!nolibc:" LINK_LIBATOMIC_SPEC "%L} \ %{static|static-pie:--end-group}%{!static:%{!static-pie:%G}}" #undef CC1_SPEC diff --git a/gcc/config/loongarch/loongarch.cc b/gcc/config/loongarch/loongarch.cc index 4d82fc8b6ec4..3fe8c766cc77 100644 --- a/gcc/config/loongarch/loongarch.cc +++ b/gcc/config/loongarch/loongarch.cc @@ -11058,7 +11058,6 @@ void loongarch_emit_swdivsf (rtx res, rtx a, rtx b, machine_mode mode) static bool loongarch_builtin_support_vector_misalignment (machine_mode mode, - const_tree type, int misalignment, bool is_packed, bool is_gather_scatter) @@ -11072,7 +11071,7 @@ loongarch_builtin_support_vector_misalignment (machine_mode mode, if (misalignment == -1) return false; } - return default_builtin_support_vector_misalignment (mode, type, misalignment, + return default_builtin_support_vector_misalignment (mode, misalignment, is_packed, is_gather_scatter); } diff --git a/gcc/config/m68k/m68k.md b/gcc/config/m68k/m68k.md index c96937f0b2ca..7f345bfa123b 100644 --- a/gcc/config/m68k/m68k.md +++ b/gcc/config/m68k/m68k.md @@ -2442,14 +2442,15 @@ gcc_assert (GET_CODE (operands[0]) == MEM); if (GET_CODE (XEXP (operands[0], 0)) == POST_INC) { - operands[1] = gen_rtx_MEM (SImode, - plus_constant (Pmode, - XEXP(operands[0], 0), -8)); + operands[1] + = gen_rtx_MEM (SImode, + plus_constant (Pmode, + XEXP (XEXP (operands[0], 0), 0), -8)); return "move%.l %0,%3\;add%.l %R2,%0\;addx%.l %2,%3\;move%.l %3,%1"; } else if (GET_CODE (XEXP (operands[0], 0)) == PRE_DEC) { - operands[1] = XEXP(operands[0], 0); + operands[1] = XEXP (XEXP (operands[0], 0), 0); return "add%.l %R2,%0\;move%.l %0,%3\;addx%.l %2,%3\;move%.l %3,%1"; } else @@ -2949,13 +2950,14 @@ if (GET_CODE (XEXP (operands[0], 0)) == POST_INC) { operands[1] - = gen_rtx_MEM (SImode, plus_constant (Pmode, - XEXP (operands[0], 0), -8)); + = gen_rtx_MEM (SImode, + plus_constant (Pmode, + XEXP (XEXP (operands[0], 0), 0), -8)); return "move%.l %0,%3\;sub%.l %R2,%0\;subx%.l %2,%3\;move%.l %3,%1"; } else if (GET_CODE (XEXP (operands[0], 0)) == PRE_DEC) { - operands[1] = XEXP(operands[0], 0); + operands[1] = XEXP (XEXP (operands[0], 0), 0); return "sub%.l %R2,%0\;move%.l %0,%3\;subx%.l %2,%3\;move%.l %3,%1"; } else diff --git a/gcc/config/mips/mips.cc b/gcc/config/mips/mips.cc index 1fa7ba8451c5..42dfc3b35119 100644 --- a/gcc/config/mips/mips.cc +++ b/gcc/config/mips/mips.cc @@ -20433,16 +20433,6 @@ mips_option_override (void) if (TARGET_MICROMIPS && TARGET_MIPS16) error ("unsupported combination: %s", "-mips16 -mmicromips"); - /* Make -mmips16e2 imply -mips16 and forbid its coexistence with - -mmicromips as the ASE requires. */ - if (TARGET_MIPS16E2) - { - if (TARGET_MICROMIPS) - error ("unsupported combination: %s", "-mmips16e2 -mmicromips"); - - target_flags |= MASK_MIPS16; - } - /* Prohibit Paired-Single and MSA combination. This is software restriction rather than architectural. */ if (ISA_HAS_MSA && TARGET_PAIRED_SINGLE_FLOAT) @@ -20695,15 +20685,6 @@ mips_option_override (void) "-mcompact-branches=never"); } - /* MIPS16* ASE is forbidden in Release 6, so -mips16 is not available - for MIPS R6 onwards. */ - if ((mips_base_compression_flags & MASK_MIPS16) && mips_isa_rev >= 6) - error ("MIPS16* ASE is forbidden in Release 6"); - - /* Make sure that the user use Release[2,5] when using -mmips16e2. */ - if (TARGET_MIPS16E2 && mips_isa_rev < 2) - error ("%<-mmips16e2%> requires Release[2,5]"); - /* Require explicit relocs for MIPS R6 onwards. This enables simplification of the compact branch and jump support through the backend. */ if (!TARGET_EXPLICIT_RELOCS && mips_isa_rev >= 6) diff --git a/gcc/config/pa/pa.h b/gcc/config/pa/pa.h index be845c83690b..6972faae8ec4 100644 --- a/gcc/config/pa/pa.h +++ b/gcc/config/pa/pa.h @@ -292,7 +292,7 @@ typedef struct GTY(()) machine_function #define PREFERRED_STACK_BOUNDARY (TARGET_64BIT ? 128 : 512) /* Allocation boundary (in *bits*) for the code of a function. */ -#define FUNCTION_BOUNDARY BITS_PER_WORD +#define FUNCTION_BOUNDARY 32 /* Alignment of field after `int : 0' in a structure. */ #define EMPTY_FIELD_BOUNDARY 32 diff --git a/gcc/config/riscv/arcv-rmx100.md b/gcc/config/riscv/arcv-rmx100.md new file mode 100644 index 000000000000..5a25dfb67cfc --- /dev/null +++ b/gcc/config/riscv/arcv-rmx100.md @@ -0,0 +1,103 @@ +;; DFA scheduling description of the Synopsys RMX-100 cpu +;; for GNU C compiler +;; Copyright (C) 2023 Free Software Foundation, Inc. + +;; This file is part of GCC. + +;; GCC 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, or (at your option) +;; any later version. + +;; GCC 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 GCC; see the file COPYING3. If not see +;; . + +(define_automaton "arcv_rmx100") + +(define_cpu_unit "arcv_rmx100_ALU" "arcv_rmx100") +;(define_cpu_unit "arcv_rmx100_CSR" "arcv_rmx100") +(define_cpu_unit "arcv_rmx100_FPU" "arcv_rmx100") +(define_cpu_unit "arcv_rmx100_MPY" "arcv_rmx100") +(define_cpu_unit "arcv_rmx100_DIV" "arcv_rmx100") +(define_cpu_unit "arcv_rmx100_DMP" "arcv_rmx100") + +;; Instruction reservation for arithmetic instructions. +(define_insn_reservation "arcv_rmx100_alu_arith" 1 + (and (eq_attr "tune" "arcv_rmx100") + (eq_attr "type" "unknown, const, arith, shift, slt, multi, auipc, nop, + logical, move, atomic, mvpair, bitmanip, clz, ctz, cpop, + zicond, condmove, clmul, min, max, minu, maxu, rotate")) + "arcv_rmx100_ALU") + +(define_insn_reservation "arcv_rmx100_jmp_insn" 1 + (and (eq_attr "tune" "arcv_rmx100") + (eq_attr "type" "branch, jump, call, jalr, ret, trap")) + "arcv_rmx100_ALU") + +; DIV insn: latency may be overridden by a define_bypass +(define_insn_reservation "arcv_rmx100_div_insn" 35 + (and (eq_attr "tune" "arcv_rmx100") + (eq_attr "type" "idiv")) + "arcv_rmx100_DIV*35") + +; MPY insn: latency may be overridden by a define_bypass +(define_insn_reservation "arcv_rmx100_mpy32_insn" 9 + (and (eq_attr "tune" "arcv_rmx100") + (eq_attr "type" "imul")) + "arcv_rmx100_MPY") + +(define_insn_reservation "arcv_rmx100_load_insn" 3 + (and (eq_attr "tune" "arcv_rmx100") + (eq_attr "type" "load")) + "arcv_rmx100_DMP,nothing*2") + +(define_insn_reservation "arcv_rmx100_store_insn" 1 + (and (eq_attr "tune" "arcv_rmx100") + (eq_attr "type" "store,fpstore")) + "arcv_rmx100_DMP") + +;; FPU scheduling. FIXME: This is based on the "fast" unit for now, the "slow" +;; option remains to be implemented later (together with the -mfpu flag). + +(define_insn_reservation "arcv_rmx100_fpload_insn" 3 + (and (eq_attr "tune" "arcv_rmx100") + (eq_attr "type" "fpload")) + "arcv_rmx100_DMP,nothing*2") + +(define_insn_reservation "arcv_rmx100_farith_insn" 2 + (and (eq_attr "tune" "arcv_rmx100") + (eq_attr "type" "fadd,fcmp")) + "arcv_rmx100_FPU,nothing") + +(define_insn_reservation "arcv_rmx100_xfer" 1 + (and (eq_attr "tune" "arcv_rmx100") + (eq_attr "type" "fmove,mtc,mfc,fcvt,fcvt_f2i,fcvt_i2f")) + "arcv_rmx100_FPU") + +(define_insn_reservation "arcv_rmx100_fmul_insn" 2 + (and (eq_attr "tune" "arcv_rmx100") + (eq_attr "type" "fmul")) + "arcv_rmx100_FPU,nothing") + +(define_insn_reservation "arcv_rmx100_fmac_insn" 2 + (and (eq_attr "tune" "arcv_rmx100") + (eq_attr "type" "fmadd")) + "arcv_rmx100_FPU,nothing") + +(define_insn_reservation "arcv_rmx100_fdiv_insn" 10 + (and (eq_attr "tune" "arcv_rmx100") + (eq_attr "type" "fdiv,fsqrt")) + "arcv_rmx100_FPU") + + +(define_bypass 1 "arcv_rmx100_mpy32_insn" "arcv_rmx100_*" "arcv_mpy_1c_bypass_p") +(define_bypass 2 "arcv_rmx100_mpy32_insn" "arcv_rmx100_*" "arcv_mpy_2c_bypass_p") + +(define_bypass 9 "arcv_rmx100_div_insn" "arcv_rmx100_*" "arcv_mpy_1c_bypass_p") +(define_bypass 9 "arcv_rmx100_div_insn" "arcv_rmx100_*" "arcv_mpy_2c_bypass_p") diff --git a/gcc/config/riscv/autovec-opt.md b/gcc/config/riscv/autovec-opt.md index a5eb49cc81ed..d5950ebe3b6b 100644 --- a/gcc/config/riscv/autovec-opt.md +++ b/gcc/config/riscv/autovec-opt.md @@ -1911,6 +1911,26 @@ } [(set_attr "type" "viwalu")]) +(define_insn_and_split "*widen_waddu_wx_" + [(set (match_operand:VWEXTI_D 0 "register_operand") + (any_widen_binop:VWEXTI_D + (vec_duplicate:VWEXTI_D + (any_extend: + (match_operand: 2 "register_operand"))) + (match_operand:VWEXTI_D 1 "register_operand")))] + "TARGET_VECTOR && TARGET_64BIT && can_create_pseudo_p ()" + "#" + "&& 1" + [(const_int 0)] + { + insn_code icode = code_for_pred_single_widen_scalar (PLUS, ZERO_EXTEND, + mode); + riscv_vector::emit_vlmax_insn (icode, riscv_vector::BINARY_OP, operands); + + DONE; + } + [(set_attr "type" "viwalu")]) + ;; ============================================================================= ;; Combine vec_duplicate + op.vv to op.vf ;; Include diff --git a/gcc/config/riscv/bitmanip.md b/gcc/config/riscv/bitmanip.md index 5fd139ac9c14..59b71ed263b0 100644 --- a/gcc/config/riscv/bitmanip.md +++ b/gcc/config/riscv/bitmanip.md @@ -1218,13 +1218,13 @@ ;; Reversed CRC 8, 16, 32 for TARGET_64 (define_expand "crc_rev4" ;; return value (calculated CRC) - [(set (match_operand:ANYI 0 "register_operand" "=r") + [(set (match_operand:ANYI 0 "register_operand") ;; initial CRC - (unspec:ANYI [(match_operand:ANYI 1 "register_operand" "r") + (unspec:ANYI [(match_operand:ANYI 1 "register_operand") ;; data - (match_operand:ANYI1 2 "register_operand" "r") + (match_operand:ANYI1 2 "register_operand") ;; polynomial without leading 1 - (match_operand:ANYI 3)] + (match_operand:ANYI 3 "const_int_operand")] UNSPEC_CRC_REV))] /* We don't support the case when data's size is bigger than CRC's size. */ "mode >= mode" @@ -1258,13 +1258,13 @@ ;; CRC 8, 16, (32 for TARGET_64) (define_expand "crc4" ;; return value (calculated CRC) - [(set (match_operand:SUBX 0 "register_operand" "=r") + [(set (match_operand:SUBX 0 "register_operand") ;; initial CRC - (unspec:SUBX [(match_operand:SUBX 1 "register_operand" "r") + (unspec:SUBX [(match_operand:SUBX 1 "register_operand") ;; data - (match_operand:SUBX1 2 "register_operand" "r") + (match_operand:SUBX1 2 "register_operand") ;; polynomial without leading 1 - (match_operand:SUBX 3)] + (match_operand:SUBX 3 "const_int_operand")] UNSPEC_CRC))] /* We don't support the case when data's size is bigger than CRC's size. */ "(TARGET_ZBKC || TARGET_ZBC || TARGET_ZVBC) diff --git a/gcc/config/riscv/predicates.md b/gcc/config/riscv/predicates.md index 777e71b14e38..f811a4e40ca7 100644 --- a/gcc/config/riscv/predicates.md +++ b/gcc/config/riscv/predicates.md @@ -334,6 +334,13 @@ && riscv_split_symbol_type (symbol_type) && symbol_type != SYMBOL_PCREL; + /* Be tight about the SUBREGs we accept. In particular, + (subreg (mem)) has been discouraged for decades. Just + allow (subreg (reg)) until such time as we see a strong + need to be more permissive. */ + case SUBREG: + return REG_P (SUBREG_REG (op)); + default: return true; } @@ -607,13 +614,12 @@ (define_predicate "ge_operator" (match_code "ge,geu")) -;; pmode_reg_or_uimm5_operand can be used by vsll.vx/vsrl.vx/vsra.vx instructions. -;; Since it has the same predicate with vector_length_operand which allows register -;; or immediate (0 ~ 31), we define this predicate same as vector_length_operand here. -;; We don't use vector_length_operand directly to predicate vsll.vx/vsrl.vx/vsra.vx -;; since it may be confusing. +;; pmode_reg_or_uimm5_operand can be used by vsll.vx/vsrl.vx/vsra.vx instructions +;; It is *not* equivalent to vector_length_operand due to the vector_length_operand +;; needing to conditionalize some behavior on XTHEADVECTOR. (define_special_predicate "pmode_reg_or_uimm5_operand" - (match_operand 0 "vector_length_operand")) + (ior (match_operand 0 "pmode_register_operand") + (match_operand 0 "const_csr_operand"))) (define_special_predicate "pmode_reg_or_0_operand" (ior (match_operand 0 "const_0_operand") diff --git a/gcc/config/riscv/riscv-cores.def b/gcc/config/riscv/riscv-cores.def index cc9d5c03cb8c..d1708f3785b6 100644 --- a/gcc/config/riscv/riscv-cores.def +++ b/gcc/config/riscv/riscv-cores.def @@ -50,6 +50,7 @@ RISCV_TUNE("xt-c920", generic, generic_ooo_tune_info) RISCV_TUNE("xt-c920v2", generic, generic_ooo_tune_info) RISCV_TUNE("xiangshan-nanhu", xiangshan, xiangshan_nanhu_tune_info) RISCV_TUNE("xiangshan-kunminghu", xiangshan, generic_ooo_tune_info) +RISCV_TUNE("arc-v-rmx-100-series", arcv_rmx100, arcv_rmx100_tune_info) RISCV_TUNE("generic-ooo", generic_ooo, generic_ooo_tune_info) RISCV_TUNE("size", generic, optimize_size_tune_info) RISCV_TUNE("mips-p8700", mips_p8700, mips_p8700_tune_info) diff --git a/gcc/config/riscv/riscv-opts.h b/gcc/config/riscv/riscv-opts.h index 4e4e9d8930e2..7be10413b4d9 100644 --- a/gcc/config/riscv/riscv-opts.h +++ b/gcc/config/riscv/riscv-opts.h @@ -61,6 +61,7 @@ enum riscv_microarchitecture_type { generic_ooo, mips_p8700, tt_ascalon_d8, + arcv_rmx100, }; extern enum riscv_microarchitecture_type riscv_microarchitecture; @@ -85,6 +86,13 @@ enum rvv_max_lmul_enum { RVV_DYNAMIC = 9 }; +/* ARC-V multiply option. */ +enum arcv_mpy_option_enum { + ARCV_MPY_OPTION_1C = 1, + ARCV_MPY_OPTION_2C = 2, + ARCV_MPY_OPTION_10C = 8, +}; + enum riscv_multilib_select_kind { /* Select multilib by builtin way. */ select_by_builtin, diff --git a/gcc/config/riscv/riscv-protos.h b/gcc/config/riscv/riscv-protos.h index e4473f45d0e4..c321a08c8d81 100644 --- a/gcc/config/riscv/riscv-protos.h +++ b/gcc/config/riscv/riscv-protos.h @@ -165,6 +165,9 @@ extern bool riscv_epilogue_uses (unsigned int); extern bool riscv_can_use_return_insn (void); extern rtx riscv_function_value (const_tree, const_tree, enum machine_mode); extern bool riscv_store_data_bypass_p (rtx_insn *, rtx_insn *); +extern bool arcv_mpy_1c_bypass_p (rtx_insn *, rtx_insn *); +extern bool arcv_mpy_2c_bypass_p (rtx_insn *, rtx_insn *); +extern bool arcv_mpy_10c_bypass_p (rtx_insn *, rtx_insn *); extern rtx riscv_gen_gpr_save_insn (struct riscv_frame_info *); extern bool riscv_gpr_save_operation_p (rtx); extern void riscv_reinit (void); @@ -766,7 +769,7 @@ opt_machine_mode vectorize_related_mode (machine_mode, scalar_mode, unsigned int autovectorize_vector_modes (vec *, bool); bool cmp_lmul_le_one (machine_mode); bool cmp_lmul_gt_one (machine_mode); -bool vls_mode_valid_p (machine_mode); +bool vls_mode_valid_p (machine_mode, bool allow_up_to_lmul_8 = true); bool vlmax_avl_type_p (rtx_insn *); bool has_vl_op (rtx_insn *); bool tail_agnostic_p (rtx_insn *); @@ -832,6 +835,7 @@ extern bool th_print_operand_address (FILE *, machine_mode, rtx); #endif extern bool strided_load_broadcast_p (void); +extern bool riscv_prefer_agnostic_p (void); extern bool riscv_use_divmod_expander (void); void riscv_init_cumulative_args (CUMULATIVE_ARGS *, const_tree, rtx, tree, int); extern bool diff --git a/gcc/config/riscv/riscv-v.cc b/gcc/config/riscv/riscv-v.cc index 8021bc14e7c0..707924db6a37 100644 --- a/gcc/config/riscv/riscv-v.cc +++ b/gcc/config/riscv/riscv-v.cc @@ -2140,10 +2140,8 @@ get_ma (rtx ma) enum tail_policy get_prefer_tail_policy () { - /* TODO: By default, we choose to use TAIL_ANY which allows - compiler pick up either agnostic or undisturbed. Maybe we - will have a compile option like -mprefer=agnostic to set - this value???. */ + if (riscv_prefer_agnostic_p ()) + return TAIL_AGNOSTIC; return TAIL_ANY; } @@ -2151,10 +2149,8 @@ get_prefer_tail_policy () enum mask_policy get_prefer_mask_policy () { - /* TODO: By default, we choose to use MASK_ANY which allows - compiler pick up either agnostic or undisturbed. Maybe we - will have a compile option like -mprefer=agnostic to set - this value???. */ + if (riscv_prefer_agnostic_p ()) + return MASK_AGNOSTIC; return MASK_ANY; } @@ -3020,7 +3016,7 @@ autovectorize_vector_modes (vector_modes *modes, bool) machine_mode mode; while (size > 0 && get_vector_mode (QImode, size).exists (&mode)) { - if (vls_mode_valid_p (mode)) + if (vls_mode_valid_p (mode, /* allow_up_to_lmul_8 */ false)) modes->safe_push (mode); i++; @@ -3783,14 +3779,15 @@ shuffle_slide_patterns (struct expand_vec_perm_d *d) int pivot = -1; for (int i = 0; i < vlen; i++) { + /* The first pivot is in OP1. */ if (pivot == -1 && known_ge (d->perm[i], vec_len)) pivot = i; if (i > 0 && i != pivot && maybe_ne (d->perm[i], d->perm[i - 1] + 1)) { - if (pivot == -1 || len != 0) + /* A second pivot would indicate the vector length and is in OP0. */ + if (known_ge (d->perm[i], vec_len) || pivot == -1 || len != 0) return false; - /* A second pivot would indicate the vector length. */ len = i; } } @@ -4233,6 +4230,9 @@ shuffle_series_patterns (struct expand_vec_perm_d *d) bool need_insert = false; bool have_series = false; + poly_int64 len = d->perm.length (); + bool need_modulo = !len.is_constant (); + /* Check for a full series. */ if (known_ne (step1, 0) && d->perm.series_p (0, 1, el1, step1)) have_series = true; @@ -4244,7 +4244,33 @@ shuffle_series_patterns (struct expand_vec_perm_d *d) need_insert = true; } - if (!have_series) + /* A permute like {0, 3, 2, 1} is recognized as series because series_p also + allows wrapping/modulo of the permute index. The step would be 3 and the + indices are correct modulo 4. As noted in expand_vec_perm vrgather does + not handle wrapping but rather zeros out-of-bounds indices. + This means we would need to emit an explicit modulo operation here which + does not seem worth it. We rather defer to the generic handling instead. + Even in the non-wrapping case it is doubtful whether + vid + vmul + vrgather + is preferable over + vle + vrgather. + If the permute mask can be reused there shouldn't be any difference and + otherwise it becomes a question of load bandwidth. */ + if (have_series && len.is_constant ()) + { + int64_t step = need_insert ? step2.to_constant () : step1.to_constant (); + int prec = GET_MODE_PRECISION (GET_MODE_INNER (d->vmode)); + wide_int wlen = wide_int::from (len.to_constant (), prec * 2, SIGNED); + wide_int wstep = wide_int::from (step, prec * 2, SIGNED); + wide_int result = wi::mul (wlen, wstep); + if (wi::gt_p (result, wlen, SIGNED)) + need_modulo = true; + } + + if (!have_series || (len.is_constant () && need_modulo)) return false; /* Disable shuffle if we can't find an appropriate integer index mode for @@ -4263,6 +4289,13 @@ shuffle_series_patterns (struct expand_vec_perm_d *d) expand_vec_series (series, gen_int_mode (need_insert ? el2 : el1, eltmode), gen_int_mode (need_insert ? step2 : step1, eltmode)); + if (need_modulo) + { + rtx mod = gen_const_vector_dup (sel_mode, len - 1); + series = expand_simple_binop (sel_mode, AND, series, mod, NULL, + 0, OPTAB_DIRECT); + } + /* Insert the remaining element if necessary. */ if (need_insert) { @@ -5148,26 +5181,27 @@ cmp_lmul_gt_one (machine_mode mode) Then we can have the condition for VLS mode in fixed-vlmax, aka: PRECISION (VLSmode) < VLEN / (64 / PRECISION(VLS_inner_mode)). */ bool -vls_mode_valid_p (machine_mode vls_mode) +vls_mode_valid_p (machine_mode vls_mode, bool allow_up_to_lmul_8) { if (!TARGET_VECTOR || TARGET_XTHEADVECTOR) return false; if (rvv_vector_bits == RVV_VECTOR_BITS_SCALABLE) { - if (GET_MODE_CLASS (vls_mode) != MODE_VECTOR_BOOL - && !ordered_p (TARGET_MAX_LMUL * BITS_PER_RISCV_VECTOR, - GET_MODE_PRECISION (vls_mode))) - /* We enable VLS modes which are aligned with TARGET_MAX_LMUL and - BITS_PER_RISCV_VECTOR. - - e.g. When TARGET_MAX_LMUL = 1 and BITS_PER_RISCV_VECTOR = (128,128). - We enable VLS modes have fixed size <= 128bit. Since ordered_p is - false between VLA modes with size = (128, 128) bits and VLS mode - with size = 128 bits, we will end up with multiple ICEs in - middle-end generic codes. */ - return false; - return true; + if (GET_MODE_CLASS (vls_mode) != MODE_VECTOR_BOOL) + return true; + if (allow_up_to_lmul_8) + return true; + /* We enable VLS modes which are aligned with TARGET_MAX_LMUL and + BITS_PER_RISCV_VECTOR. + + e.g. When TARGET_MAX_LMUL = 1 and BITS_PER_RISCV_VECTOR = (128,128). + We enable VLS modes have fixed size <= 128bit. Since ordered_p is + false between VLA modes with size = (128, 128) bits and VLS mode + with size = 128 bits, we will end up with multiple ICEs in + middle-end generic codes. */ + return !ordered_p (TARGET_MAX_LMUL * BITS_PER_RISCV_VECTOR, + GET_MODE_PRECISION (vls_mode)); } if (rvv_vector_bits == RVV_VECTOR_BITS_ZVL) diff --git a/gcc/config/riscv/riscv-vsetvl.cc b/gcc/config/riscv/riscv-vsetvl.cc index 4fe0ae6d97b7..3586d0cdcc24 100644 --- a/gcc/config/riscv/riscv-vsetvl.cc +++ b/gcc/config/riscv/riscv-vsetvl.cc @@ -1144,9 +1144,10 @@ class vsetvl_info dflags |= demand_flags::DEMAND_LMUL_P; } - if (!m_ta) + /* Demand policy for agnostic if the uarch has a preference. */ + if (!m_ta || riscv_prefer_agnostic_p ()) dflags |= demand_flags::DEMAND_TAIL_POLICY_P; - if (!m_ma) + if (!m_ma || riscv_prefer_agnostic_p ()) dflags |= demand_flags::DEMAND_MASK_POLICY_P; } diff --git a/gcc/config/riscv/riscv.cc b/gcc/config/riscv/riscv.cc index 41ee4014c0dd..9361403acef9 100644 --- a/gcc/config/riscv/riscv.cc +++ b/gcc/config/riscv/riscv.cc @@ -317,6 +317,7 @@ struct riscv_tune_param const char *function_align; const char *jump_align; const char *loop_align; + bool prefer_agnostic; }; @@ -481,6 +482,7 @@ static const struct riscv_tune_param generic_tune_info = { NULL, /* function_align */ NULL, /* jump_align */ NULL, /* loop_align */ + false, /* prefer-agnostic. */ }; /* Costs to use when optimizing for rocket. */ @@ -505,6 +507,7 @@ static const struct riscv_tune_param rocket_tune_info = { NULL, /* function_align */ NULL, /* jump_align */ NULL, /* loop_align */ + false, /* prefer-agnostic. */ }; /* Costs to use when optimizing for Sifive 7 Series. */ @@ -529,6 +532,7 @@ static const struct riscv_tune_param sifive_7_tune_info = { NULL, /* function_align */ NULL, /* jump_align */ NULL, /* loop_align */ + false, /* prefer-agnostic. */ }; /* Costs to use when optimizing for Sifive p400 Series. */ @@ -553,6 +557,7 @@ static const struct riscv_tune_param sifive_p400_tune_info = { NULL, /* function_align */ NULL, /* jump_align */ NULL, /* loop_align */ + true, /* prefer-agnostic. */ }; /* Costs to use when optimizing for Sifive p600 Series. */ @@ -577,6 +582,7 @@ static const struct riscv_tune_param sifive_p600_tune_info = { NULL, /* function_align */ NULL, /* jump_align */ NULL, /* loop_align */ + true, /* prefer-agnostic. */ }; /* Costs to use when optimizing for T-HEAD c906. */ @@ -601,6 +607,7 @@ static const struct riscv_tune_param thead_c906_tune_info = { NULL, /* function_align */ NULL, /* jump_align */ NULL, /* loop_align */ + false, /* prefer-agnostic. */ }; /* Costs to use when optimizing for xiangshan nanhu. */ @@ -625,6 +632,7 @@ static const struct riscv_tune_param xiangshan_nanhu_tune_info = { NULL, /* function_align */ NULL, /* jump_align */ NULL, /* loop_align */ + true, /* prefer-agnostic. */ }; /* Costs to use when optimizing for a generic ooo profile. */ @@ -649,6 +657,7 @@ static const struct riscv_tune_param generic_ooo_tune_info = { NULL, /* function_align */ NULL, /* jump_align */ NULL, /* loop_align */ + true, /* prefer-agnostic. */ }; /* Costs to use when optimizing for Tenstorrent Ascalon 8 wide. */ @@ -673,6 +682,31 @@ static const struct riscv_tune_param tt_ascalon_d8_tune_info = { NULL, /* function_align */ NULL, /* jump_align */ NULL, /* loop_align */ + true, /* prefer-agnostic. */ +}; + +/* Costs to use when optimizing for Synopsys RMX-100. */ +static const struct riscv_tune_param arcv_rmx100_tune_info = { + {COSTS_N_INSNS (2), COSTS_N_INSNS (2)}, /* fp_add */ + {COSTS_N_INSNS (2), COSTS_N_INSNS (2)}, /* fp_mul */ + {COSTS_N_INSNS (17), COSTS_N_INSNS (17)}, /* fp_div */ + {COSTS_N_INSNS (2), COSTS_N_INSNS (2)}, /* int_mul */ + {COSTS_N_INSNS (17), COSTS_N_INSNS (17)}, /* int_div */ + 1, /* issue_rate */ + 4, /* branch_cost */ + 2, /* memory_cost */ + 4, /* fmv_cost */ + false, /* slow_unaligned_access */ + false, /* vector_unaligned_access */ + false, /* use_divmod_expansion */ + false, /* overlap_op_by_pieces */ + true, /* use_zero_stride_load */ + false, /* speculative_sched_vsetvl */ + RISCV_FUSE_NOTHING, /* fusible_ops */ + NULL, /* vector cost */ + NULL, /* function_align */ + NULL, /* jump_align */ + NULL, /* loop_align */ }; /* Costs to use when optimizing for size. */ @@ -697,6 +731,7 @@ static const struct riscv_tune_param optimize_size_tune_info = { NULL, /* function_align */ NULL, /* jump_align */ NULL, /* loop_align */ + false, /* prefer-agnostic. */ }; /* Costs to use when optimizing for MIPS P8700 */ @@ -720,7 +755,8 @@ static const struct riscv_tune_param mips_p8700_tune_info = { NULL, /* vector cost */ NULL, /* function_align */ NULL, /* jump_align */ - NULL, /* loop_align */ + NULL, /* loop_align. */ + true, /* prefer-agnostic. */ }; static bool riscv_avoid_shrink_wrapping_separate (); @@ -9027,8 +9063,7 @@ riscv_allocate_and_probe_stack_space (rtx temp1, HOST_WIDE_INT size) from the top of the frame, as it might be lowered before. To consider the correct SP addresses for the CFA notes, it is needed to correct them with the initial offset value. */ - HOST_WIDE_INT initial_cfa_offset - = cfun->machine->frame.total_size.to_constant () - size; + poly_int64 initial_cfa_offset = cfun->machine->frame.total_size - size; if (!frame_pointer_needed) { @@ -9972,6 +10007,30 @@ riscv_store_data_bypass_p (rtx_insn *out_insn, rtx_insn *in_insn) return store_data_bypass_p (out_insn, in_insn); } +/* Implement one boolean function for each of the values of the + arcv_mpy_option enum, for the needs of rhx100.md. */ + +bool +arcv_mpy_1c_bypass_p (rtx_insn *out_insn ATTRIBUTE_UNUSED, + rtx_insn *in_insn ATTRIBUTE_UNUSED) +{ + return arcv_mpy_option == ARCV_MPY_OPTION_1C; +} + +bool +arcv_mpy_2c_bypass_p (rtx_insn *out_insn ATTRIBUTE_UNUSED, + rtx_insn *in_insn ATTRIBUTE_UNUSED) +{ + return arcv_mpy_option == ARCV_MPY_OPTION_2C; +} + +bool +arcv_mpy_10c_bypass_p (rtx_insn *out_insn ATTRIBUTE_UNUSED, + rtx_insn *in_insn ATTRIBUTE_UNUSED) +{ + return arcv_mpy_option == ARCV_MPY_OPTION_10C; +} + /* Implement TARGET_SECONDARY_MEMORY_NEEDED. When floating-point registers are wider than integer ones, moves between @@ -12648,12 +12707,11 @@ riscv_estimated_poly_value (poly_int64 val, /* Return true if the vector misalignment factor is supported by the target. */ bool -riscv_support_vector_misalignment (machine_mode mode, const_tree type, - int misalignment, bool is_packed, - bool is_gather_scatter) +riscv_support_vector_misalignment (machine_mode mode, int misalignment, + bool is_packed, bool is_gather_scatter) { /* IS_PACKED is true if the corresponding scalar element is not naturally - aligned. If the misalignment is unknown and the the access is packed + aligned. If the misalignment is unknown and the access is packed we defer to the default hook which will check if movmisalign is present. Movmisalign, in turn, depends on TARGET_VECTOR_MISALIGN_SUPPORTED. */ if (misalignment == DR_MISALIGNMENT_UNKNOWN) @@ -12665,12 +12723,12 @@ riscv_support_vector_misalignment (machine_mode mode, const_tree type, { /* If we know that misalignment is a multiple of the element size, we're good. */ - if (misalignment % TYPE_ALIGN_UNIT (type) == 0) + if (misalignment % (GET_MODE_UNIT_SIZE (mode)) == 0) return true; } /* Otherwise fall back to movmisalign again. */ - return default_builtin_support_vector_misalignment (mode, type, misalignment, + return default_builtin_support_vector_misalignment (mode, misalignment, is_packed, is_gather_scatter); } @@ -12842,6 +12900,15 @@ strided_load_broadcast_p () return tune_param->use_zero_stride_load; } +/* Return TRUE if we should use the tail agnostic and mask agnostic policies for + vector code, false otherwise. */ + +bool +riscv_prefer_agnostic_p () +{ + return tune_param->prefer_agnostic; +} + /* Return TRUE if we should use the divmod expander, FALSE otherwise. This allows the behavior to be tuned for specific implementations as well as when optimizing for size. */ diff --git a/gcc/config/riscv/riscv.md b/gcc/config/riscv/riscv.md index 843a048e9d8c..70183045b556 100644 --- a/gcc/config/riscv/riscv.md +++ b/gcc/config/riscv/riscv.md @@ -672,7 +672,7 @@ ;; Microarchitectures we know how to tune for. ;; Keep this in sync with enum riscv_microarchitecture. (define_attr "tune" - "generic,sifive_7,sifive_p400,sifive_p600,xiangshan,generic_ooo,mips_p8700,tt_ascalon_d8" + "generic,sifive_7,sifive_p400,sifive_p600,xiangshan,generic_ooo,mips_p8700,tt_ascalon_d8,arcv_rmx100" (const (symbol_ref "((enum attr_tune) riscv_microarchitecture)"))) ;; Describe a user's asm statement. @@ -2322,27 +2322,38 @@ else { rtx reg; - rtx label = gen_label_rtx (); + rtx label1 = gen_label_rtx (); + rtx label2 = gen_label_rtx (); + rtx label3 = gen_label_rtx (); rtx end_label = gen_label_rtx (); rtx abs_reg = gen_reg_rtx (mode); rtx coeff_reg = gen_reg_rtx (mode); rtx tmp_reg = gen_reg_rtx (mode); - rtx fflags = gen_reg_rtx (SImode); riscv_emit_move (tmp_reg, operands[1]); + + if (flag_trapping_math) + { + /* Check if the input is a NaN. */ + riscv_expand_conditional_branch (label1, EQ, + operands[1], operands[1]); + + emit_jump_insn (gen_jump (label3)); + emit_barrier (); + + emit_label (label1); + } + riscv_emit_move (coeff_reg, riscv_vector::get_fp_rounding_coefficient (mode)); emit_insn (gen_abs2 (abs_reg, operands[1])); - /* fp compare can set invalid flag for NaN, so backup fflags. */ - if (flag_trapping_math) - emit_insn (gen_riscv_frflags (fflags)); - riscv_expand_conditional_branch (label, LT, abs_reg, coeff_reg); + riscv_expand_conditional_branch (label2, LT, abs_reg, coeff_reg); emit_jump_insn (gen_jump (end_label)); emit_barrier (); - emit_label (label); + emit_label (label2); switch (mode) { case SFmode: @@ -2361,15 +2372,17 @@ emit_insn (gen_copysign3 (tmp_reg, abs_reg, operands[1])); - emit_label (end_label); + emit_jump_insn (gen_jump (end_label)); + emit_barrier (); - /* Restore fflags, but after label. This is slightly different - than glibc implementation which only needs to restore under - the label, since it checks for NaN first, meaning following fp - compare can't raise fp exceptons and thus not clobber fflags. */ if (flag_trapping_math) - emit_insn (gen_riscv_fsflags (fflags)); + { + emit_label (label3); + /* Generate a qNaN from an sNaN if needed. */ + emit_insn (gen_add3 (tmp_reg, operands[1], operands[1])); + } + emit_label (end_label); riscv_emit_move (operands[0], tmp_reg); } @@ -4977,3 +4990,4 @@ (include "generic-vector-ooo.md") (include "generic-ooo.md") (include "tt-ascalon-d8.md") +(include "arcv-rmx100.md") diff --git a/gcc/config/riscv/riscv.opt b/gcc/config/riscv/riscv.opt index 6543fd1c4a72..663acf62dac4 100644 --- a/gcc/config/riscv/riscv.opt +++ b/gcc/config/riscv/riscv.opt @@ -396,3 +396,20 @@ Specifies whether the fence.tso instruction should be used. mautovec-segment Target Integer Var(riscv_mautovec_segment) Init(1) Enable (default) or disable generation of vector segment load/store instructions. + +Enum +Name(arcv_mpy_option) Type(enum arcv_mpy_option_enum) +Valid arguments to -param=arcv_mpy_option=: + +EnumValue +Enum(arcv_mpy_option) String(1c) Value(ARCV_MPY_OPTION_1C) + +EnumValue +Enum(arcv_mpy_option) String(2c) Value(ARCV_MPY_OPTION_2C) + +EnumValue +Enum(arcv_mpy_option) String(10c) Value(ARCV_MPY_OPTION_10C) + +-param=arcv-mpy-option= +Target RejectNegative Joined Enum(arcv_mpy_option) Var(arcv_mpy_option) Init(ARCV_MPY_OPTION_2C) +The type of MPY unit used by the RMX-100 core (to be used in combination with -mtune=rmx100) (default: 2c). diff --git a/gcc/config/rs6000/linux64.h b/gcc/config/rs6000/linux64.h index 0316d8cb65da..dd4d3f1f2095 100644 --- a/gcc/config/rs6000/linux64.h +++ b/gcc/config/rs6000/linux64.h @@ -393,9 +393,9 @@ extern int dot_symbols; /* Use gnu-user.h LINK_GCC_SEQUENCE_SPEC for linux. */ #undef LINK_GCC_C_SEQUENCE_SPEC #define LINK_GCC_C_SEQUENCE_SPEC \ - "%{mads|myellowknife|mmvme|msim:%G %L %G;" \ + "%{mads|myellowknife|mmvme|msim:%G" LINK_LIBATOMIC_SPEC "%L %G;" \ "!mcall-*|mcall-linux:" GNU_USER_TARGET_LINK_GCC_C_SEQUENCE_SPEC ";" \ - ":%G %L %G}" + ":%G" LINK_LIBATOMIC_SPEC "%L %G}" #undef TOC_SECTION_ASM_OP #define TOC_SECTION_ASM_OP \ diff --git a/gcc/config/rs6000/rs6000.cc b/gcc/config/rs6000/rs6000.cc index 1049c446c402..1d5cd25c0f08 100644 --- a/gcc/config/rs6000/rs6000.cc +++ b/gcc/config/rs6000/rs6000.cc @@ -4947,7 +4947,6 @@ rs6000_vector_alignment_reachable (const_tree type ATTRIBUTE_UNUSED, bool is_pac target. */ static bool rs6000_builtin_support_vector_misalignment (machine_mode mode, - const_tree type, int misalignment, bool is_packed, bool is_gather_scatter) @@ -4973,13 +4972,13 @@ rs6000_builtin_support_vector_misalignment (machine_mode mode, { /* Misalignment factor is unknown at compile time but we know it's word aligned. */ - if (rs6000_vector_alignment_reachable (type, is_packed)) - { - int element_size = TREE_INT_CST_LOW (TYPE_SIZE (type)); + if (rs6000_vector_alignment_reachable (NULL_TREE, is_packed)) + { + int element_size = GET_MODE_UNIT_BITSIZE (mode); - if (element_size == 64 || element_size == 32) - return true; - } + if (element_size == 64 || element_size == 32) + return true; + } return false; } diff --git a/gcc/config/rs6000/rtems.h b/gcc/config/rs6000/rtems.h index 95b59f60a1b0..a7b8f0f3cc30 100644 --- a/gcc/config/rs6000/rtems.h +++ b/gcc/config/rs6000/rtems.h @@ -297,9 +297,9 @@ /* Use gnu-user.h LINK_GCC_SEQUENCE_SPEC for rtems. */ #undef LINK_GCC_C_SEQUENCE_SPEC #define LINK_GCC_C_SEQUENCE_SPEC \ - "%{mads|myellowknife|mmvme|msim:%G %L %G;" \ + "%{mads|myellowknife|mmvme|msim:%G" LINK_LIBATOMIC_SPEC "%L %G;" \ "!mcall-*|mcall-linux:" GNU_USER_TARGET_LINK_GCC_C_SEQUENCE_SPEC ";" \ - ":%G %L %G}" + ":%G" LINK_LIBATOMIC_SPEC "%L %G}" #define RTEMS_STARTFILE_SPEC "ecrti%O%s rtems_crti%O%s crtbegin%O%s" #define RTEMS_ENDFILE_SPEC "crtend%O%s rtems_crtn%O%s ecrtn%O%s" diff --git a/gcc/config/s390/s390.cc b/gcc/config/s390/s390.cc index 1a47f477dd3c..d65109026f2a 100644 --- a/gcc/config/s390/s390.cc +++ b/gcc/config/s390/s390.cc @@ -17503,7 +17503,6 @@ s390_preferred_simd_mode (scalar_mode mode) /* Our hardware does not require vectors to be strictly aligned. */ static bool s390_support_vector_misalignment (machine_mode mode ATTRIBUTE_UNUSED, - const_tree type ATTRIBUTE_UNUSED, int misalignment ATTRIBUTE_UNUSED, bool is_packed ATTRIBUTE_UNUSED, bool is_gather_scatter ATTRIBUTE_UNUSED) @@ -17511,7 +17510,7 @@ s390_support_vector_misalignment (machine_mode mode ATTRIBUTE_UNUSED, if (TARGET_VX) return true; - return default_builtin_support_vector_misalignment (mode, type, misalignment, + return default_builtin_support_vector_misalignment (mode, misalignment, is_packed, is_gather_scatter); } diff --git a/gcc/config/sparc/sparc.h b/gcc/config/sparc/sparc.h index 68aba07881d9..48ddb3d96c21 100644 --- a/gcc/config/sparc/sparc.h +++ b/gcc/config/sparc/sparc.h @@ -409,7 +409,9 @@ along with GCC; see the file COPYING3. If not see /* Because libgcc can generate references back to libc (via .umul etc.) we have to list libc again after the second libgcc. */ -#define LINK_GCC_C_SEQUENCE_SPEC "%G %{!nolibc:%L} %G %{!nolibc:%L}" +#define LINK_GCC_C_SEQUENCE_SPEC \ + "%G %{!nolibc:" LINK_LIBATOMIC_SPEC "%L} \ + %G %{!nolibc:" LINK_LIBATOMIC_SPEC "%L}" #define PTRDIFF_TYPE (TARGET_ARCH64 ? "long int" : "int") diff --git a/gcc/config/xtensa/constraints.md b/gcc/config/xtensa/constraints.md index 727ec1e2c202..08fdab1c2e7f 100644 --- a/gcc/config/xtensa/constraints.md +++ b/gcc/config/xtensa/constraints.md @@ -121,7 +121,8 @@ (ior (and (match_code "const_int,const_double,const,symbol_ref,label_ref") (match_test "TARGET_AUTO_LITPOOLS")) (and (match_code "const_int") - (match_test "! xtensa_split1_finished_p ()")))) + (match_test "!TARGET_CONST16 + && ! xtensa_postreload_completed_p ()")))) ;; Memory constraints. diff --git a/gcc/config/xtensa/predicates.md b/gcc/config/xtensa/predicates.md index 20160a4c4e5f..62c0f8aca208 100644 --- a/gcc/config/xtensa/predicates.md +++ b/gcc/config/xtensa/predicates.md @@ -147,7 +147,7 @@ (ior (and (match_code "const_int") (match_test "(GET_MODE_CLASS (mode) == MODE_INT && xtensa_simm12b (INTVAL (op))) - || ! xtensa_split1_finished_p ()")) + || ! xtensa_postreload_completed_p ()")) (and (match_code "const_int,const_double,const,symbol_ref,label_ref") (match_test "(TARGET_CONST16 || TARGET_AUTO_LITPOOLS) && CONSTANT_P (op)"))))) diff --git a/gcc/config/xtensa/t-xtensa b/gcc/config/xtensa/t-xtensa index 98f98e0d7361..d09d41ab37d4 100644 --- a/gcc/config/xtensa/t-xtensa +++ b/gcc/config/xtensa/t-xtensa @@ -23,3 +23,5 @@ $(out_object_file): gt-xtensa.h xtensa-dynconfig.o: $(srcdir)/config/xtensa/xtensa-dynconfig.cc $(COMPILE) $< $(POSTCOMPILE) + +PASSES_EXTRA += $(srcdir)/config/xtensa/xtensa-passes.def diff --git a/gcc/config/xtensa/xtensa-passes.def b/gcc/config/xtensa/xtensa-passes.def new file mode 100644 index 000000000000..3958957ff7fa --- /dev/null +++ b/gcc/config/xtensa/xtensa-passes.def @@ -0,0 +1,20 @@ +/* Description of target passes for Tensilica's Xtensa architecture. + Copyright (C) 2025 Free Software Foundation, Inc. + +This file is part of GCC. + +GCC 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, or (at your option) any later +version. + +GCC 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 GCC; see the file COPYING3. If not see +. */ + +INSERT_PASS_AFTER (pass_postreload_cse, 1, pass_xtensa_largeconst); diff --git a/gcc/config/xtensa/xtensa-protos.h b/gcc/config/xtensa/xtensa-protos.h index 98e75c6a5356..404180723e4d 100644 --- a/gcc/config/xtensa/xtensa-protos.h +++ b/gcc/config/xtensa/xtensa-protos.h @@ -44,7 +44,6 @@ extern int xtensa_expand_scc (rtx *, machine_mode); extern int xtensa_expand_block_move (rtx *); extern int xtensa_expand_block_set (rtx *); extern void xtensa_split_operand_pair (rtx *, machine_mode); -extern int xtensa_constantsynth (rtx, rtx); extern int xtensa_emit_move_sequence (rtx *, machine_mode); extern rtx xtensa_copy_incoming_a7 (rtx); extern void xtensa_expand_nonlocal_goto (rtx *); @@ -58,8 +57,7 @@ extern char *xtensa_emit_call (int, rtx *); extern char *xtensa_emit_sibcall (int, rtx *); extern bool xtensa_tls_referenced_p (rtx); extern enum rtx_code xtensa_shlrd_which_direction (rtx, rtx); -extern bool xtensa_split1_finished_p (void); -extern void xtensa_split_DI_reg_imm (rtx *); +extern bool xtensa_postreload_completed_p (void); extern char *xtensa_bswapsi2_output (rtx_insn *, const char *); #ifdef TREE_CODE @@ -82,5 +80,6 @@ extern void xtensa_adjust_reg_alloc_order (void); extern enum reg_class xtensa_regno_to_class (int regno); extern HOST_WIDE_INT xtensa_initial_elimination_offset (int from, int to); extern const char **xtensa_get_config_strings (void); +extern rtl_opt_pass *make_pass_xtensa_largeconst (gcc::context *); #endif /* !__XTENSA_PROTOS_H__ */ diff --git a/gcc/config/xtensa/xtensa.cc b/gcc/config/xtensa/xtensa.cc index bcb26df2e22b..33e52a285b1e 100644 --- a/gcc/config/xtensa/xtensa.cc +++ b/gcc/config/xtensa/xtensa.cc @@ -58,8 +58,6 @@ along with GCC; see the file COPYING3. If not see #include "insn-attr.h" #include "tree-pass.h" #include "print-rtl.h" -#include "context.h" -#include "pass_manager.h" #include #include "opts.h" @@ -110,7 +108,7 @@ struct GTY(()) machine_function bool inhibit_logues_a1_adjusts; rtx last_logues_a9_content; HARD_REG_SET eliminated_callee_saved; - hash_map *litpool_usage; + bool postreload_completed; }; static void xtensa_option_override (void); @@ -204,6 +202,10 @@ static rtx xtensa_delegitimize_address (rtx); static reg_class_t xtensa_ira_change_pseudo_allocno_class (int, reg_class_t, reg_class_t); static HARD_REG_SET xtensa_zero_call_used_regs (HARD_REG_SET); +static rtx_insn *xtensa_md_asm_adjust (vec &, vec &, + vec &, vec &, + vec &, vec &, HARD_REG_SET &, + location_t); @@ -377,6 +379,9 @@ static HARD_REG_SET xtensa_zero_call_used_regs (HARD_REG_SET); #undef TARGET_ZERO_CALL_USED_REGS #define TARGET_ZERO_CALL_USED_REGS xtensa_zero_call_used_regs +#undef TARGET_MD_ASM_ADJUST +#define TARGET_MD_ASM_ADJUST xtensa_md_asm_adjust + struct gcc_target targetm = TARGET_INITIALIZER; @@ -1111,219 +1116,6 @@ xtensa_split_operand_pair (rtx operands[4], machine_mode mode) } -/* Try to emit insns to load src (either naked or pooled SI/SF constant) - into dst with synthesizing a such constant value from a sequence of - load-immediate / arithmetic ones, instead of a L32R instruction - (plus a constant in litpool). */ - -static int -xtensa_constantsynth_2insn (rtx dst, HOST_WIDE_INT srcval, - rtx (*gen_op)(rtx, HOST_WIDE_INT), - HOST_WIDE_INT op_imm) -{ - HOST_WIDE_INT imm = INT_MAX; - rtx x = NULL_RTX; - int shift, sqr; - - gcc_assert (REG_P (dst)); - - shift = exact_log2 (srcval + 1); - if (IN_RANGE (shift, 1, 31)) - { - imm = -1; - x = gen_lshrsi3 (dst, dst, GEN_INT (32 - shift)); - } - - shift = ctz_hwi (srcval); - if ((!x || (TARGET_DENSITY && ! IN_RANGE (imm, -32, 95))) - && xtensa_simm12b (srcval >> shift)) - { - imm = srcval >> shift; - x = gen_ashlsi3 (dst, dst, GEN_INT (shift)); - } - - if ((!x || (TARGET_DENSITY && ! IN_RANGE (imm, -32, 95))) - && IN_RANGE (srcval, (-2048 - 32768), (2047 + 32512))) - { - HOST_WIDE_INT imm0, imm1; - - if (srcval < -32768) - imm1 = -32768; - else if (srcval > 32512) - imm1 = 32512; - else - imm1 = srcval & ~255; - imm0 = srcval - imm1; - if (TARGET_DENSITY && imm1 < 32512 && IN_RANGE (imm0, 224, 255)) - imm0 -= 256, imm1 += 256; - imm = imm0; - x = gen_addsi3 (dst, dst, GEN_INT (imm1)); - } - - sqr = (int) floorf (sqrtf (srcval)); - if (TARGET_MUL32 && optimize_size - && !x && IN_RANGE (srcval, 0, (2047 * 2047)) && sqr * sqr == srcval) - { - imm = sqr; - x = gen_mulsi3 (dst, dst, dst); - } - - if (!x) - return 0; - - emit_move_insn (dst, GEN_INT (imm)); - emit_insn (x); - if (gen_op) - emit_move_insn (dst, gen_op (dst, op_imm)); - - return 1; -} - -static rtx -xtensa_constantsynth_rtx_SLLI (rtx reg, HOST_WIDE_INT imm) -{ - return gen_rtx_ASHIFT (SImode, reg, GEN_INT (imm)); -} - -static rtx -xtensa_constantsynth_rtx_ADDSUBX (rtx reg, HOST_WIDE_INT imm) -{ - return imm == 7 - ? gen_rtx_MINUS (SImode, gen_rtx_ASHIFT (SImode, reg, GEN_INT (3)), - reg) - : gen_rtx_PLUS (SImode, gen_rtx_ASHIFT (SImode, reg, - GEN_INT (floor_log2 (imm - 1))), - reg); -} - -int -xtensa_constantsynth (rtx dst, rtx src) -{ - HOST_WIDE_INT srcval; - static opt_pass *pass_rtl_split2; - int *pv; - - /* Derefer if src is litpool entry, and get integer constant value. */ - src = avoid_constant_pool_reference (src); - if (CONST_INT_P (src)) - srcval = INTVAL (src); - else if (CONST_DOUBLE_P (src) && GET_MODE (src) == SFmode) - { - long l; - - REAL_VALUE_TO_TARGET_SINGLE (*CONST_DOUBLE_REAL_VALUE (src), l); - srcval = (int32_t)l, src = GEN_INT (srcval); - } - else - return 0; - - /* Force dst as SImode. */ - gcc_assert (REG_P (dst)); - if (GET_MODE (dst) != SImode) - dst = gen_rtx_REG (SImode, REGNO (dst)); - - if (optimize_size) - { - /* During the first split pass after register allocation (rtl-split2), - record the occurrence of integer src value and do nothing. */ - if (!pass_rtl_split2) - pass_rtl_split2 = g->get_passes ()->get_pass_by_name ("rtl-split2"); - if (current_pass == pass_rtl_split2) - { - if (!cfun->machine->litpool_usage) - cfun->machine->litpool_usage = hash_map::create_ggc (); - if ((pv = cfun->machine->litpool_usage->get (src))) - ++*pv; - else - cfun->machine->litpool_usage->put (src, 1); - return 0; - } - - /* If two or more identical integer constants appear in the function, - the code size can be reduced by re-emitting a "move" (load from an - either litpool entry or relaxed immediate) instruction in SImode - to increase the chances that the litpool entry will be shared. */ - if (cfun->machine->litpool_usage - && (pv = cfun->machine->litpool_usage->get (src)) - && *pv > 1) - { - emit_move_insn (dst, src); - return 1; - } - } - - /* No need for synthesizing for what fits into MOVI instruction. */ - if (xtensa_simm12b (srcval)) - { - emit_move_insn (dst, src); - return 1; - } - - /* 2-insns substitution. */ - if ((optimize_size || (optimize && xtensa_extra_l32r_costs >= 1)) - && xtensa_constantsynth_2insn (dst, srcval, NULL, 0)) - return 1; - - /* 3-insns substitution. */ - if (optimize > 1 && !optimize_size && xtensa_extra_l32r_costs >= 2) - { - int shift, divisor; - - /* 2-insns substitution followed by SLLI. */ - shift = ctz_hwi (srcval); - if (IN_RANGE (shift, 1, 31) && - xtensa_constantsynth_2insn (dst, srcval >> shift, - xtensa_constantsynth_rtx_SLLI, - shift)) - return 1; - - /* 2-insns substitution followed by ADDX[248] or SUBX8. */ - if (TARGET_ADDX) - for (divisor = 3; divisor <= 9; divisor += 2) - if (srcval % divisor == 0 && - xtensa_constantsynth_2insn (dst, srcval / divisor, - xtensa_constantsynth_rtx_ADDSUBX, - divisor)) - return 1; - - /* loading simm12 followed by left/right bitwise rotation: - MOVI + SSAI + SRC. */ - if ((srcval & 0x001FF800) == 0 - || (srcval & 0x001FF800) == 0x001FF800) - { - int32_t v; - - for (shift = 1; shift < 12; ++shift) - { - v = (int32_t)(((uint32_t)srcval >> shift) - | ((uint32_t)srcval << (32 - shift))); - if (xtensa_simm12b(v)) - { - emit_move_insn (dst, GEN_INT (v)); - emit_insn (gen_rotlsi3 (dst, dst, GEN_INT (shift))); - return 1; - } - v = (int32_t)(((uint32_t)srcval << shift) - | ((uint32_t)srcval >> (32 - shift))); - if (xtensa_simm12b(v)) - { - emit_move_insn (dst, GEN_INT (v)); - emit_insn (gen_rotrsi3 (dst, dst, GEN_INT (shift))); - return 1; - } - } - } - } - - /* If cannot synthesize the value and also cannot fit into MOVI instruc- - tion, re-emit a "move" (load from an either litpool entry or relaxed - immediate) instruction in SImode in order to increase the chances that - the litpool entry will be shared. */ - emit_move_insn (dst, src); - return 1; -} - - /* Emit insns to move operands[1] into operands[0]. Return 1 if we have written out everything that needs to be done to do the move. Otherwise, return 0 and the caller will emit the move @@ -1335,7 +1127,7 @@ xtensa_emit_move_sequence (rtx *operands, machine_mode mode) rtx src = operands[1]; if (CONSTANT_P (src) - && (! CONST_INT_P (src) || ! xtensa_simm12b (INTVAL (src)))) + && ! (CONST_INT_P (src) && xtensa_simm12b (INTVAL (src)))) { rtx dst = operands[0]; @@ -1359,8 +1151,8 @@ xtensa_emit_move_sequence (rtx *operands, machine_mode mode) return 1; } - if (! TARGET_AUTO_LITPOOLS && ! TARGET_CONST16 - && ! (CONST_INT_P (src) && can_create_pseudo_p ())) + if (!TARGET_CONST16 && !TARGET_AUTO_LITPOOLS + && (! CONST_INT_P (src) || xtensa_postreload_completed_p ())) { src = force_const_mem (SImode, src); operands[1] = src; @@ -2616,33 +2408,12 @@ xtensa_shlrd_which_direction (rtx op0, rtx op1) } -/* Return true after "split1" pass has been finished. */ +/* Return true after "postreload" pass has been completed. */ bool -xtensa_split1_finished_p (void) +xtensa_postreload_completed_p (void) { - return cfun && (cfun->curr_properties & PROP_rtl_split_insns); -} - - -/* Split a DImode pair of reg (operand[0]) and const_int (operand[1]) into - two SImode pairs, the low-part (operands[0] and [1]) and the high-part - (operands[2] and [3]). */ - -void -xtensa_split_DI_reg_imm (rtx *operands) -{ - rtx lowpart, highpart; - - if (WORDS_BIG_ENDIAN) - split_double (operands[1], &highpart, &lowpart); - else - split_double (operands[1], &lowpart, &highpart); - - operands[3] = highpart; - operands[2] = gen_highpart (SImode, operands[0]); - operands[1] = lowpart; - operands[0] = gen_lowpart (SImode, operands[0]); + return cfun && cfun->machine->postreload_completed; } @@ -5136,7 +4907,8 @@ static bool xtensa_legitimate_constant_p (machine_mode mode ATTRIBUTE_UNUSED, rtx x) { if (CONST_INT_P (x)) - return TARGET_AUTO_LITPOOLS || TARGET_CONST16 + return TARGET_CONST16 || TARGET_AUTO_LITPOOLS + || ! xtensa_postreload_completed_p () || xtensa_simm12b (INTVAL (x)); return !xtensa_tls_referenced_p (x); @@ -5648,4 +5420,952 @@ xtensa_zero_call_used_regs (HARD_REG_SET selected_regs) return selected_regs; } +/* Implement TARGET_MD_ASM_ADJUST. + + If either TARGET_CONST16 or TARGET_AUTO_LITPOOLS is enabled, the 'g'- + constraint (based on general_operand()) accepts any integer constant, + but if neither it limits within signed 12 bit by + TARGET_LEGITIMATE_CONSTANT_P(). + This behavior is not reasonable and can be addressed by prepending an + 'n'-constraint to the 'g' during the RTL generation, if necessary. */ + +static rtx_insn * +xtensa_md_asm_adjust (vec &outputs ATTRIBUTE_UNUSED, + vec &inputs ATTRIBUTE_UNUSED, + vec &input_modes ATTRIBUTE_UNUSED, + vec &constraints, + vec &uses ATTRIBUTE_UNUSED, + vec &clobbers ATTRIBUTE_UNUSED, + HARD_REG_SET &clobbered_regs ATTRIBUTE_UNUSED, + location_t loc ATTRIBUTE_UNUSED) +{ + size_t n, l; + const char *p; + int c; + char *modified, *q; + + if (!TARGET_CONST16 && !TARGET_AUTO_LITPOOLS) + for (auto &constraint : constraints) + { + /* Count the number of 'g'-constraints in each constraint string. */ + for (n = 0, p = constraint; (c = *p); p += CONSTRAINT_LEN (c, p)) + if (c == 'g') + ++n; + if (n == 0) + continue; + + /* If the constraint string contains 'g'-constraints, then each + 'g' is prefixed with an 'n'-constraint to form a new constraint + string. */ + n += strlen (constraint); + modified = (char *)ggc_alloc_atomic (n + 1); + for (p = constraint, q = modified; (c = *p); ) + if (c == 'g') + q[0] = 'n', q[1] = 'g', ++p, q += 2; + else + if ((l = CONSTRAINT_LEN (c, p)) > 1) + memcpy (q, p, l), p += l, q += l; + else + *q++ = *p++; + *q = '\0'; + if (dump_file) + fprintf (dump_file, + "xtensa_md_asm_adjust: " + "The constraint \"%s\" contains 'g's, so modify it to " + "\"%s\".\n", constraint, modified); + constraint = modified; + } + + return NULL; +} + +/* Machine-specific pass in order to replace all assignments of large + integer constants (i.e., that do not fit into the immediate field which + can hold signed 12 bits) with other legitimate forms, specifically, + references to literal pool entries, when neither TARGET_CONST16 nor + TARGET_AUTO_LITPOOLS is enabled. + + This pass also serves as a place to provide other optimizations, for + example, converting constants that are too large to fit into their + immediate fields into other representations that are more efficient + from a particular point of view. */ + +namespace +{ + +/* Cheap full_rtx_costs derivative for concise handling of insn sequence + costs. */ + +struct xt_full_rtx_costs : public full_rtx_costs +{ + inline xt_full_rtx_costs () + { + init_costs_to_zero (this); + } + + /* "Less-than" cost comparison. */ + inline bool operator< (xt_full_rtx_costs &rhs) + { + return costs_lt_p (this, &rhs, !optimize_size); + } + + /* Accumulate the costs of a specified insn. */ + xt_full_rtx_costs &operator+= (rtx_insn *insn) + { + speed += xtensa_insn_cost (insn, true); + size += xtensa_insn_cost (insn, false); + return *this; + } + + /* Create a new instance from the specified insn sequence. */ + explicit xt_full_rtx_costs (rtx_insn *seq) + : xt_full_rtx_costs () + { + for (; seq; seq = NEXT_INSN (seq)) + *this += seq; + } + + /* superior/inferior parts of the costs. */ + inline int major () + { + return optimize_size ? size : speed; + } + inline int minor () + { + return optimize_size ? speed : size; + } +}; + +/* Optimize assignment of negatively-scaled (up to the minus 15th power + of two) signed 12-bit integer immediate values to hardware floating- + point registers. For example, 0.12005615234375f is exactly equal to + (1967.f / (1 << 14)), so we can emit such as: + movi a9, 1967 + float.s f0, a9, 14 + if such conversion reduces costs. */ + +static bool +FPreg_neg_scaled_simm12b_1 (const REAL_VALUE_TYPE *rval, + HOST_WIDE_INT &v, int &scale) +{ + REAL_VALUE_TYPE r; + int shift; + + /* Non-zero finite values can only be accepted. */ + if (! real_isfinite (rval) || rval->cl == rvc_zero) + return false; + + /* Check whether the value multiplied by 32768 is an exact integer and + the result after truncating the trailing '0' bits fits into a signed + 12-bit. */ + real_ldexp (&r, rval, 15); + if (! real_isinteger (&r, &v) + || ! xtensa_simm12b (v >>= (shift = MIN (ctz_hwi (v), 15)))) + return false; + + scale = shift - 15; + return true; +} + +static bool +FPreg_neg_scaled_simm12b (rtx_insn *insn) +{ + rtx pat, dest, src, pat_1, dest_1, note, dest_2, pat_2; + HOST_WIDE_INT v; + int scale; + rtx_insn *next, *last, *seq; + REAL_VALUE_TYPE r; + + /* It matches RTL expressions of the following format: + (set (reg:SF gpr) (const_double:SF cst)) + (set (reg:SF fpr) (reg:SF gpr)) + REG_DEAD (reg:SF gpr) + where cst is a negatively-scaled signed 12-bit integer immediate + value. */ + if (TARGET_HARD_FLOAT && !TARGET_CONST16 + && GET_CODE (pat = PATTERN (insn)) == SET + && REG_P (dest = SET_DEST (pat)) && GP_REG_P (REGNO (dest)) + && GET_MODE (dest) == SFmode + && CONST_DOUBLE_P (src = avoid_constant_pool_reference (SET_SRC (pat))) + && GET_MODE (src) == SFmode + && FPreg_neg_scaled_simm12b_1 (CONST_DOUBLE_REAL_VALUE (src), + v, scale) + && (next = next_nonnote_nondebug_insn (insn)) + && NONJUMP_INSN_P (next) + && GET_CODE (pat_1 = PATTERN (next)) == SET + && REG_P (dest_1 = SET_DEST (pat_1)) && FP_REG_P (REGNO (dest_1)) + && GET_MODE (dest_1) == SFmode + && rtx_equal_p (SET_SRC (pat_1), dest) + && (note = find_reg_note (next, REG_DEAD, dest))) + { + /* Estimate the costs of two matching insns. */ + xt_full_rtx_costs costs; + costs += insn, costs += next; + + /* Prepare alternative insns and estimate their costs. */ + start_sequence (); + emit_insn (gen_rtx_SET (dest_2 = gen_rtx_REG (SImode, REGNO (dest)), + GEN_INT (v))); + pat_2 = gen_rtx_FLOAT (SFmode, dest_2); + if (scale < 0) + { + real_ldexp (&r, &dconst1, scale); + pat_2 = gen_rtx_MULT (SFmode, pat_2, + const_double_from_real_value (r, SFmode)); + } + last = emit_insn (gen_rtx_SET (dest_1, pat_2)); + xt_full_rtx_costs costs_1 (seq = end_sequence ()); + + /* If the alternative is more cost effective, it replaces the original + insns. */ + if (costs_1 < costs) + { + if (dump_file) + { + fputs ("FPreg_neg_scaled_simm12b: ", dump_file); + dump_value_slim (dump_file, src, 0); + fprintf (dump_file, + "f = (" HOST_WIDE_INT_PRINT_DEC ".f/(1<<%d))\n", + v, -scale); + dump_insn_slim (dump_file, insn); + dump_insn_slim (dump_file, next); + } + remove_reg_equal_equiv_notes (insn); + validate_change (insn, &PATTERN (insn), + PATTERN (seq), 0); + remove_reg_equal_equiv_notes (next); + remove_note (next, note); + validate_change (next, &PATTERN (next), + PATTERN (last), 0); + add_reg_note (next, REG_EQUIV, src); + add_reg_note (next, REG_DEAD, dest_2); + if (dump_file) + { + fprintf (dump_file, + "FPreg_neg_scaled_simm12b: costs (%d,%d) -> (%d,%d)\n", + costs.major (), costs.minor (), + costs_1.major (), costs_1.minor ()); + dump_insn_slim (dump_file, insn); + dump_insn_slim (dump_file, next); + } + return true; + } + } + + return false; +} + +/* Split DI/SF/DFmode constant assignments into pairs of SImode ones. This + is also the pre-processing for constantsynth optimization that follows + immediately after. + + Note that all constant values and assignments are treated as SImode + because: + + - Synthesis methods rely on SImode operations + - SImode assignments may be shorter + - More opportunity for sharing literal pool entries + + This behavior would be acceptable if TARGET_CAN_CHANGE_MODE_CLASS always + returned true (the current and default configuration). */ + +static bool +split_DI_SF_DF_const (rtx_insn *insn) +{ + rtx pat, dest, src, dest0, dest1, src0, src1, src0c, src1c; + int regno; + + if (GET_CODE (pat = PATTERN (insn)) != SET + || ! REG_P (dest = SET_DEST (pat)) || ! GP_REG_P (regno = REGNO (dest))) + return false; + + /* It is more efficient to assign SFmode literal constants using their + bit-equivalent SImode ones, thus we convert them so. */ + src = avoid_constant_pool_reference (SET_SRC (pat)); + if (GET_MODE (dest) == SFmode + && CONST_DOUBLE_P (src) && GET_MODE (src) == SFmode) + { + long l; + REAL_VALUE_TO_TARGET_SINGLE (*CONST_DOUBLE_REAL_VALUE (src), l); + src0 = GEN_INT ((int32_t)l), dest0 = gen_rtx_REG (SImode, regno); + if (dump_file) + { + fputs ("split_DI_SF_DF_const: ", dump_file); + dump_value_slim (dump_file, src, 0); + fprintf (dump_file, + "f -> " HOST_WIDE_INT_PRINT_DEC " (" + HOST_WIDE_INT_PRINT_HEX ")\n", + INTVAL (src0), INTVAL (src0)); + } + src0c = NULL_RTX; + if (!TARGET_CONST16 && !TARGET_AUTO_LITPOOLS + && ! xtensa_simm12b (INTVAL (src0))) + src0c = src0, src0 = force_const_mem (SImode, src0); + remove_reg_equal_equiv_notes (insn); + validate_change (insn, &PATTERN (insn), gen_rtx_SET (dest0, src0), 0); + if (src0c) + add_reg_note (insn, REG_EQUIV, copy_rtx (src0c)); + return true; + } + + /* Splitting a D[IF]mode literal constant into two with split_double() + results in a pair of CONST_INTs, so they are assigned in SImode + regardless of the original source mode. */ + if ((GET_MODE (dest) == DImode && CONST_INT_P (src)) + || (GET_MODE (dest) == DFmode + && CONST_DOUBLE_P (src) && GET_MODE (src) == DFmode)) + { + dest0 = gen_rtx_REG (SImode, regno); + dest1 = gen_rtx_REG (SImode, regno + 1); + split_double (src, &src0, &src1); + if (dump_file) + { + fputs ("split_DI_SF_DF_const: ", dump_file); + dump_value_slim (dump_file, src, 0); + fprintf (dump_file, + " -> " HOST_WIDE_INT_PRINT_DEC " (" + HOST_WIDE_INT_PRINT_HEX "), " + HOST_WIDE_INT_PRINT_DEC " (" + HOST_WIDE_INT_PRINT_HEX ")\n", + INTVAL (src0), INTVAL (src0), + INTVAL (src1), INTVAL (src1)); + } + src1c = src0c = NULL_RTX; + if (!TARGET_CONST16 && !TARGET_AUTO_LITPOOLS) + { + if (! xtensa_simm12b (INTVAL (src0))) + src0c = src0, src0 = force_const_mem (SImode, src0); + if (! xtensa_simm12b (INTVAL (src1))) + src1c = src1, src1 = force_const_mem (SImode, src1); + } + remove_reg_equal_equiv_notes (insn); + validate_change (insn, &PATTERN (insn), gen_rtx_SET (dest0, src0), 0); + if (src0c) + add_reg_note (insn, REG_EQUIV, copy_rtx (src0c)); + insn = emit_insn_after (gen_rtx_SET (dest1, src1), insn); + if (src1c) + add_reg_note (insn, REG_EQUIV, copy_rtx (src1c)); + return true; + } + + return false; +} + +/* The constant-synthesis optimization (constantsynth for short). + + This is an optimization that attempts to replace the assignment of a + large integer (and some single-precision floating-point) constant value + that won't fit in the immediate field of a single machine instruction + with a smaller integer value that does fit, and a group of subsequent + instructions that derive the equivalent value through some arithmetic/ + bitwise operations. + + In Xtensa ISA, when TARGET_CONST16 is not enabled, such large immediate + assignments are typically treated as references to literal pool entries + using the L32R machine instruction, which has a one-clock delay to load + from memory, plus possible further implementation-dependent exclusive + clock penalties (aka. pipeline stall). + + To mitigate this, when optimization is enabled, we use several synthesis + methods to find alternative instruction sequences that do not exceed + the expected insn cost of single L32R instruction, based on either + clock cycle or # of bytes depending on whether optimizing for speed or + size. + + However, using L32R instructions has the advantage of sharing literal + pool entries when two or more identical immediate values are needed + within a function, this also needs to be considered especially when + optimizing for size. + + Below these are the definitions of each synthesis method. Each method + takes a destination register ('dest', which can be assumed to be SImode + address register) and an integer value, and returns an insn sequence + that sets the register to that value, if applicable. The framework + takes care of the rest of the heavy lifting, making it easy to test + and add new methods. + + The insn sequence returned by the methods must follow all of the rules + below: + + - The first insn assigns a signed 12-bit integer constant to 'dest' + - Each subsequent insn assigns to 'dest' the result of a unary or + binary operation between 'dest' and an integer constant or 'dest' + itself + - After the last insn is finished, the value of 'dest' will be equal + to the specified integer + + The sequence is verified to conform to the above rules by formally + evaluating its RTL expressions before substituting constant assignments. */ + +/* A method that generates two machine instructions to logically right- + shift minus one by a certain number of bits to synthesize a power of + two minus one (eg., 65535). */ + +static rtx_insn * +constantsynth_method_lshr_m1 (rtx dest, HOST_WIDE_INT v) +{ + int i; + + if (! IN_RANGE (i = exact_log2 (v + 1), 1, 31)) + return NULL; + + start_sequence (); + emit_insn (gen_rtx_SET (dest, constm1_rtx)); + emit_insn (gen_lshrsi3 (dest, dest, GEN_INT (32 - i))); + return end_sequence (); +} + +/* Split the specified value between -34816 and 34559 into the two + immediates for the MOVI and ADDMI instruction. */ + +static bool +split_hwi_to_MOVI_ADDMI (HOST_WIDE_INT v, + HOST_WIDE_INT &v_movi, HOST_WIDE_INT &v_addmi) +{ + HOST_WIDE_INT v0, v1; + + if (xtensa_simm12b (v)) + { + v_movi = v, v_addmi = 0; + return true; + } + + if (v < -32768) + v1 = -32768; + else if (v > 32512) + v1 = 32512; + else + v1 = v & ~255; + if (! xtensa_simm12b (v0 = v - v1)) + return false; + if (TARGET_DENSITY && v0 >= 224 && v1 < 32512) + v0 -= 256, v1 += 256; + + v_movi = v0, v_addmi = v1; + return true; +} + +/* A method that generates two machine instructions to add a signed 12-bit + value to 256 times a signed 8-bit value to synthesize values between + -34816 and 34559. Also, if the result of dividing the specified value + by a power of 2, or 9, 7, 5 or 3 with a remainder of 0 is within the + above range, the same processing is performed to append one instruction. */ + +static rtx_insn * +constantsynth_method_16bits (rtx dest, HOST_WIDE_INT v) +{ + HOST_WIDE_INT v_movi, v_addmi; + rtx postfix; + int i; + + if (split_hwi_to_MOVI_ADDMI (v, v_movi, v_addmi)) + postfix = NULL_RTX; + else if (i = ctz_hwi (v), + split_hwi_to_MOVI_ADDMI (v >> i, v_movi, v_addmi)) + postfix = gen_ashlsi3 (dest, dest, GEN_INT (i)); + else if (!TARGET_ADDX) + return NULL; + else for (i = 9; ; i -= 2) + if (i < 3) + return NULL; + else if (v % i == 0 + && split_hwi_to_MOVI_ADDMI (v / i, v_movi, v_addmi)) + { + postfix = (i == 7) + ? gen_subsi3 (dest, + gen_rtx_ASHIFT (SImode, dest, GEN_INT (3)), + dest) + : gen_addsi3 (dest, + gen_rtx_ASHIFT (SImode, dest, + GEN_INT (floor_log2 (i))), + dest); + break; + } + + start_sequence (); + emit_insn (gen_rtx_SET (dest, GEN_INT (v_movi))); + if (v_addmi) + emit_insn (gen_addsi3 (dest, dest, GEN_INT (v_addmi))); + emit_insn (postfix); + return end_sequence (); +} + +/* A method of generating up to five machine instructions; a signed 12-bit + immediate assignment, a signed 8-bit immediate addition multiplied by + 256, a logical left bit shift, a signed 8-bit immediate addition multi- + plied by 256, and a signed 8-bit immediate addition to synthesize a value + that can effectively be specified as 32 bits (adding zero is of course + omitted in the process). */ + +static rtx_insn * +constantsynth_method_32bits (rtx dest, HOST_WIDE_INT v) +{ + HOST_WIDE_INT v0, v1, v_movi, v_addmi; + int i; + + v1 = 0; + v0 = ((v += 128) & 255) - 128, v >>= 8; + if (v == 0) + i = 0, v_movi = 0, v_addmi = 0; + else if (i = ctz_hwi (v), + split_hwi_to_MOVI_ADDMI (v >> i, v_movi, v_addmi)) + i += 8; + else + { + v1 = ((v += 128) & 255) - 128, v >>= 8; + if (v == 0) + i = 0, v_movi = 0, v_addmi = 0; + else if (i = ctz_hwi (v), + split_hwi_to_MOVI_ADDMI (v >> i, v_movi, v_addmi)) + i += 16; + else + return NULL; + } + + start_sequence (); + emit_insn (gen_rtx_SET (dest, GEN_INT (v_movi))); + if (v_addmi) + emit_insn (gen_addsi3 (dest, dest, GEN_INT (v_addmi))); + if (i) + emit_insn (gen_ashlsi3 (dest, dest, GEN_INT (i))); + if (v1) + emit_insn (gen_addsi3 (dest, dest, GEN_INT (v1 * 256))); + if (v0) + emit_insn (gen_addsi3 (dest, dest, GEN_INT (v0))); + return end_sequence (); +} + +/* A method that generates two machine instructions to synthesize a + positive square number (up to 2047*2047) by assigning its square root + and multiplying it by itself. This method only works when TARGET_MUL32 + is enabled. */ + +static rtx_insn * +constantsynth_method_square (rtx dest, HOST_WIDE_INT v) +{ + int v0; + + if (!TARGET_MUL32 || ! IN_RANGE (v, 0, 2047 * 2047) + || (v0 = (int)sqrtf (v), v0 * v0 != v)) + return NULL; + + start_sequence (); + emit_insn (gen_rtx_SET (dest, GEN_INT (v0))); + emit_insn (gen_mulsi3 (dest, dest, dest)); + return end_sequence (); +} + +/* List of all available synthesis methods. */ + +struct constantsynth_method_info +{ + rtx_insn *(* const func) (rtx, HOST_WIDE_INT); + const char *name; +}; + +static const struct constantsynth_method_info constantsynth_methods[] = +{ + { constantsynth_method_lshr_m1, "lshr_m1" }, + { constantsynth_method_16bits, "16bits" }, + { constantsynth_method_32bits, "32bits" }, + { constantsynth_method_square, "square" }, +}; + +/* Information that mediates between synthesis pass 1 and 2. */ + +struct constantsynth_info +{ + xt_full_rtx_costs costs; + hash_map insns; + hash_map usage; + constantsynth_info () + { + /* To avoid wasting literal pool entries, we use fake references to + estimate the costs of an L32R instruction. */ + rtx x = gen_rtx_SYMBOL_REF (Pmode, "*.LC-1"); + SYMBOL_REF_FLAGS (x) |= SYMBOL_FLAG_LOCAL; + CONSTANT_POOL_ADDRESS_P (x) = 1; + x = gen_const_mem (SImode, x); + gcc_assert (constantpool_mem_p (x)); + costs += make_insn_raw (gen_rtx_SET (gen_rtx_REG (SImode, A9_REG), + x)); + } +}; + +/* constantsynth pass 1. + Detect and record large constant assignments within the function. */ + +static bool +constantsynth_pass1 (rtx_insn *insn, constantsynth_info &info) +{ + rtx pat, dest, src; + int *pcount; + + /* Check whether the insn is an assignment to a constant that is eligible + for constantsynth. If a large constant, record the insn and also the + number of occurrences of the constant if optimizing for size. If the + constant fits in the immediate field, update the insn to re-assign the + constant. */ + if (TARGET_CONST16 + || GET_CODE (pat = PATTERN (insn)) != SET + || ! REG_P (dest = SET_DEST (pat)) || ! GP_REG_P (REGNO (dest)) + || GET_MODE (dest) != SImode + || ! CONST_INT_P (src = avoid_constant_pool_reference (SET_SRC (pat)))) + return false; + + if (xtensa_simm12b (INTVAL (src))) + { + if (src != SET_SRC (pat)) + { + remove_reg_equal_equiv_notes (insn); + validate_change (insn, &PATTERN (insn), + gen_rtx_SET (dest, src), 0); + } + if (dump_file) + fprintf (dump_file, + "constantsynth_pass1: immediate, " HOST_WIDE_INT_PRINT_DEC + " (" HOST_WIDE_INT_PRINT_HEX ")\n", + INTVAL (src), INTVAL (src)); + } + else + { + info.insns.put (insn, src); + if (optimize_size) + { + if ((pcount = info.usage.get (src))) + ++*pcount; + else + info.usage.put (src, 1); + } + } + + return true; +} + +/* If an insn sequence returned by one of the constantsynth methods conforms + to the rules and formal evaluation of the sequence from beginning to end + reduces to a single CONST_INT, return it. */ + +static rtx +verify_synth_seq (rtx_insn *seq, const_rtx dest) +{ + rtx pat, cst; + + if (! NONJUMP_INSN_P (seq) + || GET_CODE (pat = PATTERN (seq)) != SET + || ! rtx_equal_p (SET_DEST (pat), dest) + || ! CONST_INT_P (cst = SET_SRC (pat)) + || ! xtensa_simm12b (INTVAL (cst))) + return NULL_RTX; + + for (seq = NEXT_INSN (seq); seq; seq = NEXT_INSN (seq)) + if (! NONJUMP_INSN_P (seq) + || GET_CODE (pat = PATTERN (seq)) != SET + || ! rtx_equal_p (SET_DEST (pat), dest) + || ! CONST_INT_P (cst = simplify_replace_rtx (SET_SRC (pat), + dest, cst))) + return NULL_RTX; + + return cst; +} + +/* constantsynth pass 2. + For each large constant value assignment collected in pass 1, try to + find a more efficient way to derive the value than referencing a literal + pool entry, and if found, replace the assignment with it. */ + +static void +constantsynth_pass2 (constantsynth_info &info) +{ + rtx_insn *insn, *min_seq, *seq, *last; + rtx pat, dest, src, cst; + enum machine_mode mode; + int *pcount, processed = 0; + HOST_WIDE_INT v; + const char *name; + + /* For each insn recorded in pass 1... */ + for (const auto &iter : info.insns) + { + dest = SET_DEST (pat = PATTERN (insn = iter.first)); + if ((mode = GET_MODE (dest)) != SImode) + dest = gen_rtx_REG (SImode, REGNO (dest)); + v = INTVAL (src = iter.second); + + /* Only attempt to synthesize large constants if they occur at most + once in a function, since it is more space-efficient to reference + a shared literal pool entry multiple times. */ + if (! (pcount = info.usage.get (src)) + || *pcount == 1) + { + /* Try multiple synthesis methods and choose the least expensive + one. */ + xt_full_rtx_costs min_costs = info.costs; + + v = INTVAL (src), min_seq = NULL, name = NULL; + for (const auto &method : constantsynth_methods) + if ((seq = method.func (dest, v))) + { + xt_full_rtx_costs costs (seq); + + if (costs < min_costs) + min_costs = costs, min_seq = seq, name = method.name; + } + + /* If there is a most efficient synthesis method, replace the + insn with the result. */ + if (min_seq) + { + if (flag_checking) + { + if (! (cst = verify_synth_seq (min_seq, dest))) + internal_error ("constantsynth: method %qs " + "invalid insn sequence, " + "expected %wd (%wx)", name, + v, v); + if (INTVAL (cst) != v) + internal_error ("constantsynth: method %qs " + "value mismatch, " + "expected %wd (%wx) " + "synthesized %wd (%wx)", name, + v, v,INTVAL (cst), INTVAL (cst)); + } + + for (last = min_seq; NEXT_INSN (last); + last = NEXT_INSN (last)) + ; + add_reg_note (last, REG_EQUIV, copy_rtx (src)); + if (dump_file) + { + fprintf (dump_file, + "constantsynth_pass2: method \"%s\", " + HOST_WIDE_INT_PRINT_DEC " (", + name, v); + dump_value_slim (dump_file, src, 0); + fprintf (dump_file, ")\n"); + dump_insn_slim (dump_file, insn); + fprintf (dump_file, + "constantsynth_pass2: costs (%d,%d) -> (%d,%d)\n", + info.costs.major (), info.costs.minor (), + min_costs.major (), min_costs.minor ()); + dump_rtl_slim (dump_file, min_seq, NULL, -1, 0); + } + emit_insn_before (min_seq, insn); + set_insn_deleted (insn); + ++processed; + continue; + } + } + + /* Large constants that are not subject to synthesize are left in + the literal pool. */ + if (dump_file) + fprintf (dump_file, + "constantsynth_pass2: litpool, " HOST_WIDE_INT_PRINT_DEC + " (" HOST_WIDE_INT_PRINT_HEX ")\n", + v, v); + } + + if (dump_file) + { + fprintf (dump_file, "constantsynth_pass2: %u insns", + (unsigned)info.insns.elements ()); + if (optimize_size) + fprintf (dump_file, ", %u large CONST_INTs", + (unsigned int)info.usage.elements ()); + fprintf (dump_file, ", %d processed\n", processed); + } +} + +/* Replace the source of [SH]Imode allocation whose value does not fit + into signed 12 bits with a reference to litpool entry. */ + +static bool +litpool_set_src_1 (rtx_insn *insn, rtx set, bool in_group) +{ + rtx dest, src; + enum machine_mode mode; + + if (REG_P (dest = SET_DEST (set)) + && ((mode = GET_MODE (dest)) == SImode || mode == HImode) + && CONST_INT_P (src = SET_SRC (set)) + && ! xtensa_simm12b (INTVAL (src))) + { + remove_reg_equal_equiv_notes (insn); + validate_change (insn, &SET_SRC (set), + force_const_mem (mode, src), in_group); + add_reg_note (insn, REG_EQUIV, copy_rtx (src)); + return true; + } + + return false; +} + +static bool +litpool_set_src (rtx_insn *insn) +{ + rtx pat = PATTERN (insn); + int i; + bool changed; + + switch (GET_CODE (pat)) + { + case SET: + return litpool_set_src_1 (insn, pat, 0); + + /* There should be no assignments within PARALLEL in this target, + but just to be sure. */ + case PARALLEL: + changed = false; + for (i = 0; i < XVECLEN (pat, 0); ++i) + if (GET_CODE (XVECEXP (pat, 0, i)) == SET + && litpool_set_src_1 (insn, XVECEXP (pat, 0, i), 1)) + changed = true; + if (changed) + apply_change_group (); + return changed; + + default: + return false; + } +} + +/* Replace all occurrences of large immediate values in assignment sources + that were permitted for convenience with their legitimate forms, or + more efficient representations if possible. */ + +static void +do_largeconst (void) +{ + bool replacing_required = !TARGET_CONST16 && !TARGET_AUTO_LITPOOLS; + bool optimize_enabled = optimize && !optimize_debug; + rtx_insn *insn; + constantsynth_info cs_info; + + /* Verify the legitimacy of replacing constant assignments in + DI/SF/DFmode with those in SImode. */ + gcc_assert (targetm.can_change_mode_class + == hook_bool_mode_mode_reg_class_t_true); + + for (insn = get_insns (); insn; insn = NEXT_INSN (insn)) + if (NONJUMP_INSN_P (insn)) + { + /* Optimize assignment of negatively scaled (up to the minus + 15th power of two) signed 12-bit immediate values to hardware + floating-point registers. */ + if (optimize_enabled + && FPreg_neg_scaled_simm12b (insn)) + continue; + + /* Replace the source of [SH]Imode allocation whose value does not + fit into signed 12 bits with a reference to litpool entry. */ + if (replacing_required) + litpool_set_src (insn); + + /* Split DI/SF/DFmode constant assignments into pairs of SImode + ones. This is also the pre-processing for constantsynth opti- + mization that follows immediately after. */ + if (replacing_required) + split_DI_SF_DF_const (insn); + + /* constantsynth pass 1. + Detect and record large constant assignments within a function. */ + if (optimize_enabled) + constantsynth_pass1 (insn, cs_info); + } + + /* constantsynth pass 2. + For each large constant value assignment collected in pass 1, try to + find a more efficient way to derive the value than referencing a literal + pool entry, and if found, replace the assignment with it. */ + if (optimize_enabled) + constantsynth_pass2 (cs_info); +} + +/* Convert assignments for large constants. */ + +static unsigned int +rest_of_handle_largeconst (void) +{ + /* Until this flag becomes true, all RTL expressions that assign integer + (not symbol nor floating-point) constants to [SH]Imode registers are + allowed regardless of the values' bit width or configurations of + TARGET_CONST16 and TARGET_AUTO_LITPOOLS. This trick avoids some of + the problems that can arise from blindly following the result of + TARGET_LEGITIMATE_CONSTANT_P() either directly or via general/ + immediate_operands(). + + For example, the "cbranchsi4" MD expansion pattern in this target has + "nonmemory_operand" predicate specified for operand 2, which is + reasonable for most RISC machines where only registers or small set of + constants can be compared. Incidentally, the Xtensa ISA has branch + instructions that perform GEU/LTU comparisons with 32768 or 65536, but + such constants are previously not accepted by "nonmemory_operand" + because the predicate is internally constrained to "immediate_operand" + which is essentially TARGET_LEGITIMATE_CONSTANT_P(). It would not be + impossible to describe a peculiar predicate or condition in the pattern + to get around this, but it would be "elephant" (inelegant). + Fortunately, this issue will be salvaged at higher optimization levels + in subsequent RTL instruction combination pass, but these instructions + are suppose to be emitted properly without any optimization. + + Also, there are not a few cases where optimizers only accept bare + CONST_INTs and do not consider that references to pooled constants + are semantically equivalent to bare ones. A good example of this is + a certain constant anchoring optimization performed in the postreload + pass, which requires anchoring constants to be bare, not pooled. + + In any case, once postreload is complete, the trick described above + is no longer needed, so such assignments must now be all converted + back to references to literal pool entries (the original legitimate + form) if neither TARGET_CONST16 nor TARGET_AUTO_LITPOOLS is enabled. + See the function do_largeconst() called below. */ + cfun->machine->postreload_completed = true; + + df_set_flags (DF_DEFER_INSN_RESCAN); + df_note_add_problem (); + df_analyze (); + + /* Do the process. */ + do_largeconst (); + + return 0; +} + +const pass_data pass_data_xtensa_largeconst = +{ + RTL_PASS, /* type */ + "xt_largeconst", /* name */ + OPTGROUP_NONE, /* optinfo_flags */ + TV_MACH_DEP, /* tv_id */ + 0, /* properties_required */ + 0, /* properties_provided */ + 0, /* properties_destroyed */ + 0, /* todo_flags_start */ + TODO_df_finish, /* todo_flags_finish */ +}; + +class pass_xtensa_largeconst : public rtl_opt_pass +{ +public: + pass_xtensa_largeconst (gcc::context *ctxt) + : rtl_opt_pass (pass_data_xtensa_largeconst, ctxt) + {} + + /* opt_pass methods: */ + unsigned int execute (function *) final override + { + return rest_of_handle_largeconst (); + } + +}; // class pass_xtensa_largeconst + +} // anon namespace + +rtl_opt_pass * +make_pass_xtensa_largeconst (gcc::context *ctxt) +{ + return new pass_xtensa_largeconst (ctxt); +} + #include "gt-xtensa.h" diff --git a/gcc/config/xtensa/xtensa.md b/gcc/config/xtensa/xtensa.md index 52ffb161c0f5..cb047b0f6557 100644 --- a/gcc/config/xtensa/xtensa.md +++ b/gcc/config/xtensa/xtensa.md @@ -90,10 +90,6 @@ (define_mode_iterator HQI [HI QI]) (define_mode_attr mode_bits [(HI "16") (QI "8")]) -;; This mode iterator allows the SI and HI patterns to be defined from -;; the same template. -(define_mode_iterator SHI [SI HI]) - ;; This iterator and attribute allow signed/unsigned FP truncations to be ;; generated from one template. (define_code_iterator any_fix [fix unsigned_fix]) @@ -1219,22 +1215,8 @@ (match_operand:DI 1 "general_operand" ""))] "" { - if (CONSTANT_P (operands[1])) - { - /* Split in halves if 64-bit Const-to-Reg moves - because of offering further optimization opportunities. */ - if (register_operand (operands[0], DImode)) - { - rtx ops[4] = { operands[0], operands[1] }; - xtensa_split_DI_reg_imm (ops); - emit_move_insn (ops[0], ops[1]); - emit_move_insn (ops[2], ops[3]); - DONE; - } - - if (!TARGET_CONST16) - operands[1] = force_const_mem (DImode, operands[1]); - } + if (!TARGET_CONST16 && CONSTANT_P (operands[1])) + operands[1] = force_const_mem (DImode, operands[1]); if (!register_operand (operands[0], DImode) && !register_operand (operands[1], DImode)) @@ -1244,8 +1226,8 @@ }) (define_insn_and_split "movdi_internal" - [(set (match_operand:DI 0 "nonimmed_operand" "=a,W,a,a,U") - (match_operand:DI 1 "move_operand" "r,i,T,U,r"))] + [(set (match_operand:DI 0 "nonimmed_operand" "=a,a,W,a,a,U") + (match_operand:DI 1 "move_operand" "r,Y,i,T,U,r"))] "register_operand (operands[0], DImode) || register_operand (operands[1], DImode)" "#" @@ -1260,22 +1242,9 @@ std::swap (operands[2], operands[3]); } } - [(set_attr "type" "move,move,load,load,store") + [(set_attr "type" "move,load,move,load,load,store") (set_attr "mode" "DI") - (set_attr "length" "6,12,6,6,6")]) - -(define_split - [(set (match_operand:DI 0 "register_operand") - (match_operand:DI 1 "const_int_operand"))] - "!TARGET_CONST16 - && ! xtensa_split1_finished_p ()" - [(set (match_dup 0) - (match_dup 1)) - (set (match_dup 2) - (match_dup 3))] -{ - xtensa_split_DI_reg_imm (operands); -}) + (set_attr "length" "6,6,12,6,6,6")]) ;; 32-bit Integer moves @@ -1312,42 +1281,6 @@ } [(set_attr "mode" "SI")]) -(define_split - [(set (match_operand:SHI 0 "register_operand") - (match_operand:SHI 1 "const_int_operand"))] - "!TARGET_CONST16 && !TARGET_AUTO_LITPOOLS - && ! xtensa_split1_finished_p () - && ! xtensa_simm12b (INTVAL (operands[1]))" - [(set (match_dup 0) - (match_dup 1))] -{ - operands[1] = force_const_mem (mode, operands[1]); -}) - -(define_split - [(set (match_operand:SHI 0 "register_operand") - (match_operand:SHI 1 "constantpool_operand"))] - "!optimize_debug && reload_completed" - [(const_int 0)] -{ - if (xtensa_constantsynth (operands[0], operands[1])) - DONE; - FAIL; -}) - -(define_split - [(set (match_operand:SHI 0 "register_operand") - (match_operand:SHI 1 "const_int_operand"))] - "!optimize_debug && reload_completed - && !TARGET_CONST16 && TARGET_AUTO_LITPOOLS - && ! xtensa_simm12b (INTVAL (operands[1]))" - [(const_int 0)] -{ - if (xtensa_constantsynth (operands[0], operands[1])) - DONE; - FAIL; -}) - ;; 16-bit Integer moves (define_expand "movhi" @@ -1548,29 +1481,6 @@ (set_attr "mode" "SF") (set_attr "length" "3")]) -(define_split - [(set (match_operand:SF 0 "register_operand") - (match_operand 1 "constantpool_operand"))] - "!optimize_debug && reload_completed" - [(const_int 0)] -{ - if (xtensa_constantsynth (operands[0], operands[1])) - DONE; - FAIL; -}) - -(define_split - [(set (match_operand:SF 0 "register_operand") - (match_operand 1 "const_double_operand"))] - "!optimize_debug && reload_completed - && !TARGET_CONST16 && TARGET_AUTO_LITPOOLS" - [(const_int 0)] -{ - if (xtensa_constantsynth (operands[0], operands[1])) - DONE; - FAIL; -}) - ;; 64-bit floating point moves (define_expand "movdf" diff --git a/gcc/configure b/gcc/configure index d6cc7fc17ca0..485219bb80b2 100755 --- a/gcc/configure +++ b/gcc/configure @@ -649,6 +649,7 @@ ISLLIBS GMPINC GMPLIBS target_cpu_default +jit_target_objs rust_target_objs d_target_objs fortran_target_objs @@ -658,6 +659,8 @@ use_gcc_stdint xm_defines xm_include_list xm_file_list +tm_jit_include_list +tm_jit_file_list tm_rust_include_list tm_rust_file_list tm_d_include_list @@ -758,6 +761,7 @@ LIPO NMEDIT DSYMUTIL STRIP +LLVM_CONFIG OBJDUMP ac_ct_DUMPBIN DUMPBIN @@ -15113,6 +15117,17 @@ for f in $tm_rust_file; do esac done +tm_jit_file_list= +tm_jit_include_list= +for f in $tm_jit_file; do + case $f in + * ) + tm_jit_file_list="${tm_jit_file_list} \$(srcdir)/config/$f" + tm_jit_include_list="${tm_jit_include_list} config/$f" + ;; + esac +done + xm_file_list= xm_include_list= for f in $xm_file; do @@ -16455,8 +16470,266 @@ test -z "$deplibs_check_method" && deplibs_check_method=unknown -plugin_option= + +# Try CLANG_PLUGIN_FILE first since GCC_PLUGIN_OPTION may return the +# wrong plugin_option with clang. + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for clang" >&5 +$as_echo_n "checking for clang... " >&6; } +if ${clang_cv_is_clang+:} false; then : + $as_echo_n "(cached) " >&6 +else + + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +#ifdef __clang__ + yes +#endif + +_ACEOF +if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | + $EGREP "yes" >/dev/null 2>&1; then : + clang_cv_is_clang=yes +else + clang_cv_is_clang=no +fi +rm -f conftest* + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $clang_cv_is_clang" >&5 +$as_echo "$clang_cv_is_clang" >&6; } + plugin_file= + if test $clang_cv_is_clang = yes; then + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for clang plugin file" >&5 +$as_echo_n "checking for clang plugin file... " >&6; } + plugin_names="LLVMgold.so" + for plugin in $plugin_names; do + plugin_file=`${CC} ${CFLAGS} --print-file-name $plugin` + if test x$plugin_file = x$plugin; then + if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}llvm-config", so it can be a program name with args. +set dummy ${ac_tool_prefix}llvm-config; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_LLVM_CONFIG+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$LLVM_CONFIG"; then + ac_cv_prog_LLVM_CONFIG="$LLVM_CONFIG" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_LLVM_CONFIG="${ac_tool_prefix}llvm-config" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +LLVM_CONFIG=$ac_cv_prog_LLVM_CONFIG +if test -n "$LLVM_CONFIG"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $LLVM_CONFIG" >&5 +$as_echo "$LLVM_CONFIG" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + +fi +if test -z "$ac_cv_prog_LLVM_CONFIG"; then + ac_ct_LLVM_CONFIG=$LLVM_CONFIG + # Extract the first word of "llvm-config", so it can be a program name with args. +set dummy llvm-config; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_ac_ct_LLVM_CONFIG+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$ac_ct_LLVM_CONFIG"; then + ac_cv_prog_ac_ct_LLVM_CONFIG="$ac_ct_LLVM_CONFIG" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_ac_ct_LLVM_CONFIG="llvm-config" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +ac_ct_LLVM_CONFIG=$ac_cv_prog_ac_ct_LLVM_CONFIG +if test -n "$ac_ct_LLVM_CONFIG"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_LLVM_CONFIG" >&5 +$as_echo "$ac_ct_LLVM_CONFIG" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + if test "x$ac_ct_LLVM_CONFIG" = x; then + LLVM_CONFIG="" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + LLVM_CONFIG=$ac_ct_LLVM_CONFIG + fi +else + LLVM_CONFIG="$ac_cv_prog_LLVM_CONFIG" +fi + + if test "$?" != 0; then + as_fn_error $? "Required tool 'llvm-config' not found on PATH." "$LINENO" 5 + fi + clang_lib_dir=`$LLVM_CONFIG --libdir` + if test -f $clang_lib_dir/$plugin; then + plugin_file=$clang_lib_dir/$plugin + fi + if test x$plugin_file != x$plugin; then + break; + fi + fi + done + if test -z $plugin_file; then + as_fn_error $? "Couldn't find clang plugin file for $CC." "$LINENO" 5 + fi + if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}ar", so it can be a program name with args. +set dummy ${ac_tool_prefix}ar; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_AR+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$AR"; then + ac_cv_prog_AR="$AR" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_AR="${ac_tool_prefix}ar" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +AR=$ac_cv_prog_AR +if test -n "$AR"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $AR" >&5 +$as_echo "$AR" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + +fi +if test -z "$ac_cv_prog_AR"; then + ac_ct_AR=$AR + # Extract the first word of "ar", so it can be a program name with args. +set dummy ar; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_ac_ct_AR+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$ac_ct_AR"; then + ac_cv_prog_ac_ct_AR="$ac_ct_AR" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_ac_ct_AR="ar" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +ac_ct_AR=$ac_cv_prog_ac_ct_AR +if test -n "$ac_ct_AR"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_AR" >&5 +$as_echo "$ac_ct_AR" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + if test "x$ac_ct_AR" = x; then + AR="" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + AR=$ac_ct_AR + fi +else + AR="$ac_cv_prog_AR" +fi + + if test "${AR}" = "" ; then + as_fn_error $? "Required archive tool 'ar' not found on PATH." "$LINENO" 5 + fi + plugin_option="--plugin $plugin_file" + touch conftest.c + ${AR} $plugin_option rc conftest.a conftest.c + if test "$?" != 0; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Failed: $AR $plugin_option rc" >&5 +$as_echo "$as_me: WARNING: Failed: $AR $plugin_option rc" >&2;} + plugin_file= + fi + rm -f conftest.* + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $plugin_file" >&5 +$as_echo "$plugin_file" >&6; } + fi + plugin_file="$plugin_file" + +if test -n "$plugin_file"; then + plugin_option="--plugin $plugin_file" +else + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for -plugin option" >&5 +$as_echo_n "checking for -plugin option... " >&6; } + plugin_names="liblto_plugin.so liblto_plugin-0.dll cyglto_plugin-0.dll" +plugin_option= for plugin in $plugin_names; do plugin_so=`${CC} ${CFLAGS} --print-prog-name $plugin` if test x$plugin_so = x$plugin; then @@ -16467,7 +16740,119 @@ for plugin in $plugin_names; do break fi done +if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}ar", so it can be a program name with args. +set dummy ${ac_tool_prefix}ar; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_AR+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$AR"; then + ac_cv_prog_AR="$AR" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_AR="${ac_tool_prefix}ar" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS +fi +fi +AR=$ac_cv_prog_AR +if test -n "$AR"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $AR" >&5 +$as_echo "$AR" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + +fi +if test -z "$ac_cv_prog_AR"; then + ac_ct_AR=$AR + # Extract the first word of "ar", so it can be a program name with args. +set dummy ar; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_ac_ct_AR+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$ac_ct_AR"; then + ac_cv_prog_ac_ct_AR="$ac_ct_AR" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_ac_ct_AR="ar" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +ac_ct_AR=$ac_cv_prog_ac_ct_AR +if test -n "$ac_ct_AR"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_AR" >&5 +$as_echo "$ac_ct_AR" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + if test "x$ac_ct_AR" = x; then + AR="" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + AR=$ac_ct_AR + fi +else + AR="$ac_cv_prog_AR" +fi + +if test "${AR}" = "" ; then + as_fn_error $? "Required archive tool 'ar' not found on PATH." "$LINENO" 5 +fi +touch conftest.c +${AR} $plugin_option rc conftest.a conftest.c +if test "$?" != 0; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Failed: $AR $plugin_option rc" >&5 +$as_echo "$as_me: WARNING: Failed: $AR $plugin_option rc" >&2;} + plugin_option= +fi +rm -f conftest.* +if test -n "$plugin_option"; then + plugin_option="$plugin_option" + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $plugin_option" >&5 +$as_echo "$plugin_option" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + +fi if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}ar", so it can be a program name with args. set dummy ${ac_tool_prefix}ar; ac_word=$2 @@ -16562,17 +16947,15 @@ fi test -z "$AR" && AR=ar if test -n "$plugin_option"; then - if $AR --help 2>&1 | grep -q "\--plugin"; then - touch conftest.c - $AR $plugin_option rc conftest.a conftest.c - if test "$?" != 0; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Failed: $AR $plugin_option rc" >&5 -$as_echo "$as_me: WARNING: Failed: $AR $plugin_option rc" >&2;} - else + case "$AR" in + *"$plugin_option"*) + ;; + *) + if $AR --help 2>&1 | grep -q "\--plugin"; then AR="$AR $plugin_option" fi - rm -f conftest.* - fi + ;; + esac fi test -z "$AR_FLAGS" && AR_FLAGS=cru @@ -16779,9 +17162,15 @@ fi test -z "$RANLIB" && RANLIB=: if test -n "$plugin_option" && test "$RANLIB" != ":"; then - if $RANLIB --help 2>&1 | grep -q "\--plugin"; then - RANLIB="$RANLIB $plugin_option" - fi + case "$RANLIB" in + *"$plugin_option"*) + ;; + *) + if $RANLIB --help 2>&1 | grep -q "\--plugin"; then + RANLIB="$RANLIB $plugin_option" + fi + ;; + esac fi @@ -21484,7 +21873,7 @@ else lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 lt_status=$lt_dlunknown cat > conftest.$ac_ext <<_LT_EOF -#line 21487 "configure" +#line 21876 "configure" #include "confdefs.h" #if HAVE_DLFCN_H @@ -21590,7 +21979,7 @@ else lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 lt_status=$lt_dlunknown cat > conftest.$ac_ext <<_LT_EOF -#line 21593 "configure" +#line 21982 "configure" #include "confdefs.h" #if HAVE_DLFCN_H @@ -33545,6 +33934,12 @@ $as_echo "#define ENABLE_DEFAULT_SSP 1" >>confdefs.h fi +if echo " ${TARGET_CONFIGDIRS} " | grep " libatomic " > /dev/null 2>&1 ; then + +$as_echo "#define TARGET_PROVIDES_LIBATOMIC 1" >>confdefs.h + +fi + # Test for on the target. { $as_echo "$as_me:${as_lineno-$LINENO}: checking sys/sdt.h in the target C library" >&5 @@ -34159,6 +34554,9 @@ fi + + + diff --git a/gcc/configure.ac b/gcc/configure.ac index 19975fa5be5b..04f86b52ef84 100644 --- a/gcc/configure.ac +++ b/gcc/configure.ac @@ -2443,6 +2443,17 @@ for f in $tm_rust_file; do esac done +tm_jit_file_list= +tm_jit_include_list= +for f in $tm_jit_file; do + case $f in + * ) + tm_jit_file_list="${tm_jit_file_list} \$(srcdir)/config/$f" + tm_jit_include_list="${tm_jit_include_list} config/$f" + ;; + esac +done + xm_file_list= xm_include_list= for f in $xm_file; do @@ -7049,6 +7060,11 @@ if test x$enable_default_ssp = xyes ; then fi AC_SUBST([enable_default_ssp]) +if echo " ${TARGET_CONFIGDIRS} " | grep " libatomic " > /dev/null 2>&1 ; then + AC_DEFINE(TARGET_PROVIDES_LIBATOMIC, 1, + [Define if libatomic is built for the target.]) +fi + # Test for on the target. GCC_TARGET_TEMPLATE([HAVE_SYS_SDT_H]) AC_CACHE_CHECK([sys/sdt.h in the target C library], [gcc_cv_sys_sdt_h], [ @@ -7596,6 +7612,8 @@ AC_SUBST(tm_d_file_list) AC_SUBST(tm_d_include_list) AC_SUBST(tm_rust_file_list) AC_SUBST(tm_rust_include_list) +AC_SUBST(tm_jit_file_list) +AC_SUBST(tm_jit_include_list) AC_SUBST(xm_file_list) AC_SUBST(xm_include_list) AC_SUBST(xm_defines) @@ -7605,6 +7623,7 @@ AC_SUBST(cxx_target_objs) AC_SUBST(fortran_target_objs) AC_SUBST(d_target_objs) AC_SUBST(rust_target_objs) +AC_SUBST(jit_target_objs) AC_SUBST(target_cpu_default) AC_SUBST_FILE(language_hooks) diff --git a/gcc/cp/ChangeLog b/gcc/cp/ChangeLog index 98b48ff0a86d..d23e8656f0fe 100644 --- a/gcc/cp/ChangeLog +++ b/gcc/cp/ChangeLog @@ -1,3 +1,193 @@ +2025-10-09 Jakub Jelinek + + * cp-tree.h (cp_build_function_type): Declare. + * lex.cc: Implement va_start changes from P3348R4 - C++26 should + refer to C23 not C17 paper. + (init_reswords): Set D_CXX26 in mask for C++23 and older. + * parser.cc (cp_parser_primary_expression): Handle RID_C23_VA_START. + (cp_parser_builtin_c23_va_start): New function. + * cp-objcp-common.cc (names_builtin_p): Likewise. + * decl.cc (grokfndecl, check_function_type): Pass + TYPE_NO_NAMED_ARGS_STDARG_P as last arg to build_function_type. + (grokdeclarator, static_fn_type): Use cp_build_function_type instead + of build_function_type. + * typeck.cc (merge_types): Likewise. + (structural_comptypes): Return false for TYPE_NO_NAMED_ARGS_STDARG_P + differences. + * lambda.cc (maybe_add_lambda_conv_op): Use cp_build_function_type + instead of build_function_type. + * tree.cc (cp_build_function_type): New function. + (strip_typedefs): Pass TYPE_NO_NAMED_ARGS_STDARG_P as last arg to + build_function_type. + * name-lookup.cc (push_local_extern_decl_alias): Likewise. + * module.cc (trees_in::tree_node): Use cp_build_function_type instead + of build_function_type. + * pt.cc (copy_default_args_to_explicit_spec, + rebuild_function_or_method_type, build_deduction_guide): Likewise. + (alias_ctad_tweaks): Pass TYPE_NO_NAMED_ARGS_STDARG_P as last arg to + build_function_type. + * decl2.cc (change_return_type, cp_reconstruct_complex_type): + Likewise. + +2025-10-09 Egas Ribeiro + + PR c++/116477 + * semantics.cc (finish_call_expr): Move concept_check_p diagnostic + before processing_template_decl check to catch errors earlier. + +2025-10-09 David Malcolm + + * error.cc: Define INCLUDE_VECTOR. + +2025-10-08 Jason Merrill + + * init.cc (build_new_1): Also clobber for non-placement new. + Only loop clobber in constexpr. + * expr.cc (wrap_with_if_consteval): New. + * cp-tree.h (wrap_with_if_consteval): Declare. + +2025-10-07 Jason Merrill + + * init.cc (build_new_1): Clobber a constant-bound array as a whole. + +2025-10-07 Jonathan Wakely + + * module.cc (trees_out::lang_vals): Fix spelling in comment. + +2025-10-05 Nathaniel Shead + + PR c++/122053 + * name-lookup.cc (pushtag): Load any imported definition of type + before calling pushdecl. + +2025-10-05 Nathaniel Shead + + * name-lookup.cc (check_module_override): Remove check for + TREE_PUBLIC when checking mergeable entities. + +2025-10-04 Jakub Jelinek + + PR c++/114457 + * cp-tree.h: Implement C++26 P2795R5 - Erroneous behavior for + uninitialized reads. + (IF_STMT_VACUOUS_INIT_P): Define. + (check_goto): Change argument type from tree to tree *. + * call.cc (build_over_call): Add indeterminate attribute to + TARGET_EXPR slots for indeterminate parameters. + * constexpr.cc (cxx_eval_internal_function): Handle IFN_DEFERRED_INIT. + (cxx_eval_store_expression): Temporarily work around PR121965 bug. + * cp-gimplify.cc (genericize_if_stmt): Handle IF_STMT_VACUOUS_INIT_P. + (maybe_emit_clobber_object_begin): New function. + (cp_gimplify_expr): Call it for DECL_EXPRs and TARGET_EXPRs with + void type non-NULL TARGET_EXPR_INITIAL. + * decl.cc (struct named_label_fwd_direct_goto, + struct named_label_bck_direct_goto): New types. + (struct named_label_use_entry): Add direct_goto member. Formatting + fix. + (struct named_label_entry): Add direct_goto member. Turn bool members + into bool : 1. Add has_bad_decls bitfield. + (adjust_backward_gotos): New function. + (pop_labels): For flag_auto_var_init > AUTO_INIT_UNINITIALIZED + call adjust_backward_gotos if needed. + (poplevel_named_label_1): For decl_jump_unsafe also set + ent->has_bad_decls, and for decl_instrument_init_bypass_p decls + push them into ent->bad_decls vector too. + (duplicate_decls): Complain if indeterminate attribute on function + parameter isn't present on the first function declaration. + (decl_instrument_init_bypass_p): New function. + (build_deferred_init_call): Likewise. + (maybe_add_deferred_init_calls): Likewise. + (adjust_backward_goto): Likewise. + (check_previous_goto_1): Add direct_goto and case_label arguments. + For decl_instrument_init_bypass_p decls seen if + direct_goto || case_label move case label if needed, call + maybe_add_deferred_init_calls and adjust GOTO_EXPR operands remembered + in direct_goto. Change return type from bool to int, return 0 on + error, 1 for success with no need to adjust vacuous inits and 2 for + success with need to adjust those. + (check_previous_goto): Adjust check_previous_goto_1 call, vec_free + direct_goto vector. + (check_switch_goto): Add case_label argument, adjust + check_previous_goto_1 call. Change return type from bool to int. + (check_goto_1): Remove computed argument, add declp argument. Don't + reuse previous ent->uses if + ent->binding_level != current_binding_level. Push declp into + direct_goto vectors if needed. + (check_goto): Remove decl argument, add declp argument. Adjust + check_goto_1 calls. + (finish_case_label): Call check_switch_goto up to twice, first time + to detect errors and find out if second call will be needed, and + after c_add_case_label second time if needed. In the first case + pass NULL_TREE as new argument to it, in the second case r. + (start_preparsed_function): Don't emit CLOBBER_OBJECT_BEGIN here + for -flifetime-dse=2, instead add "clobber *this" attribute to + current_class_ptr. + * parser.cc (cp_parser_asm_label_list): Call check_goto only + after the TREE_LIST is created and pass address of its TREE_VALUE to + it instead of the label. + * semantics.cc (finish_goto_stmt): Call check_goto only after + build_stmt has been called and pass it address of its first operand + rather than destination. + * tree.cc (handle_indeterminate_attribute): New function. + (cxx_gnu_attributes): Add entry for indeterminate attribute. + +2025-10-04 Jason Merrill + + PR c++/122127 + PR c++/112632 + * pt.cc (convert_template_argument): Don't add redundant + IMPLICIT_CONV_EXPR. + +2025-10-04 Nathaniel Shead + + PR c++/117658 + * cp-tree.h (TU_LOCAL_ENTITY_NAME): Clarify meaning. + * module.cc (depset::entity_kind): New enumerator, assert that + we have enough bits reserved. + (depset::disc_bits): Assert the discriminator has enough bits. + (depset::entity_kind_name): Add 'tu-local' case, assert we + have an entry for all relevant entry_kinds. + (name_for_tu_local_decl): New function. + (trees_out::tree_node): Use it. + (depset::hash::make_dependency): Validate EK_TU_LOCAL. + (depset::hash::add_binding_entity): Generate bindings for + internal purview functions. + (enum ct_bind_flags): New enum for TU-local decls. + (depset::hash::find_dependencies): Handle EK_TU_LOCAL entities. + (binding_cmp): Likewise. + (sort_cluster): Likewise. + (module_state::write_cluster): Likewise. + (module_state::read_cluster): Likewise. + * name-lookup.cc (append_imported_binding_slot): Propagate + internal decl list when growing binding vector. + (name_lookup::adl_namespace_fns): Diagnose if naming a TU-local + entity from a different TU. + (set_module_binding): Include any internal decls in binding. + * name-lookup.h (struct module_tree_map_traits): New type. + (struct tree_binding_vec): Add member 'internal_decls'. + (BINDING_VECTOR_INTERNAL_DECLS): New getter. + (MODULE_BINDING_INTERNAL_DECLS_P): New flag. + (set_module_binding): Add parameter. + +2025-10-03 Egas Ribeiro + + PR c++/122112 + * parser.cc (cp_parser_parameter_declaration_clause): Don't + enable auto_is_implicit_function_template_parm_p when entering + class scope. + +2025-10-01 Iain Sandoe + + * constexpr.cc (cxx_eval_constant_expression): Use revised + interfaces to determine if contracts are ignored and, if not, + whether they are evaluated. + * contracts.h (contract_ignored_p, contract_evaluated_p): New. + +2025-10-01 Jan Hubicka + + * Make-lang.in: Add c++_FDAS + (create_fdas_for_cc1plus): Be sure that build fails if create_gcov fails. + 2025-09-27 Jason Merrill PR c++/112632 diff --git a/gcc/cp/Make-lang.in b/gcc/cp/Make-lang.in index dae3c6846e04..70cfe2b16636 100644 --- a/gcc/cp/Make-lang.in +++ b/gcc/cp/Make-lang.in @@ -123,6 +123,8 @@ CXX_OBJS = cp/cp-lang.o c-family/stub-objc.o $(CXX_AND_OBJCXX_OBJS) c++_OBJS = $(CXX_OBJS) cc1plus-checksum.o cp/g++spec.o +c++_FDAS = cc1plus.fda + # Use strict warnings for this front end. cp-warn = $(STRICT_WARN) @@ -199,7 +201,7 @@ create_fdas_for_cc1plus: ../stage1-gcc/cc1plus$(exeext) ../prev-gcc/$(PERF_DATA) echo $$perf_path; \ if [ -f $$perf_path ]; then \ profile_name=cc1plus_$$component_in_prev.fda; \ - $(CREATE_GCOV) -binary ../stage1-gcc/cc1plus$(exeext) -gcov $$profile_name -profile $$perf_path -gcov_version 2; \ + $(CREATE_GCOV) -binary ../stage1-gcc/cc1plus$(exeext) -gcov $$profile_name -profile $$perf_path -gcov_version 2 || exit 1; \ fi; \ done; @@ -209,7 +211,7 @@ create_fdas_for_cc1plus: ../stage1-gcc/cc1plus$(exeext) ../prev-gcc/$(PERF_DATA) echo $$perf_path; \ if [ -f $$perf_path ]; then \ profile_name=cc1plus_$$component_in_prev_target.fda; \ - $(CREATE_GCOV) -binary ../prev-gcc/cc1plus$(exeext) -gcov $$profile_name -profile $$perf_path -gcov_version 2; \ + $(CREATE_GCOV) -binary ../prev-gcc/cc1plus$(exeext) -gcov $$profile_name -profile $$perf_path -gcov_version 2 || exit 1; \ fi; \ done; diff --git a/gcc/cp/call.cc b/gcc/cp/call.cc index 97c8a48c8400..77dfa7d2982b 100644 --- a/gcc/cp/call.cc +++ b/gcc/cp/call.cc @@ -10488,6 +10488,7 @@ build_over_call (struct z_candidate *cand, int flags, tsubst_flags_t complain) unsigned int arg_index = 0; int conv_index = 0; int param_index = 0; + tree parmd = DECL_ARGUMENTS (fn); auto consume_object_arg = [&arg_index, &first_arg, args]() { @@ -10505,6 +10506,8 @@ build_over_call (struct z_candidate *cand, int flags, tsubst_flags_t complain) tree object_arg = consume_object_arg (); argarray[argarray_size++] = build_this (object_arg); parm = TREE_CHAIN (parm); + if (parmd) + parmd = DECL_CHAIN (parmd); /* We should never try to call the abstract constructor. */ gcc_assert (!DECL_HAS_IN_CHARGE_PARM_P (fn)); @@ -10513,6 +10516,8 @@ build_over_call (struct z_candidate *cand, int flags, tsubst_flags_t complain) argarray[argarray_size++] = (*args)[arg_index]; ++arg_index; parm = TREE_CHAIN (parm); + if (parmd) + parmd = DECL_CHAIN (parmd); } } /* Bypass access control for 'this' parameter. */ @@ -10600,6 +10605,8 @@ build_over_call (struct z_candidate *cand, int flags, tsubst_flags_t complain) argarray[argarray_size++] = converted_arg; parm = TREE_CHAIN (parm); + if (parmd) + parmd = DECL_CHAIN (parmd); } auto handle_arg = [fn, flags](tree type, @@ -10623,6 +10630,27 @@ build_over_call (struct z_candidate *cand, int flags, tsubst_flags_t complain) return val; }; + auto handle_indeterminate_arg = [](tree parmd, tree val) + { + if (parmd + && lookup_attribute (NULL, "indeterminate", DECL_ATTRIBUTES (parmd))) + { + STRIP_NOPS (val); + if (TREE_CODE (val) == ADDR_EXPR + && TREE_CODE (TREE_OPERAND (val, 0)) == TARGET_EXPR) + { + val = TARGET_EXPR_SLOT (TREE_OPERAND (val, 0)); + if (auto_var_p (val) && DECL_ARTIFICIAL (val)) + { + tree id = get_identifier ("indeterminate"); + DECL_ATTRIBUTES (val) + = tree_cons (build_tree_list (NULL_TREE, id), NULL_TREE, + DECL_ATTRIBUTES (val)); + } + } + } + }; + if (DECL_XOBJ_MEMBER_FUNCTION_P (fn)) { gcc_assert (cand->num_convs > 0); @@ -10636,8 +10664,13 @@ build_over_call (struct z_candidate *cand, int flags, tsubst_flags_t complain) if (val == error_mark_node) return error_mark_node; else - argarray[argarray_size++] = val; + { + argarray[argarray_size++] = val; + handle_indeterminate_arg (parmd, val); + } parm = TREE_CHAIN (parm); + if (parmd) + parmd = DECL_CHAIN (parmd); } gcc_assert (first_arg == NULL_TREE); @@ -10683,7 +10716,12 @@ build_over_call (struct z_candidate *cand, int flags, tsubst_flags_t complain) if (val == error_mark_node) return error_mark_node; else - argarray[argarray_size++] = val; + { + argarray[argarray_size++] = val; + handle_indeterminate_arg (parmd, val); + } + if (parmd) + parmd = DECL_CHAIN (parmd); } /* Default arguments */ @@ -10699,6 +10737,9 @@ build_over_call (struct z_candidate *cand, int flags, tsubst_flags_t complain) if (val == error_mark_node) return error_mark_node; argarray[argarray_size++] = val; + handle_indeterminate_arg (parmd, val); + if (parmd) + parmd = DECL_CHAIN (parmd); } /* Ellipsis */ diff --git a/gcc/cp/constexpr.cc b/gcc/cp/constexpr.cc index 6ebe6ebaef63..016e3db927c9 100644 --- a/gcc/cp/constexpr.cc +++ b/gcc/cp/constexpr.cc @@ -3009,6 +3009,9 @@ cxx_eval_internal_function (const constexpr_ctx *ctx, tree t, vc_prvalue, non_constant_p, overflow_p, jump_target); + case IFN_DEFERRED_INIT: + return build_clobber (TREE_TYPE (t), CLOBBER_OBJECT_BEGIN); + case IFN_VEC_CONVERT: { tree arg = cxx_eval_constant_expression (ctx, CALL_EXPR_ARG (t, 0), @@ -7498,6 +7501,13 @@ cxx_eval_store_expression (const constexpr_ctx *ctx, tree t, bool preeval = SCALAR_TYPE_P (type) || TREE_CODE (t) == MODIFY_EXPR; if (preeval && !TREE_CLOBBER_P (init)) { + /* Ignore var = .DEFERRED_INIT (); for now, until PR121965 is fixed. */ + if (flag_auto_var_init > AUTO_INIT_UNINITIALIZED + && TREE_CODE (init) == CALL_EXPR + && CALL_EXPR_FN (init) == NULL_TREE + && CALL_EXPR_IFN (init) == IFN_DEFERRED_INIT) + return void_node; + /* Evaluate the value to be stored without knowing what object it will be stored in, so that any side-effects happen first. */ if (!SCALAR_TYPE_P (type)) @@ -10162,14 +10172,13 @@ cxx_eval_constant_expression (const constexpr_ctx *ctx, tree t, case PRECONDITION_STMT: case POSTCONDITION_STMT: { - contract_semantic semantic = get_contract_semantic (t); - if (semantic == CCS_IGNORE) + if (contract_ignored_p (t)) break; if (!cxx_eval_assert (ctx, CONTRACT_CONDITION (t), G_("contract predicate is false in " "constant expression"), - EXPR_LOCATION (t), checked_contract_p (semantic), + EXPR_LOCATION (t), contract_evaluated_p (t), non_constant_p, overflow_p)) *non_constant_p = true; r = void_node; diff --git a/gcc/cp/contracts.h b/gcc/cp/contracts.h index ead07d19fb7b..54eacd9a4c5a 100644 --- a/gcc/cp/contracts.h +++ b/gcc/cp/contracts.h @@ -334,4 +334,19 @@ set_contract_semantic (tree t, contract_semantic semantic) } +/* Will this contract be ignored. */ + +inline bool +contract_ignored_p (const_tree contract) +{ + return (get_contract_semantic (contract) <= CCS_IGNORE); +} + +/* Will this contract be evaluated? */ + +inline bool +contract_evaluated_p (const_tree contract) +{ + return (get_contract_semantic (contract) >= CCS_NEVER); +} #endif /* ! GCC_CP_CONTRACT_H */ diff --git a/gcc/cp/cp-gimplify.cc b/gcc/cp/cp-gimplify.cc index 2111dcadae7f..1662336e165c 100644 --- a/gcc/cp/cp-gimplify.cc +++ b/gcc/cp/cp-gimplify.cc @@ -200,6 +200,33 @@ genericize_if_stmt (tree *stmt_p) } } + if (IF_STMT_VACUOUS_INIT_P (stmt)) + { + gcc_checking_assert (integer_zerop (cond)); + gcc_checking_assert (!else_ || !TREE_SIDE_EFFECTS (else_)); + tree lab = create_artificial_label (UNKNOWN_LOCATION); + VACUOUS_INIT_LABEL_P (lab) = 1; + tree goto_expr = build_stmt (UNKNOWN_LOCATION, GOTO_EXPR, lab); + tree label_expr = build_stmt (UNKNOWN_LOCATION, LABEL_EXPR, lab); + if (TREE_CODE (then_) == STATEMENT_LIST) + { + tree_stmt_iterator i = tsi_start (then_); + tsi_link_before (&i, goto_expr, TSI_CONTINUE_LINKING); + i = tsi_last (then_); + tsi_link_after (&i, label_expr, TSI_CONTINUE_LINKING); + stmt = then_; + } + else + { + stmt = NULL_TREE; + append_to_statement_list (goto_expr, &stmt); + append_to_statement_list (then_, &stmt); + append_to_statement_list (label_expr, &stmt); + } + *stmt_p = stmt; + return; + } + if (!then_) then_ = build_empty_stmt (locus); if (!else_) @@ -603,6 +630,38 @@ cp_gimplify_arg (tree *arg_p, gimple_seq *pre_p, location_t call_location, } +/* Emit a decl = {CLOBBER(bob)}; stmt before DECL_EXPR or first + TARGET_EXPR gimplification for -flifetime-dse=2. */ + +static void +maybe_emit_clobber_object_begin (tree decl, gimple_seq *pre_p) +{ + if (VAR_P (decl) + && auto_var_p (decl) + && TREE_TYPE (decl) != error_mark_node + && DECL_NONTRIVIALLY_INITIALIZED_P (decl) + /* Don't do it if it is fully initialized. */ + && DECL_INITIAL (decl) == NULL_TREE + && !DECL_HAS_VALUE_EXPR_P (decl) + && !OPAQUE_TYPE_P (TREE_TYPE (decl)) + /* Nor going to have decl = .DEFERRED_INIT (...); added. */ + && (flag_auto_var_init == AUTO_INIT_UNINITIALIZED + || lookup_attribute ("uninitialized", DECL_ATTRIBUTES (decl)) + || lookup_attribute ("indeterminate", DECL_ATTRIBUTES (decl)))) + { + tree eltype = strip_array_types (TREE_TYPE (decl)); + if (RECORD_OR_UNION_TYPE_P (eltype) + && !is_empty_class (eltype)) + { + tree clobber + = build_clobber (TREE_TYPE (decl), CLOBBER_OBJECT_BEGIN); + gimple *g = gimple_build_assign (decl, clobber); + gimple_set_location (g, DECL_SOURCE_LOCATION (decl)); + gimple_seq_add_stmt_without_update (pre_p, g); + } + } +} + /* Do C++-specific gimplification. Args are as for gimplify_expr. */ int @@ -918,6 +977,10 @@ cp_gimplify_expr (tree *expr_p, gimple_seq *pre_p, gimple_seq *post_p) on the rhs of an assignment, as in constexpr-aggr1.C. */ gcc_checking_assert (!TARGET_EXPR_ELIDING_P (*expr_p) || !TREE_ADDRESSABLE (TREE_TYPE (*expr_p))); + if (flag_lifetime_dse > 1 + && TARGET_EXPR_INITIAL (*expr_p) + && VOID_TYPE_P (TREE_TYPE (TARGET_EXPR_INITIAL (*expr_p)))) + maybe_emit_clobber_object_begin (TARGET_EXPR_SLOT (*expr_p), pre_p); ret = GS_UNHANDLED; break; @@ -929,6 +992,12 @@ cp_gimplify_expr (tree *expr_p, gimple_seq *pre_p, gimple_seq *post_p) ret = GS_OK; break; + case DECL_EXPR: + if (flag_lifetime_dse > 1) + maybe_emit_clobber_object_begin (DECL_EXPR_DECL (*expr_p), pre_p); + ret = GS_UNHANDLED; + break; + case RETURN_EXPR: if (TREE_OPERAND (*expr_p, 0) && (TREE_CODE (TREE_OPERAND (*expr_p, 0)) == INIT_EXPR diff --git a/gcc/cp/cp-objcp-common.cc b/gcc/cp/cp-objcp-common.cc index ee1c0ba3de3e..c7e88cb7bfea 100644 --- a/gcc/cp/cp-objcp-common.cc +++ b/gcc/cp/cp-objcp-common.cc @@ -588,6 +588,7 @@ names_builtin_p (const char *name) case RID_BUILTIN_BIT_CAST: case RID_OFFSETOF: case RID_VA_ARG: + case RID_C23_VA_START: return 1; case RID_BUILTIN_OPERATOR_NEW: case RID_BUILTIN_OPERATOR_DELETE: diff --git a/gcc/cp/cp-tree.h b/gcc/cp/cp-tree.h index 6ee945f3ebf9..fcba9f5c0b02 100644 --- a/gcc/cp/cp-tree.h +++ b/gcc/cp/cp-tree.h @@ -510,6 +510,7 @@ extern GTY(()) tree cp_global_trees[CPTI_MAX]; PACK_EXPANSION_FORCE_EXTRA_ARGS_P (in *_PACK_EXPANSION) LAMBDA_EXPR_STATIC_P (in LAMBDA_EXPR) TARGET_EXPR_ELIDING_P (in TARGET_EXPR) + IF_STMT_VACUOUS_INIT_P (IF_STMT) contract_semantic (in ASSERTION_, PRECONDITION_, POSTCONDITION_STMT) TYPENAME_IS_UNION_P (in TYPENAME_TYPE) 4: IDENTIFIER_MARKED (IDENTIFIER_NODEs) @@ -1856,7 +1857,8 @@ struct GTY(()) tree_tu_local_entity { location_t loc; }; -/* The name of a translation-unit-local entity. */ +/* The human-readable name of a translation-unit-local entity as + an IDENTIFIER_NODE. */ #define TU_LOCAL_ENTITY_NAME(NODE) \ (((struct tree_tu_local_entity *)TU_LOCAL_ENTITY_CHECK (NODE))->name) @@ -5686,6 +5688,9 @@ decl_template_parm_check (const_tree t, const char *f, int l, const char *fn) #define IF_SCOPE(NODE) TREE_OPERAND (IF_STMT_CHECK (NODE), 3) #define IF_STMT_CONSTEXPR_P(NODE) TREE_LANG_FLAG_0 (IF_STMT_CHECK (NODE)) #define IF_STMT_CONSTEVAL_P(NODE) TREE_LANG_FLAG_2 (IF_STMT_CHECK (NODE)) +/* True on artificial if (0) around .DEFERRED_INIT calls added for + !!flag_auto_var_init. */ +#define IF_STMT_VACUOUS_INIT_P(NODE) TREE_LANG_FLAG_3 (IF_STMT_CHECK (NODE)) /* Like PACK_EXPANSION_EXTRA_ARGS, for constexpr if. IF_SCOPE is used while building an IF_STMT; IF_STMT_EXTRA_ARGS is used after it is complete. */ @@ -7279,7 +7284,7 @@ extern tree duplicate_decls (tree, tree, extern void mark_label_addressed (tree); extern tree declare_local_label (tree); extern tree define_label (location_t, tree); -extern void check_goto (tree); +extern void check_goto (tree *); extern bool check_omp_return (void); extern tree make_typename_type (tree, tree, enum tag_types, tsubst_flags_t); extern tree build_typename_type (tree, tree, tree, tag_types); @@ -7556,6 +7561,7 @@ extern tree mark_lvalue_use_nonread (tree); extern tree mark_type_use (tree); extern tree mark_discarded_use (tree); extern void mark_exp_read (tree); +extern tree wrap_with_if_consteval (tree); /* friend.cc */ extern int is_friend (tree, tree); @@ -8485,6 +8491,7 @@ extern tree cp_build_reference_type (tree, bool); extern tree move (tree); extern tree cp_build_qualified_type (tree, int, tsubst_flags_t = tf_warning_or_error); +extern tree cp_build_function_type (tree, tree); extern bool cv_qualified_p (const_tree); extern tree cv_unqualified (tree); extern special_function_kind special_function_p (const_tree); diff --git a/gcc/cp/decl.cc b/gcc/cp/decl.cc index 7927b4375ec8..31f3c4b77928 100644 --- a/gcc/cp/decl.cc +++ b/gcc/cp/decl.cc @@ -76,6 +76,7 @@ enum bad_spec_place { static const char *redeclaration_error_message (tree, tree); static bool decl_jump_unsafe (tree); +static bool decl_instrument_init_bypass_p (tree); static void require_complete_types_for_parms (tree); static tree grok_reference_init (tree, tree, tree, int); static tree grokvardecl (tree, tree, tree, const cp_decl_specifier_seq *, @@ -173,6 +174,25 @@ vec *static_decls; /* vector of keyed classes. */ vec *keyed_classes; +/* Used in the direct_goto vector of named_label_use_entry for + addresses of the LABEL_DECLs within GOTO_EXPR or asm goto + for forward jumps. */ + +struct GTY(()) named_label_fwd_direct_goto { + tree *GTY((skip)) direct_goto; +}; + +/* Used in the direct_goto vector of named_label_use_entry for + addresses of the LABEL_DECLs within GOTO_EXPR or asm goto + for backward jumps. */ + +struct GTY(()) named_label_bck_direct_goto { + tree *GTY((skip)) direct_goto; + /* Number of the decl_instrument_init_bypass_p decls in bad_decls vector + at the time this backward goto has been seen. */ + unsigned n_bad_decls; +}; + /* Used only for jumps to as-yet undefined labels, since jumps to defined labels can have their validity checked immediately. */ @@ -188,7 +208,11 @@ struct GTY((chain_next ("%h.next"))) named_label_use_entry { tree names_in_scope; /* If the use is a possible destination of a computed goto, a vec of decls that aren't destroyed, filled in by poplevel_named_label_1. */ - vec *computed_goto; + vec *computed_goto; + /* If the use is a destination of normal goto, a vec of addresses of + LABEL_DECLs that might need changing for !!flag_auto_var_init + forward jumps across vacuous initializers. */ + vec *direct_goto; /* The location of the goto, for error reporting. */ location_t o_goto_locus; /* True if an OpenMP structured block scope has been closed since @@ -226,20 +250,29 @@ struct GTY((for_user)) named_label_entry { /* A list of uses of the label, before the label is defined. */ named_label_use_entry *uses; - /* True if we've seen &&label. Appalently we can't use TREE_ADDRESSABLE for + /* If the use is a destination of normal goto, a vec of addresses of + LABEL_DECLs that might need changing for !!flag_auto_var_init + backward jumps across vacuous initializers. */ + vec *direct_goto; + + /* True if we've seen &&label. Apparently we can't use TREE_ADDRESSABLE for this, it has a more specific meaning for LABEL_DECL. */ - bool addressed; + bool addressed : 1; /* The following bits are set after the label is defined, and are updated as scopes are popped. They indicate that a jump to the label will illegally enter a scope of the given flavor. */ - bool in_try_scope; - bool in_catch_scope; - bool in_omp_scope; - bool in_transaction_scope; - bool in_constexpr_if; - bool in_consteval_if; - bool in_stmt_expr; + bool in_try_scope : 1; + bool in_catch_scope : 1; + bool in_omp_scope : 1; + bool in_transaction_scope : 1; + bool in_constexpr_if : 1; + bool in_consteval_if : 1; + bool in_stmt_expr : 1; + + /* True if bad_decls chain contains any decl_jump_unsafe decls + (rather than just decl_instrument_init_bypass_p). */ + bool has_bad_decls : 1; }; #define named_labels cp_function_chain->x_named_labels @@ -403,6 +436,69 @@ sort_labels (const void *a, const void *b) return DECL_UID (label1) > DECL_UID (label2) ? -1 : +1; } +static void adjust_backward_goto (named_label_entry *, tree_stmt_iterator); +static named_label_entry *lookup_label_1 (tree, bool); + +/* Helper of pop_labels, called through cp_walk_tree. Adjust + LABEL_EXPRs of named labels, if they are targets of backwards + gotos jumping across vacuous initialization for + !!flag_auto_var_init. */ + +static tree +adjust_backward_gotos (tree *tp, int *walk_subtrees, void *data) +{ + tree t = *tp; + switch (TREE_CODE (t)) + { + case LABEL_EXPR: + /* In rare cases LABEL_EXPR can appear as the only substatement + of some other statement, e.g. if body etc. In that case, we know + there can't be an older if (0) wrapper with artificial initializers + before it. Replace the LABEL_EXPR statement with a STATEMENT_LIST + and insert the LABEL_EXPR into it, later on if (0) will be added + before that. */ + if (DECL_NAME (LABEL_EXPR_LABEL (t))) + { + named_label_entry *ent + = lookup_label_1 (DECL_NAME (LABEL_EXPR_LABEL (t)), false); + if (ent->direct_goto) + { + *tp = alloc_stmt_list (); + append_to_statement_list_force (t, tp); + adjust_backward_goto (ent, tsi_last (*tp)); + } + } + *walk_subtrees = 0; + break; + case STATEMENT_LIST: + { + tree_stmt_iterator i; + *walk_subtrees = 0; + /* In the common case, LABEL_EXPRs appear inside of a STATEMENT_LIST. + In that case pass the stmt iterator to adjust_backward_goto, so + that it can insert if (0) wrapper artificial initializers before + it or reuse the existing ones. */ + for (i = tsi_start (t); !tsi_end_p (i); tsi_next (&i)) + if (TREE_CODE (tsi_stmt (i)) != LABEL_EXPR) + cp_walk_tree (tsi_stmt_ptr (i), adjust_backward_gotos, + data, (hash_set *) data); + else if (DECL_NAME (LABEL_EXPR_LABEL (tsi_stmt (i)))) + { + named_label_entry *ent + = lookup_label_1 (DECL_NAME (LABEL_EXPR_LABEL (tsi_stmt (i))), + false); + if (ent->direct_goto) + adjust_backward_goto (ent, i); + } + break; + } + default: + if (TYPE_P (t)) + *walk_subtrees = 0; + } + return NULL_TREE; +} + /* At the end of a function, all labels declared within the function go out of scope. BLOCK is the top-level block for the function. */ @@ -420,8 +516,23 @@ pop_labels (tree block) table implementation changes. */ auto_vec labels (named_labels->elements ()); hash_table::iterator end (named_labels->end ()); - for (hash_table::iterator iter - (named_labels->begin ()); iter != end; ++iter) + + if (flag_auto_var_init > AUTO_INIT_UNINITIALIZED) + { + for (decltype (end) iter (named_labels->begin ()); iter != end; ++iter) + { + named_label_entry *ent = *iter; + if (ent->direct_goto) + { + hash_set pset; + cp_walk_tree (&DECL_SAVED_TREE (current_function_decl), + adjust_backward_gotos, &pset, &pset); + break; + } + } + } + + for (decltype (end) iter (named_labels->begin ()); iter != end; ++iter) { named_label_entry *ent = *iter; @@ -551,6 +662,11 @@ poplevel_named_label_1 (named_label_entry **slot, cp_binding_level *bl) ? DECL_CHAIN (decl) : TREE_CHAIN (decl))) if (decl_jump_unsafe (decl)) + { + vec_safe_push (ent->bad_decls, decl); + ent->has_bad_decls = true; + } + else if (decl_instrument_init_bypass_p (decl)) vec_safe_push (ent->bad_decls, decl); ent->binding_level = obl; @@ -2941,6 +3057,19 @@ duplicate_decls (tree newdecl, tree olddecl, bool hiding, bool was_hidden) { DECL_ATTRIBUTES (newarg) = (*targetm.merge_decl_attributes) (oldarg, newarg); + if (lookup_attribute (NULL, "indeterminate", + DECL_ATTRIBUTES (newarg)) + && !lookup_attribute (NULL, "indeterminate", + DECL_ATTRIBUTES (oldarg))) + { + auto_diagnostic_group d; + error_at (DECL_SOURCE_LOCATION (newarg), + "% attribute not specified " + "for parameter %qD on the first declaration of " + "its function", newarg); + inform (DECL_SOURCE_LOCATION (oldarg), + "earlier declaration"); + } DECL_ATTRIBUTES (oldarg) = DECL_ATTRIBUTES (newarg); } @@ -3744,6 +3873,259 @@ decl_jump_unsafe (tree decl) || variably_modified_type_p (type, NULL_TREE))); } +/* Returns true if decl is an automatic variable with vacuous initialization + except when it is [[indeterminate]] or [[gnu::uninitialized]]. + Jumps across such initialization need to be instrumented for + !!flag_auto_var_init. */ + +static bool +decl_instrument_init_bypass_p (tree decl) +{ + tree type = TREE_TYPE (decl); + + return (flag_auto_var_init > AUTO_INIT_UNINITIALIZED + && type != error_mark_node + && VAR_P (decl) + && !TREE_STATIC (decl) + && !DECL_EXTERNAL (decl) + && !(DECL_NONTRIVIALLY_INITIALIZED_P (decl) + || variably_modified_type_p (type, NULL_TREE)) + && !lookup_attribute (NULL, "indeterminate", DECL_ATTRIBUTES (decl)) + && !lookup_attribute ("uninitialized", DECL_ATTRIBUTES (decl)) + && !DECL_HAS_VALUE_EXPR_P (decl)); +} + +/* Build .DEFERRED_INIT call for DECL. */ + +static tree +build_deferred_init_call (tree decl) +{ + tree decl_size_arg = TYPE_SIZE_UNIT (TREE_TYPE (decl)); + tree init_type_arg = build_int_cst (integer_type_node, + (int) flag_auto_var_init); + location_t loc = DECL_SOURCE_LOCATION (decl); + tree decl_name; + + if (DECL_NAME (decl)) + decl_name = build_string_literal (DECL_NAME (decl)); + else + { + char decl_name_anonymous[3 + (HOST_BITS_PER_INT + 2) / 3]; + sprintf (decl_name_anonymous, "D.%u", DECL_UID (decl)); + decl_name = build_string_literal (decl_name_anonymous); + } + + tree call = build_call_expr_internal_loc (loc, IFN_DEFERRED_INIT, + TREE_TYPE (decl), 3, + decl_size_arg, init_type_arg, + decl_name); + tree ret = build2_loc (loc, MODIFY_EXPR, void_type_node, decl, call); + return build_stmt (loc, EXPR_STMT, ret); +} + +/* Emit before ITER (and any labels/case labels before it) code like + if (0) + { + l1: + v4 = .DEFERRED_INIT (sizeof (v4), ?, "v4"); + v3 = .DEFERRED_INIT (sizeof (v3), ?, "v3"); + v2 = .DEFERRED_INIT (sizeof (v2), ?, "v2"); + v1 = .DEFERRED_INIT (sizeof (v1), ?, "v1"); + } + and return l1 label, or if it already exists, assert it has the + .DEFERRED_INIT calls for the right decls in the right order and + amend it, either by adding extra labels in between or further + ,DEFERRED_INIT calls before the first label and extra label before + that. If CASE_LABEL is non-NULL, emit that CASE_LABEL_EXPR instead + of adding a label. DECLS points to an array of NDECLS VAR_DECLs + which should be initialized. */ + +static tree +maybe_add_deferred_init_calls (tree_stmt_iterator iter, tree case_label, + tree *decls, unsigned ndecls) +{ + tree lab = NULL_TREE; + for (; !tsi_end_p (iter); tsi_prev (&iter)) + { + switch (TREE_CODE (tsi_stmt (iter))) + { + case LABEL_EXPR: + case CASE_LABEL_EXPR: + case DEBUG_BEGIN_STMT: + continue; + default: + break; + } + break; + } + if (!tsi_end_p (iter) + && TREE_CODE (tsi_stmt (iter)) == IF_STMT + && IF_STMT_VACUOUS_INIT_P (tsi_stmt (iter))) + { + /* Found IF_STMT added for this or some adjacent + LABEL_EXPR/CASE_LABEL_EXPR by an earlier call to this function. + The decls are ordered so that we can always reuse it. Sometimes + by no modifications at all and just returning the right label + which was added already before, sometimes by adding a label in + between two previously added .DEFERRED_INIT calls and sometimes + by adding extra statements (.DEFERRED_INIT calls and LABEL_EXPR + before that) before the statements in IF_STMT body. */ + tree then_clause = THEN_CLAUSE (tsi_stmt (iter)); + iter = tsi_last (then_clause); + bool add = false; + for (unsigned int i = 0; i < ndecls; ++i) + { + tree decl = decls[i]; + if (!add) + { + /* Skip over labels/case labels after .DEFERRED_INIT for the + DECL we are looking for. */ + while (!tsi_end_p (iter) + && (TREE_CODE (tsi_stmt (iter)) == LABEL_EXPR + || (TREE_CODE (tsi_stmt (iter)) == CASE_LABEL_EXPR + && !case_label))) + tsi_prev (&iter); + if (tsi_end_p (iter)) + { + /* Reached the start, we'll need to prepend further + statements. */ + add = true; + iter = tsi_start (then_clause); + } + else + { + /* Found something, assert it is .DEFERRED_INIT for + DECL. */ + tree t = tsi_stmt (iter); + gcc_checking_assert (TREE_CODE (t) == EXPR_STMT); + t = EXPR_STMT_EXPR (t); + gcc_checking_assert (TREE_CODE (t) == MODIFY_EXPR + && TREE_OPERAND (t, 0) == decl + && (TREE_CODE (TREE_OPERAND (t, 1)) + == CALL_EXPR)); + t = TREE_OPERAND (t, 1); + gcc_checking_assert (CALL_EXPR_FN (t) == NULL_TREE + && (CALL_EXPR_IFN (t) + == IFN_DEFERRED_INIT)); + tsi_prev (&iter); + } + } + if (add) + { + /* If reached the start in this or some earlier iteration, + prepend .DEFERRED_INIT call for DECL. */ + tree t = build_deferred_init_call (decl); + STMT_IS_FULL_EXPR_P (t) = 1; + tsi_link_before (&iter, t, TSI_CONTINUE_LINKING); + } + } + if (!add) + { + /* If .DEFERRED_INIT calls for all the decls were already there, + skip over case labels and if we find a LABEL_EXPR, return + its label. */ + while (!tsi_end_p (iter) + && !case_label + && TREE_CODE (tsi_stmt (iter)) == CASE_LABEL_EXPR) + tsi_prev (&iter); + if (tsi_end_p (iter)) + { + /* Only case labels were found and we are looking for normal + label, we'll need to add it. */ + add = true; + iter = tsi_start (then_clause); + } + else if (!case_label + && TREE_CODE (tsi_stmt (iter)) == LABEL_EXPR) + /* Return existing label. */ + lab = LABEL_EXPR_LABEL (tsi_stmt (iter)); + else + { + /* We'll need to add a LABEL_EXPR or move CASE_LABEL_EXPR. */ + gcc_checking_assert (case_label + || (TREE_CODE (tsi_stmt (iter)) + == EXPR_STMT)); + add = true; + tsi_next (&iter); + gcc_checking_assert (!tsi_end_p (iter)); + } + } + if (add) + { + tree t; + if (case_label) + t = case_label; + else + { + lab = create_artificial_label (UNKNOWN_LOCATION); + t = build_stmt (UNKNOWN_LOCATION, LABEL_EXPR, lab); + } + tsi_link_before (&iter, t, TSI_CONTINUE_LINKING); + } + } + else + { + /* No IF_STMT created by this function found. Create it all + from scratch, so a LABEL_EXPR (or moved CASE_LABEL_EXPR) + followed by .DEFERRED_INIT calls inside of a new if (0). */ + tree new_then = push_stmt_list (); + if (!case_label) + { + lab = create_artificial_label (UNKNOWN_LOCATION); + add_stmt (build_stmt (UNKNOWN_LOCATION, LABEL_EXPR, lab)); + } + else + add_stmt (case_label); + for (unsigned int i = ndecls; i; --i) + add_stmt (build_deferred_init_call (decls[i - 1])); + new_then = pop_stmt_list (new_then); + tree stmt = build4 (IF_STMT, void_type_node, boolean_false_node, + new_then, void_node, NULL_TREE); + IF_STMT_VACUOUS_INIT_P (stmt) = 1; + if (tsi_end_p (iter)) + { + iter = tsi_start (iter.container); + tsi_link_before (&iter, stmt, TSI_SAME_STMT); + } + else + tsi_link_after (&iter, stmt, TSI_CONTINUE_LINKING); + } + return lab; +} + +/* Adjust backward gotos to named label ENT if they jump over vacuous + initializers if !!flag_auto_var_init. ITER is the location of + LABEL_EXPR for that named label. */ + +static void +adjust_backward_goto (named_label_entry *ent, tree_stmt_iterator iter) +{ + auto_vec decls; + unsigned int i, max_cnt = ent->direct_goto->last ().n_bad_decls; + tree decl; + FOR_EACH_VEC_SAFE_ELT (ent->bad_decls, i, decl) + if (!decl_jump_unsafe (decl)) + { + gcc_checking_assert (decl_instrument_init_bypass_p (decl)); + decls.safe_push (decl); + if (decls.length () == max_cnt) + break; + } + named_label_bck_direct_goto *dgoto; + unsigned last = 0; + tree lab = NULL_TREE; + FOR_EACH_VEC_SAFE_ELT_REVERSE (ent->direct_goto, i, dgoto) + { + if (dgoto->n_bad_decls != last) + { + last = dgoto->n_bad_decls; + lab = maybe_add_deferred_init_calls (iter, NULL_TREE, + decls.address (), last); + } + *dgoto->direct_goto = lab; + } +} + /* A subroutine of check_previous_goto_1 and check_goto to identify a branch to the user. */ @@ -3771,13 +4153,19 @@ identify_goto (tree decl, location_t loc, const location_t *locus, is OK. DECL is the LABEL_DECL or 0; LEVEL is the binding_level for the jump context; NAMES are the names in scope in LEVEL at the jump context; LOCUS is the source position of the jump or 0. COMPUTED - is a vec of decls if the jump is a computed goto. Returns - true if all is well. */ + is a vec of decls if the jump is a computed goto. DIRECT_GOTO is a + vec of pointers to LABEL_DECLs that might need adjusting if vacuous + initializations are crossed for !!flag_auto_var_init. CASE_LABEL is + CASE_LABEL_EXPR to be moved if needed for the check_switch_goto case. + Returns non-zero if all is well, 2 if any vacuous initializers were + crossed. */ -static bool -check_previous_goto_1 (tree decl, cp_binding_level* level, tree names, +static int +check_previous_goto_1 (tree decl, cp_binding_level *level, tree names, bool exited_omp, const location_t *locus, - vec *computed) + vec *computed, + vec *direct_goto, + tree case_label) { auto_diagnostic_group d; cp_binding_level *b; @@ -3785,6 +4173,8 @@ check_previous_goto_1 (tree decl, cp_binding_level* level, tree names, int identified = 0; bool saw_eh = false, saw_omp = false, saw_tm = false, saw_cxif = false; bool saw_ceif = false, saw_se = false; + auto_vec vacuous_decls; + bool vacuous_inits = false; if (exited_omp) { @@ -3807,7 +4197,15 @@ check_previous_goto_1 (tree decl, cp_binding_level* level, tree names, { bool problem = decl_jump_unsafe (new_decls); if (! problem) - continue; + { + if (decl_instrument_init_bypass_p (new_decls)) + { + if (direct_goto || case_label) + vacuous_decls.safe_push (new_decls); + vacuous_inits = true; + } + continue; + } if (!identified) { @@ -3906,7 +4304,30 @@ check_previous_goto_1 (tree decl, cp_binding_level* level, tree names, } } - return !identified; + if (!vacuous_decls.is_empty () && !seen_error ()) + { + tree_stmt_iterator iter = tsi_last (cur_stmt_list); + if (case_label) + { + gcc_checking_assert (tsi_stmt (iter) == case_label); + tsi_delink (&iter); + iter = tsi_last (cur_stmt_list); + } + tree lab = maybe_add_deferred_init_calls (iter, case_label, + vacuous_decls.address (), + vacuous_decls.length ()); + if (lab) + { + unsigned int i; + named_label_fwd_direct_goto *dgoto; + FOR_EACH_VEC_SAFE_ELT (direct_goto, i, dgoto) + *dgoto->direct_goto = lab; + } + } + + if (identified) + return 0; + return vacuous_inits ? 2 : 1; } static void @@ -3914,24 +4335,27 @@ check_previous_goto (tree decl, struct named_label_use_entry *use) { check_previous_goto_1 (decl, use->binding_level, use->names_in_scope, use->in_omp_scope, - &use->o_goto_locus, use->computed_goto); + &use->o_goto_locus, use->computed_goto, + use->direct_goto, NULL_TREE); + vec_free (use->direct_goto); } -static bool -check_switch_goto (cp_binding_level* level) +static int +check_switch_goto (cp_binding_level *level, tree case_label) { return check_previous_goto_1 (NULL_TREE, level, level->names, - false, NULL, nullptr); + false, NULL, nullptr, nullptr, case_label); } -/* Check that a new jump to a label ENT is OK. COMPUTED is true - if this is a possible target of a computed goto. */ +/* Check that a new jump to a label ENT is OK. DECLP is a pointer + to a LABEL_DECL for direct gotos and NULL for computed gotos. */ void -check_goto_1 (named_label_entry *ent, bool computed) +check_goto_1 (named_label_entry *ent, tree *declp) { auto_diagnostic_group d; tree decl = ent->label_decl; + bool computed = declp == NULL; /* If the label hasn't been defined yet, defer checking. */ if (! DECL_INITIAL (decl)) @@ -3939,8 +4363,14 @@ check_goto_1 (named_label_entry *ent, bool computed) /* Don't bother creating another use if the last goto had the same data, and will therefore create the same set of errors. */ if (ent->uses + && ent->uses->binding_level == current_binding_level && ent->uses->names_in_scope == current_binding_level->names) - return; + { + if (declp && flag_auto_var_init > AUTO_INIT_UNINITIALIZED) + vec_safe_push (ent->uses->direct_goto, + named_label_fwd_direct_goto { declp }); + return; + } named_label_use_entry *new_use = ggc_alloc (); @@ -3949,6 +4379,10 @@ check_goto_1 (named_label_entry *ent, bool computed) new_use->o_goto_locus = input_location; new_use->in_omp_scope = false; new_use->computed_goto = computed ? make_tree_vector () : nullptr; + new_use->direct_goto = nullptr; + if (declp && flag_auto_var_init > AUTO_INIT_UNINITIALIZED) + vec_safe_push (new_use->direct_goto, + named_label_fwd_direct_goto { declp }); new_use->next = ent->uses; ent->uses = new_use; @@ -3959,11 +4393,12 @@ check_goto_1 (named_label_entry *ent, bool computed) int identified = 0; tree bad; unsigned ix; + unsigned n_bad_decls = 0; if (ent->in_try_scope || ent->in_catch_scope || ent->in_transaction_scope || ent->in_constexpr_if || ent->in_consteval_if || ent->in_omp_scope || ent->in_stmt_expr - || !vec_safe_is_empty (ent->bad_decls)) + || ent->has_bad_decls) { enum diagnostics::kind diag_kind = diagnostics::kind::permerror; if (ent->in_try_scope || ent->in_catch_scope || ent->in_constexpr_if @@ -3978,8 +4413,14 @@ check_goto_1 (named_label_entry *ent, bool computed) FOR_EACH_VEC_SAFE_ELT (ent->bad_decls, ix, bad) { bool problem = decl_jump_unsafe (bad); + if (!problem) + { + gcc_checking_assert (decl_instrument_init_bypass_p (bad)); + n_bad_decls++; + continue; + } - if (problem && DECL_ARTIFICIAL (bad)) + if (DECL_ARTIFICIAL (bad)) { /* Can't skip init of __exception_info. */ if (identified == 1) @@ -4086,16 +4527,21 @@ check_goto_1 (named_label_entry *ent, bool computed) break; } } + + if (n_bad_decls && declp) + vec_safe_push (ent->direct_goto, + named_label_bck_direct_goto { declp, n_bad_decls }); } -/* Check that a new jump to a label DECL is OK. Called by +/* Check that a new jump to a label *DECLP is OK. Called by finish_goto_stmt. */ void -check_goto (tree decl) +check_goto (tree *declp) { if (!named_labels) return; + tree decl = *declp; if (TREE_CODE (decl) != LABEL_DECL) { /* We don't know where a computed goto is jumping, @@ -4106,7 +4552,7 @@ check_goto (tree decl) { auto ent = *iter; if (ent->addressed) - check_goto_1 (ent, true); + check_goto_1 (ent, NULL); } } else @@ -4115,7 +4561,7 @@ check_goto (tree decl) named_label_entry **slot = named_labels->find_slot_with_hash (DECL_NAME (decl), hash, NO_INSERT); named_label_entry *ent = *slot; - check_goto_1 (ent, false); + check_goto_1 (ent, declp); } } @@ -4370,7 +4816,8 @@ finish_case_label (location_t loc, tree low_value, tree high_value) if (cond && TREE_CODE (cond) == TREE_LIST) cond = TREE_VALUE (cond); - if (!check_switch_goto (switch_stack->level)) + int chk_switch_goto = check_switch_goto (switch_stack->level, NULL_TREE); + if (!chk_switch_goto) return error_mark_node; type = SWITCH_STMT_TYPE (switch_stack->switch_stmt); @@ -4382,6 +4829,9 @@ finish_case_label (location_t loc, tree low_value, tree high_value) r = c_add_case_label (loc, switch_stack->cases, cond, low_value, high_value); + if (r != error_mark_node && chk_switch_goto == 2) + check_switch_goto (switch_stack->level, r); + /* After labels, make any new cleanups in the function go into their own new (temporary) binding contour. */ for (p = current_binding_level; @@ -11963,11 +12413,13 @@ grokfndecl (tree ctype, if (!same_type_p (TREE_TYPE (TREE_TYPE (decl)), integer_type_node)) { - tree oldtypeargs = TYPE_ARG_TYPES (TREE_TYPE (decl)); + tree dtype = TREE_TYPE (decl); + tree oldtypeargs = TYPE_ARG_TYPES (dtype); tree newtype; error_at (declspecs->locations[ds_type_spec], "%<::main%> must return %"); - newtype = build_function_type (integer_type_node, oldtypeargs); + newtype = build_function_type (integer_type_node, oldtypeargs, + TYPE_NO_NAMED_ARGS_STDARG_P (dtype)); TREE_TYPE (decl) = newtype; } if (warn_main) @@ -14874,7 +15326,7 @@ grokdeclarator (const cp_declarator *declarator, is_xobj_member_function = false; } - type = build_function_type (type, arg_types); + type = cp_build_function_type (type, arg_types); tree attrs = declarator->std_attributes; if (tx_qual) @@ -18862,7 +19314,8 @@ check_function_type (tree decl, tree current_function_parms) void_type_node, TREE_CHAIN (args)); else - fntype = build_function_type (void_type_node, args); + fntype = build_function_type (void_type_node, args, + TYPE_NO_NAMED_ARGS_STDARG_P (fntype)); fntype = (cp_build_type_attribute_variant (fntype, TYPE_ATTRIBUTES (TREE_TYPE (decl)))); fntype = cxx_copy_lang_qualifiers (fntype, TREE_TYPE (decl)); @@ -19327,16 +19780,19 @@ start_preparsed_function (tree decl1, tree attrs, int flags) start_function_contracts (decl1); if (!processing_template_decl - && (flag_lifetime_dse > 1) + && flag_lifetime_dse > 1 && DECL_CONSTRUCTOR_P (decl1) - && !DECL_CLONED_FUNCTION_P (decl1) /* Clobbering an empty base is harmful if it overlays real data. */ && !is_empty_class (current_class_type) /* We can't clobber safely for an implicitly-defined default constructor because part of the initialization might happen before we enter the constructor, via AGGR_INIT_ZERO_FIRST (c++/68006). */ - && !implicit_default_ctor_p (decl1)) - finish_expr_stmt (build_clobber_this (CLOBBER_OBJECT_BEGIN)); + && !implicit_default_ctor_p (decl1) + && !lookup_attribute ("clobber *this", + DECL_ATTRIBUTES (current_class_ptr))) + DECL_ATTRIBUTES (current_class_ptr) + = tree_cons (get_identifier ("clobber *this"), NULL_TREE, + DECL_ATTRIBUTES (current_class_ptr)); if (!processing_template_decl && DECL_CONSTRUCTOR_P (decl1) @@ -20356,7 +20812,7 @@ static_fn_type (tree memfntype) return memfntype; gcc_assert (TREE_CODE (memfntype) == METHOD_TYPE); args = TYPE_ARG_TYPES (memfntype); - fntype = build_function_type (TREE_TYPE (memfntype), TREE_CHAIN (args)); + fntype = cp_build_function_type (TREE_TYPE (memfntype), TREE_CHAIN (args)); fntype = apply_memfn_quals (fntype, type_memfn_quals (memfntype)); fntype = (cp_build_type_attribute_variant (fntype, TYPE_ATTRIBUTES (memfntype))); diff --git a/gcc/cp/decl2.cc b/gcc/cp/decl2.cc index dfaef30dbfc0..0073f83a10ca 100644 --- a/gcc/cp/decl2.cc +++ b/gcc/cp/decl2.cc @@ -233,7 +233,8 @@ change_return_type (tree new_ret, tree fntype) if (TREE_CODE (fntype) == FUNCTION_TYPE) { - newtype = build_function_type (new_ret, args); + newtype = build_function_type (new_ret, args, + TYPE_NO_NAMED_ARGS_STDARG_P (fntype)); newtype = apply_memfn_quals (newtype, type_memfn_quals (fntype)); } @@ -1698,7 +1699,8 @@ cp_reconstruct_complex_type (tree type, tree bottom) else if (TREE_CODE (type) == FUNCTION_TYPE) { inner = cp_reconstruct_complex_type (TREE_TYPE (type), bottom); - outer = build_function_type (inner, TYPE_ARG_TYPES (type)); + outer = build_function_type (inner, TYPE_ARG_TYPES (type), + TYPE_NO_NAMED_ARGS_STDARG_P (type)); outer = apply_memfn_quals (outer, type_memfn_quals (type)); } else if (TREE_CODE (type) == METHOD_TYPE) diff --git a/gcc/cp/error.cc b/gcc/cp/error.cc index 16dfeafc07a0..ae899ec9f770 100644 --- a/gcc/cp/error.cc +++ b/gcc/cp/error.cc @@ -17,6 +17,7 @@ You should have received a copy of the GNU General Public License along with GCC; see the file COPYING3. If not see . */ +#define INCLUDE_VECTOR #include "config.h" /* For use with name_hint. */ #include "system.h" diff --git a/gcc/cp/expr.cc b/gcc/cp/expr.cc index 32dc3eee78f9..f2e99397acac 100644 --- a/gcc/cp/expr.cc +++ b/gcc/cp/expr.cc @@ -430,3 +430,19 @@ fold_for_warn (tree x) return c_fully_fold (x, /*for_init*/false, /*maybe_constp*/NULL); } + +/* Make EXPR only execute during constant evaluation by wrapping it in a + statement-expression containing 'if consteval'. */ + +tree +wrap_with_if_consteval (tree expr) +{ + tree stmtex = begin_stmt_expr (); + tree ifcev = begin_if_stmt (); + IF_STMT_CONSTEVAL_P (ifcev) = true; + finish_if_stmt_cond (boolean_false_node, ifcev); + finish_expr_stmt (expr); + finish_then_clause (ifcev); + finish_if_stmt (ifcev); + return finish_stmt_expr (stmtex, /*no scope*/true); +} diff --git a/gcc/cp/init.cc b/gcc/cp/init.cc index 3fe476d7eec7..1b7f3e6b41c9 100644 --- a/gcc/cp/init.cc +++ b/gcc/cp/init.cc @@ -3557,15 +3557,17 @@ build_new_1 (vec **placement, tree type, tree nelts, alloc_expr = maybe_wrap_new_for_constexpr (alloc_expr, type, cookie_size); - bool std_placement = std_placement_new_fn_p (alloc_fn); + const bool std_placement = std_placement_new_fn_p (alloc_fn); - /* For std placement new, clobber the object if the constructor won't do it - in start_preparsed_function. This is most important for activating an - array in a union (c++/121068), but should also help the optimizers. */ + /* Clobber the object now that the constructor won't do it in + start_preparsed_function. This is most important for activating an array + in a union (c++/121068), but should also help the optimizers. */ const bool do_clobber - = (std_placement && flag_lifetime_dse > 1 + = (flag_lifetime_dse > 1 && !processing_template_decl && !is_empty_type (elt_type) + && !integer_zerop (TYPE_SIZE (type)) + && (!outer_nelts || !integer_zerop (cst_outer_nelts)) && (!*init || CLASS_TYPE_P (elt_type))); /* In the simple case, we can stop now. */ @@ -3662,22 +3664,49 @@ build_new_1 (vec **placement, tree type, tree nelts, tree clobber_expr = NULL_TREE; if (do_clobber) { - tree clobber = build_clobber (elt_type, CLOBBER_OBJECT_BEGIN); - CONSTRUCTOR_IS_DIRECT_INIT (clobber) = true; - if (array_p) + if (array_p && TREE_CODE (cst_outer_nelts) != INTEGER_CST) { /* Clobber each element rather than the array at once. */ - tree maxindex = cp_build_binary_op (input_location, - MINUS_EXPR, outer_nelts, - integer_one_node, - complain); - clobber_expr = build_vec_init (data_addr, maxindex, clobber, - /*valinit*/false, /*from_arr*/0, - complain, nullptr); + /* But for now, limit a clobber loop to placement new during + constant-evaluation, as cddce1 thinks it might be infinite, leading + to bogus warnings on Wstringop-overflow-4.C (2025-09-30). We + need it in constexpr for constexpr-new4a.C. */ + if (std_placement && current_function_decl + && maybe_constexpr_fn (current_function_decl)) + { + tree clobber = build_clobber (elt_type, CLOBBER_OBJECT_BEGIN); + CONSTRUCTOR_IS_DIRECT_INIT (clobber) = true; + tree maxindex = cp_build_binary_op (input_location, + MINUS_EXPR, outer_nelts, + integer_one_node, + complain); + clobber_expr = build_vec_init (data_addr, maxindex, clobber, + /*valinit*/false, /*from_arr*/0, + complain, nullptr); + clobber_expr = wrap_with_if_consteval (clobber_expr); + } } else { - tree targ = cp_build_fold_indirect_ref (data_addr); + tree targ = data_addr; + tree ttype = type; + /* Clobber the array as a whole, except that for a one-element array + just clobber the element type, to avoid problems with code like + construct_at that uses new T[1] for array T to get a pointer to + the array. */ + if (array_p && !integer_onep (cst_outer_nelts)) + { + tree dom + = compute_array_index_type (NULL_TREE, + CONST_CAST_TREE (cst_outer_nelts), + complain); + ttype = build_cplus_array_type (type, dom); + tree ptype = build_pointer_type (ttype); + targ = fold_convert (ptype, targ); + } + targ = cp_build_fold_indirect_ref (targ); + tree clobber = build_clobber (ttype, CLOBBER_OBJECT_BEGIN); + CONSTRUCTOR_IS_DIRECT_INIT (clobber) = true; clobber_expr = cp_build_init_expr (targ, clobber); } } diff --git a/gcc/cp/lambda.cc b/gcc/cp/lambda.cc index 575daaa9d711..c2655a9949a7 100644 --- a/gcc/cp/lambda.cc +++ b/gcc/cp/lambda.cc @@ -1329,9 +1329,10 @@ maybe_add_lambda_conv_op (tree type) } tree stattype - = build_function_type (fn_result, FUNCTION_FIRST_USER_PARMTYPE (callop)); - stattype = (cp_build_type_attribute_variant - (stattype, TYPE_ATTRIBUTES (optype))); + = cp_build_function_type (fn_result, + FUNCTION_FIRST_USER_PARMTYPE (callop)); + stattype = cp_build_type_attribute_variant (stattype, + TYPE_ATTRIBUTES (optype)); if (flag_noexcept_type && TYPE_NOTHROW_P (TREE_TYPE (callop))) stattype = build_exception_variant (stattype, noexcept_true_spec); diff --git a/gcc/cp/lex.cc b/gcc/cp/lex.cc index da86989a41d2..3bc48659a8c7 100644 --- a/gcc/cp/lex.cc +++ b/gcc/cp/lex.cc @@ -243,6 +243,8 @@ init_reswords (void) mask |= D_CXX11; if (cxx_dialect < cxx20) mask |= D_CXX20; + if (cxx_dialect < cxx26) + mask |= D_CXX26; if (!flag_concepts) mask |= D_CXX_CONCEPTS; if (!flag_coroutines) diff --git a/gcc/cp/module.cc b/gcc/cp/module.cc index be873c192955..bdc7e6af8748 100644 --- a/gcc/cp/module.cc +++ b/gcc/cp/module.cc @@ -2341,6 +2341,7 @@ class depset { EK_PARTIAL, /* A partial specialization. */ EK_USING, /* A using declaration (at namespace scope). */ EK_NAMESPACE, /* A namespace. */ + EK_TU_LOCAL, /* A TU-local decl for ADL. */ EK_REDIRECT, /* Redirect to a template_decl. */ EK_EXPLICIT_HWM, EK_BINDING = EK_EXPLICIT_HWM, /* Implicitly encoded. */ @@ -2351,6 +2352,8 @@ class depset { EK_BITS = 3 /* Only need to encode below EK_EXPLICIT_HWM. */ }; + static_assert (EK_EXPLICIT_HWM < (1u << EK_BITS), + "not enough bits reserved for entity_kind"); private: /* Placement of bit fields in discriminator. */ @@ -2375,7 +2378,10 @@ class depset { awkward. */ DB_TYPE_SPEC_BIT, /* Specialization in the type table. */ DB_FRIEND_SPEC_BIT, /* An instantiated template friend. */ + DB_HWM, }; + static_assert (DB_HWM <= sizeof(discriminator) * CHAR_BIT, + "not enough bits in discriminator"); public: /* The first slot is special for EK_SPECIALIZATIONS it is a @@ -2700,7 +2706,9 @@ depset::entity_kind_name () const /* Same order as entity_kind. */ static const char *const names[] = {"decl", "specialization", "partial", "using", - "namespace", "redirect", "binding"}; + "namespace", "tu-local", "redirect", "binding"}; + static_assert (ARRAY_SIZE (names) == EK_EXPLICIT_HWM + 1, + "names must have an entry for every explicit entity_kind"); entity_kind kind = get_entity_kind (); gcc_checking_assert (kind < ARRAY_SIZE (names)); return names[kind]; @@ -7683,7 +7691,7 @@ trees_in::tree_node_bools (tree t) } -/* Write out the lang-specifc vals of node T. */ +/* Write out the lang-specific vals of node T. */ void trees_out::lang_vals (tree t) @@ -9986,6 +9994,16 @@ trees_out::find_tu_local_decl (tree t) return cp_walk_tree_without_duplicates (&t, walker, this); } +/* Get the name for TU-local decl T to be used in diagnostics. */ + +static tree +name_for_tu_local_decl (tree t) +{ + int flags = (TFF_SCOPE | TFF_DECL_SPECIFIERS); + const char *str = decl_as_string (t, flags); + return get_identifier (str); +} + /* Stream out tree node T. We automatically create local back references, which is essentially a single pass lisp self-referential structure pretty-printer. */ @@ -10030,8 +10048,7 @@ trees_out::tree_node (tree t) && dump ("Writing TU-local entity:%d %C:%N", tag, TREE_CODE (t), t); } - /* TODO: Get a more descriptive name? */ - tree_node (DECL_NAME (local_decl)); + tree_node (name_for_tu_local_decl (local_decl)); if (state) state->write_location (*this, DECL_SOURCE_LOCATION (local_decl)); goto done; @@ -10397,7 +10414,7 @@ trees_in::tree_node (bool is_use) if (klass) res = build_method_type_directly (klass, res, args); else - res = build_function_type (res, args); + res = cp_build_function_type (res, args); } } break; @@ -14194,6 +14211,8 @@ depset::hash::make_dependency (tree decl, entity_kind ek) gcc_checking_assert (!is_key_order ()); if (ek == EK_USING) gcc_checking_assert (TREE_CODE (decl) == OVERLOAD); + if (ek == EK_TU_LOCAL) + gcc_checking_assert (DECL_DECLARES_FUNCTION_P (decl)); if (TREE_CODE (decl) == TEMPLATE_DECL) /* The template should have copied these from its result decl. */ @@ -14394,7 +14413,8 @@ depset::hash::make_dependency (tree decl, entity_kind ek) dump (dumper::DEPEND) && dump ("%s on %s %C:%N found", ek == EK_REDIRECT ? "Redirect" - : for_binding ? "Binding" : "Dependency", + : (for_binding || ek == EK_TU_LOCAL) ? "Binding" + : "Dependency", dep->entity_kind_name (), TREE_CODE (decl), decl); return dep; @@ -14565,9 +14585,21 @@ depset::hash::add_binding_entity (tree decl, WMB_Flags flags, void *data_) than trying to clear out bindings after the fact. */ return false; + bool internal_decl = false; if (!header_module_p () && data->hash->is_tu_local_entity (decl)) - /* Ignore TU-local entitites. */ - return false; + { + /* A TU-local entity. For ADL we still need to create bindings + for internal-linkage functions attached to a named module. */ + if (DECL_DECLARES_FUNCTION_P (inner) + && DECL_LANG_SPECIFIC (inner) + && DECL_MODULE_ATTACH_P (inner)) + { + gcc_checking_assert (!DECL_MODULE_EXPORT_P (inner)); + internal_decl = true; + } + else + return false; + } if ((TREE_CODE (decl) == VAR_DECL || TREE_CODE (decl) == TYPE_DECL) @@ -14662,8 +14694,13 @@ depset::hash::add_binding_entity (tree decl, WMB_Flags flags, void *data_) OVL_EXPORT_P (decl) = true; } - depset *dep = data->hash->make_dependency - (decl, flags & WMB_Using ? EK_USING : EK_FOR_BINDING); + entity_kind ek = EK_FOR_BINDING; + if (internal_decl) + ek = EK_TU_LOCAL; + else if (flags & WMB_Using) + ek = EK_USING; + + depset *dep = data->hash->make_dependency (decl, ek); if (flags & WMB_Hidden) dep->set_hidden_binding (); data->binding->deps.safe_push (dep); @@ -15114,9 +15151,12 @@ depset::hash::find_dependencies (module_state *module) walker.begin (); if (current->get_entity_kind () == EK_USING) walker.tree_node (OVL_FUNCTION (decl)); + else if (current->get_entity_kind () == EK_TU_LOCAL) + /* We only stream its name and location. */ + module->note_location (DECL_SOURCE_LOCATION (decl)); else if (TREE_VISITED (decl)) /* A global tree. */; - else if (item->get_entity_kind () == EK_NAMESPACE) + else if (current->get_entity_kind () == EK_NAMESPACE) { module->note_location (DECL_SOURCE_LOCATION (decl)); add_namespace_context (current, CP_DECL_CONTEXT (decl)); @@ -15231,6 +15271,12 @@ binding_cmp (const void *a_, const void *b_) return a_implicit ? -1 : +1; /* Implicit first. */ } + /* TU-local before non-TU-local. */ + bool a_internal = a->get_entity_kind () == depset::EK_TU_LOCAL; + bool b_internal = b->get_entity_kind () == depset::EK_TU_LOCAL; + if (a_internal != b_internal) + return a_internal ? -1 : +1; /* Internal first. */ + /* Hidden before non-hidden. */ bool a_hidden = a->is_hidden (); bool b_hidden = b->is_hidden (); @@ -15565,12 +15611,15 @@ sort_cluster (depset::hash *original, depset *scc[], unsigned size) use_lwm--; break; } - /* We must have copied a using, so move it too. */ + /* We must have copied a using or TU-local, so move it too. */ dep = scc[ix]; - gcc_checking_assert (dep->get_entity_kind () == depset::EK_USING); + gcc_checking_assert + (dep->get_entity_kind () == depset::EK_USING + || dep->get_entity_kind () == depset::EK_TU_LOCAL); /* FALLTHROUGH */ case depset::EK_USING: + case depset::EK_TU_LOCAL: if (--use_lwm != ix) { scc[ix] = scc[use_lwm]; @@ -16570,6 +16619,7 @@ enum ct_bind_flags cbf_export = 0x1, /* An exported decl. */ cbf_hidden = 0x2, /* A hidden (friend) decl. */ cbf_using = 0x4, /* A using decl. */ + cbf_internal = 0x8, /* A TU-local decl. */ }; /* DEP belongs to a different cluster, seed it to prevent @@ -16641,7 +16691,9 @@ module_state::write_cluster (elf_out *to, depset *scc[], unsigned size, gcc_checking_assert (dep->is_import () || TREE_VISITED (dep->get_entity ()) || (dep->get_entity_kind () - == depset::EK_USING)); + == depset::EK_USING) + || (dep->get_entity_kind () + == depset::EK_TU_LOCAL)); } } break; @@ -16654,6 +16706,7 @@ module_state::write_cluster (elf_out *to, depset *scc[], unsigned size, /* FALLTHROUGH */ case depset::EK_USING: + case depset::EK_TU_LOCAL: gcc_checking_assert (!b->is_import () && !b->is_unreached ()); dump (dumper::CLUSTER) @@ -16726,7 +16779,9 @@ module_state::write_cluster (elf_out *to, depset *scc[], unsigned size, depset *dep = b->deps[jx]; tree bound = dep->get_entity (); unsigned flags = 0; - if (dep->get_entity_kind () == depset::EK_USING) + if (dep->get_entity_kind () == depset::EK_TU_LOCAL) + flags |= cbf_internal; + else if (dep->get_entity_kind () == depset::EK_USING) { tree ovl = bound; bound = OVL_FUNCTION (bound); @@ -16752,7 +16807,13 @@ module_state::write_cluster (elf_out *to, depset *scc[], unsigned size, gcc_checking_assert (DECL_P (bound)); sec.i (flags); - sec.tree_node (bound); + if (flags & cbf_internal) + { + sec.tree_node (name_for_tu_local_decl (bound)); + write_location (sec, DECL_SOURCE_LOCATION (bound)); + } + else + sec.tree_node (bound); } /* Terminate the list. */ @@ -16761,6 +16822,7 @@ module_state::write_cluster (elf_out *to, depset *scc[], unsigned size, break; case depset::EK_USING: + case depset::EK_TU_LOCAL: dump () && dump ("Depset:%u %s %C:%N", ix, b->entity_kind_name (), TREE_CODE (decl), decl); break; @@ -16878,6 +16940,7 @@ module_state::read_cluster (unsigned snum) tree name = sec.tree_node (); tree decls = NULL_TREE; tree visible = NULL_TREE; + tree internal = NULL_TREE; tree type = NULL_TREE; bool dedup = false; bool global_p = is_header (); @@ -16893,6 +16956,23 @@ module_state::read_cluster (unsigned snum) if ((flags & cbf_hidden) && (flags & (cbf_using | cbf_export))) sec.set_overrun (); + if ((flags & cbf_internal) + && flags != cbf_internal) + sec.set_overrun (); + + if (flags & cbf_internal) + { + tree name = sec.tree_node (); + location_t loc = read_location (sec); + if (sec.get_overrun ()) + break; + + tree decl = make_node (TU_LOCAL_ENTITY); + TU_LOCAL_ENTITY_NAME (decl) = name; + TU_LOCAL_ENTITY_LOCATION (decl) = loc; + internal = tree_cons (NULL_TREE, decl, internal); + continue; + } tree decl = sec.tree_node (); if (sec.get_overrun ()) @@ -16987,7 +17067,7 @@ module_state::read_cluster (unsigned snum) } } - if (!decls) + if (!decls && !internal) sec.set_overrun (); if (sec.get_overrun ()) @@ -16996,7 +17076,7 @@ module_state::read_cluster (unsigned snum) dump () && dump ("Binding of %P", ns, name); if (!set_module_binding (ns, name, mod, global_p, is_module () || is_partition (), - decls, type, visible)) + decls, type, visible, internal)) sec.set_overrun (); } break; diff --git a/gcc/cp/name-lookup.cc b/gcc/cp/name-lookup.cc index 32af7a6aed94..b7530616ef06 100644 --- a/gcc/cp/name-lookup.cc +++ b/gcc/cp/name-lookup.cc @@ -353,6 +353,8 @@ append_imported_binding_slot (tree *slot, tree name, unsigned ix) tree new_vec = make_binding_vec (name, want); BINDING_VECTOR_NUM_CLUSTERS (new_vec) = have + 1; + BINDING_VECTOR_INTERNAL_DECLS (new_vec) + = BINDING_VECTOR_INTERNAL_DECLS (*slot); BINDING_VECTOR_GLOBAL_DUPS_P (new_vec) = BINDING_VECTOR_GLOBAL_DUPS_P (*slot); BINDING_VECTOR_PARTITION_DUPS_P (new_vec) @@ -1304,10 +1306,34 @@ name_lookup::adl_namespace_fns (tree scope, bitmap imports, } /* For lookups on the instantiation path we can see any - module-linkage declaration; otherwise we should only - see exported decls. */ + declarations visible at any point on the path; + otherwise we should only see exported decls. */ if (on_inst_path) - bind = STAT_DECL (bind); + { + /* If there are any internal functions visible, naming + them outside that module is ill-formed. */ + auto_diagnostic_group d; + if (MODULE_BINDING_INTERNAL_DECLS_P (bind) + && pedwarn (input_location, OPT_Wexternal_tu_local, + "overload set for argument-dependent " + "lookup of %<%D::%D%> in module %qs " + "contains TU-local entities", + scope, name, module_name (mod, false))) + { + tree *tu_locals + = BINDING_VECTOR_INTERNAL_DECLS (val)->get (mod); + gcc_checking_assert (tu_locals && *tu_locals); + for (tree t = *tu_locals; t; t = TREE_CHAIN (t)) + { + tree decl = TREE_VALUE (t); + inform (TU_LOCAL_ENTITY_LOCATION (decl), + "ignoring %qD declared here " + "with internal linkage", + TU_LOCAL_ENTITY_NAME (decl)); + } + } + bind = STAT_DECL (bind); + } else bind = STAT_VISIBLE (bind); } @@ -3700,7 +3726,11 @@ push_local_extern_decl_alias (tree decl) chain = &TREE_CHAIN (*chain); } - tree fn_type = build_function_type (TREE_TYPE (type), nargs); + bool no_named_args_stdarg + = TYPE_NO_NAMED_ARGS_STDARG_P (type); + tree fn_type + = build_function_type (TREE_TYPE (type), nargs, + no_named_args_stdarg); fn_type = apply_memfn_quals (fn_type, type_memfn_quals (type)); @@ -3856,7 +3886,7 @@ check_module_override (tree decl, tree mvec, bool hiding, } } - if (TREE_PUBLIC (scope) && TREE_PUBLIC (STRIP_TEMPLATE (decl)) + if (TREE_PUBLIC (scope) /* Namespaces are dealt with specially in make_namespace_finish. */ && !(TREE_CODE (decl) == NAMESPACE_DECL && !DECL_NAMESPACE_ALIAS (decl))) @@ -4427,18 +4457,21 @@ import_module_binding (tree ns, tree name, unsigned mod, unsigned snum) /* An import of MODULE is binding NS::NAME. There should be no existing binding for >= MODULE. GLOBAL_P indicates whether the bindings include global module entities. PARTITION_P is true if - it is part of the current module. VALUE and TYPE are the value - and type bindings. VISIBLE are the value bindings being exported. */ + it is part of the current module. VALUE and TYPE are the value + and type bindings. VISIBLE are the value bindings being exported. + INTERNAL is a TREE_LIST of any TU-local names visible for ADL. */ bool set_module_binding (tree ns, tree name, unsigned mod, bool global_p, - bool partition_p, tree value, tree type, tree visible) + bool partition_p, tree value, tree type, tree visible, + tree internal) { - if (!value) + if (!value && !internal) /* Bogus BMIs could give rise to nothing to bind. */ return false; - gcc_assert (TREE_CODE (value) != NAMESPACE_DECL + gcc_assert (!value + || TREE_CODE (value) != NAMESPACE_DECL || DECL_NAMESPACE_ALIAS (value)); gcc_checking_assert (mod); @@ -4450,7 +4483,7 @@ set_module_binding (tree ns, tree name, unsigned mod, bool global_p, return false; tree bind = value; - if (type || visible != bind || partition_p || global_p) + if (type || visible != bind || internal || partition_p || global_p) { bind = stat_hack (bind, type); STAT_VISIBLE (bind) = visible; @@ -4459,6 +4492,17 @@ set_module_binding (tree ns, tree name, unsigned mod, bool global_p, STAT_TYPE_VISIBLE_P (bind) = true; } + /* If this has internal declarations, track them for diagnostics. */ + if (internal) + { + if (!BINDING_VECTOR_INTERNAL_DECLS (*slot)) + BINDING_VECTOR_INTERNAL_DECLS (*slot) + = module_tree_map_t::create_ggc (); + bool existed = BINDING_VECTOR_INTERNAL_DECLS (*slot)->put (mod, internal); + gcc_checking_assert (!existed); + MODULE_BINDING_INTERNAL_DECLS_P (bind) = true; + } + /* Note if this is this-module and/or global binding. */ if (partition_p) MODULE_BINDING_PARTITION_P (bind) = true; @@ -8557,6 +8601,12 @@ pushtag (tree name, tree type, TAG_how how) } else { + /* If an import is going to provide a definition for this tag, + load it now so that we don't get confused later when processing + this tag's definition. */ + if (modules_p ()) + lazy_load_pendings (decl); + decl = do_pushdecl_with_scope (decl, b, /*hiding=*/(how == TAG_how::HIDDEN_FRIEND)); if (decl == error_mark_node) diff --git a/gcc/cp/name-lookup.h b/gcc/cp/name-lookup.h index 5b142e748999..3815b8c1c968 100644 --- a/gcc/cp/name-lookup.h +++ b/gcc/cp/name-lookup.h @@ -142,15 +142,23 @@ struct GTY(()) binding_cluster #define BINDING_VECTOR_CLUSTER(NODE,IX) \ (((tree_binding_vec *)BINDING_VECTOR_CHECK (NODE))->vec[IX]) +struct module_tree_map_traits + : simple_hashmap_traits, tree> {}; +typedef hash_map module_tree_map_t; + struct GTY(()) tree_binding_vec { struct tree_base base; tree name; + module_tree_map_t *internal_decls; binding_cluster GTY((length ("%h.base.u.dependence_info.base"))) vec[1]; }; /* The name of a module vector. */ #define BINDING_VECTOR_NAME(NODE) \ (((tree_binding_vec *)BINDING_VECTOR_CHECK (NODE))->name) +/* A collection of internal functions for ADL in this binding. */ +#define BINDING_VECTOR_INTERNAL_DECLS(NODE) \ + (((tree_binding_vec *)BINDING_VECTOR_CHECK (NODE))->internal_decls) /* tree_binding_vec does uses base.u.dependence_info.base field for length. It does not have lang_flag etc available! */ @@ -166,6 +174,11 @@ struct GTY(()) tree_binding_vec { #define BINDING_VECTOR_PARTITION_DUPS_P(NODE) \ (BINDING_VECTOR_CHECK (NODE)->base.volatile_flag) +/* True if the binding slot has internal-linkage functions that should + cause ADL to error. */ +#define MODULE_BINDING_INTERNAL_DECLS_P(NODE) \ + (OVERLOAD_CHECK (NODE)->base.private_flag) + /* These two flags indicate the provenence of the bindings on this particular vector slot. We can of course determine this from slot number, but that's a relatively expensive lookup. This avoids @@ -491,7 +504,8 @@ extern bool import_module_binding (tree ctx, tree name, unsigned mod, unsigned snum); extern bool set_module_binding (tree ctx, tree name, unsigned mod, bool global_p, bool partition_p, - tree value, tree type, tree visible); + tree value, tree type, tree visible, + tree internal); extern void add_module_namespace_decl (tree ns, tree decl); enum WMB_Flags diff --git a/gcc/cp/parser.cc b/gcc/cp/parser.cc index 8d1187f8cdae..b4000527bf30 100644 --- a/gcc/cp/parser.cc +++ b/gcc/cp/parser.cc @@ -2575,6 +2575,7 @@ static cp_expr cp_parser_expression (cp_parser *, cp_id_kind * = NULL, bool = false, bool = false, bool = false); static cp_expr cp_parser_constant_expression (cp_parser *, int = 0, bool * = NULL, bool = false); +static cp_expr cp_parser_builtin_c23_va_start (cp_parser *); static cp_expr cp_parser_builtin_offsetof (cp_parser *); static cp_expr cp_parser_lambda_expression @@ -6407,6 +6408,9 @@ cp_parser_primary_expression (cp_parser *parser, return build_x_va_arg (combined_loc, expression, type); } + case RID_C23_VA_START: + return cp_parser_builtin_c23_va_start (parser); + case RID_OFFSETOF: return cp_parser_builtin_offsetof (parser); @@ -11497,6 +11501,133 @@ cp_parser_constant_expression (cp_parser* parser, return expression; } +/* Parse __builtin_c23_va_start. + + c23-va-start-expression: + __builtin_c23_va_start ( assignment-expression ) + __builtin_c23_va_start ( assignment-expression , identifier ) + __builtin_c23_va_start ( assignment-expression , tokens[opt] ) + + The first form is the expected new C++26 form, the second if + identifier is the name of the last parameter before ... is meant + for backwards compatibility with C++23 and older. + The third form where LWG4388 requires all the preprocessing tokens + to be convertible to tokens and it can't contain unbalanced + parentheses is parsed with a warning and the tokens are just skipped. + This is because C++26 like C23 defines va_start macro as + va_start (ap, ...) and says second and later arguments to the macro + are discarded, yet we want to diagnose when people use something + which wasn't valid before C++26 and is not the single argument + va_start either. */ + +static cp_expr +cp_parser_builtin_c23_va_start (cp_parser *parser) +{ + location_t start_loc = cp_lexer_peek_token (parser->lexer)->location; + cp_lexer_consume_token (parser->lexer); + /* Look for the opening `('. */ + matching_parens parens; + parens.require_open (parser); + location_t arg_loc = cp_lexer_peek_token (parser->lexer)->location; + /* Now, parse the assignment-expression. */ + tree expression = cp_parser_assignment_expression (parser); + if (!cp_lexer_next_token_is (parser->lexer, CPP_CLOSE_PAREN)) + { + location_t cloc = cp_lexer_peek_token (parser->lexer)->location; + if (!cp_parser_require (parser, CPP_COMMA, RT_COMMA)) + { + cp_parser_skip_to_closing_parenthesis (parser, false, false, + /*consume_paren=*/ true); + return error_mark_node; + } + if (cp_lexer_next_token_is (parser->lexer, CPP_NAME) + && cp_lexer_nth_token_is (parser->lexer, 2, CPP_CLOSE_PAREN)) + { + tree name = cp_lexer_peek_token (parser->lexer)->u.value; + location_t nloc = cp_lexer_peek_token (parser->lexer)->location; + tree decl = lookup_name (name); + tree last_parm = tree_last (DECL_ARGUMENTS (current_function_decl)); + if (!last_parm || decl != last_parm) + warning_at (nloc, OPT_Wvarargs, "optional second parameter of " + "% not last named argument"); + else + { + /* __builtin_va_start parsing does mark the argument as used and + read, for -Wunused* purposes mark it the same. */ + TREE_USED (last_parm) = 1; + mark_exp_read (last_parm); + } + cp_lexer_consume_token (parser->lexer); + } + else + { + unsigned nesting_depth = 0; + location_t sloc = cp_lexer_peek_token (parser->lexer)->location; + location_t eloc = sloc; + + /* For va_start (ap,) the ) comes from stdarg.h. + Use location of , in that case, otherwise without -Wsystem-headers + nothing is reported. After all, the problematic token is the + comma in that case. */ + if (cp_lexer_next_token_is (parser->lexer, CPP_CLOSE_PAREN)) + sloc = eloc = cloc; + /* Not using cp_parser_skip_to_closing_parenthesis here, because + the tokens in second and further arguments don't have to be + fully balanced, only can't contain unbalanced parentheses. + So, va_start (ap, [[[[[[[[[{{{{{{{{{}]); + is valid C++ for which we want to warn, + #define X id); something ( + va_start (ap, X); + is IFNDR (not detectable unless the preprocessor special cases + va_start macro). */ + while (true) + { + cp_token *token = cp_lexer_peek_token (parser->lexer); + if (token->type == CPP_CLOSE_PAREN && !nesting_depth) + break; + + if (token->type == CPP_EOF) + break; + if (token->type == CPP_OPEN_PAREN) + ++nesting_depth; + else if (token->type == CPP_CLOSE_PAREN) + --nesting_depth; + else if (token->type == CPP_PRAGMA) + { + cp_parser_skip_to_pragma_eol (parser, token); + continue; + } + eloc = token->location; + cp_lexer_consume_token (parser->lexer); + } + if (sloc != eloc) + sloc = make_location (sloc, sloc, eloc); + warning_at (sloc, OPT_Wvarargs, + "% macro used with additional " + "arguments other than identifier of the " + "last named argument"); + } + } + /* Look for the closing `)'. */ + location_t finish_loc = cp_lexer_peek_token (parser->lexer)->location; + /* Construct a location of the form: + __builtin_c23_va_start (ap, arg) + ~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~ + with the caret at the first argument, ranging from the start + of the "__builtin_c23_va_start" token to the close paren. */ + location_t combined_loc = make_location (arg_loc, start_loc, finish_loc); + parens.require_close (parser); + tree fndecl = builtin_decl_explicit (BUILT_IN_VA_START); + releasing_vec args; + vec_safe_push (args, expression); + vec_safe_push (args, integer_zero_node); + tree ret = finish_call_expr (fndecl, &args, false, true, + tf_warning_or_error); + if (TREE_CODE (ret) == CALL_EXPR) + SET_EXPR_LOCATION (ret, combined_loc); + return cp_expr (ret, combined_loc); +} + /* Parse __builtin_offsetof. offsetof-expression: @@ -28124,6 +28255,7 @@ cp_parser_class_specifier (cp_parser* parser) bool in_switch_statement_p; bool saved_in_unbraced_linkage_specification_p; bool saved_in_unbraced_export_declaration_p; + bool saved_auto_is_implicit_function_template_parm_p; tree old_scope = NULL_TREE; tree scope = NULL_TREE; cp_token *closing_brace; @@ -28181,6 +28313,10 @@ cp_parser_class_specifier (cp_parser* parser) saved_in_unbraced_export_declaration_p = parser->in_unbraced_export_declaration_p; parser->in_unbraced_export_declaration_p = false; + saved_auto_is_implicit_function_template_parm_p + = parser->auto_is_implicit_function_template_parm_p; + parser->auto_is_implicit_function_template_parm_p = false; + /* 'this' from an enclosing non-static member function is unavailable. */ tree saved_ccp = current_class_ptr; tree saved_ccr = current_class_ref; @@ -28571,6 +28707,8 @@ cp_parser_class_specifier (cp_parser* parser) = saved_in_unbraced_linkage_specification_p; parser->in_unbraced_export_declaration_p = saved_in_unbraced_export_declaration_p; + parser->auto_is_implicit_function_template_parm_p + = saved_auto_is_implicit_function_template_parm_p; current_class_ptr = saved_ccp; current_class_ref = saved_ccr; @@ -31179,10 +31317,10 @@ cp_parser_asm_label_list (cp_parser* parser) if (TREE_CODE (label) == LABEL_DECL) { TREE_USED (label) = 1; - check_goto (label); name = build_string (IDENTIFIER_LENGTH (identifier), IDENTIFIER_POINTER (identifier)); labels = tree_cons (name, label, labels); + check_goto (&TREE_VALUE (labels)); } } /* If the next token is not a `,', then the list is diff --git a/gcc/cp/pt.cc b/gcc/cp/pt.cc index bd60d515653b..f61223f0baba 100644 --- a/gcc/cp/pt.cc +++ b/gcc/cp/pt.cc @@ -2654,8 +2654,7 @@ copy_default_args_to_explicit_spec (tree decl) new_spec_types); } else - new_type = build_function_type (TREE_TYPE (old_type), - new_spec_types); + new_type = cp_build_function_type (TREE_TYPE (old_type), new_spec_types); new_type = cp_build_type_attribute_variant (new_type, TYPE_ATTRIBUTES (old_type)); new_type = cxx_copy_lang_qualifiers (new_type, old_type); @@ -8928,8 +8927,11 @@ convert_template_argument (tree parm, orig_arg = TREE_OPERAND (orig_arg, 0); if (!uses_template_parms (t) - && !(force_conv ? uses_template_parms (orig_arg) - : type_dependent_expression_p (orig_arg))) + && !type_dependent_expression_p (orig_arg) + && !(force_conv + && !(same_type_ignoring_top_level_qualifiers_p + (TREE_TYPE (orig_arg), t)) + && value_dependent_expression_p (orig_arg))) /* We used to call digest_init here. However, digest_init will report errors, which we don't want when complain is zero. More importantly, digest_init will try too @@ -14776,7 +14778,7 @@ rebuild_function_or_method_type (tree t, tree args, tree return_type, tree new_type; if (TREE_CODE (t) == FUNCTION_TYPE) { - new_type = build_function_type (return_type, arg_types); + new_type = cp_build_function_type (return_type, arg_types); new_type = apply_memfn_quals (new_type, type_memfn_quals (t)); } else @@ -31097,7 +31099,7 @@ build_deduction_guide (tree type, tree ctor, tree outer_args, tsubst_flags_t com = copy_node (INNERMOST_TEMPLATE_PARMS (tparms)); } - tree fntype = build_function_type (type, fparms); + tree fntype = cp_build_function_type (type, fparms); tree ded_fn = build_lang_decl_loc (loc, FUNCTION_DECL, dguide_name (type), fntype); @@ -31529,7 +31531,8 @@ alias_ctad_tweaks (tree tmpl, tree uguides) tree fntype = TREE_TYPE (fprime); ret = lookup_template_class (TPARMS_PRIMARY_TEMPLATE (atparms), targs, in_decl, NULL_TREE, complain); - fntype = build_function_type (ret, TYPE_ARG_TYPES (fntype)); + fntype = build_function_type (ret, TYPE_ARG_TYPES (fntype), + TYPE_NO_NAMED_ARGS_STDARG_P (fntype)); TREE_TYPE (fprime) = fntype; if (TREE_CODE (fprime) == TEMPLATE_DECL) TREE_TYPE (DECL_TEMPLATE_RESULT (fprime)) = fntype; diff --git a/gcc/cp/semantics.cc b/gcc/cp/semantics.cc index 1937ace70b36..c818b7395392 100644 --- a/gcc/cp/semantics.cc +++ b/gcc/cp/semantics.cc @@ -919,10 +919,12 @@ finish_goto_stmt (tree destination) } } - check_goto (destination); - add_stmt (build_predict_expr (PRED_GOTO, NOT_TAKEN)); - return add_stmt (build_stmt (input_location, GOTO_EXPR, destination)); + + tree stmt = build_stmt (input_location, GOTO_EXPR, destination); + check_goto (&TREE_OPERAND (stmt, 0)); + + return add_stmt (stmt); } /* Returns true if T corresponds to an assignment operator expression. */ @@ -3325,6 +3327,13 @@ finish_call_expr (tree fn, vec **args, bool disallow_virtual, orig_fn = fn; + if (concept_check_p (fn)) + { + error_at (EXPR_LOC_OR_LOC (fn, input_location), + "cannot call a concept as a function"); + return error_mark_node; + } + if (processing_template_decl) { /* If FN is a local extern declaration (or set thereof) in a template, @@ -3454,12 +3463,6 @@ finish_call_expr (tree fn, vec **args, bool disallow_virtual, /*fn_p=*/NULL, complain); } - else if (concept_check_p (fn)) - { - error_at (EXPR_LOC_OR_LOC (fn, input_location), - "cannot call a concept as a function"); - return error_mark_node; - } else if (is_overloaded_fn (fn)) { /* If the function is an overloaded builtin, resolve it. */ diff --git a/gcc/cp/tree.cc b/gcc/cp/tree.cc index 03b58ff60059..814465c65292 100644 --- a/gcc/cp/tree.cc +++ b/gcc/cp/tree.cc @@ -1537,6 +1537,19 @@ cp_build_qualified_type (tree type, int type_quals, return result; } +/* Return a FUNCTION_TYPE for a function returning VALUE_TYPE + with ARG_TYPES arguments. Wrapper around build_function_type + which ensures TYPE_NO_NAMED_ARGS_STDARG_P is set if ARG_TYPES + is NULL for C++26. */ + +tree +cp_build_function_type (tree value_type, tree arg_types) +{ + return build_function_type (value_type, arg_types, + cxx_dialect >= cxx26 + && arg_types == NULL_TREE); +} + /* Return TYPE with const and volatile removed. */ tree @@ -1782,7 +1795,8 @@ strip_typedefs (tree t, bool *remove_attributes /* = NULL */, } else { - result = build_function_type (type, arg_types); + result = build_function_type (type, arg_types, + TYPE_NO_NAMED_ARGS_STDARG_P (t)); result = apply_memfn_quals (result, type_memfn_quals (t)); } @@ -5591,6 +5605,23 @@ handle_maybe_unused_attribute (tree *node, tree name, tree args, int flags, return ret; } +/* The C++26 [[indeterminate]] attribute. */ + +static tree +handle_indeterminate_attribute (tree *node, tree name, tree, int, + bool *no_add_attrs) +{ + if (TREE_CODE (*node) != PARM_DECL + && (!VAR_P (*node) || is_global_var (*node))) + { + pedwarn (input_location, OPT_Wattributes, + "%qE on declaration other than parameter or automatic variable", + name); + *no_add_attrs = true; + } + return NULL_TREE; +} + /* Table of valid C++ attributes. */ static const attribute_spec cxx_gnu_attributes[] = { @@ -5630,6 +5661,8 @@ static const attribute_spec std_attributes[] = handle_noreturn_attribute, attr_noreturn_exclusions }, { "carries_dependency", 0, 0, true, false, false, false, handle_carries_dependency_attribute, NULL }, + { "indeterminate", 0, 0, true, false, false, false, + handle_indeterminate_attribute, NULL }, { "pre", 0, -1, false, false, false, false, handle_contract_attribute, NULL }, { "post", 0, -1, false, false, false, false, diff --git a/gcc/cp/typeck.cc b/gcc/cp/typeck.cc index b876409d8474..dbadeb770858 100644 --- a/gcc/cp/typeck.cc +++ b/gcc/cp/typeck.cc @@ -1035,7 +1035,7 @@ merge_types (tree t1, tree t2) gcc_assert (quals == type_memfn_quals (t2)); gcc_assert (rqual == type_memfn_rqual (t2)); - tree rval = build_function_type (valtype, parms); + tree rval = cp_build_function_type (valtype, parms); rval = apply_memfn_quals (rval, quals); tree raises = merge_exception_specifiers (TYPE_RAISES_EXCEPTIONS (t1), TYPE_RAISES_EXCEPTIONS (t2)); @@ -1058,10 +1058,10 @@ merge_types (tree t1, tree t2) /* If this was a member function type, get back to the original type of type member function (i.e., without the class instance variable up front. */ - t1 = build_function_type (TREE_TYPE (t1), - TREE_CHAIN (TYPE_ARG_TYPES (t1))); - t2 = build_function_type (TREE_TYPE (t2), - TREE_CHAIN (TYPE_ARG_TYPES (t2))); + t1 = cp_build_function_type (TREE_TYPE (t1), + TREE_CHAIN (TYPE_ARG_TYPES (t1))); + t2 = cp_build_function_type (TREE_TYPE (t2), + TREE_CHAIN (TYPE_ARG_TYPES (t2))); t3 = merge_types (t1, t2); t3 = build_method_type_directly (basetype, TREE_TYPE (t3), TYPE_ARG_TYPES (t3)); @@ -1550,8 +1550,11 @@ structural_comptypes (tree t1, tree t2, int strict) return false; break; - case METHOD_TYPE: case FUNCTION_TYPE: + if (TYPE_NO_NAMED_ARGS_STDARG_P (t1) != TYPE_NO_NAMED_ARGS_STDARG_P (t2)) + return false; + /* FALLTHRU */ + case METHOD_TYPE: /* Exception specs and memfn_rquals were checked above. */ if (!same_type_p (TREE_TYPE (t1), TREE_TYPE (t2))) return false; diff --git a/gcc/ctfc.cc b/gcc/ctfc.cc index 221e62e8f45d..3fae414bf53e 100644 --- a/gcc/ctfc.cc +++ b/gcc/ctfc.cc @@ -107,6 +107,9 @@ ctf_dtu_d_union_selector (ctf_dtdef_ref ctftype) return CTF_DTU_D_ARGUMENTS; case CTF_K_SLICE: return CTF_DTU_D_SLICE; + case CTF_K_DECL_TAG: + case CTF_K_TYPE_TAG: + return CTF_DTU_D_TAG; default: /* The largest member as default. */ return CTF_DTU_D_ARRAY; @@ -445,6 +448,68 @@ ctf_add_reftype (ctf_container_ref ctfc, uint32_t flag, ctf_dtdef_ref ref, return dtd; } +ctf_dtdef_ref +ctf_add_type_tag (ctf_container_ref ctfc, uint32_t flag, const char *value, + ctf_dtdef_ref ref_dtd) +{ + ctf_dtdef_ref dtd; + /* Create a DTD for the tag, but do not place it in the regular types list; + CTF format does not (yet) encode tags. */ + dtd = ggc_cleared_alloc (); + + dtd->dtd_name = ctf_add_string (ctfc, value, &(dtd->dtd_data.ctti_name), + CTF_AUX_STRTAB); + /* A single DW_TAG_GNU_annotation DIE may be referenced by multiple DIEs, + e.g. when multiple distinct types specify the same type tag. We will + synthesize multiple CTF DTD records in that case, so we cannot tie them + all to the same key (the DW_TAG_GNU_annotation DIE) in ctfc_types. */ + dtd->dtd_key = NULL; + dtd->ref_type = ref_dtd; + dtd->dtd_data.ctti_info = CTF_TYPE_INFO (CTF_K_TYPE_TAG, flag, 0); + dtd->dtd_u.dtu_tag.ref_var = NULL; /* Not used for type tags. */ + dtd->dtd_u.dtu_tag.component_idx = 0; /* Not used for type tags. */ + + /* Insert tag directly into the tag list. Type ID will be assigned later. */ + vec_safe_push (ctfc->ctfc_tags, dtd); + + /* Keep ctfc_aux_strlen updated. */ + if ((value != NULL) && strcmp (value, "")) + ctfc->ctfc_aux_strlen += strlen (value) + 1; + + return dtd; +} + +ctf_dtdef_ref +ctf_add_decl_tag (ctf_container_ref ctfc, uint32_t flag, const char *value, + ctf_dtdef_ref ref_dtd, uint32_t comp_idx) +{ + ctf_dtdef_ref dtd; + /* Create a DTD for the tag, but do not place it in the regular types list; + ctf format does not (yet) encode tags. */ + dtd = ggc_cleared_alloc (); + + dtd->dtd_name = ctf_add_string (ctfc, value, &(dtd->dtd_data.ctti_name), + CTF_AUX_STRTAB); + /* A single DW_TAG_GNU_annotation DIE may be referenced by multiple DIEs, + e.g. when multiple distinct declarations specify the same decl tag. + We will synthesize multiple CTF DTD records in that case, so we cannot tie + them all to the same key (the DW_TAG_GNU_annotation DIE) in ctfc_types. */ + dtd->dtd_key = NULL; + dtd->ref_type = ref_dtd; + dtd->dtd_data.ctti_info = CTF_TYPE_INFO (CTF_K_DECL_TAG, flag, 0); + dtd->dtd_u.dtu_tag.ref_var = NULL; + dtd->dtd_u.dtu_tag.component_idx = comp_idx; + + /* Insert tag directly into the tag list. Type ID will be assigned later. */ + vec_safe_push (ctfc->ctfc_tags, dtd); + + /* Keep ctfc_aux_strlen updated. */ + if ((value != NULL) && strcmp (value, "")) + ctfc->ctfc_aux_strlen += strlen (value) + 1; + + return dtd; +} + ctf_dtdef_ref ctf_add_forward (ctf_container_ref ctfc, uint32_t flag, const char * name, uint32_t kind, dw_die_ref die) @@ -691,12 +756,12 @@ ctf_add_member_offset (ctf_container_ref ctfc, dw_die_ref sou, return 0; } -int +ctf_dvdef_ref ctf_add_variable (ctf_container_ref ctfc, const char * name, ctf_dtdef_ref ref, dw_die_ref die, unsigned int external_vis, dw_die_ref die_var_decl) { - ctf_dvdef_ref dvd, dvd_ignore; + ctf_dvdef_ref dvd = NULL, dvd_ignore; gcc_assert (name); @@ -732,7 +797,7 @@ ctf_add_variable (ctf_container_ref ctfc, const char * name, ctf_dtdef_ref ref, ctfc->ctfc_strlen += strlen (name) + 1; } - return 0; + return dvd; } int @@ -949,6 +1014,10 @@ new_ctf_container (void) tu_ctfc->ctfc_ignore_vars = hash_table::create_ggc (10); + vec_alloc (tu_ctfc->ctfc_tags, 100); + tu_ctfc->ctfc_type_tags_map + = hash_map::create_ggc (100); + return tu_ctfc; } @@ -1003,6 +1072,11 @@ ctfc_delete_container (ctf_container_ref ctfc) ctfc->ctfc_ignore_vars->empty (); ctfc->ctfc_ignore_vars = NULL; + ctfc->ctfc_tags = NULL; + + ctfc->ctfc_type_tags_map->empty (); + ctfc->ctfc_type_tags_map = NULL; + ctfc_delete_strtab (&ctfc->ctfc_strtable); ctfc_delete_strtab (&ctfc->ctfc_aux_strtable); if (ctfc->ctfc_vars_list) diff --git a/gcc/ctfc.h b/gcc/ctfc.h index 26f35f0ac6f9..a195804daa50 100644 --- a/gcc/ctfc.h +++ b/gcc/ctfc.h @@ -52,6 +52,10 @@ struct ctf_dtdef; typedef struct ctf_dtdef ctf_dtdef_t; typedef ctf_dtdef_t * ctf_dtdef_ref; +struct ctf_dvdef; +typedef struct ctf_dvdef ctf_dvdef_t; +typedef ctf_dvdef_t * ctf_dvdef_ref; + /* CTF string table element (list node). */ typedef struct GTY ((chain_next ("%h.cts_next"))) ctf_string @@ -155,6 +159,16 @@ typedef struct GTY (()) ctf_func_arg #define ctf_farg_list_next(elem) ((ctf_func_arg_t *)((elem)->farg_next)) +/* Declaration Tag. + May be used to annotate struct/union members, variable declarations, + function declarations, and function arguments. */ + +typedef struct GTY (()) ctf_decl_tag +{ + uint32_t component_idx; /* Index of component to which tag applies. */ + ctf_dvdef_ref ref_var; /* Non-null iff this tag applies to a variable. */ +} ctf_decl_tag_t; + /* Type definition for CTF generation. */ struct GTY ((for_user)) ctf_dtdef @@ -184,6 +198,8 @@ struct GTY ((for_user)) ctf_dtdef ctf_func_arg_t * GTY ((tag ("CTF_DTU_D_ARGUMENTS"))) dtu_argv; /* slice. */ ctf_sliceinfo_t GTY ((tag ("CTF_DTU_D_SLICE"))) dtu_slice; + /* decl tag. */ + ctf_decl_tag_t GTY ((tag ("CTF_DTU_D_TAG"))) dtu_tag; } dtd_u; }; @@ -201,9 +217,6 @@ struct GTY ((for_user)) ctf_dvdef ctf_id_t dvd_id; /* ID of this variable. Only used for BTF. */ }; -typedef struct ctf_dvdef ctf_dvdef_t; -typedef ctf_dvdef_t * ctf_dvdef_ref; - /* Location information for CTF Types and CTF Variables. */ typedef struct GTY (()) ctf_srcloc @@ -222,7 +235,8 @@ enum ctf_dtu_d_union_enum { CTF_DTU_D_ARRAY, CTF_DTU_D_ENCODING, CTF_DTU_D_ARGUMENTS, - CTF_DTU_D_SLICE + CTF_DTU_D_SLICE, + CTF_DTU_D_TAG, }; enum ctf_dtu_d_union_enum @@ -287,6 +301,17 @@ typedef struct GTY (()) ctf_container /* CTF variables to be ignored. */ hash_table * GTY (()) ctfc_ignore_vars; + /* BTF type and decl tags. Not yet represented in CTF. These tags also + uniquely have a one-to-many relation with DIEs, meaning a single DIE + may translate to multiple CTF/BTF records. For both of these reasons, + they cannot be stored in the regular types table. */ + vec * GTY (()) ctfc_tags; + /* Type tags logically form part of the type chain similar to cv-quals. + Therefore references to types need to know if the referred-to type has + any type tags, and if so to refer to the outermost type tag. This map + maps a type to the outermost type tag created for it, if any. */ + hash_map * GTY (()) ctfc_type_tags_map; + /* CTF string table. */ ctf_strtable_t ctfc_strtable; /* Auxilliary string table. At this time, used for keeping func arg names @@ -440,15 +465,19 @@ extern ctf_dtdef_ref ctf_add_function (ctf_container_ref, uint32_t, dw_die_ref, bool, int); extern ctf_dtdef_ref ctf_add_sou (ctf_container_ref, uint32_t, const char *, uint32_t, unsigned HOST_WIDE_INT, dw_die_ref); - +extern ctf_dtdef_ref ctf_add_type_tag (ctf_container_ref, uint32_t, + const char *, ctf_dtdef_ref); +extern ctf_dtdef_ref ctf_add_decl_tag (ctf_container_ref, uint32_t, + const char *, ctf_dtdef_ref, uint32_t); extern int ctf_add_enumerator (ctf_container_ref, ctf_dtdef_ref, const char *, HOST_WIDE_INT, dw_die_ref); extern int ctf_add_member_offset (ctf_container_ref, dw_die_ref, const char *, ctf_dtdef_ref, uint64_t); extern int ctf_add_function_arg (ctf_container_ref, dw_die_ref, const char *, ctf_dtdef_ref); -extern int ctf_add_variable (ctf_container_ref, const char *, ctf_dtdef_ref, - dw_die_ref, unsigned int, dw_die_ref); +extern ctf_dvdef_ref ctf_add_variable (ctf_container_ref, const char *, + ctf_dtdef_ref, dw_die_ref, unsigned int, + dw_die_ref); extern ctf_dtdef_ref ctf_lookup_tree_type (ctf_container_ref, const tree); diff --git a/gcc/diagnostic-global-context.cc b/gcc/diagnostic-global-context.cc index 30fc1906790c..94be0fed81e3 100644 --- a/gcc/diagnostic-global-context.cc +++ b/gcc/diagnostic-global-context.cc @@ -22,6 +22,7 @@ along with GCC; see the file COPYING3. If not see /* This file implements the parts of the language independent aspect of diagnostic messages that implicitly use global_dc. */ +#define INCLUDE_VECTOR #include "config.h" #include "system.h" #include "coretypes.h" diff --git a/gcc/diagnostics/buffering.cc b/gcc/diagnostics/buffering.cc index 019c9927c6d2..420a9cfbeea3 100644 --- a/gcc/diagnostics/buffering.cc +++ b/gcc/diagnostics/buffering.cc @@ -18,6 +18,7 @@ You should have received a copy of the GNU General Public License along with GCC; see the file COPYING3. If not see . */ +#define INCLUDE_VECTOR #include "config.h" #include "system.h" #include "coretypes.h" diff --git a/gcc/diagnostics/context.cc b/gcc/diagnostics/context.cc index cd14977d5425..dd6bbdb29cd7 100644 --- a/gcc/diagnostics/context.cc +++ b/gcc/diagnostics/context.cc @@ -361,6 +361,9 @@ context::finish () dump (m_logger->get_stream (), m_logger->get_indent ()); } + for (auto iter : m_sinks) + iter->finalize_extensions (); + /* We might be handling a fatal error. Close any active diagnostic groups, which may trigger flushing sinks. */ @@ -1860,6 +1863,20 @@ sink::dump (FILE *out, int indent) const { dumping::emit_heading (out, indent, "printer"); m_printer->dump (out, indent + 2); + + dumping::emit_heading (out, indent, "extensions"); + if (m_extensions.empty ()) + dumping::emit_none (out, indent + 2); + else + for (auto &ext : m_extensions) + ext->dump (out, indent + 2); +} + +void +sink::finalize_extensions () +{ + for (auto &ext : m_extensions) + ext->finalize (); } void diff --git a/gcc/diagnostics/macro-unwinding.cc b/gcc/diagnostics/macro-unwinding.cc index fb4ee65f4244..4d7133963ad9 100644 --- a/gcc/diagnostics/macro-unwinding.cc +++ b/gcc/diagnostics/macro-unwinding.cc @@ -17,6 +17,7 @@ You should have received a copy of the GNU General Public License along with GCC; see the file COPYING3. If not see . */ +#define INCLUDE_VECTOR #include "config.h" #include "system.h" #include "coretypes.h" diff --git a/gcc/diagnostics/output-spec.cc b/gcc/diagnostics/output-spec.cc index 8ec638a83bf1..dfde7f0bdf30 100644 --- a/gcc/diagnostics/output-spec.cc +++ b/gcc/diagnostics/output-spec.cc @@ -42,13 +42,24 @@ along with GCC; see the file COPYING3. If not see #include "diagnostics/output-spec.h" /* A namespace for handling the DSL of the arguments of - -fdiagnostics-add-output= and -fdiagnostics-set-output=. */ + -fdiagnostics-add-output= and -fdiagnostics-set-output= + which look like: + SCHEME[:KEY=VALUE(,KEY=VALUE)*] + We call this an output spec. */ namespace diagnostics { namespace output_spec { +class scheme_handler; + /* Decls. */ +/* A class for the result of the first stage of parsing an output spec, + where values are represented as untyped strings. + The scheme might not exist. + The keys have not been validated against the scheme. + The values have not been validated against their keys. */ + struct scheme_name_and_params { std::string m_scheme_name; @@ -62,139 +73,160 @@ struct scheme_name_and_params class output_factory { public: - class scheme_handler - { - public: - scheme_handler (std::string scheme_name) - : m_scheme_name (std::move (scheme_name)) - {} - virtual ~scheme_handler () {} - - const std::string &get_scheme_name () const { return m_scheme_name; } - - virtual std::unique_ptr - make_sink (const context &ctxt, - diagnostics::context &dc, - const char *unparsed_arg, - const scheme_name_and_params &parsed_arg) const = 0; - - protected: - bool - parse_bool_value (const context &ctxt, - const char *unparsed_arg, - const std::string &key, - const std::string &value, - bool &out) const - { - if (value == "yes") - { - out = true; - return true; - } - else if (value == "no") - { - out = false; - return true; - } - else - { - ctxt.report_error - ("%<%s%s%>:" - " unexpected value %qs for key %qs; expected %qs or %qs", - ctxt.get_option_name (), unparsed_arg, - value.c_str (), - key.c_str (), - "yes", "no"); + output_factory (diagnostics::context &dc); - return false; - } + std::unique_ptr + make_sink (const context &ctxt, + diagnostics::context &dc, + const scheme_name_and_params &scheme_and_kvs); + + scheme_handler *get_scheme_handler (const std::string &scheme_name); + +private: + std::vector> m_scheme_handlers; +}; + +enum key_handler::result +key_handler::parse_bool_value (const context &ctxt, + const std::string &key, + const std::string &value, + bool &out) const +{ + if (value == "yes") + { + out = true; + return result::ok; } - template - bool - parse_enum_value (const context &ctxt, - const char *unparsed_arg, - const std::string &key, - const std::string &value, - const std::array, NumValues> &value_names, - EnumType &out) const + else if (value == "no") + { + out = false; + return result::ok; + } + else { - for (auto &iter : value_names) - if (value == iter.first) - { - out = iter.second; - return true; - } - - auto_vec known_values; - for (auto iter : value_names) - known_values.safe_push (iter.first); - pp_markup::comma_separated_quoted_strings e (known_values); ctxt.report_error ("%<%s%s%>:" - " unexpected value %qs for key %qs; known values: %e", - ctxt.get_option_name (), unparsed_arg, + " unexpected value %qs for key %qs; expected %qs or %qs", + ctxt.get_option_name (), ctxt.get_unparsed_spec (), value.c_str (), key.c_str (), - &e); - return false; + "yes", "no"); + return result::malformed_value; } +} - private: - const std::string m_scheme_name; - }; +template +key_handler::result +key_handler::parse_enum_value (const context &ctxt, + const std::string &key, + const std::string &value, + const std::array, + NumValues> &value_names, + EnumType &out) const +{ + for (auto &iter : value_names) + if (value == iter.first) + { + out = iter.second; + return result::ok; + } + + auto_vec known_values; + for (auto iter : value_names) + known_values.safe_push (iter.first); + pp_markup::comma_separated_quoted_strings e (known_values); + ctxt.report_error + ("%<%s%s%>:" + " unexpected value %qs for key %qs; known values: %e", + ctxt.get_option_name (), ctxt.get_unparsed_spec (), + value.c_str (), + key.c_str (), + &e); + return result::malformed_value; +} - output_factory (); +class text_scheme_handler : public scheme_handler +{ +public: + text_scheme_handler (diagnostics::context &dc) + : scheme_handler ("text"), + m_show_color (pp_show_color (dc.get_reference_printer ())), + m_show_nesting (true), + m_show_locations_in_nesting (true), + m_show_levels (false) + { + } std::unique_ptr make_sink (const context &ctxt, - diagnostics::context &dc, - const char *unparsed_arg, - const scheme_name_and_params &parsed_arg); + diagnostics::context &dc) final override; + + enum result + maybe_handle_kv (const context &ctxt, + const std::string &key, + const std::string &value) final override; - const scheme_handler *get_scheme_handler (const std::string &scheme_name); + void + get_keys (auto_vec &out) const final override; private: - std::vector> m_scheme_handlers; + bool m_show_color; + bool m_show_nesting; + bool m_show_locations_in_nesting; + bool m_show_levels; }; -class text_scheme_handler : public output_factory::scheme_handler +class sarif_scheme_handler : public scheme_handler { public: - text_scheme_handler () : scheme_handler ("text") {} + sarif_scheme_handler () + : scheme_handler ("sarif"), + m_serialization_kind (sarif_serialization_kind::json) + { + } std::unique_ptr make_sink (const context &ctxt, - diagnostics::context &dc, - const char *unparsed_arg, - const scheme_name_and_params &parsed_arg) const final override; -}; + diagnostics::context &dc) final override; -class sarif_scheme_handler : public output_factory::scheme_handler -{ -public: - sarif_scheme_handler () : scheme_handler ("sarif") {} + enum result + maybe_handle_kv (const context &ctxt, + const std::string &key, + const std::string &value) final override; - std::unique_ptr - make_sink (const context &ctxt, - diagnostics::context &dc, - const char *unparsed_arg, - const scheme_name_and_params &parsed_arg) const final override; + void + get_keys (auto_vec &out) const final override; private: static std::unique_ptr make_sarif_serialization_object (enum sarif_serialization_kind); + + label_text m_filename; + enum sarif_serialization_kind m_serialization_kind; + sarif_generation_options m_generation_opts; }; -class html_scheme_handler : public output_factory::scheme_handler +class html_scheme_handler : public scheme_handler { public: html_scheme_handler () : scheme_handler ("experimental-html") {} std::unique_ptr make_sink (const context &ctxt, - diagnostics::context &dc, - const char *unparsed_arg, - const scheme_name_and_params &parsed_arg) const final override; + diagnostics::context &dc) final override; + + enum result + maybe_handle_kv (const context &ctxt, + const std::string &key, + const std::string &value) final override; + + void + get_keys (auto_vec &out) const final override; + +private: + label_text m_filename; + html_generation_options m_html_gen_opts; }; /* struct context. */ @@ -209,22 +241,43 @@ context::report_error (const char *gmsgid, ...) const } void -context::report_unknown_key (const char *unparsed_arg, - const std::string &key, - const std::string &scheme_name, - auto_vec &known_keys) const +context::report_unknown_key (const std::string &key, + const scheme_handler &scheme) const { - pp_markup::comma_separated_quoted_strings e (known_keys); + auto_vec scheme_key_vec; + scheme.get_keys (scheme_key_vec); + + pp_markup::comma_separated_quoted_strings e_scheme_keys (scheme_key_vec); + + const char *scheme_name = scheme.get_scheme_name ().c_str (); + + if (m_client_keys) + { + auto_vec client_key_vec; + m_client_keys->get_keys (client_key_vec); + if (!client_key_vec.is_empty ()) + { + pp_markup::comma_separated_quoted_strings e_client_keys + (client_key_vec); + report_error + ("%<%s%s%>:" + " unknown key %qs for output scheme %qs;" + " scheme keys: %e; client keys: %e", + get_option_name (), get_unparsed_spec (), + key.c_str (), scheme_name, + &e_scheme_keys, &e_client_keys); + } + } + report_error ("%<%s%s%>:" - " unknown key %qs for format %qs; known keys: %e", - get_option_name (), unparsed_arg, - key.c_str (), scheme_name.c_str (), &e); + " unknown key %qs for output scheme %qs; scheme keys: %e", + get_option_name (), get_unparsed_spec (), + key.c_str (), scheme_name, &e_scheme_keys); } void -context::report_missing_key (const char *unparsed_arg, - const std::string &key, +context::report_missing_key (const std::string &key, const std::string &scheme_name, const char *metavar) const { @@ -232,7 +285,7 @@ context::report_missing_key (const char *unparsed_arg, ("%<%s%s%>:" " missing required key %qs for format %qs;" " try %<%s%s:%s=%s%>", - get_option_name (), unparsed_arg, + get_option_name (), get_unparsed_spec (), key.c_str (), scheme_name.c_str (), get_option_name (), scheme_name.c_str (), key.c_str (), metavar); } @@ -250,12 +303,13 @@ context::open_output_file (label_text &&filename) const } static std::unique_ptr -parse (const context &ctxt, const char *unparsed_arg) +parse (const context &ctxt) { scheme_name_and_params result; - if (const char *const colon = strchr (unparsed_arg, ':')) + const char *const unparsed_spec = ctxt.get_unparsed_spec (); + if (const char *const colon = strchr (unparsed_spec, ':')) { - result.m_scheme_name = std::string (unparsed_arg, colon - unparsed_arg); + result.m_scheme_name = std::string (unparsed_spec, colon - unparsed_spec); /* Expect zero of more of KEY=VALUE,KEY=VALUE, etc .*/ const char *iter = colon + 1; const char *last_separator = ":"; @@ -271,7 +325,7 @@ parse (const context &ctxt, const char *unparsed_arg) " expected KEY=VALUE-style parameter for format %qs" " after %qs;" " got %qs", - ctxt.get_option_name (), unparsed_arg, + ctxt.get_option_name (), ctxt.get_unparsed_spec (), result.m_scheme_name.c_str (), last_separator, iter); @@ -295,34 +349,33 @@ parse (const context &ctxt, const char *unparsed_arg) } } else - result.m_scheme_name = unparsed_arg; + result.m_scheme_name = unparsed_spec; return std::make_unique (std::move (result)); } std::unique_ptr -context::parse_and_make_sink (const char *unparsed_arg, - diagnostics::context &dc) +context::parse_and_make_sink (diagnostics::context &dc) { - auto parsed_arg = parse (*this, unparsed_arg); + auto parsed_arg = parse (*this); if (!parsed_arg) return nullptr; - output_factory factory; - return factory.make_sink (*this, dc, unparsed_arg, *parsed_arg); + output_factory factory (dc); + return factory.make_sink (*this, dc, *parsed_arg); } -/* class output_factory::scheme_handler. */ +/* class scheme_handler. */ /* class output_factory. */ -output_factory::output_factory () +output_factory::output_factory (diagnostics::context &dc) { - m_scheme_handlers.push_back (std::make_unique ()); + m_scheme_handlers.push_back (std::make_unique (dc)); m_scheme_handlers.push_back (std::make_unique ()); m_scheme_handlers.push_back (std::make_unique ()); } -const output_factory::scheme_handler * +scheme_handler * output_factory::get_scheme_handler (const std::string &scheme_name) { for (auto &iter : m_scheme_handlers) @@ -334,10 +387,9 @@ output_factory::get_scheme_handler (const std::string &scheme_name) std::unique_ptr output_factory::make_sink (const context &ctxt, diagnostics::context &dc, - const char *unparsed_arg, - const scheme_name_and_params &parsed_arg) + const scheme_name_and_params &scheme_and_kvs) { - auto scheme_handler = get_scheme_handler (parsed_arg.m_scheme_name); + auto scheme_handler = get_scheme_handler (scheme_and_kvs.m_scheme_name); if (!scheme_handler) { auto_vec strings; @@ -346,155 +398,115 @@ output_factory::make_sink (const context &ctxt, pp_markup::comma_separated_quoted_strings e (strings); ctxt.report_error ("%<%s%s%>:" " unrecognized format %qs; known formats: %e", - ctxt.get_option_name (), unparsed_arg, - parsed_arg.m_scheme_name.c_str (), &e); + ctxt.get_option_name (), ctxt.get_unparsed_spec (), + scheme_and_kvs.m_scheme_name.c_str (), &e); return nullptr; } - return scheme_handler->make_sink (ctxt, dc, unparsed_arg, parsed_arg); -} - -/* class text_scheme_handler : public output_factory::scheme_handler. */ - -std::unique_ptr -text_scheme_handler::make_sink (const context &ctxt, - diagnostics::context &dc, - const char *unparsed_arg, - const scheme_name_and_params &parsed_arg) const -{ - bool show_color = pp_show_color (dc.get_reference_printer ()); - bool show_nesting = true; - bool show_locations_in_nesting = true; - bool show_levels = false; - for (auto& iter : parsed_arg.m_kvs) + /* Parse key/value pairs. */ + for (auto& iter : scheme_and_kvs.m_kvs) { const std::string &key = iter.first; const std::string &value = iter.second; - if (key == "color") - { - if (!parse_bool_value (ctxt, unparsed_arg, key, value, show_color)) - return nullptr; - continue; - } - if (key == "show-nesting") - { - if (!parse_bool_value (ctxt, unparsed_arg, key, value, - show_nesting)) - return nullptr; - continue; - } - if (key == "show-nesting-locations") - { - if (!parse_bool_value (ctxt, unparsed_arg, key, value, - show_locations_in_nesting)) - return nullptr; - continue; - } - if (key == "show-nesting-levels") + if (!ctxt.handle_kv (key, value, *scheme_handler)) + return nullptr; + } + + return scheme_handler->make_sink (ctxt, dc); +} + +bool +context::handle_kv (const std::string &key, + const std::string &value, + scheme_handler &scheme) const +{ + auto result = scheme.maybe_handle_kv (*this, key, value); + switch (result) + { + default: gcc_unreachable (); + case key_handler::result::ok: + return true; + case key_handler::result::malformed_value: + return false; + case key_handler::result::unrecognized: + /* Key recognized by the scheme; try the client keys. */ + if (m_client_keys) { - if (!parse_bool_value (ctxt, unparsed_arg, key, value, show_levels)) - return nullptr; - continue; + result = m_client_keys->maybe_handle_kv (*this, key, value); + switch (result) + { + default: gcc_unreachable (); + case key_handler::result::ok: + return true; + case key_handler::result::malformed_value: + return false; + case key_handler::result::unrecognized: + break; + } } - - /* Key not found. */ - auto_vec known_keys; - known_keys.safe_push ("color"); - known_keys.safe_push ("show-nesting"); - known_keys.safe_push ("show-nesting-locations"); - known_keys.safe_push ("show-nesting-levels"); - ctxt.report_unknown_key (unparsed_arg, key, get_scheme_name (), - known_keys); - return nullptr; + report_unknown_key (key, scheme); + return false; } +} + +/* class text_scheme_handler : public scheme_handler. */ +std::unique_ptr +text_scheme_handler::make_sink (const context &, + diagnostics::context &dc) +{ auto sink = std::make_unique (dc); - sink->set_show_nesting (show_nesting); - sink->set_show_locations_in_nesting (show_locations_in_nesting); - sink->set_show_nesting_levels (show_levels); + sink->set_show_nesting (m_show_nesting); + sink->set_show_locations_in_nesting (m_show_locations_in_nesting); + sink->set_show_nesting_levels (m_show_levels); + pp_show_color (sink->get_printer ()) = m_show_color; return sink; } -/* class sarif_scheme_handler : public output_factory::scheme_handler. */ +enum key_handler::result +text_scheme_handler::maybe_handle_kv (const context &ctxt, + const std::string &key, + const std::string &value) +{ + if (key == "color") + return parse_bool_value (ctxt, key, value, m_show_color); + if (key == "show-nesting") + return parse_bool_value (ctxt, key, value, m_show_nesting); + if (key == "show-nesting-locations") + return parse_bool_value (ctxt, key, value, + m_show_locations_in_nesting); + if (key == "show-nesting-levels") + return parse_bool_value (ctxt, key, value, m_show_levels); + + return result::unrecognized; +} -std::unique_ptr -sarif_scheme_handler::make_sink (const context &ctxt, - diagnostics::context &dc, - const char *unparsed_arg, - const scheme_name_and_params &parsed_arg) const -{ - label_text filename; - enum sarif_serialization_kind serialization_kind - = sarif_serialization_kind::json; - sarif_generation_options sarif_gen_opts; - for (auto& iter : parsed_arg.m_kvs) - { - const std::string &key = iter.first; - const std::string &value = iter.second; - if (key == "file") - { - filename = label_text::take (xstrdup (value.c_str ())); - continue; - } - if (key == "serialization") - { - static const std::array, - (size_t)sarif_serialization_kind::num_values> value_names - {{{"json", sarif_serialization_kind::json}}}; - - if (!parse_enum_value - (ctxt, unparsed_arg, - key, value, - value_names, - serialization_kind)) - return nullptr; - continue; - } - if (key == "version") - { - static const std::array, - (size_t)sarif_version::num_versions> value_names - {{{"2.1", sarif_version::v2_1_0}, - {"2.2-prerelease", sarif_version::v2_2_prerelease_2024_08_08}}}; - - if (!parse_enum_value - (ctxt, unparsed_arg, - key, value, - value_names, - sarif_gen_opts.m_version)) - return nullptr; - continue; - } - if (key == "state-graphs") - { - if (!parse_bool_value (ctxt, unparsed_arg, key, value, - sarif_gen_opts.m_state_graph)) - return nullptr; - continue; - } +void +text_scheme_handler::get_keys (auto_vec &out) const +{ + out.safe_push ("color"); + out.safe_push ("show-nesting"); + out.safe_push ("show-nesting-locations"); + out.safe_push ("show-nesting-levels"); +} - /* Key not found. */ - auto_vec known_keys; - known_keys.safe_push ("file"); - known_keys.safe_push ("serialization"); - known_keys.safe_push ("state-graphs"); - known_keys.safe_push ("version"); - ctxt.report_unknown_key (unparsed_arg, key, get_scheme_name (), - known_keys); - return nullptr; - } +/* class sarif_scheme_handler : public scheme_handler. */ +std::unique_ptr +sarif_scheme_handler:: +make_sink (const context &ctxt, + diagnostics::context &dc) +{ output_file output_file_; - if (filename.get ()) - output_file_ = ctxt.open_output_file (std::move (filename)); + if (m_filename.get ()) + output_file_ = ctxt.open_output_file (std::move (m_filename)); else // Default filename { const char *basename = ctxt.get_base_filename (); if (!basename) { - ctxt.report_missing_key (unparsed_arg, - "file", + ctxt.report_missing_key ("file", get_scheme_name (), "FILENAME"); return nullptr; @@ -503,21 +515,72 @@ sarif_scheme_handler::make_sink (const context &ctxt, = open_sarif_output_file (dc, ctxt.get_affected_location_mgr (), basename, - serialization_kind); + m_serialization_kind); } if (!output_file_) return nullptr; - auto serialization_obj = make_sarif_serialization_object (serialization_kind); + auto serialization_obj + = make_sarif_serialization_object (m_serialization_kind); auto sink = make_sarif_sink (dc, *ctxt.get_affected_location_mgr (), std::move (serialization_obj), - sarif_gen_opts, + m_generation_opts, std::move (output_file_)); + return sink; } +enum key_handler::result +sarif_scheme_handler::maybe_handle_kv (const context &ctxt, + const std::string &key, + const std::string &value) +{ + if (key == "file") + { + m_filename = label_text::take (xstrdup (value.c_str ())); + return result::ok; + } + if (key == "serialization") + { + static const std::array, + (size_t)sarif_serialization_kind::num_values> value_names + {{{"json", sarif_serialization_kind::json}}}; + return parse_enum_value + (ctxt, + key, value, + value_names, + m_serialization_kind); + } + if (key == "version") + { + static const std::array, + (size_t)sarif_version::num_versions> value_names + {{{"2.1", sarif_version::v2_1_0}, + {"2.2-prerelease", sarif_version::v2_2_prerelease_2024_08_08}}}; + return parse_enum_value + (ctxt, + key, value, + value_names, + m_generation_opts.m_version); + } + if (key == "state-graphs") + return parse_bool_value (ctxt, key, value, + m_generation_opts.m_state_graph); + + return result::unrecognized; +} + +void +sarif_scheme_handler::get_keys (auto_vec &out) const +{ + out.safe_push ("file"); + out.safe_push ("serialization"); + out.safe_push ("state-graphs"); + out.safe_push ("version"); +} + std::unique_ptr sarif_scheme_handler:: make_sarif_serialization_object (enum sarif_serialization_kind kind) @@ -532,85 +595,23 @@ make_sarif_serialization_object (enum sarif_serialization_kind kind) } } -/* class html_scheme_handler : public output_factory::scheme_handler. */ +/* class html_scheme_handler : public scheme_handler. */ std::unique_ptr -html_scheme_handler::make_sink (const context &ctxt, - diagnostics::context &dc, - const char *unparsed_arg, - const scheme_name_and_params &parsed_arg) const -{ - label_text filename; - html_generation_options html_gen_opts; - for (auto& iter : parsed_arg.m_kvs) - { - const std::string &key = iter.first; - const std::string &value = iter.second; - if (key == "css") - { - if (!parse_bool_value (ctxt, unparsed_arg, key, value, - html_gen_opts.m_css)) - return nullptr; - continue; - } - if (key == "file") - { - filename = label_text::take (xstrdup (value.c_str ())); - continue; - } - if (key == "javascript") - { - if (!parse_bool_value (ctxt, unparsed_arg, key, value, - html_gen_opts.m_javascript)) - return nullptr; - continue; - } - if (key == "show-state-diagrams") - { - if (!parse_bool_value (ctxt, unparsed_arg, key, value, - html_gen_opts.m_show_state_diagrams)) - return nullptr; - continue; - } - if (key == "show-state-diagrams-dot-src") - { - if (!parse_bool_value (ctxt, unparsed_arg, key, value, - html_gen_opts.m_show_state_diagrams_dot_src)) - return nullptr; - continue; - } - if (key == "show-state-diagrams-sarif") - { - if (!parse_bool_value (ctxt, unparsed_arg, key, value, - html_gen_opts.m_show_state_diagrams_sarif)) - return nullptr; - continue; - } - - /* Key not found. */ - auto_vec known_keys; - known_keys.safe_push ("css"); - known_keys.safe_push ("file"); - known_keys.safe_push ("javascript"); - known_keys.safe_push ("show-state-diagrams"); - known_keys.safe_push ("show-state-diagram-dot-src"); - known_keys.safe_push ("show-state-diagram-sarif"); - ctxt.report_unknown_key (unparsed_arg, key, get_scheme_name (), - known_keys); - return nullptr; - } - +html_scheme_handler:: +make_sink (const context &ctxt, + diagnostics::context &dc) +{ output_file output_file_; - if (filename.get ()) - output_file_ = ctxt.open_output_file (std::move (filename)); + if (m_filename.get ()) + output_file_ = ctxt.open_output_file (std::move (m_filename)); else // Default filename { const char *basename = ctxt.get_base_filename (); if (!basename) { - ctxt.report_missing_key (unparsed_arg, - "file", + ctxt.report_missing_key ("file", get_scheme_name (), "FILENAME"); return nullptr; @@ -626,11 +627,49 @@ html_scheme_handler::make_sink (const context &ctxt, auto sink = make_html_sink (dc, *ctxt.get_affected_location_mgr (), - html_gen_opts, + m_html_gen_opts, std::move (output_file_)); return sink; } +enum key_handler::result +html_scheme_handler::maybe_handle_kv (const context &ctxt, + const std::string &key, + const std::string &value) +{ + if (key == "css") + return parse_bool_value (ctxt, key, value, m_html_gen_opts.m_css); + if (key == "file") + { + m_filename = label_text::take (xstrdup (value.c_str ())); + return result::ok; + } + if (key == "javascript") + return parse_bool_value (ctxt, key, value, + m_html_gen_opts.m_javascript); + if (key == "show-state-diagrams") + return parse_bool_value (ctxt, key, value, + m_html_gen_opts.m_show_state_diagrams); + if (key == "show-state-diagrams-dot-src") + return parse_bool_value (ctxt, key, value, + m_html_gen_opts.m_show_state_diagrams_dot_src); + if (key == "show-state-diagrams-sarif") + return parse_bool_value (ctxt, key, value, + m_html_gen_opts.m_show_state_diagrams_sarif); + return result::unrecognized; +} + +void +html_scheme_handler::get_keys (auto_vec &out) const +{ + out.safe_push ("css"); + out.safe_push ("file"); + out.safe_push ("javascript"); + out.safe_push ("show-state-diagrams"); + out.safe_push ("show-state-diagrams-dot-src"); + out.safe_push ("show-state-diagrams-sarif"); +} + } // namespace output_spec #if CHECKING_P @@ -665,15 +704,19 @@ struct parser_test class test_spec_context : public diagnostics::output_spec::dc_spec_context { public: - test_spec_context (diagnostics::context &dc, + test_spec_context (const char *option_name, + const char *unparsed_spec, + diagnostics::output_spec::key_handler *client_keys, line_maps *location_mgr, - location_t loc, - const char *option_name) - : dc_spec_context (dc, + diagnostics::context &dc, + location_t loc) + : dc_spec_context (option_name, + unparsed_spec, + client_keys, location_mgr, + dc, location_mgr, - loc, - option_name) + loc) { } @@ -684,18 +727,30 @@ struct parser_test } }; - parser_test () + parser_test (const char *unparsed_spec, + diagnostics::output_spec::key_handler *client_keys = nullptr) : m_dc (), - m_ctxt (m_dc, line_table, UNKNOWN_LOCATION, "-fOPTION="), + m_ctxt ("-fOPTION=", + unparsed_spec, + client_keys, + line_table, + m_dc, + UNKNOWN_LOCATION), m_fmt (m_dc.get_sink (0)) { pp_buffer (m_fmt.get_printer ())->m_flush_p = false; } std::unique_ptr - parse (const char *unparsed_arg) + parse () { - return diagnostics::output_spec::parse (m_ctxt, unparsed_arg); + return diagnostics::output_spec::parse (m_ctxt); + } + + std::unique_ptr + parse_and_make_sink () + { + return m_ctxt.parse_and_make_sink (m_dc); } bool execution_failed_p () const @@ -720,13 +775,10 @@ struct parser_test static void test_output_arg_parsing () { - auto_fix_quotes fix_quotes; - auto_fix_progname fix_progname; - /* Minimal correct example. */ { - parser_test pt; - auto result = pt.parse ("foo"); + parser_test pt ("foo"); + auto result = pt.parse (); ASSERT_EQ (result->m_scheme_name, "foo"); ASSERT_EQ (result->m_kvs.size (), 0); ASSERT_FALSE (pt.execution_failed_p ()); @@ -734,8 +786,8 @@ test_output_arg_parsing () /* Stray trailing colon with no key/value pairs. */ { - parser_test pt; - auto result = pt.parse ("foo:"); + parser_test pt ("foo:"); + auto result = pt.parse (); ASSERT_EQ (result, nullptr); ASSERT_TRUE (pt.execution_failed_p ()); ASSERT_STREQ (pt.get_diagnostic_text (), @@ -747,8 +799,8 @@ test_output_arg_parsing () /* No key before '='. */ { - parser_test pt; - auto result = pt.parse ("foo:="); + parser_test pt ("foo:="); + auto result = pt.parse (); ASSERT_EQ (result, nullptr); ASSERT_TRUE (pt.execution_failed_p ()); ASSERT_STREQ (pt.get_diagnostic_text (), @@ -760,8 +812,8 @@ test_output_arg_parsing () /* No value for key. */ { - parser_test pt; - auto result = pt.parse ("foo:key,"); + parser_test pt ("foo:key,"); + auto result = pt.parse (); ASSERT_EQ (result, nullptr); ASSERT_TRUE (pt.execution_failed_p ()); ASSERT_STREQ (pt.get_diagnostic_text (), @@ -773,8 +825,8 @@ test_output_arg_parsing () /* Correct example, with one key/value pair. */ { - parser_test pt; - auto result = pt.parse ("foo:key=value"); + parser_test pt ("foo:key=value"); + auto result = pt.parse (); ASSERT_EQ (result->m_scheme_name, "foo"); ASSERT_EQ (result->m_kvs.size (), 1); ASSERT_EQ (result->m_kvs[0].first, "key"); @@ -784,8 +836,8 @@ test_output_arg_parsing () /* Stray trailing comma. */ { - parser_test pt; - auto result = pt.parse ("foo:key=value,"); + parser_test pt ("foo:key=value,"); + auto result = pt.parse (); ASSERT_EQ (result, nullptr); ASSERT_TRUE (pt.execution_failed_p ()); ASSERT_STREQ (pt.get_diagnostic_text (), @@ -797,8 +849,8 @@ test_output_arg_parsing () /* Correct example, with two key/value pairs. */ { - parser_test pt; - auto result = pt.parse ("foo:color=red,shape=circle"); + parser_test pt ("foo:color=red,shape=circle"); + auto result = pt.parse (); ASSERT_EQ (result->m_scheme_name, "foo"); ASSERT_EQ (result->m_kvs.size (), 2); ASSERT_EQ (result->m_kvs[0].first, "color"); @@ -809,12 +861,59 @@ test_output_arg_parsing () } } +class test_key_handler : public diagnostics::output_spec::key_handler +{ +public: + test_key_handler () + : m_verbose (false), + m_strict (false) + { + } + + enum result + maybe_handle_kv (const diagnostics::output_spec::context &ctxt, + const std::string &key, + const std::string &value) final override + { + if (key == "verbose") + return parse_bool_value (ctxt, key, value, m_verbose); + if (key == "strict") + return parse_bool_value (ctxt, key, value, m_strict); + return result::unrecognized; + } + + void + get_keys (auto_vec &out_known_keys) const final override + { + out_known_keys.safe_push ("verbose"); + out_known_keys.safe_push ("strict"); + } + + bool m_verbose; + bool m_strict; +}; + +static void +test_client_arg_parsing () +{ + test_key_handler client_keys; + parser_test pt ("text:verbose=yes,strict=no", &client_keys); + auto result = pt.parse_and_make_sink (); + ASSERT_TRUE (result.get ()); + ASSERT_TRUE (client_keys.m_verbose); + ASSERT_FALSE (client_keys.m_strict); +} + /* Run all of the selftests within this file. */ void output_spec_cc_tests () { + auto_fix_quotes fix_quotes; + auto_fix_progname fix_progname; + test_output_arg_parsing (); + test_client_arg_parsing (); } } // namespace diagnostics::selftest diff --git a/gcc/diagnostics/output-spec.h b/gcc/diagnostics/output-spec.h index c84d237de499..bfc42c0c2de7 100644 --- a/gcc/diagnostics/output-spec.h +++ b/gcc/diagnostics/output-spec.h @@ -27,29 +27,84 @@ along with GCC; see the file COPYING3. If not see namespace diagnostics { namespace output_spec { +class context; + +/* An abstract base class for schemes, and for client-specific keys. */ + +class key_handler +{ +public: + enum class result + { + ok, + unrecognized, + malformed_value + }; + + /* Attempt to decode KEY and VALUE, storing the decoded value. */ + virtual enum result + maybe_handle_kv (const context &ctxt, + const std::string &key, + const std::string &value) = 0; + + virtual void + get_keys (auto_vec &out) const = 0; + + enum result + parse_bool_value (const context &ctxt, + const std::string &key, + const std::string &value, + bool &out) const; + + template + enum result + parse_enum_value (const context &ctxt, + const std::string &key, + const std::string &value, + const std::array, + NumValues> &value_names, + EnumType &out) const; +}; + +/* Abstract subclass for handling particular schemes and their keys. */ + +class scheme_handler : public key_handler +{ +public: + scheme_handler (std::string scheme_name) + : m_scheme_name (std::move (scheme_name)) + {} + virtual ~scheme_handler () {} + + const std::string &get_scheme_name () const { return m_scheme_name; } + + virtual std::unique_ptr + make_sink (const context &ctxt, + diagnostics::context &dc) = 0; + +private: + const std::string m_scheme_name; +}; + /* An abstract base class for handling the DSL of -fdiagnostics-add-output= and -fdiagnostics-set-output=. */ class context { - public: +public: std::unique_ptr - parse_and_make_sink (const char *, - diagnostics::context &dc); + parse_and_make_sink (diagnostics::context &dc); void report_error (const char *gmsgid, ...) const ATTRIBUTE_GCC_DIAG(2,3); void - report_unknown_key (const char *unparsed_arg, - const std::string &key, - const std::string &scheme_name, - auto_vec &known_keys) const; + report_unknown_key (const std::string &key, + const scheme_handler &scheme) const; void - report_missing_key (const char *unparsed_arg, - const std::string &key, + report_missing_key (const std::string &key, const std::string &scheme_name, const char *metavar) const; @@ -59,6 +114,9 @@ class context const char * get_option_name () const { return m_option_name; } + const char * + get_unparsed_spec () const { return m_unparsed_spec; } + line_maps * get_affected_location_mgr () const { return m_affected_location_mgr; } @@ -70,15 +128,32 @@ class context virtual const char * get_base_filename () const = 0; + bool + handle_kv (const std::string &key, + const std::string &value, + scheme_handler &scheme) const; + protected: context (const char *option_name, + const char *unparsed_spec, + key_handler *client_keys, line_maps *affected_location_mgr) : m_option_name (option_name), + m_unparsed_spec (unparsed_spec), + m_client_keys (client_keys), m_affected_location_mgr (affected_location_mgr) { } + // e.g. "-fdiagnostics-add-output=" const char *m_option_name; + + // e.g. "scheme:foo=bar,key=value" + const char *m_unparsed_spec; + + // Optional borrowed ptr to client-specific keys + key_handler *m_client_keys; + line_maps *m_affected_location_mgr; }; @@ -87,12 +162,17 @@ class context struct dc_spec_context : public output_spec::context { public: - dc_spec_context (diagnostics::context &dc, + dc_spec_context (const char *option_name, + const char *unparsed_spec, + key_handler *client_keys, line_maps *affected_location_mgr, + diagnostics::context &dc, line_maps *control_location_mgr, - location_t loc, - const char *option_name) - : context (option_name, affected_location_mgr), + location_t loc) + : context (option_name, + unparsed_spec, + client_keys, + affected_location_mgr), m_dc (dc), m_control_location_mgr (control_location_mgr), m_loc (loc) diff --git a/gcc/diagnostics/selftest-context.cc b/gcc/diagnostics/selftest-context.cc index 2eced4d3cd85..aafa90ac457d 100644 --- a/gcc/diagnostics/selftest-context.cc +++ b/gcc/diagnostics/selftest-context.cc @@ -17,6 +17,7 @@ You should have received a copy of the GNU General Public License along with GCC; see the file COPYING3. If not see . */ +#define INCLUDE_VECTOR #include "config.h" #include "system.h" #include "coretypes.h" diff --git a/gcc/diagnostics/sink.h b/gcc/diagnostics/sink.h index aaa6c50ab214..a2094e9f5a56 100644 --- a/gcc/diagnostics/sink.h +++ b/gcc/diagnostics/sink.h @@ -34,6 +34,27 @@ class per_sink_buffer; class sink { public: + /* Abstract base class for adding additional functionality to a sink + (e.g. via a plugin). */ + class extension + { + public: + virtual ~extension () {} + virtual void dump (FILE *out, int indent) const = 0; + virtual void finalize () {} + + sink &get_sink () const { return m_sink; } + + protected: + extension (sink &sink_) + : m_sink (sink_) + { + } + + private: + sink &m_sink; + }; + virtual ~sink () {} virtual text_sink *dyn_cast_text_sink () { return nullptr; } @@ -92,6 +113,15 @@ class sink logging::logger *get_logger () { return m_context.get_logger (); } + void + add_extension (std::unique_ptr sink_ext) + { + m_extensions.push_back (std::move (sink_ext)); + } + + void + finalize_extensions (); + protected: sink (context &dc) : m_context (dc), @@ -101,6 +131,9 @@ class sink protected: context &m_context; std::unique_ptr m_printer; + +private: + std::vector> m_extensions; }; extern void diff --git a/gcc/doc/extend.texi b/gcc/doc/extend.texi index 384211f8b6dc..a12855de6a6e 100644 --- a/gcc/doc/extend.texi +++ b/gcc/doc/extend.texi @@ -1976,6 +1976,13 @@ declares that @code{my_alloc1} returns 16-byte aligned pointers and that @code{my_alloc2} returns a pointer whose value modulo 32 is equal to 8. +@cindex @code{btf_decl_tag} function attribute +@item btf_decl_tag +The @code{btf_decl_tag} attribute may be used to associate function +declarations with arbitrary strings by recording those strings in DWARF +and/or BTF information in the same way that it is used for variables. +See @ref{Common Variable Attributes}. + @cindex @code{cold} function attribute @item cold The @code{cold} attribute on functions is used to inform the compiler that @@ -7172,6 +7179,41 @@ is given by the product of arguments 1 and 2, and similarly, that @code{malloc_ptr}, like the standard C function @code{malloc}, returns an object whose size is given by argument 1 to the function. +@cindex @code{btf_decl_tag} variable attribute +@item btf_decl_tag (@var{argument}) +The @code{btf_decl_tag} attribute may be used to associate variable +declarations, struct or union member declarations, function +declarations, and function parameter declarations with arbitrary strings. +These strings are not interpreted by the compiler in any way, and have +no effect on code generation. Instead, these user-provided strings +are recorded in DWARF (via @code{DW_AT_GNU_annotation} and +@code{DW_TAG_GNU_annotation} extensions) and BTF information (via +@code{BTF_KIND_DECL_TAG} records), and associated to the attributed +declaration. If neither DWARF nor BTF information is generated, the +attribute has no effect. + +The argument is treated as a null-terminated sequence of zero or more +non-null bytes. Wide character strings are not supported. + +The attribute may be supplied multiple times for a single declaration, +in which case each distinct argument string will be recorded in a +separate DIE or BTF record, each associated to the declaration. For +a single declaration with multiple @code{btf_decl_tag} attributes, +the order of the @code{DW_TAG_GNU_annotation} DIEs produced is not +guaranteed to maintain the order of attributes in the source code. + +For example: + +@smallexample +int *foo __attribute__ ((btf_decl_tag ("__percpu"))); +@end smallexample + +@noindent +when compiled with @option{-gbtf} results in an additional +@code{BTF_KIND_DECL_TAG} BTF record to be emitted in the BTF info, +associating the string @samp{__percpu} with the @code{BTF_KIND_VAR} +record for the variable @code{foo}. + @cindex @code{cleanup} variable attribute @item cleanup (@var{cleanup_function}) The @code{cleanup} attribute runs a function when the variable goes @@ -8361,6 +8403,43 @@ is given by the product of arguments 1 and 2, and that @code{malloc_type}, like the standard C function @code{malloc}, returns an object whose size is given by argument 1 to the function. +@cindex @code{btf_type_tag} type attribute +@item btf_type_tag (@var{argument}) +The @code{btf_type_tag} attribute may be used to associate (to ``tag'') +particular types with arbitrary string annotations. These annotations +are recorded in debugging info by supported debug formats, currently +DWARF (via @code{DW_AT_GNU_annotation} and @code{DW_TAG_GNU_annotation} +extensions) and BTF (via @code{BTF_KIND_TYPE_TAG} records). These +annotation strings are not interpreted by the compiler in any way, and +have no effect on code generation. If neither DWARF nor BTF +information is generated, the attribute has no effect. + +The argument is treated as a null-terminated sequence of zero or more +non-null bytes. Wide character strings are not supported. + +The attribute may be supplied multiple times for a single type, in +which case each distinct argument string will be recorded in a +separate DIE or BTF record, each associated to the type. For a single +type with multiple @code{btf_type_tag} attributes, the order of the +@code{DW_TAG_GNU_annotation} DIEs produced is not guaranteed to +maintain the order of attributes in the source code. + +For example the following code: + +@smallexample +int * __attribute__ ((btf_type_tag ("__user"))) foo; +@end smallexample + +@noindent +when compiled with @option{-gbtf} results in an additional +@code{BTF_KIND_TYPE_TAG} BTF record to be emitted in the BTF info, +associating the string @samp{__user} with the normal @code{BTF_KIND_PTR} +record for the pointer-to-integer type used in the declaration. + +Note that the BTF format currently only has a representation for type +tags associated with pointer types. Type tags on non-pointer types +may be silently skipped when generating BTF. + @cindex @code{copy} type attribute @item copy @itemx copy (@var{expression}) diff --git a/gcc/doc/install.texi b/gcc/doc/install.texi index fc771448274a..576b7eead5ec 100644 --- a/gcc/doc/install.texi +++ b/gcc/doc/install.texi @@ -3125,6 +3125,13 @@ Again, if the native compiler miscompiles the stage1 compiler, you may need to work around this by avoiding non-working parts of the stage1 compiler. Use @code{STAGE1_TFLAGS} to this end. +You can use @code{STAGE1_CFLAGS} to set the flags passed to the host compiler +when building the stage1 compiler. The default is to pass @option{-g}, but when +the host compiler is GCC, this results in a non-optimized build of the stage1 +compiler. You can speed up the bootstrap by using @samp{STAGE1_CFLAGS='-O2'} +at the increased risk of miscompiling the stage1 compiler when the host +compiler is buggy. + If you used the flag @option{--enable-languages=@dots{}} to restrict the compilers to be built, only those you've actually enabled will be built. This will of course only build those runtime libraries, for diff --git a/gcc/doc/invoke.texi b/gcc/doc/invoke.texi index 99607a09b89c..faa49afad818 100644 --- a/gcc/doc/invoke.texi +++ b/gcc/doc/invoke.texi @@ -272,7 +272,7 @@ in the following sections. -Woverloaded-virtual -Wno-pmf-conversions -Wself-move -Wsign-promo -Wsized-deallocation -Wsuggest-final-methods -Wsuggest-final-types -Wsuggest-override -Wno-template-body --Wno-template-id-cdtor -Wtemplate-names-tu-local +-Wno-template-id-cdtor -Wtemplate-names-tu-local -Wno-external-tu-local -Wno-terminate -Wno-vexing-parse -Wvirtual-inheritance -Wno-virtual-move-assign -Wvolatile} @@ -731,7 +731,7 @@ Objective-C and Objective-C++ Dialects}. @item Linker Options @xref{Link Options,,Options for Linking}. -@gccoptlist{@var{object-file-name} -fuse-ld=@var{linker} -l@var{library} +@gccoptlist{@var{object-file-name} -flink-libatomic -fuse-ld=@var{linker} -l@var{library} -nostartfiles -nodefaultlibs -nolibc -nostdlib -nostdlib++ -e @var{entry} --entry=@var{entry} -pie -pthread -r -rdynamic @@ -4759,6 +4759,32 @@ The presence of an explicit instantiation silences the warning. This flag is enabled by @option{-Wextra}. +@opindex Wexternal-tu-local +@opindex Wno-external-tu-local +@item -Wno-external-tu-local +Warn when naming a TU-local entity outside of the translation unit it +was declared in. Such declarations will be ignored during name lookup. +This can occur when performing ADL from a template declared in the same +TU as the internal function: + +@smallexample +export module M; +template void foo(T t) @{ + bar(t); +@} +struct S @{@} s; +static void bar(S) @{@} // internal linkage + +// instantiating foo(s) from outside this TU can see ::bar, +// but naming it there is ill-formed. +@end smallexample + +This can be worked around by making @code{bar} attached to the global +module, using @code{extern "C++"}. + +This warning is enabled by default, and is upgraded to an error by +@option{-pedantic-errors}. + @opindex Wterminate @opindex Wno-terminate @item -Wno-terminate @r{(C++ and Objective-C++ only)} @@ -8349,7 +8375,10 @@ known to read the object.) Annotating the function with attribute the object and avoids the warning (@pxref{Common Function Attributes}). These warnings are only possible in optimizing compilation, because otherwise -GCC does not keep track of the state of variables. +GCC does not keep track of the state of variables. On the other hand, +@option{-Wmaybe-uninitialized} is known not to warn in many situations +(false negatives) due to optimizations taking advantage of undefinedness +of uninitialized uses like constant propagation. These warnings are made optional because GCC may not be able to determine when the code is correct in spite of appearing to have an error. Here is one @@ -8435,7 +8464,7 @@ It warns about code that might break the strict aliasing rules that the compiler is using for optimization. The warning does not catch all cases, but does attempt to catch the more common pitfalls. It is included in @option{-Wall}. -It is equivalent to @option{-Wstrict-aliasing=3} +It is equivalent to @option{-Wstrict-aliasing=3}. @opindex Wstrict-aliasing=n @item -Wstrict-aliasing=n @@ -14725,27 +14754,25 @@ and @option{-fauto-profile}. @opindex ftrivial-auto-var-init @item -ftrivial-auto-var-init=@var{choice} -Initialize automatic variables with either a pattern or with zeroes to increase -the security and predictability of a program by preventing uninitialized memory -disclosure and use. +Initialize automatic variables or temporary objects with either a pattern or with +zeroes to increase the security and predictability of a program by preventing +uninitialized memory disclosure and use. GCC still considers an automatic variable that doesn't have an explicit initializer as uninitialized, @option{-Wuninitialized} and @option{-Wanalyzer-use-of-uninitialized-value} will still report -warning messages on such automatic variables and the compiler will -perform optimization as if the variable were uninitialized. +warning messages on such automatic variables or temporary objects and the +compiler will perform optimization as if the variable were uninitialized. With this option, GCC will also initialize any padding of automatic variables -that have structure or union types to zeroes. -However, the current implementation cannot initialize automatic variables that -are declared between the controlling expression and the first case of a -@code{switch} statement. Using @option{-Wtrivial-auto-var-init} to report all -such cases. +or temporary objects that have structure or union types to zeroes. +However, the current implementation cannot initialize automatic variables +whose initialization is bypassed through @code{switch} or @code{goto} +statement. Using @option{-Wtrivial-auto-var-init} to report all such cases. The three values of @var{choice} are: @itemize @bullet @item @samp{uninitialized} doesn't initialize any automatic variables. -This is C and C++'s default. @item @samp{pattern} Initialize automatic variables with values which will likely @@ -14759,7 +14786,10 @@ The values used for pattern initialization might be changed in the future. @samp{zero} Initialize automatic variables with zeroes. @end itemize -The default is @samp{uninitialized}. +The default is @samp{uninitialized} except for C++26, in which case +if @option{-ftrivial-auto-var-init=} is not specified at all automatic +variables or temporary objects are zero initialized, but zero initialization +of padding bits does not happen. Note that the initializer values, whether @samp{zero} or @samp{pattern}, refer to data representation (in memory or machine registers), rather @@ -14772,7 +14802,7 @@ with the bit patterns @code{0x00} or @code{0xFE}, depending on @var{choice}, whether or not these representations stand for values in that range, and even if they do, the interpretation of the value held by the variable will depend on the bias. A @samp{hardbool} variable that -uses say @code{0X5A} and @code{0xA5} for @code{false} and @code{true}, +uses say @code{0x5A} and @code{0xA5} for @code{false} and @code{true}, respectively, will trap with either @samp{choice} of trivial initializer, i.e., @samp{zero} initialization will not convert to the representation for @code{false}, even if it would for a @code{static} @@ -14783,7 +14813,8 @@ are initialized with @code{false} (zero), even when @samp{pattern} is requested. You can control this behavior for a specific variable by using the variable -attribute @code{uninitialized} (@pxref{Variable Attributes}). +attribute @code{uninitialized} standard attribute (@pxref{Variable Attributes}) +or the C++26 @code{[[indeterminate]]}. @opindex fvect-cost-model @item -fvect-cost-model=@var{model} @@ -15018,10 +15049,11 @@ int f() @{ @end smallexample The practice of reading from a different union member than the one most recently written to (called ``type-punning'') is common. Even with -@option{-fstrict-aliasing}, type-punning is allowed, provided the memory -is accessed through the union type. So, the code above works as -expected. @xref{Structures unions enumerations and bit-fields -implementation}. However, this code might not: +@option{-fstrict-aliasing}, type-punning is allowed in C, provided the memory +is accessed through the union type. In ISO C++, type-punning through a union +type is undefined behavior, but GCC supports it as an extension. So, the code +above works as expected. @xref{Structures unions enumerations and +bit-fields implementation}. However, this code might not: @smallexample int f() @{ union a_union t; @@ -16245,6 +16277,11 @@ In each case, the @var{value} is an integer. The following choices of @var{name} are recognized for all targets: @table @gcctabopt +@item auto-profile-bbs +If non-zero and used together with @option{-fauto-profile}, the auto-profile +will be used to determine basic block profile. If zero, then only function +level profile will be read. + @item phiopt-factor-max-stmts-live When factoring statements out of if/then/else, this is the max # of statements after the defining statement to be allow to extend the lifetime of a name @@ -19433,6 +19470,12 @@ If any of these options is used, then the linker is not run, and object file names should not be used as arguments. @xref{Overall Options}. +@opindex flink-libatomic +@item -flink-libatomic +Enable linking of libatomic if it's supported by target, and is enabled by +default. The negative form @option{-fno-link-libatomic} can be used to +explicitly disable linking of libatomic. + @opindex flinker-output @item -flinker-output=@var{type} This option controls code generation of the link-time optimizer. By diff --git a/gcc/doc/passes.texi b/gcc/doc/passes.texi index 282fc1a6a12b..f6db15d5a5fc 100644 --- a/gcc/doc/passes.texi +++ b/gcc/doc/passes.texi @@ -735,12 +735,6 @@ cannot be used for branch prediction (though adapting it would not be difficult). The pass is located in @file{tree-vrp.cc} and is described by @code{pass_vrp}. -@item Folding built-in functions - -This pass simplifies built-in functions, as applicable, with constant -arguments or with inferable string lengths. It is located in -@file{tree-ssa-ccp.cc} and is described by @code{pass_fold_builtins}. - @item Split critical edges This pass identifies critical edges and inserts empty basic blocks diff --git a/gcc/doc/riscv-mtune.texi b/gcc/doc/riscv-mtune.texi index a2a4d3e77dbb..63a01db67726 100644 --- a/gcc/doc/riscv-mtune.texi +++ b/gcc/doc/riscv-mtune.texi @@ -50,6 +50,8 @@ particular CPU name. Permissible values for this option are: @samp{xiangshan-kunminghu}, +@samp{arc-v-rmx-100-series}, + @samp{generic-ooo}, @samp{size}, diff --git a/gcc/doc/tm.texi b/gcc/doc/tm.texi index 218bf3abbde8..930003725378 100644 --- a/gcc/doc/tm.texi +++ b/gcc/doc/tm.texi @@ -56,6 +56,7 @@ through the macros defined in the @file{.h} file. * C++ ABI:: Controlling C++ ABI changes. * D Language and ABI:: Controlling D ABI changes. * Rust Language and ABI:: Controlling Rust ABI changes. +* JIT Language and ABI:: JIT ABI parameters * Named Address Spaces:: Adding support for named address spaces * Misc:: Everything else. @end menu @@ -126,6 +127,14 @@ If targets initialize @code{targetrustm} themselves, they should set @code{target_has_targetrustm=yes} in @file{config.gcc}; otherwise a default definition is used. +Similarly, there is a @code{targetjitm} variable for hooks that are +specific to the jit front end, documented as ``JIT Target Hook''. +This is declared in @file{jit/jit-target.h}, the initializer +@code{TARGETJITM_INITIALIZER} in @file{jit/jit-target-def.h}. If targets +initialize @code{targetjitm} themselves, they should set +@code{target_has_targetjitm=yes} in @file{config.gcc}; otherwise a default +definition is used. + @node Driver @section Controlling the Compilation Driver, @file{gcc} @cindex driver @@ -6388,14 +6397,14 @@ return type of the vectorized function shall be of vector type @var{vec_type_out} and the argument types should be @var{vec_type_in}. @end deftypefn -@deftypefn {Target Hook} bool TARGET_VECTORIZE_SUPPORT_VECTOR_MISALIGNMENT (machine_mode @var{mode}, const_tree @var{type}, int @var{misalignment}, bool @var{is_packed}, bool @var{is_gather_scatter}) +@deftypefn {Target Hook} bool TARGET_VECTORIZE_SUPPORT_VECTOR_MISALIGNMENT (machine_mode @var{mode}, int @var{misalignment}, bool @var{is_packed}, bool @var{is_gather_scatter}) This hook should return true if the target supports misaligned vector store/load of a specific factor denoted in the @var{misalignment} -parameter. The vector store/load should be of machine mode @var{mode} and -the elements in the vectors should be of type @var{type}. The -@var{is_packed} parameter is true if the misalignment is unknown and the -memory access is defined in a packed struct. @var{is_gather_scatter} is true -if the load/store is a gather or scatter. +parameter. The vector store/load should be of machine mode @var{mode}. +The @var{is_packed} parameter is true if the original memory access is +not naturally aligned. @var{is_gather_scatter} is true if the +load/store is a gather or scatter. In that case misalignment +denotes the misalignment of @var{mode}'s element mode. @end deftypefn @deftypefn {Target Hook} machine_mode TARGET_VECTORIZE_PREFERRED_SIMD_MODE (scalar_mode @var{mode}) @@ -10925,6 +10934,16 @@ the function declaration to hold a pointer to a target-specific @code{struct cl_target_option} structure. @end deftypefn +@defmac TARGET_HAS_FMV_TARGET_ATTRIBUTE +Define this macro to zero to use @code{target_version} attributes for function +multiversioning (FMV) rather than @code{target} attributes. + +Targets using @code{target_version} attributes will also have +"target_version" FMV semantics, which allow for FMV sets defined across TU's +and using a combination of @code{target_version} and @code{target_clones} +attributed declarations in the definition of a FMV function set. +@end defmac + @defmac TARGET_CLONES_ATTR_SEPARATOR Define this char-typed macro to select a character that separates each target specific attributes from the @code{attribute(target_clones("..."))} @@ -10983,6 +11002,25 @@ This target hook returns @code{true} if the target/target-version strings @var{fn1} and @var{fn2} imply the same function version. @end deftypefn +@deftypefn {Target Hook} bool TARGET_OPTION_FUNCTIONS_B_RESOLVABLE_FROM_A (tree @var{decl_a}, tree @var{decl_v}, tree @var{base}) +@var{decl_b} is a function declaration with a function multi-versioning +(FMV) attribute; this attribute is either @code{target} or +@code{target_version}, depending on @code{TARGET_HAS_FMV_TARGET_ATTRIBUTE}. +@var{decl_a} is a function declaration that may or may not have an FMV +attribute. + +Return true if we have enough information to determine that the +requirements of @var{decl_b}'s FMV attribute are met whenever @var{decl_a} +is executed, given that the target supports all features required by +function declaration @var{base}. + +The default implementation just checks whether @var{decl_a} has the same +FMV attribute as @var{decl_b}. This is conservatively correct, +but ports can do better by taking the relationships between architecture +features into account. For example, on AArch64, @code{sve} is present +whenever @code{sve2} is present. +@end deftypefn + @deftypefn {Target Hook} bool TARGET_CAN_INLINE_P (tree @var{caller}, tree @var{callee}) This target hook returns @code{false} if the @var{caller} function cannot inline @var{callee}, based on target specific information. By @@ -11367,6 +11405,17 @@ Similar to @code{TARGET_RUST_CPU_INFO}, but is used for configuration info relating to the target operating system. @end deftypefn +@node JIT Language and ABI +@section JIT ABI parameters +@cindex parameters, jit abi + +@deftypefn {JIT Target Hook} void TARGET_JIT_REGISTER_CPU_TARGET_INFO (void) +Register all target information keys relating to the target CPU using the +function @code{jit_add_target_info}, which takes a key and a value. The +keys added by this hook are made available at compile time by calling +get_target_info. +@end deftypefn + @node Named Address Spaces @section Adding support for named address spaces @cindex named address spaces diff --git a/gcc/doc/tm.texi.in b/gcc/doc/tm.texi.in index 57653a133a65..4838af8c0da9 100644 --- a/gcc/doc/tm.texi.in +++ b/gcc/doc/tm.texi.in @@ -56,6 +56,7 @@ through the macros defined in the @file{.h} file. * C++ ABI:: Controlling C++ ABI changes. * D Language and ABI:: Controlling D ABI changes. * Rust Language and ABI:: Controlling Rust ABI changes. +* JIT Language and ABI:: JIT ABI parameters * Named Address Spaces:: Adding support for named address spaces * Misc:: Everything else. @end menu @@ -126,6 +127,14 @@ If targets initialize @code{targetrustm} themselves, they should set @code{target_has_targetrustm=yes} in @file{config.gcc}; otherwise a default definition is used. +Similarly, there is a @code{targetjitm} variable for hooks that are +specific to the jit front end, documented as ``JIT Target Hook''. +This is declared in @file{jit/jit-target.h}, the initializer +@code{TARGETJITM_INITIALIZER} in @file{jit/jit-target-def.h}. If targets +initialize @code{targetjitm} themselves, they should set +@code{target_has_targetjitm=yes} in @file{config.gcc}; otherwise a default +definition is used. + @node Driver @section Controlling the Compilation Driver, @file{gcc} @cindex driver @@ -7121,6 +7130,16 @@ on this implementation detail. @hook TARGET_OPTION_VALID_VERSION_ATTRIBUTE_P +@defmac TARGET_HAS_FMV_TARGET_ATTRIBUTE +Define this macro to zero to use @code{target_version} attributes for function +multiversioning (FMV) rather than @code{target} attributes. + +Targets using @code{target_version} attributes will also have +"target_version" FMV semantics, which allow for FMV sets defined across TU's +and using a combination of @code{target_version} and @code{target_clones} +attributed declarations in the definition of a FMV function set. +@end defmac + @defmac TARGET_CLONES_ATTR_SEPARATOR Define this char-typed macro to select a character that separates each target specific attributes from the @code{attribute(target_clones("..."))} @@ -7142,6 +7161,8 @@ with the target specific attributes. The default value is @code{','}. @hook TARGET_OPTION_SAME_FUNCTION_VERSIONS +@hook TARGET_OPTION_FUNCTIONS_B_RESOLVABLE_FROM_A + @hook TARGET_CAN_INLINE_P @hook TARGET_UPDATE_IPA_FN_TARGET_INFO @@ -7290,6 +7311,12 @@ floating-point support; they are not included in this mechanism. @hook TARGET_RUST_OS_INFO +@node JIT Language and ABI +@section JIT ABI parameters +@cindex parameters, jit abi + +@hook TARGET_JIT_REGISTER_CPU_TARGET_INFO + @node Named Address Spaces @section Adding support for named address spaces @cindex named address spaces diff --git a/gcc/dwarf2ctf.cc b/gcc/dwarf2ctf.cc index 4b49b23f0780..2ebcf2af40df 100644 --- a/gcc/dwarf2ctf.cc +++ b/gcc/dwarf2ctf.cc @@ -32,6 +32,17 @@ along with GCC; see the file COPYING3. If not see static ctf_dtdef_ref gen_ctf_type (ctf_container_ref, dw_die_ref); +static void +gen_ctf_decl_tags (ctf_container_ref, dw_die_ref, ctf_dtdef_ref, uint32_t); + +static void +gen_ctf_decl_tags_for_var (ctf_container_ref, dw_die_ref, ctf_dvdef_ref); + +static ctf_dtdef_ref +handle_ctf_type_tags (ctf_container_ref ctc, dw_die_ref annot_die, + ctf_dtdef_ref ref_dtd); + + /* All the DIE structures we handle come from the DWARF information generated by GCC. However, there are three situations where we need to create our own created DIE structures because GCC doesn't @@ -335,6 +346,17 @@ gen_ctf_pointer_type (ctf_container_ref ctfc, dw_die_ref ptr_type) pointed_dtd = gen_ctf_type (ctfc, pointed_type_die); + /* Handle BTF type tags. */ + if (btf_debuginfo_p ()) + { + dw_die_ref annot_die = get_AT_ref (ptr_type, DW_AT_GNU_annotation); + ctf_dtdef_ref tag_dtd + = handle_ctf_type_tags (ctfc, annot_die, pointed_dtd); + + if (tag_dtd) + pointed_dtd = tag_dtd; + } + /* Type de-duplication. Consult the ctfc_types hash again before adding the CTF pointer type because there can be cases where a pointer type may have been added by @@ -536,6 +558,7 @@ gen_ctf_sou_type (ctf_container_ref ctfc, dw_die_ref sou, uint32_t kind) /* Now process the struct members. */ { dw_die_ref c; + uint32_t idx = 0; c = dw_get_die_child (sou); if (c) @@ -620,6 +643,9 @@ gen_ctf_sou_type (ctf_container_ref ctfc, dw_die_ref sou, uint32_t kind) field_name, field_dtd, field_location); + + gen_ctf_decl_tags (ctfc, c, sou_dtd, idx); + idx++; } while (c != dw_get_die_child (sou)); } @@ -703,14 +729,18 @@ gen_ctf_function_type (ctf_container_ref ctfc, dw_die_ref function, gcc_assert (i == num_args - 1); /* Add an argument with type 0 and no name. */ ctf_add_function_arg (ctfc, function, "", NULL); + /* Handle any declaration tags on the argument. */ + gen_ctf_decl_tags (ctfc, c, function_dtd, i); } else if (dw_get_die_tag (c) == DW_TAG_formal_parameter) { - i++; arg_name = get_AT_string (c, DW_AT_name); arg_type = gen_ctf_type (ctfc, ctf_get_AT_type (c)); /* Add the argument to the existing CTF function type. */ ctf_add_function_arg (ctfc, function, arg_name, arg_type); + /* Handle any declaration tags on the argument. */ + gen_ctf_decl_tags (ctfc, c, function_dtd, i); + i++; } else /* This is a local variable. Ignore. */ @@ -801,6 +831,7 @@ gen_ctf_variable (ctf_container_ref ctfc, dw_die_ref die) dw_die_ref var_type = ctf_get_AT_type (die); unsigned int external_vis = get_AT_flag (die, DW_AT_external); ctf_dtdef_ref var_dtd; + ctf_dvdef_ref dvd; /* Avoid duplicates. */ if (ctf_dvd_lookup (ctfc, die)) @@ -821,10 +852,13 @@ gen_ctf_variable (ctf_container_ref ctfc, dw_die_ref die) var_dtd = gen_ctf_type (ctfc, var_type); /* Generate the new CTF variable and update global counter. */ - (void) ctf_add_variable (ctfc, var_name, var_dtd, die, external_vis, decl); + dvd = ctf_add_variable (ctfc, var_name, var_dtd, die, external_vis, decl); /* Skip updating the number of global objects at this time. This is updated later after pre-processing as some CTF variable records although generated now, will not be emitted later. [PR105089]. */ + + /* Handle declaration tags on the variable. */ + gen_ctf_decl_tags_for_var (ctfc, die, dvd); } /* Add a CTF function record for the given input DWARF DIE. */ @@ -842,8 +876,97 @@ gen_ctf_function (ctf_container_ref ctfc, dw_die_ref die) counter. Note that DWARF encodes function types in both DW_TAG_subroutine_type and DW_TAG_subprogram in exactly the same way. */ - (void) gen_ctf_function_type (ctfc, die, true /* from_global_func */); + function_dtd = gen_ctf_function_type (ctfc, die, true /* from_global_func */); ctfc->ctfc_num_global_funcs += 1; + + /* Handle declaration tags on the function. */ + gen_ctf_decl_tags (ctfc, die, function_dtd, -1U); +} + +static ctf_dtdef_ref +handle_ctf_type_tags (ctf_container_ref ctfc, dw_die_ref annot_die, + ctf_dtdef_ref ref_dtd) +{ + if (!annot_die || !ref_dtd) + return NULL; + + /* Recurse first. */ + dw_die_ref next_annot; + if ((next_annot = get_AT_ref (annot_die, DW_AT_GNU_annotation))) + ref_dtd = handle_ctf_type_tags (ctfc, next_annot, ref_dtd); + + ctf_dtdef_ref tag_dtd = NULL; + const char *name = get_AT_string (annot_die, DW_AT_name); + const char *value = get_AT_string (annot_die, DW_AT_const_value); + + if (strcmp (name, "btf_type_tag") == 0) + tag_dtd = ctf_add_type_tag (ctfc, CTF_ADD_ROOT, value, ref_dtd); + + return tag_dtd; +} + +/* Handle any DW_AT_GNU_annotation on decl DIE by constructing a CTF_K_DECL_TAG + type for the DW_TAG_GNU_annotation DIE to which it points, if this has not + been previously constructed. There may be multiple annotations chained + together by further occurances of DW_AT_GNU_annotation in the annoation DIEs + themselves, in which case a corresponding CTF_K_DECL_TAG type is created for + each. Unlike TYPE_TAGs, which form a chain, each DECL_TAG individually + refers directly to the annotated decl, which should be supplied in REF_DTD. + IDX is the zero-based component index indicating to which function parameter + or struct or union member the DECL_TAG refers, or (uint32_t) -1 if it refers + to a function decl or sou itself. + Note that because individual DECL_TAGs refer direcly to the annotated decl, + they cannot be deduplicated across usages. */ + +static void +gen_ctf_decl_tags (ctf_container_ref ctfc, dw_die_ref die, + ctf_dtdef_ref ref_dtd, uint32_t idx) +{ + if (!btf_debuginfo_p () || !die || !ref_dtd) + return; + + dw_die_ref annot_die = get_AT_ref (die, DW_AT_GNU_annotation); + while (annot_die) + { + const char *name = get_AT_string (annot_die, DW_AT_name); + const char *value = get_AT_string (annot_die, DW_AT_const_value); + + if (strcmp (name, "btf_decl_tag") == 0) + (void) ctf_add_decl_tag (ctfc, CTF_ADD_ROOT, value, ref_dtd, idx); + + annot_die = get_AT_ref (annot_die, DW_AT_GNU_annotation); + } +} + +/* Like gen_ctf_decl_tags above, but specifically for variables. Declaration + tags may appear on variables or other declarations like functions, but due + to the distinction in CTF between variables and types the processing in + each case is slightly different. REF_DVD is the CTF record for the variable + which is annotated. */ + +static void +gen_ctf_decl_tags_for_var (ctf_container_ref ctfc, dw_die_ref die, + ctf_dvdef_ref ref_dvd) +{ + if (!btf_debuginfo_p () || !die || !ref_dvd) + return; + + ctf_dtdef_ref tag_dtd = NULL; + + dw_die_ref annot_die = get_AT_ref (die, DW_AT_GNU_annotation); + while (annot_die) + { + const char *name = get_AT_string (annot_die, DW_AT_name); + const char *value = get_AT_string (annot_die, DW_AT_const_value); + + if (strcmp (name, "btf_decl_tag") == 0) + { + tag_dtd = ctf_add_decl_tag (ctfc, CTF_ADD_ROOT, value, NULL, -1U); + tag_dtd->dtd_u.dtu_tag.ref_var = ref_dvd; + } + + annot_die = get_AT_ref (annot_die, DW_AT_GNU_annotation); + } } /* Add CTF type record(s) for the given input DWARF DIE and return its type id. @@ -910,6 +1033,12 @@ gen_ctf_type (ctf_container_ref ctfc, dw_die_ref die) break; } + case DW_TAG_GNU_annotation: + /* These DIEs are traversed by gen_ctf_type_tags by following + any DW_AT_GNU_annotation present in other types. */ + dtd = NULL; + unrecog_die = true; + break; case DW_TAG_reference_type: dtd = NULL; break; diff --git a/gcc/dwarf2out.cc b/gcc/dwarf2out.cc index 0bd8474bc370..a817c69c95af 100644 --- a/gcc/dwarf2out.cc +++ b/gcc/dwarf2out.cc @@ -3696,6 +3696,33 @@ static bool frame_pointer_fb_offset_valid; static vec base_types; +/* A cached btf_type_tag or btf_decl_tag user annotation. */ +struct GTY ((for_user)) annotation_node +{ + const char *name; + const char *value; + hashval_t hash; + dw_die_ref die; + struct annotation_node *next; +}; + +/* Hasher for btf_type_tag and btf_decl_tag annotation nodes. */ +struct annotation_node_hasher : ggc_ptr_hash +{ + typedef const struct annotation_node *compare_type; + + static hashval_t hash (struct annotation_node *); + static bool equal (const struct annotation_node *, + const struct annotation_node *); +}; + +/* A hash table of tag annotation nodes for btf_type_tag and btf_decl_tag C + attributes. DIEs for these user annotations may be reused if they are + structurally equivalent; this hash table is used to ensure the DIEs are + reused wherever possible. */ +static GTY (()) hash_table *btf_tag_htab; + + /* Flags to represent a set of attribute classes for attributes that represent a scalar value (bounds, pointers, ...). */ enum dw_scalar_form @@ -3840,7 +3867,7 @@ static void output_file_names (void); static bool is_base_type (tree); static dw_die_ref subrange_type_die (tree, tree, tree, tree, dw_die_ref); static int decl_quals (const_tree); -static dw_die_ref modified_type_die (tree, int, bool, dw_die_ref); +static dw_die_ref modified_type_die (tree, int, tree, bool, dw_die_ref); static dw_die_ref generic_parameter_die (tree, tree, bool, dw_die_ref); static dw_die_ref template_parameter_pack_die (tree, tree, dw_die_ref); static unsigned int debugger_reg_number (const_rtx); @@ -13675,13 +13702,199 @@ long_double_as_float128 (tree type) return NULL_TREE; } +/* Hash function for struct annotation_node. The hash value is computed when + the annotation node is created based on the name, value and chain of any + further annotations on the same entity. */ + +hashval_t +annotation_node_hasher::hash (struct annotation_node *node) +{ + return node->hash; +} + +/* Return whether two annotation nodes represent the same annotation and + can therefore share a DIE. Beware of hash value collisions. */ + +bool +annotation_node_hasher::equal (const struct annotation_node *node1, + const struct annotation_node *node2) +{ + return (node1->hash == node2->hash + && (node1->name == node2->name + || !strcmp (node1->name, node2->name)) + && (node1->value == node2->value + || !strcmp (node1->value, node2->value)) + && node1->next == node2->next); +} + +/* Return an appropriate entry in the btf tag hash table for a given btf tag. + If a structurally equivalent tag (one with the same name, value, and + subsequent chain of further tags) has already been processed, then the + existing entry for that tag is returned and should be reused. + Otherwise, a new entry is added to the hash table and returned. */ + +static struct annotation_node * +hash_btf_tag (tree attr) +{ + if (attr == NULL_TREE || TREE_CODE (attr) != TREE_LIST) + return NULL; + + if (!btf_tag_htab) + btf_tag_htab = hash_table::create_ggc (10); + + const char * name = IDENTIFIER_POINTER (get_attribute_name (attr)); + const char * value = TREE_STRING_POINTER (TREE_VALUE (TREE_VALUE (attr))); + tree chain = lookup_attribute (name, TREE_CHAIN (attr)); + + /* Hash for one tag depends on hash of next tag in the chain, because + the chain is part of structural equivalence. */ + struct annotation_node *chain_node = hash_btf_tag (chain); + gcc_checking_assert (chain == NULL_TREE || chain_node != NULL); + + /* Skip any non-btf-tag attributes that might be in the chain. */ + if (strcmp (name, "btf_type_tag") != 0 && strcmp (name, "btf_decl_tag") != 0) + return chain_node; + + /* Hash for a given tag is determined by the name, value, and chain of + further tags. */ + inchash::hash h; + h.merge_hash (htab_hash_string (name)); + h.merge_hash (htab_hash_string (value)); + h.merge_hash (chain_node ? chain_node->hash : 0); + + struct annotation_node node; + node.name = name; + node.value = value; + node.hash = h.end (); + node.next = chain_node; + + struct annotation_node **slot = btf_tag_htab->find_slot (&node, INSERT); + if (*slot == NULL) + { + /* Create new htab entry for this annotation. */ + struct annotation_node *new_slot + = ggc_cleared_alloc (); + new_slot->name = name; + new_slot->value = value; + new_slot->hash = node.hash; + new_slot->next = chain_node; + + *slot = new_slot; + return new_slot; + } + else + { + /* This node is already in the hash table. */ + return *slot; + } +} + +/* Generate (or reuse) DW_TAG_GNU_annotation DIEs representing the btf_type_tag + or btf_decl_tag user annotations in ATTR, and update DIE to refer to them + via DW_AT_GNU_annotation. If there are multiple type_tag or decl_tag + annotations in ATTR, they are all processed recursively by this function to + build a chain of annotation DIEs. + A single chain of annotation DIEs can be shared among all occurrences of + equivalent sets of attributes appearing on different types or declarations. + Return the first annotation DIE in the created (or reused) chain. */ + +static dw_die_ref +gen_btf_tag_dies (tree attr, dw_die_ref die) +{ + if (attr == NULL_TREE) + return die; + + const char * name = IDENTIFIER_POINTER (get_attribute_name (attr)); + const char * value = TREE_STRING_POINTER (TREE_VALUE (TREE_VALUE (attr))); + + dw_die_ref tag_die, prev = NULL; + + /* Multiple annotations on the same item form a singly-linked list of + annotation DIEs; generate recursively backward from the end so we can + chain each created DIE to the next, which has already been created. */ + tree rest = lookup_attribute (name, TREE_CHAIN (attr)); + if (rest) + prev = gen_btf_tag_dies (rest, NULL); + + /* Calculate a hash value for the tag based on its structure, find the + existing entry for it (if any) in the hash table, or create a new entry + which can be reused by structurally-equivalent tags. */ + struct annotation_node *entry = hash_btf_tag (attr); + if (!entry) + return die; + + /* If the node already has an associated DIE, reuse it. + Otherwise, create the new annotation DIE, and associate it with + the hash table entry for future reuse. Any structurally-equivalent + tag we process later will find and share the same DIE. */ + if (entry->die) + tag_die = entry->die; + else + { + tag_die = new_die (DW_TAG_GNU_annotation, comp_unit_die (), NULL); + add_name_attribute (tag_die, name); + add_AT_string (tag_die, DW_AT_const_value, value); + if (prev) + add_AT_die_ref (tag_die, DW_AT_GNU_annotation, prev); + + entry->die = tag_die; + } + + if (die) + { + /* Add AT_GNU_annotation referring to the annotation DIE. + It may have already been added, some global declarations are processed + twice, but if so it must be the same or we have a bug. */ + dw_die_ref existing = get_AT_ref (die, DW_AT_GNU_annotation); + if (existing) + gcc_checking_assert (existing == tag_die); + else + add_AT_die_ref (die, DW_AT_GNU_annotation, tag_die); + } + + return tag_die; +} + +/* Generate (or reuse) annotation DIEs representing the type_tags on T, if + any, and update DIE to refer to them as appropriate. */ + +static void +maybe_gen_btf_type_tag_dies (tree t, dw_die_ref target) +{ + if (t == NULL_TREE || !TYPE_P (t) || !target) + return; + + tree attr = lookup_attribute ("btf_type_tag", TYPE_ATTRIBUTES (t)); + if (attr == NULL_TREE) + return; + + gen_btf_tag_dies (attr, target); +} + +/* Generate (or reuse) annotation DIEs representing any decl_tags in ATTR that + apply to TARGET. */ + +static void +maybe_gen_btf_decl_tag_dies (tree t, dw_die_ref target) +{ + if (t == NULL_TREE || !DECL_P (t) || !target) + return; + + tree attr = lookup_attribute ("btf_decl_tag", DECL_ATTRIBUTES (t)); + if (attr == NULL_TREE) + return; + + gen_btf_tag_dies (attr, target); +} + /* Given a pointer to an arbitrary ..._TYPE tree node, return a debugging entry that chains the modifiers specified by CV_QUALS in front of the - given type. REVERSE is true if the type is to be interpreted in the - reverse storage order wrt the target order. */ + given type. Also handle any type attributes in TYPE_ATTRS which have + a representation in DWARF. REVERSE is true if the type is to be interpreted + in the reverse storage order wrt the target order. */ static dw_die_ref -modified_type_die (tree type, int cv_quals, bool reverse, +modified_type_die (tree type, int cv_quals, tree type_attrs, bool reverse, dw_die_ref context_die) { enum tree_code code = TREE_CODE (type); @@ -13690,6 +13903,7 @@ modified_type_die (tree type, int cv_quals, bool reverse, tree item_type = NULL; tree qualified_type; tree name, low, high; + tree btf_tags; dw_die_ref mod_scope; struct array_descr_info info; /* Only these cv-qualifiers are currently handled. */ @@ -13709,7 +13923,8 @@ modified_type_die (tree type, int cv_quals, bool reverse, tree debug_type = lang_hooks.types.get_debug_type (type); if (debug_type != NULL_TREE && debug_type != type) - return modified_type_die (debug_type, cv_quals, reverse, context_die); + return modified_type_die (debug_type, cv_quals, type_attrs, reverse, + context_die); } cv_quals &= cv_qual_mask; @@ -13786,8 +14001,8 @@ modified_type_die (tree type, int cv_quals, bool reverse, type DIE (see gen_typedef_die), so fall back on the ultimate abstract origin instead. */ if (origin != NULL && origin != name) - return modified_type_die (TREE_TYPE (origin), cv_quals, reverse, - context_die); + return modified_type_die (TREE_TYPE (origin), cv_quals, type_attrs, + reverse, context_die); /* For a named type, use the typedef. */ gen_type_die (qualified_type, context_die); @@ -13799,10 +14014,36 @@ modified_type_die (tree type, int cv_quals, bool reverse, dquals &= cv_qual_mask; if ((dquals & ~cv_quals) != TYPE_UNQUALIFIED || (cv_quals == dquals && DECL_ORIGINAL_TYPE (name) != type)) - /* cv-unqualified version of named type. Just use - the unnamed type to which it refers. */ - return modified_type_die (DECL_ORIGINAL_TYPE (name), cv_quals, - reverse, context_die); + { + tree tags = lookup_attribute ("btf_type_tag", type_attrs); + tree dtags = lookup_attribute ("btf_type_tag", + TYPE_ATTRIBUTES (dtype)); + if (tags && !attribute_list_equal (tags, dtags)) + { + /* Use of a typedef with additional btf_type_tags. + Create a new typedef DIE to which we can attach the + additional type_tag DIEs without disturbing other users of + the underlying typedef. */ + dw_die_ref mod_die + = modified_type_die (dtype, cv_quals, NULL_TREE, reverse, + context_die); + + mod_die = clone_die (mod_die); + add_child_die (comp_unit_die (), mod_die); + if (!lookup_type_die (type)) + equate_type_number_to_die (type, mod_die); + + /* Now generate the type_tag DIEs only for the new + type_tags appearing in the use of the typedef, and + attach them to the cloned typedef DIE. */ + gen_btf_tag_dies (tags, mod_die); + return mod_die; + } + /* cv-unqualified version of named type. Just use + the unnamed type to which it refers. */ + return modified_type_die (DECL_ORIGINAL_TYPE (name), cv_quals, + type_attrs, reverse, context_die); + } /* Else cv-qualified version of named type; fall through. */ } } @@ -13836,7 +14077,8 @@ modified_type_die (tree type, int cv_quals, bool reverse, break; } } - mod_type_die = modified_type_die (type, sub_quals, reverse, context_die); + mod_type_die = modified_type_die (type, sub_quals, type_attrs, + reverse, context_die); if (mod_scope && mod_type_die && mod_type_die->die_parent == mod_scope) { /* As not all intermediate qualified DIEs have corresponding @@ -13903,6 +14145,16 @@ modified_type_die (tree type, int cv_quals, bool reverse, first_quals |= dwarf_qual_info[i].q; } } + else if (type_attrs + && (btf_tags = lookup_attribute ("btf_type_tag", type_attrs))) + { + /* First create a DIE for the type without any type_tag attribute. + Then generate TAG_GNU_annotation DIEs for the type_tags. */ + dw_die_ref mod_die = modified_type_die (type, cv_quals, NULL_TREE, + reverse, context_die); + gen_btf_tag_dies (btf_tags, mod_die); + return mod_die; + } else if (code == POINTER_TYPE || code == REFERENCE_TYPE) { dwarf_tag tag = DW_TAG_pointer_type; @@ -13967,9 +14219,12 @@ modified_type_die (tree type, int cv_quals, bool reverse, { dw_die_ref other_die; if (TYPE_NAME (other_type)) - other_die - = modified_type_die (other_type, TYPE_UNQUALIFIED, reverse, - context_die); + { + other_die + = modified_type_die (other_type, TYPE_UNQUALIFIED, + TYPE_ATTRIBUTES (other_type), + reverse, context_die); + } else { other_die = base_type_die (type, reverse); @@ -13987,8 +14242,8 @@ modified_type_die (tree type, int cv_quals, bool reverse, /* The DIE with DW_AT_endianity is placed right after the naked DIE. */ if (reverse_type) { - dw_die_ref after_die - = modified_type_die (type, cv_quals, false, context_die); + dw_die_ref after_die = modified_type_die (type, cv_quals, type_attrs, + false, context_die); add_child_die_after (mod_scope, mod_type_die, after_die); } else @@ -14001,8 +14256,8 @@ modified_type_die (tree type, int cv_quals, bool reverse, /* The DIE with DW_AT_endianity is placed right after the naked DIE. */ if (reverse_type) { - dw_die_ref after_die - = modified_type_die (type, cv_quals, false, context_die); + dw_die_ref after_die = modified_type_die (type, cv_quals, type_attrs, + false, context_die); gen_type_die (type, context_die, true); gcc_assert (after_die->die_sib && get_AT_unsigned (after_die->die_sib, DW_AT_endianity)); @@ -14092,8 +14347,8 @@ modified_type_die (tree type, int cv_quals, bool reverse, types are possible in Ada. */ sub_die = modified_type_die (item_type, TYPE_QUALS_NO_ADDR_SPACE (item_type), - reverse, - context_die); + TYPE_ATTRIBUTES (item_type), + reverse, context_die); if (sub_die != NULL) add_AT_die_ref (mod_type_die, DW_AT_type, sub_die); @@ -15237,8 +15492,8 @@ base_type_for_mode (machine_mode mode, bool unsignedp) } type_die = lookup_type_die (type); if (!type_die) - type_die = modified_type_die (type, TYPE_UNQUALIFIED, false, - comp_unit_die ()); + type_die = modified_type_die (type, TYPE_UNQUALIFIED, NULL_TREE, + false, comp_unit_die ()); if (type_die == NULL || type_die->die_tag != DW_TAG_base_type) return NULL; return type_die; @@ -22508,6 +22763,7 @@ add_type_attribute (dw_die_ref object_die, tree type, int cv_quals, type_die = modified_type_die (type, cv_quals | TYPE_QUALS (type), + TYPE_ATTRIBUTES (type), reverse, context_die); @@ -22786,6 +23042,7 @@ gen_array_type_die (tree type, dw_die_ref context_die) add_pubtype (type, array_die); add_alignment_attribute (array_die, type); + maybe_gen_btf_type_tag_dies (type, array_die); } /* This routine generates DIE for array with hidden descriptor, details @@ -23156,6 +23413,7 @@ gen_formal_parameter_die (tree node, tree origin, bool emit_name_p, else { add_child_die (context_die, parm_die); + maybe_gen_btf_decl_tag_dies (node_or_origin, parm_die); return parm_die; } } @@ -23224,6 +23482,8 @@ gen_formal_parameter_die (tree node, tree origin, bool emit_name_p, gcc_unreachable (); } + maybe_gen_btf_decl_tag_dies (node_or_origin, parm_die); + return parm_die; } @@ -24577,10 +24837,12 @@ override_type_for_decl_p (tree decl, dw_die_ref old_die, else cv_quals = decl_quals (decl); - dw_die_ref type_die = modified_type_die (type, - cv_quals | TYPE_QUALS (type), - false, - context_die); + dw_die_ref type_die + = modified_type_die (type, + cv_quals | TYPE_QUALS (type), + TYPE_ATTRIBUTES (type), + false, + context_die); dw_die_ref old_type_die = get_AT_ref (old_die, DW_AT_type); @@ -26448,6 +26710,10 @@ gen_tagged_type_die (tree type, else gen_struct_or_union_type_die (type, context_die, usage); + dw_die_ref die = lookup_type_die (type); + if (die) + maybe_gen_btf_type_tag_dies (type, die); + /* Don't set TREE_ASM_WRITTEN on an incomplete struct; we want to fix it up if it is ever completed. gen_*_type_die will set it for us when appropriate. */ @@ -27081,6 +27347,7 @@ force_type_die (tree type) dw_die_ref context_die = get_context_die (TYPE_CONTEXT (type)); type_die = modified_type_die (type, TYPE_QUALS_NO_ADDR_SPACE (type), + TYPE_ATTRIBUTES (type), false, context_die); gcc_assert (type_die); } @@ -27458,6 +27725,9 @@ gen_decl_die (tree decl, tree origin, struct vlr_context *ctx, break; } + maybe_gen_btf_decl_tag_dies (decl_or_origin, + lookup_decl_die (decl_or_origin)); + return NULL; } @@ -32504,6 +32774,9 @@ dwarf2out_finish (const char *filename) /* Flush out any latecomers to the limbo party. */ flush_limbo_die_list (); + if (btf_tag_htab) + btf_tag_htab->empty (); + if (inline_entry_data_table) gcc_assert (inline_entry_data_table->is_empty ()); @@ -33574,6 +33847,7 @@ dwarf2out_cc_finalize (void) switch_text_ranges = NULL; switch_cold_ranges = NULL; current_unit_personality = NULL; + btf_tag_htab = NULL; early_dwarf = false; early_dwarf_finished = false; diff --git a/gcc/flag-types.h b/gcc/flag-types.h index bf681c3e8153..44a90becb27a 100644 --- a/gcc/flag-types.h +++ b/gcc/flag-types.h @@ -288,7 +288,8 @@ enum vect_cost_model { enum auto_init_type { AUTO_INIT_UNINITIALIZED = 0, AUTO_INIT_PATTERN = 1, - AUTO_INIT_ZERO = 2 + AUTO_INIT_ZERO = 2, + AUTO_INIT_CXX26 = 3 }; /* Initialization of padding bits with zeros. */ diff --git a/gcc/fortran/ChangeLog b/gcc/fortran/ChangeLog index 31a19ed469b5..de3aef8846f1 100644 --- a/gcc/fortran/ChangeLog +++ b/gcc/fortran/ChangeLog @@ -1,3 +1,93 @@ +2025-10-09 Harald Anlauf + + PR fortran/122206 + * trans-types.cc (gfc_get_function_type): Do not clobber an + existing procedure interface. + +2025-10-09 David Malcolm + + * error.cc: Define INCLUDE_VECTOR. + +2025-10-08 Harald Anlauf + + PR fortran/49111 + * decl.cc (verify_bind_c_sym): Modify condition for generation of + accessibility warning, and adjust warning message. + +2025-10-08 Paul Thomas + + PR fortran/93175 + PR fortran/102240 + PR fortran/102686 + * array.cc (match_array_element_spec): For pdt templates, call + gfc_correct_parm_expr to elimante extraneous symbols from the + bound expressions. + * decl.cc (correct_parm_expr, gfc_correct_parm_expr): New fcns + that remove symbols that are not PDT parameters from the type + specification expressions. + (insert_parameter_exprs): Process function symbols as if they + are variables in the substitution with parameter expressions. + (gfc_get_pdt_instance): Make sure that the parameter list of + PDT components is updated as the instance is built. Move the + construction of pdt_strings down a bit in the function and + remove the tie up with pdt_arrays. + * gfortran.h: Add prototype for gfc_correct_parm_expr. + * resolve.cc (resolve_component): Skip testing for constant + specification expressions in pdt_template component string + lengths and pdt_strings. + * trans-array.cc (structure_alloc_comps): Remove testing for + deferred parameters and instead make sure that components of + PDT type have parameters substituted with the parameter exprs + of the enclosing PDT. + +2025-10-07 Paul Thomas + + PR fortran/102901 + * trans-array.cc (structure_alloc_comps): Do not use + gfc_check_pdt_dummy with pointer or allocatable components. + +2025-10-04 Harald Anlauf + + PR fortran/107968 + * trans-io.cc (gfc_trans_transfer): Also scalarize I/O of section + of an array pointer. + +2025-10-03 Paul Thomas + + PR fortran/122089 + * decl.cc (gfc_get_pdt_instance): If gfc_extract_int is true an + error has occurred because the kind expr was not provided. Use + the template in this case and return MATCH_YES. + +2025-10-01 Harald Anlauf + + PR fortran/122080 + * trans-array.cc (gfc_conv_array_parameter): Wrap the derivation of + bounds and strides for the descriptor of an optional dummy array + argument by a test on argument presence when it is supposed to be + passed to an optional argument. + +2025-10-01 Paul Thomas + + PR fortran/122089 + * decl.cc (gfc_get_pdt_instance): If the pdt_template is use + associated, 'module' field should be copied to this instance. + +2025-09-30 Paul Thomas + + PR fortran/102241 + * gfortran.h: Add symbol attribute 'pdt_comp'. + * module.cc : Add 'pdt_comp' to 'ab_attribute' and 'attr_bits'. + (mio_symbol_attribute): Set 'pdt_comp'. + * resolve.cc (resolve_component): If a PDT component is found + in a non-PDT type, generate the PDT instance, if necessary, and + set the 'pdt_comp' attribute. Fix some whitespace issues. + * trans-decl.cc (gfc_get_symbol_decl, gfc_trans_deferred_vars): + If 'pdt_comp' set, initialize the PDT components. + * trans-stmt.cc (gfc_trans_deallocate): Verify that a typespec + parameter list is available for PDT components of ordinary + derived types. + 2025-09-27 Paul Thomas PR fortran/87908 diff --git a/gcc/fortran/array.cc b/gcc/fortran/array.cc index fa177fa91f7e..8f0004992e81 100644 --- a/gcc/fortran/array.cc +++ b/gcc/fortran/array.cc @@ -566,6 +566,7 @@ match_array_element_spec (gfc_array_spec *as) gfc_expr **upper, **lower; match m; int rank; + bool is_pdt_template; rank = as->rank == -1 ? 0 : as->rank; lower = &as->lower[rank + as->corank - 1]; @@ -613,6 +614,13 @@ match_array_element_spec (gfc_array_spec *as) return AS_UNKNOWN; } + is_pdt_template = gfc_current_block () + && gfc_current_block ()->attr.pdt_template + && gfc_current_block ()->f2k_derived; + + if ((*upper)->expr_type != EXPR_CONSTANT && is_pdt_template) + gfc_correct_parm_expr (gfc_current_block (), upper); + if (gfc_match_char (':') == MATCH_NO) { *lower = gfc_get_int_expr (gfc_default_integer_kind, NULL, 1); @@ -645,6 +653,9 @@ match_array_element_spec (gfc_array_spec *as) return AS_UNKNOWN; } + if ((*upper)->expr_type != EXPR_CONSTANT && is_pdt_template) + gfc_correct_parm_expr (gfc_current_block (), upper); + return AS_EXPLICIT; } diff --git a/gcc/fortran/decl.cc b/gcc/fortran/decl.cc index a891dc86eae9..3fba8b1af396 100644 --- a/gcc/fortran/decl.cc +++ b/gcc/fortran/decl.cc @@ -3790,6 +3790,48 @@ match_record_decl (char *name) } + /* In parsing a PDT, it is possible that one of the type parameters has the + same name as a previously declared symbol that is not a type parameter. + Intercept this now by looking for the symtree in f2k_derived. */ + +static bool +correct_parm_expr (gfc_expr* e, gfc_symbol* pdt, int* f ATTRIBUTE_UNUSED) +{ + if (!e || (e->expr_type != EXPR_VARIABLE && e->expr_type != EXPR_FUNCTION)) + return false; + + if (!(e->symtree->n.sym->attr.pdt_len + || e->symtree->n.sym->attr.pdt_kind)) + { + gfc_symtree *st; + st = gfc_find_symtree (pdt->f2k_derived->sym_root, + e->symtree->n.sym->name); + if (st && st->n.sym + && (st->n.sym->attr.pdt_len || st->n.sym->attr.pdt_kind)) + { + gfc_expr *new_expr; + gfc_set_sym_referenced (st->n.sym); + new_expr = gfc_get_expr (); + new_expr->ts = st->n.sym->ts; + new_expr->expr_type = EXPR_VARIABLE; + new_expr->symtree = st; + new_expr->where = e->where; + gfc_replace_expr (e, new_expr); + } + } + + return false; +} + + +void +gfc_correct_parm_expr (gfc_symbol *pdt, gfc_expr **bound) +{ + if (!*bound || (*bound)->expr_type == EXPR_CONSTANT) + return; + gfc_traverse_expr (*bound, pdt, &correct_parm_expr, 0); +} + /* This function uses the gfc_actual_arglist 'type_param_spec_list' as a source of expressions to substitute into the possibly parameterized expression 'e'. Using a list is inefficient but should not be too bad since the @@ -3801,12 +3843,13 @@ insert_parameter_exprs (gfc_expr* e, gfc_symbol* sym ATTRIBUTE_UNUSED, gfc_actual_arglist *param; gfc_expr *copy; - if (e->expr_type != EXPR_VARIABLE) + if (e->expr_type != EXPR_VARIABLE && e->expr_type != EXPR_FUNCTION) return false; gcc_assert (e->symtree); if (e->symtree->n.sym->attr.pdt_kind - || (*f != 0 && e->symtree->n.sym->attr.pdt_len)) + || (*f != 0 && e->symtree->n.sym->attr.pdt_len) + || (e->expr_type == EXPR_FUNCTION && e->symtree->n.sym)) { for (param = type_param_spec_list; param; param = param->next) if (strcmp (e->symtree->n.sym->name, param->name) == 0) @@ -4038,7 +4081,15 @@ gfc_get_pdt_instance (gfc_actual_arglist *param_list, gfc_symbol **sym, } kind_value = 0; - gfc_extract_int (kind_expr, &kind_value); + /* This can come about during the parsing of nested pdt_templates. An + error arises because the KIND parameter expression has not been + provided. Use the template instead of an incorrect instance. */ + if (gfc_extract_int (kind_expr, &kind_value)) + { + gfc_free_actual_arglist (type_param_spec_list); + return MATCH_YES; + } + sprintf (name + strlen (name), "_%d", kind_value); if (!name_seen && actual_param) @@ -4076,6 +4127,8 @@ gfc_get_pdt_instance (gfc_actual_arglist *param_list, gfc_symbol **sym, /* Start building the new instance of the parameterized type. */ gfc_copy_attr (&instance->attr, &pdt->attr, &pdt->declared_at); + if (pdt->attr.use_assoc) + instance->module = pdt->module; instance->attr.pdt_template = 0; instance->attr.pdt_type = 1; instance->declared_at = gfc_current_locus; @@ -4131,7 +4184,7 @@ gfc_get_pdt_instance (gfc_actual_arglist *param_list, gfc_symbol **sym, /* Now obtain the PDT instance for the extended type. */ c2->param_list = type_param_spec_list; m = gfc_get_pdt_instance (type_param_spec_list, &c2->ts.u.derived, - NULL); + &c2->param_list); type_param_spec_list = old_param_spec_list; c2->ts.u.derived->refs++; @@ -4195,20 +4248,6 @@ gfc_get_pdt_instance (gfc_actual_arglist *param_list, gfc_symbol **sym, } } - /* Similarly, set the string length if parameterized. */ - if (c1->ts.type == BT_CHARACTER - && c1->ts.u.cl->length - && gfc_derived_parameter_expr (c1->ts.u.cl->length)) - { - gfc_expr *e; - e = gfc_copy_expr (c1->ts.u.cl->length); - gfc_insert_kind_parameter_exprs (e); - gfc_simplify_expr (e, 1); - c2->ts.u.cl = gfc_new_charlen (gfc_current_ns, NULL); - c2->ts.u.cl->length = e; - c2->attr.pdt_string = 1; - } - /* Set up either the KIND/LEN initializer, if constant, or the parameterized expression. Use the template initializer if one is not already set in this instance. */ @@ -4273,7 +4312,8 @@ gfc_get_pdt_instance (gfc_actual_arglist *param_list, gfc_symbol **sym, gfc_free_expr (c2->as->upper[i]); c2->as->upper[i] = e; } - c2->attr.pdt_array = pdt_array ? 1 : c2->attr.pdt_string; + + c2->attr.pdt_array = 1; if (c1->initializer) { c2->initializer = gfc_copy_expr (c1->initializer); @@ -4282,6 +4322,20 @@ gfc_get_pdt_instance (gfc_actual_arglist *param_list, gfc_symbol **sym, } } + /* Similarly, set the string length if parameterized. */ + if (c1->ts.type == BT_CHARACTER + && c1->ts.u.cl->length + && gfc_derived_parameter_expr (c1->ts.u.cl->length)) + { + gfc_expr *e; + e = gfc_copy_expr (c1->ts.u.cl->length); + gfc_insert_kind_parameter_exprs (e); + gfc_simplify_expr (e, 1); + gfc_free_expr (c2->ts.u.cl->length); + c2->ts.u.cl->length = e; + c2->attr.pdt_string = 1; + } + /* Recurse into this function for PDT components. */ if ((c1->ts.type == BT_DERIVED || c1->ts.type == BT_CLASS) && c1->ts.u.derived && c1->ts.u.derived->attr.pdt_template) @@ -4294,15 +4348,18 @@ gfc_get_pdt_instance (gfc_actual_arglist *param_list, gfc_symbol **sym, /* Substitute the template parameters with the expressions from the specification list. */ for (;actual_param; actual_param = actual_param->next) - gfc_insert_parameter_exprs (actual_param->expr, - type_param_spec_list); + { + gfc_correct_parm_expr (pdt, &actual_param->expr); + gfc_insert_parameter_exprs (actual_param->expr, + type_param_spec_list); + } /* Now obtain the PDT instance for the component. */ old_param_spec_list = type_param_spec_list; - m = gfc_get_pdt_instance (params, &c2->ts.u.derived, NULL); + m = gfc_get_pdt_instance (params, &c2->ts.u.derived, + &c2->param_list); type_param_spec_list = old_param_spec_list; - c2->param_list = params; if (!(c2->attr.pointer || c2->attr.allocatable)) c2->initializer = gfc_default_initializer (&c2->ts); @@ -6363,15 +6420,17 @@ verify_bind_c_sym (gfc_symbol *tmp_sym, gfc_typespec *ts, &(tmp_sym->declared_at)); } - /* See if the symbol has been marked as private. If it has, make sure - there is no binding label and warn the user if there is one. */ + /* See if the symbol has been marked as private. If it has, warn if + there is a binding label with default binding name. */ if (tmp_sym->attr.access == ACCESS_PRIVATE - && tmp_sym->binding_label) - /* Use gfc_warning_now because we won't say that the symbol fails - just because of this. */ - gfc_warning_now (0, "Symbol %qs at %L is marked PRIVATE but has been " - "given the binding label %qs", tmp_sym->name, - &(tmp_sym->declared_at), tmp_sym->binding_label); + && tmp_sym->binding_label + && strcmp (tmp_sym->name, tmp_sym->binding_label) == 0 + && (tmp_sym->attr.flavor == FL_VARIABLE + || tmp_sym->attr.if_source == IFSRC_DECL)) + gfc_warning (OPT_Wsurprising, + "Symbol %qs at %L is marked PRIVATE but is accessible " + "via its default binding name %qs", tmp_sym->name, + &(tmp_sym->declared_at), tmp_sym->binding_label); return retval; } diff --git a/gcc/fortran/error.cc b/gcc/fortran/error.cc index ebf9e6197d22..8fde46ed6afc 100644 --- a/gcc/fortran/error.cc +++ b/gcc/fortran/error.cc @@ -24,6 +24,7 @@ along with GCC; see the file COPYING3. If not see for possible use later. If a line does not match a legal construction, then the saved error message is reported. */ +#define INCLUDE_VECTOR #include "config.h" #include "system.h" #include "coretypes.h" diff --git a/gcc/fortran/gfortran.h b/gcc/fortran/gfortran.h index 219c4b67ed81..a14202fda8fd 100644 --- a/gcc/fortran/gfortran.h +++ b/gcc/fortran/gfortran.h @@ -3462,6 +3462,7 @@ extern hash_map *gfc_vectorized_builtins; /* Handling Parameterized Derived Types */ bool gfc_insert_parameter_exprs (gfc_expr *, gfc_actual_arglist *); +void gfc_correct_parm_expr (gfc_symbol *, gfc_expr **); match gfc_get_pdt_instance (gfc_actual_arglist *, gfc_symbol **, gfc_actual_arglist **); diff --git a/gcc/fortran/resolve.cc b/gcc/fortran/resolve.cc index 00b143c07db0..75270064ed43 100644 --- a/gcc/fortran/resolve.cc +++ b/gcc/fortran/resolve.cc @@ -16877,27 +16877,30 @@ resolve_component (gfc_component *c, gfc_symbol *sym) && gfc_find_typebound_proc (super_type, NULL, c->name, true, NULL)) { gfc_error ("Component %qs of %qs at %L has the same name as an" - " inherited type-bound procedure", - c->name, sym->name, &c->loc); + " inherited type-bound procedure", + c->name, sym->name, &c->loc); return false; } if (c->ts.type == BT_CHARACTER && !c->attr.proc_pointer && !c->ts.deferred) { + if (sym->attr.pdt_template || c->attr.pdt_string) + gfc_correct_parm_expr (sym, &c->ts.u.cl->length); + if (c->ts.u.cl->length == NULL - || (!resolve_charlen(c->ts.u.cl)) + || !resolve_charlen(c->ts.u.cl) || !gfc_is_constant_expr (c->ts.u.cl->length)) { gfc_error ("Character length of component %qs needs to " "be a constant specification expression at %L", c->name, c->ts.u.cl->length ? &c->ts.u.cl->length->where : &c->loc); - return false; - } + return false; + } if (c->ts.u.cl->length && c->ts.u.cl->length->ts.type != BT_INTEGER) - { + { if (!c->ts.u.cl->length->error) { gfc_error ("Character length expression of component %qs at %L " diff --git a/gcc/fortran/trans-array.cc b/gcc/fortran/trans-array.cc index 0111c9566f41..b11ef57f9814 100644 --- a/gcc/fortran/trans-array.cc +++ b/gcc/fortran/trans-array.cc @@ -9446,6 +9446,15 @@ gfc_conv_array_parameter (gfc_se *se, gfc_expr *expr, bool g77, gfc_add_expr_to_block (&se->pre, tmp); } + else if (pass_optional && full_array_var && sym->as && sym->as->rank != 0) + { + /* Perform calculation of bounds and strides of optional array dummy + only if the argument is present. */ + tmp = build3_v (COND_EXPR, gfc_conv_expr_present (sym), + gfc_finish_block (&se->pre), + build_empty_stmt (input_location)); + gfc_add_expr_to_block (&se->pre, tmp); + } } /* Deallocate the allocatable components of structures that are @@ -11075,17 +11084,15 @@ structure_alloc_comps (gfc_symbol * der_type, tree decl, tree dest, && c->ts.u.derived && c->ts.u.derived->attr.pdt_type && !(c->attr.pointer || c->attr.allocatable)) { - bool is_deferred = false; gfc_actual_arglist *tail = c->param_list; for (; tail; tail = tail->next) - if (!tail->expr) - is_deferred = true; + if (tail->expr) + gfc_insert_parameter_exprs (tail->expr, pdt_param_list); - tail = is_deferred ? pdt_param_list : c->param_list; tmp = gfc_allocate_pdt_comp (c->ts.u.derived, comp, c->as ? c->as->rank : 0, - tail); + c->param_list); gfc_add_expr_to_block (&fnblock, tmp); } @@ -11171,7 +11178,11 @@ structure_alloc_comps (gfc_symbol * der_type, tree decl, tree dest, comp = gfc_class_data_get (comp); /* Recurse in to PDT components. */ - if ((c->ts.type == BT_DERIVED || c->ts.type == BT_CLASS) + if (((c->ts.type == BT_DERIVED + && !c->attr.allocatable && !c->attr.pointer) + || (c->ts.type == BT_CLASS + && !CLASS_DATA (c)->attr.allocatable + && !CLASS_DATA (c)->attr.pointer)) && c->ts.u.derived && c->ts.u.derived->attr.pdt_type) { tmp = gfc_check_pdt_dummy (c->ts.u.derived, comp, diff --git a/gcc/fortran/trans-io.cc b/gcc/fortran/trans-io.cc index df2fef70172a..9360bddb30a7 100644 --- a/gcc/fortran/trans-io.cc +++ b/gcc/fortran/trans-io.cc @@ -2646,7 +2646,9 @@ gfc_trans_transfer (gfc_code * code) && ((expr->symtree->n.sym->ts.type == BT_DERIVED && expr->ts.deferred) || (expr->symtree->n.sym->assoc && expr->symtree->n.sym->assoc->variable) - || gfc_expr_attr (expr).pointer)) + || gfc_expr_attr (expr).pointer + || (expr->symtree->n.sym->attr.pointer + && gfc_expr_attr (expr).target))) goto scalarize; /* With array-bounds checking enabled, force scalarization in some diff --git a/gcc/fortran/trans-types.cc b/gcc/fortran/trans-types.cc index 26645b0f7f67..dfdac600c24d 100644 --- a/gcc/fortran/trans-types.cc +++ b/gcc/fortran/trans-types.cc @@ -3441,6 +3441,7 @@ gfc_get_function_type (gfc_symbol * sym, gfc_actual_arglist *actual_args, } } if (sym->backend_decl == error_mark_node && actual_args != NULL + && sym->ts.interface == NULL && sym->formal == NULL && (sym->attr.proc == PROC_EXTERNAL || sym->attr.proc == PROC_UNKNOWN)) gfc_get_formal_from_actual_arglist (sym, actual_args); diff --git a/gcc/gcc.cc b/gcc/gcc.cc index 8da821e92ac4..eae7f07d9626 100644 --- a/gcc/gcc.cc +++ b/gcc/gcc.cc @@ -28,6 +28,7 @@ Once it knows which kind of compilation to perform, the procedure for compilation is specified by a string called a "spec". */ #define INCLUDE_STRING +#define INCLUDE_VECTOR #include "config.h" #include "system.h" #ifdef HOST_HAS_PERSONALITY_ADDR_NO_RANDOMIZE @@ -984,6 +985,13 @@ proper position among the other output files. */ /* Here is the spec for running the linker, after compiling all files. */ +#if defined(TARGET_PROVIDES_LIBATOMIC) && defined(USE_LD_AS_NEEDED) +#define LINK_LIBATOMIC_SPEC "%{!fno-link-libatomic:" LD_AS_NEEDED_OPTION \ + " -latomic " LD_NO_AS_NEEDED_OPTION "} " +#else +#define LINK_LIBATOMIC_SPEC "" +#endif + /* This is overridable by the target in case they need to specify the -lgcc and -lc order specially, yet not require them to override all of LINK_COMMAND_SPEC. */ diff --git a/gcc/generic-match-head.cc b/gcc/generic-match-head.cc index aa1f9b6d2c87..ea4a958686db 100644 --- a/gcc/generic-match-head.cc +++ b/gcc/generic-match-head.cc @@ -45,6 +45,8 @@ along with GCC; see the file COPYING3. If not see #include "tree-pass.h" #include "attribs.h" #include "asan.h" +#include "gimple-iterator.h" +#include "gimple-fold.h" /* Routine to determine if the types T1 and T2 are effectively the same for GENERIC. If T1 or T2 is not a type, the test diff --git a/gcc/genhooks.cc b/gcc/genhooks.cc index b984bee69ea8..529417b50f22 100644 --- a/gcc/genhooks.cc +++ b/gcc/genhooks.cc @@ -36,6 +36,7 @@ static struct hook_desc hook_array[] = { #include "common/common-target.def" #include "d/d-target.def" #include "rust/rust-target.def" +#include "jit/jit-target.def" #undef DEFHOOK }; diff --git a/gcc/gimple-fold.cc b/gcc/gimple-fold.cc index 37ca0853ec82..edcc04adc08c 100644 --- a/gcc/gimple-fold.cc +++ b/gcc/gimple-fold.cc @@ -38,6 +38,7 @@ along with GCC; see the file COPYING3. If not see #include "stor-layout.h" #include "dumpfile.h" #include "gimple-iterator.h" +#include "tree-pass.h" #include "gimple-fold.h" #include "gimplify.h" #include "tree-into-ssa.h" @@ -69,7 +70,6 @@ along with GCC; see the file COPYING3. If not see #include "varasm.h" #include "internal-fn.h" #include "gimple-range.h" -#include "tree-pass.h" enum strlen_range_kind { /* Compute the exact constant string length. */ @@ -5223,8 +5223,7 @@ gimple_fold_builtin_constant_p (gimple_stmt_iterator *gsi) /* Resolve __builtin_constant_p. If it hasn't been folded to integer_one_node by now, it's fairly certain that the value simply isn't constant. */ - if (!result - && (cfun->curr_properties & PROP_last_full_fold)) + if (!result && fold_before_rtl_expansion_p ()) result = integer_zero_node; if (!result) @@ -5239,7 +5238,7 @@ gimple_fold_builtin_constant_p (gimple_stmt_iterator *gsi) static bool gimple_fold_builtin_assume_aligned (gimple_stmt_iterator *gsi) { - if (!(cfun->curr_properties & PROP_last_full_fold)) + if (!fold_before_rtl_expansion_p ()) return false; gcall *call = as_a(gsi_stmt (*gsi)); @@ -5252,6 +5251,127 @@ gimple_fold_builtin_assume_aligned (gimple_stmt_iterator *gsi) return true; } +/* If va_list type is a simple pointer and nothing special is needed, + optimize __builtin_va_start (&ap, 0) into ap = __builtin_next_arg (0), + __builtin_va_end (&ap) out as NOP and __builtin_va_copy into a simple + pointer assignment. Returns true if a change happened. */ + +static bool +gimple_fold_builtin_stdarg (gimple_stmt_iterator *gsi, gcall *call) +{ + /* These shouldn't be folded before pass_stdarg. */ + if (!fold_before_rtl_expansion_p ()) + return false; + + tree callee, lhs, rhs, cfun_va_list; + bool va_list_simple_ptr; + location_t loc = gimple_location (call); + gimple *nstmt0, *nstmt; + tree tlhs, oldvdef, newvdef; + + callee = gimple_call_fndecl (call); + + cfun_va_list = targetm.fn_abi_va_list (callee); + va_list_simple_ptr = POINTER_TYPE_P (cfun_va_list) + && (TREE_TYPE (cfun_va_list) == void_type_node + || TREE_TYPE (cfun_va_list) == char_type_node); + + switch (DECL_FUNCTION_CODE (callee)) + { + case BUILT_IN_VA_START: + if (!va_list_simple_ptr + || targetm.expand_builtin_va_start != NULL + || !builtin_decl_explicit_p (BUILT_IN_NEXT_ARG)) + return false; + + if (gimple_call_num_args (call) != 2) + return false; + + lhs = gimple_call_arg (call, 0); + if (!POINTER_TYPE_P (TREE_TYPE (lhs)) + || TYPE_MAIN_VARIANT (TREE_TYPE (TREE_TYPE (lhs))) + != TYPE_MAIN_VARIANT (cfun_va_list)) + return false; + /* Create `tlhs = __builtin_next_arg(0);`. */ + tlhs = make_ssa_name (cfun_va_list); + nstmt0 = gimple_build_call (builtin_decl_explicit (BUILT_IN_NEXT_ARG), 1, integer_zero_node); + lhs = fold_build2 (MEM_REF, cfun_va_list, lhs, build_zero_cst (TREE_TYPE (lhs))); + gimple_call_set_lhs (nstmt0, tlhs); + gimple_set_location (nstmt0, loc); + gimple_move_vops (nstmt0, call); + gsi_replace (gsi, nstmt0, false); + oldvdef = gimple_vdef (nstmt0); + newvdef = make_ssa_name (gimple_vop (cfun), nstmt0); + gimple_set_vdef (nstmt0, newvdef); + + /* Create `*lhs = tlhs;`. */ + nstmt = gimple_build_assign (lhs, tlhs); + gimple_set_location (nstmt, loc); + gimple_set_vuse (nstmt, newvdef); + gimple_set_vdef (nstmt, oldvdef); + SSA_NAME_DEF_STMT (oldvdef) = nstmt; + gsi_insert_after (gsi, nstmt, GSI_NEW_STMT); + + if (dump_file && (dump_flags & TDF_DETAILS)) + { + fprintf (dump_file, "Simplified\n "); + print_gimple_stmt (dump_file, call, 0, dump_flags); + fprintf (dump_file, "into\n "); + print_gimple_stmt (dump_file, nstmt0, 0, dump_flags); + fprintf (dump_file, " "); + print_gimple_stmt (dump_file, nstmt, 0, dump_flags); + } + return true; + + case BUILT_IN_VA_COPY: + if (!va_list_simple_ptr) + return false; + + if (gimple_call_num_args (call) != 2) + return false; + + lhs = gimple_call_arg (call, 0); + if (!POINTER_TYPE_P (TREE_TYPE (lhs)) + || TYPE_MAIN_VARIANT (TREE_TYPE (TREE_TYPE (lhs))) + != TYPE_MAIN_VARIANT (cfun_va_list)) + return false; + rhs = gimple_call_arg (call, 1); + if (TYPE_MAIN_VARIANT (TREE_TYPE (rhs)) + != TYPE_MAIN_VARIANT (cfun_va_list)) + return false; + + lhs = fold_build2 (MEM_REF, cfun_va_list, lhs, build_zero_cst (TREE_TYPE (lhs))); + nstmt = gimple_build_assign (lhs, rhs); + gimple_set_location (nstmt, loc); + gimple_move_vops (nstmt, call); + gsi_replace (gsi, nstmt, false); + + if (dump_file && (dump_flags & TDF_DETAILS)) + { + fprintf (dump_file, "Simplified\n "); + print_gimple_stmt (dump_file, call, 0, dump_flags); + fprintf (dump_file, "into\n "); + print_gimple_stmt (dump_file, nstmt, 0, dump_flags); + } + return true; + + case BUILT_IN_VA_END: + /* No effect, so the statement will be deleted. */ + if (dump_file && (dump_flags & TDF_DETAILS)) + { + fprintf (dump_file, "Removed\n "); + print_gimple_stmt (dump_file, call, 0, dump_flags); + } + unlink_stmt_vdef (call); + release_defs (call); + gsi_replace (gsi, gimple_build_nop (), true); + return true; + + default: + gcc_unreachable (); + } +} + /* Fold the non-target builtin at *GSI and return whether any simplification was made. */ @@ -5270,6 +5390,10 @@ gimple_fold_builtin (gimple_stmt_iterator *gsi) enum built_in_function fcode = DECL_FUNCTION_CODE (callee); switch (fcode) { + case BUILT_IN_VA_START: + case BUILT_IN_VA_END: + case BUILT_IN_VA_COPY: + return gimple_fold_builtin_stdarg (gsi, stmt); case BUILT_IN_BCMP: return gimple_fold_builtin_bcmp (gsi); case BUILT_IN_BCOPY: @@ -5886,6 +6010,12 @@ gimple_fold_call (gimple_stmt_iterator *gsi, bool inplace) tree overflow = NULL_TREE; switch (gimple_call_internal_fn (stmt)) { + case IFN_ASSUME: + /* Remove .ASSUME calls during the last fold since it is no + longer needed. */ + if (fold_before_rtl_expansion_p ()) + replace_call_with_value (gsi, NULL_TREE); + break; case IFN_BUILTIN_EXPECT: result = fold_builtin_expect (gimple_location (stmt), gimple_call_arg (stmt, 0), diff --git a/gcc/gimple-fold.h b/gcc/gimple-fold.h index 3f617d1c4cd7..7244941722d8 100644 --- a/gcc/gimple-fold.h +++ b/gcc/gimple-fold.h @@ -22,6 +22,8 @@ along with GCC; see the file COPYING3. If not see #ifndef GCC_GIMPLE_FOLD_H #define GCC_GIMPLE_FOLD_H +#include "tree-pass.h" + extern tree canonicalize_constructor_val (tree, tree); extern tree get_symbol_constant_value (tree); struct c_strlen_data; @@ -280,4 +282,13 @@ extern tree gimple_simplify (combined_fn, tree, tree, tree, extern tree gimple_simplify (combined_fn, tree, tree, tree, tree, gimple_seq *, tree (*)(tree)); +/* Returns true if we are doing the fold before expansion to rtl. */ +inline bool +fold_before_rtl_expansion_p () +{ + if (!cfun) + return false; + return (cfun->curr_properties & PROP_last_full_fold) != 0; +} + #endif /* GCC_GIMPLE_FOLD_H */ diff --git a/gcc/gimple-isel.cc b/gcc/gimple-isel.cc index 0d2efcba547d..b5dc579ff467 100644 --- a/gcc/gimple-isel.cc +++ b/gcc/gimple-isel.cc @@ -39,6 +39,7 @@ along with GCC; see the file COPYING3. If not see #include "optabs.h" #include "gimple-fold.h" #include "internal-fn.h" +#include "fold-const.h" /* Expand all ARRAY_REF(VIEW_CONVERT_EXPR) gimple assignments into calls to internal function based on vector type of selected expansion. @@ -349,6 +350,15 @@ maybe_duplicate_comparison (gassign *stmt, basic_block bb) } } +/* match.pd function to match atomic_bit_test_and pattern which + has nop_convert: + _1 = __atomic_fetch_or_4 (&v, 1, 0); + _2 = (int) _1; + _5 = _2 & 1; + */ +extern bool gimple_nop_atomic_bit_test_and_p (tree, tree *, + tree (*) (tree)); +extern bool gimple_nop_convert (tree, tree*, tree (*) (tree)); namespace { @@ -382,6 +392,947 @@ class pass_gimple_isel : public gimple_opt_pass }; // class pass_gimple_isel + +/* Convert + _1 = __atomic_fetch_or_* (ptr_6, 1, _3); + _7 = ~_1; + _5 = (_Bool) _7; + to + _1 = __atomic_fetch_or_* (ptr_6, 1, _3); + _8 = _1 & 1; + _5 = _8 == 0; + and convert + _1 = __atomic_fetch_and_* (ptr_6, ~1, _3); + _7 = ~_1; + _4 = (_Bool) _7; + to + _1 = __atomic_fetch_and_* (ptr_6, ~1, _3); + _8 = _1 & 1; + _4 = (_Bool) _8; + + USE_STMT is the gimplt statement which uses the return value of + __atomic_fetch_or_*. LHS is the return value of __atomic_fetch_or_*. + MASK is the mask passed to __atomic_fetch_or_*. + */ + +static gimple * +convert_atomic_bit_not (enum internal_fn fn, gimple *use_stmt, + tree lhs, tree mask) +{ + tree and_mask; + if (fn == IFN_ATOMIC_BIT_TEST_AND_RESET) + { + /* MASK must be ~1. */ + if (!operand_equal_p (build_int_cst (TREE_TYPE (lhs), + ~HOST_WIDE_INT_1), mask, 0)) + return nullptr; + and_mask = build_int_cst (TREE_TYPE (lhs), 1); + } + else + { + /* MASK must be 1. */ + if (!operand_equal_p (build_int_cst (TREE_TYPE (lhs), 1), mask, 0)) + return nullptr; + and_mask = mask; + } + + tree use_lhs = gimple_assign_lhs (use_stmt); + + use_operand_p use_p; + gimple *use_not_stmt; + + if (!single_imm_use (use_lhs, &use_p, &use_not_stmt) + || !is_gimple_assign (use_not_stmt)) + return nullptr; + + if (!CONVERT_EXPR_CODE_P (gimple_assign_rhs_code (use_not_stmt))) + return nullptr; + + tree use_not_lhs = gimple_assign_lhs (use_not_stmt); + if (TREE_CODE (TREE_TYPE (use_not_lhs)) != BOOLEAN_TYPE) + return nullptr; + + gimple_stmt_iterator gsi; + tree var = make_ssa_name (TREE_TYPE (lhs)); + /* use_stmt need to be removed after use_nop_stmt, + so use_lhs can be released. */ + gimple *use_stmt_removal = use_stmt; + use_stmt = gimple_build_assign (var, BIT_AND_EXPR, lhs, and_mask); + gsi = gsi_for_stmt (use_not_stmt); + gsi_insert_before (&gsi, use_stmt, GSI_NEW_STMT); + lhs = gimple_assign_lhs (use_not_stmt); + gimple *g = gimple_build_assign (lhs, EQ_EXPR, var, + build_zero_cst (TREE_TYPE (mask))); + gsi_insert_after (&gsi, g, GSI_NEW_STMT); + gsi = gsi_for_stmt (use_not_stmt); + gsi_remove (&gsi, true); + gsi = gsi_for_stmt (use_stmt_removal); + gsi_remove (&gsi, true); + return use_stmt; +} + +/* Optimize + mask_2 = 1 << cnt_1; + _4 = __atomic_fetch_or_* (ptr_6, mask_2, _3); + _5 = _4 & mask_2; + to + _4 = .ATOMIC_BIT_TEST_AND_SET (ptr_6, cnt_1, 0, _3); + _5 = _4; + If _5 is only used in _5 != 0 or _5 == 0 comparisons, 1 + is passed instead of 0, and the builtin just returns a zero + or 1 value instead of the actual bit. + Similarly for __sync_fetch_and_or_* (without the ", _3" part + in there), and/or if mask_2 is a power of 2 constant. + Similarly for xor instead of or, use ATOMIC_BIT_TEST_AND_COMPLEMENT + in that case. And similarly for and instead of or, except that + the second argument to the builtin needs to be one's complement + of the mask instead of mask. */ + +static bool +optimize_atomic_bit_test_and (gimple_stmt_iterator *gsip, + enum internal_fn fn, bool has_model_arg, + bool after) +{ + gimple *call = gsi_stmt (*gsip); + tree lhs = gimple_call_lhs (call); + use_operand_p use_p; + gimple *use_stmt; + tree mask; + optab optab; + + if (!flag_inline_atomics + || optimize_debug + || !gimple_call_builtin_p (call, BUILT_IN_NORMAL) + || !lhs + || SSA_NAME_OCCURS_IN_ABNORMAL_PHI (lhs) + || !single_imm_use (lhs, &use_p, &use_stmt) + || !is_gimple_assign (use_stmt) + || !gimple_vdef (call)) + return false; + + switch (fn) + { + case IFN_ATOMIC_BIT_TEST_AND_SET: + optab = atomic_bit_test_and_set_optab; + break; + case IFN_ATOMIC_BIT_TEST_AND_COMPLEMENT: + optab = atomic_bit_test_and_complement_optab; + break; + case IFN_ATOMIC_BIT_TEST_AND_RESET: + optab = atomic_bit_test_and_reset_optab; + break; + default: + return false; + } + + tree bit = nullptr; + + mask = gimple_call_arg (call, 1); + tree_code rhs_code = gimple_assign_rhs_code (use_stmt); + if (rhs_code != BIT_AND_EXPR) + { + if (rhs_code != NOP_EXPR && rhs_code != BIT_NOT_EXPR) + return false; + + tree use_lhs = gimple_assign_lhs (use_stmt); + if (TREE_CODE (use_lhs) == SSA_NAME + && SSA_NAME_OCCURS_IN_ABNORMAL_PHI (use_lhs)) + return false; + + tree use_rhs = gimple_assign_rhs1 (use_stmt); + if (lhs != use_rhs) + return false; + + if (optab_handler (optab, TYPE_MODE (TREE_TYPE (lhs))) + == CODE_FOR_nothing) + return false; + + gimple *g; + gimple_stmt_iterator gsi; + tree var; + int ibit = -1; + + if (rhs_code == BIT_NOT_EXPR) + { + g = convert_atomic_bit_not (fn, use_stmt, lhs, mask); + if (!g) + return false; + use_stmt = g; + ibit = 0; + } + else if (TREE_CODE (TREE_TYPE (use_lhs)) == BOOLEAN_TYPE) + { + tree and_mask; + if (fn == IFN_ATOMIC_BIT_TEST_AND_RESET) + { + /* MASK must be ~1. */ + if (!operand_equal_p (build_int_cst (TREE_TYPE (lhs), + ~HOST_WIDE_INT_1), + mask, 0)) + return false; + + /* Convert + _1 = __atomic_fetch_and_* (ptr_6, ~1, _3); + _4 = (_Bool) _1; + to + _1 = __atomic_fetch_and_* (ptr_6, ~1, _3); + _5 = _1 & 1; + _4 = (_Bool) _5; + */ + and_mask = build_int_cst (TREE_TYPE (lhs), 1); + } + else + { + and_mask = build_int_cst (TREE_TYPE (lhs), 1); + if (!operand_equal_p (and_mask, mask, 0)) + return false; + + /* Convert + _1 = __atomic_fetch_or_* (ptr_6, 1, _3); + _4 = (_Bool) _1; + to + _1 = __atomic_fetch_or_* (ptr_6, 1, _3); + _5 = _1 & 1; + _4 = (_Bool) _5; + */ + } + var = make_ssa_name (TREE_TYPE (use_rhs)); + replace_uses_by (use_rhs, var); + g = gimple_build_assign (var, BIT_AND_EXPR, use_rhs, + and_mask); + gsi = gsi_for_stmt (use_stmt); + gsi_insert_before (&gsi, g, GSI_NEW_STMT); + use_stmt = g; + ibit = 0; + } + else if (TYPE_PRECISION (TREE_TYPE (use_lhs)) + <= TYPE_PRECISION (TREE_TYPE (use_rhs))) + { + gimple *use_nop_stmt; + if (!single_imm_use (use_lhs, &use_p, &use_nop_stmt) + || (!is_gimple_assign (use_nop_stmt) + && gimple_code (use_nop_stmt) != GIMPLE_COND)) + return false; + /* Handle both + _4 = _5 < 0; + and + if (_5 < 0) + */ + tree use_nop_lhs = nullptr; + rhs_code = ERROR_MARK; + if (is_gimple_assign (use_nop_stmt)) + { + use_nop_lhs = gimple_assign_lhs (use_nop_stmt); + rhs_code = gimple_assign_rhs_code (use_nop_stmt); + } + if (!use_nop_lhs || rhs_code != BIT_AND_EXPR) + { + /* Also handle + if (_5 < 0) + */ + if (use_nop_lhs + && TREE_CODE (use_nop_lhs) == SSA_NAME + && SSA_NAME_OCCURS_IN_ABNORMAL_PHI (use_nop_lhs)) + return false; + if (use_nop_lhs && rhs_code == BIT_NOT_EXPR) + { + /* Handle + _7 = ~_2; + */ + g = convert_atomic_bit_not (fn, use_nop_stmt, lhs, + mask); + if (!g) + return false; + /* Convert + _1 = __atomic_fetch_or_4 (ptr_6, 1, _3); + _2 = (int) _1; + _7 = ~_2; + _5 = (_Bool) _7; + to + _1 = __atomic_fetch_or_4 (ptr_6, ~1, _3); + _8 = _1 & 1; + _5 = _8 == 0; + and convert + _1 = __atomic_fetch_and_4 (ptr_6, ~1, _3); + _2 = (int) _1; + _7 = ~_2; + _5 = (_Bool) _7; + to + _1 = __atomic_fetch_and_4 (ptr_6, 1, _3); + _8 = _1 & 1; + _5 = _8 == 0; + */ + gsi = gsi_for_stmt (use_stmt); + gsi_remove (&gsi, true); + use_stmt = g; + ibit = 0; + } + else + { + tree cmp_rhs1, cmp_rhs2; + if (use_nop_lhs) + { + /* Handle + _4 = _5 < 0; + */ + if (TREE_CODE (TREE_TYPE (use_nop_lhs)) + != BOOLEAN_TYPE) + return false; + cmp_rhs1 = gimple_assign_rhs1 (use_nop_stmt); + cmp_rhs2 = gimple_assign_rhs2 (use_nop_stmt); + } + else + { + /* Handle + if (_5 < 0) + */ + rhs_code = gimple_cond_code (use_nop_stmt); + cmp_rhs1 = gimple_cond_lhs (use_nop_stmt); + cmp_rhs2 = gimple_cond_rhs (use_nop_stmt); + } + if (rhs_code != GE_EXPR && rhs_code != LT_EXPR) + return false; + if (use_lhs != cmp_rhs1) + return false; + if (!integer_zerop (cmp_rhs2)) + return false; + + tree and_mask; + + unsigned HOST_WIDE_INT bytes + = tree_to_uhwi (TYPE_SIZE_UNIT (TREE_TYPE (use_rhs))); + ibit = bytes * BITS_PER_UNIT - 1; + unsigned HOST_WIDE_INT highest + = HOST_WIDE_INT_1U << ibit; + + if (fn == IFN_ATOMIC_BIT_TEST_AND_RESET) + { + /* Get the signed maximum of the USE_RHS type. */ + and_mask = build_int_cst (TREE_TYPE (use_rhs), + highest - 1); + if (!operand_equal_p (and_mask, mask, 0)) + return false; + + /* Convert + _1 = __atomic_fetch_and_4 (ptr_6, 0x7fffffff, _3); + _5 = (signed int) _1; + _4 = _5 < 0 or _5 >= 0; + to + _1 = __atomic_fetch_and_4 (ptr_6, 0x7fffffff, _3); + _6 = _1 & 0x80000000; + _4 = _6 != 0 or _6 == 0; + and convert + _1 = __atomic_fetch_and_4 (ptr_6, 0x7fffffff, _3); + _5 = (signed int) _1; + if (_5 < 0 or _5 >= 0) + to + _1 = __atomic_fetch_and_4 (ptr_6, 0x7fffffff, _3); + _6 = _1 & 0x80000000; + if (_6 != 0 or _6 == 0) + */ + and_mask = build_int_cst (TREE_TYPE (use_rhs), + highest); + } + else + { + /* Get the signed minimum of the USE_RHS type. */ + and_mask = build_int_cst (TREE_TYPE (use_rhs), + highest); + if (!operand_equal_p (and_mask, mask, 0)) + return false; + + /* Convert + _1 = __atomic_fetch_or_4 (ptr_6, 0x80000000, _3); + _5 = (signed int) _1; + _4 = _5 < 0 or _5 >= 0; + to + _1 = __atomic_fetch_or_4 (ptr_6, 0x80000000, _3); + _6 = _1 & 0x80000000; + _4 = _6 != 0 or _6 == 0; + and convert + _1 = __atomic_fetch_or_4 (ptr_6, 0x80000000, _3); + _5 = (signed int) _1; + if (_5 < 0 or _5 >= 0) + to + _1 = __atomic_fetch_or_4 (ptr_6, 0x80000000, _3); + _6 = _1 & 0x80000000; + if (_6 != 0 or _6 == 0) + */ + } + var = make_ssa_name (TREE_TYPE (use_rhs)); + gimple* use_stmt_removal = use_stmt; + g = gimple_build_assign (var, BIT_AND_EXPR, use_rhs, + and_mask); + gsi = gsi_for_stmt (use_nop_stmt); + gsi_insert_before (&gsi, g, GSI_NEW_STMT); + use_stmt = g; + rhs_code = rhs_code == GE_EXPR ? EQ_EXPR : NE_EXPR; + tree const_zero = build_zero_cst (TREE_TYPE (use_rhs)); + if (use_nop_lhs) + g = gimple_build_assign (use_nop_lhs, rhs_code, + var, const_zero); + else + g = gimple_build_cond (rhs_code, var, const_zero, + nullptr, nullptr); + gsi_insert_after (&gsi, g, GSI_NEW_STMT); + gsi = gsi_for_stmt (use_nop_stmt); + gsi_remove (&gsi, true); + gsi = gsi_for_stmt (use_stmt_removal); + gsi_remove (&gsi, true); + } + } + else + { + tree match_op[3]; + gimple *g; + if (!gimple_nop_atomic_bit_test_and_p (use_nop_lhs, + &match_op[0], NULL) + || SSA_NAME_OCCURS_IN_ABNORMAL_PHI (match_op[2]) + || !single_imm_use (match_op[2], &use_p, &g) + || !is_gimple_assign (g)) + return false; + mask = match_op[0]; + if (TREE_CODE (match_op[1]) == INTEGER_CST) + { + ibit = tree_log2 (match_op[1]); + gcc_assert (ibit >= 0); + } + else + { + g = SSA_NAME_DEF_STMT (match_op[1]); + gcc_assert (is_gimple_assign (g)); + bit = gimple_assign_rhs2 (g); + } + /* Convert + _1 = __atomic_fetch_or_4 (ptr_6, mask, _3); + _2 = (int) _1; + _5 = _2 & mask; + to + _1 = __atomic_fetch_or_4 (ptr_6, mask, _3); + _6 = _1 & mask; + _5 = (int) _6; + and convert + _1 = ~mask_7; + _2 = (unsigned int) _1; + _3 = __atomic_fetch_and_4 (ptr_6, _2, 0); + _4 = (int) _3; + _5 = _4 & mask_7; + to + _1 = __atomic_fetch_and_* (ptr_6, ~mask_7, _3); + _12 = _3 & mask_7; + _5 = (int) _12; + + and Convert + _1 = __atomic_fetch_and_4 (ptr_6, ~mask, _3); + _2 = (short int) _1; + _5 = _2 & mask; + to + _1 = __atomic_fetch_and_4 (ptr_6, ~mask, _3); + _8 = _1 & mask; + _5 = (short int) _8; + */ + gimple_seq stmts = NULL; + match_op[1] = gimple_convert (&stmts, + TREE_TYPE (use_rhs), + match_op[1]); + var = gimple_build (&stmts, BIT_AND_EXPR, + TREE_TYPE (use_rhs), use_rhs, match_op[1]); + gsi = gsi_for_stmt (use_stmt); + gsi_remove (&gsi, true); + release_defs (use_stmt); + use_stmt = gimple_seq_last_stmt (stmts); + gsi = gsi_for_stmt (use_nop_stmt); + gsi_insert_seq_before (&gsi, stmts, GSI_SAME_STMT); + gimple_assign_set_rhs_with_ops (&gsi, CONVERT_EXPR, var); + update_stmt (use_nop_stmt); + } + } + else + return false; + + if (!bit) + { + if (ibit < 0) + gcc_unreachable (); + bit = build_int_cst (TREE_TYPE (lhs), ibit); + } + } + else if (optab_handler (optab, TYPE_MODE (TREE_TYPE (lhs))) + == CODE_FOR_nothing) + return false; + + tree use_lhs = gimple_assign_lhs (use_stmt); + if (!use_lhs) + return false; + + if (!bit) + { + if (TREE_CODE (mask) == INTEGER_CST) + { + if (fn == IFN_ATOMIC_BIT_TEST_AND_RESET) + mask = const_unop (BIT_NOT_EXPR, TREE_TYPE (mask), mask); + mask = fold_convert (TREE_TYPE (lhs), mask); + int ibit = tree_log2 (mask); + if (ibit < 0) + return false; + bit = build_int_cst (TREE_TYPE (lhs), ibit); + } + else if (TREE_CODE (mask) == SSA_NAME) + { + gimple *g = SSA_NAME_DEF_STMT (mask); + tree match_op; + if (gimple_nop_convert (mask, &match_op, NULL)) + { + mask = match_op; + if (TREE_CODE (mask) != SSA_NAME) + return false; + g = SSA_NAME_DEF_STMT (mask); + } + if (!is_gimple_assign (g)) + return false; + + if (fn == IFN_ATOMIC_BIT_TEST_AND_RESET) + { + if (gimple_assign_rhs_code (g) != BIT_NOT_EXPR) + return false; + mask = gimple_assign_rhs1 (g); + if (TREE_CODE (mask) != SSA_NAME) + return false; + g = SSA_NAME_DEF_STMT (mask); + } + + if (!is_gimple_assign (g) + || gimple_assign_rhs_code (g) != LSHIFT_EXPR + || !integer_onep (gimple_assign_rhs1 (g))) + return false; + bit = gimple_assign_rhs2 (g); + } + else + return false; + + tree cmp_mask; + if (gimple_assign_rhs1 (use_stmt) == lhs) + cmp_mask = gimple_assign_rhs2 (use_stmt); + else + cmp_mask = gimple_assign_rhs1 (use_stmt); + + tree match_op; + if (gimple_nop_convert (cmp_mask, &match_op, NULL)) + cmp_mask = match_op; + + if (!operand_equal_p (cmp_mask, mask, 0)) + return false; + } + + bool use_bool = true; + bool has_debug_uses = false; + imm_use_iterator iter; + gimple *g; + + if (SSA_NAME_OCCURS_IN_ABNORMAL_PHI (use_lhs)) + use_bool = false; + FOR_EACH_IMM_USE_STMT (g, iter, use_lhs) + { + enum tree_code code = ERROR_MARK; + tree op0 = NULL_TREE, op1 = NULL_TREE; + if (is_gimple_debug (g)) + { + has_debug_uses = true; + continue; + } + else if (is_gimple_assign (g)) + switch (gimple_assign_rhs_code (g)) + { + case COND_EXPR: + op1 = gimple_assign_rhs1 (g); + code = TREE_CODE (op1); + if (TREE_CODE_CLASS (code) != tcc_comparison) + break; + op0 = TREE_OPERAND (op1, 0); + op1 = TREE_OPERAND (op1, 1); + break; + case EQ_EXPR: + case NE_EXPR: + code = gimple_assign_rhs_code (g); + op0 = gimple_assign_rhs1 (g); + op1 = gimple_assign_rhs2 (g); + break; + default: + break; + } + else if (gimple_code (g) == GIMPLE_COND) + { + code = gimple_cond_code (g); + op0 = gimple_cond_lhs (g); + op1 = gimple_cond_rhs (g); + } + + if ((code == EQ_EXPR || code == NE_EXPR) + && op0 == use_lhs + && integer_zerop (op1)) + { + use_operand_p use_p; + int n = 0; + FOR_EACH_IMM_USE_ON_STMT (use_p, iter) + n++; + if (n == 1) + continue; + } + + use_bool = false; + break; + } + + tree new_lhs = make_ssa_name (TREE_TYPE (lhs)); + tree flag = build_int_cst (TREE_TYPE (lhs), use_bool); + if (has_model_arg) + g = gimple_build_call_internal (fn, 5, gimple_call_arg (call, 0), + bit, flag, gimple_call_arg (call, 2), + gimple_call_fn (call)); + else + g = gimple_build_call_internal (fn, 4, gimple_call_arg (call, 0), + bit, flag, gimple_call_fn (call)); + gimple_call_set_lhs (g, new_lhs); + gimple_set_location (g, gimple_location (call)); + gimple_move_vops (g, call); + bool throws = stmt_can_throw_internal (cfun, call); + gimple_call_set_nothrow (as_a (g), + gimple_call_nothrow_p (as_a (call))); + gimple_stmt_iterator gsi = *gsip; + gsi_insert_after (&gsi, g, GSI_NEW_STMT); + edge e = NULL; + if (throws) + { + maybe_clean_or_replace_eh_stmt (call, g); + if (after || (use_bool && has_debug_uses)) + e = find_fallthru_edge (gsi_bb (gsi)->succs); + } + if (after) + { + /* The internal function returns the value of the specified bit + before the atomic operation. If we are interested in the value + of the specified bit after the atomic operation (makes only sense + for xor, otherwise the bit content is compile time known), + we need to invert the bit. */ + tree mask_convert = mask; + gimple_seq stmts = NULL; + if (!use_bool) + mask_convert = gimple_convert (&stmts, TREE_TYPE (lhs), mask); + new_lhs = gimple_build (&stmts, BIT_XOR_EXPR, TREE_TYPE (lhs), new_lhs, + use_bool ? build_int_cst (TREE_TYPE (lhs), 1) + : mask_convert); + if (throws) + { + gsi_insert_seq_on_edge_immediate (e, stmts); + gsi = gsi_for_stmt (gimple_seq_last (stmts)); + } + else + gsi_insert_seq_after (&gsi, stmts, GSI_NEW_STMT); + } + if (use_bool && has_debug_uses) + { + tree temp = NULL_TREE; + if (!throws || after || single_pred_p (e->dest)) + { + temp = build_debug_expr_decl (TREE_TYPE (lhs)); + tree t = build2 (LSHIFT_EXPR, TREE_TYPE (lhs), new_lhs, bit); + g = gimple_build_debug_bind (temp, t, g); + if (throws && !after) + { + gsi = gsi_after_labels (e->dest); + gsi_insert_before (&gsi, g, GSI_SAME_STMT); + } + else + gsi_insert_after (&gsi, g, GSI_NEW_STMT); + } + FOR_EACH_IMM_USE_STMT (g, iter, use_lhs) + if (is_gimple_debug (g)) + { + use_operand_p use_p; + if (temp == NULL_TREE) + gimple_debug_bind_reset_value (g); + else + FOR_EACH_IMM_USE_ON_STMT (use_p, iter) + SET_USE (use_p, temp); + update_stmt (g); + } + } + SSA_NAME_OCCURS_IN_ABNORMAL_PHI (new_lhs) + = SSA_NAME_OCCURS_IN_ABNORMAL_PHI (use_lhs); + replace_uses_by (use_lhs, new_lhs); + gsi = gsi_for_stmt (use_stmt); + gsi_remove (&gsi, true); + release_defs (use_stmt); + gsi_remove (gsip, true); + release_ssa_name (lhs); + return true; +} + +/* Optimize + _4 = __atomic_add_fetch_* (ptr_6, arg_2, _3); + _5 = _4 == 0; + to + _4 = .ATOMIC_ADD_FETCH_CMP_0 (EQ_EXPR, ptr_6, arg_2, _3); + _5 = _4; + Similarly for __sync_add_and_fetch_* (without the ", _3" part + in there). */ + +static bool +optimize_atomic_op_fetch_cmp_0 (gimple_stmt_iterator *gsip, + enum internal_fn fn, bool has_model_arg) +{ + gimple *call = gsi_stmt (*gsip); + tree lhs = gimple_call_lhs (call); + use_operand_p use_p; + gimple *use_stmt; + + if (!flag_inline_atomics + || !gimple_call_builtin_p (call, BUILT_IN_NORMAL) + || !lhs + || SSA_NAME_OCCURS_IN_ABNORMAL_PHI (lhs) + || !single_imm_use (lhs, &use_p, &use_stmt) + || !gimple_vdef (call)) + return false; + + optab optab; + switch (fn) + { + case IFN_ATOMIC_ADD_FETCH_CMP_0: + optab = atomic_add_fetch_cmp_0_optab; + break; + case IFN_ATOMIC_SUB_FETCH_CMP_0: + optab = atomic_sub_fetch_cmp_0_optab; + break; + case IFN_ATOMIC_AND_FETCH_CMP_0: + optab = atomic_and_fetch_cmp_0_optab; + break; + case IFN_ATOMIC_OR_FETCH_CMP_0: + optab = atomic_or_fetch_cmp_0_optab; + break; + case IFN_ATOMIC_XOR_FETCH_CMP_0: + optab = atomic_xor_fetch_cmp_0_optab; + break; + default: + return false; + } + + if (optab_handler (optab, TYPE_MODE (TREE_TYPE (lhs))) + == CODE_FOR_nothing) + return false; + + tree use_lhs = lhs; + if (gimple_assign_cast_p (use_stmt)) + { + use_lhs = gimple_assign_lhs (use_stmt); + if (!tree_nop_conversion_p (TREE_TYPE (use_lhs), TREE_TYPE (lhs)) + || (!INTEGRAL_TYPE_P (TREE_TYPE (use_lhs)) + && !POINTER_TYPE_P (TREE_TYPE (use_lhs))) + || SSA_NAME_OCCURS_IN_ABNORMAL_PHI (use_lhs) + || !single_imm_use (use_lhs, &use_p, &use_stmt)) + return false; + } + enum tree_code code = ERROR_MARK; + tree op0 = NULL_TREE, op1 = NULL_TREE; + if (is_gimple_assign (use_stmt)) + switch (gimple_assign_rhs_code (use_stmt)) + { + case COND_EXPR: + op1 = gimple_assign_rhs1 (use_stmt); + code = TREE_CODE (op1); + if (TREE_CODE_CLASS (code) == tcc_comparison) + { + op0 = TREE_OPERAND (op1, 0); + op1 = TREE_OPERAND (op1, 1); + } + break; + default: + code = gimple_assign_rhs_code (use_stmt); + if (TREE_CODE_CLASS (code) == tcc_comparison) + { + op0 = gimple_assign_rhs1 (use_stmt); + op1 = gimple_assign_rhs2 (use_stmt); + } + break; + } + else if (gimple_code (use_stmt) == GIMPLE_COND) + { + code = gimple_cond_code (use_stmt); + op0 = gimple_cond_lhs (use_stmt); + op1 = gimple_cond_rhs (use_stmt); + } + + switch (code) + { + case LT_EXPR: + case LE_EXPR: + case GT_EXPR: + case GE_EXPR: + if (!INTEGRAL_TYPE_P (TREE_TYPE (use_lhs)) + || TREE_CODE (TREE_TYPE (use_lhs)) == BOOLEAN_TYPE + || TYPE_UNSIGNED (TREE_TYPE (use_lhs))) + return false; + /* FALLTHRU */ + case EQ_EXPR: + case NE_EXPR: + if (op0 == use_lhs && integer_zerop (op1)) + break; + return false; + default: + return false; + } + + int encoded; + switch (code) + { + /* Use special encoding of the operation. We want to also + encode the mode in the first argument and for neither EQ_EXPR + etc. nor EQ etc. we can rely it will fit into QImode. */ + case EQ_EXPR: encoded = ATOMIC_OP_FETCH_CMP_0_EQ; break; + case NE_EXPR: encoded = ATOMIC_OP_FETCH_CMP_0_NE; break; + case LT_EXPR: encoded = ATOMIC_OP_FETCH_CMP_0_LT; break; + case LE_EXPR: encoded = ATOMIC_OP_FETCH_CMP_0_LE; break; + case GT_EXPR: encoded = ATOMIC_OP_FETCH_CMP_0_GT; break; + case GE_EXPR: encoded = ATOMIC_OP_FETCH_CMP_0_GE; break; + default: gcc_unreachable (); + } + + tree new_lhs = make_ssa_name (boolean_type_node); + gimple *g; + tree flag = build_int_cst (TREE_TYPE (lhs), encoded); + if (has_model_arg) + g = gimple_build_call_internal (fn, 5, flag, + gimple_call_arg (call, 0), + gimple_call_arg (call, 1), + gimple_call_arg (call, 2), + gimple_call_fn (call)); + else + g = gimple_build_call_internal (fn, 4, flag, + gimple_call_arg (call, 0), + gimple_call_arg (call, 1), + gimple_call_fn (call)); + gimple_call_set_lhs (g, new_lhs); + gimple_set_location (g, gimple_location (call)); + gimple_move_vops (g, call); + bool throws = stmt_can_throw_internal (cfun, call); + gimple_call_set_nothrow (as_a (g), + gimple_call_nothrow_p (as_a (call))); + gimple_stmt_iterator gsi = *gsip; + gsi_insert_after (&gsi, g, GSI_SAME_STMT); + if (throws) + maybe_clean_or_replace_eh_stmt (call, g); + if (is_gimple_assign (use_stmt)) + switch (gimple_assign_rhs_code (use_stmt)) + { + case COND_EXPR: + gimple_assign_set_rhs1 (use_stmt, new_lhs); + break; + default: + gsi = gsi_for_stmt (use_stmt); + if (tree ulhs = gimple_assign_lhs (use_stmt)) + if (useless_type_conversion_p (TREE_TYPE (ulhs), + boolean_type_node)) + { + gimple_assign_set_rhs_with_ops (&gsi, SSA_NAME, new_lhs); + break; + } + gimple_assign_set_rhs_with_ops (&gsi, NOP_EXPR, new_lhs); + break; + } + else if (gimple_code (use_stmt) == GIMPLE_COND) + { + gcond *use_cond = as_a (use_stmt); + gimple_cond_set_code (use_cond, NE_EXPR); + gimple_cond_set_lhs (use_cond, new_lhs); + gimple_cond_set_rhs (use_cond, boolean_false_node); + } + + update_stmt (use_stmt); + if (use_lhs != lhs) + { + gsi = gsi_for_stmt (SSA_NAME_DEF_STMT (use_lhs)); + gsi_remove (&gsi, true); + release_ssa_name (use_lhs); + } + gsi_remove (gsip, true); + release_ssa_name (lhs); + return true; +} + +/* Process builtin CALL located at GSI. + Currently it is only fgr atomic functions optimizations from above. */ +static void +gimple_isel_builtin_call (gcall *call, gimple_stmt_iterator *gsi) +{ + /* Don't handle these in non optimization mode or optimize debug mode. */ + if (!optimize || optimize_debug) + return; + + if (!gimple_call_builtin_p (call, BUILT_IN_NORMAL)) + return; + + tree callee = gimple_call_fndecl (call); + + switch (DECL_FUNCTION_CODE (callee)) + { +#define CASE_ATOMIC(NAME) \ + case BUILT_IN_##NAME##_1: \ + case BUILT_IN_##NAME##_2: \ + case BUILT_IN_##NAME##_4: \ + case BUILT_IN_##NAME##_8: \ + case BUILT_IN_##NAME##_16 +#define CASE_ATOMIC_CMP0(ATOMIC, SYNC) \ + CASE_ATOMIC(ATOMIC_##ATOMIC): \ + optimize_atomic_op_fetch_cmp_0 (gsi, \ + IFN_ATOMIC_##ATOMIC##_CMP_0, \ + true); \ + break; \ + CASE_ATOMIC(SYNC_##SYNC): \ + optimize_atomic_op_fetch_cmp_0 (gsi, \ + IFN_ATOMIC_##ATOMIC##_CMP_0, \ + false); \ + break; + + + CASE_ATOMIC_CMP0(ADD_FETCH, ADD_AND_FETCH) + CASE_ATOMIC_CMP0(SUB_FETCH, SUB_AND_FETCH) + CASE_ATOMIC_CMP0(AND_FETCH, AND_AND_FETCH) + CASE_ATOMIC_CMP0(OR_FETCH, OR_AND_FETCH) +#define CASE_ATOMIC_BIT_TEST_AND(ATOMIC, SYNC, FN, AFTER) \ + CASE_ATOMIC(ATOMIC_##ATOMIC): \ + optimize_atomic_bit_test_and (gsi, \ + IFN_ATOMIC_BIT_TEST_AND_##FN, \ + true, AFTER); \ + break; \ + CASE_ATOMIC(SYNC_##SYNC): \ + optimize_atomic_bit_test_and (gsi, \ + IFN_ATOMIC_BIT_TEST_AND_##FN, \ + false, AFTER); \ + break; + CASE_ATOMIC_BIT_TEST_AND(FETCH_OR, FETCH_AND_OR, SET, false) + CASE_ATOMIC_BIT_TEST_AND(FETCH_XOR, FETCH_AND_XOR, COMPLEMENT, false) + CASE_ATOMIC_BIT_TEST_AND(FETCH_AND, FETCH_AND_AND, RESET, false) + + CASE_ATOMIC(ATOMIC_XOR_FETCH): + if (optimize_atomic_bit_test_and + (gsi, IFN_ATOMIC_BIT_TEST_AND_COMPLEMENT, true, true)) + break; + optimize_atomic_op_fetch_cmp_0 (gsi, + IFN_ATOMIC_XOR_FETCH_CMP_0, + true); + break; + CASE_ATOMIC(SYNC_XOR_AND_FETCH): + if (optimize_atomic_bit_test_and + (gsi, IFN_ATOMIC_BIT_TEST_AND_COMPLEMENT, false, true)) + break; + optimize_atomic_op_fetch_cmp_0 (gsi, + IFN_ATOMIC_XOR_FETCH_CMP_0, + false); + break; + + default:; + } +} + /* Iterate all gimple statements and perform pre RTL expansion GIMPLE massaging to improve instruction selection. */ @@ -411,6 +1362,11 @@ pass_gimple_isel::execute (struct function *fun) if (gsi_end_p (gsi)) break; + if (gcall *call = dyn_cast (*gsi)) + { + gimple_isel_builtin_call (call, &gsi); + continue; + } gassign *stmt = dyn_cast (*gsi); if (!stmt) continue; diff --git a/gcc/gimple-ssa-pta-constraints.cc b/gcc/gimple-ssa-pta-constraints.cc new file mode 100644 index 000000000000..7212707858e5 --- /dev/null +++ b/gcc/gimple-ssa-pta-constraints.cc @@ -0,0 +1,4184 @@ +/* Constraint builder for tree based points-to analysis + Copyright (C) 2005-2025 Free Software Foundation, Inc. + Contributed by Daniel Berlin + + This file is part of GCC. + + GCC is free software; you can redistribute it and/or modify + 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. + + GCC 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 GCC; see the file COPYING3. If not see + . */ + +#include "config.h" +#include "system.h" +#include "coretypes.h" +#include "backend.h" +#include "rtl.h" +#include "tree.h" +#include "gimple.h" +#include "alloc-pool.h" +#include "tree-pass.h" +#include "ssa.h" +#include "cgraph.h" +#include "tree-pretty-print.h" +#include "diagnostic-core.h" +#include "fold-const.h" +#include "stor-layout.h" +#include "stmt.h" +#include "gimple-iterator.h" +#include "tree-into-ssa.h" +#include "tree-dfa.h" +#include "gimple-walk.h" +#include "varasm.h" +#include "stringpool.h" +#include "attribs.h" +#include "tree-ssa.h" +#include "tree-cfg.h" +#include "gimple-range.h" +#include "ipa-modref-tree.h" +#include "ipa-modref.h" +#include "attr-fnspec.h" + +#include "tree-ssa-structalias.h" +#include "gimple-ssa-pta-constraints.h" + +using namespace pointer_analysis; + +/* Map from trees to variable infos. */ +static hash_map *vi_for_tree; + +/* A map mapping call statements to per-stmt variables for uses + and clobbers specific to the call. */ +static hash_map *call_stmt_vars; + +static unsigned int create_variable_info_for (tree, const char *, bool); +static inline bool type_can_have_subvars (const_tree); +static void make_param_constraints (varinfo_t); + +/* Lookup or create the variable for the call statement CALL. */ + +static varinfo_t +get_call_vi (gcall *call) +{ + varinfo_t vi, vi2; + + bool existed; + varinfo_t *slot_p = &call_stmt_vars->get_or_insert (call, &existed); + if (existed) + return *slot_p; + + vi = new_var_info (NULL_TREE, "CALLUSED", true); + vi->offset = 0; + vi->size = 1; + vi->fullsize = 2; + vi->is_full_var = true; + vi->is_reg_var = true; + + vi2 = new_var_info (NULL_TREE, "CALLCLOBBERED", true); + vi2->offset = 1; + vi2->size = 1; + vi2->fullsize = 2; + vi2->is_full_var = true; + vi2->is_reg_var = true; + + vi->next = vi2->id; + + *slot_p = vi; + return vi; +} + +/* Lookup or create the variable for the call statement CALL representing + the uses. */ + +static varinfo_t +get_call_use_vi (gcall *call) +{ + return get_call_vi (call); +} + +/* Lookup or create the variable for the call statement CALL representing + the clobbers. */ + +static varinfo_t ATTRIBUTE_UNUSED +get_call_clobber_vi (gcall *call) +{ + return vi_next (get_call_vi (call)); +} + + +static void get_constraint_for_1 (tree, vec *, bool, bool); +static void get_constraint_for (tree, vec *); +static void get_constraint_for_rhs (tree, vec *); +static void do_deref (vec *); + +/* Allocator for 'constraints' vector. */ + +static object_allocator constraint_pool ("Constraint pool"); + +/* Create a new constraint consisting of LHS and RHS expressions. */ + +static constraint_t +new_constraint (const struct constraint_expr lhs, + const struct constraint_expr rhs) +{ + constraint_t ret = constraint_pool.allocate (); + ret->lhs = lhs; + ret->rhs = rhs; + return ret; +} + +/* Insert ID as the variable id for tree T in the vi_for_tree map. */ + +static void +insert_vi_for_tree (tree t, varinfo_t vi) +{ + gcc_assert (vi); + bool existed = vi_for_tree->put (t, vi); + gcc_assert (!existed); +} + +/* Return a printable name for DECL. */ + +static const char * +alias_get_name (tree decl) +{ + const char *res = "NULL"; + if (dump_file) + { + char *temp = NULL; + if (TREE_CODE (decl) == SSA_NAME) + { + res = get_name (decl); + temp = xasprintf ("%s_%u", res ? res : "", SSA_NAME_VERSION (decl)); + } + else if (HAS_DECL_ASSEMBLER_NAME_P (decl) + && DECL_ASSEMBLER_NAME_SET_P (decl)) + res = IDENTIFIER_POINTER (DECL_ASSEMBLER_NAME_RAW (decl)); + else if (DECL_P (decl)) + { + res = get_name (decl); + if (!res) + temp = xasprintf ("D.%u", DECL_UID (decl)); + } + + if (temp) + { + res = ggc_strdup (temp); + free (temp); + } + } + + return res; +} + +/* Find the variable id for tree T in the map. + If T doesn't exist in the map, create an entry for it and return it. */ + +static varinfo_t +get_vi_for_tree (tree t) +{ + varinfo_t *slot = vi_for_tree->get (t); + if (slot == NULL) + { + unsigned int id = create_variable_info_for (t, alias_get_name (t), false); + return get_varinfo (id); + } + + return *slot; +} + +/* Get a scalar constraint expression for a new temporary variable. */ + +static struct constraint_expr +new_scalar_tmp_constraint_exp (const char *name, bool add_id) +{ + struct constraint_expr tmp; + varinfo_t vi; + + vi = new_var_info (NULL_TREE, name, add_id); + vi->offset = 0; + vi->size = -1; + vi->fullsize = -1; + vi->is_full_var = 1; + vi->is_reg_var = 1; + + tmp.var = vi->id; + tmp.type = SCALAR; + tmp.offset = 0; + + return tmp; +} + +/* Get a constraint expression vector from an SSA_VAR_P node. + If address_p is true, the result will be taken its address of. */ + +static void +get_constraint_for_ssa_var (tree t, vec *results, bool address_p) +{ + struct constraint_expr cexpr; + varinfo_t vi; + + /* We allow FUNCTION_DECLs here even though it doesn't make much sense. */ + gcc_assert (TREE_CODE (t) == SSA_NAME || DECL_P (t)); + + if (TREE_CODE (t) == SSA_NAME + && SSA_NAME_IS_DEFAULT_DEF (t)) + { + /* For parameters, get at the points-to set for the actual parm + decl. */ + if (TREE_CODE (SSA_NAME_VAR (t)) == PARM_DECL + || TREE_CODE (SSA_NAME_VAR (t)) == RESULT_DECL) + { + get_constraint_for_ssa_var (SSA_NAME_VAR (t), results, address_p); + return; + } + /* For undefined SSA names return nothing. */ + else if (!ssa_defined_default_def_p (t)) + { + cexpr.var = nothing_id; + cexpr.type = SCALAR; + cexpr.offset = 0; + results->safe_push (cexpr); + return; + } + } + + /* For global variables resort to the alias target. */ + if (VAR_P (t) && (TREE_STATIC (t) || DECL_EXTERNAL (t))) + { + varpool_node *node = varpool_node::get (t); + if (node && node->alias && node->analyzed) + { + node = node->ultimate_alias_target (); + /* Canonicalize the PT uid of all aliases to the ultimate target. + ??? Hopefully the set of aliases can't change in a way that + changes the ultimate alias target. */ + gcc_assert ((! DECL_PT_UID_SET_P (node->decl) + || DECL_PT_UID (node->decl) == DECL_UID (node->decl)) + && (! DECL_PT_UID_SET_P (t) + || DECL_PT_UID (t) == DECL_UID (node->decl))); + DECL_PT_UID (t) = DECL_UID (node->decl); + t = node->decl; + } + + /* If this is decl may bind to NULL note that. */ + if (address_p + && (! node || ! node->nonzero_address ())) + { + cexpr.var = nothing_id; + cexpr.type = SCALAR; + cexpr.offset = 0; + results->safe_push (cexpr); + } + } + + vi = get_vi_for_tree (t); + cexpr.var = vi->id; + cexpr.type = SCALAR; + cexpr.offset = 0; + + /* If we are not taking the address of the constraint expr, add all + sub-fiels of the variable as well. */ + if (!address_p + && !vi->is_full_var) + { + for (; vi; vi = vi_next (vi)) + { + cexpr.var = vi->id; + results->safe_push (cexpr); + } + return; + } + + results->safe_push (cexpr); +} + +/* Process constraint T, performing various simplifications and then + adding it to our list of overall constraints. */ + +static void +process_constraint (constraint_t t) +{ + struct constraint_expr rhs = t->rhs; + struct constraint_expr lhs = t->lhs; + + gcc_assert (rhs.var < varmap.length ()); + gcc_assert (lhs.var < varmap.length ()); + + /* If we didn't get any useful constraint from the lhs we get + &ANYTHING as fallback from get_constraint_for. Deal with + it here by turning it into *ANYTHING. */ + if (lhs.type == ADDRESSOF + && lhs.var == anything_id) + t->lhs.type = lhs.type = DEREF; + + /* ADDRESSOF on the lhs is invalid. */ + gcc_assert (lhs.type != ADDRESSOF); + + /* We shouldn't add constraints from things that cannot have pointers. + It's not completely trivial to avoid in the callers, so do it here. */ + if (rhs.type != ADDRESSOF + && !get_varinfo (rhs.var)->may_have_pointers) + return; + + /* Likewise adding to the solution of a non-pointer var isn't useful. */ + if (!get_varinfo (lhs.var)->may_have_pointers) + return; + + /* This can happen in our IR with things like n->a = *p. */ + if (rhs.type == DEREF && lhs.type == DEREF && rhs.var != anything_id) + { + /* Split into tmp = *rhs, *lhs = tmp. */ + struct constraint_expr tmplhs; + tmplhs = new_scalar_tmp_constraint_exp ("doubledereftmp", true); + process_constraint (new_constraint (tmplhs, rhs)); + process_constraint (new_constraint (lhs, tmplhs)); + } + else if ((rhs.type != SCALAR || rhs.offset != 0) && lhs.type == DEREF) + { + /* Split into tmp = &rhs, *lhs = tmp. */ + struct constraint_expr tmplhs; + tmplhs = new_scalar_tmp_constraint_exp ("derefaddrtmp", true); + process_constraint (new_constraint (tmplhs, rhs)); + process_constraint (new_constraint (lhs, tmplhs)); + } + else + { + gcc_assert (rhs.type != ADDRESSOF || rhs.offset == 0); + if (rhs.type == ADDRESSOF) + get_varinfo (get_varinfo (rhs.var)->head)->address_taken = true; + constraints.safe_push (t); + } +} + + +/* Return the position, in bits, of FIELD_DECL from the beginning of its + structure. */ + +static unsigned HOST_WIDE_INT +bitpos_of_field (const tree fdecl) +{ + if (!tree_fits_uhwi_p (DECL_FIELD_OFFSET (fdecl)) + || !tree_fits_uhwi_p (DECL_FIELD_BIT_OFFSET (fdecl))) + return -1; + + return (tree_to_uhwi (DECL_FIELD_OFFSET (fdecl)) * BITS_PER_UNIT + + tree_to_uhwi (DECL_FIELD_BIT_OFFSET (fdecl))); +} + + +/* Get constraint expressions for offsetting PTR by OFFSET. Stores the + resulting constraint expressions in *RESULTS. */ + +static void +get_constraint_for_ptr_offset (tree ptr, tree offset, + vec *results) +{ + struct constraint_expr c; + unsigned int j, n; + HOST_WIDE_INT rhsoffset; + + /* If we do not do field-sensitive PTA adding offsets to pointers + does not change the points-to solution. */ + if (!use_field_sensitive) + { + get_constraint_for_rhs (ptr, results); + return; + } + + /* If the offset is not a non-negative integer constant that fits + in a HOST_WIDE_INT, we have to fall back to a conservative + solution which includes all sub-fields of all pointed-to + variables of ptr. */ + if (offset == NULL_TREE + || TREE_CODE (offset) != INTEGER_CST) + rhsoffset = UNKNOWN_OFFSET; + else + { + /* Sign-extend the offset. */ + offset_int soffset = offset_int::from (wi::to_wide (offset), SIGNED); + if (!wi::fits_shwi_p (soffset)) + rhsoffset = UNKNOWN_OFFSET; + else + { + /* Make sure the bit-offset also fits. */ + HOST_WIDE_INT rhsunitoffset = soffset.to_shwi (); + rhsoffset = rhsunitoffset * (unsigned HOST_WIDE_INT) BITS_PER_UNIT; + if (rhsunitoffset != rhsoffset / BITS_PER_UNIT) + rhsoffset = UNKNOWN_OFFSET; + } + } + + get_constraint_for_rhs (ptr, results); + if (rhsoffset == 0) + return; + + /* As we are eventually appending to the solution do not use + vec::iterate here. */ + n = results->length (); + for (j = 0; j < n; j++) + { + varinfo_t curr; + c = (*results)[j]; + curr = get_varinfo (c.var); + + if (c.type == ADDRESSOF + /* If this varinfo represents a full variable just use it. */ + && curr->is_full_var) + ; + else if (c.type == ADDRESSOF + /* If we do not know the offset add all subfields. */ + && rhsoffset == UNKNOWN_OFFSET) + { + varinfo_t temp = get_varinfo (curr->head); + do + { + struct constraint_expr c2; + c2.var = temp->id; + c2.type = ADDRESSOF; + c2.offset = 0; + if (c2.var != c.var) + results->safe_push (c2); + temp = vi_next (temp); + } + while (temp); + } + else if (c.type == ADDRESSOF) + { + varinfo_t temp; + unsigned HOST_WIDE_INT offset = curr->offset + rhsoffset; + + /* If curr->offset + rhsoffset is less than zero adjust it. */ + if (rhsoffset < 0 + && curr->offset < offset) + offset = 0; + + /* We have to include all fields that overlap the current + field shifted by rhsoffset. And we include at least + the last or the first field of the variable to represent + reachability of off-bound addresses, in particular &object + 1, + conservatively correct. */ + temp = first_or_preceding_vi_for_offset (curr, offset); + c.var = temp->id; + c.offset = 0; + temp = vi_next (temp); + while (temp + && temp->offset < offset + curr->size) + { + struct constraint_expr c2; + c2.var = temp->id; + c2.type = ADDRESSOF; + c2.offset = 0; + results->safe_push (c2); + temp = vi_next (temp); + } + } + else if (c.type == SCALAR) + { + gcc_assert (c.offset == 0); + c.offset = rhsoffset; + } + else + /* We shouldn't get any DEREFs here. */ + gcc_unreachable (); + + (*results)[j] = c; + } +} + + +/* Given a COMPONENT_REF T, return the constraint_expr vector for it. + If address_p is true the result will be taken its address of. + If lhs_p is true then the constraint expression is assumed to be used + as the lhs. */ + +static void +get_constraint_for_component_ref (tree t, vec *results, + bool address_p, bool lhs_p) +{ + tree orig_t = t; + poly_int64 bitsize = -1; + poly_int64 bitmaxsize = -1; + poly_int64 bitpos; + bool reverse; + tree forzero; + + /* Some people like to do cute things like take the address of + &0->a.b. */ + forzero = t; + while (handled_component_p (forzero) + || INDIRECT_REF_P (forzero) + || TREE_CODE (forzero) == MEM_REF) + forzero = TREE_OPERAND (forzero, 0); + + if (CONSTANT_CLASS_P (forzero) && integer_zerop (forzero)) + { + struct constraint_expr temp; + + temp.offset = 0; + temp.var = integer_id; + temp.type = SCALAR; + results->safe_push (temp); + return; + } + + t = get_ref_base_and_extent (t, &bitpos, &bitsize, &bitmaxsize, &reverse); + + /* We can end up here for component references on a + VIEW_CONVERT_EXPR <>(&foobar) or things like a + BIT_FIELD_REF <&MEM[(void *)&b + 4B], ...>. So for + symbolic constants simply give up. */ + if (TREE_CODE (t) == ADDR_EXPR) + { + constraint_expr result; + result.type = SCALAR; + result.var = anything_id; + result.offset = 0; + results->safe_push (result); + return; + } + + /* Avoid creating pointer-offset constraints, so handle MEM_REF + offsets directly. Pretend to take the address of the base, + we'll take care of adding the required subset of sub-fields below. */ + if (TREE_CODE (t) == MEM_REF + && !integer_zerop (TREE_OPERAND (t, 0))) + { + poly_offset_int off = mem_ref_offset (t); + off <<= LOG2_BITS_PER_UNIT; + off += bitpos; + poly_int64 off_hwi; + if (off.to_shwi (&off_hwi)) + bitpos = off_hwi; + else + { + bitpos = 0; + bitmaxsize = -1; + } + get_constraint_for_1 (TREE_OPERAND (t, 0), results, false, lhs_p); + do_deref (results); + } + else + get_constraint_for_1 (t, results, true, lhs_p); + + /* Strip off nothing_id. */ + if (results->length () == 2) + { + gcc_assert ((*results)[0].var == nothing_id); + results->unordered_remove (0); + } + gcc_assert (results->length () == 1); + struct constraint_expr &result = results->last (); + + if (result.type == SCALAR + && get_varinfo (result.var)->is_full_var) + /* For single-field vars do not bother about the offset. */ + result.offset = 0; + else if (result.type == SCALAR) + { + /* In languages like C, you can access one past the end of an + array. You aren't allowed to dereference it, so we can + ignore this constraint. When we handle pointer subtraction, + we may have to do something cute here. */ + + if (maybe_lt (poly_uint64 (bitpos), get_varinfo (result.var)->fullsize) + && maybe_ne (bitmaxsize, 0)) + { + /* It's also not true that the constraint will actually start at the + right offset, it may start in some padding. We only care about + setting the constraint to the first actual field it touches, so + walk to find it. */ + struct constraint_expr cexpr = result; + varinfo_t curr; + results->pop (); + cexpr.offset = 0; + for (curr = get_varinfo (cexpr.var); curr; curr = vi_next (curr)) + { + if (ranges_maybe_overlap_p (poly_int64 (curr->offset), + curr->size, bitpos, bitmaxsize)) + { + cexpr.var = curr->id; + results->safe_push (cexpr); + if (address_p) + break; + } + } + /* If we are going to take the address of this field then + to be able to compute reachability correctly add at least + the last field of the variable. */ + if (address_p && results->length () == 0) + { + curr = get_varinfo (cexpr.var); + while (curr->next != 0) + curr = vi_next (curr); + cexpr.var = curr->id; + results->safe_push (cexpr); + } + else if (results->length () == 0) + /* Assert that we found *some* field there. The user couldn't be + accessing *only* padding. */ + /* Still the user could access one past the end of an array + embedded in a struct resulting in accessing *only* padding. */ + /* Or accessing only padding via type-punning to a type + that has a filed just in padding space. */ + { + cexpr.type = SCALAR; + cexpr.var = anything_id; + cexpr.offset = 0; + results->safe_push (cexpr); + } + } + else if (known_eq (bitmaxsize, 0)) + { + if (dump_file && (dump_flags & TDF_DETAILS)) + fprintf (dump_file, "Access to zero-sized part of variable, " + "ignoring\n"); + } + else + if (dump_file && (dump_flags & TDF_DETAILS)) + fprintf (dump_file, "Access to past the end of variable, ignoring\n"); + } + else if (result.type == DEREF) + { + /* If we do not know exactly where the access goes say so. Note + that only for non-structure accesses we know that we access + at most one subfiled of any variable. */ + HOST_WIDE_INT const_bitpos; + if (!bitpos.is_constant (&const_bitpos) + || const_bitpos == -1 + || maybe_ne (bitsize, bitmaxsize) + || AGGREGATE_TYPE_P (TREE_TYPE (orig_t)) + || result.offset == UNKNOWN_OFFSET) + result.offset = UNKNOWN_OFFSET; + else + result.offset += const_bitpos; + } + else if (result.type == ADDRESSOF) + { + /* We can end up here for component references on constants like + VIEW_CONVERT_EXPR <>({ 0, 1, 2, 3 })[i]. */ + result.type = SCALAR; + result.var = anything_id; + result.offset = 0; + } + else + gcc_unreachable (); +} + + +/* Dereference the constraint expression CONS, and return the result. + DEREF (ADDRESSOF) = SCALAR + DEREF (SCALAR) = DEREF + DEREF (DEREF) = (temp = DEREF1; result = DEREF (temp)) + This is needed so that we can handle dereferencing DEREF constraints. */ + +static void +do_deref (vec *constraints) +{ + struct constraint_expr *c; + unsigned int i = 0; + + FOR_EACH_VEC_ELT (*constraints, i, c) + { + if (c->type == SCALAR) + c->type = DEREF; + else if (c->type == ADDRESSOF) + c->type = SCALAR; + else if (c->type == DEREF) + { + struct constraint_expr tmplhs; + tmplhs = new_scalar_tmp_constraint_exp ("dereftmp", true); + process_constraint (new_constraint (tmplhs, *c)); + c->var = tmplhs.var; + } + else + gcc_unreachable (); + } +} + +/* Given a tree T, return the constraint expression for taking the + address of it. */ + +static void +get_constraint_for_address_of (tree t, vec *results) +{ + struct constraint_expr *c; + unsigned int i; + + get_constraint_for_1 (t, results, true, true); + + FOR_EACH_VEC_ELT (*results, i, c) + { + if (c->type == DEREF) + c->type = SCALAR; + else + c->type = ADDRESSOF; + } +} + +/* Given a tree T, return the constraint expression for it. */ + +static void +get_constraint_for_1 (tree t, vec *results, bool address_p, + bool lhs_p) +{ + struct constraint_expr temp; + + /* x = integer is all glommed to a single variable, which doesn't + point to anything by itself. That is, of course, unless it is an + integer constant being treated as a pointer, in which case, we + will return that this is really the addressof anything. This + happens below, since it will fall into the default case. The only + case we know something about an integer treated like a pointer is + when it is the NULL pointer, and then we just say it points to + NULL. + + Do not do that if -fno-delete-null-pointer-checks though, because + in that case *NULL does not fail, so it _should_ alias *anything. + It is not worth adding a new option or renaming the existing one, + since this case is relatively obscure. */ + if ((TREE_CODE (t) == INTEGER_CST + && integer_zerop (t)) + /* The only valid CONSTRUCTORs in gimple with pointer typed + elements are zero-initializer. But in IPA mode we also + process global initializers, so verify at least. */ + || (TREE_CODE (t) == CONSTRUCTOR + && CONSTRUCTOR_NELTS (t) == 0)) + { + if (flag_delete_null_pointer_checks) + temp.var = nothing_id; + else + temp.var = nonlocal_id; + temp.type = ADDRESSOF; + temp.offset = 0; + results->safe_push (temp); + return; + } + + /* String constants are read-only, ideally we'd have a CONST_DECL + for those. */ + if (TREE_CODE (t) == STRING_CST) + { + temp.var = string_id; + temp.type = SCALAR; + temp.offset = 0; + results->safe_push (temp); + return; + } + + switch (TREE_CODE_CLASS (TREE_CODE (t))) + { + case tcc_expression: + { + switch (TREE_CODE (t)) + { + case ADDR_EXPR: + get_constraint_for_address_of (TREE_OPERAND (t, 0), results); + return; + default:; + } + break; + } + case tcc_reference: + { + if (!lhs_p && TREE_THIS_VOLATILE (t)) + /* Fall back to anything. */ + break; + + switch (TREE_CODE (t)) + { + case MEM_REF: + { + struct constraint_expr cs; + varinfo_t vi, curr; + get_constraint_for_ptr_offset (TREE_OPERAND (t, 0), + TREE_OPERAND (t, 1), results); + do_deref (results); + + /* If we are not taking the address then make sure to process + all subvariables we might access. */ + if (address_p) + return; + + cs = results->last (); + if (cs.type == DEREF + && type_can_have_subvars (TREE_TYPE (t))) + { + /* For dereferences this means we have to defer it + to solving time. */ + results->last ().offset = UNKNOWN_OFFSET; + return; + } + if (cs.type != SCALAR) + return; + + vi = get_varinfo (cs.var); + curr = vi_next (vi); + if (!vi->is_full_var + && curr) + { + unsigned HOST_WIDE_INT size; + if (tree_fits_uhwi_p (TYPE_SIZE (TREE_TYPE (t)))) + size = tree_to_uhwi (TYPE_SIZE (TREE_TYPE (t))); + else + size = -1; + for (; curr; curr = vi_next (curr)) + { + /* The start of the access might happen anywhere + within vi, so conservatively assume it was + at its end. */ + if (curr->offset - (vi->offset + vi->size - 1) < size) + { + cs.var = curr->id; + results->safe_push (cs); + } + else + break; + } + } + return; + } + case ARRAY_REF: + case ARRAY_RANGE_REF: + case COMPONENT_REF: + case IMAGPART_EXPR: + case REALPART_EXPR: + case BIT_FIELD_REF: + get_constraint_for_component_ref (t, results, address_p, lhs_p); + return; + case VIEW_CONVERT_EXPR: + get_constraint_for_1 (TREE_OPERAND (t, 0), results, address_p, + lhs_p); + return; + /* We are missing handling for TARGET_MEM_REF here. */ + default:; + } + break; + } + case tcc_exceptional: + { + switch (TREE_CODE (t)) + { + case SSA_NAME: + { + get_constraint_for_ssa_var (t, results, address_p); + return; + } + case CONSTRUCTOR: + { + unsigned int i; + tree val; + auto_vec tmp; + FOR_EACH_CONSTRUCTOR_VALUE (CONSTRUCTOR_ELTS (t), i, val) + { + struct constraint_expr *rhsp; + unsigned j; + get_constraint_for_1 (val, &tmp, address_p, lhs_p); + FOR_EACH_VEC_ELT (tmp, j, rhsp) + results->safe_push (*rhsp); + tmp.truncate (0); + } + /* We do not know whether the constructor was complete, + so technically we have to add &NOTHING or &ANYTHING + like we do for an empty constructor as well. */ + return; + } + default:; + } + break; + } + case tcc_declaration: + { + if (!lhs_p && VAR_P (t) && TREE_THIS_VOLATILE (t)) + /* Fall back to anything. */ + break; + get_constraint_for_ssa_var (t, results, address_p); + return; + } + case tcc_constant: + { + /* We cannot refer to automatic variables through constants. */ + temp.type = ADDRESSOF; + temp.var = nonlocal_id; + temp.offset = 0; + results->safe_push (temp); + return; + } + default:; + } + + /* The default fallback is a constraint from anything. */ + temp.type = ADDRESSOF; + temp.var = anything_id; + temp.offset = 0; + results->safe_push (temp); +} + +/* Given a gimple tree T, return the constraint expression vector for it. */ + +static void +get_constraint_for (tree t, vec *results) +{ + gcc_assert (results->length () == 0); + + get_constraint_for_1 (t, results, false, true); +} + +/* Given a gimple tree T, return the constraint expression vector for it + to be used as the rhs of a constraint. */ + +static void +get_constraint_for_rhs (tree t, vec *results) +{ + gcc_assert (results->length () == 0); + + get_constraint_for_1 (t, results, false, false); +} + + +/* Efficiently generates constraints from all entries in *RHSC to all + entries in *LHSC. */ + +static void +process_all_all_constraints (const vec &lhsc, + const vec &rhsc) +{ + struct constraint_expr *lhsp, *rhsp; + unsigned i, j; + + if (lhsc.length () <= 1 || rhsc.length () <= 1) + { + FOR_EACH_VEC_ELT (lhsc, i, lhsp) + FOR_EACH_VEC_ELT (rhsc, j, rhsp) + process_constraint (new_constraint (*lhsp, *rhsp)); + } + else + { + struct constraint_expr tmp; + tmp = new_scalar_tmp_constraint_exp ("allalltmp", true); + FOR_EACH_VEC_ELT (rhsc, i, rhsp) + process_constraint (new_constraint (tmp, *rhsp)); + FOR_EACH_VEC_ELT (lhsc, i, lhsp) + process_constraint (new_constraint (*lhsp, tmp)); + } +} + +/* Handle aggregate copies by expanding into copies of the respective + fields of the structures. */ + +static void +do_structure_copy (tree lhsop, tree rhsop) +{ + struct constraint_expr *lhsp, *rhsp; + auto_vec lhsc; + auto_vec rhsc; + unsigned j; + + get_constraint_for (lhsop, &lhsc); + get_constraint_for_rhs (rhsop, &rhsc); + lhsp = &lhsc[0]; + rhsp = &rhsc[0]; + if (lhsp->type == DEREF + || (lhsp->type == ADDRESSOF && lhsp->var == anything_id) + || rhsp->type == DEREF) + { + if (lhsp->type == DEREF) + { + gcc_assert (lhsc.length () == 1); + lhsp->offset = UNKNOWN_OFFSET; + } + if (rhsp->type == DEREF) + { + gcc_assert (rhsc.length () == 1); + rhsp->offset = UNKNOWN_OFFSET; + } + process_all_all_constraints (lhsc, rhsc); + } + else if (lhsp->type == SCALAR + && (rhsp->type == SCALAR + || rhsp->type == ADDRESSOF)) + { + HOST_WIDE_INT lhssize, lhsoffset; + HOST_WIDE_INT rhssize, rhsoffset; + bool reverse; + unsigned k = 0; + if (!get_ref_base_and_extent_hwi (lhsop, &lhsoffset, &lhssize, &reverse) + || !get_ref_base_and_extent_hwi (rhsop, &rhsoffset, &rhssize, + &reverse)) + { + process_all_all_constraints (lhsc, rhsc); + return; + } + for (j = 0; lhsc.iterate (j, &lhsp);) + { + varinfo_t lhsv, rhsv; + rhsp = &rhsc[k]; + lhsv = get_varinfo (lhsp->var); + rhsv = get_varinfo (rhsp->var); + if (lhsv->may_have_pointers + && (lhsv->is_full_var + || rhsv->is_full_var + || ranges_overlap_p (lhsv->offset + rhsoffset, lhsv->size, + rhsv->offset + lhsoffset, rhsv->size))) + process_constraint (new_constraint (*lhsp, *rhsp)); + if (!rhsv->is_full_var + && (lhsv->is_full_var + || (lhsv->offset + rhsoffset + lhsv->size + > rhsv->offset + lhsoffset + rhsv->size))) + { + ++k; + if (k >= rhsc.length ()) + break; + } + else + ++j; + } + } + else + gcc_unreachable (); +} + +/* Create constraints ID = { rhsc }. */ + +static void +make_constraints_to (unsigned id, const vec &rhsc) +{ + struct constraint_expr *c; + struct constraint_expr includes; + unsigned int j; + + includes.var = id; + includes.offset = 0; + includes.type = SCALAR; + + FOR_EACH_VEC_ELT (rhsc, j, c) + process_constraint (new_constraint (includes, *c)); +} + +/* Create a constraint ID = OP. */ + +static void +make_constraint_to (unsigned id, tree op) +{ + auto_vec rhsc; + get_constraint_for_rhs (op, &rhsc); + make_constraints_to (id, rhsc); +} + +/* Create a constraint ID = &FROM. */ + +static void +make_constraint_from (varinfo_t vi, int from) +{ + struct constraint_expr lhs, rhs; + + lhs.var = vi->id; + lhs.offset = 0; + lhs.type = SCALAR; + + rhs.var = from; + rhs.offset = 0; + rhs.type = ADDRESSOF; + process_constraint (new_constraint (lhs, rhs)); +} + +/* Create a constraint ID = FROM. */ + +static void +make_copy_constraint (varinfo_t vi, int from) +{ + struct constraint_expr lhs, rhs; + + lhs.var = vi->id; + lhs.offset = 0; + lhs.type = SCALAR; + + rhs.var = from; + rhs.offset = 0; + rhs.type = SCALAR; + process_constraint (new_constraint (lhs, rhs)); +} + +/* Make constraints necessary to make OP escape. */ + +static void +make_escape_constraint (tree op) +{ + make_constraint_to (escaped_id, op); +} + +/* Make constraint necessary to make all indirect references + from VI escape. */ + +static void +make_indirect_escape_constraint (varinfo_t vi) +{ + struct constraint_expr lhs, rhs; + /* escaped = *(VAR + UNKNOWN); */ + lhs.type = SCALAR; + lhs.var = escaped_id; + lhs.offset = 0; + rhs.type = DEREF; + rhs.var = vi->id; + rhs.offset = UNKNOWN_OFFSET; + process_constraint (new_constraint (lhs, rhs)); +} + +/* Add constraints to that the solution of VI is transitively closed. */ + +static void +make_transitive_closure_constraints (varinfo_t vi) +{ + struct constraint_expr lhs, rhs; + + /* VAR = *(VAR + UNKNOWN); */ + lhs.type = SCALAR; + lhs.var = vi->id; + lhs.offset = 0; + rhs.type = DEREF; + rhs.var = vi->id; + rhs.offset = UNKNOWN_OFFSET; + process_constraint (new_constraint (lhs, rhs)); +} + +/* Add constraints to that the solution of VI has all subvariables added. */ + +static void +make_any_offset_constraints (varinfo_t vi) +{ + struct constraint_expr lhs, rhs; + + /* VAR = VAR + UNKNOWN; */ + lhs.type = SCALAR; + lhs.var = vi->id; + lhs.offset = 0; + rhs.type = SCALAR; + rhs.var = vi->id; + rhs.offset = UNKNOWN_OFFSET; + process_constraint (new_constraint (lhs, rhs)); +} + +/* Temporary storage for fake var decls. */ +struct obstack fake_var_decl_obstack; + +/* Build a fake VAR_DECL acting as referrer to a DECL_UID. */ + +static tree +build_fake_var_decl (tree type) +{ + tree decl = (tree) XOBNEW (&fake_var_decl_obstack, struct tree_var_decl); + memset (decl, 0, sizeof (struct tree_var_decl)); + TREE_SET_CODE (decl, VAR_DECL); + TREE_TYPE (decl) = type; + DECL_UID (decl) = allocate_decl_uid (); + SET_DECL_PT_UID (decl, -1); + layout_decl (decl, 0); + return decl; +} + +/* Create a new artificial heap variable with NAME. + Return the created variable. */ + +static varinfo_t +make_heapvar (const char *name, bool add_id) +{ + varinfo_t vi; + tree heapvar; + + heapvar = build_fake_var_decl (ptr_type_node); + DECL_EXTERNAL (heapvar) = 1; + + vi = new_var_info (heapvar, name, add_id); + vi->is_heap_var = true; + vi->is_unknown_size_var = true; + vi->offset = 0; + vi->fullsize = ~0; + vi->size = ~0; + vi->is_full_var = true; + insert_vi_for_tree (heapvar, vi); + + return vi; +} + +/* Create a new artificial heap variable with NAME and make a + constraint from it to LHS. Set flags according to a tag used + for tracking restrict pointers. */ + +static varinfo_t +make_constraint_from_restrict (varinfo_t lhs, const char *name, bool add_id) +{ + varinfo_t vi = make_heapvar (name, add_id); + vi->is_restrict_var = 1; + vi->is_global_var = 1; + vi->may_have_pointers = 1; + make_constraint_from (lhs, vi->id); + return vi; +} + +/* Create a new artificial heap variable with NAME and make a + constraint from it to LHS. Set flags according to a tag used + for tracking restrict pointers and make the artificial heap + point to global memory. */ + +static varinfo_t +make_constraint_from_global_restrict (varinfo_t lhs, const char *name, + bool add_id) +{ + varinfo_t vi = make_constraint_from_restrict (lhs, name, add_id); + make_copy_constraint (vi, nonlocal_id); + return vi; +} + +/* Get a constraint for the requested part of a function designator FI + when operating in IPA mode. */ + +static struct constraint_expr +get_function_part_constraint (varinfo_t fi, unsigned part) +{ + struct constraint_expr c; + + gcc_assert (in_ipa_mode); + + if (fi->id == anything_id) + { + /* ??? We probably should have a ANYFN special variable. */ + c.var = anything_id; + c.offset = 0; + c.type = SCALAR; + } + else if (fi->decl && TREE_CODE (fi->decl) == FUNCTION_DECL) + { + varinfo_t ai = first_vi_for_offset (fi, part); + if (ai) + c.var = ai->id; + else + c.var = anything_id; + c.offset = 0; + c.type = SCALAR; + } + else + { + c.var = fi->id; + c.offset = part; + c.type = DEREF; + } + + return c; +} + +/* Produce constraints for argument ARG of call STMT with eaf flags + FLAGS. RESULTS is array holding constraints for return value. + CALLESCAPE_ID is variable where call loocal escapes are added. + WRITES_GLOVEL_MEMORY is true if callee may write global memory. */ + +static void +handle_call_arg (gcall *stmt, tree arg, vec *results, int flags, + int callescape_id, bool writes_global_memory) +{ + int relevant_indirect_flags = EAF_NO_INDIRECT_CLOBBER | EAF_NO_INDIRECT_READ + | EAF_NO_INDIRECT_ESCAPE; + int relevant_flags = relevant_indirect_flags + | EAF_NO_DIRECT_CLOBBER + | EAF_NO_DIRECT_READ + | EAF_NO_DIRECT_ESCAPE; + if (gimple_call_lhs (stmt)) + { + relevant_flags |= EAF_NOT_RETURNED_DIRECTLY | EAF_NOT_RETURNED_INDIRECTLY; + relevant_indirect_flags |= EAF_NOT_RETURNED_INDIRECTLY; + + /* If value is never read from it can not be returned indirectly + (except through the escape solution). + For all flags we get these implications right except for + not_returned because we miss return functions in ipa-prop. */ + + if (flags & EAF_NO_DIRECT_READ) + flags |= EAF_NOT_RETURNED_INDIRECTLY; + } + + /* If the argument is not used we can ignore it. + Similarly argument is invisile for us if it not clobbered, does not + escape, is not read and can not be returned. */ + if ((flags & EAF_UNUSED) || ((flags & relevant_flags) == relevant_flags)) + return; + + /* Produce varinfo for direct accesses to ARG. */ + varinfo_t tem = new_var_info (NULL_TREE, "callarg", true); + tem->is_reg_var = true; + make_constraint_to (tem->id, arg); + make_any_offset_constraints (tem); + + bool callarg_transitive = false; + + /* As an compile time optimization if we make no difference between + direct and indirect accesses make arg transitively closed. + This avoids the need to build indir arg and do everything twice. */ + if (((flags & EAF_NO_INDIRECT_CLOBBER) != 0) + == ((flags & EAF_NO_DIRECT_CLOBBER) != 0) + && (((flags & EAF_NO_INDIRECT_READ) != 0) + == ((flags & EAF_NO_DIRECT_READ) != 0)) + && (((flags & EAF_NO_INDIRECT_ESCAPE) != 0) + == ((flags & EAF_NO_DIRECT_ESCAPE) != 0)) + && (((flags & EAF_NOT_RETURNED_INDIRECTLY) != 0) + == ((flags & EAF_NOT_RETURNED_DIRECTLY) != 0))) + { + make_transitive_closure_constraints (tem); + callarg_transitive = true; + } + + /* If necessary, produce varinfo for indirect accesses to ARG. */ + varinfo_t indir_tem = NULL; + if (!callarg_transitive + && (flags & relevant_indirect_flags) != relevant_indirect_flags) + { + struct constraint_expr lhs, rhs; + indir_tem = new_var_info (NULL_TREE, "indircallarg", true); + indir_tem->is_reg_var = true; + + /* indir_term = *tem. */ + lhs.type = SCALAR; + lhs.var = indir_tem->id; + lhs.offset = 0; + + rhs.type = DEREF; + rhs.var = tem->id; + rhs.offset = UNKNOWN_OFFSET; + process_constraint (new_constraint (lhs, rhs)); + + make_any_offset_constraints (indir_tem); + + /* If we do not read indirectly there is no need for transitive closure. + We know there is only one level of indirection. */ + if (!(flags & EAF_NO_INDIRECT_READ)) + make_transitive_closure_constraints (indir_tem); + gcc_checking_assert (!(flags & EAF_NO_DIRECT_READ)); + } + + if (gimple_call_lhs (stmt)) + { + if (!(flags & EAF_NOT_RETURNED_DIRECTLY)) + { + struct constraint_expr cexpr; + cexpr.var = tem->id; + cexpr.type = SCALAR; + cexpr.offset = 0; + results->safe_push (cexpr); + } + if (!callarg_transitive & !(flags & EAF_NOT_RETURNED_INDIRECTLY)) + { + struct constraint_expr cexpr; + cexpr.var = indir_tem->id; + cexpr.type = SCALAR; + cexpr.offset = 0; + results->safe_push (cexpr); + } + } + + if (!(flags & EAF_NO_DIRECT_READ)) + { + varinfo_t uses = get_call_use_vi (stmt); + make_copy_constraint (uses, tem->id); + if (!callarg_transitive & !(flags & EAF_NO_INDIRECT_READ)) + make_copy_constraint (uses, indir_tem->id); + } + else + /* To read indirectly we need to read directly. */ + gcc_checking_assert (flags & EAF_NO_INDIRECT_READ); + + if (!(flags & EAF_NO_DIRECT_CLOBBER)) + { + struct constraint_expr lhs, rhs; + + /* *arg = callescape. */ + lhs.type = DEREF; + lhs.var = tem->id; + lhs.offset = 0; + + rhs.type = SCALAR; + rhs.var = callescape_id; + rhs.offset = 0; + process_constraint (new_constraint (lhs, rhs)); + + /* callclobbered = arg. */ + make_copy_constraint (get_call_clobber_vi (stmt), tem->id); + } + if (!callarg_transitive & !(flags & EAF_NO_INDIRECT_CLOBBER)) + { + struct constraint_expr lhs, rhs; + + /* *indir_arg = callescape. */ + lhs.type = DEREF; + lhs.var = indir_tem->id; + lhs.offset = 0; + + rhs.type = SCALAR; + rhs.var = callescape_id; + rhs.offset = 0; + process_constraint (new_constraint (lhs, rhs)); + + /* callclobbered = indir_arg. */ + make_copy_constraint (get_call_clobber_vi (stmt), indir_tem->id); + } + + if (!(flags & (EAF_NO_DIRECT_ESCAPE | EAF_NO_INDIRECT_ESCAPE))) + { + struct constraint_expr lhs, rhs; + + /* callescape = arg; */ + lhs.var = callescape_id; + lhs.offset = 0; + lhs.type = SCALAR; + + rhs.var = tem->id; + rhs.offset = 0; + rhs.type = SCALAR; + process_constraint (new_constraint (lhs, rhs)); + + if (writes_global_memory) + make_escape_constraint (arg); + } + else if (!callarg_transitive & !(flags & EAF_NO_INDIRECT_ESCAPE)) + { + struct constraint_expr lhs, rhs; + + /* callescape = *(indir_arg + UNKNOWN); */ + lhs.var = callescape_id; + lhs.offset = 0; + lhs.type = SCALAR; + + rhs.var = indir_tem->id; + rhs.offset = 0; + rhs.type = SCALAR; + process_constraint (new_constraint (lhs, rhs)); + + if (writes_global_memory) + make_indirect_escape_constraint (tem); + } +} + +/* For non-IPA mode, generate constraints necessary for a call on the + RHS and collect return value constraint to RESULTS to be used later in + handle_lhs_call. + + IMPLICIT_EAF_FLAGS are added to each function argument. If + WRITES_GLOBAL_MEMORY is true function is assumed to possibly write to global + memory. Similar for READS_GLOBAL_MEMORY. */ + +static void +handle_rhs_call (gcall *stmt, vec *results, + int implicit_eaf_flags, + bool writes_global_memory, + bool reads_global_memory) +{ + determine_global_memory_access (stmt, &writes_global_memory, + &reads_global_memory, + NULL); + + varinfo_t callescape = new_var_info (NULL_TREE, "callescape", true); + + /* If function can use global memory, add it to callescape + and to possible return values. If not we can still use/return addresses + of global symbols. */ + struct constraint_expr lhs, rhs; + + lhs.type = SCALAR; + lhs.var = callescape->id; + lhs.offset = 0; + + rhs.type = reads_global_memory ? SCALAR : ADDRESSOF; + rhs.var = nonlocal_id; + rhs.offset = 0; + + process_constraint (new_constraint (lhs, rhs)); + results->safe_push (rhs); + + varinfo_t uses = get_call_use_vi (stmt); + make_copy_constraint (uses, callescape->id); + + for (unsigned i = 0; i < gimple_call_num_args (stmt); ++i) + { + tree arg = gimple_call_arg (stmt, i); + int flags = gimple_call_arg_flags (stmt, i); + handle_call_arg (stmt, arg, results, + flags | implicit_eaf_flags, + callescape->id, writes_global_memory); + } + + /* The static chain escapes as well. */ + if (gimple_call_chain (stmt)) + handle_call_arg (stmt, gimple_call_chain (stmt), results, + implicit_eaf_flags + | gimple_call_static_chain_flags (stmt), + callescape->id, writes_global_memory); + + /* And if we applied NRV the address of the return slot escapes as well. */ + if (gimple_call_return_slot_opt_p (stmt) + && gimple_call_lhs (stmt) != NULL_TREE + && TREE_ADDRESSABLE (TREE_TYPE (gimple_call_lhs (stmt)))) + { + int flags = gimple_call_retslot_flags (stmt); + const int relevant_flags = EAF_NO_DIRECT_ESCAPE + | EAF_NOT_RETURNED_DIRECTLY; + + if (!(flags & EAF_UNUSED) && (flags & relevant_flags) != relevant_flags) + { + auto_vec tmpc; + + get_constraint_for_address_of (gimple_call_lhs (stmt), &tmpc); + + if (!(flags & EAF_NO_DIRECT_ESCAPE)) + { + make_constraints_to (callescape->id, tmpc); + if (writes_global_memory) + make_constraints_to (escaped_id, tmpc); + } + if (!(flags & EAF_NOT_RETURNED_DIRECTLY)) + { + struct constraint_expr *c; + unsigned i; + FOR_EACH_VEC_ELT (tmpc, i, c) + results->safe_push (*c); + } + } + } +} + +/* For non-IPA mode, generate constraints necessary for a call + that returns a pointer and assigns it to LHS. This simply makes + the LHS point to global and escaped variables. */ + +static void +handle_lhs_call (gcall *stmt, tree lhs, int flags, vec &rhsc, + tree fndecl) +{ + auto_vec lhsc; + + get_constraint_for (lhs, &lhsc); + /* If the store is to a global decl make sure to + add proper escape constraints. */ + lhs = get_base_address (lhs); + if (lhs + && DECL_P (lhs) + && is_global_var (lhs)) + { + struct constraint_expr tmpc; + tmpc.var = escaped_id; + tmpc.offset = 0; + tmpc.type = SCALAR; + lhsc.safe_push (tmpc); + } + + /* If the call returns an argument unmodified override the rhs + constraints. */ + if (flags & ERF_RETURNS_ARG + && (flags & ERF_RETURN_ARG_MASK) < gimple_call_num_args (stmt)) + { + tree arg; + rhsc.truncate (0); + arg = gimple_call_arg (stmt, flags & ERF_RETURN_ARG_MASK); + get_constraint_for (arg, &rhsc); + process_all_all_constraints (lhsc, rhsc); + rhsc.truncate (0); + } + else if (flags & ERF_NOALIAS) + { + varinfo_t vi; + struct constraint_expr tmpc; + rhsc.truncate (0); + vi = make_heapvar ("HEAP", true); + /* We are marking allocated storage local, we deal with it becoming + global by escaping and setting of vars_contains_escaped_heap. */ + DECL_EXTERNAL (vi->decl) = 0; + vi->is_global_var = 0; + /* If this is not a real malloc call assume the memory was + initialized and thus may point to global memory. All + builtin functions with the malloc attribute behave in a sane way. */ + if (!fndecl + || !fndecl_built_in_p (fndecl, BUILT_IN_NORMAL)) + make_constraint_from (vi, nonlocal_id); + tmpc.var = vi->id; + tmpc.offset = 0; + tmpc.type = ADDRESSOF; + rhsc.safe_push (tmpc); + process_all_all_constraints (lhsc, rhsc); + rhsc.truncate (0); + } + else + process_all_all_constraints (lhsc, rhsc); +} + + +/* Create constraints for assigning call argument ARG to the incoming parameter + INDEX of function FI. */ + +static void +find_func_aliases_for_call_arg (varinfo_t fi, unsigned index, tree arg) +{ + struct constraint_expr lhs; + lhs = get_function_part_constraint (fi, fi_parm_base + index); + + auto_vec rhsc; + get_constraint_for_rhs (arg, &rhsc); + + unsigned j; + struct constraint_expr *rhsp; + FOR_EACH_VEC_ELT (rhsc, j, rhsp) + process_constraint (new_constraint (lhs, *rhsp)); +} + +/* Create constraints for the builtin call T. Return true if the call + was handled, otherwise false. */ + +static bool +find_func_aliases_for_builtin_call (struct function *fn, gcall *t) +{ + tree fndecl = gimple_call_fndecl (t); + auto_vec lhsc; + auto_vec rhsc; + varinfo_t fi; + + if (gimple_call_builtin_p (t, BUILT_IN_NORMAL)) + /* ??? All builtins that are handled here need to be handled + in the alias-oracle query functions explicitly! */ + switch (DECL_FUNCTION_CODE (fndecl)) + { + /* All the following functions return a pointer to the same object + as their first argument points to. The functions do not add + to the ESCAPED solution. The functions make the first argument + pointed to memory point to what the second argument pointed to + memory points to. */ + case BUILT_IN_STRCPY: + case BUILT_IN_STRNCPY: + case BUILT_IN_BCOPY: + case BUILT_IN_MEMCPY: + case BUILT_IN_MEMMOVE: + case BUILT_IN_MEMPCPY: + case BUILT_IN_STPCPY: + case BUILT_IN_STPNCPY: + case BUILT_IN_STRCAT: + case BUILT_IN_STRNCAT: + case BUILT_IN_STRCPY_CHK: + case BUILT_IN_STRNCPY_CHK: + case BUILT_IN_MEMCPY_CHK: + case BUILT_IN_MEMMOVE_CHK: + case BUILT_IN_MEMPCPY_CHK: + case BUILT_IN_STPCPY_CHK: + case BUILT_IN_STPNCPY_CHK: + case BUILT_IN_STRCAT_CHK: + case BUILT_IN_STRNCAT_CHK: + case BUILT_IN_TM_MEMCPY: + case BUILT_IN_TM_MEMMOVE: + { + tree res = gimple_call_lhs (t); + tree dest = gimple_call_arg (t, (DECL_FUNCTION_CODE (fndecl) + == BUILT_IN_BCOPY ? 1 : 0)); + tree src = gimple_call_arg (t, (DECL_FUNCTION_CODE (fndecl) + == BUILT_IN_BCOPY ? 0 : 1)); + if (res != NULL_TREE) + { + get_constraint_for (res, &lhsc); + if (DECL_FUNCTION_CODE (fndecl) == BUILT_IN_MEMPCPY + || DECL_FUNCTION_CODE (fndecl) == BUILT_IN_STPCPY + || DECL_FUNCTION_CODE (fndecl) == BUILT_IN_STPNCPY + || DECL_FUNCTION_CODE (fndecl) == BUILT_IN_MEMPCPY_CHK + || DECL_FUNCTION_CODE (fndecl) == BUILT_IN_STPCPY_CHK + || DECL_FUNCTION_CODE (fndecl) == BUILT_IN_STPNCPY_CHK) + get_constraint_for_ptr_offset (dest, NULL_TREE, &rhsc); + else + get_constraint_for (dest, &rhsc); + process_all_all_constraints (lhsc, rhsc); + lhsc.truncate (0); + rhsc.truncate (0); + } + get_constraint_for_ptr_offset (dest, NULL_TREE, &lhsc); + get_constraint_for_ptr_offset (src, NULL_TREE, &rhsc); + do_deref (&lhsc); + do_deref (&rhsc); + process_all_all_constraints (lhsc, rhsc); + return true; + } + case BUILT_IN_MEMSET: + case BUILT_IN_MEMSET_CHK: + case BUILT_IN_TM_MEMSET: + { + tree res = gimple_call_lhs (t); + tree dest = gimple_call_arg (t, 0); + unsigned i; + ce_s *lhsp; + struct constraint_expr ac; + if (res != NULL_TREE) + { + get_constraint_for (res, &lhsc); + get_constraint_for (dest, &rhsc); + process_all_all_constraints (lhsc, rhsc); + lhsc.truncate (0); + } + get_constraint_for_ptr_offset (dest, NULL_TREE, &lhsc); + do_deref (&lhsc); + if (flag_delete_null_pointer_checks + && integer_zerop (gimple_call_arg (t, 1))) + { + ac.type = ADDRESSOF; + ac.var = nothing_id; + } + else + { + ac.type = SCALAR; + ac.var = integer_id; + } + ac.offset = 0; + FOR_EACH_VEC_ELT (lhsc, i, lhsp) + process_constraint (new_constraint (*lhsp, ac)); + return true; + } + case BUILT_IN_STACK_SAVE: + case BUILT_IN_STACK_RESTORE: + /* Nothing interesting happens. */ + return true; + case BUILT_IN_ALLOCA: + case BUILT_IN_ALLOCA_WITH_ALIGN: + case BUILT_IN_ALLOCA_WITH_ALIGN_AND_MAX: + { + tree ptr = gimple_call_lhs (t); + if (ptr == NULL_TREE) + return true; + get_constraint_for (ptr, &lhsc); + varinfo_t vi = make_heapvar ("HEAP", true); + /* Alloca storage is never global. To exempt it from escaped + handling make it a non-heap var. */ + DECL_EXTERNAL (vi->decl) = 0; + vi->is_global_var = 0; + vi->is_heap_var = 0; + struct constraint_expr tmpc; + tmpc.var = vi->id; + tmpc.offset = 0; + tmpc.type = ADDRESSOF; + rhsc.safe_push (tmpc); + process_all_all_constraints (lhsc, rhsc); + return true; + } + case BUILT_IN_POSIX_MEMALIGN: + { + tree ptrptr = gimple_call_arg (t, 0); + get_constraint_for (ptrptr, &lhsc); + do_deref (&lhsc); + varinfo_t vi = make_heapvar ("HEAP", true); + /* We are marking allocated storage local, we deal with it becoming + global by escaping and setting of vars_contains_escaped_heap. */ + DECL_EXTERNAL (vi->decl) = 0; + vi->is_global_var = 0; + struct constraint_expr tmpc; + tmpc.var = vi->id; + tmpc.offset = 0; + tmpc.type = ADDRESSOF; + rhsc.safe_push (tmpc); + process_all_all_constraints (lhsc, rhsc); + return true; + } + case BUILT_IN_ASSUME_ALIGNED: + { + tree res = gimple_call_lhs (t); + tree dest = gimple_call_arg (t, 0); + if (res != NULL_TREE) + { + get_constraint_for (res, &lhsc); + get_constraint_for (dest, &rhsc); + process_all_all_constraints (lhsc, rhsc); + } + return true; + } + /* All the following functions do not return pointers, do not + modify the points-to sets of memory reachable from their + arguments and do not add to the ESCAPED solution. */ + case BUILT_IN_SINCOS: + case BUILT_IN_SINCOSF: + case BUILT_IN_SINCOSL: + case BUILT_IN_FREXP: + case BUILT_IN_FREXPF: + case BUILT_IN_FREXPL: + case BUILT_IN_GAMMA_R: + case BUILT_IN_GAMMAF_R: + case BUILT_IN_GAMMAL_R: + case BUILT_IN_LGAMMA_R: + case BUILT_IN_LGAMMAF_R: + case BUILT_IN_LGAMMAL_R: + case BUILT_IN_MODF: + case BUILT_IN_MODFF: + case BUILT_IN_MODFL: + case BUILT_IN_REMQUO: + case BUILT_IN_REMQUOF: + case BUILT_IN_REMQUOL: + case BUILT_IN_FREE: + return true; + case BUILT_IN_STRDUP: + case BUILT_IN_STRNDUP: + case BUILT_IN_REALLOC: + if (gimple_call_lhs (t)) + { + auto_vec rhsc; + handle_lhs_call (t, gimple_call_lhs (t), + gimple_call_return_flags (t) | ERF_NOALIAS, + rhsc, fndecl); + get_constraint_for_ptr_offset (gimple_call_lhs (t), + NULL_TREE, &lhsc); + get_constraint_for_ptr_offset (gimple_call_arg (t, 0), + NULL_TREE, &rhsc); + do_deref (&lhsc); + do_deref (&rhsc); + process_all_all_constraints (lhsc, rhsc); + lhsc.truncate (0); + rhsc.truncate (0); + /* For realloc the resulting pointer can be equal to the + argument as well. But only doing this wouldn't be + correct because with ptr == 0 realloc behaves like malloc. */ + if (DECL_FUNCTION_CODE (fndecl) == BUILT_IN_REALLOC) + { + get_constraint_for (gimple_call_lhs (t), &lhsc); + get_constraint_for (gimple_call_arg (t, 0), &rhsc); + process_all_all_constraints (lhsc, rhsc); + } + return true; + } + break; + /* String / character search functions return a pointer into the + source string or NULL. */ + case BUILT_IN_INDEX: + case BUILT_IN_STRCHR: + case BUILT_IN_STRRCHR: + case BUILT_IN_MEMCHR: + case BUILT_IN_STRSTR: + case BUILT_IN_STRPBRK: + if (gimple_call_lhs (t)) + { + tree src = gimple_call_arg (t, 0); + get_constraint_for_ptr_offset (src, NULL_TREE, &rhsc); + constraint_expr nul; + nul.var = nothing_id; + nul.offset = 0; + nul.type = ADDRESSOF; + rhsc.safe_push (nul); + get_constraint_for (gimple_call_lhs (t), &lhsc); + process_all_all_constraints (lhsc, rhsc); + } + return true; + /* Pure functions that return something not based on any object and + that use the memory pointed to by their arguments (but not + transitively). */ + case BUILT_IN_STRCMP: + case BUILT_IN_STRCMP_EQ: + case BUILT_IN_STRNCMP: + case BUILT_IN_STRNCMP_EQ: + case BUILT_IN_STRCASECMP: + case BUILT_IN_STRNCASECMP: + case BUILT_IN_MEMCMP: + case BUILT_IN_BCMP: + case BUILT_IN_STRSPN: + case BUILT_IN_STRCSPN: + { + varinfo_t uses = get_call_use_vi (t); + make_any_offset_constraints (uses); + make_constraint_to (uses->id, gimple_call_arg (t, 0)); + make_constraint_to (uses->id, gimple_call_arg (t, 1)); + /* No constraints are necessary for the return value. */ + return true; + } + case BUILT_IN_STRLEN: + { + varinfo_t uses = get_call_use_vi (t); + make_any_offset_constraints (uses); + make_constraint_to (uses->id, gimple_call_arg (t, 0)); + /* No constraints are necessary for the return value. */ + return true; + } + case BUILT_IN_OBJECT_SIZE: + case BUILT_IN_CONSTANT_P: + { + /* No constraints are necessary for the return value or the + arguments. */ + return true; + } + /* Trampolines are special - they set up passing the static + frame. */ + case BUILT_IN_INIT_TRAMPOLINE: + { + tree tramp = gimple_call_arg (t, 0); + tree nfunc = gimple_call_arg (t, 1); + tree frame = gimple_call_arg (t, 2); + unsigned i; + struct constraint_expr lhs, *rhsp; + if (in_ipa_mode) + { + varinfo_t nfi = NULL; + gcc_assert (TREE_CODE (nfunc) == ADDR_EXPR); + nfi = lookup_vi_for_tree (TREE_OPERAND (nfunc, 0)); + if (nfi) + { + lhs = get_function_part_constraint (nfi, fi_static_chain); + get_constraint_for (frame, &rhsc); + FOR_EACH_VEC_ELT (rhsc, i, rhsp) + process_constraint (new_constraint (lhs, *rhsp)); + rhsc.truncate (0); + + /* Make the frame point to the function for + the trampoline adjustment call. */ + get_constraint_for (tramp, &lhsc); + do_deref (&lhsc); + get_constraint_for (nfunc, &rhsc); + process_all_all_constraints (lhsc, rhsc); + + return true; + } + } + /* Else fallthru to generic handling which will let + the frame escape. */ + break; + } + case BUILT_IN_ADJUST_TRAMPOLINE: + { + tree tramp = gimple_call_arg (t, 0); + tree res = gimple_call_lhs (t); + if (in_ipa_mode && res) + { + get_constraint_for (res, &lhsc); + get_constraint_for (tramp, &rhsc); + do_deref (&rhsc); + process_all_all_constraints (lhsc, rhsc); + } + return true; + } + CASE_BUILT_IN_TM_STORE (1): + CASE_BUILT_IN_TM_STORE (2): + CASE_BUILT_IN_TM_STORE (4): + CASE_BUILT_IN_TM_STORE (8): + CASE_BUILT_IN_TM_STORE (FLOAT): + CASE_BUILT_IN_TM_STORE (DOUBLE): + CASE_BUILT_IN_TM_STORE (LDOUBLE): + CASE_BUILT_IN_TM_STORE (M64): + CASE_BUILT_IN_TM_STORE (M128): + CASE_BUILT_IN_TM_STORE (M256): + { + tree addr = gimple_call_arg (t, 0); + tree src = gimple_call_arg (t, 1); + + get_constraint_for (addr, &lhsc); + do_deref (&lhsc); + get_constraint_for (src, &rhsc); + process_all_all_constraints (lhsc, rhsc); + return true; + } + CASE_BUILT_IN_TM_LOAD (1): + CASE_BUILT_IN_TM_LOAD (2): + CASE_BUILT_IN_TM_LOAD (4): + CASE_BUILT_IN_TM_LOAD (8): + CASE_BUILT_IN_TM_LOAD (FLOAT): + CASE_BUILT_IN_TM_LOAD (DOUBLE): + CASE_BUILT_IN_TM_LOAD (LDOUBLE): + CASE_BUILT_IN_TM_LOAD (M64): + CASE_BUILT_IN_TM_LOAD (M128): + CASE_BUILT_IN_TM_LOAD (M256): + { + tree dest = gimple_call_lhs (t); + tree addr = gimple_call_arg (t, 0); + + get_constraint_for (dest, &lhsc); + get_constraint_for (addr, &rhsc); + do_deref (&rhsc); + process_all_all_constraints (lhsc, rhsc); + return true; + } + /* Variadic argument handling needs to be handled in IPA + mode as well. */ + case BUILT_IN_VA_START: + { + tree valist = gimple_call_arg (t, 0); + struct constraint_expr rhs, *lhsp; + unsigned i; + get_constraint_for_ptr_offset (valist, NULL_TREE, &lhsc); + do_deref (&lhsc); + /* The va_list gets access to pointers in variadic + arguments. Which we know in the case of IPA analysis + and otherwise are just all nonlocal variables. */ + if (in_ipa_mode) + { + fi = lookup_vi_for_tree (fn->decl); + rhs = get_function_part_constraint (fi, ~0); + rhs.type = ADDRESSOF; + } + else + { + rhs.var = nonlocal_id; + rhs.type = ADDRESSOF; + rhs.offset = 0; + } + FOR_EACH_VEC_ELT (lhsc, i, lhsp) + process_constraint (new_constraint (*lhsp, rhs)); + /* va_list is clobbered. */ + make_constraint_to (get_call_clobber_vi (t)->id, valist); + return true; + } + /* va_end doesn't have any effect that matters. */ + case BUILT_IN_VA_END: + return true; + /* Alternate return. Simply give up for now. */ + case BUILT_IN_RETURN: + { + fi = NULL; + if (!in_ipa_mode + || !(fi = get_vi_for_tree (fn->decl))) + make_constraint_from (get_varinfo (escaped_id), anything_id); + else if (in_ipa_mode + && fi != NULL) + { + struct constraint_expr lhs, rhs; + lhs = get_function_part_constraint (fi, fi_result); + rhs.var = anything_id; + rhs.offset = 0; + rhs.type = SCALAR; + process_constraint (new_constraint (lhs, rhs)); + } + return true; + } + case BUILT_IN_GOMP_PARALLEL: + case BUILT_IN_GOACC_PARALLEL: + { + if (in_ipa_mode) + { + unsigned int fnpos, argpos; + switch (DECL_FUNCTION_CODE (fndecl)) + { + case BUILT_IN_GOMP_PARALLEL: + /* __builtin_GOMP_parallel (fn, data, num_threads, flags). */ + fnpos = 0; + argpos = 1; + break; + case BUILT_IN_GOACC_PARALLEL: + /* __builtin_GOACC_parallel (flags_m, fn, mapnum, hostaddrs, + sizes, kinds, ...). */ + fnpos = 1; + argpos = 3; + break; + default: + gcc_unreachable (); + } + + tree fnarg = gimple_call_arg (t, fnpos); + gcc_assert (TREE_CODE (fnarg) == ADDR_EXPR); + tree fndecl = TREE_OPERAND (fnarg, 0); + if (fndecl_maybe_in_other_partition (fndecl)) + /* Fallthru to general call handling. */ + break; + + tree arg = gimple_call_arg (t, argpos); + + varinfo_t fi = get_vi_for_tree (fndecl); + find_func_aliases_for_call_arg (fi, 0, arg); + return true; + } + /* Else fallthru to generic call handling. */ + break; + } + /* printf-style functions may have hooks to set pointers to + point to somewhere into the generated string. Leave them + for a later exercise... */ + default: + /* Fallthru to general call handling. */; + } + + return false; +} + +/* Create constraints for the call T. */ + +static void +find_func_aliases_for_call (struct function *fn, gcall *t) +{ + tree fndecl = gimple_call_fndecl (t); + varinfo_t fi; + + if (fndecl != NULL_TREE + && fndecl_built_in_p (fndecl) + && find_func_aliases_for_builtin_call (fn, t)) + return; + + if (gimple_call_internal_p (t, IFN_DEFERRED_INIT)) + return; + + fi = get_fi_for_callee (t); + if (!in_ipa_mode + || (fi->decl && fndecl && !fi->is_fn_info)) + { + auto_vec rhsc; + int flags = gimple_call_flags (t); + + /* Const functions can return their arguments and addresses + of global memory but not of escaped memory. */ + if (flags & (ECF_CONST|ECF_NOVOPS)) + { + if (gimple_call_lhs (t)) + handle_rhs_call (t, &rhsc, implicit_const_eaf_flags, false, false); + } + /* Pure functions can return addresses in and of memory + reachable from their arguments, but they are not an escape + point for reachable memory of their arguments. */ + else if (flags & (ECF_PURE|ECF_LOOPING_CONST_OR_PURE)) + handle_rhs_call (t, &rhsc, implicit_pure_eaf_flags, false, true); + /* If the call is to a replaceable operator delete and results + from a delete expression as opposed to a direct call to + such operator, then the effects for PTA (in particular + the escaping of the pointer) can be ignored. */ + else if (fndecl + && DECL_IS_OPERATOR_DELETE_P (fndecl) + && gimple_call_from_new_or_delete (t)) + ; + else + handle_rhs_call (t, &rhsc, 0, true, true); + if (gimple_call_lhs (t)) + handle_lhs_call (t, gimple_call_lhs (t), + gimple_call_return_flags (t), rhsc, fndecl); + } + else + { + auto_vec rhsc; + tree lhsop; + unsigned j; + + /* Assign all the passed arguments to the appropriate incoming + parameters of the function. */ + for (j = 0; j < gimple_call_num_args (t); j++) + { + tree arg = gimple_call_arg (t, j); + find_func_aliases_for_call_arg (fi, j, arg); + } + + /* If we are returning a value, assign it to the result. */ + lhsop = gimple_call_lhs (t); + if (lhsop) + { + auto_vec lhsc; + struct constraint_expr rhs; + struct constraint_expr *lhsp; + bool aggr_p = aggregate_value_p (lhsop, gimple_call_fntype (t)); + + get_constraint_for (lhsop, &lhsc); + rhs = get_function_part_constraint (fi, fi_result); + if (aggr_p) + { + auto_vec tem; + tem.quick_push (rhs); + do_deref (&tem); + gcc_checking_assert (tem.length () == 1); + rhs = tem[0]; + } + FOR_EACH_VEC_ELT (lhsc, j, lhsp) + process_constraint (new_constraint (*lhsp, rhs)); + + /* If we pass the result decl by reference, honor that. */ + if (aggr_p) + { + struct constraint_expr lhs; + struct constraint_expr *rhsp; + + get_constraint_for_address_of (lhsop, &rhsc); + lhs = get_function_part_constraint (fi, fi_result); + FOR_EACH_VEC_ELT (rhsc, j, rhsp) + process_constraint (new_constraint (lhs, *rhsp)); + rhsc.truncate (0); + } + } + + /* If we use a static chain, pass it along. */ + if (gimple_call_chain (t)) + { + struct constraint_expr lhs; + struct constraint_expr *rhsp; + + get_constraint_for (gimple_call_chain (t), &rhsc); + lhs = get_function_part_constraint (fi, fi_static_chain); + FOR_EACH_VEC_ELT (rhsc, j, rhsp) + process_constraint (new_constraint (lhs, *rhsp)); + } + } +} + +/* Walk statement T setting up aliasing constraints according to the + references found in T. This function is the main part of the + constraint builder. AI points to auxiliary alias information used + when building alias sets and computing alias grouping heuristics. */ + +static void +find_func_aliases (struct function *fn, gimple *origt) +{ + gimple *t = origt; + auto_vec lhsc; + auto_vec rhsc; + varinfo_t fi; + + /* Now build constraints expressions. */ + if (gimple_code (t) == GIMPLE_PHI) + { + /* For a phi node, assign all the arguments to + the result. */ + get_constraint_for (gimple_phi_result (t), &lhsc); + for (unsigned i = 0; i < gimple_phi_num_args (t); i++) + { + get_constraint_for_rhs (gimple_phi_arg_def (t, i), &rhsc); + process_all_all_constraints (lhsc, rhsc); + rhsc.truncate (0); + } + } + /* In IPA mode, we need to generate constraints to pass call + arguments through their calls. There are two cases, + either a GIMPLE_CALL returning a value, or just a plain + GIMPLE_CALL when we are not. + + In non-ipa mode, we need to generate constraints for each + pointer passed by address. */ + else if (is_gimple_call (t)) + find_func_aliases_for_call (fn, as_a (t)); + + /* Otherwise, just a regular assignment statement. Only care about + operations with pointer result, others are dealt with as escape + points if they have pointer operands. */ + else if (is_gimple_assign (t)) + { + /* Otherwise, just a regular assignment statement. */ + tree lhsop = gimple_assign_lhs (t); + tree rhsop = (gimple_num_ops (t) == 2) ? gimple_assign_rhs1 (t) : NULL; + + if (rhsop && TREE_CLOBBER_P (rhsop)) + /* Ignore clobbers, they don't actually store anything into + the LHS. */ + ; + else if (rhsop && AGGREGATE_TYPE_P (TREE_TYPE (lhsop))) + do_structure_copy (lhsop, rhsop); + else + { + enum tree_code code = gimple_assign_rhs_code (t); + + get_constraint_for (lhsop, &lhsc); + + if (code == POINTER_PLUS_EXPR) + get_constraint_for_ptr_offset (gimple_assign_rhs1 (t), + gimple_assign_rhs2 (t), &rhsc); + else if (code == POINTER_DIFF_EXPR) + /* The result is not a pointer (part). */ + ; + else if (code == BIT_AND_EXPR + && TREE_CODE (gimple_assign_rhs2 (t)) == INTEGER_CST) + { + /* Aligning a pointer via a BIT_AND_EXPR is offsetting + the pointer. Handle it by offsetting it by UNKNOWN. */ + get_constraint_for_ptr_offset (gimple_assign_rhs1 (t), + NULL_TREE, &rhsc); + } + else if (code == TRUNC_DIV_EXPR + || code == CEIL_DIV_EXPR + || code == FLOOR_DIV_EXPR + || code == ROUND_DIV_EXPR + || code == EXACT_DIV_EXPR + || code == TRUNC_MOD_EXPR + || code == CEIL_MOD_EXPR + || code == FLOOR_MOD_EXPR + || code == ROUND_MOD_EXPR) + /* Division and modulo transfer the pointer from the LHS. */ + get_constraint_for_ptr_offset (gimple_assign_rhs1 (t), + NULL_TREE, &rhsc); + else if (CONVERT_EXPR_CODE_P (code) + || gimple_assign_single_p (t)) + /* See through conversions, single RHS are handled by + get_constraint_for_rhs. */ + get_constraint_for_rhs (rhsop, &rhsc); + else if (code == COND_EXPR) + { + /* The result is a merge of both COND_EXPR arms. */ + auto_vec tmp; + struct constraint_expr *rhsp; + unsigned i; + get_constraint_for_rhs (gimple_assign_rhs2 (t), &rhsc); + get_constraint_for_rhs (gimple_assign_rhs3 (t), &tmp); + FOR_EACH_VEC_ELT (tmp, i, rhsp) + rhsc.safe_push (*rhsp); + } + else if (truth_value_p (code)) + /* Truth value results are not pointer (parts). Or at least + very unreasonable obfuscation of a part. */ + ; + else + { + /* All other operations are possibly offsetting merges. */ + auto_vec tmp; + struct constraint_expr *rhsp; + unsigned i, j; + get_constraint_for_ptr_offset (gimple_assign_rhs1 (t), + NULL_TREE, &rhsc); + for (i = 2; i < gimple_num_ops (t); ++i) + { + get_constraint_for_ptr_offset (gimple_op (t, i), + NULL_TREE, &tmp); + FOR_EACH_VEC_ELT (tmp, j, rhsp) + rhsc.safe_push (*rhsp); + tmp.truncate (0); + } + } + process_all_all_constraints (lhsc, rhsc); + } + /* If there is a store to a global variable the rhs escapes. */ + if ((lhsop = get_base_address (lhsop)) != NULL_TREE + && DECL_P (lhsop)) + { + varinfo_t vi = get_vi_for_tree (lhsop); + if ((! in_ipa_mode && vi->is_global_var) + || vi->is_ipa_escape_point) + make_escape_constraint (rhsop); + } + } + /* Handle escapes through return. */ + else if (gimple_code (t) == GIMPLE_RETURN + && gimple_return_retval (as_a (t)) != NULL_TREE) + { + greturn *return_stmt = as_a (t); + tree retval = gimple_return_retval (return_stmt); + if (!in_ipa_mode) + make_constraint_to (escaped_return_id, retval); + else + { + struct constraint_expr lhs ; + struct constraint_expr *rhsp; + unsigned i; + + fi = lookup_vi_for_tree (fn->decl); + lhs = get_function_part_constraint (fi, fi_result); + get_constraint_for_rhs (retval, &rhsc); + FOR_EACH_VEC_ELT (rhsc, i, rhsp) + process_constraint (new_constraint (lhs, *rhsp)); + } + } + /* Handle asms conservatively by adding escape constraints to everything. */ + else if (gasm *asm_stmt = dyn_cast (t)) + { + unsigned i, noutputs; + const char **oconstraints; + const char *constraint; + bool allows_mem, allows_reg, is_inout; + + noutputs = gimple_asm_noutputs (asm_stmt); + oconstraints = XALLOCAVEC (const char *, noutputs); + + for (i = 0; i < noutputs; ++i) + { + tree link = gimple_asm_output_op (asm_stmt, i); + tree op = TREE_VALUE (link); + + constraint = TREE_STRING_POINTER (TREE_VALUE (TREE_PURPOSE (link))); + oconstraints[i] = constraint; + parse_output_constraint (&constraint, i, 0, 0, &allows_mem, + &allows_reg, &is_inout, nullptr); + + /* A memory constraint makes the address of the operand escape. */ + if (!allows_reg && allows_mem) + { + auto_vec tmpc; + get_constraint_for_address_of (op, &tmpc); + make_constraints_to (escaped_id, tmpc); + } + + /* The asm may read global memory, so outputs may point to + any global memory. */ + if (op) + { + auto_vec lhsc; + struct constraint_expr rhsc, *lhsp; + unsigned j; + get_constraint_for (op, &lhsc); + rhsc.var = nonlocal_id; + rhsc.offset = 0; + rhsc.type = SCALAR; + FOR_EACH_VEC_ELT (lhsc, j, lhsp) + process_constraint (new_constraint (*lhsp, rhsc)); + } + } + for (i = 0; i < gimple_asm_ninputs (asm_stmt); ++i) + { + tree link = gimple_asm_input_op (asm_stmt, i); + tree op = TREE_VALUE (link); + + constraint = TREE_STRING_POINTER (TREE_VALUE (TREE_PURPOSE (link))); + + parse_input_constraint (&constraint, 0, 0, noutputs, 0, oconstraints, + &allows_mem, &allows_reg, nullptr); + + /* A memory constraint makes the address of the operand escape. */ + if (!allows_reg && allows_mem) + { + auto_vec tmpc; + get_constraint_for_address_of (op, &tmpc); + make_constraints_to (escaped_id, tmpc); + } + /* Strictly we'd only need the constraint to ESCAPED if + the asm clobbers memory, otherwise using something + along the lines of per-call clobbers/uses would be enough. */ + else if (op) + make_escape_constraint (op); + } + } +} + + +/* Create a constraint adding to the clobber set of FI the memory + pointed to by PTR. */ + +static void +process_ipa_clobber (varinfo_t fi, tree ptr) +{ + vec ptrc = vNULL; + struct constraint_expr *c, lhs; + unsigned i; + get_constraint_for_rhs (ptr, &ptrc); + lhs = get_function_part_constraint (fi, fi_clobbers); + FOR_EACH_VEC_ELT (ptrc, i, c) + process_constraint (new_constraint (lhs, *c)); + ptrc.release (); +} + +/* Walk statement T setting up clobber and use constraints according to the + references found in T. This function is a main part of the + IPA constraint builder. */ + +static void +find_func_clobbers (struct function *fn, gimple *origt) +{ + gimple *t = origt; + auto_vec lhsc; + auto_vec rhsc; + varinfo_t fi; + + /* Add constraints for clobbered/used in IPA mode. + We are not interested in what automatic variables are clobbered + or used as we only use the information in the caller to which + they do not escape. */ + gcc_assert (in_ipa_mode); + + /* If the stmt refers to memory in any way it better had a VUSE. */ + if (gimple_vuse (t) == NULL_TREE) + return; + + /* We'd better have function information for the current function. */ + fi = lookup_vi_for_tree (fn->decl); + gcc_assert (fi != NULL); + + /* Account for stores in assignments and calls. */ + if (gimple_vdef (t) != NULL_TREE + && gimple_has_lhs (t)) + { + tree lhs = gimple_get_lhs (t); + tree tem = lhs; + while (handled_component_p (tem)) + tem = TREE_OPERAND (tem, 0); + if ((DECL_P (tem) + && !auto_var_in_fn_p (tem, fn->decl)) + || INDIRECT_REF_P (tem) + || (TREE_CODE (tem) == MEM_REF + && !(TREE_CODE (TREE_OPERAND (tem, 0)) == ADDR_EXPR + && auto_var_in_fn_p + (TREE_OPERAND (TREE_OPERAND (tem, 0), 0), fn->decl)))) + { + struct constraint_expr lhsc, *rhsp; + unsigned i; + lhsc = get_function_part_constraint (fi, fi_clobbers); + get_constraint_for_address_of (lhs, &rhsc); + FOR_EACH_VEC_ELT (rhsc, i, rhsp) + process_constraint (new_constraint (lhsc, *rhsp)); + rhsc.truncate (0); + } + } + + /* Account for uses in assigments and returns. */ + if (gimple_assign_single_p (t) + || (gimple_code (t) == GIMPLE_RETURN + && gimple_return_retval (as_a (t)) != NULL_TREE)) + { + tree rhs = (gimple_assign_single_p (t) + ? gimple_assign_rhs1 (t) + : gimple_return_retval (as_a (t))); + tree tem = rhs; + while (handled_component_p (tem)) + tem = TREE_OPERAND (tem, 0); + if ((DECL_P (tem) + && !auto_var_in_fn_p (tem, fn->decl)) + || INDIRECT_REF_P (tem) + || (TREE_CODE (tem) == MEM_REF + && !(TREE_CODE (TREE_OPERAND (tem, 0)) == ADDR_EXPR + && auto_var_in_fn_p + (TREE_OPERAND (TREE_OPERAND (tem, 0), 0), fn->decl)))) + { + struct constraint_expr lhs, *rhsp; + unsigned i; + lhs = get_function_part_constraint (fi, fi_uses); + get_constraint_for_address_of (rhs, &rhsc); + FOR_EACH_VEC_ELT (rhsc, i, rhsp) + process_constraint (new_constraint (lhs, *rhsp)); + rhsc.truncate (0); + } + } + + if (gcall *call_stmt = dyn_cast (t)) + { + varinfo_t cfi = NULL; + tree decl = gimple_call_fndecl (t); + struct constraint_expr lhs, rhs; + unsigned i, j; + + /* For builtins we do not have separate function info. For those + we do not generate escapes for we have to generate clobbers/uses. */ + if (gimple_call_builtin_p (t, BUILT_IN_NORMAL)) + switch (DECL_FUNCTION_CODE (decl)) + { + /* The following functions use and clobber memory pointed to + by their arguments. */ + case BUILT_IN_STRCPY: + case BUILT_IN_STRNCPY: + case BUILT_IN_BCOPY: + case BUILT_IN_MEMCPY: + case BUILT_IN_MEMMOVE: + case BUILT_IN_MEMPCPY: + case BUILT_IN_STPCPY: + case BUILT_IN_STPNCPY: + case BUILT_IN_STRCAT: + case BUILT_IN_STRNCAT: + case BUILT_IN_STRCPY_CHK: + case BUILT_IN_STRNCPY_CHK: + case BUILT_IN_MEMCPY_CHK: + case BUILT_IN_MEMMOVE_CHK: + case BUILT_IN_MEMPCPY_CHK: + case BUILT_IN_STPCPY_CHK: + case BUILT_IN_STPNCPY_CHK: + case BUILT_IN_STRCAT_CHK: + case BUILT_IN_STRNCAT_CHK: + { + tree dest = gimple_call_arg (t, (DECL_FUNCTION_CODE (decl) + == BUILT_IN_BCOPY ? 1 : 0)); + tree src = gimple_call_arg (t, (DECL_FUNCTION_CODE (decl) + == BUILT_IN_BCOPY ? 0 : 1)); + unsigned i; + struct constraint_expr *rhsp, *lhsp; + get_constraint_for_ptr_offset (dest, NULL_TREE, &lhsc); + lhs = get_function_part_constraint (fi, fi_clobbers); + FOR_EACH_VEC_ELT (lhsc, i, lhsp) + process_constraint (new_constraint (lhs, *lhsp)); + get_constraint_for_ptr_offset (src, NULL_TREE, &rhsc); + lhs = get_function_part_constraint (fi, fi_uses); + FOR_EACH_VEC_ELT (rhsc, i, rhsp) + process_constraint (new_constraint (lhs, *rhsp)); + return; + } + /* The following function clobbers memory pointed to by + its argument. */ + case BUILT_IN_MEMSET: + case BUILT_IN_MEMSET_CHK: + case BUILT_IN_POSIX_MEMALIGN: + { + tree dest = gimple_call_arg (t, 0); + unsigned i; + ce_s *lhsp; + get_constraint_for_ptr_offset (dest, NULL_TREE, &lhsc); + lhs = get_function_part_constraint (fi, fi_clobbers); + FOR_EACH_VEC_ELT (lhsc, i, lhsp) + process_constraint (new_constraint (lhs, *lhsp)); + return; + } + /* The following functions clobber their second and third + arguments. */ + case BUILT_IN_SINCOS: + case BUILT_IN_SINCOSF: + case BUILT_IN_SINCOSL: + { + process_ipa_clobber (fi, gimple_call_arg (t, 1)); + process_ipa_clobber (fi, gimple_call_arg (t, 2)); + return; + } + /* The following functions clobber their second argument. */ + case BUILT_IN_FREXP: + case BUILT_IN_FREXPF: + case BUILT_IN_FREXPL: + case BUILT_IN_LGAMMA_R: + case BUILT_IN_LGAMMAF_R: + case BUILT_IN_LGAMMAL_R: + case BUILT_IN_GAMMA_R: + case BUILT_IN_GAMMAF_R: + case BUILT_IN_GAMMAL_R: + case BUILT_IN_MODF: + case BUILT_IN_MODFF: + case BUILT_IN_MODFL: + { + process_ipa_clobber (fi, gimple_call_arg (t, 1)); + return; + } + /* The following functions clobber their third argument. */ + case BUILT_IN_REMQUO: + case BUILT_IN_REMQUOF: + case BUILT_IN_REMQUOL: + { + process_ipa_clobber (fi, gimple_call_arg (t, 2)); + return; + } + /* The following functions use what their first argument + points to. */ + case BUILT_IN_STRDUP: + case BUILT_IN_STRNDUP: + case BUILT_IN_REALLOC: + case BUILT_IN_INDEX: + case BUILT_IN_STRCHR: + case BUILT_IN_STRRCHR: + case BUILT_IN_MEMCHR: + { + tree src = gimple_call_arg (t, 0); + get_constraint_for_ptr_offset (src, NULL_TREE, &rhsc); + lhs = get_function_part_constraint (fi, fi_uses); + struct constraint_expr *rhsp; + FOR_EACH_VEC_ELT (rhsc, i, rhsp) + process_constraint (new_constraint (lhs, *rhsp)); + return; + } + /* The following functions use what their first and second argument + point to. */ + case BUILT_IN_STRSTR: + case BUILT_IN_STRPBRK: + { + tree src = gimple_call_arg (t, 0); + get_constraint_for_ptr_offset (src, NULL_TREE, &rhsc); + lhs = get_function_part_constraint (fi, fi_uses); + struct constraint_expr *rhsp; + FOR_EACH_VEC_ELT (rhsc, i, rhsp) + process_constraint (new_constraint (lhs, *rhsp)); + rhsc.truncate (0); + src = gimple_call_arg (t, 1); + get_constraint_for_ptr_offset (src, NULL_TREE, &rhsc); + FOR_EACH_VEC_ELT (rhsc, i, rhsp) + process_constraint (new_constraint (lhs, *rhsp)); + return; + } + /* The following functions neither read nor clobber memory. */ + case BUILT_IN_ASSUME_ALIGNED: + case BUILT_IN_FREE: + return; + /* Trampolines are of no interest to us. */ + case BUILT_IN_INIT_TRAMPOLINE: + case BUILT_IN_ADJUST_TRAMPOLINE: + return; + case BUILT_IN_VA_START: + case BUILT_IN_VA_END: + return; + case BUILT_IN_GOMP_PARALLEL: + case BUILT_IN_GOACC_PARALLEL: + { + unsigned int fnpos, argpos; + unsigned int implicit_use_args[2]; + unsigned int num_implicit_use_args = 0; + switch (DECL_FUNCTION_CODE (decl)) + { + case BUILT_IN_GOMP_PARALLEL: + /* __builtin_GOMP_parallel (fn, data, num_threads, flags). */ + fnpos = 0; + argpos = 1; + break; + case BUILT_IN_GOACC_PARALLEL: + /* __builtin_GOACC_parallel (flags_m, fn, mapnum, hostaddrs, + sizes, kinds, ...). */ + fnpos = 1; + argpos = 3; + implicit_use_args[num_implicit_use_args++] = 4; + implicit_use_args[num_implicit_use_args++] = 5; + break; + default: + gcc_unreachable (); + } + + tree fnarg = gimple_call_arg (t, fnpos); + gcc_assert (TREE_CODE (fnarg) == ADDR_EXPR); + tree fndecl = TREE_OPERAND (fnarg, 0); + if (fndecl_maybe_in_other_partition (fndecl)) + /* Fallthru to general call handling. */ + break; + + varinfo_t cfi = get_vi_for_tree (fndecl); + + tree arg = gimple_call_arg (t, argpos); + + /* Parameter passed by value is used. */ + lhs = get_function_part_constraint (fi, fi_uses); + struct constraint_expr *rhsp; + get_constraint_for (arg, &rhsc); + FOR_EACH_VEC_ELT (rhsc, j, rhsp) + process_constraint (new_constraint (lhs, *rhsp)); + rhsc.truncate (0); + + /* Handle parameters used by the call, but not used in cfi, as + implicitly used by cfi. */ + lhs = get_function_part_constraint (cfi, fi_uses); + for (unsigned i = 0; i < num_implicit_use_args; ++i) + { + tree arg = gimple_call_arg (t, implicit_use_args[i]); + get_constraint_for (arg, &rhsc); + FOR_EACH_VEC_ELT (rhsc, j, rhsp) + process_constraint (new_constraint (lhs, *rhsp)); + rhsc.truncate (0); + } + + /* The caller clobbers what the callee does. */ + lhs = get_function_part_constraint (fi, fi_clobbers); + rhs = get_function_part_constraint (cfi, fi_clobbers); + process_constraint (new_constraint (lhs, rhs)); + + /* The caller uses what the callee does. */ + lhs = get_function_part_constraint (fi, fi_uses); + rhs = get_function_part_constraint (cfi, fi_uses); + process_constraint (new_constraint (lhs, rhs)); + + return; + } + /* printf-style functions may have hooks to set pointers to + point to somewhere into the generated string. Leave them + for a later exercise... */ + default: + /* Fallthru to general call handling. */; + } + + /* Parameters passed by value are used. */ + lhs = get_function_part_constraint (fi, fi_uses); + for (i = 0; i < gimple_call_num_args (t); i++) + { + struct constraint_expr *rhsp; + tree arg = gimple_call_arg (t, i); + + if (TREE_CODE (arg) == SSA_NAME + || is_gimple_min_invariant (arg)) + continue; + + get_constraint_for_address_of (arg, &rhsc); + FOR_EACH_VEC_ELT (rhsc, j, rhsp) + process_constraint (new_constraint (lhs, *rhsp)); + rhsc.truncate (0); + } + + /* Build constraints for propagating clobbers/uses along the + callgraph edges. */ + cfi = get_fi_for_callee (call_stmt); + if (cfi->id == anything_id) + { + if (gimple_vdef (t)) + make_constraint_from (first_vi_for_offset (fi, fi_clobbers), + anything_id); + make_constraint_from (first_vi_for_offset (fi, fi_uses), + anything_id); + return; + } + + /* For callees without function info (that's external functions), + ESCAPED is clobbered and used. */ + if (cfi->decl + && TREE_CODE (cfi->decl) == FUNCTION_DECL + && !cfi->is_fn_info) + { + varinfo_t vi; + + if (gimple_vdef (t)) + make_copy_constraint (first_vi_for_offset (fi, fi_clobbers), + escaped_id); + make_copy_constraint (first_vi_for_offset (fi, fi_uses), escaped_id); + + /* Also honor the call statement use/clobber info. */ + if ((vi = lookup_call_clobber_vi (call_stmt)) != NULL) + make_copy_constraint (first_vi_for_offset (fi, fi_clobbers), + vi->id); + if ((vi = lookup_call_use_vi (call_stmt)) != NULL) + make_copy_constraint (first_vi_for_offset (fi, fi_uses), + vi->id); + return; + } + + /* Otherwise the caller clobbers and uses what the callee does. + ??? This should use a new complex constraint that filters + local variables of the callee. */ + if (gimple_vdef (t)) + { + lhs = get_function_part_constraint (fi, fi_clobbers); + rhs = get_function_part_constraint (cfi, fi_clobbers); + process_constraint (new_constraint (lhs, rhs)); + } + lhs = get_function_part_constraint (fi, fi_uses); + rhs = get_function_part_constraint (cfi, fi_uses); + process_constraint (new_constraint (lhs, rhs)); + } + else if (gimple_code (t) == GIMPLE_ASM) + { + /* ??? Ick. We can do better. */ + if (gimple_vdef (t)) + make_constraint_from (first_vi_for_offset (fi, fi_clobbers), + anything_id); + make_constraint_from (first_vi_for_offset (fi, fi_uses), + anything_id); + } +} + + +/* This structure is used during pushing fields onto the fieldstack + to track the offset of the field, since bitpos_of_field gives it + relative to its immediate containing type, and we want it relative + to the ultimate containing object. */ + +struct fieldoff +{ + /* Offset from the base of the base containing object to this field. */ + HOST_WIDE_INT offset; + + /* Size, in bits, of the field. */ + unsigned HOST_WIDE_INT size; + + unsigned has_unknown_size : 1; + + unsigned must_have_pointers : 1; + + unsigned may_have_pointers : 1; + + unsigned only_restrict_pointers : 1; + + tree restrict_pointed_type; +}; +typedef struct fieldoff fieldoff_s; + + +/* qsort comparison function for two fieldoff's PA and PB. */ + +static int +fieldoff_compare (const void *pa, const void *pb) +{ + const fieldoff_s *foa = (const fieldoff_s *)pa; + const fieldoff_s *fob = (const fieldoff_s *)pb; + unsigned HOST_WIDE_INT foasize, fobsize; + + if (foa->offset < fob->offset) + return -1; + else if (foa->offset > fob->offset) + return 1; + + foasize = foa->size; + fobsize = fob->size; + if (foasize < fobsize) + return -1; + else if (foasize > fobsize) + return 1; + return 0; +} + +/* Sort a fieldstack according to the field offset and sizes. */ +static void +sort_fieldstack (vec &fieldstack) +{ + fieldstack.qsort (fieldoff_compare); +} + +/* Return true if T is a type that can have subvars. */ + +static inline bool +type_can_have_subvars (const_tree t) +{ + /* Aggregates without overlapping fields can have subvars. */ + return TREE_CODE (t) == RECORD_TYPE; +} + +/* Return true if V is a tree that we can have subvars for. + Normally, this is any aggregate type. Also complex + types which are not gimple registers can have subvars. */ + +static inline bool +var_can_have_subvars (const_tree v) +{ + /* Volatile variables should never have subvars. */ + if (TREE_THIS_VOLATILE (v)) + return false; + + /* Non decls or memory tags can never have subvars. */ + if (!DECL_P (v)) + return false; + + return type_can_have_subvars (TREE_TYPE (v)); +} + +/* Return true if T is a type that does contain pointers. */ + +static bool +type_must_have_pointers (tree type) +{ + if (POINTER_TYPE_P (type)) + return true; + + if (TREE_CODE (type) == ARRAY_TYPE) + return type_must_have_pointers (TREE_TYPE (type)); + + /* A function or method can have pointers as arguments, so track + those separately. */ + if (FUNC_OR_METHOD_TYPE_P (type)) + return true; + + return false; +} + +static bool +field_must_have_pointers (tree t) +{ + return type_must_have_pointers (TREE_TYPE (t)); +} + +/* Given a TYPE, and a vector of field offsets FIELDSTACK, push all + the fields of TYPE onto fieldstack, recording their offsets along + the way. + + OFFSET is used to keep track of the offset in this entire + structure, rather than just the immediately containing structure. + Returns false if the caller is supposed to handle the field we + recursed for. */ + +static bool +push_fields_onto_fieldstack (tree type, vec *fieldstack, + unsigned HOST_WIDE_INT offset) +{ + tree field; + bool empty_p = true; + + if (TREE_CODE (type) != RECORD_TYPE) + return false; + + /* If the vector of fields is growing too big, bail out early. + Callers check for vec::length <= param_max_fields_for_field_sensitive, make + sure this fails. */ + if (fieldstack->length () > (unsigned)param_max_fields_for_field_sensitive) + return false; + + for (field = TYPE_FIELDS (type); field; field = DECL_CHAIN (field)) + if (TREE_CODE (field) == FIELD_DECL) + { + bool push = false; + unsigned HOST_WIDE_INT foff = bitpos_of_field (field); + tree field_type = TREE_TYPE (field); + + if (!var_can_have_subvars (field) + || TREE_CODE (field_type) == QUAL_UNION_TYPE + || TREE_CODE (field_type) == UNION_TYPE) + push = true; + else if (!push_fields_onto_fieldstack + (field_type, fieldstack, offset + foff) + && (DECL_SIZE (field) + && !integer_zerop (DECL_SIZE (field)))) + /* Empty structures may have actual size, like in C++. So + see if we didn't push any subfields and the size is + nonzero, push the field onto the stack. */ + push = true; + + if (push) + { + fieldoff_s *pair = NULL; + bool has_unknown_size = false; + bool must_have_pointers_p; + + if (!fieldstack->is_empty ()) + pair = &fieldstack->last (); + + /* If there isn't anything at offset zero, create sth. */ + if (!pair + && offset + foff != 0) + { + fieldoff_s e + = {0, offset + foff, false, false, true, false, NULL_TREE}; + pair = fieldstack->safe_push (e); + } + + if (!DECL_SIZE (field) + || !tree_fits_uhwi_p (DECL_SIZE (field))) + has_unknown_size = true; + + /* If adjacent fields do not contain pointers merge them. */ + must_have_pointers_p = field_must_have_pointers (field); + if (pair + && !has_unknown_size + && !must_have_pointers_p + && !pair->must_have_pointers + && !pair->has_unknown_size + && pair->offset + pair->size == offset + foff) + { + pair->size += tree_to_uhwi (DECL_SIZE (field)); + } + else + { + fieldoff_s e; + e.offset = offset + foff; + e.has_unknown_size = has_unknown_size; + if (!has_unknown_size) + e.size = tree_to_uhwi (DECL_SIZE (field)); + else + e.size = -1; + e.must_have_pointers = must_have_pointers_p; + e.may_have_pointers = true; + e.only_restrict_pointers + = (!has_unknown_size + && POINTER_TYPE_P (field_type) + && TYPE_RESTRICT (field_type)); + if (e.only_restrict_pointers) + e.restrict_pointed_type = TREE_TYPE (field_type); + fieldstack->safe_push (e); + } + } + + empty_p = false; + } + + return !empty_p; +} + +/* Count the number of arguments DECL has, and set IS_VARARGS to true + if it is a varargs function. */ + +static unsigned int +count_num_arguments (tree decl, bool *is_varargs) +{ + unsigned int num = 0; + tree t; + + /* Capture named arguments for K&R functions. They do not + have a prototype and thus no TYPE_ARG_TYPES. */ + for (t = DECL_ARGUMENTS (decl); t; t = DECL_CHAIN (t)) + ++num; + + /* Check if the function has variadic arguments. */ + for (t = TYPE_ARG_TYPES (TREE_TYPE (decl)); t; t = TREE_CHAIN (t)) + if (TREE_VALUE (t) == void_type_node) + break; + if (!t) + *is_varargs = true; + + return num; +} + +/* Creation function node for DECL, using NAME, and return the index + of the variable we've created for the function. If NONLOCAL_p, create + initial constraints. */ + +static varinfo_t +create_function_info_for (tree decl, const char *name, bool add_id, + bool nonlocal_p) +{ + struct function *fn = DECL_STRUCT_FUNCTION (decl); + varinfo_t vi, prev_vi; + tree arg; + unsigned int i; + bool is_varargs = false; + unsigned int num_args = count_num_arguments (decl, &is_varargs); + + /* Create the variable info. */ + + vi = new_var_info (decl, name, add_id); + vi->offset = 0; + vi->size = 1; + vi->fullsize = fi_parm_base + num_args; + vi->is_fn_info = 1; + vi->may_have_pointers = false; + if (is_varargs) + vi->fullsize = ~0; + insert_vi_for_tree (vi->decl, vi); + + prev_vi = vi; + + /* Create a variable for things the function clobbers and one for + things the function uses. */ + { + varinfo_t clobbervi, usevi; + const char *newname; + char *tempname; + + tempname = xasprintf ("%s.clobber", name); + newname = ggc_strdup (tempname); + free (tempname); + + clobbervi = new_var_info (NULL, newname, false); + clobbervi->offset = fi_clobbers; + clobbervi->size = 1; + clobbervi->fullsize = vi->fullsize; + clobbervi->is_full_var = true; + clobbervi->is_global_var = false; + clobbervi->is_reg_var = true; + + gcc_assert (prev_vi->offset < clobbervi->offset); + prev_vi->next = clobbervi->id; + prev_vi = clobbervi; + + tempname = xasprintf ("%s.use", name); + newname = ggc_strdup (tempname); + free (tempname); + + usevi = new_var_info (NULL, newname, false); + usevi->offset = fi_uses; + usevi->size = 1; + usevi->fullsize = vi->fullsize; + usevi->is_full_var = true; + usevi->is_global_var = false; + usevi->is_reg_var = true; + + gcc_assert (prev_vi->offset < usevi->offset); + prev_vi->next = usevi->id; + prev_vi = usevi; + } + + /* And one for the static chain. */ + if (fn->static_chain_decl != NULL_TREE) + { + varinfo_t chainvi; + const char *newname; + char *tempname; + + tempname = xasprintf ("%s.chain", name); + newname = ggc_strdup (tempname); + free (tempname); + + chainvi = new_var_info (fn->static_chain_decl, newname, false); + chainvi->offset = fi_static_chain; + chainvi->size = 1; + chainvi->fullsize = vi->fullsize; + chainvi->is_full_var = true; + chainvi->is_global_var = false; + + insert_vi_for_tree (fn->static_chain_decl, chainvi); + + if (nonlocal_p + && chainvi->may_have_pointers) + make_constraint_from (chainvi, nonlocal_id); + + gcc_assert (prev_vi->offset < chainvi->offset); + prev_vi->next = chainvi->id; + prev_vi = chainvi; + } + + /* Create a variable for the return var. */ + if (DECL_RESULT (decl) != NULL + || !VOID_TYPE_P (TREE_TYPE (TREE_TYPE (decl)))) + { + varinfo_t resultvi; + const char *newname; + char *tempname; + tree resultdecl = decl; + + if (DECL_RESULT (decl)) + resultdecl = DECL_RESULT (decl); + + tempname = xasprintf ("%s.result", name); + newname = ggc_strdup (tempname); + free (tempname); + + resultvi = new_var_info (resultdecl, newname, false); + resultvi->offset = fi_result; + resultvi->size = 1; + resultvi->fullsize = vi->fullsize; + resultvi->is_full_var = true; + if (DECL_RESULT (decl)) + resultvi->may_have_pointers = true; + + if (DECL_RESULT (decl)) + insert_vi_for_tree (DECL_RESULT (decl), resultvi); + + if (nonlocal_p + && DECL_RESULT (decl) + && DECL_BY_REFERENCE (DECL_RESULT (decl))) + make_constraint_from (resultvi, nonlocal_id); + + gcc_assert (prev_vi->offset < resultvi->offset); + prev_vi->next = resultvi->id; + prev_vi = resultvi; + } + + /* We also need to make function return values escape. Nothing + escapes by returning from main though. */ + if (nonlocal_p + && !MAIN_NAME_P (DECL_NAME (decl))) + { + varinfo_t fi, rvi; + fi = lookup_vi_for_tree (decl); + rvi = first_vi_for_offset (fi, fi_result); + if (rvi && rvi->offset == fi_result) + make_copy_constraint (get_varinfo (escaped_id), rvi->id); + } + + /* Set up variables for each argument. */ + arg = DECL_ARGUMENTS (decl); + for (i = 0; i < num_args; i++) + { + varinfo_t argvi; + const char *newname; + char *tempname; + tree argdecl = decl; + + if (arg) + argdecl = arg; + + tempname = xasprintf ("%s.arg%d", name, i); + newname = ggc_strdup (tempname); + free (tempname); + + argvi = new_var_info (argdecl, newname, false); + argvi->offset = fi_parm_base + i; + argvi->size = 1; + argvi->is_full_var = true; + argvi->fullsize = vi->fullsize; + if (arg) + argvi->may_have_pointers = true; + + if (arg) + insert_vi_for_tree (arg, argvi); + + if (nonlocal_p + && argvi->may_have_pointers) + make_constraint_from (argvi, nonlocal_id); + + gcc_assert (prev_vi->offset < argvi->offset); + prev_vi->next = argvi->id; + prev_vi = argvi; + if (arg) + arg = DECL_CHAIN (arg); + } + + /* Add one representative for all further args. */ + if (is_varargs) + { + varinfo_t argvi; + const char *newname; + char *tempname; + tree decl; + + tempname = xasprintf ("%s.varargs", name); + newname = ggc_strdup (tempname); + free (tempname); + + /* We need sth that can be pointed to for va_start. */ + decl = build_fake_var_decl (ptr_type_node); + + argvi = new_var_info (decl, newname, false); + argvi->offset = fi_parm_base + num_args; + argvi->size = ~0; + argvi->is_full_var = true; + argvi->is_heap_var = true; + argvi->fullsize = vi->fullsize; + + if (nonlocal_p + && argvi->may_have_pointers) + make_constraint_from (argvi, nonlocal_id); + + gcc_assert (prev_vi->offset < argvi->offset); + prev_vi->next = argvi->id; + } + + return vi; +} + + +/* Return true if FIELDSTACK contains fields that overlap. + FIELDSTACK is assumed to be sorted by offset. */ + +static bool +check_for_overlaps (const vec &fieldstack) +{ + fieldoff_s *fo = NULL; + unsigned int i; + HOST_WIDE_INT lastoffset = -1; + + FOR_EACH_VEC_ELT (fieldstack, i, fo) + { + if (fo->offset == lastoffset) + return true; + lastoffset = fo->offset; + } + return false; +} + +/* Create a varinfo structure for NAME and DECL, and add it to VARMAP. + This will also create any varinfo structures necessary for fields + of DECL. DECL is a function parameter if HANDLE_PARAM is set. + HANDLED_STRUCT_TYPE is used to register struct types reached by following + restrict pointers. This is needed to prevent infinite recursion. + If ADD_RESTRICT, pretend that the pointer NAME is restrict even if DECL + does not advertise it. */ + +static varinfo_t +create_variable_info_for_1 (tree decl, const char *name, bool add_id, + bool handle_param, bitmap handled_struct_type, + bool add_restrict = false) +{ + varinfo_t vi, newvi; + tree decl_type = TREE_TYPE (decl); + tree declsize = DECL_P (decl) ? DECL_SIZE (decl) : TYPE_SIZE (decl_type); + auto_vec fieldstack; + fieldoff_s *fo; + unsigned int i; + + if (!declsize + || !tree_fits_uhwi_p (declsize)) + { + vi = new_var_info (decl, name, add_id); + vi->offset = 0; + vi->size = ~0; + vi->fullsize = ~0; + vi->is_unknown_size_var = true; + vi->is_full_var = true; + vi->may_have_pointers = true; + return vi; + } + + /* Collect field information. */ + if (use_field_sensitive + && var_can_have_subvars (decl) + /* ??? Force us to not use subfields for globals in IPA mode. + Else we'd have to parse arbitrary initializers. */ + && !(in_ipa_mode + && is_global_var (decl))) + { + fieldoff_s *fo = NULL; + bool notokay = false; + unsigned int i; + + push_fields_onto_fieldstack (decl_type, &fieldstack, 0); + + for (i = 0; !notokay && fieldstack.iterate (i, &fo); i++) + if (fo->has_unknown_size + || fo->offset < 0) + { + notokay = true; + break; + } + + /* We can't sort them if we have a field with a variable sized type, + which will make notokay = true. In that case, we are going to return + without creating varinfos for the fields anyway, so sorting them is a + waste to boot. */ + if (!notokay) + { + sort_fieldstack (fieldstack); + /* Due to some C++ FE issues, like PR 22488, we might end up + what appear to be overlapping fields even though they, + in reality, do not overlap. Until the C++ FE is fixed, + we will simply disable field-sensitivity for these cases. */ + notokay = check_for_overlaps (fieldstack); + } + + if (notokay) + fieldstack.release (); + } + + /* If we didn't end up collecting sub-variables create a full + variable for the decl. */ + if (fieldstack.length () == 0 + || fieldstack.length () > (unsigned)param_max_fields_for_field_sensitive) + { + vi = new_var_info (decl, name, add_id); + vi->offset = 0; + vi->may_have_pointers = true; + vi->fullsize = tree_to_uhwi (declsize); + vi->size = vi->fullsize; + vi->is_full_var = true; + if (POINTER_TYPE_P (decl_type) + && (TYPE_RESTRICT (decl_type) || add_restrict)) + vi->only_restrict_pointers = 1; + if (vi->only_restrict_pointers + && !type_contains_placeholder_p (TREE_TYPE (decl_type)) + && handle_param + && !bitmap_bit_p (handled_struct_type, + TYPE_UID (TREE_TYPE (decl_type)))) + { + varinfo_t rvi; + tree heapvar = build_fake_var_decl (TREE_TYPE (decl_type)); + DECL_EXTERNAL (heapvar) = 1; + if (var_can_have_subvars (heapvar)) + bitmap_set_bit (handled_struct_type, + TYPE_UID (TREE_TYPE (decl_type))); + rvi = create_variable_info_for_1 (heapvar, "PARM_NOALIAS", true, + true, handled_struct_type); + if (var_can_have_subvars (heapvar)) + bitmap_clear_bit (handled_struct_type, + TYPE_UID (TREE_TYPE (decl_type))); + rvi->is_restrict_var = 1; + insert_vi_for_tree (heapvar, rvi); + make_constraint_from (vi, rvi->id); + make_param_constraints (rvi); + } + fieldstack.release (); + return vi; + } + + vi = new_var_info (decl, name, add_id); + vi->fullsize = tree_to_uhwi (declsize); + if (fieldstack.length () == 1) + vi->is_full_var = true; + for (i = 0, newvi = vi; + fieldstack.iterate (i, &fo); + ++i, newvi = vi_next (newvi)) + { + const char *newname = NULL; + char *tempname; + + if (dump_file) + { + if (fieldstack.length () != 1) + { + tempname + = xasprintf ("%s." HOST_WIDE_INT_PRINT_DEC + "+" HOST_WIDE_INT_PRINT_DEC, name, + fo->offset, fo->size); + newname = ggc_strdup (tempname); + free (tempname); + } + } + else + newname = "NULL"; + + if (newname) + newvi->name = newname; + newvi->offset = fo->offset; + newvi->size = fo->size; + newvi->fullsize = vi->fullsize; + newvi->may_have_pointers = fo->may_have_pointers; + newvi->only_restrict_pointers = fo->only_restrict_pointers; + if (handle_param + && newvi->only_restrict_pointers + && !type_contains_placeholder_p (fo->restrict_pointed_type) + && !bitmap_bit_p (handled_struct_type, + TYPE_UID (fo->restrict_pointed_type))) + { + varinfo_t rvi; + tree heapvar = build_fake_var_decl (fo->restrict_pointed_type); + DECL_EXTERNAL (heapvar) = 1; + if (var_can_have_subvars (heapvar)) + bitmap_set_bit (handled_struct_type, + TYPE_UID (fo->restrict_pointed_type)); + rvi = create_variable_info_for_1 (heapvar, "PARM_NOALIAS", true, + true, handled_struct_type); + if (var_can_have_subvars (heapvar)) + bitmap_clear_bit (handled_struct_type, + TYPE_UID (fo->restrict_pointed_type)); + rvi->is_restrict_var = 1; + insert_vi_for_tree (heapvar, rvi); + make_constraint_from (newvi, rvi->id); + make_param_constraints (rvi); + } + if (i + 1 < fieldstack.length ()) + { + varinfo_t tem = new_var_info (decl, name, false); + newvi->next = tem->id; + tem->head = vi->id; + } + } + + return vi; +} + +static unsigned int +create_variable_info_for (tree decl, const char *name, bool add_id) +{ + /* First see if we are dealing with an ifunc resolver call and + assiociate that with a call to the resolver function result. */ + cgraph_node *node; + if (in_ipa_mode + && TREE_CODE (decl) == FUNCTION_DECL + && (node = cgraph_node::get (decl)) + && node->ifunc_resolver) + { + varinfo_t fi = get_vi_for_tree (node->get_alias_target ()->decl); + constraint_expr rhs + = get_function_part_constraint (fi, fi_result); + fi = new_var_info (NULL_TREE, "ifuncres", true); + fi->is_reg_var = true; + constraint_expr lhs; + lhs.type = SCALAR; + lhs.var = fi->id; + lhs.offset = 0; + process_constraint (new_constraint (lhs, rhs)); + insert_vi_for_tree (decl, fi); + return fi->id; + } + + varinfo_t vi = create_variable_info_for_1 (decl, name, add_id, false, NULL); + unsigned int id = vi->id; + + insert_vi_for_tree (decl, vi); + + if (!VAR_P (decl)) + return id; + + /* Create initial constraints for globals. */ + for (; vi; vi = vi_next (vi)) + { + if (!vi->may_have_pointers + || !vi->is_global_var) + continue; + + /* Mark global restrict qualified pointers. */ + if ((POINTER_TYPE_P (TREE_TYPE (decl)) + && TYPE_RESTRICT (TREE_TYPE (decl))) + || vi->only_restrict_pointers) + { + varinfo_t rvi + = make_constraint_from_global_restrict (vi, "GLOBAL_RESTRICT", + true); + /* ??? For now exclude reads from globals as restrict sources + if those are not (indirectly) from incoming parameters. */ + rvi->is_restrict_var = false; + continue; + } + + /* In non-IPA mode the initializer from nonlocal is all we need. */ + if (!in_ipa_mode + || DECL_HARD_REGISTER (decl)) + make_copy_constraint (vi, nonlocal_id); + + /* In IPA mode parse the initializer and generate proper constraints + for it. */ + else + { + varpool_node *vnode = varpool_node::get (decl); + + /* For escaped variables initialize them from nonlocal. */ + if (!vnode || !vnode->all_refs_explicit_p ()) + make_copy_constraint (vi, nonlocal_id); + + /* While we can in theory walk references for the varpool + node that does not cover zero-initialization or references + to the constant pool. */ + if (DECL_INITIAL (decl)) + { + auto_vec rhsc; + struct constraint_expr lhs, *rhsp; + unsigned i; + lhs.var = vi->id; + lhs.offset = 0; + lhs.type = SCALAR; + get_constraint_for (DECL_INITIAL (decl), &rhsc); + FOR_EACH_VEC_ELT (rhsc, i, rhsp) + process_constraint (new_constraint (lhs, *rhsp)); + /* If this is a variable that escapes from the unit + the initializer escapes as well. */ + if (!vnode || !vnode->all_refs_explicit_p ()) + { + lhs.var = escaped_id; + lhs.offset = 0; + lhs.type = SCALAR; + FOR_EACH_VEC_ELT (rhsc, i, rhsp) + process_constraint (new_constraint (lhs, *rhsp)); + } + } + } + } + + return id; +} + +/* Register the constraints for function parameter related VI. */ + +static void +make_param_constraints (varinfo_t vi) +{ + for (; vi; vi = vi_next (vi)) + { + if (vi->only_restrict_pointers) + ; + else if (vi->may_have_pointers) + make_constraint_from (vi, nonlocal_id); + + if (vi->is_full_var) + break; + } +} + +/* Create varinfo structures for all of the variables in the + function for intraprocedural mode. */ + +static void +intra_create_variable_infos (struct function *fn) +{ + tree t; + bitmap handled_struct_type = NULL; + bool this_parm_in_ctor = DECL_CXX_CONSTRUCTOR_P (fn->decl); + + /* For each incoming pointer argument arg, create the constraint ARG + = NONLOCAL or a dummy variable if it is a restrict qualified + passed-by-reference argument. */ + for (t = DECL_ARGUMENTS (fn->decl); t; t = DECL_CHAIN (t)) + { + if (handled_struct_type == NULL) + handled_struct_type = BITMAP_ALLOC (NULL); + + varinfo_t p + = create_variable_info_for_1 (t, alias_get_name (t), false, true, + handled_struct_type, this_parm_in_ctor); + insert_vi_for_tree (t, p); + + make_param_constraints (p); + + this_parm_in_ctor = false; + } + + if (handled_struct_type != NULL) + BITMAP_FREE (handled_struct_type); + + /* Add a constraint for a result decl that is passed by reference. */ + if (DECL_RESULT (fn->decl) + && DECL_BY_REFERENCE (DECL_RESULT (fn->decl))) + { + varinfo_t p, result_vi = get_vi_for_tree (DECL_RESULT (fn->decl)); + + for (p = result_vi; p; p = vi_next (p)) + make_constraint_from (p, nonlocal_id); + } + + /* Add a constraint for the incoming static chain parameter. */ + if (fn->static_chain_decl != NULL_TREE) + { + varinfo_t p, chain_vi = get_vi_for_tree (fn->static_chain_decl); + + for (p = chain_vi; p; p = vi_next (p)) + make_constraint_from (p, nonlocal_id); + } +} + +/* Initialize the always-existing constraint variables for NULL + ANYTHING, READONLY, and INTEGER. */ + +static void +init_base_vars (void) +{ + struct constraint_expr lhs, rhs; + varinfo_t var_anything; + varinfo_t var_nothing; + varinfo_t var_string; + varinfo_t var_escaped; + varinfo_t var_nonlocal; + varinfo_t var_escaped_return; + varinfo_t var_storedanything; + varinfo_t var_integer; + + /* Variable ID zero is reserved and should be NULL. */ + varmap.safe_push (NULL); + + /* Create the NULL variable, used to represent that a variable points + to NULL. */ + var_nothing = new_var_info (NULL_TREE, "NULL", false); + gcc_assert (var_nothing->id == nothing_id); + var_nothing->is_artificial_var = 1; + var_nothing->offset = 0; + var_nothing->size = ~0; + var_nothing->fullsize = ~0; + var_nothing->is_special_var = 1; + var_nothing->may_have_pointers = 0; + var_nothing->is_global_var = 0; + + /* Create the ANYTHING variable, used to represent that a variable + points to some unknown piece of memory. */ + var_anything = new_var_info (NULL_TREE, "ANYTHING", false); + gcc_assert (var_anything->id == anything_id); + var_anything->is_artificial_var = 1; + var_anything->size = ~0; + var_anything->offset = 0; + var_anything->fullsize = ~0; + var_anything->is_special_var = 1; + + /* Anything points to anything. This makes deref constraints just + work in the presence of linked list and other p = *p type loops, + by saying that *ANYTHING = ANYTHING. */ + lhs.type = SCALAR; + lhs.var = anything_id; + lhs.offset = 0; + rhs.type = ADDRESSOF; + rhs.var = anything_id; + rhs.offset = 0; + + /* This specifically does not use process_constraint because + process_constraint ignores all anything = anything constraints, since all + but this one are redundant. */ + constraints.safe_push (new_constraint (lhs, rhs)); + + /* Create the STRING variable, used to represent that a variable + points to a string literal. String literals don't contain + pointers so STRING doesn't point to anything. */ + var_string = new_var_info (NULL_TREE, "STRING", false); + gcc_assert (var_string->id == string_id); + var_string->is_artificial_var = 1; + var_string->offset = 0; + var_string->size = ~0; + var_string->fullsize = ~0; + var_string->is_special_var = 1; + var_string->may_have_pointers = 0; + + /* Create the ESCAPED variable, used to represent the set of escaped + memory. */ + var_escaped = new_var_info (NULL_TREE, "ESCAPED", false); + gcc_assert (var_escaped->id == escaped_id); + var_escaped->is_artificial_var = 1; + var_escaped->offset = 0; + var_escaped->size = ~0; + var_escaped->fullsize = ~0; + var_escaped->is_special_var = 0; + + /* Create the NONLOCAL variable, used to represent the set of nonlocal + memory. */ + var_nonlocal = new_var_info (NULL_TREE, "NONLOCAL", false); + gcc_assert (var_nonlocal->id == nonlocal_id); + var_nonlocal->is_artificial_var = 1; + var_nonlocal->offset = 0; + var_nonlocal->size = ~0; + var_nonlocal->fullsize = ~0; + var_nonlocal->is_special_var = 1; + + /* Create the ESCAPED_RETURN variable, used to represent the set of escaped + memory via a regular return stmt. */ + var_escaped_return = new_var_info (NULL_TREE, "ESCAPED_RETURN", false); + gcc_assert (var_escaped_return->id == escaped_return_id); + var_escaped_return->is_artificial_var = 1; + var_escaped_return->offset = 0; + var_escaped_return->size = ~0; + var_escaped_return->fullsize = ~0; + var_escaped_return->is_special_var = 0; + + /* ESCAPED = *ESCAPED, because escaped is may-deref'd at calls, etc. */ + lhs.type = SCALAR; + lhs.var = escaped_id; + lhs.offset = 0; + rhs.type = DEREF; + rhs.var = escaped_id; + rhs.offset = 0; + process_constraint (new_constraint (lhs, rhs)); + + /* ESCAPED = ESCAPED + UNKNOWN_OFFSET, because if a sub-field escapes the + whole variable escapes. */ + lhs.type = SCALAR; + lhs.var = escaped_id; + lhs.offset = 0; + rhs.type = SCALAR; + rhs.var = escaped_id; + rhs.offset = UNKNOWN_OFFSET; + process_constraint (new_constraint (lhs, rhs)); + + /* *ESCAPED = NONLOCAL. This is true because we have to assume + everything pointed to by escaped points to what global memory can + point to. */ + lhs.type = DEREF; + lhs.var = escaped_id; + lhs.offset = 0; + rhs.type = SCALAR; + rhs.var = nonlocal_id; + rhs.offset = 0; + process_constraint (new_constraint (lhs, rhs)); + + /* NONLOCAL = &NONLOCAL, NONLOCAL = &ESCAPED. This is true because + global memory may point to global memory and escaped memory. */ + lhs.type = SCALAR; + lhs.var = nonlocal_id; + lhs.offset = 0; + rhs.type = ADDRESSOF; + rhs.var = nonlocal_id; + rhs.offset = 0; + process_constraint (new_constraint (lhs, rhs)); + rhs.type = ADDRESSOF; + rhs.var = escaped_id; + rhs.offset = 0; + process_constraint (new_constraint (lhs, rhs)); + + /* Transitively close ESCAPED_RETURN. + ESCAPED_RETURN = ESCAPED_RETURN + UNKNOWN_OFFSET + ESCAPED_RETURN = *ESCAPED_RETURN. */ + lhs.type = SCALAR; + lhs.var = escaped_return_id; + lhs.offset = 0; + rhs.type = SCALAR; + rhs.var = escaped_return_id; + rhs.offset = UNKNOWN_OFFSET; + process_constraint (new_constraint (lhs, rhs)); + lhs.type = SCALAR; + lhs.var = escaped_return_id; + lhs.offset = 0; + rhs.type = DEREF; + rhs.var = escaped_return_id; + rhs.offset = 0; + process_constraint (new_constraint (lhs, rhs)); + + /* Create the STOREDANYTHING variable, used to represent the set of + variables stored to *ANYTHING. */ + var_storedanything = new_var_info (NULL_TREE, "STOREDANYTHING", false); + gcc_assert (var_storedanything->id == storedanything_id); + var_storedanything->is_artificial_var = 1; + var_storedanything->offset = 0; + var_storedanything->size = ~0; + var_storedanything->fullsize = ~0; + var_storedanything->is_special_var = 0; + + /* Create the INTEGER variable, used to represent that a variable points + to what an INTEGER "points to". */ + var_integer = new_var_info (NULL_TREE, "INTEGER", false); + gcc_assert (var_integer->id == integer_id); + var_integer->is_artificial_var = 1; + var_integer->size = ~0; + var_integer->fullsize = ~0; + var_integer->offset = 0; + var_integer->is_special_var = 1; + + /* INTEGER = ANYTHING, because we don't know where a dereference of + a random integer will point to. */ + lhs.type = SCALAR; + lhs.var = integer_id; + lhs.offset = 0; + rhs.type = ADDRESSOF; + rhs.var = anything_id; + rhs.offset = 0; + process_constraint (new_constraint (lhs, rhs)); +} + +/* Associate node with varinfo DATA. Worker for + cgraph_for_symbol_thunks_and_aliases. */ +static bool +associate_varinfo_to_alias (struct cgraph_node *node, void *data) +{ + if ((node->alias + || (node->thunk + && ! node->inlined_to)) + && node->analyzed + && !node->ifunc_resolver) + insert_vi_for_tree (node->decl, (varinfo_t)data); + return false; +} + +/* Compute whether node is refered to non-locally. Worker for + cgraph_for_symbol_thunks_and_aliases. */ +static bool +refered_from_nonlocal_fn (struct cgraph_node *node, void *data) +{ + bool *nonlocal_p = (bool *)data; + *nonlocal_p |= (node->used_from_other_partition + || DECL_EXTERNAL (node->decl) + || TREE_PUBLIC (node->decl) + || node->force_output + || lookup_attribute ("noipa", DECL_ATTRIBUTES (node->decl))); + return false; +} + +/* Same for varpool nodes. */ +static bool +refered_from_nonlocal_var (struct varpool_node *node, void *data) +{ + bool *nonlocal_p = (bool *)data; + *nonlocal_p |= (node->used_from_other_partition + || DECL_EXTERNAL (node->decl) + || TREE_PUBLIC (node->decl) + || node->force_output); + return false; +} + +/* Create function infos. */ + +static void +ipa_create_function_infos (void) +{ + struct cgraph_node *node; + unsigned int constr_count = constraints.length (); + + FOR_EACH_DEFINED_FUNCTION (node) + { + varinfo_t vi; + /* Nodes without a body in this partition are not interesting. + Especially do not visit clones at this point for now - we + get duplicate decls there for inline clones at least. */ + if (!node->has_gimple_body_p () + || node->in_other_partition + || node->inlined_to) + continue; + node->get_body (); + + gcc_assert (!node->clone_of); + + /* For externally visible or attribute used annotated functions use + local constraints for their arguments. + For local functions we see all callers and thus do not need initial + constraints for parameters. */ + bool nonlocal_p = (node->used_from_other_partition + || DECL_EXTERNAL (node->decl) + || TREE_PUBLIC (node->decl) + || node->force_output + || lookup_attribute ("noipa", + DECL_ATTRIBUTES (node->decl))); + node->call_for_symbol_thunks_and_aliases (refered_from_nonlocal_fn, + &nonlocal_p, true); + + vi = create_function_info_for (node->decl, + alias_get_name (node->decl), false, + nonlocal_p); + if (dump_file && (dump_flags & TDF_DETAILS) + && constr_count != constraints.length ()) + { + fprintf (dump_file, + "Generating initial constraints for %s", + node->dump_name ()); + if (DECL_ASSEMBLER_NAME_SET_P (node->decl)) + fprintf (dump_file, " (%s)", + IDENTIFIER_POINTER + (DECL_ASSEMBLER_NAME (node->decl))); + fprintf (dump_file, "\n\n"); + dump_constraints (dump_file, constr_count); + fprintf (dump_file, "\n"); + + constr_count = constraints.length (); + } + + node->call_for_symbol_thunks_and_aliases + (associate_varinfo_to_alias, vi, true); + } +} + +/* Create constraints for global variables and their initializers. */ + +static void +ipa_create_global_variable_infos (void) +{ + varpool_node *var; + unsigned int constr_count = constraints.length (); + + FOR_EACH_VARIABLE (var) + { + if (var->alias && var->analyzed) + continue; + + varinfo_t vi = get_vi_for_tree (var->decl); + + /* For the purpose of IPA PTA unit-local globals are not + escape points. */ + bool nonlocal_p = (DECL_EXTERNAL (var->decl) + || TREE_PUBLIC (var->decl) + || var->used_from_other_partition + || var->force_output); + var->call_for_symbol_and_aliases (refered_from_nonlocal_var, + &nonlocal_p, true); + if (nonlocal_p) + vi->is_ipa_escape_point = true; + } + + if (dump_file && (dump_flags & TDF_DETAILS) + && constr_count != constraints.length ()) + { + fprintf (dump_file, + "Generating constraints for global initializers\n\n"); + dump_constraints (dump_file, constr_count); + fprintf (dump_file, "\n"); + constr_count = constraints.length (); + } +} + + +namespace pointer_analysis { + +/* Find the variable info for tree T in VI_FOR_TREE. If T does not + exist in the map, return NULL, otherwise, return the varinfo we found. */ + +varinfo_t +lookup_vi_for_tree (tree t) +{ + varinfo_t *slot = vi_for_tree->get (t); + if (slot == NULL) + return NULL; + + return *slot; +} + +/* Lookup the variable for the call statement CALL representing + the uses. Returns NULL if there is nothing special about this call. */ + +varinfo_t +lookup_call_use_vi (gcall *call) +{ + varinfo_t *slot_p = call_stmt_vars->get (call); + if (slot_p) + return *slot_p; + + return NULL; +} + +/* Lookup the variable for the call statement CALL representing + the clobbers. Returns NULL if there is nothing special about this call. */ + +varinfo_t +lookup_call_clobber_vi (gcall *call) +{ + varinfo_t uses = lookup_call_use_vi (call); + if (!uses) + return NULL; + + return vi_next (uses); +} + +/* Return the varinfo for the callee of CALL. */ + +varinfo_t +get_fi_for_callee (gcall *call) +{ + tree decl, fn = gimple_call_fn (call); + + if (fn && TREE_CODE (fn) == OBJ_TYPE_REF) + fn = OBJ_TYPE_REF_EXPR (fn); + + /* If we can directly resolve the function being called, do so. + Otherwise, it must be some sort of indirect expression that + we should still be able to handle. */ + decl = gimple_call_addr_fndecl (fn); + if (decl) + return get_vi_for_tree (decl); + + /* If the function is anything other than a SSA name pointer we have no + clue and should be getting ANYFN (well, ANYTHING for now). */ + if (!fn || TREE_CODE (fn) != SSA_NAME) + return get_varinfo (anything_id); + + if (SSA_NAME_IS_DEFAULT_DEF (fn) + && (TREE_CODE (SSA_NAME_VAR (fn)) == PARM_DECL + || TREE_CODE (SSA_NAME_VAR (fn)) == RESULT_DECL)) + fn = SSA_NAME_VAR (fn); + + return get_vi_for_tree (fn); +} + +/* Initialize constraint builder. */ + +void +init_constraint_builder (void) +{ + vi_for_tree = new hash_map; + call_stmt_vars = new hash_map; + gcc_obstack_init (&fake_var_decl_obstack); + + init_base_vars (); +} + +/* Deallocate constraint builder globals. */ + +void +delete_constraint_builder (void) +{ + delete vi_for_tree; + delete call_stmt_vars; + constraint_pool.release (); + obstack_free (&fake_var_decl_obstack, NULL); +} + +/* Build constraints for intraprocedural mode. */ + +void +intra_build_constraints (void) +{ + basic_block bb; + + intra_create_variable_infos (cfun); + + /* Now walk all statements and build the constraint set. */ + FOR_EACH_BB_FN (bb, cfun) + { + for (gphi_iterator gsi = gsi_start_phis (bb); !gsi_end_p (gsi); + gsi_next (&gsi)) + { + gphi *phi = gsi.phi (); + + if (! virtual_operand_p (gimple_phi_result (phi))) + find_func_aliases (cfun, phi); + } + + for (gimple_stmt_iterator gsi = gsi_start_bb (bb); !gsi_end_p (gsi); + gsi_next (&gsi)) + { + gimple *stmt = gsi_stmt (gsi); + + find_func_aliases (cfun, stmt); + } + } + + if (dump_file && (dump_flags & TDF_DETAILS)) + { + fprintf (dump_file, "Points-to analysis\n\nConstraints:\n\n"); + dump_constraints (dump_file, 0); + } +} + +/* Build constraints for ipa mode. */ + +void +ipa_build_constraints (void) +{ + struct cgraph_node *node; + + ipa_create_function_infos (); + ipa_create_global_variable_infos (); + + unsigned int constr_count = constraints.length (); + + FOR_EACH_DEFINED_FUNCTION (node) + { + struct function *func; + basic_block bb; + + /* Nodes without a body in this partition are not interesting. */ + if (!node->has_gimple_body_p () + || node->in_other_partition + || node->clone_of) + continue; + + if (dump_file && (dump_flags & TDF_DETAILS)) + { + fprintf (dump_file, + "Generating constraints for %s", node->dump_name ()); + if (DECL_ASSEMBLER_NAME_SET_P (node->decl)) + fprintf (dump_file, " (%s)", + IDENTIFIER_POINTER + (DECL_ASSEMBLER_NAME (node->decl))); + fprintf (dump_file, "\n"); + } + + func = DECL_STRUCT_FUNCTION (node->decl); + gcc_assert (cfun == NULL); + + /* Build constraints for the function body. */ + FOR_EACH_BB_FN (bb, func) + { + for (gphi_iterator gsi = gsi_start_phis (bb); !gsi_end_p (gsi); + gsi_next (&gsi)) + { + gphi *phi = gsi.phi (); + + if (! virtual_operand_p (gimple_phi_result (phi))) + find_func_aliases (func, phi); + } + + for (gimple_stmt_iterator gsi = gsi_start_bb (bb); !gsi_end_p (gsi); + gsi_next (&gsi)) + { + gimple *stmt = gsi_stmt (gsi); + + find_func_aliases (func, stmt); + find_func_clobbers (func, stmt); + } + } + + if (dump_file && (dump_flags & TDF_DETAILS)) + { + fprintf (dump_file, "\n"); + dump_constraints (dump_file, constr_count); + fprintf (dump_file, "\n"); + constr_count = constraints.length (); + } + } +} + +} // namespace pointer_analysis diff --git a/gcc/gimple-ssa-pta-constraints.h b/gcc/gimple-ssa-pta-constraints.h new file mode 100644 index 000000000000..3b469f7f7162 --- /dev/null +++ b/gcc/gimple-ssa-pta-constraints.h @@ -0,0 +1,38 @@ +/* Constraint builder for tree based points-to analysis + Copyright (C) 2005-2025 Free Software Foundation, Inc. + Contributed by Daniel Berlin + + This file is part of GCC. + + GCC is free software; you can redistribute it and/or modify + 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. + + GCC 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 GCC; see the file COPYING3. If not see + . */ + +#ifndef GIMPLE_SSA_PTA_CONSTRAINTS_H +#define GIMPLE_SSA_PTA_CONSTRAINTS_H + +namespace pointer_analysis { + +varinfo_t lookup_vi_for_tree (tree); +varinfo_t lookup_call_use_vi (gcall *); +varinfo_t lookup_call_clobber_vi (gcall *); +varinfo_t get_fi_for_callee (gcall *); + +void init_constraint_builder (void); +void delete_constraint_builder (void); +void intra_build_constraints (void); +void ipa_build_constraints (void); + +} // namespace pointer_analysis + +#endif /* GIMPLE_SSA_PTA_CONSTRAINTS_H */ diff --git a/gcc/gimplify.cc b/gcc/gimplify.cc index 9c5aa0638b73..d8725e4c5e20 100644 --- a/gcc/gimplify.cc +++ b/gcc/gimplify.cc @@ -2103,13 +2103,13 @@ gimple_add_padding_init_for_auto_var (tree decl, bool is_vla, /* Return true if the DECL need to be automaticly initialized by the compiler. */ static bool -is_var_need_auto_init (tree decl) +var_needs_auto_init_p (tree decl) { if (auto_var_p (decl) - && (TREE_CODE (decl) != VAR_DECL - || !DECL_HARD_REGISTER (decl)) - && (flag_auto_var_init > AUTO_INIT_UNINITIALIZED) - && (!lookup_attribute ("uninitialized", DECL_ATTRIBUTES (decl))) + && (TREE_CODE (decl) != VAR_DECL || !DECL_HARD_REGISTER (decl)) + && flag_auto_var_init > AUTO_INIT_UNINITIALIZED + && !lookup_attribute ("uninitialized", DECL_ATTRIBUTES (decl)) + && !lookup_attribute ("indeterminate", DECL_ATTRIBUTES (decl)) && !OPAQUE_TYPE_P (TREE_TYPE (decl)) && !is_empty_type (TREE_TYPE (decl))) return true; @@ -2222,7 +2222,7 @@ gimplify_decl_expr (tree *stmt_p, gimple_seq *seq_p) /* When there is no explicit initializer, if the user requested, We should insert an artifical initializer for this automatic variable. */ - else if (is_var_need_auto_init (decl) + else if (var_needs_auto_init_p (decl) && !decl_had_value_expr_p) { gimple_add_init_for_auto_var (decl, @@ -2316,27 +2316,6 @@ emit_warn_switch_unreachable (gimple *stmt) /* Don't warn for compiler-generated gotos. These occur in Duff's devices, for example. */ return NULL; - else if ((flag_auto_var_init > AUTO_INIT_UNINITIALIZED) - && ((gimple_call_internal_p (stmt, IFN_DEFERRED_INIT)) - || (gimple_call_builtin_p (stmt, BUILT_IN_CLEAR_PADDING) - && (bool) TREE_INT_CST_LOW (gimple_call_arg (stmt, 1))) - || (is_gimple_assign (stmt) - && gimple_assign_single_p (stmt) - && (TREE_CODE (gimple_assign_rhs1 (stmt)) == SSA_NAME) - && gimple_call_internal_p ( - SSA_NAME_DEF_STMT (gimple_assign_rhs1 (stmt)), - IFN_DEFERRED_INIT)))) - /* Don't warn for compiler-generated initializations for - -ftrivial-auto-var-init. - There are 3 cases: - case 1: a call to .DEFERRED_INIT; - case 2: a call to __builtin_clear_padding with the 2nd argument is - present and non-zero; - case 3: a gimple assign store right after the call to .DEFERRED_INIT - that has the LHS of .DEFERRED_INIT as the RHS as following: - _1 = .DEFERRED_INIT (4, 2, &"i1"[0]); - i1 = _1. */ - return NULL; else warning_at (gimple_location (stmt), OPT_Wswitch_unreachable, "statement will never be executed"); @@ -2384,6 +2363,18 @@ warn_switch_unreachable_and_auto_init_r (gimple_stmt_iterator *gsi_p, there will be non-debug stmts too, and we'll catch those. */ break; + case GIMPLE_ASSIGN: + /* See comment below in the GIMPLE_CALL case. */ + if (flag_auto_var_init > AUTO_INIT_UNINITIALIZED + && gimple_assign_single_p (stmt) + && TREE_CODE (gimple_assign_rhs1 (stmt)) == SSA_NAME) + { + gimple *g = SSA_NAME_DEF_STMT (gimple_assign_rhs1 (stmt)); + if (gimple_call_internal_p (g, IFN_DEFERRED_INIT)) + break; + } + goto do_default; + case GIMPLE_LABEL: /* Stop till the first Label. */ return integer_zero_node; @@ -2393,24 +2384,41 @@ warn_switch_unreachable_and_auto_init_r (gimple_stmt_iterator *gsi_p, *handled_ops_p = false; break; } - if (warn_trivial_auto_var_init - && flag_auto_var_init > AUTO_INIT_UNINITIALIZED + /* Don't warn for compiler-generated initializations for + -ftrivial-auto-var-init for -Wswitch-unreachable. Though + do warn for -Wtrivial-auto-var-init. + There are 3 cases: + case 1: a call to .DEFERRED_INIT; + case 2: a call to __builtin_clear_padding with the 2nd argument is + present and non-zero; + case 3: a gimple assign store right after the call to .DEFERRED_INIT + that has the LHS of .DEFERRED_INIT as the RHS as following: + _1 = .DEFERRED_INIT (4, 2, &"i1"[0]); + i1 = _1. + case 3 is handled above in the GIMPLE_ASSIGN case. */ + if (flag_auto_var_init > AUTO_INIT_UNINITIALIZED && gimple_call_internal_p (stmt, IFN_DEFERRED_INIT)) { - /* Get the variable name from the 3rd argument of call. */ - tree var_name = gimple_call_arg (stmt, 2); - var_name = TREE_OPERAND (TREE_OPERAND (var_name, 0), 0); - const char *var_name_str = TREE_STRING_POINTER (var_name); - - warning_at (gimple_location (stmt), OPT_Wtrivial_auto_var_init, - "%qs cannot be initialized with " - "%<-ftrivial-auto-var_init%>", - var_name_str); + if (warn_trivial_auto_var_init) + { + /* Get the variable name from the 3rd argument of call. */ + tree var_name = gimple_call_arg (stmt, 2); + var_name = TREE_OPERAND (TREE_OPERAND (var_name, 0), 0); + const char *var_name_str = TREE_STRING_POINTER (var_name); + + warning_at (gimple_location (stmt), OPT_Wtrivial_auto_var_init, + "%qs cannot be initialized with " + "%<-ftrivial-auto-var_init%>", var_name_str); + } break; } - + if (flag_auto_var_init > AUTO_INIT_UNINITIALIZED + && gimple_call_builtin_p (stmt, BUILT_IN_CLEAR_PADDING) + && (bool) TREE_INT_CST_LOW (gimple_call_arg (stmt, 1))) + break; /* Fall through. */ default: + do_default: /* check the first "real" statement (not a decl/lexical scope/...), issue warning if needed. */ if (warn_switch_unreachable && !unreachable_issued) @@ -2490,26 +2498,39 @@ last_stmt_in_scope (gimple *stmt) if (!stmt) return NULL; + auto last_stmt_in_seq = [] (gimple_seq s) + { + gimple_seq_node n; + for (n = gimple_seq_last (s); + n && (is_gimple_debug (n) + || (flag_auto_var_init > AUTO_INIT_UNINITIALIZED + && gimple_call_internal_p (n, IFN_DEFERRED_INIT))); + n = n->prev) + if (n == s) + return (gimple *) NULL; + return (gimple *) n; + }; + switch (gimple_code (stmt)) { case GIMPLE_BIND: { gbind *bind = as_a (stmt); - stmt = gimple_seq_last_nondebug_stmt (gimple_bind_body (bind)); + stmt = last_stmt_in_seq (gimple_bind_body (bind)); return last_stmt_in_scope (stmt); } case GIMPLE_TRY: { gtry *try_stmt = as_a (stmt); - stmt = gimple_seq_last_nondebug_stmt (gimple_try_eval (try_stmt)); + stmt = last_stmt_in_seq (gimple_try_eval (try_stmt)); gimple *last_eval = last_stmt_in_scope (stmt); if (gimple_stmt_may_fallthru (last_eval) && (last_eval == NULL || !gimple_call_internal_p (last_eval, IFN_FALLTHROUGH)) && gimple_try_kind (try_stmt) == GIMPLE_TRY_FINALLY) { - stmt = gimple_seq_last_nondebug_stmt (gimple_try_cleanup (try_stmt)); + stmt = last_stmt_in_seq (gimple_try_cleanup (try_stmt)); return last_stmt_in_scope (stmt); } else @@ -2662,8 +2683,16 @@ collect_fallthrough_labels (gimple_stmt_iterator *gsi_p, } else if (gimple_call_internal_p (gsi_stmt (*gsi_p), IFN_ASAN_MARK)) ; + else if (flag_auto_var_init > AUTO_INIT_UNINITIALIZED + && gimple_call_internal_p (gsi_stmt (*gsi_p), + IFN_DEFERRED_INIT)) + ; else if (gimple_code (gsi_stmt (*gsi_p)) == GIMPLE_PREDICT) ; + else if (flag_auto_var_init > AUTO_INIT_UNINITIALIZED + && gimple_code (gsi_stmt (*gsi_p)) == GIMPLE_GOTO + && VACUOUS_INIT_LABEL_P (gimple_goto_dest (gsi_stmt (*gsi_p)))) + ; else if (!is_gimple_debug (gsi_stmt (*gsi_p))) prev = gsi_stmt (*gsi_p); gsi_next (gsi_p); @@ -2700,9 +2729,13 @@ should_warn_for_implicit_fallthrough (gimple_stmt_iterator *gsi_p, tree label) { tree l; while (!gsi_end_p (gsi) - && gimple_code (gsi_stmt (gsi)) == GIMPLE_LABEL - && (l = gimple_label_label (as_a (gsi_stmt (gsi)))) - && !case_label_p (&gimplify_ctxp->case_labels, l)) + && ((gimple_code (gsi_stmt (gsi)) == GIMPLE_LABEL + && (l + = gimple_label_label (as_a (gsi_stmt (gsi)))) + && !case_label_p (&gimplify_ctxp->case_labels, l)) + || (flag_auto_var_init > AUTO_INIT_UNINITIALIZED + && gimple_call_internal_p (gsi_stmt (gsi), + IFN_DEFERRED_INIT)))) gsi_next_nondebug (&gsi); if (gsi_end_p (gsi) || gimple_code (gsi_stmt (gsi)) != GIMPLE_LABEL) return false; @@ -2715,7 +2748,10 @@ should_warn_for_implicit_fallthrough (gimple_stmt_iterator *gsi_p, tree label) /* Skip all immediately following labels. */ while (!gsi_end_p (gsi) && (gimple_code (gsi_stmt (gsi)) == GIMPLE_LABEL - || gimple_code (gsi_stmt (gsi)) == GIMPLE_PREDICT)) + || gimple_code (gsi_stmt (gsi)) == GIMPLE_PREDICT + || (flag_auto_var_init > AUTO_INIT_UNINITIALIZED + && gimple_call_internal_p (gsi_stmt (gsi), + IFN_DEFERRED_INIT)))) gsi_next_nondebug (&gsi); /* { ... something; default:; } */ @@ -2892,7 +2928,33 @@ expand_FALLTHROUGH_r (gimple_stmt_iterator *gsi_p, bool *handled_ops_p, gimple_stmt_iterator gsi2 = *gsi_p; stmt = gsi_stmt (gsi2); - if (gimple_code (stmt) == GIMPLE_GOTO && !gimple_has_location (stmt)) + if (flag_auto_var_init > AUTO_INIT_UNINITIALIZED + && gimple_code (stmt) == GIMPLE_GOTO + && VACUOUS_INIT_LABEL_P (gimple_goto_dest (stmt))) + { + /* Handle for C++ artificial -ftrivial-auto-var-init= + sequences. Those look like: + goto lab1; + lab2:; + v1 = .DEFERRED_INIT (...); + v2 = .DEFERRED_INIT (...); + lab3:; + v3 = .DEFERRED_INIT (...); + lab1:; + In this case, a case/default label can be either in between + the GIMPLE_GOTO and the corresponding GIMPLE_LABEL, if jumps + from the switch condition to the case/default label cross + vacuous initialization of some variables, or after the + corresponding GIMPLE_LABEL, if those jumps don't cross + any such initialization but there is an adjacent named label + which crosses such initialization. So, for the purpose of + this function, just ignore the goto but until reaching the + corresponding GIMPLE_LABEL allow also .DEFERRED_INIT + calls. */ + gsi_next (&gsi2); + } + else if (gimple_code (stmt) == GIMPLE_GOTO + && !gimple_has_location (stmt)) { /* Go on until the artificial label. */ tree goto_dest = gimple_goto_dest (stmt); @@ -2927,6 +2989,9 @@ expand_FALLTHROUGH_r (gimple_stmt_iterator *gsi_p, bool *handled_ops_p, } else if (gimple_call_internal_p (stmt, IFN_ASAN_MARK)) ; + else if (flag_auto_var_init > AUTO_INIT_UNINITIALIZED + && gimple_call_internal_p (stmt, IFN_DEFERRED_INIT)) + ; else if (!is_gimple_debug (stmt)) /* Anything else is not expected. */ break; @@ -6754,7 +6819,8 @@ gimplify_init_constructor (tree *expr_p, gimple_seq *pre_p, gimple_seq *post_p, && clear_padding_type_may_have_padding_p (type) && ((AGGREGATE_TYPE_P (type) && !cleared && !is_empty_ctor) || !AGGREGATE_TYPE_P (type)) - && is_var_need_auto_init (object)) + && var_needs_auto_init_p (object) + && flag_auto_var_init != AUTO_INIT_CXX26) gimple_add_padding_init_for_auto_var (object, false, pre_p); return ret; @@ -8461,6 +8527,7 @@ gimplify_target_expr (tree *expr_p, gimple_seq *pre_p, gimple_seq *post_p) if (init) { gimple_seq init_pre_p = NULL; + bool is_vla = false; /* TARGET_EXPR temps aren't part of the enclosing block, so add it to the temps list. Handle also variable length TARGET_EXPRs. */ @@ -8471,6 +8538,7 @@ gimplify_target_expr (tree *expr_p, gimple_seq *pre_p, gimple_seq *post_p) /* FIXME: this is correct only when the size of the type does not depend on expressions evaluated in init. */ gimplify_vla_decl (temp, &init_pre_p); + is_vla = true; } else { @@ -8482,6 +8550,15 @@ gimplify_target_expr (tree *expr_p, gimple_seq *pre_p, gimple_seq *post_p) gimple_add_tmp_var (temp); } + if (var_needs_auto_init_p (temp) && VOID_TYPE_P (TREE_TYPE (init))) + { + gimple_add_init_for_auto_var (temp, flag_auto_var_init, &init_pre_p); + if (flag_auto_var_init == AUTO_INIT_PATTERN + && !is_gimple_reg (temp) + && clear_padding_type_may_have_padding_p (TREE_TYPE (temp))) + gimple_add_padding_init_for_auto_var (temp, is_vla, &init_pre_p); + } + /* If TARGET_EXPR_INITIAL is void, then the mere evaluation of the expression is supposed to initialize the slot. */ if (VOID_TYPE_P (TREE_TYPE (init))) diff --git a/gcc/ginclude/stdarg.h b/gcc/ginclude/stdarg.h index 3a1939716668..648428863f54 100644 --- a/gcc/ginclude/stdarg.h +++ b/gcc/ginclude/stdarg.h @@ -44,7 +44,8 @@ typedef __builtin_va_list __gnuc_va_list; if this invocation was from the user program. */ #ifdef _STDARG_H -#if defined __STDC_VERSION__ && __STDC_VERSION__ > 201710L +#if (defined __STDC_VERSION__ && __STDC_VERSION__ > 201710L) \ + || __cplusplus >= 202400L #define va_start(...) __builtin_c23_va_start(__VA_ARGS__) #else #define va_start(v,l) __builtin_va_start(v,l) @@ -125,7 +126,8 @@ typedef __gnuc_va_list va_list; #endif /* not __svr4__ */ -#if defined __STDC_VERSION__ && __STDC_VERSION__ > 201710L +#if (defined __STDC_VERSION__ && __STDC_VERSION__ > 201710L) \ + || __cplusplus >= 202400L #define __STDC_VERSION_STDARG_H__ 202311L #endif diff --git a/gcc/ipa-prop.h b/gcc/ipa-prop.h index 74c9a6378370..046e83a521f6 100644 --- a/gcc/ipa-prop.h +++ b/gcc/ipa-prop.h @@ -72,7 +72,7 @@ along with GCC; see the file COPYING3. If not see enum jump_func_type { IPA_JF_UNKNOWN = 0, /* newly allocated and zeroed jump functions default */ - IPA_JF_CONST, /* represented by field costant */ + IPA_JF_CONST, /* represented by field constant */ IPA_JF_PASS_THROUGH, /* represented by field pass_through */ IPA_JF_LOAD_AGG, /* represented by field load_agg */ IPA_JF_ANCESTOR /* represented by field ancestor */ diff --git a/gcc/ipa-split.cc b/gcc/ipa-split.cc index 933ca16c9469..48f6a725ae8c 100644 --- a/gcc/ipa-split.cc +++ b/gcc/ipa-split.cc @@ -1400,6 +1400,15 @@ split_function (basic_block return_bb, class split_point *split_point, if (fndecl_built_in_p (node->decl)) set_decl_built_in_function (node->decl, NOT_BUILT_IN, 0); + /* Drop "clobber *this" attribute from first argument of the split + function if any. Code before that might be initializing the + members. */ + if (tree arg = DECL_ARGUMENTS (node->decl)) + if (lookup_attribute ("clobber *this", DECL_ATTRIBUTES (arg))) + DECL_ATTRIBUTES (arg) + = remove_attribute ("clobber *this", + copy_list (DECL_ATTRIBUTES (arg))); + /* If return_bb contains any clobbers that refer to SSA_NAMEs set in the split part, remove them. Also reset debug stmts that refer to SSA_NAMEs set in the split part. */ diff --git a/gcc/jit/ChangeLog b/gcc/jit/ChangeLog index fc42e5af841a..1577ea06aac5 100644 --- a/gcc/jit/ChangeLog +++ b/gcc/jit/ChangeLog @@ -1,3 +1,41 @@ +2025-10-08 Antoni Boucher + + PR jit/112466 + * Make-lang.in (JIT_OBJS): New variable. + * jit-playback.cc (replay): Include jit-target.h and initialize + target. + * jit-playback.h (class populate_target_info): New class. + * jit-recording.cc (recording::context::populate_target_info): New + method. + * jit-recording.h (recording::context::populate_target_info): New + method. + (recording::context::m_populated_target_info): New field. + * libgccjit.cc: Include jit-target.h. + (struct gcc_jit_target_info): New struct. + (gcc_jit_context_get_target_info, gcc_jit_target_info_release, + gcc_jit_target_info_cpu_supports, gcc_jit_target_info_arch, + gcc_jit_target_info_supports_target_dependent_type): New functions. + * libgccjit.h (gcc_jit_context_get_target_info, + gcc_jit_target_info_release, gcc_jit_target_info_cpu_supports, + gcc_jit_target_info_arch, + gcc_jit_target_info_supports_target_dependent_type): + New functions. + * libgccjit.map (LIBGCCJIT_ABI_35): New ABI tag. + * docs/topics/compilation.rst: Add documentation for the + functions gcc_jit_context_get_target_info, gcc_jit_target_info_release, + gcc_jit_target_info_cpu_supports, gcc_jit_target_info_arch, + gcc_jit_target_info_supports_target_dependent_type. + * docs/topics/compatibility.rst (LIBGCCJIT_ABI_35): New ABI tag. + * jit-target-def.h: New file. + * jit-target.cc: New file. + * jit-target.def: New file. + * jit-target.h: New file. + +2025-10-07 Jonathan Wakely + + * docs/_build/texinfo/libgccjit.texi: Fix spelling. + * docs/internals/index.rst: Likewise. + 2025-08-13 David Malcolm PR jit/121516 diff --git a/gcc/jit/Make-lang.in b/gcc/jit/Make-lang.in index 59afe264a856..0429137d694d 100644 --- a/gcc/jit/Make-lang.in +++ b/gcc/jit/Make-lang.in @@ -130,7 +130,7 @@ jit.serial = $(LIBGCCJIT_FILENAME) # Tell GNU make to ignore these if they exist. .PHONY: jit -jit_OBJS = attribs.o \ +JIT_OBJS = attribs.o \ jit/dummy-frontend.o \ jit/libgccjit.o \ jit/jit-logging.o \ @@ -139,13 +139,17 @@ jit_OBJS = attribs.o \ jit/jit-result.o \ jit/jit-tempdir.o \ jit/jit-builtins.o \ + jit/jit-target.o \ jit/jit-spec.o \ gcc.o ifneq (,$(findstring mingw,$(target))) -jit_OBJS += jit/jit-w32.o +JIT_OBJS += jit/jit-w32.o endif +# All language-specific object files for jit. +jit_OBJS = $(JIT_OBJS) $(JIT_TARGET_OBJS) + # Use strict warnings for this front end. jit-warn = $(STRICT_WARN) diff --git a/gcc/jit/docs/_build/texinfo/libgccjit.texi b/gcc/jit/docs/_build/texinfo/libgccjit.texi index 487c57118148..5852070153a5 100644 --- a/gcc/jit/docs/_build/texinfo/libgccjit.texi +++ b/gcc/jit/docs/_build/texinfo/libgccjit.texi @@ -15740,7 +15740,7 @@ The jit testsuite detects if @code{RUN_UNDER_VALGRIND} is present in the environment (with any value). If it is present, it runs the test client code under valgrind@footnote{https://valgrind.org}, -specifcally, the default +specifically, the default memcheck@footnote{https://valgrind.org/docs/manual/mc-manual.html} tool with --leak-check=full@footnote{https://valgrind.org/docs/manual/mc-manual.html#opt.leak-check}. diff --git a/gcc/jit/docs/internals/index.rst b/gcc/jit/docs/internals/index.rst index 36dd5391ca6a..50efebda13b4 100644 --- a/gcc/jit/docs/internals/index.rst +++ b/gcc/jit/docs/internals/index.rst @@ -137,7 +137,7 @@ Running under valgrind The jit testsuite detects if :envvar:`RUN_UNDER_VALGRIND` is present in the environment (with any value). If it is present, it runs the test client code under `valgrind `_, -specifcally, the default +specifically, the default `memcheck `_ tool with `--leak-check=full diff --git a/gcc/jit/docs/topics/compatibility.rst b/gcc/jit/docs/topics/compatibility.rst index 1c4b81bfff1a..19be33eb4b50 100644 --- a/gcc/jit/docs/topics/compatibility.rst +++ b/gcc/jit/docs/topics/compatibility.rst @@ -453,3 +453,16 @@ temporary variable: ``LIBGCCJIT_ABI_34`` covers the addition of * :func:`gcc_jit_context_set_output_ident` + +.. _LIBGCCJIT_ABI_35: + +``LIBGCCJIT_ABI_35`` +-------------------- +``LIBGCCJIT_ABI_35`` covers the addition of functions to query the target +information: + + * :func:`gcc_jit_context_get_target_info` + * :func:`gcc_jit_target_info_release` + * :func:`gcc_jit_target_info_cpu_supports` + * :func:`gcc_jit_target_info_arch` + * :func:`gcc_jit_target_info_supports_target_dependent_type` diff --git a/gcc/jit/docs/topics/compilation.rst b/gcc/jit/docs/topics/compilation.rst index 3d3a9ab4db33..80c80af510d2 100644 --- a/gcc/jit/docs/topics/compilation.rst +++ b/gcc/jit/docs/topics/compilation.rst @@ -199,3 +199,59 @@ The available kinds of output are: .. c:macro:: GCC_JIT_OUTPUT_KIND_EXECUTABLE Compile the context to an executable. + +Getting information about a target +********************************** + +You can query the target information by using the following API: + +.. function:: gcc_jit_target_info * \ + gcc_jit_context_get_target_info (gcc_jit_context *ctxt) + + Compute the information about a target. + + If the result is non-NULL, the caller becomes responsible for + calling :func:`gcc_jit_target_info_release` on it once they're done + with it. + +.. function:: void \ + gcc_jit_target_info_release (gcc_jit_target_info *info) + + This function releases all resources associated with the given target info. + +.. function:: int \ + gcc_jit_target_info_cpu_supports (gcc_jit_target_info *info, + const char *feature) + + Check if the specified target INFO supports the cpu FEATURE. + +.. function:: const char * \ + gcc_jit_target_info_arch (gcc_jit_target_info *info) + + Get the architecture of the currently running CPU, e.g. the value of -march + equivalent to -march=native. Ex.: znver3 + + The underlying buffer is only valid until the gcc_jit_target_info is + released. + +.. function:: int \ + gcc_jit_target_info_supports_target_dependent_type (gcc_jit_target_info *info, + enum gcc_jit_types type) + + Check if the specified target INFO supports target-dependent types like + 128-bit integers. + + The API entrypoints relating to the target info: + + * :c:func:`gcc_jit_context_get_target_info` + * :c:func:`gcc_jit_target_info_release` + * :c:func:`gcc_jit_target_info_cpu_supports` + * :c:func:`gcc_jit_target_info_arch` + * :c:func:`gcc_jit_target_info_supports_target_dependent_type` + + were added in :ref:`LIBGCCJIT_ABI_35`; you can test for their presence + using + + .. code-block:: c + + #ifdef LIBGCCJIT_HAVE_TARGET_INFO_API diff --git a/gcc/jit/jit-playback.cc b/gcc/jit/jit-playback.cc index 4473d8b55521..291ddeb2cca2 100644 --- a/gcc/jit/jit-playback.cc +++ b/gcc/jit/jit-playback.cc @@ -50,6 +50,7 @@ along with GCC; see the file COPYING3. If not see #include "jit-result.h" #include "jit-builtins.h" #include "jit-tempdir.h" +#include "jit-target.h" #ifdef _WIN32 #include "jit-w32.h" @@ -3605,6 +3606,7 @@ replay () JIT_LOG_SCOPE (get_logger ()); init_types (); + jit_target_init (); /* Replay the recorded events: */ timevar_push (TV_JIT_REPLAY); diff --git a/gcc/jit/jit-playback.h b/gcc/jit/jit-playback.h index b0625dca71f1..07dab6fa3895 100644 --- a/gcc/jit/jit-playback.h +++ b/gcc/jit/jit-playback.h @@ -29,6 +29,7 @@ along with GCC; see the file COPYING3. If not see #include "varasm.h" #include "jit-recording.h" +#include "jit-target.h" namespace diagnostics { @@ -57,9 +58,10 @@ set_variable_string_attribute ( /* playback::context is an abstract base class. - The two concrete subclasses are: + The three concrete subclasses are: - playback::compile_to_memory - - playback::compile_to_file. */ + - playback::compile_to_file. + - playback::populate_target_info */ class context : public log_user { @@ -326,6 +328,18 @@ class context : public log_user void add_top_level_asm (const char *asm_stmts); + target_info *get_target_info () + { + return &m_target_info; + } + + target_info *move_target_info () + { + target_info *info = new target_info {std::move (m_target_info)}; + m_target_info = target_info{}; + return info; + } + private: void dump_generated_code (); @@ -429,6 +443,8 @@ class context : public log_user auto_vec m_source_files; auto_vec > m_cached_locations; + + target_info m_target_info; }; class compile_to_memory : public context @@ -461,6 +477,18 @@ class compile_to_file : public context const char *m_output_path; }; +class populate_target_info : public context +{ + public: + populate_target_info (recording::context *ctxt) : context (ctxt) + { + } + + void postprocess (const char *) final override + { + } +}; + /* A temporary wrapper object. These objects are (mostly) only valid during replay. diff --git a/gcc/jit/jit-recording.cc b/gcc/jit/jit-recording.cc index 8da3cb059156..2f4ecc318251 100644 --- a/gcc/jit/jit-recording.cc +++ b/gcc/jit/jit-recording.cc @@ -1629,6 +1629,13 @@ recording::context::enable_dump (const char *dumpname, result * recording::context::compile () { + if (m_populated_target_info) + { + add_error (NULL, + "cannot compile after calling gcc_jit_context_get_target_info"); + return NULL; + } + JIT_LOG_SCOPE (get_logger ()); log_all_options (); @@ -1659,6 +1666,13 @@ void recording::context::compile_to_file (enum gcc_jit_output_kind output_kind, const char *output_path) { + if (m_populated_target_info) + { + add_error (NULL, + "cannot compile after calling gcc_jit_context_get_target_info"); + return; + } + JIT_LOG_SCOPE (get_logger ()); log_all_options (); @@ -1677,6 +1691,28 @@ recording::context::compile_to_file (enum gcc_jit_output_kind output_kind, replayer.compile (); } +void +recording::context::populate_target_info () +{ + JIT_LOG_SCOPE (get_logger ()); + + log_all_options (); + + if (errors_occurred ()) + return; + + add_driver_option ("-fsyntax-only"); + m_populated_target_info = true; + + /* Set up a populate_target_info playback context. */ + ::gcc::jit::playback::populate_target_info replayer (this); + + /* Use it. */ + replayer.compile (); + + m_target_info = replayer.move_target_info (); +} + /* Format the given error using printf's conventions, print it to stderr, and add it to the context. */ diff --git a/gcc/jit/jit-recording.h b/gcc/jit/jit-recording.h index 0ac9245c2df5..4d41faa0446a 100644 --- a/gcc/jit/jit-recording.h +++ b/gcc/jit/jit-recording.h @@ -23,6 +23,7 @@ along with GCC; see the file COPYING3. If not see #include "jit-common.h" #include "jit-logging.h" +#include "jit-target.h" #include "libgccjit.h" #include @@ -328,6 +329,16 @@ class context : public log_user compile_to_file (enum gcc_jit_output_kind output_kind, const char *output_path); + void + populate_target_info (); + + target_info *move_target_info () + { + target_info *info = m_target_info; + m_target_info = nullptr; + return info; + } + void add_error (location *loc, const char *fmt, ...) GNU_PRINTF(3, 4); @@ -412,7 +423,11 @@ class context : public log_user type *m_basic_types[NUM_GCC_JIT_TYPES]; type *m_FILE_type; + bool m_populated_target_info = false; + builtins_manager *m_builtins_manager; // lazily created + + target_info *m_target_info; }; diff --git a/gcc/jit/jit-target-def.h b/gcc/jit/jit-target-def.h new file mode 100644 index 000000000000..dcb342fafe7d --- /dev/null +++ b/gcc/jit/jit-target-def.h @@ -0,0 +1,20 @@ +/* jit-target-def.h -- Default initializers for jit target hooks. + Copyright (C) 2023 Free Software Foundation, Inc. + + 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, 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; see the file COPYING3. If not see + . */ + +#include "jit/jit-target-hooks-def.h" +#include "tree.h" +#include "hooks.h" diff --git a/gcc/jit/jit-target.cc b/gcc/jit/jit-target.cc new file mode 100644 index 000000000000..40b47971c44c --- /dev/null +++ b/gcc/jit/jit-target.cc @@ -0,0 +1,96 @@ +/* jit-target.cc -- Target interface for the jit front end. + Copyright (C) 2023 Free Software Foundation, Inc. + +GCC 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, or (at your option) +any later version. + +GCC 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 GCC; see the file COPYING3. If not see +. */ + +#define INCLUDE_STRING +#define INCLUDE_ALGORITHM +#include "config.h" +#include "system.h" +#include "coretypes.h" + +#include "tree.h" +#include "memmodel.h" +#include "fold-const.h" +#include "diagnostic.h" +#include "stor-layout.h" +#include "tm.h" +#include "tm_p.h" +#include "target.h" +#include "calls.h" + +#include "jit-playback.h" +#include "jit-target.h" + +/* Initialize all variables of the Target structure. */ + +void +jit_target_init () +{ + /* Initialize target info tables, the keys required by the language are added + last, so that the CPU handler can override. */ + targetjitm.jit_register_cpu_target_info (); +} + +/* Add a target info key:value to JIT_TARGET_INFO for use by + target_info::has_target_value (). */ + +void +jit_add_target_info (const char *key, const char *value) +{ + gcc_assert (gcc::jit::active_playback_ctxt != NULL); + target_info* jit_target_info + = gcc::jit::active_playback_ctxt->get_target_info (); + if (jit_target_info->m_info.find (key) == jit_target_info->m_info.end ()) + jit_target_info->m_info.insert ({key, {value}}); + else + jit_target_info->m_info[key].insert (value); +} + +void +jit_target_set_arch (std::string const& arch) +{ + gcc_assert (gcc::jit::active_playback_ctxt != NULL); + target_info* jit_target_info + = gcc::jit::active_playback_ctxt->get_target_info (); + jit_target_info->m_arch = arch; +} + +void +jit_target_add_supported_target_dependent_type (enum gcc_jit_types type_) +{ + gcc_assert (gcc::jit::active_playback_ctxt != NULL); + target_info* jit_target_info + = gcc::jit::active_playback_ctxt->get_target_info (); + jit_target_info->m_supported_target_dependent_types.insert (type_); +} + +target_info * +jit_get_target_info () +{ + gcc_assert (gcc::jit::active_playback_ctxt != NULL); + target_info* info = gcc::jit::active_playback_ctxt->move_target_info (); + return info; +} + +bool +target_info::has_target_value (const char *key, const char *value) +{ + if (m_info.find (key) == m_info.end ()) + return false; + + auto& set = m_info[key]; + return set.find (value) != set.end (); +} diff --git a/gcc/jit/jit-target.def b/gcc/jit/jit-target.def new file mode 100644 index 000000000000..5e657eb4e137 --- /dev/null +++ b/gcc/jit/jit-target.def @@ -0,0 +1,42 @@ +/* jit-target.def -- Target hook definitions for the jit front end. + Copyright (C) 2023 Free Software Foundation, Inc. + + 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, 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; see the file COPYING3. If not see + . */ + +/* See target-hooks-macros.h for details of macros that should be + provided by the including file, and how to use them here. */ + +#include "target-hooks-macros.h" + +#undef HOOK_TYPE +#define HOOK_TYPE "JIT Target Hook" + +HOOK_VECTOR (TARGETJITM_INITIALIZER, gcc_targetjitm) + +#undef HOOK_PREFIX +#define HOOK_PREFIX "TARGET_" + +/* getTargetInfo keys relating to the target CPU. */ +DEFHOOK +(jit_register_cpu_target_info, + "Register all target information keys relating to the target CPU using the\n\ +function @code{jit_add_target_info}, which takes a key and a value. The\n\ +keys added by this hook are made available at compile time by calling\n\ +get_target_info.", + void, (void), + hook_void_void) + +/* Close the 'struct gcc_targetdm' definition. */ +HOOK_VECTOR_END (C90_EMPTY_HACK) diff --git a/gcc/jit/jit-target.h b/gcc/jit/jit-target.h new file mode 100644 index 000000000000..626ae8179ff1 --- /dev/null +++ b/gcc/jit/jit-target.h @@ -0,0 +1,75 @@ +/* jit-target.h -- Data structure definitions for target-specific jit behavior. + Copyright (C) 2023 Free Software Foundation, Inc. + + 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, 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; see the file COPYING3. If not see + . */ + +#ifndef GCC_JIT_TARGET_H +#define GCC_JIT_TARGET_H + +#define DEFHOOKPOD(NAME, DOC, TYPE, INIT) TYPE NAME; +#define DEFHOOK(NAME, DOC, TYPE, PARAMS, INIT) TYPE (* NAME) PARAMS; +#define DEFHOOK_UNDOC DEFHOOK +#define HOOKSTRUCT(FRAGMENT) FRAGMENT + +#include "jit-target.def" +#include "libgccjit.h" + +#include +#include + +static size_t hash_cstr (const char *s) +{ + const size_t seed = 0; + return std::_Hash_bytes (s, std::strlen (s), seed); +} + +struct CStringHash { + size_t operator () (const char* const &string) const { + auto res = hash_cstr (string); + return res; + } +}; + +struct CStringEqual { + bool + operator () (const char *const &string1, const char *const &string2) const + { + return strcmp (string1, string2) == 0; + } +}; + +struct target_info { + public: + bool has_target_value (const char *key, const char *value); + + std::unordered_map, + CStringHash, CStringEqual> + m_info; + std::string m_arch; + std::unordered_set m_supported_target_dependent_types; +}; + +/* Each target can provide their own. */ +extern struct gcc_targetjitm targetjitm; + +extern void jit_target_init (); +extern void jit_target_set_arch (std::string const& arch); +extern void +jit_target_add_supported_target_dependent_type (enum gcc_jit_types type_); +extern void jit_add_target_info (const char *key, const char *value); +extern target_info * jit_get_target_info (); + +#endif /* GCC_JIT_TARGET_H */ diff --git a/gcc/jit/libgccjit.cc b/gcc/jit/libgccjit.cc index 725a5d53d06f..33369447074b 100644 --- a/gcc/jit/libgccjit.cc +++ b/gcc/jit/libgccjit.cc @@ -20,6 +20,7 @@ along with GCC; see the file COPYING3. If not see #include "config.h" #define INCLUDE_MUTEX +#define INCLUDE_STRING #include "system.h" #include "coretypes.h" #include "timevar.h" @@ -29,6 +30,7 @@ along with GCC; see the file COPYING3. If not see #include "libgccjit.h" #include "jit-recording.h" #include "jit-result.h" +#include "jit-target.h" /* The opaque types used by the public API are actually subclasses of the gcc::jit::recording classes. */ @@ -44,6 +46,10 @@ struct gcc_jit_result : public gcc::jit::result { }; +struct gcc_jit_target_info : public target_info +{ +}; + struct gcc_jit_object : public gcc::jit::recording::memento { }; @@ -3900,6 +3906,51 @@ gcc_jit_context_set_output_ident (gcc_jit_context *ctxt, ctxt->set_output_ident (output_ident); } +gcc_jit_target_info * +gcc_jit_context_get_target_info (gcc_jit_context *ctxt) +{ + RETURN_NULL_IF_FAIL (ctxt, NULL, NULL, "NULL context"); + JIT_LOG_FUNC (ctxt->get_logger ()); + + ctxt->log ("populate_target_info of ctxt: %p", (void *)ctxt); + + ctxt->populate_target_info (); + + return (gcc_jit_target_info*) ctxt->move_target_info (); +} + +void +gcc_jit_target_info_release (gcc_jit_target_info *info) +{ + RETURN_IF_FAIL (info, NULL, NULL, "NULL info"); + delete info; +} + +int +gcc_jit_target_info_cpu_supports (gcc_jit_target_info *info, + const char *feature) +{ + RETURN_VAL_IF_FAIL (info, 0, NULL, NULL, "NULL info"); + RETURN_VAL_IF_FAIL (feature, 0, NULL, NULL, "NULL feature"); + return info->has_target_value ("target_feature", feature); +} + +const char * +gcc_jit_target_info_arch (gcc_jit_target_info *info) +{ + RETURN_NULL_IF_FAIL (info, NULL, NULL, "NULL info"); + return info->m_arch.c_str (); +} + +int +gcc_jit_target_info_supports_target_dependent_type (gcc_jit_target_info *info, + enum gcc_jit_types type) +{ + RETURN_VAL_IF_FAIL (info, 0, NULL, NULL, "NULL info"); + return info->m_supported_target_dependent_types.find (type) + != info->m_supported_target_dependent_types.end (); +} + /* Public entrypoint. See description in libgccjit.h. After error-checking, the real work is done by the diff --git a/gcc/jit/libgccjit.h b/gcc/jit/libgccjit.h index bc9fcaee2453..a58551007931 100644 --- a/gcc/jit/libgccjit.h +++ b/gcc/jit/libgccjit.h @@ -57,6 +57,9 @@ typedef struct gcc_jit_context gcc_jit_context; /* A gcc_jit_result encapsulates the result of an in-memory compilation. */ typedef struct gcc_jit_result gcc_jit_result; +/* A gcc_jit_target_info encapsulates the target info. */ +typedef struct gcc_jit_target_info gcc_jit_target_info; + /* An object created within a context. Such objects are automatically cleaned up when the context is released. @@ -2131,6 +2134,60 @@ gcc_jit_function_add_string_attribute (gcc_jit_function *func, enum gcc_jit_fn_attribute attribute, const char* value); +/* Create a gcc_jit_target_info instance. + + This API entrypoint was added in LIBGCCJIT_ABI_35; you can test for its + presence using + #ifdef LIBGCCJIT_HAVE_TARGET_INFO_API +*/ +extern gcc_jit_target_info * +gcc_jit_context_get_target_info (gcc_jit_context *ctxt); + +/* Release a gcc_jit_target_info instance. + + This API entrypoint was added in LIBGCCJIT_ABI_35; you can test for its + presence using + #ifdef LIBGCCJIT_HAVE_TARGET_INFO_API +*/ +extern void +gcc_jit_target_info_release (gcc_jit_target_info *info); + +/* Returns non-zero if FEATURE is supported by the specified target. + + This API entrypoint was added in LIBGCCJIT_ABI_35; you can test for its + presence using + #ifdef LIBGCCJIT_HAVE_TARGET_INFO_API +*/ +extern int +gcc_jit_target_info_cpu_supports (gcc_jit_target_info *info, + const char *feature); + +/* Returns the ARCH of the currently running CPU. + + This API entrypoint was added in LIBGCCJIT_ABI_35; you can test for its + presence using + #ifdef LIBGCCJIT_HAVE_TARGET_INFO_API +*/ +extern const char * +gcc_jit_target_info_arch (gcc_jit_target_info *info); + +/* Returns non-zero if the target natively supports the target-dependent type + TYPE. + + This API entrypoint was added in LIBGCCJIT_ABI_35; you can test for its + presence using + #ifdef LIBGCCJIT_HAVE_TARGET_INFO_API +*/ +extern int +gcc_jit_target_info_supports_target_dependent_type (gcc_jit_target_info *info, + enum gcc_jit_types type); + +/* The target info API was added in LIBGCCJIT_ABI_35; you can test for its + presence using + #ifdef LIBGCCJIT_HAVE_TARGET_INFO_API +*/ +#define LIBGCCJIT_HAVE_TARGET_INFO_API + extern void gcc_jit_function_add_integer_array_attribute ( gcc_jit_function *func, diff --git a/gcc/jit/libgccjit.map b/gcc/jit/libgccjit.map index fcb6e6f2a55d..4662ca4b3c02 100644 --- a/gcc/jit/libgccjit.map +++ b/gcc/jit/libgccjit.map @@ -325,3 +325,12 @@ LIBGCCJIT_ABI_34 { global: gcc_jit_context_set_output_ident; } LIBGCCJIT_ABI_33; + +LIBGCCJIT_ABI_35 { + global: + gcc_jit_context_get_target_info; + gcc_jit_target_info_release; + gcc_jit_target_info_cpu_supports; + gcc_jit_target_info_arch; + gcc_jit_target_info_supports_target_dependent_type; +} LIBGCCJIT_ABI_34; diff --git a/gcc/langhooks.cc b/gcc/langhooks.cc index 20d27a6d7fd0..6431d40af048 100644 --- a/gcc/langhooks.cc +++ b/gcc/langhooks.cc @@ -18,6 +18,7 @@ You should have received a copy of the GNU General Public License along with GCC; see the file COPYING3. If not see . */ +#define INCLUDE_VECTOR #include "config.h" #include "system.h" #include "coretypes.h" diff --git a/gcc/libgdiagnostics.cc b/gcc/libgdiagnostics.cc index cceddff9d690..46714ff2aa5e 100644 --- a/gcc/libgdiagnostics.cc +++ b/gcc/libgdiagnostics.cc @@ -2481,9 +2481,11 @@ struct spec_context : public diagnostics::output_spec::context { public: spec_context (const char *option_name, + const char *unparsed_spec, diagnostic_manager &affected_mgr, diagnostic_manager &control_mgr) - : context (option_name, affected_mgr.get_line_table ()), + : context (option_name, unparsed_spec, nullptr, + affected_mgr.get_line_table ()), m_control_mgr (control_mgr) {} @@ -2519,8 +2521,8 @@ diagnostic_manager_add_sink_from_spec (diagnostic_manager *affected_mgr, FAIL_IF_NULL (spec); FAIL_IF_NULL (control_mgr); - spec_context ctxt (option_name, *affected_mgr, *control_mgr); - auto inner_sink = ctxt.parse_and_make_sink (spec, affected_mgr->get_dc ()); + spec_context ctxt (option_name, spec, *affected_mgr, *control_mgr); + auto inner_sink = ctxt.parse_and_make_sink (affected_mgr->get_dc ()); if (!inner_sink) return -1; affected_mgr->get_dc ().add_sink (std::move (inner_sink)); diff --git a/gcc/lto/ChangeLog b/gcc/lto/ChangeLog index 4da9ca313532..55e08838fb4f 100644 --- a/gcc/lto/ChangeLog +++ b/gcc/lto/ChangeLog @@ -1,3 +1,8 @@ +2025-10-01 Jan Hubicka + + * Make-lang.in: Add lto_FDAS; enable FDA collection + (create_fdas_for_lto1): Be sure that build fails if create_gcov fails. + 2025-04-15 Kyrylo Tkachov * lto-partition.cc (add_node_references_to_partition): Define. diff --git a/gcc/lto/Make-lang.in b/gcc/lto/Make-lang.in index 553e6ddd0d2b..2af8bba44ca9 100644 --- a/gcc/lto/Make-lang.in +++ b/gcc/lto/Make-lang.in @@ -26,18 +26,15 @@ LTO_DUMP_INSTALL_NAME := $(shell echo lto-dump|sed '$(program_transform_name)') # The LTO-specific object files inclued in $(LTO_EXE). LTO_OBJS = lto/lto-lang.o lto/lto.o lto/lto-object.o attribs.o lto/lto-partition.o lto/lto-symtab.o lto/lto-common.o lto_OBJS = $(LTO_OBJS) +lto_FDAS = lto1.fda LTO_DUMP_OBJS = lto/lto-lang.o lto/lto-object.o attribs.o lto/lto-partition.o lto/lto-symtab.o lto/lto-dump.o lto/lto-common.o lto_dump_OBJS = $(LTO_DUMP_OBJS) -# this is only useful in a LTO bootstrap, but this does not work right -# now. Should reenable after this is fixed, but only when LTO bootstrap -# is enabled. - -#ifeq ($(if $(wildcard ../stage_current),$(shell cat \ -# ../stage_current)),stageautofeedback) -#$(LTO_OBJS): CFLAGS += -fauto-profile=lto1.fda -#$(LTO_OBJS): lto1.fda -#endif +ifeq ($(if $(wildcard ../stage_current),$(shell cat \ + ../stage_current)),stageautofeedback) +$(LTO_OBJS): CFLAGS += -fauto-profile=lto1.fda +$(LTO_OBJS): lto1.fda +endif # Rules @@ -118,7 +115,7 @@ create_fdas_for_lto1: ../stage1-gcc/lto1$(exeext) ../prev-gcc/$(PERF_DATA) echo $$perf_path; \ if [ -f $$perf_path ]; then \ profile_name=lto1_$$component_in_prev.fda; \ - $(CREATE_GCOV) -binary ../stage1-gcc/lto1$(exeext) -gcov $$profile_name -profile $$perf_path -gcov_version 2; \ + $(CREATE_GCOV) -binary ../stage1-gcc/lto1$(exeext) -gcov $$profile_name -profile $$perf_path -gcov_version 2 || exit 1; \ fi; \ done; @@ -128,7 +125,7 @@ create_fdas_for_lto1: ../stage1-gcc/lto1$(exeext) ../prev-gcc/$(PERF_DATA) echo $$perf_path; \ if [ -f $$perf_path ]; then \ profile_name=lto1_$$component_in_prev_target.fda; \ - $(CREATE_GCOV) -binary ../prev-gcc/lto1$(exeext) -gcov $$profile_name -profile $$perf_path -gcov_version 2; \ + $(CREATE_GCOV) -binary ../prev-gcc/lto1$(exeext) -gcov $$profile_name -profile $$perf_path -gcov_version 2 || exit 1; \ fi; \ done; diff --git a/gcc/m2/ChangeLog b/gcc/m2/ChangeLog index b9e2b4d1d232..60c19b663cf2 100644 --- a/gcc/m2/ChangeLog +++ b/gcc/m2/ChangeLog @@ -1,3 +1,26 @@ +2025-10-02 Gaius Mulley + + PR modula2/122009 + * gm2-compiler/M2GCCDeclare.mod (PrintKnown): Remove. + * gm2-gcc/m2type.cc (m2type_BuildEnumerator): Add const modifier. + * gm2-gcc/m2type.def (BuildEnumerator): Use ConstCharStar type. + * gm2-gcc/m2type.h (m2type_BuildEnumerator): Add const modifier. + * gm2-libs/M2WIDESET.mod (ShiftLeftByteBit): Rename variable to + as toIdx. + Rename variable from as fromIdx. + (ShiftRightByteBit): Rename variable to as toIdx. + Rename variable from as fromIdx. + (RotateLeft): Rename variable to as toIdx. + Rename variable from as fromIdx. + (ArithShiftLeftBit): Rename set to setb. + (ArithShiftRightBit): Rename set to setb. + +2025-10-01 Gaius Mulley + + PR modula2/122009 + * pge-boot/Gldtoa.cc (ldtoa_ldtoa): Change int to bool for + parameter sign. + 2025-09-21 Mark Wielaard * lang.opt.urls: Regenerate. diff --git a/gcc/m2/gm2-compiler/M2GCCDeclare.mod b/gcc/m2/gm2-compiler/M2GCCDeclare.mod index 710976e449eb..24634fda3584 100644 --- a/gcc/m2/gm2-compiler/M2GCCDeclare.mod +++ b/gcc/m2/gm2-compiler/M2GCCDeclare.mod @@ -4446,19 +4446,6 @@ BEGIN END PrintString ; -(* - PrintKnown - -*) - -PROCEDURE PrintKnown (sym: CARDINAL) ; -BEGIN - IF GccKnowsAbout (sym) - THEN - printf0 ("[gcc]") - END -END PrintKnown ; - - (* PrintVerboseFromList - prints the, i, th element in the list, l. *) diff --git a/gcc/m2/gm2-gcc/m2type.cc b/gcc/m2/gm2-gcc/m2type.cc index 535ab143053f..184b506aa693 100644 --- a/gcc/m2/gm2-gcc/m2type.cc +++ b/gcc/m2/gm2-gcc/m2type.cc @@ -2213,7 +2213,7 @@ gm2_build_enumerator (location_t location, tree name, tree value) enumvalues, list. It returns a copy of the value. */ tree -m2type_BuildEnumerator (location_t location, char *name, tree value, +m2type_BuildEnumerator (location_t location, const char *name, tree value, tree *enumvalues) { tree id = get_identifier (name); diff --git a/gcc/m2/gm2-gcc/m2type.def b/gcc/m2/gm2-gcc/m2type.def index 8a72652f22c8..6f64c98c1b78 100644 --- a/gcc/m2/gm2-gcc/m2type.def +++ b/gcc/m2/gm2-gcc/m2type.def @@ -173,7 +173,7 @@ PROCEDURE BuildPointerType (totype: tree) : tree ; It returns a copy of the value. --fixme-- why do this? *) -PROCEDURE BuildEnumerator (location: location_t; name: CharStar; value: tree; +PROCEDURE BuildEnumerator (location: location_t; name: ConstCharStar; value: tree; VAR enumvalues: tree) : tree ; diff --git a/gcc/m2/gm2-gcc/m2type.h b/gcc/m2/gm2-gcc/m2type.h index afd97f763143..68015a01e145 100644 --- a/gcc/m2/gm2-gcc/m2type.h +++ b/gcc/m2/gm2-gcc/m2type.h @@ -183,7 +183,7 @@ EXTERN tree m2type_BuildStartEnumeration (location_t location, char *name, bool ispacked); EXTERN tree m2type_BuildEndEnumeration (location_t location, tree enumtype, tree enumvalues); -EXTERN tree m2type_BuildEnumerator (location_t location, char *name, +EXTERN tree m2type_BuildEnumerator (location_t location, const char *name, tree value, tree *enumvalues); EXTERN tree m2type_BuildPointerType (tree totype); EXTERN tree m2type_BuildConstPointerType (tree totype); diff --git a/gcc/m2/gm2-libs/M2WIDESET.mod b/gcc/m2/gm2-libs/M2WIDESET.mod index f1b1bed3b3f3..93df428cb2ff 100644 --- a/gcc/m2/gm2-libs/M2WIDESET.mod +++ b/gcc/m2/gm2-libs/M2WIDESET.mod @@ -490,21 +490,21 @@ PROCEDURE ShiftLeftByteBit (VAR dest: ARRAY OF BYTE; src: ARRAY OF BYTE; highbit: CARDINAL; byteshift, bitshift: CARDINAL) ; VAR - top, bot, mid : BYTESET ; - i, h, from, to: CARDINAL ; + top, bot, mid : BYTESET ; + i, h, fromIdx, toIdx: CARDINAL ; BEGIN (* Copy the bytes into dest at the mostly correct position (modulo byte position). *) - to := 0 ; - from := 0 ; - WHILE to < byteshift DO - dest[to] := BYTE (0) ; - INC (to) + toIdx := 0 ; + fromIdx := 0 ; + WHILE toIdx < byteshift DO + dest[toIdx] := BYTE (0) ; + INC (toIdx) END ; - WHILE to <= HIGH (dest) DO - dest[to] := src[from] ; - INC (to) ; - INC (from) + WHILE toIdx <= HIGH (dest) DO + dest[toIdx] := src[fromIdx] ; + INC (toIdx) ; + INC (fromIdx) END ; (* And adjust by bit shifting. *) IF bitshift > 0 @@ -567,12 +567,12 @@ PROCEDURE ShiftRightByteBit (VAR dest: ARRAY OF BYTE; src: ARRAY OF BYTE; highbit: CARDINAL; byteshift, bitshift: CARDINAL) ; VAR - top, bot, mid : BYTESET ; - i, h, to, from: CARDINAL ; + top, bot, mid : BYTESET ; + i, h, toIdx, fromIdx: CARDINAL ; BEGIN (* Copy the bytes. *) - to := 0 ; - from := byteshift ; + toIdx := 0 ; + fromIdx := byteshift ; IF EnableDebugging THEN printf ("HIGH (dest) = %d\n", HIGH (dest)) @@ -580,15 +580,15 @@ BEGIN IF byteshift <= HIGH (dest) THEN h := HIGH (dest) - byteshift ; - WHILE to <= h DO - dest[to] := src[from] ; - INC (to) ; - INC (from) + WHILE toIdx <= h DO + dest[toIdx] := src[fromIdx] ; + INC (toIdx) ; + INC (fromIdx) END END ; - WHILE to <= HIGH (dest) DO - dest[to] := BYTE (0) ; - INC (to) + WHILE toIdx <= HIGH (dest) DO + dest[toIdx] := BYTE (0) ; + INC (toIdx) END ; (* And bit shift the remainder. *) IF EnableDebugging @@ -691,7 +691,7 @@ VAR next : BOOLEAN ; mask, unused, - set : BYTESET ; + setb : BYTESET ; BEGIN IF EnableDebugging THEN @@ -704,14 +704,14 @@ BEGIN bytes. *) i := 0 ; WHILE i < high DO - set := dest[i] ; - next := MSB IN set ; - set := SHIFT (set, 1) ; (* Shift left. *) + setb := dest[i] ; + next := MSB IN setb ; + setb := SHIFT (setb, 1) ; (* Shift left. *) IF carry THEN - INCL (set, 0) (* Set bit 0. *) + INCL (setb, 0) (* Set bit 0. *) END ; - dest[i] := set ; + dest[i] := setb ; carry := next ; IF EnableDebugging THEN @@ -722,27 +722,27 @@ BEGIN END ; (* Last byte special case as there may be some unused bits which must be preserved. *) - set := dest[high] ; + setb := dest[high] ; unused := BYTESET {} ; (* Will contain all top unused bits of dest[high]. *) mask := - BYTESET {} ; topbit := (highbit+1) MOD TBITSIZE (BYTE) ; WHILE topbit # 0 DO EXCL (mask, topbit) ; - IF topbit IN set + IF topbit IN setb THEN - EXCL (set, topbit) ; + EXCL (setb, topbit) ; INCL (unused, topbit) END ; topbit := (topbit+1) MOD TBITSIZE (BYTE) END ; - set := SHIFT (set, 1) ; (* Left shift. *) + setb := SHIFT (setb, 1) ; (* Left shift. *) IF carry THEN - INCL (set, 0) (* Set bit 0. *) + INCL (setb, 0) (* Set bit 0. *) END ; - set := set * mask ; (* Remove all unused bits. *) - set := set + unused ; (* Restore original unused bits. *) - dest[high] := set ; + setb := setb * mask ; (* Remove all unused bits. *) + setb := setb + unused ; (* Restore original unused bits. *) + dest[high] := setb ; IF EnableDebugging THEN printf ("ArithShiftLeft shifted byte dest[%d]\n", high); @@ -785,32 +785,32 @@ VAR next : BOOLEAN ; mask, unused, - set : BYTESET ; + setb : BYTESET ; BEGIN high := HIGH (dest) ; (* Clear any unused bits in the highest byte, but save them into unused. *) - set := dest[high] ; + setb := dest[high] ; unused := BYTESET {} ; topbit := (highbit+1) MOD TBITSIZE (BYTE) ; mask := - BYTESET {} ; WHILE topbit # 0 DO EXCL (mask, topbit) ; - IF topbit IN set + IF topbit IN setb THEN - EXCL (set, topbit) ; + EXCL (setb, topbit) ; INCL (unused, topbit) END ; topbit := (topbit+1) MOD TBITSIZE (BYTE) END ; (* Start at the top and work down to byte 0. *) - set := set * mask ; (* Ignore unused bits. *) - next := 0 IN set ; (* Next carry. *) - set := SHIFT (set, -1) ; (* Shift right by 1 bit. *) + setb := setb * mask ; (* Ignore unused bits. *) + next := 0 IN setb ; (* Next carry. *) + setb := SHIFT (setb, -1) ; (* Shift right by 1 bit. *) IF carry THEN - INCL (set, highbit MOD TBITSIZE (BYTE)) + INCL (setb, highbit MOD TBITSIZE (BYTE)) END ; - dest[high] := set + unused ; (* First byte is a special case as we + dest[high] := setb + unused ; (* First byte is a special case as we have to preserve the unused bits. *) (* Now we ripple through the remaining bytes, propagating local carry between bytes. *) @@ -818,14 +818,14 @@ BEGIN WHILE i > 0 DO prev := next ; DEC (i) ; - set := dest[i] ; - next := 0 IN set ; - set := SHIFT (set, -1) ; + setb := dest[i] ; + next := 0 IN setb ; + setb := SHIFT (setb, -1) ; IF prev THEN - INCL (set, MSB) + INCL (setb, MSB) END ; - dest[i] := set + dest[i] := setb END END ArithShiftRightBit ; @@ -914,7 +914,7 @@ VAR high, highplus1, highbitplus1, - from, to : CARDINAL ; + fromIdx, toIdx: CARDINAL ; BEGIN IF EnableDebugging THEN @@ -925,21 +925,21 @@ BEGIN (* Copy the contents rotating on byte granularity, then arithmetically shift the remaining number of bits. *) high := HIGH (dest) ; - from := 0 ; + fromIdx := 0 ; highplus1 := high + 1 ; highbitplus1 := highbit + 1 ; - to := RotateCount DIV TBITSIZE (BYTE) ; (* Byte level granularity. *) + toIdx := RotateCount DIV TBITSIZE (BYTE) ; (* Byte level granularity. *) REPEAT - dest[to] := src[from] ; + dest[toIdx] := src[fromIdx] ; IF EnableDebugging THEN printf ("RotateLeft after partial byte movement: dest[%d] := src[%d]\n", - to, from); + toIdx, fromIdx); DumpSet (dest, highbit) END ; - from := (from + 1) MOD highplus1 ; - to := (to + 1) MOD highplus1 ; - UNTIL from = 0 ; + fromIdx := (fromIdx + 1) MOD highplus1 ; + toIdx := (toIdx + 1) MOD highplus1 ; + UNTIL fromIdx = 0 ; IF EnableDebugging THEN diff --git a/gcc/m2/pge-boot/Gldtoa.cc b/gcc/m2/pge-boot/Gldtoa.cc index 0a43de0fa1ae..9fa2fd2745db 100644 --- a/gcc/m2/pge-boot/Gldtoa.cc +++ b/gcc/m2/pge-boot/Gldtoa.cc @@ -63,7 +63,7 @@ ldtoa_strtold (void *s, bool *error) } char * -ldtoa_ldtoa (long double d, int mode, int ndigits, int *decpt, int *sign) +ldtoa_ldtoa (long double d, int mode, int ndigits, int *decpt, bool *sign) { char format[50]; char *p; diff --git a/gcc/match.pd b/gcc/match.pd index b3fd26e18ddd..4d0a803eaef0 100644 --- a/gcc/match.pd +++ b/gcc/match.pd @@ -2133,9 +2133,10 @@ DEFINE_INT_AND_FLOAT_ROUND_FN (RINT) && !HONOR_SIGNED_ZEROS (type))) (minus @1 @0))) (simplify - (negate (pointer_diff @0 @1)) - (if (TYPE_OVERFLOW_UNDEFINED (type)) - (pointer_diff @1 @0))) + (negate (nop_convert? (pointer_diff@2 @0 @1))) + (if (ANY_INTEGRAL_TYPE_P (type) && !TYPE_OVERFLOW_SANITIZED (type)) + (with { tree ptrdifftype = TREE_TYPE (@2); } + (convert (pointer_diff:ptrdifftype @1 @0))))) /* A - B -> A + (-B) if B is easily negatable. */ (simplify @@ -3620,6 +3621,7 @@ DEFINE_INT_AND_FLOAT_ROUND_FN (RINT) /* Saturation mult for unsigned integer. */ (if (INTEGRAL_TYPE_P (type) && TYPE_UNSIGNED (type)) + (for mult_op (mult widen_mult) (match (unsigned_integer_sat_mul @0 @1) /* SAT_U_MUL (X, Y) = { WT x = (WT)a * (WT)b; @@ -3630,9 +3632,7 @@ DEFINE_INT_AND_FLOAT_ROUND_FN (RINT) return (T)x; } while WT is uint128_t, T is uint8_t, uint16_t, uint32_t or uint64_t. */ - (convert (min (widen_mult:c@3 (convert@4 @0) - (convert@5 @1)) - INTEGER_CST@2)) + (convert (min (mult_op:c@3 (convert@4 @0) (convert@5 @1)) INTEGER_CST@2)) (if (types_match (type, @0, @1)) (with { @@ -3640,24 +3640,16 @@ DEFINE_INT_AND_FLOAT_ROUND_FN (RINT) unsigned widen_prec = TYPE_PRECISION (TREE_TYPE (@3)); unsigned cvt4_prec = TYPE_PRECISION (TREE_TYPE (@4)); unsigned cvt5_prec = TYPE_PRECISION (TREE_TYPE (@5)); - wide_int c2 = wi::to_wide (@2); - wide_int max = wi::mask (prec, false, widen_prec); - bool c2_is_max_p = wi::eq_p (c2, max); - bool widen_mult_p = cvt4_prec == cvt5_prec && widen_prec == cvt5_prec * 2; - } - (if (widen_prec > prec && c2_is_max_p && widen_mult_p))))) - (match (unsigned_integer_sat_mul @0 @1) - (convert (min (mult:c@3 (convert @0) (convert @1)) INTEGER_CST@2)) - (if (types_match (type, @0, @1)) - (with - { - unsigned prec = TYPE_PRECISION (type); - unsigned widen_prec = TYPE_PRECISION (TREE_TYPE (@3)); - wide_int c2 = wi::to_wide (@2); + wide_int max = wi::mask (prec, false, widen_prec); - bool c2_is_max_p = wi::eq_p (c2, max); + bool c2_is_max_p = wi::eq_p (wi::to_wide (@2), max); + + bool widen_mult_p = mult_op == WIDEN_MULT_EXPR && cvt4_prec == cvt5_prec + && widen_prec == cvt5_prec * 2 && widen_prec > prec; + bool mult_p = mult_op == MULT_EXPR && cvt4_prec == cvt5_prec + && cvt4_prec == widen_prec && widen_prec > prec; } - (if (widen_prec > prec && c2_is_max_p))))) + (if (c2_is_max_p && (widen_mult_p || mult_p))))))) (match (unsigned_integer_sat_mul @0 @1) /* SAT_U_MUL (X, Y) = { T result; @@ -5268,7 +5260,7 @@ DEFINE_INT_AND_FLOAT_ROUND_FN (RINT) expr_not_equal_to had a chance to match. Otherwise we'd do pretty much always just the second case. */ && cfun - && ((cfun->curr_properties & PROP_last_full_fold) != 0 + && (fold_before_rtl_expansion_p () || !flag_tree_vrp || optimize_debug)) (orotate @0 @@ -6808,6 +6800,34 @@ DEFINE_INT_AND_FLOAT_ROUND_FN (RINT) @2)) ) +#if GIMPLE +/* Given two integers a and b: + (a != b) & ((a|b) != 0) -> (a != b) + (a != b) | ((a|b) != 0) -> ((a|b) != 0) + (a == b) & ((a|b) == 0) -> ((a|b) == 0) + (a == b) | ((a|b) == 0) -> (a == b) + (a != b) & ((a|b) == 0) -> false + (a == b) | ((a|b) != 0) -> true */ +(simplify + (bit_and:c (ne:c @0 @1) (ne (bit_ior @0 @1) integer_zerop)) + (ne @0 @1)) +(simplify + (bit_ior:c (ne:c @0 @1) (ne (bit_ior @0 @1) integer_zerop)) + (ne (bit_ior @0 @1) { integer_zero_node; })) +(simplify + (bit_and:c (eq:c @0 @1) (eq (bit_ior @0 @1) integer_zerop)) + (eq (bit_ior @0 @1) { integer_zero_node; })) +(simplify + (bit_ior:c (eq:c @0 @1) (eq (bit_ior @0 @1) integer_zerop)) + (eq @0 @1)) +(simplify + (bit_and:c (ne:c @0 @1) (eq (bit_ior @0 @1) integer_zerop)) + { build_zero_cst (type); }) +(simplify + (bit_ior:c (eq:c @0 @1) (ne (bit_ior @0 @1) integer_zerop)) + { build_one_cst (type); }) +#endif + /* These was part of minmax phiopt. */ /* Optimize (a CMP b) ? minmax : minmax to minmax, c> */ @@ -11811,7 +11831,7 @@ and, (plus:c (plus (rshift @0 integer_onep@1) (rshift @2 @1)) (bit_and (bit_ior @0 @2) integer_onep@3)) - (if (cfun && (cfun->curr_properties & PROP_last_full_fold) != 0 + (if (fold_before_rtl_expansion_p () && VECTOR_TYPE_P (type) && direct_internal_fn_supported_p (IFN_AVG_CEIL, type, OPTIMIZE_FOR_BOTH)) (IFN_AVG_CEIL @0 @2))) @@ -11820,7 +11840,7 @@ and, (minus (bit_ior @0 @2) (rshift (bit_xor @0 @2) integer_onep@1)) - (if (cfun && (cfun->curr_properties & PROP_last_full_fold) != 0 + (if (fold_before_rtl_expansion_p () && VECTOR_TYPE_P (type) && direct_internal_fn_supported_p (IFN_AVG_CEIL, type, OPTIMIZE_FOR_BOTH)) (IFN_AVG_CEIL @0 @2))) diff --git a/gcc/multiple_target.cc b/gcc/multiple_target.cc index e85d7e71442d..02353d9dca62 100644 --- a/gcc/multiple_target.cc +++ b/gcc/multiple_target.cc @@ -423,61 +423,100 @@ expand_target_clones (struct cgraph_node *node, bool definition) return true; } -/* When NODE is a target clone, consider all callees and redirect - to a clone with equal target attributes. That prevents multiple - multi-versioning dispatches and a call-chain can be optimized. - - This optimisation might pick the wrong version in some cases, since knowing - that we meet the target requirements for a matching callee version does not - tell us that we won't also meet the target requirements for a higher - priority callee version at runtime. Since this is longstanding behaviour - for x86 and powerpc, we preserve it for those targets, but skip the optimisation - for targets that use the "target_version" attribute for multi-versioning. */ +/* When NODE is part of an FMV function set, consider all callees and check if + any can provably always resolve a certain version and then call that version + directly. */ static void redirect_to_specific_clone (cgraph_node *node) { - cgraph_function_version_info *fv = node->function_version (); - if (fv == NULL) - return; - - gcc_assert (TARGET_HAS_FMV_TARGET_ATTRIBUTE); - tree attr_target = lookup_attribute ("target", DECL_ATTRIBUTES (node->decl)); - if (attr_target == NULL_TREE) + if (!targetm.compare_version_priority || !optimize) return; /* We need to remember NEXT_CALLER as it could be modified in the loop. */ for (cgraph_edge *e = node->callees; e ; e = e->next_callee) { - cgraph_function_version_info *fv2 = e->callee->function_version (); - if (!fv2) + /* Only if this is a call to a dispatched symbol. */ + if (!e->callee->dispatcher_function) continue; - tree attr_target2 = lookup_attribute ("target", - DECL_ATTRIBUTES (e->callee->decl)); + cgraph_function_version_info *callee_v + = e->callee->function_version (); + cgraph_function_version_info *caller_v + = e->caller->function_version (); + + gcc_assert (callee_v); - /* Function is not calling proper target clone. */ - if (attr_target2 == NULL_TREE - || !attribute_value_equal (attr_target, attr_target2)) + /* Find the default nodes for both callee and caller (if present). */ + cgraph_function_version_info *callee_default_v = callee_v->next; + cgraph_function_version_info *caller_default_v = caller_v; + if (caller_v) { - while (fv2->prev != NULL) - fv2 = fv2->prev; + while (caller_default_v->prev) + caller_default_v = caller_default_v->prev; + if (!is_function_default_version (caller_default_v->this_node->decl)) + caller_default_v = NULL; + } + + /* If this is not the TU that contains the definition of the default + version we are not guaranteed to have visibility of all versions + so cannot reason about them. */ + if (!callee_default_v + || !callee_default_v->this_node->binds_to_current_def_p ()) + continue; + + cgraph_function_version_info *highest_callable_fn = NULL; + for (cgraph_function_version_info *ver = callee_v->next; + ver; + ver = ver->next) + if (targetm.target_option.functions_b_resolvable_from_a + (node->decl, ver->this_node->decl, node->decl)) + highest_callable_fn = ver; - /* Try to find a clone with equal target attribute. */ - for (; fv2 != NULL; fv2 = fv2->next) + if (!highest_callable_fn) + continue; + + bool inlinable = true; + + /* If there are higher priority versions of callee and caller has no + more version information, then not callable. */ + if (highest_callable_fn->next) + { + /* If this is not the TU where the callee default is defined then + cannot reason about the caller versions. */ + if (!caller_default_v + || !caller_default_v->this_node->binds_to_current_def_p ()) + continue; + + /* If every higher priority version would imply a higher priority + version of caller would have been selected, then this is + callable. */ + for (cgraph_function_version_info *callee_ver + = highest_callable_fn->next; + callee_ver; callee_ver = callee_ver->next) { - cgraph_node *callee = fv2->this_node; - attr_target2 = lookup_attribute ("target", - DECL_ATTRIBUTES (callee->decl)); - if (attr_target2 != NULL_TREE - && attribute_value_equal (attr_target, attr_target2)) + bool is_possible = true; + for (cgraph_function_version_info *caller_ver = caller_v->next; + caller_ver; caller_ver = caller_ver->next) + if (targetm.target_option.functions_b_resolvable_from_a + (callee_ver->this_node->decl, caller_ver->this_node->decl, + node->decl)) + { + is_possible = false; + break; + } + if (is_possible) { - e->redirect_callee (callee); - cgraph_edge::redirect_call_stmt_to_callee (e); + inlinable = false; break; } } } + if (inlinable) + { + e->redirect_callee (highest_callable_fn->this_node); + cgraph_edge::redirect_call_stmt_to_callee (e); + } } } @@ -566,9 +605,8 @@ ipa_target_clone (bool early) for (unsigned i = 0; i < to_dispatch.length (); i++) create_dispatcher_calls (to_dispatch[i]); - if (TARGET_HAS_FMV_TARGET_ATTRIBUTE) - FOR_EACH_FUNCTION (node) - redirect_to_specific_clone (node); + FOR_EACH_FUNCTION (node) + redirect_to_specific_clone (node); return 0; } diff --git a/gcc/opts-diagnostic.cc b/gcc/opts-diagnostic.cc index 0e0296ab5aa7..a230c2119a9f 100644 --- a/gcc/opts-diagnostic.cc +++ b/gcc/opts-diagnostic.cc @@ -47,12 +47,15 @@ struct opt_spec_context : public diagnostics::output_spec::dc_spec_context diagnostics::context &dc, line_maps *location_mgr, location_t loc, - const char *option_name) - : dc_spec_context (dc, + const char *option_name, + const char *option_value) + : dc_spec_context (option_name, + option_value, + nullptr, location_mgr, + dc, location_mgr, - loc, - option_name), + loc), m_opts (opts) {} @@ -72,17 +75,17 @@ struct opt_spec_context : public diagnostics::output_spec::dc_spec_context void handle_OPT_fdiagnostics_add_output_ (const gcc_options &opts, diagnostics::context &dc, - const char *arg, + const char *unparsed_spec, location_t loc) { - gcc_assert (arg); + gcc_assert (unparsed_spec); gcc_assert (line_table); const char *const option_name = "-fdiagnostics-add-output="; DIAGNOSTICS_LOG_SCOPE_PRINTF2 (dc.get_logger (), - "handling: %s%s", option_name, arg); - opt_spec_context ctxt (opts, dc, line_table, loc, option_name); - auto sink = ctxt.parse_and_make_sink (arg, dc); + "handling: %s%s", option_name, unparsed_spec); + opt_spec_context ctxt (opts, dc, line_table, loc, option_name, unparsed_spec); + auto sink = ctxt.parse_and_make_sink (dc); if (!sink) return; @@ -93,17 +96,17 @@ handle_OPT_fdiagnostics_add_output_ (const gcc_options &opts, void handle_OPT_fdiagnostics_set_output_ (const gcc_options &opts, diagnostics::context &dc, - const char *arg, + const char *unparsed_spec, location_t loc) { - gcc_assert (arg); + gcc_assert (unparsed_spec); gcc_assert (line_table); const char *const option_name = "-fdiagnostics-set-output="; DIAGNOSTICS_LOG_SCOPE_PRINTF2 (dc.get_logger (), - "handling: %s%s", option_name, arg); - opt_spec_context ctxt (opts, dc, line_table, loc, option_name); - auto sink = ctxt.parse_and_make_sink (arg, dc); + "handling: %s%s", option_name, unparsed_spec); + opt_spec_context ctxt (opts, dc, line_table, loc, option_name, unparsed_spec); + auto sink = ctxt.parse_and_make_sink (dc); if (!sink) return; diff --git a/gcc/opts.cc b/gcc/opts.cc index 10ce2c3de336..21ac6b566e0b 100644 --- a/gcc/opts.cc +++ b/gcc/opts.cc @@ -18,6 +18,7 @@ You should have received a copy of the GNU General Public License along with GCC; see the file COPYING3. If not see . */ +#define INCLUDE_VECTOR #include "config.h" #include "system.h" #include "intl.h" diff --git a/gcc/params.opt b/gcc/params.opt index ae617094db65..f8884e976e7f 100644 --- a/gcc/params.opt +++ b/gcc/params.opt @@ -66,6 +66,10 @@ Enable asan stack protection. Common Joined UInteger Var(param_asan_use_after_return) Init(1) IntegerRange(0, 1) Param Optimization Enable asan detection of use-after-return bugs. +-param=auto-profile-bbs= +Common Joined UInteger Var(param_auto_profile_bbs) Init(1) IntegerRange(0, 1) Param Optimization +Build basic block profile using auto profile. + -param=cycle-accurate-model= Common Joined UInteger Var(param_cycle_accurate_model) Init(1) IntegerRange(0, 1) Param Optimization Whether the scheduling description is mostly a cycle-accurate model of the target processor and is likely to be spill aggressively to fill any pipeline bubbles. diff --git a/gcc/passes.def b/gcc/passes.def index 3f828477b687..fac04cd86c7d 100644 --- a/gcc/passes.def +++ b/gcc/passes.def @@ -369,7 +369,6 @@ along with GCC; see the file COPYING3. If not see NEXT_PASS (pass_forwprop, /*full_walk=*/false, /*last=*/true); NEXT_PASS (pass_sink_code, true /* unsplit edges */); NEXT_PASS (pass_phiopt, false /* early_p */); - NEXT_PASS (pass_fold_builtins); NEXT_PASS (pass_optimize_widening_mul); NEXT_PASS (pass_store_merging); /* If DCE is not run before checking for uninitialized uses, @@ -405,12 +404,9 @@ along with GCC; see the file COPYING3. If not see NEXT_PASS (pass_ccp, true /* nonzero_p */); NEXT_PASS (pass_post_ipa_warn); NEXT_PASS (pass_object_sizes); - /* Fold remaining builtins. */ - NEXT_PASS (pass_fold_builtins); NEXT_PASS (pass_strlen); - /* Copy propagation also copy-propagates constants, this is necessary - to forward object-size and builtin folding results properly. */ - NEXT_PASS (pass_copy_prop); + /* Fold remaining builtins. */ + NEXT_PASS (pass_forwprop, /*full_walk=*/false, /*last=*/true); NEXT_PASS (pass_dce); /* Profile count may overflow as a result of inlinining very large loop nests. This pass should run before any late pass that makes diff --git a/gcc/predict.cc b/gcc/predict.cc index 5639d81d2770..895c5f959d02 100644 --- a/gcc/predict.cc +++ b/gcc/predict.cc @@ -852,7 +852,7 @@ unlikely_executed_stmt_p (gimple *stmt) heuristics. */ if (gimple_bb (stmt)->count.reliable_p () && gimple_bb (stmt)->count.nonzero_p ()) - return gimple_bb (stmt)->count == profile_count::zero (); + return false; /* NORETURN attribute alone is not strong enough: exit() may be quite likely executed once during program run. */ if (gimple_call_fntype (stmt) @@ -4521,6 +4521,9 @@ rebuild_frequencies (void) && (!uninitialized_count_found || uninitialized_probablity_found) && !cfun->cfg->count_max.very_large_p ()) { + /* Propagating zero counts should be safe and may + help hot/cold splitting. */ + determine_unlikely_bbs (); if (dump_file) fprintf (dump_file, "Profile is consistent\n"); return; @@ -4545,6 +4548,9 @@ rebuild_frequencies (void) for a given run, we would only propagate the error further. */ if (feedback_found && !uninitialized_count_found) { + /* Propagating zero counts should be safe and may + help hot/cold splitting. */ + determine_unlikely_bbs (); if (dump_file) fprintf (dump_file, "Profile is inconsistent but read from profile feedback;" diff --git a/gcc/simplify-rtx.cc b/gcc/simplify-rtx.cc index 46f1df6fab46..c4de035b44fd 100644 --- a/gcc/simplify-rtx.cc +++ b/gcc/simplify-rtx.cc @@ -3465,7 +3465,9 @@ simplify_context::simplify_binary_operation_1 (rtx_code code, return plus_constant (mode, op0, trunc_int_for_mode (-offset, mode)); /* Don't let a relocatable value get a negative coeff. */ - if (poly_int_rtx_p (op1) && GET_MODE (op0) != VOIDmode) + if (is_a (mode) + && poly_int_rtx_p (op1) + && GET_MODE (op0) != VOIDmode) return simplify_gen_binary (PLUS, mode, op0, neg_poly_int_rtx (mode, op1)); diff --git a/gcc/stmt.cc b/gcc/stmt.cc index 7942aa3e4848..f42878ae2077 100644 --- a/gcc/stmt.cc +++ b/gcc/stmt.cc @@ -849,7 +849,8 @@ resolve_asm_operand_names (tree string, tree outputs, tree inputs, tree labels) { if (c[1] == '[') break; - else if (ISALPHA (c[1]) && c[2] == '[') + else if (ISALPHA (c[1]) + && (c[2] == '[' || (ISALPHA (c[2]) && c[3] == '['))) break; else { @@ -873,6 +874,8 @@ resolve_asm_operand_names (tree string, tree outputs, tree inputs, tree labels) p += 1; else if (ISALPHA (p[1]) && p[2] == '[') p += 2; + else if (ISALPHA (p[1]) && ISALPHA (p[2]) && p[3] == '[') + p += 3; else { p += 1 + (p[1] == '%'); diff --git a/gcc/target.def b/gcc/target.def index b6f95f3ac7a7..31c7af1f8bcc 100644 --- a/gcc/target.def +++ b/gcc/target.def @@ -1925,13 +1925,13 @@ DEFHOOK (support_vector_misalignment, "This hook should return true if the target supports misaligned vector\n\ store/load of a specific factor denoted in the @var{misalignment}\n\ -parameter. The vector store/load should be of machine mode @var{mode} and\n\ -the elements in the vectors should be of type @var{type}. The\n\ -@var{is_packed} parameter is true if the misalignment is unknown and the\n\ -memory access is defined in a packed struct. @var{is_gather_scatter} is true\n\ -if the load/store is a gather or scatter.", +parameter. The vector store/load should be of machine mode @var{mode}.\n\ +The @var{is_packed} parameter is true if the original memory access is\n\ +not naturally aligned. @var{is_gather_scatter} is true if the\n\ +load/store is a gather or scatter. In that case misalignment\n\ +denotes the misalignment of @var{mode}'s element mode.", bool, - (machine_mode mode, const_tree type, int misalignment, bool is_packed, + (machine_mode mode, int misalignment, bool is_packed, bool is_gather_scatter), default_builtin_support_vector_misalignment) @@ -6934,6 +6934,28 @@ DEFHOOK bool, (string_slice fn1, string_slice fn2), hook_stringslice_stringslice_unreachable) +/* Checks if we can be certain that function DECL_A could resolve DECL_B. */ +DEFHOOK +(functions_b_resolvable_from_a, + "@var{decl_b} is a function declaration with a function multi-versioning\n\ +(FMV) attribute; this attribute is either @code{target} or\n\ +@code{target_version}, depending on @code{TARGET_HAS_FMV_TARGET_ATTRIBUTE}.\n\ +@var{decl_a} is a function declaration that may or may not have an FMV\n\ +attribute.\n\ +\n\ +Return true if we have enough information to determine that the\n\ +requirements of @var{decl_b}'s FMV attribute are met whenever @var{decl_a}\n\ +is executed, given that the target supports all features required by\n\ +function declaration @var{base}.\n\ +\n\ +The default implementation just checks whether @var{decl_a} has the same\n\ +FMV attribute as @var{decl_b}. This is conservatively correct,\n\ +but ports can do better by taking the relationships between architecture\n\ +features into account. For example, on AArch64, @code{sve} is present\n\ +whenever @code{sve2} is present.", + bool, (tree decl_a, tree decl_v, tree base), + functions_b_resolvable_from_a) + /* Function to determine if one function can inline another function. */ #undef HOOK_PREFIX #define HOOK_PREFIX "TARGET_" diff --git a/gcc/targhooks.cc b/gcc/targhooks.cc index 947e39aedc18..dfd46eeb8af8 100644 --- a/gcc/targhooks.cc +++ b/gcc/targhooks.cc @@ -1551,8 +1551,6 @@ default_builtin_vector_alignment_reachable (const_tree /*type*/, bool is_packed) is_packed is true if the memory access is defined in a packed struct. */ bool default_builtin_support_vector_misalignment (machine_mode mode, - const_tree type - ATTRIBUTE_UNUSED, int misalignment ATTRIBUTE_UNUSED, bool is_packed diff --git a/gcc/targhooks.h b/gcc/targhooks.h index 34c30d4af453..441206763451 100644 --- a/gcc/targhooks.h +++ b/gcc/targhooks.h @@ -113,7 +113,6 @@ extern poly_uint64 default_preferred_vector_alignment (const_tree); extern bool default_builtin_vector_alignment_reachable (const_tree, bool); extern bool default_builtin_support_vector_misalignment (machine_mode mode, - const_tree, int, bool, bool); extern machine_mode default_preferred_simd_mode (scalar_mode mode); extern machine_mode default_split_reduction (machine_mode); diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index a4c4a17edf77..22bdae369425 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,762 @@ +2025-10-10 YunQiang Su + + Revert: + 2025-10-10 Jie Mei + + * gcc.target/mips/mips16e2-cache.c: Use isa_rev>=2 instead of + -mips32r2 and remove -mips16 option. + * gcc.target/mips/mips16e2-cmov.c: Add isa_rev>=2 and remove + -mips16 option. + * gcc.target/mips/mips16e2-gp.c: Same as above. + * gcc.target/mips/mips16e2.c: Same as above. + +2025-10-10 YunQiang Su + + Revert: + 2025-09-27 YunQiang Su + + * gcc.target/mips/mips16e2.c: Use isa_rev=2 instead of >=2. + * gcc.target/mips/mips16e2-cache.c: Ditto. + * gcc.target/mips/mips16e2-cmov.c: Ditto. + * gcc.target/mips/mips16e2-gp.c: Ditto. + +2025-10-09 David Faust + + * gcc.target/bpf/core-btf-tag-1.c: New test. + * gcc.target/bpf/core-btf-tag-2.c: New test. + +2025-10-09 David Faust + + * gcc.dg/debug/btf/btf-decl-tag-1.c: New test. + * gcc.dg/debug/btf/btf-decl-tag-2.c: New test. + * gcc.dg/debug/btf/btf-decl-tag-3.c: New test. + * gcc.dg/debug/btf/btf-decl-tag-4.c: New test. + * gcc.dg/debug/btf/btf-type-tag-1.c: New test. + * gcc.dg/debug/btf/btf-type-tag-2.c: New test. + * gcc.dg/debug/btf/btf-type-tag-3.c: New test. + * gcc.dg/debug/btf/btf-type-tag-4.c: New test. + * gcc.dg/debug/btf/btf-type-tag-c2x-1.c: New test. + +2025-10-09 David Faust + + * gcc.dg/debug/ctf/ctf-decl-tag-1.c: New test. + * gcc.dg/debug/ctf/ctf-type-tag-1.c: New test. + +2025-10-09 David Faust + + * gcc.dg/debug/dwarf2/dwarf-btf-decl-tag-1.c: New test. + * gcc.dg/debug/dwarf2/dwarf-btf-decl-tag-2.c: New test. + * gcc.dg/debug/dwarf2/dwarf-btf-decl-tag-3.c: New test. + * gcc.dg/debug/dwarf2/dwarf-btf-type-tag-1.c: New test. + * gcc.dg/debug/dwarf2/dwarf-btf-type-tag-2.c: New test. + * gcc.dg/debug/dwarf2/dwarf-btf-type-tag-3.c: New test. + * gcc.dg/debug/dwarf2/dwarf-btf-type-tag-4.c: New test. + * gcc.dg/debug/dwarf2/dwarf-btf-type-tag-5.c: New test. + * gcc.dg/debug/dwarf2/dwarf-btf-type-tag-6.c: New test. + * gcc.dg/debug/dwarf2/dwarf-btf-type-tag-7.c: New test. + * gcc.dg/debug/dwarf2/dwarf-btf-type-tag-8.c: New test. + * gcc.dg/debug/dwarf2/dwarf-btf-type-tag-9.c: New test. + * gcc.dg/debug/dwarf2/dwarf-btf-type-tag-10.c: New test. + +2025-10-09 David Faust + + * gcc.dg/attr-btf-decl-tag-1.c: New test. + * gcc.dg/attr-btf-decl-tag-2.c: New test. + * gcc.dg/attr-btf-type-tag-1.c: New test. + * gcc.dg/attr-btf-type-tag-2.c: New test. + * gcc.dg/attr-btf-type-tag-3.c: New test. + +2025-10-09 Jakub Jelinek + + * c-c++-common/cpp/has-builtin-4.c: Expect + __has_builtin (__builtin_c23_va_start) == 1 also for C++26. + * c-c++-common/Wvarargs.c (foo3): Don't expect undefined behavior + warning for C++26. + * g++.dg/cpp26/stdarg1.C: New test. + * g++.dg/cpp26/stdarg2.C: New test. + * g++.dg/cpp26/stdarg3.C: New test. + * g++.dg/cpp26/stdarg4.C: New test. + * g++.dg/cpp26/stdarg5.C: New test. + * g++.dg/cpp26/stdarg6.C: New test. + * g++.dg/cpp26/stdarg7.C: New test. + * g++.dg/cpp26/stdarg8.C: New test. + * g++.dg/cpp26/stdarg9.C: New test. + * g++.dg/opt/pr60849.C (foo): Add explicit cast. + +2025-10-09 Egas Ribeiro + + PR c++/116477 + * g++.dg/cpp2a/concepts-pr116477.C: New test. + +2025-10-09 Georg-Johann Lay + + PR target/122222 + * gcc.target/avr/pr122222-sitod.c: New test. + +2025-10-09 Georg-Johann Lay + + PR target/122220 + * gcc.target/avr/pr122220.c: New test. + +2025-10-09 David Malcolm + + * gcc.dg/plugin/analyzer_cpython_plugin.cc: Replace INCLUDE_ + defines with include of include "analyzer/common.h". Update + for changes to binding_pair. + * gcc.dg/plugin/analyzer_kernel_plugin.cc: Likewise. + * gcc.dg/plugin/analyzer_known_fns_plugin.cc: Likewise. + +2025-10-09 Dimitar Dimitrov + + * gcc.dg/tree-ssa/cselim-2.c: Pass -ftree-cselim option. + +2025-10-09 Harald Anlauf + + PR fortran/122206 + * gfortran.dg/interface_abstract_6.f90: New test. + +2025-10-09 Jakub Jelinek + + PR c/122188 + * gcc.dg/torture/pr122188.c: New test. + +2025-10-09 David Malcolm + + * gcc.dg/plugin/diagnostic_group_plugin.cc: Define INCLUDE_VECTOR. + * gcc.dg/plugin/diagnostic_plugin_test_show_locus.cc: Likewise. + * gcc.dg/plugin/location_overflow_plugin.cc: Likewise. + +2025-10-09 Takayuki 'January June' Suwa + + * gcc.target/xtensa/constsynth_2insns.c, + gcc.target/xtensa/constsynth_3insns.c, + gcc.target/xtensa/constsynth_double.c: Remove due to outdated. + * gcc.target/xtensa/constsynthV2_O2_costs0.c, + gcc.target/xtensa/constsynthV2_O2_costs5.c, + gcc.target/xtensa/constsynthV2_Os.c: New. + +2025-10-09 Takayuki 'January June' Suwa + + * gcc.target/xtensa/BGEUI-BLTUI-32k-64k.c: + Disable optimizations and modify to also verify RTL dump in the + "expand" pass. + +2025-10-09 Richard Biener + + PR tree-optimization/122212 + * gcc.dg/torture/pr122212.c: New testcase. + +2025-10-09 Georg-Johann Lay + + PR target/122210 + * gcc.target/avr/dtofx.c: New test. + +2025-10-09 Georg-Johann Lay + + PR target/122210 + * gcc.target/avr/fxtod.c: New test. + +2025-10-09 Kito Cheng + + * gcc.target/riscv/rvv/vls-type-rvv-max-lmul.c: New test. + * gcc.target/riscv/rvv/vls-type-rvv-max-lmul-autovec.c: New + test. + +2025-10-08 Joseph Myers + + * gcc.dg/c11-generic-4.c, gcc.dg/c23-generic-5.c, + gcc.dg/c2y-generic-5.c: New tests. + +2025-10-08 Harald Anlauf + + PR fortran/49111 + * gfortran.dg/binding_label_tests_9.f03: Adjust test. + * gfortran.dg/module_private_2.f90: Likewise. + * gfortran.dg/public_private_module_2.f90: Likewise. + * gfortran.dg/binding_label_tests_35.f90: New test. + +2025-10-08 Martin Uecker + + * gcc.dg/c11-generic-2.c: Adapt error message. + * gcc.dg/c2y-generic-3.c: Adapt test. + * gcc.dg/c2y-generic-4.c: New test. + +2025-10-08 Jakub Jelinek + + * c-c++-common/cpp/named-universal-char-escape-1.c: Add test for + \N{CJK UNIFIED IDEOGRAPH-3340E}. + +2025-10-08 Jason Merrill + + * g++.dg/analyzer/new-2.C: Adjust diags. + * g++.dg/analyzer/noexcept-new.C: Adjust diags. + * g++.dg/warn/Warray-bounds-23.C: Add warnings. + * g++.dg/warn/Warray-bounds-24.C: Add warnings. + * g++.dg/cpp26/constexpr-new4a.C: New test. + +2025-10-08 Richard Biener + + PR tree-optimization/110223 + PR tree-optimization/122128 + * gcc.dg/vect/vect-bool-2.c: New testcase. + * gcc.dg/vect/vect-bool-cmp-3.c: Likewise. + * gcc.dg/vect/vect-bool-cmp-4.c: Likewise. + +2025-10-08 Richard Biener + + PR testsuite/120100 + * g++.dg/vect/pr64410.cc: Adjust. + +2025-10-08 Richard Biener + + PR target/120091 + * gcc.target/i386/pr119919.c: Only check for vectorization + when !ia32. + +2025-10-08 Alfie Richards + + PR target/122180 + * gcc.target/i386/pr122180.c: New test. + +2025-10-08 Jakub Jelinek + + PR c/122188 + * c-c++-common/pr122188.c: New test. + +2025-10-08 Jakub Jelinek + + PR tree-optimization/121206 + * gcc.dg/pr121987.c (main): Use unsigned long long type for e instead + of unsigned long and use ULL suffix on the initializer. + +2025-10-08 Paul Thomas + + PR fortran/93175 + PR fortran/102240 + PR fortran/102686 + * gfortran.dg/pdt_55.f03: New test. + +2025-10-08 Richard Biener + + PR tree-optimization/105490 + * gcc.dg/vect/vect-cond-14.c: New testcase. + +2025-10-08 Antoni Boucher + + PR jit/112466 + * jit.dg/all-non-failing-tests.h: Mention + test-target-info.c. + * jit.dg/test-target-info.c: New test. + * jit.dg/test-error-target-info.c: New test. + +2025-10-07 Joseph Myers + + PR c/26581 + * gcc.dg/c23-incomplete-2.c, gcc.dg/c23-incomplete-3.c, + gcc.dg/c23-incomplete-4.c, gcc.dg/c2y-incomplete-4.c, + gcc.dg/c2y-incomplete-5.c: New tests. + * gcc.dg/c23-thread-local-2.c, gcc.dg/c2y-incomplete-1.c: Update + expected errors. + +2025-10-07 H.J. Lu + + PR target/120691 + * gcc.target/i386/pr120691.c: New test. + +2025-10-07 Jason Merrill + + * g++.dg/warn/Warray-bounds-20.C: Remove xfails, add diags. + +2025-10-07 Georg-Johann Lay + + PR target/122187 + * gcc.target/avr/torture/pr122187.c: New test. + +2025-10-07 Jonathan Wakely + + * gfortran.dg/dynamic_dispatch_9.f03: Fix spelling in comment. + * gfortran.dg/use_only_3.inc: Likewise + +2025-10-07 Robin Dapp + + PR target/121845 + * gcc.target/riscv/rvv/autovec/pr121845.c: New test. + +2025-10-07 Raphael Moreira Zinsly + + PR target/122124 + * gcc.target/riscv/rvv/autovec/pr122124.c: New test. + +2025-10-07 Paul Thomas + + PR fortran/102901 + * gfortran.dg/pdt_56.f03: Copy of pdt_13.f03 compiled with + -fcheck=all. + +2025-10-07 Andrew Pinski + + PR tree-optimization/121921 + * gcc.dg/pr121921-1.c: New test. + +2025-10-07 Andrew Pinski + + PR tree-optimization/122083 + * gcc.dg/tree-ssa/ssa-pre-19.c: Disable phiopt and cselim. + * g++.dg/opt/pr122083-1.C: New test. + * gcc.dg/tree-ssa/cselim-1.c: New test. + * gcc.dg/tree-ssa/cselim-2.c: New test. + +2025-10-07 H.J. Lu + + PR middle-end/122122 + * gcc.target/i386/memcpy-pr120683-2.c: Swap %edx/%rdx with + %eax/%rax after + * gcc.target/i386/memcpy-pr120683-3.c: Likewise. + * gcc.target/i386/memcpy-pr120683-4.c: Likewise. + * gcc.target/i386/memcpy-pr120683-5.c: Likewise. + * gcc.target/i386/memcpy-pr120683-6.c: Likewise. + * gcc.target/i386/memcpy-pr120683-7.c: Likewise. + * gcc.target/i386/pr111657-1.c: Likewise. + +2025-10-06 Andrew Pinski + + PR tree-optimization/122155 + * gcc.dg/tree-ssa/cselim-3.c: New test. + +2025-10-06 Georg-Johann Lay + + * gcc.target/avr/sincos-1.c: New test. + +2025-10-06 Andrew MacLeod + + PR tree-optimization/121206 + * gcc.dg/pr121987.c: New. + +2025-10-06 Georg-Johann Lay + + PR target/122177 + * gcc.target/avr/fminfmax-1.c: New test. + +2025-10-06 Georg-Johann Lay + + * gcc.target/avr/cmpdi-1.c: New test. + +2025-10-06 Jennifer Schmitz + + PR target/121599 + * gcc.target/aarch64/sve2/pr121599.c: New test. + +2025-10-06 Richard Biener + + PR tree-optimization/122131 + * gcc.target/powerpc/altivec-39.c: New testcase. + +2025-10-06 Richard Biener + + PR tree-optimization/122158 + * gcc.dg/vect/pr122158.c: New testcase. + +2025-10-06 Jakub Jelinek + + PR middle-end/122133 + * c-c++-common/toplevel-asm-9.c: New test. + +2025-10-05 H.J. Lu + + PR target/122150 + * gcc.target/i386/pr122150.c: New test. + +2025-10-05 Andrew Pinski + + * c-c++-common/torture/asm-inline.c: Disable at -Og. + * gcc.dg/torture/restrict-8.c: Likewise. + +2025-10-05 Pan Li + + * gcc.target/riscv/rvv/autovec/vx_vf/vx-1-u16.c: Add asm check + for vwaddu.wx. + * gcc.target/riscv/rvv/autovec/vx_vf/vx-1-u32.c: Ditto. + * gcc.target/riscv/rvv/autovec/vx_vf/vx-1-u64.c: Ditto. + * gcc.target/riscv/rvv/autovec/vx_vf/vx-2-u16.c: Ditto. + * gcc.target/riscv/rvv/autovec/vx_vf/vx-2-u32.c: Ditto. + * gcc.target/riscv/rvv/autovec/vx_vf/vx-2-u64.c: Ditto. + * gcc.target/riscv/rvv/autovec/vx_vf/vx-3-u16.c: Ditto. + * gcc.target/riscv/rvv/autovec/vx_vf/vx-3-u32.c: Ditto. + * gcc.target/riscv/rvv/autovec/vx_vf/vx-3-u64.c: Ditto. + * gcc.target/riscv/rvv/autovec/vx_vf/vx_widen.h: Add test helper + macros. + * gcc.target/riscv/rvv/autovec/vx_vf/vx_widen_data.h: Add test + helper macros and data. + * gcc.target/riscv/rvv/autovec/vx_vf/vx_widen_wx_run.h: New test. + * gcc.target/riscv/rvv/autovec/vx_vf/wx_vwaddu-run-1-u64.c: New test. + +2025-10-05 Nathaniel Shead + + PR c++/122053 + * g++.dg/modules/pr122053_a.C: New test. + * g++.dg/modules/pr122053_b.C: New test. + +2025-10-05 Nathaniel Shead + + * g++.dg/modules/namespace-1_c.C: Adjust to expect errors. + * g++.dg/modules/namespace-2_b.C: Likewise. + * g++.dg/modules/namespace-3_a.C: Removed. + * g++.dg/modules/namespace-3_b.C: Removed. + +2025-10-05 Franck Behaghel + + * gnat.dg/allocator3.adb: New test. + +2025-10-05 Eric Botcazou + + PR ada/113536 + * gnat.dg/reduce2.adb: New test. + +2025-10-04 Harald Anlauf + + PR fortran/107968 + * gfortran.dg/implied_do_io_9.f90: New test. + +2025-10-04 Andrew Pinski + + PR tree-optimization/122153 + * gcc.dg/tree-ssa/pr122153-1.c: New test. + +2025-10-04 Matteo Nicoli + + PR tree-optimization/117760 + * gcc.dg/int-bwise-opt-1.c: New test. + * gcc.dg/int-bwise-opt-2.c: New test. + +2025-10-04 Jakub Jelinek + + PR tree-optimization/122104 + * gcc.target/i386/pr122104.c: New test. + +2025-10-04 Raphael Moreira Zinsly + + PR target/122114 + * gcc.target/riscv/pr122114.c: New test. + +2025-10-04 Jeff Law + + PR target/122147 + * gcc.target/riscv/pr122147.c: New test. + +2025-10-04 Zhongyao Chen + + PR target/118945 + * gcc.target/riscv/rvv/autovec/pr118945-1.c: New file. + * gcc.target/riscv/rvv/autovec/pr118945-2.c: New file. + +2025-10-04 Eric Botcazou + + * gnat.dg/use_type1.adb: New test. + * gnat.dg/use_type2.adb: Likewise. + +2025-10-04 Jakub Jelinek + + * g++.dg/cpp2a/constexpr-new28.C: New test. + * g++.dg/cpp2a/constexpr-new29.C: New test. + +2025-10-04 Jakub Jelinek + + PR c++/114457 + * g++.dg/cpp1y/vla-initlist1.C: Remove dg-skip-if for powerpc. + Initialize i to 43 for ctor from initializer_list and expect value + 43 instead of 42. + * g++.dg/cpp26/attr-indeterminate1.C: New test. + * g++.dg/cpp26/attr-indeterminate2.C: New test. + * g++.dg/cpp26/attr-indeterminate3.C: New test. + * g++.dg/cpp26/attr-indeterminate4.C: New test. + * g++.dg/cpp26/erroneous1.C: New test. + * g++.dg/cpp26/erroneous2.C: New test. + * g++.dg/cpp26/erroneous3.C: New test. + * g++.dg/cpp26/erroneous4.C: New test. + * g++.dg/opt/store-merging-1.C: Add + -ftrivial-auto-var-init=uninitialized to dg-options. + * g++.dg/uninit-pred-loop-1_b.C: Expect a warning for C++26. + * g++.dg/warn/Wuninitialized-13.C: Expect warning on a different + line. + * c-c++-common/ubsan/vla-1.c: Add + -ftrivial-auto-var-init=uninitialized to dg-options. + * c-c++-common/uninit-17.c: For c++26 expect warning on a different + line. + * g++.dg/warn/Warray-bounds-20.C: Expect warning on a different line. + * c-c++-common/analyzer/invalid-shift-1.c: Xfail for c++26 until + PR122044 is fixed. + * g++.dg/analyzer/exception-value-2.C: Skip for c++26 until PR122044 + is fixed. + * c-c++-common/goacc-gomp/nesting-1.c: Skip for c++26 until PR121975 + is fixed. + * c-c++-common/goacc/kernels-decompose-2.c: Likewise. + * c-c++-common/goacc/kernels-decompose-pr100400-1-1.c: Likewise. + * c-c++-common/goacc/kernels-decompose-pr100400-1-3.c: Likewise. + * c-c++-common/goacc/kernels-decompose-pr104061-1-1.c: Likewise. + * c-c++-common/goacc/kernels-decompose-pr104061-1-3.c: Likewise. + * c-c++-common/goacc/kernels-decompose-pr104061-1-4.c: Likewise. + * c-c++-common/goacc/kernels-decompose-pr104132-1.c: Likewise. + * c-c++-common/goacc/kernels-decompose-pr104133-1.c: Likewise. + * c-c++-common/goacc/kernels-decompose-pr104774-1.c: Likewise. + * c-c++-common/goacc/mdc-1.c: Likewise. + +2025-10-04 Jason Merrill + + PR c++/122127 + PR c++/112632 + * g++.dg/cpp0x/lambda/lambda-template18.C: New test. + +2025-10-04 Nathaniel Shead + + PR c++/117658 + * g++.dg/modules/adl-6_c.C: Adjust diagnostics. + * g++.dg/modules/internal-14_c.C: Likewise. + * g++.dg/modules/internal-15_a.C: New test. + * g++.dg/modules/internal-15_b.C: New test. + +2025-10-03 Egas Ribeiro + + PR c++/122112 + * g++.dg/parse/auto-struct-param.C: New test. + +2025-10-03 David Malcolm + + Revert: + 2025-10-03 David Malcolm + + * gcc.dg/plugin/diagnostic_plugin_test_graphs.cc + (report_diag_with_graphs): Port from set_attr to set_property. + +2025-10-03 Jeff Law + + PR rtl-optimization/121937 + * gcc.target/riscv/pr121937.c: New test. + +2025-10-03 Andrew Pinski + + PR tree-optimization/121762 + * gcc.dg/tree-ssa/builtin-fprintf-1.c: Update to scan optimized. + * gcc.dg/tree-ssa/builtin-fprintf-chk-1.c: Likewise. + * gcc.dg/tree-ssa/builtin-printf-1.c: Likewise. + * gcc.dg/tree-ssa/builtin-printf-chk-1.c: Likewise. + * gcc.dg/tree-ssa/builtin-vfprintf-1.c: Likewise. + * gcc.dg/tree-ssa/builtin-vfprintf-chk-1.c: Likewise. + * gcc.dg/tree-ssa/builtin-vprintf-1.c: Likewise. + * gcc.dg/tree-ssa/builtin-vprintf-chk-1.c: Likewise. + * gcc.dg/tree-ssa/ssa-ccp-10.c: Likewise. + * gcc.dg/builtin-unreachable-5.c: Likewise. + * gcc.dg/builtin-unreachable-6.c: Likewise. + * gcc.dg/builtin-unreachable-6a.c: Likewise. + * gcc.dg/builtin-unreachable-7.c: Likewise. + * gcc.dg/pr78408-2.c: Change fab1 to forwprop1 as that + optimization was moved there a while back. + * gcc.dg/tree-ssa/pr79691.c: Udpate scanning for 9 + constant to return. + +2025-10-03 Andrew Pinski + + PR tree-optimization/122033 + * gcc.dg/tree-ssa/pr122033-1.c: New test. + * gcc.dg/tree-ssa/pr122033-2.c: New test. + +2025-10-03 Richard Earnshaw + + * gcc.target/aarch64/asm-flag-1.c: Scan for lt. + * gcc.target/aarch64/vector-compare-5.c: Use scan-tree-dump-times. + * gcc.target/aarch64/simd/fold_to_highpart_5.c: Scan for sabal2 + and uabal2. + * gcc.target/aarch64/sve/mixed_size_6.c: Scan for absence of + index with 2. + * gcc.target/aarch64/declare-simd-2.c: Scan for _ZGVnM4ul2v_f05 + and_ZGVnN8ul2v_f05 + * gcc.target/aarch64/sve/arith_1.c: Remove duplicate + scan-assembler patterns. + * gcc.target/aarch64/sve/cond_fmaxnm_1.c: Likewise. + * gcc.target/aarch64/sve/cond_fmaxnm_5.c: Likewise. + * gcc.target/aarch64/sve/cond_fminnm_1.c: Likewise. + * gcc.target/aarch64/sve/cond_fminnm_5.c: Likewise + * gcc.target/aarch64/sve/pcs/annotate_1.c: Likewise. + * gcc.target/aarch64/sve/uzp1_1.c: Likewise. + * gcc.target/aarch64/sve/uzp2_1.c: Likewise. + * gcc.target/aarch64/scalar_intrinsics.c: Scan for ursra. + * gcc.target/aarch64/singleton_intrinsics_1.c: Likewise. + * gcc.target/aarch64/sve/cond_fmaxnm_3.c: Fix register modifiers in + scan patterns. + * gcc.target/aarch64/sve/cond_fmaxnm_7.c: Likewise. + * gcc.target/aarch64/sve/cond_fminnm_3.c: Likewise. + * gcc.target/aarch64/sve/cond_fminnm_7.c: Likewise. + * gcc.target/aarch64/sve/cond_fmul_3.c: Likewise. + * gcc.target/aarch64/sve/cond_fsubr_3.c: Likewise. + * gcc.target/aarch64/ldp_stp_18.c: Fix typos in scan patterns. + * gcc.target/aarch64/sve/pcs/return_6.c: Likewise. + * gcc.target/aarch64/ror_2.c: Adjust constants to ensure + scan-assembler patterns are unique. + * gcc.target/aarch64/sve/struct_move_3.c: Likewise. + * gcc.target/aarch64/sve/struct_move_6.c: Likewise. + * gcc.target/aarch64/builtin_pld_pli.c: Use check-function-bodies + * gcc.target/aarch64/csinc-1.c: Likewise. + * gcc.target/aarch64/csneg-1.c: Likewise. + * gcc.target/aarch64/flt_mov_immediate_1.c: Likewise. + * gcc.target/aarch64/scalar_shift_1.c: Likewise. + +2025-10-03 Paul Thomas + + PR fortran/122089 + * gfortran.dg/pdt_52.f03: New test. + * gfortran.dg/pdt_53.f03: New test. + * gfortran.dg/pdt_54.f03: New test. + +2025-10-02 David Malcolm + + * gcc.dg/plugin/diagnostic_plugin_test_graphs.cc + (report_diag_with_graphs): Port from set_attr to set_property. + +2025-10-02 Joseph Myers + + * gcc.dg/c2y-init-2.c, gcc.dg/c2y-init-3.c: New tests. + +2025-10-02 Aurelien Jarno + + PR target/121652 + * gcc.target/riscv/rvv/autovec/vls/math-nearbyint-1.c: Adjust + scan pattern for fewer instances of frflags/fsrflags. + +2025-10-02 David Malcolm + + * gcc.dg/plugin/start_unit_plugin.cc: Fix typo in comment. + +2025-10-02 Jeff Law + + PR target/122051 + * gcc.target/riscv/pr122051.c: New test. + +2025-10-02 Alfie Richards + + * gcc.target/aarch64/mv-error11.c: New test. + * gcc.target/aarch64/mv-error12.c: New test. + +2025-10-02 Alfie Richards + + * gcc.target/aarch64/mv-and-mvc-error1.c: New test. + * gcc.target/aarch64/mv-and-mvc-error2.c: New test. + * gcc.target/aarch64/mv-and-mvc-error3.c: New test. + * gcc.target/aarch64/mv-error1.c: New test. + * gcc.target/aarch64/mv-error2.c: New test. + * gcc.target/aarch64/mv-error3.c: New test. + * gcc.target/aarch64/mv-error4.c: New test. + * gcc.target/aarch64/mv-error5.c: New test. + * gcc.target/aarch64/mv-error6.c: New test. + * gcc.target/aarch64/mv-error7.c: New test. + * gcc.target/aarch64/mv-error8.c: New test. + * gcc.target/aarch64/mv-error9.c: New test. + * gcc.target/aarch64/mv-error10.c: New test. + * gcc.target/aarch64/mvc-error1.c: New test. + * gcc.target/aarch64/mvc-error2.c: New test. + * gcc.target/aarch64/mvc-warning1.c: New test. + +2025-10-02 Alfie Richards + + * gcc.target/aarch64/mv-1.c: New test. + * gcc.target/aarch64/mv-and-mvc1.c: New test. + * gcc.target/aarch64/mv-and-mvc2.c: New test. + * gcc.target/aarch64/mv-and-mvc3.c: New test. + * gcc.target/aarch64/mv-and-mvc4.c: New test. + * gcc.target/aarch64/mv-symbols1.c: New test. + * gcc.target/aarch64/mv-symbols10.c: New test. + * gcc.target/aarch64/mv-symbols11.c: New test. + * gcc.target/aarch64/mv-symbols12.c: New test. + * gcc.target/aarch64/mv-symbols13.c: New test. + * gcc.target/aarch64/mv-symbols14.c: New test. + * gcc.target/aarch64/mv-symbols2.c: New test. + * gcc.target/aarch64/mv-symbols3.c: New test. + * gcc.target/aarch64/mv-symbols4.c: New test. + * gcc.target/aarch64/mv-symbols5.c: New test. + * gcc.target/aarch64/mv-symbols6.c: New test. + * gcc.target/aarch64/mv-symbols7.c: New test. + * gcc.target/aarch64/mv-symbols8.c: New test. + * gcc.target/aarch64/mv-symbols9.c: New test. + * gcc.target/aarch64/mvc-symbols1.c: New test. + * gcc.target/aarch64/mvc-symbols2.c: New test. + * gcc.target/aarch64/mvc-symbols3.c: New test. + * gcc.target/aarch64/mvc-symbols4.c: New test. + +2025-10-02 Richard Biener + + PR tree-optimization/122079 + * gcc.dg/torture/pr122079-2.c: New testcase. + * gcc.dg/torture/pr122079-3.c: Likewise. + +2025-10-02 Richard Biener + + PR tree-optimization/122079 + * gcc.dg/torture/pr122079-1.c: New testcase. + +2025-10-01 Jeff Law + + PR target/122106 + * gcc.target/riscv/pr122106.c: New test. + +2025-10-01 Harald Anlauf + + PR fortran/122080 + * gfortran.dg/ubsan/missing_optional_dummy_9.f90: New test. + +2025-10-01 Andreas Schwab + + PR target/122066 + * gcc.c-torture/compile/pr122066.c: New test. + +2025-10-01 Andrew MacLeod + + PR tree-optimization/120560 + * gcc.dg/pr120560.c: New. + +2025-10-01 Paul Thomas + + PR fortran/122089 + * gfortran.dg/pdt_51.f03: New test. + +2025-09-30 David Malcolm + + * lib/sarif.py: Remove import of ET. + +2025-09-30 Alfie Richards + + * g++.target/aarch64/fmv-selection1.C: New test. + * g++.target/aarch64/fmv-selection2.C: New test. + * g++.target/aarch64/fmv-selection3.C: New test. + * g++.target/aarch64/fmv-selection4.C: New test. + * g++.target/aarch64/fmv-selection5.C: New test. + * g++.target/aarch64/fmv-selection6.C: New test. + * g++.target/aarch64/fmv-selection7.C: New test. + +2025-09-30 Jakub Jelinek + + * gcc.dg/vect/tsvc/vect-tsvc-s1244.c (s1244): Fix comment typo, + ture -> true. + * gcc.dg/vect/tsvc/vect-tsvc-s2244.c (s2244): Likewise. + +2025-09-30 Eric Botcazou + + * gnat.dg/reduce1.adb: New test. + +2025-09-30 Paul Thomas + + PR fortran/105380 + PR fortran/102241 + * gfortran.dg/pdt_49.f03: New test. + * gfortran.dg/pdt_11.f03: Deallocate 'o_fdef'. + * gfortran.dg/pdt_15.f03: Reinstate final 'pop_8' and update + the tree dump counts. + * gfortran.dg/pdt_20.f03: Deallocate 'x'. + * gfortran.dg/pdt_23.f03: Deallocate 'x'. + * gfortran.dg/pdt_3.f03: Eliminate the temporary 'matrix' and + use w%d directly in the allocation. Change the TODO comment and + comment on memory leak in allocation. + * gfortran.dg/pdt_39.f03: Comments on memory leaks. + * gfortran.dg/pdt_40.f03: Deallocate 'foo' and bar%x. + * gfortran.dg/pdt_50.f03: New test. + 2025-09-29 YunQiang Su * gcc.target/mips/pr99217-2.c: New test. diff --git a/gcc/testsuite/c-c++-common/Wvarargs.c b/gcc/testsuite/c-c++-common/Wvarargs.c index ea86ba30dcd7..71f24f861b7f 100644 --- a/gcc/testsuite/c-c++-common/Wvarargs.c +++ b/gcc/testsuite/c-c++-common/Wvarargs.c @@ -50,6 +50,6 @@ foo3 (int a, register int b, ...) // { dg-warning "ISO C\\+\\+17 does not allow { va_list vp; /* 'b' is declared with register storage, so warn. */ - va_start (vp, b); /* { dg-warning "undefined behavior" } */ + va_start (vp, b); /* { dg-warning "undefined behavior" "" { target { c || c++23_down } } } */ va_end (vp); } diff --git a/gcc/testsuite/c-c++-common/analyzer/invalid-shift-1.c b/gcc/testsuite/c-c++-common/analyzer/invalid-shift-1.c index 08e52728748b..1b67c075eb5b 100644 --- a/gcc/testsuite/c-c++-common/analyzer/invalid-shift-1.c +++ b/gcc/testsuite/c-c++-common/analyzer/invalid-shift-1.c @@ -12,10 +12,10 @@ _dl_hwcaps_subdirs_build_bitmask (int subdirs, int active) uint32_t mask; if (subdirs != 32) - mask = (1 << subdirs) - 1; /* { dg-message "shift by count \\('33'\\) >= precision of type \\('\[0-9\]+'\\)" } */ + mask = (1 << subdirs) - 1; /* { dg-message "shift by count \\('33'\\) >= precision of type \\('\[0-9\]+'\\)" "" { xfail c++26 } } */ else mask = -1; - return mask ^ ((1U << inactive) - 1); /* { dg-message "shift by negative count \\('-1'\\)" } */ + return mask ^ ((1U << inactive) - 1); /* { dg-message "shift by negative count \\('-1'\\)" "" { xfail c++26 } } */ } void f1 (int); diff --git a/gcc/testsuite/c-c++-common/cpp/has-builtin-4.c b/gcc/testsuite/c-c++-common/cpp/has-builtin-4.c index 65d2b188d9aa..186e2f1bbfb5 100644 --- a/gcc/testsuite/c-c++-common/cpp/has-builtin-4.c +++ b/gcc/testsuite/c-c++-common/cpp/has-builtin-4.c @@ -9,7 +9,7 @@ #if __has_builtin (__builtin_va_arg) != 1 #error "no __builtin_va_arg" #endif -#if __STDC_VERSION__ >= 202311L +#if (__STDC_VERSION__ >= 202311L || __cplusplus >= 202400L) #if __has_builtin (__builtin_c23_va_start) != 1 #error "no __builtin_c23_va_start" #endif diff --git a/gcc/testsuite/c-c++-common/cpp/named-universal-char-escape-1.c b/gcc/testsuite/c-c++-common/cpp/named-universal-char-escape-1.c index 3651fdd5734f..9ff93f92129a 100644 --- a/gcc/testsuite/c-c++-common/cpp/named-universal-char-escape-1.c +++ b/gcc/testsuite/c-c++-common/cpp/named-universal-char-escape-1.c @@ -168,6 +168,7 @@ typedef __CHAR32_TYPE__ char32_t; || U'\U0003134A' != U'\N{CJK UNIFIED IDEOGRAPH-3134A}' \ || U'\U00031350' != U'\N{CJK UNIFIED IDEOGRAPH-31350}' \ || U'\U000323AF' != U'\N{CJK UNIFIED IDEOGRAPH-323AF}' \ + || U'\U0003340E' != U'\N{CJK UNIFIED IDEOGRAPH-3340E}' \ || U'\U00013460' != U'\N{EGYPTIAN HIEROGLYPH-13460}' \ || U'\U000143FA' != U'\N{EGYPTIAN HIEROGLYPH-143FA}' \ || U'\U00017000' != U'\N{TANGUT IDEOGRAPH-17000}' \ diff --git a/gcc/testsuite/c-c++-common/goacc-gomp/nesting-1.c b/gcc/testsuite/c-c++-common/goacc-gomp/nesting-1.c index 9ef154ed218b..929dfca646df 100644 --- a/gcc/testsuite/c-c++-common/goacc-gomp/nesting-1.c +++ b/gcc/testsuite/c-c++-common/goacc-gomp/nesting-1.c @@ -1,10 +1,9 @@ -/* { dg-additional-options "--param=openacc-kernels=decompose" } - +/* { dg-additional-options "--param=openacc-kernels=decompose" } */ /* { dg-additional-options "-fopt-info-omp-note" } */ - -/* { dg-additional-options "--param=openacc-privatization=noisy" } - Prune a few: uninteresting, and potentially varying depending on GCC configuration (data types): - { dg-prune-output {note: variable 'D\.[0-9]+' declared in block isn't candidate for adjusting OpenACC privatization level: not addressable} } */ +/* { dg-additional-options "--param=openacc-privatization=noisy" } */ +/* { dg-skip-if "PR121975" { c++26 } { "*" } { "" } } */ +/* Prune a few: uninteresting, and potentially varying depending on GCC configuration (data types): */ +/* { dg-prune-output {note: variable 'D\.[0-9]+' declared in block isn't candidate for adjusting OpenACC privatization level: not addressable} } */ void diff --git a/gcc/testsuite/c-c++-common/goacc/kernels-decompose-2.c b/gcc/testsuite/c-c++-common/goacc/kernels-decompose-2.c index 3ce9490f02f9..5aac40c038a0 100644 --- a/gcc/testsuite/c-c++-common/goacc/kernels-decompose-2.c +++ b/gcc/testsuite/c-c++-common/goacc/kernels-decompose-2.c @@ -1,10 +1,13 @@ /* Test OpenACC 'kernels' construct decomposition. */ +/* { dg-skip-if "PR121975" { c++26 } { "*" } { "" } } */ /* { dg-additional-options "-fopt-info-omp-all" } */ /* { dg-additional-options "--param=openacc-kernels=decompose" } /* { dg-additional-options "-O2" } for 'parloops'. */ +/* { dg-skip-if "PR121975" { c++26 } { "*" } { "" } } */ + /* { dg-additional-options "--param=openacc-privatization=noisy" } Prune a few: uninteresting, and potentially varying depending on GCC configuration (data types): { dg-prune-output {note: variable 'D\.[0-9]+' declared in block isn't candidate for adjusting OpenACC privatization level: not addressable} } */ diff --git a/gcc/testsuite/c-c++-common/goacc/kernels-decompose-pr100400-1-1.c b/gcc/testsuite/c-c++-common/goacc/kernels-decompose-pr100400-1-1.c index 57cb1a8cb87a..97fcaf7f28b3 100644 --- a/gcc/testsuite/c-c++-common/goacc/kernels-decompose-pr100400-1-1.c +++ b/gcc/testsuite/c-c++-common/goacc/kernels-decompose-pr100400-1-1.c @@ -1,3 +1,4 @@ +/* { dg-skip-if "PR121975" { c++26 } { "*" } { "" } } */ /* { dg-additional-options "--param openacc-kernels=decompose" } */ /* { dg-additional-options "-g0" } */ diff --git a/gcc/testsuite/c-c++-common/goacc/kernels-decompose-pr100400-1-3.c b/gcc/testsuite/c-c++-common/goacc/kernels-decompose-pr100400-1-3.c index 9779f1036f60..f7c80692890b 100644 --- a/gcc/testsuite/c-c++-common/goacc/kernels-decompose-pr100400-1-3.c +++ b/gcc/testsuite/c-c++-common/goacc/kernels-decompose-pr100400-1-3.c @@ -1,3 +1,4 @@ +/* { dg-skip-if "PR121975" { c++26 } { "*" } { "" } } */ /* { dg-additional-options "--param openacc-kernels=decompose" } */ /* { dg-additional-options "-fchecking" } diff --git a/gcc/testsuite/c-c++-common/goacc/kernels-decompose-pr104061-1-1.c b/gcc/testsuite/c-c++-common/goacc/kernels-decompose-pr104061-1-1.c index aa0fca7b6ed9..5bb68c1549cd 100644 --- a/gcc/testsuite/c-c++-common/goacc/kernels-decompose-pr104061-1-1.c +++ b/gcc/testsuite/c-c++-common/goacc/kernels-decompose-pr104061-1-1.c @@ -1,3 +1,4 @@ +/* { dg-skip-if "PR121975" { c++26 } { "*" } { "" } } */ /* { dg-additional-options "--param openacc-kernels=decompose" } */ /* { dg-additional-options "-g0" } */ diff --git a/gcc/testsuite/c-c++-common/goacc/kernels-decompose-pr104061-1-3.c b/gcc/testsuite/c-c++-common/goacc/kernels-decompose-pr104061-1-3.c index 70c2ac5b5312..43e1cca6ec7e 100644 --- a/gcc/testsuite/c-c++-common/goacc/kernels-decompose-pr104061-1-3.c +++ b/gcc/testsuite/c-c++-common/goacc/kernels-decompose-pr104061-1-3.c @@ -1,3 +1,4 @@ +/* { dg-skip-if "PR121975" { c++26 } { "*" } { "" } } */ /* { dg-additional-options "--param openacc-kernels=decompose" } */ /* { dg-additional-options "-fcompare-debug" } -- w/o debug compiled first. diff --git a/gcc/testsuite/c-c++-common/goacc/kernels-decompose-pr104061-1-4.c b/gcc/testsuite/c-c++-common/goacc/kernels-decompose-pr104061-1-4.c index d1cc1a97c9f0..97d7bed2d572 100644 --- a/gcc/testsuite/c-c++-common/goacc/kernels-decompose-pr104061-1-4.c +++ b/gcc/testsuite/c-c++-common/goacc/kernels-decompose-pr104061-1-4.c @@ -1,3 +1,4 @@ +/* { dg-skip-if "PR121975" { c++26 } { "*" } { "" } } */ /* { dg-additional-options "--param openacc-kernels=decompose" } */ /* { dg-additional-options "-g -fcompare-debug" } -- w/ debug compiled first. diff --git a/gcc/testsuite/c-c++-common/goacc/kernels-decompose-pr104132-1.c b/gcc/testsuite/c-c++-common/goacc/kernels-decompose-pr104132-1.c index 2a663e0ea19a..9094a5710b4b 100644 --- a/gcc/testsuite/c-c++-common/goacc/kernels-decompose-pr104132-1.c +++ b/gcc/testsuite/c-c++-common/goacc/kernels-decompose-pr104132-1.c @@ -1,3 +1,4 @@ +/* { dg-skip-if "PR121975" { c++26 } { "*" } { "" } } */ /* { dg-additional-options "--param openacc-kernels=decompose" } */ /* { dg-additional-options "-fopt-info-all-omp" } */ diff --git a/gcc/testsuite/c-c++-common/goacc/kernels-decompose-pr104133-1.c b/gcc/testsuite/c-c++-common/goacc/kernels-decompose-pr104133-1.c index 2724e22a5505..aa5dd346220a 100644 --- a/gcc/testsuite/c-c++-common/goacc/kernels-decompose-pr104133-1.c +++ b/gcc/testsuite/c-c++-common/goacc/kernels-decompose-pr104133-1.c @@ -1,3 +1,4 @@ +/* { dg-skip-if "PR121975" { c++26 } { "*" } { "" } } */ /* { dg-additional-options "--param openacc-kernels=decompose" } */ /* { dg-additional-options "-fopt-info-all-omp" } */ diff --git a/gcc/testsuite/c-c++-common/goacc/kernels-decompose-pr104774-1.c b/gcc/testsuite/c-c++-common/goacc/kernels-decompose-pr104774-1.c index 3ef0c897bcda..e6d4c55ae6dc 100644 --- a/gcc/testsuite/c-c++-common/goacc/kernels-decompose-pr104774-1.c +++ b/gcc/testsuite/c-c++-common/goacc/kernels-decompose-pr104774-1.c @@ -1,3 +1,4 @@ +/* { dg-skip-if "PR121975" { c++26 } { "*" } { "" } } */ /* { dg-additional-options "--param openacc-kernels=decompose" } */ /* { dg-additional-options "-fopt-info-all-omp" } */ diff --git a/gcc/testsuite/c-c++-common/goacc/mdc-1.c b/gcc/testsuite/c-c++-common/goacc/mdc-1.c index 923a4ea73a39..8d3e7bfc6cfc 100644 --- a/gcc/testsuite/c-c++-common/goacc/mdc-1.c +++ b/gcc/testsuite/c-c++-common/goacc/mdc-1.c @@ -3,6 +3,7 @@ /* TODO The tree dump scanning has certain expectations. { dg-do compile { target { lp64 || llp64 } } } */ +/* { dg-skip-if "PR121975" { c++26 } { "*" } { "" } } */ /* { dg-additional-options "-fdump-tree-omplower" } */ /* { dg-additional-options -Wuninitialized } */ diff --git a/gcc/testsuite/c-c++-common/pr122188.c b/gcc/testsuite/c-c++-common/pr122188.c new file mode 100644 index 000000000000..8c3fa1c30e55 --- /dev/null +++ b/gcc/testsuite/c-c++-common/pr122188.c @@ -0,0 +1,15 @@ +/* PR c/122188 */ +/* { dg-do compile } */ +/* { dg-options "-O2" } */ + +int +foo (const unsigned x, int y) +{ + return __builtin_ctzg (x ? x : 4081577U, y); +} + +int +bar (const unsigned x, int y) +{ + return __builtin_clzg (x ? x : 4081577U, y); +} diff --git a/gcc/testsuite/c-c++-common/toplevel-asm-9.c b/gcc/testsuite/c-c++-common/toplevel-asm-9.c new file mode 100644 index 000000000000..a32187891aa1 --- /dev/null +++ b/gcc/testsuite/c-c++-common/toplevel-asm-9.c @@ -0,0 +1,12 @@ +/* PR middle-end/122133 */ +/* { dg-do compile } */ +/* { dg-options "-O0" } */ + +extern int v[42], w; +int x[42], y; +void foo (void); +void bar (void) {} + +asm ("# %cc[foo]: %cc[v]: %cc[w]: %cc[bar] %cc[x] %cc[y]" + :: [foo] ":" (foo), [v] ":" (v), [w] ":" (&w), + [bar] "-i" (bar), [x] "-s" (x), [y] "-s" (&y)); diff --git a/gcc/testsuite/c-c++-common/torture/asm-inline.c b/gcc/testsuite/c-c++-common/torture/asm-inline.c index dea89658be44..03cb434173ff 100644 --- a/gcc/testsuite/c-c++-common/torture/asm-inline.c +++ b/gcc/testsuite/c-c++-common/torture/asm-inline.c @@ -1,6 +1,7 @@ /* { dg-do compile } */ -/* -O0 does no inlining, and -O3 does it too aggressively for this test: */ -/* { dg-skip-if "" { *-*-* } { "-O0" "-O3" } { "" } } +/* -O0 does no inlining, and -O3 does it too aggressively for this test: + -Og does not inline either. */ +/* { dg-skip-if "" { *-*-* } { "-O0" "-O3" "-Og" } { "" } } /* The normal asm is not inlined: */ /* { dg-final { scan-assembler-times "w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w" 2 } } */ /* But the asm inline is inlined: */ diff --git a/gcc/testsuite/c-c++-common/ubsan/vla-1.c b/gcc/testsuite/c-c++-common/ubsan/vla-1.c index b29d904dea39..0073514a3fbb 100644 --- a/gcc/testsuite/c-c++-common/ubsan/vla-1.c +++ b/gcc/testsuite/c-c++-common/ubsan/vla-1.c @@ -1,5 +1,5 @@ /* { dg-do run } */ -/* { dg-options "-fsanitize=vla-bound -Wall -Wno-unused-variable -fno-stack-clash-protection" } */ +/* { dg-options "-fsanitize=vla-bound -Wall -Wno-unused-variable -fno-stack-clash-protection -ftrivial-auto-var-init=uninitialized" } */ typedef long int V; int x = -1; diff --git a/gcc/testsuite/c-c++-common/uninit-17.c b/gcc/testsuite/c-c++-common/uninit-17.c index b5495366c5bc..5dd49a9dab54 100644 --- a/gcc/testsuite/c-c++-common/uninit-17.c +++ b/gcc/testsuite/c-c++-common/uninit-17.c @@ -10,10 +10,10 @@ static void bar(int a, int *ptr) do { int b; - if (b < 40) { + if (b < 40) { /* { dg-warning "is used uninitialized" "" { target c++26 } } */ ptr[0] = b; } - b += 1; /* { dg-warning "is used uninitialized" } */ + b += 1; /* { dg-warning "is used uninitialized" "" { target { c || c++23_down } } } */ ptr++; } while (--a != 0); diff --git a/gcc/testsuite/g++.dg/analyzer/exception-value-2.C b/gcc/testsuite/g++.dg/analyzer/exception-value-2.C index ef9dd46b0768..5173f5381e83 100644 --- a/gcc/testsuite/g++.dg/analyzer/exception-value-2.C +++ b/gcc/testsuite/g++.dg/analyzer/exception-value-2.C @@ -1,3 +1,5 @@ +// { dg-skip-if "PR122044" { c++26 } { "*" } { "" } } + #include "../../gcc.dg/analyzer/analyzer-decls.h" struct foo {}; diff --git a/gcc/testsuite/g++.dg/analyzer/new-2.C b/gcc/testsuite/g++.dg/analyzer/new-2.C index 391d159a53ae..9337569e60bc 100644 --- a/gcc/testsuite/g++.dg/analyzer/new-2.C +++ b/gcc/testsuite/g++.dg/analyzer/new-2.C @@ -59,9 +59,9 @@ void test_nonthrowing () int z = *y + 2; /* { dg-warning "dereference of NULL 'y'" } */ /* { dg-bogus "use of uninitialized value '\\*y'" "" { target *-*-* } .-1 } */ - z = *x + 4; /* { dg-warning "dereference of possibly-NULL 'x'" } */ + z = *x + 4; /* { dg-warning "dereference of NULL 'x'" } */ /* { dg-warning "use of uninitialized value '\\*x'" "" { target *-*-* } .-1 } */ - z = arr[0] + 4; /* { dg-warning "dereference of possibly-NULL 'arr'" } */ + z = arr[0] + 4; /* { dg-warning "dereference of NULL 'arr'" } */ /* { dg-warning "use of uninitialized value '\\*arr'" "" { target *-*-* } .-1 } */ delete y; diff --git a/gcc/testsuite/g++.dg/analyzer/noexcept-new.C b/gcc/testsuite/g++.dg/analyzer/noexcept-new.C index f4bb4956d26d..11225431b57d 100644 --- a/gcc/testsuite/g++.dg/analyzer/noexcept-new.C +++ b/gcc/testsuite/g++.dg/analyzer/noexcept-new.C @@ -11,15 +11,15 @@ struct A void test_throwing () { - int* x = new int; + int* x = new int; /* { dg-warning "dereference of possibly-NULL" } */ int* y = new int(); /* { dg-warning "dereference of possibly-NULL" } */ - int* arr = new int[10]; + int* arr = new int[10]; /* { dg-warning "dereference of possibly-NULL" } */ A *a = new A(); /* { dg-warning "dereference of possibly-NULL" } */ int z = *y + 2; - z = *x + 4; /* { dg-warning "dereference of possibly-NULL 'x'" } */ + z = *x + 4; /* { dg-warning "use of uninitialized value '\\*x'" "" { target *-*-* } .-1 } */ - z = arr[0] + 4; /* { dg-warning "dereference of possibly-NULL 'arr'" } */ + z = arr[0] + 4; /* { dg-warning "use of uninitialized value '\\*arr'" "" { target *-*-* } .-1 } */ a->y = a->x + 3; @@ -37,9 +37,9 @@ void test_nonthrowing () int z = *y + 2; /* { dg-warning "dereference of NULL 'y'" } */ /* { dg-bogus "use of uninitialized value '\\*y'" "" { target *-*-* } .-1 } */ - z = *x + 4; /* { dg-warning "dereference of possibly-NULL 'x'" } */ + z = *x + 4; /* { dg-warning "dereference of NULL 'x'" } */ /* { dg-warning "use of uninitialized value '\\*x'" "" { target *-*-* } .-1 } */ - z = arr[0] + 4; /* { dg-warning "dereference of possibly-NULL 'arr'" } */ + z = arr[0] + 4; /* { dg-warning "dereference of NULL 'arr'" } */ /* { dg-warning "use of uninitialized value '\\*arr'" "" { target *-*-* } .-1 } */ delete y; diff --git a/gcc/testsuite/g++.dg/cpp0x/lambda/lambda-template18.C b/gcc/testsuite/g++.dg/cpp0x/lambda/lambda-template18.C new file mode 100644 index 000000000000..e5e6e6a875b9 --- /dev/null +++ b/gcc/testsuite/g++.dg/cpp0x/lambda/lambda-template18.C @@ -0,0 +1,11 @@ +// PR c++/122127 +// { dg-do compile { target c++11 } } + +template struct resize; +template using resize_t = resize<_Np>; +template struct basic_mask { + void _M_chunk() { + constexpr int __rem = 1; + [&] { resize_t<__rem>(); }(); + } +}; diff --git a/gcc/testsuite/g++.dg/cpp1y/vla-initlist1.C b/gcc/testsuite/g++.dg/cpp1y/vla-initlist1.C index ba485df65fe9..ce35c905452e 100644 --- a/gcc/testsuite/g++.dg/cpp1y/vla-initlist1.C +++ b/gcc/testsuite/g++.dg/cpp1y/vla-initlist1.C @@ -1,5 +1,4 @@ // { dg-do run { target c++11 } } -// { dg-skip-if "power overwrites two slots of array i" { "power*-*-*" } } // { dg-options "-Wno-vla" } #include @@ -7,7 +6,7 @@ struct A { int i; - A(std::initializer_list) { } + A(std::initializer_list) : i{43} { } A(int i): i{i} { } ~A() {} }; @@ -18,7 +17,7 @@ int main(int argc, char **argv) { int i[x] = { 42, 42, 42, 42 }; } { A a[x] = { argc }; - if (a[1].i != 42) + if (a[1].i != 43) __builtin_abort (); } } diff --git a/gcc/testsuite/g++.dg/cpp26/attr-indeterminate1.C b/gcc/testsuite/g++.dg/cpp26/attr-indeterminate1.C new file mode 100644 index 000000000000..58f6dc5865fe --- /dev/null +++ b/gcc/testsuite/g++.dg/cpp26/attr-indeterminate1.C @@ -0,0 +1,154 @@ +// C++ 26 P2795R5 - Erroneous behaviour for uninitialized reads +// { dg-do compile { target c++11 } } + +int arr[2]; +struct S { int a, b; }; +S arr2[2]; + +void +foo ([[indeterminate]] int n, int n2 [[indeterminate]], int n3 [[indeterminate]] [2]) +{ + [[indeterminate]] int x1, x11, x12, x13; + int x14, x15 [[indeterminate]]; + [[indeterminate ("foobar")]] int x2; // { dg-error "'indeterminate' attribute does not take any arguments" } + // { dg-error "expected primary-expression before 'int'" "" { target *-*-* } .-1 } + [[indeterminate (0)]] int x3; // { dg-error "'indeterminate' attribute does not take any arguments" } + // { dg-error "expected primary-expression before 'int'" "" { target *-*-* } .-1 } + [[indeterminate ("foo", "bar", "baz")]] int x4;// { dg-error "'indeterminate' attribute does not take any arguments" } + // { dg-error "expected primary-expression before 'int'" "" { target *-*-* } .-1 } + [[indeterminate (0, 1, 2)]] int x5; // { dg-error "'indeterminate' attribute does not take any arguments" } + // { dg-error "expected primary-expression before 'int'" "" { target *-*-* } .-1 } + + auto a = [] [[indeterminate]] () {}; // { dg-error "'indeterminate' on declaration other than parameter or automatic variable" } + auto b = [] constexpr [[indeterminate]] {}; // { dg-warning "'indeterminate' attribute does not apply to types" } + // { dg-error "parameter declaration before lambda declaration specifiers only optional with" "" { target c++20_down } .-1 } + // { dg-error "'constexpr' lambda only available with" "" { target c++14_down } .-2 } + auto c = [] noexcept [[indeterminate]] {}; // { dg-warning "'indeterminate' attribute does not apply to types" } + // { dg-error "parameter declaration before lambda exception specification only optional with" "" { target c++20_down } .-1 } + auto d = [] () [[indeterminate]] {}; // { dg-warning "'indeterminate' attribute does not apply to types" } + auto e = new int [n] [[indeterminate]]; // { dg-warning "attributes ignored on outermost array type in new expression" } + auto e2 = new int [n] [[indeterminate]] [42]; // { dg-warning "attributes ignored on outermost array type in new expression" } + auto f = new int [n][42] [[indeterminate]]; // { dg-warning "'indeterminate' attribute does not apply to types" } + [[indeterminate]]; // { dg-warning "attributes at the beginning of statement are ignored" } + [[indeterminate]] {} // { dg-warning "attributes at the beginning of statement are ignored" } + [[indeterminate]] if (true) {} // { dg-warning "attributes at the beginning of statement are ignored" } + [[indeterminate]] while (false) {} // { dg-warning "attributes at the beginning of statement are ignored" } + [[indeterminate]] goto lab; // { dg-warning "attributes at the beginning of statement are ignored" } + [[indeterminate]] lab:; // { dg-error "'indeterminate' on declaration other than parameter or automatic variable" } + [[indeterminate]] try {} catch (int) {} // { dg-warning "attributes at the beginning of statement are ignored" } + if ([[indeterminate]] int x = 0) {} + switch (n) + { + [[indeterminate]] case 1: // { dg-error "'indeterminate' on declaration other than parameter or automatic variable" } + [[indeterminate]] break; // { dg-warning "attributes at the beginning of statement are ignored" } + [[indeterminate]] default: // { dg-error "'indeterminate' on declaration other than parameter or automatic variable" } + break; + } + for ([[indeterminate]] auto a : arr) {} + for ([[indeterminate]] auto [a, b] : arr2) {} // { dg-error "structured bindings only available with" "" { target c++14_down } } + [[indeterminate]] asm (""); // { dg-warning "attributes ignored on 'asm' declaration" } + try {} catch ([[indeterminate]] int x) {} + try {} catch ([[indeterminate]] int) {} + try {} catch (int [[indeterminate]] x) {} // { dg-warning "attribute ignored" } + try {} catch (int [[indeterminate]]) {} // { dg-warning "attribute ignored" } + try {} catch (int x [[indeterminate]]) {} +} + +[[indeterminate]] int bar (); // { dg-error "'indeterminate' on declaration other than parameter or automatic variable" } +using foobar [[indeterminate]] = int; // { dg-error "'indeterminate' on declaration other than parameter or automatic variable" } +[[indeterminate]] int a; // { dg-error "'indeterminate' on declaration other than parameter or automatic variable" } +[[indeterminate]] auto [b, c] = arr; // { dg-error "'indeterminate' on declaration other than parameter or automatic variable" } + // { dg-error "structured bindings only available with" "" { target c++14_down } .-1 } +[[indeterminate]]; // { dg-warning "attribute ignored" } +inline [[indeterminate]] void baz () {} // { dg-warning "attribute ignored" } + // { dg-error "standard attributes in middle of decl-specifiers" "" { target *-*-* } .-1 } +constexpr [[indeterminate]] int qux () { return 0; } // { dg-warning "attribute ignored" } + // { dg-error "standard attributes in middle of decl-specifiers" "" { target *-*-* } .-1 } +int [[indeterminate]] d; // { dg-warning "attribute ignored" } +int const [[indeterminate]] e = 1; // { dg-warning "attribute ignored" } +struct A {} [[indeterminate]]; // { dg-warning "attribute ignored in declaration of 'struct A'" } +struct A [[indeterminate]]; // { dg-warning "attribute ignored" } +struct A [[indeterminate]] a1; // { dg-warning "attribute ignored" } +A [[indeterminate]] a2; // { dg-warning "attribute ignored" } +enum B { B0 } [[indeterminate]]; // { dg-warning "attribute ignored in declaration of 'enum B'" } +enum B [[indeterminate]]; // { dg-warning "attribute ignored" } +enum B [[indeterminate]] b1; // { dg-warning "attribute ignored" } +B [[indeterminate]] b2; // { dg-warning "attribute ignored" } +struct [[indeterminate]] C {}; // { dg-warning "'indeterminate' attribute does not apply to types" } +int f [[indeterminate]]; // { dg-error "'indeterminate' on declaration other than parameter or automatic variable" } +int g[2] [[indeterminate]]; // { dg-warning "'indeterminate' attribute does not apply to types" } +int g2 [[indeterminate]] [2]; // { dg-error "'indeterminate' on declaration other than parameter or automatic variable" } +int corge () [[indeterminate]]; // { dg-warning "'indeterminate' attribute does not apply to types" } +int *[[indeterminate]] h; // { dg-warning "'indeterminate' attribute does not apply to types" } +int & [[indeterminate]] i = f; // { dg-warning "'indeterminate' attribute does not apply to types" } +int && [[indeterminate]] j = 0; // { dg-warning "'indeterminate' attribute does not apply to types" } +int S::* [[indeterminate]] k; // { dg-warning "'indeterminate' attribute does not apply to types" } +auto l = sizeof (int [2] [[indeterminate]]); // { dg-warning "'indeterminate' attribute does not apply to types" } +int freddy ([[indeterminate]] int a, + [[indeterminate]] int, + [[indeterminate]] int c = 0, + [[indeterminate]] int = 0); +void +corge ([[indeterminate]] int a, + [[indeterminate]] int, + [[indeterminate]] int c = 0, + [[indeterminate]] int = 0) +{ +} +[[indeterminate]] void +garply () // { dg-error "'indeterminate' on declaration other than parameter or automatic variable" } +{ +} +int grault (int [[indeterminate]] a, // { dg-warning "attribute ignored" } + int [[indeterminate]], // { dg-warning "attribute ignored" } + int [[indeterminate]] c = 0, // { dg-warning "attribute ignored" } + int [[indeterminate]] = 0); // { dg-warning "attribute ignored" } +void +waldo (int [[indeterminate]] a, // { dg-warning "attribute ignored" } + int [[indeterminate]], // { dg-warning "attribute ignored" } + int [[indeterminate]] c = 0, // { dg-warning "attribute ignored" } + int [[indeterminate]] = 0) // { dg-warning "attribute ignored" } +{ +} +int plugh (int a [[indeterminate]], + int b [[indeterminate]] = 0); +void +thud (int a [[indeterminate]], + int b [[indeterminate]] = 0) +{ +} +enum [[indeterminate]] D { D0 }; // { dg-warning "'indeterminate' attribute does not apply to types" } +enum class [[indeterminate]] E { E0 }; // { dg-warning "'indeterminate' attribute does not apply to types" } +enum F {}; +enum [[indeterminate]] F; // { dg-warning "'indeterminate' attribute does not apply to types" } +enum G { + G0 [[indeterminate]], // { dg-error "'indeterminate' on declaration other than parameter or automatic variable" } + G1 [[indeterminate]] = 2 // { dg-error "'indeterminate' on declaration other than parameter or automatic variable" } +}; +namespace [[indeterminate]] H { using H0 = int; }// { dg-warning "'indeterminate' attribute directive ignored" } +namespace [[indeterminate]] {} // { dg-warning "'indeterminate' attribute directive ignored" } +[[indeterminate]] using namespace H; // { dg-warning "'indeterminate' attribute directive ignored" } +struct [[indeterminate]] I // { dg-warning "'indeterminate' attribute does not apply to types" } +{ + [[indeterminate]]; // { dg-error "declaration does not declare anything" } + [[indeterminate]] int i; // { dg-error "'indeterminate' on declaration other than parameter or automatic variable" } + [[indeterminate]] int foo (); // { dg-error "'indeterminate' on declaration other than parameter or automatic variable" } + [[indeterminate]] int bar () { return 1; } // { dg-error "'indeterminate' on declaration other than parameter or automatic variable" } + [[indeterminate]] int : 0; // { dg-error "'indeterminate' on declaration other than parameter or automatic variable" } + [[indeterminate]] int i2 : 5; // { dg-error "'indeterminate' on declaration other than parameter or automatic variable" } + [[indeterminate]] static int i3; // { dg-error "'indeterminate' on declaration other than parameter or automatic variable" } + static int i4; +}; +[[indeterminate]] int I::i4 = 0; // { dg-error "'indeterminate' on declaration other than parameter or automatic variable" } +struct J : [[indeterminate]] C {}; // { dg-warning "attributes on base specifiers are ignored" } +#if __cpp_concepts >= 201907L +template +concept K [[indeterminate]] = requires { true; };// { dg-error "'indeterminate' on declaration other than parameter or automatic variable" "" { target c++20 } } +#endif +typedef int L [[indeterminate]]; // { dg-error "'indeterminate' on declaration other than parameter or automatic variable" } +template +struct M {}; +template <> +struct [[indeterminate]] M { int m; }; // { dg-warning "'indeterminate' attribute does not apply to types" } +typedef int N[2] [[indeterminate]]; // { dg-warning "'indeterminate' attribute does not apply to types" } +typedef int O [[indeterminate]] [2]; // { dg-error "'indeterminate' on declaration other than parameter or automatic variable" } diff --git a/gcc/testsuite/g++.dg/cpp26/attr-indeterminate2.C b/gcc/testsuite/g++.dg/cpp26/attr-indeterminate2.C new file mode 100644 index 000000000000..a2704c65b4cd --- /dev/null +++ b/gcc/testsuite/g++.dg/cpp26/attr-indeterminate2.C @@ -0,0 +1,39 @@ +// C++ 26 P2795R5 - Erroneous behaviour for uninitialized reads +// { dg-do compile { target c++11 } } +// { dg-additional-options "-fdump-tree-gimple" } +// { dg-skip-if "" { c++26 } { "-ftrivial-auto-var-init=*" } { "" } } +// Expect .DEFERRED_INIT calls for the h, r and s variables (3) and +// temporaries for the second arguments to foo and baz calls (4). +// { dg-final { scan-tree-dump-times " = \\.DEFERRED_INIT \\\(" 7 "gimple" { target c++26 } } } + +struct S { S (); S (const S &); ~S (); int s; }; +void foo (S a [[indeterminate]], S b, S c [[indeterminate]] = S ()); +void foo (S d, S e, S f [[indeterminate]]); + +void +bar () +{ + S g [[indeterminate]], h; + foo (g, h, S ()); + foo (g, h); +} + +void +foo (S i [[indeterminate]], S j, S k) +{ +} + +void +baz ([[indeterminate]] S l, S m, [[indeterminate]] S n = S ()) +{ +} + +void baz (S o, S p, S q); + +void +qux () +{ + S r, s; + baz (r, s, s); + baz (r, s); +} diff --git a/gcc/testsuite/g++.dg/cpp26/attr-indeterminate3.C b/gcc/testsuite/g++.dg/cpp26/attr-indeterminate3.C new file mode 100644 index 000000000000..8f13390262fe --- /dev/null +++ b/gcc/testsuite/g++.dg/cpp26/attr-indeterminate3.C @@ -0,0 +1,21 @@ +// C++ 26 P2795R5 - Erroneous behaviour for uninitialized reads +// { dg-do compile { target c++11 } } +// { dg-skip-if "" { c++26 } { "-ftrivial-auto-var-init=*" } { "" } } + +struct S { S (); S (const S &); ~S (); int s; }; +void foo (S u, S v [[indeterminate]], int); +void foo (S a, S b, S c = S ()); // { dg-message "earlier declaration" } +void foo (S d, S e, S f [[indeterminate]]); // { dg-error "'indeterminate' attribute not specified for parameter 'f' on the first declaration of its function" } + +void +foo (S i [[indeterminate]], S j, S k) // { dg-error "'indeterminate' attribute not specified for parameter 'i' on the first declaration of its function" } +{ +} + +void +bar (S l, S m, S n = S ()) // { dg-message "earlier declaration" } +{ +} + +void bar (S o [[indeterminate]], S p, [[indeterminate]]S q); // { dg-error "'indeterminate' attribute not specified for parameter 'o' on the first declaration of its function" } + // { dg-error "'indeterminate' attribute not specified for parameter 'q' on the first declaration of its function" "" { target *-*-* } .-1 } diff --git a/gcc/testsuite/g++.dg/cpp26/attr-indeterminate4.C b/gcc/testsuite/g++.dg/cpp26/attr-indeterminate4.C new file mode 100644 index 000000000000..946e01911dd2 --- /dev/null +++ b/gcc/testsuite/g++.dg/cpp26/attr-indeterminate4.C @@ -0,0 +1,36 @@ +// C++ 26 P2795R5 - Erroneous behaviour for uninitialized reads +// { dg-do compile { target c++11 } } +// { dg-additional-options "-ftrivial-auto-var-init=uninitialized -fdump-tree-gimple" } +// { dg-final { scan-tree-dump-not " = \\.DEFERRED_INIT \\\(" "gimple" } } + +struct S { S (); S (const S &); ~S (); int s; }; +void foo (S a [[indeterminate]], S b, S c [[indeterminate]] = S ()); +void foo (S d, S e, S f [[indeterminate]]); + +void +bar () +{ + S g [[indeterminate]], h; + foo (g, h, S ()); + foo (g, h); +} + +void +foo (S i [[indeterminate]], S j, S k) +{ +} + +void +baz ([[indeterminate]] S l, S m, [[indeterminate]] S n = S ()) +{ +} + +void baz (S o, S p, S q); + +void +qux () +{ + S r, s; + baz (r, s, s); + baz (r, s); +} diff --git a/gcc/testsuite/g++.dg/cpp26/constexpr-new4a.C b/gcc/testsuite/g++.dg/cpp26/constexpr-new4a.C new file mode 100644 index 000000000000..d621293f3a69 --- /dev/null +++ b/gcc/testsuite/g++.dg/cpp26/constexpr-new4a.C @@ -0,0 +1,21 @@ +// PR c++/121068 +// { dg-do compile { target c++26 } } + +constexpr void *operator new (__SIZE_TYPE__, void *p) { return p; } +constexpr void *operator new[] (__SIZE_TYPE__, void *p) { return p; } + +consteval int +foo(int n) +{ + using T = int; + union { T arr[3]; }; + new(arr) T[n]; // makes arr active + for (int i = 0; i < 3; ++i) + arr[i].~T(); + + new (arr + 2) T{10}; // A + + return 1; +}; + +constexpr int g = foo(3); diff --git a/gcc/testsuite/g++.dg/cpp26/erroneous1.C b/gcc/testsuite/g++.dg/cpp26/erroneous1.C new file mode 100644 index 000000000000..78769e65ca17 --- /dev/null +++ b/gcc/testsuite/g++.dg/cpp26/erroneous1.C @@ -0,0 +1,61 @@ +// C++ 26 P2795R5 - Erroneous behaviour for uninitialized reads +// { dg-do run { target c++26 } } +// { dg-skip-if "" { *-*-* } { "-ftrivial-auto-var-init=*" } { "" } } +// { dg-options "-O2 -Wuninitialized" } + +#define assert(x) if (!(x)) __builtin_abort () + +template +[[gnu::noipa]] T +baz (T &x) +{ + return x; +} + +[[gnu::noipa]] int +foo (bool b) +{ + unsigned char c; + unsigned char d = c; // no erroneous behavior, but d has an erroneous value + // { dg-warning "'c' is used uninitialized" "" { target *-*-* } .-1 } + + assert (c == d); // holds, both integral promotions have erroneous behavior + + unsigned char f = c; + unsigned char g = baz (f); + + assert (g == c); + + int e = d; // erroneous behavior + baz (e); + return b ? d : 0; // erroneous behavior if b is true +} + +[[gnu::noipa]] void +bar () +{ + int d1, d2; + + int e1 = d1; // erroneous behavior + int e2 = d1; // erroneous behavior + + assert (e1 == e2); // holds + assert (e1 == d1); // holds, erroneous behavior + assert (e2 == d1); // holds, erroneous behavior + + int f = d1; // { dg-warning "'d1' is used uninitialized" } + int g = baz (f); + assert (g == d1); + + __builtin_memcpy (&d2, &d1, sizeof (int)); // no erroneous behavior, but d2 has an erroneous value + assert (e1 == d2); // holds, erroneous behavior + assert (e2 == d2); // holds, erroneous behavior +} + +int +main () +{ + foo (false); + foo (true); + bar (); +} diff --git a/gcc/testsuite/g++.dg/cpp26/erroneous2.C b/gcc/testsuite/g++.dg/cpp26/erroneous2.C new file mode 100644 index 000000000000..e8c66f4d60a0 --- /dev/null +++ b/gcc/testsuite/g++.dg/cpp26/erroneous2.C @@ -0,0 +1,234 @@ +// C++ 26 P2795R5 - Erroneous behaviour for uninitialized reads +// { dg-do compile } +// { dg-skip-if "" { *-*-* } { "-ftrivial-auto-var-init=*" } { "" } } +// { dg-options "-O2 -fdump-tree-gimple" } +// All the s1..s24 variables and i1 need .DEFERRED_INIT call on their +// declarations. +// Plus, forward gotos to l1 & l2 labels need up to s1-s4 and s6-s9 vars to +// be .DEFERRED_INITed (and backward gotos up to that minus the first two). +// switch to case 15 skips over s12, switch to case 16/17 skip +// over s12 and s13 but the adjacent l3 label needs to also skip over s3-s4 +// and s6-s9 and s11. switch to case 18 skips over s12-s14 and switch to +// default in the same switch skips over s12-s15. +// goto l4; skips over s19 initialization. +// goto l5; skips over s20-s22 initialization. +// switch to case 32/33 skips over s23 but goto to adjacent l6 skips also +// over s20-s22. switch to default in that switch skips over s23-s24. +// { dg-final { scan-tree-dump-times " s1 = \.DEFERRED_INIT \\\(" 2 "gimple" { target c++26 } } } +// { dg-final { scan-tree-dump-times " s2 = \.DEFERRED_INIT \\\(" 2 "gimple" { target c++26 } } } +// { dg-final { scan-tree-dump-times " s3 = \.DEFERRED_INIT \\\(" 3 "gimple" { target c++26 } } } +// { dg-final { scan-tree-dump-times " s4 = \.DEFERRED_INIT \\\(" 3 "gimple" { target c++26 } } } +// { dg-final { scan-tree-dump-times " s5 = \.DEFERRED_INIT \\\(" 1 "gimple" { target c++26 } } } +// { dg-final { scan-tree-dump-times " s6 = \.DEFERRED_INIT \\\(" 3 "gimple" { target c++26 } } } +// { dg-final { scan-tree-dump-times " s7 = \.DEFERRED_INIT \\\(" 3 "gimple" { target c++26 } } } +// { dg-final { scan-tree-dump-times " s8 = \.DEFERRED_INIT \\\(" 3 "gimple" { target c++26 } } } +// { dg-final { scan-tree-dump-times " s9 = \.DEFERRED_INIT \\\(" 3 "gimple" { target c++26 } } } +// { dg-final { scan-tree-dump-times " s10 = \.DEFERRED_INIT \\\(" 1 "gimple" { target c++26 } } } +// { dg-final { scan-tree-dump-times " s11 = \.DEFERRED_INIT \\\(" 2 "gimple" { target c++26 } } } +// { dg-final { scan-tree-dump-times " s12 = \.DEFERRED_INIT \\\(" 5 "gimple" { target c++26 } } } +// { dg-final { scan-tree-dump-times " s13 = \.DEFERRED_INIT \\\(" 4 "gimple" { target c++26 } } } +// { dg-final { scan-tree-dump-times " s14 = \.DEFERRED_INIT \\\(" 3 "gimple" { target c++26 } } } +// { dg-final { scan-tree-dump-times " s15 = \.DEFERRED_INIT \\\(" 2 "gimple" { target c++26 } } } +// { dg-final { scan-tree-dump-times " s16 = \.DEFERRED_INIT \\\(" 1 "gimple" { target c++26 } } } +// { dg-final { scan-tree-dump-times " s17 = \.DEFERRED_INIT \\\(" 1 "gimple" { target c++26 } } } +// { dg-final { scan-tree-dump-times " s18 = \.DEFERRED_INIT \\\(" 1 "gimple" { target c++26 } } } +// { dg-final { scan-tree-dump-times " s19 = \.DEFERRED_INIT \\\(" 2 "gimple" { target c++26 } } } +// { dg-final { scan-tree-dump-times " s20 = \.DEFERRED_INIT \\\(" 3 "gimple" { target c++26 } } } +// { dg-final { scan-tree-dump-times " s21 = \.DEFERRED_INIT \\\(" 3 "gimple" { target c++26 } } } +// { dg-final { scan-tree-dump-times " s22 = \.DEFERRED_INIT \\\(" 3 "gimple" { target c++26 } } } +// { dg-final { scan-tree-dump-times " s23 = \.DEFERRED_INIT \\\(" 3 "gimple" { target c++26 } } } +// { dg-final { scan-tree-dump-times " s24 = \.DEFERRED_INIT \\\(" 2 "gimple" { target c++26 } } } +// { dg-final { scan-tree-dump-times " i1 = \.DEFERRED_INIT \\\(" 1 "gimple" { target c++26 } } } + +struct S { int a, b, c; }; + +int +foo (int x) +{ + int r = 0; + if (x == 1) + goto l1; + S s1; + if (x == 2) + goto l1; + S s2; + { + S s10; + if (x == 12) + goto l1; + s10.a = 1; + r += s10.a; + int i1; + if (x == 13) + goto l1; + i1 = 2; + r += i1; + } + if (x == 3) + goto l2; + if (x == 4) + goto l1; + { + S s3; + if (x == 5) + goto l2; + S s4; + if (x == 6) + goto l1; + { + S s5; + if (x == 7) + goto l1; + s5.a = 5; + r += s5.a; + } + S s6; + { + S s7; + S s8; + if (x == 8) + goto l1; + S s9; + if (x == 9) + goto l2; + if (x == 10) + goto l2; + if (x == 11) + goto l2; + l1: + l2: + s1.a = 1; + s2.b = 2; + s3.c = 3; + s4.a = 4; + s6.b = 6; + s7.c = 7; + s8.a = 8; + s9.b = 9; + r += s1.a + s2.b + s3.c; + r += s4.a + s6.b + s7.c; + r += s8.a + s9.b; + if (x == 14) + goto l3; + S s11; + switch (x) + { + S s12; + case 15: + S s13; + // FALLTHRU + l3: + case 16: + case 17: + S s14; + s11.a = 1; + s12.b = 2; + s13.c = 3; + s14.a = 4; + r += s11.a + s12.b + s13.c; + r += s14.a; + return r; + case 18: + S s15; + s11.a = 1; + s12.b = 2; + s13.c = 3; + s14.a = 4; + s15.b = 5; + r += s11.a + s12.b + s13.c; + r += s14.a + s15.b; + return r; + default: + if (x != 19 && x != 20) + break; + S s16; + s11.a = 1; + s12.b = 2; + s13.c = 3; + s14.a = 4; + s15.b = 5; + s16.c = 6; + r += s11.a + s12.b + s13.c; + r += s14.a + s15.b + s16.c; + return r; + } + if (x == 21) + goto l3; + } + S s17; + if (x == 22) + goto l3; + if (x == 23) + goto l1; + if (x == 24) + goto l2; + s17.a = 1; + r += s17.a; + } + S s18; + if (x == 25) + { + S s19; + s19.c = 2; + r += s19.c; + if (x == 29) + l4:; + goto l3; + } + if (x == 26) + goto l1; + if (x == 27) + goto l2; + s18.b = 1; + r += s18.b; + if (x == 28) + goto l4; + { + S s20; + { + S s21; + if (x == 29) + goto l1; + S s22; + if (x == 30) + goto l2; + l5: + s20.a = 1; + s21.b = 2; + s22.c = 3; + r += s20.a + s21.b + s22.c; + switch (x) + { + case 31: + S s23; + // FALLTHRU + l6: + case 32: + case 33: + S s24; + s23.a = 1; + s24.b = 2; + r += s23.a + s24.b; + return r; + default: + if (x >= 34 && x <= 35) + return r; + break; + } + if (x == 34) + goto l5; + if (x == 35) + goto l6; + return r; + } + if (x == 36) + goto l5; + if (x == 37) + goto l6; + } + if (x == 38) + goto l5; + if (x == 39) + goto l6; + return r; +} diff --git a/gcc/testsuite/g++.dg/cpp26/erroneous3.C b/gcc/testsuite/g++.dg/cpp26/erroneous3.C new file mode 100644 index 000000000000..d48a08ed7d18 --- /dev/null +++ b/gcc/testsuite/g++.dg/cpp26/erroneous3.C @@ -0,0 +1,158 @@ +// C++ 26 P2795R5 - Erroneous behaviour for uninitialized reads +// { dg-do compile { target c++11 } } +// { dg-options "-Wimplicit-fallthrough -Wswitch-unreachable" } +// Make sure -Wimplicit-fallthrough and -Wswitch-unreachable +// are consistent between -std=c++23 and -std=c++26 even when +// the latter instruments jumps across vacuous initializations. + +int i; + +void +foo (int x) +{ + switch (x) + { + case 1: + int j; + ++i; // { dg-warning "this statement may fall through" } + case 2: // { dg-message "here" } + int k; + ++i; + // FALLTHRU + case 3: + int l; + ++i; + [[fallthrough]]; + default: + int m; + ++i; + j = 42; + k = 42; + l = 42; + m = 42; + i += (j - k) + (l - m); + break; + } +} + +void +bar (int x) +{ + if (x == 6) + goto l1; + if (x == 7) + goto l2; + if (x == 8) + goto l3; + if (x == 9) + goto l4; + if (x == 10) + goto l5; + if (x == 11) + goto l6; + int j; + j = 5; + i += j; + switch (x) + { + case 1: + l1: + ++i; // { dg-warning "this statement may fall through" } + case 2: // { dg-message "here" } + l2: + ++i; + // FALLTHRU + case 3: + l3: + ++i; + [[fallthrough]]; + default: + l4: + ++i; + break; + case 4: + ++i; // { dg-warning "this statement may fall through" } + case 5: // { dg-message "here" } + l5:; + ++i; // { dg-warning "this statement may fall through" } + case 6: // { dg-message "here" } + ++i; + case 7: + l6:; + } +} + +void +baz (int x) +{ + switch (x) + { + case 1: + int j [[indeterminate]]; + ++i; // { dg-warning "this statement may fall through" } + case 2: // { dg-message "here" } + int k [[indeterminate]]; + ++i; + // FALLTHRU + case 3: + int l [[indeterminate]]; + ++i; + [[fallthrough]]; + default: + int m [[indeterminate]]; + ++i; + j = 42; + k = 42; + l = 42; + m = 42; + i += (j - k) + (l - m); + break; + } +} + +void +qux (int x) +{ + if (x == 6) + goto l1; + if (x == 7) + goto l2; + if (x == 8) + goto l3; + if (x == 9) + goto l4; + if (x == 10) + goto l5; + if (x == 11) + goto l6; + int j [[indeterminate]]; + j = 5; + i += j; + switch (x) + { + case 1: + l1: + ++i; // { dg-warning "this statement may fall through" } + case 2: // { dg-message "here" } + l2: + ++i; + // FALLTHRU + case 3: + l3: + ++i; + [[fallthrough]]; + default: + l4: + ++i; + break; + case 4: + ++i; // { dg-warning "this statement may fall through" } + case 5: // { dg-message "here" } + l5:; + ++i; // { dg-warning "this statement may fall through" } + case 6: // { dg-message "here" } + ++i; + case 7: + l6:; + } +} diff --git a/gcc/testsuite/g++.dg/cpp26/erroneous4.C b/gcc/testsuite/g++.dg/cpp26/erroneous4.C new file mode 100644 index 000000000000..0863480dc2ea --- /dev/null +++ b/gcc/testsuite/g++.dg/cpp26/erroneous4.C @@ -0,0 +1,37 @@ +// C++ 26 P2795R5 - Erroneous behaviour for uninitialized reads +// { dg-do compile { target c++23 } } +// Make sure we don't reject this in C++26 because of +// .DEFERRED_INIT calls. + +constexpr int +foo (int x) +{ + if (x == 6) + goto l1; + if (x == 7) + goto l2; + int i; + switch (x) + { + int j; + case 1: + i = 6; + return i; + case 2: + i = 4; + l1: + i = 5; + return i; + case 3: + l2: + i = 7; + return i; + default: + return 42; + } +} + +static_assert (foo (1) == 6); +static_assert (foo (2) == 5); +static_assert (foo (3) == 7); +static_assert (foo (4) == 42); diff --git a/gcc/testsuite/g++.dg/cpp26/stdarg1.C b/gcc/testsuite/g++.dg/cpp26/stdarg1.C new file mode 100644 index 000000000000..4ce288b7a1f7 --- /dev/null +++ b/gcc/testsuite/g++.dg/cpp26/stdarg1.C @@ -0,0 +1,158 @@ +// P3348R4 - C++26 should refer to C23 not C17 +// { dg-do run { target c++26 } } + +#include + +double +f (...) +{ + va_list ap; + va_start (ap); + double ret = va_arg (ap, int); + ret += va_arg (ap, double); + ret += va_arg (ap, int); + ret += va_arg (ap, double); + va_end (ap); + return ret; +} + +void +g (...) +{ + va_list ap; + va_start (ap, random ! ignored, ignored ** text); // { dg-warning "'va_start' macro used with additional arguments other than identifier of the last named argument" } + for (int i = 0; i < 10; i++) + if (va_arg (ap, double) != i) + __builtin_abort (); + va_end (ap); +} + +void +h1 (int x, ...) +{ + va_list ap; + va_start (ap); + for (int i = 0; i < 10; i++) + { + if (va_arg (ap, double) != i) + __builtin_abort (); + i++; + if (va_arg (ap, int) != i) + __builtin_abort (); + } + va_end (ap); +} + +void +h2 (int x(), ...) +{ + va_list ap; + va_start (ap); + for (int i = 0; i < 10; i++) + { + if (va_arg (ap, double) != i) + __builtin_abort (); + i++; + if (va_arg (ap, int) != i) + __builtin_abort (); + } + va_end (ap); +} + +void +h3 (int x[10], ...) +{ + va_list ap; + va_start (ap); + for (int i = 0; i < 10; i++) + { + if (va_arg (ap, double) != i) + __builtin_abort (); + i++; + if (va_arg (ap, int) != i) + __builtin_abort (); + } + va_end (ap); +} + +void +h4 (char x, ...) +{ + va_list ap; + va_start (ap); + for (int i = 0; i < 10; i++) + { + if (va_arg (ap, double) != i) + __builtin_abort (); + i++; + if (va_arg (ap, int) != i) + __builtin_abort (); + } + va_end (ap); +} + +void +h5 (float x, ...) +{ + va_list ap; + va_start (ap); + for (int i = 0; i < 10; i++) + { + if (va_arg (ap, double) != i) + __builtin_abort (); + i++; + if (va_arg (ap, int) != i) + __builtin_abort (); + } + va_end (ap); +} + +void +h6 (long x, ...) +{ + va_list ap; + va_start (ap); + for (int i = 0; i < 10; i++) + { + if (va_arg (ap, double) != i) + __builtin_abort (); + i++; + if (va_arg (ap, int) != i) + __builtin_abort (); + } + va_end (ap); +} + +struct s { char c[1000]; }; + +void +h7 (struct s x, ...) +{ + va_list ap; + va_start (ap); + for (int i = 0; i < 10; i++) + { + if (va_arg (ap, double) != i) + __builtin_abort (); + i++; + if (va_arg (ap, int) != i) + __builtin_abort (); + } + va_end (ap); +} + +int +main () +{ + if (f (1, 2.0, 3, 4.0) != 10.0) + __builtin_abort (); + g (0.0, 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0); + g (0.0f, 1.0f, 2.0f, 3.0f, 4.0f, 5.0f, 6.0f, 7.0f, 8.0f, 9.0f); + h1 (0, 0.0, 1, 2.0, 3, 4.0, 5, 6.0, 7, 8.0, 9); + h2 (0, 0.0, 1, 2.0, 3, 4.0, 5, 6.0, 7, 8.0, 9); + h3 (0, 0.0, 1, 2.0, 3, 4.0, 5, 6.0, 7, 8.0, 9); + h4 (0, 0.0, 1, 2.0, 3, 4.0, 5, 6.0, 7, 8.0, 9); + h5 (0, 0.0, 1, 2.0, 3, 4.0, 5, 6.0, 7, 8.0, 9); + h6 (0, 0.0, 1, 2.0, 3, 4.0, 5, 6.0, 7, 8.0, 9); + h7 (s {}, 0.0, 1, 2.0, 3, 4.0, 5, 6.0, 7, 8.0, 9); +} diff --git a/gcc/testsuite/g++.dg/cpp26/stdarg2.C b/gcc/testsuite/g++.dg/cpp26/stdarg2.C new file mode 100644 index 000000000000..218bcd6cf18c --- /dev/null +++ b/gcc/testsuite/g++.dg/cpp26/stdarg2.C @@ -0,0 +1,212 @@ +// P3348R4 - C++26 should refer to C23 not C17 +// { dg-do run { target c++26 } } + +#include + +struct s { char c[1000]; }; + +struct s +f (...) +{ + va_list ap; + va_start (ap); + double r = va_arg (ap, int); + r += va_arg (ap, double); + r += va_arg (ap, int); + r += va_arg (ap, double); + va_end (ap); + struct s ret = {}; + ret.c[0] = r; + ret.c[999] = 42; + return ret; +} + +struct s +g (...) +{ + va_list ap; + va_start (ap, random ! ignored, ignored ** text); // { dg-warning "'va_start' macro used with additional arguments other than identifier of the last named argument" } + for (int i = 0; i < 10; i++) + if (va_arg (ap, double) != i) + __builtin_abort (); + va_end (ap); + struct s ret = {}; + ret.c[0] = 17; + ret.c[999] = 58; + return ret; +} + +struct s +h1 (int x, ...) +{ + va_list ap; + va_start (ap); + for (int i = 0; i < 10; i++) + { + if (va_arg (ap, double) != i) + __builtin_abort (); + i++; + if (va_arg (ap, int) != i) + __builtin_abort (); + } + va_end (ap); + struct s ret = {}; + ret.c[0] = 32; + ret.c[999] = 95; + return ret; +} + +struct s +h2 (int x(), ...) +{ + va_list ap; + va_start (ap); + for (int i = 0; i < 10; i++) + { + if (va_arg (ap, double) != i) + __builtin_abort (); + i++; + if (va_arg (ap, int) != i) + __builtin_abort (); + } + va_end (ap); + struct s ret = {}; + ret.c[0] = 5; + ret.c[999] = 125; + return ret; +} + +struct s +h3 (int x[10], ...) +{ + va_list ap; + va_start (ap); + for (int i = 0; i < 10; i++) + { + if (va_arg (ap, double) != i) + __builtin_abort (); + i++; + if (va_arg (ap, int) != i) + __builtin_abort (); + } + va_end (ap); + struct s ret = {}; + ret.c[0] = 8; + ret.c[999] = 12; + return ret; +} + +struct s +h4 (char x, ...) +{ + va_list ap; + va_start (ap); + for (int i = 0; i < 10; i++) + { + if (va_arg (ap, double) != i) + __builtin_abort (); + i++; + if (va_arg (ap, int) != i) + __builtin_abort (); + } + va_end (ap); + struct s ret = {}; + ret.c[0] = 18; + ret.c[999] = 28; + return ret; +} + +struct s +h5 (float x, ...) +{ + va_list ap; + va_start (ap); + for (int i = 0; i < 10; i++) + { + if (va_arg (ap, double) != i) + __builtin_abort (); + i++; + if (va_arg (ap, int) != i) + __builtin_abort (); + } + va_end (ap); + struct s ret = {}; + ret.c[0] = 38; + ret.c[999] = 48; + return ret; +} + +struct s +h6 (long x, ...) +{ + va_list ap; + va_start (ap); + for (int i = 0; i < 10; i++) + { + if (va_arg (ap, double) != i) + __builtin_abort (); + i++; + if (va_arg (ap, int) != i) + __builtin_abort (); + } + va_end (ap); + struct s ret = {}; + ret.c[0] = 58; + ret.c[999] = 68; + return ret; +} + +struct s +h7 (struct s x, ...) +{ + va_list ap; + va_start (ap); + for (int i = 0; i < 10; i++) + { + if (va_arg (ap, double) != i) + __builtin_abort (); + i++; + if (va_arg (ap, int) != i) + __builtin_abort (); + } + va_end (ap); + struct s ret = {}; + ret.c[0] = 78; + ret.c[999] = 88; + return ret; +} + +int +main () +{ + struct s x = f (1, 2.0, 3, 4.0); + if (x.c[0] != 10 || x.c[999] != 42) + __builtin_abort (); + x = g (0.0, 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0); + if (x.c[0] != 17 || x.c[999] != 58) + __builtin_abort (); + x = g (0.0f, 1.0f, 2.0f, 3.0f, 4.0f, 5.0f, 6.0f, 7.0f, 8.0f, 9.0f); + if (x.c[0] != 17 || x.c[999] != 58) + __builtin_abort (); + x = h1 (0, 0.0, 1, 2.0, 3, 4.0, 5, 6.0, 7, 8.0, 9); + if (x.c[0] != 32 || x.c[999] != 95) + __builtin_abort (); + x = h2 (0, 0.0, 1, 2.0, 3, 4.0, 5, 6.0, 7, 8.0, 9); + if (x.c[0] != 5 || x.c[999] != 125) + __builtin_abort (); + x = h3 (0, 0.0, 1, 2.0, 3, 4.0, 5, 6.0, 7, 8.0, 9); + if (x.c[0] != 8 || x.c[999] != 12) + __builtin_abort (); + x = h4 (0, 0.0, 1, 2.0, 3, 4.0, 5, 6.0, 7, 8.0, 9); + if (x.c[0] != 18 || x.c[999] != 28) + __builtin_abort (); + x = h5 (0, 0.0, 1, 2.0, 3, 4.0, 5, 6.0, 7, 8.0, 9); + if (x.c[0] != 38 || x.c[999] != 48) + __builtin_abort (); + x = h6 (0, 0.0, 1, 2.0, 3, 4.0, 5, 6.0, 7, 8.0, 9); + if (x.c[0] != 58 || x.c[999] != 68) + __builtin_abort (); + x = h7 (s {}, 0.0, 1, 2.0, 3, 4.0, 5, 6.0, 7, 8.0, 9); + if (x.c[0] != 78 || x.c[999] != 88) + __builtin_abort (); +} diff --git a/gcc/testsuite/g++.dg/cpp26/stdarg3.C b/gcc/testsuite/g++.dg/cpp26/stdarg3.C new file mode 100644 index 000000000000..7ed3d67343ab --- /dev/null +++ b/gcc/testsuite/g++.dg/cpp26/stdarg3.C @@ -0,0 +1,7 @@ +// P3348R4 - C++26 should refer to C23 not C17 +// { dg-do run { target c++26 } } +// { dg-additional-options "-O2" } + +#include "stdarg1.C" + +// { dg-warning "'va_start' macro used with additional arguments other than identifier of the last named argument" "" { target *-*-* } 0 } diff --git a/gcc/testsuite/g++.dg/cpp26/stdarg4.C b/gcc/testsuite/g++.dg/cpp26/stdarg4.C new file mode 100644 index 000000000000..d1a3350e0aa6 --- /dev/null +++ b/gcc/testsuite/g++.dg/cpp26/stdarg4.C @@ -0,0 +1,7 @@ +// P3348R4 - C++26 should refer to C23 not C17 +// { dg-do run { target c++26 } } +// { dg-additional-options "-O2" } + +#include "stdarg2.C" + +// { dg-warning "'va_start' macro used with additional arguments other than identifier of the last named argument" "" { target *-*-* } 0 } diff --git a/gcc/testsuite/g++.dg/cpp26/stdarg5.C b/gcc/testsuite/g++.dg/cpp26/stdarg5.C new file mode 100644 index 000000000000..8c01089a49f4 --- /dev/null +++ b/gcc/testsuite/g++.dg/cpp26/stdarg5.C @@ -0,0 +1,5 @@ +// P3348R4 - C++26 should refer to C23 not C17 +// { dg-do run { target c++26 } } +// { dg-additional-options "-O2" } + +#include "../../gcc.dg/c23-stdarg-9.c" diff --git a/gcc/testsuite/g++.dg/cpp26/stdarg6.C b/gcc/testsuite/g++.dg/cpp26/stdarg6.C new file mode 100644 index 000000000000..b3d1a85ef17a --- /dev/null +++ b/gcc/testsuite/g++.dg/cpp26/stdarg6.C @@ -0,0 +1,112 @@ +// P3348R4 - C++26 should refer to C23 not C17 +// { dg-do compile { target c++26 } } +// { dg-additional-options "-O2" } + +#include + +int i; + +void +f0 (...) +{ + va_list ap; + va_start (ap); + va_end (ap); +} + +void +f1 (...) +{ + va_list ap; + va_start (ap, i); // { dg-warning "optional second parameter of 'va_start' not last named argument" } + va_end (ap); +} + +void +f2 (...) +{ + int j = 0; + va_list ap; + va_start (ap, j); // { dg-warning "optional second parameter of 'va_start' not last named argument" } + va_end (ap); +} + +void +f3 (int k, int l, ...) +{ + va_list ap; + va_start (ap, k); // { dg-warning "optional second parameter of 'va_start' not last named argument" } + va_end (ap); +} + +void +f4 (int k, int l, ...) +{ + va_list ap; + va_start (ap, l); + va_end (ap); +} + +void +f5 (int k, int l, ...) +{ + va_list ap; + va_start (ap, (int) l); // { dg-warning "'va_start' macro used with additional arguments other than identifier of the last named argument" } + va_end (ap); +} + +void +f6 (int k, int l, ...) +{ + va_list ap; + va_start (ap, l + 0); // { dg-warning "'va_start' macro used with additional arguments other than identifier of the last named argument" } + va_end (ap); +} + +void +f7 (int k, int l, ...) +{ + va_list ap; + va_start (ap, ()()(), [][][], {}{}{}, *+-/1({[_*_]})%&&!?!?); // { dg-warning "'va_start' macro used with additional arguments other than identifier of the last named argument" } + va_end (ap); +} + +void +f8 (...) +{ + va_list ap; + va_start (ap,); // { dg-warning "'va_start' macro used with additional arguments other than identifier of the last named argument" } + va_end (ap); +} + +void +f9 (int k, int l, ...) +{ + va_list ap; + va_start (ap, k+l+****2); // { dg-warning "'va_start' macro used with additional arguments other than identifier of the last named argument" } + va_end (ap); +} + +void +f10 (int m, ...) +{ + va_list ap; + va_start (ap, m); + va_end (ap); +} + +void +f11 (int k, int l, ...) +{ + va_list ap; + va_start (ap, ()()()[[[}}}); // { dg-warning "'va_start' macro used with additional arguments other than identifier of the last named argument" } + va_end (ap); +} + +void +f12 (int k, int l, ...) +{ + va_list ap; + va_start (ap, ]]]]]]{{{{{{); // { dg-warning "'va_start' macro used with additional arguments other than identifier of the last named argument" } + va_end (ap); +} diff --git a/gcc/testsuite/g++.dg/cpp26/stdarg7.C b/gcc/testsuite/g++.dg/cpp26/stdarg7.C new file mode 100644 index 000000000000..e60e3cba9b94 --- /dev/null +++ b/gcc/testsuite/g++.dg/cpp26/stdarg7.C @@ -0,0 +1,11 @@ +// P3348R4 - C++26 should refer to C23 not C17 +// { dg-do compile { target c++26 } } +// { dg-additional-options "-O2" } + +#include + +void +f (...) +{ + va_start (); // { dg-error "expected primary-expression before '\\\)' token" } +} diff --git a/gcc/testsuite/g++.dg/cpp26/stdarg8.C b/gcc/testsuite/g++.dg/cpp26/stdarg8.C new file mode 100644 index 000000000000..71006041abac --- /dev/null +++ b/gcc/testsuite/g++.dg/cpp26/stdarg8.C @@ -0,0 +1,26 @@ +// P3348R4 - C++26 should refer to C23 not C17 +// { dg-do run { target c++26 } } + +#include + +int +main () +{ + int v = 0; + auto a = [&] (...) { + va_list ap; + va_start (ap); + int b = 42; + if (v) + b = va_arg (ap, int); + va_end (ap); + return b; + }; + if (a () != 42) + __builtin_abort (); + v = 1; + if (a (1, 2) != 1) + __builtin_abort (); + if (a (13, 2.0f, 2ULL) != 13) + __builtin_abort (); +} diff --git a/gcc/testsuite/g++.dg/cpp26/stdarg9.C b/gcc/testsuite/g++.dg/cpp26/stdarg9.C new file mode 100644 index 000000000000..0f0d7541dc7a --- /dev/null +++ b/gcc/testsuite/g++.dg/cpp26/stdarg9.C @@ -0,0 +1,16 @@ +// P3348R4 - C++26 should refer to C23 not C17 +// { dg-do compile } + +#include + +#if __cplusplus >= 202400L +#ifndef __STDC_VERSION_STDARG_H__ +#error __STDC_VERSION_STDARG_H__ not defined for C++26 +#elif __STDC_VERSION_STDARG_H__ != 202311L +#error Unexpected __STDC_VERSION_STDARG_H__ value +#endif +#else +#ifdef __STDC_VERSION_STDARG_H__ +#error __STDC_VERSION_STDARG_H__ defined for C++ < 26 +#endif +#endif diff --git a/gcc/testsuite/g++.dg/cpp2a/concepts-pr116477.C b/gcc/testsuite/g++.dg/cpp2a/concepts-pr116477.C new file mode 100644 index 000000000000..aca864ca8ae8 --- /dev/null +++ b/gcc/testsuite/g++.dg/cpp2a/concepts-pr116477.C @@ -0,0 +1,9 @@ +// { dg-do compile { target c++20 } } + +template +concept my_concept = true; + +template +void run () { + my_concept (G{}); // { dg-error "cannot call a concept as a function" } +} diff --git a/gcc/testsuite/g++.dg/cpp2a/constexpr-new28.C b/gcc/testsuite/g++.dg/cpp2a/constexpr-new28.C new file mode 100644 index 000000000000..7828f307bc3f --- /dev/null +++ b/gcc/testsuite/g++.dg/cpp2a/constexpr-new28.C @@ -0,0 +1,45 @@ +// PR c++/115645 +// { dg-do compile { target c++20 } } + +using size_t = decltype(sizeof(0)); + +void* operator new(size_t, void* p) { return p; } +void* operator new[](size_t, void* p) { return p; } + +#define VERIFY(C) if (!(C)) throw + +namespace std { + template + constexpr T* construct_at(T* p) + { + if constexpr (__is_array(T)) + return ::new((void*)p) T[1](); + else + return ::new((void*)p) T(); + } +} + +struct S { + constexpr S () : s (0) {} + constexpr S (int x) : s (x) {} + constexpr bool operator== (int x) const { return s == x; } + int s; +}; + +constexpr void +test_array() +{ + S arr[1] { 99 }; + std::construct_at(&arr); + VERIFY( arr[0] == 0 ); + + union U { + long long x = -1; + S arr[4]; + } u; + + auto p = std::construct_at(&u.arr); + VERIFY( (*p)[0] == 0 ); +} + +static_assert( [] { test_array(); return true; }() ); diff --git a/gcc/testsuite/g++.dg/cpp2a/constexpr-new29.C b/gcc/testsuite/g++.dg/cpp2a/constexpr-new29.C new file mode 100644 index 000000000000..368018df0a10 --- /dev/null +++ b/gcc/testsuite/g++.dg/cpp2a/constexpr-new29.C @@ -0,0 +1,30 @@ +// P0784R7 +// { dg-do compile { target c++20 } } +// { dg-additional-options "-fdelete-null-pointer-checks" } + +struct S +{ + constexpr S () : s (0) { s++; } + constexpr S (int x) : s (x) { s += 2; } + constexpr ~S () { if (s != 35) asm (""); s = 5; } + int s; +}; + +constexpr bool +foo (int n) +{ + S *p = new S (7); + if (p->s != 9) return false; + p->s = 35; + delete p; + p = new S[n] { 11, 13, 15 }; + if (p[0].s != 13 || p[1].s != 15 || p[2].s != 17) return false; + p[0].s = 35; + p[2].s = 35; + p[1].s = 35; + delete[] p; + return true; +} + +constexpr bool a = foo (3); +static_assert (a); diff --git a/gcc/testsuite/g++.dg/modules/adl-6_c.C b/gcc/testsuite/g++.dg/modules/adl-6_c.C index 99b6c4c043e8..2c675f5241a8 100644 --- a/gcc/testsuite/g++.dg/modules/adl-6_c.C +++ b/gcc/testsuite/g++.dg/modules/adl-6_c.C @@ -1,5 +1,5 @@ // PR c++/117658 -// { dg-additional-options "-fmodules" } +// { dg-additional-options "-fmodules -Wno-error=external-tu-local" } import N; @@ -22,7 +22,8 @@ void test() { apply_err(x); // error: R::g has internal linkage and cannot be used outside N // { dg-message "here" "" { target *-*-* } .-1 } - // { dg-error "'g'" "" { target *-*-* } 0 } + // { dg-warning "lookup of 'R::g'" "" { target *-*-* } 0 } + // { dg-error "'g' was not declared" "" { target *-*-* } 0 } auto y = make_Y(); f(y); // OK, I::B::f and I::A::Y have matching innermost non-inline namespace diff --git a/gcc/testsuite/g++.dg/modules/internal-14_c.C b/gcc/testsuite/g++.dg/modules/internal-14_c.C index 4f8e785ce872..50fb8e6f1a73 100644 --- a/gcc/testsuite/g++.dg/modules/internal-14_c.C +++ b/gcc/testsuite/g++.dg/modules/internal-14_c.C @@ -4,6 +4,6 @@ import m; int main() { - // { dg-error "instantiation exposes TU-local entity '(fun1|Dodgy)'" "" { target *-*-* } 0 } + // { dg-error "instantiation exposes TU-local entity '\[^']*(fun1|Dodgy)\[^']*'" "" { target *-*-* } 0 } fun2(123); // { dg-message "required from here" } } diff --git a/gcc/testsuite/g++.dg/modules/internal-15_a.C b/gcc/testsuite/g++.dg/modules/internal-15_a.C new file mode 100644 index 000000000000..03fec2a45415 --- /dev/null +++ b/gcc/testsuite/g++.dg/modules/internal-15_a.C @@ -0,0 +1,28 @@ +// { dg-additional-options "-fmodules -fdump-lang-module-graph -Wno-global-module" } +// { dg-module-cmi A } + +export module A; + +namespace N { + struct A {}; + void adl(A); + inline namespace inner { + static void adl(int); + } +} +namespace G { + struct B {}; + void adl(B); + namespace { + extern "C++" void adl(int); + } +} +void adl(double); + +template +inline void h(T t) { + adl(t); +} + +// { dg-final { scan-lang-dump {Binding on tu-local function_decl:'::N::inner::adl' found} module } } +// { dg-final { scan-lang-dump-not {'G::_GLOBAL__N_1::adl'} module } } diff --git a/gcc/testsuite/g++.dg/modules/internal-15_b.C b/gcc/testsuite/g++.dg/modules/internal-15_b.C new file mode 100644 index 000000000000..003d948b014c --- /dev/null +++ b/gcc/testsuite/g++.dg/modules/internal-15_b.C @@ -0,0 +1,13 @@ +// { dg-additional-options "-fmodules -pedantic-errors" } + +module A; + +void other() { + adl(N::A{}); // OK, lookup occurs from here + h(0); // OK, doesn't consider N::inner::adl + + h(N::A{}); // { dg-message "required from here" } + // { dg-error "TU-local" "" { target *-*-* } 0 } + + h(G::B{}); // OK, G::adl is not attached to A +} diff --git a/gcc/testsuite/g++.dg/modules/namespace-1_c.C b/gcc/testsuite/g++.dg/modules/namespace-1_c.C index 748ef5d79a4b..e4f81b6bea66 100644 --- a/gcc/testsuite/g++.dg/modules/namespace-1_c.C +++ b/gcc/testsuite/g++.dg/modules/namespace-1_c.C @@ -1,13 +1,7 @@ // { dg-additional-options "-fmodules-ts" } -// The indirect import of frob, with namespaces impl and ompl doesn't -// affect us. -static int impl; -import Frink; -static int ompl; +static int impl; // IF but no diagnostic required: impl@Frob not reachable from here + +import Frink; -void corge (int x) -{ - impl = x; - ompl = frab (x); -} +static int ompl; // { dg-error "different kind" } diff --git a/gcc/testsuite/g++.dg/modules/namespace-2_b.C b/gcc/testsuite/g++.dg/modules/namespace-2_b.C index 6ab5113c23ab..d71c630c75e6 100644 --- a/gcc/testsuite/g++.dg/modules/namespace-2_b.C +++ b/gcc/testsuite/g++.dg/modules/namespace-2_b.C @@ -2,16 +2,5 @@ import foo; -static int also_not_exported; // ok - -void X () -{ - implicit_export::bob (); -} - +static int also_not_exported; // { dg-error "different kind" } static int implicit_export; // { dg-error "different kind" } - -void Y () -{ - also_not_exported = 1; -} diff --git a/gcc/testsuite/g++.dg/modules/namespace-3_a.C b/gcc/testsuite/g++.dg/modules/namespace-3_a.C deleted file mode 100644 index 8e9508d7ff8c..000000000000 --- a/gcc/testsuite/g++.dg/modules/namespace-3_a.C +++ /dev/null @@ -1,21 +0,0 @@ -// Check namespace needed only by internal reference is not made visible -// { dg-additional-options "-fmodules-ts" } - -export module frob; -// { dg-module-cmi frob } - -namespace silent -{ - namespace inner - { - static int X () - { - return 1; - } - } -} - -export int f (int y) -{ - return y + silent::inner::X (); -} diff --git a/gcc/testsuite/g++.dg/modules/namespace-3_b.C b/gcc/testsuite/g++.dg/modules/namespace-3_b.C deleted file mode 100644 index f779ffe8c8f8..000000000000 --- a/gcc/testsuite/g++.dg/modules/namespace-3_b.C +++ /dev/null @@ -1,12 +0,0 @@ -// { dg-additional-options "-fmodules-ts" } - -import frob; - -int x = silent; // { dg-error "not declared" } - -static int silent; - -int user () -{ - return f (silent); -} diff --git a/gcc/testsuite/g++.dg/modules/pr122053_a.C b/gcc/testsuite/g++.dg/modules/pr122053_a.C new file mode 100644 index 000000000000..2a8748c6be01 --- /dev/null +++ b/gcc/testsuite/g++.dg/modules/pr122053_a.C @@ -0,0 +1,10 @@ +// PR c++/122053 +// { dg-additional-options "-fmodules -Wno-global-module" } +// { dg-module-cmi M } + +module; +struct mytime { + long a, b; +}; +export module M; +export mytime foo(); diff --git a/gcc/testsuite/g++.dg/modules/pr122053_b.C b/gcc/testsuite/g++.dg/modules/pr122053_b.C new file mode 100644 index 000000000000..a7084b74040a --- /dev/null +++ b/gcc/testsuite/g++.dg/modules/pr122053_b.C @@ -0,0 +1,9 @@ +// PR c++/122053 +// { dg-additional-options "-fmodules" } +// Test we don't ICE when redefining a type coming from an import. + +import M; +struct mytime { // { dg-bogus "conflicting" "PR99000" { xfail *-*-* } } + long a, b; +}; +mytime m = foo(); // { dg-bogus "" "PR99000" { xfail *-*-* } } diff --git a/gcc/testsuite/g++.dg/opt/pr122083-1.C b/gcc/testsuite/g++.dg/opt/pr122083-1.C new file mode 100644 index 000000000000..870089c8c12f --- /dev/null +++ b/gcc/testsuite/g++.dg/opt/pr122083-1.C @@ -0,0 +1,50 @@ +// { dg-do compile { target c++20 } } +// { dg-options "-O2 -Wall" } + +// Make sure we don't get a -Wnonnull warning here. + +#include + + template + constexpr auto + min_cmp(Tp x, Tp y) + { + struct Res { + Tp M_min; + decltype(x <=> y) M_cmp; + }; + auto c = x <=> y; + if (c > 0) + return Res{y, c}; + return Res{x, c}; + } + + + template + auto + lexicographical_compare_three_way(InputIter1 first1, + InputIter1 last1, + InputIter2 first2, + InputIter2 last2) + -> decltype(*first1 <=> *first2) + { + const auto [len, lencmp] = + min_cmp(last1 - first1, last2 - first2); + if (len) + { + const auto blen = len * sizeof(*first1); + const auto c + = __builtin_memcmp(&*first1, &*first2, blen) <=> 0; + if (c != 0) + return c; + } + return lencmp; + } + +auto +test03() +{ + unsigned char a[2] = { 1, 2 }; + unsigned char* p = nullptr; + return lexicographical_compare_three_way(p, p, a, a+2); +} diff --git a/gcc/testsuite/g++.dg/opt/pr60849.C b/gcc/testsuite/g++.dg/opt/pr60849.C index 52d8826b0c88..efce543511ff 100644 --- a/gcc/testsuite/g++.dg/opt/pr60849.C +++ b/gcc/testsuite/g++.dg/opt/pr60849.C @@ -7,7 +7,7 @@ extern "C" int isnan (); void foo(float a) { int (*xx)(...); - xx = isnan; + xx = (int (*)(...)) isnan; if (xx(a)) g++; } diff --git a/gcc/testsuite/g++.dg/opt/store-merging-1.C b/gcc/testsuite/g++.dg/opt/store-merging-1.C index c7f294ec386c..8c4625283785 100644 --- a/gcc/testsuite/g++.dg/opt/store-merging-1.C +++ b/gcc/testsuite/g++.dg/opt/store-merging-1.C @@ -1,7 +1,7 @@ // PR target/92038 // { dg-do compile { target int32 } } // { dg-require-effective-target store_merge } -// { dg-options "-O2 -flifetime-dse=2 -fdump-tree-store-merging-details" } +// { dg-options "-O2 -flifetime-dse=2 -fdump-tree-store-merging-details -ftrivial-auto-var-init=uninitialized" } // { dg-final { scan-tree-dump "New sequence of \[12] stores to replace old one of 2 stores" "store-merging" } } struct S { S () : a (0), b (0) {} int a; char b; char c[3]; }; diff --git a/gcc/testsuite/g++.dg/parse/auto-struct-param.C b/gcc/testsuite/g++.dg/parse/auto-struct-param.C new file mode 100644 index 000000000000..78573c685036 --- /dev/null +++ b/gcc/testsuite/g++.dg/parse/auto-struct-param.C @@ -0,0 +1,4 @@ +// PR c++/122112 +// { dg-do compile { target c++20 } } + +void func(struct { auto x; }); // { dg-error "" } diff --git a/gcc/testsuite/g++.dg/uninit-pred-loop-1_b.C b/gcc/testsuite/g++.dg/uninit-pred-loop-1_b.C index b17b93601920..55b15b75cba5 100644 --- a/gcc/testsuite/g++.dg/uninit-pred-loop-1_b.C +++ b/gcc/testsuite/g++.dg/uninit-pred-loop-1_b.C @@ -13,7 +13,7 @@ int foo(int n) _err; }); - if (err == 0) return 17; + if (err == 0) return 17; /* { dg-warning "'_err' may be used uninitialized" "" { target c++26 } } */ } return 18; diff --git a/gcc/testsuite/g++.dg/vect/pr64410.cc b/gcc/testsuite/g++.dg/vect/pr64410.cc index 407b893da4b8..dd0256c2fe06 100644 --- a/gcc/testsuite/g++.dg/vect/pr64410.cc +++ b/gcc/testsuite/g++.dg/vect/pr64410.cc @@ -51,4 +51,4 @@ main(int argc, char** argv) return 0; } -// { dg-final { scan-tree-dump "vectorized 1 loops in function" "vect" } } +// { dg-final { scan-tree-dump "pr64410.cc:46:29: optimized: loop vectorized" "vect" } } diff --git a/gcc/testsuite/g++.dg/warn/Warray-bounds-20.C b/gcc/testsuite/g++.dg/warn/Warray-bounds-20.C index 36f8046fed7b..a57499dd07ae 100644 --- a/gcc/testsuite/g++.dg/warn/Warray-bounds-20.C +++ b/gcc/testsuite/g++.dg/warn/Warray-bounds-20.C @@ -26,7 +26,7 @@ struct D1: virtual B, virtual C /* The warning would ideally point to the assignment but instead points to the opening brace. */ D1 () - { // { dg-warning "\\\[-Warray-bounds" "brace" } + { ci = 0; // { dg-warning "\\\[-Warray-bounds" "assign" { xfail lp64 } } } }; @@ -35,11 +35,11 @@ void sink (void*); void warn_derived_ctor_access_new_decl () { - char a[sizeof (D1)]; // { dg-message "at offset 1 into object 'a' of size 40" "LP64 note" { target lp64} } - // { dg-message "at offset 1 into object 'a' of size 20" "LP64 note" { target ilp32} .-1 } + char a[sizeof (D1)]; // { dg-message "at offset 1 into object 'a' of size 40" "LP64 note" { target lp64 } } + // { dg-message "at offset 1 into object 'a' of size 20" "LP32 note" { target ilp32 } .-1 } char *p = a; ++p; - D1 *q = new (p) D1; // { dg-warning "-Warray-bounds" } + D1 *q = new (p) D1; // { dg-warning "\\\[-Warray-bounds" } sink (q); } @@ -47,24 +47,24 @@ void warn_derived_ctor_access_new_alloc () { char *p = (char*)operator new (sizeof (D1)); // { dg-message "at offset 1 into object of size \\d+ allocated by '\[^\n\r]*operator new\[^\n\r]*'" "note" } ++p; - D1 *q = new (p) D1; // { dg-warning "-Warray-bounds" } + D1 *q = new (p) D1; // { dg-warning "\\\[-Warray-bounds" } sink (q); } void warn_derived_ctor_access_new_array_decl () { - char b[sizeof (D1) * 2]; // { dg-message "at offset \\d+ into object 'b' of size 80" "LP64 note" { target { lp64 } xfail { lp64 } } } - // { dg-message "at offset \\d+ into object 'b' of size 40" "LP64 note" { target { ilp32 } xfail { ilp32 } } .-1 } + char b[sizeof (D1) * 2]; // { dg-message "at offset \\d+ into object 'b' of size 80" "LP64 note" { target { lp64 } } } + // { dg-message "at offset \\d+ into object 'b' of size 40" "LP64 note" { target { ilp32 } } .-1 } char *p = b; ++p; - D1 *q = new (p) D1[2]; + D1 *q = new (p) D1[2]; // { dg-message "partly outside array bounds" } sink (q); } void warn_derived_ctor_access_new_array_alloc () { - char *p = new char[sizeof (D1) * 2]; // { dg-message "at offset \\d+ into object of size \\d+ allocated by '\[^\n\r]*operator new\[^\n\r]*" "note" { xfail *-*-* } } + char *p = new char[sizeof (D1) * 2]; // { dg-message "at offset \\d+ into object of size \\d+ allocated by '\[^\n\r]*operator new\[^\n\r]*" "note" } ++p; - D1 *q = new (p) D1[2]; + D1 *q = new (p) D1[2]; // { dg-message "partly outside array bounds" } sink (q); } diff --git a/gcc/testsuite/g++.dg/warn/Warray-bounds-23.C b/gcc/testsuite/g++.dg/warn/Warray-bounds-23.C index c43a7dea3efc..7f6a6395ac74 100644 --- a/gcc/testsuite/g++.dg/warn/Warray-bounds-23.C +++ b/gcc/testsuite/g++.dg/warn/Warray-bounds-23.C @@ -34,7 +34,7 @@ void test_D1_b0i () { { D1 *p = (D1*)new char[sizeof (D1)]; - p->b0i = __LINE__; + p->b0i = __LINE__; // { dg-warning -Wuninitialized } sink (p); } @@ -110,7 +110,7 @@ void test_D2_b0i () { { D2 *p = (D2*)new char[sizeof (D2)]; - p->b0i = __LINE__; + p->b0i = __LINE__; // { dg-warning -Wuninitialized } sink (p); } @@ -201,7 +201,7 @@ void test_D3_b0i () { { D3 *p = (D3*)new char[sizeof (D3)]; - p->b0i = __LINE__; + p->b0i = __LINE__; // { dg-warning -Wuninitialized } sink (p); } diff --git a/gcc/testsuite/g++.dg/warn/Warray-bounds-24.C b/gcc/testsuite/g++.dg/warn/Warray-bounds-24.C index 071453a485d7..068195ab1b06 100644 --- a/gcc/testsuite/g++.dg/warn/Warray-bounds-24.C +++ b/gcc/testsuite/g++.dg/warn/Warray-bounds-24.C @@ -34,7 +34,7 @@ void test_D1_b0a () { { D1 *p = (D1*)new char[sizeof (D1)]; - *p->b0a = __LINE__; // { dg-warning "-Warray-bounds" "pr99630" { xfail *-*-* } } + *p->b0a = __LINE__; // { dg-warning "-Wuninitialized" } sink (p); } @@ -110,7 +110,7 @@ void test_D2_b0a () { { D2 *p = (D2*)new char[sizeof (D2)]; - *p->b0a = __LINE__; // { dg-warning "-Warray-bounds" "pr99630" { xfail *-*-* } } + *p->b0a = __LINE__; // { dg-warning "-Wuninitialized" } sink (p); } @@ -201,7 +201,7 @@ void test_D3_b0a () { { D3 *p = (D3*)new char[sizeof (D3)]; - *p->b0a = __LINE__; // { dg-warning "-Warray-bounds" "pr99630" { xfail *-*-* } } + *p->b0a = __LINE__; // { dg-warning "-Wuninitialized" } sink (p); } diff --git a/gcc/testsuite/g++.dg/warn/Wuninitialized-13.C b/gcc/testsuite/g++.dg/warn/Wuninitialized-13.C index b74a2fa98ecb..47a75454cff5 100644 --- a/gcc/testsuite/g++.dg/warn/Wuninitialized-13.C +++ b/gcc/testsuite/g++.dg/warn/Wuninitialized-13.C @@ -8,12 +8,12 @@ struct shared_count { shared_count () { } shared_count (shared_count &r) - : pi (r.pi) { } // { dg-warning "\\\[-Wuninitialized" } + : pi (r.pi) { } int pi; }; // There's another (redundant) -Wuninitialized on the line below. -struct shared_ptr { +struct shared_ptr { // { dg-warning "\\\[-Wuninitialized" } int ptr; shared_count refcount; }; diff --git a/gcc/testsuite/g++.target/aarch64/fmv-selection1.C b/gcc/testsuite/g++.target/aarch64/fmv-selection1.C new file mode 100644 index 000000000000..4ee54466c133 --- /dev/null +++ b/gcc/testsuite/g++.target/aarch64/fmv-selection1.C @@ -0,0 +1,40 @@ +/* { dg-do compile } */ +/* { dg-require-ifunc "" } */ +/* { dg-options "-O2 -march=armv8-a" } */ + +__attribute__((target_version("default"))) +__attribute__((optimize("O0"))) +int foo () +{ + return 1; +} + +__attribute__((target_version("rng"))) +__attribute__((optimize("O0"))) +int foo () +{ + return 2; +} + +__attribute__((target_version("flagm"))) +__attribute__((optimize("O0"))) +int foo () +{ + return 3; +} + +__attribute__((target_version("rng+flagm"))) +__attribute__((optimize("O0"))) +int foo () +{ + return 4; +} + +int bar() +{ + return foo (); +} + +/* Cannot optimize */ +/* { dg-final { scan-assembler-times "\n\tb\t_Z3foov\n" 1 } } */ + diff --git a/gcc/testsuite/g++.target/aarch64/fmv-selection2.C b/gcc/testsuite/g++.target/aarch64/fmv-selection2.C new file mode 100644 index 000000000000..f580dac4458a --- /dev/null +++ b/gcc/testsuite/g++.target/aarch64/fmv-selection2.C @@ -0,0 +1,40 @@ +/* { dg-do compile } */ +/* { dg-require-ifunc "" } */ +/* { dg-options "-O2 -march=armv8-a+rng+flagm" } */ + +__attribute__((target_version("default"))) +__attribute__((optimize("O0"))) +int foo () +{ + return 1; +} + +__attribute__((target_version("rng"))) +__attribute__((optimize("O0"))) +int foo () +{ + return 2; +} + +__attribute__((target_version("flagm"))) +__attribute__((optimize("O0"))) +int foo () +{ + return 3; +} + +__attribute__((target_version("rng+flagm"))) +__attribute__((optimize("O0"))) +int foo () +{ + return 4; +} + +int bar() +{ + return foo (); +} + +/* Can optimize to highest priority function */ +/* { dg-final { scan-assembler-times "\n\tb\t_Z3foov\._MrngMflagm\n" 1 } } */ + diff --git a/gcc/testsuite/g++.target/aarch64/fmv-selection3.C b/gcc/testsuite/g++.target/aarch64/fmv-selection3.C new file mode 100644 index 000000000000..6b52fd4f644c --- /dev/null +++ b/gcc/testsuite/g++.target/aarch64/fmv-selection3.C @@ -0,0 +1,25 @@ +/* { dg-do compile } */ +/* { dg-require-ifunc "" } */ +/* { dg-options "-O2 -march=armv8-a" } */ + +__attribute__((target_version("default"))) +__attribute__((optimize("O0"))) +int foo () +{ return 1; } + +__attribute__((target_version("rng"))) +int foo (); +__attribute__((target_version("flagm"))) +int foo (); +__attribute__((target_version("rng+flagm"))) +int foo (); + +__attribute__((target_version("rng+flagm"))) +int bar() +{ + return foo (); +} + +/* Cannot optimize */ +/* { dg-final { scan-assembler-times "\n\tb\t_Z3foov\._MrngMflagm\n" 1 } } */ + diff --git a/gcc/testsuite/g++.target/aarch64/fmv-selection4.C b/gcc/testsuite/g++.target/aarch64/fmv-selection4.C new file mode 100644 index 000000000000..155145dcd885 --- /dev/null +++ b/gcc/testsuite/g++.target/aarch64/fmv-selection4.C @@ -0,0 +1,30 @@ +/* { dg-do compile } */ +/* { dg-require-ifunc "" } */ +/* { dg-options "-O2 -march=armv8-a" } */ + +__attribute__((target_version("default"))) +__attribute__((optimize("O0"))) +int foo () +{ return 1; } + +__attribute__((target_version("rng"))) +int foo (); +__attribute__((target_version("flagm"))) +int foo (); +__attribute__((target_version("rng+flagm"))) +int foo (); + +__attribute__((target_version("default"))) +int bar() +{ + return foo (); +} + +__attribute__((target_version("rng"))) +int bar(); + +__attribute__((target_version("flagm"))) +int bar(); + +/* { dg-final { scan-assembler-times "\n\tb\t_Z3foov\.default\n" 1 } } */ + diff --git a/gcc/testsuite/g++.target/aarch64/fmv-selection5.C b/gcc/testsuite/g++.target/aarch64/fmv-selection5.C new file mode 100644 index 000000000000..4d6d38e3754a --- /dev/null +++ b/gcc/testsuite/g++.target/aarch64/fmv-selection5.C @@ -0,0 +1,28 @@ +/* { dg-do compile } */ +/* { dg-require-ifunc "" } */ +/* { dg-options "-O2 -march=armv8-a" } */ + +__attribute__((target_version("default"))) +__attribute__((optimize("O0"))) +int foo () +{ return 1; } + +__attribute__((target_version("rng"))) +int foo (); +__attribute__((target_version("flagm"))) +int foo (); +__attribute__((target_version("rng+flagm"))) +int foo (); + +__attribute__((target_version("default"))) +int bar() +{ + return foo (); +} + +__attribute__((target_version("flagm"))) +int bar(); + +/* { dg-final { scan-assembler-times "\n\tb\t_Z3foov\.default\n" 0 } } */ +/* { dg-final { scan-assembler-times "\n\tb\t_Z3foov\n" 1 } } */ + diff --git a/gcc/testsuite/g++.target/aarch64/fmv-selection6.C b/gcc/testsuite/g++.target/aarch64/fmv-selection6.C new file mode 100644 index 000000000000..db384e16c099 --- /dev/null +++ b/gcc/testsuite/g++.target/aarch64/fmv-selection6.C @@ -0,0 +1,27 @@ +/* { dg-do compile } */ +/* { dg-require-ifunc "" } */ +/* { dg-options "-O2 -march=armv8-a+rng" } */ + +__attribute__((target_version("default"))) +__attribute__((optimize("O0"))) +int foo () +{ return 1; } + +__attribute__((target_version("rng"))) +int foo (); +__attribute__((target_version("flagm"))) +int foo (); +__attribute__((target_version("rng+flagm"))) +int foo (); + +__attribute__((target_version("default"))) +int bar() +{ + return foo (); +} + +__attribute__((target_version("flagm"))) +int bar(); + +/* { dg-final { scan-assembler-times "\n\tb\t_Z3foov\._Mrng\n" 1 } } */ + diff --git a/gcc/testsuite/g++.target/aarch64/fmv-selection7.C b/gcc/testsuite/g++.target/aarch64/fmv-selection7.C new file mode 100644 index 000000000000..41e7462ebb10 --- /dev/null +++ b/gcc/testsuite/g++.target/aarch64/fmv-selection7.C @@ -0,0 +1,65 @@ +/* { dg-do compile } */ +/* { dg-require-ifunc "" } */ +/* { dg-options "-O2 -march=armv8-a" } */ + +[[gnu::optimize("O0")]] +[[gnu::target_version ("default")]] +int bar () { + return 1; +} + +[[gnu::optimize("O0")]] +[[gnu::target ("+sve2")]] +[[gnu::target_version ("sve")]] +int bar (); + +[[gnu::target ("+sve")]] +int foo () { + return bar(); +} + +/* { dg-final { scan-assembler-times "\n\tb\t_Z3barv\._Msve\n" 1 } } */ + +[[gnu::target_version ("default")]] +int bar2 () { + return 1; +} + +[[gnu::target_version ("sve2")]] +int bar2 (); + +[[gnu::target_version ("default")]] +int foo2 (); + +[[gnu::target_version ("sve")]] +[[gnu::target ("+sve2")]] +int foo2 () { + return bar2(); +} + +/* { dg-final { scan-assembler-times "\n\tb\t_Z4bar2v\._Msve2\n" 1 } } */ + +[[gnu::target_version ("default")]] +int bar3 () { + return 1; +} + +[[gnu::target_version ("sve")]] +int bar3 (); + +[[gnu::target ("+rng")]] +[[gnu::target_version ("sve2")]] +int bar3 (); + +[[gnu::target_version ("default")]] +int foo3 (); + +[[gnu::target_version ("sve")]] +int foo3 () { + return bar3 (); +} + +[[gnu::target_version ("sve2+rng")]] +int foo3 (); + +/* { dg-final { scan-assembler-times "\n\tb\t_Z4bar3v\n" 1 } } */ diff --git a/gcc/testsuite/gcc.c-torture/compile/pr122066.c b/gcc/testsuite/gcc.c-torture/compile/pr122066.c new file mode 100644 index 000000000000..5fecb7f02b8a --- /dev/null +++ b/gcc/testsuite/gcc.c-torture/compile/pr122066.c @@ -0,0 +1,18 @@ +/* PR target/122066 -- adddi3/subdi3 mishandle POST_INC/PRE_DEC dest on m68k */ + +struct { + long long wp_ssd[3]; + long long wp_sum[3]; +} m_lowres; +void calcAdaptiveQuantFrame() { + for (int i = 0; i < 3; i++) { + long sum = m_lowres.wp_sum[i]; + long long ssd = m_lowres.wp_ssd[i]; + m_lowres.wp_ssd[i] = ssd - sum; + } + for (int i = 0; i < 3; i++) { + long sum = m_lowres.wp_sum[i]; + long long ssd = m_lowres.wp_ssd[i]; + m_lowres.wp_ssd[i] = ssd + sum; + } +} diff --git a/gcc/testsuite/gcc.dg/attr-btf-decl-tag-1.c b/gcc/testsuite/gcc.dg/attr-btf-decl-tag-1.c new file mode 100644 index 000000000000..d26d992c44d3 --- /dev/null +++ b/gcc/testsuite/gcc.dg/attr-btf-decl-tag-1.c @@ -0,0 +1,14 @@ +/* Test btf_decl_tag attribute argument checking. */ +/* { dg-do compile } */ + +void *vptr __attribute__((btf_decl_tag("vptr"), btf_decl_tag ("perthread"))); + +struct Foo +{ + int x __attribute__((btf_decl_tag (0x55))); /* { dg-error "requires a string" } */ + char *c __attribute__((btf_decl_tag (L"Lstr"))); /* { dg-error "unsupported wide string" } */ +}; + +extern int foo (int x, int y __attribute__((btf_decl_tag))); /* { dg-error "wrong number of arguments" } */ + +char *str __attribute__((btf_decl_tag("A", "B"))); /* { dg-error "wrong number of arguments" } */ diff --git a/gcc/testsuite/gcc.dg/attr-btf-decl-tag-2.c b/gcc/testsuite/gcc.dg/attr-btf-decl-tag-2.c new file mode 100644 index 000000000000..956e20eb2ef9 --- /dev/null +++ b/gcc/testsuite/gcc.dg/attr-btf-decl-tag-2.c @@ -0,0 +1,15 @@ +/* Test btf_decl_tag attribute argument checking for wide string types. */ +/* { dg-do compile } */ +/* { dg-options "--std=c11" } */ + +int **my_ptr __attribute__((btf_decl_tag("my_ptr"))); + +void *x __attribute__((btf_decl_tag (U"Ustr"))); /* { dg-error "unsupported wide string" } */ + +const int y __attribute__((btf_decl_tag (u"ustr"))); /* { dg-error "unsupported wide string" } */ + +union U +{ + int x; + char c __attribute__((btf_decl_tag (u8"u8str"))); /* OK. */ +}; diff --git a/gcc/testsuite/gcc.dg/attr-btf-type-tag-1.c b/gcc/testsuite/gcc.dg/attr-btf-type-tag-1.c new file mode 100644 index 000000000000..2ed54ae5be38 --- /dev/null +++ b/gcc/testsuite/gcc.dg/attr-btf-type-tag-1.c @@ -0,0 +1,12 @@ +/* Test btf_type_tag attribute argument checking. */ +/* { dg-do compile } */ + +void * __attribute__((btf_type_tag ("A"), btf_type_tag ("vptr"))) a; + +int __attribute__((btf_type_tag (5))) b; /* { dg-error "requires a string" } */ + +char * __attribute__((btf_type_tag (L"Lstr"))) c; /* { dg-error "unsupported wide string" } */ + +int * __attribute__((btf_type_tag)) d; /* { dg-error "wrong number of arguments" } */ + +char * __attribute__((btf_type_tag ("A", "B"))) e; /* { dg-error "wrong number of arguments" } */ diff --git a/gcc/testsuite/gcc.dg/attr-btf-type-tag-2.c b/gcc/testsuite/gcc.dg/attr-btf-type-tag-2.c new file mode 100644 index 000000000000..edc22b11ef86 --- /dev/null +++ b/gcc/testsuite/gcc.dg/attr-btf-type-tag-2.c @@ -0,0 +1,9 @@ +/* Test btf_type_tag attribute argument checking for wide string types. */ +/* { dg-do compile } */ +/* { dg-options "--std=c11" } */ + +int __attribute__((btf_type_tag (U"Ustr"))) x; /* { dg-error "unsupported wide string" } */ + +int __attribute__((btf_type_tag (u"ustr"))) y; /* { dg-error "unsupported wide string" } */ + +int __attribute__((btf_type_tag (u8"u8str"))) z; /* OK. */ diff --git a/gcc/testsuite/gcc.dg/attr-btf-type-tag-3.c b/gcc/testsuite/gcc.dg/attr-btf-type-tag-3.c new file mode 100644 index 000000000000..afb14b12a22f --- /dev/null +++ b/gcc/testsuite/gcc.dg/attr-btf-type-tag-3.c @@ -0,0 +1,8 @@ +/* Test btf_type_tag attribute warnings. */ +/* { dg-do compile } */ + +int __attribute__((btf_type_tag ("A"))) a (int x); /* { dg-warning "does not apply to functions" } */ + +__attribute__((btf_type_tag ("B"))) int *b (int y); /* { dg-warning "does not apply to functions" } */ + +int *c (int z) __attribute__((btf_type_tag ("C"))); /* { dg-warning "does not apply to functions" } */ diff --git a/gcc/testsuite/gcc.dg/builtin-unreachable-5.c b/gcc/testsuite/gcc.dg/builtin-unreachable-5.c index ba87bdd735e2..91e6dcc3db13 100644 --- a/gcc/testsuite/gcc.dg/builtin-unreachable-5.c +++ b/gcc/testsuite/gcc.dg/builtin-unreachable-5.c @@ -1,5 +1,5 @@ /* { dg-do compile } */ -/* { dg-options "-O2 -fdump-tree-fab1" } */ +/* { dg-options "-O2 -fdump-tree-optimized" } */ int foo (int a) @@ -16,7 +16,7 @@ foo (int a) return a > 0; } -/* { dg-final { scan-tree-dump-times "if \\(" 0 "fab1" } } */ -/* { dg-final { scan-tree-dump-times "goto" 0 "fab1" } } */ -/* { dg-final { scan-tree-dump-times "L1:" 0 "fab1" } } */ -/* { dg-final { scan-tree-dump-times "__builtin_unreachable" 0 "fab1" } } */ +/* { dg-final { scan-tree-dump-times "if \\(" 0 "optimized" } } */ +/* { dg-final { scan-tree-dump-times "goto" 0 "optimized" } } */ +/* { dg-final { scan-tree-dump-times "L1:" 0 "optimized" } } */ +/* { dg-final { scan-tree-dump-times "__builtin_unreachable" 0 "optimized" } } */ diff --git a/gcc/testsuite/gcc.dg/builtin-unreachable-6.c b/gcc/testsuite/gcc.dg/builtin-unreachable-6.c index 4c3b9bbaefd0..c896ad4e39ce 100644 --- a/gcc/testsuite/gcc.dg/builtin-unreachable-6.c +++ b/gcc/testsuite/gcc.dg/builtin-unreachable-6.c @@ -1,5 +1,5 @@ /* { dg-do compile } */ -/* { dg-options "-O2 -fdump-tree-fab1 -fno-tree-dominator-opts -fno-tree-vrp" } */ +/* { dg-options "-O2 -fdump-tree-optimized -fno-tree-dominator-opts -fno-tree-vrp" } */ /* { dg-require-effective-target label_values } */ void @@ -17,5 +17,5 @@ foo (int b, int c) goto *x; } -/* { dg-final { scan-tree-dump-times "lab:" 1 "fab1" } } */ -/* { dg-final { scan-tree-dump-times "__builtin_unreachable" 1 "fab1" } } */ +/* { dg-final { scan-tree-dump-times "lab:" 1 "optimized" } } */ +/* { dg-final { scan-tree-dump-times "__builtin_unreachable" 1 "optimized" } } */ diff --git a/gcc/testsuite/gcc.dg/builtin-unreachable-6a.c b/gcc/testsuite/gcc.dg/builtin-unreachable-6a.c index f527f2edc3b2..53062352d420 100644 --- a/gcc/testsuite/gcc.dg/builtin-unreachable-6a.c +++ b/gcc/testsuite/gcc.dg/builtin-unreachable-6a.c @@ -1,7 +1,7 @@ /* { dg-do compile } */ -/* { dg-options "-O2 -fdump-tree-fab1" } */ +/* { dg-options "-O2 -fdump-tree-optimized" } */ #include "builtin-unreachable-6.c" -/* { dg-final { scan-tree-dump-times "lab:" 1 "fab1" } } */ -/* { dg-final { scan-tree-dump-not "__builtin_unreachable" "fab1" } } */ +/* { dg-final { scan-tree-dump-times "lab:" 1 "optimized" } } */ +/* { dg-final { scan-tree-dump-not "__builtin_unreachable" "optimized" } } */ diff --git a/gcc/testsuite/gcc.dg/builtin-unreachable-7.c b/gcc/testsuite/gcc.dg/builtin-unreachable-7.c index a6c078fef285..0ff60b6550be 100644 --- a/gcc/testsuite/gcc.dg/builtin-unreachable-7.c +++ b/gcc/testsuite/gcc.dg/builtin-unreachable-7.c @@ -1,5 +1,5 @@ /* { dg-do compile } */ -/* { dg-options "-O2 -fdump-tree-fab1 -fno-tree-dominator-opts -fno-tree-vrp" } */ +/* { dg-options "-O2 -fdump-tree-optimized -fno-tree-dominator-opts -fno-tree-vrp" } */ /* { dg-require-effective-target label_values } */ void foo (int b, int c) @@ -18,7 +18,7 @@ void foo (int b, int c) /* Fab should still able to remove the conditional but leave the bb there. */ -/* { dg-final { scan-tree-dump-times "lab:" 1 "fab1" } } */ -/* { dg-final { scan-tree-dump-times "__builtin_unreachable" 1 "fab1" } } */ -/* { dg-final { scan-tree-dump-not "if " "fab1" } } */ +/* { dg-final { scan-tree-dump-times "lab:" 1 "optimized" } } */ +/* { dg-final { scan-tree-dump-times "__builtin_unreachable" 1 "optimized" } } */ +/* { dg-final { scan-tree-dump-not "if " "optimized" } } */ diff --git a/gcc/testsuite/gcc.dg/c11-generic-2.c b/gcc/testsuite/gcc.dg/c11-generic-2.c index 90be650af280..a74838025386 100644 --- a/gcc/testsuite/gcc.dg/c11-generic-2.c +++ b/gcc/testsuite/gcc.dg/c11-generic-2.c @@ -11,7 +11,7 @@ f (int n) _Generic (n, default: 1, default: 2); /* { dg-error "duplicate .*default.* case" } */ /* Variably-modified type not ok. */ - _Generic (n, int[n]: 0, default: 1); /* { dg-error "variable length type" } */ + _Generic (n, int[n]: 0, default: 1); /* { dg-error "variably-modified" } */ /* Type must be complete. */ _Generic (n, struct incomplete: 0, default: 1); /* { dg-error "incomplete type" } */ _Generic (n, void: 0, default: 1); /* { dg-error "incomplete type" } */ diff --git a/gcc/testsuite/gcc.dg/c11-generic-4.c b/gcc/testsuite/gcc.dg/c11-generic-4.c new file mode 100644 index 000000000000..41309dff6318 --- /dev/null +++ b/gcc/testsuite/gcc.dg/c11-generic-4.c @@ -0,0 +1,38 @@ +/* Test references to never-defined static functions in _Generic: allowed in + certain places for C23 but not before. */ +/* { dg-do compile } */ +/* { dg-options "-std=c11 -pedantic-errors" } */ + +static int ok1_c23 (); /* { dg-error "used but never defined" } */ +static int ok2_c23 (); /* { dg-error "used but never defined" } */ +static int ok3_c23 (); /* { dg-error "used but never defined" } */ +static int ok4_c23 (); /* { dg-error "used but never defined" } */ +static int ok5_c23 (); /* { dg-error "used but never defined" } */ +static int ok6 (); +static int ok7 (); +static int ok8 (); +static int ok9 (); +static int ok10 (); +static int ok11 (); +static int ok12 (); +static int not_ok1 (); /* { dg-error "used but never defined" } */ +static int not_ok2 (); /* { dg-error "used but never defined" } */ + +void +f () +{ + _Generic (ok1_c23 (), int: 2); + _Generic (1, int: 2, default: ok2_c23 ()); + _Generic (1, default: ok3_c23 (), int: 3); + _Generic (1, int: 2, float: ok4_c23 ()); + _Generic (1, float: ok5_c23 (), int: 3); + sizeof (_Generic (ok8 (), int: 2)); + sizeof (_Generic (1, int: 2, default: ok9 ())); + sizeof (_Generic (1, default: ok10 (), int: 3)); + sizeof (_Generic (1, int: 2, float: ok11 ())); + sizeof (_Generic (1, float: ok12 (), int: 3)); + _Generic (1.0, int: 2, default: not_ok1 ()); + _Generic (1.0, default: not_ok2 (), int: 3); + sizeof (_Generic (1.0, int: 2, default: ok6 ())); + sizeof (_Generic (1.0, default: ok7 (), int: 3)); +} diff --git a/gcc/testsuite/gcc.dg/c23-generic-5.c b/gcc/testsuite/gcc.dg/c23-generic-5.c new file mode 100644 index 000000000000..4603ec829a29 --- /dev/null +++ b/gcc/testsuite/gcc.dg/c23-generic-5.c @@ -0,0 +1,38 @@ +/* Test references to never-defined static functions in _Generic: allowed in + certain places for C23 but not before. */ +/* { dg-do compile } */ +/* { dg-options "-std=c23 -pedantic-errors" } */ + +static int ok1_c23 (); +static int ok2_c23 (); +static int ok3_c23 (); +static int ok4_c23 (); +static int ok5_c23 (); +static int ok6 (); +static int ok7 (); +static int ok8 (); +static int ok9 (); +static int ok10 (); +static int ok11 (); +static int ok12 (); +static int not_ok1 (); /* { dg-error "used but never defined" } */ +static int not_ok2 (); /* { dg-error "used but never defined" } */ + +void +f () +{ + _Generic (ok1_c23 (), int: 2); + _Generic (1, int: 2, default: ok2_c23 ()); + _Generic (1, default: ok3_c23 (), int: 3); + _Generic (1, int: 2, float: ok4_c23 ()); + _Generic (1, float: ok5_c23 (), int: 3); + sizeof (_Generic (ok8 (), int: 2)); + sizeof (_Generic (1, int: 2, default: ok9 ())); + sizeof (_Generic (1, default: ok10 (), int: 3)); + sizeof (_Generic (1, int: 2, float: ok11 ())); + sizeof (_Generic (1, float: ok12 (), int: 3)); + _Generic (1.0, int: 2, default: not_ok1 ()); + _Generic (1.0, default: not_ok2 (), int: 3); + sizeof (_Generic (1.0, int: 2, default: ok6 ())); + sizeof (_Generic (1.0, default: ok7 (), int: 3)); +} diff --git a/gcc/testsuite/gcc.dg/c23-incomplete-2.c b/gcc/testsuite/gcc.dg/c23-incomplete-2.c new file mode 100644 index 000000000000..3b435a14567e --- /dev/null +++ b/gcc/testsuite/gcc.dg/c23-incomplete-2.c @@ -0,0 +1,31 @@ +/* Test tentative definitions with incomplete type: OK in C2y with internal + linkage if completed by the end of the translation unit, but not allowed in + C23. Note that incomplete structs and unions are not diagnosed for C23 when + completed by the end of the translation unit (bug 88727). */ +/* { dg-do compile } */ +/* { dg-options "-std=c23 -pedantic-errors" } */ + +struct s1; +struct s2; +union u1; +union u2; + +struct s1 v1; +struct s2 v2; /* { dg-error "storage size" } */ +int v3[]; +int v4[]; /* { dg-warning "assumed to have one element" } */ +union u1 v5; +union u2 v6; /* { dg-error "storage size" } */ + +static struct s1 sv1; +static struct s2 sv2; /* { dg-error "storage size" } */ +static int sv3[]; /* { dg-error "array size missing" } */ +static int sv4[]; /* { dg-error "array size missing" } */ +/* { dg-warning "assumed to have one element" "one element" { target *-*-* } .-1 } */ +static union u1 sv5; +static union u2 sv6; /* { dg-error "storage size" } */ + +struct s1 { int x; }; +union u1 { int y; }; +extern int v3[1]; +extern int sv3[1]; diff --git a/gcc/testsuite/gcc.dg/c23-incomplete-3.c b/gcc/testsuite/gcc.dg/c23-incomplete-3.c new file mode 100644 index 000000000000..ebb4cf93a833 --- /dev/null +++ b/gcc/testsuite/gcc.dg/c23-incomplete-3.c @@ -0,0 +1,31 @@ +/* Test tentative definitions with incomplete type: OK in C2y with internal + linkage if completed by the end of the translation unit, but not allowed in + C23. Note that incomplete structs and unions are not diagnosed for C23 when + completed by the end of the translation unit (bug 88727). */ +/* { dg-do compile } */ +/* { dg-options "-std=c23 -pedantic" } */ + +struct s1; +struct s2; +union u1; +union u2; + +struct s1 v1; +struct s2 v2; /* { dg-error "storage size" } */ +int v3[]; +int v4[]; /* { dg-warning "assumed to have one element" } */ +union u1 v5; +union u2 v6; /* { dg-error "storage size" } */ + +static struct s1 sv1; +static struct s2 sv2; /* { dg-error "storage size" } */ +static int sv3[]; /* { dg-warning "array size missing" } */ +static int sv4[]; /* { dg-warning "array size missing" } */ +/* { dg-warning "assumed to have one element" "one element" { target *-*-* } .-1 } */ +static union u1 sv5; +static union u2 sv6; /* { dg-error "storage size" } */ + +struct s1 { int x; }; +union u1 { int y; }; +extern int v3[1]; +extern int sv3[1]; diff --git a/gcc/testsuite/gcc.dg/c23-incomplete-4.c b/gcc/testsuite/gcc.dg/c23-incomplete-4.c new file mode 100644 index 000000000000..6a8b6cc42305 --- /dev/null +++ b/gcc/testsuite/gcc.dg/c23-incomplete-4.c @@ -0,0 +1,30 @@ +/* Test tentative definitions with incomplete type: OK in C2y with internal + linkage if completed by the end of the translation unit, but not allowed in + C23. Note that incomplete structs and unions are not diagnosed for C23 when + completed by the end of the translation unit (bug 88727). */ +/* { dg-do compile } */ +/* { dg-options "-std=c23 -pedantic-errors -Wno-c23-c2y-compat" } */ + +struct s1; +struct s2; +union u1; +union u2; + +struct s1 v1; +struct s2 v2; /* { dg-error "storage size" } */ +int v3[]; +int v4[]; /* { dg-warning "assumed to have one element" } */ +union u1 v5; +union u2 v6; /* { dg-error "storage size" } */ + +static struct s1 sv1; +static struct s2 sv2; /* { dg-error "storage size" } */ +static int sv3[]; +static int sv4[]; /* { dg-warning "assumed to have one element" } */ +static union u1 sv5; +static union u2 sv6; /* { dg-error "storage size" } */ + +struct s1 { int x; }; +union u1 { int y; }; +extern int v3[1]; +extern int sv3[1]; diff --git a/gcc/testsuite/gcc.dg/c23-thread-local-2.c b/gcc/testsuite/gcc.dg/c23-thread-local-2.c index 1d063f05e424..8fb34af5eeb7 100644 --- a/gcc/testsuite/gcc.dg/c23-thread-local-2.c +++ b/gcc/testsuite/gcc.dg/c23-thread-local-2.c @@ -25,6 +25,7 @@ static thread_local int f; /* { dg-error "redefinition" } */ rather than defaulting to size 1. */ thread_local int g[]; /* { dg-error "storage size" } */ static thread_local int h[]; /* { dg-error "array size missing" } */ +/* { dg-error "storage size" "storage size" { target *-*-* } .-1 } */ extern thread_local int i[]; thread_local int j[] = { 0 }; diff --git a/gcc/testsuite/gcc.dg/c2y-generic-3.c b/gcc/testsuite/gcc.dg/c2y-generic-3.c index 09174fdb095d..f3a807e06b49 100644 --- a/gcc/testsuite/gcc.dg/c2y-generic-3.c +++ b/gcc/testsuite/gcc.dg/c2y-generic-3.c @@ -1,9 +1,9 @@ -/* Test C2Y _Generic features: VM types still not allowed. */ +/* Test C2Y _Generic features: VM types allowed. */ /* { dg-do compile } */ /* { dg-options "-std=c2y -pedantic-errors" } */ void f (int i) { - (void) _Generic (i, int : 1, int (*)[i] : 2); /* { dg-error "variable length" } */ + (void) _Generic (i, int : 1, int (*)[i] : 2); } diff --git a/gcc/testsuite/gcc.dg/c2y-generic-4.c b/gcc/testsuite/gcc.dg/c2y-generic-4.c new file mode 100644 index 000000000000..8172ed45e741 --- /dev/null +++ b/gcc/testsuite/gcc.dg/c2y-generic-4.c @@ -0,0 +1,10 @@ +/* Test C2Y _Generic features: VM types allowed. Warn for -Wc23-c2y-compat */ +/* { dg-do compile } */ +/* { dg-options "-std=c2y -pedantic-errors -Wc23-c2y-compat" } */ + +void +f (int i) +{ + (void) _Generic (i, int : 1, int (*)[i] : 2); /* { dg-warning "variably-modified type" } */ +} + diff --git a/gcc/testsuite/gcc.dg/c2y-generic-5.c b/gcc/testsuite/gcc.dg/c2y-generic-5.c new file mode 100644 index 000000000000..80097f0ea37a --- /dev/null +++ b/gcc/testsuite/gcc.dg/c2y-generic-5.c @@ -0,0 +1,13 @@ +/* Test references to never-defined static functions in _Generic: still not + allowed in a type name used for selection, only an expression (may change if + "discarded" is adopted). */ +/* { dg-do compile } */ +/* { dg-options "-std=c2y -pedantic-errors" } */ + +static int not_ok1 (); /* { dg-error "used but never defined" } */ + +void +f () +{ + _Generic (int (*)[not_ok1 ()], default: 1); +} diff --git a/gcc/testsuite/gcc.dg/c2y-incomplete-1.c b/gcc/testsuite/gcc.dg/c2y-incomplete-1.c index 2d7b1812ac2e..4c3133d934df 100644 --- a/gcc/testsuite/gcc.dg/c2y-incomplete-1.c +++ b/gcc/testsuite/gcc.dg/c2y-incomplete-1.c @@ -10,7 +10,7 @@ f () struct s1 a; /* { dg-error "storage size" } */ int b[]; /* { dg-error "array size missing" } */ static struct s1 c; /* { dg-error "storage size" } */ - static int d[]; /* { dg-error "array size missing" } */ + static int d[]; /* { dg-error "storage size" } */ struct s2; struct s2 e; /* { dg-error "storage size" } */ static struct s2 g; /* { dg-error "storage size" } */ diff --git a/gcc/testsuite/gcc.dg/c2y-incomplete-4.c b/gcc/testsuite/gcc.dg/c2y-incomplete-4.c new file mode 100644 index 000000000000..a2708965ca50 --- /dev/null +++ b/gcc/testsuite/gcc.dg/c2y-incomplete-4.c @@ -0,0 +1,28 @@ +/* Test tentative definitions with incomplete type: OK in C2y with internal + linkage if completed by the end of the translation unit. */ +/* { dg-do compile } */ +/* { dg-options "-std=c2y -pedantic-errors" } */ + +struct s1; +struct s2; +union u1; +union u2; + +struct s1 v1; +struct s2 v2; /* { dg-error "storage size" } */ +int v3[]; +int v4[]; /* { dg-warning "assumed to have one element" } */ +union u1 v5; +union u2 v6; /* { dg-error "storage size" } */ + +static struct s1 sv1; +static struct s2 sv2; /* { dg-error "storage size" } */ +static int sv3[]; +static int sv4[]; /* { dg-error "array size missing" } */ +static union u1 sv5; +static union u2 sv6; /* { dg-error "storage size" } */ + +struct s1 { int x; }; +union u1 { int y; }; +extern int v3[1]; +extern int sv3[1]; diff --git a/gcc/testsuite/gcc.dg/c2y-incomplete-5.c b/gcc/testsuite/gcc.dg/c2y-incomplete-5.c new file mode 100644 index 000000000000..4051cc01c21b --- /dev/null +++ b/gcc/testsuite/gcc.dg/c2y-incomplete-5.c @@ -0,0 +1,29 @@ +/* Test tentative definitions with incomplete type: OK in C2y with internal + linkage if completed by the end of the translation unit. */ +/* { dg-do compile } */ +/* { dg-options "-std=c2y -pedantic-errors -Wc23-c2y-compat" } */ + +struct s1; +struct s2; +union u1; +union u2; + +struct s1 v1; +struct s2 v2; /* { dg-error "storage size" } */ +int v3[]; +int v4[]; /* { dg-warning "assumed to have one element" } */ +union u1 v5; +union u2 v6; /* { dg-error "storage size" } */ + +static struct s1 sv1; +static struct s2 sv2; /* { dg-error "storage size" } */ +static int sv3[]; /* { dg-warning "array size missing" } */ +static int sv4[]; /* { dg-error "array size missing" } */ +/* { dg-warning "array size missing" "warning" { target *-*-* } .-1 } */ +static union u1 sv5; +static union u2 sv6; /* { dg-error "storage size" } */ + +struct s1 { int x; }; +union u1 { int y; }; +extern int v3[1]; +extern int sv3[1]; diff --git a/gcc/testsuite/gcc.dg/c2y-init-2.c b/gcc/testsuite/gcc.dg/c2y-init-2.c new file mode 100644 index 000000000000..cf62eaa6730a --- /dev/null +++ b/gcc/testsuite/gcc.dg/c2y-init-2.c @@ -0,0 +1,33 @@ +/* Test invalid initializers that are consistent with the syntax: undefined + behavior ("shall" in Semantics not Constraints) before C2y, constraint + violation in C2y. Structure and union cases. */ +/* { dg-do compile } */ +/* { dg-options "-std=c2y -pedantic-errors" } */ + +struct s1 { int a, b; }; +struct s2 { struct s1 x; }; +struct s3 { struct s2 x; }; +union u1 { int a; }; +union u2 { union u1 x; }; +union u3 { union u2 x; }; + +struct s1 s1v; +volatile struct s2 s2v; +union u1 u1v; +const union u2 u2v; + +void +f () +{ + struct s1 ts1a = {}, ts1b = s1v, ts1c = { 1, 2 }; + const struct s2 ts2a = {}, ts2b = s2v, ts2c = { s1v }, ts2d = { 1 }; + volatile struct s3 ts3a = { s2v }, ts3b = { s1v }; + union u1 tu1a = {}, tu1b = u1v, tu1c = { 1 }; + const union u2 tu2a = {}, tu2b = u2v, tu2c = { u1v }, tu2d = { 1 }; + volatile union u3 tu3a = { u2v }, tu3b = { u1v }; + struct s2 es2a = 1; /* { dg-error "invalid initializer" } */ + struct s2 es2b = s1v; /* { dg-error "invalid initializer" } */ + struct s1 es1a = s2v; /* { dg-error "invalid initializer" } */ + union u2 eu2a = u1v; /* { dg-error "invalid initializer" } */ + union u1 eu1a = 1; /* { dg-error "invalid initializer" } */ +} diff --git a/gcc/testsuite/gcc.dg/c2y-init-3.c b/gcc/testsuite/gcc.dg/c2y-init-3.c new file mode 100644 index 000000000000..1dd060705e28 --- /dev/null +++ b/gcc/testsuite/gcc.dg/c2y-init-3.c @@ -0,0 +1,106 @@ +/* Test invalid initializers that are consistent with the syntax: undefined + behavior ("shall" in Semantics not Constraints) before C2y, constraint + violation in C2y. Array cases. */ +/* { dg-do compile } */ +/* { dg-options "-std=c2y -pedantic-errors" } */ + +typedef __WCHAR_TYPE__ wchar_t; +typedef __CHAR8_TYPE__ char8_t; +typedef __CHAR16_TYPE__ char16_t; +typedef __CHAR32_TYPE__ char32_t; + +const char c1[] = "", c2[] = { "" }, c3[] = { "", }; +char c4[] = u8"", c5[] = { u8"" }, c6[] = { u8"", }; + +signed char sc1[] = "", sc2[] = { "" }, sc3[] = { "", }; +volatile signed char sc4[] = u8"", sc5[] = { u8"" }, sc6[] = { u8"", }; + +unsigned char uc1[] = "", uc2[] = { "" }, uc3[] = { "", }; +unsigned char uc4[] = u8"", uc5[] = { u8"" }, uc6[] = { u8"", }; + +char8_t c8_1[] = "", c8_2[] = { "" }, c8_3[] = { "", }; +char8_t c8_4[] = u8"", c8_5[] = { u8"" }, c8_6[] = { u8"", }; + +wchar_t w1[] = L"", w2[] = { L"" }, w3[] = { L"", }; +char16_t c16_1[] = u"", c16_2[] = { u"" }, c16_3[] = { u"", }; +char32_t c32_1[] = U"", c32_2[] = { U"" }, c32_3[] = { U"", }; + +int ia[] = { 1, 2, 3 }; + +_Atomic char ac[] = ""; /* { dg-error "inappropriate type" } */ +_Atomic wchar_t aw[] = L""; /* { dg-error "inappropriate type" } */ +_Atomic char8_t ac8[] = u8""; /* { dg-error "inappropriate type" } */ +_Atomic char16_t ac16[] = u""; /* { dg-error "inappropriate type" } */ +_Atomic char32_t ac32[] = U""; /* { dg-error "inappropriate type" } */ + +#if __WCHAR_WIDTH__ > __SCHAR_WIDTH__ +typedef char char_not_wchar; +typedef wchar_t wchar_not_char; +#else +typedef long long int char_not_wchar; +typedef long long int wchar_not_char; +#endif +char_not_wchar cnw[] = L""; /* { dg-error "cannot initialize|inappropriate type" } */ +char_not_wchar cnwb[] = { L"" }; /* { dg-error "cannot initialize|inappropriate type" } */ +wchar_not_char wnc[] = ""; /* { dg-error "cannot initialize|inappropriate type" } */ +wchar_not_char wncb[] = { "" }; /* { dg-error "cannot initialize|inappropriate type" } */ +wchar_not_char wnc8[] = u8""; /* { dg-error "cannot initialize|inappropriate type" } */ +wchar_not_char wnc8b[] = { u8"" }; /* { dg-error "cannot initialize|inappropriate type" } */ + +#if __INT_LEAST16_WIDTH__ > __SCHAR_WIDTH__ +typedef char char_not_char16; +typedef char16_t char16_not_char; +#else +typedef long long int char_not_char16; +typedef long long int char16_not_char; +#endif +char_not_char16 cn16[] = u""; /* { dg-error "cannot initialize|inappropriate type" } */ +char_not_char16 cn16b[] = { u"" }; /* { dg-error "cannot initialize|inappropriate type" } */ +char16_not_char c16nc[] = ""; /* { dg-error "cannot initialize|inappropriate type" } */ +char16_not_char c16ncb[] = { "" }; /* { dg-error "cannot initialize|inappropriate type" } */ +char16_not_char c16nc8[] = u8""; /* { dg-error "cannot initialize|inappropriate type" } */ +char16_not_char c16nc8b[] = { u8"" }; /* { dg-error "cannot initialize|inappropriate type" } */ + +#if __INT_LEAST32_WIDTH__ > __SCHAR_WIDTH__ +typedef char char_not_char32; +typedef char32_t char32_not_char; +#else +typedef long long int char_not_char32; +typedef long long int char32_not_char; +#endif +char_not_char32 cn32[] = U""; /* { dg-error "cannot initialize|inappropriate type" } */ +char_not_char32 cn32b[] = { U"" }; /* { dg-error "cannot initialize|inappropriate type" } */ +char32_not_char c32nc[] = ""; /* { dg-error "cannot initialize|inappropriate type" } */ +char32_not_char c32ncb[] = { "" }; /* { dg-error "cannot initialize|inappropriate type" } */ +char32_not_char c32nc8[] = u8""; /* { dg-error "cannot initialize|inappropriate type" } */ +char32_not_char c32nc8b[] = { u8"" }; /* { dg-error "cannot initialize|inappropriate type" } */ + +#if __WCHAR_WIDTH__ == __INT_LEAST16_WIDTH__ +typedef long long int wchar_not_char16; +typedef long long int char16_not_wchar; +#else +typedef wchar_t wchar_not_char16; +typedef char16_t char16_not_wchar; +#endif +wchar_not_char16 wcn16[] = u""; /* { dg-error "cannot initialize|inappropriate type" } */ +wchar_not_char16 wcn16b[] = { u"" }; /* { dg-error "cannot initialize|inappropriate type" } */ +char16_not_wchar c16nwc[] = L""; /* { dg-error "cannot initialize|inappropriate type" } */ +char16_not_wchar c16nwcb[] = { L"" }; /* { dg-error "cannot initialize|inappropriate type" } */ + +#if __WCHAR_WIDTH__ == __INT_LEAST32_WIDTH__ +typedef long long int wchar_not_char32; +typedef long long int char32_not_wchar; +#else +typedef wchar_t wchar_not_char32; +typedef char32_t char32_not_wchar; +#endif +wchar_not_char32 wcn32[] = U""; /* { dg-error "cannot initialize|inappropriate type" } */ +wchar_not_char32 wcn32b[] = { U"" }; /* { dg-error "cannot initialize|inappropriate type" } */ +char32_not_wchar c32nwc[] = L""; /* { dg-error "cannot initialize|inappropriate type" } */ +char32_not_wchar c32nwcb[] = { L"" }; /* { dg-error "cannot initialize|inappropriate type" } */ + +void +f () +{ + int ic[] = ia; /* { dg-error "invalid initializer" } */ +} diff --git a/gcc/testsuite/gcc.dg/debug/btf/btf-decl-tag-1.c b/gcc/testsuite/gcc.dg/debug/btf/btf-decl-tag-1.c new file mode 100644 index 000000000000..c933d84b4979 --- /dev/null +++ b/gcc/testsuite/gcc.dg/debug/btf/btf-decl-tag-1.c @@ -0,0 +1,14 @@ +/* Test simple BTF decl tag generation for variables. */ +/* { dg-do compile } */ +/* { dg-options "-O0 -gbtf -dA" } */ + +#define __tag1 __attribute__((btf_decl_tag ("decl1"))) +#define __tag2 __attribute__((btf_decl_tag ("decl2"))) +#define __tag3 __attribute__((btf_decl_tag ("decl3"))) + +int x __tag1 __tag2; +int y __tag1; + +/* { dg-final { scan-assembler-times " BTF_KIND_DECL_TAG 'decl1'(\[\\r\\n\]+\[^\\r\\n\]*){2}\\(BTF_KIND_VAR 'x'\\)\[\\r\\n\]+\[^\\r\\n\]*component_idx=-1" 1} } */ +/* { dg-final { scan-assembler-times " BTF_KIND_DECL_TAG 'decl2'(\[\\r\\n\]+\[^\\r\\n\]*){2}\\(BTF_KIND_VAR 'x'\\)\[\\r\\n\]+\[^\\r\\n\]*component_idx=-1" 1} } */ +/* { dg-final { scan-assembler-times " BTF_KIND_DECL_TAG 'decl1'(\[\\r\\n\]+\[^\\r\\n\]*){2}\\(BTF_KIND_VAR 'y'\\)\[\\r\\n\]+\[^\\r\\n\]*component_idx=-1" 1} } */ diff --git a/gcc/testsuite/gcc.dg/debug/btf/btf-decl-tag-2.c b/gcc/testsuite/gcc.dg/debug/btf/btf-decl-tag-2.c new file mode 100644 index 000000000000..c4f09ca839c5 --- /dev/null +++ b/gcc/testsuite/gcc.dg/debug/btf/btf-decl-tag-2.c @@ -0,0 +1,22 @@ +/* Test BTF decl tag generation for structs. */ +/* { dg-do compile } */ +/* { dg-options "-O0 -gbtf -dA" } */ + +#define __tag1 __attribute__((btf_decl_tag ("decl1"))) +#define __tag2 __attribute__((btf_decl_tag ("decl2"))) +#define __tag3 __attribute__((btf_decl_tag ("decl3"))) + +struct Foo { + int a; + int b __tag3 __tag2; + char *z __tag1; +}; + +struct Foo f __tag1 __tag2; + +/* { dg-final { scan-assembler-times " BTF_KIND_DECL_TAG 'decl2'(\[\\r\\n\]+\[^\\r\\n\]*){2}\\(BTF_KIND_STRUCT 'Foo'\\)\[\\r\\n\]+\[^\\r\\n\]*component_idx=1" 1} } */ +/* { dg-final { scan-assembler-times " BTF_KIND_DECL_TAG 'decl3'(\[\\r\\n\]+\[^\\r\\n\]*){2}\\(BTF_KIND_STRUCT 'Foo'\\)\[\\r\\n\]+\[^\\r\\n\]*component_idx=1" 1} } */ +/* { dg-final { scan-assembler-times " BTF_KIND_DECL_TAG 'decl1'(\[\\r\\n\]+\[^\\r\\n\]*){2}\\(BTF_KIND_STRUCT 'Foo'\\)\[\\r\\n\]+\[^\\r\\n\]*component_idx=2" 1} } */ + +/* { dg-final { scan-assembler-times " BTF_KIND_DECL_TAG 'decl1'(\[\\r\\n\]+\[^\\r\\n\]*){2}\\(BTF_KIND_VAR 'f'\\)\[\\r\\n\]+\[^\\r\\n\]*component_idx=-1" 1} } */ +/* { dg-final { scan-assembler-times " BTF_KIND_DECL_TAG 'decl2'(\[\\r\\n\]+\[^\\r\\n\]*){2}\\(BTF_KIND_VAR 'f'\\)\[\\r\\n\]+\[^\\r\\n\]*component_idx=-1" 1} } */ diff --git a/gcc/testsuite/gcc.dg/debug/btf/btf-decl-tag-3.c b/gcc/testsuite/gcc.dg/debug/btf/btf-decl-tag-3.c new file mode 100644 index 000000000000..7eb8a93ec128 --- /dev/null +++ b/gcc/testsuite/gcc.dg/debug/btf/btf-decl-tag-3.c @@ -0,0 +1,22 @@ +/* Test BTF decl tag generation for functions and function args. */ +/* { dg-do compile } */ +/* { dg-options "-O0 -gbtf -dA" } */ + +#define __tag1 __attribute__((btf_decl_tag ("decl1"))) +#define __tag2 __attribute__((btf_decl_tag ("decl2"))) +#define __tag3 __attribute__((btf_decl_tag ("decl3"))) + +int __tag1 __tag2 func (int arg_a __tag3 __tag1, int arg_b __tag2) +{ + return arg_a * arg_b; +} + +int foo (int x) { + return func (x, x + 1); +} + +/* { dg-final { scan-assembler-times " BTF_KIND_DECL_TAG 'decl1'(\[\\r\\n\]+\[^\\r\\n\]*){2}\\(BTF_KIND_FUNC 'func'\\)\[\\r\\n\]+\[^\\r\\n\]*component_idx=-1" 1} } */ +/* { dg-final { scan-assembler-times " BTF_KIND_DECL_TAG 'decl2'(\[\\r\\n\]+\[^\\r\\n\]*){2}\\(BTF_KIND_FUNC 'func'\\)\[\\r\\n\]+\[^\\r\\n\]*component_idx=-1" 1} } */ +/* { dg-final { scan-assembler-times " BTF_KIND_DECL_TAG 'decl1'(\[\\r\\n\]+\[^\\r\\n\]*){2}\\(BTF_KIND_FUNC 'func'\\)\[\\r\\n\]+\[^\\r\\n\]*component_idx=0" 1} } */ +/* { dg-final { scan-assembler-times " BTF_KIND_DECL_TAG 'decl3'(\[\\r\\n\]+\[^\\r\\n\]*){2}\\(BTF_KIND_FUNC 'func'\\)\[\\r\\n\]+\[^\\r\\n\]*component_idx=0" 1} } */ +/* { dg-final { scan-assembler-times " BTF_KIND_DECL_TAG 'decl2'(\[\\r\\n\]+\[^\\r\\n\]*){2}\\(BTF_KIND_FUNC 'func'\\)\[\\r\\n\]+\[^\\r\\n\]*component_idx=1" 1} } */ diff --git a/gcc/testsuite/gcc.dg/debug/btf/btf-decl-tag-4.c b/gcc/testsuite/gcc.dg/debug/btf/btf-decl-tag-4.c new file mode 100644 index 000000000000..a90223755291 --- /dev/null +++ b/gcc/testsuite/gcc.dg/debug/btf/btf-decl-tag-4.c @@ -0,0 +1,34 @@ +/* Test BTF decl tag generation with BTF pruning. */ +/* { dg-do compile } */ +/* { dg-options "-O0 -gbtf -gprune-btf -dA" } */ + +#define __decl1 __attribute__((btf_decl_tag ("decl1"))) +#define __decl2 __attribute__((btf_decl_tag ("decl2"))) +#define __decl3 __attribute__((btf_decl_tag ("decl3"))) + +struct S { + /* This tag on S.v shall not be emitted, because struct S is pruned and + replaced with a FWD, which does not hold any member info. */ + int v __decl3; + int w; +}; + +struct T { + int a; + struct S *s __decl1; + int c __decl2; +}; + +struct T t __decl1; + +int __decl1 func (struct T *t __decl2) +{ + return t->a + t->c; +} + +/* { dg-final { scan-assembler-not " BTF_KIND_DECL_TAG 'decl3'" } } */ +/* { dg-final { scan-assembler-times " BTF_KIND_DECL_TAG 'decl1'(\[\\r\\n\]+\[^\\r\\n\]*){2}\\(BTF_KIND_STRUCT 'T'\\)\[\\r\\n\]+\[^\\r\\n\]*component_idx=1" 1} } */ +/* { dg-final { scan-assembler-times " BTF_KIND_DECL_TAG 'decl2'(\[\\r\\n\]+\[^\\r\\n\]*){2}\\(BTF_KIND_STRUCT 'T'\\)\[\\r\\n\]+\[^\\r\\n\]*component_idx=2" 1} } */ +/* { dg-final { scan-assembler-times " BTF_KIND_DECL_TAG 'decl1'(\[\\r\\n\]+\[^\\r\\n\]*){2}\\(BTF_KIND_VAR 't'\\)\[\\r\\n\]+\[^\\r\\n\]*component_idx=-1" 1} } */ +/* { dg-final { scan-assembler-times " BTF_KIND_DECL_TAG 'decl1'(\[\\r\\n\]+\[^\\r\\n\]*){2}\\(BTF_KIND_FUNC 'func'\\)\[\\r\\n\]+\[^\\r\\n\]*component_idx=-1" 1} } */ +/* { dg-final { scan-assembler-times " BTF_KIND_DECL_TAG 'decl2'(\[\\r\\n\]+\[^\\r\\n\]*){2}\\(BTF_KIND_FUNC 'func'\\)\[\\r\\n\]+\[^\\r\\n\]*component_idx=0" 1} } */ diff --git a/gcc/testsuite/gcc.dg/debug/btf/btf-type-tag-1.c b/gcc/testsuite/gcc.dg/debug/btf/btf-type-tag-1.c new file mode 100644 index 000000000000..63a6f324ab1c --- /dev/null +++ b/gcc/testsuite/gcc.dg/debug/btf/btf-type-tag-1.c @@ -0,0 +1,26 @@ +/* Test simple generation of BTF type tags. */ +/* { dg-do compile } */ +/* { dg-options "-O0 -gbtf -dA" } */ + +#define __tag1 __attribute__((btf_type_tag("1"))) +#define __tag2 __attribute__((btf_type_tag("2"))) + +/* var("kp") -> ptr -> type_tag("1") -> int */ +int * __tag1 kp; + +struct Foo { + char a; + int b; +}; + +/* var("f") -> ptr -> type_tag("2") -> type_tag("1") -> struct("Foo") */ +struct Foo * __tag1 __tag2 f; + +/* { dg-final { scan-assembler-times " BTF_KIND_VAR 'kp'(\[\\r\\n\]+\[^\\r\\n\]*){2}\\(BTF_KIND_PTR" 1 } } */ +/* { dg-final { scan-assembler-times " BTF_KIND_TYPE_TAG '1'(\[\\r\\n\]+\[^\\r\\n\]*){2}\\(BTF_KIND_INT" 1 } } */ + +/* { dg-final { scan-assembler-times " BTF_KIND_VAR 'f'(\[\\r\\n\]+\[^\\r\\n\]*){2}\\(BTF_KIND_PTR" 1 } } */ +/* { dg-final { scan-assembler-times " BTF_KIND_TYPE_TAG '2'(\[\\r\\n\]+\[^\\r\\n\]*){2}\\(BTF_KIND_TYPE_TAG '1'\\)" 1 } } */ +/* { dg-final { scan-assembler-times " BTF_KIND_TYPE_TAG '1'(\[\\r\\n\]+\[^\\r\\n\]*){2}\\(BTF_KIND_STRUCT" 1 } } */ + +/* { dg-final { scan-assembler-times " BTF_KIND_PTR ''(\[\\r\\n\]+\[^\\r\\n\]*){2}\\(BTF_KIND_TYPE_TAG" 2 } } */ diff --git a/gcc/testsuite/gcc.dg/debug/btf/btf-type-tag-2.c b/gcc/testsuite/gcc.dg/debug/btf/btf-type-tag-2.c new file mode 100644 index 000000000000..5adf3d041c79 --- /dev/null +++ b/gcc/testsuite/gcc.dg/debug/btf/btf-type-tag-2.c @@ -0,0 +1,13 @@ +/* Test generation of BTF type tags with cv-quals. */ +/* { dg-do compile } */ +/* { dg-options "-O0 -gbtf -dA" } */ + +#define __tag __attribute__((btf_type_tag("1"))) + +/* var("pci") -> const -> ptr -> type_tag("1") -> int */ +int __tag *const pci; + +/* { dg-final { scan-assembler-times " BTF_KIND_VAR 'pci'(\[\\r\\n\]+\[^\\r\\n\]*){2}\\(BTF_KIND_CONST" 1 } } */ +/* { dg-final { scan-assembler-times " BTF_KIND_CONST ''(\[\\r\\n\]+\[^\\r\\n\]*){2}\\(BTF_KIND_PTR" 1 } } */ +/* { dg-final { scan-assembler-times " BTF_KIND_PTR ''(\[\\r\\n\]+\[^\\r\\n\]*){2}\\(BTF_KIND_TYPE_TAG" 1 } } */ +/* { dg-final { scan-assembler-times " BTF_KIND_TYPE_TAG '1'(\[\\r\\n\]+\[^\\r\\n\]*){2}\\(BTF_KIND_INT" 1 } } */ diff --git a/gcc/testsuite/gcc.dg/debug/btf/btf-type-tag-3.c b/gcc/testsuite/gcc.dg/debug/btf/btf-type-tag-3.c new file mode 100644 index 000000000000..0bf385324562 --- /dev/null +++ b/gcc/testsuite/gcc.dg/debug/btf/btf-type-tag-3.c @@ -0,0 +1,28 @@ +/* Test generation of BTF type tags with typedefs. */ +/* { dg-do compile } */ +/* { dg-options "-O0 -gbtf -dA" } */ + +#define __tag1 __attribute__((btf_type_tag("1"))) +#define __tag2 __attribute__((btf_type_tag("2"))) + +typedef int *const cp; +typedef int __tag1 *tp; + +/* var("x") -> ptr -> type_tag("2") -> typedef("cp") -> const -> ptr -> int */ +cp __tag2 * x; + +/* var("y") -> const -> typedef("tp") -> ptr -> type_tag("1") -> int */ +const tp y; + +/* { dg-final { scan-assembler-times " BTF_KIND_VAR 'x'(\[\\r\\n\]+\[^\\r\\n\]*){2}\\(BTF_KIND_PTR" 1 } } */ +/* { dg-final { scan-assembler-times " BTF_KIND_PTR ''(\[\\r\\n\]+\[^\\r\\n\]*){2}\\(BTF_KIND_TYPE_TAG '2'\\)" 1 } } */ +/* { dg-final { scan-assembler-times " BTF_KIND_TYPE_TAG '2'(\[\\r\\n\]+\[^\\r\\n\]*){2}\\(BTF_KIND_TYPEDEF 'cp'\\)" 1 } } */ +/* { dg-final { scan-assembler-times " BTF_KIND_TYPEDEF 'cp'(\[\\r\\n\]+\[^\\r\\n\]*){2}\\(BTF_KIND_CONST" 1 } } */ +/* { dg-final { scan-assembler-times " BTF_KIND_CONST ''(\[\\r\\n\]+\[^\\r\\n\]*){2}\\(BTF_KIND_PTR" 1 } } */ +/* { dg-final { scan-assembler-times " BTF_KIND_PTR ''(\[\\r\\n\]+\[^\\r\\n\]*){2}\\(BTF_KIND_INT" 1 } } */ + +/* { dg-final { scan-assembler-times " BTF_KIND_VAR 'y'(\[\\r\\n\]+\[^\\r\\n\]*){2}\\(BTF_KIND_CONST" 1 } } */ +/* { dg-final { scan-assembler-times " BTF_KIND_CONST ''(\[\\r\\n\]+\[^\\r\\n\]*){2}\\(BTF_KIND_TYPEDEF 'tp'\\)" 1 } } */ +/* { dg-final { scan-assembler-times " BTF_KIND_TYPEDEF 'tp'(\[\\r\\n\]+\[^\\r\\n\]*){2}\\(BTF_KIND_PTR" 1 } } */ +/* { dg-final { scan-assembler-times " BTF_KIND_PTR ''(\[\\r\\n\]+\[^\\r\\n\]*){2}\\(BTF_KIND_TYPE_TAG '1'\\)" 1 } } */ +/* { dg-final { scan-assembler-times " BTF_KIND_TYPE_TAG '1'(\[\\r\\n\]+\[^\\r\\n\]*){2}\\(BTF_KIND_INT" 1 } } */ diff --git a/gcc/testsuite/gcc.dg/debug/btf/btf-type-tag-4.c b/gcc/testsuite/gcc.dg/debug/btf/btf-type-tag-4.c new file mode 100644 index 000000000000..0ec7e571db2c --- /dev/null +++ b/gcc/testsuite/gcc.dg/debug/btf/btf-type-tag-4.c @@ -0,0 +1,24 @@ +/* Test generation of BTF type tag when applied to function prototypes. */ +/* { dg-do compile } */ +/* { dg-options "-O0 -gbtf -dA" } */ + +#define __tag1 __attribute__((btf_type_tag("1"))) +#define __tag2 __attribute__((btf_type_tag("2"))) + +int * __tag1 +dothing (void __tag2 *ptr, int __tag2 __tag1 *xi) +{ + if (xi) + { + int *tmp = (int *) ptr; + return tmp + (*xi); + } + + return (int *) ptr; +} + +/* { dg-final { scan-assembler-times " BTF_KIND_TYPE_TAG '2'(\[\\r\\n\]+\[^\\r\\n\]*){2} btt_type: void" 1 } } */ +/* { dg-final { scan-assembler-times " BTF_KIND_TYPE_TAG '2'(\[\\r\\n\]+\[^\\r\\n\]*){2}\\(BTF_KIND_INT" 1 } } */ +/* { dg-final { scan-assembler-times " BTF_KIND_TYPE_TAG '1'(\[\\r\\n\]+\[^\\r\\n\]*){2}\\(BTF_KIND_TYPE_TAG '2'" 1 } } */ +/* { dg-final { scan-assembler-times " BTF_KIND_PTR ''(\[\\r\\n\]+\[^\\r\\n\]*){2}\\(BTF_KIND_TYPE_TAG '1'" 2 } } */ +/* { dg-final { scan-assembler-times " BTF_KIND_PTR ''(\[\\r\\n\]+\[^\\r\\n\]*){2}\\(BTF_KIND_TYPE_TAG '2'" 1 } } */ diff --git a/gcc/testsuite/gcc.dg/debug/btf/btf-type-tag-c2x-1.c b/gcc/testsuite/gcc.dg/debug/btf/btf-type-tag-c2x-1.c new file mode 100644 index 000000000000..30aff57618eb --- /dev/null +++ b/gcc/testsuite/gcc.dg/debug/btf/btf-type-tag-c2x-1.c @@ -0,0 +1,22 @@ +/* Test BTF type tag generation using C2x standard attribute syntax. + C2x attribute syntax does not allow attributes to "slide around". */ +/* { dg-do compile } */ +/* { dg-options "-O0 -gbtf -dA -std=c23" } */ + +#define __tag1 [[gnu::btf_type_tag ("1")]] +#define __tag2 [[gnu::btf_type_tag ("2")]] +#define __tag3 [[gnu::btf_type_tag ("3")]] + +/* Note that the BTF format still only allows to represent type tags on + pointer types, so we do not get any type_tag("1") from the below, as + it applies to the 'volatile int' type and cannot be represented. */ + +/* var(z) -> const -> ptr -> type_tag(2) -> type_tag(3) -> ptr -> type_tag(2) -> volatile -> int */ +volatile int __tag1 * __tag2 * __tag3 __tag2 const z; + +/* { dg-final { scan-assembler-times " BTF_KIND_VAR 'z'(\[\\r\\n\]+\[^\\r\\n\]*){2}\\(BTF_KIND_CONST" 1 } } */ +/* { dg-final { scan-assembler-times " BTF_KIND_CONST ''(\[\\r\\n\]+\[^\\r\\n\]*){2}\\(BTF_KIND_PTR" 1 } } */ +/* { dg-final { scan-assembler-times " BTF_KIND_PTR ''(\[\\r\\n\]+\[^\\r\\n\]*){2}\\(BTF_KIND_TYPE_TAG '2'\\)" 2 } } */ +/* { dg-final { scan-assembler-times " BTF_KIND_TYPE_TAG '2'(\[\\r\\n\]+\[^\\r\\n\]*){2}\\(BTF_KIND_TYPE_TAG '3'\\)" 1 } } */ +/* { dg-final { scan-assembler-times " BTF_KIND_TYPE_TAG '3'(\[\\r\\n\]+\[^\\r\\n\]*){2}\\(BTF_KIND_PTR" 1 } } */ +/* { dg-final { scan-assembler-times " BTF_KIND_TYPE_TAG '2'(\[\\r\\n\]+\[^\\r\\n\]*){2}\\(BTF_KIND_VOLATILE" 1 } } */ diff --git a/gcc/testsuite/gcc.dg/debug/ctf/ctf-decl-tag-1.c b/gcc/testsuite/gcc.dg/debug/ctf/ctf-decl-tag-1.c new file mode 100644 index 000000000000..564bbc764681 --- /dev/null +++ b/gcc/testsuite/gcc.dg/debug/ctf/ctf-decl-tag-1.c @@ -0,0 +1,31 @@ +/* CTF generation for btf_decl_tag attribute. + + CTF does not encode these attributes and no CTF_K_DECL_TAG record should be + emitted; these records only exist internally to facilitate translation + to BTF. */ + +/* { dg-do compile } */ +/* { dg-options "-O0 -gctf -dA" } */ + +int x __attribute__((btf_decl_tag ("some_tag"))); + +struct S { + int a; + int b __attribute__((btf_decl_tag ("_b"))); + int c; +}; + +struct S some_S; + +void +__attribute__((btf_decl_tag ("__func"))) +foo (int *ptr __attribute__((btf_decl_tag ("w"))), int val) +{ + *ptr = val; +} + +/* Expect 5 CTF types: int, struct, void, int*, void (int*, int). */ +/* { dg-final { scan-assembler-times "ctt_info" 5 } } */ +/* Ensure no CTF_K_DECL_TAG record is emitted. */ +/* { dg-final { scan-assembler-not "\[\t \]0x3c*\[\t \]+\[^\n\]*ctt_info" } } */ +/* { dg-final { scan-assembler-not "\[\t \]0x3e*\[\t \]+\[^\n\]*ctt_info" } } */ diff --git a/gcc/testsuite/gcc.dg/debug/ctf/ctf-type-tag-1.c b/gcc/testsuite/gcc.dg/debug/ctf/ctf-type-tag-1.c new file mode 100644 index 000000000000..ca37ef44fe28 --- /dev/null +++ b/gcc/testsuite/gcc.dg/debug/ctf/ctf-type-tag-1.c @@ -0,0 +1,19 @@ +/* CTF generation for btf_type_tag attribute. + + CTF does not encode these attributes and no CTF_K_TYPE_TAG record should be + emitted; these records only exist internally to facilitate translation + to BTF. */ + +/* { dg-do compile } */ +/* { dg-options "-O0 -gctf -dA" } */ + +int * __attribute__((btf_type_tag ("some_tag"))) x; + +typedef unsigned int __attribute__((btf_type_tag ("other_tag"))) uint; +const uint u; + +/* Expect 5 CTF types: int, int*, unsigned int, typedef, const. */ +/* { dg-final { scan-assembler-times "ctt_info" 5 } } */ +/* Ensure no CTF_K_TYPE_TAG record is emitted. */ +/* { dg-final { scan-assembler-not "\[\t \]0x40*\[\t \]+\[^\n\]*ctt_info" } } */ +/* { dg-final { scan-assembler-not "\[\t \]0x42*\[\t \]+\[^\n\]*ctt_info" } } */ diff --git a/gcc/testsuite/gcc.dg/debug/dwarf2/dwarf-btf-decl-tag-1.c b/gcc/testsuite/gcc.dg/debug/dwarf2/dwarf-btf-decl-tag-1.c new file mode 100644 index 000000000000..a1c1676a7ba3 --- /dev/null +++ b/gcc/testsuite/gcc.dg/debug/dwarf2/dwarf-btf-decl-tag-1.c @@ -0,0 +1,11 @@ +/* Test simple generation of DW_TAG_GNU_annotation DIE for + btf_decl_tag attribute. */ +/* { dg-do compile } */ +/* { dg-options "-gdwarf -dA" } */ + +int *foo __attribute__((btf_decl_tag ("my_foo"))); + +/* { dg-final { scan-assembler-times "DIE \\(\[^\n\]*\\) DW_TAG_GNU_annotation" 1 } } */ +/* { dg-final { scan-assembler-times " DW_AT_name: \"btf_decl_tag\"" 1 } } */ +/* { dg-final { scan-assembler-times " DW_AT_const_value: \"my_foo\"" 1 } } */ +/* { dg-final { scan-assembler-times " DW_AT_GNU_annotation" 1 } } */ diff --git a/gcc/testsuite/gcc.dg/debug/dwarf2/dwarf-btf-decl-tag-2.c b/gcc/testsuite/gcc.dg/debug/dwarf2/dwarf-btf-decl-tag-2.c new file mode 100644 index 000000000000..00485c000b5e --- /dev/null +++ b/gcc/testsuite/gcc.dg/debug/dwarf2/dwarf-btf-decl-tag-2.c @@ -0,0 +1,25 @@ +/* Test dwarf generation for btf_decl_tag on struct and union members. */ +/* { dg-do compile } */ +/* { dg-options "-gdwarf -dA" } */ + +#define __tag1 __attribute__((btf_decl_tag ("decl1"))) +#define __tag2 __attribute__((btf_decl_tag ("decl2"))) + +union U { + int i __tag1; + unsigned char ub[4]; +}; + +struct S { + union U u; + int b __tag2; + char *z __tag1; +}; + +struct S my_s __tag1 __tag2; + +/* We must have two occurrences of one of the two annotation DIEs due to + the different attribute sets between declarations above. */ +/* { dg-final { scan-assembler-times "DIE \\(\[^\n\]*\\) DW_TAG_GNU_annotation" 3 } } */ +/* { dg-final { scan-assembler-times " DW_AT_name: \"btf_decl_tag\"" 3 } } */ +/* { dg-final { scan-assembler-times " DW_AT_GNU_annotation" 5 } } */ diff --git a/gcc/testsuite/gcc.dg/debug/dwarf2/dwarf-btf-decl-tag-3.c b/gcc/testsuite/gcc.dg/debug/dwarf2/dwarf-btf-decl-tag-3.c new file mode 100644 index 000000000000..f3fad8fe3d28 --- /dev/null +++ b/gcc/testsuite/gcc.dg/debug/dwarf2/dwarf-btf-decl-tag-3.c @@ -0,0 +1,21 @@ +/* Test dwarf generation for btf_decl_tag on functions and function args. */ +/* { dg-do compile } */ +/* { dg-options "-gdwarf -dA" } */ + +#define __tag1 __attribute__((btf_decl_tag ("decl1"))) +#define __tag2 __attribute__((btf_decl_tag ("decl2"))) + +int __tag1 __tag2 func (int arg_a __tag1, int arg_b __tag2) +{ + return arg_a * arg_b; +} + +int foo (int x) { + return func (x, x + 1); +} + +/* In this case one of the decl tag DIEs must be duplicated due to differing + DW_AT_GNU_annotation chain between the three uses. */ +/* { dg-final { scan-assembler-times "DIE \\(\[^\n\]*\\) DW_TAG_GNU_annotation" 3 } } */ +/* { dg-final { scan-assembler-times " DW_AT_name: \"btf_decl_tag\"" 3 } } */ +/* { dg-final { scan-assembler-times " DW_AT_GNU_annotation" 4 } } */ diff --git a/gcc/testsuite/gcc.dg/debug/dwarf2/dwarf-btf-type-tag-1.c b/gcc/testsuite/gcc.dg/debug/dwarf2/dwarf-btf-type-tag-1.c new file mode 100644 index 000000000000..772aab09cfb7 --- /dev/null +++ b/gcc/testsuite/gcc.dg/debug/dwarf2/dwarf-btf-type-tag-1.c @@ -0,0 +1,10 @@ +/* Test simple generation for btf_type_tag attribute. */ +/* { dg-do compile } */ +/* { dg-options "-gdwarf -dA" } */ + +int * __attribute__((btf_type_tag("__user"))) ptr; + +/* { dg-final { scan-assembler-times "DIE \\(\[^\n\]*\\) DW_TAG_GNU_annotation" 1 } } */ +/* { dg-final { scan-assembler-times " DW_AT_name: \"btf_type_tag\"" 1 } } */ +/* { dg-final { scan-assembler-times " DW_AT_const_value: \"__user\"" 1 } } */ +/* { dg-final { scan-assembler-times " DW_AT_GNU_annotation" 1 } } */ diff --git a/gcc/testsuite/gcc.dg/debug/dwarf2/dwarf-btf-type-tag-10.c b/gcc/testsuite/gcc.dg/debug/dwarf2/dwarf-btf-type-tag-10.c new file mode 100644 index 000000000000..3ecd79f092fc --- /dev/null +++ b/gcc/testsuite/gcc.dg/debug/dwarf2/dwarf-btf-type-tag-10.c @@ -0,0 +1,20 @@ +/* Test btf_type_tag and btf_decl_tag on a function. + Here the decl_tag applies to the function, and the type_tag applies + to the return type. */ +/* { dg-do compile } */ +/* { dg-options "-gdwarf -dA" } */ + +int * __attribute__((btf_type_tag ("A"))) +__attribute__((btf_decl_tag ("decl"))) +foo (int *x, int *y) +{ + if (x && y && *x > *y) + return x; + return y; +} + +/* Ideally, verify that AT_GNU_annotation in the subprogram DIE refers to + the decl_tag annotation DIE, and the AT_GNU_annotation in the return + type refers to the type_tag... */ +/* { dg-final { scan-assembler-times " DW_AT_name: \"btf_type_tag\"" 1 } } */ +/* { dg-final { scan-assembler-times " DW_AT_name: \"btf_decl_tag\"" 1 } } */ diff --git a/gcc/testsuite/gcc.dg/debug/dwarf2/dwarf-btf-type-tag-2.c b/gcc/testsuite/gcc.dg/debug/dwarf2/dwarf-btf-type-tag-2.c new file mode 100644 index 000000000000..9c44e0ee0b99 --- /dev/null +++ b/gcc/testsuite/gcc.dg/debug/dwarf2/dwarf-btf-type-tag-2.c @@ -0,0 +1,31 @@ +/* Test that DW_TAG_GNU_annotation DIEs for attribute btf_type_tag are shared + where possible. */ +/* { dg-do compile } */ +/* { dg-options "-gdwarf -dA" } */ + +#define __tag1 __attribute__((btf_type_tag("tag1"))) +#define __tag2 __attribute__((btf_type_tag("tag2"))) + +int __tag1 foo; +char * __tag1 __tag2 bar; + +struct S +{ + unsigned char bytes[8]; + unsigned long __tag1 t; + void *ptr; +}; + +struct S * __tag1 __tag2 my_S; + +/* Only 2 DW_TAG_GNU_annotation DIEs should be generated, one each for "tag1" + and "tag2", and they should be reused. */ +/* { dg-final { scan-assembler-times "DIE \\(\[^\n\]*\\) DW_TAG_GNU_annotation" 2 } } */ +/* { dg-final { scan-assembler-times " DW_AT_name: \"btf_type_tag\"" 2 } } */ +/* { dg-final { scan-assembler-times " DW_AT_const_value: \"tag1\"" 1 } } */ +/* { dg-final { scan-assembler-times " DW_AT_const_value: \"tag2\"" 1 } } */ + +/* Each attribute-ed type shall refer via DW_AT_GNU_annotation to the + appropriate annotation DIE, including the annotation DIE for "tag2" which + is always chained to the DIE for "tag1" in this construction. */ +/* { dg-final { scan-assembler-times " DW_AT_GNU_annotation" 5 } } */ diff --git a/gcc/testsuite/gcc.dg/debug/dwarf2/dwarf-btf-type-tag-3.c b/gcc/testsuite/gcc.dg/debug/dwarf2/dwarf-btf-type-tag-3.c new file mode 100644 index 000000000000..d02144c8004e --- /dev/null +++ b/gcc/testsuite/gcc.dg/debug/dwarf2/dwarf-btf-type-tag-3.c @@ -0,0 +1,15 @@ +/* Test dwarf generation for btf_type_tag with cv-quals and typedefs. */ +/* { dg-do compile } */ +/* { dg-options "-gdwarf -dA" } */ + +#define __tag1 __attribute__((btf_type_tag ("tag1"))) +#define __tag2 __attribute__((btf_type_tag ("tag2"))) + +typedef const int foo; +typedef int __tag1 bar; + +foo __tag2 x; +const bar y; + +/* { dg-final { scan-assembler-times "DIE \\(\[^\n\]*\\) DW_TAG_GNU_annotation" 2 } } */ +/* { dg-final { scan-assembler-times " DW_AT_name: \"btf_type_tag\"" 2 } } */ diff --git a/gcc/testsuite/gcc.dg/debug/dwarf2/dwarf-btf-type-tag-4.c b/gcc/testsuite/gcc.dg/debug/dwarf2/dwarf-btf-type-tag-4.c new file mode 100644 index 000000000000..7205ef2c9a34 --- /dev/null +++ b/gcc/testsuite/gcc.dg/debug/dwarf2/dwarf-btf-type-tag-4.c @@ -0,0 +1,34 @@ +/* Test generating annotation DIEs for struct/union/enum types. */ +/* { dg-do compile } */ +/* { dg-options "-gdwarf -dA" } */ + +enum E +{ + ONE, + TWO +} __attribute__((btf_type_tag("foo"))); + +enum E some_e; + +struct S +{ + int i; + char c; +} __attribute__((btf_type_tag("foo"))); + +typedef struct S S1; +S1 plain_s1; +const S1 const_s1; + +union U +{ + int x; + char y; +} __attribute__((btf_type_tag("foo"))); + +volatile union U volatile_u; + +/* One annotation DIE may be shared by all three annotated types. */ +/* { dg-final { scan-assembler-times "DIE \\(\[^\n\]*\\) DW_TAG_GNU_annotation" 1 } } */ +/* { dg-final { scan-assembler-times " DW_AT_name: \"btf_type_tag\"" 1 } } */ +/* { dg-final { scan-assembler-times " DW_AT_GNU_annotation" 3 } } */ diff --git a/gcc/testsuite/gcc.dg/debug/dwarf2/dwarf-btf-type-tag-5.c b/gcc/testsuite/gcc.dg/debug/dwarf2/dwarf-btf-type-tag-5.c new file mode 100644 index 000000000000..1a6b29f99a1a --- /dev/null +++ b/gcc/testsuite/gcc.dg/debug/dwarf2/dwarf-btf-type-tag-5.c @@ -0,0 +1,10 @@ +/* Test generation for btf_type_tag attribute on array type. */ +/* { dg-do compile } */ +/* { dg-options "-gdwarf -dA" } */ + +int arr[8] __attribute__((btf_type_tag("tagged_arr"))); + +/* { dg-final { scan-assembler-times "DIE \\(\[^\n\]*\\) DW_TAG_GNU_annotation" 1 } } */ +/* { dg-final { scan-assembler-times " DW_AT_name: \"btf_type_tag\"" 1 } } */ +/* { dg-final { scan-assembler-times " DW_AT_const_value: \"tagged_arr\"" 1 } } */ +/* { dg-final { scan-assembler-times " DW_AT_GNU_annotation" 1 } } */ diff --git a/gcc/testsuite/gcc.dg/debug/dwarf2/dwarf-btf-type-tag-6.c b/gcc/testsuite/gcc.dg/debug/dwarf2/dwarf-btf-type-tag-6.c new file mode 100644 index 000000000000..11fc9036b8a2 --- /dev/null +++ b/gcc/testsuite/gcc.dg/debug/dwarf2/dwarf-btf-type-tag-6.c @@ -0,0 +1,27 @@ +/* Test generation for btf_type_tag attribute when applied to struct/union + types after definition. Attributes applied after definition will be + ignored, so DW_TAG_GNU_annotations shall be generated. */ +/* { dg-do compile } */ +/* { dg-options "-gdwarf -dA" } */ + +struct foo +{ + int a; + char c; +}; + +struct foo __attribute__((btf_type_tag ("tag1"))) x; /* { dg-warning "ignoring attribute" } */ +typedef const struct foo c_foo; +c_foo __attribute__((btf_type_tag ("tag2"))) y; /* { dg-warning "ignoring attribute" } */ + +union bar +{ + int s; + unsigned int u; +}; + +typedef union bar __attribute__((btf_type_tag("tag3"))) tag_bar; /* { dg-warning "ignoring attribute" } */ +const tag_bar z; + +/* { dg-final { scan-assembler-not "DIE \\(\[^\n\]*\\) DW_TAG_GNU_annotation" } } */ +/* { dg-final { scan-assembler-not " DW_AT_GNU_annotation" } } */ diff --git a/gcc/testsuite/gcc.dg/debug/dwarf2/dwarf-btf-type-tag-7.c b/gcc/testsuite/gcc.dg/debug/dwarf2/dwarf-btf-type-tag-7.c new file mode 100644 index 000000000000..5b3d45d5e7a9 --- /dev/null +++ b/gcc/testsuite/gcc.dg/debug/dwarf2/dwarf-btf-type-tag-7.c @@ -0,0 +1,25 @@ +/* Test generation for btf_type_tag attribute for pointer typedef with + tags appearing on both the typedef and the usage of the tyepdef. */ +/* { dg-do compile } */ +/* { dg-options "-gdwarf -dA" } */ + +#define __tag1 __attribute__((btf_type_tag ("tag1"))) +#define __tag2 __attribute__((btf_type_tag ("tag2"))) + +typedef int __tag1 foo; + +foo a; +foo __tag2 b; + +/* { dg-final { scan-assembler-times "DIE \\(\[^\n\]*\\) DW_TAG_GNU_annotation" 2 } } */ +/* { dg-final { scan-assembler-times " DW_AT_name: \"btf_type_tag\"" 2 } } */ + +/* Due to an ambiguity in the tree attribute list, it is not currently possible + to distinguish with certaianty whether "tag1" appears to the left or right + of "foo" in the declaration of "b" above. This means that the DIE for + "tag1" is also referred in the AT_GNU_annotation chain of the duplicate + typedef DIE annotated wtih "tag2", for a total of 3 AT_GNU_annotations. */ +/* { dg-final { scan-assembler-times " DW_AT_GNU_annotation" 3 } } */ + +/* A duplicate typedef die must be created for the tagged use in 'b'. */ +/* { dg-final { scan-assembler-times "DIE \\(\[^\n\]*\\) DW_TAG_typedef" 2 } } */ diff --git a/gcc/testsuite/gcc.dg/debug/dwarf2/dwarf-btf-type-tag-8.c b/gcc/testsuite/gcc.dg/debug/dwarf2/dwarf-btf-type-tag-8.c new file mode 100644 index 000000000000..607956adbf62 --- /dev/null +++ b/gcc/testsuite/gcc.dg/debug/dwarf2/dwarf-btf-type-tag-8.c @@ -0,0 +1,23 @@ +/* Test that annotation DIEs are copied as needed to the + debug_types section (DW_UT_type for dwarf 5). */ +/* { dg-do compile } */ +/* { dg-options "-gdwarf-5 -dA -fdebug-types-section" } */ + +int __attribute__((btf_type_tag ("A"))) foo; + +struct S +{ + int x; + char * __attribute__((btf_type_tag ("B"))) c; +} __attribute__((btf_type_tag ("A"))) some_struct; + +/* The struct type is placed in DW_UT_type, and the types of both members and + both tags are copied there too. Since the tags and base types also exist in + the main compile unit, we have 4 annotation DIEs total. But since they + are only referenced by 'foo' and by the struct members, there are only + 3 AT_GNU_annotation. The DIE for tag "B" in the main compile unit is not + referred to by anything. */ + +/* { dg-final { scan-assembler-times " DW_UT_type" 1 } } */ +/* { dg-final { scan-assembler-times "DIE \\(\[^\n\]*\\) DW_TAG_GNU_annotation" 4 } } */ +/* { dg-final { scan-assembler-times " DW_AT_GNU_annotation" 3 } } */ diff --git a/gcc/testsuite/gcc.dg/debug/dwarf2/dwarf-btf-type-tag-9.c b/gcc/testsuite/gcc.dg/debug/dwarf2/dwarf-btf-type-tag-9.c new file mode 100644 index 000000000000..e5db652fd40d --- /dev/null +++ b/gcc/testsuite/gcc.dg/debug/dwarf2/dwarf-btf-type-tag-9.c @@ -0,0 +1,41 @@ +/* Stress test for several btf_type_tag on the same type and specified + in various ways. */ +/* { dg-do compile } */ +/* { dg-options "-std=c23 -gdwarf -dA" } */ + +typedef int __attribute__((btf_type_tag ("A"), btf_type_tag ("B"))) myint; + +myint x; + +struct S +{ + myint * __attribute__((btf_type_tag ("A"))) p; + unsigned long __attribute__((btf_type_tag ("A"))) + __attribute__((btf_type_tag ("B"))) + __attribute__((btf_type_tag ("C"))) l; +}; + +char * [[gnu::btf_type_tag ("B"), gnu::btf_type_tag ("C")]] str; + +unsigned long [[gnu::btf_type_tag ("B")]] +do_thing (struct S * __attribute__((btf_type_tag ("C"), + btf_type_tag ("B"), + btf_type_tag ("A"))) arg) +{ + return arg->l * 2; +} + +/* Expect the following chains of annotations off of the types: + 1. int |-> b -> a -> * + 2. myint* |-> a -> * + 3. unsigned long |-> c -> b -> a -> * + 4. char* |-> c -> b -> * + 4. unsigned long |-> b -> * + 5. struct S* |-> a -> b -> c -> * + + a and b are reused in 1-3 + new c,b created in 4, reused in 5 + new a,b,c created in 5 (not yet deduplicated). */ + +/* { dg-final { scan-assembler-times "DIE \\(\[^\n\]*\\) DW_TAG_GNU_annotation" 8 } } */ +/* { dg-final { scan-assembler-times " DW_AT_GNU_annotation" 11 } } */ diff --git a/gcc/testsuite/gcc.dg/int-bwise-opt-1.c b/gcc/testsuite/gcc.dg/int-bwise-opt-1.c new file mode 100644 index 000000000000..11ea9acb3fc2 --- /dev/null +++ b/gcc/testsuite/gcc.dg/int-bwise-opt-1.c @@ -0,0 +1,31 @@ +/* { dg-do compile } */ +/* { dg-options "-O2 -fdump-tree-optimized" } */ + +int f1(int a, int b) +{ + return (a != b) & ((a | b) != 0); +} + +int f2(int a, int b) +{ + return (a == b) | ((a | b) == 0); +} + +int f3(int a, int b) +{ + return (a != b) & ((a | b) == 0); +} + +int f4(int a, int b) +{ + return (a == b) | ((a | b) != 0); +} + +/* { dg-final { scan-tree-dump-times "\\\|" 0 "optimized" } } */ +/* { dg-final { scan-tree-dump-times "\&" 0 "optimized" } } */ + +/* f3 should fold to `1` (true). */ +/* { dg-final { scan-tree-dump-times "return 1;" 1 "optimized" } } */ + +/* f4 should fold to `0` (false). */ +/* { dg-final { scan-tree-dump-times "return 0;" 1 "optimized" } } */ diff --git a/gcc/testsuite/gcc.dg/int-bwise-opt-2.c b/gcc/testsuite/gcc.dg/int-bwise-opt-2.c new file mode 100644 index 000000000000..cc1a48b061a2 --- /dev/null +++ b/gcc/testsuite/gcc.dg/int-bwise-opt-2.c @@ -0,0 +1,15 @@ +/* { dg-do compile } */ +/* { dg-options "-O2 -fdump-tree-optimized" } */ + +int f1(int a, int b) +{ + return (a != b) | ((a | b) != 0); +} + +int f2(int a, int b) +{ + return (a == b) & ((a | b) == 0); +} + + /* { dg-final { scan-tree-dump-times "a == b" 0 "optimized" } } */ + /* { dg-final { scan-tree-dump-times "a != b" 0 "optimized" } } */ diff --git a/gcc/testsuite/gcc.dg/plugin/analyzer_cpython_plugin.cc b/gcc/testsuite/gcc.dg/plugin/analyzer_cpython_plugin.cc index 01ab76683d3a..c80b2dae66ba 100644 --- a/gcc/testsuite/gcc.dg/plugin/analyzer_cpython_plugin.cc +++ b/gcc/testsuite/gcc.dg/plugin/analyzer_cpython_plugin.cc @@ -1,13 +1,8 @@ /* -fanalyzer plugin for CPython extension modules */ /* { dg-options "-g" } */ -#define INCLUDE_MEMORY -#define INCLUDE_STRING -#define INCLUDE_VECTOR +#include "analyzer/common.h" #include "gcc-plugin.h" -#include "config.h" -#include "system.h" -#include "coretypes.h" #include "tree.h" #include "function.h" #include "basic-block.h" @@ -416,7 +411,7 @@ count_pyobj_references (const region_model *model, for (const auto &binding : retval_binding_map) { - const svalue *binding_sval = binding.second; + const svalue *binding_sval = binding.m_sval; const svalue *unwrapped_sval = binding_sval->unwrap_any_unmergeable (); const region *pointee = unwrapped_sval->maybe_get_region (); @@ -506,7 +501,7 @@ count_all_references (const region_model *model, auto binding_cluster = cluster.second; for (const auto &binding : binding_cluster->get_map ()) { - const svalue *binding_sval = binding.second; + const svalue *binding_sval = binding.m_sval; const svalue *unwrapped_sval = binding_sval->unwrap_any_unmergeable (); diff --git a/gcc/testsuite/gcc.dg/plugin/analyzer_kernel_plugin.cc b/gcc/testsuite/gcc.dg/plugin/analyzer_kernel_plugin.cc index fc282a7c1618..5918bd159f86 100644 --- a/gcc/testsuite/gcc.dg/plugin/analyzer_kernel_plugin.cc +++ b/gcc/testsuite/gcc.dg/plugin/analyzer_kernel_plugin.cc @@ -1,13 +1,8 @@ /* Proof-of-concept of a -fanalyzer plugin for the Linux kernel. */ /* { dg-options "-g" } */ -#define INCLUDE_MEMORY -#define INCLUDE_STRING -#define INCLUDE_VECTOR +#include "analyzer/common.h" #include "gcc-plugin.h" -#include "config.h" -#include "system.h" -#include "coretypes.h" #include "tree.h" #include "function.h" #include "basic-block.h" diff --git a/gcc/testsuite/gcc.dg/plugin/analyzer_known_fns_plugin.cc b/gcc/testsuite/gcc.dg/plugin/analyzer_known_fns_plugin.cc index 44fcf37c7029..d61b69942cdb 100644 --- a/gcc/testsuite/gcc.dg/plugin/analyzer_known_fns_plugin.cc +++ b/gcc/testsuite/gcc.dg/plugin/analyzer_known_fns_plugin.cc @@ -1,13 +1,8 @@ /* Proof-of-concept of a -fanalyzer plugin to handle known functions. */ /* { dg-options "-g" } */ -#define INCLUDE_MEMORY -#define INCLUDE_STRING -#define INCLUDE_VECTOR +#include "analyzer/common.h" #include "gcc-plugin.h" -#include "config.h" -#include "system.h" -#include "coretypes.h" #include "tree.h" #include "function.h" #include "basic-block.h" diff --git a/gcc/testsuite/gcc.dg/plugin/diagnostic_group_plugin.cc b/gcc/testsuite/gcc.dg/plugin/diagnostic_group_plugin.cc index 48f832579add..2bead63eede8 100644 --- a/gcc/testsuite/gcc.dg/plugin/diagnostic_group_plugin.cc +++ b/gcc/testsuite/gcc.dg/plugin/diagnostic_group_plugin.cc @@ -1,5 +1,6 @@ /* { dg-options "-O" } */ +#define INCLUDE_VECTOR #include "gcc-plugin.h" #include "config.h" #include "system.h" diff --git a/gcc/testsuite/gcc.dg/plugin/diagnostic_plugin_test_show_locus.cc b/gcc/testsuite/gcc.dg/plugin/diagnostic_plugin_test_show_locus.cc index 92839cd35b7f..9ee3219370cb 100644 --- a/gcc/testsuite/gcc.dg/plugin/diagnostic_plugin_test_show_locus.cc +++ b/gcc/testsuite/gcc.dg/plugin/diagnostic_plugin_test_show_locus.cc @@ -32,6 +32,7 @@ to ensure that further very long lines don't start a new linemap. This also means that we can't use macros in the test files. */ +#define INCLUDE_VECTOR #include "gcc-plugin.h" #include "config.h" #include "system.h" diff --git a/gcc/testsuite/gcc.dg/plugin/location_overflow_plugin.cc b/gcc/testsuite/gcc.dg/plugin/location_overflow_plugin.cc index 00ad8704477a..2c40b311165e 100644 --- a/gcc/testsuite/gcc.dg/plugin/location_overflow_plugin.cc +++ b/gcc/testsuite/gcc.dg/plugin/location_overflow_plugin.cc @@ -1,6 +1,7 @@ /* Plugin for testing how gracefully we degrade in the face of very large source files. */ +#define INCLUDE_VECTOR #include "config.h" #include "gcc-plugin.h" #include "system.h" diff --git a/gcc/testsuite/gcc.dg/plugin/start_unit_plugin.cc b/gcc/testsuite/gcc.dg/plugin/start_unit_plugin.cc index 7b4f40e0e9df..3b3406e5864c 100644 --- a/gcc/testsuite/gcc.dg/plugin/start_unit_plugin.cc +++ b/gcc/testsuite/gcc.dg/plugin/start_unit_plugin.cc @@ -2,7 +2,7 @@ * By the time a PLUGIN_START_UNIT callback is invoked, the frontend * initialization should have completed. At least the different *_type_nodes * should have been created. This plugin creates an artificial global - * interger variable. + * integer variable. * */ #include "gcc-plugin.h" diff --git a/gcc/testsuite/gcc.dg/pr120560.c b/gcc/testsuite/gcc.dg/pr120560.c new file mode 100644 index 000000000000..deb3c18f0b16 --- /dev/null +++ b/gcc/testsuite/gcc.dg/pr120560.c @@ -0,0 +1,13 @@ +/* { dg-do compile } */ +/* { dg-options "-O3 -fno-tree-ccp -fdump-tree-evrp" } */ +int main() { + int a = -1, b = 2, c = 1; + if (a >= 0) + c = 0; + while (1) { + if (-b + c - 7 >= 0) + return 0; + b = b - 1000 - 2147482648; + } +} +/* { dg-final { scan-tree-dump "return 0" "evrp" } } */ diff --git a/gcc/testsuite/gcc.dg/pr121921-1.c b/gcc/testsuite/gcc.dg/pr121921-1.c new file mode 100644 index 000000000000..828472abbd51 --- /dev/null +++ b/gcc/testsuite/gcc.dg/pr121921-1.c @@ -0,0 +1,15 @@ +/* { dg-do compile } */ +/* { dg-options "-O -fdump-tree-cddce1" } */ + +/* PR tree-optimization/121921 */ + +int * +fx (int *b, int *e) +{ + __SIZE_TYPE__ p = b - e; + /* The first forwprop pass should optimize this to return e; */ + return b - p; +} + +/* { dg-final { scan-tree-dump "return e" "cddce1" } } */ + diff --git a/gcc/testsuite/gcc.dg/pr121987.c b/gcc/testsuite/gcc.dg/pr121987.c new file mode 100644 index 000000000000..80bedcc67aa2 --- /dev/null +++ b/gcc/testsuite/gcc.dg/pr121987.c @@ -0,0 +1,16 @@ +/* { dg-do compile } */ +/* { dg-options "-O3" } */ +int a, b, c, d; +int main() { + unsigned long long e = 10000000000ULL; + unsigned f; + int g; + while (a) { + c = 1; + d = f; + f = ~(~(~(b && g) % a * ~e) << c); + b = e && f % e + ~f; + g = a; + } + return 0; +} diff --git a/gcc/testsuite/gcc.dg/pr78408-2.c b/gcc/testsuite/gcc.dg/pr78408-2.c index 89c9b7eae435..cad1285f70e4 100644 --- a/gcc/testsuite/gcc.dg/pr78408-2.c +++ b/gcc/testsuite/gcc.dg/pr78408-2.c @@ -1,7 +1,7 @@ /* PR c/78408 */ /* { dg-do compile { target size32plus } } */ -/* { dg-options "-O2 -fdump-tree-fab1-details" } */ -/* { dg-final { scan-tree-dump-not "after previous" "fab1" } } */ +/* { dg-options "-O2 -fdump-tree-forwprop1-details" } */ +/* { dg-final { scan-tree-dump-not "after previous" "forwprop1" } } */ struct S { char a[32]; }; struct T { char a[65536]; }; diff --git a/gcc/testsuite/gcc.dg/torture/pr122079-1.c b/gcc/testsuite/gcc.dg/torture/pr122079-1.c new file mode 100644 index 000000000000..0af01a581a17 --- /dev/null +++ b/gcc/testsuite/gcc.dg/torture/pr122079-1.c @@ -0,0 +1,27 @@ +/* { dg-do compile } */ +/* { dg-additional-options "-fcode-hoisting" } */ + +int a, b, c; +void e(int *f) { + int d = 0; + if (f) + goto g; + goto h; +i: + d = 1 + f[0]; +j: + if (c) + goto h; +k: + if (b) + goto i; + if (a) + goto j; +g: + if (d + f[0]) + goto k; +h: + int l[] = {f[0]}; + if (a) + e(l); +} diff --git a/gcc/testsuite/gcc.dg/torture/pr122079-2.c b/gcc/testsuite/gcc.dg/torture/pr122079-2.c new file mode 100644 index 000000000000..40c36b0fefff --- /dev/null +++ b/gcc/testsuite/gcc.dg/torture/pr122079-2.c @@ -0,0 +1,27 @@ +/* { dg-do compile } */ + +int a, b, *c = &a, d, e, f; +void g(int *p) { a = p[0]; } +int main() { + int h = 0; +i: + d = c[0]; + c[0] = h; + if (a) + goto j; +k: + h = c[0] - 1; + while (1) { + if (b) + goto i; + if (f) + goto k; + j: + if (!e) { + int m[] = {c[0]}; + g(m); + break; + } + } + return 0; +} diff --git a/gcc/testsuite/gcc.dg/torture/pr122079-3.c b/gcc/testsuite/gcc.dg/torture/pr122079-3.c new file mode 100644 index 000000000000..df95c7181997 --- /dev/null +++ b/gcc/testsuite/gcc.dg/torture/pr122079-3.c @@ -0,0 +1,27 @@ +/* { dg-do compile } */ +/* { dg-additional-options "-fno-tree-loop-im" } */ + +int a, b, c; +void d(int[]); +void e(int f[][2]) { +g: + b = f[0][1]; + if (c) + goto h; +i: + if (a) + goto g; + if (f[1][1]) + goto j; +h: + if (f[1][1]) + goto i; + goto k; +j: + b--; + if (b + f[0][1]) + goto i; +k: + int l[] = {f[0][1]}; + d(l); +} diff --git a/gcc/testsuite/gcc.dg/torture/pr122188.c b/gcc/testsuite/gcc.dg/torture/pr122188.c new file mode 100644 index 000000000000..2c549630f9de --- /dev/null +++ b/gcc/testsuite/gcc.dg/torture/pr122188.c @@ -0,0 +1,33 @@ +/* PR c/122188 */ +/* { dg-do run } */ + +int +foo (unsigned x, int y) +{ + unsigned a = x; + int b = y; + int ret = __builtin_ctzg (x++, y++); + if (x != a + 1 || y != b + 1) + __builtin_abort (); + return ret; +} + +int +bar (unsigned x, int y) +{ + unsigned a = x; + int b = y; + int ret = __builtin_clzg (x++, y++); + if (x != a + 1 || y != b + 1) + __builtin_abort (); + return ret; +} + +int +main () +{ + if (foo (0, 42) != 42 || foo (1, 5) != 0 || foo (4, 17) != 2) + __builtin_abort (); + if (bar (0, 42) != 42 || bar (~0U, 5) != 0 || bar (~0U >> 4, 17) != 4) + __builtin_abort (); +} diff --git a/gcc/testsuite/gcc.dg/torture/pr122212.c b/gcc/testsuite/gcc.dg/torture/pr122212.c new file mode 100644 index 000000000000..01a66313bbb8 --- /dev/null +++ b/gcc/testsuite/gcc.dg/torture/pr122212.c @@ -0,0 +1,28 @@ +/* { dg-do run } */ + +typedef __UINT32_TYPE__ uint32_t; + +uint32_t __attribute__((noipa)) +ZSTD_countLeadingZeros32_fallback(uint32_t val) +{ + static const uint32_t DeBruijnClz[32] + = { 0, 9, 1, 10, 13, 21, 2, 29, + 11, 14, 16, 18, 22, 25, 3, 30, + 8, 12, 20, 28, 15, 17, 24, 7, + 19, 27, 23, 6, 26, 5, 4, 31}; + val |= val >> 1; + val |= val >> 2; + val |= val >> 4; + val |= val >> 8; + val |= val >> 16; + return 31 - DeBruijnClz[(val * 0x07C4ACDDU) >> 27]; +} + +int main() +{ + if (ZSTD_countLeadingZeros32_fallback (0) != 31) + __builtin_abort (); + if (ZSTD_countLeadingZeros32_fallback (-1U) != 0) + __builtin_abort (); + return 0; +} diff --git a/gcc/testsuite/gcc.dg/torture/restrict-8.c b/gcc/testsuite/gcc.dg/torture/restrict-8.c index 0118de0133c8..420ba2c64b3c 100644 --- a/gcc/testsuite/gcc.dg/torture/restrict-8.c +++ b/gcc/testsuite/gcc.dg/torture/restrict-8.c @@ -1,5 +1,6 @@ /* { dg-do compile } */ -/* { dg-skip-if "" { *-*-* } { "-O0" } { "" } } */ +/* -Og does not build the points-to aliasing info. */ +/* { dg-skip-if "" { *-*-* } { "-O0" "-Og" } { "" } } */ /* { dg-options "-fdump-tree-fre1" } */ struct S { int i; void *p; int j; }; diff --git a/gcc/testsuite/gcc.dg/tree-ssa/builtin-fprintf-1.c b/gcc/testsuite/gcc.dg/tree-ssa/builtin-fprintf-1.c index 9e4501490dbb..31d7f70e4418 100644 --- a/gcc/testsuite/gcc.dg/tree-ssa/builtin-fprintf-1.c +++ b/gcc/testsuite/gcc.dg/tree-ssa/builtin-fprintf-1.c @@ -1,5 +1,5 @@ /* { dg-do compile } */ -/* { dg-options "-O2 -fdump-tree-fab1" } */ +/* { dg-options "-O2 -fdump-tree-optimized" } */ typedef struct { int i; } FILE; FILE *fp; @@ -29,12 +29,12 @@ void test (void) vi9 = 0; } -/* { dg-final { scan-tree-dump "vi0.*fwrite.*\"hello\".*1, 5, fp.*vi1" "fab1"} } */ -/* { dg-final { scan-tree-dump "vi1.*fwrite.*\"hello\\\\n\".*1, 6, fp.*vi2" "fab1"} } */ -/* { dg-final { scan-tree-dump "vi2.*fputc.*fp.*vi3" "fab1"} } */ -/* { dg-final { scan-tree-dump "vi3 ={v} 0\[^\(\)\]*vi4 ={v} 0" "fab1"} } */ -/* { dg-final { scan-tree-dump "vi4.*fwrite.*\"hello\".*1, 5, fp.*vi5" "fab1"} } */ -/* { dg-final { scan-tree-dump "vi5.*fwrite.*\"hello\\\\n\".*1, 6, fp.*vi6" "fab1"} } */ -/* { dg-final { scan-tree-dump "vi6.*fputc.*fp.*vi7" "fab1"} } */ -/* { dg-final { scan-tree-dump "vi7.*fputc.*fp.*vi8" "fab1"} } */ -/* { dg-final { scan-tree-dump "vi8.*fprintf.*fp.*\"%d%d\".*vi9" "fab1"} } */ +/* { dg-final { scan-tree-dump "vi0.*fwrite.*\"hello\".*1, 5, fp.*vi1" "optimized"} } */ +/* { dg-final { scan-tree-dump "vi1.*fwrite.*\"hello\\\\n\".*1, 6, fp.*vi2" "optimized"} } */ +/* { dg-final { scan-tree-dump "vi2.*fputc.*fp.*vi3" "optimized"} } */ +/* { dg-final { scan-tree-dump "vi3 ={v} 0\[^\(\)\]*vi4 ={v} 0" "optimized"} } */ +/* { dg-final { scan-tree-dump "vi4.*fwrite.*\"hello\".*1, 5, fp.*vi5" "optimized"} } */ +/* { dg-final { scan-tree-dump "vi5.*fwrite.*\"hello\\\\n\".*1, 6, fp.*vi6" "optimized"} } */ +/* { dg-final { scan-tree-dump "vi6.*fputc.*fp.*vi7" "optimized"} } */ +/* { dg-final { scan-tree-dump "vi7.*fputc.*fp.*vi8" "optimized"} } */ +/* { dg-final { scan-tree-dump "vi8.*fprintf.*fp.*\"%d%d\".*vi9" "optimized"} } */ diff --git a/gcc/testsuite/gcc.dg/tree-ssa/builtin-fprintf-chk-1.c b/gcc/testsuite/gcc.dg/tree-ssa/builtin-fprintf-chk-1.c index f3de73acd86c..f4f18e8bebbf 100644 --- a/gcc/testsuite/gcc.dg/tree-ssa/builtin-fprintf-chk-1.c +++ b/gcc/testsuite/gcc.dg/tree-ssa/builtin-fprintf-chk-1.c @@ -1,5 +1,5 @@ /* { dg-do compile } */ -/* { dg-options "-O2 -fdump-tree-fab1" } */ +/* { dg-options "-O2 -fdump-tree-optimized" } */ typedef struct { int i; } FILE; FILE *fp; @@ -29,12 +29,12 @@ void test (void) vi9 = 0; } -/* { dg-final { scan-tree-dump "vi0.*fwrite.*\"hello\".*1, 5, fp.*vi1" "fab1"} } */ -/* { dg-final { scan-tree-dump "vi1.*fwrite.*\"hello\\\\n\".*1, 6, fp.*vi2" "fab1"} } */ -/* { dg-final { scan-tree-dump "vi2.*fputc.*fp.*vi3" "fab1"} } */ -/* { dg-final { scan-tree-dump "vi3 ={v} 0\[^\(\)\]*vi4 ={v} 0" "fab1"} } */ -/* { dg-final { scan-tree-dump "vi4.*fwrite.*\"hello\".*1, 5, fp.*vi5" "fab1"} } */ -/* { dg-final { scan-tree-dump "vi5.*fwrite.*\"hello\\\\n\".*1, 6, fp.*vi6" "fab1"} } */ -/* { dg-final { scan-tree-dump "vi6.*fputc.*fp.*vi7" "fab1"} } */ -/* { dg-final { scan-tree-dump "vi7.*fputc.*fp.*vi8" "fab1"} } */ -/* { dg-final { scan-tree-dump "vi8.*__fprintf_chk.*fp.*1.*\"%d%d\".*vi9" "fab1"} } */ +/* { dg-final { scan-tree-dump "vi0.*fwrite.*\"hello\".*1, 5, fp.*vi1" "optimized"} } */ +/* { dg-final { scan-tree-dump "vi1.*fwrite.*\"hello\\\\n\".*1, 6, fp.*vi2" "optimized"} } */ +/* { dg-final { scan-tree-dump "vi2.*fputc.*fp.*vi3" "optimized"} } */ +/* { dg-final { scan-tree-dump "vi3 ={v} 0\[^\(\)\]*vi4 ={v} 0" "optimized"} } */ +/* { dg-final { scan-tree-dump "vi4.*fwrite.*\"hello\".*1, 5, fp.*vi5" "optimized"} } */ +/* { dg-final { scan-tree-dump "vi5.*fwrite.*\"hello\\\\n\".*1, 6, fp.*vi6" "optimized"} } */ +/* { dg-final { scan-tree-dump "vi6.*fputc.*fp.*vi7" "optimized"} } */ +/* { dg-final { scan-tree-dump "vi7.*fputc.*fp.*vi8" "optimized"} } */ +/* { dg-final { scan-tree-dump "vi8.*__fprintf_chk.*fp.*1.*\"%d%d\".*vi9" "optimized"} } */ diff --git a/gcc/testsuite/gcc.dg/tree-ssa/builtin-printf-1.c b/gcc/testsuite/gcc.dg/tree-ssa/builtin-printf-1.c index bd119e0e55bd..056edea65d2d 100644 --- a/gcc/testsuite/gcc.dg/tree-ssa/builtin-printf-1.c +++ b/gcc/testsuite/gcc.dg/tree-ssa/builtin-printf-1.c @@ -1,5 +1,5 @@ /* { dg-do compile } */ -/* { dg-options "-O2 -fdump-tree-fab1" } */ +/* { dg-options "-O2 -fdump-tree-optimized" } */ extern int printf (const char *, ...); volatile int vi0, vi1, vi2, vi3, vi4, vi5, vi6, vi7, vi8, vi9, via; @@ -29,13 +29,13 @@ void test (void) via = 0; } -/* { dg-final { scan-tree-dump "vi0.*printf.*\"hello\".*vi1" "fab1"} } */ -/* { dg-final { scan-tree-dump "vi1.*puts.*\"hello\".*vi2" "fab1"} } */ -/* { dg-final { scan-tree-dump "vi2.*putchar.*vi3" "fab1"} } */ -/* { dg-final { scan-tree-dump "vi3 ={v} 0\[^\(\)\]*vi4 ={v} 0" "fab1"} } */ -/* { dg-final { scan-tree-dump "vi4.*printf.*\"hello\".*vi5" "fab1"} } */ -/* { dg-final { scan-tree-dump "vi5.*puts.*\"hello\".*vi6" "fab1"} } */ -/* { dg-final { scan-tree-dump "vi6.*putchar.*vi7" "fab1"} } */ -/* { dg-final { scan-tree-dump "vi7 ={v} 0\[^\(\)\]*vi8 ={v} 0" "fab1"} } */ -/* { dg-final { scan-tree-dump "vi8.*putchar.*vi9" "fab1"} } */ -/* { dg-final { scan-tree-dump "vi9.*puts.*\"hello\\\\n\".*via" "fab1"} } */ +/* { dg-final { scan-tree-dump "vi0.*printf.*\"hello\".*vi1" "optimized"} } */ +/* { dg-final { scan-tree-dump "vi1.*puts.*\"hello\".*vi2" "optimized"} } */ +/* { dg-final { scan-tree-dump "vi2.*putchar.*vi3" "optimized"} } */ +/* { dg-final { scan-tree-dump "vi3 ={v} 0\[^\(\)\]*vi4 ={v} 0" "optimized"} } */ +/* { dg-final { scan-tree-dump "vi4.*printf.*\"hello\".*vi5" "optimized"} } */ +/* { dg-final { scan-tree-dump "vi5.*puts.*\"hello\".*vi6" "optimized"} } */ +/* { dg-final { scan-tree-dump "vi6.*putchar.*vi7" "optimized"} } */ +/* { dg-final { scan-tree-dump "vi7 ={v} 0\[^\(\)\]*vi8 ={v} 0" "optimized"} } */ +/* { dg-final { scan-tree-dump "vi8.*putchar.*vi9" "optimized"} } */ +/* { dg-final { scan-tree-dump "vi9.*puts.*\"hello\\\\n\".*via" "optimized"} } */ diff --git a/gcc/testsuite/gcc.dg/tree-ssa/builtin-printf-chk-1.c b/gcc/testsuite/gcc.dg/tree-ssa/builtin-printf-chk-1.c index a0c0ef946f38..1a9690fde125 100644 --- a/gcc/testsuite/gcc.dg/tree-ssa/builtin-printf-chk-1.c +++ b/gcc/testsuite/gcc.dg/tree-ssa/builtin-printf-chk-1.c @@ -1,5 +1,5 @@ /* { dg-do compile } */ -/* { dg-options "-O2 -fdump-tree-fab1" } */ +/* { dg-options "-O2 -fdump-tree-optimized" } */ extern int __printf_chk (int, const char *, ...); volatile int vi0, vi1, vi2, vi3, vi4, vi5, vi6, vi7, vi8, vi9, via; @@ -29,13 +29,13 @@ void test (void) via = 0; } -/* { dg-final { scan-tree-dump "vi0.*__printf_chk.*1.*\"hello\".*vi1" "fab1"} } */ -/* { dg-final { scan-tree-dump "vi1.*puts.*\"hello\".*vi2" "fab1"} } */ -/* { dg-final { scan-tree-dump "vi2.*putchar.*vi3" "fab1"} } */ -/* { dg-final { scan-tree-dump "vi3 ={v} 0\[^\(\)\]*vi4 ={v} 0" "fab1"} } */ -/* { dg-final { scan-tree-dump "vi4.*__printf_chk.*1.*\"hello\".*vi5" "fab1"} } */ -/* { dg-final { scan-tree-dump "vi5.*puts.*\"hello\".*vi6" "fab1"} } */ -/* { dg-final { scan-tree-dump "vi6.*putchar.*vi7" "fab1"} } */ -/* { dg-final { scan-tree-dump "vi7 ={v} 0\[^\(\)\]*vi8 ={v} 0" "fab1"} } */ -/* { dg-final { scan-tree-dump "vi8.*putchar.*vi9" "fab1"} } */ -/* { dg-final { scan-tree-dump "vi9.*puts.*\"hello\\\\n\".*via" "fab1"} } */ +/* { dg-final { scan-tree-dump "vi0.*__printf_chk.*1.*\"hello\".*vi1" "optimized"} } */ +/* { dg-final { scan-tree-dump "vi1.*puts.*\"hello\".*vi2" "optimized"} } */ +/* { dg-final { scan-tree-dump "vi2.*putchar.*vi3" "optimized"} } */ +/* { dg-final { scan-tree-dump "vi3 ={v} 0\[^\(\)\]*vi4 ={v} 0" "optimized"} } */ +/* { dg-final { scan-tree-dump "vi4.*__printf_chk.*1.*\"hello\".*vi5" "optimized"} } */ +/* { dg-final { scan-tree-dump "vi5.*puts.*\"hello\".*vi6" "optimized"} } */ +/* { dg-final { scan-tree-dump "vi6.*putchar.*vi7" "optimized"} } */ +/* { dg-final { scan-tree-dump "vi7 ={v} 0\[^\(\)\]*vi8 ={v} 0" "optimized"} } */ +/* { dg-final { scan-tree-dump "vi8.*putchar.*vi9" "optimized"} } */ +/* { dg-final { scan-tree-dump "vi9.*puts.*\"hello\\\\n\".*via" "optimized"} } */ diff --git a/gcc/testsuite/gcc.dg/tree-ssa/builtin-vfprintf-1.c b/gcc/testsuite/gcc.dg/tree-ssa/builtin-vfprintf-1.c index 29b4a4b4ebe7..3124309198c6 100644 --- a/gcc/testsuite/gcc.dg/tree-ssa/builtin-vfprintf-1.c +++ b/gcc/testsuite/gcc.dg/tree-ssa/builtin-vfprintf-1.c @@ -1,5 +1,5 @@ /* { dg-do compile } */ -/* { dg-options "-O2 -fdump-tree-fab1" } */ +/* { dg-options "-O2 -fdump-tree-optimized" } */ #include @@ -29,10 +29,10 @@ test (va_list ap1, va_list ap2, va_list ap3, va_list ap4, va_list ap5, vi7 = 0; } -/* { dg-final { scan-tree-dump "vi0.*fwrite.*\"hello\".*1, 5, fp.*vi1" "fab1"} } */ -/* { dg-final { scan-tree-dump "vi1.*fwrite.*\"hello\\\\n\".*1, 6, fp.*vi2" "fab1"} } */ -/* { dg-final { scan-tree-dump "vi2.*fputc.*fp.*vi3" "fab1"} } */ -/* { dg-final { scan-tree-dump "vi3 ={v} 0\[^\(\)\]*vi4 ={v} 0" "fab1"} } */ -/* { dg-final { scan-tree-dump "vi4.*vfprintf.*\"%s\".*vi5" "fab1"} } */ -/* { dg-final { scan-tree-dump "vi5.*vfprintf.*\"%c\".*vi6" "fab1"} } */ -/* { dg-final { scan-tree-dump "vi6.*vfprintf.*\"%s\\\\n\".*vi7" "fab1"} } */ +/* { dg-final { scan-tree-dump "vi0.*fwrite.*\"hello\".*1, 5, fp.*vi1" "optimized"} } */ +/* { dg-final { scan-tree-dump "vi1.*fwrite.*\"hello\\\\n\".*1, 6, fp.*vi2" "optimized"} } */ +/* { dg-final { scan-tree-dump "vi2.*fputc.*fp.*vi3" "optimized"} } */ +/* { dg-final { scan-tree-dump "vi3 ={v} 0\[^\(\)\]*vi4 ={v} 0" "optimized"} } */ +/* { dg-final { scan-tree-dump "vi4.*vfprintf.*\"%s\".*vi5" "optimized"} } */ +/* { dg-final { scan-tree-dump "vi5.*vfprintf.*\"%c\".*vi6" "optimized"} } */ +/* { dg-final { scan-tree-dump "vi6.*vfprintf.*\"%s\\\\n\".*vi7" "optimized"} } */ diff --git a/gcc/testsuite/gcc.dg/tree-ssa/builtin-vfprintf-chk-1.c b/gcc/testsuite/gcc.dg/tree-ssa/builtin-vfprintf-chk-1.c index c91c70921b50..15ee7f979526 100644 --- a/gcc/testsuite/gcc.dg/tree-ssa/builtin-vfprintf-chk-1.c +++ b/gcc/testsuite/gcc.dg/tree-ssa/builtin-vfprintf-chk-1.c @@ -1,5 +1,5 @@ /* { dg-do compile } */ -/* { dg-options "-O2 -fdump-tree-fab1" } */ +/* { dg-options "-O2 -fdump-tree-optimized" } */ #include @@ -29,10 +29,10 @@ test (va_list ap1, va_list ap2, va_list ap3, va_list ap4, va_list ap5, vi7 = 0; } -/* { dg-final { scan-tree-dump "vi0.*fwrite.*\"hello\".*1, 5, fp.*vi1" "fab1"} } */ -/* { dg-final { scan-tree-dump "vi1.*fwrite.*\"hello\\\\n\".*1, 6, fp.*vi2" "fab1"} } */ -/* { dg-final { scan-tree-dump "vi2.*fputc.*fp.*vi3" "fab1"} } */ -/* { dg-final { scan-tree-dump "vi3 ={v} 0\[^\(\)\]*vi4 ={v} 0" "fab1"} } */ -/* { dg-final { scan-tree-dump "vi4.*__vfprintf_chk.*fp.*1.*\"%s\".*vi5" "fab1"} } */ -/* { dg-final { scan-tree-dump "vi5.*__vfprintf_chk.*fp.*1.*\"%c\".*vi6" "fab1"} } */ -/* { dg-final { scan-tree-dump "vi6.*__vfprintf_chk.*fp.*1.*\"%s\\\\n\".*vi7" "fab1"} } */ +/* { dg-final { scan-tree-dump "vi0.*fwrite.*\"hello\".*1, 5, fp.*vi1" "optimized"} } */ +/* { dg-final { scan-tree-dump "vi1.*fwrite.*\"hello\\\\n\".*1, 6, fp.*vi2" "optimized"} } */ +/* { dg-final { scan-tree-dump "vi2.*fputc.*fp.*vi3" "optimized"} } */ +/* { dg-final { scan-tree-dump "vi3 ={v} 0\[^\(\)\]*vi4 ={v} 0" "optimized"} } */ +/* { dg-final { scan-tree-dump "vi4.*__vfprintf_chk.*fp.*1.*\"%s\".*vi5" "optimized"} } */ +/* { dg-final { scan-tree-dump "vi5.*__vfprintf_chk.*fp.*1.*\"%c\".*vi6" "optimized"} } */ +/* { dg-final { scan-tree-dump "vi6.*__vfprintf_chk.*fp.*1.*\"%s\\\\n\".*vi7" "optimized"} } */ diff --git a/gcc/testsuite/gcc.dg/tree-ssa/builtin-vprintf-1.c b/gcc/testsuite/gcc.dg/tree-ssa/builtin-vprintf-1.c index 023384a3b819..ed7a4ae05592 100644 --- a/gcc/testsuite/gcc.dg/tree-ssa/builtin-vprintf-1.c +++ b/gcc/testsuite/gcc.dg/tree-ssa/builtin-vprintf-1.c @@ -1,5 +1,5 @@ /* { dg-do compile } */ -/* { dg-options "-O2 -fdump-tree-fab1" } */ +/* { dg-options "-O2 -fdump-tree-optimized" } */ #include @@ -27,10 +27,10 @@ test (va_list ap1, va_list ap2, va_list ap3, va_list ap4, va_list ap5, vi7 = 0; } -/* { dg-final { scan-tree-dump "vi0.*vprintf.*\"hello\".*vi1" "fab1"} } */ -/* { dg-final { scan-tree-dump "vi1.*puts.*\"hello\".*vi2" "fab1"} } */ -/* { dg-final { scan-tree-dump "vi2.*putchar.*vi3" "fab1"} } */ -/* { dg-final { scan-tree-dump "vi3 ={v} 0\[^\(\)\]*vi4 ={v} 0" "fab1"} } */ -/* { dg-final { scan-tree-dump "vi4.*vprintf.*\"%s\".*vi5" "fab1"} } */ -/* { dg-final { scan-tree-dump "vi5.*vprintf.*\"%c\".*vi6" "fab1"} } */ -/* { dg-final { scan-tree-dump "vi6.*vprintf.*\"%s\\\\n\".*vi7" "fab1"} } */ +/* { dg-final { scan-tree-dump "vi0.*vprintf.*\"hello\".*vi1" "optimized"} } */ +/* { dg-final { scan-tree-dump "vi1.*puts.*\"hello\".*vi2" "optimized"} } */ +/* { dg-final { scan-tree-dump "vi2.*putchar.*vi3" "optimized"} } */ +/* { dg-final { scan-tree-dump "vi3 ={v} 0\[^\(\)\]*vi4 ={v} 0" "optimized"} } */ +/* { dg-final { scan-tree-dump "vi4.*vprintf.*\"%s\".*vi5" "optimized"} } */ +/* { dg-final { scan-tree-dump "vi5.*vprintf.*\"%c\".*vi6" "optimized"} } */ +/* { dg-final { scan-tree-dump "vi6.*vprintf.*\"%s\\\\n\".*vi7" "optimized"} } */ diff --git a/gcc/testsuite/gcc.dg/tree-ssa/builtin-vprintf-chk-1.c b/gcc/testsuite/gcc.dg/tree-ssa/builtin-vprintf-chk-1.c index 2b21f7b70e22..b86fe33f0edd 100644 --- a/gcc/testsuite/gcc.dg/tree-ssa/builtin-vprintf-chk-1.c +++ b/gcc/testsuite/gcc.dg/tree-ssa/builtin-vprintf-chk-1.c @@ -1,5 +1,5 @@ /* { dg-do compile } */ -/* { dg-options "-O2 -fdump-tree-fab1" } */ +/* { dg-options "-O2 -fdump-tree-optimized" } */ #include @@ -27,10 +27,10 @@ test (va_list ap1, va_list ap2, va_list ap3, va_list ap4, va_list ap5, vi7 = 0; } -/* { dg-final { scan-tree-dump "vi0.*__vprintf_chk.*1.*\"hello\".*vi1" "fab1"} } */ -/* { dg-final { scan-tree-dump "vi1.*puts.*\"hello\".*vi2" "fab1"} } */ -/* { dg-final { scan-tree-dump "vi2.*putchar.*vi3" "fab1"} } */ -/* { dg-final { scan-tree-dump "vi3 ={v} 0\[^\(\)\]*vi4 ={v} 0" "fab1"} } */ -/* { dg-final { scan-tree-dump "vi4.*__vprintf_chk.*1.*\"%s\".*vi5" "fab1"} } */ -/* { dg-final { scan-tree-dump "vi5.*__vprintf_chk.*1.*\"%c\".*vi6" "fab1"} } */ -/* { dg-final { scan-tree-dump "vi6.*__vprintf_chk.*1.*\"%s\\\\n\".*vi7" "fab1"} } */ +/* { dg-final { scan-tree-dump "vi0.*__vprintf_chk.*1.*\"hello\".*vi1" "optimized"} } */ +/* { dg-final { scan-tree-dump "vi1.*puts.*\"hello\".*vi2" "optimized"} } */ +/* { dg-final { scan-tree-dump "vi2.*putchar.*vi3" "optimized"} } */ +/* { dg-final { scan-tree-dump "vi3 ={v} 0\[^\(\)\]*vi4 ={v} 0" "optimized"} } */ +/* { dg-final { scan-tree-dump "vi4.*__vprintf_chk.*1.*\"%s\".*vi5" "optimized"} } */ +/* { dg-final { scan-tree-dump "vi5.*__vprintf_chk.*1.*\"%c\".*vi6" "optimized"} } */ +/* { dg-final { scan-tree-dump "vi6.*__vprintf_chk.*1.*\"%s\\\\n\".*vi7" "optimized"} } */ diff --git a/gcc/testsuite/gcc.dg/tree-ssa/cselim-1.c b/gcc/testsuite/gcc.dg/tree-ssa/cselim-1.c new file mode 100644 index 000000000000..0a9ff554c450 --- /dev/null +++ b/gcc/testsuite/gcc.dg/tree-ssa/cselim-1.c @@ -0,0 +1,38 @@ +/* { dg-do compile } */ +/* { dg-options "-O2 -fdump-tree-phiopt1-stats" } */ + +struct Loc { + int x[3]; +}; + +void bar (struct Loc *); + +int foo (int i, int j, int k, int b) +{ + struct Loc IND; + int res; + + if (b) + { + IND.x[0] = i; + IND.x[1] = j; + IND.x[2] = k-1; + } + else + { + IND.x[0] = i; + IND.x[1] = j; + IND.x[2] = k; + } + + /* This should be optimized to i + j + {k, k + 1}. */ + res = IND.x[0] + IND.x[1] + IND.x[2]; + + /* This is just to prevent SRA. */ + bar (&IND); + + return res; +} + +/* All three stores should be commonalized. */ +/* { dg-final { scan-tree-dump "if-then-else store replacement: 3" "phiopt1" } } */ diff --git a/gcc/testsuite/gcc.dg/tree-ssa/cselim-2.c b/gcc/testsuite/gcc.dg/tree-ssa/cselim-2.c new file mode 100644 index 000000000000..db58dd22e8a8 --- /dev/null +++ b/gcc/testsuite/gcc.dg/tree-ssa/cselim-2.c @@ -0,0 +1,38 @@ +/* { dg-do compile } */ +/* { dg-options "-O2 -ftree-cselim -fdump-tree-cselim-stats -fno-ssa-phiopt" } */ + +struct Loc { + int x[3]; +}; + +void bar (struct Loc *); + +int foo (int i, int j, int k, int b) +{ + struct Loc IND; + int res; + + if (b) + { + IND.x[0] = i; + IND.x[1] = j; + IND.x[2] = k-1; + } + else + { + IND.x[0] = i; + IND.x[1] = j; + IND.x[2] = k; + } + + /* This should be optimized to i + j + {k, k + 1}. */ + res = IND.x[0] + IND.x[1] + IND.x[2]; + + /* This is just to prevent SRA. */ + bar (&IND); + + return res; +} + +/* All three stores should be commonalized. */ +/* { dg-final { scan-tree-dump "if-then-else store replacement: 3" "cselim" } } */ diff --git a/gcc/testsuite/gcc.dg/tree-ssa/cselim-3.c b/gcc/testsuite/gcc.dg/tree-ssa/cselim-3.c new file mode 100644 index 000000000000..d0c8e6a9e18c --- /dev/null +++ b/gcc/testsuite/gcc.dg/tree-ssa/cselim-3.c @@ -0,0 +1,16 @@ +/* { dg-do compile } */ +/* { dg-options "-O2 -fdump-tree-phiopt1-details-stats" } */ +/* PR tree-optimization/122155 */ + +void f(int *a, int b, int c) +{ + if (c) + *a = b; + else + *a = b; +} + +/* When commonalizing a store with the same rhs, a PHI does not need to be created. */ +/* { dg-final { scan-tree-dump "if-then-else store replacement: 1" "phiopt1" } } */ +/* { dg-final { scan-tree-dump-not "to use phi:" "phiopt1" } } */ +/* { dg-final { scan-tree-dump-not "PHI <" "phiopt1" } } */ diff --git a/gcc/testsuite/gcc.dg/tree-ssa/pr122033-1.c b/gcc/testsuite/gcc.dg/tree-ssa/pr122033-1.c new file mode 100644 index 000000000000..4ef8c6c3150f --- /dev/null +++ b/gcc/testsuite/gcc.dg/tree-ssa/pr122033-1.c @@ -0,0 +1,18 @@ +/* PR middle-end/122033 */ +/* { dg-do compile } */ +/* { dg-options "-O2 -fdump-tree-optimized" } */ + +void bar1 (char *, int); +void bar3(void) __attribute__((noreturn)); +void foo1 (int size) +{ + { + char temp[size]; + temp[size-1] = '\0'; + bar1 (temp, size); + } + bar3 (); +} + +/* { dg-final { scan-tree-dump-not "__builtin_stack_save" "optimized"} } */ +/* { dg-final { scan-tree-dump-not "__builtin_stack_restore" "optimized"} } */ diff --git a/gcc/testsuite/gcc.dg/tree-ssa/pr122033-2.c b/gcc/testsuite/gcc.dg/tree-ssa/pr122033-2.c new file mode 100644 index 000000000000..f429324f64c7 --- /dev/null +++ b/gcc/testsuite/gcc.dg/tree-ssa/pr122033-2.c @@ -0,0 +1,23 @@ +/* PR middle-end/122033 */ +/* { dg-do compile } */ +/* { dg-options "-O2 -fdump-tree-optimized" } */ + +void g(int*); +void h(); +double t; +void f(int a, int b) +{ + { + int array0[a]; + { + int array1[b]; + g(array0); + g(array1); + } + t = __builtin_sin(t); + } + h (); +} + +/* { dg-final { scan-tree-dump-times "__builtin_stack_save" 2 "optimized"} } */ +/* { dg-final { scan-tree-dump-times "__builtin_stack_restore" 2 "optimized"} } */ diff --git a/gcc/testsuite/gcc.dg/tree-ssa/pr122153-1.c b/gcc/testsuite/gcc.dg/tree-ssa/pr122153-1.c new file mode 100644 index 000000000000..d6e7527aaa6f --- /dev/null +++ b/gcc/testsuite/gcc.dg/tree-ssa/pr122153-1.c @@ -0,0 +1,30 @@ +/* { dg-do compile } */ +/* { dg-options "-O2 -fdump-tree-phiopt1" } */ +/* PR tree-optimization/122153 */ +struct s1 +{ + int t; +}; +void g(struct s1*); +struct s1 f(int *a, int c, int d) +{ + struct s1 r; + int t1; + if (c < d) + { + r = (struct s1){}; + t1 = c; + } + else + { + r = (struct s1){}; + t1 = d; + } + g(&r); + r.t = t1; + return r; +} +/* the `r = {};` store should be commonialized out of the conditional + and produce a MIN_EXPR in phiopt1. */ + +/* { dg-final { scan-tree-dump "MIN_EXPR" "phiopt1" } } */ diff --git a/gcc/testsuite/gcc.dg/tree-ssa/pr79691.c b/gcc/testsuite/gcc.dg/tree-ssa/pr79691.c index bf889318c063..43770c95bcab 100644 --- a/gcc/testsuite/gcc.dg/tree-ssa/pr79691.c +++ b/gcc/testsuite/gcc.dg/tree-ssa/pr79691.c @@ -34,4 +34,4 @@ int f4 (int i) /* { dg-final { scan-tree-dump-times "sprintf" 1 "optimized" } } { dg-final { scan-tree-dump-times "snprintf" 1 "optimized" } } - { dg-final { scan-tree-dump " = 9;" "optimized" } } */ + { dg-final { scan-tree-dump "return 9;" "optimized" } } */ diff --git a/gcc/testsuite/gcc.dg/tree-ssa/ssa-ccp-10.c b/gcc/testsuite/gcc.dg/tree-ssa/ssa-ccp-10.c index d6126a3e8efe..dc87a56de06e 100644 --- a/gcc/testsuite/gcc.dg/tree-ssa/ssa-ccp-10.c +++ b/gcc/testsuite/gcc.dg/tree-ssa/ssa-ccp-10.c @@ -1,5 +1,5 @@ /* { dg-do compile } */ -/* { dg-options "-O1 -fdump-tree-fab1" } */ +/* { dg-options "-O1 -fdump-tree-optimized" } */ /* Check that we fold strlen of equally long strings, and that we do not fail to terminate when there is a nontrivial cycle in the corresponding @@ -32,4 +32,4 @@ void foo(int i) } /* There should be no calls to strlen. */ -/* { dg-final { scan-tree-dump-times "strlen" 0 "fab1"} } */ +/* { dg-final { scan-tree-dump-times "strlen" 0 "optimized"} } */ diff --git a/gcc/testsuite/gcc.dg/tree-ssa/ssa-pre-19.c b/gcc/testsuite/gcc.dg/tree-ssa/ssa-pre-19.c index bb6300d5c8d7..daa58328ec6d 100644 --- a/gcc/testsuite/gcc.dg/tree-ssa/ssa-pre-19.c +++ b/gcc/testsuite/gcc.dg/tree-ssa/ssa-pre-19.c @@ -1,5 +1,6 @@ /* { dg-do compile } */ -/* { dg-options "-O2 -fdump-tree-pre-stats" } */ +/* Both phiopt and cselim can commonalize the stores so disable them too. */ +/* { dg-options "-O2 -fdump-tree-pre-stats -fno-ssa-phiopt -fno-tree-cselim" } */ struct Loc { int x[3]; diff --git a/gcc/testsuite/gcc.dg/vect/pr122158.c b/gcc/testsuite/gcc.dg/vect/pr122158.c new file mode 100644 index 000000000000..5d0f7dac7dc0 --- /dev/null +++ b/gcc/testsuite/gcc.dg/vect/pr122158.c @@ -0,0 +1,15 @@ +/* { dg-do compile } */ + +int g_3, g_181, g_7; +void func_54(unsigned int, int *); +int func_24() +{ + int p_25; + int *l_49 = &g_3; + func_54(g_7, l_49); +} +void func_54(unsigned int p_55, int *p_56) +{ + for (g_181 = 27; g_181 != 9; --g_181) + p_55 || (*p_56 = 0); +} diff --git a/gcc/testsuite/gcc.dg/vect/vect-bool-2.c b/gcc/testsuite/gcc.dg/vect/vect-bool-2.c new file mode 100644 index 000000000000..88db018a4f51 --- /dev/null +++ b/gcc/testsuite/gcc.dg/vect/vect-bool-2.c @@ -0,0 +1,17 @@ +/* PR122128 */ +/* { dg-do compile } */ + +_Bool a[1024]; +signed char b[1024]; + +void foo () +{ + for (int i = 0; i < 1024; ++i) + { + bool x = a[i]; + bool y = b[i] < 17; + a[i] = x & y; + } +} + +/* { dg-final { scan-tree-dump "optimized: loop vectorized" "vect" } } */ diff --git a/gcc/testsuite/gcc.dg/vect/vect-bool-cmp-3.c b/gcc/testsuite/gcc.dg/vect/vect-bool-cmp-3.c new file mode 100644 index 000000000000..4d96af65e928 --- /dev/null +++ b/gcc/testsuite/gcc.dg/vect/vect-bool-cmp-3.c @@ -0,0 +1,14 @@ +/* PR110223 */ +/* { dg-do compile } */ + +_Bool k[1024]; +_Bool res[1024]; + +int main () +{ + int i; + for (i = 0; i < 1024; i++) + res[i] = k[i] != (i == 0); +} + +/* { dg-final { scan-tree-dump "optimized: loop vectorized" "vect" { target vect_unpack } } } */ diff --git a/gcc/testsuite/gcc.dg/vect/vect-bool-cmp-4.c b/gcc/testsuite/gcc.dg/vect/vect-bool-cmp-4.c new file mode 100644 index 000000000000..162f22835daa --- /dev/null +++ b/gcc/testsuite/gcc.dg/vect/vect-bool-cmp-4.c @@ -0,0 +1,14 @@ +/* PR110223 */ +/* { dg-do compile } */ + +_Bool k[1024]; +_Bool res[1024]; + +int main () +{ + char i; + for (i = 0; i < 64; i++) + res[i] = k[i] != (i == 0); +} + +/* { dg-final { scan-tree-dump "optimized: loop vectorized" "vect" } } */ diff --git a/gcc/testsuite/gcc.dg/vect/vect-cond-14.c b/gcc/testsuite/gcc.dg/vect/vect-cond-14.c new file mode 100644 index 000000000000..754168c5646f --- /dev/null +++ b/gcc/testsuite/gcc.dg/vect/vect-cond-14.c @@ -0,0 +1,38 @@ +#include "tree-vect.h" + +short a[256]; +short b[256]; +short c[256]; +_Bool pb[256]; + +void __attribute__((noipa)) +predicate_by_bool() +{ + for (int i = 0; i < 256; i++) + c[i] = pb[i] ? a[i] : b[i]; +} + +int +main () +{ + check_vect (); + +#pragma GCC novector + for (int i = 0; i < 256; i++) + { + a[i] = i; + b[i] = -i; + pb[i] = (i % 3) == 0; + } + + predicate_by_bool(); + +#pragma GCC novector + for (int i = 0; i < 256; i++) + if (c[i] != (pb[i] ? a[i] : b[i])) + abort (); + + return 0; +} + +/* { dg-final { scan-tree-dump "optimized: loop vectorized" "vect" { target { vect_unpack && vect_condition } } } } */ diff --git a/gcc/testsuite/gcc.target/aarch64/asm-flag-1.c b/gcc/testsuite/gcc.target/aarch64/asm-flag-1.c index 49901e59c38e..7b07cdd77210 100644 --- a/gcc/testsuite/gcc.target/aarch64/asm-flag-1.c +++ b/gcc/testsuite/gcc.target/aarch64/asm-flag-1.c @@ -30,6 +30,6 @@ void f(char *out) /* { dg-final { scan-assembler "cset.*, hi" } } */ /* { dg-final { scan-assembler "cset.*, ls" } } */ /* { dg-final { scan-assembler "cset.*, ge" } } */ -/* { dg-final { scan-assembler "cset.*, ls" } } */ +/* { dg-final { scan-assembler "cset.*, lt" } } */ /* { dg-final { scan-assembler "cset.*, gt" } } */ /* { dg-final { scan-assembler "cset.*, le" } } */ diff --git a/gcc/testsuite/gcc.target/aarch64/builtin_pld_pli.c b/gcc/testsuite/gcc.target/aarch64/builtin_pld_pli.c index 8cbaa97c00ca..0e60baf057b9 100644 --- a/gcc/testsuite/gcc.target/aarch64/builtin_pld_pli.c +++ b/gcc/testsuite/gcc.target/aarch64/builtin_pld_pli.c @@ -1,5 +1,6 @@ /* { dg-do compile } */ /* { dg-options "-march=armv8-a -O2" } */ +/* { dg-final { check-function-bodies "**" "" "" } } */ #include @@ -38,23 +39,27 @@ prefetch_for_read_write (void *a) __pldx (PST, SLC, KEEP, a); __pldx (PST, SLC, STRM, a); } - -/* { dg-final { scan-assembler "prfm\tPLDL1KEEP, \\\[x\[0-9\]+\\\]" } } */ -/* { dg-final { scan-assembler "prfm\tPLDL1STRM, \\\[x\[0-9\]+\\\]" } } */ -/* { dg-final { scan-assembler "prfm\tPLDL2KEEP, \\\[x\[0-9\]+\\\]" } } */ -/* { dg-final { scan-assembler "prfm\tPLDL2STRM, \\\[x\[0-9\]+\\\]" } } */ -/* { dg-final { scan-assembler "prfm\tPLDL3KEEP, \\\[x\[0-9\]+\\\]" } } */ -/* { dg-final { scan-assembler "prfm\tPLDL3STRM, \\\[x\[0-9\]+\\\]" } } */ -/* { dg-final { scan-assembler "prfm\tPLDSLCKEEP, \\\[x\[0-9\]+\\\]" } } */ -/* { dg-final { scan-assembler "prfm\tPLDSLCSTRM, \\\[x\[0-9\]+\\\]" } } */ -/* { dg-final { scan-assembler "prfm\tPSTL1KEEP, \\\[x\[0-9\]+\\\]" } } */ -/* { dg-final { scan-assembler "prfm\tPSTL1STRM, \\\[x\[0-9\]+\\\]" } } */ -/* { dg-final { scan-assembler "prfm\tPSTL2KEEP, \\\[x\[0-9\]+\\\]" } } */ -/* { dg-final { scan-assembler "prfm\tPSTL2STRM, \\\[x\[0-9\]+\\\]" } } */ -/* { dg-final { scan-assembler "prfm\tPSTL3KEEP, \\\[x\[0-9\]+\\\]" } } */ -/* { dg-final { scan-assembler "prfm\tPSTL3STRM, \\\[x\[0-9\]+\\\]" } } */ -/* { dg-final { scan-assembler "prfm\tPSTSLCKEEP, \\\[x\[0-9\]+\\\]" } } */ -/* { dg-final { scan-assembler "prfm\tPSTSLCSTRM, \\\[x\[0-9\]+\\\]" } } */ +/* +** prefetch_for_read_write: +** ... +** prfm\tPLDL1KEEP, \[x[0-9]+\] +** prfm\tPLDL1STRM, \[x[0-9]+\] +** prfm\tPLDL2KEEP, \[x[0-9]+\] +** prfm\tPLDL2STRM, \[x[0-9]+\] +** prfm\tPLDL3KEEP, \[x[0-9]+\] +** prfm\tPLDL3STRM, \[x[0-9]+\] +** prfm\tPLDSLCKEEP, \[x[0-9]+\] +** prfm\tPLDSLCSTRM, \[x[0-9]+\] +** prfm\tPSTL1KEEP, \[x[0-9]+\] +** prfm\tPSTL1STRM, \[x[0-9]+\] +** prfm\tPSTL2KEEP, \[x[0-9]+\] +** prfm\tPSTL2STRM, \[x[0-9]+\] +** prfm\tPSTL3KEEP, \[x[0-9]+\] +** prfm\tPSTL3STRM, \[x[0-9]+\] +** prfm\tPSTSLCKEEP, \[x[0-9]+\] +** prfm\tPSTSLCSTRM, \[x[0-9]+\] +** ... +*/ void prefetch_simple (void *a) @@ -62,9 +67,13 @@ prefetch_simple (void *a) __pld (a); __pli (a); } - -/* { dg-final { scan-assembler "prfm\tPLDL1KEEP, \\\[x\[0-9\]+\\\]" } } */ -/* { dg-final { scan-assembler "prfm\tPLIL1KEEP, \\\[x\[0-9\]+\\\]" } } */ +/* +** prefetch_simple: +** ... +** prfm\tPLDL1KEEP, \[x[0-9]+\] +** prfm\tPLIL1KEEP, \[x[0-9]+\] +** ... +*/ void prefetch_instructions (void *a) @@ -78,13 +87,16 @@ prefetch_instructions (void *a) __plix (SLC, KEEP, a); __plix (SLC, STRM, a); } - -/* { dg-final { scan-assembler "prfm\tPLIL1KEEP, \\\[x\[0-9\]+\\\]" } } */ -/* { dg-final { scan-assembler "prfm\tPLIL1STRM, \\\[x\[0-9\]+\\\]" } } */ -/* { dg-final { scan-assembler "prfm\tPLIL2KEEP, \\\[x\[0-9\]+\\\]" } } */ -/* { dg-final { scan-assembler "prfm\tPLIL2STRM, \\\[x\[0-9\]+\\\]" } } */ -/* { dg-final { scan-assembler "prfm\tPLIL3KEEP, \\\[x\[0-9\]+\\\]" } } */ -/* { dg-final { scan-assembler "prfm\tPLIL3STRM, \\\[x\[0-9\]+\\\]" } } */ -/* { dg-final { scan-assembler "prfm\tPLISLCKEEP, \\\[x\[0-9\]+\\\]" } } */ -/* { dg-final { scan-assembler "prfm\tPLISLCSTRM, \\\[x\[0-9\]+\\\]" } } */ - +/* +** prefetch_instructions: +** ... +** prfm\tPLIL1KEEP, \[x[0-9]+\] +** prfm\tPLIL1STRM, \[x[0-9]+\] +** prfm\tPLIL2KEEP, \[x[0-9]+\] +** prfm\tPLIL2STRM, \[x[0-9]+\] +** prfm\tPLIL3KEEP, \[x[0-9]+\] +** prfm\tPLIL3STRM, \[x[0-9]+\] +** prfm\tPLISLCKEEP, \[x[0-9]+\] +** prfm\tPLISLCSTRM, \[x[0-9]+\] +** ... +*/ diff --git a/gcc/testsuite/gcc.target/aarch64/csinc-1.c b/gcc/testsuite/gcc.target/aarch64/csinc-1.c index 132a0f67939b..53e1ae2c7d98 100644 --- a/gcc/testsuite/gcc.target/aarch64/csinc-1.c +++ b/gcc/testsuite/gcc.target/aarch64/csinc-1.c @@ -1,16 +1,22 @@ /* { dg-do compile } */ /* { dg-options "-O2" } */ +/* { dg-final { check-function-bodies "**" "" "" } } */ unsigned int test_csinc32_ifcvt(unsigned int w0, unsigned int w1, unsigned int w2) { - /* { dg-final { scan-assembler "csinc\tw\[0-9\]*.*ne" } } */ if (w0 == w1) ++ w2; return w2; } +/* +** test_csinc32_ifcvt: +** cmp\tw0, w1 +** cinc\tw0, w2, eq +** ret +*/ unsigned int test_csinc32_condasn1(unsigned int w0, @@ -19,10 +25,15 @@ test_csinc32_condasn1(unsigned int w0, unsigned int w3) { unsigned int w4; - /* { dg-final { scan-assembler "csinc\tw\[0-9\]*.*ne" } } */ w4 = (w0 == w1) ? (w3 + 1) : w2; return w4; } +/* +** test_csinc32_condasn1: +** cmp\tw0, w1 +** csinc\tw0, w2, w3, ne +** ret +*/ unsigned int test_csinc32_condasn2(unsigned int w0, @@ -31,21 +42,31 @@ test_csinc32_condasn2(unsigned int w0, unsigned int w3) { unsigned int w4; - /* { dg-final { scan-assembler "csinc\tw\[0-9\]*.*eq" } } */ w4 = (w0 == w1) ? w2 : (w3 + 1); return w4; } +/* +** test_csinc32_condasn2: +** cmp\tw0, w1 +** csinc\tw0, w2, w3, eq +** ret +*/ unsigned long long test_csinc64_ifcvt(unsigned long long x0, unsigned long long x1, unsigned long long x2) { - /* { dg-final { scan-assembler "csinc\tx\[0-9\]*.*ne" } } */ if (x0 == x1) ++ x2; return x2; } +/* +** test_csinc64_ifcvt: +** cmp\tx0, x1 +** cinc\tx0, x2, eq +** ret +*/ unsigned long long test_csinc64_condasn1(unsigned long long x0, @@ -54,10 +75,15 @@ test_csinc64_condasn1(unsigned long long x0, unsigned long long x3) { unsigned long long x4; - /* { dg-final { scan-assembler "csinc\tx\[0-9\]*.*ne" } } */ x4 = (x0 == x1) ? (x3 + 1) : x2; return x4; } +/* +** test_csinc64_condasn1: +** cmp\tx0, x1 +** csinc\tx0, x2, x3, ne +** ret +*/ unsigned long long test_csinc64_condasn2(unsigned long long x0, @@ -66,7 +92,12 @@ test_csinc64_condasn2(unsigned long long x0, unsigned long long x3) { unsigned long long x4; - /* { dg-final { scan-assembler "csinc\tx\[0-9\]*.*eq" } } */ x4 = (x0 == x1) ? x2 : (x3 + 1); return x4; } +/* +** test_csinc64_condasn2: +** cmp\tx0, x1 +** csinc\tx0, x2, x3, eq +** ret +*/ diff --git a/gcc/testsuite/gcc.target/aarch64/csneg-1.c b/gcc/testsuite/gcc.target/aarch64/csneg-1.c index 4860d64c9353..2533e7b56fe8 100644 --- a/gcc/testsuite/gcc.target/aarch64/csneg-1.c +++ b/gcc/testsuite/gcc.target/aarch64/csneg-1.c @@ -1,5 +1,6 @@ /* { dg-do compile } */ /* { dg-options "-O2" } */ +/* { dg-final { check-function-bodies "**" "" "" } } */ int test_csneg32_condasn1(int w0, @@ -8,10 +9,15 @@ test_csneg32_condasn1(int w0, int w3) { int w4; - /* { dg-final { scan-assembler "csneg\tw\[0-9\]*.*ne" } } */ w4 = (w0 == w1) ? -w3 : w2; return w4; } +/* +** test_csneg32_condasn1: +** cmp\tw0, w1 +** csneg\tw0, w2, w3, ne +** ret +*/ int test_csneg32_condasn2(int w0, @@ -20,10 +26,15 @@ test_csneg32_condasn2(int w0, int w3) { int w4; - /* { dg-final { scan-assembler "csneg\tw\[0-9\]*.*eq" } } */ w4 = (w0 == w1) ? w3 : -w2; return w4; } +/* +** test_csneg32_condasn2: +** cmp\tw0, w1 +** csneg\tw0, w3, w2, eq +** ret +*/ long long test_csneg64_condasn1(long long x0, @@ -32,10 +43,15 @@ test_csneg64_condasn1(long long x0, long long x3) { long long x4; - /* { dg-final { scan-assembler "csneg\tx\[0-9\]*.*ne" } } */ x4 = (x0 == x1) ? -x3 : x2; return x4; } +/* +** test_csneg64_condasn1: +** cmp\tx0, x1 +** csneg\tx0, x2, x3, ne +** ret +*/ long long test_csneg64_condasn2(long long x0, @@ -44,27 +60,41 @@ test_csneg64_condasn2(long long x0, long long x3) { long long x4; - /* { dg-final { scan-assembler "csneg\tx\[0-9\]*.*eq" } } */ x4 = (x0 == x1) ? x3 : -x2; return x4; } +/* +** test_csneg64_condasn2: +** cmp\tx0, x1 +** csneg\tx0, x3, x2, eq +** ret +*/ int test_csneg_cmp(int x) { - /* { dg-final { scan-assembler "csneg\tw\[0-9\]" } } */ if (x > 3) x = -x; return x; } +/* +** test_csneg_cmp: +** cmp\tw0, 3 +** csneg\tw0, w0, w0, le +** ret +*/ unsigned long long test_csneg_uxtw (unsigned int a, unsigned int b, unsigned int c) { - /* { dg-final { scan-assembler "csneg\tw\[0-9\]*.*ne" } } */ - /* { dg-final { scan-assembler-not "uxtw\tw\[0-9\]*.*" } } */ unsigned int val; val = a ? b: -c; return val; } +/* +** test_csneg_uxtw: +** cmp\tw0, 0 +** csneg\tw0, w1, w2, ne +** ret +*/ diff --git a/gcc/testsuite/gcc.target/aarch64/declare-simd-2.c b/gcc/testsuite/gcc.target/aarch64/declare-simd-2.c index 2f4d3a866e55..595a17297b82 100644 --- a/gcc/testsuite/gcc.target/aarch64/declare-simd-2.c +++ b/gcc/testsuite/gcc.target/aarch64/declare-simd-2.c @@ -51,11 +51,10 @@ void f05 (short a, short *b, short c) *b += a + c; } -/* { dg-final { scan-assembler {_ZGVnN4ul2v_f05:} } } */ -/* { dg-final { scan-assembler {_ZGVnN4ul2v_f05:} } } */ -/* { dg-final { scan-assembler {_ZGVnM8ul2v_f05:} } } */ +/* { dg-final { scan-assembler {_ZGVnM4ul2v_f05:} } } */ /* { dg-final { scan-assembler {_ZGVnM8ul2v_f05:} } } */ +/* { dg-final { scan-assembler {_ZGVnN4ul2v_f05:} } } */ +/* { dg-final { scan-assembler {_ZGVnN8ul2v_f05:} } } */ #ifdef __cplusplus } #endif - diff --git a/gcc/testsuite/gcc.target/aarch64/flt_mov_immediate_1.c b/gcc/testsuite/gcc.target/aarch64/flt_mov_immediate_1.c index 7b92a5ae40fb..36a1e3452042 100644 --- a/gcc/testsuite/gcc.target/aarch64/flt_mov_immediate_1.c +++ b/gcc/testsuite/gcc.target/aarch64/flt_mov_immediate_1.c @@ -1,52 +1,74 @@ /* { dg-do compile } */ /* { dg-options "-O3" } */ +/* { dg-final { check-function-bodies "**" "" "" } } */ float f0(void) { float x = 0.0f; return x; } +/* +** f0: +** movi\tv0.2s, #?0 +** ret +*/ float fn1(void) { float x = -0.0f; return x; } +/* +** fn1: +** movi\tv0.2s, 0x80, lsl 24 +** ret +*/ float f1(void) { float x = 256.0f; return x; } +/* +** f1: +** mov\t(w[0-9]+), 1132462080 +** fmov\ts0, \1 +** ret +*/ float f2(void) { float x = 123256.0f; return x; } +/* +** f2: +** mov\t(w[0-9]+), 48128 +** movk\t\1, 0x47f0, lsl 16 +** fmov\ts0, \1 +** ret +*/ float f3(void) { float x = 2.0f; return x; } +/* +** f3: +** fmov\ts0, 2\.0e\+0 +** ret +*/ float f4(void) { float x = -20000.1; return x; } - - -/* { dg-final { scan-assembler-times "movi\tv\[0-9\]+\\\.2s, ?#0" 1 } } */ -/* { dg-final { scan-assembler-times "movi\tv\[0-9\]+\\\.2s, 0x80, lsl 24" 1 } } */ -/* { dg-final { scan-assembler-times "movi\tv\[0-9\]+\\\.2s, 0x80, lsl 24" 1 } } */ - -/* { dg-final { scan-assembler-times "mov\tw\[0-9\]+, 48128" 1 } } */ -/* { dg-final { scan-assembler-times "movk\tw\[0-9\]+, 0x47f0, lsl 16" 1 } } */ - -/* { dg-final { scan-assembler-times "fmov\ts\[0-9\]+, 2\\\.0e\\\+0" 1 } } */ - -/* { dg-final { scan-assembler-times "mov\tw\[0-9\]+, 16435" 1 } } */ -/* { dg-final { scan-assembler-times "movk\tw\[0-9\]+, 0xc69c, lsl 16" 1 } } */ - +/* +** f4: +** mov\t(w[0-9]+), 16435 +** movk\t\1, 0xc69c, lsl 16 +** fmov\ts0, \1 +** ret +*/ diff --git a/gcc/testsuite/gcc.target/aarch64/ldp_stp_18.c b/gcc/testsuite/gcc.target/aarch64/ldp_stp_18.c index ea9fffc22082..49aa0b20ab7d 100644 --- a/gcc/testsuite/gcc.target/aarch64/ldp_stp_18.c +++ b/gcc/testsuite/gcc.target/aarch64/ldp_stp_18.c @@ -107,7 +107,7 @@ CONS4_FN (1, double); CONS4_FN (2, double); /* -** cons2_8_double: +** cons4_4_double: ** ... ** stp q[0-9]+, .* ** ret @@ -115,7 +115,7 @@ CONS4_FN (2, double); CONS4_FN (4, double); /* -** cons2_8_double: +** cons4_8_double: ** ... ** stp q[0-9]+, .* ** ret diff --git a/gcc/testsuite/gcc.target/aarch64/mv-1.c b/gcc/testsuite/gcc.target/aarch64/mv-1.c new file mode 100644 index 000000000000..6f095ecd7a73 --- /dev/null +++ b/gcc/testsuite/gcc.target/aarch64/mv-1.c @@ -0,0 +1,43 @@ +/* { dg-do compile } */ +/* { dg-options "-O0" } */ + +__attribute__ ((target_version ("default"))) int +foo () +{ + return 1; +} + +__attribute__ ((target_version ("rng"))) int +foo () +{ + return 2; +} + +__attribute__ ((target_version ("flagm"))) int +foo () +{ + return 3; +} + +__attribute__ ((target_version ("rng+flagm"))) int +foo () +{ + return 4; +} + +int +bar () +{ + return foo (); +} + +/* Check usage of the first two FMV features, in case of off-by-one errors. */ +/* { dg-final { scan-assembler-times "\nfoo\.default:\n" 1 } } */ +/* { dg-final { scan-assembler-times "\nfoo\._Mrng:\n" 1 } } */ +/* { dg-final { scan-assembler-times "\nfoo\._MrngMflagm:\n" 1 } } */ +/* { dg-final { scan-assembler-times "\nfoo\._Mflagm:\n" 1 } } */ + +/* { dg-final { scan-assembler-times "\nfoo\.resolver:\n" 1 } } */ +/* { dg-final { scan-assembler-times "\n\tbl\tfoo\n" 1 } } */ +/* { dg-final { scan-assembler-times "\n\t\.type\tfoo, %gnu_indirect_function\n" 1 } } */ +/* { dg-final { scan-assembler-times "\n\t\.set\tfoo,foo\.resolver\n" 1 } } */ diff --git a/gcc/testsuite/gcc.target/aarch64/mv-and-mvc-error1.c b/gcc/testsuite/gcc.target/aarch64/mv-and-mvc-error1.c new file mode 100644 index 000000000000..b08de29dd3ca --- /dev/null +++ b/gcc/testsuite/gcc.target/aarch64/mv-and-mvc-error1.c @@ -0,0 +1,9 @@ +/* { dg-do compile } */ +/* { dg-require-ifunc "" } */ +/* { dg-options "-O0" } */ + +__attribute__ ((target_version ("dotprod"))) int +foo () { return 3; } /* { dg-message "previous definition of .foo \\\[\\\[target_version\\(.dotprod.\\)\\\]\\\]. with type .int\\(void\\)." } */ + +__attribute__ ((target_clones ("dotprod", "sve"))) int +foo () { return 1; } /* { dg-error "redefinition of .foo \\\[\\\[target_clones\\(.dotprod., .sve.\\)\\\]\\\]." } */ diff --git a/gcc/testsuite/gcc.target/aarch64/mv-and-mvc-error2.c b/gcc/testsuite/gcc.target/aarch64/mv-and-mvc-error2.c new file mode 100644 index 000000000000..d34b246efc55 --- /dev/null +++ b/gcc/testsuite/gcc.target/aarch64/mv-and-mvc-error2.c @@ -0,0 +1,9 @@ +/* { dg-do compile } */ +/* { dg-require-ifunc "" } */ +/* { dg-options "-O0" } */ + +__attribute__ ((target_version ("default"))) int +foo () { return 1; } /* { dg-message "previous definition of .foo \\\[\\\[target_version\\(.default.\\)\\\]\\\]. with type .int\\(void\\)." } */ + +__attribute__ ((target_clones ("dotprod", "sve"))) float +foo () { return 3; } /* { dg-error "conflicting types for .foo \\\[\\\[target_clones\\(.dotprod., .sve.\\)\\\]\\\].; have .float\\(void\\)." } */ diff --git a/gcc/testsuite/gcc.target/aarch64/mv-and-mvc-error3.c b/gcc/testsuite/gcc.target/aarch64/mv-and-mvc-error3.c new file mode 100644 index 000000000000..a6a45bdf7aa9 --- /dev/null +++ b/gcc/testsuite/gcc.target/aarch64/mv-and-mvc-error3.c @@ -0,0 +1,8 @@ +/* { dg-do compile } */ +/* { dg-require-ifunc "" } */ +/* { dg-options "-O0" } */ + +float foo () { return 1; } /* { dg-message "previous definition of .foo." } */ + +__attribute__ ((target_clones ("default", "dotprod", "sve"))) float +foo () { return 3; } /* { dg-error "redefinition of .foo \\\[\\\[target_clones\\(.default., .dotprod., .sve.\\)\\\]\\\]." } */ diff --git a/gcc/testsuite/gcc.target/aarch64/mv-and-mvc1.c b/gcc/testsuite/gcc.target/aarch64/mv-and-mvc1.c new file mode 100644 index 000000000000..39ed306eec25 --- /dev/null +++ b/gcc/testsuite/gcc.target/aarch64/mv-and-mvc1.c @@ -0,0 +1,37 @@ +/* { dg-do compile } */ +/* { dg-require-ifunc "" } */ +/* { dg-options "-O0" } */ + +__attribute__((target_version("default"))) +int foo () +{ + return 0; +} + +__attribute__((target_clones("dotprod", "sve+sve2"))) +int foo () +{ + return 1; +} + +__attribute__((target_clones("sve", "sve2"))) +int foo () +{ + return 2; +} + +int bar() +{ + return foo (); +} + + +/* { dg-final { scan-assembler-times "\nfoo\.default:\n" 1 } } */ +/* { dg-final { scan-assembler-times "\nfoo\._Mdotprod:\n" 1 } } */ +/* { dg-final { scan-assembler-times "\nfoo\._MsveMsve2:\n" 1 } } */ +/* { dg-final { scan-assembler-times "\nfoo\._Msve:\n" 1 } } */ +/* { dg-final { scan-assembler-times "\nfoo\._Msve2:\n" 1 } } */ +/* { dg-final { scan-assembler-times "\nfoo\.resolver:\n" 1 } } */ +/* { dg-final { scan-assembler-times "\n\tbl\tfoo\n" 1 } } */ +/* { dg-final { scan-assembler-times "\n\t\.type\tfoo, %gnu_indirect_function\n" 1 } } */ +/* { dg-final { scan-assembler-times "\n\t\.set\tfoo,foo\.resolver\n" 1 } } */ diff --git a/gcc/testsuite/gcc.target/aarch64/mv-and-mvc2.c b/gcc/testsuite/gcc.target/aarch64/mv-and-mvc2.c new file mode 100644 index 000000000000..17c7cbdd02da --- /dev/null +++ b/gcc/testsuite/gcc.target/aarch64/mv-and-mvc2.c @@ -0,0 +1,28 @@ +/* { dg-do compile } */ +/* { dg-require-ifunc "" } */ +/* { dg-options "-O0" } */ + +__attribute__((target_version("default"))) +int foo (); + +__attribute__((target_clones("dotprod", "sve+sve2"))) +int foo () +{ + return 1; +} + +__attribute__((target_clones("sve", "sve2"))) +int foo () +{ + return 2; +} + +/* { dg-final { scan-assembler-times "\nfoo\.default:\n" 0 } } */ +/* { dg-final { scan-assembler-times "\nfoo:\n" 0 } } */ +/* { dg-final { scan-assembler-times "\nfoo\._Mdotprod:\n" 1 } } */ +/* { dg-final { scan-assembler-times "\nfoo\._MsveMsve2:\n" 1 } } */ +/* { dg-final { scan-assembler-times "\nfoo\._Msve:\n" 1 } } */ +/* { dg-final { scan-assembler-times "\nfoo\._Msve2:\n" 1 } } */ +/* { dg-final { scan-assembler-times "\nfoo\.resolver:\n" 0 } } */ +/* { dg-final { scan-assembler-times "\n\t\.type\tfoo, %gnu_indirect_function\n" 0 } } */ +/* { dg-final { scan-assembler-times "\n\t\.set\tfoo,foo\.resolver\n" 0 } } */ diff --git a/gcc/testsuite/gcc.target/aarch64/mv-and-mvc3.c b/gcc/testsuite/gcc.target/aarch64/mv-and-mvc3.c new file mode 100644 index 000000000000..8325c8e06999 --- /dev/null +++ b/gcc/testsuite/gcc.target/aarch64/mv-and-mvc3.c @@ -0,0 +1,40 @@ +/* { dg-do compile } */ +/* { dg-require-ifunc "" } */ +/* { dg-options "-O0" } */ + +__attribute__((target_clones("dotprod", "sve+sve2"))) +int foo (); + +__attribute__((target_version("default"))) +int foo () +{ + return 0; +} + +__attribute__((target_clones("sve", "sve2"))) +int foo () +{ + return 2; +} + +int bar() +{ + return foo (); +} + + +/* { dg-final { scan-assembler-times "\nfoo\.default:\n" 1 } } */ +/* { dg-final { scan-assembler-times "\nfoo\._Mdotprod:\n" 0 } } */ +/* { dg-final { scan-assembler-times "\nfoo\._MsveMsve2:\n" 0 } } */ +/* { dg-final { scan-assembler-times "\nfoo\._Msve:\n" 1 } } */ +/* { dg-final { scan-assembler-times "\nfoo\._Msve2:\n" 1 } } */ +/* { dg-final { scan-assembler-times "\nfoo\.resolver:\n" 1 } } */ +/* { dg-final { scan-assembler-times "\n\tbl\tfoo\n" 1 } } */ +/* { dg-final { scan-assembler-times "\n\t\.type\tfoo, %gnu_indirect_function\n" 1 } } */ +/* { dg-final { scan-assembler-times "\n\t\.set\tfoo,foo\.resolver\n" 1 } } */ +// { dg-final { scan-assembler-times "\n\tadrp\tx\[0-9\]+, foo\.default\n" 1 } } +/* { dg-final { scan-assembler-times "\n\tadrp\tx\[0-9\]+, foo\._Mdotprod\n" 1 } } */ +/* { dg-final { scan-assembler-times "\n\tadrp\tx\[0-9\]+, foo\._MsveMsve2\n" 1 } } */ +/* { dg-final { scan-assembler-times "\n\tadrp\tx\[0-9\]+, foo\._Msve\n" 1 } } */ +/* { dg-final { scan-assembler-times "\n\tadrp\tx\[0-9\]+, foo\._Msve2\n" 1 } } */ + diff --git a/gcc/testsuite/gcc.target/aarch64/mv-and-mvc4.c b/gcc/testsuite/gcc.target/aarch64/mv-and-mvc4.c new file mode 100644 index 000000000000..951c9500d747 --- /dev/null +++ b/gcc/testsuite/gcc.target/aarch64/mv-and-mvc4.c @@ -0,0 +1,37 @@ +/* { dg-do compile } */ +/* { dg-require-ifunc "" } */ +/* { dg-options "-O0" } */ + +__attribute__((target_version("dotprod"))) +int foo () +{ + return 0; +} + +__attribute__((target_clones("default", "sve+sve2"))) +int foo () +{ + return 1; +} + +__attribute__((target_clones("sve", "sve2"))) +int foo () +{ + return 2; +} + +int bar() +{ + return foo (); +} + + +/* { dg-final { scan-assembler-times "\nfoo\.default:\n" 1 } } */ +/* { dg-final { scan-assembler-times "\nfoo\._Mdotprod:\n" 1 } } */ +/* { dg-final { scan-assembler-times "\nfoo\._MsveMsve2:\n" 1 } } */ +/* { dg-final { scan-assembler-times "\nfoo\._Msve:\n" 1 } } */ +/* { dg-final { scan-assembler-times "\nfoo\._Msve2:\n" 1 } } */ +/* { dg-final { scan-assembler-times "\nfoo\.resolver:\n" 1 } } */ +/* { dg-final { scan-assembler-times "\n\tbl\tfoo\n" 1 } } */ +/* { dg-final { scan-assembler-times "\n\t\.type\tfoo, %gnu_indirect_function\n" 1 } } */ +/* { dg-final { scan-assembler-times "\n\t\.set\tfoo,foo\.resolver\n" 1 } } */ diff --git a/gcc/testsuite/gcc.target/aarch64/mv-error1.c b/gcc/testsuite/gcc.target/aarch64/mv-error1.c new file mode 100644 index 000000000000..61c9af276e6e --- /dev/null +++ b/gcc/testsuite/gcc.target/aarch64/mv-error1.c @@ -0,0 +1,18 @@ +/* { dg-do compile } */ +/* { dg-require-ifunc "" } */ +/* { dg-options "-O0" } */ + +__attribute__ ((target_version ("default"))) int +foo (); + +__attribute__ ((target_version ("default"))) int +foo () { return 1; } /* { dg-message "previous definition of .foo \\\[\\\[target_version\\(.default.\\)\\\]\\\]. with type .int\\(void\\)." } */ + +__attribute__ ((target_version ("dotprod"))) float +foo () { return 3; } /* { dg-error "conflicting types for .foo \\\[\\\[target_version\\(.dotprod.\\)\\\]\\\].; have .float\\(void\\)." } */ + +__attribute__ ((target_version ("sve"))) int +foo2 () { return 1; } /* { dg-message "previous definition of .foo2 \\\[\\\[target_version\\(.sve.\\)\\\]\\\]. with type .int\\(void\\)." } */ + +__attribute__ ((target_version ("dotprod"))) float +foo2 () { return 3; } /* { dg-error "conflicting types for .foo2 \\\[\\\[target_version\\(.dotprod.\\)\\\]\\\].; have .float\\(void\\)." } */ diff --git a/gcc/testsuite/gcc.target/aarch64/mv-error10.c b/gcc/testsuite/gcc.target/aarch64/mv-error10.c new file mode 100644 index 000000000000..218f103a8f43 --- /dev/null +++ b/gcc/testsuite/gcc.target/aarch64/mv-error10.c @@ -0,0 +1,13 @@ +/* { dg-do compile } */ +/* { dg-require-ifunc "" } */ +/* { dg-options "-O0" } */ + +void +bar () +{ + __attribute__ ((target_version ("dotprod"))) int + foo1 (); /* { dg-message "versioned declarations are only allowed at file scope" } */ + + __attribute__ ((target_version ("simd"))) int + foo2 () { return 1; } /* { dg-message "versioned definitions are only allowed at file scope" } */ +} diff --git a/gcc/testsuite/gcc.target/aarch64/mv-error11.c b/gcc/testsuite/gcc.target/aarch64/mv-error11.c new file mode 100644 index 000000000000..0fdd66012d30 --- /dev/null +++ b/gcc/testsuite/gcc.target/aarch64/mv-error11.c @@ -0,0 +1,9 @@ +/* { dg-do compile } */ +/* { dg-require-ifunc "" } */ +/* { dg-options "-O0" } */ + +int fn () asm("name"); +int fn () { return 1; } /* { dg-error "cannot use function multiversioning on a renamed function" } */ +int fn [[gnu::target_version("sve")]] () { return 1; } + +int fn2 [[gnu::target_version("sve")]] () asm("name"); /* { dg-warning ".asm. declaration ignored due to conflict with previous rename" } */ diff --git a/gcc/testsuite/gcc.target/aarch64/mv-error12.c b/gcc/testsuite/gcc.target/aarch64/mv-error12.c new file mode 100644 index 000000000000..45da85a67b96 --- /dev/null +++ b/gcc/testsuite/gcc.target/aarch64/mv-error12.c @@ -0,0 +1,13 @@ +/* { dg-do compile } */ +/* { dg-options "-fopenmp" } */ +/* { dg-require-ifunc "" } */ + +#pragma omp declare simd +int fn [[gnu::target_version("sve")]] () { return 1; } /* { dg-error ".#pragma omp declare simd. cannot be used with function multi-versioning" } */ + +#pragma omp declare simd +int fn2 () { return 1; } + +int fn2 [[gnu::target_version("sve")]] (); /* { dg-warning "ignoring attribute .target_version. because it conflicts with attribute .omp declare simd." } */ + +int fn3 [[gnu::target_version("sve")]] [[gnu::simd]] () { return 1; } /* { dg-warning "ignoring attribute .simd. because it conflicts with attribute .target_version." } */ diff --git a/gcc/testsuite/gcc.target/aarch64/mv-error2.c b/gcc/testsuite/gcc.target/aarch64/mv-error2.c new file mode 100644 index 000000000000..19d961d0a5a6 --- /dev/null +++ b/gcc/testsuite/gcc.target/aarch64/mv-error2.c @@ -0,0 +1,9 @@ +/* { dg-do compile } */ +/* { dg-require-ifunc "" } */ +/* { dg-options "-O0" } */ + +__attribute__ ((target_version ("dotprod"))) float +foo () { return 3; } /* { dg-message "previous definition of .foo \\\[\\\[target_version\\(.dotprod.\\)\\\]\\\]. with type .float\\(void\\)." } */ + +__attribute__ ((target_version ("dotprod"))) float +foo () { return 3; } /* { dg-error "redefinition of .foo \\\[\\\[target_version\\(.dotprod.\\)\\\]\\\]." } */ diff --git a/gcc/testsuite/gcc.target/aarch64/mv-error3.c b/gcc/testsuite/gcc.target/aarch64/mv-error3.c new file mode 100644 index 000000000000..451ce028c655 --- /dev/null +++ b/gcc/testsuite/gcc.target/aarch64/mv-error3.c @@ -0,0 +1,12 @@ +/* { dg-do compile } */ +/* { dg-require-ifunc "" } */ +/* { dg-options "-O0" } */ + +__attribute__ ((target_version ("dotprod"))) float +foo () { return 3; } + +__attribute__ ((target_version ("default"))) float +foo () { return 3; } /* { dg-message "previous definition of .foo \\\[\\\[target_version\\(.default.\\)\\\]\\\]. with type .float\\(void\\)." } */ + +__attribute__ ((target_version ("default"))) float +foo () { return 3; } /* { dg-error "redefinition of .foo \\\[\\\[target_version\\(.default.\\)\\\]\\\]." } */ diff --git a/gcc/testsuite/gcc.target/aarch64/mv-error4.c b/gcc/testsuite/gcc.target/aarch64/mv-error4.c new file mode 100644 index 000000000000..44d3195590d2 --- /dev/null +++ b/gcc/testsuite/gcc.target/aarch64/mv-error4.c @@ -0,0 +1,9 @@ +/* { dg-do compile } */ +/* { dg-require-ifunc "" } */ +/* { dg-options "-O0" } */ + +__attribute__ ((target_version ("test"))) float +foo () { return 3; } /* { dg-error "invalid feature modifier .test. of value .test. in .target_version. attribute" } */ + +__attribute__ ((target_version ("sve+test"))) float +foo2 () { return 3; } /* { dg-error "invalid feature modifier .test. of value .sve.test. in .target_version. attribute" } */ diff --git a/gcc/testsuite/gcc.target/aarch64/mv-error5.c b/gcc/testsuite/gcc.target/aarch64/mv-error5.c new file mode 100644 index 000000000000..776b80a45b65 --- /dev/null +++ b/gcc/testsuite/gcc.target/aarch64/mv-error5.c @@ -0,0 +1,8 @@ +/* { dg-do compile } */ +/* { dg-require-ifunc "" } */ +/* { dg-options "-O0" } */ + +__attribute__ ((target_version ("sve+sve2"))) int +foo(); /* { dg-message "previous declaration of .foo \\\[\\\[target_version\\(.sve\\\+sve2.\\)\\\]\\\]. with type .int\\(void\\)." } */ + +int bar () { return foo (); } /* { dg-error "implicit declaration of function .foo." } */ diff --git a/gcc/testsuite/gcc.target/aarch64/mv-error6.c b/gcc/testsuite/gcc.target/aarch64/mv-error6.c new file mode 100644 index 000000000000..afc71a44e735 --- /dev/null +++ b/gcc/testsuite/gcc.target/aarch64/mv-error6.c @@ -0,0 +1,20 @@ +/* { dg-do compile } */ +/* { dg-require-ifunc "" } */ +/* { dg-options "-O0" } */ + +__attribute__ ((target_version ("sve+sve2"))) int +foo () { + return 1; +} + +__attribute__ ((target_version ("sve"))) int +foo () { /* { dg-message "previous definition of .foo \\\[\\\[target_version\\(.sve.\\)\\\]\\\]. with type .int\\(void\\)." } */ + return 1; +} + +int bar () { return foo (); } /* { dg-error "implicit declaration of function .foo." } */ + +__attribute__ ((target_version ("sve+sve2"))) int +foo2(); /* { dg-message "previous declaration of .foo2 \\\[\\\[target_version\\(.sve\\\+sve2.\\)\\\]\\\]. with type .int\\(void\\)." } */ + +int bar2 () { return foo2 (); } /* { dg-error "implicit declaration of function .foo2." } */ diff --git a/gcc/testsuite/gcc.target/aarch64/mv-error7.c b/gcc/testsuite/gcc.target/aarch64/mv-error7.c new file mode 100644 index 000000000000..68db9783ce62 --- /dev/null +++ b/gcc/testsuite/gcc.target/aarch64/mv-error7.c @@ -0,0 +1,11 @@ +/* { dg-do compile } */ +/* { dg-require-ifunc "" } */ +/* { dg-options "-O0" } */ + +__attribute__ ((target_version ("dotprod"))) int +foo (); /* { dg-message "previous declaration of .foo \\\[\\\[target_version\\(.dotprod.\\)\\\]\\\]. with type .int\\(void\\)." } */ + +__attribute__ ((target_version ("sve+sve2"))) int +foo (); + +int bar () { return foo (); } /* { dg-error "implicit declaration of function .foo." } */ diff --git a/gcc/testsuite/gcc.target/aarch64/mv-error8.c b/gcc/testsuite/gcc.target/aarch64/mv-error8.c new file mode 100644 index 000000000000..7599df189e41 --- /dev/null +++ b/gcc/testsuite/gcc.target/aarch64/mv-error8.c @@ -0,0 +1,12 @@ +/* { dg-do compile } */ +/* { dg-options "-O0" } */ + +__attribute__ ((target_version ("default"))) int +foo (int a, int (*b)[4]) { return 1; } + +int bar(void) { + __attribute__ ((target_version ("dotprod"))) int + foo (int a, int (*b)[5]) { return 3; } /* { dg-error "versioned definitions are only allowed at file scope" } */ + + return 1; +} diff --git a/gcc/testsuite/gcc.target/aarch64/mv-error9.c b/gcc/testsuite/gcc.target/aarch64/mv-error9.c new file mode 100644 index 000000000000..dc982e9d4151 --- /dev/null +++ b/gcc/testsuite/gcc.target/aarch64/mv-error9.c @@ -0,0 +1,12 @@ +/* { dg-do compile } */ +/* { dg-require-ifunc "" } */ +/* { dg-options "-O0" } */ + +__attribute__ ((target_version ("dotprod"))) int +foo (); /* { dg-message "previous declaration of .foo \\\[\\\[target_version\\(.dotprod.\\)\\\]\\\]. with type .int\\(void\\)." } */ + +int +bar () +{ + return foo (); /* { dg-error "implicit declaration of function .foo." } */ +} diff --git a/gcc/testsuite/gcc.target/aarch64/mv-symbols1.c b/gcc/testsuite/gcc.target/aarch64/mv-symbols1.c new file mode 100644 index 000000000000..798227826e50 --- /dev/null +++ b/gcc/testsuite/gcc.target/aarch64/mv-symbols1.c @@ -0,0 +1,38 @@ +/* { dg-do compile } */ +/* { dg-options "-O0" } */ + +// Basic case of fmv correctness with all functions and use in one TU. + +__attribute__ ((target_version ("default"))) int +foo () +{ + return 1; +} + +__attribute__ ((target_version ("dotprod"))) int +foo () +{ + return 3; +} +__attribute__ ((target_version ("sve+sve2"))) int +foo () +{ + return 5; +} + +int +bar () +{ + return foo (); +} + +/* When updating any of the symbol names in these tests, make sure to also + update any tests for their absence in mv-symbolsN.C */ + +/* { dg-final { scan-assembler-times "\nfoo\.default:\n" 1 } } */ +/* { dg-final { scan-assembler-times "\nfoo\._Mdotprod:\n" 1 } } */ +/* { dg-final { scan-assembler-times "\nfoo\._MsveMsve2:\n" 1 } } */ +/* { dg-final { scan-assembler-times "\nfoo\.resolver:\n" 1 } } */ +/* { dg-final { scan-assembler-times "\n\tbl\tfoo\n" 1 } } */ +/* { dg-final { scan-assembler-times "\n\t\.type\tfoo, %gnu_indirect_function\n" 1 } } */ +/* { dg-final { scan-assembler-times "\n\t\.set\tfoo,foo\.resolver\n" 1 } } */ diff --git a/gcc/testsuite/gcc.target/aarch64/mv-symbols10.c b/gcc/testsuite/gcc.target/aarch64/mv-symbols10.c new file mode 100644 index 000000000000..d5256389d7bb --- /dev/null +++ b/gcc/testsuite/gcc.target/aarch64/mv-symbols10.c @@ -0,0 +1,42 @@ +/* { dg-do compile } */ +/* { dg-options "-O0" } */ + +int +foo (); + +int +foo () +{ + return 1; +} + +__attribute__ ((target_version ("dotprod"))) int +foo () +{ + return 3; +} +__attribute__ ((target_version ("sve+sve2"))) int +foo () +{ + return 5; +} + +int +bar () +{ + return foo (); +} + +/* { dg-final { scan-assembler-times "\nfoo\.default:\n" 1 } } */ +/* { dg-final { scan-assembler-times "\nfoo\._Mdotprod:\n" 1 } } */ +/* { dg-final { scan-assembler-times "\nfoo\._MsveMsve2:\n" 1 } } */ + +/* { dg-final { scan-assembler-times "\nfoo\.resolver:\n" 1 } } */ +/* { dg-final { scan-assembler-times "\n\tadrp\tx., foo\._MsveMsve2\n" 1 } } */ +/* { dg-final { scan-assembler-times "\n\tadrp\tx., foo\._Mdotprod\n" 1 } } */ +/* { dg-final { scan-assembler-times "\n\tadrp\tx., foo\.default\n" 1 } } */ + +/* { dg-final { scan-assembler-times "\n\tbl\tfoo\n" 1 } } */ + +/* { dg-final { scan-assembler-times "\n\t\.type\tfoo, %gnu_indirect_function\n" 1 } } */ +/* { dg-final { scan-assembler-times "\n\t\.set\tfoo,foo\.resolver\n" 1 } } */ diff --git a/gcc/testsuite/gcc.target/aarch64/mv-symbols11.c b/gcc/testsuite/gcc.target/aarch64/mv-symbols11.c new file mode 100644 index 000000000000..fd3dc345a599 --- /dev/null +++ b/gcc/testsuite/gcc.target/aarch64/mv-symbols11.c @@ -0,0 +1,16 @@ +/* { dg-do compile } */ +/* { dg-options "-O0" } */ + +// Check that types can be combined + +__attribute__ ((target_version ("default"))) int +foo (int a, int (*b)[4]) { return 1; } + +__attribute__ ((target_version ("dotprod"))) int +foo (int a, int (*b)[]) { return 3; } + +/* { dg-final { scan-assembler-times "\nfoo\.default:\n" 1 } } */ +/* { dg-final { scan-assembler-times "\nfoo\._Mdotprod:\n" 1 } } */ +/* { dg-final { scan-assembler-times "\nfoo\.resolver:\n" 1 } } */ +/* { dg-final { scan-assembler-times "\n\t\.type\tfoo, %gnu_indirect_function\n" 1 } } */ +/* { dg-final { scan-assembler-times "\n\t\.set\tfoo,foo\.resolver\n" 1 } } */ diff --git a/gcc/testsuite/gcc.target/aarch64/mv-symbols12.c b/gcc/testsuite/gcc.target/aarch64/mv-symbols12.c new file mode 100644 index 000000000000..1a0b667eb5f1 --- /dev/null +++ b/gcc/testsuite/gcc.target/aarch64/mv-symbols12.c @@ -0,0 +1,27 @@ +/* { dg-do compile } */ +/* { dg-options "-O0" } */ + +__attribute__ ((target_version ("default"))) int +foo () { return 1; } + +__attribute__ ((target_version ("dotprod"))) int +foo () { return 3; } + +int bar () +{ + int (*test)() = foo; + + test(); +} + +/* { dg-final { scan-assembler-times "\nfoo\.default:\n" 1 } } */ +/* { dg-final { scan-assembler-times "\nfoo\._Mdotprod:\n" 1 } } */ + +/* { dg-final { scan-assembler-times "\nfoo\.resolver:\n" 1 } } */ +/* { dg-final { scan-assembler-times "\n\tadrp\tx\[0-9\], foo\._Mdotprod\n" 1 } } */ +/* { dg-final { scan-assembler-times "\n\tadrp\tx\[0-9\], foo\.default\n" 1 } } */ + +/* { dg-final { scan-assembler-times "\n\tadrp\tx\[0-9\]+, foo\n" 1 } } */ + +/* { dg-final { scan-assembler-times "\n\t\.type\tfoo, %gnu_indirect_function\n" 1 } } */ +/* { dg-final { scan-assembler-times "\n\t\.set\tfoo,foo\.resolver\n" 1 } } */ diff --git a/gcc/testsuite/gcc.target/aarch64/mv-symbols13.c b/gcc/testsuite/gcc.target/aarch64/mv-symbols13.c new file mode 100644 index 000000000000..308dace64a78 --- /dev/null +++ b/gcc/testsuite/gcc.target/aarch64/mv-symbols13.c @@ -0,0 +1,28 @@ +/* { dg-do compile } */ +/* { dg-options "-O0" } */ + +__attribute__ ((target_version ("default"))) int +foo (); + +int bar () +{ + int (*test)() = foo; + + test(); +} + +__attribute__ ((target_version ("dotprod"))) int +foo () { return 3; } + +/* { dg-final { scan-assembler-times "\nfoo\.default:\n" 0 } } */ +/* { dg-final { scan-assembler-times "\nfoo\._Mdotprod:\n" 1 } } */ + +/* { dg-final { scan-assembler-times "\nfoo\.resolver:\n" 0 } } */ +/* { dg-final { scan-assembler-times "\n\tadrp\tx\[0-9\], foo\._Mdotprod\n" 0 } } */ +/* { dg-final { scan-assembler-times "\n\tadrp\tx\[0-9\], foo\.default\n" 0 } } */ + +/* { dg-final { scan-assembler-times "\n\tadrp\tx\[0-9\]+, foo\n" 1 } } */ + +/* { dg-final { scan-assembler-times "\n\t\.type\tfoo, %gnu_indirect_function\n" 0 } } */ +/* { dg-final { scan-assembler-times "\n\t\.set\tfoo,foo\.resolver\n" 0 } } */ + diff --git a/gcc/testsuite/gcc.target/aarch64/mv-symbols14.c b/gcc/testsuite/gcc.target/aarch64/mv-symbols14.c new file mode 100644 index 000000000000..d1af69fe31d9 --- /dev/null +++ b/gcc/testsuite/gcc.target/aarch64/mv-symbols14.c @@ -0,0 +1,34 @@ +/* { dg-do compile } */ +/* { dg-options "-O0" } */ + +int foo (); + +__attribute__ ((target_version ("default"))) int +foo () +{ + return 1; +} + +__attribute__ ((target_version ("dotprod"))) int +foo () +{ + return 3; +} + +int +bar () +{ + return foo (); +} + +/* { dg-final { scan-assembler-times "\nfoo\.default:\n" 1 } } */ +/* { dg-final { scan-assembler-times "\nfoo\._Mdotprod:\n" 1 } } */ + +/* { dg-final { scan-assembler-times "\nfoo\.resolver:\n" 1 } } */ +/* { dg-final { scan-assembler-times "\n\tadrp\tx., foo\._Mdotprod\n" 1 } } */ +/* { dg-final { scan-assembler-times "\n\tadrp\tx., foo\.default\n" 1 } } */ + +/* { dg-final { scan-assembler-times "\n\tbl\tfoo\n" 1 } } */ + +/* { dg-final { scan-assembler-times "\n\t\.type\tfoo, %gnu_indirect_function\n" 1 } } */ +/* { dg-final { scan-assembler-times "\n\t\.set\tfoo,foo\.resolver\n" 1 } } */ diff --git a/gcc/testsuite/gcc.target/aarch64/mv-symbols2.c b/gcc/testsuite/gcc.target/aarch64/mv-symbols2.c new file mode 100644 index 000000000000..a8732caf2140 --- /dev/null +++ b/gcc/testsuite/gcc.target/aarch64/mv-symbols2.c @@ -0,0 +1,28 @@ +/* { dg-do compile } */ +/* { dg-options "-O0" } */ + +// FMV correctness with definitions but no call + +__attribute__ ((target_version ("default"))) int +foo () +{ + return 1; +} + +__attribute__ ((target_version ("dotprod"))) int +foo () +{ + return 3; +} +__attribute__ ((target_version ("sve+sve2"))) int +foo () +{ + return 5; +} + +/* { dg-final { scan-assembler-times "\nfoo\.default:\n" 1 } } */ +/* { dg-final { scan-assembler-times "\nfoo\._Mdotprod:\n" 1 } } */ +/* { dg-final { scan-assembler-times "\nfoo\._MsveMsve2:\n" 1 } } */ +/* { dg-final { scan-assembler-times "\nfoo\.resolver:\n" 1 } } */ +/* { dg-final { scan-assembler-times "\n\t\.type\tfoo, %gnu_indirect_function\n" 1 } } */ +/* { dg-final { scan-assembler-times "\n\t\.set\tfoo,foo\.resolver\n" 1 } } */ diff --git a/gcc/testsuite/gcc.target/aarch64/mv-symbols3.c b/gcc/testsuite/gcc.target/aarch64/mv-symbols3.c new file mode 100644 index 000000000000..962bae935773 --- /dev/null +++ b/gcc/testsuite/gcc.target/aarch64/mv-symbols3.c @@ -0,0 +1,27 @@ +/* { dg-do compile } */ +/* { dg-options "-O0" } */ + +// FMV correctness with declarations but no implementation + +__attribute__ ((target_version ("default"))) int +foo (); + +__attribute__ ((target_version ("dotprod"))) int +foo (); + +__attribute__ ((target_version ("sve+sve2"))) int +foo (); + +int +bar () +{ + return foo (); +} + +/* { dg-final { scan-assembler-times "\nfoo\.default:\n" 0 } } */ +/* { dg-final { scan-assembler-times "\nfoo\._Mdotprod:\n" 0 } } */ +/* { dg-final { scan-assembler-times "\nfoo\._MsveMsve2:\n" 0 } } */ +/* { dg-final { scan-assembler-times "\nfoo\.resolver:\n" 0 } } */ +/* { dg-final { scan-assembler-times "\n\tbl\tfoo\n" 1 } } */ +/* { dg-final { scan-assembler-times "\n\t\.type\tfoo, %gnu_indirect_function\n" 0 } } */ +/* { dg-final { scan-assembler-times "\n\t\.set\tfoo,foo\.resolver\n" 0 } } */ diff --git a/gcc/testsuite/gcc.target/aarch64/mv-symbols4.c b/gcc/testsuite/gcc.target/aarch64/mv-symbols4.c new file mode 100644 index 000000000000..a476800b2c53 --- /dev/null +++ b/gcc/testsuite/gcc.target/aarch64/mv-symbols4.c @@ -0,0 +1,31 @@ +/* { dg-do compile } */ +/* { dg-options "-O0" } */ + +// FMV correctness with a default implementation and declarations of other +// versions + +__attribute__ ((target_version ("default"))) int +foo () +{ + return 1; +} + +__attribute__ ((target_version ("dotprod"))) int +foo (); + +__attribute__ ((target_version ("sve+sve2"))) int +foo (); + +int +bar () +{ + return foo (); +} + +/* { dg-final { scan-assembler-times "\nfoo\.default:\n" 1 } } */ +/* { dg-final { scan-assembler-times "\nfoo\._Mdotprod:\n" 0 } } */ +/* { dg-final { scan-assembler-times "\nfoo\._MsveMsve2:\n" 0 } } */ +/* { dg-final { scan-assembler-times "\nfoo\.resolver:\n" 1 } } */ +/* { dg-final { scan-assembler-times "\n\tbl\tfoo\n" 1 } } */ +/* { dg-final { scan-assembler-times "\n\t\.type\tfoo, %gnu_indirect_function\n" 1 } } */ +/* { dg-final { scan-assembler-times "\n\t\.set\tfoo,foo\.resolver\n" 1 } } */ diff --git a/gcc/testsuite/gcc.target/aarch64/mv-symbols5.c b/gcc/testsuite/gcc.target/aarch64/mv-symbols5.c new file mode 100644 index 000000000000..4df20009f795 --- /dev/null +++ b/gcc/testsuite/gcc.target/aarch64/mv-symbols5.c @@ -0,0 +1,36 @@ +/* { dg-do compile } */ +/* { dg-options "-O0" } */ + +// FMV correctness with default declaration, and implementations of other +// versions. + +__attribute__ ((target_version ("default"))) int +foo (); + +__attribute__ ((target_version ("dotprod"))) int +foo () +{ + return 3; +} +__attribute__ ((target_version ("sve+sve2"))) int +foo () +{ + return 5; +} + +int +bar () +{ + return foo (); +} + +/* When updating any of the symbol names in these tests, make sure to also + update any tests for their absence in mvc-symbolsN.C */ + +/* { dg-final { scan-assembler-times "\nfoo\.default:\n" 0 } } */ +/* { dg-final { scan-assembler-times "\nfoo\._Mdotprod:\n" 1 } } */ +/* { dg-final { scan-assembler-times "\nfoo\._MsveMsve2:\n" 1 } } */ +/* { dg-final { scan-assembler-times "\nfoo\.resolver:\n" 0 } } */ +/* { dg-final { scan-assembler-times "\n\tbl\tfoo\n" 1 } } */ +/* { dg-final { scan-assembler-times "\n\t\.type\tfoo, %gnu_indirect_function\n" 0 } } */ +/* { dg-final { scan-assembler-times "\n\t\.set\tfoo,foo\.resolver\n" 0 } } */ diff --git a/gcc/testsuite/gcc.target/aarch64/mv-symbols6.c b/gcc/testsuite/gcc.target/aarch64/mv-symbols6.c new file mode 100644 index 000000000000..cbf8bcaf8e16 --- /dev/null +++ b/gcc/testsuite/gcc.target/aarch64/mv-symbols6.c @@ -0,0 +1,20 @@ +/* { dg-do compile } */ +/* { dg-options "-O0" } */ + +__attribute__ ((target_version ("default"))) int +foo () +{ + return 1; +} + +int bar() +{ + return foo(); +} + +/* { dg-final { scan-assembler-times "\nfoo:\n" 0 } } */ +/* { dg-final { scan-assembler-times "\nfoo\.default:\n" 1 } } */ +/* { dg-final { scan-assembler-times "\nfoo\.resolver:\n" 0 } } */ +/* { dg-final { scan-assembler-times "bl\tfoo.default\n" 1 } } */ +/* { dg-final { scan-assembler-times ".global\tfoo\n" 1 } } */ +/* { dg-final { scan-assembler-times ".set\tfoo,foo.default\n" 1 } } */ diff --git a/gcc/testsuite/gcc.target/aarch64/mv-symbols7.c b/gcc/testsuite/gcc.target/aarch64/mv-symbols7.c new file mode 100644 index 000000000000..2ea4d2ebf0fb --- /dev/null +++ b/gcc/testsuite/gcc.target/aarch64/mv-symbols7.c @@ -0,0 +1,47 @@ +/* { dg-do compile } */ +/* { dg-options "-O0" } */ + +__attribute__ ((target_version ("dotprod"))) int +foo (); + +__attribute__ ((target_version ("sve+sve2"))) int +foo (); + +__attribute__ ((target_version ("default"))) int +foo (); + +int +bar () +{ + return foo (); +} + +__attribute__ ((target_version ("sve+sve2"))) int +foo () +{ + return 5; +} +__attribute__ ((target_version ("dotprod"))) int +foo () +{ + return 3; +} +__attribute__ ((target_version ("default"))) int +foo () +{ + return 1; +} + +/* { dg-final { scan-assembler-times "\nfoo\.default:\n" 1 } } */ +/* { dg-final { scan-assembler-times "\nfoo\._Mdotprod:\n" 1 } } */ +/* { dg-final { scan-assembler-times "\nfoo\._MsveMsve2:\n" 1 } } */ + +/* { dg-final { scan-assembler-times "\nfoo\.resolver:\n" 1 } } */ +/* { dg-final { scan-assembler-times "\n\tadrp\tx., foo\._MsveMsve2\n" 1 } } */ +/* { dg-final { scan-assembler-times "\n\tadrp\tx., foo\._Mdotprod\n" 1 } } */ +/* { dg-final { scan-assembler-times "\n\tadrp\tx., foo\.default\n" 1 } } */ + +/* { dg-final { scan-assembler-times "\n\tbl\tfoo\n" 1 } } */ + +/* { dg-final { scan-assembler-times "\n\t\.type\tfoo, %gnu_indirect_function\n" 1 } } */ +/* { dg-final { scan-assembler-times "\n\t\.set\tfoo,foo\.resolver\n" 1 } } */ diff --git a/gcc/testsuite/gcc.target/aarch64/mv-symbols8.c b/gcc/testsuite/gcc.target/aarch64/mv-symbols8.c new file mode 100644 index 000000000000..3e3eaf21aa9e --- /dev/null +++ b/gcc/testsuite/gcc.target/aarch64/mv-symbols8.c @@ -0,0 +1,47 @@ +/* { dg-do compile } */ +/* { dg-options "-O0" } */ + +__attribute__ ((target_version ("dotprod"))) int +foo (); + +__attribute__ ((target_version ("sve+sve2"))) int +foo (); + +__attribute__ ((target_version ("default"))) int +foo (); + +__attribute__ ((target_version ("sve+sve2"))) int +foo () +{ + return 5; +} +__attribute__ ((target_version ("dotprod"))) int +foo () +{ + return 3; +} +__attribute__ ((target_version ("default"))) int +foo () +{ + return 1; +} + +int +bar () +{ + return foo (); +} + +/* { dg-final { scan-assembler-times "\nfoo\.default:\n" 1 } } */ +/* { dg-final { scan-assembler-times "\nfoo\._Mdotprod:\n" 1 } } */ +/* { dg-final { scan-assembler-times "\nfoo\._MsveMsve2:\n" 1 } } */ + +/* { dg-final { scan-assembler-times "\nfoo\.resolver:\n" 1 } } */ +/* { dg-final { scan-assembler-times "\n\tadrp\tx., foo\._MsveMsve2\n" 1 } } */ +/* { dg-final { scan-assembler-times "\n\tadrp\tx., foo\._Mdotprod\n" 1 } } */ +/* { dg-final { scan-assembler-times "\n\tadrp\tx., foo\.default\n" 1 } } */ + +/* { dg-final { scan-assembler-times "\n\tbl\tfoo\n" 1 } } */ + +/* { dg-final { scan-assembler-times "\n\t\.type\tfoo, %gnu_indirect_function\n" 1 } } */ +/* { dg-final { scan-assembler-times "\n\t\.set\tfoo,foo\.resolver\n" 1 } } */ diff --git a/gcc/testsuite/gcc.target/aarch64/mv-symbols9.c b/gcc/testsuite/gcc.target/aarch64/mv-symbols9.c new file mode 100644 index 000000000000..8e0864f1663f --- /dev/null +++ b/gcc/testsuite/gcc.target/aarch64/mv-symbols9.c @@ -0,0 +1,44 @@ +/* { dg-do compile } */ +/* { dg-options "-O0" } */ + +__attribute__ ((target_version ("dotprod"))) int +foo (); +__attribute__ ((target_version ("sve+sve2"))) int +foo (); + +int +foo () +{ + return 1; +} + +__attribute__ ((target_version ("dotprod"))) int +foo () +{ + return 3; +} +__attribute__ ((target_version ("sve+sve2"))) int +foo () +{ + return 5; +} + +int +bar () +{ + return foo (); +} + +/* { dg-final { scan-assembler-times "\nfoo\.default:\n" 1 } } */ +/* { dg-final { scan-assembler-times "\nfoo\._Mdotprod:\n" 1 } } */ +/* { dg-final { scan-assembler-times "\nfoo\._MsveMsve2:\n" 1 } } */ + +/* { dg-final { scan-assembler-times "\nfoo\.resolver:\n" 1 } } */ +/* { dg-final { scan-assembler-times "\n\tadrp\tx., foo\._MsveMsve2\n" 1 } } */ +/* { dg-final { scan-assembler-times "\n\tadrp\tx., foo\._Mdotprod\n" 1 } } */ +/* { dg-final { scan-assembler-times "\n\tadrp\tx., foo\.default\n" 1 } } */ + +/* { dg-final { scan-assembler-times "\n\tbl\tfoo\n" 1 } } */ + +/* { dg-final { scan-assembler-times "\n\t\.type\tfoo, %gnu_indirect_function\n" 1 } } */ +/* { dg-final { scan-assembler-times "\n\t\.set\tfoo,foo\.resolver\n" 1 } } */ diff --git a/gcc/testsuite/gcc.target/aarch64/mvc-error1.c b/gcc/testsuite/gcc.target/aarch64/mvc-error1.c new file mode 100644 index 000000000000..482d0a71e672 --- /dev/null +++ b/gcc/testsuite/gcc.target/aarch64/mvc-error1.c @@ -0,0 +1,9 @@ +/* { dg-do compile } */ +/* { dg-require-ifunc "" } */ +/* { dg-options "-O0" } */ + +__attribute__ ((target_clones ("default, dotprod"))) float +foo (); /* { dg-message "previous declaration of .foo \\\[\\\[target_clones\\(.default., .dotprod.\\)\\\]\\\]." } */ + +__attribute__ ((target_clones ("dotprod", "sve"))) float +foo () { return 3; } /* { dg-error ".foo \\\[\\\[target_clones\\(.dotprod., .sve.\\)\\\]\\\]. conflicts with overlapping .target_clone. declaration" } */ diff --git a/gcc/testsuite/gcc.target/aarch64/mvc-error2.c b/gcc/testsuite/gcc.target/aarch64/mvc-error2.c new file mode 100644 index 000000000000..482d0a71e672 --- /dev/null +++ b/gcc/testsuite/gcc.target/aarch64/mvc-error2.c @@ -0,0 +1,9 @@ +/* { dg-do compile } */ +/* { dg-require-ifunc "" } */ +/* { dg-options "-O0" } */ + +__attribute__ ((target_clones ("default, dotprod"))) float +foo (); /* { dg-message "previous declaration of .foo \\\[\\\[target_clones\\(.default., .dotprod.\\)\\\]\\\]." } */ + +__attribute__ ((target_clones ("dotprod", "sve"))) float +foo () { return 3; } /* { dg-error ".foo \\\[\\\[target_clones\\(.dotprod., .sve.\\)\\\]\\\]. conflicts with overlapping .target_clone. declaration" } */ diff --git a/gcc/testsuite/gcc.target/aarch64/mvc-symbols1.c b/gcc/testsuite/gcc.target/aarch64/mvc-symbols1.c new file mode 100644 index 000000000000..3ad15e5bb73d --- /dev/null +++ b/gcc/testsuite/gcc.target/aarch64/mvc-symbols1.c @@ -0,0 +1,25 @@ +/* { dg-do compile } */ +/* { dg-options "-O0" } */ + +__attribute__ ((target_clones ("default", "dotprod", "sve+sve2"))) int +foo () +{ + return 1; +} + +int +bar () +{ + return foo (); +} + +/* When updating any of the symbol names in these tests, make sure to also + update any tests for their absence in mvc-symbolsN.C */ + +/* { dg-final { scan-assembler-times "\nfoo\.default:\n" 1 } } */ +/* { dg-final { scan-assembler-times "\nfoo\._Mdotprod:\n" 1 } } */ +/* { dg-final { scan-assembler-times "\nfoo\._MsveMsve2:\n" 1 } } */ +/* { dg-final { scan-assembler-times "\nfoo\.resolver:\n" 1 } } */ +/* { dg-final { scan-assembler-times "\n\tbl\tfoo\n" 1 } } */ +/* { dg-final { scan-assembler-times "\n\t\.type\tfoo, %gnu_indirect_function\n" 1 } } */ +/* { dg-final { scan-assembler-times "\n\t\.set\tfoo,foo\.resolver\n" 1 } } */ diff --git a/gcc/testsuite/gcc.target/aarch64/mvc-symbols2.c b/gcc/testsuite/gcc.target/aarch64/mvc-symbols2.c new file mode 100644 index 000000000000..78385ed904bb --- /dev/null +++ b/gcc/testsuite/gcc.target/aarch64/mvc-symbols2.c @@ -0,0 +1,15 @@ +/* { dg-do compile } */ +/* { dg-options "-O0" } */ + +__attribute__ ((target_clones ("default", "dotprod", "sve+sve2"))) int +foo () +{ + return 1; +} + +/* { dg-final { scan-assembler-times "\nfoo\.default:\n" 1 } } */ +/* { dg-final { scan-assembler-times "\nfoo\._Mdotprod:\n" 1 } } */ +/* { dg-final { scan-assembler-times "\nfoo\._MsveMsve2:\n" 1 } } */ +/* { dg-final { scan-assembler-times "\nfoo\.resolver:\n" 1 } } */ +/* { dg-final { scan-assembler-times "\n\t\.type\tfoo, %gnu_indirect_function\n" 1 } } */ +/* { dg-final { scan-assembler-times "\n\t\.set\tfoo,foo\.resolver\n" 1 } } */ diff --git a/gcc/testsuite/gcc.target/aarch64/mvc-symbols3.c b/gcc/testsuite/gcc.target/aarch64/mvc-symbols3.c new file mode 100644 index 000000000000..1cbe3fd08509 --- /dev/null +++ b/gcc/testsuite/gcc.target/aarch64/mvc-symbols3.c @@ -0,0 +1,19 @@ +/* { dg-do compile } */ +/* { dg-options "-O0" } */ + +__attribute__ ((target_clones ("default", "dotprod", "sve+sve2"))) int +foo (); + +int +bar () +{ + return foo (); +} + +/* { dg-final { scan-assembler-times "\nfoo\.default:\n" 0 } } */ +/* { dg-final { scan-assembler-times "\nfoo\._Mdotprod:\n" 0 } } */ +/* { dg-final { scan-assembler-times "\nfoo\._MsveMsve2:\n" 0 } } */ +/* { dg-final { scan-assembler-times "\nfoo\.resolver:\n" 0 } } */ +/* { dg-final { scan-assembler-times "\n\tbl\tfoo\n" 1 } } */ +/* { dg-final { scan-assembler-times "\n\t\.type\tfoo, %gnu_indirect_function\n" 0 } } */ +/* { dg-final { scan-assembler-times "\n\t\.set\tfoo,foo\.resolver\n" 0 } } */ diff --git a/gcc/testsuite/gcc.target/aarch64/mvc-symbols4.c b/gcc/testsuite/gcc.target/aarch64/mvc-symbols4.c new file mode 100644 index 000000000000..abaf60f91c3e --- /dev/null +++ b/gcc/testsuite/gcc.target/aarch64/mvc-symbols4.c @@ -0,0 +1,12 @@ +/* { dg-do compile } */ +/* { dg-options "-O0" } */ + +__attribute__ ((target_clones ("default", "dotprod", "sve+sve2"))) int +foo (); + +/* { dg-final { scan-assembler-times "\nfoo\.default:\n" 0 } } */ +/* { dg-final { scan-assembler-times "\nfoo\._Mdotprod:\n" 0 } } */ +/* { dg-final { scan-assembler-times "\nfoo\._MsveMsve2:\n" 0 } } */ +/* { dg-final { scan-assembler-times "\nfoo\.resolver:\n" 0 } } */ +/* { dg-final { scan-assembler-times "\n\t\.type\tfoo, %gnu_indirect_function\n" 0 } } */ +/* { dg-final { scan-assembler-times "\n\t\.set\tfoo,foo\.resolver\n" 0 } } */ diff --git a/gcc/testsuite/gcc.target/aarch64/mvc-warning1.c b/gcc/testsuite/gcc.target/aarch64/mvc-warning1.c new file mode 100644 index 000000000000..1bae38cceeb3 --- /dev/null +++ b/gcc/testsuite/gcc.target/aarch64/mvc-warning1.c @@ -0,0 +1,13 @@ +/* { dg-do compile } */ +/* { dg-require-ifunc "" } */ +/* { dg-options "-O0" } */ + +__attribute__((target_clones("default", "dotprod", "sve+sve2"))) +int foo () { + return 1; +} + +__attribute__((target_clones("invalid1"))) +int foo () { /* { dg-warning "invalid feature modifier .invalid1. in version .invalid1. for .target_clones. attribute" } */ + return 2; +} diff --git a/gcc/testsuite/gcc.target/aarch64/ror_2.c b/gcc/testsuite/gcc.target/aarch64/ror_2.c index 796c1222230e..fbea839454ae 100644 --- a/gcc/testsuite/gcc.target/aarch64/ror_2.c +++ b/gcc/testsuite/gcc.target/aarch64/ror_2.c @@ -175,8 +175,8 @@ tst2 (unsigned x, unsigned y) int tst3 (unsigned x, unsigned y) { - /* { dg-final { scan-assembler "tst\tw\[0-9\]+, w\[0-9\]+, ror 20\n" } } */ - return ((unsigned long)x & ROR (y, 20)) == 0; + /* { dg-final { scan-assembler "tst\tw\[0-9\]+, w\[0-9\]+, ror 21\n" } } */ + return ((unsigned long)x & ROR (y, 21)) == 0; } int @@ -189,15 +189,15 @@ bics1 (unsigned x, unsigned y) int bics2 (unsigned x, unsigned y) { - /* { dg-final { scan-assembler "bics\twzr, w\[0-9\]+, w\[0-9\]+, ror 21\n" } } */ - return (x & ~ROR (y, 21)) == 0; + /* { dg-final { scan-assembler "bics\twzr, w\[0-9\]+, w\[0-9\]+, ror 22\n" } } */ + return (x & ~ROR (y, 22)) == 0; } int bics3 (unsigned x, unsigned y) { - /* { dg-final { scan-assembler "bics\twzr, w\[0-9\]+, w\[0-9\]+, ror 21\n" } } */ - return (x & (unsigned long)~ROR (y, 21)) == 0; + /* { dg-final { scan-assembler "bics\twzr, w\[0-9\]+, w\[0-9\]+, ror 23\n" } } */ + return (x & (unsigned long)~ROR (y, 23)) == 0; } /* { dg-final { scan-assembler-not "cmp" } } */ diff --git a/gcc/testsuite/gcc.target/aarch64/scalar_intrinsics.c b/gcc/testsuite/gcc.target/aarch64/scalar_intrinsics.c index dcf9dc777ade..094aaff7b1c1 100644 --- a/gcc/testsuite/gcc.target/aarch64/scalar_intrinsics.c +++ b/gcc/testsuite/gcc.target/aarch64/scalar_intrinsics.c @@ -913,7 +913,7 @@ test_vrsrad_n_s64 (int64_t a, int64_t b) return vrsrad_n_s64 (a, b, 3); } -/* { dg-final { scan-assembler-times "\\tsrsra\\td\[0-9\]+" 1 } } */ +/* { dg-final { scan-assembler-times "\\tursra\\td\[0-9\]+" 1 } } */ uint64_t test_vrsrad_n_u64 (uint64_t a, uint64_t b) diff --git a/gcc/testsuite/gcc.target/aarch64/scalar_shift_1.c b/gcc/testsuite/gcc.target/aarch64/scalar_shift_1.c index 7be1b12a75bf..e715f19aa5de 100644 --- a/gcc/testsuite/gcc.target/aarch64/scalar_shift_1.c +++ b/gcc/testsuite/gcc.target/aarch64/scalar_shift_1.c @@ -1,6 +1,6 @@ /* { dg-do run } */ /* { dg-options "-O2 -fno-inline -save-temps" } */ - +/* { dg-final { check-function-bodies "**" "" "" } } */ extern void abort (); #define force_simd_di(v) asm volatile ("mov %d0, %1.d[0]" :"=w" (v) :"w" (v) :) @@ -23,8 +23,13 @@ test_lshift_left_sisd_di (UInt64x1 b, UInt64x1 c) force_simd_di (a); return a; } -/* { dg-final { scan-assembler "shl\td\[0-9\]+,\ d\[0-9\]+,\ 8" } } */ -/* { dg-final { scan-assembler "ushl\td\[0-9\]+,\ d\[0-9\]+,\ d\[0-9\]+" } } */ +/* +** test_lshift_left_sisd_di: +** ... +** shl\t(d[0-9]+), d[0-9]+, 8 +** ushl\td[0-9]+, \1, d[0-9]+ +** ... +*/ UInt32x1 test_lshift_left_sisd_si (UInt32x1 b, UInt32x1 c) @@ -38,8 +43,13 @@ test_lshift_left_sisd_si (UInt32x1 b, UInt32x1 c) force_simd_si (a); return a; } -/* { dg-final { scan-assembler "shl\tv\[0-9\]+\.2s,\ v\[0-9\]+\.2s,\ 4" } } */ -/* "ushl\tv\[0-9\]+\.2s,\ v\[0-9\]+\.2s,\ v\[0-9\]+\.2s" (counted later) */ +/* +** test_lshift_left_sisd_si: +** ... +** shl\t(v[0-9]+\.2s), v[0-9]+\.2s, 4 +** ushl\tv[0-9]+\.2s, \1, v[0-9]+\.2s +** ... +*/ UInt64x1 test_lshift_right_sisd_di (UInt64x1 b, UInt64x1 c) @@ -53,9 +63,14 @@ test_lshift_right_sisd_di (UInt64x1 b, UInt64x1 c) force_simd_di (a); return a; } -/* { dg-final { scan-assembler "ushr\td\[0-9\]+,\ d\[0-9\]+,\ 8" } } */ -/* "neg\td\[0-9\]+,\ d\[0-9\]+" (counted later) */ -/* { dg-final { scan-assembler "ushl\td\[0-9\]+,\ d\[0-9\]+,\ d\[0-9\]+" } } */ +/* +** test_lshift_right_sisd_di: +** ... +** ushr\t(d[0-9]+), d[0-9]+, 8 +** neg\t(d[0-9]+), d[0-9]+ +** ushl\td[0-9]+, \1, \2 +** ... +*/ UInt64x1 test_lshift_right_sisd_si (UInt32x1 b, UInt32x1 c) @@ -69,9 +84,14 @@ test_lshift_right_sisd_si (UInt32x1 b, UInt32x1 c) force_simd_si (a); return a; } -/* { dg-final { scan-assembler "ushr\tv\[0-9\]+\.2s,\ v\[0-9\]+\.2s,\ 4" } } */ -/* "neg\td\[0-9\]+,\ d\[0-9\]+" (counted later) */ -/* { dg-final { scan-assembler-times "ushl\tv\[0-9\]+\.2s,\ v\[0-9\]+\.2s,\ v\[0-9\]+\.2s" 2 } } */ +/* +** test_lshift_right_sisd_si: +** ... +** ushr\t(v[0-9]+\.2s), v[0-9]+\.2s, 4 +** neg\td([0-9]+), d[0-9]+ +** ushl\tv[0-9]+\.2s, \1, v\2\.2s +** ... +*/ Int64x1 test_ashift_right_sisd_di (Int64x1 b, Int64x1 c) @@ -85,9 +105,14 @@ test_ashift_right_sisd_di (Int64x1 b, Int64x1 c) force_simd_di (a); return a; } -/* { dg-final { scan-assembler "sshr\td\[0-9\]+,\ d\[0-9\]+,\ 8" } } */ -/* "neg\td\[0-9\]+,\ d\[0-9\]+" (counted later) */ -/* { dg-final { scan-assembler "sshl\td\[0-9\]+,\ d\[0-9\]+,\ d\[0-9\]+" } } */ +/* +** test_ashift_right_sisd_di: +** ... +** sshr\t(d[0-9]+), d[0-9]+, 8 +** neg\t(d[0-9]+), d[0-9]+ +** sshl\td[0-9]+, \1, \2 +** ... +*/ Int32x1 test_ashift_right_sisd_si (Int32x1 b, Int32x1 c) @@ -101,10 +126,14 @@ test_ashift_right_sisd_si (Int32x1 b, Int32x1 c) force_simd_si (a); return a; } -/* { dg-final { scan-assembler "sshr\tv\[0-9\]+\.2s,\ v\[0-9\]+\.2s,\ 4" } } */ -/* { dg-final { scan-assembler-times "neg\td\[0-9\]+,\ d\[0-9\]+" 4 } } */ -/* { dg-final { scan-assembler "sshl\tv\[0-9\]+\.2s,\ v\[0-9\]+\.2s,\ v\[0-9\]+\.2s" } } */ - +/* +** test_ashift_right_sisd_si: +** ... +** sshr\t(v[0-9]+\.2s), v[0-9]+\.2s, 4 +** neg\td([0-9]+), d[0-9]+ +** sshl\tv[0-9]+\.2s, \1, v\2\.2s +** ... +*/ /* The following are to make sure if the integer instructions lsl/lsr/asr are generated in non-vector scenarios */ @@ -118,8 +147,12 @@ test_lshift_left_int_di (UInt64x1 b, UInt64x1 c) a = a << c; return a; } -/* { dg-final { scan-assembler "lsl\tx\[0-9\]+,\ x\[0-9\]+,\ 8" } } */ -/* { dg-final { scan-assembler "lsl\tx\[0-9\]+,\ x\[0-9\]+,\ x\[0-9\]+" } } */ +/* +** test_lshift_left_int_di: +** lsl\t(x[0-9]+), x0, 8 +** lsl\tx0, \1, x1 +** ret +*/ UInt32x1 test_lshift_left_int_si (UInt32x1 b, UInt32x1 c) @@ -130,8 +163,12 @@ test_lshift_left_int_si (UInt32x1 b, UInt32x1 c) a = a << c; return a; } -/* { dg-final { scan-assembler "lsl\tw\[0-9\]+,\ w\[0-9\]+,\ 4" } } */ -/* { dg-final { scan-assembler "lsl\tw\[0-9\]+,\ w\[0-9\]+,\ w\[0-9\]+" } } */ +/* +** test_lshift_left_int_si: +** lsl\t(w[0-9]+), w0, 4 +** lsl\tw0, \1, w1 +** ret +*/ UInt64x1 test_lshift_right_int_di (UInt64x1 b, UInt64x1 c) @@ -142,8 +179,12 @@ test_lshift_right_int_di (UInt64x1 b, UInt64x1 c) a = a >> c; return a; } -/* { dg-final { scan-assembler "lsr\tx\[0-9\]+,\ x\[0-9\]+,\ 8" } } */ -/* { dg-final { scan-assembler "lsr\tx\[0-9\]+,\ x\[0-9\]+,\ x\[0-9\]+" } } */ +/* +** test_lshift_right_int_di: +** lsr\t(x[0-9]+), x0, 8 +** lsr\tx0, \1, x1 +** ret +*/ UInt32x1 test_lshift_right_int_si (UInt32x1 b, UInt32x1 c) @@ -154,8 +195,12 @@ test_lshift_right_int_si (UInt32x1 b, UInt32x1 c) a = a >> c; return a; } -/* { dg-final { scan-assembler "lsr\tw\[0-9\]+,\ w\[0-9\]+,\ 4" } } */ -/* { dg-final { scan-assembler "lsr\tw\[0-9\]+,\ w\[0-9\]+,\ w\[0-9\]+" } } */ +/* +** test_lshift_right_int_si: +** lsr\t(w[0-9]+), w0, 4 +** lsr\tw0, \1, w1 +** ret +*/ Int64x1 test_ashift_right_int_di (Int64x1 b, Int64x1 c) @@ -166,8 +211,12 @@ test_ashift_right_int_di (Int64x1 b, Int64x1 c) a = a >> c; return a; } -/* { dg-final { scan-assembler "asr\tx\[0-9\]+,\ x\[0-9\]+,\ 8" } } */ -/* { dg-final { scan-assembler "asr\tx\[0-9\]+,\ x\[0-9\]+,\ x\[0-9\]+" } } */ +/* +** test_ashift_right_int_di: +** asr\t(x[0-9]+), x0, 8 +** asr\tx0, \1, x1 +** ret +*/ Int32x1 test_ashift_right_int_si (Int32x1 b, Int32x1 c) @@ -178,8 +227,12 @@ test_ashift_right_int_si (Int32x1 b, Int32x1 c) a = a >> c; return a; } -/* { dg-final { scan-assembler "asr\tw\[0-9\]+,\ w\[0-9\]+,\ 4" } } */ -/* { dg-final { scan-assembler "asr\tw\[0-9\]+,\ w\[0-9\]+,\ w\[0-9\]+" } } */ +/* +** test_ashift_right_int_si: +** asr\t(w[0-9]+), w0, 4 +** asr\tw0, \1, w1 +** ret +*/ #define CHECK(var,val) \ do \ @@ -225,4 +278,3 @@ main () return 0; } - diff --git a/gcc/testsuite/gcc.target/aarch64/simd/fold_to_highpart_5.c b/gcc/testsuite/gcc.target/aarch64/simd/fold_to_highpart_5.c index 4f39b675bff1..1b7252757821 100644 --- a/gcc/testsuite/gcc.target/aarch64/simd/fold_to_highpart_5.c +++ b/gcc/testsuite/gcc.target/aarch64/simd/fold_to_highpart_5.c @@ -68,8 +68,8 @@ /* { dg-final { scan-assembler-times {ssubl2\t} 3} } */ /* { dg-final { scan-assembler-times {usubl2\t} 3} } */ -/* { dg-final { scan-assembler-times {sabdl2\t} 3} } */ -/* { dg-final { scan-assembler-times {uabdl2\t} 3} } */ +/* { dg-final { scan-assembler-times {sabal2\t} 3} } */ +/* { dg-final { scan-assembler-times {uabal2\t} 3} } */ /* { dg-final { scan-assembler-times {saddw2\t} 3} } */ /* { dg-final { scan-assembler-times {uaddw2\t} 3} } */ diff --git a/gcc/testsuite/gcc.target/aarch64/singleton_intrinsics_1.c b/gcc/testsuite/gcc.target/aarch64/singleton_intrinsics_1.c index 1f21bd33e739..27360150b582 100644 --- a/gcc/testsuite/gcc.target/aarch64/singleton_intrinsics_1.c +++ b/gcc/testsuite/gcc.target/aarch64/singleton_intrinsics_1.c @@ -298,7 +298,7 @@ test_vrsra_n_s64 (int64x1_t a, int64x1_t b) return vrsra_n_s64 (a, b, 3); } -/* { dg-final { scan-assembler-times "\\tsrsra\\td\[0-9\]+" 1 } } */ +/* { dg-final { scan-assembler-times "\\tursra\\td\[0-9\]+" 1 } } */ uint64x1_t test_vrsra_n_u64 (uint64x1_t a, uint64x1_t b) diff --git a/gcc/testsuite/gcc.target/aarch64/sve/arith_1.c b/gcc/testsuite/gcc.target/aarch64/sve/arith_1.c index c2e1f6c7eaeb..785b4cc9335f 100644 --- a/gcc/testsuite/gcc.target/aarch64/sve/arith_1.c +++ b/gcc/testsuite/gcc.target/aarch64/sve/arith_1.c @@ -85,7 +85,7 @@ DO_ARITH_OPS (int64_t, -, minus) /* { dg-final { scan-assembler-not {\tadd\tz[0-9]+\.d, z[0-9]+\.d, #-1\n} } } */ /* { dg-final { scan-assembler-times {\tsub\tz[0-9]+\.d, z[0-9]+\.d, #1\n} 1 } } */ -/* { dg-final { scan-assembler-not {\tsub\tz[0-9]+\.b, z[0-9]+\.b, #1\n} } } */ +/* Asserted above { scan-assembler-not {\tsub\tz[0-9]+\.b, z[0-9]+\.b, #1\n} } */ /* { dg-final { scan-assembler-not {\tsub\tz[0-9]+\.b, z[0-9]+\.b, #5\n} } } */ /* { dg-final { scan-assembler-not {\tsub\tz[0-9]+\.b, z[0-9]+\.b, #255\n} } } */ /* { dg-final { scan-assembler-not {\tsub\tz[0-9]+\.b, z[0-9]+\.b, #256\n} } } */ diff --git a/gcc/testsuite/gcc.target/aarch64/sve/cond_fmaxnm_1.c b/gcc/testsuite/gcc.target/aarch64/sve/cond_fmaxnm_1.c index d0db0900ece3..e68d5a4a237f 100644 --- a/gcc/testsuite/gcc.target/aarch64/sve/cond_fmaxnm_1.c +++ b/gcc/testsuite/gcc.target/aarch64/sve/cond_fmaxnm_1.c @@ -38,10 +38,6 @@ TEST_ALL (DEF_LOOP) /* { dg-final { scan-assembler-times {\tfmaxnm\tz[0-9]+\.s, p[0-7]/m, z[0-9]+\.s, #1\.0\n} 1 } } */ /* { dg-final { scan-assembler-times {\tfmaxnm\tz[0-9]+\.d, p[0-7]/m, z[0-9]+\.d, #1\.0\n} 1 } } */ -/* { dg-final { scan-assembler-times {\tfmaxnm\tz[0-9]+\.h, p[0-7]/m, z[0-9]+\.h, #1\.0\n} 1 } } */ -/* { dg-final { scan-assembler-times {\tfmaxnm\tz[0-9]+\.s, p[0-7]/m, z[0-9]+\.s, #1\.0\n} 1 } } */ -/* { dg-final { scan-assembler-times {\tfmaxnm\tz[0-9]+\.d, p[0-7]/m, z[0-9]+\.d, #1\.0\n} 1 } } */ - /* { dg-final { scan-assembler-times {\tfmov\tz[0-9]+\.h, #2\.0} 1 } } */ /* { dg-final { scan-assembler-times {\tfmov\tz[0-9]+\.s, #2\.0} 1 } } */ /* { dg-final { scan-assembler-times {\tfmov\tz[0-9]+\.d, #2\.0} 1 } } */ diff --git a/gcc/testsuite/gcc.target/aarch64/sve/cond_fmaxnm_3.c b/gcc/testsuite/gcc.target/aarch64/sve/cond_fmaxnm_3.c index 741f8f6d08e6..0ef89914b8be 100644 --- a/gcc/testsuite/gcc.target/aarch64/sve/cond_fmaxnm_3.c +++ b/gcc/testsuite/gcc.target/aarch64/sve/cond_fmaxnm_3.c @@ -47,8 +47,8 @@ TEST_ALL (DEF_LOOP) /* { dg-final { scan-assembler-times {\tfmaxnm\tz[0-9]+\.d, p[0-7]/m, z[0-9]+\.d, z[0-9]+\.d\n} 1 } } */ /* { dg-final { scan-assembler-times {\tsel\tz[0-9]+\.h, p[0-7], z[0-9]+\.h, z[0-9]+\.h\n} 3 } } */ -/* { dg-final { scan-assembler-times {\tsel\tz[0-9]+\.h, p[0-7], z[0-9]+\.h, z[0-9]+\.h\n} 3 } } */ -/* { dg-final { scan-assembler-times {\tsel\tz[0-9]+\.h, p[0-7], z[0-9]+\.h, z[0-9]+\.h\n} 3 } } */ +/* { dg-final { scan-assembler-times {\tsel\tz[0-9]+\.s, p[0-7], z[0-9]+\.s, z[0-9]+\.s\n} 3 } } */ +/* { dg-final { scan-assembler-times {\tsel\tz[0-9]+\.d, p[0-7], z[0-9]+\.d, z[0-9]+\.d\n} 3 } } */ /* { dg-final { scan-assembler-not {\tmovprfx\t} } } */ /* { dg-final { scan-assembler-not {\tmov\tz} } } */ diff --git a/gcc/testsuite/gcc.target/aarch64/sve/cond_fmaxnm_5.c b/gcc/testsuite/gcc.target/aarch64/sve/cond_fmaxnm_5.c index 4bae7e02de4b..836cd2c067ec 100644 --- a/gcc/testsuite/gcc.target/aarch64/sve/cond_fmaxnm_5.c +++ b/gcc/testsuite/gcc.target/aarch64/sve/cond_fmaxnm_5.c @@ -11,10 +11,6 @@ /* { dg-final { scan-assembler-times {\tfmaxnm\tz[0-9]+\.s, p[0-7]/m, z[0-9]+\.s, #1\.0\n} 1 } } */ /* { dg-final { scan-assembler-times {\tfmaxnm\tz[0-9]+\.d, p[0-7]/m, z[0-9]+\.d, #1\.0\n} 1 } } */ -/* { dg-final { scan-assembler-times {\tfmaxnm\tz[0-9]+\.h, p[0-7]/m, z[0-9]+\.h, #1\.0\n} 1 } } */ -/* { dg-final { scan-assembler-times {\tfmaxnm\tz[0-9]+\.s, p[0-7]/m, z[0-9]+\.s, #1\.0\n} 1 } } */ -/* { dg-final { scan-assembler-times {\tfmaxnm\tz[0-9]+\.d, p[0-7]/m, z[0-9]+\.d, #1\.0\n} 1 } } */ - /* { dg-final { scan-assembler-times {\tfmov\tz[0-9]+\.h, #2\.0} 1 } } */ /* { dg-final { scan-assembler-times {\tfmov\tz[0-9]+\.s, #2\.0} 1 } } */ /* { dg-final { scan-assembler-times {\tfmov\tz[0-9]+\.d, #2\.0} 1 } } */ diff --git a/gcc/testsuite/gcc.target/aarch64/sve/cond_fmaxnm_7.c b/gcc/testsuite/gcc.target/aarch64/sve/cond_fmaxnm_7.c index 30f07f62ddb7..9331d9e5ccf6 100644 --- a/gcc/testsuite/gcc.target/aarch64/sve/cond_fmaxnm_7.c +++ b/gcc/testsuite/gcc.target/aarch64/sve/cond_fmaxnm_7.c @@ -20,8 +20,8 @@ /* { dg-final { scan-assembler-times {\tfmaxnm\tz[0-9]+\.d, p[0-7]/m, z[0-9]+\.d, z[0-9]+\.d\n} 1 } } */ /* { dg-final { scan-assembler-times {\tsel\tz[0-9]+\.h, p[0-7], z[0-9]+\.h, z[0-9]+\.h\n} 3 } } */ -/* { dg-final { scan-assembler-times {\tsel\tz[0-9]+\.h, p[0-7], z[0-9]+\.h, z[0-9]+\.h\n} 3 } } */ -/* { dg-final { scan-assembler-times {\tsel\tz[0-9]+\.h, p[0-7], z[0-9]+\.h, z[0-9]+\.h\n} 3 } } */ +/* { dg-final { scan-assembler-times {\tsel\tz[0-9]+\.s, p[0-7], z[0-9]+\.s, z[0-9]+\.s\n} 3 } } */ +/* { dg-final { scan-assembler-times {\tsel\tz[0-9]+\.d, p[0-7], z[0-9]+\.d, z[0-9]+\.d\n} 3 } } */ /* { dg-final { scan-assembler-not {\tmovprfx\t} } } */ /* { dg-final { scan-assembler-not {\tmov\tz} } } */ diff --git a/gcc/testsuite/gcc.target/aarch64/sve/cond_fminnm_1.c b/gcc/testsuite/gcc.target/aarch64/sve/cond_fminnm_1.c index d667b20884eb..f6f58391621d 100644 --- a/gcc/testsuite/gcc.target/aarch64/sve/cond_fminnm_1.c +++ b/gcc/testsuite/gcc.target/aarch64/sve/cond_fminnm_1.c @@ -12,10 +12,6 @@ /* { dg-final { scan-assembler-times {\tfminnm\tz[0-9]+\.s, p[0-7]/m, z[0-9]+\.s, #1\.0\n} 1 } } */ /* { dg-final { scan-assembler-times {\tfminnm\tz[0-9]+\.d, p[0-7]/m, z[0-9]+\.d, #1\.0\n} 1 } } */ -/* { dg-final { scan-assembler-times {\tfminnm\tz[0-9]+\.h, p[0-7]/m, z[0-9]+\.h, #1\.0\n} 1 } } */ -/* { dg-final { scan-assembler-times {\tfminnm\tz[0-9]+\.s, p[0-7]/m, z[0-9]+\.s, #1\.0\n} 1 } } */ -/* { dg-final { scan-assembler-times {\tfminnm\tz[0-9]+\.d, p[0-7]/m, z[0-9]+\.d, #1\.0\n} 1 } } */ - /* { dg-final { scan-assembler-times {\tfmov\tz[0-9]+\.h, #2\.0} 1 } } */ /* { dg-final { scan-assembler-times {\tfmov\tz[0-9]+\.s, #2\.0} 1 } } */ /* { dg-final { scan-assembler-times {\tfmov\tz[0-9]+\.d, #2\.0} 1 } } */ diff --git a/gcc/testsuite/gcc.target/aarch64/sve/cond_fminnm_3.c b/gcc/testsuite/gcc.target/aarch64/sve/cond_fminnm_3.c index d39dd1825bd1..01d96ec1eb79 100644 --- a/gcc/testsuite/gcc.target/aarch64/sve/cond_fminnm_3.c +++ b/gcc/testsuite/gcc.target/aarch64/sve/cond_fminnm_3.c @@ -21,8 +21,8 @@ /* { dg-final { scan-assembler-times {\tfminnm\tz[0-9]+\.d, p[0-7]/m, z[0-9]+\.d, z[0-9]+\.d\n} 1 } } */ /* { dg-final { scan-assembler-times {\tsel\tz[0-9]+\.h, p[0-7], z[0-9]+\.h, z[0-9]+\.h\n} 3 } } */ -/* { dg-final { scan-assembler-times {\tsel\tz[0-9]+\.h, p[0-7], z[0-9]+\.h, z[0-9]+\.h\n} 3 } } */ -/* { dg-final { scan-assembler-times {\tsel\tz[0-9]+\.h, p[0-7], z[0-9]+\.h, z[0-9]+\.h\n} 3 } } */ +/* { dg-final { scan-assembler-times {\tsel\tz[0-9]+\.s, p[0-7], z[0-9]+\.s, z[0-9]+\.s\n} 3 } } */ +/* { dg-final { scan-assembler-times {\tsel\tz[0-9]+\.d, p[0-7], z[0-9]+\.d, z[0-9]+\.d\n} 3 } } */ /* { dg-final { scan-assembler-not {\tmovprfx\t} } } */ /* { dg-final { scan-assembler-not {\tmov\tz} } } */ diff --git a/gcc/testsuite/gcc.target/aarch64/sve/cond_fminnm_5.c b/gcc/testsuite/gcc.target/aarch64/sve/cond_fminnm_5.c index 290c4beac246..9865f08818a6 100644 --- a/gcc/testsuite/gcc.target/aarch64/sve/cond_fminnm_5.c +++ b/gcc/testsuite/gcc.target/aarch64/sve/cond_fminnm_5.c @@ -12,10 +12,6 @@ /* { dg-final { scan-assembler-times {\tfminnm\tz[0-9]+\.s, p[0-7]/m, z[0-9]+\.s, #1\.0\n} 1 } } */ /* { dg-final { scan-assembler-times {\tfminnm\tz[0-9]+\.d, p[0-7]/m, z[0-9]+\.d, #1\.0\n} 1 } } */ -/* { dg-final { scan-assembler-times {\tfminnm\tz[0-9]+\.h, p[0-7]/m, z[0-9]+\.h, #1\.0\n} 1 } } */ -/* { dg-final { scan-assembler-times {\tfminnm\tz[0-9]+\.s, p[0-7]/m, z[0-9]+\.s, #1\.0\n} 1 } } */ -/* { dg-final { scan-assembler-times {\tfminnm\tz[0-9]+\.d, p[0-7]/m, z[0-9]+\.d, #1\.0\n} 1 } } */ - /* { dg-final { scan-assembler-times {\tfmov\tz[0-9]+\.h, #2\.0} 1 } } */ /* { dg-final { scan-assembler-times {\tfmov\tz[0-9]+\.s, #2\.0} 1 } } */ /* { dg-final { scan-assembler-times {\tfmov\tz[0-9]+\.d, #2\.0} 1 } } */ diff --git a/gcc/testsuite/gcc.target/aarch64/sve/cond_fminnm_7.c b/gcc/testsuite/gcc.target/aarch64/sve/cond_fminnm_7.c index 347a1a3540b8..eae52cd284ce 100644 --- a/gcc/testsuite/gcc.target/aarch64/sve/cond_fminnm_7.c +++ b/gcc/testsuite/gcc.target/aarch64/sve/cond_fminnm_7.c @@ -21,8 +21,8 @@ /* { dg-final { scan-assembler-times {\tfminnm\tz[0-9]+\.d, p[0-7]/m, z[0-9]+\.d, z[0-9]+\.d\n} 1 } } */ /* { dg-final { scan-assembler-times {\tsel\tz[0-9]+\.h, p[0-7], z[0-9]+\.h, z[0-9]+\.h\n} 3 } } */ -/* { dg-final { scan-assembler-times {\tsel\tz[0-9]+\.h, p[0-7], z[0-9]+\.h, z[0-9]+\.h\n} 3 } } */ -/* { dg-final { scan-assembler-times {\tsel\tz[0-9]+\.h, p[0-7], z[0-9]+\.h, z[0-9]+\.h\n} 3 } } */ +/* { dg-final { scan-assembler-times {\tsel\tz[0-9]+\.s, p[0-7], z[0-9]+\.s, z[0-9]+\.s\n} 3 } } */ +/* { dg-final { scan-assembler-times {\tsel\tz[0-9]+\.d, p[0-7], z[0-9]+\.d, z[0-9]+\.d\n} 3 } } */ /* { dg-final { scan-assembler-not {\tmovprfx\t} } } */ /* { dg-final { scan-assembler-not {\tmov\tz} } } */ diff --git a/gcc/testsuite/gcc.target/aarch64/sve/cond_fmul_3.c b/gcc/testsuite/gcc.target/aarch64/sve/cond_fmul_3.c index 4da147e15680..549950d2e157 100644 --- a/gcc/testsuite/gcc.target/aarch64/sve/cond_fmul_3.c +++ b/gcc/testsuite/gcc.target/aarch64/sve/cond_fmul_3.c @@ -43,8 +43,8 @@ TEST_ALL (DEF_LOOP) /* { dg-final { scan-assembler-times {\tfmul\tz[0-9]+\.d, p[0-7]/m, z[0-9]+\.d, z[0-9]+\.d\n} 1 } } */ /* { dg-final { scan-assembler-times {\tsel\tz[0-9]+\.h, p[0-7], z[0-9]+\.h, z[0-9]+\.h\n} 3 } } */ -/* { dg-final { scan-assembler-times {\tsel\tz[0-9]+\.h, p[0-7], z[0-9]+\.h, z[0-9]+\.h\n} 3 } } */ -/* { dg-final { scan-assembler-times {\tsel\tz[0-9]+\.h, p[0-7], z[0-9]+\.h, z[0-9]+\.h\n} 3 } } */ +/* { dg-final { scan-assembler-times {\tsel\tz[0-9]+\.s, p[0-7], z[0-9]+\.s, z[0-9]+\.s\n} 3 } } */ +/* { dg-final { scan-assembler-times {\tsel\tz[0-9]+\.d, p[0-7], z[0-9]+\.d, z[0-9]+\.d\n} 3 } } */ /* { dg-final { scan-assembler-not {\tmovprfx\t} } } */ /* { dg-final { scan-assembler-not {\tmov\tz} } } */ diff --git a/gcc/testsuite/gcc.target/aarch64/sve/cond_fsubr_3.c b/gcc/testsuite/gcc.target/aarch64/sve/cond_fsubr_3.c index 328af5741ef7..91eee805bbb6 100644 --- a/gcc/testsuite/gcc.target/aarch64/sve/cond_fsubr_3.c +++ b/gcc/testsuite/gcc.target/aarch64/sve/cond_fsubr_3.c @@ -43,8 +43,8 @@ TEST_ALL (DEF_LOOP) /* { dg-final { scan-assembler-times {\tfsub\tz[0-9]+\.d, p[0-7]/m, z[0-9]+\.d, z[0-9]+\.d\n} 1 } } */ /* { dg-final { scan-assembler-times {\tsel\tz[0-9]+\.h, p[0-7], z[0-9]+\.h, z[0-9]+\.h\n} 3 } } */ -/* { dg-final { scan-assembler-times {\tsel\tz[0-9]+\.h, p[0-7], z[0-9]+\.h, z[0-9]+\.h\n} 3 } } */ -/* { dg-final { scan-assembler-times {\tsel\tz[0-9]+\.h, p[0-7], z[0-9]+\.h, z[0-9]+\.h\n} 3 } } */ +/* { dg-final { scan-assembler-times {\tsel\tz[0-9]+\.s, p[0-7], z[0-9]+\.s, z[0-9]+\.s\n} 3 } } */ +/* { dg-final { scan-assembler-times {\tsel\tz[0-9]+\.d, p[0-7], z[0-9]+\.d, z[0-9]+\.d\n} 3 } } */ /* { dg-final { scan-assembler-not {\tmovprfx\t} } } */ /* { dg-final { scan-assembler-not {\tmov\tz} } } */ diff --git a/gcc/testsuite/gcc.target/aarch64/sve/mixed_size_6.c b/gcc/testsuite/gcc.target/aarch64/sve/mixed_size_6.c index 837edecf7d07..da778204454f 100644 --- a/gcc/testsuite/gcc.target/aarch64/sve/mixed_size_6.c +++ b/gcc/testsuite/gcc.target/aarch64/sve/mixed_size_6.c @@ -39,9 +39,9 @@ f3 (uint64_t *restrict ptr1, uint32_t *restrict ptr2, uint32_t start) } /* { dg-final { scan-assembler {\tindex\tz[0-9]+\.d, x[0-9]+, #1\n} } } */ -/* { dg-final { scan-assembler {\tindex\tz[0-9]+\.d, x[0-9]+, #1\n} } } */ +/* { dg-final { scan-assembler {\tindex\tz[0-9]+\.d, x[0-9]+, #2\n} } } */ /* { dg-final { scan-assembler {\tindex\tz[0-9]+\.d, x[0-9]+, #4\n} } } */ /* { dg-final { scan-assembler-not {\tindex\tz[0-9]+\.d, w[0-9]+, #1\n} } } */ -/* { dg-final { scan-assembler-not {\tindex\tz[0-9]+\.d, w[0-9]+, #1\n} } } */ +/* { dg-final { scan-assembler-not {\tindex\tz[0-9]+\.d, w[0-9]+, #2\n} } } */ /* { dg-final { scan-assembler-not {\tindex\tz[0-9]+\.d, w[0-9]+, #4\n} } } */ diff --git a/gcc/testsuite/gcc.target/aarch64/sve/pcs/annotate_1.c b/gcc/testsuite/gcc.target/aarch64/sve/pcs/annotate_1.c index a85d068607aa..6430980add47 100644 --- a/gcc/testsuite/gcc.target/aarch64/sve/pcs/annotate_1.c +++ b/gcc/testsuite/gcc.target/aarch64/sve/pcs/annotate_1.c @@ -96,7 +96,6 @@ svfloat64x4_t ret_f64x4 (void) { return svundef4_f64 (); } /* { dg-final { scan-assembler {\t\.variant_pcs\tret_s8x3\n} } } */ /* { dg-final { scan-assembler {\t\.variant_pcs\tret_s16x3\n} } } */ -/* { dg-final { scan-assembler {\t\.variant_pcs\tret_s16x3\n} } } */ /* { dg-final { scan-assembler {\t\.variant_pcs\tret_s32x3\n} } } */ /* { dg-final { scan-assembler {\t\.variant_pcs\tret_s64x3\n} } } */ /* { dg-final { scan-assembler {\t\.variant_pcs\tret_u8x3\n} } } */ diff --git a/gcc/testsuite/gcc.target/aarch64/sve/pcs/return_6.c b/gcc/testsuite/gcc.target/aarch64/sve/pcs/return_6.c index 81c0a4163faa..bf7308dd567b 100644 --- a/gcc/testsuite/gcc.target/aarch64/sve/pcs/return_6.c +++ b/gcc/testsuite/gcc.target/aarch64/sve/pcs/return_6.c @@ -55,7 +55,7 @@ CALLEE (s8, svint8_t) CALLEE (u8, svuint8_t) /* -** callee_u8: +** callee_mf8: ** ( ** ld1 ({v.*}), \[x0\] ** st1 \1, \[x8\] diff --git a/gcc/testsuite/gcc.target/aarch64/sve/struct_move_3.c b/gcc/testsuite/gcc.target/aarch64/sve/struct_move_3.c index 19011384f9b8..d6092e791d85 100644 --- a/gcc/testsuite/gcc.target/aarch64/sve/struct_move_3.c +++ b/gcc/testsuite/gcc.target/aarch64/sve/struct_move_3.c @@ -37,7 +37,7 @@ typedef struct { vnx2df a[4]; } vnx8df; TEST_TYPE (vnx64qi, z0, z4) TEST_TYPE (vnx32hi, z6, z2) TEST_TYPE (vnx16si, z12, z16) -TEST_TYPE (vnx8di, z17, z13) +TEST_TYPE (vnx8di, z17, z12) TEST_TYPE (vnx32hf, z18, z1) TEST_TYPE (vnx16sf, z20, z16) TEST_TYPE (vnx8df, z24, z28) @@ -92,11 +92,11 @@ TEST_TYPE (vnx8df, z24, z28) /* { dg-final { scan-assembler {\tld1d\tz19.d, p[0-7]/z, \[x0, #2, mul vl\]\n} } } */ /* { dg-final { scan-assembler {\tld1d\tz20.d, p[0-7]/z, \[x0, #3, mul vl\]\n} } } */ /* { dg-final { scan-assembler { test vnx8di 1 z17\n} } } */ -/* { dg-final { scan-assembler {\tmov\tz13.d, z17.d\n} } } */ -/* { dg-final { scan-assembler {\tmov\tz14.d, z18.d\n} } } */ -/* { dg-final { scan-assembler {\tmov\tz15.d, z19.d\n} } } */ -/* { dg-final { scan-assembler {\tmov\tz16.d, z20.d\n} } } */ -/* { dg-final { scan-assembler { test vnx8di 2 z17, z17, z13\n} } } */ +/* { dg-final { scan-assembler {\tmov\tz12.d, z17.d\n} } } */ +/* { dg-final { scan-assembler {\tmov\tz13.d, z18.d\n} } } */ +/* { dg-final { scan-assembler {\tmov\tz14.d, z19.d\n} } } */ +/* { dg-final { scan-assembler {\tmov\tz15.d, z20.d\n} } } */ +/* { dg-final { scan-assembler { test vnx8di 2 z17, z17, z12\n} } } */ /* { dg-final { scan-assembler {\tst1d\tz17.d, p[0-7], \[x0, #4, mul vl\]\n} } } */ /* { dg-final { scan-assembler {\tst1d\tz18.d, p[0-7], \[x0, #5, mul vl\]\n} } } */ /* { dg-final { scan-assembler {\tst1d\tz19.d, p[0-7], \[x0, #6, mul vl\]\n} } } */ diff --git a/gcc/testsuite/gcc.target/aarch64/sve/struct_move_6.c b/gcc/testsuite/gcc.target/aarch64/sve/struct_move_6.c index 8336e3f1eddf..12b714481e3d 100644 --- a/gcc/testsuite/gcc.target/aarch64/sve/struct_move_6.c +++ b/gcc/testsuite/gcc.target/aarch64/sve/struct_move_6.c @@ -34,7 +34,7 @@ typedef struct { vnx2df a[4]; } vnx8df; TEST_TYPE (vnx64qi, z0, z4) TEST_TYPE (vnx32hi, z6, z2) TEST_TYPE (vnx16si, z12, z16) -TEST_TYPE (vnx8di, z17, z13) +TEST_TYPE (vnx8di, z17, z12) TEST_TYPE (vnx16sf, z20, z16) TEST_TYPE (vnx8df, z24, z28) @@ -88,11 +88,11 @@ TEST_TYPE (vnx8df, z24, z28) /* { dg-final { scan-assembler {\tldr\tz19, \[x0, #2, mul vl\]\n} } } */ /* { dg-final { scan-assembler {\tldr\tz20, \[x0, #3, mul vl\]\n} } } */ /* { dg-final { scan-assembler { test vnx8di 1 z17\n} } } */ -/* { dg-final { scan-assembler {\tmov\tz13.d, z17.d\n} } } */ -/* { dg-final { scan-assembler {\tmov\tz14.d, z18.d\n} } } */ -/* { dg-final { scan-assembler {\tmov\tz15.d, z19.d\n} } } */ -/* { dg-final { scan-assembler {\tmov\tz16.d, z20.d\n} } } */ -/* { dg-final { scan-assembler { test vnx8di 2 z17, z17, z13\n} } } */ +/* { dg-final { scan-assembler {\tmov\tz12.d, z17.d\n} } } */ +/* { dg-final { scan-assembler {\tmov\tz13.d, z18.d\n} } } */ +/* { dg-final { scan-assembler {\tmov\tz14.d, z19.d\n} } } */ +/* { dg-final { scan-assembler {\tmov\tz15.d, z20.d\n} } } */ +/* { dg-final { scan-assembler { test vnx8di 2 z17, z17, z12\n} } } */ /* { dg-final { scan-assembler {\tstr\tz17, \[x0, #4, mul vl\]\n} } } */ /* { dg-final { scan-assembler {\tstr\tz18, \[x0, #5, mul vl\]\n} } } */ /* { dg-final { scan-assembler {\tstr\tz19, \[x0, #6, mul vl\]\n} } } */ diff --git a/gcc/testsuite/gcc.target/aarch64/sve/uzp1_1.c b/gcc/testsuite/gcc.target/aarch64/sve/uzp1_1.c index 84c6c6f1c606..83451db9b44b 100644 --- a/gcc/testsuite/gcc.target/aarch64/sve/uzp1_1.c +++ b/gcc/testsuite/gcc.target/aarch64/sve/uzp1_1.c @@ -32,9 +32,6 @@ UZP1 (vnx8hf, ((vnx8hi) { 0, 2, 4, 6, 8, 10, 12, 14, 16, 18, 20, 22, 24, 26, 28, 30 })); /* { dg-final { scan-assembler-not {\ttbl\t} } } */ -/* { dg-final { scan-assembler-not {\ttbl\t} } } */ -/* { dg-final { scan-assembler-not {\ttbl\t} } } */ -/* { dg-final { scan-assembler-not {\ttbl\t} } } */ /* { dg-final { scan-assembler-times {\tuzp1\tz[0-9]+\.d, z[0-9]+\.d, z[0-9]+\.d\n} 2 } } */ /* { dg-final { scan-assembler-times {\tuzp1\tz[0-9]+\.s, z[0-9]+\.s, z[0-9]+\.s\n} 2 } } */ diff --git a/gcc/testsuite/gcc.target/aarch64/sve/uzp2_1.c b/gcc/testsuite/gcc.target/aarch64/sve/uzp2_1.c index 1336cafc5c7e..bfdee4073f75 100644 --- a/gcc/testsuite/gcc.target/aarch64/sve/uzp2_1.c +++ b/gcc/testsuite/gcc.target/aarch64/sve/uzp2_1.c @@ -31,9 +31,6 @@ UZP2 (vnx8hf, ((vnx8hi) { 1, 3, 5, 7, 9, 11, 13, 15, 17, 19, 21, 23, 25, 27, 29, 31 })); /* { dg-final { scan-assembler-not {\ttbl\t} } } */ -/* { dg-final { scan-assembler-not {\ttbl\t} } } */ -/* { dg-final { scan-assembler-not {\ttbl\t} } } */ -/* { dg-final { scan-assembler-not {\ttbl\t} } } */ /* { dg-final { scan-assembler-times {\tuzp2\tz[0-9]+\.d, z[0-9]+\.d, z[0-9]+\.d\n} 2 } } */ /* { dg-final { scan-assembler-times {\tuzp2\tz[0-9]+\.s, z[0-9]+\.s, z[0-9]+\.s\n} 2 } } */ diff --git a/gcc/testsuite/gcc.target/aarch64/sve2/pr121599.c b/gcc/testsuite/gcc.target/aarch64/sve2/pr121599.c new file mode 100644 index 000000000000..90c5ac97e4f8 --- /dev/null +++ b/gcc/testsuite/gcc.target/aarch64/sve2/pr121599.c @@ -0,0 +1,31 @@ +/* PR target/121599. */ +/* { dg-do compile } */ +/* { dg-options "-O2" } */ +/* { dg-final { check-function-bodies "**" "" "" } } */ + +#include + +/* +** foo: +** movi d([0-9]+), #0 +** movprfx z0\.b, p0/z, z0\.b +** usqadd z0\.b, p0/m, z0\.b, z\1\.b +** ret +*/ +svuint8_t foo (svbool_t pg, svuint8_t op1) +{ + return svsqadd_u8_z (pg, op1, svdup_s8 (0)); +} + +/* +** bar: +** movi d([0-9]+), #0 +** movprfx z0\.b, p0/z, z0\.b +** suqadd z0\.b, p0/m, z0\.b, z\1\.b +** ret +*/ +svint8_t bar (svbool_t pg, svint8_t op1) +{ + return svuqadd_n_s8_z (pg, op1, 0); +} + diff --git a/gcc/testsuite/gcc.target/aarch64/vector-compare-5.c b/gcc/testsuite/gcc.target/aarch64/vector-compare-5.c index a1a601dc1958..7becd56f10c1 100644 --- a/gcc/testsuite/gcc.target/aarch64/vector-compare-5.c +++ b/gcc/testsuite/gcc.target/aarch64/vector-compare-5.c @@ -53,15 +53,13 @@ n (v4i *x, v4i const *y, v4i *z, v4i *t) } +/* { dg-final { scan-tree-dump-times "\\s*\\*tD\\.\\d+\\s*=\\s*\\{\\s*-1(?:,\\s*-1){3}\\s*\\}\\s*;" 1 "original" } } */ +/* { dg-final { scan-tree-dump-times "\\s*\\*tD\\.\\d+\\s*=\\s*\\{\\s*0(?:,\\s*0){3}\\s*\\}\\s*;" 3 "original" } } */ +/* { dg-final { scan-tree-dump-times "\\s*\\*zD\\.\\d+\\s*=\\s*\\{\\s*-1(?:,\\s*-1){3}\\s*\\}\\s*;" 2 "original" } } */ + /* { dg-final { scan-tree-dump ".*\\*zD\\.\\d+\\s*=\\s*VEC_COND_EXPR\\s*<\\s*\\*xD\\.\\d+\\s*>=\\s*VIEW_CONVERT_EXPR\\(\\*yD\\.\\d+\\)\\s*,\\s*\\{\\s*-1(,\\s*-1){3}\\s*\\}\\s*,\\s*\\{\\s*0(,\\s*0){3}\\s*\\}\\s*>\\s*;" "original" } } */ -/* { dg-final { scan-tree-dump ".*\\*tD\\.\\d+\\s*=\\s*\\{\\s*-1(,\\s*-1){3}\\s*\\}\\s*;" "original" } } */ /* { dg-final { scan-tree-dump ".*\\*zD\\.\\d+\\s*=\\s*VEC_COND_EXPR\\s*<\\s*\\*xD\\.\\d+\\s*==\\s*VIEW_CONVERT_EXPR\\(\\*yD\\.\\d+\\)\\s*,\\s*\\{\\s*-1(,\\s*-1){3}\\s*\\}\\s*,\\s*\\{\\s*0(,\\s*0){3}\\s*\\}\\s*>\\s*;" "original" } } */ /* { dg-final { scan-tree-dump ".*\\*tD\\.\\d+\\s*=\\s*VEC_COND_EXPR\\s*<\\s*\\*xD\\.\\d+\\s*<\\s*VIEW_CONVERT_EXPR\\(\\*yD\\.\\d+\\)\\s*,\\s*\\{\\s*-1(,\\s*-1){3}\\s*\\}\\s*,\\s*\\{\\s*0(,\\s*0){3}\\s*\\}\\s*>\\s*;" "original" } } */ -/* { dg-final { scan-tree-dump ".*\\*zD\\.\\d+\\s*=\\s*\\{\\s*-1(,\\s*-1){3}\\s*\\}\\s*;" "original" } } */ -/* { dg-final { scan-tree-dump ".*\\*tD\\.\\d+\\s*=\\s*\\{\\s*0(,\\s*0){3}\\s*\\}\\s*;" "original" } } */ /* { dg-final { scan-tree-dump ".*\\*zD\\.\\d+\\s*=\\s*VEC_COND_EXPR\\s*<\\s*\\*xD\\.\\d+\\s*<=\\s*VIEW_CONVERT_EXPR\\(\\*yD\\.\\d+\\)\\s*,\\s*\\{\\s*-1(,\\s*-1){3}\\s*\\}\\s*,\\s*\\{\\s*0(,\\s*0){3}\\s*\\}\\s*>\\s*;" "original" } } */ -/* { dg-final { scan-tree-dump ".*\\*tD\\.\\d+\\s*=\\s*\\{\\s*0(,\\s*0){3}\\s*\\}\\s*;" "original" } } */ /* { dg-final { scan-tree-dump ".*\\*zD\\.\\d+\\s*=\\s*VEC_COND_EXPR\\s*<\\s*\\*xD\\.\\d+\\s*!=\\s*VIEW_CONVERT_EXPR\\(\\*yD\\.\\d+\\)\\s*,\\s*\\{\\s*-1(,\\s*-1){3}\\s*\\}\\s*,\\s*\\{\\s*0(,\\s*0){3}\\s*\\}\\s*>\\s*;" "original" } } */ /* { dg-final { scan-tree-dump ".*\\*tD\\.\\d+\\s*=\\s*VEC_COND_EXPR\\s*<\\s*\\*xD\\.\\d+\\s*>=\\s*VIEW_CONVERT_EXPR\\(\\*yD\\.\\d+\\)\\s*,\\s*\\{\\s*-1(,\\s*-1){3}\\s*\\}\\s*,\\s*\\{\\s*0(,\\s*0){3}\\s*\\}\\s*>\\s*;" "original" } } */ -/* { dg-final { scan-tree-dump ".*\\*zD\\.\\d+\\s*=\\s*\\{\\s*-1(,\\s*-1){3}\\s*\\}\\s*;" "original" } } */ -/* { dg-final { scan-tree-dump ".*\\*tD\\.\\d+\\s*=\\s*\\{\\s*0(,\\s*0){3}\\s*\\}\\s*;" "original" } } */ diff --git a/gcc/testsuite/gcc.target/arm/pr122111.c b/gcc/testsuite/gcc.target/arm/pr122111.c new file mode 100644 index 000000000000..82d15e9a43bf --- /dev/null +++ b/gcc/testsuite/gcc.target/arm/pr122111.c @@ -0,0 +1,14 @@ +/* Test that we do not have ice when compile */ +/* { dg-do compile } */ +/* { dg-options "-O3" } */ + +typedef long long wide; + +void g(void); +wide f(int *a, unsigned t) +{ + wide i = t; + i *= 4; + unsigned long ai = (__SIZE_TYPE__)a; + return i + ai; +} diff --git a/gcc/testsuite/gcc.target/avr/cmpdi-1.c b/gcc/testsuite/gcc.target/avr/cmpdi-1.c new file mode 100644 index 000000000000..e7f59c1a29e2 --- /dev/null +++ b/gcc/testsuite/gcc.target/avr/cmpdi-1.c @@ -0,0 +1,149 @@ +/* { dg-do run { target { ! avr_tiny } } } */ +/* { dg-additional-options { -std=gnu99 -Os -mcall-prologues } } */ + +typedef __INT8_TYPE__ int8_t; +typedef __UINT8_TYPE__ uint8_t; +typedef __UINT16_TYPE__ uint16_t; +typedef __UINT64_TYPE__ uint64_t; +typedef __INT64_TYPE__ int64_t; + +#define ARRAY_SIZE(X) (sizeof(X) / sizeof(*X)) + +const __flash uint64_t mant[] = + { + 0x0000000000000, + 0x0000000000001, + 0x0000000000100, + 0x0000000010000, + 0x0000001000000, + 0x0000100000000, + 0x0010000000000, + 0x1000000000000, + 0x00000000000ff, + 0x00000000000ff, + 0x000000000ffff, + 0x0000000ffffff, + 0x00000ffffffff, + 0x000ffffffffff, + 0x0ffffffffffff, + 0xfffffffffffff, + 0xfffffffffff00, + 0xfffffffff0000, + 0xfffffff000000, + 0xfffff00000000, + 0xfff0000000000, + 0xff00000000000, + 0xf000000000000, + 0x7ffffffffffff, + 0x8000000000000, + 0x8000000000001, + 0xffffffffffffe + }; + +const __flash uint16_t expo[] = + { + 0x000, + 0x001, + 0x002, + 0x7fe, + 0x7ff + }; + +#define SMASK ((uint64_t) 1 << 63) +#define xNAN 0x7f + +char d64_nan_p (uint64_t a) +{ + return (a & ~SMASK) > (uint64_t) 0x7ff << 52; +} + +int8_t cmp_d64 (uint64_t a, uint64_t b) +{ + if (d64_nan_p (a) || d64_nan_p (b)) + return xNAN; + + if (a & SMASK) a = SMASK - a; + if (b & SMASK) b = SMASK - b; + __asm ("" : "+r" (a)); + __asm ("" : "+r" (b)); + + return a == b + ? 0 + : (int64_t) a > (int64_t) b ? 1 : -1; +} + +extern int8_t eq (uint64_t, uint64_t) __asm("__eqdf2"); +extern int8_t ne (uint64_t, uint64_t) __asm("__nedf2"); +extern int8_t ge (uint64_t, uint64_t) __asm("__gedf2"); +extern int8_t gt (uint64_t, uint64_t) __asm("__gtdf2"); +extern int8_t le (uint64_t, uint64_t) __asm("__ledf2"); +extern int8_t lt (uint64_t, uint64_t) __asm("__ltdf2"); +extern int8_t unord (uint64_t, uint64_t) __asm("__unorddf2"); + +void test1 (uint64_t a, uint64_t b) +{ + int8_t d, c = cmp_d64 (a, b); + d = eq (a, b); + if (c == xNAN && d) __builtin_exit (1); + if (c != xNAN && d != (c == 0)) __builtin_exit (2); + + d = ne (a, b); + if (c == xNAN && d) __builtin_exit (3); + if (c != xNAN && d != (c != 0)) __builtin_exit (4); + + d = ge (a, b); + if (c == xNAN && d) __builtin_exit (5); + if (c != xNAN && d != (c >= 0)) __builtin_exit (6); + + d = gt (a, b); + if (c == xNAN && d) __builtin_exit (7); + if (c != xNAN && d != (c > 0)) __builtin_exit (8); + + d = le (a, b); + if (c == xNAN && d) __builtin_exit (9); + if (c != xNAN && d != (c <= 0)) __builtin_exit (10); + + d = lt (a, b); + if (c == xNAN && d) __builtin_exit (11); + if (c != xNAN && d != (c < 0)) __builtin_exit (12); + + d = unord (a, b); + if (c == xNAN && !d) __builtin_exit (13); + if (c != xNAN && d) __builtin_exit (14); +} + + +void testAB (uint64_t a, uint64_t b) +{ + test1 (a, b); + test1 (a, b ^ SMASK); + test1 (a ^ SMASK, b); + test1 (a ^ SMASK, b ^ SMASK); +} + +void testA (uint64_t a) +{ + for (uint8_t i = 0; i < ARRAY_SIZE (mant); ++i) + { + uint64_t b = mant[i]; + for (uint8_t j = 0; j < ARRAY_SIZE (expo); ++j) + testAB (a, b | ((uint64_t) expo[j] << 52)); + } +} + +void tests (void) +{ + for (uint8_t i = 0; i < ARRAY_SIZE (mant); ++i) + { + uint64_t a = mant[i]; + for (uint8_t j = 0; j < ARRAY_SIZE (expo); ++j) + testA (a | ((uint64_t) expo[j] << 52)); + } +} + + +int main (void) +{ + tests (); + return 0; +} diff --git a/gcc/testsuite/gcc.target/avr/dtofx.c b/gcc/testsuite/gcc.target/avr/dtofx.c new file mode 100644 index 000000000000..f7e28159f920 --- /dev/null +++ b/gcc/testsuite/gcc.target/avr/dtofx.c @@ -0,0 +1,98 @@ +/* { dg-do run { target { ! avr_tiny } } } */ +/* { dg-additional-options { -std=gnu99 -Os -mcall-prologues -Wno-pedantic } } */ + +#include + +#if __SIZEOF_LONG_DOUBLE__ == 8 + +typedef long double D; + +volatile D d0 = 0; +volatile D dm15 = -1.5; +volatile D dp15 = +1.5; +volatile D dm05 = -0.5; +volatile D dp05 = +0.5; + +void test0 (void) +{ + if (0hk != (short accum) d0) + __builtin_exit (__LINE__); + + if (0uhk != (unsigned short accum) d0) + __builtin_exit (__LINE__); + + if (0hr != (short fract) d0) + __builtin_exit (__LINE__); + + if (0uhr != (unsigned short fract) d0) + __builtin_exit (__LINE__); + + if (0k != (accum) d0) + __builtin_exit (__LINE__); + + if (0uk != (unsigned accum) d0) + __builtin_exit (__LINE__); + + if (0r != (fract) d0) + __builtin_exit (__LINE__); + + if (0ur != (unsigned fract) d0) + __builtin_exit (__LINE__); +} + +void testp (void) +{ + if (0.5hr != (short fract) dp05) + __builtin_exit (__LINE__); + + if (0.5uhr != (unsigned short fract) dp05) + __builtin_exit (__LINE__); + + if (0.5r != (fract) dp05) + __builtin_exit (__LINE__); + + if (0.5ur != (unsigned fract) dp05) + __builtin_exit (__LINE__); + + if (1.5hk != (short accum) dp15) + __builtin_exit (__LINE__); + + if (1.5uhk != (unsigned short accum) dp15) + __builtin_exit (__LINE__); + + if (1.5k != (accum) dp15) + __builtin_exit (__LINE__); + + if (1.5uk != (unsigned accum) dp15) + __builtin_exit (__LINE__); +} + +void testm (void) +{ + if (-0.5hr != (short fract) dm05) + __builtin_exit (__LINE__); + + if (-0.5r != (fract) dm05) + __builtin_exit (__LINE__); + + if (-1.5hk != (short accum) dm15) + __builtin_exit (__LINE__); + + if (-1.5k != (accum) dm15) + __builtin_exit (__LINE__); +} + +int main (void) +{ + test0 (); + testp (); + testm (); + + return 0; +} +#else +int main (void) +{ + return 0; +} +#endif diff --git a/gcc/testsuite/gcc.target/avr/fminfmax-1.c b/gcc/testsuite/gcc.target/avr/fminfmax-1.c new file mode 100644 index 000000000000..eba910cff8c3 --- /dev/null +++ b/gcc/testsuite/gcc.target/avr/fminfmax-1.c @@ -0,0 +1,116 @@ +/* { dg-do run { target { ! avr_tiny } } } */ +/* { dg-additional-options { -std=gnu99 -Os -mcall-prologues } } */ + +typedef __INT8_TYPE__ int8_t; +typedef __UINT8_TYPE__ uint8_t; +typedef __UINT16_TYPE__ uint16_t; +typedef __UINT64_TYPE__ uint64_t; +typedef __INT64_TYPE__ int64_t; + +#define ARRAY_SIZE(X) (sizeof(X) / sizeof(*X)) + +const __flash uint64_t vals[] = + { + // NaNs + 0xffffffffffffffff, + 0x7fffffffffffffff, + 0xfff0000000000001, + 0x7ff0000000000001, + + // Some non-NaN doubles, increasing in magnitude. + 0xfff0000000000000, // -Inf + 0xffefffffffffffff, + 0xffe0000000000000, + 0x8010000000000000, + 0x800fffffffffffff, + 0x800ffffffffffffe, + 0x8007fffffffffffe, + 0x8000000000000001, + 0x0000000000000000, + 0x0000000000000001, + 0x0007fffffffffffe, + 0x000ffffffffffffe, + 0x000fffffffffffff, + 0x0010000000000000, + 0x7fe0000000000000, + 0x7fefffffffffffff, + 0x7ff0000000000000 // +Inf + }; + +#define SMASK ((uint64_t) 1 << 63) + +char d64_nan_p (uint64_t a) +{ + return (a & ~SMASK) > (uint64_t) 0x7ff << 52; +} + +extern uint64_t xmin (uint64_t, uint64_t) __asm("__fmin"); +extern uint64_t xmax (uint64_t, uint64_t) __asm("__fmax"); + +void test_fmin (uint8_t i, uint8_t j) +{ + uint64_t a = vals[i]; + uint64_t b = vals[j]; + uint64_t m = xmin (a, b); + + char a_nan_p = d64_nan_p (a); + char b_nan_p = d64_nan_p (b); + + if (a_nan_p + b_nan_p == 2) + { + if (!d64_nan_p (m)) + __builtin_exit (__LINE__); + } + else + { + uint64_t r = 0?0 + : a_nan_p ? b + : b_nan_p ? a + : i < j ? a : b; + if (r != m) + __builtin_exit (__LINE__); + } +} + + +void test_fmax (uint8_t i, uint8_t j) +{ + uint64_t a = vals[i]; + uint64_t b = vals[j]; + uint64_t m = xmax (a, b); + + char a_nan_p = d64_nan_p (a); + char b_nan_p = d64_nan_p (b); + + if (a_nan_p + b_nan_p == 2) + { + if (!d64_nan_p (m)) + __builtin_exit (__LINE__); + } + else + { + uint64_t r = 0?0 + : a_nan_p ? b + : b_nan_p ? a + : i > j ? a : b; + if (r != m) + __builtin_exit (__LINE__); + } +} + + +void tests (void) +{ + for (uint8_t i = 0; i < ARRAY_SIZE (vals); ++i) + for (uint8_t j = 0; j < ARRAY_SIZE (vals); ++j) + { + test_fmin (i, j); + } +} + + +int main (void) +{ + tests (); + return 0; +} diff --git a/gcc/testsuite/gcc.target/avr/fxtod.c b/gcc/testsuite/gcc.target/avr/fxtod.c new file mode 100644 index 000000000000..e069a312290d --- /dev/null +++ b/gcc/testsuite/gcc.target/avr/fxtod.c @@ -0,0 +1,115 @@ +/* { dg-do run { target { ! avr_tiny } } } */ +/* { dg-additional-options { -std=gnu99 -Os -mcall-prologues -fwrapv -Wno-overflow } } */ + +#include + +#if __SIZEOF_LONG_DOUBLE__ == 8 + +#define NI __attribute__((noipa)) + +typedef long double D; + +extern D ldexpl (D, int); + +typedef short fract hr_t; +typedef unsigned short fract uhr_t; +typedef fract r_t; +typedef unsigned fract ur_t; + +typedef short accum hk_t; +typedef unsigned short accum uhk_t; +typedef accum k_t; +typedef unsigned accum uk_t; + +#define FBITuhr 8 +#define FBIThr 7 +#define FBITur 16 +#define FBITr 15 + +#define FBITuhk 8 +#define FBIThk 7 +#define FBITuk 16 +#define FBITk 15 + +#define VALff(S) ((2ul << (8 * sizeof (S##bits(0)) - 1)) - 1) +#define VAL80(S) (1ul << (8 * sizeof (S##bits(0)) - 1)) +#define VAL00(S) 0 +#define VAL01(S) 1 + + +#define TEST_U(S, V) \ + NI void test_##S##_##V (void) \ + { \ + S##_t x = S##bits (VAL##V (S)); \ + __asm ("" : "+r" (x)); \ + D d = (D) x; \ + D z = ldexpl (VAL##V (S), - FBIT##S); \ + if (d != z) \ + __builtin_exit (1); \ + } + +#define TEST_S(S, V) \ + NI void test_##S##_##V (void) \ + { \ + uint32_t u32 = (VAL##V (S) & VAL80 (S)) \ + ? 1u + (VAL##V (S) ^ VALff (S)) \ + : VAL##V (S); \ + S##_t x = S##bits (VAL##V (S)); \ + __asm ("" : "+r" (x)); \ + D d = (D) x; \ + D z = ldexpl (u32, - FBIT##S); \ + int s = (VAL##V (S) & VAL80 (S)) != 0; \ + if (s == 0 && d != z) \ + __builtin_exit (2); \ + if (s == 1 && d != -z) \ + __builtin_exit (3); \ + } + +#define TESTS_U(S) \ + TEST_U (S, 00) \ + TEST_U (S, 01) \ + TEST_U (S, ff) \ + TEST_U (S, 80) + +#define TESTS_S(S) \ + TEST_S (S, 00) \ + TEST_S (S, 01) \ + TEST_S (S, ff) \ + TEST_S (S, 80) + +TESTS_U (uhr) +TESTS_U (ur) +TESTS_U (uhk) +TESTS_U (uk) + +TESTS_S (hr) +TESTS_S (r) +TESTS_S (hk) +TESTS_S (k) + +#define RUN(S) \ + test_##S##_00 (); \ + test_##S##_01 (); \ + test_##S##_ff (); \ + test_##S##_80 () + +int main (void) +{ + RUN (uhr); + RUN (ur); + RUN (uhk); + RUN (uk); + + RUN (hr); + RUN (r); + RUN (hk); + RUN (k); + + return 0; +} +#else +int main (void) +{ + return 0; +} +#endif diff --git a/gcc/testsuite/gcc.target/avr/pr122220.c b/gcc/testsuite/gcc.target/avr/pr122220.c new file mode 100644 index 000000000000..2a8b83932a84 --- /dev/null +++ b/gcc/testsuite/gcc.target/avr/pr122220.c @@ -0,0 +1,23 @@ +/* { dg-do run { target { ! avr_tiny } } } */ +/* { dg-additional-options { -std=gnu99 -Os -mcall-prologues } } */ + +#if __SIZEOF_LONG_DOUBLE__ == 8 + +typedef long double D; +typedef __INT32_TYPE__ int32_t; + +D dd = -0x1p31L; + +int main (void) +{ + if ((int32_t) dd != -0x7fffffff - 1) + __builtin_abort(); + + return 0; +} +#else +int main (void) +{ + return 0; +} +#endif diff --git a/gcc/testsuite/gcc.target/avr/pr122222-sitod.c b/gcc/testsuite/gcc.target/avr/pr122222-sitod.c new file mode 100644 index 000000000000..d8f172005e3e --- /dev/null +++ b/gcc/testsuite/gcc.target/avr/pr122222-sitod.c @@ -0,0 +1,60 @@ +/* { dg-do run { target { ! avr_tiny } } } */ +/* { dg-additional-options { -std=gnu99 -Os -mcall-prologues } } */ + +#if __SIZEOF_LONG_DOUBLE__ == 8 + +typedef long double D; +typedef __INT32_TYPE__ int32_t; +typedef __UINT32_TYPE__ uint32_t; +typedef __UINT8_TYPE__ uint8_t; + +#define ARRAY_SIZE(X) (sizeof(X) / sizeof(*X)) + +void testu (void) +{ + static const volatile __flash uint32_t vals[] = + { + 0, 1ul, -1ul, (-1ul) << 1, + 1ul << 31, 1ul << 30, 1ul << 29, 1ul << 28, 1ul << 27, 1ul << 26, + 1ul << 25, 1ul << 24, 0xff, 123456789 + }; + + for (uint8_t i = 0; i < ARRAY_SIZE (vals); ++i) + { + D x = (D) vals[i]; + __asm ("" : "+r" (x)); + if ((uint32_t) x != vals[i]) + __builtin_exit (__LINE__); + } +} + +void tests (void) +{ + static const volatile __flash int32_t vals[] = + { + 0, 1L, -1L, 0x7fffffff, -0x7fffffff, -0x7fffffff - 1, + -123456789 + }; + + for (uint8_t i = 0; i < ARRAY_SIZE (vals); ++i) + { + D x = (D) vals[i]; + __asm ("" : "+r" (x)); + if ((int32_t) x != vals[i]) + __builtin_exit (__LINE__); + } +} + +int main (void) +{ + testu (); + tests (); + + return 0; +} +#else +int main (void) +{ + return 0; +} +#endif diff --git a/gcc/testsuite/gcc.target/avr/sincos-1.c b/gcc/testsuite/gcc.target/avr/sincos-1.c new file mode 100644 index 000000000000..3cf543cee2e6 --- /dev/null +++ b/gcc/testsuite/gcc.target/avr/sincos-1.c @@ -0,0 +1,35 @@ +/* { dg-do run { target { ! avr_tiny } } } */ +/* { dg-additional-options { -std=gnu99 -Os -mcall-prologues } } */ + +#if __SIZEOF_LONG_DOUBLE__ == 8 +typedef long double D; + +extern void sincosl (D, D*, D*); +extern D sinl (D); +extern D cosl (D); + +D s1, c1; + +int main (void) +{ + for (D x = -20; x < 20; x += 1.1) + { + sincosl (x, &s1, &c1); + + __asm ("" : "+r" (x) :: "memory"); + + if (s1 != sinl (x)) + __builtin_exit (1); + + if (c1 != cosl (x)) + __builtin_exit (2); + } + + return 0; +} +#else +int main (void) +{ + return 0; +} +#endif diff --git a/gcc/testsuite/gcc.target/avr/torture/pr122187.c b/gcc/testsuite/gcc.target/avr/torture/pr122187.c new file mode 100644 index 000000000000..0f781eb1a64d --- /dev/null +++ b/gcc/testsuite/gcc.target/avr/torture/pr122187.c @@ -0,0 +1,17 @@ +/* { dg-do compile } */ +/* { dg-additional-options { -std=c99 } } */ + +typedef __UINT32_TYPE__ uint32_t; +typedef __UINT16_TYPE__ uint16_t; +typedef __UINT8_TYPE__ uint8_t; + +#define PINB (*(volatile uint8_t*) (13 + __AVR_SFR_OFFSET__)) +#define PB1 1 + +uint16_t fun (void) +{ + uint16_t h = 0; + for (uint32_t s = 0; s < 0x10000; ++s) + h += (PINB >> PB1) & 1; + return h; +} diff --git a/gcc/testsuite/gcc.target/bpf/core-btf-tag-1.c b/gcc/testsuite/gcc.target/bpf/core-btf-tag-1.c new file mode 100644 index 000000000000..bd0fb3e40be4 --- /dev/null +++ b/gcc/testsuite/gcc.target/bpf/core-btf-tag-1.c @@ -0,0 +1,23 @@ +/* Test that BTF type tags do not interfere with CO-RE relocations. */ + +/* { dg-do compile } */ +/* { dg-options "-gbtf -dA -mco-re" } */ + +struct bpf_cpumask { + int i; + char c; +} __attribute__((preserve_access_index)); + +struct kptr_nested { + struct bpf_cpumask * __attribute__((btf_type_tag("kptr"))) mask; +} __attribute__((preserve_access_index)); + +void foo (struct kptr_nested *nested) +{ + if (nested && nested->mask) + nested->mask->i = 5; +} + +/* { dg-final { scan-assembler-times "bpfcr_insn" 3 } } */ +/* { dg-final { scan-assembler-times "bpfcr_type \\(struct" 3 } } */ +/* { dg-final { scan-assembler-times "bpfcr_astr_off \\(\"0:0\"\\)" 3 } } */ diff --git a/gcc/testsuite/gcc.target/bpf/core-btf-tag-2.c b/gcc/testsuite/gcc.target/bpf/core-btf-tag-2.c new file mode 100644 index 000000000000..6654ffe3ae05 --- /dev/null +++ b/gcc/testsuite/gcc.target/bpf/core-btf-tag-2.c @@ -0,0 +1,23 @@ +/* Test that BTF decl tags do not interfere with CO-RE relocations. */ + +/* { dg-do compile } */ +/* { dg-options "-gbtf -dA -mco-re" } */ + +struct bpf_cpumask { + int i; + char c; +} __attribute__((preserve_access_index)); + +struct kptr_nested { + struct bpf_cpumask * mask __attribute__((btf_decl_tag ("decltag"))); +} __attribute__((preserve_access_index)); + +void foo (struct kptr_nested *nested __attribute__((btf_decl_tag ("foo")))) +{ + if (nested && nested->mask) + nested->mask->i = 5; +} + +/* { dg-final { scan-assembler-times "bpfcr_insn" 3 } } */ +/* { dg-final { scan-assembler-times "bpfcr_type \\(struct" 3 } } */ +/* { dg-final { scan-assembler-times "bpfcr_astr_off \\(\"0:0\"\\)" 3 } } */ diff --git a/gcc/testsuite/gcc.target/i386/memcpy-pr120683-2.c b/gcc/testsuite/gcc.target/i386/memcpy-pr120683-2.c index 0d0e34860e91..cd78ae860b6b 100644 --- a/gcc/testsuite/gcc.target/i386/memcpy-pr120683-2.c +++ b/gcc/testsuite/gcc.target/i386/memcpy-pr120683-2.c @@ -7,22 +7,22 @@ **foo: **.LFB[0-9]+: ** .cfi_startproc -** xorl %edx, %edx +** xorl %eax, %eax **.L[0-9]+: -** movl %edx, %eax -** addl \$64, %edx -** movdqa src\(%rax\), %xmm3 -** movdqa src\+16\(%rax\), %xmm2 -** movdqa src\+32\(%rax\), %xmm1 -** movdqa src\+48\(%rax\), %xmm0 -** movaps %xmm3, dest\(%rax\) -** movaps %xmm2, dest\+16\(%rax\) -** movaps %xmm1, dest\+32\(%rax\) -** movaps %xmm0, dest\+48\(%rax\) -** cmpl \$256, %edx +** movl %eax, %edx +** addl \$64, %eax +** movdqa src\(%rdx\), %xmm3 +** movdqa src\+16\(%rdx\), %xmm2 +** movdqa src\+32\(%rdx\), %xmm1 +** movdqa src\+48\(%rdx\), %xmm0 +** movaps %xmm3, dest\(%rdx\) +** movaps %xmm2, dest\+16\(%rdx\) +** movaps %xmm1, dest\+32\(%rdx\) +** movaps %xmm0, dest\+48\(%rdx\) +** cmpl \$256, %eax ** jb .L[0-9]+ -** movdqa src\(%rdx\), %xmm0 -** movaps %xmm0, dest\(%rdx\) +** movdqa src\(%rax\), %xmm0 +** movaps %xmm0, dest\(%rax\) ** ret **... */ diff --git a/gcc/testsuite/gcc.target/i386/memcpy-pr120683-3.c b/gcc/testsuite/gcc.target/i386/memcpy-pr120683-3.c index e5aca32a5880..ea3bcca61039 100644 --- a/gcc/testsuite/gcc.target/i386/memcpy-pr120683-3.c +++ b/gcc/testsuite/gcc.target/i386/memcpy-pr120683-3.c @@ -7,24 +7,24 @@ **foo: **.LFB[0-9]+: ** .cfi_startproc -** xorl %edx, %edx +** xorl %eax, %eax **.L[0-9]+: -** movl %edx, %eax -** addl \$64, %edx -** movdqa src\(%rax\), %xmm3 -** movdqa src\+16\(%rax\), %xmm2 -** movdqa src\+32\(%rax\), %xmm1 -** movdqa src\+48\(%rax\), %xmm0 -** movaps %xmm3, dest\(%rax\) -** movaps %xmm2, dest\+16\(%rax\) -** movaps %xmm1, dest\+32\(%rax\) -** movaps %xmm0, dest\+48\(%rax\) -** cmpl \$256, %edx +** movl %eax, %edx +** addl \$64, %eax +** movdqa src\(%rdx\), %xmm3 +** movdqa src\+16\(%rdx\), %xmm2 +** movdqa src\+32\(%rdx\), %xmm1 +** movdqa src\+48\(%rdx\), %xmm0 +** movaps %xmm3, dest\(%rdx\) +** movaps %xmm2, dest\+16\(%rdx\) +** movaps %xmm1, dest\+32\(%rdx\) +** movaps %xmm0, dest\+48\(%rdx\) +** cmpl \$256, %eax ** jb .L[0-9]+ -** movdqa src\(%rdx\), %xmm0 -** movaps %xmm0, dest\(%rdx\) -** movdqu src\+15\(%rdx\), %xmm0 -** movups %xmm0, dest\+15\(%rdx\) +** movdqa src\(%rax\), %xmm0 +** movaps %xmm0, dest\(%rax\) +** movdqu src\+15\(%rax\), %xmm0 +** movups %xmm0, dest\+15\(%rax\) ** ret **... */ diff --git a/gcc/testsuite/gcc.target/i386/memcpy-pr120683-4.c b/gcc/testsuite/gcc.target/i386/memcpy-pr120683-4.c index 27f7bedc7037..c2d595f877dc 100644 --- a/gcc/testsuite/gcc.target/i386/memcpy-pr120683-4.c +++ b/gcc/testsuite/gcc.target/i386/memcpy-pr120683-4.c @@ -7,22 +7,22 @@ **foo: **.LFB[0-9]+: ** .cfi_startproc -** xorl %edx, %edx +** xorl %eax, %eax **.L[0-9]+: -** movl %edx, %eax -** subl \$-128, %edx -** vmovdqa src\(%rax\), %ymm3 -** vmovdqa src\+32\(%rax\), %ymm2 -** vmovdqa src\+64\(%rax\), %ymm1 -** vmovdqa src\+96\(%rax\), %ymm0 -** vmovdqa %ymm3, dest\(%rax\) -** vmovdqa %ymm2, dest\+32\(%rax\) -** vmovdqa %ymm1, dest\+64\(%rax\) -** vmovdqa %ymm0, dest\+96\(%rax\) -** cmpl \$512, %edx +** movl %eax, %edx +** subl \$-128, %eax +** vmovdqa src\(%rdx\), %ymm3 +** vmovdqa src\+32\(%rdx\), %ymm2 +** vmovdqa src\+64\(%rdx\), %ymm1 +** vmovdqa src\+96\(%rdx\), %ymm0 +** vmovdqa %ymm3, dest\(%rdx\) +** vmovdqa %ymm2, dest\+32\(%rdx\) +** vmovdqa %ymm1, dest\+64\(%rdx\) +** vmovdqa %ymm0, dest\+96\(%rdx\) +** cmpl \$512, %eax ** jb .L[0-9]+ -** vmovdqa src\(%rdx\), %ymm0 -** vmovdqa %ymm0, dest\(%rdx\) +** vmovdqa src\(%rax\), %ymm0 +** vmovdqa %ymm0, dest\(%rax\) ** vzeroupper ** ret **... diff --git a/gcc/testsuite/gcc.target/i386/memcpy-pr120683-5.c b/gcc/testsuite/gcc.target/i386/memcpy-pr120683-5.c index 34a74080f21a..294d25c53e6d 100644 --- a/gcc/testsuite/gcc.target/i386/memcpy-pr120683-5.c +++ b/gcc/testsuite/gcc.target/i386/memcpy-pr120683-5.c @@ -7,24 +7,24 @@ **foo: **.LFB[0-9]+: ** .cfi_startproc -** xorl %edx, %edx +** xorl %eax, %eax **.L[0-9]+: -** movl %edx, %eax -** subl \$-128, %edx -** vmovdqa src\(%rax\), %ymm3 -** vmovdqa src\+32\(%rax\), %ymm2 -** vmovdqa src\+64\(%rax\), %ymm1 -** vmovdqa src\+96\(%rax\), %ymm0 -** vmovdqa %ymm3, dest\(%rax\) -** vmovdqa %ymm2, dest\+32\(%rax\) -** vmovdqa %ymm1, dest\+64\(%rax\) -** vmovdqa %ymm0, dest\+96\(%rax\) -** cmpl \$512, %edx +** movl %eax, %edx +** subl \$-128, %eax +** vmovdqa src\(%rdx\), %ymm3 +** vmovdqa src\+32\(%rdx\), %ymm2 +** vmovdqa src\+64\(%rdx\), %ymm1 +** vmovdqa src\+96\(%rdx\), %ymm0 +** vmovdqa %ymm3, dest\(%rdx\) +** vmovdqa %ymm2, dest\+32\(%rdx\) +** vmovdqa %ymm1, dest\+64\(%rdx\) +** vmovdqa %ymm0, dest\+96\(%rdx\) +** cmpl \$512, %eax ** jb .L[0-9]+ -** vmovdqa src\(%rdx\), %ymm0 -** vmovdqa %ymm0, dest\(%rdx\) -** vmovdqu src\+31\(%rdx\), %ymm0 -** vmovdqu %ymm0, dest\+31\(%rdx\) +** vmovdqa src\(%rax\), %ymm0 +** vmovdqa %ymm0, dest\(%rax\) +** vmovdqu src\+31\(%rax\), %ymm0 +** vmovdqu %ymm0, dest\+31\(%rax\) ** vzeroupper ** ret **... diff --git a/gcc/testsuite/gcc.target/i386/memcpy-pr120683-6.c b/gcc/testsuite/gcc.target/i386/memcpy-pr120683-6.c index aa5d90d62e4b..2013916f7b2b 100644 --- a/gcc/testsuite/gcc.target/i386/memcpy-pr120683-6.c +++ b/gcc/testsuite/gcc.target/i386/memcpy-pr120683-6.c @@ -7,22 +7,22 @@ **foo: **.LFB[0-9]+: ** .cfi_startproc -** xorl %edx, %edx +** xorl %eax, %eax **.L[0-9]+: -** movl %edx, %eax -** addl \$256, %edx -** vmovdqa64 src\(%rax\), %zmm3 -** vmovdqa64 src\+64\(%rax\), %zmm2 -** vmovdqa64 src\+128\(%rax\), %zmm1 -** vmovdqa64 src\+192\(%rax\), %zmm0 -** vmovdqa64 %zmm3, dest\(%rax\) -** vmovdqa64 %zmm2, dest\+64\(%rax\) -** vmovdqa64 %zmm1, dest\+128\(%rax\) -** vmovdqa64 %zmm0, dest\+192\(%rax\) -** cmpl \$1024, %edx +** movl %eax, %edx +** addl \$256, %eax +** vmovdqa64 src\(%rdx\), %zmm3 +** vmovdqa64 src\+64\(%rdx\), %zmm2 +** vmovdqa64 src\+128\(%rdx\), %zmm1 +** vmovdqa64 src\+192\(%rdx\), %zmm0 +** vmovdqa64 %zmm3, dest\(%rdx\) +** vmovdqa64 %zmm2, dest\+64\(%rdx\) +** vmovdqa64 %zmm1, dest\+128\(%rdx\) +** vmovdqa64 %zmm0, dest\+192\(%rdx\) +** cmpl \$1024, %eax ** jb .L[0-9]+ -** vmovdqa64 src\(%rdx\), %zmm0 -** vmovdqa64 %zmm0, dest\(%rdx\) +** vmovdqa64 src\(%rax\), %zmm0 +** vmovdqa64 %zmm0, dest\(%rax\) ** vzeroupper ** ret **... diff --git a/gcc/testsuite/gcc.target/i386/memcpy-pr120683-7.c b/gcc/testsuite/gcc.target/i386/memcpy-pr120683-7.c index 63d8a1521a16..30e2c3c6bef0 100644 --- a/gcc/testsuite/gcc.target/i386/memcpy-pr120683-7.c +++ b/gcc/testsuite/gcc.target/i386/memcpy-pr120683-7.c @@ -7,24 +7,24 @@ **foo: **.LFB[0-9]+: ** .cfi_startproc -** xorl %edx, %edx +** xorl %eax, %eax **.L[0-9]+: -** movl %edx, %eax -** addl \$256, %edx -** vmovdqa64 src\(%rax\), %zmm3 -** vmovdqa64 src\+64\(%rax\), %zmm2 -** vmovdqa64 src\+128\(%rax\), %zmm1 -** vmovdqa64 src\+192\(%rax\), %zmm0 -** vmovdqa64 %zmm3, dest\(%rax\) -** vmovdqa64 %zmm2, dest\+64\(%rax\) -** vmovdqa64 %zmm1, dest\+128\(%rax\) -** vmovdqa64 %zmm0, dest\+192\(%rax\) -** cmpl \$1024, %edx +** movl %eax, %edx +** addl \$256, %eax +** vmovdqa64 src\(%rdx\), %zmm3 +** vmovdqa64 src\+64\(%rdx\), %zmm2 +** vmovdqa64 src\+128\(%rdx\), %zmm1 +** vmovdqa64 src\+192\(%rdx\), %zmm0 +** vmovdqa64 %zmm3, dest\(%rdx\) +** vmovdqa64 %zmm2, dest\+64\(%rdx\) +** vmovdqa64 %zmm1, dest\+128\(%rdx\) +** vmovdqa64 %zmm0, dest\+192\(%rdx\) +** cmpl \$1024, %eax ** jb .L[0-9]+ -** vmovdqa src\(%rdx\), %ymm0 -** vmovdqa %ymm0, dest\(%rdx\) -** vmovdqu src\+31\(%rdx\), %ymm0 -** vmovdqu %ymm0, dest\+31\(%rdx\) +** vmovdqa src\(%rax\), %ymm0 +** vmovdqa %ymm0, dest\(%rax\) +** vmovdqu src\+31\(%rax\), %ymm0 +** vmovdqu %ymm0, dest\+31\(%rax\) ** vzeroupper ** ret **... diff --git a/gcc/testsuite/gcc.target/i386/pr111657-1.c b/gcc/testsuite/gcc.target/i386/pr111657-1.c index fa9f4cfe5c53..bb37e95a39b2 100644 --- a/gcc/testsuite/gcc.target/i386/pr111657-1.c +++ b/gcc/testsuite/gcc.target/i386/pr111657-1.c @@ -7,17 +7,17 @@ **bar: **... **.L[0-9]+: -** movl %edx, %eax -** addl \$32, %edx -** movq %gs:m\(%rax\), %r9 -** movq %gs:m\+8\(%rax\), %r8 -** movq %gs:m\+16\(%rax\), %rsi -** movq %gs:m\+24\(%rax\), %rcx -** movq %r9, \(%rdi,%rax\) -** movq %r8, 8\(%rdi,%rax\) -** movq %rsi, 16\(%rdi,%rax\) -** movq %rcx, 24\(%rdi,%rax\) -** cmpl \$224, %edx +** movl %eax, %edx +** addl \$32, %eax +** movq %gs:m\(%rdx\), %r9 +** movq %gs:m\+8\(%rdx\), %r8 +** movq %gs:m\+16\(%rdx\), %rsi +** movq %gs:m\+24\(%rdx\), %rcx +** movq %r9, \(%rdi,%rdx\) +** movq %r8, 8\(%rdi,%rdx\) +** movq %rsi, 16\(%rdi,%rdx\) +** movq %rcx, 24\(%rdi,%rdx\) +** cmpl \$224, %eax ** jb .L[0-9]+ **... */ diff --git a/gcc/testsuite/gcc.target/i386/pr119919.c b/gcc/testsuite/gcc.target/i386/pr119919.c index e39819f682db..bf11f9171925 100644 --- a/gcc/testsuite/gcc.target/i386/pr119919.c +++ b/gcc/testsuite/gcc.target/i386/pr119919.c @@ -1,5 +1,6 @@ /* { dg-do compile } */ /* { dg-options "-O2 -msse2 -fdump-tree-vect-details -mtune=znver1" } */ + int a[9*9]; bool b[9]; void test() @@ -10,4 +11,4 @@ void test() } } -/* { dg-final { scan-tree-dump "loop vectorized using 8 byte vectors" "vect" } } */ +/* { dg-final { scan-tree-dump "loop vectorized using 8 byte vectors" "vect" { target { ! ia32 } } } } */ diff --git a/gcc/testsuite/gcc.target/i386/pr120691.c b/gcc/testsuite/gcc.target/i386/pr120691.c new file mode 100644 index 000000000000..9bbd61ed53d5 --- /dev/null +++ b/gcc/testsuite/gcc.target/i386/pr120691.c @@ -0,0 +1,19 @@ +/* { dg-do run } */ +/* { dg-options "-O0 -mfpmath=sse -msse2" } */ +/* { dg-require-effective-target sse2 } */ +/* { dg-require-effective-target fenv } */ +/* { dg-require-effective-target dfp } */ + +#include + +int main() { + fesetround( FE_UPWARD ); + _Decimal128 x1 = 9825, x2 = 10000 ; + + double c = (double) (x1 / x2); + + if (c != 0.9825) + __builtin_abort (); + + return 0 ; +} diff --git a/gcc/testsuite/gcc.target/i386/pr122104.c b/gcc/testsuite/gcc.target/i386/pr122104.c new file mode 100644 index 000000000000..be88933e3ec6 --- /dev/null +++ b/gcc/testsuite/gcc.target/i386/pr122104.c @@ -0,0 +1,12 @@ +/* PR tree-optimization/122104 */ +/* { dg-do compile } */ +/* { dg-options "-O2 -fdump-tree-widening_mul-alias" } */ +/* { dg-final { scan-tree-dump "\\.MUL_OVERFLOW" "widening_mul" } } */ +/* { dg-final { scan-tree-dump-not "# RANGE \\\[irange\\\] unsigned int \\\[1, " "widening_mul" } } */ + +int +foo (int x) +{ + int r = (unsigned) x * 35; + return x && ((unsigned) r / x) != 35U; +} diff --git a/gcc/testsuite/gcc.target/i386/pr122150.c b/gcc/testsuite/gcc.target/i386/pr122150.c new file mode 100644 index 000000000000..973c34d180ee --- /dev/null +++ b/gcc/testsuite/gcc.target/i386/pr122150.c @@ -0,0 +1,21 @@ +/* { dg-do run } */ +/* { dg-options "-mstringop-strategy=unrolled_loop" } */ + +char c[2841]; + +__attribute__((noipa)) +void +foo (void) +{ + __builtin_memset (&c, 1, 2841); +} + +int +main (void) +{ + foo (); + for (unsigned i = 0; i < sizeof (c); i++) + if (c[i] != 1) + __builtin_abort(); + return 0; +} diff --git a/gcc/testsuite/gcc.target/i386/pr122180.c b/gcc/testsuite/gcc.target/i386/pr122180.c new file mode 100644 index 000000000000..6153d6c4c710 --- /dev/null +++ b/gcc/testsuite/gcc.target/i386/pr122180.c @@ -0,0 +1,7 @@ +/* { dg-do compile } */ + +static void s() __attribute__((target("avx"))); +static void s() { } +void f() { + s(); +} diff --git a/gcc/testsuite/gcc.target/mips/mips16e2-cache.c b/gcc/testsuite/gcc.target/mips/mips16e2-cache.c index c79157589992..dcc39b580f52 100644 --- a/gcc/testsuite/gcc.target/mips/mips16e2-cache.c +++ b/gcc/testsuite/gcc.target/mips/mips16e2-cache.c @@ -1,4 +1,4 @@ -/* { dg-options "-mno-abicalls -mgpopt -G8 -mabi=32 isa_rev=2 -mmips16e2" } */ +/* { dg-options "-mno-abicalls -mgpopt -G8 -mabi=32 -mips32r2 -mips16 -mmips16e2" } */ /* { dg-skip-if "naming registers makes this a code quality test" { *-*-* } { "-O0" } { "" } } */ /* Test cache. */ diff --git a/gcc/testsuite/gcc.target/mips/mips16e2-cmov.c b/gcc/testsuite/gcc.target/mips/mips16e2-cmov.c index 8d71e88596cc..129ea23b65b1 100644 --- a/gcc/testsuite/gcc.target/mips/mips16e2-cmov.c +++ b/gcc/testsuite/gcc.target/mips/mips16e2-cmov.c @@ -1,4 +1,4 @@ -/* { dg-options "-mno-abicalls -mgpopt -G8 -mabi=32 isa_rev=2 -mmips16e2 -mbranch-cost=2" } */ +/* { dg-options "-mno-abicalls -mgpopt -G8 -mabi=32 -mips16 -mmips16e2 -mbranch-cost=2" } */ /* { dg-skip-if "code quality test" { *-*-* } { "-O0" } { "" } } */ /* Test MOVN. */ diff --git a/gcc/testsuite/gcc.target/mips/mips16e2-gp.c b/gcc/testsuite/gcc.target/mips/mips16e2-gp.c index 5fab454d5e06..7955472bde30 100644 --- a/gcc/testsuite/gcc.target/mips/mips16e2-gp.c +++ b/gcc/testsuite/gcc.target/mips/mips16e2-gp.c @@ -1,4 +1,4 @@ -/* { dg-options "-mno-abicalls -mgpopt -G8 -mabi=32 isa_rev=2 -mmips16e2" } */ +/* { dg-options "-mno-abicalls -mgpopt -G8 -mabi=32 -mips16 -mmips16e2" } */ /* { dg-skip-if "per-function expected output" { *-*-* } { "-flto" } { "" } } */ /* Generate GP-relative ADDIU. */ diff --git a/gcc/testsuite/gcc.target/mips/mips16e2.c b/gcc/testsuite/gcc.target/mips/mips16e2.c index 33c4bb52ccca..166aa7422687 100644 --- a/gcc/testsuite/gcc.target/mips/mips16e2.c +++ b/gcc/testsuite/gcc.target/mips/mips16e2.c @@ -1,4 +1,4 @@ -/* { dg-options "-mno-abicalls -mgpopt -G8 -mabi=32 isa_rev=2 -mmips16e2" } */ +/* { dg-options "-mno-abicalls -mgpopt -G8 -mabi=32 -mips16 -mmips16e2" } */ /* { dg-skip-if "per-function expected output" { *-*-* } { "-flto" } { "" } } */ /* ANDI is a two operand instruction. Hence, it won't be generated if src and diff --git a/gcc/testsuite/gcc.target/powerpc/altivec-39.c b/gcc/testsuite/gcc.target/powerpc/altivec-39.c new file mode 100644 index 000000000000..3263eb7bbc61 --- /dev/null +++ b/gcc/testsuite/gcc.target/powerpc/altivec-39.c @@ -0,0 +1,17 @@ +/* { dg-do compile } */ +/* { dg-options "-O2 -maltivec" } */ +/* { dg-require-effective-target powerpc_altivec } */ + +char *sort_filesquote_name_buf_plimit; +int sort_filesquote_name_buf_width; +int *__ctype_b_loc() __attribute__((__const__)); +void sort_filesquote_name_buf(char* p) +{ + unsigned displayed_width = 0; + while (p < sort_filesquote_name_buf_plimit) { + if (__ctype_b_loc()[*p]) + displayed_width++; + p++; + } + sort_filesquote_name_buf_width = displayed_width; +} diff --git a/gcc/testsuite/gcc.target/riscv/pr121937.c b/gcc/testsuite/gcc.target/riscv/pr121937.c new file mode 100644 index 000000000000..3c0389c09346 --- /dev/null +++ b/gcc/testsuite/gcc.target/riscv/pr121937.c @@ -0,0 +1,66 @@ +/* { dg-do compile } */ +/* { dg-additional-options "-w -march=rv64gcv -mabi=lp64d" { target rv64 } } */ +/* { dg-additional-options "-w -march=rv32gcv -mabi=ilp32" { target rv32 } } */ + +#include +#define BS_VEC(type, num) type __attribute__((vector_size(num * sizeof(type)))) +typedef int16_t int16; +typedef uint16_t uint16; +typedef int32_t int32; +typedef uint64_t uint64; +int32_t g_69, g_539; +int32_t *g_68; +void func_59(int32_t p_60) { + BS_VEC(uint64, 2) BS_VAR_4; + BS_VEC(int16, 8) BS_VAR_6; + uint64 *LOCAL_CHECKSUM; + int32_t *l_108 = &g_69; + int64_t l_829 = 10; + int32_t l_844 = -1; + for (; g_69;) { + int32_t l_924; + if (p_60 * 2u) { + BS_LABEL_0: + *LOCAL_CHECKSUM ^= BS_VAR_4[3]; + for (l_924 = 3; l_924; l_924 -= 1) { + BS_VEC(uint64, 8) + BS_TEMP_600 = -__builtin_convertvector(BS_VAR_6, BS_VEC(uint64, 8)); + BS_VEC(uint64, 8) + BS_TEMP_601 = __builtin_convertvector((BS_VEC(int32, 8)){p_60}, + BS_VEC(uint64, 8)); + BS_VAR_4[356358257141730375] = + __builtin_convertvector( + __builtin_shufflevector((BS_VEC(uint16, 2))0, + (BS_VEC(uint16, 2))0, 1, 3, 0, 1, 2, 0, + 0, 2, 0, 0, 1, 2, 3, 3, 3, 2), + BS_VEC(uint64, 16))[BS_VAR_6[4]] > + (BS_VEC(uint64, 8)){0, BS_TEMP_600[1] ? BS_TEMP_601[1] + : 0}[l_829 != 0]; + } + } + if (*l_108) + *g_68 |= g_539; + __asm goto("" : : : : BS_LABEL_0); + BS_VEC(int16, 4) + BS_TEMP_681 = __builtin_shufflevector( + (BS_VEC(int16, 2))__builtin_shufflevector( + __builtin_convertvector( + __builtin_shufflevector(BS_VAR_6, BS_VAR_6, 8, 6, 5, 8, 1, 3, 6, + 2, 0, 1, 2, 5, 8, 6, 5, 1, 5, 0, 3, 5, + 8, 2, 2, 4, 6, 0, 6, 4, 3, 3, 1, 2), + BS_VEC(uint16, 32)), + __builtin_convertvector((BS_VEC(int32, 32)){}, BS_VEC(uint16, 32)), + 42, 52) - + __builtin_convertvector((BS_VEC(int32, 2)){l_844}, + BS_VEC(uint16, 2)) * + ~0, + ~(0 < __builtin_shufflevector( + __builtin_convertvector((BS_VEC(int32, 16)){p_60}, + BS_VEC(uint16, 16)), + (BS_VEC(uint16, 16)){20489, 3, 2, 4}, 19, 6)), + 1, 2, 0, 3); + BS_VAR_6[0] = + BS_TEMP_681[0] ^ BS_TEMP_681[1] ^ BS_TEMP_681[2] ^ BS_TEMP_681[3]; + } +} + diff --git a/gcc/testsuite/gcc.target/riscv/pr122051.c b/gcc/testsuite/gcc.target/riscv/pr122051.c new file mode 100644 index 000000000000..c2f4b877d5ea --- /dev/null +++ b/gcc/testsuite/gcc.target/riscv/pr122051.c @@ -0,0 +1,24 @@ +/* { dg-do compile { target int128 } } */ +/* { dg-additional-options "-mrvv-vector-bits=zvl -mcpu=xt-c920 -w" } */ + +typedef __attribute__((__vector_size__(4))) char B; +typedef __attribute__((__vector_size__(16))) long V; +typedef __attribute__((__vector_size__(32))) double W; +typedef __attribute__((__vector_size__(32))) char U; +unsigned u; +B o; +char *p; +int q; +V v; +W w; + +void +foo(__int128, __int128, __int128, __int128, B a, B b, B c, B d, B e, B f, B g, B h) { + do { + w -= q; + v ^= u; + } while (__builtin_memcmp(p, 1 + p, 7)); + o = ((U)w)[0] + c + d + e + f + g + h + a + b; +} + + diff --git a/gcc/testsuite/gcc.target/riscv/pr122106.c b/gcc/testsuite/gcc.target/riscv/pr122106.c new file mode 100644 index 000000000000..b0345b029701 --- /dev/null +++ b/gcc/testsuite/gcc.target/riscv/pr122106.c @@ -0,0 +1,3 @@ +/* { dg-do compile } */ + +short foo() { return __builtin_rev_crc16_data16(0, 0, 0); } diff --git a/gcc/testsuite/gcc.target/riscv/pr122114.c b/gcc/testsuite/gcc.target/riscv/pr122114.c new file mode 100644 index 000000000000..ccb2ec912a74 --- /dev/null +++ b/gcc/testsuite/gcc.target/riscv/pr122114.c @@ -0,0 +1,22 @@ +/* { dg-do compile { target { rv64 } } } */ +/* { dg-options "-O2 -fstack-clash-protection -march=rv64gcv_zvl256b -mabi=lp64d" } */ + +int pk_gen_i, pk_gen_j; +long pk_gen_buf[4]; +long pk_gen_t; + +void vec_mul(long *, long *, long *); +void uint64_is_zero_declassify(long); + +void pk_gen() { + long consts[128][13], prod[128][13]; + + vec_mul(prod[pk_gen_j], prod[pk_gen_j], consts[pk_gen_j]); + + for (; pk_gen_i;) { + for (; pk_gen_j; pk_gen_j++) + pk_gen_t |= pk_gen_buf[pk_gen_j]; + + uint64_is_zero_declassify(pk_gen_t); + } +} diff --git a/gcc/testsuite/gcc.target/riscv/pr122147.c b/gcc/testsuite/gcc.target/riscv/pr122147.c new file mode 100644 index 000000000000..14da321bc85f --- /dev/null +++ b/gcc/testsuite/gcc.target/riscv/pr122147.c @@ -0,0 +1,14 @@ +/* { dg-do compile } */ +/* { dg-additional-options "-w -march=rv64gcv -mabi=lp64d" { target rv64 } } */ +/* { dg-additional-options "-w -march=rv32gcv -mabi=ilp32" { target rv32 } } */ + +typedef __attribute__((__vector_size__ (4))) _Float16 F; +_Complex char cc; +F f; + +void +foo () +{ + __builtin_memmove (&f, &cc, 2); + f *= f; +} diff --git a/gcc/testsuite/gcc.target/riscv/rvv/autovec/pr118945-1.c b/gcc/testsuite/gcc.target/riscv/rvv/autovec/pr118945-1.c new file mode 100644 index 000000000000..fc37bef12586 --- /dev/null +++ b/gcc/testsuite/gcc.target/riscv/rvv/autovec/pr118945-1.c @@ -0,0 +1,15 @@ +/* { dg-do compile } */ +/* { dg-options "-mtune=generic-ooo -O3 -march=rv64gcv_zvl256b_zba -mabi=lp64d -mrvv-max-lmul=m2 -mrvv-vector-bits=scalable" } */ + +int test(int* in, int n) +{ + int accum = 0; + for (int i = 0; i < n; i++) + accum += in[i]; + + return accum; +} + +/* { dg-final { scan-assembler-times {vsetvli\s+[a-z0-9]+,\s*[a-z0-9]+,\s*e[0-9]+,\s*m[f0-9]+,\s*ta,\s*ma} 3 } } */ +/* { dg-final { scan-assembler-times {vsetvli\s+[a-z0-9]+,\s*[a-z0-9]+,\s*e[0-9]+,\s*m[f0-9]+,\s*tu,\s*ma} 1 } } */ + diff --git a/gcc/testsuite/gcc.target/riscv/rvv/autovec/pr118945-2.c b/gcc/testsuite/gcc.target/riscv/rvv/autovec/pr118945-2.c new file mode 100644 index 000000000000..956574067ce1 --- /dev/null +++ b/gcc/testsuite/gcc.target/riscv/rvv/autovec/pr118945-2.c @@ -0,0 +1,28 @@ +/* { dg-do compile } */ +/* { dg-options "-march=rva23u64 -mtune=generic-ooo -Ofast -S" } */ + +void vmult( + double* dst, + const double* src, + const unsigned int* rowstart, + const unsigned int* colnums, + const double* val, + const unsigned int n_rows +) { + const double* val_ptr = &val[rowstart[0]]; + const unsigned int* colnum_ptr = &colnums[rowstart[0]]; + double* dst_ptr = dst; + + for (unsigned int row = 0; row < n_rows; ++row) { + double s = 0.; + const double* const val_end_of_row = &val[rowstart[row + 1]]; + while (val_ptr != val_end_of_row) { + s += *val_ptr++ * src[*colnum_ptr++]; + } + *dst_ptr++ = s; + } +} + +/* { dg-final { scan-assembler-times {vsetvli\s+[a-z0-9]+,\s*[a-z0-9]+,\s*e[0-9]+,\s*m[f0-9]+,\s*ta,\s*ma} 4 } } */ +/* { dg-final { scan-assembler-times {vsetvli\s+[a-z0-9]+,\s*[a-z0-9]+,\s*e[0-9]+,\s*m[f0-9]+,\s*tu,\s*ma} 1 } } */ + diff --git a/gcc/testsuite/gcc.target/riscv/rvv/autovec/pr121845.c b/gcc/testsuite/gcc.target/riscv/rvv/autovec/pr121845.c new file mode 100644 index 000000000000..84aca3cd8e74 --- /dev/null +++ b/gcc/testsuite/gcc.target/riscv/rvv/autovec/pr121845.c @@ -0,0 +1,37 @@ +/* { dg-do run } */ +/* { dg-require-effective-target riscv_v_ok } */ +/* { dg-options "-march=rv64gcv -mabi=lp64d -O0" } */ + +#include +typedef uint32_t a; +typedef uint64_t uint64; + +uint64 b; +__attribute__ ((__vector_size__ (4 * sizeof (a)))) a f = {504339, 7, 3}; +uint64 *g = &b; + +int32_t * +c (uint8_t, int32_t *, uint32_t, uint32_t, int64_t); +int8_t +d () +{ + int32_t e; + c (0, &e, 0, 0, 1); + return 0; +} + +int32_t * +c (uint8_t, int32_t *j, uint32_t, uint32_t, int64_t) +{ + f = __builtin_shufflevector (f, f, 0, 3, 2, 1); + *g = f[2]; + return j; +} + +int +main () +{ + d (); + if (b != 3) + __builtin_abort (); +} diff --git a/gcc/testsuite/gcc.target/riscv/rvv/autovec/pr122124.c b/gcc/testsuite/gcc.target/riscv/rvv/autovec/pr122124.c new file mode 100644 index 000000000000..29d51b618548 --- /dev/null +++ b/gcc/testsuite/gcc.target/riscv/rvv/autovec/pr122124.c @@ -0,0 +1,21 @@ +/* { dg-do run } */ +/* { dg-require-effective-target riscv_v_ok } */ +/* { dg-add-options riscv_v } */ +/* { dg-additional-options "-O0 -std=gnu99" } */ + +#include +#include +#define BS_VEC(type, num) type __attribute__((vector_size(num * sizeof(type)))) +uint16_t func_24() { + BS_VEC(uint32_t, 4) zero = {0}; + BS_VEC(uint8_t, 2) + BS_VAR_1 = __builtin_shufflevector( + (BS_VEC(uint8_t, 4))5, + __builtin_convertvector(zero, BS_VEC(uint8_t, 4)), 5, 0); + return BS_VAR_1[1]; +} +int main() { + printf("%u\n", func_24()); +} + +/* { dg-output "5" } */ diff --git a/gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/math-nearbyint-1.c b/gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/math-nearbyint-1.c index 89af160112c9..bb62ce2ef8a8 100644 --- a/gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/math-nearbyint-1.c +++ b/gcc/testsuite/gcc.target/riscv/rvv/autovec/vls/math-nearbyint-1.c @@ -54,5 +54,5 @@ DEF_OP_V (nearbyint, 512, double, __builtin_nearbyint) /* { dg-final { scan-tree-dump-not "4096,4096" "optimized" } } */ /* { dg-final { scan-assembler-times {vfcvt\.x\.f\.v\s+v[0-9]+,\s*v[0-9]+,\s*v0\.t} 30 } } */ /* { dg-final { scan-assembler-times {vfcvt\.f\.x\.v\s+v[0-9]+,\s*v[0-9]+,\s*v0\.t} 30 } } */ -/* { dg-final { scan-assembler-times {frflags\s+[atx][0-9]+} 32 } } */ -/* { dg-final { scan-assembler-times {fsflags\s+[atx][0-9]+} 32 } } */ +/* { dg-final { scan-assembler-times {frflags\s+[atx][0-9]+} 30 } } */ +/* { dg-final { scan-assembler-times {fsflags\s+[atx][0-9]+} 30 } } */ diff --git a/gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx-1-u16.c b/gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx-1-u16.c index c86461beadf2..76ef2d3f0206 100644 --- a/gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx-1-u16.c +++ b/gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx-1-u16.c @@ -12,7 +12,7 @@ TEST_BINARY_VX_UNSIGNED_0(T) TEST_TERNARY_VX_UNSIGNED_0(T) TEST_WIDEN_BINARY_VX_UNSIGNED(T, NT) -/* { dg-final { scan-assembler-times {vadd.vx} 1 } } */ +/* { dg-final { scan-assembler-times {vadd.vx} 2 } } */ /* { dg-final { scan-assembler-times {vsub.vx} 1 } } */ /* { dg-final { scan-assembler-times {vrsub.vx} 1 } } */ /* { dg-final { scan-assembler-times {vand.vx} 1 } } */ @@ -32,3 +32,4 @@ TEST_WIDEN_BINARY_VX_UNSIGNED(T, NT) /* { dg-final { scan-assembler-not {vwaddu.vx} } } */ /* { dg-final { scan-assembler-not {vwsubu.vx} } } */ /* { dg-final { scan-assembler-not {vwmulu.vx} } } */ +/* { dg-final { scan-assembler-not {vwaddu.wx} } } */ diff --git a/gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx-1-u32.c b/gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx-1-u32.c index 90de1974ab1f..55fa57dec35d 100644 --- a/gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx-1-u32.c +++ b/gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx-1-u32.c @@ -12,7 +12,7 @@ TEST_BINARY_VX_UNSIGNED_0(T) TEST_TERNARY_VX_UNSIGNED_0(T) TEST_WIDEN_BINARY_VX_UNSIGNED(T, NT) -/* { dg-final { scan-assembler-times {vadd.vx} 1 } } */ +/* { dg-final { scan-assembler-times {vadd.vx} 2 } } */ /* { dg-final { scan-assembler-times {vsub.vx} 1 } } */ /* { dg-final { scan-assembler-times {vrsub.vx} 1 } } */ /* { dg-final { scan-assembler-times {vand.vx} 1 } } */ @@ -32,3 +32,4 @@ TEST_WIDEN_BINARY_VX_UNSIGNED(T, NT) /* { dg-final { scan-assembler-not {vwaddu.vx} } } */ /* { dg-final { scan-assembler-not {vwsubu.vx} } } */ /* { dg-final { scan-assembler-not {vwmulu.vx} } } */ +/* { dg-final { scan-assembler-not {vwaddu.wx} } } */ diff --git a/gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx-1-u64.c b/gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx-1-u64.c index 522ddd19ccd4..d5176834494e 100644 --- a/gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx-1-u64.c +++ b/gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx-1-u64.c @@ -35,3 +35,4 @@ TEST_WIDEN_BINARY_VX_UNSIGNED(T, NT) /* { dg-final { scan-assembler-times {vwaddu.vx} 1 } } */ /* { dg-final { scan-assembler-times {vwsubu.vx} 1 } } */ /* { dg-final { scan-assembler-times {vwmulu.vx} 1 } } */ +/* { dg-final { scan-assembler-times {vwaddu.wx} 1 } } */ diff --git a/gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx-2-u16.c b/gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx-2-u16.c index 6ea17bb83d9b..a234505ce81c 100644 --- a/gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx-2-u16.c +++ b/gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx-2-u16.c @@ -32,3 +32,4 @@ TEST_WIDEN_BINARY_VX_UNSIGNED(T, NT) /* { dg-final { scan-assembler-not {vwaddu.vx} } } */ /* { dg-final { scan-assembler-not {vwsubu.vx} } } */ /* { dg-final { scan-assembler-not {vwmulu.vx} } } */ +/* { dg-final { scan-assembler-not {vwaddu.wx} } } */ diff --git a/gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx-2-u32.c b/gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx-2-u32.c index 8b8fba54b72a..a46c874d0a44 100644 --- a/gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx-2-u32.c +++ b/gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx-2-u32.c @@ -32,3 +32,4 @@ TEST_WIDEN_BINARY_VX_UNSIGNED(T, NT) /* { dg-final { scan-assembler-not {vwaddu.vx} } } */ /* { dg-final { scan-assembler-not {vwsubu.vx} } } */ /* { dg-final { scan-assembler-not {vwmulu.vx} } } */ +/* { dg-final { scan-assembler-not {vwaddu.wx} } } */ diff --git a/gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx-2-u64.c b/gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx-2-u64.c index 6f66de906a29..94ce774fc2aa 100644 --- a/gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx-2-u64.c +++ b/gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx-2-u64.c @@ -32,3 +32,4 @@ TEST_WIDEN_BINARY_VX_UNSIGNED(T, NT) /* { dg-final { scan-assembler-not {vwaddu.vx} } } */ /* { dg-final { scan-assembler-not {vwsubu.vx} } } */ /* { dg-final { scan-assembler-not {vwmulu.vx} } } */ +/* { dg-final { scan-assembler-not {vwaddu.wx} } } */ diff --git a/gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx-3-u16.c b/gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx-3-u16.c index cd129f1f50ea..a1278cec61d4 100644 --- a/gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx-3-u16.c +++ b/gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx-3-u16.c @@ -32,3 +32,4 @@ TEST_WIDEN_BINARY_VX_UNSIGNED(T, NT) /* { dg-final { scan-assembler-not {vwaddu.vx} } } */ /* { dg-final { scan-assembler-not {vwsubu.vx} } } */ /* { dg-final { scan-assembler-not {vwmulu.vx} } } */ +/* { dg-final { scan-assembler-not {vwaddu.wx} } } */ diff --git a/gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx-3-u32.c b/gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx-3-u32.c index 48aeed71eb9c..910fa6e31580 100644 --- a/gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx-3-u32.c +++ b/gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx-3-u32.c @@ -32,3 +32,4 @@ TEST_WIDEN_BINARY_VX_UNSIGNED(T, NT) /* { dg-final { scan-assembler-not {vwaddu.vx} } } */ /* { dg-final { scan-assembler-not {vwsubu.vx} } } */ /* { dg-final { scan-assembler-not {vwmulu.vx} } } */ +/* { dg-final { scan-assembler-not {vwaddu.wx} } } */ diff --git a/gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx-3-u64.c b/gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx-3-u64.c index b88c350acf3e..9ce0211603ec 100644 --- a/gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx-3-u64.c +++ b/gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx-3-u64.c @@ -32,3 +32,4 @@ TEST_WIDEN_BINARY_VX_UNSIGNED(T, NT) /* { dg-final { scan-assembler-not {vwaddu.vx} } } */ /* { dg-final { scan-assembler-not {vwsubu.vx} } } */ /* { dg-final { scan-assembler-not {vwmulu.vx} } } */ +/* { dg-final { scan-assembler-not {vwaddu.wx} } } */ diff --git a/gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx_widen.h b/gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx_widen.h index 998c05961ab0..03fba3c2a0c4 100644 --- a/gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx_widen.h +++ b/gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx_widen.h @@ -28,9 +28,27 @@ test_vx_widen_binary_##NAME##_##WT##_##NT##_case_0 (WT * restrict vd, \ #define RUN_VX_WIDEN_BINARY_CASE_0_WRAP(WT, NT, NAME, vd, vs2, rs1, n) \ RUN_VX_WIDEN_BINARY_CASE_0(WT, NT, NAME, vd, vs2, rs1, n) +#define DEF_VX_WIDEN_BINARY_CASE_1(WT, NT, OP, NAME) \ +void \ +test_vx_widen_binary_##NAME##_##WT##_##NT##_case_1 (WT * restrict vd, \ + WT * restrict vs2, \ + NT rs1, unsigned n) \ +{ \ + for (unsigned i = 0; i < n; i++) \ + vd[i] = vs2[i] OP (WT)rs1; \ +} + +#define DEF_VX_WIDEN_BINARY_CASE_1_WRAP(WT, NT, OP, NAME) \ + DEF_VX_WIDEN_BINARY_CASE_1(WT, NT, OP, NAME) +#define RUN_VX_WIDEN_BINARY_CASE_1(WT, NT, NAME, vd, vs2, rs1, n) \ + test_vx_widen_binary_##NAME##_##WT##_##NT##_case_1(vd, vs2, rs1, n) +#define RUN_VX_WIDEN_BINARY_CASE_1_WRAP(WT, NT, NAME, vd, vs2, rs1, n) \ + RUN_VX_WIDEN_BINARY_CASE_1(WT, NT, NAME, vd, vs2, rs1, n) + #define TEST_WIDEN_BINARY_VX_UNSIGNED(WT, NT) \ DEF_VX_WIDEN_BINARY_CASE_0_WRAP(WT, NT, +, add) \ DEF_VX_WIDEN_BINARY_CASE_0_WRAP(WT, NT, -, sub) \ DEF_VX_WIDEN_BINARY_CASE_0_WRAP(WT, NT, *, mul) \ + DEF_VX_WIDEN_BINARY_CASE_1_WRAP(WT, NT, +, add) \ #endif diff --git a/gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx_widen_data.h b/gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx_widen_data.h index 5b49083abe72..faf46a81e6ab 100644 --- a/gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx_widen_data.h +++ b/gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx_widen_data.h @@ -4,7 +4,7 @@ #define N 16 #define DEF_BINARY_WIDEN_STRUCT_0_NAME(WT, NT, NAME) \ - binary_widen_##WT##_##NT##_##NAME##_s + binary_widen_##WT##_##NT##_##NAME##_s_0 #define DEF_BINARY_WIDEN_STRUCT_0_NAME_WRAP(WT, NT, NAME) \ DEF_BINARY_WIDEN_STRUCT_0_NAME(WT, NT, NAME) @@ -14,7 +14,7 @@ DEF_BINARY_WIDEN_STRUCT_0_TYPE(WT, NT, NAME) #define DEF_BINARY_WIDEN_STRUCT_0_VAR(WT, NT, NAME) \ - binary_widen_##WT##_##NT##_##NAME##_data + binary_widen_##WT##_##NT##_##NAME##_data_0 #define DEF_BINARY_WIDEN_STRUCT_0_VAR_WRAP(WT, NT, NAME) \ DEF_BINARY_WIDEN_STRUCT_0_VAR(WT, NT, NAME) @@ -24,6 +24,27 @@ #define DEF_BINARY_WIDEN_STRUCT_0_DECL_WRAP(WT, NT, NAME) \ DEF_BINARY_WIDEN_STRUCT_0_DECL(WT, NT, NAME) +#define DEF_BINARY_WIDEN_STRUCT_1_NAME(WT, NT, NAME) \ + binary_widen_##WT##_##NT##_##NAME##_s_1 +#define DEF_BINARY_WIDEN_STRUCT_1_NAME_WRAP(WT, NT, NAME) \ + DEF_BINARY_WIDEN_STRUCT_1_NAME(WT, NT, NAME) + +#define DEF_BINARY_WIDEN_STRUCT_1_TYPE(WT, NT, NAME) \ + struct DEF_BINARY_WIDEN_STRUCT_1_NAME_WRAP(WT, NT, NAME) +#define DEF_BINARY_WIDEN_STRUCT_1_TYPE_WRAP(WT, NT, NAME) \ + DEF_BINARY_WIDEN_STRUCT_1_TYPE(WT, NT, NAME) + +#define DEF_BINARY_WIDEN_STRUCT_1_VAR(WT, NT, NAME) \ + binary_widen_##WT##_##NT##_##NAME##_data_1 +#define DEF_BINARY_WIDEN_STRUCT_1_VAR_WRAP(WT, NT, NAME) \ + DEF_BINARY_WIDEN_STRUCT_1_VAR(WT, NT, NAME) + +#define DEF_BINARY_WIDEN_STRUCT_1_DECL(WT, NT, NAME) \ + DEF_BINARY_WIDEN_STRUCT_1_TYPE_WRAP(WT, NT, NAME) \ + DEF_BINARY_WIDEN_STRUCT_1_VAR_WRAP(WT, NT, NAME) +#define DEF_BINARY_WIDEN_STRUCT_1_DECL_WRAP(WT, NT, NAME) \ + DEF_BINARY_WIDEN_STRUCT_1_DECL(WT, NT, NAME) + #define DEF_BINARY_WIDEN_STRUCT_0(WT, NT, NAME) \ DEF_BINARY_WIDEN_STRUCT_0_TYPE_WRAP(WT, NT, NAME) \ { \ @@ -39,6 +60,19 @@ DEF_BINARY_WIDEN_STRUCT_0_WRAP(uint64_t, uint32_t, add) DEF_BINARY_WIDEN_STRUCT_0_WRAP(uint64_t, uint32_t, sub) DEF_BINARY_WIDEN_STRUCT_0_WRAP(uint64_t, uint32_t, mul) +#define DEF_BINARY_WIDEN_STRUCT_1(WT, NT, NAME) \ + DEF_BINARY_WIDEN_STRUCT_1_TYPE_WRAP(WT, NT, NAME) \ + { \ + WT vs2[N]; \ + NT rs1; \ + WT expect[N]; \ + WT vd[N]; \ + }; +#define DEF_BINARY_WIDEN_STRUCT_1_WRAP(WT, NT, NAME) \ + DEF_BINARY_WIDEN_STRUCT_1(WT, NT, NAME) + +DEF_BINARY_WIDEN_STRUCT_1_WRAP(uint64_t, uint32_t, add) + DEF_BINARY_WIDEN_STRUCT_0_DECL_WRAP(uint64_t, uint32_t, add)[] = { { /* vs2 */ @@ -156,4 +190,43 @@ DEF_BINARY_WIDEN_STRUCT_0_DECL_WRAP(uint64_t, uint32_t, mul)[] = { }, }; +DEF_BINARY_WIDEN_STRUCT_1_DECL_WRAP(uint64_t, uint32_t, add)[] = { + { + /* vs2 */ + { + 1, 1, 1, 1, + 0, 0, 0, 0, + 2147483647, 2147483647, 2147483647, 2147483647, + 2147483649, 2147483649, 2147483649, 2147483649, + }, + /* rs1 */ + 2147483647, + /* expect */ + { + 2147483648, 2147483648, 2147483648, 2147483648, + 2147483647, 2147483647, 2147483647, 2147483647, + 4294967294, 4294967294, 4294967294, 4294967294, + 4294967296ull, 4294967296ull, 4294967296ull, 4294967296ull, + }, + }, + { + /* vs2 */ + { + 1, 1, 1, 1, + 0, 0, 0, 0, + 4294967295ull, 4294967295ull, 4294967295ull, 4294967295ull, + 4294967296ull, 4294967296ull, 4294967296ull, 4294967296ull, + }, + /* rs1 */ + 4294967295, + /* expect */ + { + 4294967296ull, 4294967296ull, 4294967296ull, 4294967296ull, + 4294967295ull, 4294967295ull, 4294967295ull, 4294967295ull, + 8589934590ull, 8589934590ull, 8589934590ull, 8589934590ull, + 8589934591ull, 8589934591ull, 8589934591ull, 8589934591ull, + }, + }, +}; + #endif diff --git a/gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx_widen_wx_run.h b/gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx_widen_wx_run.h new file mode 100644 index 000000000000..6edd48605044 --- /dev/null +++ b/gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/vx_widen_wx_run.h @@ -0,0 +1,27 @@ +#ifndef HAVE_DEFINED_WX_WIDEN_RUN_H +#define HAVE_DEFINED_WX_WIDEN_RUN_H + +int +main () +{ + unsigned i, k; + + for (i = 0; i < sizeof (TEST_DATA) / sizeof (TEST_DATA[0]); i++) + { + DATA_TYPE *data = &TEST_DATA[i]; + WT *vs2 = data->vs2; + NT rs1 = data->rs1; + WT *expect = data->expect; + WT *vd = data->vd; + + TEST_RUN (WT, NT, NAME, vd, vs2, rs1, N); + + for (k = 0; k < N; k++) + if (vd[k] != expect[k]) + __builtin_abort (); + } + + return 0; +} + +#endif diff --git a/gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/wx_vwaddu-run-1-u64.c b/gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/wx_vwaddu-run-1-u64.c new file mode 100644 index 000000000000..fe0ea7cb3c93 --- /dev/null +++ b/gcc/testsuite/gcc.target/riscv/rvv/autovec/vx_vf/wx_vwaddu-run-1-u64.c @@ -0,0 +1,18 @@ +/* { dg-do run { target { riscv_v } } } */ +/* { dg-additional-options "-std=c99 --param=gpr2vr-cost=0" } */ + +#include "vx_widen.h" +#include "vx_widen_data.h" + +#define WT uint64_t +#define NT uint32_t +#define NAME add +#define TEST_DATA DEF_BINARY_WIDEN_STRUCT_1_VAR_WRAP(WT, NT, NAME) +#define DATA_TYPE DEF_BINARY_WIDEN_STRUCT_1_TYPE_WRAP(WT, NT, NAME) + +DEF_VX_WIDEN_BINARY_CASE_1_WRAP(WT, NT, +, NAME) + +#define TEST_RUN(WT, NT, NAME, vd, vs2, rs1, N) \ + RUN_VX_WIDEN_BINARY_CASE_1_WRAP(WT, NT, NAME, vd, vs2, rs1, N) + +#include "vx_widen_wx_run.h" diff --git a/gcc/testsuite/gcc.target/riscv/rvv/vls-type-rvv-max-lmul-autovec.c b/gcc/testsuite/gcc.target/riscv/rvv/vls-type-rvv-max-lmul-autovec.c new file mode 100644 index 000000000000..3b083e8f67c7 --- /dev/null +++ b/gcc/testsuite/gcc.target/riscv/rvv/vls-type-rvv-max-lmul-autovec.c @@ -0,0 +1,12 @@ +/* { dg-do compile } */ +/* { dg-options "-march=rv64gcv -mabi=lp64d -O3 -mrvv-max-lmul=m2 -fdump-tree-optimized" } */ + +void foo(int * restrict a, int *b, int *c) +{ + for (int i=0;i<32;++i) + a[i] = b[i] + c[i]; +} + +/* Make sure -mrvv-max-lmul still constraint the auto vectorizer for VLS + types. */ +/* { dg-final { scan-assembler {vsetivli\s+zero,8,e32,m2,t[au],m[au]} } } */ diff --git a/gcc/testsuite/gcc.target/riscv/rvv/vls-type-rvv-max-lmul.c b/gcc/testsuite/gcc.target/riscv/rvv/vls-type-rvv-max-lmul.c new file mode 100644 index 000000000000..5d52f7798d59 --- /dev/null +++ b/gcc/testsuite/gcc.target/riscv/rvv/vls-type-rvv-max-lmul.c @@ -0,0 +1,12 @@ +/* { dg-do compile } */ +/* { dg-options "-march=rv64gcv -mabi=lp64d -O3 -mrvv-max-lmul=m1 -fdump-tree-optimized" } */ + +typedef long long int64x8_t __attribute__((vector_size(64))); + +int64x8_t foo(int64x8_t a, int64x8_t b) +{ + return a + b; +} +/* Make sure we can us up to LMUL 4 to process int64x8_t at once rather than + break that into 4 LMUL 1 operations. */ +/* { dg-final { scan-assembler {vsetivli\s+zero,8,e64,m4,t[au],m[au]} } } */ diff --git a/gcc/testsuite/gcc.target/xtensa/BGEUI-BLTUI-32k-64k.c b/gcc/testsuite/gcc.target/xtensa/BGEUI-BLTUI-32k-64k.c index 05873b896896..bd6bf5f2111c 100644 --- a/gcc/testsuite/gcc.target/xtensa/BGEUI-BLTUI-32k-64k.c +++ b/gcc/testsuite/gcc.target/xtensa/BGEUI-BLTUI-32k-64k.c @@ -1,5 +1,5 @@ /* { dg-do compile } */ -/* { dg-options "-O2" } */ +/* { dg-options "-O0 -fdump-rtl-expand" } */ extern void foo(void); @@ -15,5 +15,6 @@ void BLTUI_test(unsigned int a) foo(); } +/* { dg-final { scan-rtl-dump-times "ubtrue" 2 "expand" } } */ /* { dg-final { scan-assembler-times "bgeui" 1 } } */ /* { dg-final { scan-assembler-times "bltui" 1 } } */ diff --git a/gcc/testsuite/gcc.target/xtensa/constsynthV2_O2_costs0.c b/gcc/testsuite/gcc.target/xtensa/constsynthV2_O2_costs0.c new file mode 100644 index 000000000000..a32d75c360ab --- /dev/null +++ b/gcc/testsuite/gcc.target/xtensa/constsynthV2_O2_costs0.c @@ -0,0 +1,19 @@ +/* { dg-do compile } */ +/* { dg-options "-O2 -mextra-l32r-costs=0" } */ + +_Complex double test(int a[], float b[]) +{ + a[0] = 2045 * 2045; + a[1] = 4182000; /* postreload const-anchored */ + a[2] = 0xDEADBEEF; + a[3] = 0xDEADBEEF - 15; /* postreload const-anchored */ + a[4] = 131071; + a[5] = 293805; + a[6] = 700972933; + a[7] = -372738139; + b[0] = 3.14159265359f; + b[1] = 0.12005615234375f; + return 1-1i; +} + +/* { dg-final { scan-assembler-times "l32r" 10 } } */ diff --git a/gcc/testsuite/gcc.target/xtensa/constsynthV2_O2_costs5.c b/gcc/testsuite/gcc.target/xtensa/constsynthV2_O2_costs5.c new file mode 100644 index 000000000000..5d29ddb8dae1 --- /dev/null +++ b/gcc/testsuite/gcc.target/xtensa/constsynthV2_O2_costs5.c @@ -0,0 +1,19 @@ +/* { dg-do compile } */ +/* { dg-options "-O2 -mextra-l32r-costs=5" } */ + +_Complex double test(int a[], float b[]) +{ + a[0] = 2045 * 2045; /* method "square" */ + a[1] = 4182000; /* postreload const-anchored */ + a[2] = 0xDEADBEEF; /* method "32bits" */ + a[3] = 0xDEADBEEF - 15; /* postreload const-anchored */ + a[4] = 131071; /* method "lshr_m1" */ + a[5] = 293805; /* method "16bits" */ + a[6] = 700972933; /* method "32bits" */ + a[7] = -372738139; /* method "32bits" */ + b[0] = 3.14159265359f; /* method "32bits" */ + b[1] = 0.12005615234375f; /* method "32bits" */ + return 1-1i; /* method "16bits", method "16bits" */ +} + +/* { dg-final { scan-assembler-not "l32r" } } */ diff --git a/gcc/testsuite/gcc.target/xtensa/constsynthV2_Os.c b/gcc/testsuite/gcc.target/xtensa/constsynthV2_Os.c new file mode 100644 index 000000000000..f56c68837b9c --- /dev/null +++ b/gcc/testsuite/gcc.target/xtensa/constsynthV2_Os.c @@ -0,0 +1,23 @@ +/* { dg-do compile } */ +/* { dg-options "-Os -mabi=windowed" } */ + +_Complex double test(int a[], float b[]) +{ + a[0] = 2045 * 2045; /* method "square", but not unique */ + a[1] = 4182000; /* postreload const-anchored */ + a[2] = 0xDEADBEEF; + a[3] = 0xDEADBEEF - 15; /* postreload const-anchored */ + a[4] = 131071; /* method "lshr_m1", but not unique */ + a[5] = 293805; + a[6] = 700972933; + a[7] = -372738139; + asm volatile ("# clobbers":::"a2","a3","a4","a5","a6","a7","a8","a9","a10","a11","a12","a13","a14","a15"); + a[8] = 2045 * 2045; /* method "square", but not unique */ + a[9] = 131071; /* method "lshr_m1", but not unique */ + b[0] = 3.14159265359f; + b[1] = 0.12005615234375f; + return 1-1i; /* method "16bits", method "16bits" */ +} + +/* { dg-final { scan-assembler-times "l32r" 10 } } */ +/* { dg-final { scan-assembler-times ".literal " 8 } } */ diff --git a/gcc/testsuite/gcc.target/xtensa/constsynth_2insns.c b/gcc/testsuite/gcc.target/xtensa/constsynth_2insns.c deleted file mode 100644 index 43c85a25086a..000000000000 --- a/gcc/testsuite/gcc.target/xtensa/constsynth_2insns.c +++ /dev/null @@ -1,44 +0,0 @@ -/* { dg-do compile } */ -/* { dg-options "-Os" } */ - -int test_0(void) -{ - return 4095; -} - -int test_1(void) -{ - return 2147483647; -} - -int test_2(void) -{ - return -34816; -} - -int test_3(void) -{ - return -2049; -} - -int test_4(void) -{ - return 2048; -} - -int test_5(void) -{ - return 34559; -} - -int test_6(void) -{ - return 43680; -} - -void test_7(int *p) -{ - *p = -1432354816; -} - -/* { dg-final { scan-assembler-not "l32r" } } */ diff --git a/gcc/testsuite/gcc.target/xtensa/constsynth_3insns.c b/gcc/testsuite/gcc.target/xtensa/constsynth_3insns.c deleted file mode 100644 index 831288c7ddd5..000000000000 --- a/gcc/testsuite/gcc.target/xtensa/constsynth_3insns.c +++ /dev/null @@ -1,35 +0,0 @@ -/* { dg-do compile } */ -/* { dg-options "-O2 -mextra-l32r-costs=3" } */ - -int test_0(void) -{ - return 134217216; -} - -int test_1(void) -{ - return -27604992; -} - -int test_2(void) -{ - return -162279; -} - -void test_3(int *p) -{ - *p = 192437; -} - -struct foo -{ - unsigned int b : 10; - unsigned int g : 11; - unsigned int r : 11; -}; -void test_4(struct foo *p, unsigned int v) -{ - p->g = v; -} - -/* { dg-final { scan-assembler-not "l32r" } } */ diff --git a/gcc/testsuite/gcc.target/xtensa/constsynth_double.c b/gcc/testsuite/gcc.target/xtensa/constsynth_double.c deleted file mode 100644 index 5fba6a986506..000000000000 --- a/gcc/testsuite/gcc.target/xtensa/constsynth_double.c +++ /dev/null @@ -1,11 +0,0 @@ -/* { dg-do compile } */ -/* { dg-options "-Os" } */ - -void test(unsigned int count, double array[]) -{ - unsigned int i; - for (i = 0; i < count; ++i) - array[i] = 8.988474246316506e+307; -} - -/* { dg-final { scan-assembler-not "l32r" } } */ diff --git a/gcc/testsuite/gfortran.dg/binding_label_tests_35.f90 b/gcc/testsuite/gfortran.dg/binding_label_tests_35.f90 new file mode 100644 index 000000000000..ae3973fe5bf2 --- /dev/null +++ b/gcc/testsuite/gfortran.dg/binding_label_tests_35.f90 @@ -0,0 +1,21 @@ +! { dg-do compile } +! { dg-options "-Wsurprising" } +! PR fortran/49111 +! +! Do not warn for interface declarations with C binding declared PRIVATE + +module mod1 + use iso_c_binding + implicit none + save + + interface + function strerror(errnum) bind(C, NAME = 'strerror') + import + type(C_PTR) :: strerror + integer(C_INT), value :: errnum + end function strerror + end interface + + private strerror +end module mod1 diff --git a/gcc/testsuite/gfortran.dg/binding_label_tests_9.f03 b/gcc/testsuite/gfortran.dg/binding_label_tests_9.f03 index bb61cbf12c77..81d74af019e2 100644 --- a/gcc/testsuite/gfortran.dg/binding_label_tests_9.f03 +++ b/gcc/testsuite/gfortran.dg/binding_label_tests_9.f03 @@ -1,4 +1,5 @@ ! { dg-do compile } +! { dg-options "-Wsurprising" } module x use iso_c_binding implicit none @@ -7,13 +8,13 @@ module x private :: my_private_sub_2 public :: my_public_sub contains - subroutine bar() bind(c,name="foo") ! { dg-warning "PRIVATE but has been given the binding label" } + subroutine bar() bind(c,name="foo") end subroutine bar subroutine my_private_sub() bind(c, name="") end subroutine my_private_sub - subroutine my_private_sub_2() bind(c) ! { dg-warning "PRIVATE but has been given the binding label" } + subroutine my_private_sub_2() bind(c) ! { dg-warning "is marked PRIVATE" } end subroutine my_private_sub_2 subroutine my_public_sub() bind(c, name="my_sub") diff --git a/gcc/testsuite/gfortran.dg/dynamic_dispatch_9.f03 b/gcc/testsuite/gfortran.dg/dynamic_dispatch_9.f03 index b9b1b1a6e069..0f807ba51049 100644 --- a/gcc/testsuite/gfortran.dg/dynamic_dispatch_9.f03 +++ b/gcc/testsuite/gfortran.dg/dynamic_dispatch_9.f03 @@ -1,6 +1,6 @@ ! { dg-do run } ! -! [OOP] Ensure that different specifc interfaces are +! [OOP] Ensure that different specific interfaces are ! handled properly by dynamic dispatch. ! ! Contributed by Salvatore Filippone diff --git a/gcc/testsuite/gfortran.dg/implied_do_io_9.f90 b/gcc/testsuite/gfortran.dg/implied_do_io_9.f90 new file mode 100644 index 000000000000..5180b8ace66c --- /dev/null +++ b/gcc/testsuite/gfortran.dg/implied_do_io_9.f90 @@ -0,0 +1,72 @@ +! { dg-do run } +! { dg-additional-options "-O2" } +! +! PR fortran/107968 +! +! Verify that array I/O optimization is not used for a section +! of an array pointer as the pointee can be non-contiguous +! +! Contributed by Nils Dreier + +PROGRAM foo + implicit none + + TYPE t_geographical_coordinates + REAL :: lon + REAL :: lat + END TYPE t_geographical_coordinates + + TYPE t_vertices + REAL, POINTER :: vlon(:) => null() + REAL, POINTER :: vlat(:) => null() + END TYPE t_vertices + + TYPE(t_geographical_coordinates), TARGET :: vertex(2) + TYPE(t_vertices), POINTER :: vertices_pointer + TYPE(t_vertices), TARGET :: vertices_target + + character(24) :: s0, s1, s2 + character(*), parameter :: fmt = '(2f8.3)' + + ! initialization + vertex%lon = [1,3] + vertex%lat = [2,4] + + ! obtain pointer to (non-contiguous) field + vertices_target%vlon => vertex%lon + + ! reference output of write + write (s0,fmt) vertex%lon + + ! set pointer vertices_pointer in a subroutine + CALL set_vertices_pointer(vertices_target) + + write (s1,fmt) vertices_pointer%vlon + write (s2,fmt) vertices_pointer%vlon(1:) + if (s1 /= s0 .or. s2 /= s0) then + print *, s0, s1, s2 + stop 3 + end if + +CONTAINS + + SUBROUTINE set_vertices_pointer(vertices) + TYPE(t_vertices), POINTER, INTENT(IN) :: vertices + + vertices_pointer => vertices + + write (s1,fmt) vertices %vlon + write (s2,fmt) vertices %vlon(1:) + if (s1 /= s0 .or. s2 /= s0) then + print *, s0, s1, s2 + stop 1 + end if + + write (s1,fmt) vertices_pointer%vlon + write (s2,fmt) vertices_pointer%vlon(1:) + if (s1 /= s0 .or. s2 /= s0) then + print *, s0, s1, s2 + stop 2 + end if + END SUBROUTINE set_vertices_pointer +END PROGRAM foo diff --git a/gcc/testsuite/gfortran.dg/interface_abstract_6.f90 b/gcc/testsuite/gfortran.dg/interface_abstract_6.f90 new file mode 100644 index 000000000000..05b9a4e805f2 --- /dev/null +++ b/gcc/testsuite/gfortran.dg/interface_abstract_6.f90 @@ -0,0 +1,53 @@ +! { dg-do compile } +! { dg-options "-fdump-tree-original" } +! +! PR fortran/122206 +! +! Verify that procedure interfaces are "stable" + +module test_example + use, intrinsic :: iso_c_binding, only: c_double, c_int + implicit none + + abstract interface + function simple_interface(iarg1, arg2) bind(c) result(res) + import c_double, c_int + integer(c_int), value, intent(in) :: iarg1 + real(c_double), value, intent(in) :: arg2 + real(c_double) :: res + end function simple_interface + end interface + + procedure(simple_interface), bind(c,name="simple_function") :: simple_function + + interface + function other_interface(iarg1, arg2) result(res) + import c_double, c_int + integer(c_int), value, intent(in) :: iarg1 + real(c_double), value, intent(in) :: arg2 + real(c_double) :: res + end function other_interface + end interface + + procedure(other_interface) :: other_function + +contains + subroutine test_example_interface + implicit none + integer(c_int) :: iarg1 = 2 + real(c_double) :: arg2 = 10. + real(c_double) :: val1, val2 + + val1 = simple_function(iarg1, arg2) + val2 = simple_function(iarg1, arg2) + if (val1 /= val2) stop 1 + + val1 = other_function(iarg1, arg2) + val2 = other_function(iarg1, arg2) + if (val1 /= val2) stop 2 + + end subroutine test_example_interface +end module test_example + +! { dg-final { scan-tree-dump-times "simple_function \\(iarg1, arg2\\);" 2 "original"} } +! { dg-final { scan-tree-dump-times "other_function \\(iarg1, arg2\\);" 2 "original"} } diff --git a/gcc/testsuite/gfortran.dg/module_private_2.f90 b/gcc/testsuite/gfortran.dg/module_private_2.f90 index 847c58d5e37c..58dbb1e23fe5 100644 --- a/gcc/testsuite/gfortran.dg/module_private_2.f90 +++ b/gcc/testsuite/gfortran.dg/module_private_2.f90 @@ -1,5 +1,5 @@ ! { dg-do compile } -! { dg-options "-O2 -fdump-tree-optimized" } +! { dg-options "-O2 -Wsurprising -fdump-tree-optimized" } ! ! PR fortran/47266 ! diff --git a/gcc/testsuite/gfortran.dg/pdt_51.f03 b/gcc/testsuite/gfortran.dg/pdt_51.f03 new file mode 100644 index 000000000000..46697bf1c09a --- /dev/null +++ b/gcc/testsuite/gfortran.dg/pdt_51.f03 @@ -0,0 +1,57 @@ +! { dg-do compile } +! { dg-options "-fdump-tree-original" } +! +! Test the fix for PR122089 in which the generic interface checking failed. +! +! Contributed by Damian Rouson +! +module tensor_m + implicit none + + type tensor_t(k) + integer, kind :: k = kind(1.) + real(k) values_ + contains + generic :: values => double_precision_values + procedure double_precision_values + end type + +contains + function double_precision_values(self) + class(tensor_t(kind(1D0))) self + double precision double_precision_values + double_precision_values = self%values_ + end function +end module + +module input_output_pair_m + use tensor_m, only : tensor_t + implicit none + + type input_output_pair_t(k) + integer, kind :: k = kind(1.) + type(tensor_t(k)) inputs_ + end type + + interface + module subroutine double_precision_write_to_stdout(input_output_pairs) + implicit none + type(input_output_pair_t(kind(1D0))) input_output_pairs + end subroutine + end interface +end module + +submodule(input_output_pair_m) input_output_pair_s + implicit none +contains + module procedure double_precision_write_to_stdout + print *, input_output_pairs%inputs_%values() + end procedure +end submodule + + use input_output_pair_m + type(input_output_pair_t(kind(1d0))) :: tgt + tgt%inputs_%values_ = 42d0 + call double_precision_write_to_stdout(tgt) +end +! { dg-final { scan-tree-dump-times "double_precision_write_to_stdout \\(&tgt\\);" 1 "original" } } diff --git a/gcc/testsuite/gfortran.dg/pdt_52.f03 b/gcc/testsuite/gfortran.dg/pdt_52.f03 new file mode 100644 index 000000000000..5acdecbdf3ce --- /dev/null +++ b/gcc/testsuite/gfortran.dg/pdt_52.f03 @@ -0,0 +1,36 @@ +! { dg-do compile } +! +! Test the fix for PR122089 in which an error occured in compiling the module +! because a spurious REAL(KIND=0) was being produced for 'values_'. +! +! Other failures are indicated by the comments. For reasons that are not to me, +! they didn't fail when combined with this test. +! +! Contributed by Damian Rouson +! +module tensor_m + implicit none + + type tensor_t(k) + integer, kind :: k = kind(1.) + real(k), allocatable :: values_ ! ICE if not allocatable + end type + + type input_output_pair_t(k) + integer, kind :: k + type(tensor_t(k)) inputs_, expected_outputs_ ! ICE if 2nd component dropped + end type + + type mini_batch_t(k) + integer, kind :: k + type(input_output_pair_t(k)) input_output_pairs_ + end type + +end module tensor_m + + use tensor_m + type (mini_batch_t(k = kind(1d0))) :: x + allocate (x%input_output_pairs_%inputs_%values_, source = 42d0) + print *, kind (x%input_output_pairs_%inputs_%values_), x%input_output_pairs_%inputs_%values_ + deallocate (x%input_output_pairs_%inputs_%values_) +end diff --git a/gcc/testsuite/gfortran.dg/pdt_53.f03 b/gcc/testsuite/gfortran.dg/pdt_53.f03 new file mode 100644 index 000000000000..9f3b4ca82ab8 --- /dev/null +++ b/gcc/testsuite/gfortran.dg/pdt_53.f03 @@ -0,0 +1,28 @@ +! { dg-do compile } +! +! Test the fix for PR122089 in which an error occured in compiling the module +! because a spurious REAL(KIND=0) was being produced for 'values_'. +! +! This is a variant of pdt_52.f03. See the comments in that test. +! +! Contributed by Damian Rouson +! +module tensor_m + implicit none + + type tensor_t(k) + integer, kind :: k = kind(1.) + real(k) :: values_ ! Used to ICE + end type + + type input_output_pair_t(k) + integer, kind :: k + type(tensor_t(k)) inputs_, expected_outputs_ + end type + + type mini_batch_t(k) + integer, kind :: k + type(input_output_pair_t(k)) input_output_pairs_ + end type + +end module tensor_m diff --git a/gcc/testsuite/gfortran.dg/pdt_54.f03 b/gcc/testsuite/gfortran.dg/pdt_54.f03 new file mode 100644 index 000000000000..9631dad2f5e2 --- /dev/null +++ b/gcc/testsuite/gfortran.dg/pdt_54.f03 @@ -0,0 +1,28 @@ +! { dg-do compile } +! +! Test the fix for PR122089 in which an error occured in compiling the module +! because a spurious REAL(KIND=0) was being produced for 'values_'. +! +! This is a variant of pdt_52.f03. See the comments in that test. +! +! Contributed by Damian Rouson +! +module tensor_m + implicit none + + type tensor_t(k) + integer, kind :: k = kind(1.) + real(k), allocatable :: values_ + end type + + type input_output_pair_t(k) + integer, kind :: k + type(tensor_t(k)) inputs_ ! Used to ICE if 2nd component dropped + end type + + type mini_batch_t(k) + integer, kind :: k + type(input_output_pair_t(k)) input_output_pairs_ + end type + +end module tensor_m diff --git a/gcc/testsuite/gfortran.dg/pdt_55.f03 b/gcc/testsuite/gfortran.dg/pdt_55.f03 new file mode 100644 index 000000000000..bcdb1518fde3 --- /dev/null +++ b/gcc/testsuite/gfortran.dg/pdt_55.f03 @@ -0,0 +1,96 @@ +! { dg-do run } +! +! Test fix for PRs 102240, 102686 and 93175. +! +! PR102240 +! Contributed by Roland Wirth +! +MODULE m1 + IMPLICIT NONE + private + public r + INTEGER :: n0, n ! Symbols that confused the parameter substitution. + type t0(m0,n0) + INTEGER, kind :: m0 + INTEGER, LEN :: n0 + INTEGER(kind=m0) :: a0(n0*2) + end type t0 + + TYPE t(m,n) + INTEGER, kind :: m + INTEGER, LEN :: n + INTEGER(kind=m) :: a(n/8:(n/2 + 4)) + type(t0(m,n)) :: p ! During testing, getting this to work fixed PR93175. + END TYPE t +contains + subroutine r + type (t(kind(1_8), 8)) :: x + x%a = [1,2,3,4,5,6,7,8] + if (kind (x%a) /= kind(1_8)) stop 1 + if (sum (x%a) /= 36_8) stop 2 + if (size(x%p%a0) /= 16) stop 3 + end +END + +! PR102686 +! Contributed by Gerhard Steinmetz +! +module m2 + implicit none + private + public s +contains + pure integer function n() ! Confused the parameter substitution. + n = 1 + end + subroutine s + type t(n) + integer, len :: n = 2 + character(len=n) :: c ! ICE because function n() referenced rather than parameter. + end type + type (t(4)) :: c_type, c_type2 + c_type = t(4)("abcd") + if (len (c_type%c) /= 4) stop 4 + if (c_type%c /= "abcd") stop 5 + c_type2%c = "efgh" + if (len (c_type2%c) /= 4) stop 6 + if (c_type2%c /= "efgh") stop 7 + end +end + +! PR93175 +! Contributed by Rich Townsend +! +module m3 + private + public u + type :: matrix (k,n) + integer, kind :: k + integer, len :: n + real(k) :: a(n,n) + end type matrix + + type :: problem(n) + integer, len :: n + type(matrix(kind(0.D0),n)) :: m + end type problem + +contains + subroutine u + implicit none + type(problem(2)) :: p + + p%m%a = 1. + if (p%n /= 2) stop 8 + if (p%m%n /= 2) stop 9 + if (int (sum (p%m%a)) /= 4) stop 10 + end subroutine +end module m3 + + use m1 + use m2 + use m3 + call r + call s + call u +end diff --git a/gcc/testsuite/gfortran.dg/pdt_56.f03 b/gcc/testsuite/gfortran.dg/pdt_56.f03 new file mode 100644 index 000000000000..681d47937029 --- /dev/null +++ b/gcc/testsuite/gfortran.dg/pdt_56.f03 @@ -0,0 +1,96 @@ +! { dg-do compile } +! { dg-options "-fcheck=all" } +! +! Test the fix for PR102901, where pdt_13/14/15.f03 segfaulted in compilation +! with -fcheck=all. +! +! Reported by Tobias Burnus +! +! This is pdt_13.f03. +! +module precision_module + implicit none + integer, parameter :: sp = selected_real_kind(6, 37) + integer, parameter :: dp = selected_real_kind(15, 307) + integer, parameter :: qp = selected_real_kind( 30, 291) +end module precision_module + +module link_module + use precision_module + + type link(real_kind) + integer, kind :: real_kind + real (kind=real_kind) :: n + type (link(real_kind)), pointer :: next => NULL() + end type link + +contains + + function push_8 (self, arg) result(current) + real(dp) :: arg + type (link(real_kind=dp)), pointer :: self + type (link(real_kind=dp)), pointer :: current + + if (associated (self)) then + current => self + do while (associated (current%next)) + current => current%next + end do + + allocate (current%next) + current => current%next + else + allocate (current) + self => current + end if + + current%n = arg + current%next => NULL () + end function push_8 + + function pop_8 (self) result(res) + type (link(real_kind=dp)), pointer :: self + type (link(real_kind=dp)), pointer :: current => NULL() + type (link(real_kind=dp)), pointer :: previous => NULL() + real(dp) :: res + + res = 0.0_8 + if (associated (self)) then + current => self + do while (associated (current) .and. associated (current%next)) + previous => current + current => current%next + end do + + previous%next => NULL () + + res = current%n + if (associated (self, current)) then + deallocate (self) + else + deallocate (current) + end if + + end if + end function pop_8 + +end module link_module + +program ch2701 + use precision_module + use link_module + implicit none + integer, parameter :: wp = dp + type (link(real_kind=wp)), pointer :: root => NULL() + type (link(real_kind=wp)), pointer :: current + + current => push_8 (root, 1.0_8) + current => push_8 (root, 2.0_8) + current => push_8 (root, 3.0_8) + + if (int (pop_8 (root)) .ne. 3) STOP 1 + if (int (pop_8 (root)) .ne. 2) STOP 2 + if (int (pop_8 (root)) .ne. 1) STOP 3 + if (int (pop_8 (root)) .ne. 0) STOP 4 + +end program ch2701 diff --git a/gcc/testsuite/gfortran.dg/public_private_module_2.f90 b/gcc/testsuite/gfortran.dg/public_private_module_2.f90 index e84429e10033..87276ccdfd18 100644 --- a/gcc/testsuite/gfortran.dg/public_private_module_2.f90 +++ b/gcc/testsuite/gfortran.dg/public_private_module_2.f90 @@ -1,5 +1,5 @@ ! { dg-do compile } -! { dg-options "-O2" } +! { dg-options "-O2 -Wsurprising" } ! { dg-require-visibility "" } ! ! PR fortran/52751 (top, "module mod") @@ -8,16 +8,16 @@ ! Ensure that (only) those module variables and procedures which are PRIVATE ! and have no C-binding label are optimized away. ! - module mod - integer :: aa - integer, private :: iii - integer, private, bind(C) :: jj ! { dg-warning "PRIVATE but has been given the binding label" } - integer, private, bind(C,name='lll') :: kk ! { dg-warning "PRIVATE but has been given the binding label" } - integer, private, bind(C,name='') :: mmmm - integer, bind(C) :: nnn - integer, bind(C,name='oo') :: pp - integer, bind(C,name='') :: qq - end module mod +module mod + integer :: aa + integer, private :: iii + integer, private, bind(C) :: jj ! { dg-warning "is marked PRIVATE" } + integer, private, bind(C,name='lll') :: kk + integer, private, bind(C,name='') :: mmmm + integer, bind(C) :: nnn + integer, bind(C,name='oo') :: pp + integer, bind(C,name='') :: qq +end module mod ! The two xfails below have appeared with the introduction of submodules. 'iii' and ! 'mmm' now are TREE_PUBLIC but has DECL_VISIBILITY (decl) = VISIBILITY_HIDDEN set. @@ -43,10 +43,10 @@ END SUBROUTINE one integer FUNCTION two() two = 42 END FUNCTION two - integer FUNCTION three() bind(C) ! { dg-warning "PRIVATE but has been given the binding label" } + integer FUNCTION three() bind(C) ! { dg-warning "is marked PRIVATE" } three = 43 END FUNCTION three - integer FUNCTION four() bind(C, name='five') ! { dg-warning "PRIVATE but has been given the binding label" } + integer FUNCTION four() bind(C, name='five') four = 44 END FUNCTION four integer FUNCTION six() bind(C, name='') diff --git a/gcc/testsuite/gfortran.dg/ubsan/missing_optional_dummy_9.f90 b/gcc/testsuite/gfortran.dg/ubsan/missing_optional_dummy_9.f90 new file mode 100644 index 000000000000..06b0004d5738 --- /dev/null +++ b/gcc/testsuite/gfortran.dg/ubsan/missing_optional_dummy_9.f90 @@ -0,0 +1,22 @@ +! { dg-do compile } +! { dg-options "-O2 -fdump-tree-original -fdump-tree-optimized -fsanitize=undefined" } +! +! PR fortran/122080 - UBSAN: uninitialized stride for missing actual argument +! +! Contributed by Henri Menke + +subroutine outer (optarr) + real, optional, intent(in) :: optarr(:,:) + interface + subroutine inner (optarr) + real, optional, intent(in) :: optarr(:,:) + end subroutine inner + end interface + call inner (optarr) +end subroutine outer + +! There will be 2 remaining UBSAN checks of stride wrapped by a check +! for argument presence: +! +! { dg-final { scan-tree-dump-times "if \\(optarr.0 != 0B\\)" 1 "original" } } +! { dg-final { scan-tree-dump-times "UBSAN_CHECK_SUB (.)* stride" 2 "optimized" } } diff --git a/gcc/testsuite/gfortran.dg/use_only_3.inc b/gcc/testsuite/gfortran.dg/use_only_3.inc index 7b860096b32d..7ef449e00082 100644 --- a/gcc/testsuite/gfortran.dg/use_only_3.inc +++ b/gcc/testsuite/gfortran.dg/use_only_3.inc @@ -397,7 +397,7 @@ END MODULE control_flags REAL(DP) :: ecutw = 0.0d0 REAL(DP) :: gcutw = 0.0d0 - ! values for costant cut-off computations + ! values for constant cut-off computations REAL(DP) :: ecfix = 0.0d0 ! value of the constant cut-off REAL(DP) :: ecutz = 0.0d0 ! height of the penalty function (above ecfix) diff --git a/gcc/testsuite/gnat.dg/allocator3.adb b/gcc/testsuite/gnat.dg/allocator3.adb new file mode 100644 index 000000000000..ac04344fbb1d --- /dev/null +++ b/gcc/testsuite/gnat.dg/allocator3.adb @@ -0,0 +1,23 @@ +-- { dg-do compile } + +with Ada.Containers.Synchronized_Queue_Interfaces; +with Ada.Containers.Unbounded_Synchronized_Queues; + +procedure Allocator3 is + + package Queue_Interfaces is + new Ada.Containers.Synchronized_Queue_Interfaces (Integer); + + package Synchronized_Queues is + new Ada.Containers.Unbounded_Synchronized_Queues (Queue_Interfaces); + + subtype Queue is Synchronized_Queues.Queue; + + type Access_Type is access all Queue; + + Q1 : Access_Type := new Queue; + Q2 : Access_Type := new Queue; + +begin + null; +end; diff --git a/gcc/testsuite/gnat.dg/reduce2.adb b/gcc/testsuite/gnat.dg/reduce2.adb new file mode 100644 index 000000000000..0246709ec43a --- /dev/null +++ b/gcc/testsuite/gnat.dg/reduce2.adb @@ -0,0 +1,18 @@ +-- { dg-do compile } +-- { dg-options "-gnat2022" } + +procedure Reduce2 is + + subtype Value is Natural range 0 .. 255; + + function Do_Something (Accumulator : Value; Symbol : Character) return Value + is (((Accumulator + Character'Pos (Symbol)) * 17) mod 256); + + function Do_It_By_Reduction (S : String) return Value is + (S'Reduce (Do_Something, 0)); + + Test_It : constant Value := Do_It_By_Reduction ("Hello, world!"); + +begin + null; +end; diff --git a/gcc/testsuite/gnat.dg/use_type1.adb b/gcc/testsuite/gnat.dg/use_type1.adb new file mode 100644 index 000000000000..a32461014ae5 --- /dev/null +++ b/gcc/testsuite/gnat.dg/use_type1.adb @@ -0,0 +1,16 @@ +-- { dg-do compile } + +procedure Use_Type1 is + + package Nested is + type T is (X, Y, Z); + procedure Proc (Obj : T) is null; + end Nested; + + use all type Nested.T; + + Obj : Nested.T := X; + +begin + Proc (Obj); +end; diff --git a/gcc/testsuite/gnat.dg/use_type2.adb b/gcc/testsuite/gnat.dg/use_type2.adb new file mode 100644 index 000000000000..82996363d676 --- /dev/null +++ b/gcc/testsuite/gnat.dg/use_type2.adb @@ -0,0 +1,15 @@ +-- { dg-do compile } + +with Ada.Containers.Vectors; + +procedure Use_Type2 is + + package Vectors is new Ada.Containers.Vectors (Positive, Character); + + use all type Vectors.Vector; + + X : Vectors.Vector := To_Vector (0); + +begin + Append (X, 'A'); +end; diff --git a/gcc/testsuite/jit.dg/all-non-failing-tests.h b/gcc/testsuite/jit.dg/all-non-failing-tests.h index add5619aebd4..4aa18e3b7678 100644 --- a/gcc/testsuite/jit.dg/all-non-failing-tests.h +++ b/gcc/testsuite/jit.dg/all-non-failing-tests.h @@ -424,6 +424,9 @@ #undef create_code #undef verify_code +/* test-target-info.c: This can't be in the testcases array as it + is target-specific. */ + /* test-types.c */ #define create_code create_code_types #define verify_code verify_code_types diff --git a/gcc/testsuite/jit.dg/test-error-target-info.c b/gcc/testsuite/jit.dg/test-error-target-info.c new file mode 100644 index 000000000000..a2426458285d --- /dev/null +++ b/gcc/testsuite/jit.dg/test-error-target-info.c @@ -0,0 +1,60 @@ +/* { dg-do compile { target x86_64-*-* } } */ + +#include +#include + +#include "libgccjit.h" + +#define TEST_PROVIDES_MAIN +#include "harness.h" + +void +create_code (gcc_jit_context *ctxt, void *user_data) +{ +} + +void +verify_code (gcc_jit_context *ctxt, gcc_jit_result *result) +{ +} + +int +main (int argc, char **argv) +{ + /* This is the same as the main provided by harness.h, but calls gcc_jit_context_get_target_info. */ + gcc_jit_context *ctxt; + ctxt = gcc_jit_context_acquire (); + if (!ctxt) + { + fail ("gcc_jit_context_acquire failed"); + return -1; + } + gcc_jit_target_info* info = gcc_jit_context_get_target_info (ctxt); + gcc_jit_context_compile (ctxt); + + gcc_jit_target_info_release (info); + + /* Verify that the correct error message was emitted. */ + CHECK_STRING_VALUE (gcc_jit_context_get_last_error (ctxt), + "cannot compile after calling gcc_jit_context_get_target_info"); + + gcc_jit_context_release (ctxt); + + int i; + + for (i = 1; i <= 5; i++) + { + snprintf (test, sizeof (test), + "%s iteration %d of %d", + extract_progname (argv[0]), + i, 5); + + //printf ("ITERATION %d\n", i); + test_jit (argv[0], NULL); + //printf ("\n"); + } + + totals (); + + return 0; +} diff --git a/gcc/testsuite/jit.dg/test-target-info.c b/gcc/testsuite/jit.dg/test-target-info.c new file mode 100644 index 000000000000..edae18aa1143 --- /dev/null +++ b/gcc/testsuite/jit.dg/test-target-info.c @@ -0,0 +1,61 @@ +/* { dg-do compile { target x86_64-*-* } } */ + +#include +#include + +#include "libgccjit.h" + +#define TEST_PROVIDES_MAIN +#include "harness.h" + +void +create_code (gcc_jit_context *ctxt, void *user_data) +{ +} + +void +verify_code (gcc_jit_context *ctxt, gcc_jit_result *result) +{ +} + +int +main (int argc, char **argv) +{ + /* This is the same as the main provided by harness.h, but calls gcc_jit_context_get_target_info. */ + gcc_jit_context *ctxt; + ctxt = gcc_jit_context_acquire (); + if (!ctxt) + { + fail ("gcc_jit_context_acquire failed"); + return -1; + } + gcc_jit_target_info* info = gcc_jit_context_get_target_info (ctxt); + + int sse2_supported = gcc_jit_target_info_cpu_supports (info, "sse2"); + CHECK_VALUE (sse2_supported, 1); + + int supports_128bit_int = + gcc_jit_target_info_supports_target_dependent_type (info, + GCC_JIT_TYPE_INT128_T); + CHECK_VALUE (supports_128bit_int, 1); + gcc_jit_target_info_release (info); + gcc_jit_context_release (ctxt); + + int i; + + for (i = 1; i <= 5; i++) + { + snprintf (test, sizeof (test), + "%s iteration %d of %d", + extract_progname (argv[0]), + i, 5); + + //printf ("ITERATION %d\n", i); + test_jit (argv[0], NULL); + //printf ("\n"); + } + + totals (); + + return 0; +} diff --git a/gcc/testsuite/lib/sarif.py b/gcc/testsuite/lib/sarif.py index d75a87ec73a2..f0b3ddd9745d 100644 --- a/gcc/testsuite/lib/sarif.py +++ b/gcc/testsuite/lib/sarif.py @@ -1,6 +1,5 @@ import json import os -import xml.etree.ElementTree as ET def sarif_from_env(): # return parsed JSON content a SARIF_PATH file diff --git a/gcc/tree-cfg.cc b/gcc/tree-cfg.cc index 39aeb16f74e0..62513045c6f0 100644 --- a/gcc/tree-cfg.cc +++ b/gcc/tree-cfg.cc @@ -4786,6 +4786,7 @@ verify_gimple_return (greturn *stmt) { tree op = gimple_return_retval (stmt); tree restype = TREE_TYPE (TREE_TYPE (cfun->decl)); + tree resdecl = DECL_RESULT (cfun->decl); /* We cannot test for present return values as we do not fix up missing return values from the original source. */ @@ -4800,12 +4801,7 @@ verify_gimple_return (greturn *stmt) return true; } - if ((TREE_CODE (op) == RESULT_DECL - && DECL_BY_REFERENCE (op)) - || (TREE_CODE (op) == SSA_NAME - && SSA_NAME_VAR (op) - && TREE_CODE (SSA_NAME_VAR (op)) == RESULT_DECL - && DECL_BY_REFERENCE (SSA_NAME_VAR (op)))) + if (resdecl && DECL_BY_REFERENCE (resdecl)) op = TREE_TYPE (op); if (!useless_type_conversion_p (restype, TREE_TYPE (op))) diff --git a/gcc/tree-cfgcleanup.cc b/gcc/tree-cfgcleanup.cc index 5aaa18df0c55..58e8af5efcf5 100644 --- a/gcc/tree-cfgcleanup.cc +++ b/gcc/tree-cfgcleanup.cc @@ -392,7 +392,7 @@ tree_forwarder_block_p (basic_block bb, bool phi_wanted) location_t locus; /* BB must have a single outgoing edge. */ - if (single_succ_p (bb) != 1 + if (!single_succ_p (bb) /* If PHI_WANTED is false, BB must not have any PHI nodes. Otherwise, BB must have PHI nodes. */ || gimple_seq_empty_p (phi_nodes (bb)) == phi_wanted diff --git a/gcc/tree-diagnostic-client-data-hooks.cc b/gcc/tree-diagnostic-client-data-hooks.cc index 77eb292f787d..9ad608d17e09 100644 --- a/gcc/tree-diagnostic-client-data-hooks.cc +++ b/gcc/tree-diagnostic-client-data-hooks.cc @@ -19,6 +19,7 @@ You should have received a copy of the GNU General Public License along with GCC; see the file COPYING3. If not see . */ +#define INCLUDE_VECTOR #include "config.h" #include "system.h" #include "coretypes.h" diff --git a/gcc/tree-diagnostic.cc b/gcc/tree-diagnostic.cc index 20183c8bceda..4cf742d047d9 100644 --- a/gcc/tree-diagnostic.cc +++ b/gcc/tree-diagnostic.cc @@ -19,6 +19,7 @@ You should have received a copy of the GNU General Public License along with GCC; see the file COPYING3. If not see . */ +#define INCLUDE_VECTOR #include "config.h" #include "system.h" #include "coretypes.h" diff --git a/gcc/tree-pass.h b/gcc/tree-pass.h index 61cec52c6248..410341d47119 100644 --- a/gcc/tree-pass.h +++ b/gcc/tree-pass.h @@ -447,7 +447,6 @@ extern gimple_opt_pass *make_pass_warn_access (gcc::context *ctxt); extern gimple_opt_pass *make_pass_warn_printf (gcc::context *ctxt); extern gimple_opt_pass *make_pass_warn_recursion (gcc::context *ctxt); extern gimple_opt_pass *make_pass_strlen (gcc::context *ctxt); -extern gimple_opt_pass *make_pass_fold_builtins (gcc::context *ctxt); extern gimple_opt_pass *make_pass_post_ipa_warn (gcc::context *ctxt); extern gimple_opt_pass *make_pass_stdarg (gcc::context *ctxt); extern gimple_opt_pass *make_pass_early_warn_uninitialized (gcc::context *ctxt); diff --git a/gcc/tree-ssa-ccp.cc b/gcc/tree-ssa-ccp.cc index 4165e596033f..6de02e5c7dcb 100644 --- a/gcc/tree-ssa-ccp.cc +++ b/gcc/tree-ssa-ccp.cc @@ -3085,1448 +3085,6 @@ make_pass_ccp (gcc::context *ctxt) return new pass_ccp (ctxt); } - - -/* Try to optimize out __builtin_stack_restore. Optimize it out - if there is another __builtin_stack_restore in the same basic - block and no calls or ASM_EXPRs are in between, or if this block's - only outgoing edge is to EXIT_BLOCK and there are no calls or - ASM_EXPRs after this __builtin_stack_restore. */ - -static tree -optimize_stack_restore (gimple_stmt_iterator i) -{ - tree callee; - gimple *stmt; - - basic_block bb = gsi_bb (i); - gimple *call = gsi_stmt (i); - - if (gimple_code (call) != GIMPLE_CALL - || gimple_call_num_args (call) != 1 - || TREE_CODE (gimple_call_arg (call, 0)) != SSA_NAME - || !POINTER_TYPE_P (TREE_TYPE (gimple_call_arg (call, 0)))) - return NULL_TREE; - - for (gsi_next (&i); !gsi_end_p (i); gsi_next (&i)) - { - stmt = gsi_stmt (i); - if (gimple_code (stmt) == GIMPLE_ASM) - return NULL_TREE; - if (gimple_code (stmt) != GIMPLE_CALL) - continue; - - callee = gimple_call_fndecl (stmt); - if (!callee - || !fndecl_built_in_p (callee, BUILT_IN_NORMAL) - /* All regular builtins are ok, just obviously not alloca. */ - || ALLOCA_FUNCTION_CODE_P (DECL_FUNCTION_CODE (callee)) - /* Do not remove stack updates before strub leave. */ - || fndecl_built_in_p (callee, BUILT_IN___STRUB_LEAVE)) - return NULL_TREE; - - if (fndecl_built_in_p (callee, BUILT_IN_STACK_RESTORE)) - goto second_stack_restore; - } - - if (!gsi_end_p (i)) - return NULL_TREE; - - /* Allow one successor of the exit block, or zero successors. */ - switch (EDGE_COUNT (bb->succs)) - { - case 0: - break; - case 1: - if (single_succ_edge (bb)->dest != EXIT_BLOCK_PTR_FOR_FN (cfun)) - return NULL_TREE; - break; - default: - return NULL_TREE; - } - second_stack_restore: - - /* If there's exactly one use, then zap the call to __builtin_stack_save. - If there are multiple uses, then the last one should remove the call. - In any case, whether the call to __builtin_stack_save can be removed - or not is irrelevant to removing the call to __builtin_stack_restore. */ - if (has_single_use (gimple_call_arg (call, 0))) - { - gimple *stack_save = SSA_NAME_DEF_STMT (gimple_call_arg (call, 0)); - if (is_gimple_call (stack_save)) - { - callee = gimple_call_fndecl (stack_save); - if (callee && fndecl_built_in_p (callee, BUILT_IN_STACK_SAVE)) - { - gimple_stmt_iterator stack_save_gsi; - tree rhs; - - stack_save_gsi = gsi_for_stmt (stack_save); - rhs = build_int_cst (TREE_TYPE (gimple_call_arg (call, 0)), 0); - replace_call_with_value (&stack_save_gsi, rhs); - } - } - } - - /* No effect, so the statement will be deleted. */ - return integer_zero_node; -} - -/* If va_list type is a simple pointer and nothing special is needed, - optimize __builtin_va_start (&ap, 0) into ap = __builtin_next_arg (0), - __builtin_va_end (&ap) out as NOP and __builtin_va_copy into a simple - pointer assignment. */ - -static tree -optimize_stdarg_builtin (gimple *call) -{ - tree callee, lhs, rhs, cfun_va_list; - bool va_list_simple_ptr; - location_t loc = gimple_location (call); - - callee = gimple_call_fndecl (call); - - cfun_va_list = targetm.fn_abi_va_list (callee); - va_list_simple_ptr = POINTER_TYPE_P (cfun_va_list) - && (TREE_TYPE (cfun_va_list) == void_type_node - || TREE_TYPE (cfun_va_list) == char_type_node); - - switch (DECL_FUNCTION_CODE (callee)) - { - case BUILT_IN_VA_START: - if (!va_list_simple_ptr - || targetm.expand_builtin_va_start != NULL - || !builtin_decl_explicit_p (BUILT_IN_NEXT_ARG)) - return NULL_TREE; - - if (gimple_call_num_args (call) != 2) - return NULL_TREE; - - lhs = gimple_call_arg (call, 0); - if (!POINTER_TYPE_P (TREE_TYPE (lhs)) - || TYPE_MAIN_VARIANT (TREE_TYPE (TREE_TYPE (lhs))) - != TYPE_MAIN_VARIANT (cfun_va_list)) - return NULL_TREE; - - lhs = build_fold_indirect_ref_loc (loc, lhs); - rhs = build_call_expr_loc (loc, builtin_decl_explicit (BUILT_IN_NEXT_ARG), - 1, integer_zero_node); - rhs = fold_convert_loc (loc, TREE_TYPE (lhs), rhs); - return build2 (MODIFY_EXPR, TREE_TYPE (lhs), lhs, rhs); - - case BUILT_IN_VA_COPY: - if (!va_list_simple_ptr) - return NULL_TREE; - - if (gimple_call_num_args (call) != 2) - return NULL_TREE; - - lhs = gimple_call_arg (call, 0); - if (!POINTER_TYPE_P (TREE_TYPE (lhs)) - || TYPE_MAIN_VARIANT (TREE_TYPE (TREE_TYPE (lhs))) - != TYPE_MAIN_VARIANT (cfun_va_list)) - return NULL_TREE; - - lhs = build_fold_indirect_ref_loc (loc, lhs); - rhs = gimple_call_arg (call, 1); - if (TYPE_MAIN_VARIANT (TREE_TYPE (rhs)) - != TYPE_MAIN_VARIANT (cfun_va_list)) - return NULL_TREE; - - rhs = fold_convert_loc (loc, TREE_TYPE (lhs), rhs); - return build2 (MODIFY_EXPR, TREE_TYPE (lhs), lhs, rhs); - - case BUILT_IN_VA_END: - /* No effect, so the statement will be deleted. */ - return integer_zero_node; - - default: - gcc_unreachable (); - } -} - -/* Attemp to make the block of __builtin_unreachable I unreachable by changing - the incoming jumps. Return true if at least one jump was changed. */ - -static bool -optimize_unreachable (gimple_stmt_iterator i) -{ - basic_block bb = gsi_bb (i); - gimple_stmt_iterator gsi; - gimple *stmt; - edge_iterator ei; - edge e; - bool ret; - - if (flag_sanitize & SANITIZE_UNREACHABLE) - return false; - gsi = gsi_start_nondebug_after_labels_bb (bb); - /* Only handle the case that __builtin_unreachable is the first - statement in the block. We rely on DCE to remove stmts - without side-effects before __builtin_unreachable. */ - if (*gsi != *i) - return false; - - ret = false; - FOR_EACH_EDGE (e, ei, bb->preds) - { - gsi = gsi_last_bb (e->src); - if (gsi_end_p (gsi)) - continue; - - stmt = gsi_stmt (gsi); - if (gcond *cond_stmt = dyn_cast (stmt)) - { - if (e->flags & EDGE_TRUE_VALUE) - gimple_cond_make_false (cond_stmt); - else if (e->flags & EDGE_FALSE_VALUE) - gimple_cond_make_true (cond_stmt); - else - gcc_unreachable (); - update_stmt (cond_stmt); - } - else - { - /* Todo: handle other cases. Note that unreachable switch case - statements have already been removed. */ - continue; - } - - ret = true; - } - - return ret; -} - -/* Convert - _1 = __atomic_fetch_or_* (ptr_6, 1, _3); - _7 = ~_1; - _5 = (_Bool) _7; - to - _1 = __atomic_fetch_or_* (ptr_6, 1, _3); - _8 = _1 & 1; - _5 = _8 == 0; - and convert - _1 = __atomic_fetch_and_* (ptr_6, ~1, _3); - _7 = ~_1; - _4 = (_Bool) _7; - to - _1 = __atomic_fetch_and_* (ptr_6, ~1, _3); - _8 = _1 & 1; - _4 = (_Bool) _8; - - USE_STMT is the gimplt statement which uses the return value of - __atomic_fetch_or_*. LHS is the return value of __atomic_fetch_or_*. - MASK is the mask passed to __atomic_fetch_or_*. - */ - -static gimple * -convert_atomic_bit_not (enum internal_fn fn, gimple *use_stmt, - tree lhs, tree mask) -{ - tree and_mask; - if (fn == IFN_ATOMIC_BIT_TEST_AND_RESET) - { - /* MASK must be ~1. */ - if (!operand_equal_p (build_int_cst (TREE_TYPE (lhs), - ~HOST_WIDE_INT_1), mask, 0)) - return nullptr; - and_mask = build_int_cst (TREE_TYPE (lhs), 1); - } - else - { - /* MASK must be 1. */ - if (!operand_equal_p (build_int_cst (TREE_TYPE (lhs), 1), mask, 0)) - return nullptr; - and_mask = mask; - } - - tree use_lhs = gimple_assign_lhs (use_stmt); - - use_operand_p use_p; - gimple *use_not_stmt; - - if (!single_imm_use (use_lhs, &use_p, &use_not_stmt) - || !is_gimple_assign (use_not_stmt)) - return nullptr; - - if (!CONVERT_EXPR_CODE_P (gimple_assign_rhs_code (use_not_stmt))) - return nullptr; - - tree use_not_lhs = gimple_assign_lhs (use_not_stmt); - if (TREE_CODE (TREE_TYPE (use_not_lhs)) != BOOLEAN_TYPE) - return nullptr; - - gimple_stmt_iterator gsi; - tree var = make_ssa_name (TREE_TYPE (lhs)); - /* use_stmt need to be removed after use_nop_stmt, - so use_lhs can be released. */ - gimple *use_stmt_removal = use_stmt; - use_stmt = gimple_build_assign (var, BIT_AND_EXPR, lhs, and_mask); - gsi = gsi_for_stmt (use_not_stmt); - gsi_insert_before (&gsi, use_stmt, GSI_NEW_STMT); - lhs = gimple_assign_lhs (use_not_stmt); - gimple *g = gimple_build_assign (lhs, EQ_EXPR, var, - build_zero_cst (TREE_TYPE (mask))); - gsi_insert_after (&gsi, g, GSI_NEW_STMT); - gsi = gsi_for_stmt (use_not_stmt); - gsi_remove (&gsi, true); - gsi = gsi_for_stmt (use_stmt_removal); - gsi_remove (&gsi, true); - return use_stmt; -} - -/* match.pd function to match atomic_bit_test_and pattern which - has nop_convert: - _1 = __atomic_fetch_or_4 (&v, 1, 0); - _2 = (int) _1; - _5 = _2 & 1; - */ -extern bool gimple_nop_atomic_bit_test_and_p (tree, tree *, - tree (*) (tree)); -extern bool gimple_nop_convert (tree, tree*, tree (*) (tree)); - -/* Optimize - mask_2 = 1 << cnt_1; - _4 = __atomic_fetch_or_* (ptr_6, mask_2, _3); - _5 = _4 & mask_2; - to - _4 = .ATOMIC_BIT_TEST_AND_SET (ptr_6, cnt_1, 0, _3); - _5 = _4; - If _5 is only used in _5 != 0 or _5 == 0 comparisons, 1 - is passed instead of 0, and the builtin just returns a zero - or 1 value instead of the actual bit. - Similarly for __sync_fetch_and_or_* (without the ", _3" part - in there), and/or if mask_2 is a power of 2 constant. - Similarly for xor instead of or, use ATOMIC_BIT_TEST_AND_COMPLEMENT - in that case. And similarly for and instead of or, except that - the second argument to the builtin needs to be one's complement - of the mask instead of mask. */ - -static bool -optimize_atomic_bit_test_and (gimple_stmt_iterator *gsip, - enum internal_fn fn, bool has_model_arg, - bool after) -{ - gimple *call = gsi_stmt (*gsip); - tree lhs = gimple_call_lhs (call); - use_operand_p use_p; - gimple *use_stmt; - tree mask; - optab optab; - - if (!flag_inline_atomics - || optimize_debug - || !gimple_call_builtin_p (call, BUILT_IN_NORMAL) - || !lhs - || SSA_NAME_OCCURS_IN_ABNORMAL_PHI (lhs) - || !single_imm_use (lhs, &use_p, &use_stmt) - || !is_gimple_assign (use_stmt) - || !gimple_vdef (call)) - return false; - - switch (fn) - { - case IFN_ATOMIC_BIT_TEST_AND_SET: - optab = atomic_bit_test_and_set_optab; - break; - case IFN_ATOMIC_BIT_TEST_AND_COMPLEMENT: - optab = atomic_bit_test_and_complement_optab; - break; - case IFN_ATOMIC_BIT_TEST_AND_RESET: - optab = atomic_bit_test_and_reset_optab; - break; - default: - return false; - } - - tree bit = nullptr; - - mask = gimple_call_arg (call, 1); - tree_code rhs_code = gimple_assign_rhs_code (use_stmt); - if (rhs_code != BIT_AND_EXPR) - { - if (rhs_code != NOP_EXPR && rhs_code != BIT_NOT_EXPR) - return false; - - tree use_lhs = gimple_assign_lhs (use_stmt); - if (TREE_CODE (use_lhs) == SSA_NAME - && SSA_NAME_OCCURS_IN_ABNORMAL_PHI (use_lhs)) - return false; - - tree use_rhs = gimple_assign_rhs1 (use_stmt); - if (lhs != use_rhs) - return false; - - if (optab_handler (optab, TYPE_MODE (TREE_TYPE (lhs))) - == CODE_FOR_nothing) - return false; - - gimple *g; - gimple_stmt_iterator gsi; - tree var; - int ibit = -1; - - if (rhs_code == BIT_NOT_EXPR) - { - g = convert_atomic_bit_not (fn, use_stmt, lhs, mask); - if (!g) - return false; - use_stmt = g; - ibit = 0; - } - else if (TREE_CODE (TREE_TYPE (use_lhs)) == BOOLEAN_TYPE) - { - tree and_mask; - if (fn == IFN_ATOMIC_BIT_TEST_AND_RESET) - { - /* MASK must be ~1. */ - if (!operand_equal_p (build_int_cst (TREE_TYPE (lhs), - ~HOST_WIDE_INT_1), - mask, 0)) - return false; - - /* Convert - _1 = __atomic_fetch_and_* (ptr_6, ~1, _3); - _4 = (_Bool) _1; - to - _1 = __atomic_fetch_and_* (ptr_6, ~1, _3); - _5 = _1 & 1; - _4 = (_Bool) _5; - */ - and_mask = build_int_cst (TREE_TYPE (lhs), 1); - } - else - { - and_mask = build_int_cst (TREE_TYPE (lhs), 1); - if (!operand_equal_p (and_mask, mask, 0)) - return false; - - /* Convert - _1 = __atomic_fetch_or_* (ptr_6, 1, _3); - _4 = (_Bool) _1; - to - _1 = __atomic_fetch_or_* (ptr_6, 1, _3); - _5 = _1 & 1; - _4 = (_Bool) _5; - */ - } - var = make_ssa_name (TREE_TYPE (use_rhs)); - replace_uses_by (use_rhs, var); - g = gimple_build_assign (var, BIT_AND_EXPR, use_rhs, - and_mask); - gsi = gsi_for_stmt (use_stmt); - gsi_insert_before (&gsi, g, GSI_NEW_STMT); - use_stmt = g; - ibit = 0; - } - else if (TYPE_PRECISION (TREE_TYPE (use_lhs)) - <= TYPE_PRECISION (TREE_TYPE (use_rhs))) - { - gimple *use_nop_stmt; - if (!single_imm_use (use_lhs, &use_p, &use_nop_stmt) - || (!is_gimple_assign (use_nop_stmt) - && gimple_code (use_nop_stmt) != GIMPLE_COND)) - return false; - /* Handle both - _4 = _5 < 0; - and - if (_5 < 0) - */ - tree use_nop_lhs = nullptr; - rhs_code = ERROR_MARK; - if (is_gimple_assign (use_nop_stmt)) - { - use_nop_lhs = gimple_assign_lhs (use_nop_stmt); - rhs_code = gimple_assign_rhs_code (use_nop_stmt); - } - if (!use_nop_lhs || rhs_code != BIT_AND_EXPR) - { - /* Also handle - if (_5 < 0) - */ - if (use_nop_lhs - && TREE_CODE (use_nop_lhs) == SSA_NAME - && SSA_NAME_OCCURS_IN_ABNORMAL_PHI (use_nop_lhs)) - return false; - if (use_nop_lhs && rhs_code == BIT_NOT_EXPR) - { - /* Handle - _7 = ~_2; - */ - g = convert_atomic_bit_not (fn, use_nop_stmt, lhs, - mask); - if (!g) - return false; - /* Convert - _1 = __atomic_fetch_or_4 (ptr_6, 1, _3); - _2 = (int) _1; - _7 = ~_2; - _5 = (_Bool) _7; - to - _1 = __atomic_fetch_or_4 (ptr_6, ~1, _3); - _8 = _1 & 1; - _5 = _8 == 0; - and convert - _1 = __atomic_fetch_and_4 (ptr_6, ~1, _3); - _2 = (int) _1; - _7 = ~_2; - _5 = (_Bool) _7; - to - _1 = __atomic_fetch_and_4 (ptr_6, 1, _3); - _8 = _1 & 1; - _5 = _8 == 0; - */ - gsi = gsi_for_stmt (use_stmt); - gsi_remove (&gsi, true); - use_stmt = g; - ibit = 0; - } - else - { - tree cmp_rhs1, cmp_rhs2; - if (use_nop_lhs) - { - /* Handle - _4 = _5 < 0; - */ - if (TREE_CODE (TREE_TYPE (use_nop_lhs)) - != BOOLEAN_TYPE) - return false; - cmp_rhs1 = gimple_assign_rhs1 (use_nop_stmt); - cmp_rhs2 = gimple_assign_rhs2 (use_nop_stmt); - } - else - { - /* Handle - if (_5 < 0) - */ - rhs_code = gimple_cond_code (use_nop_stmt); - cmp_rhs1 = gimple_cond_lhs (use_nop_stmt); - cmp_rhs2 = gimple_cond_rhs (use_nop_stmt); - } - if (rhs_code != GE_EXPR && rhs_code != LT_EXPR) - return false; - if (use_lhs != cmp_rhs1) - return false; - if (!integer_zerop (cmp_rhs2)) - return false; - - tree and_mask; - - unsigned HOST_WIDE_INT bytes - = tree_to_uhwi (TYPE_SIZE_UNIT (TREE_TYPE (use_rhs))); - ibit = bytes * BITS_PER_UNIT - 1; - unsigned HOST_WIDE_INT highest - = HOST_WIDE_INT_1U << ibit; - - if (fn == IFN_ATOMIC_BIT_TEST_AND_RESET) - { - /* Get the signed maximum of the USE_RHS type. */ - and_mask = build_int_cst (TREE_TYPE (use_rhs), - highest - 1); - if (!operand_equal_p (and_mask, mask, 0)) - return false; - - /* Convert - _1 = __atomic_fetch_and_4 (ptr_6, 0x7fffffff, _3); - _5 = (signed int) _1; - _4 = _5 < 0 or _5 >= 0; - to - _1 = __atomic_fetch_and_4 (ptr_6, 0x7fffffff, _3); - _6 = _1 & 0x80000000; - _4 = _6 != 0 or _6 == 0; - and convert - _1 = __atomic_fetch_and_4 (ptr_6, 0x7fffffff, _3); - _5 = (signed int) _1; - if (_5 < 0 or _5 >= 0) - to - _1 = __atomic_fetch_and_4 (ptr_6, 0x7fffffff, _3); - _6 = _1 & 0x80000000; - if (_6 != 0 or _6 == 0) - */ - and_mask = build_int_cst (TREE_TYPE (use_rhs), - highest); - } - else - { - /* Get the signed minimum of the USE_RHS type. */ - and_mask = build_int_cst (TREE_TYPE (use_rhs), - highest); - if (!operand_equal_p (and_mask, mask, 0)) - return false; - - /* Convert - _1 = __atomic_fetch_or_4 (ptr_6, 0x80000000, _3); - _5 = (signed int) _1; - _4 = _5 < 0 or _5 >= 0; - to - _1 = __atomic_fetch_or_4 (ptr_6, 0x80000000, _3); - _6 = _1 & 0x80000000; - _4 = _6 != 0 or _6 == 0; - and convert - _1 = __atomic_fetch_or_4 (ptr_6, 0x80000000, _3); - _5 = (signed int) _1; - if (_5 < 0 or _5 >= 0) - to - _1 = __atomic_fetch_or_4 (ptr_6, 0x80000000, _3); - _6 = _1 & 0x80000000; - if (_6 != 0 or _6 == 0) - */ - } - var = make_ssa_name (TREE_TYPE (use_rhs)); - gimple* use_stmt_removal = use_stmt; - g = gimple_build_assign (var, BIT_AND_EXPR, use_rhs, - and_mask); - gsi = gsi_for_stmt (use_nop_stmt); - gsi_insert_before (&gsi, g, GSI_NEW_STMT); - use_stmt = g; - rhs_code = rhs_code == GE_EXPR ? EQ_EXPR : NE_EXPR; - tree const_zero = build_zero_cst (TREE_TYPE (use_rhs)); - if (use_nop_lhs) - g = gimple_build_assign (use_nop_lhs, rhs_code, - var, const_zero); - else - g = gimple_build_cond (rhs_code, var, const_zero, - nullptr, nullptr); - gsi_insert_after (&gsi, g, GSI_NEW_STMT); - gsi = gsi_for_stmt (use_nop_stmt); - gsi_remove (&gsi, true); - gsi = gsi_for_stmt (use_stmt_removal); - gsi_remove (&gsi, true); - } - } - else - { - tree match_op[3]; - gimple *g; - if (!gimple_nop_atomic_bit_test_and_p (use_nop_lhs, - &match_op[0], NULL) - || SSA_NAME_OCCURS_IN_ABNORMAL_PHI (match_op[2]) - || !single_imm_use (match_op[2], &use_p, &g) - || !is_gimple_assign (g)) - return false; - mask = match_op[0]; - if (TREE_CODE (match_op[1]) == INTEGER_CST) - { - ibit = tree_log2 (match_op[1]); - gcc_assert (ibit >= 0); - } - else - { - g = SSA_NAME_DEF_STMT (match_op[1]); - gcc_assert (is_gimple_assign (g)); - bit = gimple_assign_rhs2 (g); - } - /* Convert - _1 = __atomic_fetch_or_4 (ptr_6, mask, _3); - _2 = (int) _1; - _5 = _2 & mask; - to - _1 = __atomic_fetch_or_4 (ptr_6, mask, _3); - _6 = _1 & mask; - _5 = (int) _6; - and convert - _1 = ~mask_7; - _2 = (unsigned int) _1; - _3 = __atomic_fetch_and_4 (ptr_6, _2, 0); - _4 = (int) _3; - _5 = _4 & mask_7; - to - _1 = __atomic_fetch_and_* (ptr_6, ~mask_7, _3); - _12 = _3 & mask_7; - _5 = (int) _12; - - and Convert - _1 = __atomic_fetch_and_4 (ptr_6, ~mask, _3); - _2 = (short int) _1; - _5 = _2 & mask; - to - _1 = __atomic_fetch_and_4 (ptr_6, ~mask, _3); - _8 = _1 & mask; - _5 = (short int) _8; - */ - gimple_seq stmts = NULL; - match_op[1] = gimple_convert (&stmts, - TREE_TYPE (use_rhs), - match_op[1]); - var = gimple_build (&stmts, BIT_AND_EXPR, - TREE_TYPE (use_rhs), use_rhs, match_op[1]); - gsi = gsi_for_stmt (use_stmt); - gsi_remove (&gsi, true); - release_defs (use_stmt); - use_stmt = gimple_seq_last_stmt (stmts); - gsi = gsi_for_stmt (use_nop_stmt); - gsi_insert_seq_before (&gsi, stmts, GSI_SAME_STMT); - gimple_assign_set_rhs_with_ops (&gsi, CONVERT_EXPR, var); - update_stmt (use_nop_stmt); - } - } - else - return false; - - if (!bit) - { - if (ibit < 0) - gcc_unreachable (); - bit = build_int_cst (TREE_TYPE (lhs), ibit); - } - } - else if (optab_handler (optab, TYPE_MODE (TREE_TYPE (lhs))) - == CODE_FOR_nothing) - return false; - - tree use_lhs = gimple_assign_lhs (use_stmt); - if (!use_lhs) - return false; - - if (!bit) - { - if (TREE_CODE (mask) == INTEGER_CST) - { - if (fn == IFN_ATOMIC_BIT_TEST_AND_RESET) - mask = const_unop (BIT_NOT_EXPR, TREE_TYPE (mask), mask); - mask = fold_convert (TREE_TYPE (lhs), mask); - int ibit = tree_log2 (mask); - if (ibit < 0) - return false; - bit = build_int_cst (TREE_TYPE (lhs), ibit); - } - else if (TREE_CODE (mask) == SSA_NAME) - { - gimple *g = SSA_NAME_DEF_STMT (mask); - tree match_op; - if (gimple_nop_convert (mask, &match_op, NULL)) - { - mask = match_op; - if (TREE_CODE (mask) != SSA_NAME) - return false; - g = SSA_NAME_DEF_STMT (mask); - } - if (!is_gimple_assign (g)) - return false; - - if (fn == IFN_ATOMIC_BIT_TEST_AND_RESET) - { - if (gimple_assign_rhs_code (g) != BIT_NOT_EXPR) - return false; - mask = gimple_assign_rhs1 (g); - if (TREE_CODE (mask) != SSA_NAME) - return false; - g = SSA_NAME_DEF_STMT (mask); - } - - if (!is_gimple_assign (g) - || gimple_assign_rhs_code (g) != LSHIFT_EXPR - || !integer_onep (gimple_assign_rhs1 (g))) - return false; - bit = gimple_assign_rhs2 (g); - } - else - return false; - - tree cmp_mask; - if (gimple_assign_rhs1 (use_stmt) == lhs) - cmp_mask = gimple_assign_rhs2 (use_stmt); - else - cmp_mask = gimple_assign_rhs1 (use_stmt); - - tree match_op; - if (gimple_nop_convert (cmp_mask, &match_op, NULL)) - cmp_mask = match_op; - - if (!operand_equal_p (cmp_mask, mask, 0)) - return false; - } - - bool use_bool = true; - bool has_debug_uses = false; - imm_use_iterator iter; - gimple *g; - - if (SSA_NAME_OCCURS_IN_ABNORMAL_PHI (use_lhs)) - use_bool = false; - FOR_EACH_IMM_USE_STMT (g, iter, use_lhs) - { - enum tree_code code = ERROR_MARK; - tree op0 = NULL_TREE, op1 = NULL_TREE; - if (is_gimple_debug (g)) - { - has_debug_uses = true; - continue; - } - else if (is_gimple_assign (g)) - switch (gimple_assign_rhs_code (g)) - { - case COND_EXPR: - op1 = gimple_assign_rhs1 (g); - code = TREE_CODE (op1); - if (TREE_CODE_CLASS (code) != tcc_comparison) - break; - op0 = TREE_OPERAND (op1, 0); - op1 = TREE_OPERAND (op1, 1); - break; - case EQ_EXPR: - case NE_EXPR: - code = gimple_assign_rhs_code (g); - op0 = gimple_assign_rhs1 (g); - op1 = gimple_assign_rhs2 (g); - break; - default: - break; - } - else if (gimple_code (g) == GIMPLE_COND) - { - code = gimple_cond_code (g); - op0 = gimple_cond_lhs (g); - op1 = gimple_cond_rhs (g); - } - - if ((code == EQ_EXPR || code == NE_EXPR) - && op0 == use_lhs - && integer_zerop (op1)) - { - use_operand_p use_p; - int n = 0; - FOR_EACH_IMM_USE_ON_STMT (use_p, iter) - n++; - if (n == 1) - continue; - } - - use_bool = false; - break; - } - - tree new_lhs = make_ssa_name (TREE_TYPE (lhs)); - tree flag = build_int_cst (TREE_TYPE (lhs), use_bool); - if (has_model_arg) - g = gimple_build_call_internal (fn, 5, gimple_call_arg (call, 0), - bit, flag, gimple_call_arg (call, 2), - gimple_call_fn (call)); - else - g = gimple_build_call_internal (fn, 4, gimple_call_arg (call, 0), - bit, flag, gimple_call_fn (call)); - gimple_call_set_lhs (g, new_lhs); - gimple_set_location (g, gimple_location (call)); - gimple_move_vops (g, call); - bool throws = stmt_can_throw_internal (cfun, call); - gimple_call_set_nothrow (as_a (g), - gimple_call_nothrow_p (as_a (call))); - gimple_stmt_iterator gsi = *gsip; - gsi_insert_after (&gsi, g, GSI_NEW_STMT); - edge e = NULL; - if (throws) - { - maybe_clean_or_replace_eh_stmt (call, g); - if (after || (use_bool && has_debug_uses)) - e = find_fallthru_edge (gsi_bb (gsi)->succs); - } - if (after) - { - /* The internal function returns the value of the specified bit - before the atomic operation. If we are interested in the value - of the specified bit after the atomic operation (makes only sense - for xor, otherwise the bit content is compile time known), - we need to invert the bit. */ - tree mask_convert = mask; - gimple_seq stmts = NULL; - if (!use_bool) - mask_convert = gimple_convert (&stmts, TREE_TYPE (lhs), mask); - new_lhs = gimple_build (&stmts, BIT_XOR_EXPR, TREE_TYPE (lhs), new_lhs, - use_bool ? build_int_cst (TREE_TYPE (lhs), 1) - : mask_convert); - if (throws) - { - gsi_insert_seq_on_edge_immediate (e, stmts); - gsi = gsi_for_stmt (gimple_seq_last (stmts)); - } - else - gsi_insert_seq_after (&gsi, stmts, GSI_NEW_STMT); - } - if (use_bool && has_debug_uses) - { - tree temp = NULL_TREE; - if (!throws || after || single_pred_p (e->dest)) - { - temp = build_debug_expr_decl (TREE_TYPE (lhs)); - tree t = build2 (LSHIFT_EXPR, TREE_TYPE (lhs), new_lhs, bit); - g = gimple_build_debug_bind (temp, t, g); - if (throws && !after) - { - gsi = gsi_after_labels (e->dest); - gsi_insert_before (&gsi, g, GSI_SAME_STMT); - } - else - gsi_insert_after (&gsi, g, GSI_NEW_STMT); - } - FOR_EACH_IMM_USE_STMT (g, iter, use_lhs) - if (is_gimple_debug (g)) - { - use_operand_p use_p; - if (temp == NULL_TREE) - gimple_debug_bind_reset_value (g); - else - FOR_EACH_IMM_USE_ON_STMT (use_p, iter) - SET_USE (use_p, temp); - update_stmt (g); - } - } - SSA_NAME_OCCURS_IN_ABNORMAL_PHI (new_lhs) - = SSA_NAME_OCCURS_IN_ABNORMAL_PHI (use_lhs); - replace_uses_by (use_lhs, new_lhs); - gsi = gsi_for_stmt (use_stmt); - gsi_remove (&gsi, true); - release_defs (use_stmt); - gsi_remove (gsip, true); - release_ssa_name (lhs); - return true; -} - -/* Optimize - _4 = __atomic_add_fetch_* (ptr_6, arg_2, _3); - _5 = _4 == 0; - to - _4 = .ATOMIC_ADD_FETCH_CMP_0 (EQ_EXPR, ptr_6, arg_2, _3); - _5 = _4; - Similarly for __sync_add_and_fetch_* (without the ", _3" part - in there). */ - -static bool -optimize_atomic_op_fetch_cmp_0 (gimple_stmt_iterator *gsip, - enum internal_fn fn, bool has_model_arg) -{ - gimple *call = gsi_stmt (*gsip); - tree lhs = gimple_call_lhs (call); - use_operand_p use_p; - gimple *use_stmt; - - if (!flag_inline_atomics - || optimize_debug - || !gimple_call_builtin_p (call, BUILT_IN_NORMAL) - || !lhs - || SSA_NAME_OCCURS_IN_ABNORMAL_PHI (lhs) - || !single_imm_use (lhs, &use_p, &use_stmt) - || !gimple_vdef (call)) - return false; - - optab optab; - switch (fn) - { - case IFN_ATOMIC_ADD_FETCH_CMP_0: - optab = atomic_add_fetch_cmp_0_optab; - break; - case IFN_ATOMIC_SUB_FETCH_CMP_0: - optab = atomic_sub_fetch_cmp_0_optab; - break; - case IFN_ATOMIC_AND_FETCH_CMP_0: - optab = atomic_and_fetch_cmp_0_optab; - break; - case IFN_ATOMIC_OR_FETCH_CMP_0: - optab = atomic_or_fetch_cmp_0_optab; - break; - case IFN_ATOMIC_XOR_FETCH_CMP_0: - optab = atomic_xor_fetch_cmp_0_optab; - break; - default: - return false; - } - - if (optab_handler (optab, TYPE_MODE (TREE_TYPE (lhs))) - == CODE_FOR_nothing) - return false; - - tree use_lhs = lhs; - if (gimple_assign_cast_p (use_stmt)) - { - use_lhs = gimple_assign_lhs (use_stmt); - if (!tree_nop_conversion_p (TREE_TYPE (use_lhs), TREE_TYPE (lhs)) - || (!INTEGRAL_TYPE_P (TREE_TYPE (use_lhs)) - && !POINTER_TYPE_P (TREE_TYPE (use_lhs))) - || SSA_NAME_OCCURS_IN_ABNORMAL_PHI (use_lhs) - || !single_imm_use (use_lhs, &use_p, &use_stmt)) - return false; - } - enum tree_code code = ERROR_MARK; - tree op0 = NULL_TREE, op1 = NULL_TREE; - if (is_gimple_assign (use_stmt)) - switch (gimple_assign_rhs_code (use_stmt)) - { - case COND_EXPR: - op1 = gimple_assign_rhs1 (use_stmt); - code = TREE_CODE (op1); - if (TREE_CODE_CLASS (code) == tcc_comparison) - { - op0 = TREE_OPERAND (op1, 0); - op1 = TREE_OPERAND (op1, 1); - } - break; - default: - code = gimple_assign_rhs_code (use_stmt); - if (TREE_CODE_CLASS (code) == tcc_comparison) - { - op0 = gimple_assign_rhs1 (use_stmt); - op1 = gimple_assign_rhs2 (use_stmt); - } - break; - } - else if (gimple_code (use_stmt) == GIMPLE_COND) - { - code = gimple_cond_code (use_stmt); - op0 = gimple_cond_lhs (use_stmt); - op1 = gimple_cond_rhs (use_stmt); - } - - switch (code) - { - case LT_EXPR: - case LE_EXPR: - case GT_EXPR: - case GE_EXPR: - if (!INTEGRAL_TYPE_P (TREE_TYPE (use_lhs)) - || TREE_CODE (TREE_TYPE (use_lhs)) == BOOLEAN_TYPE - || TYPE_UNSIGNED (TREE_TYPE (use_lhs))) - return false; - /* FALLTHRU */ - case EQ_EXPR: - case NE_EXPR: - if (op0 == use_lhs && integer_zerop (op1)) - break; - return false; - default: - return false; - } - - int encoded; - switch (code) - { - /* Use special encoding of the operation. We want to also - encode the mode in the first argument and for neither EQ_EXPR - etc. nor EQ etc. we can rely it will fit into QImode. */ - case EQ_EXPR: encoded = ATOMIC_OP_FETCH_CMP_0_EQ; break; - case NE_EXPR: encoded = ATOMIC_OP_FETCH_CMP_0_NE; break; - case LT_EXPR: encoded = ATOMIC_OP_FETCH_CMP_0_LT; break; - case LE_EXPR: encoded = ATOMIC_OP_FETCH_CMP_0_LE; break; - case GT_EXPR: encoded = ATOMIC_OP_FETCH_CMP_0_GT; break; - case GE_EXPR: encoded = ATOMIC_OP_FETCH_CMP_0_GE; break; - default: gcc_unreachable (); - } - - tree new_lhs = make_ssa_name (boolean_type_node); - gimple *g; - tree flag = build_int_cst (TREE_TYPE (lhs), encoded); - if (has_model_arg) - g = gimple_build_call_internal (fn, 5, flag, - gimple_call_arg (call, 0), - gimple_call_arg (call, 1), - gimple_call_arg (call, 2), - gimple_call_fn (call)); - else - g = gimple_build_call_internal (fn, 4, flag, - gimple_call_arg (call, 0), - gimple_call_arg (call, 1), - gimple_call_fn (call)); - gimple_call_set_lhs (g, new_lhs); - gimple_set_location (g, gimple_location (call)); - gimple_move_vops (g, call); - bool throws = stmt_can_throw_internal (cfun, call); - gimple_call_set_nothrow (as_a (g), - gimple_call_nothrow_p (as_a (call))); - gimple_stmt_iterator gsi = *gsip; - gsi_insert_after (&gsi, g, GSI_SAME_STMT); - if (throws) - maybe_clean_or_replace_eh_stmt (call, g); - if (is_gimple_assign (use_stmt)) - switch (gimple_assign_rhs_code (use_stmt)) - { - case COND_EXPR: - gimple_assign_set_rhs1 (use_stmt, new_lhs); - break; - default: - gsi = gsi_for_stmt (use_stmt); - if (tree ulhs = gimple_assign_lhs (use_stmt)) - if (useless_type_conversion_p (TREE_TYPE (ulhs), - boolean_type_node)) - { - gimple_assign_set_rhs_with_ops (&gsi, SSA_NAME, new_lhs); - break; - } - gimple_assign_set_rhs_with_ops (&gsi, NOP_EXPR, new_lhs); - break; - } - else if (gimple_code (use_stmt) == GIMPLE_COND) - { - gcond *use_cond = as_a (use_stmt); - gimple_cond_set_code (use_cond, NE_EXPR); - gimple_cond_set_lhs (use_cond, new_lhs); - gimple_cond_set_rhs (use_cond, boolean_false_node); - } - - update_stmt (use_stmt); - if (use_lhs != lhs) - { - gsi = gsi_for_stmt (SSA_NAME_DEF_STMT (use_lhs)); - gsi_remove (&gsi, true); - release_ssa_name (use_lhs); - } - gsi_remove (gsip, true); - release_ssa_name (lhs); - return true; -} - -/* A simple pass that attempts to fold all builtin functions. This pass - is run after we've propagated as many constants as we can. */ - -namespace { - -const pass_data pass_data_fold_builtins = -{ - GIMPLE_PASS, /* type */ - "fab", /* name */ - OPTGROUP_NONE, /* optinfo_flags */ - TV_NONE, /* tv_id */ - ( PROP_cfg | PROP_ssa ), /* properties_required */ - 0, /* properties_provided */ - 0, /* properties_destroyed */ - 0, /* todo_flags_start */ - TODO_update_ssa, /* todo_flags_finish */ -}; - -class pass_fold_builtins : public gimple_opt_pass -{ -public: - pass_fold_builtins (gcc::context *ctxt) - : gimple_opt_pass (pass_data_fold_builtins, ctxt) - {} - - /* opt_pass methods: */ - opt_pass * clone () final override { return new pass_fold_builtins (m_ctxt); } - unsigned int execute (function *) final override; - -}; // class pass_fold_builtins - -/* Optimize memcmp STMT into memcmp_eq if it is only used with - `== 0` or `!= 0`. */ - -static void -optimize_memcmp_eq (gcall *stmt) -{ - /* Make sure memcmp arguments are the correct type. */ - if (gimple_call_num_args (stmt) != 3) - return; - tree arg1 = gimple_call_arg (stmt, 0); - tree arg2 = gimple_call_arg (stmt, 1); - tree len = gimple_call_arg (stmt, 2); - - if (!POINTER_TYPE_P (TREE_TYPE (arg1))) - return; - if (!POINTER_TYPE_P (TREE_TYPE (arg2))) - return; - if (!INTEGRAL_TYPE_P (TREE_TYPE (len))) - return; - /* The return value of the memcmp has to be used - equality comparison to zero. */ - tree res = gimple_call_lhs (stmt); - - if (!res || !use_in_zero_equality (res)) - return; - - gimple_call_set_fndecl (stmt, builtin_decl_explicit (BUILT_IN_MEMCMP_EQ)); - update_stmt (stmt); -} - -unsigned int -pass_fold_builtins::execute (function *fun) -{ - bool cfg_changed = false; - basic_block bb; - unsigned int todoflags = 0; - - /* Set last full fold prop if not already set. */ - fun->curr_properties |= PROP_last_full_fold; - - FOR_EACH_BB_FN (bb, fun) - { - gimple_stmt_iterator i; - for (i = gsi_start_bb (bb); !gsi_end_p (i); ) - { - gimple *stmt, *old_stmt; - tree callee; - enum built_in_function fcode; - - stmt = gsi_stmt (i); - - if (gimple_code (stmt) != GIMPLE_CALL) - { - gsi_next (&i); - continue; - } - - callee = gimple_call_fndecl (stmt); - if (!callee - && gimple_call_internal_p (stmt, IFN_ASSUME)) - { - gsi_remove (&i, true); - continue; - } - if (!callee || !fndecl_built_in_p (callee, BUILT_IN_NORMAL)) - { - gsi_next (&i); - continue; - } - - fcode = DECL_FUNCTION_CODE (callee); - if (fold_stmt (&i)) - ; - else - { - tree result = NULL_TREE; - switch (DECL_FUNCTION_CODE (callee)) - { - - case BUILT_IN_STACK_RESTORE: - result = optimize_stack_restore (i); - if (result) - break; - gsi_next (&i); - continue; - - case BUILT_IN_MEMCMP: - optimize_memcmp_eq (as_a(stmt)); - break; - - case BUILT_IN_UNREACHABLE: - if (optimize_unreachable (i)) - cfg_changed = true; - break; - - case BUILT_IN_ATOMIC_ADD_FETCH_1: - case BUILT_IN_ATOMIC_ADD_FETCH_2: - case BUILT_IN_ATOMIC_ADD_FETCH_4: - case BUILT_IN_ATOMIC_ADD_FETCH_8: - case BUILT_IN_ATOMIC_ADD_FETCH_16: - optimize_atomic_op_fetch_cmp_0 (&i, - IFN_ATOMIC_ADD_FETCH_CMP_0, - true); - break; - case BUILT_IN_SYNC_ADD_AND_FETCH_1: - case BUILT_IN_SYNC_ADD_AND_FETCH_2: - case BUILT_IN_SYNC_ADD_AND_FETCH_4: - case BUILT_IN_SYNC_ADD_AND_FETCH_8: - case BUILT_IN_SYNC_ADD_AND_FETCH_16: - optimize_atomic_op_fetch_cmp_0 (&i, - IFN_ATOMIC_ADD_FETCH_CMP_0, - false); - break; - - case BUILT_IN_ATOMIC_SUB_FETCH_1: - case BUILT_IN_ATOMIC_SUB_FETCH_2: - case BUILT_IN_ATOMIC_SUB_FETCH_4: - case BUILT_IN_ATOMIC_SUB_FETCH_8: - case BUILT_IN_ATOMIC_SUB_FETCH_16: - optimize_atomic_op_fetch_cmp_0 (&i, - IFN_ATOMIC_SUB_FETCH_CMP_0, - true); - break; - case BUILT_IN_SYNC_SUB_AND_FETCH_1: - case BUILT_IN_SYNC_SUB_AND_FETCH_2: - case BUILT_IN_SYNC_SUB_AND_FETCH_4: - case BUILT_IN_SYNC_SUB_AND_FETCH_8: - case BUILT_IN_SYNC_SUB_AND_FETCH_16: - optimize_atomic_op_fetch_cmp_0 (&i, - IFN_ATOMIC_SUB_FETCH_CMP_0, - false); - break; - - case BUILT_IN_ATOMIC_FETCH_OR_1: - case BUILT_IN_ATOMIC_FETCH_OR_2: - case BUILT_IN_ATOMIC_FETCH_OR_4: - case BUILT_IN_ATOMIC_FETCH_OR_8: - case BUILT_IN_ATOMIC_FETCH_OR_16: - optimize_atomic_bit_test_and (&i, - IFN_ATOMIC_BIT_TEST_AND_SET, - true, false); - break; - case BUILT_IN_SYNC_FETCH_AND_OR_1: - case BUILT_IN_SYNC_FETCH_AND_OR_2: - case BUILT_IN_SYNC_FETCH_AND_OR_4: - case BUILT_IN_SYNC_FETCH_AND_OR_8: - case BUILT_IN_SYNC_FETCH_AND_OR_16: - optimize_atomic_bit_test_and (&i, - IFN_ATOMIC_BIT_TEST_AND_SET, - false, false); - break; - - case BUILT_IN_ATOMIC_FETCH_XOR_1: - case BUILT_IN_ATOMIC_FETCH_XOR_2: - case BUILT_IN_ATOMIC_FETCH_XOR_4: - case BUILT_IN_ATOMIC_FETCH_XOR_8: - case BUILT_IN_ATOMIC_FETCH_XOR_16: - optimize_atomic_bit_test_and - (&i, IFN_ATOMIC_BIT_TEST_AND_COMPLEMENT, true, false); - break; - case BUILT_IN_SYNC_FETCH_AND_XOR_1: - case BUILT_IN_SYNC_FETCH_AND_XOR_2: - case BUILT_IN_SYNC_FETCH_AND_XOR_4: - case BUILT_IN_SYNC_FETCH_AND_XOR_8: - case BUILT_IN_SYNC_FETCH_AND_XOR_16: - optimize_atomic_bit_test_and - (&i, IFN_ATOMIC_BIT_TEST_AND_COMPLEMENT, false, false); - break; - - case BUILT_IN_ATOMIC_XOR_FETCH_1: - case BUILT_IN_ATOMIC_XOR_FETCH_2: - case BUILT_IN_ATOMIC_XOR_FETCH_4: - case BUILT_IN_ATOMIC_XOR_FETCH_8: - case BUILT_IN_ATOMIC_XOR_FETCH_16: - if (optimize_atomic_bit_test_and - (&i, IFN_ATOMIC_BIT_TEST_AND_COMPLEMENT, true, true)) - break; - optimize_atomic_op_fetch_cmp_0 (&i, - IFN_ATOMIC_XOR_FETCH_CMP_0, - true); - break; - case BUILT_IN_SYNC_XOR_AND_FETCH_1: - case BUILT_IN_SYNC_XOR_AND_FETCH_2: - case BUILT_IN_SYNC_XOR_AND_FETCH_4: - case BUILT_IN_SYNC_XOR_AND_FETCH_8: - case BUILT_IN_SYNC_XOR_AND_FETCH_16: - if (optimize_atomic_bit_test_and - (&i, IFN_ATOMIC_BIT_TEST_AND_COMPLEMENT, false, true)) - break; - optimize_atomic_op_fetch_cmp_0 (&i, - IFN_ATOMIC_XOR_FETCH_CMP_0, - false); - break; - - case BUILT_IN_ATOMIC_FETCH_AND_1: - case BUILT_IN_ATOMIC_FETCH_AND_2: - case BUILT_IN_ATOMIC_FETCH_AND_4: - case BUILT_IN_ATOMIC_FETCH_AND_8: - case BUILT_IN_ATOMIC_FETCH_AND_16: - optimize_atomic_bit_test_and (&i, - IFN_ATOMIC_BIT_TEST_AND_RESET, - true, false); - break; - case BUILT_IN_SYNC_FETCH_AND_AND_1: - case BUILT_IN_SYNC_FETCH_AND_AND_2: - case BUILT_IN_SYNC_FETCH_AND_AND_4: - case BUILT_IN_SYNC_FETCH_AND_AND_8: - case BUILT_IN_SYNC_FETCH_AND_AND_16: - optimize_atomic_bit_test_and (&i, - IFN_ATOMIC_BIT_TEST_AND_RESET, - false, false); - break; - - case BUILT_IN_ATOMIC_AND_FETCH_1: - case BUILT_IN_ATOMIC_AND_FETCH_2: - case BUILT_IN_ATOMIC_AND_FETCH_4: - case BUILT_IN_ATOMIC_AND_FETCH_8: - case BUILT_IN_ATOMIC_AND_FETCH_16: - optimize_atomic_op_fetch_cmp_0 (&i, - IFN_ATOMIC_AND_FETCH_CMP_0, - true); - break; - case BUILT_IN_SYNC_AND_AND_FETCH_1: - case BUILT_IN_SYNC_AND_AND_FETCH_2: - case BUILT_IN_SYNC_AND_AND_FETCH_4: - case BUILT_IN_SYNC_AND_AND_FETCH_8: - case BUILT_IN_SYNC_AND_AND_FETCH_16: - optimize_atomic_op_fetch_cmp_0 (&i, - IFN_ATOMIC_AND_FETCH_CMP_0, - false); - break; - - case BUILT_IN_ATOMIC_OR_FETCH_1: - case BUILT_IN_ATOMIC_OR_FETCH_2: - case BUILT_IN_ATOMIC_OR_FETCH_4: - case BUILT_IN_ATOMIC_OR_FETCH_8: - case BUILT_IN_ATOMIC_OR_FETCH_16: - optimize_atomic_op_fetch_cmp_0 (&i, - IFN_ATOMIC_OR_FETCH_CMP_0, - true); - break; - case BUILT_IN_SYNC_OR_AND_FETCH_1: - case BUILT_IN_SYNC_OR_AND_FETCH_2: - case BUILT_IN_SYNC_OR_AND_FETCH_4: - case BUILT_IN_SYNC_OR_AND_FETCH_8: - case BUILT_IN_SYNC_OR_AND_FETCH_16: - optimize_atomic_op_fetch_cmp_0 (&i, - IFN_ATOMIC_OR_FETCH_CMP_0, - false); - break; - - case BUILT_IN_VA_START: - case BUILT_IN_VA_END: - case BUILT_IN_VA_COPY: - /* These shouldn't be folded before pass_stdarg. */ - result = optimize_stdarg_builtin (stmt); - break; - - default:; - } - - if (!result) - { - gsi_next (&i); - continue; - } - - gimplify_and_update_call_from_tree (&i, result); - } - - todoflags |= TODO_update_address_taken; - - if (dump_file && (dump_flags & TDF_DETAILS)) - { - fprintf (dump_file, "Simplified\n "); - print_gimple_stmt (dump_file, stmt, 0, dump_flags); - } - - old_stmt = stmt; - stmt = gsi_stmt (i); - update_stmt (stmt); - - if (maybe_clean_or_replace_eh_stmt (old_stmt, stmt) - && gimple_purge_dead_eh_edges (bb)) - cfg_changed = true; - - if (dump_file && (dump_flags & TDF_DETAILS)) - { - fprintf (dump_file, "to\n "); - print_gimple_stmt (dump_file, stmt, 0, dump_flags); - fprintf (dump_file, "\n"); - } - - /* Retry the same statement if it changed into another - builtin, there might be new opportunities now. */ - if (gimple_code (stmt) != GIMPLE_CALL) - { - gsi_next (&i); - continue; - } - callee = gimple_call_fndecl (stmt); - if (!callee - || !fndecl_built_in_p (callee, fcode)) - gsi_next (&i); - } - } - - /* Delete unreachable blocks. */ - if (cfg_changed) - todoflags |= TODO_cleanup_cfg; - - return todoflags; -} - -} // anon namespace - -gimple_opt_pass * -make_pass_fold_builtins (gcc::context *ctxt) -{ - return new pass_fold_builtins (ctxt); -} - /* A simple pass that emits some warnings post IPA. */ namespace { diff --git a/gcc/tree-ssa-dce.cc b/gcc/tree-ssa-dce.cc index ba9cd6536aeb..438690883226 100644 --- a/gcc/tree-ssa-dce.cc +++ b/gcc/tree-ssa-dce.cc @@ -1457,6 +1457,70 @@ control_parents_preserved_p (basic_block bb) return true; } +/* If basic block is empty, we can remove conditionals that controls + its execution. However in some cases the empty BB can stay live + (such as when it was a header of empty loop). In this case we + need to update its count. Since regions of dead BBs are acyclic + we simply propagate counts forward from live BBs to dead ones. */ + +static void +propagate_counts () +{ + basic_block bb; + auto_vec queue; + hash_map cnt; + + FOR_EACH_BB_FN (bb, cfun) + if (!bitmap_bit_p (bb_contains_live_stmts, bb->index)) + { + int n = 0; + for (edge e : bb->preds) + if (e->src != ENTRY_BLOCK_PTR_FOR_FN (cfun) + && !bitmap_bit_p (bb_contains_live_stmts, e->src->index)) + n++; + if (!n) + queue.safe_push (bb); + cnt.put (bb, n); + } + while (!queue.is_empty ()) + { + basic_block bb = queue.pop (); + profile_count sum = profile_count::zero (); + + for (edge e : bb->preds) + { + sum += e->count (); + gcc_checking_assert (!cnt.get (e->src)); + } + /* If we have partial profile and some counts of incomming edges are + unknown, it is probably better to keep the existing count. + We could also propagate bi-directionally. */ + if (sum.initialized_p () && !(sum == bb->count)) + { + if (dump_file && (dump_flags & TDF_DETAILS)) + { + fprintf (dump_file, "Updating count of empty bb %i from ", + bb->index); + bb->count.dump (dump_file); + fprintf (dump_file, " to "); + sum.dump (dump_file); + fprintf (dump_file, "\n"); + } + bb->count = sum; + } + cnt.remove (bb); + for (edge e : bb->succs) + if (int *n = cnt.get (e->dest)) + { + (*n)--; + if (!*n) + queue.safe_push (e->dest); + } + } + /* Do not check that all blocks has been processed, since for + empty infinite loops this is not the case. */ +} + /* Eliminate unnecessary statements. Any instruction not marked as necessary contributes nothing to the program, and can be deleted. */ @@ -1800,6 +1864,8 @@ eliminate_unnecessary_stmts (bool aggressive) } } } + if (bb_contains_live_stmts) + propagate_counts (); } if (bb_postorder) diff --git a/gcc/tree-ssa-forwprop.cc b/gcc/tree-ssa-forwprop.cc index 4c438a0f86c9..749708f05a29 100644 --- a/gcc/tree-ssa-forwprop.cc +++ b/gcc/tree-ssa-forwprop.cc @@ -1842,7 +1842,15 @@ simplify_builtin_memcmp (gimple_stmt_iterator *gsi_p, gcall *stmt) return true; } } - return false; + + /* Replace memcmp with memcmp_eq if the above fails. */ + if (DECL_FUNCTION_CODE (gimple_call_fndecl (stmt)) == BUILT_IN_MEMCMP_EQ) + return false; + if (!fold_before_rtl_expansion_p ()) + return false; + gimple_call_set_fndecl (stmt, builtin_decl_explicit (BUILT_IN_MEMCMP_EQ)); + update_stmt (stmt); + return true; } /* Optimizes builtin memchrs for small constant sizes with a const string. @@ -2124,6 +2132,116 @@ simplify_builtin_memcpy_memset (gimple_stmt_iterator *gsi_p, gcall *stmt2) } } + +/* Try to optimize out __builtin_stack_restore. Optimize it out + if there is another __builtin_stack_restore in the same basic + block and no calls or ASM_EXPRs are in between, or if this block's + only outgoing edge is to EXIT_BLOCK and there are no calls or + ASM_EXPRs after this __builtin_stack_restore. + Note restore right before a noreturn function is not needed. + And skip some cheap calls that will most likely become an instruction. + Restoring the stack before a call is important to be able to keep + stack usage down so that call does not run out of stack. */ + + +static bool +optimize_stack_restore (gimple_stmt_iterator *gsi, gimple *call) +{ + if (!fold_before_rtl_expansion_p ()) + return false; + tree callee; + gimple *stmt; + + basic_block bb = gsi_bb (*gsi); + + if (gimple_call_num_args (call) != 1 + || TREE_CODE (gimple_call_arg (call, 0)) != SSA_NAME + || !POINTER_TYPE_P (TREE_TYPE (gimple_call_arg (call, 0)))) + return false; + + gimple_stmt_iterator i = *gsi; + for (gsi_next (&i); !gsi_end_p (i); gsi_next (&i)) + { + stmt = gsi_stmt (i); + if (is_a (stmt)) + return false; + gcall *call = dyn_cast(stmt); + if (!call) + continue; + + /* We can remove the restore in front of noreturn + calls. Since the restore will happen either + via an unwind/longjmp or not at all. */ + if (gimple_call_noreturn_p (call)) + break; + + /* Internal calls are ok, to bypass + check first since fndecl will be null. */ + if (gimple_call_internal_p (call)) + continue; + + callee = gimple_call_fndecl (call); + /* Non-builtin calls are not ok. */ + if (!callee + || !fndecl_built_in_p (callee)) + return false; + + /* Do not remove stack updates before strub leave. */ + if (fndecl_built_in_p (callee, BUILT_IN___STRUB_LEAVE) + /* Alloca calls are not ok either. */ + || fndecl_builtin_alloc_p (callee)) + return false; + + if (fndecl_built_in_p (callee, BUILT_IN_STACK_RESTORE)) + goto second_stack_restore; + + /* If not a simple or inexpensive builtin, then it is not ok either. */ + if (!is_simple_builtin (callee) + && !is_inexpensive_builtin (callee)) + return false; + } + + /* Allow one successor of the exit block, or zero successors. */ + switch (EDGE_COUNT (bb->succs)) + { + case 0: + break; + case 1: + if (single_succ_edge (bb)->dest != EXIT_BLOCK_PTR_FOR_FN (cfun)) + return false; + break; + default: + return false; + } + second_stack_restore: + + /* If there's exactly one use, then zap the call to __builtin_stack_save. + If there are multiple uses, then the last one should remove the call. + In any case, whether the call to __builtin_stack_save can be removed + or not is irrelevant to removing the call to __builtin_stack_restore. */ + if (has_single_use (gimple_call_arg (call, 0))) + { + gimple *stack_save = SSA_NAME_DEF_STMT (gimple_call_arg (call, 0)); + if (is_gimple_call (stack_save)) + { + callee = gimple_call_fndecl (stack_save); + if (callee && fndecl_built_in_p (callee, BUILT_IN_STACK_SAVE)) + { + gimple_stmt_iterator stack_save_gsi; + tree rhs; + + stack_save_gsi = gsi_for_stmt (stack_save); + rhs = build_int_cst (TREE_TYPE (gimple_call_arg (call, 0)), 0); + replace_call_with_value (&stack_save_gsi, rhs); + } + } + } + + /* No effect, so the statement will be deleted. */ + replace_call_with_value (gsi, NULL_TREE); + return true; +} + /* *GSI_P is a GIMPLE_CALL to a builtin function. Optimize memcpy (p, "abcd", 4); @@ -2155,6 +2273,8 @@ simplify_builtin_call (gimple_stmt_iterator *gsi_p, tree callee2, bool full_walk switch (DECL_FUNCTION_CODE (callee2)) { + case BUILT_IN_STACK_RESTORE: + return optimize_stack_restore (gsi_p, as_a(stmt2)); case BUILT_IN_MEMCMP: case BUILT_IN_MEMCMP_EQ: return simplify_builtin_memcmp (gsi_p, as_a(stmt2)); @@ -3175,17 +3295,6 @@ simplify_count_zeroes (gimple_stmt_iterator *gsi) gimple_seq_add_stmt (&seq, call); tree prev_lhs = gimple_call_lhs (call); - if (fn == IFN_CLZ) - { - g = gimple_build_assign (make_ssa_name (integer_type_node), - MINUS_EXPR, - build_int_cst (integer_type_node, - input_bits - 1), - prev_lhs); - gimple_set_location (g, gimple_location (stmt)); - gimple_seq_add_stmt (&seq, g); - prev_lhs = gimple_assign_lhs (g); - } if (zero_ok && zero_val == ctz_val) ; @@ -3217,6 +3326,18 @@ simplify_count_zeroes (gimple_stmt_iterator *gsi) prev_lhs = gimple_assign_lhs (g); } + if (fn == IFN_CLZ) + { + g = gimple_build_assign (make_ssa_name (integer_type_node), + MINUS_EXPR, + build_int_cst (integer_type_node, + input_bits - 1), + prev_lhs); + gimple_set_location (g, gimple_location (stmt)); + gimple_seq_add_stmt (&seq, g); + prev_lhs = gimple_assign_lhs (g); + } + g = gimple_build_assign (gimple_assign_lhs (stmt), NOP_EXPR, prev_lhs); gimple_seq_add_stmt (&seq, g); gsi_replace_with_seq (gsi, seq, true); @@ -4786,6 +4907,49 @@ class pass_forwprop : public gimple_opt_pass bool m_full_walk = false; }; // class pass_forwprop +/* Attemp to make the BB block of __builtin_unreachable unreachable by changing + the incoming jumps. Return true if at least one jump was changed. */ + +static bool +optimize_unreachable (basic_block bb) +{ + gimple_stmt_iterator gsi; + gimple *stmt; + edge_iterator ei; + edge e; + bool ret; + + ret = false; + FOR_EACH_EDGE (e, ei, bb->preds) + { + gsi = gsi_last_bb (e->src); + if (gsi_end_p (gsi)) + continue; + + stmt = gsi_stmt (gsi); + if (gcond *cond_stmt = dyn_cast (stmt)) + { + if (e->flags & EDGE_TRUE_VALUE) + gimple_cond_make_false (cond_stmt); + else if (e->flags & EDGE_FALSE_VALUE) + gimple_cond_make_true (cond_stmt); + else + gcc_unreachable (); + update_stmt (cond_stmt); + } + else + { + /* Todo: handle other cases. Note that unreachable switch case + statements have already been removed. */ + continue; + } + + ret = true; + } + + return ret; +} + unsigned int pass_forwprop::execute (function *fun) { @@ -4853,6 +5017,21 @@ pass_forwprop::execute (function *fun) if (!any) continue; + /* Remove conditions that go directly to unreachable when this is the last forwprop. */ + if (last_p + && !(flag_sanitize & SANITIZE_UNREACHABLE)) + { + gimple_stmt_iterator gsi; + gsi = gsi_start_nondebug_after_labels_bb (bb); + if (!gsi_end_p (gsi) + && gimple_call_builtin_p (*gsi, BUILT_IN_UNREACHABLE) + && optimize_unreachable (bb)) + { + cfg_changed = true; + continue; + } + } + /* Record degenerate PHIs in the lattice. */ for (gphi_iterator si = gsi_start_phis (bb); !gsi_end_p (si); gsi_next (&si)) @@ -5273,7 +5452,8 @@ pass_forwprop::execute (function *fun) do { gimple *orig_stmt = stmt = gsi_stmt (gsi); - bool was_noreturn = (is_gimple_call (stmt) + bool was_call = is_gimple_call (stmt); + bool was_noreturn = (was_call && gimple_call_noreturn_p (stmt)); changed = false; @@ -5285,6 +5465,13 @@ pass_forwprop::execute (function *fun) if (fold_stmt (&gsi, fwprop_ssa_val, simple_dce_worklist)) { changed = true; + /* There is no updating of the address + taken after the last forwprop so update + the addresses when a folding happened to a call. + The va_* builtins can remove taking of the address so + can the sincos->cexpi transformation. See PR 39643 and PR 20983. */ + if (was_call && last_p) + todoflags |= TODO_update_address_taken; stmt = gsi_stmt (gsi); /* Cleanup the CFG if we simplified a condition to true or false. */ diff --git a/gcc/tree-ssa-math-opts.cc b/gcc/tree-ssa-math-opts.cc index a9903b691a49..04c9f2c07e92 100644 --- a/gcc/tree-ssa-math-opts.cc +++ b/gcc/tree-ssa-math-opts.cc @@ -1631,43 +1631,7 @@ static tree build_and_insert_cast (gimple_stmt_iterator *gsi, location_t loc, tree type, tree val) { - tree result = make_ssa_name (type); - tree rhs = val; - - if (TREE_CODE (val) == SSA_NAME) - { - gimple *def = SSA_NAME_DEF_STMT (val); - - if (is_gimple_assign (def) - && CONVERT_EXPR_CODE_P (gimple_assign_rhs_code (def))) - { - tree cast_rhs = gimple_assign_rhs1 (def); - tree cast_rhs_type = TREE_TYPE (cast_rhs); - tree val_type = TREE_TYPE (val); - - bool unsigned_p = TYPE_UNSIGNED (type); - bool unsigned_rhs_p = TYPE_UNSIGNED (cast_rhs_type); - bool unsigned_val_p = TYPE_UNSIGNED (val_type); - - unsigned rhs_prec = TYPE_PRECISION (cast_rhs_type); - unsigned type_prec = TYPE_PRECISION (type); - unsigned val_prec = TYPE_PRECISION (val_type); - - if (type_prec >= rhs_prec && val_prec >= rhs_prec) - { - /* Aka any sign extend from small to big size */ - if (!((val_prec > rhs_prec && !unsigned_val_p && !unsigned_rhs_p) - || (type_prec > val_prec && !unsigned_p && !unsigned_val_p))) - rhs = cast_rhs; - } - } - } - - gassign *stmt = gimple_build_assign (result, NOP_EXPR, rhs); - - gimple_set_location (stmt, loc); - gsi_insert_before (gsi, stmt, GSI_SAME_STMT); - return result; + return gimple_convert (gsi, true, GSI_SAME_STMT, loc, type, val); } struct pow_synth_sqrt_info @@ -3834,6 +3798,7 @@ maybe_optimize_guarding_check (vec &mul_stmts, gimple *cond_stmt, else gimple_cond_make_false (zero_cond); update_stmt (zero_cond); + reset_flow_sensitive_info_in_bb (bb); *cfg_changed = true; } diff --git a/gcc/tree-ssa-phiopt.cc b/gcc/tree-ssa-phiopt.cc index e1c9e1296c0e..3d6673cfb901 100644 --- a/gcc/tree-ssa-phiopt.cc +++ b/gcc/tree-ssa-phiopt.cc @@ -3643,7 +3643,7 @@ cond_if_else_store_replacement_1 (basic_block then_bb, basic_block else_bb, tree lhs_base, lhs, then_rhs, else_rhs, name; location_t then_locus, else_locus; gimple_stmt_iterator gsi; - gphi *newphi; + gphi *newphi = nullptr; gassign *new_stmt; if (then_assign == NULL @@ -3659,8 +3659,7 @@ cond_if_else_store_replacement_1 (basic_block then_bb, basic_block else_bb, return false; lhs = gimple_assign_lhs (then_assign); - if (!is_gimple_reg_type (TREE_TYPE (lhs)) - || !operand_equal_p (lhs, gimple_assign_lhs (else_assign), 0)) + if (!operand_equal_p (lhs, gimple_assign_lhs (else_assign), 0)) return false; lhs_base = get_base_address (lhs); @@ -3673,6 +3672,15 @@ cond_if_else_store_replacement_1 (basic_block then_bb, basic_block else_bb, then_locus = gimple_location (then_assign); else_locus = gimple_location (else_assign); + if (!is_gimple_reg_type (TREE_TYPE (lhs))) + { + if (!operand_equal_p (then_rhs, else_rhs)) + return false; + /* Currently only handle commoning of `= {}`. */ + if (TREE_CODE (then_rhs) != CONSTRUCTOR) + return false; + } + if (dump_file && (dump_flags & TDF_DETAILS)) { fprintf(dump_file, "factoring out stores:\n\tthen:\n"); @@ -3699,12 +3707,17 @@ cond_if_else_store_replacement_1 (basic_block then_bb, basic_block else_bb, /* 2) Create a PHI node at the join block, with one argument holding the old RHS, and the other holding the temporary where we stored the old memory contents. */ - name = make_temp_ssa_name (TREE_TYPE (lhs), NULL, "cstore"); - newphi = create_phi_node (name, join_bb); - add_phi_arg (newphi, then_rhs, EDGE_SUCC (then_bb, 0), then_locus); - add_phi_arg (newphi, else_rhs, EDGE_SUCC (else_bb, 0), else_locus); + if (operand_equal_p (then_rhs, else_rhs)) + name = then_rhs; + else + { + name = make_temp_ssa_name (TREE_TYPE (lhs), NULL, "cstore"); + newphi = create_phi_node (name, join_bb); + add_phi_arg (newphi, then_rhs, EDGE_SUCC (then_bb, 0), then_locus); + add_phi_arg (newphi, else_rhs, EDGE_SUCC (else_bb, 0), else_locus); + } - new_stmt = gimple_build_assign (lhs, gimple_phi_result (newphi)); + new_stmt = gimple_build_assign (lhs, name); /* Update the vdef for the new store statement. */ tree newvphilhs = make_ssa_name (gimple_vop (cfun)); tree vdef = gimple_phi_result (vphi); @@ -3715,16 +3728,21 @@ cond_if_else_store_replacement_1 (basic_block then_bb, basic_block else_bb, update_stmt (vphi); if (dump_file && (dump_flags & TDF_DETAILS)) { - fprintf(dump_file, "to use phi:\n"); - print_gimple_stmt (dump_file, newphi, 0, - TDF_VOPS|TDF_MEMSYMS); - fprintf(dump_file, "\n"); + if (newphi) + { + fprintf(dump_file, "to use phi:\n"); + print_gimple_stmt (dump_file, newphi, 0, + TDF_VOPS|TDF_MEMSYMS); + fprintf(dump_file, "\n"); + } + else + fprintf(dump_file, "to:\n"); print_gimple_stmt (dump_file, new_stmt, 0, TDF_VOPS|TDF_MEMSYMS); fprintf(dump_file, "\n\n"); } - /* 3) Insert that PHI node. */ + /* 3) Insert that new store. */ gsi = gsi_after_labels (join_bb); if (gsi_end_p (gsi)) { @@ -3739,12 +3757,13 @@ cond_if_else_store_replacement_1 (basic_block then_bb, basic_block else_bb, return true; } -/* Return the single store in BB with VDEF or NULL if there are - other stores in the BB or loads following the store. VPHI is - where the only use of the vdef should be. */ +/* Return the last store in BB with VDEF or NULL if there are + loads following the store. VPHI is where the only use of the + vdef should be. If ONLYONESTORE is true, then the store is + the only store in the BB. */ static gimple * -single_trailing_store_in_bb (basic_block bb, tree vdef, gphi *vphi) +trailing_store_in_bb (basic_block bb, tree vdef, gphi *vphi, bool onlyonestore) { if (SSA_NAME_IS_DEFAULT_DEF (vdef)) return NULL; @@ -3753,12 +3772,14 @@ single_trailing_store_in_bb (basic_block bb, tree vdef, gphi *vphi) || gimple_code (store) == GIMPLE_PHI) return NULL; - /* Verify there is no other store in this BB. */ - if (!SSA_NAME_IS_DEFAULT_DEF (gimple_vuse (store)) + /* Verify there is no other store in this BB if requested. */ + if (onlyonestore + && !SSA_NAME_IS_DEFAULT_DEF (gimple_vuse (store)) && gimple_bb (SSA_NAME_DEF_STMT (gimple_vuse (store))) == bb && gimple_code (SSA_NAME_DEF_STMT (gimple_vuse (store))) != GIMPLE_PHI) return NULL; + /* Verify there is no load or store after the store, the vdef of the store should only be used by the vphi joining the 2 bbs. */ use_operand_p use_p; @@ -3778,20 +3799,22 @@ single_trailing_store_in_bb (basic_block bb, tree vdef, gphi *vphi) if (cond) goto THEN_BB; else goto ELSE_BB (edge E1) THEN_BB: ... - ONLY_STORE = Y; + STORE = Y; ... goto JOIN_BB; ELSE_BB: ... - ONLY_STORE = Z; + STORE = Z; ... fallthrough (edge E0) JOIN_BB: some more - Handles only the case with single store in THEN_BB and ELSE_BB. That is + Handles only the case with store in THEN_BB and ELSE_BB. That is cheap enough due to in phiopt and not worry about heurstics. Moving the store - out might provide an opportunity for a phiopt to happen. */ + out might provide an opportunity for a phiopt to happen. + At -O1 (!flag_expensive_optimizations), this only handles the only store in + the BBs. */ static bool cond_if_else_store_replacement_limited (basic_block then_bb, basic_block else_bb, @@ -3802,12 +3825,14 @@ cond_if_else_store_replacement_limited (basic_block then_bb, basic_block else_bb return false; tree then_vdef = PHI_ARG_DEF_FROM_EDGE (vphi, single_succ_edge (then_bb)); - gimple *then_assign = single_trailing_store_in_bb (then_bb, then_vdef, vphi); + gimple *then_assign = trailing_store_in_bb (then_bb, then_vdef, vphi, + !flag_expensive_optimizations); if (!then_assign) return false; tree else_vdef = PHI_ARG_DEF_FROM_EDGE (vphi, single_succ_edge (else_bb)); - gimple *else_assign = single_trailing_store_in_bb (else_bb, else_vdef, vphi); + gimple *else_assign = trailing_store_in_bb (else_bb, else_vdef, vphi, + !flag_expensive_optimizations); if (!else_assign) return false; @@ -3847,25 +3872,15 @@ cond_if_else_store_replacement (basic_block then_bb, basic_block else_bb, bool found, ok = false, res; tree then_lhs, else_lhs; basic_block blocks[3]; - - /* Handle the case with single store in THEN_BB and ELSE_BB. That is - cheap enough to always handle as it allows us to elide dependence - checking. */ gphi *vphi = get_virtual_phi (join_bb); if (!vphi) return false; - tree then_vdef = PHI_ARG_DEF_FROM_EDGE (vphi, single_succ_edge (then_bb)); - gimple *then_assign = single_trailing_store_in_bb (then_bb, then_vdef, vphi); - if (then_assign) - { - tree else_vdef = PHI_ARG_DEF_FROM_EDGE (vphi, single_succ_edge (else_bb)); - gimple *else_assign = single_trailing_store_in_bb (else_bb, else_vdef, - vphi); - if (else_assign) - return cond_if_else_store_replacement_1 (then_bb, else_bb, join_bb, - then_assign, else_assign, - vphi); - } + + /* Handle the case with trailing stores in THEN_BB and ELSE_BB. That is + cheap enough to always handle as it allows us to elide dependence + checking. */ + while (cond_if_else_store_replacement_limited (then_bb, else_bb, join_bb)) + ; /* If either vectorization or if-conversion is disabled then do not sink any stores. */ @@ -4539,10 +4554,11 @@ pass_phiopt::execute (function *) && !predictable_edge_p (EDGE_SUCC (bb, 1))) hoist_adjacent_loads (bb, bb1, bb2, bb3); - /* Try to see if there are only one store in each side of the if + /* Try to see if there are only store in each side of the if and try to remove that. */ if (EDGE_COUNT (bb3->preds) == 2) - cond_if_else_store_replacement_limited (bb1, bb2, bb3); + while (cond_if_else_store_replacement_limited (bb1, bb2, bb3)) + ; } gimple_stmt_iterator gsi; diff --git a/gcc/tree-ssa-pre.cc b/gcc/tree-ssa-pre.cc index 64ffaca21aba..2a7dcbee52ce 100644 --- a/gcc/tree-ssa-pre.cc +++ b/gcc/tree-ssa-pre.cc @@ -2049,8 +2049,12 @@ prune_clobbered_mems (bitmap_set_t set, basic_block block, bool clean_traps) the bitmap_find_leader way to see if there's still an expression for it. For some ratio of to be removed values and number of values/expressions in the set this might be faster than rebuilding - the value-set. */ - if (any_removed) + the value-set. + Note when there's a MAX solution on one edge (clean_traps) do not + prune values as we need to consider the resulting expression set MAX + as well. This avoids a later growing ANTIC_IN value-set during + iteration, when the explicitly represented expression set grows. */ + if (any_removed && !clean_traps) { bitmap_clear (&set->values); FOR_EACH_EXPR_ID_IN_SET (set, i, bi) @@ -2080,6 +2084,7 @@ compute_antic_aux (basic_block block, bool block_has_abnormal_pred_edge) edge e; edge_iterator ei; + bool was_visited = BB_VISITED (block); bool changed = ! BB_VISITED (block); bool any_max_on_edge = false; @@ -2215,6 +2220,32 @@ compute_antic_aux (basic_block block, bool block_has_abnormal_pred_edge) /* clean (ANTIC_IN (block)) is defered to after the iteration converged because it can cause non-convergence, see for example PR81181. */ + if (was_visited + && bitmap_and_into (&ANTIC_IN (block)->values, &old->values)) + { + if (dump_file && (dump_flags & TDF_DETAILS)) + fprintf (dump_file, "warning: intersecting with old ANTIC_IN " + "shrinks the set\n"); + /* Prune expressions not in the value set. */ + bitmap_iterator bi; + unsigned int i; + unsigned int to_clear = -1U; + FOR_EACH_EXPR_ID_IN_SET (ANTIC_IN (block), i, bi) + { + if (to_clear != -1U) + { + bitmap_clear_bit (&ANTIC_IN (block)->expressions, to_clear); + to_clear = -1U; + } + pre_expr expr = expression_for_id (i); + unsigned int value_id = get_expr_value_id (expr); + if (!bitmap_bit_p (&ANTIC_IN (block)->values, value_id)) + to_clear = i; + } + if (to_clear != -1U) + bitmap_clear_bit (&ANTIC_IN (block)->expressions, to_clear); + } + if (!bitmap_set_equal (old, ANTIC_IN (block))) changed = true; diff --git a/gcc/tree-ssa-structalias.cc b/gcc/tree-ssa-structalias.cc index 0035e50c62c7..bb19123a6a11 100644 --- a/gcc/tree-ssa-structalias.cc +++ b/gcc/tree-ssa-structalias.cc @@ -50,6 +50,7 @@ #include "tree-ssa-structalias.h" #include "pta-andersen.h" +#include "gimple-ssa-pta-constraints.h" /* The idea behind this analyzer is to generate set constraints from the program, then solve the resulting constraints in order to generate the @@ -204,8 +205,22 @@ And probably more. */ +using namespace pointer_analysis; + +/* Pool of variable info structures. */ +static object_allocator variable_info_pool + ("Variable info pool"); + +/* Map varinfo to final pt_solution. */ +static hash_map *final_solutions; +static struct obstack final_solutions_obstack; + + namespace pointer_analysis { +bool use_field_sensitive = true; +int in_ipa_mode = 0; + /* Used for points-to sets. */ bitmap_obstack pta_obstack; @@ -219,9 +234,6 @@ vec varmap; /* List of constraints that we use to build the constraint graph from. */ vec constraints; -/* Map from trees to variable infos. */ -static hash_map *vi_for_tree; - /* The representative variable for a variable. The points-to solution for a var can be found in its rep. Trivially, a var can be its own rep. @@ -288,6 +300,120 @@ first_or_preceding_vi_for_offset (varinfo_t start, return start; } +/* Determine global memory access of call STMT and update + WRITES_GLOBAL_MEMORY, READS_GLOBAL_MEMORY and USES_GLOBAL_MEMORY. */ + +void +determine_global_memory_access (gcall *stmt, + bool *writes_global_memory, + bool *reads_global_memory, + bool *uses_global_memory) +{ + tree callee; + cgraph_node *node; + modref_summary *summary; + + /* We need to detrmine reads to set uses. */ + gcc_assert (!uses_global_memory || reads_global_memory); + + if ((callee = gimple_call_fndecl (stmt)) != NULL_TREE + && (node = cgraph_node::get (callee)) != NULL + && (summary = get_modref_function_summary (node))) + { + if (writes_global_memory && *writes_global_memory) + *writes_global_memory = summary->global_memory_written; + if (reads_global_memory && *reads_global_memory) + *reads_global_memory = summary->global_memory_read; + if (reads_global_memory && uses_global_memory + && !summary->calls_interposable + && !*reads_global_memory && node->binds_to_current_def_p ()) + *uses_global_memory = false; + } + if ((writes_global_memory && *writes_global_memory) + || (uses_global_memory && *uses_global_memory) + || (reads_global_memory && *reads_global_memory)) + { + attr_fnspec fnspec = gimple_call_fnspec (stmt); + if (fnspec.known_p ()) + { + if (writes_global_memory + && !fnspec.global_memory_written_p ()) + *writes_global_memory = false; + if (reads_global_memory && !fnspec.global_memory_read_p ()) + { + *reads_global_memory = false; + if (uses_global_memory) + *uses_global_memory = false; + } + } + } +} + +/* Return true if FNDECL may be part of another lto partition. */ + +bool +fndecl_maybe_in_other_partition (tree fndecl) +{ + cgraph_node *fn_node = cgraph_node::get (fndecl); + if (fn_node == NULL) + return true; + + return fn_node->in_other_partition; +} + +/* Return a new variable info structure consisting for a variable + named NAME, and using constraint graph node NODE. Append it + to the vector of variable info structures. */ + +varinfo_t +new_var_info (tree t, const char *name, bool add_id) +{ + unsigned index = varmap.length (); + varinfo_t ret = variable_info_pool.allocate (); + + if (dump_file && add_id) + { + char *tempname = xasprintf ("%s(%d)", name, index); + name = ggc_strdup (tempname); + free (tempname); + } + + ret->id = index; + ret->name = name; + ret->decl = t; + /* Vars without decl are artificial and do not have sub-variables. */ + ret->is_artificial_var = (t == NULL_TREE); + ret->is_special_var = false; + ret->is_unknown_size_var = false; + ret->is_full_var = (t == NULL_TREE); + ret->is_heap_var = false; + ret->may_have_pointers = true; + ret->only_restrict_pointers = false; + ret->is_restrict_var = false; + ret->ruid = 0; + ret->is_global_var = (t == NULL_TREE); + ret->is_ipa_escape_point = false; + ret->is_fn_info = false; + ret->address_taken = false; + if (t && DECL_P (t)) + ret->is_global_var = (is_global_var (t) + /* We have to treat even local register variables + as escape points. */ + || (VAR_P (t) && DECL_HARD_REGISTER (t))); + ret->is_reg_var = (t && TREE_CODE (t) == SSA_NAME); + ret->solution = BITMAP_ALLOC (&pta_obstack); + ret->oldsolution = NULL; + ret->next = 0; + ret->shadow_var_uid = 0; + ret->head = ret->id; + + stats.total_vars++; + + varmap.safe_push (ret); + + return ret; +} + /* Print out constraint C to FILE. */ void @@ -402,3942 +528,141 @@ dump_sa_stats (FILE *outfile) fprintf (outfile, "Number of implicit edges: %d\n", stats.num_implicit_edges); fprintf (outfile, "Number of avoided edges: %d\n", - stats.num_avoided_edges); -} - -/* Dump points-to information to OUTFILE. */ - -void -dump_sa_points_to_info (FILE *outfile) -{ - fprintf (outfile, "\nPoints-to sets\n\n"); - - for (unsigned i = 1; i < varmap.length (); i++) - { - varinfo_t vi = get_varinfo (i); - if (!vi->may_have_pointers) - continue; - dump_solution_for_var (outfile, i); - } -} - - -/* Debug points-to information to stderr. */ - -DEBUG_FUNCTION void -debug_sa_points_to_info (void) -{ - dump_sa_points_to_info (stderr); -} - -/* Dump varinfo VI to FILE. */ - -void -dump_varinfo (FILE *file, varinfo_t vi) -{ - if (vi == NULL) - return; - - fprintf (file, "%u: %s\n", vi->id, vi->name); - - const char *sep = " "; - if (vi->is_artificial_var) - fprintf (file, "%sartificial", sep); - if (vi->is_special_var) - fprintf (file, "%sspecial", sep); - if (vi->is_unknown_size_var) - fprintf (file, "%sunknown-size", sep); - if (vi->is_full_var) - fprintf (file, "%sfull", sep); - if (vi->is_heap_var) - fprintf (file, "%sheap", sep); - if (vi->may_have_pointers) - fprintf (file, "%smay-have-pointers", sep); - if (vi->only_restrict_pointers) - fprintf (file, "%sonly-restrict-pointers", sep); - if (vi->is_restrict_var) - fprintf (file, "%sis-restrict-var", sep); - if (vi->is_global_var) - fprintf (file, "%sglobal", sep); - if (vi->is_ipa_escape_point) - fprintf (file, "%sipa-escape-point", sep); - if (vi->is_fn_info) - fprintf (file, "%sfn-info", sep); - if (vi->ruid) - fprintf (file, "%srestrict-uid:%u", sep, vi->ruid); - if (vi->next) - fprintf (file, "%snext:%u", sep, vi->next); - if (vi->head != vi->id) - fprintf (file, "%shead:%u", sep, vi->head); - if (vi->offset) - fprintf (file, "%soffset:" HOST_WIDE_INT_PRINT_DEC, sep, vi->offset); - if (vi->size != ~HOST_WIDE_INT_0U) - fprintf (file, "%ssize:" HOST_WIDE_INT_PRINT_DEC, sep, vi->size); - if (vi->fullsize != ~HOST_WIDE_INT_0U && vi->fullsize != vi->size) - fprintf (file, "%sfullsize:" HOST_WIDE_INT_PRINT_DEC, sep, - vi->fullsize); - fprintf (file, "\n"); - - if (vi->solution && !bitmap_empty_p (vi->solution)) - { - bitmap_iterator bi; - unsigned i; - fprintf (file, " solution: {"); - EXECUTE_IF_SET_IN_BITMAP (vi->solution, 0, i, bi) - fprintf (file, " %u", i); - fprintf (file, " }\n"); - } - - if (vi->oldsolution && !bitmap_empty_p (vi->oldsolution) - && !bitmap_equal_p (vi->solution, vi->oldsolution)) - { - bitmap_iterator bi; - unsigned i; - fprintf (file, " oldsolution: {"); - EXECUTE_IF_SET_IN_BITMAP (vi->oldsolution, 0, i, bi) - fprintf (file, " %u", i); - fprintf (file, " }\n"); - } -} - -/* Dump varinfo VI to stderr. */ - -DEBUG_FUNCTION void -debug_varinfo (varinfo_t vi) -{ - dump_varinfo (stderr, vi); -} - -/* Dump varmap to FILE. */ - -void -dump_varmap (FILE *file) -{ - if (varmap.length () == 0) - return; - - fprintf (file, "variables:\n"); - - for (unsigned int i = 0; i < varmap.length (); ++i) - { - varinfo_t vi = get_varinfo (i); - dump_varinfo (file, vi); - } - - fprintf (file, "\n"); -} - -/* Dump varmap to stderr. */ - -DEBUG_FUNCTION void -debug_varmap (void) -{ - dump_varmap (stderr); -} - -} // namespace pointer_analysis - - -using namespace pointer_analysis; - -static bool use_field_sensitive = true; -static int in_ipa_mode = 0; - -static unsigned int create_variable_info_for (tree, const char *, bool); -static varinfo_t lookup_vi_for_tree (tree); -static inline bool type_can_have_subvars (const_tree); -static void make_param_constraints (varinfo_t); - -/* Pool of variable info structures. */ -static object_allocator variable_info_pool - ("Variable info pool"); - -/* Map varinfo to final pt_solution. */ -static hash_map *final_solutions; -static struct obstack final_solutions_obstack; - -/* Return a new variable info structure consisting for a variable - named NAME, and using constraint graph node NODE. Append it - to the vector of variable info structures. */ - -static varinfo_t -new_var_info (tree t, const char *name, bool add_id) -{ - unsigned index = varmap.length (); - varinfo_t ret = variable_info_pool.allocate (); - - if (dump_file && add_id) - { - char *tempname = xasprintf ("%s(%d)", name, index); - name = ggc_strdup (tempname); - free (tempname); - } - - ret->id = index; - ret->name = name; - ret->decl = t; - /* Vars without decl are artificial and do not have sub-variables. */ - ret->is_artificial_var = (t == NULL_TREE); - ret->is_special_var = false; - ret->is_unknown_size_var = false; - ret->is_full_var = (t == NULL_TREE); - ret->is_heap_var = false; - ret->may_have_pointers = true; - ret->only_restrict_pointers = false; - ret->is_restrict_var = false; - ret->ruid = 0; - ret->is_global_var = (t == NULL_TREE); - ret->is_ipa_escape_point = false; - ret->is_fn_info = false; - ret->address_taken = false; - if (t && DECL_P (t)) - ret->is_global_var = (is_global_var (t) - /* We have to treat even local register variables - as escape points. */ - || (VAR_P (t) && DECL_HARD_REGISTER (t))); - ret->is_reg_var = (t && TREE_CODE (t) == SSA_NAME); - ret->solution = BITMAP_ALLOC (&pta_obstack); - ret->oldsolution = NULL; - ret->next = 0; - ret->shadow_var_uid = 0; - ret->head = ret->id; - - stats.total_vars++; - - varmap.safe_push (ret); - - return ret; -} - -/* A map mapping call statements to per-stmt variables for uses - and clobbers specific to the call. */ -static hash_map *call_stmt_vars; - -/* Lookup or create the variable for the call statement CALL. */ - -static varinfo_t -get_call_vi (gcall *call) -{ - varinfo_t vi, vi2; - - bool existed; - varinfo_t *slot_p = &call_stmt_vars->get_or_insert (call, &existed); - if (existed) - return *slot_p; - - vi = new_var_info (NULL_TREE, "CALLUSED", true); - vi->offset = 0; - vi->size = 1; - vi->fullsize = 2; - vi->is_full_var = true; - vi->is_reg_var = true; - - vi2 = new_var_info (NULL_TREE, "CALLCLOBBERED", true); - vi2->offset = 1; - vi2->size = 1; - vi2->fullsize = 2; - vi2->is_full_var = true; - vi2->is_reg_var = true; - - vi->next = vi2->id; - - *slot_p = vi; - return vi; -} - -/* Lookup the variable for the call statement CALL representing - the uses. Returns NULL if there is nothing special about this call. */ - -static varinfo_t -lookup_call_use_vi (gcall *call) -{ - varinfo_t *slot_p = call_stmt_vars->get (call); - if (slot_p) - return *slot_p; - - return NULL; -} - -/* Lookup the variable for the call statement CALL representing - the clobbers. Returns NULL if there is nothing special about this call. */ - -static varinfo_t -lookup_call_clobber_vi (gcall *call) -{ - varinfo_t uses = lookup_call_use_vi (call); - if (!uses) - return NULL; - - return vi_next (uses); -} - -/* Lookup or create the variable for the call statement CALL representing - the uses. */ - -static varinfo_t -get_call_use_vi (gcall *call) -{ - return get_call_vi (call); -} - -/* Lookup or create the variable for the call statement CALL representing - the clobbers. */ - -static varinfo_t ATTRIBUTE_UNUSED -get_call_clobber_vi (gcall *call) -{ - return vi_next (get_call_vi (call)); -} - - -static void get_constraint_for_1 (tree, vec *, bool, bool); -static void get_constraint_for (tree, vec *); -static void get_constraint_for_rhs (tree, vec *); -static void do_deref (vec *); - -/* Allocator for 'constraints' vector. */ - -static object_allocator constraint_pool ("Constraint pool"); - -/* Create a new constraint consisting of LHS and RHS expressions. */ - -static constraint_t -new_constraint (const struct constraint_expr lhs, - const struct constraint_expr rhs) -{ - constraint_t ret = constraint_pool.allocate (); - ret->lhs = lhs; - ret->rhs = rhs; - return ret; -} - -/* Insert ID as the variable id for tree T in the vi_for_tree map. */ - -static void -insert_vi_for_tree (tree t, varinfo_t vi) -{ - gcc_assert (vi); - bool existed = vi_for_tree->put (t, vi); - gcc_assert (!existed); -} - -/* Find the variable info for tree T in VI_FOR_TREE. If T does not - exist in the map, return NULL, otherwise, return the varinfo we found. */ - -static varinfo_t -lookup_vi_for_tree (tree t) -{ - varinfo_t *slot = vi_for_tree->get (t); - if (slot == NULL) - return NULL; - - return *slot; -} - -/* Return a printable name for DECL. */ - -static const char * -alias_get_name (tree decl) -{ - const char *res = "NULL"; - if (dump_file) - { - char *temp = NULL; - if (TREE_CODE (decl) == SSA_NAME) - { - res = get_name (decl); - temp = xasprintf ("%s_%u", res ? res : "", SSA_NAME_VERSION (decl)); - } - else if (HAS_DECL_ASSEMBLER_NAME_P (decl) - && DECL_ASSEMBLER_NAME_SET_P (decl)) - res = IDENTIFIER_POINTER (DECL_ASSEMBLER_NAME_RAW (decl)); - else if (DECL_P (decl)) - { - res = get_name (decl); - if (!res) - temp = xasprintf ("D.%u", DECL_UID (decl)); - } - - if (temp) - { - res = ggc_strdup (temp); - free (temp); - } - } - - return res; -} - -/* Find the variable id for tree T in the map. - If T doesn't exist in the map, create an entry for it and return it. */ - -static varinfo_t -get_vi_for_tree (tree t) -{ - varinfo_t *slot = vi_for_tree->get (t); - if (slot == NULL) - { - unsigned int id = create_variable_info_for (t, alias_get_name (t), false); - return get_varinfo (id); - } - - return *slot; -} - -/* Get a scalar constraint expression for a new temporary variable. */ - -static struct constraint_expr -new_scalar_tmp_constraint_exp (const char *name, bool add_id) -{ - struct constraint_expr tmp; - varinfo_t vi; - - vi = new_var_info (NULL_TREE, name, add_id); - vi->offset = 0; - vi->size = -1; - vi->fullsize = -1; - vi->is_full_var = 1; - vi->is_reg_var = 1; - - tmp.var = vi->id; - tmp.type = SCALAR; - tmp.offset = 0; - - return tmp; -} - -/* Get a constraint expression vector from an SSA_VAR_P node. - If address_p is true, the result will be taken its address of. */ - -static void -get_constraint_for_ssa_var (tree t, vec *results, bool address_p) -{ - struct constraint_expr cexpr; - varinfo_t vi; - - /* We allow FUNCTION_DECLs here even though it doesn't make much sense. */ - gcc_assert (TREE_CODE (t) == SSA_NAME || DECL_P (t)); - - if (TREE_CODE (t) == SSA_NAME - && SSA_NAME_IS_DEFAULT_DEF (t)) - { - /* For parameters, get at the points-to set for the actual parm - decl. */ - if (TREE_CODE (SSA_NAME_VAR (t)) == PARM_DECL - || TREE_CODE (SSA_NAME_VAR (t)) == RESULT_DECL) - { - get_constraint_for_ssa_var (SSA_NAME_VAR (t), results, address_p); - return; - } - /* For undefined SSA names return nothing. */ - else if (!ssa_defined_default_def_p (t)) - { - cexpr.var = nothing_id; - cexpr.type = SCALAR; - cexpr.offset = 0; - results->safe_push (cexpr); - return; - } - } - - /* For global variables resort to the alias target. */ - if (VAR_P (t) && (TREE_STATIC (t) || DECL_EXTERNAL (t))) - { - varpool_node *node = varpool_node::get (t); - if (node && node->alias && node->analyzed) - { - node = node->ultimate_alias_target (); - /* Canonicalize the PT uid of all aliases to the ultimate target. - ??? Hopefully the set of aliases can't change in a way that - changes the ultimate alias target. */ - gcc_assert ((! DECL_PT_UID_SET_P (node->decl) - || DECL_PT_UID (node->decl) == DECL_UID (node->decl)) - && (! DECL_PT_UID_SET_P (t) - || DECL_PT_UID (t) == DECL_UID (node->decl))); - DECL_PT_UID (t) = DECL_UID (node->decl); - t = node->decl; - } - - /* If this is decl may bind to NULL note that. */ - if (address_p - && (! node || ! node->nonzero_address ())) - { - cexpr.var = nothing_id; - cexpr.type = SCALAR; - cexpr.offset = 0; - results->safe_push (cexpr); - } - } - - vi = get_vi_for_tree (t); - cexpr.var = vi->id; - cexpr.type = SCALAR; - cexpr.offset = 0; - - /* If we are not taking the address of the constraint expr, add all - sub-fiels of the variable as well. */ - if (!address_p - && !vi->is_full_var) - { - for (; vi; vi = vi_next (vi)) - { - cexpr.var = vi->id; - results->safe_push (cexpr); - } - return; - } - - results->safe_push (cexpr); -} - -/* Process constraint T, performing various simplifications and then - adding it to our list of overall constraints. */ - -static void -process_constraint (constraint_t t) -{ - struct constraint_expr rhs = t->rhs; - struct constraint_expr lhs = t->lhs; - - gcc_assert (rhs.var < varmap.length ()); - gcc_assert (lhs.var < varmap.length ()); - - /* If we didn't get any useful constraint from the lhs we get - &ANYTHING as fallback from get_constraint_for. Deal with - it here by turning it into *ANYTHING. */ - if (lhs.type == ADDRESSOF - && lhs.var == anything_id) - t->lhs.type = lhs.type = DEREF; - - /* ADDRESSOF on the lhs is invalid. */ - gcc_assert (lhs.type != ADDRESSOF); - - /* We shouldn't add constraints from things that cannot have pointers. - It's not completely trivial to avoid in the callers, so do it here. */ - if (rhs.type != ADDRESSOF - && !get_varinfo (rhs.var)->may_have_pointers) - return; - - /* Likewise adding to the solution of a non-pointer var isn't useful. */ - if (!get_varinfo (lhs.var)->may_have_pointers) - return; - - /* This can happen in our IR with things like n->a = *p. */ - if (rhs.type == DEREF && lhs.type == DEREF && rhs.var != anything_id) - { - /* Split into tmp = *rhs, *lhs = tmp. */ - struct constraint_expr tmplhs; - tmplhs = new_scalar_tmp_constraint_exp ("doubledereftmp", true); - process_constraint (new_constraint (tmplhs, rhs)); - process_constraint (new_constraint (lhs, tmplhs)); - } - else if ((rhs.type != SCALAR || rhs.offset != 0) && lhs.type == DEREF) - { - /* Split into tmp = &rhs, *lhs = tmp. */ - struct constraint_expr tmplhs; - tmplhs = new_scalar_tmp_constraint_exp ("derefaddrtmp", true); - process_constraint (new_constraint (tmplhs, rhs)); - process_constraint (new_constraint (lhs, tmplhs)); - } - else - { - gcc_assert (rhs.type != ADDRESSOF || rhs.offset == 0); - if (rhs.type == ADDRESSOF) - get_varinfo (get_varinfo (rhs.var)->head)->address_taken = true; - constraints.safe_push (t); - } -} - - -/* Return the position, in bits, of FIELD_DECL from the beginning of its - structure. */ - -static unsigned HOST_WIDE_INT -bitpos_of_field (const tree fdecl) -{ - if (!tree_fits_uhwi_p (DECL_FIELD_OFFSET (fdecl)) - || !tree_fits_uhwi_p (DECL_FIELD_BIT_OFFSET (fdecl))) - return -1; - - return (tree_to_uhwi (DECL_FIELD_OFFSET (fdecl)) * BITS_PER_UNIT - + tree_to_uhwi (DECL_FIELD_BIT_OFFSET (fdecl))); -} - - -/* Get constraint expressions for offsetting PTR by OFFSET. Stores the - resulting constraint expressions in *RESULTS. */ - -static void -get_constraint_for_ptr_offset (tree ptr, tree offset, - vec *results) -{ - struct constraint_expr c; - unsigned int j, n; - HOST_WIDE_INT rhsoffset; - - /* If we do not do field-sensitive PTA adding offsets to pointers - does not change the points-to solution. */ - if (!use_field_sensitive) - { - get_constraint_for_rhs (ptr, results); - return; - } - - /* If the offset is not a non-negative integer constant that fits - in a HOST_WIDE_INT, we have to fall back to a conservative - solution which includes all sub-fields of all pointed-to - variables of ptr. */ - if (offset == NULL_TREE - || TREE_CODE (offset) != INTEGER_CST) - rhsoffset = UNKNOWN_OFFSET; - else - { - /* Sign-extend the offset. */ - offset_int soffset = offset_int::from (wi::to_wide (offset), SIGNED); - if (!wi::fits_shwi_p (soffset)) - rhsoffset = UNKNOWN_OFFSET; - else - { - /* Make sure the bit-offset also fits. */ - HOST_WIDE_INT rhsunitoffset = soffset.to_shwi (); - rhsoffset = rhsunitoffset * (unsigned HOST_WIDE_INT) BITS_PER_UNIT; - if (rhsunitoffset != rhsoffset / BITS_PER_UNIT) - rhsoffset = UNKNOWN_OFFSET; - } - } - - get_constraint_for_rhs (ptr, results); - if (rhsoffset == 0) - return; - - /* As we are eventually appending to the solution do not use - vec::iterate here. */ - n = results->length (); - for (j = 0; j < n; j++) - { - varinfo_t curr; - c = (*results)[j]; - curr = get_varinfo (c.var); - - if (c.type == ADDRESSOF - /* If this varinfo represents a full variable just use it. */ - && curr->is_full_var) - ; - else if (c.type == ADDRESSOF - /* If we do not know the offset add all subfields. */ - && rhsoffset == UNKNOWN_OFFSET) - { - varinfo_t temp = get_varinfo (curr->head); - do - { - struct constraint_expr c2; - c2.var = temp->id; - c2.type = ADDRESSOF; - c2.offset = 0; - if (c2.var != c.var) - results->safe_push (c2); - temp = vi_next (temp); - } - while (temp); - } - else if (c.type == ADDRESSOF) - { - varinfo_t temp; - unsigned HOST_WIDE_INT offset = curr->offset + rhsoffset; - - /* If curr->offset + rhsoffset is less than zero adjust it. */ - if (rhsoffset < 0 - && curr->offset < offset) - offset = 0; - - /* We have to include all fields that overlap the current - field shifted by rhsoffset. And we include at least - the last or the first field of the variable to represent - reachability of off-bound addresses, in particular &object + 1, - conservatively correct. */ - temp = first_or_preceding_vi_for_offset (curr, offset); - c.var = temp->id; - c.offset = 0; - temp = vi_next (temp); - while (temp - && temp->offset < offset + curr->size) - { - struct constraint_expr c2; - c2.var = temp->id; - c2.type = ADDRESSOF; - c2.offset = 0; - results->safe_push (c2); - temp = vi_next (temp); - } - } - else if (c.type == SCALAR) - { - gcc_assert (c.offset == 0); - c.offset = rhsoffset; - } - else - /* We shouldn't get any DEREFs here. */ - gcc_unreachable (); - - (*results)[j] = c; - } -} - - -/* Given a COMPONENT_REF T, return the constraint_expr vector for it. - If address_p is true the result will be taken its address of. - If lhs_p is true then the constraint expression is assumed to be used - as the lhs. */ - -static void -get_constraint_for_component_ref (tree t, vec *results, - bool address_p, bool lhs_p) -{ - tree orig_t = t; - poly_int64 bitsize = -1; - poly_int64 bitmaxsize = -1; - poly_int64 bitpos; - bool reverse; - tree forzero; - - /* Some people like to do cute things like take the address of - &0->a.b. */ - forzero = t; - while (handled_component_p (forzero) - || INDIRECT_REF_P (forzero) - || TREE_CODE (forzero) == MEM_REF) - forzero = TREE_OPERAND (forzero, 0); - - if (CONSTANT_CLASS_P (forzero) && integer_zerop (forzero)) - { - struct constraint_expr temp; - - temp.offset = 0; - temp.var = integer_id; - temp.type = SCALAR; - results->safe_push (temp); - return; - } - - t = get_ref_base_and_extent (t, &bitpos, &bitsize, &bitmaxsize, &reverse); - - /* We can end up here for component references on a - VIEW_CONVERT_EXPR <>(&foobar) or things like a - BIT_FIELD_REF <&MEM[(void *)&b + 4B], ...>. So for - symbolic constants simply give up. */ - if (TREE_CODE (t) == ADDR_EXPR) - { - constraint_expr result; - result.type = SCALAR; - result.var = anything_id; - result.offset = 0; - results->safe_push (result); - return; - } - - /* Avoid creating pointer-offset constraints, so handle MEM_REF - offsets directly. Pretend to take the address of the base, - we'll take care of adding the required subset of sub-fields below. */ - if (TREE_CODE (t) == MEM_REF - && !integer_zerop (TREE_OPERAND (t, 0))) - { - poly_offset_int off = mem_ref_offset (t); - off <<= LOG2_BITS_PER_UNIT; - off += bitpos; - poly_int64 off_hwi; - if (off.to_shwi (&off_hwi)) - bitpos = off_hwi; - else - { - bitpos = 0; - bitmaxsize = -1; - } - get_constraint_for_1 (TREE_OPERAND (t, 0), results, false, lhs_p); - do_deref (results); - } - else - get_constraint_for_1 (t, results, true, lhs_p); - - /* Strip off nothing_id. */ - if (results->length () == 2) - { - gcc_assert ((*results)[0].var == nothing_id); - results->unordered_remove (0); - } - gcc_assert (results->length () == 1); - struct constraint_expr &result = results->last (); - - if (result.type == SCALAR - && get_varinfo (result.var)->is_full_var) - /* For single-field vars do not bother about the offset. */ - result.offset = 0; - else if (result.type == SCALAR) - { - /* In languages like C, you can access one past the end of an - array. You aren't allowed to dereference it, so we can - ignore this constraint. When we handle pointer subtraction, - we may have to do something cute here. */ - - if (maybe_lt (poly_uint64 (bitpos), get_varinfo (result.var)->fullsize) - && maybe_ne (bitmaxsize, 0)) - { - /* It's also not true that the constraint will actually start at the - right offset, it may start in some padding. We only care about - setting the constraint to the first actual field it touches, so - walk to find it. */ - struct constraint_expr cexpr = result; - varinfo_t curr; - results->pop (); - cexpr.offset = 0; - for (curr = get_varinfo (cexpr.var); curr; curr = vi_next (curr)) - { - if (ranges_maybe_overlap_p (poly_int64 (curr->offset), - curr->size, bitpos, bitmaxsize)) - { - cexpr.var = curr->id; - results->safe_push (cexpr); - if (address_p) - break; - } - } - /* If we are going to take the address of this field then - to be able to compute reachability correctly add at least - the last field of the variable. */ - if (address_p && results->length () == 0) - { - curr = get_varinfo (cexpr.var); - while (curr->next != 0) - curr = vi_next (curr); - cexpr.var = curr->id; - results->safe_push (cexpr); - } - else if (results->length () == 0) - /* Assert that we found *some* field there. The user couldn't be - accessing *only* padding. */ - /* Still the user could access one past the end of an array - embedded in a struct resulting in accessing *only* padding. */ - /* Or accessing only padding via type-punning to a type - that has a filed just in padding space. */ - { - cexpr.type = SCALAR; - cexpr.var = anything_id; - cexpr.offset = 0; - results->safe_push (cexpr); - } - } - else if (known_eq (bitmaxsize, 0)) - { - if (dump_file && (dump_flags & TDF_DETAILS)) - fprintf (dump_file, "Access to zero-sized part of variable, " - "ignoring\n"); - } - else - if (dump_file && (dump_flags & TDF_DETAILS)) - fprintf (dump_file, "Access to past the end of variable, ignoring\n"); - } - else if (result.type == DEREF) - { - /* If we do not know exactly where the access goes say so. Note - that only for non-structure accesses we know that we access - at most one subfiled of any variable. */ - HOST_WIDE_INT const_bitpos; - if (!bitpos.is_constant (&const_bitpos) - || const_bitpos == -1 - || maybe_ne (bitsize, bitmaxsize) - || AGGREGATE_TYPE_P (TREE_TYPE (orig_t)) - || result.offset == UNKNOWN_OFFSET) - result.offset = UNKNOWN_OFFSET; - else - result.offset += const_bitpos; - } - else if (result.type == ADDRESSOF) - { - /* We can end up here for component references on constants like - VIEW_CONVERT_EXPR <>({ 0, 1, 2, 3 })[i]. */ - result.type = SCALAR; - result.var = anything_id; - result.offset = 0; - } - else - gcc_unreachable (); -} - - -/* Dereference the constraint expression CONS, and return the result. - DEREF (ADDRESSOF) = SCALAR - DEREF (SCALAR) = DEREF - DEREF (DEREF) = (temp = DEREF1; result = DEREF (temp)) - This is needed so that we can handle dereferencing DEREF constraints. */ - -static void -do_deref (vec *constraints) -{ - struct constraint_expr *c; - unsigned int i = 0; - - FOR_EACH_VEC_ELT (*constraints, i, c) - { - if (c->type == SCALAR) - c->type = DEREF; - else if (c->type == ADDRESSOF) - c->type = SCALAR; - else if (c->type == DEREF) - { - struct constraint_expr tmplhs; - tmplhs = new_scalar_tmp_constraint_exp ("dereftmp", true); - process_constraint (new_constraint (tmplhs, *c)); - c->var = tmplhs.var; - } - else - gcc_unreachable (); - } -} - -/* Given a tree T, return the constraint expression for taking the - address of it. */ - -static void -get_constraint_for_address_of (tree t, vec *results) -{ - struct constraint_expr *c; - unsigned int i; - - get_constraint_for_1 (t, results, true, true); - - FOR_EACH_VEC_ELT (*results, i, c) - { - if (c->type == DEREF) - c->type = SCALAR; - else - c->type = ADDRESSOF; - } -} - -/* Given a tree T, return the constraint expression for it. */ - -static void -get_constraint_for_1 (tree t, vec *results, bool address_p, - bool lhs_p) -{ - struct constraint_expr temp; - - /* x = integer is all glommed to a single variable, which doesn't - point to anything by itself. That is, of course, unless it is an - integer constant being treated as a pointer, in which case, we - will return that this is really the addressof anything. This - happens below, since it will fall into the default case. The only - case we know something about an integer treated like a pointer is - when it is the NULL pointer, and then we just say it points to - NULL. - - Do not do that if -fno-delete-null-pointer-checks though, because - in that case *NULL does not fail, so it _should_ alias *anything. - It is not worth adding a new option or renaming the existing one, - since this case is relatively obscure. */ - if ((TREE_CODE (t) == INTEGER_CST - && integer_zerop (t)) - /* The only valid CONSTRUCTORs in gimple with pointer typed - elements are zero-initializer. But in IPA mode we also - process global initializers, so verify at least. */ - || (TREE_CODE (t) == CONSTRUCTOR - && CONSTRUCTOR_NELTS (t) == 0)) - { - if (flag_delete_null_pointer_checks) - temp.var = nothing_id; - else - temp.var = nonlocal_id; - temp.type = ADDRESSOF; - temp.offset = 0; - results->safe_push (temp); - return; - } - - /* String constants are read-only, ideally we'd have a CONST_DECL - for those. */ - if (TREE_CODE (t) == STRING_CST) - { - temp.var = string_id; - temp.type = SCALAR; - temp.offset = 0; - results->safe_push (temp); - return; - } - - switch (TREE_CODE_CLASS (TREE_CODE (t))) - { - case tcc_expression: - { - switch (TREE_CODE (t)) - { - case ADDR_EXPR: - get_constraint_for_address_of (TREE_OPERAND (t, 0), results); - return; - default:; - } - break; - } - case tcc_reference: - { - if (!lhs_p && TREE_THIS_VOLATILE (t)) - /* Fall back to anything. */ - break; - - switch (TREE_CODE (t)) - { - case MEM_REF: - { - struct constraint_expr cs; - varinfo_t vi, curr; - get_constraint_for_ptr_offset (TREE_OPERAND (t, 0), - TREE_OPERAND (t, 1), results); - do_deref (results); - - /* If we are not taking the address then make sure to process - all subvariables we might access. */ - if (address_p) - return; - - cs = results->last (); - if (cs.type == DEREF - && type_can_have_subvars (TREE_TYPE (t))) - { - /* For dereferences this means we have to defer it - to solving time. */ - results->last ().offset = UNKNOWN_OFFSET; - return; - } - if (cs.type != SCALAR) - return; - - vi = get_varinfo (cs.var); - curr = vi_next (vi); - if (!vi->is_full_var - && curr) - { - unsigned HOST_WIDE_INT size; - if (tree_fits_uhwi_p (TYPE_SIZE (TREE_TYPE (t)))) - size = tree_to_uhwi (TYPE_SIZE (TREE_TYPE (t))); - else - size = -1; - for (; curr; curr = vi_next (curr)) - { - /* The start of the access might happen anywhere - within vi, so conservatively assume it was - at its end. */ - if (curr->offset - (vi->offset + vi->size - 1) < size) - { - cs.var = curr->id; - results->safe_push (cs); - } - else - break; - } - } - return; - } - case ARRAY_REF: - case ARRAY_RANGE_REF: - case COMPONENT_REF: - case IMAGPART_EXPR: - case REALPART_EXPR: - case BIT_FIELD_REF: - get_constraint_for_component_ref (t, results, address_p, lhs_p); - return; - case VIEW_CONVERT_EXPR: - get_constraint_for_1 (TREE_OPERAND (t, 0), results, address_p, - lhs_p); - return; - /* We are missing handling for TARGET_MEM_REF here. */ - default:; - } - break; - } - case tcc_exceptional: - { - switch (TREE_CODE (t)) - { - case SSA_NAME: - { - get_constraint_for_ssa_var (t, results, address_p); - return; - } - case CONSTRUCTOR: - { - unsigned int i; - tree val; - auto_vec tmp; - FOR_EACH_CONSTRUCTOR_VALUE (CONSTRUCTOR_ELTS (t), i, val) - { - struct constraint_expr *rhsp; - unsigned j; - get_constraint_for_1 (val, &tmp, address_p, lhs_p); - FOR_EACH_VEC_ELT (tmp, j, rhsp) - results->safe_push (*rhsp); - tmp.truncate (0); - } - /* We do not know whether the constructor was complete, - so technically we have to add &NOTHING or &ANYTHING - like we do for an empty constructor as well. */ - return; - } - default:; - } - break; - } - case tcc_declaration: - { - if (!lhs_p && VAR_P (t) && TREE_THIS_VOLATILE (t)) - /* Fall back to anything. */ - break; - get_constraint_for_ssa_var (t, results, address_p); - return; - } - case tcc_constant: - { - /* We cannot refer to automatic variables through constants. */ - temp.type = ADDRESSOF; - temp.var = nonlocal_id; - temp.offset = 0; - results->safe_push (temp); - return; - } - default:; - } - - /* The default fallback is a constraint from anything. */ - temp.type = ADDRESSOF; - temp.var = anything_id; - temp.offset = 0; - results->safe_push (temp); -} - -/* Given a gimple tree T, return the constraint expression vector for it. */ - -static void -get_constraint_for (tree t, vec *results) -{ - gcc_assert (results->length () == 0); - - get_constraint_for_1 (t, results, false, true); -} - -/* Given a gimple tree T, return the constraint expression vector for it - to be used as the rhs of a constraint. */ - -static void -get_constraint_for_rhs (tree t, vec *results) -{ - gcc_assert (results->length () == 0); - - get_constraint_for_1 (t, results, false, false); -} - - -/* Efficiently generates constraints from all entries in *RHSC to all - entries in *LHSC. */ - -static void -process_all_all_constraints (const vec &lhsc, - const vec &rhsc) -{ - struct constraint_expr *lhsp, *rhsp; - unsigned i, j; - - if (lhsc.length () <= 1 || rhsc.length () <= 1) - { - FOR_EACH_VEC_ELT (lhsc, i, lhsp) - FOR_EACH_VEC_ELT (rhsc, j, rhsp) - process_constraint (new_constraint (*lhsp, *rhsp)); - } - else - { - struct constraint_expr tmp; - tmp = new_scalar_tmp_constraint_exp ("allalltmp", true); - FOR_EACH_VEC_ELT (rhsc, i, rhsp) - process_constraint (new_constraint (tmp, *rhsp)); - FOR_EACH_VEC_ELT (lhsc, i, lhsp) - process_constraint (new_constraint (*lhsp, tmp)); - } -} - -/* Handle aggregate copies by expanding into copies of the respective - fields of the structures. */ - -static void -do_structure_copy (tree lhsop, tree rhsop) -{ - struct constraint_expr *lhsp, *rhsp; - auto_vec lhsc; - auto_vec rhsc; - unsigned j; - - get_constraint_for (lhsop, &lhsc); - get_constraint_for_rhs (rhsop, &rhsc); - lhsp = &lhsc[0]; - rhsp = &rhsc[0]; - if (lhsp->type == DEREF - || (lhsp->type == ADDRESSOF && lhsp->var == anything_id) - || rhsp->type == DEREF) - { - if (lhsp->type == DEREF) - { - gcc_assert (lhsc.length () == 1); - lhsp->offset = UNKNOWN_OFFSET; - } - if (rhsp->type == DEREF) - { - gcc_assert (rhsc.length () == 1); - rhsp->offset = UNKNOWN_OFFSET; - } - process_all_all_constraints (lhsc, rhsc); - } - else if (lhsp->type == SCALAR - && (rhsp->type == SCALAR - || rhsp->type == ADDRESSOF)) - { - HOST_WIDE_INT lhssize, lhsoffset; - HOST_WIDE_INT rhssize, rhsoffset; - bool reverse; - unsigned k = 0; - if (!get_ref_base_and_extent_hwi (lhsop, &lhsoffset, &lhssize, &reverse) - || !get_ref_base_and_extent_hwi (rhsop, &rhsoffset, &rhssize, - &reverse)) - { - process_all_all_constraints (lhsc, rhsc); - return; - } - for (j = 0; lhsc.iterate (j, &lhsp);) - { - varinfo_t lhsv, rhsv; - rhsp = &rhsc[k]; - lhsv = get_varinfo (lhsp->var); - rhsv = get_varinfo (rhsp->var); - if (lhsv->may_have_pointers - && (lhsv->is_full_var - || rhsv->is_full_var - || ranges_overlap_p (lhsv->offset + rhsoffset, lhsv->size, - rhsv->offset + lhsoffset, rhsv->size))) - process_constraint (new_constraint (*lhsp, *rhsp)); - if (!rhsv->is_full_var - && (lhsv->is_full_var - || (lhsv->offset + rhsoffset + lhsv->size - > rhsv->offset + lhsoffset + rhsv->size))) - { - ++k; - if (k >= rhsc.length ()) - break; - } - else - ++j; - } - } - else - gcc_unreachable (); -} - -/* Create constraints ID = { rhsc }. */ - -static void -make_constraints_to (unsigned id, const vec &rhsc) -{ - struct constraint_expr *c; - struct constraint_expr includes; - unsigned int j; - - includes.var = id; - includes.offset = 0; - includes.type = SCALAR; - - FOR_EACH_VEC_ELT (rhsc, j, c) - process_constraint (new_constraint (includes, *c)); -} - -/* Create a constraint ID = OP. */ - -static void -make_constraint_to (unsigned id, tree op) -{ - auto_vec rhsc; - get_constraint_for_rhs (op, &rhsc); - make_constraints_to (id, rhsc); -} - -/* Create a constraint ID = &FROM. */ - -static void -make_constraint_from (varinfo_t vi, int from) -{ - struct constraint_expr lhs, rhs; - - lhs.var = vi->id; - lhs.offset = 0; - lhs.type = SCALAR; - - rhs.var = from; - rhs.offset = 0; - rhs.type = ADDRESSOF; - process_constraint (new_constraint (lhs, rhs)); -} - -/* Create a constraint ID = FROM. */ - -static void -make_copy_constraint (varinfo_t vi, int from) -{ - struct constraint_expr lhs, rhs; - - lhs.var = vi->id; - lhs.offset = 0; - lhs.type = SCALAR; - - rhs.var = from; - rhs.offset = 0; - rhs.type = SCALAR; - process_constraint (new_constraint (lhs, rhs)); -} - -/* Make constraints necessary to make OP escape. */ - -static void -make_escape_constraint (tree op) -{ - make_constraint_to (escaped_id, op); -} - -/* Make constraint necessary to make all indirect references - from VI escape. */ - -static void -make_indirect_escape_constraint (varinfo_t vi) -{ - struct constraint_expr lhs, rhs; - /* escaped = *(VAR + UNKNOWN); */ - lhs.type = SCALAR; - lhs.var = escaped_id; - lhs.offset = 0; - rhs.type = DEREF; - rhs.var = vi->id; - rhs.offset = UNKNOWN_OFFSET; - process_constraint (new_constraint (lhs, rhs)); -} - -/* Add constraints to that the solution of VI is transitively closed. */ - -static void -make_transitive_closure_constraints (varinfo_t vi) -{ - struct constraint_expr lhs, rhs; - - /* VAR = *(VAR + UNKNOWN); */ - lhs.type = SCALAR; - lhs.var = vi->id; - lhs.offset = 0; - rhs.type = DEREF; - rhs.var = vi->id; - rhs.offset = UNKNOWN_OFFSET; - process_constraint (new_constraint (lhs, rhs)); -} - -/* Add constraints to that the solution of VI has all subvariables added. */ - -static void -make_any_offset_constraints (varinfo_t vi) -{ - struct constraint_expr lhs, rhs; - - /* VAR = VAR + UNKNOWN; */ - lhs.type = SCALAR; - lhs.var = vi->id; - lhs.offset = 0; - rhs.type = SCALAR; - rhs.var = vi->id; - rhs.offset = UNKNOWN_OFFSET; - process_constraint (new_constraint (lhs, rhs)); -} - -/* Temporary storage for fake var decls. */ -struct obstack fake_var_decl_obstack; - -/* Build a fake VAR_DECL acting as referrer to a DECL_UID. */ - -static tree -build_fake_var_decl (tree type) -{ - tree decl = (tree) XOBNEW (&fake_var_decl_obstack, struct tree_var_decl); - memset (decl, 0, sizeof (struct tree_var_decl)); - TREE_SET_CODE (decl, VAR_DECL); - TREE_TYPE (decl) = type; - DECL_UID (decl) = allocate_decl_uid (); - SET_DECL_PT_UID (decl, -1); - layout_decl (decl, 0); - return decl; -} - -/* Create a new artificial heap variable with NAME. - Return the created variable. */ - -static varinfo_t -make_heapvar (const char *name, bool add_id) -{ - varinfo_t vi; - tree heapvar; - - heapvar = build_fake_var_decl (ptr_type_node); - DECL_EXTERNAL (heapvar) = 1; - - vi = new_var_info (heapvar, name, add_id); - vi->is_heap_var = true; - vi->is_unknown_size_var = true; - vi->offset = 0; - vi->fullsize = ~0; - vi->size = ~0; - vi->is_full_var = true; - insert_vi_for_tree (heapvar, vi); - - return vi; -} - -/* Create a new artificial heap variable with NAME and make a - constraint from it to LHS. Set flags according to a tag used - for tracking restrict pointers. */ - -static varinfo_t -make_constraint_from_restrict (varinfo_t lhs, const char *name, bool add_id) -{ - varinfo_t vi = make_heapvar (name, add_id); - vi->is_restrict_var = 1; - vi->is_global_var = 1; - vi->may_have_pointers = 1; - make_constraint_from (lhs, vi->id); - return vi; -} - -/* Create a new artificial heap variable with NAME and make a - constraint from it to LHS. Set flags according to a tag used - for tracking restrict pointers and make the artificial heap - point to global memory. */ - -static varinfo_t -make_constraint_from_global_restrict (varinfo_t lhs, const char *name, - bool add_id) -{ - varinfo_t vi = make_constraint_from_restrict (lhs, name, add_id); - make_copy_constraint (vi, nonlocal_id); - return vi; -} - -/* In IPA mode there are varinfos for different aspects of reach - function designator. One for the points-to set of the return - value, one for the variables that are clobbered by the function, - one for its uses and one for each parameter (including a single - glob for remaining variadic arguments). */ - -enum { fi_clobbers = 1, fi_uses = 2, - fi_static_chain = 3, fi_result = 4, fi_parm_base = 5 }; - -/* Get a constraint for the requested part of a function designator FI - when operating in IPA mode. */ - -static struct constraint_expr -get_function_part_constraint (varinfo_t fi, unsigned part) -{ - struct constraint_expr c; - - gcc_assert (in_ipa_mode); - - if (fi->id == anything_id) - { - /* ??? We probably should have a ANYFN special variable. */ - c.var = anything_id; - c.offset = 0; - c.type = SCALAR; - } - else if (fi->decl && TREE_CODE (fi->decl) == FUNCTION_DECL) - { - varinfo_t ai = first_vi_for_offset (fi, part); - if (ai) - c.var = ai->id; - else - c.var = anything_id; - c.offset = 0; - c.type = SCALAR; - } - else - { - c.var = fi->id; - c.offset = part; - c.type = DEREF; - } - - return c; -} - -/* Produce constraints for argument ARG of call STMT with eaf flags - FLAGS. RESULTS is array holding constraints for return value. - CALLESCAPE_ID is variable where call loocal escapes are added. - WRITES_GLOVEL_MEMORY is true if callee may write global memory. */ - -static void -handle_call_arg (gcall *stmt, tree arg, vec *results, int flags, - int callescape_id, bool writes_global_memory) -{ - int relevant_indirect_flags = EAF_NO_INDIRECT_CLOBBER | EAF_NO_INDIRECT_READ - | EAF_NO_INDIRECT_ESCAPE; - int relevant_flags = relevant_indirect_flags - | EAF_NO_DIRECT_CLOBBER - | EAF_NO_DIRECT_READ - | EAF_NO_DIRECT_ESCAPE; - if (gimple_call_lhs (stmt)) - { - relevant_flags |= EAF_NOT_RETURNED_DIRECTLY | EAF_NOT_RETURNED_INDIRECTLY; - relevant_indirect_flags |= EAF_NOT_RETURNED_INDIRECTLY; - - /* If value is never read from it can not be returned indirectly - (except through the escape solution). - For all flags we get these implications right except for - not_returned because we miss return functions in ipa-prop. */ - - if (flags & EAF_NO_DIRECT_READ) - flags |= EAF_NOT_RETURNED_INDIRECTLY; - } - - /* If the argument is not used we can ignore it. - Similarly argument is invisile for us if it not clobbered, does not - escape, is not read and can not be returned. */ - if ((flags & EAF_UNUSED) || ((flags & relevant_flags) == relevant_flags)) - return; - - /* Produce varinfo for direct accesses to ARG. */ - varinfo_t tem = new_var_info (NULL_TREE, "callarg", true); - tem->is_reg_var = true; - make_constraint_to (tem->id, arg); - make_any_offset_constraints (tem); - - bool callarg_transitive = false; - - /* As an compile time optimization if we make no difference between - direct and indirect accesses make arg transitively closed. - This avoids the need to build indir arg and do everything twice. */ - if (((flags & EAF_NO_INDIRECT_CLOBBER) != 0) - == ((flags & EAF_NO_DIRECT_CLOBBER) != 0) - && (((flags & EAF_NO_INDIRECT_READ) != 0) - == ((flags & EAF_NO_DIRECT_READ) != 0)) - && (((flags & EAF_NO_INDIRECT_ESCAPE) != 0) - == ((flags & EAF_NO_DIRECT_ESCAPE) != 0)) - && (((flags & EAF_NOT_RETURNED_INDIRECTLY) != 0) - == ((flags & EAF_NOT_RETURNED_DIRECTLY) != 0))) - { - make_transitive_closure_constraints (tem); - callarg_transitive = true; - } - - /* If necessary, produce varinfo for indirect accesses to ARG. */ - varinfo_t indir_tem = NULL; - if (!callarg_transitive - && (flags & relevant_indirect_flags) != relevant_indirect_flags) - { - struct constraint_expr lhs, rhs; - indir_tem = new_var_info (NULL_TREE, "indircallarg", true); - indir_tem->is_reg_var = true; - - /* indir_term = *tem. */ - lhs.type = SCALAR; - lhs.var = indir_tem->id; - lhs.offset = 0; - - rhs.type = DEREF; - rhs.var = tem->id; - rhs.offset = UNKNOWN_OFFSET; - process_constraint (new_constraint (lhs, rhs)); - - make_any_offset_constraints (indir_tem); - - /* If we do not read indirectly there is no need for transitive closure. - We know there is only one level of indirection. */ - if (!(flags & EAF_NO_INDIRECT_READ)) - make_transitive_closure_constraints (indir_tem); - gcc_checking_assert (!(flags & EAF_NO_DIRECT_READ)); - } - - if (gimple_call_lhs (stmt)) - { - if (!(flags & EAF_NOT_RETURNED_DIRECTLY)) - { - struct constraint_expr cexpr; - cexpr.var = tem->id; - cexpr.type = SCALAR; - cexpr.offset = 0; - results->safe_push (cexpr); - } - if (!callarg_transitive & !(flags & EAF_NOT_RETURNED_INDIRECTLY)) - { - struct constraint_expr cexpr; - cexpr.var = indir_tem->id; - cexpr.type = SCALAR; - cexpr.offset = 0; - results->safe_push (cexpr); - } - } - - if (!(flags & EAF_NO_DIRECT_READ)) - { - varinfo_t uses = get_call_use_vi (stmt); - make_copy_constraint (uses, tem->id); - if (!callarg_transitive & !(flags & EAF_NO_INDIRECT_READ)) - make_copy_constraint (uses, indir_tem->id); - } - else - /* To read indirectly we need to read directly. */ - gcc_checking_assert (flags & EAF_NO_INDIRECT_READ); - - if (!(flags & EAF_NO_DIRECT_CLOBBER)) - { - struct constraint_expr lhs, rhs; - - /* *arg = callescape. */ - lhs.type = DEREF; - lhs.var = tem->id; - lhs.offset = 0; - - rhs.type = SCALAR; - rhs.var = callescape_id; - rhs.offset = 0; - process_constraint (new_constraint (lhs, rhs)); - - /* callclobbered = arg. */ - make_copy_constraint (get_call_clobber_vi (stmt), tem->id); - } - if (!callarg_transitive & !(flags & EAF_NO_INDIRECT_CLOBBER)) - { - struct constraint_expr lhs, rhs; - - /* *indir_arg = callescape. */ - lhs.type = DEREF; - lhs.var = indir_tem->id; - lhs.offset = 0; - - rhs.type = SCALAR; - rhs.var = callescape_id; - rhs.offset = 0; - process_constraint (new_constraint (lhs, rhs)); - - /* callclobbered = indir_arg. */ - make_copy_constraint (get_call_clobber_vi (stmt), indir_tem->id); - } - - if (!(flags & (EAF_NO_DIRECT_ESCAPE | EAF_NO_INDIRECT_ESCAPE))) - { - struct constraint_expr lhs, rhs; - - /* callescape = arg; */ - lhs.var = callescape_id; - lhs.offset = 0; - lhs.type = SCALAR; - - rhs.var = tem->id; - rhs.offset = 0; - rhs.type = SCALAR; - process_constraint (new_constraint (lhs, rhs)); - - if (writes_global_memory) - make_escape_constraint (arg); - } - else if (!callarg_transitive & !(flags & EAF_NO_INDIRECT_ESCAPE)) - { - struct constraint_expr lhs, rhs; - - /* callescape = *(indir_arg + UNKNOWN); */ - lhs.var = callescape_id; - lhs.offset = 0; - lhs.type = SCALAR; - - rhs.var = indir_tem->id; - rhs.offset = 0; - rhs.type = SCALAR; - process_constraint (new_constraint (lhs, rhs)); - - if (writes_global_memory) - make_indirect_escape_constraint (tem); - } -} - -/* Determine global memory access of call STMT and update - WRITES_GLOBAL_MEMORY, READS_GLOBAL_MEMORY and USES_GLOBAL_MEMORY. */ - -static void -determine_global_memory_access (gcall *stmt, - bool *writes_global_memory, - bool *reads_global_memory, - bool *uses_global_memory) -{ - tree callee; - cgraph_node *node; - modref_summary *summary; - - /* We need to detrmine reads to set uses. */ - gcc_assert (!uses_global_memory || reads_global_memory); - - if ((callee = gimple_call_fndecl (stmt)) != NULL_TREE - && (node = cgraph_node::get (callee)) != NULL - && (summary = get_modref_function_summary (node))) - { - if (writes_global_memory && *writes_global_memory) - *writes_global_memory = summary->global_memory_written; - if (reads_global_memory && *reads_global_memory) - *reads_global_memory = summary->global_memory_read; - if (reads_global_memory && uses_global_memory - && !summary->calls_interposable - && !*reads_global_memory && node->binds_to_current_def_p ()) - *uses_global_memory = false; - } - if ((writes_global_memory && *writes_global_memory) - || (uses_global_memory && *uses_global_memory) - || (reads_global_memory && *reads_global_memory)) - { - attr_fnspec fnspec = gimple_call_fnspec (stmt); - if (fnspec.known_p ()) - { - if (writes_global_memory - && !fnspec.global_memory_written_p ()) - *writes_global_memory = false; - if (reads_global_memory && !fnspec.global_memory_read_p ()) - { - *reads_global_memory = false; - if (uses_global_memory) - *uses_global_memory = false; - } - } - } -} - -/* For non-IPA mode, generate constraints necessary for a call on the - RHS and collect return value constraint to RESULTS to be used later in - handle_lhs_call. - - IMPLICIT_EAF_FLAGS are added to each function argument. If - WRITES_GLOBAL_MEMORY is true function is assumed to possibly write to global - memory. Similar for READS_GLOBAL_MEMORY. */ - -static void -handle_rhs_call (gcall *stmt, vec *results, - int implicit_eaf_flags, - bool writes_global_memory, - bool reads_global_memory) -{ - determine_global_memory_access (stmt, &writes_global_memory, - &reads_global_memory, - NULL); - - varinfo_t callescape = new_var_info (NULL_TREE, "callescape", true); - - /* If function can use global memory, add it to callescape - and to possible return values. If not we can still use/return addresses - of global symbols. */ - struct constraint_expr lhs, rhs; - - lhs.type = SCALAR; - lhs.var = callescape->id; - lhs.offset = 0; - - rhs.type = reads_global_memory ? SCALAR : ADDRESSOF; - rhs.var = nonlocal_id; - rhs.offset = 0; - - process_constraint (new_constraint (lhs, rhs)); - results->safe_push (rhs); - - varinfo_t uses = get_call_use_vi (stmt); - make_copy_constraint (uses, callescape->id); - - for (unsigned i = 0; i < gimple_call_num_args (stmt); ++i) - { - tree arg = gimple_call_arg (stmt, i); - int flags = gimple_call_arg_flags (stmt, i); - handle_call_arg (stmt, arg, results, - flags | implicit_eaf_flags, - callescape->id, writes_global_memory); - } - - /* The static chain escapes as well. */ - if (gimple_call_chain (stmt)) - handle_call_arg (stmt, gimple_call_chain (stmt), results, - implicit_eaf_flags - | gimple_call_static_chain_flags (stmt), - callescape->id, writes_global_memory); - - /* And if we applied NRV the address of the return slot escapes as well. */ - if (gimple_call_return_slot_opt_p (stmt) - && gimple_call_lhs (stmt) != NULL_TREE - && TREE_ADDRESSABLE (TREE_TYPE (gimple_call_lhs (stmt)))) - { - int flags = gimple_call_retslot_flags (stmt); - const int relevant_flags = EAF_NO_DIRECT_ESCAPE - | EAF_NOT_RETURNED_DIRECTLY; - - if (!(flags & EAF_UNUSED) && (flags & relevant_flags) != relevant_flags) - { - auto_vec tmpc; - - get_constraint_for_address_of (gimple_call_lhs (stmt), &tmpc); - - if (!(flags & EAF_NO_DIRECT_ESCAPE)) - { - make_constraints_to (callescape->id, tmpc); - if (writes_global_memory) - make_constraints_to (escaped_id, tmpc); - } - if (!(flags & EAF_NOT_RETURNED_DIRECTLY)) - { - struct constraint_expr *c; - unsigned i; - FOR_EACH_VEC_ELT (tmpc, i, c) - results->safe_push (*c); - } - } - } -} - -/* For non-IPA mode, generate constraints necessary for a call - that returns a pointer and assigns it to LHS. This simply makes - the LHS point to global and escaped variables. */ - -static void -handle_lhs_call (gcall *stmt, tree lhs, int flags, vec &rhsc, - tree fndecl) -{ - auto_vec lhsc; - - get_constraint_for (lhs, &lhsc); - /* If the store is to a global decl make sure to - add proper escape constraints. */ - lhs = get_base_address (lhs); - if (lhs - && DECL_P (lhs) - && is_global_var (lhs)) - { - struct constraint_expr tmpc; - tmpc.var = escaped_id; - tmpc.offset = 0; - tmpc.type = SCALAR; - lhsc.safe_push (tmpc); - } - - /* If the call returns an argument unmodified override the rhs - constraints. */ - if (flags & ERF_RETURNS_ARG - && (flags & ERF_RETURN_ARG_MASK) < gimple_call_num_args (stmt)) - { - tree arg; - rhsc.truncate (0); - arg = gimple_call_arg (stmt, flags & ERF_RETURN_ARG_MASK); - get_constraint_for (arg, &rhsc); - process_all_all_constraints (lhsc, rhsc); - rhsc.truncate (0); - } - else if (flags & ERF_NOALIAS) - { - varinfo_t vi; - struct constraint_expr tmpc; - rhsc.truncate (0); - vi = make_heapvar ("HEAP", true); - /* We are marking allocated storage local, we deal with it becoming - global by escaping and setting of vars_contains_escaped_heap. */ - DECL_EXTERNAL (vi->decl) = 0; - vi->is_global_var = 0; - /* If this is not a real malloc call assume the memory was - initialized and thus may point to global memory. All - builtin functions with the malloc attribute behave in a sane way. */ - if (!fndecl - || !fndecl_built_in_p (fndecl, BUILT_IN_NORMAL)) - make_constraint_from (vi, nonlocal_id); - tmpc.var = vi->id; - tmpc.offset = 0; - tmpc.type = ADDRESSOF; - rhsc.safe_push (tmpc); - process_all_all_constraints (lhsc, rhsc); - rhsc.truncate (0); - } - else - process_all_all_constraints (lhsc, rhsc); -} - - -/* Return the varinfo for the callee of CALL. */ - -static varinfo_t -get_fi_for_callee (gcall *call) -{ - tree decl, fn = gimple_call_fn (call); - - if (fn && TREE_CODE (fn) == OBJ_TYPE_REF) - fn = OBJ_TYPE_REF_EXPR (fn); - - /* If we can directly resolve the function being called, do so. - Otherwise, it must be some sort of indirect expression that - we should still be able to handle. */ - decl = gimple_call_addr_fndecl (fn); - if (decl) - return get_vi_for_tree (decl); - - /* If the function is anything other than a SSA name pointer we have no - clue and should be getting ANYFN (well, ANYTHING for now). */ - if (!fn || TREE_CODE (fn) != SSA_NAME) - return get_varinfo (anything_id); - - if (SSA_NAME_IS_DEFAULT_DEF (fn) - && (TREE_CODE (SSA_NAME_VAR (fn)) == PARM_DECL - || TREE_CODE (SSA_NAME_VAR (fn)) == RESULT_DECL)) - fn = SSA_NAME_VAR (fn); - - return get_vi_for_tree (fn); -} - -/* Create constraints for assigning call argument ARG to the incoming parameter - INDEX of function FI. */ - -static void -find_func_aliases_for_call_arg (varinfo_t fi, unsigned index, tree arg) -{ - struct constraint_expr lhs; - lhs = get_function_part_constraint (fi, fi_parm_base + index); - - auto_vec rhsc; - get_constraint_for_rhs (arg, &rhsc); - - unsigned j; - struct constraint_expr *rhsp; - FOR_EACH_VEC_ELT (rhsc, j, rhsp) - process_constraint (new_constraint (lhs, *rhsp)); -} - -/* Return true if FNDECL may be part of another lto partition. */ - -static bool -fndecl_maybe_in_other_partition (tree fndecl) -{ - cgraph_node *fn_node = cgraph_node::get (fndecl); - if (fn_node == NULL) - return true; - - return fn_node->in_other_partition; -} - -/* Create constraints for the builtin call T. Return true if the call - was handled, otherwise false. */ - -static bool -find_func_aliases_for_builtin_call (struct function *fn, gcall *t) -{ - tree fndecl = gimple_call_fndecl (t); - auto_vec lhsc; - auto_vec rhsc; - varinfo_t fi; - - if (gimple_call_builtin_p (t, BUILT_IN_NORMAL)) - /* ??? All builtins that are handled here need to be handled - in the alias-oracle query functions explicitly! */ - switch (DECL_FUNCTION_CODE (fndecl)) - { - /* All the following functions return a pointer to the same object - as their first argument points to. The functions do not add - to the ESCAPED solution. The functions make the first argument - pointed to memory point to what the second argument pointed to - memory points to. */ - case BUILT_IN_STRCPY: - case BUILT_IN_STRNCPY: - case BUILT_IN_BCOPY: - case BUILT_IN_MEMCPY: - case BUILT_IN_MEMMOVE: - case BUILT_IN_MEMPCPY: - case BUILT_IN_STPCPY: - case BUILT_IN_STPNCPY: - case BUILT_IN_STRCAT: - case BUILT_IN_STRNCAT: - case BUILT_IN_STRCPY_CHK: - case BUILT_IN_STRNCPY_CHK: - case BUILT_IN_MEMCPY_CHK: - case BUILT_IN_MEMMOVE_CHK: - case BUILT_IN_MEMPCPY_CHK: - case BUILT_IN_STPCPY_CHK: - case BUILT_IN_STPNCPY_CHK: - case BUILT_IN_STRCAT_CHK: - case BUILT_IN_STRNCAT_CHK: - case BUILT_IN_TM_MEMCPY: - case BUILT_IN_TM_MEMMOVE: - { - tree res = gimple_call_lhs (t); - tree dest = gimple_call_arg (t, (DECL_FUNCTION_CODE (fndecl) - == BUILT_IN_BCOPY ? 1 : 0)); - tree src = gimple_call_arg (t, (DECL_FUNCTION_CODE (fndecl) - == BUILT_IN_BCOPY ? 0 : 1)); - if (res != NULL_TREE) - { - get_constraint_for (res, &lhsc); - if (DECL_FUNCTION_CODE (fndecl) == BUILT_IN_MEMPCPY - || DECL_FUNCTION_CODE (fndecl) == BUILT_IN_STPCPY - || DECL_FUNCTION_CODE (fndecl) == BUILT_IN_STPNCPY - || DECL_FUNCTION_CODE (fndecl) == BUILT_IN_MEMPCPY_CHK - || DECL_FUNCTION_CODE (fndecl) == BUILT_IN_STPCPY_CHK - || DECL_FUNCTION_CODE (fndecl) == BUILT_IN_STPNCPY_CHK) - get_constraint_for_ptr_offset (dest, NULL_TREE, &rhsc); - else - get_constraint_for (dest, &rhsc); - process_all_all_constraints (lhsc, rhsc); - lhsc.truncate (0); - rhsc.truncate (0); - } - get_constraint_for_ptr_offset (dest, NULL_TREE, &lhsc); - get_constraint_for_ptr_offset (src, NULL_TREE, &rhsc); - do_deref (&lhsc); - do_deref (&rhsc); - process_all_all_constraints (lhsc, rhsc); - return true; - } - case BUILT_IN_MEMSET: - case BUILT_IN_MEMSET_CHK: - case BUILT_IN_TM_MEMSET: - { - tree res = gimple_call_lhs (t); - tree dest = gimple_call_arg (t, 0); - unsigned i; - ce_s *lhsp; - struct constraint_expr ac; - if (res != NULL_TREE) - { - get_constraint_for (res, &lhsc); - get_constraint_for (dest, &rhsc); - process_all_all_constraints (lhsc, rhsc); - lhsc.truncate (0); - } - get_constraint_for_ptr_offset (dest, NULL_TREE, &lhsc); - do_deref (&lhsc); - if (flag_delete_null_pointer_checks - && integer_zerop (gimple_call_arg (t, 1))) - { - ac.type = ADDRESSOF; - ac.var = nothing_id; - } - else - { - ac.type = SCALAR; - ac.var = integer_id; - } - ac.offset = 0; - FOR_EACH_VEC_ELT (lhsc, i, lhsp) - process_constraint (new_constraint (*lhsp, ac)); - return true; - } - case BUILT_IN_STACK_SAVE: - case BUILT_IN_STACK_RESTORE: - /* Nothing interesting happens. */ - return true; - case BUILT_IN_ALLOCA: - case BUILT_IN_ALLOCA_WITH_ALIGN: - case BUILT_IN_ALLOCA_WITH_ALIGN_AND_MAX: - { - tree ptr = gimple_call_lhs (t); - if (ptr == NULL_TREE) - return true; - get_constraint_for (ptr, &lhsc); - varinfo_t vi = make_heapvar ("HEAP", true); - /* Alloca storage is never global. To exempt it from escaped - handling make it a non-heap var. */ - DECL_EXTERNAL (vi->decl) = 0; - vi->is_global_var = 0; - vi->is_heap_var = 0; - struct constraint_expr tmpc; - tmpc.var = vi->id; - tmpc.offset = 0; - tmpc.type = ADDRESSOF; - rhsc.safe_push (tmpc); - process_all_all_constraints (lhsc, rhsc); - return true; - } - case BUILT_IN_POSIX_MEMALIGN: - { - tree ptrptr = gimple_call_arg (t, 0); - get_constraint_for (ptrptr, &lhsc); - do_deref (&lhsc); - varinfo_t vi = make_heapvar ("HEAP", true); - /* We are marking allocated storage local, we deal with it becoming - global by escaping and setting of vars_contains_escaped_heap. */ - DECL_EXTERNAL (vi->decl) = 0; - vi->is_global_var = 0; - struct constraint_expr tmpc; - tmpc.var = vi->id; - tmpc.offset = 0; - tmpc.type = ADDRESSOF; - rhsc.safe_push (tmpc); - process_all_all_constraints (lhsc, rhsc); - return true; - } - case BUILT_IN_ASSUME_ALIGNED: - { - tree res = gimple_call_lhs (t); - tree dest = gimple_call_arg (t, 0); - if (res != NULL_TREE) - { - get_constraint_for (res, &lhsc); - get_constraint_for (dest, &rhsc); - process_all_all_constraints (lhsc, rhsc); - } - return true; - } - /* All the following functions do not return pointers, do not - modify the points-to sets of memory reachable from their - arguments and do not add to the ESCAPED solution. */ - case BUILT_IN_SINCOS: - case BUILT_IN_SINCOSF: - case BUILT_IN_SINCOSL: - case BUILT_IN_FREXP: - case BUILT_IN_FREXPF: - case BUILT_IN_FREXPL: - case BUILT_IN_GAMMA_R: - case BUILT_IN_GAMMAF_R: - case BUILT_IN_GAMMAL_R: - case BUILT_IN_LGAMMA_R: - case BUILT_IN_LGAMMAF_R: - case BUILT_IN_LGAMMAL_R: - case BUILT_IN_MODF: - case BUILT_IN_MODFF: - case BUILT_IN_MODFL: - case BUILT_IN_REMQUO: - case BUILT_IN_REMQUOF: - case BUILT_IN_REMQUOL: - case BUILT_IN_FREE: - return true; - case BUILT_IN_STRDUP: - case BUILT_IN_STRNDUP: - case BUILT_IN_REALLOC: - if (gimple_call_lhs (t)) - { - auto_vec rhsc; - handle_lhs_call (t, gimple_call_lhs (t), - gimple_call_return_flags (t) | ERF_NOALIAS, - rhsc, fndecl); - get_constraint_for_ptr_offset (gimple_call_lhs (t), - NULL_TREE, &lhsc); - get_constraint_for_ptr_offset (gimple_call_arg (t, 0), - NULL_TREE, &rhsc); - do_deref (&lhsc); - do_deref (&rhsc); - process_all_all_constraints (lhsc, rhsc); - lhsc.truncate (0); - rhsc.truncate (0); - /* For realloc the resulting pointer can be equal to the - argument as well. But only doing this wouldn't be - correct because with ptr == 0 realloc behaves like malloc. */ - if (DECL_FUNCTION_CODE (fndecl) == BUILT_IN_REALLOC) - { - get_constraint_for (gimple_call_lhs (t), &lhsc); - get_constraint_for (gimple_call_arg (t, 0), &rhsc); - process_all_all_constraints (lhsc, rhsc); - } - return true; - } - break; - /* String / character search functions return a pointer into the - source string or NULL. */ - case BUILT_IN_INDEX: - case BUILT_IN_STRCHR: - case BUILT_IN_STRRCHR: - case BUILT_IN_MEMCHR: - case BUILT_IN_STRSTR: - case BUILT_IN_STRPBRK: - if (gimple_call_lhs (t)) - { - tree src = gimple_call_arg (t, 0); - get_constraint_for_ptr_offset (src, NULL_TREE, &rhsc); - constraint_expr nul; - nul.var = nothing_id; - nul.offset = 0; - nul.type = ADDRESSOF; - rhsc.safe_push (nul); - get_constraint_for (gimple_call_lhs (t), &lhsc); - process_all_all_constraints (lhsc, rhsc); - } - return true; - /* Pure functions that return something not based on any object and - that use the memory pointed to by their arguments (but not - transitively). */ - case BUILT_IN_STRCMP: - case BUILT_IN_STRCMP_EQ: - case BUILT_IN_STRNCMP: - case BUILT_IN_STRNCMP_EQ: - case BUILT_IN_STRCASECMP: - case BUILT_IN_STRNCASECMP: - case BUILT_IN_MEMCMP: - case BUILT_IN_BCMP: - case BUILT_IN_STRSPN: - case BUILT_IN_STRCSPN: - { - varinfo_t uses = get_call_use_vi (t); - make_any_offset_constraints (uses); - make_constraint_to (uses->id, gimple_call_arg (t, 0)); - make_constraint_to (uses->id, gimple_call_arg (t, 1)); - /* No constraints are necessary for the return value. */ - return true; - } - case BUILT_IN_STRLEN: - { - varinfo_t uses = get_call_use_vi (t); - make_any_offset_constraints (uses); - make_constraint_to (uses->id, gimple_call_arg (t, 0)); - /* No constraints are necessary for the return value. */ - return true; - } - case BUILT_IN_OBJECT_SIZE: - case BUILT_IN_CONSTANT_P: - { - /* No constraints are necessary for the return value or the - arguments. */ - return true; - } - /* Trampolines are special - they set up passing the static - frame. */ - case BUILT_IN_INIT_TRAMPOLINE: - { - tree tramp = gimple_call_arg (t, 0); - tree nfunc = gimple_call_arg (t, 1); - tree frame = gimple_call_arg (t, 2); - unsigned i; - struct constraint_expr lhs, *rhsp; - if (in_ipa_mode) - { - varinfo_t nfi = NULL; - gcc_assert (TREE_CODE (nfunc) == ADDR_EXPR); - nfi = lookup_vi_for_tree (TREE_OPERAND (nfunc, 0)); - if (nfi) - { - lhs = get_function_part_constraint (nfi, fi_static_chain); - get_constraint_for (frame, &rhsc); - FOR_EACH_VEC_ELT (rhsc, i, rhsp) - process_constraint (new_constraint (lhs, *rhsp)); - rhsc.truncate (0); - - /* Make the frame point to the function for - the trampoline adjustment call. */ - get_constraint_for (tramp, &lhsc); - do_deref (&lhsc); - get_constraint_for (nfunc, &rhsc); - process_all_all_constraints (lhsc, rhsc); - - return true; - } - } - /* Else fallthru to generic handling which will let - the frame escape. */ - break; - } - case BUILT_IN_ADJUST_TRAMPOLINE: - { - tree tramp = gimple_call_arg (t, 0); - tree res = gimple_call_lhs (t); - if (in_ipa_mode && res) - { - get_constraint_for (res, &lhsc); - get_constraint_for (tramp, &rhsc); - do_deref (&rhsc); - process_all_all_constraints (lhsc, rhsc); - } - return true; - } - CASE_BUILT_IN_TM_STORE (1): - CASE_BUILT_IN_TM_STORE (2): - CASE_BUILT_IN_TM_STORE (4): - CASE_BUILT_IN_TM_STORE (8): - CASE_BUILT_IN_TM_STORE (FLOAT): - CASE_BUILT_IN_TM_STORE (DOUBLE): - CASE_BUILT_IN_TM_STORE (LDOUBLE): - CASE_BUILT_IN_TM_STORE (M64): - CASE_BUILT_IN_TM_STORE (M128): - CASE_BUILT_IN_TM_STORE (M256): - { - tree addr = gimple_call_arg (t, 0); - tree src = gimple_call_arg (t, 1); - - get_constraint_for (addr, &lhsc); - do_deref (&lhsc); - get_constraint_for (src, &rhsc); - process_all_all_constraints (lhsc, rhsc); - return true; - } - CASE_BUILT_IN_TM_LOAD (1): - CASE_BUILT_IN_TM_LOAD (2): - CASE_BUILT_IN_TM_LOAD (4): - CASE_BUILT_IN_TM_LOAD (8): - CASE_BUILT_IN_TM_LOAD (FLOAT): - CASE_BUILT_IN_TM_LOAD (DOUBLE): - CASE_BUILT_IN_TM_LOAD (LDOUBLE): - CASE_BUILT_IN_TM_LOAD (M64): - CASE_BUILT_IN_TM_LOAD (M128): - CASE_BUILT_IN_TM_LOAD (M256): - { - tree dest = gimple_call_lhs (t); - tree addr = gimple_call_arg (t, 0); - - get_constraint_for (dest, &lhsc); - get_constraint_for (addr, &rhsc); - do_deref (&rhsc); - process_all_all_constraints (lhsc, rhsc); - return true; - } - /* Variadic argument handling needs to be handled in IPA - mode as well. */ - case BUILT_IN_VA_START: - { - tree valist = gimple_call_arg (t, 0); - struct constraint_expr rhs, *lhsp; - unsigned i; - get_constraint_for_ptr_offset (valist, NULL_TREE, &lhsc); - do_deref (&lhsc); - /* The va_list gets access to pointers in variadic - arguments. Which we know in the case of IPA analysis - and otherwise are just all nonlocal variables. */ - if (in_ipa_mode) - { - fi = lookup_vi_for_tree (fn->decl); - rhs = get_function_part_constraint (fi, ~0); - rhs.type = ADDRESSOF; - } - else - { - rhs.var = nonlocal_id; - rhs.type = ADDRESSOF; - rhs.offset = 0; - } - FOR_EACH_VEC_ELT (lhsc, i, lhsp) - process_constraint (new_constraint (*lhsp, rhs)); - /* va_list is clobbered. */ - make_constraint_to (get_call_clobber_vi (t)->id, valist); - return true; - } - /* va_end doesn't have any effect that matters. */ - case BUILT_IN_VA_END: - return true; - /* Alternate return. Simply give up for now. */ - case BUILT_IN_RETURN: - { - fi = NULL; - if (!in_ipa_mode - || !(fi = get_vi_for_tree (fn->decl))) - make_constraint_from (get_varinfo (escaped_id), anything_id); - else if (in_ipa_mode - && fi != NULL) - { - struct constraint_expr lhs, rhs; - lhs = get_function_part_constraint (fi, fi_result); - rhs.var = anything_id; - rhs.offset = 0; - rhs.type = SCALAR; - process_constraint (new_constraint (lhs, rhs)); - } - return true; - } - case BUILT_IN_GOMP_PARALLEL: - case BUILT_IN_GOACC_PARALLEL: - { - if (in_ipa_mode) - { - unsigned int fnpos, argpos; - switch (DECL_FUNCTION_CODE (fndecl)) - { - case BUILT_IN_GOMP_PARALLEL: - /* __builtin_GOMP_parallel (fn, data, num_threads, flags). */ - fnpos = 0; - argpos = 1; - break; - case BUILT_IN_GOACC_PARALLEL: - /* __builtin_GOACC_parallel (flags_m, fn, mapnum, hostaddrs, - sizes, kinds, ...). */ - fnpos = 1; - argpos = 3; - break; - default: - gcc_unreachable (); - } - - tree fnarg = gimple_call_arg (t, fnpos); - gcc_assert (TREE_CODE (fnarg) == ADDR_EXPR); - tree fndecl = TREE_OPERAND (fnarg, 0); - if (fndecl_maybe_in_other_partition (fndecl)) - /* Fallthru to general call handling. */ - break; - - tree arg = gimple_call_arg (t, argpos); - - varinfo_t fi = get_vi_for_tree (fndecl); - find_func_aliases_for_call_arg (fi, 0, arg); - return true; - } - /* Else fallthru to generic call handling. */ - break; - } - /* printf-style functions may have hooks to set pointers to - point to somewhere into the generated string. Leave them - for a later exercise... */ - default: - /* Fallthru to general call handling. */; - } - - return false; -} - -/* Create constraints for the call T. */ - -static void -find_func_aliases_for_call (struct function *fn, gcall *t) -{ - tree fndecl = gimple_call_fndecl (t); - varinfo_t fi; - - if (fndecl != NULL_TREE - && fndecl_built_in_p (fndecl) - && find_func_aliases_for_builtin_call (fn, t)) - return; - - if (gimple_call_internal_p (t, IFN_DEFERRED_INIT)) - return; - - fi = get_fi_for_callee (t); - if (!in_ipa_mode - || (fi->decl && fndecl && !fi->is_fn_info)) - { - auto_vec rhsc; - int flags = gimple_call_flags (t); - - /* Const functions can return their arguments and addresses - of global memory but not of escaped memory. */ - if (flags & (ECF_CONST|ECF_NOVOPS)) - { - if (gimple_call_lhs (t)) - handle_rhs_call (t, &rhsc, implicit_const_eaf_flags, false, false); - } - /* Pure functions can return addresses in and of memory - reachable from their arguments, but they are not an escape - point for reachable memory of their arguments. */ - else if (flags & (ECF_PURE|ECF_LOOPING_CONST_OR_PURE)) - handle_rhs_call (t, &rhsc, implicit_pure_eaf_flags, false, true); - /* If the call is to a replaceable operator delete and results - from a delete expression as opposed to a direct call to - such operator, then the effects for PTA (in particular - the escaping of the pointer) can be ignored. */ - else if (fndecl - && DECL_IS_OPERATOR_DELETE_P (fndecl) - && gimple_call_from_new_or_delete (t)) - ; - else - handle_rhs_call (t, &rhsc, 0, true, true); - if (gimple_call_lhs (t)) - handle_lhs_call (t, gimple_call_lhs (t), - gimple_call_return_flags (t), rhsc, fndecl); - } - else - { - auto_vec rhsc; - tree lhsop; - unsigned j; - - /* Assign all the passed arguments to the appropriate incoming - parameters of the function. */ - for (j = 0; j < gimple_call_num_args (t); j++) - { - tree arg = gimple_call_arg (t, j); - find_func_aliases_for_call_arg (fi, j, arg); - } - - /* If we are returning a value, assign it to the result. */ - lhsop = gimple_call_lhs (t); - if (lhsop) - { - auto_vec lhsc; - struct constraint_expr rhs; - struct constraint_expr *lhsp; - bool aggr_p = aggregate_value_p (lhsop, gimple_call_fntype (t)); - - get_constraint_for (lhsop, &lhsc); - rhs = get_function_part_constraint (fi, fi_result); - if (aggr_p) - { - auto_vec tem; - tem.quick_push (rhs); - do_deref (&tem); - gcc_checking_assert (tem.length () == 1); - rhs = tem[0]; - } - FOR_EACH_VEC_ELT (lhsc, j, lhsp) - process_constraint (new_constraint (*lhsp, rhs)); - - /* If we pass the result decl by reference, honor that. */ - if (aggr_p) - { - struct constraint_expr lhs; - struct constraint_expr *rhsp; - - get_constraint_for_address_of (lhsop, &rhsc); - lhs = get_function_part_constraint (fi, fi_result); - FOR_EACH_VEC_ELT (rhsc, j, rhsp) - process_constraint (new_constraint (lhs, *rhsp)); - rhsc.truncate (0); - } - } - - /* If we use a static chain, pass it along. */ - if (gimple_call_chain (t)) - { - struct constraint_expr lhs; - struct constraint_expr *rhsp; - - get_constraint_for (gimple_call_chain (t), &rhsc); - lhs = get_function_part_constraint (fi, fi_static_chain); - FOR_EACH_VEC_ELT (rhsc, j, rhsp) - process_constraint (new_constraint (lhs, *rhsp)); - } - } -} - -/* Walk statement T setting up aliasing constraints according to the - references found in T. This function is the main part of the - constraint builder. AI points to auxiliary alias information used - when building alias sets and computing alias grouping heuristics. */ - -static void -find_func_aliases (struct function *fn, gimple *origt) -{ - gimple *t = origt; - auto_vec lhsc; - auto_vec rhsc; - varinfo_t fi; - - /* Now build constraints expressions. */ - if (gimple_code (t) == GIMPLE_PHI) - { - /* For a phi node, assign all the arguments to - the result. */ - get_constraint_for (gimple_phi_result (t), &lhsc); - for (unsigned i = 0; i < gimple_phi_num_args (t); i++) - { - get_constraint_for_rhs (gimple_phi_arg_def (t, i), &rhsc); - process_all_all_constraints (lhsc, rhsc); - rhsc.truncate (0); - } - } - /* In IPA mode, we need to generate constraints to pass call - arguments through their calls. There are two cases, - either a GIMPLE_CALL returning a value, or just a plain - GIMPLE_CALL when we are not. - - In non-ipa mode, we need to generate constraints for each - pointer passed by address. */ - else if (is_gimple_call (t)) - find_func_aliases_for_call (fn, as_a (t)); - - /* Otherwise, just a regular assignment statement. Only care about - operations with pointer result, others are dealt with as escape - points if they have pointer operands. */ - else if (is_gimple_assign (t)) - { - /* Otherwise, just a regular assignment statement. */ - tree lhsop = gimple_assign_lhs (t); - tree rhsop = (gimple_num_ops (t) == 2) ? gimple_assign_rhs1 (t) : NULL; - - if (rhsop && TREE_CLOBBER_P (rhsop)) - /* Ignore clobbers, they don't actually store anything into - the LHS. */ - ; - else if (rhsop && AGGREGATE_TYPE_P (TREE_TYPE (lhsop))) - do_structure_copy (lhsop, rhsop); - else - { - enum tree_code code = gimple_assign_rhs_code (t); - - get_constraint_for (lhsop, &lhsc); - - if (code == POINTER_PLUS_EXPR) - get_constraint_for_ptr_offset (gimple_assign_rhs1 (t), - gimple_assign_rhs2 (t), &rhsc); - else if (code == POINTER_DIFF_EXPR) - /* The result is not a pointer (part). */ - ; - else if (code == BIT_AND_EXPR - && TREE_CODE (gimple_assign_rhs2 (t)) == INTEGER_CST) - { - /* Aligning a pointer via a BIT_AND_EXPR is offsetting - the pointer. Handle it by offsetting it by UNKNOWN. */ - get_constraint_for_ptr_offset (gimple_assign_rhs1 (t), - NULL_TREE, &rhsc); - } - else if (code == TRUNC_DIV_EXPR - || code == CEIL_DIV_EXPR - || code == FLOOR_DIV_EXPR - || code == ROUND_DIV_EXPR - || code == EXACT_DIV_EXPR - || code == TRUNC_MOD_EXPR - || code == CEIL_MOD_EXPR - || code == FLOOR_MOD_EXPR - || code == ROUND_MOD_EXPR) - /* Division and modulo transfer the pointer from the LHS. */ - get_constraint_for_ptr_offset (gimple_assign_rhs1 (t), - NULL_TREE, &rhsc); - else if (CONVERT_EXPR_CODE_P (code) - || gimple_assign_single_p (t)) - /* See through conversions, single RHS are handled by - get_constraint_for_rhs. */ - get_constraint_for_rhs (rhsop, &rhsc); - else if (code == COND_EXPR) - { - /* The result is a merge of both COND_EXPR arms. */ - auto_vec tmp; - struct constraint_expr *rhsp; - unsigned i; - get_constraint_for_rhs (gimple_assign_rhs2 (t), &rhsc); - get_constraint_for_rhs (gimple_assign_rhs3 (t), &tmp); - FOR_EACH_VEC_ELT (tmp, i, rhsp) - rhsc.safe_push (*rhsp); - } - else if (truth_value_p (code)) - /* Truth value results are not pointer (parts). Or at least - very unreasonable obfuscation of a part. */ - ; - else - { - /* All other operations are possibly offsetting merges. */ - auto_vec tmp; - struct constraint_expr *rhsp; - unsigned i, j; - get_constraint_for_ptr_offset (gimple_assign_rhs1 (t), - NULL_TREE, &rhsc); - for (i = 2; i < gimple_num_ops (t); ++i) - { - get_constraint_for_ptr_offset (gimple_op (t, i), - NULL_TREE, &tmp); - FOR_EACH_VEC_ELT (tmp, j, rhsp) - rhsc.safe_push (*rhsp); - tmp.truncate (0); - } - } - process_all_all_constraints (lhsc, rhsc); - } - /* If there is a store to a global variable the rhs escapes. */ - if ((lhsop = get_base_address (lhsop)) != NULL_TREE - && DECL_P (lhsop)) - { - varinfo_t vi = get_vi_for_tree (lhsop); - if ((! in_ipa_mode && vi->is_global_var) - || vi->is_ipa_escape_point) - make_escape_constraint (rhsop); - } - } - /* Handle escapes through return. */ - else if (gimple_code (t) == GIMPLE_RETURN - && gimple_return_retval (as_a (t)) != NULL_TREE) - { - greturn *return_stmt = as_a (t); - tree retval = gimple_return_retval (return_stmt); - if (!in_ipa_mode) - make_constraint_to (escaped_return_id, retval); - else - { - struct constraint_expr lhs ; - struct constraint_expr *rhsp; - unsigned i; - - fi = lookup_vi_for_tree (fn->decl); - lhs = get_function_part_constraint (fi, fi_result); - get_constraint_for_rhs (retval, &rhsc); - FOR_EACH_VEC_ELT (rhsc, i, rhsp) - process_constraint (new_constraint (lhs, *rhsp)); - } - } - /* Handle asms conservatively by adding escape constraints to everything. */ - else if (gasm *asm_stmt = dyn_cast (t)) - { - unsigned i, noutputs; - const char **oconstraints; - const char *constraint; - bool allows_mem, allows_reg, is_inout; - - noutputs = gimple_asm_noutputs (asm_stmt); - oconstraints = XALLOCAVEC (const char *, noutputs); - - for (i = 0; i < noutputs; ++i) - { - tree link = gimple_asm_output_op (asm_stmt, i); - tree op = TREE_VALUE (link); - - constraint = TREE_STRING_POINTER (TREE_VALUE (TREE_PURPOSE (link))); - oconstraints[i] = constraint; - parse_output_constraint (&constraint, i, 0, 0, &allows_mem, - &allows_reg, &is_inout, nullptr); - - /* A memory constraint makes the address of the operand escape. */ - if (!allows_reg && allows_mem) - { - auto_vec tmpc; - get_constraint_for_address_of (op, &tmpc); - make_constraints_to (escaped_id, tmpc); - } - - /* The asm may read global memory, so outputs may point to - any global memory. */ - if (op) - { - auto_vec lhsc; - struct constraint_expr rhsc, *lhsp; - unsigned j; - get_constraint_for (op, &lhsc); - rhsc.var = nonlocal_id; - rhsc.offset = 0; - rhsc.type = SCALAR; - FOR_EACH_VEC_ELT (lhsc, j, lhsp) - process_constraint (new_constraint (*lhsp, rhsc)); - } - } - for (i = 0; i < gimple_asm_ninputs (asm_stmt); ++i) - { - tree link = gimple_asm_input_op (asm_stmt, i); - tree op = TREE_VALUE (link); - - constraint = TREE_STRING_POINTER (TREE_VALUE (TREE_PURPOSE (link))); - - parse_input_constraint (&constraint, 0, 0, noutputs, 0, oconstraints, - &allows_mem, &allows_reg, nullptr); - - /* A memory constraint makes the address of the operand escape. */ - if (!allows_reg && allows_mem) - { - auto_vec tmpc; - get_constraint_for_address_of (op, &tmpc); - make_constraints_to (escaped_id, tmpc); - } - /* Strictly we'd only need the constraint to ESCAPED if - the asm clobbers memory, otherwise using something - along the lines of per-call clobbers/uses would be enough. */ - else if (op) - make_escape_constraint (op); - } - } -} - - -/* Create a constraint adding to the clobber set of FI the memory - pointed to by PTR. */ - -static void -process_ipa_clobber (varinfo_t fi, tree ptr) -{ - vec ptrc = vNULL; - struct constraint_expr *c, lhs; - unsigned i; - get_constraint_for_rhs (ptr, &ptrc); - lhs = get_function_part_constraint (fi, fi_clobbers); - FOR_EACH_VEC_ELT (ptrc, i, c) - process_constraint (new_constraint (lhs, *c)); - ptrc.release (); -} - -/* Walk statement T setting up clobber and use constraints according to the - references found in T. This function is a main part of the - IPA constraint builder. */ - -static void -find_func_clobbers (struct function *fn, gimple *origt) -{ - gimple *t = origt; - auto_vec lhsc; - auto_vec rhsc; - varinfo_t fi; - - /* Add constraints for clobbered/used in IPA mode. - We are not interested in what automatic variables are clobbered - or used as we only use the information in the caller to which - they do not escape. */ - gcc_assert (in_ipa_mode); - - /* If the stmt refers to memory in any way it better had a VUSE. */ - if (gimple_vuse (t) == NULL_TREE) - return; - - /* We'd better have function information for the current function. */ - fi = lookup_vi_for_tree (fn->decl); - gcc_assert (fi != NULL); - - /* Account for stores in assignments and calls. */ - if (gimple_vdef (t) != NULL_TREE - && gimple_has_lhs (t)) - { - tree lhs = gimple_get_lhs (t); - tree tem = lhs; - while (handled_component_p (tem)) - tem = TREE_OPERAND (tem, 0); - if ((DECL_P (tem) - && !auto_var_in_fn_p (tem, fn->decl)) - || INDIRECT_REF_P (tem) - || (TREE_CODE (tem) == MEM_REF - && !(TREE_CODE (TREE_OPERAND (tem, 0)) == ADDR_EXPR - && auto_var_in_fn_p - (TREE_OPERAND (TREE_OPERAND (tem, 0), 0), fn->decl)))) - { - struct constraint_expr lhsc, *rhsp; - unsigned i; - lhsc = get_function_part_constraint (fi, fi_clobbers); - get_constraint_for_address_of (lhs, &rhsc); - FOR_EACH_VEC_ELT (rhsc, i, rhsp) - process_constraint (new_constraint (lhsc, *rhsp)); - rhsc.truncate (0); - } - } - - /* Account for uses in assigments and returns. */ - if (gimple_assign_single_p (t) - || (gimple_code (t) == GIMPLE_RETURN - && gimple_return_retval (as_a (t)) != NULL_TREE)) - { - tree rhs = (gimple_assign_single_p (t) - ? gimple_assign_rhs1 (t) - : gimple_return_retval (as_a (t))); - tree tem = rhs; - while (handled_component_p (tem)) - tem = TREE_OPERAND (tem, 0); - if ((DECL_P (tem) - && !auto_var_in_fn_p (tem, fn->decl)) - || INDIRECT_REF_P (tem) - || (TREE_CODE (tem) == MEM_REF - && !(TREE_CODE (TREE_OPERAND (tem, 0)) == ADDR_EXPR - && auto_var_in_fn_p - (TREE_OPERAND (TREE_OPERAND (tem, 0), 0), fn->decl)))) - { - struct constraint_expr lhs, *rhsp; - unsigned i; - lhs = get_function_part_constraint (fi, fi_uses); - get_constraint_for_address_of (rhs, &rhsc); - FOR_EACH_VEC_ELT (rhsc, i, rhsp) - process_constraint (new_constraint (lhs, *rhsp)); - rhsc.truncate (0); - } - } - - if (gcall *call_stmt = dyn_cast (t)) - { - varinfo_t cfi = NULL; - tree decl = gimple_call_fndecl (t); - struct constraint_expr lhs, rhs; - unsigned i, j; - - /* For builtins we do not have separate function info. For those - we do not generate escapes for we have to generate clobbers/uses. */ - if (gimple_call_builtin_p (t, BUILT_IN_NORMAL)) - switch (DECL_FUNCTION_CODE (decl)) - { - /* The following functions use and clobber memory pointed to - by their arguments. */ - case BUILT_IN_STRCPY: - case BUILT_IN_STRNCPY: - case BUILT_IN_BCOPY: - case BUILT_IN_MEMCPY: - case BUILT_IN_MEMMOVE: - case BUILT_IN_MEMPCPY: - case BUILT_IN_STPCPY: - case BUILT_IN_STPNCPY: - case BUILT_IN_STRCAT: - case BUILT_IN_STRNCAT: - case BUILT_IN_STRCPY_CHK: - case BUILT_IN_STRNCPY_CHK: - case BUILT_IN_MEMCPY_CHK: - case BUILT_IN_MEMMOVE_CHK: - case BUILT_IN_MEMPCPY_CHK: - case BUILT_IN_STPCPY_CHK: - case BUILT_IN_STPNCPY_CHK: - case BUILT_IN_STRCAT_CHK: - case BUILT_IN_STRNCAT_CHK: - { - tree dest = gimple_call_arg (t, (DECL_FUNCTION_CODE (decl) - == BUILT_IN_BCOPY ? 1 : 0)); - tree src = gimple_call_arg (t, (DECL_FUNCTION_CODE (decl) - == BUILT_IN_BCOPY ? 0 : 1)); - unsigned i; - struct constraint_expr *rhsp, *lhsp; - get_constraint_for_ptr_offset (dest, NULL_TREE, &lhsc); - lhs = get_function_part_constraint (fi, fi_clobbers); - FOR_EACH_VEC_ELT (lhsc, i, lhsp) - process_constraint (new_constraint (lhs, *lhsp)); - get_constraint_for_ptr_offset (src, NULL_TREE, &rhsc); - lhs = get_function_part_constraint (fi, fi_uses); - FOR_EACH_VEC_ELT (rhsc, i, rhsp) - process_constraint (new_constraint (lhs, *rhsp)); - return; - } - /* The following function clobbers memory pointed to by - its argument. */ - case BUILT_IN_MEMSET: - case BUILT_IN_MEMSET_CHK: - case BUILT_IN_POSIX_MEMALIGN: - { - tree dest = gimple_call_arg (t, 0); - unsigned i; - ce_s *lhsp; - get_constraint_for_ptr_offset (dest, NULL_TREE, &lhsc); - lhs = get_function_part_constraint (fi, fi_clobbers); - FOR_EACH_VEC_ELT (lhsc, i, lhsp) - process_constraint (new_constraint (lhs, *lhsp)); - return; - } - /* The following functions clobber their second and third - arguments. */ - case BUILT_IN_SINCOS: - case BUILT_IN_SINCOSF: - case BUILT_IN_SINCOSL: - { - process_ipa_clobber (fi, gimple_call_arg (t, 1)); - process_ipa_clobber (fi, gimple_call_arg (t, 2)); - return; - } - /* The following functions clobber their second argument. */ - case BUILT_IN_FREXP: - case BUILT_IN_FREXPF: - case BUILT_IN_FREXPL: - case BUILT_IN_LGAMMA_R: - case BUILT_IN_LGAMMAF_R: - case BUILT_IN_LGAMMAL_R: - case BUILT_IN_GAMMA_R: - case BUILT_IN_GAMMAF_R: - case BUILT_IN_GAMMAL_R: - case BUILT_IN_MODF: - case BUILT_IN_MODFF: - case BUILT_IN_MODFL: - { - process_ipa_clobber (fi, gimple_call_arg (t, 1)); - return; - } - /* The following functions clobber their third argument. */ - case BUILT_IN_REMQUO: - case BUILT_IN_REMQUOF: - case BUILT_IN_REMQUOL: - { - process_ipa_clobber (fi, gimple_call_arg (t, 2)); - return; - } - /* The following functions use what their first argument - points to. */ - case BUILT_IN_STRDUP: - case BUILT_IN_STRNDUP: - case BUILT_IN_REALLOC: - case BUILT_IN_INDEX: - case BUILT_IN_STRCHR: - case BUILT_IN_STRRCHR: - case BUILT_IN_MEMCHR: - { - tree src = gimple_call_arg (t, 0); - get_constraint_for_ptr_offset (src, NULL_TREE, &rhsc); - lhs = get_function_part_constraint (fi, fi_uses); - struct constraint_expr *rhsp; - FOR_EACH_VEC_ELT (rhsc, i, rhsp) - process_constraint (new_constraint (lhs, *rhsp)); - return; - } - /* The following functions use what their first and second argument - point to. */ - case BUILT_IN_STRSTR: - case BUILT_IN_STRPBRK: - { - tree src = gimple_call_arg (t, 0); - get_constraint_for_ptr_offset (src, NULL_TREE, &rhsc); - lhs = get_function_part_constraint (fi, fi_uses); - struct constraint_expr *rhsp; - FOR_EACH_VEC_ELT (rhsc, i, rhsp) - process_constraint (new_constraint (lhs, *rhsp)); - rhsc.truncate (0); - src = gimple_call_arg (t, 1); - get_constraint_for_ptr_offset (src, NULL_TREE, &rhsc); - FOR_EACH_VEC_ELT (rhsc, i, rhsp) - process_constraint (new_constraint (lhs, *rhsp)); - return; - } - /* The following functions neither read nor clobber memory. */ - case BUILT_IN_ASSUME_ALIGNED: - case BUILT_IN_FREE: - return; - /* Trampolines are of no interest to us. */ - case BUILT_IN_INIT_TRAMPOLINE: - case BUILT_IN_ADJUST_TRAMPOLINE: - return; - case BUILT_IN_VA_START: - case BUILT_IN_VA_END: - return; - case BUILT_IN_GOMP_PARALLEL: - case BUILT_IN_GOACC_PARALLEL: - { - unsigned int fnpos, argpos; - unsigned int implicit_use_args[2]; - unsigned int num_implicit_use_args = 0; - switch (DECL_FUNCTION_CODE (decl)) - { - case BUILT_IN_GOMP_PARALLEL: - /* __builtin_GOMP_parallel (fn, data, num_threads, flags). */ - fnpos = 0; - argpos = 1; - break; - case BUILT_IN_GOACC_PARALLEL: - /* __builtin_GOACC_parallel (flags_m, fn, mapnum, hostaddrs, - sizes, kinds, ...). */ - fnpos = 1; - argpos = 3; - implicit_use_args[num_implicit_use_args++] = 4; - implicit_use_args[num_implicit_use_args++] = 5; - break; - default: - gcc_unreachable (); - } - - tree fnarg = gimple_call_arg (t, fnpos); - gcc_assert (TREE_CODE (fnarg) == ADDR_EXPR); - tree fndecl = TREE_OPERAND (fnarg, 0); - if (fndecl_maybe_in_other_partition (fndecl)) - /* Fallthru to general call handling. */ - break; - - varinfo_t cfi = get_vi_for_tree (fndecl); - - tree arg = gimple_call_arg (t, argpos); - - /* Parameter passed by value is used. */ - lhs = get_function_part_constraint (fi, fi_uses); - struct constraint_expr *rhsp; - get_constraint_for (arg, &rhsc); - FOR_EACH_VEC_ELT (rhsc, j, rhsp) - process_constraint (new_constraint (lhs, *rhsp)); - rhsc.truncate (0); - - /* Handle parameters used by the call, but not used in cfi, as - implicitly used by cfi. */ - lhs = get_function_part_constraint (cfi, fi_uses); - for (unsigned i = 0; i < num_implicit_use_args; ++i) - { - tree arg = gimple_call_arg (t, implicit_use_args[i]); - get_constraint_for (arg, &rhsc); - FOR_EACH_VEC_ELT (rhsc, j, rhsp) - process_constraint (new_constraint (lhs, *rhsp)); - rhsc.truncate (0); - } - - /* The caller clobbers what the callee does. */ - lhs = get_function_part_constraint (fi, fi_clobbers); - rhs = get_function_part_constraint (cfi, fi_clobbers); - process_constraint (new_constraint (lhs, rhs)); - - /* The caller uses what the callee does. */ - lhs = get_function_part_constraint (fi, fi_uses); - rhs = get_function_part_constraint (cfi, fi_uses); - process_constraint (new_constraint (lhs, rhs)); - - return; - } - /* printf-style functions may have hooks to set pointers to - point to somewhere into the generated string. Leave them - for a later exercise... */ - default: - /* Fallthru to general call handling. */; - } - - /* Parameters passed by value are used. */ - lhs = get_function_part_constraint (fi, fi_uses); - for (i = 0; i < gimple_call_num_args (t); i++) - { - struct constraint_expr *rhsp; - tree arg = gimple_call_arg (t, i); - - if (TREE_CODE (arg) == SSA_NAME - || is_gimple_min_invariant (arg)) - continue; - - get_constraint_for_address_of (arg, &rhsc); - FOR_EACH_VEC_ELT (rhsc, j, rhsp) - process_constraint (new_constraint (lhs, *rhsp)); - rhsc.truncate (0); - } - - /* Build constraints for propagating clobbers/uses along the - callgraph edges. */ - cfi = get_fi_for_callee (call_stmt); - if (cfi->id == anything_id) - { - if (gimple_vdef (t)) - make_constraint_from (first_vi_for_offset (fi, fi_clobbers), - anything_id); - make_constraint_from (first_vi_for_offset (fi, fi_uses), - anything_id); - return; - } - - /* For callees without function info (that's external functions), - ESCAPED is clobbered and used. */ - if (cfi->decl - && TREE_CODE (cfi->decl) == FUNCTION_DECL - && !cfi->is_fn_info) - { - varinfo_t vi; - - if (gimple_vdef (t)) - make_copy_constraint (first_vi_for_offset (fi, fi_clobbers), - escaped_id); - make_copy_constraint (first_vi_for_offset (fi, fi_uses), escaped_id); - - /* Also honor the call statement use/clobber info. */ - if ((vi = lookup_call_clobber_vi (call_stmt)) != NULL) - make_copy_constraint (first_vi_for_offset (fi, fi_clobbers), - vi->id); - if ((vi = lookup_call_use_vi (call_stmt)) != NULL) - make_copy_constraint (first_vi_for_offset (fi, fi_uses), - vi->id); - return; - } - - /* Otherwise the caller clobbers and uses what the callee does. - ??? This should use a new complex constraint that filters - local variables of the callee. */ - if (gimple_vdef (t)) - { - lhs = get_function_part_constraint (fi, fi_clobbers); - rhs = get_function_part_constraint (cfi, fi_clobbers); - process_constraint (new_constraint (lhs, rhs)); - } - lhs = get_function_part_constraint (fi, fi_uses); - rhs = get_function_part_constraint (cfi, fi_uses); - process_constraint (new_constraint (lhs, rhs)); - } - else if (gimple_code (t) == GIMPLE_ASM) - { - /* ??? Ick. We can do better. */ - if (gimple_vdef (t)) - make_constraint_from (first_vi_for_offset (fi, fi_clobbers), - anything_id); - make_constraint_from (first_vi_for_offset (fi, fi_uses), - anything_id); - } -} - - -/* This structure is used during pushing fields onto the fieldstack - to track the offset of the field, since bitpos_of_field gives it - relative to its immediate containing type, and we want it relative - to the ultimate containing object. */ - -struct fieldoff -{ - /* Offset from the base of the base containing object to this field. */ - HOST_WIDE_INT offset; - - /* Size, in bits, of the field. */ - unsigned HOST_WIDE_INT size; - - unsigned has_unknown_size : 1; - - unsigned must_have_pointers : 1; - - unsigned may_have_pointers : 1; - - unsigned only_restrict_pointers : 1; - - tree restrict_pointed_type; -}; -typedef struct fieldoff fieldoff_s; - - -/* qsort comparison function for two fieldoff's PA and PB. */ - -static int -fieldoff_compare (const void *pa, const void *pb) -{ - const fieldoff_s *foa = (const fieldoff_s *)pa; - const fieldoff_s *fob = (const fieldoff_s *)pb; - unsigned HOST_WIDE_INT foasize, fobsize; - - if (foa->offset < fob->offset) - return -1; - else if (foa->offset > fob->offset) - return 1; - - foasize = foa->size; - fobsize = fob->size; - if (foasize < fobsize) - return -1; - else if (foasize > fobsize) - return 1; - return 0; -} - -/* Sort a fieldstack according to the field offset and sizes. */ -static void -sort_fieldstack (vec &fieldstack) -{ - fieldstack.qsort (fieldoff_compare); -} - -/* Return true if T is a type that can have subvars. */ - -static inline bool -type_can_have_subvars (const_tree t) -{ - /* Aggregates without overlapping fields can have subvars. */ - return TREE_CODE (t) == RECORD_TYPE; -} - -/* Return true if V is a tree that we can have subvars for. - Normally, this is any aggregate type. Also complex - types which are not gimple registers can have subvars. */ - -static inline bool -var_can_have_subvars (const_tree v) -{ - /* Volatile variables should never have subvars. */ - if (TREE_THIS_VOLATILE (v)) - return false; - - /* Non decls or memory tags can never have subvars. */ - if (!DECL_P (v)) - return false; - - return type_can_have_subvars (TREE_TYPE (v)); -} - -/* Return true if T is a type that does contain pointers. */ - -static bool -type_must_have_pointers (tree type) -{ - if (POINTER_TYPE_P (type)) - return true; - - if (TREE_CODE (type) == ARRAY_TYPE) - return type_must_have_pointers (TREE_TYPE (type)); - - /* A function or method can have pointers as arguments, so track - those separately. */ - if (FUNC_OR_METHOD_TYPE_P (type)) - return true; - - return false; -} - -static bool -field_must_have_pointers (tree t) -{ - return type_must_have_pointers (TREE_TYPE (t)); -} - -/* Given a TYPE, and a vector of field offsets FIELDSTACK, push all - the fields of TYPE onto fieldstack, recording their offsets along - the way. - - OFFSET is used to keep track of the offset in this entire - structure, rather than just the immediately containing structure. - Returns false if the caller is supposed to handle the field we - recursed for. */ - -static bool -push_fields_onto_fieldstack (tree type, vec *fieldstack, - unsigned HOST_WIDE_INT offset) -{ - tree field; - bool empty_p = true; - - if (TREE_CODE (type) != RECORD_TYPE) - return false; - - /* If the vector of fields is growing too big, bail out early. - Callers check for vec::length <= param_max_fields_for_field_sensitive, make - sure this fails. */ - if (fieldstack->length () > (unsigned)param_max_fields_for_field_sensitive) - return false; - - for (field = TYPE_FIELDS (type); field; field = DECL_CHAIN (field)) - if (TREE_CODE (field) == FIELD_DECL) - { - bool push = false; - unsigned HOST_WIDE_INT foff = bitpos_of_field (field); - tree field_type = TREE_TYPE (field); - - if (!var_can_have_subvars (field) - || TREE_CODE (field_type) == QUAL_UNION_TYPE - || TREE_CODE (field_type) == UNION_TYPE) - push = true; - else if (!push_fields_onto_fieldstack - (field_type, fieldstack, offset + foff) - && (DECL_SIZE (field) - && !integer_zerop (DECL_SIZE (field)))) - /* Empty structures may have actual size, like in C++. So - see if we didn't push any subfields and the size is - nonzero, push the field onto the stack. */ - push = true; - - if (push) - { - fieldoff_s *pair = NULL; - bool has_unknown_size = false; - bool must_have_pointers_p; - - if (!fieldstack->is_empty ()) - pair = &fieldstack->last (); - - /* If there isn't anything at offset zero, create sth. */ - if (!pair - && offset + foff != 0) - { - fieldoff_s e - = {0, offset + foff, false, false, true, false, NULL_TREE}; - pair = fieldstack->safe_push (e); - } - - if (!DECL_SIZE (field) - || !tree_fits_uhwi_p (DECL_SIZE (field))) - has_unknown_size = true; - - /* If adjacent fields do not contain pointers merge them. */ - must_have_pointers_p = field_must_have_pointers (field); - if (pair - && !has_unknown_size - && !must_have_pointers_p - && !pair->must_have_pointers - && !pair->has_unknown_size - && pair->offset + pair->size == offset + foff) - { - pair->size += tree_to_uhwi (DECL_SIZE (field)); - } - else - { - fieldoff_s e; - e.offset = offset + foff; - e.has_unknown_size = has_unknown_size; - if (!has_unknown_size) - e.size = tree_to_uhwi (DECL_SIZE (field)); - else - e.size = -1; - e.must_have_pointers = must_have_pointers_p; - e.may_have_pointers = true; - e.only_restrict_pointers - = (!has_unknown_size - && POINTER_TYPE_P (field_type) - && TYPE_RESTRICT (field_type)); - if (e.only_restrict_pointers) - e.restrict_pointed_type = TREE_TYPE (field_type); - fieldstack->safe_push (e); - } - } - - empty_p = false; - } - - return !empty_p; -} - -/* Count the number of arguments DECL has, and set IS_VARARGS to true - if it is a varargs function. */ - -static unsigned int -count_num_arguments (tree decl, bool *is_varargs) -{ - unsigned int num = 0; - tree t; - - /* Capture named arguments for K&R functions. They do not - have a prototype and thus no TYPE_ARG_TYPES. */ - for (t = DECL_ARGUMENTS (decl); t; t = DECL_CHAIN (t)) - ++num; - - /* Check if the function has variadic arguments. */ - for (t = TYPE_ARG_TYPES (TREE_TYPE (decl)); t; t = TREE_CHAIN (t)) - if (TREE_VALUE (t) == void_type_node) - break; - if (!t) - *is_varargs = true; - - return num; -} - -/* Creation function node for DECL, using NAME, and return the index - of the variable we've created for the function. If NONLOCAL_p, create - initial constraints. */ - -static varinfo_t -create_function_info_for (tree decl, const char *name, bool add_id, - bool nonlocal_p) -{ - struct function *fn = DECL_STRUCT_FUNCTION (decl); - varinfo_t vi, prev_vi; - tree arg; - unsigned int i; - bool is_varargs = false; - unsigned int num_args = count_num_arguments (decl, &is_varargs); - - /* Create the variable info. */ - - vi = new_var_info (decl, name, add_id); - vi->offset = 0; - vi->size = 1; - vi->fullsize = fi_parm_base + num_args; - vi->is_fn_info = 1; - vi->may_have_pointers = false; - if (is_varargs) - vi->fullsize = ~0; - insert_vi_for_tree (vi->decl, vi); - - prev_vi = vi; - - /* Create a variable for things the function clobbers and one for - things the function uses. */ - { - varinfo_t clobbervi, usevi; - const char *newname; - char *tempname; - - tempname = xasprintf ("%s.clobber", name); - newname = ggc_strdup (tempname); - free (tempname); - - clobbervi = new_var_info (NULL, newname, false); - clobbervi->offset = fi_clobbers; - clobbervi->size = 1; - clobbervi->fullsize = vi->fullsize; - clobbervi->is_full_var = true; - clobbervi->is_global_var = false; - clobbervi->is_reg_var = true; - - gcc_assert (prev_vi->offset < clobbervi->offset); - prev_vi->next = clobbervi->id; - prev_vi = clobbervi; - - tempname = xasprintf ("%s.use", name); - newname = ggc_strdup (tempname); - free (tempname); - - usevi = new_var_info (NULL, newname, false); - usevi->offset = fi_uses; - usevi->size = 1; - usevi->fullsize = vi->fullsize; - usevi->is_full_var = true; - usevi->is_global_var = false; - usevi->is_reg_var = true; - - gcc_assert (prev_vi->offset < usevi->offset); - prev_vi->next = usevi->id; - prev_vi = usevi; - } - - /* And one for the static chain. */ - if (fn->static_chain_decl != NULL_TREE) - { - varinfo_t chainvi; - const char *newname; - char *tempname; - - tempname = xasprintf ("%s.chain", name); - newname = ggc_strdup (tempname); - free (tempname); - - chainvi = new_var_info (fn->static_chain_decl, newname, false); - chainvi->offset = fi_static_chain; - chainvi->size = 1; - chainvi->fullsize = vi->fullsize; - chainvi->is_full_var = true; - chainvi->is_global_var = false; - - insert_vi_for_tree (fn->static_chain_decl, chainvi); - - if (nonlocal_p - && chainvi->may_have_pointers) - make_constraint_from (chainvi, nonlocal_id); - - gcc_assert (prev_vi->offset < chainvi->offset); - prev_vi->next = chainvi->id; - prev_vi = chainvi; - } - - /* Create a variable for the return var. */ - if (DECL_RESULT (decl) != NULL - || !VOID_TYPE_P (TREE_TYPE (TREE_TYPE (decl)))) - { - varinfo_t resultvi; - const char *newname; - char *tempname; - tree resultdecl = decl; - - if (DECL_RESULT (decl)) - resultdecl = DECL_RESULT (decl); - - tempname = xasprintf ("%s.result", name); - newname = ggc_strdup (tempname); - free (tempname); - - resultvi = new_var_info (resultdecl, newname, false); - resultvi->offset = fi_result; - resultvi->size = 1; - resultvi->fullsize = vi->fullsize; - resultvi->is_full_var = true; - if (DECL_RESULT (decl)) - resultvi->may_have_pointers = true; - - if (DECL_RESULT (decl)) - insert_vi_for_tree (DECL_RESULT (decl), resultvi); - - if (nonlocal_p - && DECL_RESULT (decl) - && DECL_BY_REFERENCE (DECL_RESULT (decl))) - make_constraint_from (resultvi, nonlocal_id); - - gcc_assert (prev_vi->offset < resultvi->offset); - prev_vi->next = resultvi->id; - prev_vi = resultvi; - } - - /* We also need to make function return values escape. Nothing - escapes by returning from main though. */ - if (nonlocal_p - && !MAIN_NAME_P (DECL_NAME (decl))) - { - varinfo_t fi, rvi; - fi = lookup_vi_for_tree (decl); - rvi = first_vi_for_offset (fi, fi_result); - if (rvi && rvi->offset == fi_result) - make_copy_constraint (get_varinfo (escaped_id), rvi->id); - } - - /* Set up variables for each argument. */ - arg = DECL_ARGUMENTS (decl); - for (i = 0; i < num_args; i++) - { - varinfo_t argvi; - const char *newname; - char *tempname; - tree argdecl = decl; - - if (arg) - argdecl = arg; - - tempname = xasprintf ("%s.arg%d", name, i); - newname = ggc_strdup (tempname); - free (tempname); - - argvi = new_var_info (argdecl, newname, false); - argvi->offset = fi_parm_base + i; - argvi->size = 1; - argvi->is_full_var = true; - argvi->fullsize = vi->fullsize; - if (arg) - argvi->may_have_pointers = true; - - if (arg) - insert_vi_for_tree (arg, argvi); - - if (nonlocal_p - && argvi->may_have_pointers) - make_constraint_from (argvi, nonlocal_id); - - gcc_assert (prev_vi->offset < argvi->offset); - prev_vi->next = argvi->id; - prev_vi = argvi; - if (arg) - arg = DECL_CHAIN (arg); - } - - /* Add one representative for all further args. */ - if (is_varargs) - { - varinfo_t argvi; - const char *newname; - char *tempname; - tree decl; - - tempname = xasprintf ("%s.varargs", name); - newname = ggc_strdup (tempname); - free (tempname); - - /* We need sth that can be pointed to for va_start. */ - decl = build_fake_var_decl (ptr_type_node); - - argvi = new_var_info (decl, newname, false); - argvi->offset = fi_parm_base + num_args; - argvi->size = ~0; - argvi->is_full_var = true; - argvi->is_heap_var = true; - argvi->fullsize = vi->fullsize; - - if (nonlocal_p - && argvi->may_have_pointers) - make_constraint_from (argvi, nonlocal_id); - - gcc_assert (prev_vi->offset < argvi->offset); - prev_vi->next = argvi->id; - } - - return vi; + stats.num_avoided_edges); } +/* Dump points-to information to OUTFILE. */ -/* Return true if FIELDSTACK contains fields that overlap. - FIELDSTACK is assumed to be sorted by offset. */ - -static bool -check_for_overlaps (const vec &fieldstack) +void +dump_sa_points_to_info (FILE *outfile) { - fieldoff_s *fo = NULL; - unsigned int i; - HOST_WIDE_INT lastoffset = -1; + fprintf (outfile, "\nPoints-to sets\n\n"); - FOR_EACH_VEC_ELT (fieldstack, i, fo) + for (unsigned i = 1; i < varmap.length (); i++) { - if (fo->offset == lastoffset) - return true; - lastoffset = fo->offset; + varinfo_t vi = get_varinfo (i); + if (!vi->may_have_pointers) + continue; + dump_solution_for_var (outfile, i); } - return false; } -/* Create a varinfo structure for NAME and DECL, and add it to VARMAP. - This will also create any varinfo structures necessary for fields - of DECL. DECL is a function parameter if HANDLE_PARAM is set. - HANDLED_STRUCT_TYPE is used to register struct types reached by following - restrict pointers. This is needed to prevent infinite recursion. - If ADD_RESTRICT, pretend that the pointer NAME is restrict even if DECL - does not advertise it. */ - -static varinfo_t -create_variable_info_for_1 (tree decl, const char *name, bool add_id, - bool handle_param, bitmap handled_struct_type, - bool add_restrict = false) -{ - varinfo_t vi, newvi; - tree decl_type = TREE_TYPE (decl); - tree declsize = DECL_P (decl) ? DECL_SIZE (decl) : TYPE_SIZE (decl_type); - auto_vec fieldstack; - fieldoff_s *fo; - unsigned int i; - if (!declsize - || !tree_fits_uhwi_p (declsize)) - { - vi = new_var_info (decl, name, add_id); - vi->offset = 0; - vi->size = ~0; - vi->fullsize = ~0; - vi->is_unknown_size_var = true; - vi->is_full_var = true; - vi->may_have_pointers = true; - return vi; - } +/* Debug points-to information to stderr. */ - /* Collect field information. */ - if (use_field_sensitive - && var_can_have_subvars (decl) - /* ??? Force us to not use subfields for globals in IPA mode. - Else we'd have to parse arbitrary initializers. */ - && !(in_ipa_mode - && is_global_var (decl))) - { - fieldoff_s *fo = NULL; - bool notokay = false; - unsigned int i; +DEBUG_FUNCTION void +debug_sa_points_to_info (void) +{ + dump_sa_points_to_info (stderr); +} - push_fields_onto_fieldstack (decl_type, &fieldstack, 0); +/* Dump varinfo VI to FILE. */ - for (i = 0; !notokay && fieldstack.iterate (i, &fo); i++) - if (fo->has_unknown_size - || fo->offset < 0) - { - notokay = true; - break; - } +void +dump_varinfo (FILE *file, varinfo_t vi) +{ + if (vi == NULL) + return; - /* We can't sort them if we have a field with a variable sized type, - which will make notokay = true. In that case, we are going to return - without creating varinfos for the fields anyway, so sorting them is a - waste to boot. */ - if (!notokay) - { - sort_fieldstack (fieldstack); - /* Due to some C++ FE issues, like PR 22488, we might end up - what appear to be overlapping fields even though they, - in reality, do not overlap. Until the C++ FE is fixed, - we will simply disable field-sensitivity for these cases. */ - notokay = check_for_overlaps (fieldstack); - } + fprintf (file, "%u: %s\n", vi->id, vi->name); - if (notokay) - fieldstack.release (); - } + const char *sep = " "; + if (vi->is_artificial_var) + fprintf (file, "%sartificial", sep); + if (vi->is_special_var) + fprintf (file, "%sspecial", sep); + if (vi->is_unknown_size_var) + fprintf (file, "%sunknown-size", sep); + if (vi->is_full_var) + fprintf (file, "%sfull", sep); + if (vi->is_heap_var) + fprintf (file, "%sheap", sep); + if (vi->may_have_pointers) + fprintf (file, "%smay-have-pointers", sep); + if (vi->only_restrict_pointers) + fprintf (file, "%sonly-restrict-pointers", sep); + if (vi->is_restrict_var) + fprintf (file, "%sis-restrict-var", sep); + if (vi->is_global_var) + fprintf (file, "%sglobal", sep); + if (vi->is_ipa_escape_point) + fprintf (file, "%sipa-escape-point", sep); + if (vi->is_fn_info) + fprintf (file, "%sfn-info", sep); + if (vi->ruid) + fprintf (file, "%srestrict-uid:%u", sep, vi->ruid); + if (vi->next) + fprintf (file, "%snext:%u", sep, vi->next); + if (vi->head != vi->id) + fprintf (file, "%shead:%u", sep, vi->head); + if (vi->offset) + fprintf (file, "%soffset:" HOST_WIDE_INT_PRINT_DEC, sep, vi->offset); + if (vi->size != ~HOST_WIDE_INT_0U) + fprintf (file, "%ssize:" HOST_WIDE_INT_PRINT_DEC, sep, vi->size); + if (vi->fullsize != ~HOST_WIDE_INT_0U && vi->fullsize != vi->size) + fprintf (file, "%sfullsize:" HOST_WIDE_INT_PRINT_DEC, sep, + vi->fullsize); + fprintf (file, "\n"); - /* If we didn't end up collecting sub-variables create a full - variable for the decl. */ - if (fieldstack.length () == 0 - || fieldstack.length () > (unsigned)param_max_fields_for_field_sensitive) + if (vi->solution && !bitmap_empty_p (vi->solution)) { - vi = new_var_info (decl, name, add_id); - vi->offset = 0; - vi->may_have_pointers = true; - vi->fullsize = tree_to_uhwi (declsize); - vi->size = vi->fullsize; - vi->is_full_var = true; - if (POINTER_TYPE_P (decl_type) - && (TYPE_RESTRICT (decl_type) || add_restrict)) - vi->only_restrict_pointers = 1; - if (vi->only_restrict_pointers - && !type_contains_placeholder_p (TREE_TYPE (decl_type)) - && handle_param - && !bitmap_bit_p (handled_struct_type, - TYPE_UID (TREE_TYPE (decl_type)))) - { - varinfo_t rvi; - tree heapvar = build_fake_var_decl (TREE_TYPE (decl_type)); - DECL_EXTERNAL (heapvar) = 1; - if (var_can_have_subvars (heapvar)) - bitmap_set_bit (handled_struct_type, - TYPE_UID (TREE_TYPE (decl_type))); - rvi = create_variable_info_for_1 (heapvar, "PARM_NOALIAS", true, - true, handled_struct_type); - if (var_can_have_subvars (heapvar)) - bitmap_clear_bit (handled_struct_type, - TYPE_UID (TREE_TYPE (decl_type))); - rvi->is_restrict_var = 1; - insert_vi_for_tree (heapvar, rvi); - make_constraint_from (vi, rvi->id); - make_param_constraints (rvi); - } - fieldstack.release (); - return vi; + bitmap_iterator bi; + unsigned i; + fprintf (file, " solution: {"); + EXECUTE_IF_SET_IN_BITMAP (vi->solution, 0, i, bi) + fprintf (file, " %u", i); + fprintf (file, " }\n"); } - vi = new_var_info (decl, name, add_id); - vi->fullsize = tree_to_uhwi (declsize); - if (fieldstack.length () == 1) - vi->is_full_var = true; - for (i = 0, newvi = vi; - fieldstack.iterate (i, &fo); - ++i, newvi = vi_next (newvi)) + if (vi->oldsolution && !bitmap_empty_p (vi->oldsolution) + && !bitmap_equal_p (vi->solution, vi->oldsolution)) { - const char *newname = NULL; - char *tempname; - - if (dump_file) - { - if (fieldstack.length () != 1) - { - tempname - = xasprintf ("%s." HOST_WIDE_INT_PRINT_DEC - "+" HOST_WIDE_INT_PRINT_DEC, name, - fo->offset, fo->size); - newname = ggc_strdup (tempname); - free (tempname); - } - } - else - newname = "NULL"; - - if (newname) - newvi->name = newname; - newvi->offset = fo->offset; - newvi->size = fo->size; - newvi->fullsize = vi->fullsize; - newvi->may_have_pointers = fo->may_have_pointers; - newvi->only_restrict_pointers = fo->only_restrict_pointers; - if (handle_param - && newvi->only_restrict_pointers - && !type_contains_placeholder_p (fo->restrict_pointed_type) - && !bitmap_bit_p (handled_struct_type, - TYPE_UID (fo->restrict_pointed_type))) - { - varinfo_t rvi; - tree heapvar = build_fake_var_decl (fo->restrict_pointed_type); - DECL_EXTERNAL (heapvar) = 1; - if (var_can_have_subvars (heapvar)) - bitmap_set_bit (handled_struct_type, - TYPE_UID (fo->restrict_pointed_type)); - rvi = create_variable_info_for_1 (heapvar, "PARM_NOALIAS", true, - true, handled_struct_type); - if (var_can_have_subvars (heapvar)) - bitmap_clear_bit (handled_struct_type, - TYPE_UID (fo->restrict_pointed_type)); - rvi->is_restrict_var = 1; - insert_vi_for_tree (heapvar, rvi); - make_constraint_from (newvi, rvi->id); - make_param_constraints (rvi); - } - if (i + 1 < fieldstack.length ()) - { - varinfo_t tem = new_var_info (decl, name, false); - newvi->next = tem->id; - tem->head = vi->id; - } + bitmap_iterator bi; + unsigned i; + fprintf (file, " oldsolution: {"); + EXECUTE_IF_SET_IN_BITMAP (vi->oldsolution, 0, i, bi) + fprintf (file, " %u", i); + fprintf (file, " }\n"); } - - return vi; } -static unsigned int -create_variable_info_for (tree decl, const char *name, bool add_id) +/* Dump varinfo VI to stderr. */ + +DEBUG_FUNCTION void +debug_varinfo (varinfo_t vi) { - /* First see if we are dealing with an ifunc resolver call and - assiociate that with a call to the resolver function result. */ - cgraph_node *node; - if (in_ipa_mode - && TREE_CODE (decl) == FUNCTION_DECL - && (node = cgraph_node::get (decl)) - && node->ifunc_resolver) - { - varinfo_t fi = get_vi_for_tree (node->get_alias_target ()->decl); - constraint_expr rhs - = get_function_part_constraint (fi, fi_result); - fi = new_var_info (NULL_TREE, "ifuncres", true); - fi->is_reg_var = true; - constraint_expr lhs; - lhs.type = SCALAR; - lhs.var = fi->id; - lhs.offset = 0; - process_constraint (new_constraint (lhs, rhs)); - insert_vi_for_tree (decl, fi); - return fi->id; - } + dump_varinfo (stderr, vi); +} - varinfo_t vi = create_variable_info_for_1 (decl, name, add_id, false, NULL); - unsigned int id = vi->id; +/* Dump varmap to FILE. */ - insert_vi_for_tree (decl, vi); +void +dump_varmap (FILE *file) +{ + if (varmap.length () == 0) + return; - if (!VAR_P (decl)) - return id; + fprintf (file, "variables:\n"); - /* Create initial constraints for globals. */ - for (; vi; vi = vi_next (vi)) + for (unsigned int i = 0; i < varmap.length (); ++i) { - if (!vi->may_have_pointers - || !vi->is_global_var) - continue; - - /* Mark global restrict qualified pointers. */ - if ((POINTER_TYPE_P (TREE_TYPE (decl)) - && TYPE_RESTRICT (TREE_TYPE (decl))) - || vi->only_restrict_pointers) - { - varinfo_t rvi - = make_constraint_from_global_restrict (vi, "GLOBAL_RESTRICT", - true); - /* ??? For now exclude reads from globals as restrict sources - if those are not (indirectly) from incoming parameters. */ - rvi->is_restrict_var = false; - continue; - } - - /* In non-IPA mode the initializer from nonlocal is all we need. */ - if (!in_ipa_mode - || DECL_HARD_REGISTER (decl)) - make_copy_constraint (vi, nonlocal_id); - - /* In IPA mode parse the initializer and generate proper constraints - for it. */ - else - { - varpool_node *vnode = varpool_node::get (decl); - - /* For escaped variables initialize them from nonlocal. */ - if (!vnode || !vnode->all_refs_explicit_p ()) - make_copy_constraint (vi, nonlocal_id); - - /* While we can in theory walk references for the varpool - node that does not cover zero-initialization or references - to the constant pool. */ - if (DECL_INITIAL (decl)) - { - auto_vec rhsc; - struct constraint_expr lhs, *rhsp; - unsigned i; - lhs.var = vi->id; - lhs.offset = 0; - lhs.type = SCALAR; - get_constraint_for (DECL_INITIAL (decl), &rhsc); - FOR_EACH_VEC_ELT (rhsc, i, rhsp) - process_constraint (new_constraint (lhs, *rhsp)); - /* If this is a variable that escapes from the unit - the initializer escapes as well. */ - if (!vnode || !vnode->all_refs_explicit_p ()) - { - lhs.var = escaped_id; - lhs.offset = 0; - lhs.type = SCALAR; - FOR_EACH_VEC_ELT (rhsc, i, rhsp) - process_constraint (new_constraint (lhs, *rhsp)); - } - } - } + varinfo_t vi = get_varinfo (i); + dump_varinfo (file, vi); } - return id; + fprintf (file, "\n"); } -/* Register the constraints for function parameter related VI. */ +/* Dump varmap to stderr. */ -static void -make_param_constraints (varinfo_t vi) +DEBUG_FUNCTION void +debug_varmap (void) { - for (; vi; vi = vi_next (vi)) - { - if (vi->only_restrict_pointers) - ; - else if (vi->may_have_pointers) - make_constraint_from (vi, nonlocal_id); - - if (vi->is_full_var) - break; - } + dump_varmap (stderr); } -/* Create varinfo structures for all of the variables in the - function for intraprocedural mode. */ - -static void -intra_create_variable_infos (struct function *fn) -{ - tree t; - bitmap handled_struct_type = NULL; - bool this_parm_in_ctor = DECL_CXX_CONSTRUCTOR_P (fn->decl); - - /* For each incoming pointer argument arg, create the constraint ARG - = NONLOCAL or a dummy variable if it is a restrict qualified - passed-by-reference argument. */ - for (t = DECL_ARGUMENTS (fn->decl); t; t = DECL_CHAIN (t)) - { - if (handled_struct_type == NULL) - handled_struct_type = BITMAP_ALLOC (NULL); - - varinfo_t p - = create_variable_info_for_1 (t, alias_get_name (t), false, true, - handled_struct_type, this_parm_in_ctor); - insert_vi_for_tree (t, p); - - make_param_constraints (p); - - this_parm_in_ctor = false; - } - - if (handled_struct_type != NULL) - BITMAP_FREE (handled_struct_type); - - /* Add a constraint for a result decl that is passed by reference. */ - if (DECL_RESULT (fn->decl) - && DECL_BY_REFERENCE (DECL_RESULT (fn->decl))) - { - varinfo_t p, result_vi = get_vi_for_tree (DECL_RESULT (fn->decl)); - - for (p = result_vi; p; p = vi_next (p)) - make_constraint_from (p, nonlocal_id); - } - - /* Add a constraint for the incoming static chain parameter. */ - if (fn->static_chain_decl != NULL_TREE) - { - varinfo_t p, chain_vi = get_vi_for_tree (fn->static_chain_decl); +} // namespace pointer_analysis - for (p = chain_vi; p; p = vi_next (p)) - make_constraint_from (p, nonlocal_id); - } -} /* Structure used to put solution bitmaps in a hashtable so they can be shared among variables with the same points-to set. */ @@ -4398,7 +723,6 @@ shared_bitmap_lookup (bitmap pt_vars) return (*slot)->pt_vars; } - /* Add a bitmap to the shared bitmap hashtable. */ static void @@ -4415,7 +739,6 @@ shared_bitmap_add (bitmap pt_vars) *slot = sbi; } - /* Set bits in INTO corresponding to the variable uids in solution set FROM. */ static void @@ -4914,197 +1237,6 @@ pt_solutions_intersect (struct pt_solution *pt1, struct pt_solution *pt2) } -/* Initialize the always-existing constraint variables for NULL - ANYTHING, READONLY, and INTEGER */ - -static void -init_base_vars (void) -{ - struct constraint_expr lhs, rhs; - varinfo_t var_anything; - varinfo_t var_nothing; - varinfo_t var_string; - varinfo_t var_escaped; - varinfo_t var_nonlocal; - varinfo_t var_escaped_return; - varinfo_t var_storedanything; - varinfo_t var_integer; - - /* Variable ID zero is reserved and should be NULL. */ - varmap.safe_push (NULL); - - /* Create the NULL variable, used to represent that a variable points - to NULL. */ - var_nothing = new_var_info (NULL_TREE, "NULL", false); - gcc_assert (var_nothing->id == nothing_id); - var_nothing->is_artificial_var = 1; - var_nothing->offset = 0; - var_nothing->size = ~0; - var_nothing->fullsize = ~0; - var_nothing->is_special_var = 1; - var_nothing->may_have_pointers = 0; - var_nothing->is_global_var = 0; - - /* Create the ANYTHING variable, used to represent that a variable - points to some unknown piece of memory. */ - var_anything = new_var_info (NULL_TREE, "ANYTHING", false); - gcc_assert (var_anything->id == anything_id); - var_anything->is_artificial_var = 1; - var_anything->size = ~0; - var_anything->offset = 0; - var_anything->fullsize = ~0; - var_anything->is_special_var = 1; - - /* Anything points to anything. This makes deref constraints just - work in the presence of linked list and other p = *p type loops, - by saying that *ANYTHING = ANYTHING. */ - lhs.type = SCALAR; - lhs.var = anything_id; - lhs.offset = 0; - rhs.type = ADDRESSOF; - rhs.var = anything_id; - rhs.offset = 0; - - /* This specifically does not use process_constraint because - process_constraint ignores all anything = anything constraints, since all - but this one are redundant. */ - constraints.safe_push (new_constraint (lhs, rhs)); - - /* Create the STRING variable, used to represent that a variable - points to a string literal. String literals don't contain - pointers so STRING doesn't point to anything. */ - var_string = new_var_info (NULL_TREE, "STRING", false); - gcc_assert (var_string->id == string_id); - var_string->is_artificial_var = 1; - var_string->offset = 0; - var_string->size = ~0; - var_string->fullsize = ~0; - var_string->is_special_var = 1; - var_string->may_have_pointers = 0; - - /* Create the ESCAPED variable, used to represent the set of escaped - memory. */ - var_escaped = new_var_info (NULL_TREE, "ESCAPED", false); - gcc_assert (var_escaped->id == escaped_id); - var_escaped->is_artificial_var = 1; - var_escaped->offset = 0; - var_escaped->size = ~0; - var_escaped->fullsize = ~0; - var_escaped->is_special_var = 0; - - /* Create the NONLOCAL variable, used to represent the set of nonlocal - memory. */ - var_nonlocal = new_var_info (NULL_TREE, "NONLOCAL", false); - gcc_assert (var_nonlocal->id == nonlocal_id); - var_nonlocal->is_artificial_var = 1; - var_nonlocal->offset = 0; - var_nonlocal->size = ~0; - var_nonlocal->fullsize = ~0; - var_nonlocal->is_special_var = 1; - - /* Create the ESCAPED_RETURN variable, used to represent the set of escaped - memory via a regular return stmt. */ - var_escaped_return = new_var_info (NULL_TREE, "ESCAPED_RETURN", false); - gcc_assert (var_escaped_return->id == escaped_return_id); - var_escaped_return->is_artificial_var = 1; - var_escaped_return->offset = 0; - var_escaped_return->size = ~0; - var_escaped_return->fullsize = ~0; - var_escaped_return->is_special_var = 0; - - /* ESCAPED = *ESCAPED, because escaped is may-deref'd at calls, etc. */ - lhs.type = SCALAR; - lhs.var = escaped_id; - lhs.offset = 0; - rhs.type = DEREF; - rhs.var = escaped_id; - rhs.offset = 0; - process_constraint (new_constraint (lhs, rhs)); - - /* ESCAPED = ESCAPED + UNKNOWN_OFFSET, because if a sub-field escapes the - whole variable escapes. */ - lhs.type = SCALAR; - lhs.var = escaped_id; - lhs.offset = 0; - rhs.type = SCALAR; - rhs.var = escaped_id; - rhs.offset = UNKNOWN_OFFSET; - process_constraint (new_constraint (lhs, rhs)); - - /* *ESCAPED = NONLOCAL. This is true because we have to assume - everything pointed to by escaped points to what global memory can - point to. */ - lhs.type = DEREF; - lhs.var = escaped_id; - lhs.offset = 0; - rhs.type = SCALAR; - rhs.var = nonlocal_id; - rhs.offset = 0; - process_constraint (new_constraint (lhs, rhs)); - - /* NONLOCAL = &NONLOCAL, NONLOCAL = &ESCAPED. This is true because - global memory may point to global memory and escaped memory. */ - lhs.type = SCALAR; - lhs.var = nonlocal_id; - lhs.offset = 0; - rhs.type = ADDRESSOF; - rhs.var = nonlocal_id; - rhs.offset = 0; - process_constraint (new_constraint (lhs, rhs)); - rhs.type = ADDRESSOF; - rhs.var = escaped_id; - rhs.offset = 0; - process_constraint (new_constraint (lhs, rhs)); - - /* Transitively close ESCAPED_RETURN. - ESCAPED_RETURN = ESCAPED_RETURN + UNKNOWN_OFFSET - ESCAPED_RETURN = *ESCAPED_RETURN. */ - lhs.type = SCALAR; - lhs.var = escaped_return_id; - lhs.offset = 0; - rhs.type = SCALAR; - rhs.var = escaped_return_id; - rhs.offset = UNKNOWN_OFFSET; - process_constraint (new_constraint (lhs, rhs)); - lhs.type = SCALAR; - lhs.var = escaped_return_id; - lhs.offset = 0; - rhs.type = DEREF; - rhs.var = escaped_return_id; - rhs.offset = 0; - process_constraint (new_constraint (lhs, rhs)); - - /* Create the STOREDANYTHING variable, used to represent the set of - variables stored to *ANYTHING. */ - var_storedanything = new_var_info (NULL_TREE, "STOREDANYTHING", false); - gcc_assert (var_storedanything->id == storedanything_id); - var_storedanything->is_artificial_var = 1; - var_storedanything->offset = 0; - var_storedanything->size = ~0; - var_storedanything->fullsize = ~0; - var_storedanything->is_special_var = 0; - - /* Create the INTEGER variable, used to represent that a variable points - to what an INTEGER "points to". */ - var_integer = new_var_info (NULL_TREE, "INTEGER", false); - gcc_assert (var_integer->id == integer_id); - var_integer->is_artificial_var = 1; - var_integer->size = ~0; - var_integer->fullsize = ~0; - var_integer->offset = 0; - var_integer->is_special_var = 1; - - /* INTEGER = ANYTHING, because we don't know where a dereference of - a random integer will point to. */ - lhs.type = SCALAR; - lhs.var = integer_id; - lhs.offset = 0; - rhs.type = ADDRESSOF; - rhs.var = anything_id; - rhs.offset = 0; - process_constraint (new_constraint (lhs, rhs)); -} - /* Initialize things necessary to perform PTA. */ static void @@ -5117,17 +1249,14 @@ init_alias_vars (void) constraints.create (8); varmap.create (8); - vi_for_tree = new hash_map; - call_stmt_vars = new hash_map; memset (&stats, 0, sizeof (stats)); shared_bitmap_table = new hash_table (511); - init_base_vars (); - - gcc_obstack_init (&fake_var_decl_obstack); final_solutions = new hash_map; gcc_obstack_init (&final_solutions_obstack); + + init_constraint_builder (); } /* Create points-to sets for the current function. See the comments @@ -5143,34 +1272,7 @@ compute_points_to_sets (void) init_alias_vars (); - intra_create_variable_infos (cfun); - - /* Now walk all statements and build the constraint set. */ - FOR_EACH_BB_FN (bb, cfun) - { - for (gphi_iterator gsi = gsi_start_phis (bb); !gsi_end_p (gsi); - gsi_next (&gsi)) - { - gphi *phi = gsi.phi (); - - if (! virtual_operand_p (gimple_phi_result (phi))) - find_func_aliases (cfun, phi); - } - - for (gimple_stmt_iterator gsi = gsi_start_bb (bb); !gsi_end_p (gsi); - gsi_next (&gsi)) - { - gimple *stmt = gsi_stmt (gsi); - - find_func_aliases (cfun, stmt); - } - } - - if (dump_file && (dump_flags & TDF_DETAILS)) - { - fprintf (dump_file, "Points-to analysis\n\nConstraints:\n\n"); - dump_constraints (dump_file, 0); - } + intra_build_constraints (); /* From the constraints compute the points-to sets. */ solve_constraints (); @@ -5294,7 +1396,6 @@ compute_points_to_sets (void) timevar_pop (TV_TREE_PTA); } - /* Delete created points-to sets. */ static void @@ -5306,8 +1407,6 @@ delete_points_to_sets (void) fprintf (dump_file, "Points to sets created:%d\n", stats.points_to_sets_created); - delete vi_for_tree; - delete call_stmt_vars; bitmap_obstack_release (&pta_obstack); constraints.release (); @@ -5315,14 +1414,14 @@ delete_points_to_sets (void) varmap.release (); variable_info_pool.release (); - constraint_pool.release (); - - obstack_free (&fake_var_decl_obstack, NULL); delete final_solutions; obstack_free (&final_solutions_obstack, NULL); + + delete_constraint_builder (); } + struct vls_data { unsigned short clique; @@ -5580,6 +1679,7 @@ compute_dependence_clique (void) BITMAP_FREE (rvars); } + /* Compute points-to information for every SSA_NAME pointer in the current function and compute the transitive closure of escaped variables to re-initialize the call-clobber states of local variables. */ @@ -5705,53 +1805,12 @@ struct pt_solution ipa_escaped_pt = { true, false, false, false, false, false, false, false, false, false, false, NULL }; -/* Associate node with varinfo DATA. Worker for - cgraph_for_symbol_thunks_and_aliases. */ -static bool -associate_varinfo_to_alias (struct cgraph_node *node, void *data) -{ - if ((node->alias - || (node->thunk - && ! node->inlined_to)) - && node->analyzed - && !node->ifunc_resolver) - insert_vi_for_tree (node->decl, (varinfo_t)data); - return false; -} - -/* Compute whether node is refered to non-locally. Worker for - cgraph_for_symbol_thunks_and_aliases. */ -static bool -refered_from_nonlocal_fn (struct cgraph_node *node, void *data) -{ - bool *nonlocal_p = (bool *)data; - *nonlocal_p |= (node->used_from_other_partition - || DECL_EXTERNAL (node->decl) - || TREE_PUBLIC (node->decl) - || node->force_output - || lookup_attribute ("noipa", DECL_ATTRIBUTES (node->decl))); - return false; -} - -/* Same for varpool nodes. */ -static bool -refered_from_nonlocal_var (struct varpool_node *node, void *data) -{ - bool *nonlocal_p = (bool *)data; - *nonlocal_p |= (node->used_from_other_partition - || DECL_EXTERNAL (node->decl) - || TREE_PUBLIC (node->decl) - || node->force_output); - return false; -} /* Execute the driver for IPA PTA. */ static unsigned int ipa_pta_execute (void) { struct cgraph_node *node; - varpool_node *var; - unsigned int from = 0; in_ipa_mode = 1; @@ -5766,148 +1825,11 @@ ipa_pta_execute (void) if (dump_file && (dump_flags & TDF_DETAILS)) { fprintf (dump_file, "Generating generic constraints\n\n"); - dump_constraints (dump_file, from); - fprintf (dump_file, "\n"); - from = constraints.length (); - } - - /* Build the constraints. */ - FOR_EACH_DEFINED_FUNCTION (node) - { - varinfo_t vi; - /* Nodes without a body in this partition are not interesting. - Especially do not visit clones at this point for now - we - get duplicate decls there for inline clones at least. */ - if (!node->has_gimple_body_p () - || node->in_other_partition - || node->inlined_to) - continue; - node->get_body (); - - gcc_assert (!node->clone_of); - - /* For externally visible or attribute used annotated functions use - local constraints for their arguments. - For local functions we see all callers and thus do not need initial - constraints for parameters. */ - bool nonlocal_p = (node->used_from_other_partition - || DECL_EXTERNAL (node->decl) - || TREE_PUBLIC (node->decl) - || node->force_output - || lookup_attribute ("noipa", - DECL_ATTRIBUTES (node->decl))); - node->call_for_symbol_thunks_and_aliases (refered_from_nonlocal_fn, - &nonlocal_p, true); - - vi = create_function_info_for (node->decl, - alias_get_name (node->decl), false, - nonlocal_p); - if (dump_file && (dump_flags & TDF_DETAILS) - && from != constraints.length ()) - { - fprintf (dump_file, - "Generating initial constraints for %s", - node->dump_name ()); - if (DECL_ASSEMBLER_NAME_SET_P (node->decl)) - fprintf (dump_file, " (%s)", - IDENTIFIER_POINTER - (DECL_ASSEMBLER_NAME (node->decl))); - fprintf (dump_file, "\n\n"); - dump_constraints (dump_file, from); - fprintf (dump_file, "\n"); - - from = constraints.length (); - } - - node->call_for_symbol_thunks_and_aliases - (associate_varinfo_to_alias, vi, true); - } - - /* Create constraints for global variables and their initializers. */ - FOR_EACH_VARIABLE (var) - { - if (var->alias && var->analyzed) - continue; - - varinfo_t vi = get_vi_for_tree (var->decl); - - /* For the purpose of IPA PTA unit-local globals are not - escape points. */ - bool nonlocal_p = (DECL_EXTERNAL (var->decl) - || TREE_PUBLIC (var->decl) - || var->used_from_other_partition - || var->force_output); - var->call_for_symbol_and_aliases (refered_from_nonlocal_var, - &nonlocal_p, true); - if (nonlocal_p) - vi->is_ipa_escape_point = true; - } - - if (dump_file && (dump_flags & TDF_DETAILS) - && from != constraints.length ()) - { - fprintf (dump_file, - "Generating constraints for global initializers\n\n"); - dump_constraints (dump_file, from); + dump_constraints (dump_file, 0); fprintf (dump_file, "\n"); - from = constraints.length (); } - FOR_EACH_DEFINED_FUNCTION (node) - { - struct function *func; - basic_block bb; - - /* Nodes without a body in this partition are not interesting. */ - if (!node->has_gimple_body_p () - || node->in_other_partition - || node->clone_of) - continue; - - if (dump_file && (dump_flags & TDF_DETAILS)) - { - fprintf (dump_file, - "Generating constraints for %s", node->dump_name ()); - if (DECL_ASSEMBLER_NAME_SET_P (node->decl)) - fprintf (dump_file, " (%s)", - IDENTIFIER_POINTER - (DECL_ASSEMBLER_NAME (node->decl))); - fprintf (dump_file, "\n"); - } - - func = DECL_STRUCT_FUNCTION (node->decl); - gcc_assert (cfun == NULL); - - /* Build constriants for the function body. */ - FOR_EACH_BB_FN (bb, func) - { - for (gphi_iterator gsi = gsi_start_phis (bb); !gsi_end_p (gsi); - gsi_next (&gsi)) - { - gphi *phi = gsi.phi (); - - if (! virtual_operand_p (gimple_phi_result (phi))) - find_func_aliases (func, phi); - } - - for (gimple_stmt_iterator gsi = gsi_start_bb (bb); !gsi_end_p (gsi); - gsi_next (&gsi)) - { - gimple *stmt = gsi_stmt (gsi); - - find_func_aliases (func, stmt); - find_func_clobbers (func, stmt); - } - } - - if (dump_file && (dump_flags & TDF_DETAILS)) - { - fprintf (dump_file, "\n"); - dump_constraints (dump_file, from); - fprintf (dump_file, "\n"); - from = constraints.length (); - } - } + ipa_build_constraints (); /* From the constraints compute the points-to sets. */ solve_constraints (); diff --git a/gcc/tree-ssa-structalias.h b/gcc/tree-ssa-structalias.h index 4104bad3499f..1f5b28048b46 100644 --- a/gcc/tree-ssa-structalias.h +++ b/gcc/tree-ssa-structalias.h @@ -34,6 +34,15 @@ enum { nothing_id = 1, anything_id = 2, string_id = 3, escaped_id = 4, nonlocal_id = 5, escaped_return_id = 6, storedanything_id = 7, integer_id = 8 }; +/* In IPA mode there are varinfos for different aspects of reach + function designator. One for the points-to set of the return + value, one for the variables that are clobbered by the function, + one for its uses and one for each parameter (including a single + glob for remaining variadic arguments). */ + +enum { fi_clobbers = 1, fi_uses = 2, + fi_static_chain = 3, fi_result = 4, fi_parm_base = 5 }; + /* Use 0x8000... as special unknown offset. */ #define UNKNOWN_OFFSET HOST_WIDE_INT_MIN @@ -167,6 +176,9 @@ struct constraint_stats unsigned int points_to_sets_created; }; +extern bool use_field_sensitive; +extern int in_ipa_mode; + extern struct constraint_stats stats; extern bitmap_obstack pta_obstack; @@ -198,6 +210,9 @@ varinfo_t first_vi_for_offset (varinfo_t start, unsigned HOST_WIDE_INT offset); varinfo_t first_or_preceding_vi_for_offset (varinfo_t start, unsigned HOST_WIDE_INT offset); +void determine_global_memory_access (gcall *, bool *, bool *, bool *); +bool fndecl_maybe_in_other_partition (tree); +varinfo_t new_var_info (tree t, const char *name, bool add_id); void dump_constraint (FILE *file, constraint_t c); void dump_constraints (FILE *file, int from); void dump_solution_for_var (FILE *file, unsigned int var); diff --git a/gcc/tree-ssa-uninit.cc b/gcc/tree-ssa-uninit.cc index cb82001770e8..45e789c9563e 100644 --- a/gcc/tree-ssa-uninit.cc +++ b/gcc/tree-ssa-uninit.cc @@ -641,6 +641,7 @@ maybe_warn_operand (ao_ref &ref, gimple *stmt, tree lhs, tree rhs, return NULL_TREE; bool found_alloc = false; + bool found_clobber_deref_this = false; if (fentry_reached) { @@ -662,12 +663,30 @@ maybe_warn_operand (ao_ref &ref, gimple *stmt, tree lhs, tree rhs, tree fndecl = gimple_call_fndecl (def_stmt); const built_in_function fncode = DECL_FUNCTION_CODE (fndecl); if (fncode == BUILT_IN_ALLOCA - || fncode == BUILT_IN_ALLOCA_WITH_ALIGN - || fncode == BUILT_IN_MALLOC) + || fncode == BUILT_IN_ALLOCA_WITH_ALIGN + || fncode == BUILT_IN_MALLOC) found_alloc = true; break; } + /* The C++ FE for -flifetime-dse=2 marks this parameters + of certain constructors with "clobber *this" attribute. + Emit uninitialized warnings if we read from what this points + to. This is similar to access (write_only, 1) attribute, + except it is a -Wuninitialized warning rather than + -Wmaybe-uninitialized and doesn't talk about access + attribute. */ + if (SSA_NAME_IS_DEFAULT_DEF (base) + && POINTER_TYPE_P (TREE_TYPE (base)) + && SSA_NAME_VAR (base) + && TREE_CODE (SSA_NAME_VAR (base)) == PARM_DECL + && lookup_attribute ("clobber *this", + DECL_ATTRIBUTES (SSA_NAME_VAR (base)))) + { + found_clobber_deref_this = true; + break; + } + if (!is_gimple_assign (def_stmt)) break; @@ -702,7 +721,7 @@ maybe_warn_operand (ao_ref &ref, gimple *stmt, tree lhs, tree rhs, /* Do not warn if it can be initialized outside this function. If we did not reach function entry then we found killing clobbers on all paths to entry. */ - if (!found_alloc && fentry_reached) + if ((!found_alloc && !found_clobber_deref_this) && fentry_reached) { if (TREE_CODE (base) == SSA_NAME) { diff --git a/gcc/tree-vect-data-refs.cc b/gcc/tree-vect-data-refs.cc index a31ff93bbd3c..c7941108887e 100644 --- a/gcc/tree-vect-data-refs.cc +++ b/gcc/tree-vect-data-refs.cc @@ -6522,7 +6522,8 @@ vect_can_force_dr_alignment_p (const_tree decl, poly_uint64 alignment) alignment. If CHECK_ALIGNED_ACCESSES is TRUE, check if the access is supported even it is aligned, i.e., check if it is possible to vectorize it with different - alignment. If GS_INFO is passed we are dealing with a gather/scatter. */ + alignment. If IS_GATHER_SCATTER is true we are dealing with a + gather/scatter. */ enum dr_alignment_support vect_supportable_dr_alignment (vec_info *vinfo, dr_vec_info *dr_info, @@ -6610,7 +6611,7 @@ vect_supportable_dr_alignment (vec_info *vinfo, dr_vec_info *dr_info, } } */ - if (DR_IS_READ (dr)) + if (DR_IS_READ (dr) && !is_gather_scatter) { if (can_implement_p (vec_realign_load_optab, mode) && (!targetm.vectorize.builtin_mask_for_load @@ -6636,11 +6637,13 @@ vect_supportable_dr_alignment (vec_info *vinfo, dr_vec_info *dr_info, } } - bool is_packed = false; - tree type = TREE_TYPE (DR_REF (dr)); - if (misalignment == DR_MISALIGNMENT_UNKNOWN) - is_packed = not_size_aligned (DR_REF (dr)); - if (targetm.vectorize.support_vector_misalignment (mode, type, misalignment, + bool is_packed = not_size_aligned (DR_REF (dr)); + if (misalignment == DR_MISALIGNMENT_UNKNOWN + && is_gather_scatter) + misalignment = (get_object_alignment (DR_REF (dr)) + % (GET_MODE_BITSIZE (GET_MODE_INNER (mode)))) + / BITS_PER_UNIT; + if (targetm.vectorize.support_vector_misalignment (mode, misalignment, is_packed, is_gather_scatter)) return dr_unaligned_supported; diff --git a/gcc/tree-vect-loop.cc b/gcc/tree-vect-loop.cc index 18360375e297..73398e58fdc9 100644 --- a/gcc/tree-vect-loop.cc +++ b/gcc/tree-vect-loop.cc @@ -6049,8 +6049,6 @@ vect_create_epilog_for_reduction (loop_vec_info loop_vinfo, Create: va = vop } */ - tree rhs; - if (dump_enabled_p ()) dump_printf_loc (MSG_NOTE, vect_location, "Reduce using vector shifts\n"); @@ -6069,7 +6067,6 @@ vect_create_epilog_for_reduction (loop_vec_info loop_vinfo, new_temp = gimple_build (&stmts, code, vectype1, new_name, new_temp); } - gsi_insert_seq_before (&exit_gsi, stmts, GSI_SAME_STMT); /* 2.4 Extract the final scalar result. Create: s_out3 = extract_field */ @@ -6078,12 +6075,11 @@ vect_create_epilog_for_reduction (loop_vec_info loop_vinfo, dump_printf_loc (MSG_NOTE, vect_location, "extract scalar result\n"); - rhs = build3 (BIT_FIELD_REF, scalar_type, new_temp, - bitsize, bitsize_zero_node); - epilog_stmt = gimple_build_assign (new_scalar_dest, rhs); - new_temp = make_ssa_name (new_scalar_dest, epilog_stmt); - gimple_assign_set_lhs (epilog_stmt, new_temp); - gsi_insert_before (&exit_gsi, epilog_stmt, GSI_SAME_STMT); + new_temp = gimple_build (&stmts, BIT_FIELD_REF, TREE_TYPE (vectype1), + new_temp, bitsize, bitsize_zero_node); + new_temp = gimple_build (&stmts, VIEW_CONVERT_EXPR, + scalar_type, new_temp); + gsi_insert_seq_before (&exit_gsi, stmts, GSI_SAME_STMT); scalar_results.safe_push (new_temp); } else @@ -7177,6 +7173,15 @@ vectorizable_reduction (loop_vec_info loop_vinfo, tree vectype_out = SLP_TREE_VECTYPE (slp_for_stmt_info); VECT_REDUC_INFO_VECTYPE (reduc_info) = vectype_out; + /* We do not handle mask reductions correctly in the epilogue. */ + if (VECTOR_BOOLEAN_TYPE_P (vectype_out)) + { + if (dump_enabled_p ()) + dump_printf_loc (MSG_MISSED_OPTIMIZATION, vect_location, + "mask reduction not supported.\n"); + return false; + } + gimple_match_op op; if (!gimple_extract_op (stmt_info->stmt, &op)) gcc_unreachable (); @@ -7187,7 +7192,10 @@ vectorizable_reduction (loop_vec_info loop_vinfo, return false; /* Do not try to vectorize bit-precision reductions. */ - if (!type_has_mode_precision_p (op.type)) + if (!type_has_mode_precision_p (op.type) + && op.code != BIT_AND_EXPR + && op.code != BIT_IOR_EXPR + && op.code != BIT_XOR_EXPR) return false; /* Lane-reducing ops also never can be used in a SLP reduction group diff --git a/gcc/tree-vect-patterns.cc b/gcc/tree-vect-patterns.cc index 782327235db1..5581f44a6a84 100644 --- a/gcc/tree-vect-patterns.cc +++ b/gcc/tree-vect-patterns.cc @@ -5452,8 +5452,10 @@ integer_type_for_mask (tree var, vec_info *vinfo) if (!VECT_SCALAR_BOOLEAN_TYPE_P (TREE_TYPE (var))) return NULL_TREE; - stmt_vec_info def_stmt_info = vect_get_internal_def (vinfo, var); - if (!def_stmt_info || !vect_use_mask_type_p (def_stmt_info)) + stmt_vec_info def_stmt_info = vinfo->lookup_def (var); + if (!def_stmt_info + || STMT_VINFO_DEF_TYPE (def_stmt_info) == vect_external_def + || !vect_use_mask_type_p (def_stmt_info)) return NULL_TREE; return build_nonstandard_integer_type (def_stmt_info->mask_precision, 1); @@ -5533,6 +5535,53 @@ vect_recog_gcond_pattern (vec_info *vinfo, return pattern_stmt; } + +/* A helper for vect_recog_mask_conversion_pattern. Build + conversion of MASK to a type suitable for masking VECTYPE. + Built statement gets required vectype and is appended to + a pattern sequence of STMT_VINFO. + + Return converted mask. */ + +static tree +build_mask_conversion (vec_info *vinfo, + tree mask, tree vectype, stmt_vec_info stmt_vinfo) +{ + gimple *stmt; + tree masktype, tmp; + + masktype = truth_type_for (vectype); + tmp = vect_recog_temp_ssa_var (TREE_TYPE (masktype), NULL); + stmt = gimple_build_assign (tmp, CONVERT_EXPR, mask); + append_pattern_def_seq (vinfo, stmt_vinfo, + stmt, masktype, TREE_TYPE (vectype)); + + return tmp; +} + + +/* Return MASK if MASK is suitable for masking an operation on vectors + of type VECTYPE, otherwise convert it into such a form and return + the result. Associate any conversion statements with STMT_INFO's + pattern. */ + +static tree +vect_convert_mask_for_vectype (tree mask, tree vectype, + stmt_vec_info stmt_info, vec_info *vinfo) +{ + tree mask_type = integer_type_for_mask (mask, vinfo); + if (mask_type) + { + tree mask_vectype = get_mask_type_for_scalar_type (vinfo, mask_type); + if (mask_vectype + && maybe_ne (TYPE_VECTOR_SUBPARTS (vectype), + TYPE_VECTOR_SUBPARTS (mask_vectype))) + mask = build_mask_conversion (vinfo, mask, vectype, stmt_info); + } + return mask; +} + + /* Function vect_recog_bool_pattern Try to find pattern like following: @@ -5691,10 +5740,12 @@ vect_recog_bool_pattern (vec_info *vinfo, if (!new_vectype) return NULL; - new_vectype = truth_type_for (new_vectype); append_pattern_def_seq (vinfo, stmt_vinfo, pattern_stmt, new_vectype, TREE_TYPE (var)); + lhs_var = vect_convert_mask_for_vectype (lhs_var, vectype, stmt_vinfo, + vinfo); + lhs = vect_recog_temp_ssa_var (TREE_TYPE (lhs), NULL); pattern_stmt = gimple_build_assign (lhs, COND_EXPR, lhs_var, @@ -5703,6 +5754,68 @@ vect_recog_bool_pattern (vec_info *vinfo, *type_out = vectype; vect_pattern_detected ("vect_recog_bool_pattern", last_stmt); + return pattern_stmt; + } + else if (rhs_code == BIT_XOR_EXPR + || rhs_code == BIT_AND_EXPR + || rhs_code == BIT_IOR_EXPR) + { + tree lhs_type = integer_type_for_mask (lhs, vinfo); + if (!lhs_type) + return NULL; + vectype = get_mask_type_for_scalar_type (vinfo, lhs_type); + if (!vectype) + return NULL; + tree rhs2 = gimple_assign_rhs2 (last_stmt); + tree rhs1_type = integer_type_for_mask (var, vinfo); + tree rhs2_type = integer_type_for_mask (rhs2, vinfo); + if (rhs1_type && rhs2_type) + return NULL; + /* When one input is a mask and the other is not create a pattern + stmt sequence that creates a mask for the non-mask input and + convert it to one suitable for the output mask used. */ + if (rhs1_type && !rhs2_type) + { + tree rhs1_vectype = get_mask_type_for_scalar_type (vinfo, rhs1_type); + if (!rhs1_vectype) + return NULL; + tree rhs2_vectype = get_vectype_for_scalar_type (vinfo, + TREE_TYPE (rhs2)); + if (!rhs2_vectype) + return NULL; + tree new_vectype = truth_type_for (rhs2_vectype); + tree tem = vect_recog_temp_ssa_var (TREE_TYPE (new_vectype), NULL); + pattern_stmt = gimple_build_assign (tem, NE_EXPR, rhs2, + build_zero_cst + (TREE_TYPE (rhs2))); + append_pattern_def_seq (vinfo, stmt_vinfo, pattern_stmt, + new_vectype, TREE_TYPE (new_vectype)); + rhs2 = vect_convert_mask_for_vectype (tem, rhs1_vectype, + stmt_vinfo, vinfo); + } + else if (!rhs1_type && rhs2_type) + { + tree rhs2_vectype = get_mask_type_for_scalar_type (vinfo, rhs2_type); + if (!rhs2_vectype) + return NULL; + tree rhs1_vectype = get_vectype_for_scalar_type (vinfo, + TREE_TYPE (var)); + if (!rhs1_vectype) + return NULL; + tree new_vectype = truth_type_for (rhs1_vectype); + tree tem = vect_recog_temp_ssa_var (TREE_TYPE (new_vectype), NULL); + pattern_stmt = gimple_build_assign (tem, NE_EXPR, var, + build_zero_cst + (TREE_TYPE (var))); + append_pattern_def_seq (vinfo, stmt_vinfo, pattern_stmt, + new_vectype, TREE_TYPE (new_vectype)); + var = vect_convert_mask_for_vectype (tem, rhs2_vectype, + stmt_vinfo, vinfo); + } + lhs = vect_recog_temp_ssa_var (TREE_TYPE (lhs), NULL); + pattern_stmt = gimple_build_assign (lhs, rhs_code, var, rhs2); + vect_pattern_detected ("vect_recog_bool_pattern", last_stmt); + *type_out = vectype; return pattern_stmt; } else if (rhs_code == SSA_NAME @@ -5714,30 +5827,18 @@ vect_recog_bool_pattern (vec_info *vinfo, return NULL; tree type = integer_type_for_mask (var, vinfo); - tree cst0, cst1, new_vectype; - if (!type) return NULL; - if (TYPE_MODE (type) == TYPE_MODE (TREE_TYPE (vectype))) - type = TREE_TYPE (vectype); + var = vect_convert_mask_for_vectype (var, vectype, stmt_vinfo, vinfo); - cst0 = build_int_cst (type, 0); - cst1 = build_int_cst (type, 1); - new_vectype = get_vectype_for_scalar_type (vinfo, type); - - rhs = vect_recog_temp_ssa_var (type, NULL); + tree cst0 = build_int_cst (TREE_TYPE (vectype), 0); + tree cst1 = build_int_cst (TREE_TYPE (vectype), 1); + rhs = vect_recog_temp_ssa_var (TREE_TYPE (vectype), NULL); pattern_stmt = gimple_build_assign (rhs, COND_EXPR, var, cst1, cst0); - append_pattern_def_seq (vinfo, stmt_vinfo, pattern_stmt, new_vectype); + append_pattern_def_seq (vinfo, stmt_vinfo, pattern_stmt, vectype); lhs = build1 (VIEW_CONVERT_EXPR, TREE_TYPE (vectype), lhs); - if (!useless_type_conversion_p (TREE_TYPE (lhs), TREE_TYPE (rhs))) - { - tree rhs2 = vect_recog_temp_ssa_var (TREE_TYPE (lhs), NULL); - gimple *cast_stmt = gimple_build_assign (rhs2, NOP_EXPR, rhs); - append_pattern_def_seq (vinfo, stmt_vinfo, cast_stmt); - rhs = rhs2; - } pattern_stmt = gimple_build_assign (lhs, SSA_NAME, rhs); pattern_stmt_info = vinfo->add_stmt (pattern_stmt); vinfo->move_dr (pattern_stmt_info, stmt_vinfo); @@ -5750,29 +5851,6 @@ vect_recog_bool_pattern (vec_info *vinfo, return NULL; } -/* A helper for vect_recog_mask_conversion_pattern. Build - conversion of MASK to a type suitable for masking VECTYPE. - Built statement gets required vectype and is appended to - a pattern sequence of STMT_VINFO. - - Return converted mask. */ - -static tree -build_mask_conversion (vec_info *vinfo, - tree mask, tree vectype, stmt_vec_info stmt_vinfo) -{ - gimple *stmt; - tree masktype, tmp; - - masktype = truth_type_for (vectype); - tmp = vect_recog_temp_ssa_var (TREE_TYPE (masktype), NULL); - stmt = gimple_build_assign (tmp, CONVERT_EXPR, mask); - append_pattern_def_seq (vinfo, stmt_vinfo, - stmt, masktype, TREE_TYPE (vectype)); - - return tmp; -} - /* Function vect_recog_mask_conversion_pattern @@ -6005,27 +6083,6 @@ vect_get_load_store_mask (stmt_vec_info stmt_info) gcc_unreachable (); } -/* Return MASK if MASK is suitable for masking an operation on vectors - of type VECTYPE, otherwise convert it into such a form and return - the result. Associate any conversion statements with STMT_INFO's - pattern. */ - -static tree -vect_convert_mask_for_vectype (tree mask, tree vectype, - stmt_vec_info stmt_info, vec_info *vinfo) -{ - tree mask_type = integer_type_for_mask (mask, vinfo); - if (mask_type) - { - tree mask_vectype = get_mask_type_for_scalar_type (vinfo, mask_type); - if (mask_vectype - && maybe_ne (TYPE_VECTOR_SUBPARTS (vectype), - TYPE_VECTOR_SUBPARTS (mask_vectype))) - mask = build_mask_conversion (vinfo, mask, vectype, stmt_info); - } - return mask; -} - /* Return the equivalent of: fold_convert (TYPE, VALUE) diff --git a/gcc/tree-vectorizer.cc b/gcc/tree-vectorizer.cc index d7dc30bbeac5..97b6297fb145 100644 --- a/gcc/tree-vectorizer.cc +++ b/gcc/tree-vectorizer.cc @@ -1137,7 +1137,7 @@ try_vectorize_loop_1 (hash_table *&simduid_to_vf_htab, || ifn == IFN_MASK_STORE || ifn == IFN_MASK_CALL /* Don't keep the if-converted parts when the ifn with - specifc type is not supported by the backend. */ + specific type is not supported by the backend. */ || (direct_internal_fn_p (ifn) && !direct_internal_fn_supported_p (call, OPTIMIZE_FOR_SPEED))) diff --git a/gcc/tree.h b/gcc/tree.h index 4c8ad9842ff0..4a4b8ef7f0a7 100644 --- a/gcc/tree.h +++ b/gcc/tree.h @@ -900,6 +900,19 @@ extern void omp_clause_range_check_failed (const_tree, const char *, int, #define UNUSED_LABEL_P(NODE) \ (LABEL_DECL_CHECK (NODE)->base.default_def_flag) +/* Label used to goto around artificial .DEFERRED_INIT code for + C++ -ftrivial-auto-var-init= purposes with a goto around it. + VACUOUS_INIT_LABEL_P flag is used on the lab LABEL_DECL in: + goto lab; + lab1: + v1 = .DEFERRED_INIT (...); + v2 = .DEFERRED_INIT (...); + lab2: + v3 = .DEFERRED_INIT (...); + lab: */ +#define VACUOUS_INIT_LABEL_P(NODE) \ + (LABEL_DECL_CHECK (NODE)->base.nothrow_flag) + /* Nonzero means this expression is volatile in the C sense: its address should be of type `volatile WHATEVER *'. In other words, the declared item is volatile qualified. @@ -7005,6 +7018,15 @@ fndecl_built_in_p (const_tree node, built_in_function name1, F... names) name1, names...)); } +/* Returns true if the function decl NODE is an alloca. */ +inline bool +fndecl_builtin_alloc_p (const_tree node) +{ + if (!fndecl_built_in_p (node, BUILT_IN_NORMAL)) + return false; + return ALLOCA_FUNCTION_CODE_P (DECL_FUNCTION_CODE (node)); +} + /* A struct for encapsulating location information about an operator and the operation built from it. diff --git a/gcc/value-range.cc b/gcc/value-range.cc index dc6909e77c54..d34a2623db44 100644 --- a/gcc/value-range.cc +++ b/gcc/value-range.cc @@ -2552,22 +2552,19 @@ irange::intersect_bitmask (const irange &r) { gcc_checking_assert (!undefined_p () && !r.undefined_p ()); + // If the bitmasks are the same, do nothing. if (m_bitmask == r.m_bitmask) return false; irange_bitmask bm = get_bitmask (); irange_bitmask save = bm; bm.intersect (r.get_bitmask ()); - // Use ths opportunity to make sure mask always reflects the - // best mask we have. - m_bitmask = bm; - // Updating m_bitmask may still yield a semantic bitmask (as - // returned by get_bitmask) which is functionally equivalent to what - // we originally had. In which case, there's still no change. - if (save == bm || save == get_bitmask ()) + // If the new mask is the same, there is no change. + if (m_bitmask == bm) return false; + m_bitmask = bm; if (!set_range_from_bitmask ()) normalize_kind (); if (flag_checking) diff --git a/gcc/vr-values.cc b/gcc/vr-values.cc index ff11656559bf..44dff35bcf29 100644 --- a/gcc/vr-values.cc +++ b/gcc/vr-values.cc @@ -278,14 +278,14 @@ range_from_loop_direction (irange &r, tree type, r.set_varying (type); else if (dir == EV_DIR_GROWS) { - if (wi::gt_p (begin.lower_bound (), end.upper_bound (), sign)) + if (wi::ge_p (begin.lower_bound (), end.upper_bound (), sign)) r.set_varying (type); else r = int_range<1> (type, begin.lower_bound (), end.upper_bound ()); } else { - if (wi::gt_p (end.lower_bound (), begin.upper_bound (), sign)) + if (wi::ge_p (end.lower_bound (), begin.upper_bound (), sign)) r.set_varying (type); else r = int_range<1> (type, end.lower_bound (), begin.upper_bound ()); diff --git a/include/ChangeLog b/include/ChangeLog index 113bd11725ab..4a60236a756e 100644 --- a/include/ChangeLog +++ b/include/ChangeLog @@ -1,3 +1,17 @@ +2025-10-09 David Faust + + * btf.h (BTF_KIND_DECL_TAG, BTF_KIND_TYPE_TAG) New defines. + (struct btf_decl_tag): New. + +2025-10-09 David Faust + + * ctf.h (CTF_K_DECL_TAG, CTF_K_TYPE_TAG): New defines. + +2025-10-09 David Faust + + * dwarf2.def (DW_TAG_GNU_annotation): New DWARF extension. + (DW_AT_GNU_annotation): Likewise. + 2025-08-17 Nathaniel Shead PR c++/120503 diff --git a/include/btf.h b/include/btf.h index 994d02dcfb39..d20ede23fb38 100644 --- a/include/btf.h +++ b/include/btf.h @@ -114,6 +114,8 @@ struct btf_type #define BTF_KIND_VAR 14 /* Variable. */ #define BTF_KIND_DATASEC 15 /* Section such as .bss or .data. */ #define BTF_KIND_FLOAT 16 /* Floating point. */ +#define BTF_KIND_DECL_TAG 17 /* Declaration tag. */ +#define BTF_KIND_TYPE_TAG 18 /* Type tag. */ #define BTF_KIND_ENUM64 19 /* Enumeration up to 64 bits. */ #define BTF_KIND_MAX BTF_KIND_ENUM64 #define NR_BTF_KINDS (BTF_KIND_MAX + 1) @@ -227,6 +229,18 @@ struct btf_enum64 uint32_t val_hi32; /* high 32-bit value for a 64-bit value Enumerator */ }; +/* BTF_KIND_DECL_TAG is followed by a single struct btf_decl_tag, which + describes the item to which the tag applies: + - If component_idx == (uint32_t) -1, then the tag applies to item referred + to by the type_id. + - Otherwise, the tag applies to the struct or union member, or function + argument of the type referred to by type_id with the 0-based index + given by component_idx. */ +struct btf_decl_tag +{ + uint32_t component_idx; +}; + #ifdef __cplusplus } #endif diff --git a/include/ctf.h b/include/ctf.h index 72a639ac9b43..f75e337ba0f2 100644 --- a/include/ctf.h +++ b/include/ctf.h @@ -423,6 +423,10 @@ union #define CTF_K_CONST 12 /* ctt_type is base type. */ #define CTF_K_RESTRICT 13 /* ctt_type is base type. */ #define CTF_K_SLICE 14 /* Variant data is a ctf_slice_t. */ +#define CTF_K_DECL_TAG 15 /* Declaration tag. Internal use only. + Not valid externally until CTF V4. */ +#define CTF_K_TYPE_TAG 16 /* Type tag. Internal use only. + Not valid externally until CTF V4. */ #define CTF_K_MAX 63 /* Maximum possible (V2) CTF_K_* value. */ diff --git a/include/dwarf2.def b/include/dwarf2.def index 989f078041d4..37b8d6b99d02 100644 --- a/include/dwarf2.def +++ b/include/dwarf2.def @@ -174,6 +174,9 @@ DW_TAG (DW_TAG_GNU_formal_parameter_pack, 0x4108) are properly part of DWARF 5. */ DW_TAG (DW_TAG_GNU_call_site, 0x4109) DW_TAG (DW_TAG_GNU_call_site_parameter, 0x410a) + +DW_TAG (DW_TAG_GNU_annotation, 0x6001) + /* Extensions for UPC. See: http://dwarfstd.org/doc/DWARF4.pdf. */ DW_TAG (DW_TAG_upc_shared_type, 0x8765) DW_TAG (DW_TAG_upc_strict_type, 0x8766) @@ -456,6 +459,7 @@ DW_AT (DW_AT_GNU_pubtypes, 0x2135) DW_AT (DW_AT_GNU_discriminator, 0x2136) DW_AT (DW_AT_GNU_locviews, 0x2137) DW_AT (DW_AT_GNU_entry_view, 0x2138) +DW_AT (DW_AT_GNU_annotation, 0x2139) /* VMS extensions. */ DW_AT (DW_AT_VMS_rtnbeg_pd_address, 0x2201) /* GNAT extensions. */ diff --git a/include/hsa_ext_amd.h b/include/hsa_ext_amd.h index c1c16536621a..e29e88090eb0 100644 --- a/include/hsa_ext_amd.h +++ b/include/hsa_ext_amd.h @@ -168,9 +168,17 @@ typedef enum hsa_amd_agent_info_s { * selective workarounds for hardware errata. * The type of this attribute is uint32_t. */ - HSA_AMD_AGENT_INFO_ASIC_REVISION = 0xA012 + HSA_AMD_AGENT_INFO_ASIC_REVISION = 0xA012, + + /* Bitmask with memory properties of the agent. */ + HSA_AMD_AGENT_INFO_MEMORY_PROPERTIES = 0xA114 } hsa_amd_agent_info_t; + +enum { + HSA_AMD_MEMORY_PROPERTY_AGENT_IS_APU = (1 << 0) +}; + typedef struct hsa_amd_hdp_flush_s { uint32_t* HDP_MEM_FLUSH_CNTL; uint32_t* HDP_REG_FLUSH_CNTL; diff --git a/libatomic/ChangeLog b/libatomic/ChangeLog index f9bbaae7f33f..d15479525c06 100644 --- a/libatomic/ChangeLog +++ b/libatomic/ChangeLog @@ -1,3 +1,21 @@ +2025-10-09 Prathamesh Kulkarni + Matthew Malcolmson + + PR driver/81358 + * Makefile.am: Pass -fno-link-libatomic. + New rule all-local. + * configure.ac: Assert that CFLAGS is set and pass -fno-link-libatomic. + Use __libatomic_save_CFLAGS__ instead of save_CFLAGS. + * Makefile.in: Regenerate. + * configure: Regenerate. + +2025-10-05 Sam James + + * Makefile.in: Regenerate. + * aclocal.m4: Regenerate. + * configure: Regenerate. + * testsuite/Makefile.in: Regenerate. + 2025-07-31 Yury Khrustalev * config/linux/aarch64/host-config.h (__ifunc_arg_t): diff --git a/libatomic/Makefile.am b/libatomic/Makefile.am index 65dff6ece9ff..6dde874fa388 100644 --- a/libatomic/Makefile.am +++ b/libatomic/Makefile.am @@ -69,7 +69,7 @@ libatomic_darwin_rpath += -Wl,-rpath,@loader_path endif libatomic_la_LDFLAGS = $(libatomic_version_info) $(libatomic_version_script) \ - $(lt_host_flags) $(libatomic_darwin_rpath) + -Wc,-fno-link-libatomic $(lt_host_flags) $(libatomic_darwin_rpath) SIZES = @SIZES@ @@ -168,6 +168,19 @@ libatomic_convenience_la_LIBADD = $(libatomic_la_LIBADD) # when it is reloaded during the build of all-multi. all-multi: $(libatomic_la_LIBADD) +# Copy built libatomic library to $build/gcc so it's easier to locate, +# similar to libgcc. +# +# FIXME: libtool --mode=install also ends up copying libatomic.la in $gcc_objdir, +# which (somehow) ends up adding $gcc_objdir to RPATH for libraries that get +# built after libatomic, which makes RPATH insecure. Removing libatomic.la +# from $gcc_objdir seems to fix the issue. + +gcc_objdir = `pwd`/$(MULTIBUILDTOP)../../gcc/ +all-local: libatomic.la + $(LIBTOOL) --mode=install $(INSTALL_DATA) libatomic.la $(gcc_objdir)$(MULTISUBDIR)/ + rm $(gcc_objdir)$(MULTISUBDIR)/libatomic.la + # target overrides -include $(tmake_file) diff --git a/libatomic/Makefile.in b/libatomic/Makefile.in index 4344ac4a2e8f..be06e38e7235 100644 --- a/libatomic/Makefile.in +++ b/libatomic/Makefile.in @@ -104,7 +104,9 @@ target_triplet = @target@ subdir = . ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/../config/acx.m4 \ + $(top_srcdir)/../config/clang-plugin.m4 \ $(top_srcdir)/../config/depstand.m4 \ + $(top_srcdir)/../config/gcc-plugin.m4 \ $(top_srcdir)/../config/lead-dot.m4 \ $(top_srcdir)/../config/lthostflags.m4 \ $(top_srcdir)/../config/multi.m4 \ @@ -309,6 +311,7 @@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LIPO = @LIPO@ +LLVM_CONFIG = @LLVM_CONFIG@ LN_S = @LN_S@ LTLIBOBJS = @LTLIBOBJS@ MAINT = @MAINT@ @@ -429,7 +432,7 @@ libatomic_version_info = -version-info $(libtool_VERSION) @ENABLE_DARWIN_AT_RPATH_TRUE@ -Wc,-nodefaultrpaths \ @ENABLE_DARWIN_AT_RPATH_TRUE@ -Wl,-rpath,@loader_path libatomic_la_LDFLAGS = $(libatomic_version_info) $(libatomic_version_script) \ - $(lt_host_flags) $(libatomic_darwin_rpath) + -Wc,-fno-link-libatomic $(lt_host_flags) $(libatomic_darwin_rpath) @PARTIAL_VXWORKS_FALSE@libatomic_la_SOURCES = gload.c gstore.c gcas.c \ @PARTIAL_VXWORKS_FALSE@ gexch.c glfree.c lock.c init.c fenv.c \ @@ -471,6 +474,15 @@ libatomic_la_LDFLAGS = $(libatomic_version_info) $(libatomic_version_script) \ @ARCH_X86_64_TRUE@@HAVE_IFUNC_TRUE@@PARTIAL_VXWORKS_FALSE@IFUNC_OPTIONS = -mcx16 -mcx16 libatomic_convenience_la_SOURCES = $(libatomic_la_SOURCES) libatomic_convenience_la_LIBADD = $(libatomic_la_LIBADD) + +# Copy built libatomic library to $build/gcc so it's easier to locate, +# similar to libgcc. +# +# FIXME: libtool --mode=install also ends up copying libatomic.la in $gcc_objdir, +# which (somehow) ends up adding $gcc_objdir to RPATH for libraries that get +# built after libatomic, which makes RPATH insecure. Removing libatomic.la +# from $gcc_objdir seems to fix the issue. +gcc_objdir = `pwd`/$(MULTIBUILDTOP)../../gcc/ MULTISRCTOP = MULTIBUILDTOP = MULTIDIRS = @@ -914,6 +926,9 @@ vpath % $(strip $(search_path)) # makefile fragments to avoid broken *.Ppo getting included into the Makefile # when it is reloaded during the build of all-multi. all-multi: $(libatomic_la_LIBADD) +all-local: libatomic.la + $(LIBTOOL) --mode=install $(INSTALL_DATA) libatomic.la $(gcc_objdir)$(MULTISUBDIR)/ + rm $(gcc_objdir)$(MULTISUBDIR)/libatomic.la # target overrides -include $(tmake_file) diff --git a/libatomic/aclocal.m4 b/libatomic/aclocal.m4 index 80e24219d7d1..91bff17e5ea6 100644 --- a/libatomic/aclocal.m4 +++ b/libatomic/aclocal.m4 @@ -1188,7 +1188,9 @@ AC_SUBST([am__untar]) ]) # _AM_PROG_TAR m4_include([../config/acx.m4]) +m4_include([../config/clang-plugin.m4]) m4_include([../config/depstand.m4]) +m4_include([../config/gcc-plugin.m4]) m4_include([../config/lead-dot.m4]) m4_include([../config/lthostflags.m4]) m4_include([../config/multi.m4]) diff --git a/libatomic/configure b/libatomic/configure index 67b3a6388d7f..cd9fcdb15181 100755 --- a/libatomic/configure +++ b/libatomic/configure @@ -669,12 +669,13 @@ MAINTAINER_MODE_TRUE enable_static enable_shared lt_host_flags -CPP OTOOL64 OTOOL LIPO NMEDIT DSYMUTIL +LLVM_CONFIG +CPP OBJDUMP LN_S ac_ct_DUMPBIN @@ -1612,6 +1613,43 @@ fi } # ac_fn_c_try_compile +# ac_fn_c_try_cpp LINENO +# ---------------------- +# Try to preprocess conftest.$ac_ext, and return whether this succeeded. +ac_fn_c_try_cpp () +{ + as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack + if { { ac_try="$ac_cpp conftest.$ac_ext" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" +$as_echo "$ac_try_echo"; } >&5 + (eval "$ac_cpp conftest.$ac_ext") 2>conftest.err + ac_status=$? + if test -s conftest.err; then + grep -v '^ *+' conftest.err >conftest.er1 + cat conftest.er1 >&5 + mv -f conftest.er1 conftest.err + fi + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } > conftest.i && { + test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" || + test ! -s conftest.err + }; then : + ac_retval=0 +else + $as_echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_retval=1 +fi + eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno + as_fn_set_status $ac_retval + +} # ac_fn_c_try_cpp + # ac_fn_c_try_link LINENO # ----------------------- # Try to link conftest.$ac_ext, and return whether this succeeded. @@ -1689,43 +1727,6 @@ $as_echo "$ac_res" >&6; } } # ac_fn_c_check_header_compile -# ac_fn_c_try_cpp LINENO -# ---------------------- -# Try to preprocess conftest.$ac_ext, and return whether this succeeded. -ac_fn_c_try_cpp () -{ - as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack - if { { ac_try="$ac_cpp conftest.$ac_ext" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" -$as_echo "$ac_try_echo"; } >&5 - (eval "$ac_cpp conftest.$ac_ext") 2>conftest.err - ac_status=$? - if test -s conftest.err; then - grep -v '^ *+' conftest.err >conftest.er1 - cat conftest.er1 >&5 - mv -f conftest.er1 conftest.err - fi - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; } > conftest.i && { - test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" || - test ! -s conftest.err - }; then : - ac_retval=0 -else - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - ac_retval=1 -fi - eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno - as_fn_set_status $ac_retval - -} # ac_fn_c_try_cpp - # ac_fn_c_try_run LINENO # ---------------------- # Try to link conftest.$ac_ext, and return whether this succeeded. Assumes @@ -3417,6 +3418,26 @@ esac # the wrong, non-multilib-adjusted value will be used in multilibs. # As a side effect, we have to subst CFLAGS ourselves. +# AC_PROG_CC sets CFLAGS to "-g -O2" by default (if unset), and +# then compile conftests with default CFLAGS, leaving no place to temporarily +# modify CFLAGS and restore them later. However we need to pass +# -fno-link-libatomic in CFLAGS so conftests compiled in AC_PROG_CC don't fail. +# Assert that CFLAGS is always set by user so the default setting of CFLAGS by +# AC_PROG_CC won't be applicable anyway. +if test -z "${CFLAGS}"; then + as_fn_error $? "CFLAGS must be set." "$LINENO" 5 +fi + +# In order to override CFLAGS_FOR_TARGET, all of our special flags go +# in XCFLAGS. But we need them in CFLAGS during configury. So put them +# in both places for now and restore CFLAGS at the end of config. +__libatomic_save_CFLAGS__="$CFLAGS" + +# Append -fno-link-libatomic to avoid automatically linking libatomic, +# while building libatomic itself. +XCFLAGS="$XCFLAGS -fno-link-libatomic" +CFLAGS="$__libatomic_save_CFLAGS__ $XCFLAGS" + ac_ext=c @@ -4595,11 +4616,6 @@ fi -# In order to override CFLAGS_FOR_TARGET, all of our special flags go -# in XCFLAGS. But we need them in CFLAGS during configury. So put them -# in both places for now and restore CFLAGS at the end of config. -save_CFLAGS="$CFLAGS" - # Find other programs we need. if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}ar", so it can be a program name with args. @@ -6143,36 +6159,545 @@ vxworks*) esac fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_deplibs_check_method" >&5 -$as_echo "$lt_cv_deplibs_check_method" >&6; } -file_magic_cmd=$lt_cv_file_magic_cmd -deplibs_check_method=$lt_cv_deplibs_check_method -test -z "$deplibs_check_method" && deplibs_check_method=unknown - - - - - - - - +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_deplibs_check_method" >&5 +$as_echo "$lt_cv_deplibs_check_method" >&6; } +file_magic_cmd=$lt_cv_file_magic_cmd +deplibs_check_method=$lt_cv_deplibs_check_method +test -z "$deplibs_check_method" && deplibs_check_method=unknown + + + + + + + + + + + + + +ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to run the C preprocessor" >&5 +$as_echo_n "checking how to run the C preprocessor... " >&6; } +# On Suns, sometimes $CPP names a directory. +if test -n "$CPP" && test -d "$CPP"; then + CPP= +fi +if test -z "$CPP"; then + if ${ac_cv_prog_CPP+:} false; then : + $as_echo_n "(cached) " >&6 +else + # Double quotes because CPP needs to be expanded + for CPP in "$CC -E" "$CC -E -traditional-cpp" "/lib/cpp" + do + ac_preproc_ok=false +for ac_c_preproc_warn_flag in '' yes +do + # Use a header file that comes with gcc, so configuring glibc + # with a fresh cross-compiler works. + # Prefer to if __STDC__ is defined, since + # exists even on freestanding compilers. + # On the NeXT, cc -E runs the code through the compiler's parser, + # not just through cpp. "Syntax error" is here to catch this case. + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#ifdef __STDC__ +# include +#else +# include +#endif + Syntax error +_ACEOF +if ac_fn_c_try_cpp "$LINENO"; then : + +else + # Broken: fails on valid input. +continue +fi +rm -f conftest.err conftest.i conftest.$ac_ext + + # OK, works on sane cases. Now check whether nonexistent headers + # can be detected and how. + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include +_ACEOF +if ac_fn_c_try_cpp "$LINENO"; then : + # Broken: success on invalid input. +continue +else + # Passes both tests. +ac_preproc_ok=: +break +fi +rm -f conftest.err conftest.i conftest.$ac_ext + +done +# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped. +rm -f conftest.i conftest.err conftest.$ac_ext +if $ac_preproc_ok; then : + break +fi + + done + ac_cv_prog_CPP=$CPP + +fi + CPP=$ac_cv_prog_CPP +else + ac_cv_prog_CPP=$CPP +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $CPP" >&5 +$as_echo "$CPP" >&6; } +ac_preproc_ok=false +for ac_c_preproc_warn_flag in '' yes +do + # Use a header file that comes with gcc, so configuring glibc + # with a fresh cross-compiler works. + # Prefer to if __STDC__ is defined, since + # exists even on freestanding compilers. + # On the NeXT, cc -E runs the code through the compiler's parser, + # not just through cpp. "Syntax error" is here to catch this case. + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#ifdef __STDC__ +# include +#else +# include +#endif + Syntax error +_ACEOF +if ac_fn_c_try_cpp "$LINENO"; then : + +else + # Broken: fails on valid input. +continue +fi +rm -f conftest.err conftest.i conftest.$ac_ext + + # OK, works on sane cases. Now check whether nonexistent headers + # can be detected and how. + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include +_ACEOF +if ac_fn_c_try_cpp "$LINENO"; then : + # Broken: success on invalid input. +continue +else + # Passes both tests. +ac_preproc_ok=: +break +fi +rm -f conftest.err conftest.i conftest.$ac_ext + +done +# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped. +rm -f conftest.i conftest.err conftest.$ac_ext +if $ac_preproc_ok; then : + +else + { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 +$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} +as_fn_error $? "C preprocessor \"$CPP\" fails sanity check +See \`config.log' for more details" "$LINENO" 5; } +fi + +ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu + + + +# Try CLANG_PLUGIN_FILE first since GCC_PLUGIN_OPTION may return the +# wrong plugin_option with clang. + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for clang" >&5 +$as_echo_n "checking for clang... " >&6; } +if ${clang_cv_is_clang+:} false; then : + $as_echo_n "(cached) " >&6 +else + + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +#ifdef __clang__ + yes +#endif + +_ACEOF +if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | + $EGREP "yes" >/dev/null 2>&1; then : + clang_cv_is_clang=yes +else + clang_cv_is_clang=no +fi +rm -f conftest* + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $clang_cv_is_clang" >&5 +$as_echo "$clang_cv_is_clang" >&6; } + plugin_file= + if test $clang_cv_is_clang = yes; then + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for clang plugin file" >&5 +$as_echo_n "checking for clang plugin file... " >&6; } + plugin_names="LLVMgold.so" + for plugin in $plugin_names; do + plugin_file=`${CC} ${CFLAGS} --print-file-name $plugin` + if test x$plugin_file = x$plugin; then + if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}llvm-config", so it can be a program name with args. +set dummy ${ac_tool_prefix}llvm-config; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_LLVM_CONFIG+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$LLVM_CONFIG"; then + ac_cv_prog_LLVM_CONFIG="$LLVM_CONFIG" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_LLVM_CONFIG="${ac_tool_prefix}llvm-config" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +LLVM_CONFIG=$ac_cv_prog_LLVM_CONFIG +if test -n "$LLVM_CONFIG"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $LLVM_CONFIG" >&5 +$as_echo "$LLVM_CONFIG" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + +fi +if test -z "$ac_cv_prog_LLVM_CONFIG"; then + ac_ct_LLVM_CONFIG=$LLVM_CONFIG + # Extract the first word of "llvm-config", so it can be a program name with args. +set dummy llvm-config; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_ac_ct_LLVM_CONFIG+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$ac_ct_LLVM_CONFIG"; then + ac_cv_prog_ac_ct_LLVM_CONFIG="$ac_ct_LLVM_CONFIG" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_ac_ct_LLVM_CONFIG="llvm-config" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +ac_ct_LLVM_CONFIG=$ac_cv_prog_ac_ct_LLVM_CONFIG +if test -n "$ac_ct_LLVM_CONFIG"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_LLVM_CONFIG" >&5 +$as_echo "$ac_ct_LLVM_CONFIG" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + if test "x$ac_ct_LLVM_CONFIG" = x; then + LLVM_CONFIG="" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + LLVM_CONFIG=$ac_ct_LLVM_CONFIG + fi +else + LLVM_CONFIG="$ac_cv_prog_LLVM_CONFIG" +fi + + if test "$?" != 0; then + as_fn_error $? "Required tool 'llvm-config' not found on PATH." "$LINENO" 5 + fi + clang_lib_dir=`$LLVM_CONFIG --libdir` + if test -f $clang_lib_dir/$plugin; then + plugin_file=$clang_lib_dir/$plugin + fi + if test x$plugin_file != x$plugin; then + break; + fi + fi + done + if test -z $plugin_file; then + as_fn_error $? "Couldn't find clang plugin file for $CC." "$LINENO" 5 + fi + if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}ar", so it can be a program name with args. +set dummy ${ac_tool_prefix}ar; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_AR+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$AR"; then + ac_cv_prog_AR="$AR" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_AR="${ac_tool_prefix}ar" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +AR=$ac_cv_prog_AR +if test -n "$AR"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $AR" >&5 +$as_echo "$AR" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + +fi +if test -z "$ac_cv_prog_AR"; then + ac_ct_AR=$AR + # Extract the first word of "ar", so it can be a program name with args. +set dummy ar; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_ac_ct_AR+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$ac_ct_AR"; then + ac_cv_prog_ac_ct_AR="$ac_ct_AR" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_ac_ct_AR="ar" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +ac_ct_AR=$ac_cv_prog_ac_ct_AR +if test -n "$ac_ct_AR"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_AR" >&5 +$as_echo "$ac_ct_AR" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + if test "x$ac_ct_AR" = x; then + AR="" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + AR=$ac_ct_AR + fi +else + AR="$ac_cv_prog_AR" +fi + + if test "${AR}" = "" ; then + as_fn_error $? "Required archive tool 'ar' not found on PATH." "$LINENO" 5 + fi + plugin_option="--plugin $plugin_file" + touch conftest.c + ${AR} $plugin_option rc conftest.a conftest.c + if test "$?" != 0; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Failed: $AR $plugin_option rc" >&5 +$as_echo "$as_me: WARNING: Failed: $AR $plugin_option rc" >&2;} + plugin_file= + fi + rm -f conftest.* + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $plugin_file" >&5 +$as_echo "$plugin_file" >&6; } + fi + plugin_file="$plugin_file" + +if test -n "$plugin_file"; then + plugin_option="--plugin $plugin_file" +else + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for -plugin option" >&5 +$as_echo_n "checking for -plugin option... " >&6; } + +plugin_names="liblto_plugin.so liblto_plugin-0.dll cyglto_plugin-0.dll" +plugin_option= +for plugin in $plugin_names; do + plugin_so=`${CC} ${CFLAGS} --print-prog-name $plugin` + if test x$plugin_so = x$plugin; then + plugin_so=`${CC} ${CFLAGS} --print-file-name $plugin` + fi + if test x$plugin_so != x$plugin; then + plugin_option="--plugin $plugin_so" + break + fi +done +if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}ar", so it can be a program name with args. +set dummy ${ac_tool_prefix}ar; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_AR+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$AR"; then + ac_cv_prog_AR="$AR" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_AR="${ac_tool_prefix}ar" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +AR=$ac_cv_prog_AR +if test -n "$AR"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $AR" >&5 +$as_echo "$AR" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi +fi +if test -z "$ac_cv_prog_AR"; then + ac_ct_AR=$AR + # Extract the first word of "ar", so it can be a program name with args. +set dummy ar; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_ac_ct_AR+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$ac_ct_AR"; then + ac_cv_prog_ac_ct_AR="$ac_ct_AR" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_ac_ct_AR="ar" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS +fi +fi +ac_ct_AR=$ac_cv_prog_ac_ct_AR +if test -n "$ac_ct_AR"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_AR" >&5 +$as_echo "$ac_ct_AR" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi -plugin_option= -plugin_names="liblto_plugin.so liblto_plugin-0.dll cyglto_plugin-0.dll" -for plugin in $plugin_names; do - plugin_so=`${CC} ${CFLAGS} --print-prog-name $plugin` - if test x$plugin_so = x$plugin; then - plugin_so=`${CC} ${CFLAGS} --print-file-name $plugin` - fi - if test x$plugin_so != x$plugin; then - plugin_option="--plugin $plugin_so" - break + if test "x$ac_ct_AR" = x; then + AR="" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + AR=$ac_ct_AR fi -done +else + AR="$ac_cv_prog_AR" +fi + +if test "${AR}" = "" ; then + as_fn_error $? "Required archive tool 'ar' not found on PATH." "$LINENO" 5 +fi +touch conftest.c +${AR} $plugin_option rc conftest.a conftest.c +if test "$?" != 0; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Failed: $AR $plugin_option rc" >&5 +$as_echo "$as_me: WARNING: Failed: $AR $plugin_option rc" >&2;} + plugin_option= +fi +rm -f conftest.* +if test -n "$plugin_option"; then + plugin_option="$plugin_option" + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $plugin_option" >&5 +$as_echo "$plugin_option" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi +fi if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}ar", so it can be a program name with args. set dummy ${ac_tool_prefix}ar; ac_word=$2 @@ -6267,17 +6792,15 @@ fi test -z "$AR" && AR=ar if test -n "$plugin_option"; then - if $AR --help 2>&1 | grep -q "\--plugin"; then - touch conftest.c - $AR $plugin_option rc conftest.a conftest.c - if test "$?" != 0; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Failed: $AR $plugin_option rc" >&5 -$as_echo "$as_me: WARNING: Failed: $AR $plugin_option rc" >&2;} - else + case "$AR" in + *"$plugin_option"*) + ;; + *) + if $AR --help 2>&1 | grep -q "\--plugin"; then AR="$AR $plugin_option" fi - rm -f conftest.* - fi + ;; + esac fi test -z "$AR_FLAGS" && AR_FLAGS=cru @@ -6484,9 +7007,15 @@ fi test -z "$RANLIB" && RANLIB=: if test -n "$plugin_option" && test "$RANLIB" != ":"; then - if $RANLIB --help 2>&1 | grep -q "\--plugin"; then - RANLIB="$RANLIB $plugin_option" - fi + case "$RANLIB" in + *"$plugin_option"*) + ;; + *) + if $RANLIB --help 2>&1 | grep -q "\--plugin"; then + RANLIB="$RANLIB $plugin_option" + fi + ;; + esac fi @@ -6813,7 +7342,6 @@ fi - # Check whether --enable-libtool-lock was given. @@ -7639,144 +8167,6 @@ $as_echo "$lt_cv_ld_force_load" >&6; } ;; esac -ac_ext=c -ac_cpp='$CPP $CPPFLAGS' -ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' -ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_c_compiler_gnu -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to run the C preprocessor" >&5 -$as_echo_n "checking how to run the C preprocessor... " >&6; } -# On Suns, sometimes $CPP names a directory. -if test -n "$CPP" && test -d "$CPP"; then - CPP= -fi -if test -z "$CPP"; then - if ${ac_cv_prog_CPP+:} false; then : - $as_echo_n "(cached) " >&6 -else - # Double quotes because CPP needs to be expanded - for CPP in "$CC -E" "$CC -E -traditional-cpp" "/lib/cpp" - do - ac_preproc_ok=false -for ac_c_preproc_warn_flag in '' yes -do - # Use a header file that comes with gcc, so configuring glibc - # with a fresh cross-compiler works. - # Prefer to if __STDC__ is defined, since - # exists even on freestanding compilers. - # On the NeXT, cc -E runs the code through the compiler's parser, - # not just through cpp. "Syntax error" is here to catch this case. - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#ifdef __STDC__ -# include -#else -# include -#endif - Syntax error -_ACEOF -if ac_fn_c_try_cpp "$LINENO"; then : - -else - # Broken: fails on valid input. -continue -fi -rm -f conftest.err conftest.i conftest.$ac_ext - - # OK, works on sane cases. Now check whether nonexistent headers - # can be detected and how. - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include -_ACEOF -if ac_fn_c_try_cpp "$LINENO"; then : - # Broken: success on invalid input. -continue -else - # Passes both tests. -ac_preproc_ok=: -break -fi -rm -f conftest.err conftest.i conftest.$ac_ext - -done -# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped. -rm -f conftest.i conftest.err conftest.$ac_ext -if $ac_preproc_ok; then : - break -fi - - done - ac_cv_prog_CPP=$CPP - -fi - CPP=$ac_cv_prog_CPP -else - ac_cv_prog_CPP=$CPP -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $CPP" >&5 -$as_echo "$CPP" >&6; } -ac_preproc_ok=false -for ac_c_preproc_warn_flag in '' yes -do - # Use a header file that comes with gcc, so configuring glibc - # with a fresh cross-compiler works. - # Prefer to if __STDC__ is defined, since - # exists even on freestanding compilers. - # On the NeXT, cc -E runs the code through the compiler's parser, - # not just through cpp. "Syntax error" is here to catch this case. - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#ifdef __STDC__ -# include -#else -# include -#endif - Syntax error -_ACEOF -if ac_fn_c_try_cpp "$LINENO"; then : - -else - # Broken: fails on valid input. -continue -fi -rm -f conftest.err conftest.i conftest.$ac_ext - - # OK, works on sane cases. Now check whether nonexistent headers - # can be detected and how. - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include -_ACEOF -if ac_fn_c_try_cpp "$LINENO"; then : - # Broken: success on invalid input. -continue -else - # Passes both tests. -ac_preproc_ok=: -break -fi -rm -f conftest.err conftest.i conftest.$ac_ext - -done -# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped. -rm -f conftest.i conftest.err conftest.$ac_ext -if $ac_preproc_ok; then : - -else - { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 -$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} -as_fn_error $? "C preprocessor \"$CPP\" fails sanity check -See \`config.log' for more details" "$LINENO" 5; } -fi - -ac_ext=c -ac_cpp='$CPP $CPPFLAGS' -ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' -ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_c_compiler_gnu - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ANSI C header files" >&5 $as_echo_n "checking for ANSI C header files... " >&6; } if ${ac_cv_header_stdc+:} false; then : @@ -11458,7 +11848,7 @@ else lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 lt_status=$lt_dlunknown cat > conftest.$ac_ext <<_LT_EOF -#line 11461 "configure" +#line 11851 "configure" #include "confdefs.h" #if HAVE_DLFCN_H @@ -11564,7 +11954,7 @@ else lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 lt_status=$lt_dlunknown cat > conftest.$ac_ext <<_LT_EOF -#line 11567 "configure" +#line 11957 "configure" #include "confdefs.h" #if HAVE_DLFCN_H @@ -11958,7 +12348,7 @@ _ACEOF # Disable fallbacks to __sync routines from libgcc. Otherwise we'll # make silly decisions about what the cpu can do. -CFLAGS="$save_CFLAGS -fno-sync-libcalls $XCFLAGS" +CFLAGS="$__libatomic_save_CFLAGS__ -fno-sync-libcalls $XCFLAGS" # Check header files. { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ANSI C header files" >&5 @@ -14979,7 +15369,7 @@ _ACEOF if ac_fn_c_try_link "$LINENO"; then : XPCFLAGS=" -pthread" else - CFLAGS="$save_CFLAGS $XCFLAGS" LIBS="-lpthread $LIBS" + CFLAGS="$__libatomic_save_CFLAGS__ $XCFLAGS" LIBS="-lpthread $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include @@ -15002,7 +15392,7 @@ rm -f core conftest.err conftest.$ac_objext \ fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext - CFLAGS="$save_CFLAGS $XPCFLAGS" + CFLAGS="$__libatomic_save_CFLAGS__ $XPCFLAGS $XCFLAGS" ;; esac @@ -15577,7 +15967,7 @@ $as_echo "$as_me: versioning on shared library symbols is $enable_symvers" >&6;} # Cleanup and exit. -CFLAGS="$save_CFLAGS" +CFLAGS="$__libatomic_save_CFLAGS__" cat >confcache <<\_ACEOF # This file is a shell script that caches the results of configure # tests run on this system so they can be shared between configure diff --git a/libatomic/configure.ac b/libatomic/configure.ac index 01141f643769..ded382233562 100644 --- a/libatomic/configure.ac +++ b/libatomic/configure.ac @@ -129,6 +129,26 @@ AC_SUBST(toolexeclibdir) # the wrong, non-multilib-adjusted value will be used in multilibs. # As a side effect, we have to subst CFLAGS ourselves. +# AC_PROG_CC sets CFLAGS to "-g -O2" by default (if unset), and +# then compile conftests with default CFLAGS, leaving no place to temporarily +# modify CFLAGS and restore them later. However we need to pass +# -fno-link-libatomic in CFLAGS so conftests compiled in AC_PROG_CC don't fail. +# Assert that CFLAGS is always set by user so the default setting of CFLAGS by +# AC_PROG_CC won't be applicable anyway. +if test -z "${CFLAGS}"; then + AC_MSG_ERROR([CFLAGS must be set.]) +fi + +# In order to override CFLAGS_FOR_TARGET, all of our special flags go +# in XCFLAGS. But we need them in CFLAGS during configury. So put them +# in both places for now and restore CFLAGS at the end of config. +__libatomic_save_CFLAGS__="$CFLAGS" + +# Append -fno-link-libatomic to avoid automatically linking libatomic, +# while building libatomic itself. +XCFLAGS="$XCFLAGS -fno-link-libatomic" +CFLAGS="$__libatomic_save_CFLAGS__ $XCFLAGS" + m4_rename([_AC_ARG_VAR_PRECIOUS],[real_PRECIOUS]) m4_define([_AC_ARG_VAR_PRECIOUS],[]) AC_PROG_CC @@ -137,11 +157,6 @@ m4_rename_force([real_PRECIOUS],[_AC_ARG_VAR_PRECIOUS]) AC_SUBST(CFLAGS) -# In order to override CFLAGS_FOR_TARGET, all of our special flags go -# in XCFLAGS. But we need them in CFLAGS during configury. So put them -# in both places for now and restore CFLAGS at the end of config. -save_CFLAGS="$CFLAGS" - # Find other programs we need. AC_CHECK_TOOL(AR, ar) AC_CHECK_TOOL(NM, nm) @@ -189,7 +204,7 @@ AC_DEFINE_UNQUOTED(IFUNC_RESOLVER_ARGS, $IFUNC_RESOLVER_ARGS, # Disable fallbacks to __sync routines from libgcc. Otherwise we'll # make silly decisions about what the cpu can do. -CFLAGS="$save_CFLAGS -fno-sync-libcalls $XCFLAGS" +CFLAGS="$__libatomic_save_CFLAGS__ -fno-sync-libcalls $XCFLAGS" # Check header files. AC_STDC_HEADERS @@ -230,7 +245,7 @@ case " $config_path " in void *g(void *d) { return NULL; }], [pthread_t t; pthread_create(&t,NULL,g,NULL);])], [XPCFLAGS=" -pthread"], - [CFLAGS="$save_CFLAGS $XCFLAGS" LIBS="-lpthread $LIBS" + [CFLAGS="$__libatomic_save_CFLAGS__ $XCFLAGS" LIBS="-lpthread $LIBS" AC_LINK_IFELSE( [AC_LANG_PROGRAM( [#include @@ -238,7 +253,7 @@ case " $config_path " in [pthread_t t; pthread_create(&t,NULL,g,NULL);])], [], [AC_MSG_ERROR([Pthreads are required to build libatomic])])]) - CFLAGS="$save_CFLAGS $XPCFLAGS" + CFLAGS="$__libatomic_save_CFLAGS__ $XPCFLAGS $XCFLAGS" ;; esac @@ -254,7 +269,7 @@ fi LIBAT_ENABLE_SYMVERS # Cleanup and exit. -CFLAGS="$save_CFLAGS" +CFLAGS="$__libatomic_save_CFLAGS__" AC_CACHE_SAVE AC_ARG_ENABLE([werror], diff --git a/libatomic/testsuite/Makefile.in b/libatomic/testsuite/Makefile.in index 247268f19490..f540a7523077 100644 --- a/libatomic/testsuite/Makefile.in +++ b/libatomic/testsuite/Makefile.in @@ -91,7 +91,9 @@ target_triplet = @target@ subdir = testsuite ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/../config/acx.m4 \ + $(top_srcdir)/../config/clang-plugin.m4 \ $(top_srcdir)/../config/depstand.m4 \ + $(top_srcdir)/../config/gcc-plugin.m4 \ $(top_srcdir)/../config/lead-dot.m4 \ $(top_srcdir)/../config/lthostflags.m4 \ $(top_srcdir)/../config/multi.m4 \ @@ -171,6 +173,7 @@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LIPO = @LIPO@ +LLVM_CONFIG = @LLVM_CONFIG@ LN_S = @LN_S@ LTLIBOBJS = @LTLIBOBJS@ MAINT = @MAINT@ diff --git a/libbacktrace/ChangeLog b/libbacktrace/ChangeLog index 4c1bc59e50db..fc2ba89aea8f 100644 --- a/libbacktrace/ChangeLog +++ b/libbacktrace/ChangeLog @@ -1,3 +1,9 @@ +2025-10-02 H.J. Lu + + * Makefile.in: Regenerated. + * aclocal.m4: Likewise. + * configure: Likewise. + 2025-09-28 Ian Lance Taylor * filetype.awk: Recognize PE bigobj objects at configure time. diff --git a/libbacktrace/Makefile.in b/libbacktrace/Makefile.in index 9a9b8a441dda..43d9bb54260e 100644 --- a/libbacktrace/Makefile.in +++ b/libbacktrace/Makefile.in @@ -171,7 +171,9 @@ TESTS = $(am__append_4) $(MAKETESTS) $(am__EXEEXT_17) subdir = . ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/../config/cet.m4 \ + $(top_srcdir)/../config/clang-plugin.m4 \ $(top_srcdir)/../config/enable.m4 \ + $(top_srcdir)/../config/gcc-plugin.m4 \ $(top_srcdir)/../config/lead-dot.m4 \ $(top_srcdir)/../config/multi.m4 \ $(top_srcdir)/../config/override.m4 \ @@ -904,6 +906,7 @@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LIPO = @LIPO@ +LLVM_CONFIG = @LLVM_CONFIG@ LN_S = @LN_S@ LTLIBOBJS = @LTLIBOBJS@ MAINT = @MAINT@ diff --git a/libbacktrace/aclocal.m4 b/libbacktrace/aclocal.m4 index 528e61739304..df92f64c55b9 100644 --- a/libbacktrace/aclocal.m4 +++ b/libbacktrace/aclocal.m4 @@ -853,7 +853,9 @@ AC_SUBST([am__untar]) ]) # _AM_PROG_TAR m4_include([../config/cet.m4]) +m4_include([../config/clang-plugin.m4]) m4_include([../config/enable.m4]) +m4_include([../config/gcc-plugin.m4]) m4_include([../config/lead-dot.m4]) m4_include([../config/multi.m4]) m4_include([../config/override.m4]) diff --git a/libbacktrace/configure b/libbacktrace/configure index 85be043009af..b956afe8c345 100755 --- a/libbacktrace/configure +++ b/libbacktrace/configure @@ -691,6 +691,7 @@ LIPO NMEDIT DSYMUTIL AR +LLVM_CONFIG OBJDUMP LN_S NM @@ -2739,7 +2740,6 @@ test -n "$target_alias" && test "$program_prefix$program_suffix$program_transform_name" = \ NONENONEs,x,x, && program_prefix=${target_alias}- - target_alias=${target_alias-$host_alias} # Expand $ac_aux_dir to an absolute path. @@ -6606,8 +6606,266 @@ test -z "$deplibs_check_method" && deplibs_check_method=unknown -plugin_option= + +# Try CLANG_PLUGIN_FILE first since GCC_PLUGIN_OPTION may return the +# wrong plugin_option with clang. + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for clang" >&5 +$as_echo_n "checking for clang... " >&6; } +if ${clang_cv_is_clang+:} false; then : + $as_echo_n "(cached) " >&6 +else + + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +#ifdef __clang__ + yes +#endif + +_ACEOF +if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | + $EGREP "yes" >/dev/null 2>&1; then : + clang_cv_is_clang=yes +else + clang_cv_is_clang=no +fi +rm -f conftest* + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $clang_cv_is_clang" >&5 +$as_echo "$clang_cv_is_clang" >&6; } + plugin_file= + if test $clang_cv_is_clang = yes; then + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for clang plugin file" >&5 +$as_echo_n "checking for clang plugin file... " >&6; } + plugin_names="LLVMgold.so" + for plugin in $plugin_names; do + plugin_file=`${CC} ${CFLAGS} --print-file-name $plugin` + if test x$plugin_file = x$plugin; then + if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}llvm-config", so it can be a program name with args. +set dummy ${ac_tool_prefix}llvm-config; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_LLVM_CONFIG+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$LLVM_CONFIG"; then + ac_cv_prog_LLVM_CONFIG="$LLVM_CONFIG" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_LLVM_CONFIG="${ac_tool_prefix}llvm-config" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +LLVM_CONFIG=$ac_cv_prog_LLVM_CONFIG +if test -n "$LLVM_CONFIG"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $LLVM_CONFIG" >&5 +$as_echo "$LLVM_CONFIG" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + +fi +if test -z "$ac_cv_prog_LLVM_CONFIG"; then + ac_ct_LLVM_CONFIG=$LLVM_CONFIG + # Extract the first word of "llvm-config", so it can be a program name with args. +set dummy llvm-config; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_ac_ct_LLVM_CONFIG+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$ac_ct_LLVM_CONFIG"; then + ac_cv_prog_ac_ct_LLVM_CONFIG="$ac_ct_LLVM_CONFIG" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_ac_ct_LLVM_CONFIG="llvm-config" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +ac_ct_LLVM_CONFIG=$ac_cv_prog_ac_ct_LLVM_CONFIG +if test -n "$ac_ct_LLVM_CONFIG"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_LLVM_CONFIG" >&5 +$as_echo "$ac_ct_LLVM_CONFIG" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + if test "x$ac_ct_LLVM_CONFIG" = x; then + LLVM_CONFIG="" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + LLVM_CONFIG=$ac_ct_LLVM_CONFIG + fi +else + LLVM_CONFIG="$ac_cv_prog_LLVM_CONFIG" +fi + + if test "$?" != 0; then + as_fn_error $? "Required tool 'llvm-config' not found on PATH." "$LINENO" 5 + fi + clang_lib_dir=`$LLVM_CONFIG --libdir` + if test -f $clang_lib_dir/$plugin; then + plugin_file=$clang_lib_dir/$plugin + fi + if test x$plugin_file != x$plugin; then + break; + fi + fi + done + if test -z $plugin_file; then + as_fn_error $? "Couldn't find clang plugin file for $CC." "$LINENO" 5 + fi + if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}ar", so it can be a program name with args. +set dummy ${ac_tool_prefix}ar; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_AR+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$AR"; then + ac_cv_prog_AR="$AR" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_AR="${ac_tool_prefix}ar" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +AR=$ac_cv_prog_AR +if test -n "$AR"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $AR" >&5 +$as_echo "$AR" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + +fi +if test -z "$ac_cv_prog_AR"; then + ac_ct_AR=$AR + # Extract the first word of "ar", so it can be a program name with args. +set dummy ar; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_ac_ct_AR+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$ac_ct_AR"; then + ac_cv_prog_ac_ct_AR="$ac_ct_AR" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_ac_ct_AR="ar" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +ac_ct_AR=$ac_cv_prog_ac_ct_AR +if test -n "$ac_ct_AR"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_AR" >&5 +$as_echo "$ac_ct_AR" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + if test "x$ac_ct_AR" = x; then + AR="" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + AR=$ac_ct_AR + fi +else + AR="$ac_cv_prog_AR" +fi + + if test "${AR}" = "" ; then + as_fn_error $? "Required archive tool 'ar' not found on PATH." "$LINENO" 5 + fi + plugin_option="--plugin $plugin_file" + touch conftest.c + ${AR} $plugin_option rc conftest.a conftest.c + if test "$?" != 0; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Failed: $AR $plugin_option rc" >&5 +$as_echo "$as_me: WARNING: Failed: $AR $plugin_option rc" >&2;} + plugin_file= + fi + rm -f conftest.* + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $plugin_file" >&5 +$as_echo "$plugin_file" >&6; } + fi + plugin_file="$plugin_file" + +if test -n "$plugin_file"; then + plugin_option="--plugin $plugin_file" +else + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for -plugin option" >&5 +$as_echo_n "checking for -plugin option... " >&6; } + plugin_names="liblto_plugin.so liblto_plugin-0.dll cyglto_plugin-0.dll" +plugin_option= for plugin in $plugin_names; do plugin_so=`${CC} ${CFLAGS} --print-prog-name $plugin` if test x$plugin_so = x$plugin; then @@ -6618,7 +6876,119 @@ for plugin in $plugin_names; do break fi done +if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}ar", so it can be a program name with args. +set dummy ${ac_tool_prefix}ar; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_AR+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$AR"; then + ac_cv_prog_AR="$AR" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_AR="${ac_tool_prefix}ar" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +AR=$ac_cv_prog_AR +if test -n "$AR"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $AR" >&5 +$as_echo "$AR" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + +fi +if test -z "$ac_cv_prog_AR"; then + ac_ct_AR=$AR + # Extract the first word of "ar", so it can be a program name with args. +set dummy ar; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_ac_ct_AR+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$ac_ct_AR"; then + ac_cv_prog_ac_ct_AR="$ac_ct_AR" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_ac_ct_AR="ar" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS +fi +fi +ac_ct_AR=$ac_cv_prog_ac_ct_AR +if test -n "$ac_ct_AR"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_AR" >&5 +$as_echo "$ac_ct_AR" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + if test "x$ac_ct_AR" = x; then + AR="" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + AR=$ac_ct_AR + fi +else + AR="$ac_cv_prog_AR" +fi + +if test "${AR}" = "" ; then + as_fn_error $? "Required archive tool 'ar' not found on PATH." "$LINENO" 5 +fi +touch conftest.c +${AR} $plugin_option rc conftest.a conftest.c +if test "$?" != 0; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Failed: $AR $plugin_option rc" >&5 +$as_echo "$as_me: WARNING: Failed: $AR $plugin_option rc" >&2;} + plugin_option= +fi +rm -f conftest.* +if test -n "$plugin_option"; then + plugin_option="$plugin_option" + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $plugin_option" >&5 +$as_echo "$plugin_option" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + +fi if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}ar", so it can be a program name with args. set dummy ${ac_tool_prefix}ar; ac_word=$2 @@ -6713,17 +7083,15 @@ fi test -z "$AR" && AR=ar if test -n "$plugin_option"; then - if $AR --help 2>&1 | grep -q "\--plugin"; then - touch conftest.c - $AR $plugin_option rc conftest.a conftest.c - if test "$?" != 0; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Failed: $AR $plugin_option rc" >&5 -$as_echo "$as_me: WARNING: Failed: $AR $plugin_option rc" >&2;} - else + case "$AR" in + *"$plugin_option"*) + ;; + *) + if $AR --help 2>&1 | grep -q "\--plugin"; then AR="$AR $plugin_option" fi - rm -f conftest.* - fi + ;; + esac fi test -z "$AR_FLAGS" && AR_FLAGS=cru @@ -6930,9 +7298,15 @@ fi test -z "$RANLIB" && RANLIB=: if test -n "$plugin_option" && test "$RANLIB" != ":"; then - if $RANLIB --help 2>&1 | grep -q "\--plugin"; then - RANLIB="$RANLIB $plugin_option" - fi + case "$RANLIB" in + *"$plugin_option"*) + ;; + *) + if $RANLIB --help 2>&1 | grep -q "\--plugin"; then + RANLIB="$RANLIB $plugin_option" + fi + ;; + esac fi @@ -11636,7 +12010,7 @@ else lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 lt_status=$lt_dlunknown cat > conftest.$ac_ext <<_LT_EOF -#line 11639 "configure" +#line 12013 "configure" #include "confdefs.h" #if HAVE_DLFCN_H @@ -11742,7 +12116,7 @@ else lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 lt_status=$lt_dlunknown cat > conftest.$ac_ext <<_LT_EOF -#line 11745 "configure" +#line 12119 "configure" #include "confdefs.h" #if HAVE_DLFCN_H diff --git a/libbacktrace/configure.ac b/libbacktrace/configure.ac index 6549cdeacf4f..0a5e04fcdf77 100644 --- a/libbacktrace/configure.ac +++ b/libbacktrace/configure.ac @@ -37,7 +37,8 @@ if test -n "${with_target_subdir}"; then AM_ENABLE_MULTILIB(, ..) fi -AC_CANONICAL_SYSTEM +AC_CANONICAL_HOST +AC_CANONICAL_TARGET target_alias=${target_alias-$host_alias} AC_USE_SYSTEM_EXTENSIONS diff --git a/libcc1/ChangeLog b/libcc1/ChangeLog index bd1394ae4b6f..dff34a459f68 100644 --- a/libcc1/ChangeLog +++ b/libcc1/ChangeLog @@ -1,3 +1,18 @@ +2025-10-09 David Malcolm + + * context.cc: Define INCLUDE_VECTOR. + +2025-10-05 Sam James + + * Makefile.in: Regenerate. + * aclocal.m4: Regenerate. + +2025-10-02 H.J. Lu + + * Makefile.in: Regenerated. + * aclocal.m4: Likewise. + * configure: Likewise. + 2025-07-25 David Malcolm * context.cc: Update usage of "diagnostic_info" to explicitly diff --git a/libcc1/Makefile.in b/libcc1/Makefile.in index 9d56a8323b05..d154bd45c5e6 100644 --- a/libcc1/Makefile.in +++ b/libcc1/Makefile.in @@ -94,6 +94,7 @@ subdir = . ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/../config/acx.m4 \ $(top_srcdir)/../config/cet.m4 \ + $(top_srcdir)/../config/clang-plugin.m4 \ $(top_srcdir)/../config/depstand.m4 \ $(top_srcdir)/../config/enable.m4 \ $(top_srcdir)/../config/gcc-plugin.m4 \ @@ -284,6 +285,7 @@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LIPO = @LIPO@ +LLVM_CONFIG = @LLVM_CONFIG@ LN_S = @LN_S@ LTLIBOBJS = @LTLIBOBJS@ MAINT = @MAINT@ diff --git a/libcc1/aclocal.m4 b/libcc1/aclocal.m4 index 2348721062e4..171045274a53 100644 --- a/libcc1/aclocal.m4 +++ b/libcc1/aclocal.m4 @@ -1169,6 +1169,7 @@ AC_SUBST([am__untar]) m4_include([../config/acx.m4]) m4_include([../config/cet.m4]) +m4_include([../config/clang-plugin.m4]) m4_include([../config/depstand.m4]) m4_include([../config/enable.m4]) m4_include([../config/gcc-plugin.m4]) diff --git a/libcc1/configure b/libcc1/configure index ea689a353c8e..685f2abe178e 100755 --- a/libcc1/configure +++ b/libcc1/configure @@ -660,6 +660,7 @@ NMEDIT DSYMUTIL RANLIB AR +LLVM_CONFIG OBJDUMP LN_S NM @@ -5861,8 +5862,266 @@ test -z "$deplibs_check_method" && deplibs_check_method=unknown -plugin_option= + +# Try CLANG_PLUGIN_FILE first since GCC_PLUGIN_OPTION may return the +# wrong plugin_option with clang. + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for clang" >&5 +$as_echo_n "checking for clang... " >&6; } +if ${clang_cv_is_clang+:} false; then : + $as_echo_n "(cached) " >&6 +else + + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +#ifdef __clang__ + yes +#endif + +_ACEOF +if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | + $EGREP "yes" >/dev/null 2>&1; then : + clang_cv_is_clang=yes +else + clang_cv_is_clang=no +fi +rm -f conftest* + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $clang_cv_is_clang" >&5 +$as_echo "$clang_cv_is_clang" >&6; } + plugin_file= + if test $clang_cv_is_clang = yes; then + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for clang plugin file" >&5 +$as_echo_n "checking for clang plugin file... " >&6; } + plugin_names="LLVMgold.so" + for plugin in $plugin_names; do + plugin_file=`${CC} ${CFLAGS} --print-file-name $plugin` + if test x$plugin_file = x$plugin; then + if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}llvm-config", so it can be a program name with args. +set dummy ${ac_tool_prefix}llvm-config; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_LLVM_CONFIG+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$LLVM_CONFIG"; then + ac_cv_prog_LLVM_CONFIG="$LLVM_CONFIG" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_LLVM_CONFIG="${ac_tool_prefix}llvm-config" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +LLVM_CONFIG=$ac_cv_prog_LLVM_CONFIG +if test -n "$LLVM_CONFIG"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $LLVM_CONFIG" >&5 +$as_echo "$LLVM_CONFIG" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + +fi +if test -z "$ac_cv_prog_LLVM_CONFIG"; then + ac_ct_LLVM_CONFIG=$LLVM_CONFIG + # Extract the first word of "llvm-config", so it can be a program name with args. +set dummy llvm-config; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_ac_ct_LLVM_CONFIG+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$ac_ct_LLVM_CONFIG"; then + ac_cv_prog_ac_ct_LLVM_CONFIG="$ac_ct_LLVM_CONFIG" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_ac_ct_LLVM_CONFIG="llvm-config" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +ac_ct_LLVM_CONFIG=$ac_cv_prog_ac_ct_LLVM_CONFIG +if test -n "$ac_ct_LLVM_CONFIG"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_LLVM_CONFIG" >&5 +$as_echo "$ac_ct_LLVM_CONFIG" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + if test "x$ac_ct_LLVM_CONFIG" = x; then + LLVM_CONFIG="" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + LLVM_CONFIG=$ac_ct_LLVM_CONFIG + fi +else + LLVM_CONFIG="$ac_cv_prog_LLVM_CONFIG" +fi + + if test "$?" != 0; then + as_fn_error $? "Required tool 'llvm-config' not found on PATH." "$LINENO" 5 + fi + clang_lib_dir=`$LLVM_CONFIG --libdir` + if test -f $clang_lib_dir/$plugin; then + plugin_file=$clang_lib_dir/$plugin + fi + if test x$plugin_file != x$plugin; then + break; + fi + fi + done + if test -z $plugin_file; then + as_fn_error $? "Couldn't find clang plugin file for $CC." "$LINENO" 5 + fi + if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}ar", so it can be a program name with args. +set dummy ${ac_tool_prefix}ar; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_AR+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$AR"; then + ac_cv_prog_AR="$AR" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_AR="${ac_tool_prefix}ar" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +AR=$ac_cv_prog_AR +if test -n "$AR"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $AR" >&5 +$as_echo "$AR" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + +fi +if test -z "$ac_cv_prog_AR"; then + ac_ct_AR=$AR + # Extract the first word of "ar", so it can be a program name with args. +set dummy ar; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_ac_ct_AR+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$ac_ct_AR"; then + ac_cv_prog_ac_ct_AR="$ac_ct_AR" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_ac_ct_AR="ar" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +ac_ct_AR=$ac_cv_prog_ac_ct_AR +if test -n "$ac_ct_AR"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_AR" >&5 +$as_echo "$ac_ct_AR" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + if test "x$ac_ct_AR" = x; then + AR="" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + AR=$ac_ct_AR + fi +else + AR="$ac_cv_prog_AR" +fi + + if test "${AR}" = "" ; then + as_fn_error $? "Required archive tool 'ar' not found on PATH." "$LINENO" 5 + fi + plugin_option="--plugin $plugin_file" + touch conftest.c + ${AR} $plugin_option rc conftest.a conftest.c + if test "$?" != 0; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Failed: $AR $plugin_option rc" >&5 +$as_echo "$as_me: WARNING: Failed: $AR $plugin_option rc" >&2;} + plugin_file= + fi + rm -f conftest.* + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $plugin_file" >&5 +$as_echo "$plugin_file" >&6; } + fi + plugin_file="$plugin_file" + +if test -n "$plugin_file"; then + plugin_option="--plugin $plugin_file" +else + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for -plugin option" >&5 +$as_echo_n "checking for -plugin option... " >&6; } + plugin_names="liblto_plugin.so liblto_plugin-0.dll cyglto_plugin-0.dll" +plugin_option= for plugin in $plugin_names; do plugin_so=`${CC} ${CFLAGS} --print-prog-name $plugin` if test x$plugin_so = x$plugin; then @@ -5873,7 +6132,119 @@ for plugin in $plugin_names; do break fi done +if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}ar", so it can be a program name with args. +set dummy ${ac_tool_prefix}ar; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_AR+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$AR"; then + ac_cv_prog_AR="$AR" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_AR="${ac_tool_prefix}ar" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS +fi +fi +AR=$ac_cv_prog_AR +if test -n "$AR"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $AR" >&5 +$as_echo "$AR" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + +fi +if test -z "$ac_cv_prog_AR"; then + ac_ct_AR=$AR + # Extract the first word of "ar", so it can be a program name with args. +set dummy ar; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_ac_ct_AR+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$ac_ct_AR"; then + ac_cv_prog_ac_ct_AR="$ac_ct_AR" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_ac_ct_AR="ar" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +ac_ct_AR=$ac_cv_prog_ac_ct_AR +if test -n "$ac_ct_AR"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_AR" >&5 +$as_echo "$ac_ct_AR" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + if test "x$ac_ct_AR" = x; then + AR="" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + AR=$ac_ct_AR + fi +else + AR="$ac_cv_prog_AR" +fi + +if test "${AR}" = "" ; then + as_fn_error $? "Required archive tool 'ar' not found on PATH." "$LINENO" 5 +fi +touch conftest.c +${AR} $plugin_option rc conftest.a conftest.c +if test "$?" != 0; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Failed: $AR $plugin_option rc" >&5 +$as_echo "$as_me: WARNING: Failed: $AR $plugin_option rc" >&2;} + plugin_option= +fi +rm -f conftest.* +if test -n "$plugin_option"; then + plugin_option="$plugin_option" + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $plugin_option" >&5 +$as_echo "$plugin_option" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + +fi if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}ar", so it can be a program name with args. set dummy ${ac_tool_prefix}ar; ac_word=$2 @@ -5968,17 +6339,15 @@ fi test -z "$AR" && AR=ar if test -n "$plugin_option"; then - if $AR --help 2>&1 | grep -q "\--plugin"; then - touch conftest.c - $AR $plugin_option rc conftest.a conftest.c - if test "$?" != 0; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Failed: $AR $plugin_option rc" >&5 -$as_echo "$as_me: WARNING: Failed: $AR $plugin_option rc" >&2;} - else + case "$AR" in + *"$plugin_option"*) + ;; + *) + if $AR --help 2>&1 | grep -q "\--plugin"; then AR="$AR $plugin_option" fi - rm -f conftest.* - fi + ;; + esac fi test -z "$AR_FLAGS" && AR_FLAGS=cru @@ -6185,9 +6554,15 @@ fi test -z "$RANLIB" && RANLIB=: if test -n "$plugin_option" && test "$RANLIB" != ":"; then - if $RANLIB --help 2>&1 | grep -q "\--plugin"; then - RANLIB="$RANLIB $plugin_option" - fi + case "$RANLIB" in + *"$plugin_option"*) + ;; + *) + if $RANLIB --help 2>&1 | grep -q "\--plugin"; then + RANLIB="$RANLIB $plugin_option" + fi + ;; + esac fi @@ -10890,7 +11265,7 @@ else lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 lt_status=$lt_dlunknown cat > conftest.$ac_ext <<_LT_EOF -#line 10893 "configure" +#line 11268 "configure" #include "confdefs.h" #if HAVE_DLFCN_H @@ -10996,7 +11371,7 @@ else lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 lt_status=$lt_dlunknown cat > conftest.$ac_ext <<_LT_EOF -#line 10999 "configure" +#line 11374 "configure" #include "confdefs.h" #if HAVE_DLFCN_H diff --git a/libcc1/context.cc b/libcc1/context.cc index 38343a7c29eb..b392f774c723 100644 --- a/libcc1/context.cc +++ b/libcc1/context.cc @@ -31,6 +31,7 @@ along with GCC; see the file COPYING3. If not see #undef PACKAGE_TARNAME #undef PACKAGE_VERSION +#define INCLUDE_VECTOR #include "gcc-plugin.h" #include "system.h" #include "coretypes.h" diff --git a/libcpp/ChangeLog b/libcpp/ChangeLog index 4a05748a368d..43d3f39dd086 100644 --- a/libcpp/ChangeLog +++ b/libcpp/ChangeLog @@ -1,3 +1,16 @@ +2025-10-08 Jakub Jelinek + + * makeucnid.cc (write_copyright): Adjust copyright year. + * makeuname2c.cc (generated_ranges): Adjust end points for a couple + of ranges based on UnicodeData.txt Last changes and add a whole new + CJK UNIFIED IDEOGRAPH- entry. None of these changes are in the 4-8 + table, but clearly it has just been forgotten. + (write_copyright): Adjust copyright year. + (write_dict): Fix up condition when to print semicolon. + * generated_cpp_wcwidth.h: Regenerate. + * ucnid.h: Regenerate. + * uname2c.h: Regenerate. + 2025-09-23 David Malcolm PR diagnostics/121986 diff --git a/libcpp/generated_cpp_wcwidth.h b/libcpp/generated_cpp_wcwidth.h index 938af6b3a70b..b2ca8deb4a53 100644 --- a/libcpp/generated_cpp_wcwidth.h +++ b/libcpp/generated_cpp_wcwidth.h @@ -1,5 +1,5 @@ /* Generated by contrib/unicode/gen_wcwidth.py, with the help of glibc's - utf8_gen.py, using version 16.0 of the Unicode standard. */ + utf8_gen.py, using version 17.0 of the Unicode standard. */ static const cppchar_t wcwidth_range_ends[] = { 0x2ff, 0x36f, 0x482, 0x489, 0x590, 0x5bd, 0x5be, 0x5bf, @@ -37,95 +37,97 @@ static const cppchar_t wcwidth_range_ends[] = { 0x1886, 0x18a8, 0x18a9, 0x191f, 0x1922, 0x1926, 0x1928, 0x1931, 0x1932, 0x1938, 0x193b, 0x1a16, 0x1a18, 0x1a1a, 0x1a1b, 0x1a55, 0x1a56, 0x1a57, 0x1a5e, 0x1a5f, 0x1a60, 0x1a61, 0x1a62, 0x1a64, - 0x1a6c, 0x1a72, 0x1a7c, 0x1a7e, 0x1a7f, 0x1aaf, 0x1ace, 0x1aff, - 0x1b03, 0x1b33, 0x1b34, 0x1b35, 0x1b3a, 0x1b3b, 0x1b3c, 0x1b41, - 0x1b42, 0x1b6a, 0x1b73, 0x1b7f, 0x1b81, 0x1ba1, 0x1ba5, 0x1ba7, - 0x1ba9, 0x1baa, 0x1bad, 0x1be5, 0x1be6, 0x1be7, 0x1be9, 0x1bec, - 0x1bed, 0x1bee, 0x1bf1, 0x1c2b, 0x1c33, 0x1c35, 0x1c37, 0x1ccf, - 0x1cd2, 0x1cd3, 0x1ce0, 0x1ce1, 0x1ce8, 0x1cec, 0x1ced, 0x1cf3, - 0x1cf4, 0x1cf7, 0x1cf9, 0x1dbf, 0x1dff, 0x200a, 0x200f, 0x2029, - 0x202e, 0x205f, 0x2064, 0x2065, 0x206f, 0x20cf, 0x20f0, 0x2319, - 0x231b, 0x2328, 0x232a, 0x23e8, 0x23ec, 0x23ef, 0x23f0, 0x23f2, - 0x23f3, 0x25fc, 0x25fe, 0x2613, 0x2615, 0x262f, 0x2637, 0x2647, - 0x2653, 0x267e, 0x267f, 0x2689, 0x268f, 0x2692, 0x2693, 0x26a0, - 0x26a1, 0x26a9, 0x26ab, 0x26bc, 0x26be, 0x26c3, 0x26c5, 0x26cd, - 0x26ce, 0x26d3, 0x26d4, 0x26e9, 0x26ea, 0x26f1, 0x26f3, 0x26f4, - 0x26f5, 0x26f9, 0x26fa, 0x26fc, 0x26fd, 0x2704, 0x2705, 0x2709, - 0x270b, 0x2727, 0x2728, 0x274b, 0x274c, 0x274d, 0x274e, 0x2752, - 0x2755, 0x2756, 0x2757, 0x2794, 0x2797, 0x27af, 0x27b0, 0x27be, - 0x27bf, 0x2b1a, 0x2b1c, 0x2b4f, 0x2b50, 0x2b54, 0x2b55, 0x2cee, - 0x2cf1, 0x2d7e, 0x2d7f, 0x2ddf, 0x2dff, 0x2e7f, 0x2e99, 0x2e9a, - 0x2ef3, 0x2eff, 0x2fd5, 0x2fef, 0x3029, 0x302d, 0x303e, 0x3040, - 0x3096, 0x3098, 0x309a, 0x30ff, 0x3104, 0x312f, 0x3130, 0x318e, - 0x318f, 0x31e5, 0x31ee, 0x321e, 0x321f, 0xa48c, 0xa48f, 0xa4c6, - 0xa66e, 0xa672, 0xa673, 0xa67d, 0xa69d, 0xa69f, 0xa6ef, 0xa6f1, - 0xa801, 0xa802, 0xa805, 0xa806, 0xa80a, 0xa80b, 0xa824, 0xa826, - 0xa82b, 0xa82c, 0xa8c3, 0xa8c5, 0xa8df, 0xa8f1, 0xa8fe, 0xa8ff, - 0xa925, 0xa92d, 0xa946, 0xa951, 0xa95f, 0xa97c, 0xa97f, 0xa982, - 0xa9b2, 0xa9b3, 0xa9b5, 0xa9b9, 0xa9bb, 0xa9bd, 0xa9e4, 0xa9e5, - 0xaa28, 0xaa2e, 0xaa30, 0xaa32, 0xaa34, 0xaa36, 0xaa42, 0xaa43, - 0xaa4b, 0xaa4c, 0xaa7b, 0xaa7c, 0xaaaf, 0xaab0, 0xaab1, 0xaab4, - 0xaab6, 0xaab8, 0xaabd, 0xaabf, 0xaac0, 0xaac1, 0xaaeb, 0xaaed, - 0xaaf5, 0xaaf6, 0xabe4, 0xabe5, 0xabe7, 0xabe8, 0xabec, 0xabed, - 0xabff, 0xd7a3, 0xd7af, 0xd7c6, 0xd7ca, 0xd7fb, 0xf8ff, 0xfa6d, - 0xfa6f, 0xfad9, 0xfb1d, 0xfb1e, 0xfdff, 0xfe0f, 0xfe19, 0xfe1f, - 0xfe2f, 0xfe52, 0xfe53, 0xfe66, 0xfe67, 0xfe6b, 0xfefe, 0xfeff, - 0xff00, 0xff60, 0xffdf, 0xffe6, 0xfff8, 0xfffb, 0x101fc, 0x101fd, - 0x102df, 0x102e0, 0x10375, 0x1037a, 0x10a00, 0x10a03, 0x10a04, 0x10a06, - 0x10a0b, 0x10a0f, 0x10a37, 0x10a3a, 0x10a3e, 0x10a3f, 0x10ae4, 0x10ae6, - 0x10d23, 0x10d27, 0x10d68, 0x10d6d, 0x10eaa, 0x10eac, 0x10efb, 0x10eff, - 0x10f45, 0x10f50, 0x10f81, 0x10f85, 0x11000, 0x11001, 0x11037, 0x11046, - 0x1106f, 0x11070, 0x11072, 0x11074, 0x1107e, 0x11081, 0x110b2, 0x110b6, - 0x110b8, 0x110ba, 0x110c1, 0x110c2, 0x110ff, 0x11102, 0x11126, 0x1112b, - 0x1112c, 0x11134, 0x11172, 0x11173, 0x1117f, 0x11181, 0x111b5, 0x111be, - 0x111c8, 0x111cc, 0x111ce, 0x111cf, 0x1122e, 0x11231, 0x11233, 0x11234, - 0x11235, 0x11237, 0x1123d, 0x1123e, 0x11240, 0x11241, 0x112de, 0x112df, - 0x112e2, 0x112ea, 0x112ff, 0x11301, 0x1133a, 0x1133c, 0x1133f, 0x11340, - 0x11365, 0x1136c, 0x1136f, 0x11374, 0x113ba, 0x113c0, 0x113cd, 0x113ce, - 0x113cf, 0x113d0, 0x113d1, 0x113d2, 0x113e0, 0x113e2, 0x11437, 0x1143f, - 0x11441, 0x11444, 0x11445, 0x11446, 0x1145d, 0x1145e, 0x114b2, 0x114b8, - 0x114b9, 0x114ba, 0x114be, 0x114c0, 0x114c1, 0x114c3, 0x115b1, 0x115b5, - 0x115bb, 0x115bd, 0x115be, 0x115c0, 0x115db, 0x115dd, 0x11632, 0x1163a, - 0x1163c, 0x1163d, 0x1163e, 0x11640, 0x116aa, 0x116ab, 0x116ac, 0x116ad, - 0x116af, 0x116b5, 0x116b6, 0x116b7, 0x1171c, 0x1171d, 0x1171e, 0x1171f, - 0x11721, 0x11725, 0x11726, 0x1172b, 0x1182e, 0x11837, 0x11838, 0x1183a, - 0x1193a, 0x1193c, 0x1193d, 0x1193e, 0x11942, 0x11943, 0x119d3, 0x119d7, - 0x119d9, 0x119db, 0x119df, 0x119e0, 0x11a00, 0x11a0a, 0x11a32, 0x11a38, - 0x11a3a, 0x11a3e, 0x11a46, 0x11a47, 0x11a50, 0x11a56, 0x11a58, 0x11a5b, - 0x11a89, 0x11a96, 0x11a97, 0x11a99, 0x11c2f, 0x11c36, 0x11c37, 0x11c3d, - 0x11c3e, 0x11c3f, 0x11c91, 0x11ca7, 0x11ca9, 0x11cb0, 0x11cb1, 0x11cb3, - 0x11cb4, 0x11cb6, 0x11d30, 0x11d36, 0x11d39, 0x11d3a, 0x11d3b, 0x11d3d, - 0x11d3e, 0x11d45, 0x11d46, 0x11d47, 0x11d8f, 0x11d91, 0x11d94, 0x11d95, - 0x11d96, 0x11d97, 0x11ef2, 0x11ef4, 0x11eff, 0x11f01, 0x11f35, 0x11f3a, - 0x11f3f, 0x11f40, 0x11f41, 0x11f42, 0x11f59, 0x11f5a, 0x1342f, 0x13440, - 0x13446, 0x13455, 0x1611d, 0x16129, 0x1612c, 0x1612f, 0x16aef, 0x16af4, - 0x16b2f, 0x16b36, 0x16f4e, 0x16f4f, 0x16f8e, 0x16f92, 0x16fdf, 0x16fe3, - 0x16fe4, 0x16fef, 0x16ff1, 0x16fff, 0x187f7, 0x187ff, 0x18cd5, 0x18cfe, - 0x18d08, 0x1afef, 0x1aff3, 0x1aff4, 0x1affb, 0x1affc, 0x1affe, 0x1afff, - 0x1b122, 0x1b131, 0x1b132, 0x1b14f, 0x1b152, 0x1b154, 0x1b155, 0x1b163, - 0x1b167, 0x1b16f, 0x1b2fb, 0x1bc9c, 0x1bc9e, 0x1bc9f, 0x1bca3, 0x1ceff, - 0x1cf2d, 0x1cf2f, 0x1cf46, 0x1d166, 0x1d169, 0x1d172, 0x1d182, 0x1d184, - 0x1d18b, 0x1d1a9, 0x1d1ad, 0x1d241, 0x1d244, 0x1d2ff, 0x1d356, 0x1d35f, - 0x1d376, 0x1d9ff, 0x1da36, 0x1da3a, 0x1da6c, 0x1da74, 0x1da75, 0x1da83, - 0x1da84, 0x1da9a, 0x1da9f, 0x1daa0, 0x1daaf, 0x1dfff, 0x1e006, 0x1e007, - 0x1e018, 0x1e01a, 0x1e021, 0x1e022, 0x1e024, 0x1e025, 0x1e02a, 0x1e08e, - 0x1e08f, 0x1e12f, 0x1e136, 0x1e2ad, 0x1e2ae, 0x1e2eb, 0x1e2ef, 0x1e4eb, - 0x1e4ef, 0x1e5ed, 0x1e5ef, 0x1e8cf, 0x1e8d6, 0x1e943, 0x1e94a, 0x1f003, - 0x1f004, 0x1f0ce, 0x1f0cf, 0x1f18d, 0x1f18e, 0x1f190, 0x1f19a, 0x1f1ff, - 0x1f202, 0x1f20f, 0x1f23b, 0x1f23f, 0x1f248, 0x1f24f, 0x1f251, 0x1f25f, - 0x1f265, 0x1f2ff, 0x1f320, 0x1f32c, 0x1f335, 0x1f336, 0x1f37c, 0x1f37d, - 0x1f393, 0x1f39f, 0x1f3ca, 0x1f3ce, 0x1f3d3, 0x1f3df, 0x1f3f0, 0x1f3f3, - 0x1f3f4, 0x1f3f7, 0x1f43e, 0x1f43f, 0x1f440, 0x1f441, 0x1f4fc, 0x1f4fe, - 0x1f53d, 0x1f54a, 0x1f54e, 0x1f54f, 0x1f567, 0x1f579, 0x1f57a, 0x1f594, - 0x1f596, 0x1f5a3, 0x1f5a4, 0x1f5fa, 0x1f64f, 0x1f67f, 0x1f6c5, 0x1f6cb, - 0x1f6cc, 0x1f6cf, 0x1f6d2, 0x1f6d4, 0x1f6d7, 0x1f6db, 0x1f6df, 0x1f6ea, - 0x1f6ec, 0x1f6f3, 0x1f6fc, 0x1f7df, 0x1f7eb, 0x1f7ef, 0x1f7f0, 0x1f90b, - 0x1f93a, 0x1f93b, 0x1f945, 0x1f946, 0x1f9ff, 0x1fa6f, 0x1fa7c, 0x1fa7f, - 0x1fa89, 0x1fa8e, 0x1fac6, 0x1facd, 0x1fadc, 0x1fade, 0x1fae9, 0x1faef, - 0x1faf8, 0x1ffff, 0x2a6df, 0x2a6ff, 0x2b739, 0x2b73f, 0x2b81d, 0x2b81f, - 0x2cea1, 0x2ceaf, 0x2ebe0, 0x2ebef, 0x2ee5d, 0x2f7ff, 0x2fa1d, 0x2ffff, - 0x3134a, 0x3134f, 0x323af, 0xe0000, 0xe0001, 0xe001f, 0xe007f, 0xe00ff, - 0xe01ef, + 0x1a6c, 0x1a72, 0x1a7c, 0x1a7e, 0x1a7f, 0x1aaf, 0x1add, 0x1adf, + 0x1aeb, 0x1aff, 0x1b03, 0x1b33, 0x1b34, 0x1b35, 0x1b3a, 0x1b3b, + 0x1b3c, 0x1b41, 0x1b42, 0x1b6a, 0x1b73, 0x1b7f, 0x1b81, 0x1ba1, + 0x1ba5, 0x1ba7, 0x1ba9, 0x1baa, 0x1bad, 0x1be5, 0x1be6, 0x1be7, + 0x1be9, 0x1bec, 0x1bed, 0x1bee, 0x1bf1, 0x1c2b, 0x1c33, 0x1c35, + 0x1c37, 0x1ccf, 0x1cd2, 0x1cd3, 0x1ce0, 0x1ce1, 0x1ce8, 0x1cec, + 0x1ced, 0x1cf3, 0x1cf4, 0x1cf7, 0x1cf9, 0x1dbf, 0x1dff, 0x200a, + 0x200f, 0x2029, 0x202e, 0x205f, 0x2064, 0x2065, 0x206f, 0x20cf, + 0x20f0, 0x2319, 0x231b, 0x2328, 0x232a, 0x23e8, 0x23ec, 0x23ef, + 0x23f0, 0x23f2, 0x23f3, 0x25fc, 0x25fe, 0x2613, 0x2615, 0x262f, + 0x2637, 0x2647, 0x2653, 0x267e, 0x267f, 0x2689, 0x268f, 0x2692, + 0x2693, 0x26a0, 0x26a1, 0x26a9, 0x26ab, 0x26bc, 0x26be, 0x26c3, + 0x26c5, 0x26cd, 0x26ce, 0x26d3, 0x26d4, 0x26e9, 0x26ea, 0x26f1, + 0x26f3, 0x26f4, 0x26f5, 0x26f9, 0x26fa, 0x26fc, 0x26fd, 0x2704, + 0x2705, 0x2709, 0x270b, 0x2727, 0x2728, 0x274b, 0x274c, 0x274d, + 0x274e, 0x2752, 0x2755, 0x2756, 0x2757, 0x2794, 0x2797, 0x27af, + 0x27b0, 0x27be, 0x27bf, 0x2b1a, 0x2b1c, 0x2b4f, 0x2b50, 0x2b54, + 0x2b55, 0x2cee, 0x2cf1, 0x2d7e, 0x2d7f, 0x2ddf, 0x2dff, 0x2e7f, + 0x2e99, 0x2e9a, 0x2ef3, 0x2eff, 0x2fd5, 0x2fef, 0x3029, 0x302d, + 0x303e, 0x3040, 0x3096, 0x3098, 0x309a, 0x30ff, 0x3104, 0x312f, + 0x3130, 0x3163, 0x3164, 0x318e, 0x318f, 0x31e5, 0x31ee, 0x321e, + 0x321f, 0xa48c, 0xa48f, 0xa4c6, 0xa66e, 0xa672, 0xa673, 0xa67d, + 0xa69d, 0xa69f, 0xa6ef, 0xa6f1, 0xa801, 0xa802, 0xa805, 0xa806, + 0xa80a, 0xa80b, 0xa824, 0xa826, 0xa82b, 0xa82c, 0xa8c3, 0xa8c5, + 0xa8df, 0xa8f1, 0xa8fe, 0xa8ff, 0xa925, 0xa92d, 0xa946, 0xa951, + 0xa95f, 0xa97c, 0xa97f, 0xa982, 0xa9b2, 0xa9b3, 0xa9b5, 0xa9b9, + 0xa9bb, 0xa9bd, 0xa9e4, 0xa9e5, 0xaa28, 0xaa2e, 0xaa30, 0xaa32, + 0xaa34, 0xaa36, 0xaa42, 0xaa43, 0xaa4b, 0xaa4c, 0xaa7b, 0xaa7c, + 0xaaaf, 0xaab0, 0xaab1, 0xaab4, 0xaab6, 0xaab8, 0xaabd, 0xaabf, + 0xaac0, 0xaac1, 0xaaeb, 0xaaed, 0xaaf5, 0xaaf6, 0xabe4, 0xabe5, + 0xabe7, 0xabe8, 0xabec, 0xabed, 0xabff, 0xd7a3, 0xd7af, 0xd7c6, + 0xd7ca, 0xd7fb, 0xf8ff, 0xfa6d, 0xfa6f, 0xfad9, 0xfb1d, 0xfb1e, + 0xfdff, 0xfe0f, 0xfe19, 0xfe1f, 0xfe2f, 0xfe52, 0xfe53, 0xfe66, + 0xfe67, 0xfe6b, 0xfefe, 0xfeff, 0xff00, 0xff60, 0xff9f, 0xffa0, + 0xffdf, 0xffe6, 0x101fc, 0x101fd, 0x102df, 0x102e0, 0x10375, 0x1037a, + 0x10a00, 0x10a03, 0x10a04, 0x10a06, 0x10a0b, 0x10a0f, 0x10a37, 0x10a3a, + 0x10a3e, 0x10a3f, 0x10ae4, 0x10ae6, 0x10d23, 0x10d27, 0x10d68, 0x10d6d, + 0x10eaa, 0x10eac, 0x10ef9, 0x10eff, 0x10f45, 0x10f50, 0x10f81, 0x10f85, + 0x11000, 0x11001, 0x11037, 0x11046, 0x1106f, 0x11070, 0x11072, 0x11074, + 0x1107e, 0x11081, 0x110b2, 0x110b6, 0x110b8, 0x110ba, 0x110c1, 0x110c2, + 0x110ff, 0x11102, 0x11126, 0x1112b, 0x1112c, 0x11134, 0x11172, 0x11173, + 0x1117f, 0x11181, 0x111b5, 0x111be, 0x111c8, 0x111cc, 0x111ce, 0x111cf, + 0x1122e, 0x11231, 0x11233, 0x11234, 0x11235, 0x11237, 0x1123d, 0x1123e, + 0x11240, 0x11241, 0x112de, 0x112df, 0x112e2, 0x112ea, 0x112ff, 0x11301, + 0x1133a, 0x1133c, 0x1133f, 0x11340, 0x11365, 0x1136c, 0x1136f, 0x11374, + 0x113ba, 0x113c0, 0x113cd, 0x113ce, 0x113cf, 0x113d0, 0x113d1, 0x113d2, + 0x113e0, 0x113e2, 0x11437, 0x1143f, 0x11441, 0x11444, 0x11445, 0x11446, + 0x1145d, 0x1145e, 0x114b2, 0x114b8, 0x114b9, 0x114ba, 0x114be, 0x114c0, + 0x114c1, 0x114c3, 0x115b1, 0x115b5, 0x115bb, 0x115bd, 0x115be, 0x115c0, + 0x115db, 0x115dd, 0x11632, 0x1163a, 0x1163c, 0x1163d, 0x1163e, 0x11640, + 0x116aa, 0x116ab, 0x116ac, 0x116ad, 0x116af, 0x116b5, 0x116b6, 0x116b7, + 0x1171c, 0x1171d, 0x1171e, 0x1171f, 0x11721, 0x11725, 0x11726, 0x1172b, + 0x1182e, 0x11837, 0x11838, 0x1183a, 0x1193a, 0x1193c, 0x1193d, 0x1193e, + 0x11942, 0x11943, 0x119d3, 0x119d7, 0x119d9, 0x119db, 0x119df, 0x119e0, + 0x11a00, 0x11a0a, 0x11a32, 0x11a38, 0x11a3a, 0x11a3e, 0x11a46, 0x11a47, + 0x11a50, 0x11a56, 0x11a58, 0x11a5b, 0x11a89, 0x11a96, 0x11a97, 0x11a99, + 0x11b5f, 0x11b60, 0x11b61, 0x11b64, 0x11b65, 0x11b66, 0x11c2f, 0x11c36, + 0x11c37, 0x11c3d, 0x11c3e, 0x11c3f, 0x11c91, 0x11ca7, 0x11ca9, 0x11cb0, + 0x11cb1, 0x11cb3, 0x11cb4, 0x11cb6, 0x11d30, 0x11d36, 0x11d39, 0x11d3a, + 0x11d3b, 0x11d3d, 0x11d3e, 0x11d45, 0x11d46, 0x11d47, 0x11d8f, 0x11d91, + 0x11d94, 0x11d95, 0x11d96, 0x11d97, 0x11ef2, 0x11ef4, 0x11eff, 0x11f01, + 0x11f35, 0x11f3a, 0x11f3f, 0x11f40, 0x11f41, 0x11f42, 0x11f59, 0x11f5a, + 0x1343f, 0x13440, 0x13446, 0x13455, 0x1611d, 0x16129, 0x1612c, 0x1612f, + 0x16aef, 0x16af4, 0x16b2f, 0x16b36, 0x16f4e, 0x16f4f, 0x16f8e, 0x16f92, + 0x16fdf, 0x16fe3, 0x16fe4, 0x16fef, 0x16ff6, 0x16fff, 0x18cd5, 0x18cfe, + 0x18d1e, 0x18d7f, 0x18df2, 0x1afef, 0x1aff3, 0x1aff4, 0x1affb, 0x1affc, + 0x1affe, 0x1afff, 0x1b122, 0x1b131, 0x1b132, 0x1b14f, 0x1b152, 0x1b154, + 0x1b155, 0x1b163, 0x1b167, 0x1b16f, 0x1b2fb, 0x1bc9c, 0x1bc9e, 0x1bc9f, + 0x1bca3, 0x1ceff, 0x1cf2d, 0x1cf2f, 0x1cf46, 0x1d166, 0x1d169, 0x1d172, + 0x1d182, 0x1d184, 0x1d18b, 0x1d1a9, 0x1d1ad, 0x1d241, 0x1d244, 0x1d2ff, + 0x1d356, 0x1d35f, 0x1d376, 0x1d9ff, 0x1da36, 0x1da3a, 0x1da6c, 0x1da74, + 0x1da75, 0x1da83, 0x1da84, 0x1da9a, 0x1da9f, 0x1daa0, 0x1daaf, 0x1dfff, + 0x1e006, 0x1e007, 0x1e018, 0x1e01a, 0x1e021, 0x1e022, 0x1e024, 0x1e025, + 0x1e02a, 0x1e08e, 0x1e08f, 0x1e12f, 0x1e136, 0x1e2ad, 0x1e2ae, 0x1e2eb, + 0x1e2ef, 0x1e4eb, 0x1e4ef, 0x1e5ed, 0x1e5ef, 0x1e6e2, 0x1e6e3, 0x1e6e5, + 0x1e6e6, 0x1e6ed, 0x1e6ef, 0x1e6f4, 0x1e6f5, 0x1e8cf, 0x1e8d6, 0x1e943, + 0x1e94a, 0x1f003, 0x1f004, 0x1f0ce, 0x1f0cf, 0x1f18d, 0x1f18e, 0x1f190, + 0x1f19a, 0x1f1ff, 0x1f202, 0x1f20f, 0x1f23b, 0x1f23f, 0x1f248, 0x1f24f, + 0x1f251, 0x1f25f, 0x1f265, 0x1f2ff, 0x1f320, 0x1f32c, 0x1f335, 0x1f336, + 0x1f37c, 0x1f37d, 0x1f393, 0x1f39f, 0x1f3ca, 0x1f3ce, 0x1f3d3, 0x1f3df, + 0x1f3f0, 0x1f3f3, 0x1f3f4, 0x1f3f7, 0x1f43e, 0x1f43f, 0x1f440, 0x1f441, + 0x1f4fc, 0x1f4fe, 0x1f53d, 0x1f54a, 0x1f54e, 0x1f54f, 0x1f567, 0x1f579, + 0x1f57a, 0x1f594, 0x1f596, 0x1f5a3, 0x1f5a4, 0x1f5fa, 0x1f64f, 0x1f67f, + 0x1f6c5, 0x1f6cb, 0x1f6cc, 0x1f6cf, 0x1f6d2, 0x1f6d4, 0x1f6d8, 0x1f6db, + 0x1f6df, 0x1f6ea, 0x1f6ec, 0x1f6f3, 0x1f6fc, 0x1f7df, 0x1f7eb, 0x1f7ef, + 0x1f7f0, 0x1f90b, 0x1f93a, 0x1f93b, 0x1f945, 0x1f946, 0x1f9ff, 0x1fa6f, + 0x1fa7c, 0x1fa7f, 0x1fa8a, 0x1fa8d, 0x1fac6, 0x1fac7, 0x1fac8, 0x1facc, + 0x1fadc, 0x1fade, 0x1faea, 0x1faee, 0x1faf8, 0x1ffff, 0x2a6df, 0x2a6ff, + 0x2b81d, 0x2b81f, 0x2cead, 0x2ceaf, 0x2ebe0, 0x2ebef, 0x2ee5d, 0x2f7ff, + 0x2fa1d, 0x2ffff, 0x3134a, 0x3134f, 0x33479, 0xe0000, 0xe0001, 0xe001f, + 0xe007f, 0xe00ff, 0xe01ef, }; static const unsigned char wcwidth_widths[] = { @@ -143,15 +145,16 @@ static const unsigned char wcwidth_widths[] = { 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, - 0, 1, 0, 1, 0, 1, 0, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, + 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, - 2, 1, 2, 1, 2, 1, 2, 1, 0, 1, 0, 1, 0, 1, 2, 1, 2, 1, 2, 1, 2, 0, 2, 1, - 2, 1, 0, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 0, 1, 0, 1, 0, 1, 0, - 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 2, 1, 0, + 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 0, 1, 0, 1, 0, 1, 2, 1, 2, 1, 2, 1, 2, 0, + 2, 1, 2, 1, 0, 2, 1, 2, 1, 2, 0, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, - 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 2, 1, 0, 1, 0, 1, 2, - 1, 2, 1, 0, 1, 0, 2, 1, 0, 2, 1, 2, 1, 2, 1, 0, 1, 2, 1, 2, 1, 0, 1, 0, + 1, 2, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, + 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 2, 1, 0, + 1, 0, 1, 2, 1, 2, 1, 0, 1, 0, 2, 1, 0, 2, 1, 2, 1, 2, 1, 0, 1, 2, 1, 0, + 1, 2, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, @@ -161,14 +164,13 @@ static const unsigned char wcwidth_widths[] = { 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, - 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 2, 0, 1, 2, 1, 2, 1, 2, 1, - 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 0, 1, 0, 1, - 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 2, 1, 2, 1, 0, 1, 0, 1, 0, 1, + 1, 2, 0, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, + 2, 1, 2, 1, 2, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, + 2, 1, 2, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, - 0, 1, 0, 1, 0, 1, 0, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, + 0, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, - 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 0, 1, 0, 1, - 0, + 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 0, 1, 0, 1, 0, }; diff --git a/libcpp/makeucnid.cc b/libcpp/makeucnid.cc index 4ceead25be66..25dfa88af63a 100644 --- a/libcpp/makeucnid.cc +++ b/libcpp/makeucnid.cc @@ -467,7 +467,7 @@ write_copyright (void) .\n\ \n\ \n\ - Copyright (C) 1991-2024 Unicode, Inc. All rights reserved.\n\ + Copyright (C) 1991-2025 Unicode, Inc. All rights reserved.\n\ Distributed under the Terms of Use in\n\ http://www.unicode.org/copyright.html.\n\ \n\ diff --git a/libcpp/makeuname2c.cc b/libcpp/makeuname2c.cc index f9b6957b7116..b05d589b9803 100644 --- a/libcpp/makeuname2c.cc +++ b/libcpp/makeuname2c.cc @@ -83,16 +83,17 @@ static struct generated generated_ranges[] = { "CJK UNIFIED IDEOGRAPH-", 0x3400, 0x4dbf, 0, 1, 0 }, /* NR2 rules */ { "CJK UNIFIED IDEOGRAPH-", 0x4e00, 0x9fff, 0, 1, 0 }, { "CJK UNIFIED IDEOGRAPH-", 0x20000, 0x2a6df, 0, 1, 0 }, - { "CJK UNIFIED IDEOGRAPH-", 0x2a700, 0x2b739, 0, 1, 0 }, + { "CJK UNIFIED IDEOGRAPH-", 0x2a700, 0x2b73f, 0, 1, 0 }, { "CJK UNIFIED IDEOGRAPH-", 0x2b740, 0x2b81d, 0, 1, 0 }, - { "CJK UNIFIED IDEOGRAPH-", 0x2b820, 0x2cea1, 0, 1, 0 }, + { "CJK UNIFIED IDEOGRAPH-", 0x2b820, 0x2cead, 0, 1, 0 }, { "CJK UNIFIED IDEOGRAPH-", 0x2ceb0, 0x2ebe0, 0, 1, 0 }, { "CJK UNIFIED IDEOGRAPH-", 0x2ebf0, 0x2ee5d, 0, 1, 0 }, { "CJK UNIFIED IDEOGRAPH-", 0x30000, 0x3134a, 0, 1, 0 }, { "CJK UNIFIED IDEOGRAPH-", 0x31350, 0x323af, 0, 1, 0 }, + { "CJK UNIFIED IDEOGRAPH-", 0x323b0, 0x33479, 0, 1, 0 }, { "EGYPTIAN HIEROGLYPH-", 0x13460, 0x143fa, 0, 2, 0 }, - { "TANGUT IDEOGRAPH-", 0x17000, 0x187f7, 0, 3, 0 }, - { "TANGUT IDEOGRAPH-", 0x18d00, 0x18d08, 0, 3, 0 }, + { "TANGUT IDEOGRAPH-", 0x17000, 0x187ff, 0, 3, 0 }, + { "TANGUT IDEOGRAPH-", 0x18d00, 0x18d1e, 0, 3, 0 }, { "KHITAN SMALL SCRIPT CHARACTER-", 0x18b00, 0x18cd5, 0, 4, 0 }, { "NUSHU CHARACTER-", 0x1b170, 0x1b2fb, 0, 5, 0 }, { "CJK COMPATIBILITY IDEOGRAPH-", 0xf900, 0xfa6d, 0, 6, 0 }, @@ -671,7 +672,7 @@ write_copyright (void) .\n\ \n\ \n\ - Copyright (C) 1991-2024 Unicode, Inc. All rights reserved.\n\ + Copyright (C) 1991-2025 Unicode, Inc. All rights reserved.\n\ Distributed under the Terms of Use in\n\ http://www.unicode.org/copyright.html.\n\ \n\ @@ -717,7 +718,7 @@ write_dict (void) printf ("static const char uname2c_dict[%ld] =\n", (long) (dict_size + 1)); for (i = 0; i < dict_size; i += 77) - printf ("\"%.77s\"%s\n", dict + i, i + 76 > dict_size ? ";" : ""); + printf ("\"%.77s\"%s\n", dict + i, i + 77 >= dict_size ? ";" : ""); puts (""); } diff --git a/libcpp/ucnid.h b/libcpp/ucnid.h index 26eaca1ba76c..8b6125aca286 100644 --- a/libcpp/ucnid.h +++ b/libcpp/ucnid.h @@ -16,7 +16,7 @@ . - Copyright (C) 1991-2024 Unicode, Inc. All rights reserved. + Copyright (C) 1991-2025 Unicode, Inc. All rights reserved. Distributed under the Terms of Use in http://www.unicode.org/copyright.html. @@ -440,7 +440,7 @@ static const struct ucnrange ucnranges[] = { { 0| 0| 0|C11| 0| 0| 0|CID|NFC|NKC| 0, 0, 0x086f }, { 0| 0| 0|C11| 0|CXX23| 0|CID|NFC|NKC| 0, 0, 0x0887 }, { 0| 0| 0|C11| 0| 0| 0|CID|NFC|NKC| 0, 0, 0x0888 }, -{ 0| 0| 0|C11| 0|CXX23| 0|CID|NFC|NKC| 0, 0, 0x088e }, +{ 0| 0| 0|C11| 0|CXX23| 0|CID|NFC|NKC| 0, 0, 0x088f }, { 0| 0| 0|C11| 0| 0| 0|CID|NFC|NKC| 0, 0, 0x0896 }, { 0| 0| 0|C11| 0|CXX23|NXX23|CID|NFC|NKC| 0, 230, 0x0898 }, { 0| 0| 0|C11| 0|CXX23|NXX23|CID|NFC|NKC| 0, 220, 0x089b }, @@ -718,7 +718,7 @@ static const struct ucnrange ucnranges[] = { { 0| 0| 0|C11| 0|CXX23|NXX23|CID|NFC|NKC|CTX, 91, 0x0c56 }, { 0| 0| 0|C11| 0| 0| 0|CID|NFC|NKC| 0, 0, 0x0c57 }, { 0| 0| 0|C11| 0|CXX23| 0|CID|NFC|NKC| 0, 0, 0x0c5a }, -{ 0| 0| 0|C11| 0| 0| 0|CID|NFC|NKC| 0, 0, 0x0c5c }, +{ 0| 0| 0|C11| 0| 0| 0|CID|NFC|NKC| 0, 0, 0x0c5b }, { 0| 0| 0|C11| 0|CXX23| 0|CID|NFC|NKC| 0, 0, 0x0c5d }, { 0| 0| 0|C11| 0| 0| 0|CID|NFC|NKC| 0, 0, 0x0c5f }, { C99| 0|CXX|C11| 0|CXX23| 0|CID|NFC|NKC| 0, 0, 0x0c61 }, @@ -756,7 +756,7 @@ static const struct ucnrange ucnranges[] = { { C99| 0| 0|C11| 0|CXX23|NXX23|CID|NFC|NKC| 0, 9, 0x0ccd }, { 0| 0| 0|C11| 0| 0| 0|CID|NFC|NKC| 0, 0, 0x0cd4 }, { 0| 0| 0|C11| 0|CXX23|NXX23|CID|NFC|NKC|CTX, 0, 0x0cd6 }, -{ 0| 0| 0|C11| 0| 0| 0|CID|NFC|NKC| 0, 0, 0x0cdc }, +{ 0| 0| 0|C11| 0| 0| 0|CID|NFC|NKC| 0, 0, 0x0cdb }, { 0| 0| 0|C11| 0|CXX23| 0|CID|NFC|NKC| 0, 0, 0x0cdd }, { C99| 0| 0|C11| 0|CXX23| 0|CID|NFC|NKC| 0, 0, 0x0cde }, { 0| 0| 0|C11| 0| 0| 0|CID|NFC|NKC| 0, 0, 0x0cdf }, @@ -1160,7 +1160,13 @@ static const struct ucnrange ucnranges[] = { { 0| 0| 0|C11| 0|CXX23|NXX23|CID|NFC|NKC| 0, 220, 0x1ac4 }, { 0| 0| 0|C11| 0|CXX23|NXX23|CID|NFC|NKC| 0, 230, 0x1ac9 }, { 0| 0| 0|C11| 0|CXX23|NXX23|CID|NFC|NKC| 0, 220, 0x1aca }, -{ 0| 0| 0|C11| 0|CXX23|NXX23|CID|NFC|NKC| 0, 230, 0x1ace }, +{ 0| 0| 0|C11| 0|CXX23|NXX23|CID|NFC|NKC| 0, 230, 0x1adc }, +{ 0| 0| 0|C11| 0|CXX23|NXX23|CID|NFC|NKC| 0, 220, 0x1add }, +{ 0| 0| 0|C11| 0| 0| 0|CID|NFC|NKC| 0, 0, 0x1adf }, +{ 0| 0| 0|C11| 0|CXX23|NXX23|CID|NFC|NKC| 0, 230, 0x1ae5 }, +{ 0| 0| 0|C11| 0|CXX23|NXX23|CID|NFC|NKC| 0, 220, 0x1ae6 }, +{ 0| 0| 0|C11| 0|CXX23|NXX23|CID|NFC|NKC| 0, 230, 0x1aea }, +{ 0| 0| 0|C11| 0|CXX23|NXX23|CID|NFC|NKC| 0, 234, 0x1aeb }, { 0| 0| 0|C11| 0| 0| 0|CID|NFC|NKC| 0, 0, 0x1aff }, { 0| 0| 0|C11| 0|CXX23|NXX23|CID|NFC|NKC| 0, 0, 0x1b04 }, { 0| 0| 0|C11| 0|CXX23| 0|CID|NFC|NKC| 0, 0, 0x1b05 }, @@ -1678,14 +1684,8 @@ static const struct ucnrange ucnranges[] = { { 0| 0| 0|C11| 0|CXX23| 0|CID|NFC| 0| 0, 0, 0xa770 }, { 0| 0| 0|C11| 0|CXX23| 0|CID|NFC|NKC| 0, 0, 0xa788 }, { 0| 0| 0|C11| 0| 0| 0|CID|NFC|NKC| 0, 0, 0xa78a }, -{ 0| 0| 0|C11| 0|CXX23| 0|CID|NFC|NKC| 0, 0, 0xa7cd }, -{ 0| 0| 0|C11| 0| 0| 0|CID|NFC|NKC| 0, 0, 0xa7cf }, -{ 0| 0| 0|C11| 0|CXX23| 0|CID|NFC|NKC| 0, 0, 0xa7d1 }, -{ 0| 0| 0|C11| 0| 0| 0|CID|NFC|NKC| 0, 0, 0xa7d2 }, -{ 0| 0| 0|C11| 0|CXX23| 0|CID|NFC|NKC| 0, 0, 0xa7d3 }, -{ 0| 0| 0|C11| 0| 0| 0|CID|NFC|NKC| 0, 0, 0xa7d4 }, { 0| 0| 0|C11| 0|CXX23| 0|CID|NFC|NKC| 0, 0, 0xa7dc }, -{ 0| 0| 0|C11| 0| 0| 0|CID|NFC|NKC| 0, 0, 0xa7f1 }, +{ 0| 0| 0|C11| 0| 0| 0|CID|NFC|NKC| 0, 0, 0xa7f0 }, { 0| 0| 0|C11| 0|CXX23| 0|CID|NFC| 0| 0, 0, 0xa7f4 }, { 0| 0| 0|C11| 0|CXX23| 0|CID|NFC|NKC| 0, 0, 0xa7f7 }, { 0| 0| 0|C11| 0|CXX23| 0|CID|NFC| 0| 0, 0, 0xa7f9 }, @@ -2035,6 +2035,8 @@ static const struct ucnrange ucnranges[] = { { 0| 0| 0|C11| 0|CXX23| 0|CID|NFC|NKC| 0, 0, 0x10915 }, { 0| 0| 0|C11| 0| 0| 0|CID|NFC|NKC| 0, 0, 0x1091f }, { 0| 0| 0|C11| 0|CXX23| 0|CID|NFC|NKC| 0, 0, 0x10939 }, +{ 0| 0| 0|C11| 0| 0| 0|CID|NFC|NKC| 0, 0, 0x1093f }, +{ 0| 0| 0|C11| 0|CXX23| 0|CID|NFC|NKC| 0, 0, 0x10959 }, { 0| 0| 0|C11| 0| 0| 0|CID|NFC|NKC| 0, 0, 0x1097f }, { 0| 0| 0|C11| 0|CXX23| 0|CID|NFC|NKC| 0, 0, 0x109b7 }, { 0| 0| 0|C11| 0| 0| 0|CID|NFC|NKC| 0, 0, 0x109bd }, @@ -2103,8 +2105,9 @@ static const struct ucnrange ucnranges[] = { { 0| 0| 0|C11| 0| 0| 0|CID|NFC|NKC| 0, 0, 0x10eaf }, { 0| 0| 0|C11| 0|CXX23| 0|CID|NFC|NKC| 0, 0, 0x10eb1 }, { 0| 0| 0|C11| 0| 0| 0|CID|NFC|NKC| 0, 0, 0x10ec1 }, -{ 0| 0| 0|C11| 0|CXX23| 0|CID|NFC|NKC| 0, 0, 0x10ec4 }, -{ 0| 0| 0|C11| 0| 0| 0|CID|NFC|NKC| 0, 0, 0x10efb }, +{ 0| 0| 0|C11| 0|CXX23| 0|CID|NFC|NKC| 0, 0, 0x10ec7 }, +{ 0| 0| 0|C11| 0| 0| 0|CID|NFC|NKC| 0, 0, 0x10ef9 }, +{ 0| 0| 0|C11| 0|CXX23|NXX23|CID|NFC|NKC| 0, 220, 0x10efb }, { 0| 0| 0|C11| 0|CXX23|NXX23|CID|NFC|NKC| 0, 0, 0x10efc }, { 0| 0| 0|C11| 0|CXX23|NXX23|CID|NFC|NKC| 0, 220, 0x10eff }, { 0| 0| 0|C11| 0|CXX23| 0|CID|NFC|NKC| 0, 0, 0x10f1c }, @@ -2426,6 +2429,8 @@ static const struct ucnrange ucnranges[] = { { 0| 0| 0|C11| 0|CXX23| 0|CID|NFC|NKC| 0, 0, 0x11a9d }, { 0| 0| 0|C11| 0| 0| 0|CID|NFC|NKC| 0, 0, 0x11aaf }, { 0| 0| 0|C11| 0|CXX23| 0|CID|NFC|NKC| 0, 0, 0x11af8 }, +{ 0| 0| 0|C11| 0| 0| 0|CID|NFC|NKC| 0, 0, 0x11b5f }, +{ 0| 0| 0|C11| 0|CXX23|NXX23|CID|NFC|NKC| 0, 0, 0x11b67 }, { 0| 0| 0|C11| 0| 0| 0|CID|NFC|NKC| 0, 0, 0x11bbf }, { 0| 0| 0|C11| 0|CXX23| 0|CID|NFC|NKC| 0, 0, 0x11be0 }, { 0| 0| 0|C11| 0| 0| 0|CID|NFC|NKC| 0, 0, 0x11bef }, @@ -2482,6 +2487,10 @@ static const struct ucnrange ucnranges[] = { { 0| 0| 0|C11| 0|CXX23| 0|CID|NFC|NKC| 0, 0, 0x11d98 }, { 0| 0| 0|C11| 0| 0| 0|CID|NFC|NKC| 0, 0, 0x11d9f }, { 0| 0| 0|C11| 0|CXX23|NXX23|CID|NFC|NKC| 0, 0, 0x11da9 }, +{ 0| 0| 0|C11| 0| 0| 0|CID|NFC|NKC| 0, 0, 0x11daf }, +{ 0| 0| 0|C11| 0|CXX23| 0|CID|NFC|NKC| 0, 0, 0x11ddb }, +{ 0| 0| 0|C11| 0| 0| 0|CID|NFC|NKC| 0, 0, 0x11ddf }, +{ 0| 0| 0|C11| 0|CXX23|NXX23|CID|NFC|NKC| 0, 0, 0x11de9 }, { 0| 0| 0|C11| 0| 0| 0|CID|NFC|NKC| 0, 0, 0x11edf }, { 0| 0| 0|C11| 0|CXX23| 0|CID|NFC|NKC| 0, 0, 0x11ef2 }, { 0| 0| 0|C11| 0|CXX23|NXX23|CID|NFC|NKC| 0, 0, 0x11ef6 }, @@ -2561,6 +2570,10 @@ static const struct ucnrange ucnranges[] = { { 0| 0| 0|C11| 0|CXX23|NXX23|CID|NFC|NKC| 0, 0, 0x16d79 }, { 0| 0| 0|C11| 0| 0| 0|CID|NFC|NKC| 0, 0, 0x16e3f }, { 0| 0| 0|C11| 0|CXX23| 0|CID|NFC|NKC| 0, 0, 0x16e7f }, +{ 0| 0| 0|C11| 0| 0| 0|CID|NFC|NKC| 0, 0, 0x16e9f }, +{ 0| 0| 0|C11| 0|CXX23| 0|CID|NFC|NKC| 0, 0, 0x16eb8 }, +{ 0| 0| 0|C11| 0| 0| 0|CID|NFC|NKC| 0, 0, 0x16eba }, +{ 0| 0| 0|C11| 0|CXX23| 0|CID|NFC|NKC| 0, 0, 0x16ed3 }, { 0| 0| 0|C11| 0| 0| 0|CID|NFC|NKC| 0, 0, 0x16eff }, { 0| 0| 0|C11| 0|CXX23| 0|CID|NFC|NKC| 0, 0, 0x16f4a }, { 0| 0| 0|C11| 0| 0| 0|CID|NFC|NKC| 0, 0, 0x16f4e }, @@ -2577,12 +2590,13 @@ static const struct ucnrange ucnranges[] = { { 0| 0| 0|C11| 0|CXX23|NXX23|CID|NFC|NKC| 0, 0, 0x16fe4 }, { 0| 0| 0|C11| 0| 0| 0|CID|NFC|NKC| 0, 0, 0x16fef }, { 0| 0| 0|C11| 0|CXX23|NXX23|CID|NFC|NKC| 0, 6, 0x16ff1 }, +{ 0| 0| 0|C11| 0|CXX23| 0|CID|NFC|NKC| 0, 0, 0x16ff6 }, { 0| 0| 0|C11| 0| 0| 0|CID|NFC|NKC| 0, 0, 0x16fff }, -{ 0| 0| 0|C11| 0|CXX23| 0|CID|NFC|NKC| 0, 0, 0x187f7 }, -{ 0| 0| 0|C11| 0| 0| 0|CID|NFC|NKC| 0, 0, 0x187ff }, { 0| 0| 0|C11| 0|CXX23| 0|CID|NFC|NKC| 0, 0, 0x18cd5 }, { 0| 0| 0|C11| 0| 0| 0|CID|NFC|NKC| 0, 0, 0x18cfe }, -{ 0| 0| 0|C11| 0|CXX23| 0|CID|NFC|NKC| 0, 0, 0x18d08 }, +{ 0| 0| 0|C11| 0|CXX23| 0|CID|NFC|NKC| 0, 0, 0x18d1e }, +{ 0| 0| 0|C11| 0| 0| 0|CID|NFC|NKC| 0, 0, 0x18d7f }, +{ 0| 0| 0|C11| 0|CXX23| 0|CID|NFC|NKC| 0, 0, 0x18df2 }, { 0| 0| 0|C11| 0| 0| 0|CID|NFC|NKC| 0, 0, 0x1afef }, { 0| 0| 0|C11| 0|CXX23| 0|CID|NFC|NKC| 0, 0, 0x1aff3 }, { 0| 0| 0|C11| 0| 0| 0|CID|NFC|NKC| 0, 0, 0x1aff4 }, @@ -2757,6 +2771,19 @@ static const struct ucnrange ucnranges[] = { { 0| 0| 0|C11| 0|CXX23|NXX23|CID|NFC|NKC| 0, 220, 0x1e5ef }, { 0| 0| 0|C11| 0|CXX23| 0|CID|NFC|NKC| 0, 0, 0x1e5f0 }, { 0| 0| 0|C11| 0|CXX23|NXX23|CID|NFC|NKC| 0, 0, 0x1e5fa }, +{ 0| 0| 0|C11| 0| 0| 0|CID|NFC|NKC| 0, 0, 0x1e6bf }, +{ 0| 0| 0|C11| 0|CXX23| 0|CID|NFC|NKC| 0, 0, 0x1e6de }, +{ 0| 0| 0|C11| 0| 0| 0|CID|NFC|NKC| 0, 0, 0x1e6df }, +{ 0| 0| 0|C11| 0|CXX23| 0|CID|NFC|NKC| 0, 0, 0x1e6e2 }, +{ 0| 0| 0|C11| 0|CXX23|NXX23|CID|NFC|NKC| 0, 230, 0x1e6e3 }, +{ 0| 0| 0|C11| 0|CXX23| 0|CID|NFC|NKC| 0, 0, 0x1e6e5 }, +{ 0| 0| 0|C11| 0|CXX23|NXX23|CID|NFC|NKC| 0, 230, 0x1e6e6 }, +{ 0| 0| 0|C11| 0|CXX23| 0|CID|NFC|NKC| 0, 0, 0x1e6ed }, +{ 0| 0| 0|C11| 0|CXX23|NXX23|CID|NFC|NKC| 0, 230, 0x1e6ef }, +{ 0| 0| 0|C11| 0|CXX23| 0|CID|NFC|NKC| 0, 0, 0x1e6f4 }, +{ 0| 0| 0|C11| 0|CXX23|NXX23|CID|NFC|NKC| 0, 230, 0x1e6f5 }, +{ 0| 0| 0|C11| 0| 0| 0|CID|NFC|NKC| 0, 0, 0x1e6fd }, +{ 0| 0| 0|C11| 0|CXX23| 0|CID|NFC|NKC| 0, 0, 0x1e6ff }, { 0| 0| 0|C11| 0| 0| 0|CID|NFC|NKC| 0, 0, 0x1e7df }, { 0| 0| 0|C11| 0|CXX23| 0|CID|NFC|NKC| 0, 0, 0x1e7e6 }, { 0| 0| 0|C11| 0| 0| 0|CID|NFC|NKC| 0, 0, 0x1e7e7 }, @@ -2866,11 +2893,9 @@ static const struct ucnrange ucnranges[] = { { 0| 0| 0| 0| 0| 0| 0|CID|NFC|NKC| 0, 0, 0x1ffff }, { 0| 0| 0|C11| 0|CXX23| 0|CID|NFC|NKC| 0, 0, 0x2a6df }, { 0| 0| 0|C11| 0| 0| 0|CID|NFC|NKC| 0, 0, 0x2a6ff }, -{ 0| 0| 0|C11| 0|CXX23| 0|CID|NFC|NKC| 0, 0, 0x2b739 }, -{ 0| 0| 0|C11| 0| 0| 0|CID|NFC|NKC| 0, 0, 0x2b73f }, { 0| 0| 0|C11| 0|CXX23| 0|CID|NFC|NKC| 0, 0, 0x2b81d }, { 0| 0| 0|C11| 0| 0| 0|CID|NFC|NKC| 0, 0, 0x2b81f }, -{ 0| 0| 0|C11| 0|CXX23| 0|CID|NFC|NKC| 0, 0, 0x2cea1 }, +{ 0| 0| 0|C11| 0|CXX23| 0|CID|NFC|NKC| 0, 0, 0x2cead }, { 0| 0| 0|C11| 0| 0| 0|CID|NFC|NKC| 0, 0, 0x2ceaf }, { 0| 0| 0|C11| 0|CXX23| 0|CID|NFC|NKC| 0, 0, 0x2ebe0 }, { 0| 0| 0|C11| 0| 0| 0|CID|NFC|NKC| 0, 0, 0x2ebef }, @@ -2881,7 +2906,7 @@ static const struct ucnrange ucnranges[] = { { 0| 0| 0| 0| 0| 0| 0|CID|NFC|NKC| 0, 0, 0x2ffff }, { 0| 0| 0|C11| 0|CXX23| 0|CID|NFC|NKC| 0, 0, 0x3134a }, { 0| 0| 0|C11| 0| 0| 0|CID|NFC|NKC| 0, 0, 0x3134f }, -{ 0| 0| 0|C11| 0|CXX23| 0|CID|NFC|NKC| 0, 0, 0x323af }, +{ 0| 0| 0|C11| 0|CXX23| 0|CID|NFC|NKC| 0, 0, 0x33479 }, { 0| 0| 0|C11| 0| 0| 0|CID|NFC|NKC| 0, 0, 0x3fffd }, { 0| 0| 0| 0| 0| 0| 0|CID|NFC|NKC| 0, 0, 0x3ffff }, { 0| 0| 0|C11| 0| 0| 0|CID|NFC|NKC| 0, 0, 0x4fffd }, diff --git a/libcpp/uname2c.h b/libcpp/uname2c.h index 04890a76fb51..a10e7be60e65 100644 --- a/libcpp/uname2c.h +++ b/libcpp/uname2c.h @@ -16,7 +16,7 @@ . - Copyright (C) 1991-2024 Unicode, Inc. All rights reserved. + Copyright (C) 1991-2025 Unicode, Inc. All rights reserved. Distributed under the Terms of Use in http://www.unicode.org/copyright.html. @@ -52,7 +52,7 @@ use or other dealings in these Data Files or Software without prior written authorization of the copyright holder. */ -static const char uname2c_dict[61913] = +static const char uname2c_dict[62755] = "DIVIDED BY HORIZONTAL BAR AND TOP HALF DIVIDED BY VERTICAL BARUIGHUR KIRGHIZ " "YEH WITH HAMZA ABOVE WITH ALEF MAKSURA LANTED EQUAL ABOVE GREATER-THAN ABOVE " "SLANTED EQUAL WITH EXCLAMATION MARK WITH LEFT RIGHT ARROW ABOVELANTED EQUAL A" @@ -62,3743 +62,3854 @@ static const char uname2c_dict[61913] = "NWARDS EQUILATERAL ARROWHEADLEFTWARDS OF DOWNWARDS TRIANGLE-HEADED ARROWOVER " "KASKAL LAGAB TIMES U OVER LAGAB TIMES URIGHT-LIGHTED UPWARDS EQUILATERAL ARRO" "WHEADUPPER CENTRE TO MIDDLE LEFT TO LOWER CENTREUPPER RIGHT-SHADOWED WHITE RI" -"GHTWARDS ARROWJUSTIFIED LOWER RIGHT QUARTER BLACK CIRCLEJUSTIFIED UPPER RIGHT" -" QUARTER BLACK CIRCLELA USED AS KORANIC STOP SIGN ISOLATED FORMLEFTWARDS OF U" -"PWARDS TRIANGLE-HEADED ARROWLOWER LEFT TO MIDDLE CENTRE TO LOWER RIGHTOWER RI" -"GHT-SHADOWED WHITE RIGHTWARDS ARROW OVER HI TIMES ASH2 KU OVER HI TIMES ASH2A" -"ND RIGHT TRIANGULAR THREE QUARTERS BLOCKINVERSE MEDIUM SHADE AND RIGHT HALF B" -"LOCKJUSTIFIED LOWER LEFT QUARTER BLACK CIRCLEJUSTIFIED UPPER LEFT QUARTER BLA" -"CK CIRCLEULTIPLICATION SIGN WITH CIRCUMFLEX ACCENTDOWNWARDS AND UPWARDS OPEN " -"CIRCLE ARROWSLOW DOUBLE COMMA QUOTATION MARK ORNAMENTVERTICAL BAR AT END OF H" -"ORIZONTAL STROKE-TILTED SHADOWED WHITE RIGHTWARDS ARROWABOVE RIGHTWARDS HARPO" -"ON WITH BARB DOWNASH FROM LEFT MEMBER OF DOUBLE VERTICALNEGATIVE SQUARED LATI" -"N CAPITAL LETTER PWITH OPEN ARM ENDING IN ARROW POINTING -HEADED ARROW WITH T" -"RIANGLE ARROWHEADSABOVE LEFTWARDS HARPOON WITH BARB DOWNAL WITH SUPERSCRIPT A" -"LEF ISOLATED FORMASHED TRIANGLE-HEADED RIGHTWARDS ARROWEH WITH SUPERSCRIPT AL" -"EF ISOLATED FORMEXTENDED ARABIC-INDIC DIGIT FOUR ABOVEEXTENDED ARABIC-INDIC D" -"IGIT FOUR BELOWIANGLE CONTAINING SMALL WHITE TRIANGLERIGHTWARDS ARROW ABOVE L" -"EFTWARDS ARROWURNED SWIRL BIRGA WITH DOUBLE ORNAMENTWARDS AND LEFTWARDS OPEN " -"CIRCLE ARROWS WITH MONITOR IN PORTRAIT ORIENTATIONHORIZONTAL LINE WITH THREE " -"TICK MARKSIOUS FACE WITH SYMBOLS COVERING MOUTHONCAVE-POINTED BLACK RIGHTWARD" -"S ARROWOVER RIGHTWARDS TRIANGLE-HEADED ARROWSMALL LETTER BYELORUSSIAN-UKRAINI" -"AN I AND LOWER HALF INVERSE MEDIUM SHADE WITH HORIZONTAL MIDDLE BLACK STRIPED" -"OUBLE-LINE EQUAL ABOVE GREATER-THANGREATER-THAN ABOVE DOUBLE-LINE EQUALIGHT T" -"ORTOISE SHELL BRACKET ORNAMENTLEFT TORTOISE SHELL BRACKET ORNAMENTOVER LEFTWA" -"RDS TRIANGLE-HEADED ARROWPART BETWEEN MIDDLE AND RING FINGERSSINGLE COMMA QUO" -"TATION MARK ORNAMENTSMALL ARABIC LETTER TAH AND TWO DOTSTURNED COMMA QUOTATIO" -"N MARK ORNAMENTZENGE CONTAINING BLACK SMALL LOZENGE CONTAINING BLACK VERY SMA" -"LL SQUAREBESIDE AND JOINED WITH INTERSECTIONBOTTOM-LIGHTED RIGHTWARDS ARROWHE" -"ADGVEDIC KASHMIRI INDEPENDENT SVARITAND UPPER AND LOWER ONE EIGHTH BLOCKORNER" -" ARROWS CIRCLING ANTICLOCKWISEOUNDED HIGH STOP WITH FILLED CENTRER LOWER RIGH" -"T CURLY BRACKET SECTIONRIGHT-POINTING ANGLE QUOTATION MARKTWO HORIZONTAL STRO" -"KES TO THE RIGHTVERTICAL LINE WITH THREE TICK MARKS TWO DOTS OVER ONE DOT PUN" -"CTUATIONBLACK LEFT-POINTING SMALL TRIANGLEDOWNWARDS ARROW WITH TIP LEFTWARDSI" -"GHUR KAZAKH KIRGHIZ ALEF MAKSURA MODIFIER LETTER LABIALIZATION MARKOVER IGI S" -"HIR OVER SHIR UD OVER UDOVER TAB NI OVER NI DISH OVER DISHPPROXIMATELY NOR AC" -"TUALLY EQUAL TOR LOWER LEFT CURLY BRACKET SECTIONTEARDROP-SPOKED PROPELLER AS" -"TERISKUPPER BODY TILTING FROM HIP JOINTSALL BUT UPPER LEFT QUADRANT BLACKDIRE" -"CT PRODUCT WITH BOTTOM CLOSEDDOUBLE-LINE EQUAL ABOVE LESS-THANDOWNWARDS HARPO" -"ON WITH BARB RIGHTEFT-POINTING ANGLE QUOTATION MARKLESS-THAN ABOVE DOUBLE-LIN" -"E EQUALLLAR SIGN WITH OVERLAID BACKSLASHMEDIUM SHADE AND LOWER HALF BLOCKRAIS" -"ING BOTH HANDS IN CELEBRATIONTROFLEX CLICK WITH RETROFLEX HOOKTRONG CENTRALIZ" -"ATION STROKE BELOWTUG2 OVER TUG2 TUG2 OVER TUG2 PAPTWO DOTS ABOVE AND TWO DOT" -"S BELOWWARDS HARPOON WITH BARB DOWNWARDS-POINTING ANGLE BRACKET ORNAMENTAND M" -"IDDLE RIGHT TO LOWER CENTREATHARVAVEDIC INDEPENDENT SVARITAETALLED BLACK AND " -"WHITE FLORETTEHAND WITH MIDDLE FINGER EXTENDEDNORMAL FACTOR SEMIDIRECT PRODUC" -"TRIANGLE-HEADED OPEN CIRCLE ARROWRIGHT SEMICIRCLE WITH THREE DOTSRONT-TILTED " -"SHADOWED WHITE ARROWSEMICIRCULAR ANTICLOCKWISE ARROWVED STEM PARAGRAPH SIGN O" -"RNAMENT CROSSING ASH OVER ASH OVER ASHACK-TILTED SHADOWED WHITE ARROWAISED HA" -"ND WITH FINGERS SPLAYEDAND MIDDLE LEFT TO LOWER CENTREETALLED OUTLINED BLACK " -"FLORETTEIN WHITE CIRCLE IN BLACK SQUARELEFTWARDS EQUILATERAL ARROWHEADONE HUN" -"DRED THIRTY-FIVE DEGREESRIGHTWARDS HARPOON WITH BARB UPRING OVER TWO RINGS PU" -"NCTUATIONRINGS OVER ONE RING PUNCTUATIONTNAMESE ALTERNATE READING MARK UPWARD" -"S HARPOON WITH BARB RIGHT CONTAINING BLACK SMALL SQUARE-HIRAGANA PROLONGED SO" -"UND MARKAGGRAVATED INDEPENDENT SVARITAAND JOINED BY DASH WITH SUBSETDOT BELOW" -" AND THREE DOTS ABOVEDOWNWARDS AND RIGHTWARDS ARROWEART EXCLAMATION MARK ORNA" -"MENTEFT SEMICIRCLE WITH THREE DOTSGHT FOUR POINTED PINWHEEL STARGREATER-THAN " -"ABOVE EQUALS SIGNHIGH-REVERSED-9 QUOTATION MARKHT CENTRALIZATION STROKE BELOW" -"INDEX THUMB CURVE THUMB INSIDEMAKSURA WITH SUPERSCRIPT ALEF MINTON RACQUET AN" -"D SHUTTLECOCKMODIFIER LETTER LEFT HALF RINGON WITH RIGHTWARDS ARROW ABOVEOPEN" -" CENTRE EIGHT POINTED STARQAF WITH LAM WITH ALEF MAKSURARECTANGULAR CHECKER B" -"OARD FORMSAD WITH LAM WITH ALEF MAKSURA DOWN INDEX THUMB HOOK MIDDLE OVER RIG" -"HTWARDS ARROW TO BAR WITH REVERSED NEGATION SLASHCKED FACE WITH EXPLODING HEA" -"DCONTAINING BLACK SMALL CIRCLEDOT OVER TWO DOTS PUNCTUATIONDOWN HEAVY AND RIG" -"HT UP LIGHTDOWN MIDDLE THUMB INDEX CROSSEFTWARDS HARPOON WITH BARB UPEVERSED " -"LUNATE EPSILON SYMBOLEXTENDED ARABIC-INDIC DIGIT TLIGHT FOUR POINTED BLACK CU" -"SPNS-SERIF INTERROBANG ORNAMENTOMBINING ANUSVARA ABOVE RIGHTONAL INDICATOR SY" -"MBOL LETTER PUNCTUATION CHINOOK FULL STOPSEMICIRCULAR PATH AROUND POLESUPERSC" -"RIPT ALEF INITIAL FORMUP HEAVY AND RIGHT DOWN LIGHTWITH RIGHTWARDS ARROW AT L" -"EFTACE DIRECTION POSITION NOSE ASTERISKS ALIGNED VERTICALLYBESIDE AND JOINED " -"WITH UNIONDOUBLE ANUSVARA ANTARGOMUKHADOWN HEAVY AND LEFT UP LIGHTEDGE-TAILED" -" RIGHTWARDS ARROWEFT ARC GREATER-THAN BRACKETFTING POINT RIGHTWARDS ARROWHADE" -"D WHITE RIGHTWARDS ARROWHREE HUNDRED FIFTEEN DEGREESIBE SYLLABLE BOUNDARY MAR" -"KERISMILLAH AR-RAHMAN AR-RAHEEMLEFTWARDS OF DOWNWARDS ARROWLIQUID MEASURE FIR" -"ST SUBUNITMIDDLE CENTRE TO UPPER RIGHTMIDDLE RING LITTLE CONJOINEDMONOGRAMMOS" -" TESSERA DODEKATAOUND-TIPPED RIGHTWARDS ARROWRECTANGULAR PATH AROUND POLESALT" -"IRE WITH ROUNDED CORNERST LITTER IN ITS PLACE SYMBOLU ALAYHI WAAALIHEE WA-SAL" -"LAMUP HEAVY AND LEFT DOWN LIGHTUPPER CENTRE TO MIDDLE RIGHTUPWARDS AND RIGHTW" -"ARDS ARROW AND LEFT SEMICIRCLE ARROWS BARREE WITH TWO DOTS BELOW DIVIDED BY H" -"ORIZONTAL RULE-FEATHERED RIGHTWARDS ARROWAND UPPER HALF WHITE CIRCLEBETWEEN T" -"WO HORIZONTAL BARSBRDA RNYING YIG MGO MDUN MABRDA RNYING YIG MGO SGAB MACIRCL" -"E WITH NORTHWEST ARROWCONTINUOUS UNDERLINE SYMBOLDOUBLE PRIME QUOTATION MARKE" -"AVY WHITE RIGHTWARDS ARROWEMICIRCULAR CLOCKWISE ARROWENTATION FORM FOR VERTIC" -"AL FINGER COVERING CLOSED LIPSFOUR FINGERS CONJOINED BENTHANDED INTERLACED PE" -"NTAGRAMHEAD MARK WITH MOON AND SUNIDE ARC ANTICLOCKWISE ARROWIDE-HEADED RIGHT" -"WARDS ARROWIMPERFECTUM CUM PROLATIONE KATHAKA INDEPENDENT SVARITALARGE EQUILA" -"TERAL ARROWHEADLESS-THAN ABOVE EQUALS SIGNLIGHT CENTRALIZATION STROKELOWER MI" -"DDLE LEFT TO LOWER LOWER TONAL RANGE INDICATORONE LARGE AND ONE SMALL EYEOUR " -"BALLOON-SPOKED ASTERISKPHARYNGEAL VOICED FRICATIVEPPY PERSON RAISING ONE HAND" -"RIANGULAR ONE QUARTER BLOCKRIGHT ARC LESS-THAN BRACKETRIPLE VERTICAL BAR OPER" -"ATORSTRUMENTAL NOTATION SYMBOL-TALIC LATIN CAPITAL LETTER TWO HUNDRED SEVENTY" -" DEGREESUPPER CENTRE TO LOWER RIGHTUPPER MIDDLE LEFT TO UPPER WALLPLANE SHOUL" -"DER HIP MOVEWO DOTS BELOW AND DOT ABOVEZERO FOR ODD POWERS OF FOUR GAD OVER G" -"AD GAR OVER GAR LESS THAN THE DENOMINATOR NEGATED WITH VERTICAL BAR OR APPROX" -"IMATELY EQUAL TO WITHIN TRIANGLE ARROWHEADALEF MAKSURA ISOLATED FORMAND LEFT " -"HALF WHITE CIRCLEAND MIDDLE FINGERS CROSSEDAND RIGHT ONE EIGHTH BLOCKBLE TENN" -"IS PADDLE AND BALLCAT FACE WITH SMILING EYESCLOCKWISE ARROW WITH MINUSCRIPT L" -"IGATURE ET ORNAMENTDOTTED LUNATE SIGMA SYMBOLDOTTED SUBSTITUTION MARKERDROP-S" -"HADOWED WHITE SQUAREE ONE-WAY LEFT WAY TRAFFICERSTRASS ELLIPTIC FUNCTIONHTORA" -" SKLIRON CHROMA VASISIDEOGRAPHIC ITERATION MARKINDUSTRIAL STANDARD SYMBOLJECT" -" REPLACEMENT CHARACTERLANTED SOUTH ARROW WITH HOLEFTWARDS OF UPWARDS ARROWLIN" -"E FEED SEPARATOR SYMBOLLLALLAHOU ALAYHE WASSALLAMMARRIED PARTNERSHIP SYMBOLME" -"EM WITH HAH WITH TATWEELMODIFIER FITZPATRICK TYPE-OCKED FEMALE AND MALE SIGNO" -"NOMICAL SYMBOL FOR URANUSOORPLANE SHOULDER HIP MOVEORTHOGONAL CROSSHATCH FILL" -"OTATED FLORAL HEART BULLETOUBLE ANGLE QUOTATION MARKRIGHT PARENTHESIS ORNAMEN" -"TRINGS ALIGNED HORIZONTALLYRIPLE DOT PUNCTUATION MARKSSIAN ASTROLOGICAL SYMBO" -"L THREE DOTS ABOVE DOWNWARDSU REVERSED OVER U REVERSEDUNEVEN EYES AND WAVY MO" -"UTHWHITE RIGHT POINTING INDEXWITH LEFTWARDS ARROW ABOVEYAJURVEDIC MIDLINE SVA" -"RITA OVER NUN LAGAR TIMES SAL WITH CIRCLED ONE OVERLAY WITH DOUBLE GRAVE ACCE" -"NT WITH DOUBLE MIDDLE TILDE WITH DOUBLE VERTICAL BARBREVE WITH INVERTED BREVE" -"BUT NOT ACTUALLY EQUAL TOCAT FACE WITH CLOSED EYESCROSSING NORTH EAST ARROWDI" -"AERESIS AND HOOK SYMBOLDOUBLE CANDRABINDU VIRAMADRY MEASURE FIRST SUBUNITELD " -"HOCKEY STICK AND BALLFECTIVENESS OR DISTORTIONFFICULTY AT THE BEGINNINGING ON" -" THE FLOOR LAUGHINGINVERTED EXCLAMATION MARKLEFT PARENTHESIS ORNAMENTLEFTWARD" -"S ARROW WITH HOOKLOW QUILT SQUARE ORNAMENTMBINING CRYPTOGRAMMIC DOTMEDIUM TRI" -"ANGLE ARROWHEADMULTIPLICATION SIGN BELOWNIVERSAL RECYCLING SYMBOLOLD ASSYRIAN" -" WORD DIVIDERONE UNDER EIGHTEEN SYMBOLOUBLE BIRGA WITH ORNAMENTOUTLINED RIGHT" -"WARDS ARROWRANCH BANK IDENTIFICATIONREE-HUNDRED-AND-TWENTIETHRIGHT DIAGONAL H" -"ALF BLACKRIGHT ONE SIXTEENTH BLOCKRIPLE BIRGA WITH ORNAMENTRIST CIRCLE HITTIN" -"G WALL SQUARE CHECKER BOARD FORMSTROKE AND TWO DOTS ABOVETAB OVER TAB GAR OVE" -"R GARTERNION INTEGRAL OPERATORTTED SUBSTITUTION BRACKET OVER TOP SQUARE BRACK" -"ET POINTING BACKHAND INDEXALTERNATE SECTION MARKERAND MALE AND FEMALE SIGNARM" -" CIRCLE HITTING WALL ARROW POINTING DIRECTLY BERKANAN BEORC BJARKAN BBLACK LE" -"NTICULAR BRACKETBLIC ADDRESS LOUDSPEAKERBUSINESS SUIT LEVITATINGCOMPATIBILITY" -" IDEOGRAPH-CONSECUTIVE EQUALS SIGNSCULINE ORDINAL INDICATORDESCENDING MUSICAL" -" NOTESDIAGONAL CROSSHATCH FILLDOUBLE HORIZONTAL STROKEDOWNSCALING FACTOR KIIZ" -"HE PLUS A PLUS SU PLUS NAEASTERN PWO KAREN DIGIT EQUAL TO OR GREATER-THANEYES" -" AND HAND OVER MOUTHFINGER AND THUMB CROSSEDGLOTTAL STOP WITH STROKEGREATER-T" -"HAN OR EQUAL TOHEAVY BLACK HEART BULLETIGATURE OPEN ET ORNAMENTING FACE WITH " -"OPEN MOUTHINTERSECTION WITH SERIFSISOSCELES RIGHT TRIANGLELARGE TRIANGLE ARRO" -"WHEADLEFT DIAGONAL HALF BLACKLEFT ONE SIXTEENTH BLOCKLICATION PROGRAM COMMAND" -"LINE HORIZONTAL ELLIPSISLY-RECYCLED PAPER SYMBOLMALL CIRCLE TO THE RIGHTMALL " -"LEFT SQUARE BRACKETMTAVRULI CAPITAL LETTER ONE-HUNDRED-AND-SIXTIETHORIZONTAL " -"BAR WITH NOTCHOTTOM SHADED WHITE ARROWOTTOM-SHADED WHITE ARROWPERSCRIPT ALEF " -"MOKHASSASPOINTING DOWNWARDS ABOVEREVERSED NINE-LIKE BHALERIGHTWARDS THEN CURV" -"ING SINGLE-LINE NOT EQUAL TOSTROKE THROUGH DESCENDERSYLLABLE REPETITION MARKT" -" BLACK RIGHTWARDS ARROWTEARDROP-SPOKED ASTERISKTED INTERPOLATION MARKERUPRIGH" -"T RECTANGULAR ZEROUPWARD POINTING TRIANGLEVOICED LARYNGEAL SPIRANTWELVE POINT" -"ED BLACK STARWITH CANCELLATION STROKEWITH UPWARDS ARROW ABOVEWO DOTS VERTICAL" -"LY ABOVEWO DOTS VERTICALLY BELOW CAKE WITH SWIRL DESIGN HUNDRED TWENTY-EIGHTH" -" POINTING AT THE VIEWER ROTATED NINETY DEGREES WITH HALF-CIRCLE BELOWALEF MA" -"KSURA FINAL FORMALGAMATION OR COPRODUCTAND WOMAN HOLDING HANDSANG DEPARTING T" -"ONE MARKARABIC LETTER TAH ABOVEARTY HORN AND PARTY HATASCENDING MUSICAL NOTES" -"ATTACHING VERTICAL OMETAVOURING DELICIOUS FOODBARBED RIGHTWARDS ARROWCIRCUMFL" -"EX ACCENT ABOVECLUSTER-INITIAL LETTER CURRENT SYMBOL FORM TWODOT BELOW AND DO" -"T ABOVEDOWNWARDS THEN CURVING ESS OUTLINED WHITE STARFACING SNAKE HEAD WITH G" -"REEK SMALL LETTER IOTAHANKED RIGHTWARDS ARROWHREE POINTED BLACK STARHT TRIFOL" -"IATE SNOWFLAKEIDE ARC CLOCKWISE ARROWIGHT-SHADED WHITE ARROWININE ORDINAL IND" -"ICATORISTED RIGHTWARDS ARROWSIVE FINGERS SPREAD OPENLEFT-SHADED WHITE ARROWLO" -"WER ONE QUARTER BLOCKLSCHREIBER PAUSE SYMBOLMITIAN CONJUGATE MATRIXORAH WITH " -"NINE BRANCHESORIGINAL OF OR EQUAL TOORIZONTAL RULER SEGMENTOVER RIGHTWARDS HA" -"RPOONOVERLAPPING LOGICAL ANDP WITH EXCLAMATION MARKPA OVER PA GAR OVER GARPUN" -"CTUATION END OF TEXTRAISED OMISSION BRACKETREE VARIATION SELECTOR RIGHT DIAGO" -"NAL ELLIPSISRIGHT HORIZONTAL SECANTRIGHT ONE QUARTER BLOCKRIGHT-POINTING TRIA" -"NGLERTOISE SHELL BRACKETED SHAPE WITH A DOT INSIDESING DIAGONAL CROSSING SOLI" -"DUS BINARY RELATIONUBLE VERTICAL BAR BELOWUP SPREAD THUMB FORWARDUPPER ONE QU" -"ARTER BLOCKUPWARDS THEN NORTH WESTVERTICAL BISECTING LINEWESTERN PWO KAREN TO" -"NE-WHITE FOUR POINTED CUSPWO-WAY LEFT WAY TRAFFICZANTINE MUSICAL SYMBOL OVER" -" STAMPED ENVELOPE RIGHT ARROWHEAD ABOVE SYMBOL FOR LIGHTHOUSE WITH CIRCUMFLEX" -" ABOVE WITH DECORATIVE COVER WITH SINGLE ZAPYATAYA WITH THREE DOTS ABOVE-ROTA" -"TED DIVISION SIGNACKSLANTED SOUTH ARROWARMENIAN ETERNITY SIGNBAR ABOVE INTERS" -"ECTIONCJK UNIFIED IDEOGRAPH-CONSONANT MODIFIER BARCONSONANT SIGN MEDIAL CURLY" -" BRACKET ORNAMENTDOMAIN ANTIRESTRICTIONDOUBLE SOLIDUS OVERLAYDOUBLE VERTICAL " -"STROKEDOUBLE-LINED HEAD MARKDOWN-POINTING TRIANGLEDOWNWARDS ZIGZAG ARROWDRESS" -"ED TO THE SUBJECTEAST-POINTING AIRPLANEGREATER-THAN DIAERESISHEXIFORM LONG AN" -"USVARAHORT HORIZONTAL STROKEI YFESIS TETARTIMORIONIGEL LONG-BRANCH-SOL SIN DE" -"PARTING TONE MARKINDIRECT QUESTION MARKING HEAD IN SILHOUETTEINVERTED SMALL V" -" ABOVEINVERTED SMALL V BELOWKEEPING STILL MOUNTAINLATIN CAPITAL LETTER SLE BE" -"SIDE VERTICAL BARLEFT ONE QUARTER BLOCKLEFT TRIANGLE OPERATORLEFT-POINTING TR" -"IANGLELONG HORIZONTAL STROKELOW PARAPHRASE BRACKETMNYAM YIG GI MGO RGYANND RE" -"CORDING COPYRIGHTNOT INCLUDING THE POLEOVER LEFTWARDS HARPOONOVER NU11 BUR OV" -"ER BUROVER SHIR BUR OVER BURPERSET OF NOR EQUAL TOPOINTING UPWARDS BELOWPRECE" -"DED BY APOSTROPHEPUNCTUATION KUNDDALIYAQUESTION MARK ORNAMENTREASE FONT SIZE " -"SYMBOLRECTILINEAR BLACK STARREE-CIRCLE ALTERNATE IRIGHT-POINTING FLEURONROUND" -" A POINT OPERATORRROW WITH ROUNDED HEADSEMI-VOICED SOUND MARKSHORT RIGHTWARDS" -" ARROWSHORT VERTICAL STROKESSYMPTOTICALLY EQUAL TOTRIPLE DASH HORIZONTALTRIPL" -"E RIGHT TURNSTILETRIPLE VERTICAL STROKEUBSCRIPT SMALL LETTER UPPER ONE EIGHTH" -" BLOCKUPPER RIGHT AND LOWER USTOMER ACCOUNT NUMBERWASALLAM ISOLATED FORMWITH " -"HORIZONTAL STROKEWITH JEEM INITIAL FORMWITH VOICED SOUND MARKYIAKENG PUACHUE " -"HMONG AND SLANTED PARALLEL WITH SHORT RIGHT LEG WITH VERTICAL STROKE-ROUND N" -"OTEHEAD DOWN -SHAPED BAG DELIMITERABOVE SHORT DOWN TACKACUTE AND HOOK SYMBOLA" -"KIA TELOUS ICHIMATOSALLING DIAGONAL SLASHAND VOWEL LENGTH MARKARD SHELL FLOPP" -"Y DISKARKENING OF THE LIGHTARYSTIAN FIVE HUNDREDBESIDE RIGHT TRIANGLEBOTTOM A" -"ND LOWER LEFTBOTTOM U-SHAPED ARROWBUT NOT EQUIVALENT TOCROSSE STICK AND BALLC" -"RUCIFORM NUMBER FOURCTOR OR CROSS PRODUCTDELIMITER TSHEG BSTARDIGRAMMOS EX DO" -"DEKATADOUBLE LEFT TURNSTILEDOWN HORIZONTAL HEAVYDOWN HORIZONTAL LIGHTDOWNWARD" -"S ARROW ABOVEEFT HORIZONTAL SECANTEFT OPEN BOX OPERATOREIGHT SPOKED ASTERISKE" -"LATIONAL COMPOSITIONEQUAL TO OR LESS-THANER RIGHT CORNER ANGLEFINAL CONSONANT" -" SIGN FLATTENED PARENTHESISGHT OPEN BOX OPERATORGRAMMOS OKTO DODEKATAGRUENT W" -"ITH DOT ABOVEHALF TRIANGULAR COLONHAND INTERIOR PRODUCTHOCKEY STICK AND PUCKH" -"ORIZONTAL REFLECTIONHORIZONTAL TABULATIONHOUSAND MILLIONS SIGNINTERSECTING LO" -"GICAL INTERSECTION OPERATORINVERTED BRIDGE BELOWINVERTED GLOTTAL STOPJUSTIFIE" -"D LOWER HALF JUSTIFIED RIGHT HALF JUSTIFIED UPPER HALF LATTENED OPEN A ABOVEL" -"ESS-THAN OR EQUAL TOLETTER SMALL CAPITAL MALE WITH STROKE SIGNMIDDLE RING LIT" -"TLE ONMORPHOLOGICAL DIVIDERND TELEPHONE RECEIVEROCAL NOTATION SYMBOL-OHAMMAD " -"ISOLATED FORMOP SHADED WHITE ARROWOPPOSING AN PLUS NAGAPAP PLUS PAP PLUS LU3R" -"ATING SYSTEM COMMANDRELICT HOUSE BUILDINGREVERSED FEATHER MARKRIGHT QUARTER S" -"ECTIONRISING DIAGONAL SLASHSH AMPERSAND ORNAMENTSHORT LEFTWARDS ARROWSIDE TO " -"SIDE SCISSORSTEEN POINTED ASTERISKTHICK LETTER SELECTORTILDE OPERATOR ABOVE T" -"OUCHING INSIDE MOUTHTRIANGULAR HALF BLOCKUPPER QUARTER SECTIONVERTICAL LINE O" -"VERLAYVERY HEAVY BARB ARROWVOICED ITERATION MARKWITH INVERTED V ABOVEWO-CIRCL" -"E ALTERNATE IWO-CIRCLE NUKTA ABOVEXTRA SHORT VOWEL MARKYIG MGO TSHEG SHAD MA " -"ABOVE LEFT TRIANGLE AND DIAGONAL STROKE BEGIN LOGOGRAM MARK OVER LAGAR GUNU S" -"HE OVER TUR ZA OVER ZA WITH HORIZONTAL BAR WITH INVERTED INPUT79 OVER LAK-079" -" GUNUA- SHOG GI MGO RGYANAISED UPPER LEFT ARCAND NORTH EAST ARROWAND NORTH WE" -"ST ARROWAND SOUTH EAST ARROWAND SOUTH WEST ARROWANGE ANTIRESTRICTIONARXIS KAI" -" FTHORA VOUBETWEEN PALM FACINGSBSET OF NOR EQUAL TOCENTRE VERTICAL LINECHARAC" -"TER INTRODUCERCHEMICAL SYMBOL FOR CONSONANT SIGN HAARUCRESCENT MOON SYMBOLCUR" -"RENCY SYMBOL RIELCURVED ANGLE BRACKETDOTLESS HEAD OF KHAHDOUBLE ANGLE BRACKET" -"DOUBLE DOT TONE MARKDOWN ARROWHEAD BELOWE CONSONANT MODIFIERE POINTED WHITE S" -"TAREMESTVENNY ZADERZHKAENARMONIOS ANTIFONIAEVERSED ROTATED RANAFINAL CONSONAN" -"T MARKFIVE SPOKED ASTERISKFORMS LIGHT VERTICALFOUR RAISED KNUCKLESGHTWARDS AR" -"ROW BELOWGRA GCAN -CHAR RTAGSHALF CIRCLE WITH DOTHAR2 TIMES GAL PLUS HIGH RAT" -"HA OR LOW PAHIGH TONE APOSTROPHEHREE-DOT NUKTA ABOVEIMAGE OF OR EQUAL TOINDEX" -" RING LITTLE ONINING OBLIQUE STROKEINSIDE MOUTH RELAXEDINVERSE WHITE CIRCLEIN" -"VERTED CANDRABINDUIRCLES HITTING WALL JUDEO-SPANISH VARIKAJUSTIFIED LEFT HALF" -" KHAMTI REDUPLICATIONL FUNCTIONAL SYMBOL LAILING ROBOT FRAME-LATALIZED HOOK B" -"ELOWLE WITH POPPING CORKLEFT AND LOWER RIGHTLEFT-TO-RIGHT SECANTMULTIPLE PUNC" -"TUATIONNIS RACQUET AND BALLONCAVE-SIDED DIAMONDONE MARK SGAW KAREN OTLESS J W" -"ITH STROKEOVER LEFTWARDS ARROWOWER QUARTER SECTIONPLUS GISH TIMES TAK4POTABLE" -" WATER SYMBOLREAN STANDARD SYMBOLREVERSED ONE HUNDREDRIGHT ANGLE WITH DOTRIGH" -"T QUADRANT BLACKRIGHT U-SHAPED ARROWRUMAI PALAUNG TONE-5SCRIPTION CHARACTER S" -"EPARATOR KEY SYMBOLSEPARATOR MIDDLE DOTSIDEWAYS NOON GHUNNASTAR WITH MIDDLE D" -"OTTHROUGH SMALL CIRCLETISTRY SYMBOL LIGHT TRANSPOSITION MARKERUBHAANAHU WA TA" -"AALAAUP-POINTING AIRPLANEUP-POINTING TRIANGLEVAL WITH OVAL INSIDEWARE-FUNCTIO" -"N SYMBOLWET CULTIVATION SIGNWITH FOUR DOTS ABOVEWITH SOROCHYA NOZHKAWORD REPE" -"TITION MARKYIG MGO PHUR SHAD MAYRENAIC TWO DRACHMAS AND PROSGEGRAMMENI AND RE" -"TROFLEX HOOK FLUTTERING IN WIND IN A RECTANGLE BOX KASKAL U GUNU DISH LOVE YO" -"U HAND SIGN WITH STRIKETHROUGH WITH VERTICAL TAILA END LOGOGRAM MARKAHU ALAYH" -"I WA-AALIHALTERNATE LAKH MARKANS-SERIF CAPITAL LANSPOSITION BRACKETARABIC FOR" -"M SHAPINGARENTHESIS NOTEHEADARTIAL DIFFERENTIALATED TELLER MACHINEBETWEEN MID" -"DLE RINGBINING ALEF OVERLAYC DIGRAPH WITH CURLCIRCLED SANS-SERIF CIRCLED WHIT" -"E ARROWD CIRCUMFLEX ACCENTDENOMINATOR SIXTEENDOWN AND HORIZONTALDOWN POINTING" -" INDEXEFT QUARTER SECTIONET WITH WHITE CROSSEVEN POWERS OF FOURFIVE FINGERS S" -"PREADFLOORPLANE TWISTINGFT-POINTING FLEURONGAPPED CIRCLE ARROWGIBBOUS MOON SY" -"MBOLHAND COVERING MOUTHHEAD-SHAPED POINTERHORT STROKE OVERLAYHURISAZ THURS TH" -"ORNIGATURE AYIN-DALETHILDING CONSTRUCTIONIMIDIA SEXTULA SIGNIN CHEN SPUNGS SH" -"ADING SHIRT WITH SASHINGLE DOT TONE MARKINSIDE CIRCLE BELOWISPUTED END OF AYA" -"HITED LIABILITY SIGNKULL AND CROSSBONESLEADING MCHAN RTAGSLEFT POINTING INDEX" -"LEFT U-SHAPED ARROWLF MADDA OVER MADDALUB-SPOKED ASTERISKMOVES AGAINST CHEEKM" -"SHELL MOBILE PHONENAXIAN FIVE HUNDREDNDRED POINTS SYMBOLNE HUNDRED TWENTY PNE" -"TWORKED COMPUTERSNOGRAPHIC FULL STOPNORTH ARROW WITH HOOP SEMICIRCLE ARROWOTA" -"TED ARDHAVISARGAOVER E NUN OVER NUNOW-9 QUOTATION MARKPARAGRAPH SEPARATORPREF" -"IXED NASAL SIGNQUADRUPLE CRESCENTSQUESTION MARK ABOVERAILING MCHAN RTAGSRATUM" -" SUPER STRATUMREE-QUARTER CIRCLE RIGHT MIDDLE STROKERIGHT TO LOWER LEFTRROW N" -"O-BREAK SPACERY CULTIVATION SIGNSEQUENCE INTRODUCERSEVEN EIGHTHS BLOCKSH PLUS" -" HU PLUS ASHSLANTED NORTH ARROWSTRAIGHT THUMB BENTSTRATIAN FIFTY MNASSYMBOL F" -"OR BEGINNERTART OF RUB EL HIZBTHANG LONG ANUSVARATIGHTLY-CLOSED EYESTO LOWER " -"RIGHT FILLTRANNO MALO POVYSHETURNED PADA PISELEHTURNED SECTION MARKTWENTY-FIV" -"E DEGREESUBLE DOT WITHIN DOTUP HORIZONTAL HEAVYUP HORIZONTAL LIGHTUP-POINTING" -" CHEVRONURRENCY SYMBOL BAHTVARIANT FORM ILIMMUVARIANT WITH SQUAREVARIATION IN" -"DICATORVASTNESS OR WASTINGVERSAL INTERSECTIONVERSE FINAL BARLINEVERTICAL TABU" -"LATIONWITH YEH FINAL FORMWOMEN HOLDING HANDS AND NO DOTS ABOVE AND SMASH PROD" -"UCT AND YPOGEGRAMMENI FOR SIMALUNGUN SA NOT LITTER SYMBOL OVER INVERTED SHU S" -"PREAD THUMB SIDE THUMB INDEX THUMB WITH CIRCLE ABOVE WITH CIRCLE BELOW WITH C" -"ROSSED-TAIL WITH FLOWING SAND WITH KAVYKA ABOVEABBREVIATION MARK AND LOW RIGH" -"T RINGARROW SHAFT WIDTH ASTED SWEET POTATOASTROLOGICAL SIGN ATERRESTRIAL ALIE" -"NATIN SMALL LETTER BAARAKA WA-TAAALAABASELINE ROUND DOTBOTTOM RIGHT KASRACANT" -"ILLATION SIGN CONTINUING OVERLAPCOPPER ANTIMONIATECTLY EQUIVALENT TOCUP WITHO" -"UT HANDLEDOUBLE PUNCTUATIONDOWN-OUTPUT SYMBOLEAST POINTING LEAFENTERING TONE " -"MARKENTY-TWO POINT TWOEPIGRAPHIC LETTER ERTICAL BAR VIRAMAEVENTEEN FULL STOPE" -"VERSED CHELYUSTKAFIVE EIGHTHS BLOCKFORKED PARAGRAPHOSFORTY-FIVE DEGREESGATIVE" -" ACKNOWLEDGEGGLY VERTICAL LINEGISH CROSSING GISHHAIS LUS NTOG NTOGHEAVY WHITE" -" SQUAREHILOSOPHERS SULFURHOLDING BACK TEARSHORIZONTALLY BELOWHOUSANDS SEPARAT" -"ORHUNDREDS UNIT MARKIGATURE ZAYIN-YODHIGSAW PUZZLE PIECEIN POSSESSION SIGNIND" -"EPENDENT VOWEL IRROR HORIZONTALLYITAN SMALL SCRIPT IX SPOKED ASTERISKJEEM ISO" -"LATED FORMKANTAJA NAASIKYAYAKBAR ISOLATED FORMKOREAN CHARACTER OLEFT MIDDLE S" -"TROKELEFT-STEM TONE BARLOSED CIRCLE ARROWLOWER MIDDLE RIGHTMATHEMATICAL SPACE" -"ND UPPER RIGHT ARCNINETEEN FULL STOPNISH VERSE DIVIDERNORMAL SUBGROUP OFNYET " -"THYOOM TA-ROLNYOOGA NAAKSIKYAYAORK ON THE DECAYEDOTLESS DALATH RISHOU ALAYHE " -"WASALLAMOUCHTONE TELEPHONEOW TONE APOSTROPHEPACING CANDRABINDUPERFIXED LETTER" -" RAPUNCTUATION BINDU QUARTER NOTE STEM REDUPLICATION MARKRIST CIRCLE FRONT RY" -"UKOVAYA SVETLAYAS INSIDE AND ABOVES PRESSED TOGETHERSEPTUPLE CRESCENTSSET OVE" -"R BUILDINGSSHAN REDUPLICATIONSHING SWEAT SYMBOLSINGLE PUNCTUATIONSMALL CIRCLE" -" ABOVESOUL ISOLATED FORMSYMMETRIC SWAPPINGTILTING FROM WAISTTO LOWER LEFT FIL" -"LTOP U-SHAPED ARROWTROFLEX HOOK BELOWTYPE A ELECTRONICSU-SHAPED ORNAMENTSUM W" -"ITH DRUMSTICKSUP ARROWHEAD BELOWUPPER MIDDLE RIGHTUTLINED BLACK STARVARIANT F" -"ORM LIMMUVERY SMALL DIAMONDWEST POINTING LEAFWHITE VERTICAL BARWITH JUSTIFICA" -"TIONWITH STROKE SYMBOLYLLABLE LENGTHENER ALTERNATION MARK AND PALATAL HOOK GR" -"AVEYARD SYMBOL LAGAB TIMES ASH2 LAGAR OVER LAGAR OVER ZU PLUS SAR PLUS SHA3 P" -"LUS A TO BLACK DIAMOND WITH BULLET NOSE WITH SOUND WAVES WITH TILDE ABOVE-GAA" -"HLAA TTUDDAAG-HEIGHT LEFT HOOK0 WHEELED CHARIOTA PLUS HA PLUS DAABBREVIATION " -"SIGNAEUM ONE PLETHRONALTERNATE NUMBER AMPHYLIAN DIGAMMAAND BLACK SQUARESAPLI " -"DYO DODEKATAATHERING TOGETHERAUKAZ LAGU LOGR LBE WITH MERIDIANSBERBER ACADEMY" -" YABOTTOM HALF BLACKBRACKET EXTENSIONBRIGHTNESS SYMBOLBUT RELIEVED FACECAL SY" -"MBOL BOTTOMCANCELLATION MARKCANDRABINDU ABOVECIRCLES WITH DOTSCLOSED LITTLE Y" -"USCOMBINING NUMBER CONSONANT SIGN PACONTINUATION SIGNCONTOURED OUTLINECROSS P" -"UNCTUATIONCTION APPLICATIONDELPHIC FIVE MNASDENTAL PERCUSSIVEEAR SCREEN SYMBO" -"LEMICOLON UNDERBARFACING BABY CHICKFINGER-POST ARROWFLICK ALTERNATINGFRACTION" -" ONE HALFFROM SMALL CIRCLEGENERIC MATERIALSGREATER-THAN NOR GREATER-THAN SIGN" -"HAH ISOLATED FORMHEART-SHAPED EYESHIRTEEN FULL STOPHORIZONTAL DOUBLEHORIZONTA" -"L SINGLEIASTRE MARK ABOVEICTED LEFT ENTRY-IDEOGRAPHIC COMMAIGHTEEN FULL STOPI" -"NEAR ANNOTATION ING POLE AND FISHINITIAL LETTER RAINVERTED MCHU CANITE PART I" -"NTEGRALKE BOTTLE AND CUPKHAH INITIAL FORMLAGOLITIC LETTER LAH ISOLATED FORMLA" -"PPING LESS-THANLD PERMIC LETTER LHOUETTE OF JAPANLIAN HIEROGLYPH AMALL RED TR" -"IANGLEMALL WHITE CIRCLEMANENT PAPER SIGNMEDIUM BARB ARROWMEDIUM SHADE FORMMEE" -"M INITIAL FORMMILITARY AIRPLANENASALIZATION MARKNAUDIZ NYD NAUD NND UPPER LEF" -"T ARCNE EYEBROW RAISEDNEGATIVE CIRCLED NFORMATION SOURCENG STROKE OVERLAYONE " -"EIGHTH BLOCK-OP AND UPPER LEFTOPEN-HEADED ARROWOURTEEN FULL STOPOWER NUMERAL " -"SIGNPINWHEEL ASTERISKPRECEDING SOLIDUSPRIZNAK MODIFIER PUNCTUATION SIGN QUAT " -"REVERSED ESHREATIONAL VEHICLERIATION SELECTOR-RIGHT HALF CIRCLERYBLION BASE S" -"IGNS REVOLVING LIGHTSERVER EYE SYMBOLSIGN O WITH CROSSSQUARED TIMES KURSTRAIG" -"HT MOVEMENTTAN ISOLATED FORMTARTING FROM SIGNTEN THOUSAND SIGNTERSYLLABIC TSH" -"EGTHREE SOUND WAVESTIAL ARTS UNIFORMTONAL RANGE MARK TRIPLE DASH ARROWULAR ME" -"DIUM SHADEUP AND HORIZONTALUP POINTING INDEXURNED COMMA ABOVEURNED DAMMA BELO" -"WVARIANT FORM ASH9VARIANT FORM IMINVARIANT FORM USSUVEE WITH UNDERBARVERAGE W" -"ITH SLASHVOCALIZATION MARKVRE TOURNOIS SIGNWHITE PARENTHESISWHITE SHOGI PIECE" -"WITH NOT EQUAL TOWO VERTICAL DOTS Y ON BLACK SQUAREYEH ISOLATED FORMYPTIAN HI" -"EROGLYPH AND HEAVY RIGHT AND LIGHT RIGHT CAPPED MOUNTAIN INSERTION POINT LIGH" -"T MOON ARTA OR THE IMAGE OF PLUS KAK PLUS A SMALL ROTATIONS TIMES DISH TENU T" -"IMES GAN2 TENU WITH BUNNY EARS WITH DOT INSIDE WITH HEADSTROKEADIAN SYLLABICS" -" AFFRICATION MARKANABAZAR SQUARE ARENTHESES ABOVEB2 TENU PLUS TABBOLD GREEK C" -"ROSSBOTTOM HALF RINGCANDRA ANUNASIKACASIAN ALBANIAN CH WITH UMBRELLACKLE FILL" -" FRAME-CLOSED TENTACLESCOMPRESSED ARROWCONSONANT JOINERCORNER DOWNWARDSCORNER" -" LEFTWARDSCREAMING IN FEARDEWAYS U BRACKETDITORIAL CORONISDOTTED CRESCENTSDOU" -"BLE CRESCENTSDOUBLE DOT ABOVEDOUBLE HEAD MARKDOUBLE TURNSTILEDOUBLE ZAPYATAYA" -"DOWN RIGHT BARB DVUMYA ZAPYATYMIE PLUS GAN2 TENUECIMAL SEPARATOREFORE COMPLET" -"IONEN MILLIONS SIGNEND OF TEXT MARKENTRE WHITE STARENUMERATION SIGNEPSILON UN" -"DERBARERCURY SUBLIMATEEVERSED VISARGA EVERY OTHER TIMEFALLING DIAGONALFFERENC" -"E BETWEENFLOORPLANE SPACEFORWARD-FACING RHIGH SPACING DOTHMATULLAH ALAYHEHOLD" -"ING TOGETHERHYPHENATION MARKIDED GREEK CROSSIFTEEN FULL STOPIGHTH NOTE STEM I" -"MENSIONAL ANGLEINDEPENDENT SHININDEX THUMB SIDEINES CONVERGING IPPER-MOUTH FA" -"CEIRCLE X NOTEHEADISTOS DISC SIGN IVE POINTED STARK PERMITTED HERELD ASSYRIAN" -" ONE LEFT ARROW ABOVELEFT HALF CIRCLELIGHT AND RIGHT LIGHT BARB ARROWLLER COA" -"STER CARLLOW PAN OF FOODLOWER OVER UPPERLTERNATE HASANTAMAGNIFYING GLASSMESTV" -"ENNY KLYUCHMIDDLE AND BELOWMIDDLE AND RIGHTNAL DIGIT SHAPESNION WITH SERIFSNT" -"AIGANA LETTER O-MINOAN SIGN CMOLD TAMIL VIRAMAOLD WHITE CIRCLEORIZONTAL JOINE" -"RPEN CENTRE CROSSPLACEHOLDER MARKPLE MEASURE RESTPOSTPOSITION MENPRECEDING SU" -"BSETPRECHGESANG STEMQ WITH HOOK TAILQUALS SIGN BELOWR PLUS GAN2 TENURAIDO RAD" -" REID RRAYS AND DOTTED RECORD SEPARATORREPETITION MARK-RESH-AYIN-DALETHRESSIO" -"NLESS FACERIGHT DOWN BARB RIGHT HALF BELOWRIGHT HALF BLACKRISING TONE MARKRIZ" -"ONTAL ELLIPSESANS-SERIF ARROWSERIFS AT BOTTOMSHU2 PLUS KASKALSIGN RISING TONE" -"SITION INDICATORSLANTED EQUAL TOSMALL CAPITAL ELSMALL NOON ABOVESTERISK OPERA" -"TORSTICKING OUT FARSTRAIGHT STRETCHSTRING FRETBOARDSTUCK-OUT TONGUETAKANA-HIR" -"AGANA TRIPLE CRESCENTSUBJOINED LETTER UDLY CRYING FACEULDERED OPEN BOXUMBER S" -"IGN ABOVEUP MIDDLE HINGEDUP-OUTPUT SYMBOLUPERSCRIPT ALAPHUPPER OVER LOWERVARI" -"ANT FORM ESHVERY HEAVY SHAFTVIEWING CEREMONYVOWEL LENGTHENERWALLED ENCLOSUREW" -"AVY HAMZA BELOWWITH CENTRED DOTWITH HEARING AIDWITH LEFT UPTURNYATHOS BASE SI" -"GNYIR MKPARAQ MEUN ALTERNATE FORM AND BOTTOM END CLOUD AND RAIN CORNER BRACKE" -"T DEYTEROU ICHOU NEPOSTOYANNAYA OPERATOR WITH OVER MOUNTAINS OVER SIG4 SHU2 " -"PARESTIGMENON PLUS HI PLUS A THROUGH CIRCLE THUMB STRAIGHT TIMES IGI GUNU TO" -"UCHING INDEX WITH DESCENDER WITH DIAERESIS WITH RIGHT LEG-CARRIER LETTER-NO-E" -"VIL MONKEY-PIECE SWIMSUIT2 CHARIOT FRAMEACHES THE LIMITAI LAING DIGIT ALAYHE " -"ASSALLAMALIF LENGTHENERALMOST EQUAL TOAMARITAN SOURCEAMOUNT OF CHECKAND PARAL" -"LEL TOATA LINK ESCAPEATINATE MYSLITEBAGS UNDER EYESBAR ABOVE UNIONBELGTHOR SY" -"MBOLBELOW LONG DASHBENT OVER INDEXBINDING BRACKETBLACK TRIANGLESBLOCK DIAGONA" -"L BREAKING HYPHENBROWS STRAIGHT CAPITAL LETTERSCIRCUIT-OUTPUT CKET CALCULATOR" -"CLOSED BY CURVECORNER WITH DOTDAGESH OR MAPIQDESCENDING TONEDI ALLAHOU ANHUDI" -"ALYTIKA TONOSDIGA AELA-PILLADOING CARTWHEELDOUBLE TRIANGLEDOWN SEQUENTIALDOWN" -"WARDS TRENDE ISOLATED FORME MUSICAL NOTESE OVER INFINITYEFT REPEAT SIGNEH INI" -"TIAL FORMERICAN FOOTBALLESIDE LESS-THANESISTOR SEGMENTESSARON CHRONONETIC VER" -"SE SIGNEXPONENT SYMBOLFIVE-LIKE BHALEFORWARD TILTINGFOUR DOTS WITH FOUR ENCLO" -"SURESFOUR TICK MARKSFRACTION DIGIT FTER COMPLETIONGEMINATION MARKGGLY LINE BE" -"LOWGHT REPEAT SIGNGROUP SEPARATORHAKING PARALLELHALF FILL SPACEHALF VERTEX OF" -" HEH MEDIAL FORMHOOKED INDEX UPHORIZONTAL DASHHORIZONTAL FILLHOUSAND STATERSH" -"REE DOTS BELOWIAMOND UNDERBARIDING ENCLOSUREIGN PALI VIRAMAIMISEOS CHRONOUIMP" -"ERFECTA RESTING SYMBOL FOR INGLE HEAD MARKINUS SIGN BELOWINVERTED CARIK INVER" -"TED LAZY SINVERTED STROKEIRCUMFLEX BELOWITH FINGERNAILSIZED WHEELCHAIRKISIM5 " -"TIMES BIKTOVIK NUMERAL LATION FUNCTIONLD TAMIL SHORT LEFT DOWN BARB LEFT HALF" -" BELOWLEFT HALF BLACKLEFT HAND INDEXLETTER CAPITAL LEVEL TONE MARKLEVEN FULL " -"STOPLIGHT AND LEFT LMOST EQUAL TO LONG HOOK BELOWLONG VOWEL SIGNLOOK OF TRIUM" -"PHLOSED INSULAR GMALAKON CHROMA MARRYING MAIDENMEEM FINAL FORMMIDDLE DIAGONAL" -"MURDA MAHAPRANAN-ARY SUMMATIONNA DOUBLE HELIXNASALIZED TONE-ND OF PARAGRAPHNJ" -"OINING MACRONNO GOOD GESTURENOON FINAL FORMNOON WITH KASRANOT APPROXIMATENVER" -"TED UBADAMAODIFIER DAMAGEDODO SOFT HYPHENOGOGRAM KHAMTI OLIDUS OPERATORON TOP" -" OF MODEMOND PLACE MEDALONJOINED HINGEDONTOUR INTEGRALORIZONTAL COLONORT EQUA" -"LS SIGNOUBLE BACKSLASHOW-FALLING TONEOWER HALF BLACKPEN SQUARED DOTPENSION RA" -"ILWAYPERTHO PEORTH PPLUS SIGN BELOWPRISHTHAMATRA EPUT SYMBOL FOR QUADRUPLE AR" -"ROWQUADRUPLE DASH R WITH FISHHOOKREAMY EYEBROWS RECEPTIVE EARTHRECITATIVE MAR" -"KREVERSE SOLIDUSREVERSED OPEN ERIGHT HALF RINGRIGHT RERENGGANRIGHTWARDS AND R" -"IGHTWARDS TICKRMAN PENNY SIGNRNAMENT STROKE-S ELEVATUS MARKS IN SILHOUETTESAL" -"TER PAHLAVI SHITA PLUS GISHSHORT OVER LONGSIXTEENTH NOTESSSICAL BUILDINGST QU" -"ARTER MOONST SYRIAC CROSSSTANDING KNIGHTSTANDING PERSONSTERESIS SYMBOLSTROKE " -"NOT SIGNTAI LAING TONE-THREE DISH TENUTHROWING A KISSTILDE DIAERESISTIP ON TH" -"E LEFTTOP RIGHT FATHATRIANGULAR MARKTVIMADUR SYMBOLTWO WITH STROKEU PLUS U PL" -"US UUBLE RING BELOWUGMENTATION DOTULTIPLICATION XUMAI PALAUNG FAUR POINTED ST" -"ARUSTER NOTEHEAD VERTICAL SECANTVOWEL SEPARATORVOWEL SHORTENERWALLPLANE SPACE" -"WHITE DOT RIGHTWITH DOWN ARROWWITH RAIN DROPSWO THIRDS BLOCKXTEEN FULL STOPYN" -"CHRONOUS IDLEZ WITH CROSSBARZAIN FINAL FORMZERO WITH SLASH AND DIAERESIS AND " -"SMALL TAH CROSSING ESH2 HASER FOR VAV WITH BACK YER WITH LONG LEG-CURRENCY SI" -"GN1 OVER LAK-081AFETY SCISSORSAI LENGTH MARKALF TREE TRUNKALLAJALALOUHOUAMNUC" -" PII KUUHAND COLD SWEATANGLE OPENING AROUND-PROFILEAU LENGTH MARKBAG MEMBERSH" -"IPBHATTIPROLU AABLADE SCISSORSCENTURIAL SIGNCEPTER OF JOVECERTAINTY SIGNCOLON" -" OPERATORCRAB STEPPING CRIFICIAL WINED-UP NEWSPAPERDASIA PNEUMATADEYTEROS ICH" -"OSDI ALLAAHU ANHDIAGONAL MOUTHDIAGONAL PATH DIO MICROPHONEDIRECTION FLIPDOES " -"NOT EXISTDOUBLE-STRUCK DUN3 GUNU GUNUED SYMBOL FOR EMIVOWEL SIGN END OF SECTI" -"ONENDED MULTIMAPEPENTHETIC YUTERIAL ARAMAIC ERIC INDICATORERTICAL JOINEREXCLA" -"MATION OHEXTENDED BHALEFATHATAN ABOVEFFED FLATBREADFFICE BUILDINGFINAL ANUSVA" -"RAFORWARD INDEX GERED TREMOLO-GHT WITH STARSGUNU TIMES ASHGYPTOLOGICAL AHESIV" -"E BANDAGEHIRD-STAGE HLIHREE-LEGGED TEIGHTWARDS VANEIKHAYA PUTNAYAINFINITY BEL" -"OWING HANDS SIGNINOLOGICAL DOTINSERTION SIGNINVERTED BIRGAINVERTED DAMMAIRCUL" -"AR VIRAMAISED ROUND DOTISSION TICKETSITA PLUS GISH IVE KEY SYMBOLIVE OBOLS SI" -"GNIWAZ TIR TYR TJOINED SQUARESLACE OF SAJDAHLEFTWARDS AND LEFTWARDS TICKLESS-" -"THAN NOR LETTER OVERLAPLEVEN TWELFTHSLIGHTLY SMALL LITTLE SECTIONLOTUS POSITI" -"ONLOWER DIAGONALLOWER TERMINALMEDIUM DIAMONDMENSION ORIGINMID-LEVEL TONEMOTHE" -"TIC ABOVEMRACHNOTIKHAYANORTH ARABIAN NYI ZLA NAA DAOBLIQUE HYPHENOLD RESOLUTI" -"ONONE SOUND WAVEOOTNOTE MARKEROPEN TENTACLESOPPOSING PIRIGORANGE DIAMONDORD S" -"EPARATOR OSITION SYMBOLOT TILDE ABOVEOTHERS CIRCLEDOUR OBOLS SIGNOUSING THUND" -"EROVER GUD LUGALPAO KAREN TONEPARTMENT STOREPEN MARK BELOWPLE WITH HEARTPLETE" -" INFINITYPLITTING APARTPPED MIDDLE UPPROTECTED AREAQUINARIUS SIGNRD PLACE MED" -"ALREATIVE HEAVENREE-LINE STAFFREH FINAL FORMREVERSED-SCHWARIGHT CROSSBARRING " -"MEGAPHONEROSS ON SHIELDSECOND SUBUNITSEL LOCOMOTIVESEPARATOR MARKSHAN MEDIAL " -"WASHESHIG TIMES SHRII PUSHPIKASIDE-DOWN FACESMALL LETTER DSMALL LETTER JSMOKI" -"NG SYMBOLSPEECH BUBBLESSQUIGGLE ARROWSTRONG ISOLATETELPIECE CLOCKTERMINAL MAR" -"K-TETARTOS ICHOSTHAKA ANUDATTATHALAN ETHEL OTHER CHRISTMASTHOUSANDS MARKTHOUS" -"ANDS SIGNTHREE POINTED TIMES OPERATORTIMES SHU TENUTOP HALF BLACKTRANSMIT STA" -"TETRIANGLE CARETTRIANGLE WITH TURKIC LETTER TWELFTH CIRCLETWO DOT LEADERTWO E" -"NCLOSURESTWO WHITE DOTSUAL WHEELCHAIRUBHAYATO MUKHAUND MARK ABOVEUNDER RELATI" -"ONUNION OPERATORUNIT SEPARATORUP RIGHT BARB UPPED INDEX UPUPPER TERMINALUSPEN" -"SION MARKVENIENCE STOREVERTICAL ABOVEVERTICAL COLONVERTICAL HEAVYVERTICAL LIG" -"HTVONIC ASTERISKVRON SNOWFLAKEWITH DOT BELOWWITH FATHATAN WITH LEFT HOOKWORD " -"SEPARATORXO EKFONITIKONYOUTHFUL FOLLYZAH WITH MEEM ZAKAYA LANTERN AND SKI BOO" -"T AND YEN SIGN B BAR SYMBOL BAT AND BALL BZHI MIG CAN CROSSING KA2 DIMINUTION" -"-1 DIRECTIONAL HEADED ARROW OF THE HORNS OPPOSING KUR TIMES KASKAL VARIANT F" -"ORM WITH INK PEN WITH JEGOGAN WITH OVERBAR WITH TEE TOP WITHOUT SNOW-ESASA DO" -"TTED-OFF CALENDAR-OR-PLUS SIGN-PER-EM SPACEACCOMMODATIONALL LOST SIGNAMUHU AL" -"AYNAAAN RUPEE SIGNANNED LEATHERAPPED PRESENTAR WITH QUILLARCHAIC KOPPAARGOSYN" -"THETONARLAUG SYMBOLARRED TRIDENTARROW OVERLAYAUDATE CHRIVIAWELLEMET YAZBACKSL" -"ASH BARBALL AND HOOPBASAN LETTER BOHAIRIC KHEIBOTTOM CORNERBOWING DEEPLYBY DE" -"FINITIONCHRYSANTHEMUMCIRCLE INSIDECITATION MARKCRIPTION TAKECRIPTIONAL PACROS" -"SING GABACROSSING GAN2CROSSING MUSHCULATED LORRYDIAERESIZED UDIC MARK SIGNDOT" -"TED ZLAMA DOUBLE CIRCLEDOUBLE HYPHENDOUBLE MUCAADDOUBLE STROKEDVOECHELNAYA EA" -"VENLY EARTHED PAPERCLIPSEDIC ANUSVARAEELING PERSONEHU FEOH FE FEMPHATIC TONEE" -"R BOARD FILLERTION SYMBOLEUROPE-AFRICAEVERSED DAMMAFICATION CARDFINAL LETTER " -"FINAL SEMKATHFIXED-FORM RAFOREMENTIONEDFROWNING FACEFT ARROWHEAD FULL SURROUN" -"DGAR FRACTION GAW KAREN SHAGIFT ENVELOPEGTER TSHEG MAGYA GRAM SHADH-TYPE SYMB" -"OLHAKASSIAN CHEHAM DIGIT ONEHERICAL ANGLEHIEROGLYPHIC HINESE TONE YHREE TWELF" -"THSI WITH STROKEIDE LOST SIGNIFI ROHINGYA IGHT TWELFTHSILABIAL CLICKILE SEPAR" -"ATORIMAGE BRACKETINTEREST SIGNINVERTED FORKINVERTED TURNIOT SYLLABLE IRCLED I" -"NDEX ISH LIRA SIGNITING THROUGHIVE POINT ONEIVE SLOW SIGNJES SU NGA ROK WORK " -"SYMBOLKAPYEOUNPIEUPL-TYPE SYMBOLLATERAL CLICKLEFT CROSSBARLEGETOS ICHOSLISION" -" SYMBOLLOCATION SIGNLOCK WITH KEYLOOPED VIRAMALOSING SPIRALLVE FULL STOPLVEOL" -"AR CLICKMAILBOX WITH MALL LETTER ZMALO POVYSHE MARKS CHAPTERMASORA CIRCLEMEDI" -"UM SQUAREMELODIC QITSAMESSENIAN TENMICROCOMPUTERMINDER RIBBONMINUS SIMILARMIN" -"US WHITE XMOBILE PHONESMODIFIER MARKMULTIOCULAR ONAP PIZZICATONG TERMINATORNI" -"NE TWELFTHSNING MOVEMENTNP TRANSISTORNTY FULL STOPNUMERATOR ONENUMERIC SIGN O" -"BLIQUE LINE OGOTYPE SIGN OLVING HEARTSOMAN NUMERAL ONAL COMPUTERONG RIGHT LEG" -"ONG-LEGGED DEONGRATULATIONOON NOTEHEAD OPPOSING NAGAOTEHEAD BLACKOURTH SUBUNI" -"TOUT MIDDLE UPPA NJI PIPAEMPAIRED ARROWSPLUS OPERATORPN TRANSISTORPPOSING LUG" -"ALPREPONDERANCEQUARTERS SIGNRACKETS ABOVERANKS CASKET RIGHT HARPOONRIGHT POIN" -"TERRIPLE SVARITARIZONTAL TAILRN PENTATHLONROTATED BIRGARPENTRY PLANERRIAGE RE" -"TURNRTABLE STEREOS KAI APOTHESS KRYZHEM ON S UP TOGETHERSAL PLUS TUG2SAMYOK S" -"ANNYASELECTED AREASHESH PLUS KISIA-AUSTRALIASIGN AVAGRAHASIGN PAMUDPODSILI PN" -"EUMATASMALL LETTERSSSAGE WAITINGSTABLE SYMBOLSTERTIUS SIGNSYNDESMOS NEOTE ORD" -"ER MARKTED HAND SIGNTHIRD SUBUNITTIRTA TUMETESTOP HALF RINGTU WAS-SALAAMU WIT" -"H STROKEUDDISA SIRRAHUE OF LIBERTYUFFLE PRODUCTUPERIMPOSED XUPONDIUS SIGNUPSI" -"LON WITH UPWARDS TRENDURNED W BELOWUSHING UPWARDUSICAL LEIMMAVE-LINE STAFFVEN" -" POINT ONEVERGREEN TREEVERLAY MIDDLEVERTICAL BARSVERTICAL FILLVICE CONTROL VO" -"WEL SIGN PAW RING INSIDEWAVY LOW LINEWAVY OVERLINEWAW-AYIN-RESHWHITE ELLIPSEW" -"ITH ASTERISKWITH INTEGRALWO-LINE STAFFYMBOL TAU RHOYOD YOD PATAHYUUKALEAPINTU" -"ZHOU NUMERAL AND PICTURE AND TOP END CROSSING GU IN TRIANGLE KLYUCHEVAYA LIN" -"E SYMBOL OF ANTIMONY ON PEDESTAL OVER KISIM5 OVER MIDDLE OVER TWO PI SKEWED L" -"EFT WITH DAGESH WITH INDEX WITH UPTURN-DZUD RTAGS -MAIL SYMBOL-SHAPED SIGN-S" -"IMPLIFIED 6 LONG NGGOOAA AS-SALAAMACE INTEGRALACUTE ACCENTAFU LEERAEWAALLPOIN" -"T PENALT PAN SIGNALTERNATING AND CRESCENTAND OPERATORANG KHANG GYAR DIAERESIS" -"ARALLELOGRAMATNAH HAFUKHATTOOED HEADBACK OF HANDBAHIRGOMUKHABEHIND CLOUDBETWE" -"EN LIPSBINING MARK BLOWING FACEBLUE DIAMONDBRATION MODEBRIDGE ABOVEBSCRIPT AL" -"EFBUTTON MOUSEBYSMAL WATERCABBAGE-TREECALENDAR PADCENDING NODECHAIR SYMBOLCIA" -"N LETTER CIRCLED PLUSCIRCLES AND CK-O-LANTERNCLOSED MOUTHCRESCENT BARCROSSING" -" GI4CROSSING KALCROSSING LU2CROSSING NUNDASHED ARROWDE MARK SIGNDENTAL CLICKD" -"HRI LETTER DICTION SIGNDIGRAPH KOTODIGRAPH YORIDOT OPERATORDOUBLE ARCH DOUBLE" -" ARROWDOWN HARPOONDOWN NEUTRALDUG TIMES NIEAGULL BELOWEEPING SMALLEIGHTH NOTE" -"SEMELY HEAVY EMISOFT SIGNENARIUS SIGNENOS CHRONOUERPENDICULARETRETES SIGNEVER" -"ING FACEFALLING DOTSFEMININE DOTFERENCE MARKFLAG ON POSTFOLDED HANDSFORMING A" -"RTSFOUNTAIN PENFT RERENGGANGAW KAREN EUGBY FOOTBALLGEBA KAREN IGREEN DRAGONGR" -"OUND SLIDEGUARDED AREAHAH WITH DALHALF BRACKETHAND FORMAT HASIS SYMBOLHEAD-BA" -"NDAGEHIBITED SIGNHREE FINGERSHYPHEN-MINUSIDENTICAL TOIGATURE SHRIILLED CIRCLE" -"IN MIDDLE UPINDEX MIDDLEING ENVELOPEING HAND FANING HITTING ING OPERATORINTEG" -"RATION INUSOID SIGNINVERTEBRATEIRAGANA HOKAIRTY-SECOND IVE TWELFTHSKANA REPEA" -"T KAPPA SYMBOLKHAMTI TONE-KHMIMIC KHEILAM WITH YEHLARGE DOUBLELARGE TRIPLELAT" -"ALIZATIONLAYING CARDSLEADING EYESLEFT HARPOONLEFT POINTERLER CONSTANTLICKING " -"LIPSLIMBS DIGITSLINGING FIRELINKING MARKLL MODIFIER-LLE PATTERN LOWER CORNERL" -"OWERED FLAGLU PLUS ESH2LUS NOTEHEADLYING SAUCERM NSHUT NYAMMADDA ABOVE MALL S" -"ECTIONMANNAZ MAN MMBELLISHMENTMEDARY CAMELMEDIUM SHAFTMETA STAVROUMIDDLE PIEC" -"EMING TO MEETMONOGRAPH UKMPHASIS MARKMPTY CENTRE MUM TIMES PAN ELEMENT OFNARR" -"OW SHAFTNATURAL SIGNNCK CONSTANTNEPOSTOYANNYNERSHIP SIGNNEUTRAL FACENGLE BARL" -"INENJALA GONDI NORTHERN TSENOTCHED HOOKNOTCHED TAILNUITY SYMBOLOGOGRAM NYAJOH" -"AZARD SIGNOID NOTEHEADOING TO MEETOK HAND SIGNON US SYMBOLONISHED FACEOPENING" -" LEFTOPLE HUGGINGOPPOSING LU2OQ NSHUT YUMOTTOM HALF OOUCHES THUMBOUGHT BUBBLE" -"OUR TWELFTHSPHEME JOINERPOETRY MARK-PORT CONTROLPOUTING FACEPROTOS ICHOSQUARE" -"D ARROWQUARTER SIGNQUIRREL TAILRAFFIC LIGHTRAH BEN YOMORANCHING OUTRCHAIC SAM" -"PIREFACE COLONREN CROSSINGREVERSE MARKRIAGE SYMBOLRIAL TRAMWAYRIGHT DOUBLERIG" -"HT SINGLERING OVERLAYRION CHRONONRISTMAS TREERNAM BCAD MAROLLING EYESROUNDED " -"ZERORROUND FROM S ABOVE SIGNS SUBPUNCTISSAZ IS ISS ISECTION SIGNSH ZIDA TENUS" -"HED BARLINESHORT RIKRIKSMALL DOUBLESMALL TRIPLESMILING FACESS-THAN SIGNSTICK " -"FIGURESUR OVER SURT MONGKEUAEQTE SEPARATORTEARS OF JOYTERNATE AYINTHETA SYMBO" -"LTHIC LETTER THREE HEARTSTOP-LIGHTED TRAGRAM FOR TRIPLE DANDATRIPLE FLAMEUBSC" -"RIPT TWOUGHT BALLOONUH PLUS GISHULL NOTEHEADUME INTEGRALUN WITH RAYSUNNER FRA" -"ME-UPPER CORNERUSEATED FACEUTH ARABIAN UTH-SLAVEY KVAKRAHASANYAVER EQUAL TOVI" -"CTORY HANDVOLTAGE SIGNWDATA SQUAREWIGGLY FENCEWITH SMALL VXIRON KLASMAYAN NUM" -"ERAL YMBOL BINDU YOD TRIANGLEYOUTHFULNESS AND MACRON DECORATION I ZAPYATOY OF" -" FLOWERS OF FORTUNE OVER BULUG OVER IDIM PLUS MASH2 PLUS NUNUZ PROPORTION S " -"ZAPYATOY SHOE STILE TACK BELOW TIMES ESH2 WITH CARON WITH COMMA WITH DASIA WI" -"TH FLASH WITH JACKS WITH MAPIQ WITH PLATE WITH TITLO WITH TRILL WRIST FLEX-CO" -"PPER ORE-MINUS SIGN-OFF SYMBOL0 FOOTSTOOL3 LONG NGGO5 LONG MBOO6 LONG NGGEACK" -"ED COMMAACTIVE SIGNACUTE-GRAVEAESCULAPIUSAESHAE NYAMAGAZ DAEG DAGONAL SIGNAIL" -"LESS PHIAMUSED FACEARAM GONDI ARM SPIRAL ARMS RAISEDARPEGGIATO ASE TO THE ATH" -" PRODUCTATION POINTATION SPACEAWNING FACEBANK SYMBOLBELOW RIGHTBETA SYMBOLBLA" -"CK ARROWBOTTOM MARKBREVE BELOWBUMPY ABOVEBZHI -KHYILCAN RGYINGSCARET TILDECCU" -"MULATIONCE OF PIZZACELANDIC-YRCH AND LAMPCHING CHICKCLOSED JAWSCOMBINATIONCON" -"D SCREENCONTAIN AS CREDIT SIGNCROSSING BUCROSSING ENCROSSING IMCROSSING PICRO" -"SSING URCTION MARK CTION MARK-CURVED BENDDALETH-RESHDASH SYMBOLDE KIKAKUI DEN" -"T EMBLEMDESK PERSONDIATONON DIDOACHASHMEEDOLLAR SIGNDONG TSHUGSDOUBLE AND DOU" +"GHTWARDS ARROWWARDS HARPOON ABOVE LONG RIGHTWARDS HARPOONJUSTIFIED LOWER RIGH" +"T QUARTER BLACK CIRCLEJUSTIFIED UPPER RIGHT QUARTER BLACK CIRCLELA USED AS KO" +"RANIC STOP SIGN ISOLATED FORMLEFTWARDS OF UPWARDS TRIANGLE-HEADED ARROWLOWER " +"LEFT TO MIDDLE CENTRE TO LOWER RIGHTOWER RIGHT-SHADOWED WHITE RIGHTWARDS ARRO" +"W OVER HI TIMES ASH2 KU OVER HI TIMES ASH2AND RIGHT TRIANGULAR THREE QUARTERS" +" BLOCKINVERSE MEDIUM SHADE AND RIGHT HALF BLOCKJUSTIFIED LOWER LEFT QUARTER B" +"LACK CIRCLEJUSTIFIED UPPER LEFT QUARTER BLACK CIRCLEULTIPLICATION SIGN WITH C" +"IRCUMFLEX ACCENTDOWNWARDS AND UPWARDS OPEN CIRCLE ARROWSLOW DOUBLE COMMA QUOT" +"ATION MARK ORNAMENTVERTICAL BAR AT END OF HORIZONTAL STROKE-TILTED SHADOWED W" +"HITE RIGHTWARDS ARROWABOVE RIGHTWARDS HARPOON WITH BARB DOWNASH FROM LEFT MEM" +"BER OF DOUBLE VERTICALNEGATIVE SQUARED LATIN CAPITAL LETTER PWITH OPEN ARM EN" +"DING IN ARROW POINTING -HEADED ARROW WITH TRIANGLE ARROWHEADSABOVE LEFTWARDS " +"HARPOON WITH BARB DOWNAL WITH SUPERSCRIPT ALEF ISOLATED FORMASHED TRIANGLE-HE" +"ADED RIGHTWARDS ARROWEH WITH SUPERSCRIPT ALEF ISOLATED FORMEXTENDED ARABIC-IN" +"DIC DIGIT FOUR ABOVEEXTENDED ARABIC-INDIC DIGIT FOUR BELOWHARPOON ABOVE SHORT" +" RIGHTWARDS HARPOONIANGLE CONTAINING SMALL WHITE TRIANGLEURNED SWIRL BIRGA WI" +"TH DOUBLE ORNAMENTWARDS AND LEFTWARDS OPEN CIRCLE ARROWS WITH MONITOR IN PORT" +"RAIT ORIENTATIONHORIZONTAL LINE WITH THREE TICK MARKSIOUS FACE WITH SYMBOLS C" +"OVERING MOUTHONCAVE-POINTED BLACK RIGHTWARDS ARROWOVER RIGHTWARDS TRIANGLE-HE" +"ADED ARROWSMALL LETTER BYELORUSSIAN-UKRAINIAN I AND LOWER HALF INVERSE MEDIUM" +" SHADE WITH HORIZONTAL MIDDLE BLACK STRIPEDOUBLE-LINE EQUAL ABOVE GREATER-THA" +"NGREATER-THAN ABOVE DOUBLE-LINE EQUALHARPOON ABOVE LONG LEFTWARDS HARPOONIGHT" +" TORTOISE SHELL BRACKET ORNAMENTLEFT TORTOISE SHELL BRACKET ORNAMENTOVER LEFT" +"WARDS TRIANGLE-HEADED ARROWPART BETWEEN MIDDLE AND RING FINGERSSINGLE COMMA Q" +"UOTATION MARK ORNAMENTSMALL ARABIC LETTER TAH AND TWO DOTSTURNED COMMA QUOTAT" +"ION MARK ORNAMENTZENGE CONTAINING BLACK SMALL LOZENGE CONTAINING BLACK VERY S" +"MALL SQUAREBESIDE AND JOINED WITH INTERSECTIONBOTTOM-LIGHTED RIGHTWARDS ARROW" +"HEADGVEDIC KASHMIRI INDEPENDENT SVARITAND UPPER AND LOWER ONE EIGHTH BLOCKORN" +"ER ARROWS CIRCLING ANTICLOCKWISEOUNDED HIGH STOP WITH FILLED CENTRER LOWER RI" +"GHT CURLY BRACKET SECTIONRIGHT-POINTING ANGLE QUOTATION MARKTWO HORIZONTAL ST" +"ROKES TO THE RIGHTVERTICAL LINE WITH THREE TICK MARKS TWO DOTS OVER ONE DOT P" +"UNCTUATIONBLACK LEFT-POINTING SMALL TRIANGLEDOWNWARDS ARROW WITH TIP LEFTWARD" +"SIGHUR KAZAKH KIRGHIZ ALEF MAKSURA MODIFIER LETTER LABIALIZATION MARKOVER IGI" +" SHIR OVER SHIR UD OVER UDOVER TAB NI OVER NI DISH OVER DISHPPROXIMATELY NOR " +"ACTUALLY EQUAL TOR LOWER LEFT CURLY BRACKET SECTIONTEARDROP-SPOKED PROPELLER " +"ASTERISKUPPER BODY TILTING FROM HIP JOINTSALL BUT UPPER LEFT QUADRANT BLACKDI" +"RECT PRODUCT WITH BOTTOM CLOSEDDOUBLE-LINE EQUAL ABOVE LESS-THANDOWNWARDS HAR" +"POON WITH BARB RIGHTEFT-POINTING ANGLE QUOTATION MARKLESS-THAN ABOVE DOUBLE-L" +"INE EQUALLLAR SIGN WITH OVERLAID BACKSLASHMEDIUM SHADE AND LOWER HALF BLOCKRA" +"ISING BOTH HANDS IN CELEBRATIONTROFLEX CLICK WITH RETROFLEX HOOKTRONG CENTRAL" +"IZATION STROKE BELOWTUG2 OVER TUG2 TUG2 OVER TUG2 PAPTWO DOTS ABOVE AND TWO D" +"OTS BELOWWARDS HARPOON WITH BARB DOWNWARDS-POINTING ANGLE BRACKET ORNAMENTAND" +" MIDDLE RIGHT TO LOWER CENTREATHARVAVEDIC INDEPENDENT SVARITAETALLED BLACK AN" +"D WHITE FLORETTEHAND WITH MIDDLE FINGER EXTENDEDNORMAL FACTOR SEMIDIRECT PROD" +"UCTRIANGLE-HEADED OPEN CIRCLE ARROWRIGHT SEMICIRCLE WITH THREE DOTSRONT-TILTE" +"D SHADOWED WHITE ARROWSEMICIRCULAR ANTICLOCKWISE ARROWVED STEM PARAGRAPH SIGN" +" ORNAMENT CROSSING ASH OVER ASH OVER ASHACK-TILTED SHADOWED WHITE ARROWAISED " +"HAND WITH FINGERS SPLAYEDAND MIDDLE LEFT TO LOWER CENTREETALLED OUTLINED BLAC" +"K FLORETTEIN WHITE CIRCLE IN BLACK SQUARELEFTWARDS EQUILATERAL ARROWHEADONE H" +"UNDRED THIRTY-FIVE DEGREESRIGHTWARDS HARPOON WITH BARB UPRING OVER TWO RINGS " +"PUNCTUATIONRINGS OVER ONE RING PUNCTUATIONTNAMESE ALTERNATE READING MARK UPWA" +"RDS HARPOON WITH BARB RIGHT CONTAINING BLACK SMALL SQUARE-HIRAGANA PROLONGED " +"SOUND MARKAGGRAVATED INDEPENDENT SVARITAAND JOINED BY DASH WITH SUBSETDOT BEL" +"OW AND THREE DOTS ABOVEDOWNWARDS AND RIGHTWARDS ARROWEART EXCLAMATION MARK OR" +"NAMENTEFT SEMICIRCLE WITH THREE DOTSGHT FOUR POINTED PINWHEEL STARGREATER-THA" +"N ABOVE EQUALS SIGNHIGH-REVERSED-9 QUOTATION MARKHT CENTRALIZATION STROKE BEL" +"OWINDEX THUMB CURVE THUMB INSIDEMAKSURA WITH SUPERSCRIPT ALEF MINTON RACQUET " +"AND SHUTTLECOCKMODIFIER LETTER LEFT HALF RINGON WITH RIGHTWARDS ARROW ABOVEOP" +"EN CENTRE EIGHT POINTED STARQAF WITH LAM WITH ALEF MAKSURARECTANGULAR CHECKER" +" BOARD FORMSAD WITH LAM WITH ALEF MAKSURA DOWN INDEX THUMB HOOK MIDDLE OVER R" +"IGHTWARDS ARROW TO BAR WITH REVERSED NEGATION SLASHABOVE SHORT LEFTWARDS HARP" +"OONCKED FACE WITH EXPLODING HEADCONTAINING BLACK SMALL CIRCLEDOT OVER TWO DOT" +"S PUNCTUATIONDOWN HEAVY AND RIGHT UP LIGHTDOWN MIDDLE THUMB INDEX CROSSEFTWAR" +"DS HARPOON WITH BARB UPEVERSED LUNATE EPSILON SYMBOLEXTENDED ARABIC-INDIC DIG" +"IT TLIGHT FOUR POINTED BLACK CUSPNS-SERIF INTERROBANG ORNAMENTOMBINING ANUSVA" +"RA ABOVE RIGHTONAL INDICATOR SYMBOL LETTER PUNCTUATION CHINOOK FULL STOPSEMIC" +"IRCULAR PATH AROUND POLESUPERSCRIPT ALEF INITIAL FORMUP HEAVY AND RIGHT DOWN " +"LIGHTWITH RIGHTWARDS ARROW AT LEFTACE DIRECTION POSITION NOSE ASTERISKS ALIGN" +"ED VERTICALLYBESIDE AND JOINED WITH UNIONDOUBLE ANUSVARA ANTARGOMUKHADOWN HEA" +"VY AND LEFT UP LIGHTEDGE-TAILED RIGHTWARDS ARROWEFT ARC GREATER-THAN BRACKETF" +"TING POINT RIGHTWARDS ARROWHADED WHITE RIGHTWARDS ARROWHREE HUNDRED FIFTEEN D" +"EGREESIBE SYLLABLE BOUNDARY MARKERISMILLAH AR-RAHMAN AR-RAHEEMLEFTWARDS OF DO" +"WNWARDS ARROWLIQUID MEASURE FIRST SUBUNITMIDDLE CENTRE TO UPPER RIGHTMIDDLE R" +"ING LITTLE CONJOINEDMONOGRAMMOS TESSERA DODEKATAOUND-TIPPED RIGHTWARDS ARROWR" +"ECTANGULAR PATH AROUND POLESALTIRE WITH ROUNDED CORNERST LITTER IN ITS PLACE " +"SYMBOLTAAALAA FARAJAHU ASH-SHAREEFUP HEAVY AND LEFT DOWN LIGHTUPPER CENTRE TO" +" MIDDLE RIGHTUPWARDS AND RIGHTWARDS ARROW AND LEFT SEMICIRCLE ARROWS BARREE W" +"ITH TWO DOTS BELOW DIVIDED BY HORIZONTAL RULE-FEATHERED RIGHTWARDS ARROWAND U" +"PPER HALF WHITE CIRCLEARROW ABOVE LEFTWARDS ARROWBETWEEN TWO HORIZONTAL BARSB" +"RDA RNYING YIG MGO MDUN MABRDA RNYING YIG MGO SGAB MACIRCLE WITH NORTHWEST AR" +"ROWCONTINUOUS UNDERLINE SYMBOLDOUBLE PRIME QUOTATION MARKEAVY WHITE RIGHTWARD" +"S ARROWEMICIRCULAR CLOCKWISE ARROWENTATION FORM FOR VERTICAL FINGER COVERING " +"CLOSED LIPSFOUR FINGERS CONJOINED BENTHANDED INTERLACED PENTAGRAMHEAD MARK WI" +"TH MOON AND SUNIDE ARC ANTICLOCKWISE ARROWIDE-HEADED RIGHTWARDS ARROWIMPERFEC" +"TUM CUM PROLATIONE KATHAKA INDEPENDENT SVARITALARGE EQUILATERAL ARROWHEADLESS" +"-THAN ABOVE EQUALS SIGNLIGHT CENTRALIZATION STROKELOWER MIDDLE LEFT TO LOWER " +"LOWER TONAL RANGE INDICATORONE LARGE AND ONE SMALL EYEOUR BALLOON-SPOKED ASTE" +"RISKOVER LONG LEFTWARDS HARPOONPHARYNGEAL VOICED FRICATIVEPPY PERSON RAISING " +"ONE HANDRIANGULAR ONE QUARTER BLOCKRIGHT ARC LESS-THAN BRACKETRIPLE VERTICAL " +"BAR OPERATORSTRUMENTAL NOTATION SYMBOL-TALIC LATIN CAPITAL LETTER TWO HUNDRED" +" SEVENTY DEGREESUPPER CENTRE TO LOWER RIGHTUPPER MIDDLE LEFT TO UPPER WALLPLA" +"NE SHOULDER HIP MOVEWO DOTS BELOW AND DOT ABOVEZERO FOR ODD POWERS OF FOUR GA" +"D OVER GAD GAR OVER GAR LESS THAN THE DENOMINATOR NEGATED WITH VERTICAL BAR O" +"R APPROXIMATELY EQUAL TO WITHIN TRIANGLE ARROWHEADALEF MAKSURA ISOLATED FORMA" +"ND LEFT HALF WHITE CIRCLEAND MIDDLE FINGERS CROSSEDAND RIGHT ONE EIGHTH BLOCK" +"BLE TENNIS PADDLE AND BALLCAT FACE WITH SMILING EYESCLOCKWISE ARROW WITH MINU" +"SCRIPT LIGATURE ET ORNAMENTDOTTED LUNATE SIGMA SYMBOLDOTTED SUBSTITUTION MARK" +"ERDROP-SHADOWED WHITE SQUAREE ONE-WAY LEFT WAY TRAFFICERSTRASS ELLIPTIC FUNCT" +"IONHTORA SKLIRON CHROMA VASISIDEOGRAPHIC ITERATION MARKINDUSTRIAL STANDARD SY" +"MBOLJECT REPLACEMENT CHARACTERLANTED SOUTH ARROW WITH HOLEFTWARDS OF UPWARDS " +"ARROWLINE FEED SEPARATOR SYMBOLLLALLAHOU ALAYHE WASSALLAMMARRIED PARTNERSHIP " +"SYMBOLMEEM WITH HAH WITH TATWEELMODIFIER FITZPATRICK TYPE-OCKED FEMALE AND MA" +"LE SIGNOORPLANE SHOULDER HIP MOVEORTHOGONAL CROSSHATCH FILLOTATED FLORAL HEAR" +"T BULLETOUBLE ANGLE QUOTATION MARKRIGHT PARENTHESIS ORNAMENTRINGS ALIGNED HOR" +"IZONTALLYRIPLE DOT PUNCTUATION MARKSSIAN ASTROLOGICAL SYMBOL THREE DOTS ABOVE" +" DOWNWARDSU REVERSED OVER U REVERSEDUNEVEN EYES AND WAVY MOUTHWHITE RIGHT POI" +"NTING INDEXWITH LEFTWARDS ARROW ABOVEYAJURVEDIC MIDLINE SVARITA OVER NUN LAGA" +"R TIMES SAL WITH CIRCLED ONE OVERLAY WITH DOUBLE GRAVE ACCENT WITH DOUBLE MID" +"DLE TILDE WITH DOUBLE VERTICAL BARBREVE WITH INVERTED BREVEBUT NOT ACTUALLY E" +"QUAL TOCAT FACE WITH CLOSED EYESCROSSING NORTH EAST ARROWDIAERESIS AND HOOK S" +"YMBOLDOUBLE CANDRABINDU VIRAMADRY MEASURE FIRST SUBUNITELD HOCKEY STICK AND B" +"ALLFECTIVENESS OR DISTORTIONFFICULTY AT THE BEGINNINGING ON THE FLOOR LAUGHIN" +"GINVERTED EXCLAMATION MARKLEFT PARENTHESIS ORNAMENTLEFTWARDS ARROW WITH HOOKL" +"OW QUILT SQUARE ORNAMENTMBINING CRYPTOGRAMMIC DOTMEDIUM TRIANGLE ARROWHEADMUL" +"TIPLICATION SIGN BELOWNIVERSAL RECYCLING SYMBOLOLD ASSYRIAN WORD DIVIDERONE U" +"NDER EIGHTEEN SYMBOLOUBLE BIRGA WITH ORNAMENTOUTLINED RIGHTWARDS ARROWOVER LO" +"NG LEFTWARDS ARROWRANCH BANK IDENTIFICATIONREE-HUNDRED-AND-TWENTIETHRIGHT DIA" +"GONAL HALF BLACKRIGHT ONE SIXTEENTH BLOCKRIPLE BIRGA WITH ORNAMENTRIST CIRCLE" +" HITTING WALL SQUARE CHECKER BOARD FORMSTROKE AND TWO DOTS ABOVETAB OVER TAB " +"GAR OVER GARTERNION INTEGRAL OPERATORTTED SUBSTITUTION BRACKET OVER TOP SQUAR" +"E BRACKET POINTING BACKHAND INDEXALTERNATE SECTION MARKERAND MALE AND FEMALE " +"SIGNARM CIRCLE HITTING WALL ARROW POINTING DIRECTLY BERKANAN BEORC BJARKAN BB" +"LACK LENTICULAR BRACKETBLIC ADDRESS LOUDSPEAKERBUSINESS SUIT LEVITATINGCOMPAT" +"IBILITY IDEOGRAPH-CONSECUTIVE EQUALS SIGNSCULINE ORDINAL INDICATORDESCENDING " +"MUSICAL NOTESDIAGONAL CROSSHATCH FILLDOUBLE HORIZONTAL STROKEDOWNSCALING FACT" +"OR KIIZHE PLUS A PLUS SU PLUS NAEASTERN PWO KAREN DIGIT EQUAL TO OR GREATER-T" +"HANEYES AND HAND OVER MOUTHFINGER AND THUMB CROSSEDGLOTTAL STOP WITH STROKEGR" +"EATER-THAN OR EQUAL TOHEAVY BLACK HEART BULLETIGATURE OPEN ET ORNAMENTING FAC" +"E WITH OPEN MOUTHINTERSECTION WITH SERIFSISOSCELES RIGHT TRIANGLELARGE TRIANG" +"LE ARROWHEADLEFT DIAGONAL HALF BLACKLEFT ONE SIXTEENTH BLOCKLINE HORIZONTAL E" +"LLIPSISLY-RECYCLED PAPER SYMBOLMALL CIRCLE TO THE RIGHTMALL LEFT SQUARE BRACK" +"ETMTAVRULI CAPITAL LETTER ONE-HUNDRED-AND-SIXTIETHORIZONTAL BAR WITH NOTCHOTT" +"OM SHADED WHITE ARROWOTTOM-SHADED WHITE ARROWPERSCRIPT ALEF MOKHASSASPOINTING" +" DOWNWARDS ABOVEREVERSED NINE-LIKE BHALERIGHTWARDS THEN CURVING SINGLE-LINE N" +"OT EQUAL TOSTROKE THROUGH DESCENDERSYLLABLE REPETITION MARKT BLACK RIGHTWARDS" +" ARROWTAAALAA ALAYHI WA-SALLAMTEARDROP-SPOKED ASTERISKTED INTERPOLATION MARKE" +"RUPRIGHT RECTANGULAR ZEROUPWARD POINTING TRIANGLEVOICED LARYNGEAL SPIRANTWELV" +"E POINTED BLACK STARWITH CANCELLATION STROKEWITH UPWARDS ARROW ABOVEWO DOTS V" +"ERTICALLY ABOVEWO DOTS VERTICALLY BELOW CAKE WITH SWIRL DESIGN HUNDRED TWENTY" +"-EIGHTH POINTING AT THE VIEWER ROTATED NINETY DEGREES WITH HALF-CIRCLE BELOW" +"-ALAA AALIHEE WA-SALLAMALEF MAKSURA FINAL FORMALGAMATION OR COPRODUCTAND WOMA" +"N HOLDING HANDSANG DEPARTING TONE MARKARABIC LETTER TAH ABOVEARTY HORN AND PA" +"RTY HATASCENDING MUSICAL NOTESATTACHING VERTICAL OMETAVOURING DELICIOUS FOODA" +"WWARA ALLAAHU MARQADAHBARBED RIGHTWARDS ARROWCIRCUMFLEX ACCENT ABOVECLUSTER-I" +"NITIAL LETTER CURRENT SYMBOL FORM TWODOT BELOW AND DOT ABOVEDOWNWARDS THEN CU" +"RVING ESS OUTLINED WHITE STARFACING SNAKE HEAD WITH GREEK SMALL LETTER IOTAHA" +"NKED RIGHTWARDS ARROWHREE POINTED BLACK STARHT TRIFOLIATE SNOWFLAKEICATION PR" +"OGRAM COMMANDIDE ARC CLOCKWISE ARROWIGHT-SHADED WHITE ARROWININE ORDINAL INDI" +"CATORISTED RIGHTWARDS ARROWSIVE FINGERS SPREAD OPENLEFT-SHADED WHITE ARROWLOW" +"ER ONE QUARTER BLOCKLSCHREIBER PAUSE SYMBOLMITIAN CONJUGATE MATRIXORAH WITH N" +"INE BRANCHESORIGINAL OF OR EQUAL TOORIZONTAL RULER SEGMENTOVER RIGHTWARDS HAR" +"POONOVERLAPPING LOGICAL ANDP WITH EXCLAMATION MARKPA OVER PA GAR OVER GARPUNC" +"TUATION END OF TEXTRAISED OMISSION BRACKETREE VARIATION SELECTOR RIGHT DIAGON" +"AL ELLIPSISRIGHT HORIZONTAL SECANTRIGHT ONE QUARTER BLOCKRIGHT-POINTING TRIAN" +"GLERTOISE SHELL BRACKETED SHAPE WITH A DOT INSIDESING DIAGONAL CROSSING SOLID" +"US BINARY RELATIONUBLE VERTICAL BAR BELOWUP SPREAD THUMB FORWARDUPPER ONE QUA" +"RTER BLOCKUPWARDS THEN NORTH WESTVERTICAL BISECTING LINEWESTERN PWO KAREN TON" +"E-WHITE FOUR POINTED CUSPWO-WAY LEFT WAY TRAFFICZANTINE MUSICAL SYMBOL OVER " +"STAMPED ENVELOPE SYMBOL FOR LIGHTHOUSE WITH CIRCUMFLEX ABOVE WITH DECORATIVE " +"COVER WITH SINGLE ZAPYATAYA WITH THREE DOTS ABOVE-ROTATED DIVISION SIGNACKSLA" +"NTED SOUTH ARROWARMENIAN ETERNITY SIGNBAR ABOVE INTERSECTIONCJK UNIFIED IDEOG" +"RAPH-CONSONANT MODIFIER BARCONSONANT SIGN MEDIAL CURLY BRACKET ORNAMENTDOMAIN" +" ANTIRESTRICTIONDOUBLE SOLIDUS OVERLAYDOUBLE VERTICAL STROKEDOUBLE-LINED HEAD" +" MARKDOWN-POINTING TRIANGLEDOWNWARDS ZIGZAG ARROWDRESSED TO THE SUBJECTEAST-P" +"OINTING AIRPLANEGREATER-THAN DIAERESISHEXIFORM LONG ANUSVARAHORT HORIZONTAL S" +"TROKEI YFESIS TETARTIMORIONIGEL LONG-BRANCH-SOL SIN DEPARTING TONE MARKINDIRE" +"CT QUESTION MARKING HEAD IN SILHOUETTEINVERTED SMALL V ABOVEINVERTED SMALL V " +"BELOWKEEPING STILL MOUNTAINLATIN CAPITAL LETTER SLE BESIDE VERTICAL BARLEFT O" +"NE QUARTER BLOCKLEFT TRIANGLE OPERATORLEFT-POINTING TRIANGLELONG HORIZONTAL S" +"TROKELOW PARAPHRASE BRACKETMNYAM YIG GI MGO RGYANND RECORDING COPYRIGHTNOT IN" +"CLUDING THE POLEOVER LEFTWARDS HARPOONOVER NU11 BUR OVER BUROVER SHIR BUR OVE" +"R BURPERSET OF NOR EQUAL TOPOINTING UPWARDS BELOWPRECEDED BY APOSTROPHEPUNCTU" +"ATION KUNDDALIYAQUESTION MARK ORNAMENTREASE FONT SIZE SYMBOLRECTILINEAR BLACK" +" STARREE-CIRCLE ALTERNATE IRIGHT-POINTING FLEURONROUND A POINT OPERATORRROW W" +"ITH ROUNDED HEADSEMI-VOICED SOUND MARKSHORT RIGHTWARDS ARROWSHORT VERTICAL ST" +"ROKESSYMPTOTICALLY EQUAL TOTRIPLE DASH HORIZONTALTRIPLE RIGHT TURNSTILETRIPLE" +" VERTICAL STROKEUBSCRIPT SMALL LETTER UPPER ONE EIGHTH BLOCKUPPER RIGHT AND L" +"OWER USTOMER ACCOUNT NUMBERWASALLAM ISOLATED FORMWITH HORIZONTAL STROKEWITH J" +"EEM INITIAL FORMWITH VOICED SOUND MARKYIAKENG PUACHUE HMONG AND SLANTED PARA" +"LLEL WITH SHORT RIGHT LEG WITH VERTICAL STROKE-ROUND NOTEHEAD DOWN -SHAPED BA" +"G DELIMITERABOVE SHORT DOWN TACKACUTE AND HOOK SYMBOLAKIA TELOUS ICHIMATOSALL" +"ING DIAGONAL SLASHAND VOWEL LENGTH MARKARD SHELL FLOPPY DISKARKENING OF THE L" +"IGHTARYSTIAN FIVE HUNDREDBESIDE RIGHT TRIANGLEBOTTOM AND LOWER LEFTBOTTOM U-S" +"HAPED ARROWBUT NOT EQUIVALENT TOCROSSE STICK AND BALLCRUCIFORM NUMBER FOURCTO" +"R OR CROSS PRODUCTDELIMITER TSHEG BSTARDIGRAMMOS EX DODEKATADOUBLE LEFT TURNS" +"TILEDOWN HORIZONTAL HEAVYDOWN HORIZONTAL LIGHTDOWNWARDS ARROW ABOVEEFT HORIZO" +"NTAL SECANTEFT OPEN BOX OPERATOREIGHT SPOKED ASTERISKELATIONAL COMPOSITIONEQU" +"AL TO OR LESS-THANER RIGHT CORNER ANGLEFINAL CONSONANT SIGN FLATTENED PARENTH" +"ESISGHT OPEN BOX OPERATORGRAMMOS OKTO DODEKATAGRUENT WITH DOT ABOVEHALF TRIAN" +"GULAR COLONHAND INTERIOR PRODUCTHOCKEY STICK AND PUCKHORIZONTAL REFLECTIONHOR" +"IZONTAL TABULATIONHOUSAND MILLIONS SIGNINTERSECTING LOGICAL INTERSECTION OPER" +"ATORINVERTED BRIDGE BELOWINVERTED GLOTTAL STOPJUSTIFIED LOWER HALF JUSTIFIED " +"RIGHT HALF JUSTIFIED UPPER HALF LATTENED OPEN A ABOVELESS-THAN OR EQUAL TOLET" +"TER SMALL CAPITAL MALE WITH STROKE SIGNMIDDLE RING LITTLE ONMORPHOLOGICAL DIV" +"IDERND TELEPHONE RECEIVEROCAL NOTATION SYMBOL-OHAMMAD ISOLATED FORMOP SHADED " +"WHITE ARROWOPPOSING AN PLUS NAGAPAP PLUS PAP PLUS LU3RATING SYSTEM COMMANDREL" +"ICT HOUSE BUILDINGREVERSED FEATHER MARKRIGHT ARROWHEAD ABOVERIGHT QUARTER SEC" +"TIONRISING DIAGONAL SLASHSH AMPERSAND ORNAMENTSHORT LEFTWARDS ARROWSIDE TO SI" +"DE SCISSORSTEEN POINTED ASTERISKTHICK LETTER SELECTORTILDE OPERATOR ABOVE TOU" +"CHING INSIDE MOUTHTRIANGULAR HALF BLOCKUPPER QUARTER SECTIONVERTICAL LINE OVE" +"RLAYVERY HEAVY BARB ARROWVOICED ITERATION MARKWITH INVERTED V ABOVEWO-CIRCLE " +"ALTERNATE IWO-CIRCLE NUKTA ABOVEXTRA SHORT VOWEL MARKYIG MGO TSHEG SHAD MA AB" +"OVE LEFT TRIANGLE AND DIAGONAL STROKE BEGIN LOGOGRAM MARK OVER LAGAR GUNU SHE" +" OVER TUR ZA OVER ZA WITH DEPENDENT LOBE WITH HORIZONTAL BAR WITH INVERTED IN" +"PUT79 OVER LAK-079 GUNUA- SHOG GI MGO RGYANAISED UPPER LEFT ARCAND NORTH EAST" +" ARROWAND NORTH WEST ARROWAND SOUTH EAST ARROWAND SOUTH WEST ARROWANGE ANTIRE" +"STRICTIONARXIS KAI FTHORA VOUBETWEEN PALM FACINGSBSET OF NOR EQUAL TOCENTRE V" +"ERTICAL LINECHARACTER INTRODUCERCHEMICAL SYMBOL FOR CONSONANT SIGN HAARUCRESC" +"ENT MOON SYMBOLCURRENCY SYMBOL RIELCURVED ANGLE BRACKETDDASA ALLAAHU SIRRAHDO" +"TLESS HEAD OF KHAHDOUBLE ANGLE BRACKETDOUBLE DOT TONE MARKDOWN ARROWHEAD BELO" +"WE CONSONANT MODIFIERE POINTED WHITE STAREMESTVENNY ZADERZHKAENARMONIOS ANTIF" +"ONIAEVERSED ROTATED RANAFINAL CONSONANT MARKFIVE SPOKED ASTERISKFORMS LIGHT V" +"ERTICALFOUR RAISED KNUCKLESGRA GCAN -CHAR RTAGSHALF CIRCLE WITH DOTHAR2 TIMES" +" GAL PLUS HIGH RATHA OR LOW PAHIGH TONE APOSTROPHEHREE-DOT NUKTA ABOVEIBLICAL" +" END OF VERSEIMAGE OF OR EQUAL TOINDEX RING LITTLE ONINING OBLIQUE STROKEINSI" +"DE MOUTH RELAXEDINVERSE WHITE CIRCLEINVERTED CANDRABINDUIRCLES HITTING WALL J" +"UDEO-SPANISH VARIKAJUSTIFIED LEFT HALF KHAMTI REDUPLICATIONL FUNCTIONAL SYMBO" +"L LAILING ROBOT FRAME-LATALIZED HOOK BELOWLE WITH POPPING CORKLEFT AND LOWER " +"RIGHTLEFT-TO-RIGHT SECANTMULTIPLE PUNCTUATIONNIS RACQUET AND BALLONCAVE-SIDED" +" DIAMONDONE MARK SGAW KAREN ONOMICAL SYMBOL FOR OTLESS J WITH STROKEOVER LEFT" +"WARDS ARROWOWER QUARTER SECTIONPLUS GISH TIMES TAK4POTABLE WATER SYMBOLREAN S" +"TANDARD SYMBOLREVERSED ONE HUNDREDRIGHT ANGLE WITH DOTRIGHT QUADRANT BLACKRIG" +"HT U-SHAPED ARROWRRAMA ALLAAHU WAJHAHRUMAI PALAUNG TONE-5SCRIPTION CHARACTER " +"SEPARATOR KEY SYMBOLSEPARATOR MIDDLE DOTSIDEWAYS NOON GHUNNASTAR WITH MIDDLE " +"DOTTHROUGH SMALL CIRCLETISTRY SYMBOL LIGHT TRANSPOSITION MARKERUBHAANAHU WA T" +"AAALAAUP-POINTING AIRPLANEUP-POINTING TRIANGLEVAL WITH OVAL INSIDEWARE-FUNCTI" +"ON SYMBOLWET CULTIVATION SIGNWITH FOUR DOTS ABOVEWITH RAISED LEFT DOTWITH SOR" +"OCHYA NOZHKAWORD REPETITION MARKYIG MGO PHUR SHAD MAYRENAIC TWO DRACHMAS AND " +"PROSGEGRAMMENI AND RETROFLEX HOOK FLUTTERING IN WIND IN A RECTANGLE BOX KASKA" +"L U GUNU DISH LOVE YOU HAND SIGN WITH STRIKETHROUGH WITH VERTICAL TAILA END L" +"OGOGRAM MARKALTERNATE LAKH MARKANS-SERIF CAPITAL LANSPOSITION BRACKETARABIC F" +"ORM SHAPINGARENTHESIS NOTEHEADARTIAL DIFFERENTIALASTEROID PROSERPINAATED TELL" +"ER MACHINEBETWEEN MIDDLE RINGBINING ALEF OVERLAYC DIGRAPH WITH CURLCIRCLED SA" +"NS-SERIF CIRCLED WHITE ARROWD CIRCUMFLEX ACCENTDENOMINATOR SIXTEENDOWN AND HO" +"RIZONTALDOWN POINTING INDEXEFT QUARTER SECTIONET WITH WHITE CROSSEVEN POWERS " +"OF FOURFIVE FINGERS SPREADFLOORPLANE TWISTINGFT-POINTING FLEURONGAPPED CIRCLE" +" ARROWGIBBOUS MOON SYMBOLHAND COVERING MOUTHHEAD-SHAPED POINTERHORT STROKE OV" +"ERLAYHURISAZ THURS THORNIGATURE AYIN-DALETHILDING CONSTRUCTIONIMIDIA SEXTULA " +"SIGNIN CHEN SPUNGS SHADING SHIRT WITH SASHINGLE DOT TONE MARKINSIDE CIRCLE BE" +"LOWISPUTED END OF AYAHITED LIABILITY SIGNKULL AND CROSSBONESLEADING MCHAN RTA" +"GSLEFT POINTING INDEXLEFT U-SHAPED ARROWLF MADDA OVER MADDALUB-SPOKED ASTERIS" +"KMOVES AGAINST CHEEKMSHELL MOBILE PHONENAXIAN FIVE HUNDREDNDRED POINTS SYMBOL" +"NE HUNDRED TWENTY PNETWORKED COMPUTERSNOGRAPHIC FULL STOPNORTH ARROW WITH HOO" +"P SEMICIRCLE ARROWOTATED ARDHAVISARGAOVER E NUN OVER NUNOW-9 QUOTATION MARKPA" +"RAGRAPH SEPARATORPREFIXED NASAL SIGNQUADRUPLE CRESCENTSQUESTION MARK ABOVERAI" +"LING MCHAN RTAGSRATUM SUPER STRATUMREE-QUARTER CIRCLE RIGHT MIDDLE STROKERIGH" +"T TO LOWER LEFTRROW NO-BREAK SPACERY CULTIVATION SIGNSEQUENCE INTRODUCERSEVEN" +" EIGHTHS BLOCKSH PLUS HU PLUS ASHSLANTED NORTH ARROWSTRAIGHT THUMB BENTSTRATI" +"AN FIFTY MNASSYMBOL FOR BEGINNERTART OF RUB EL HIZBTHANG LONG ANUSVARATIGHTLY" +"-CLOSED EYESTO LOWER RIGHT FILLTRANNO MALO POVYSHETURNED PADA PISELEHTURNED S" +"ECTION MARKTWENTY-FIVE DEGREESUBLE DOT WITHIN DOTUP HORIZONTAL HEAVYUP HORIZO" +"NTAL LIGHTUP-POINTING CHEVRONURRENCY SYMBOL BAHTVARIANT FORM ILIMMUVARIANT WI" +"TH SQUAREVARIATION INDICATORVASTNESS OR WASTINGVERSAL INTERSECTIONVERSE FINAL" +" BARLINEVERTICAL TABULATIONWITH YEH FINAL FORMWOMEN HOLDING HANDS AND NO DOTS" +" ABOVE AND SMASH PRODUCT AND YPOGEGRAMMENI FOR SIMALUNGUN SA NOT LITTER SYMBO" +"L OVER INVERTED SHU SPREAD THUMB SIDE THUMB INDEX THUMB WITH CIRCLE ABOVE WIT" +"H CIRCLE BELOW WITH CROSSED-TAIL WITH FLOWING SAND WITH KAVYKA ABOVEAA ALLAAH" +"U TAAALAAABBREVIATION MARK AND LOW RIGHT RINGARROW SHAFT WIDTH ASTED SWEET PO" +"TATOASTROLOGICAL SIGN ATERRESTRIAL ALIENATIN SMALL LETTER BAARAKA WA-TAAALAAB" +"OTTOM RIGHT KASRACANTILLATION SIGN CONTINUING OVERLAPCOPPER ANTIMONIATECTLY E" +"QUIVALENT TOCUP WITHOUT HANDLEDOUBLE PUNCTUATIONDOWN-OUTPUT SYMBOLEAST POINTI" +"NG LEAFENTERING TONE MARKENTY-TWO POINT TWOEPIGRAPHIC LETTER ERTICAL BAR VIRA" +"MAEVENTEEN FULL STOPEVERSED CHELYUSTKAFIVE EIGHTHS BLOCKFORKED PARAGRAPHOSFOR" +"TY-FIVE DEGREESGATIVE ACKNOWLEDGEGGLY VERTICAL LINEGISH CROSSING GISHHAIS LUS" +" NTOG NTOGHEAVY WHITE SQUAREHILOSOPHERS SULFURHOLDING BACK TEARSHORIZONTALLY " +"BELOWHOUSANDS SEPARATORHUNDREDS UNIT MARKIGATURE ZAYIN-YODHIGSAW PUZZLE PIECE" +"IN POSSESSION SIGNINDEPENDENT VOWEL IRROR HORIZONTALLYITAN SMALL SCRIPT IX SP" +"OKED ASTERISKJEEM ISOLATED FORMKANTAJA NAASIKYAYAKBAR ISOLATED FORMKOREAN CHA" +"RACTER OLEFT MIDDLE STROKELEFT-STEM TONE BARLOSED CIRCLE ARROWLOWER MIDDLE RI" +"GHTMATHEMATICAL SPACEND UPPER RIGHT ARCNINETEEN FULL STOPNISH VERSE DIVIDERNO" +"RMAL SUBGROUP OFNYET THYOOM TA-ROLNYOOGA NAAKSIKYAYAORK ON THE DECAYEDOTLESS " +"DALATH RISHOU ALAYHE WASALLAMOUCHTONE TELEPHONEOW TONE APOSTROPHEPACING CANDR" +"ABINDUPERFIXED LETTER RAPUNCTUATION BINDU QUARTER NOTE STEM REDUPLICATION MAR" +"KRIST CIRCLE FRONT RYUKOVAYA SVETLAYAS INSIDE AND ABOVES PRESSED TOGETHERSEPT" +"UPLE CRESCENTSSET OVER BUILDINGSSHAN REDUPLICATIONSHING SWEAT SYMBOLSINGLE PU" +"NCTUATIONSMALL CIRCLE ABOVESOUL ISOLATED FORMSYMMETRIC SWAPPINGTILTING FROM W" +"AISTTO LOWER LEFT FILLTOP U-SHAPED ARROWTROFLEX HOOK BELOWTYPE A ELECTRONICSU" +"-SHAPED ORNAMENTSUM WITH DRUMSTICKSUP ARROWHEAD BELOWUPPER MIDDLE RIGHTUTLINE" +"D BLACK STARVARIANT FORM LIMMUVERY SMALL DIAMONDWEST POINTING LEAFWHITE VERTI" +"CAL BARWITH JUSTIFICATIONWITH STROKE SYMBOLYLLABLE LENGTHENER ALTERNATION MAR" +"K AND PALATAL HOOK GRAVEYARD SYMBOL LAGAB TIMES ASH2 LAGAR OVER LAGAR OVER ZU" +" PLUS SAR PLUS SHA3 PLUS A TO BLACK DIAMOND WITH BULLET NOSE WITH SOUND WAVES" +" WITH TILDE ABOVE-GAAHLAA TTUDDAAG-HEIGHT LEFT HOOK0 WHEELED CHARIOTA PLUS HA" +" PLUS DAABBREVIATION SIGNAEUM ONE PLETHRONALTERNATE NUMBER AMAT BARAKAATUHUMA" +"MPHYLIAN DIGAMMAAND BLACK SQUARESAPLI DYO DODEKATAASELINE ROUND DOTATHERING T" +"OGETHERAUKAZ LAGU LOGR LBE WITH MERIDIANSBERBER ACADEMY YABOTTOM HALF BLACKBR" +"ACKET EXTENSIONBRIGHTNESS SYMBOLBUT RELIEVED FACECAL SYMBOL BOTTOMCANCELLATIO" +"N MARKCANDRABINDU ABOVECIRCLES WITH DOTSCLOSED LITTLE YUSCOMBINING NUMBER CON" +"SONANT SIGN PACONTINUATION SIGNCONTOURED OUTLINECROSS PUNCTUATIONCTION APPLIC" +"ATIONDELPHIC FIVE MNASDENTAL PERCUSSIVEEAR SCREEN SYMBOLEMICOLON UNDERBARFACI" +"NG BABY CHICKFINGER-POST ARROWFLICK ALTERNATINGFRACTION ONE HALFFROM SMALL CI" +"RCLEGENERIC MATERIALSGREATER-THAN NOR GREATER-THAN SIGNHAH ISOLATED FORMHEART" +"-SHAPED EYESHIRTEEN FULL STOPHORIZONTAL DOUBLEHORIZONTAL SINGLEIASTRE MARK AB" +"OVEICTED LEFT ENTRY-IDEOGRAPHIC COMMAIGHTEEN FULL STOPINEAR ANNOTATION ING PO" +"LE AND FISHINITIAL LETTER RAINVERTED MCHU CANITE PART INTEGRALKE BOTTLE AND C" +"UPKHAH INITIAL FORMLAGOLITIC LETTER LAH ISOLATED FORMLAPPING LESS-THANLD PERM" +"IC LETTER LHOUETTE OF JAPANLIAN HIEROGLYPH AMALL RED TRIANGLEMALL WHITE CIRCL" +"EMANENT PAPER SIGNMEDIUM BARB ARROWMEDIUM SHADE FORMMEEM INITIAL FORMMILITARY" +" AIRPLANENASALIZATION MARKNAUDIZ NYD NAUD NND UPPER LEFT ARCNE EYEBROW RAISED" +"NEGATIVE CIRCLED NFORMATION SOURCENG STROKE OVERLAYONE EIGHTH BLOCK-OP AND UP" +"PER LEFTOPEN-HEADED ARROWOURTEEN FULL STOPOWER NUMERAL SIGNPINWHEEL ASTERISKP" +"RECEDING SOLIDUSPRIZNAK MODIFIER PUNCTUATION SIGN QUAT REVERSED ESHREATIONAL " +"VEHICLERIATION SELECTOR-RIGHT HALF CIRCLERYBLION BASE SIGNS REVOLVING LIGHTSE" +"RVER EYE SYMBOLSIGN O WITH CROSSSQUARED TIMES KURSTRAIGHT MOVEMENTTAN ISOLATE" +"D FORMTARTING FROM SIGNTEN THOUSAND SIGNTERSYLLABIC TSHEGTHREE SOUND WAVESTIA" +"L ARTS UNIFORMTONAL RANGE MARK TRIPLE DASH ARROWULAR MEDIUM SHADEUP AND HORIZ" +"ONTALUP POINTING INDEXURNED COMMA ABOVEURNED DAMMA BELOWVARIANT FORM ASH9VARI" +"ANT FORM IMINVARIANT FORM USSUVEE WITH UNDERBARVERAGE WITH SLASHVOCALIZATION " +"MARKVRE TOURNOIS SIGNWHITE PARENTHESISWHITE SHOGI PIECEWITH DOUBLE SLASHWITH " +"NOT EQUAL TOWO VERTICAL DOTS Y ON BLACK SQUAREYEH ISOLATED FORMYPTIAN HIEROGL" +"YPH AND HEAVY RIGHT AND LIGHT RIGHT CAPPED MOUNTAIN INSERTION POINT LIGHT MOO" +"N ARTA OR THE IMAGE OF PLUS KAK PLUS A SMALL ROTATIONS TIMES DISH TENU TIMES " +"GAN2 TENU WITH BUNNY EARS WITH DOT INSIDE WITH HEADSTROKEADIAN SYLLABICS AFFR" +"ICATION MARKANABAZAR SQUARE ARENTHESES ABOVEB2 TENU PLUS TABBOLD GREEK CROSSB" +"OTTOM HALF RINGCANDRA ANUNASIKACASIAN ALBANIAN CH WITH UMBRELLACKLE FILL FRAM" +"E-CLOSED TENTACLESCOMPRESSED ARROWCONSONANT JOINERCORNER DOWNWARDSCORNER LEFT" +"WARDSCREAMING IN FEARDEWAYS U BRACKETDITORIAL CORONISDOTTED CRESCENTSDOUBLE C" +"RESCENTSDOUBLE DOT ABOVEDOUBLE HEAD MARKDOUBLE TURNSTILEDOUBLE ZAPYATAYADOWN " +"RIGHT BARB DVUMYA ZAPYATYMIE PLUS GAN2 TENUECIMAL SEPARATOREFORE COMPLETIONEN" +" MILLIONS SIGNEND OF TEXT MARKENTRE WHITE STARENUMERATION SIGNEPSILON UNDERBA" +"RERCURY SUBLIMATEEVERSED VISARGA EVERY OTHER TIMEFALLING DIAGONALFFERENCE BET" +"WEENFLOORPLANE SPACEFORWARD-FACING RHIGH SPACING DOTHMATULLAH ALAYHEHOLDING T" +"OGETHERHYPHENATION MARKIDED GREEK CROSSIFTEEN FULL STOPIGHTH NOTE STEM IMENSI" +"ONAL ANGLEINDEPENDENT SHININDEX THUMB SIDEINES CONVERGING IPPER-MOUTH FACEIRC" +"LE X NOTEHEADISTOS DISC SIGN IVE POINTED STARK PERMITTED HERELD ASSYRIAN ONE " +"LEFT ARROW ABOVELEFT HALF CIRCLELIGHT AND RIGHT LIGHT BARB ARROWLLER COASTER " +"CARLLOW PAN OF FOODLOWER OVER UPPERLTERNATE HASANTAMAGNIFYING GLASSMESTVENNY " +"KLYUCHMIDDLE AND BELOWMIDDLE AND RIGHTNAL DIGIT SHAPESNGQIN SIGN SLOW NION WI" +"TH SERIFSNTAIGANA LETTER O-MINOAN SIGN CMOLD TAMIL VIRAMAOLD WHITE CIRCLEORIZ" +"ONTAL JOINERPEN CENTRE CROSSPLACEHOLDER MARKPLE MEASURE RESTPOSTPOSITION MENP" +"RECEDING SUBSETPRECHGESANG STEMQ WITH HOOK TAILR PLUS GAN2 TENURAIDO RAD REID" +" RRAYS AND DOTTED RECORD SEPARATORREPETITION MARK-RESH-AYIN-DALETHRESSIONLESS" +" FACERIGHT DOWN BARB RIGHT HALF BELOWRIGHT HALF BLACKRISING TONE MARKRIZONTAL" +" ELLIPSESANS-SERIF ARROWSERIFS AT BOTTOMSHU2 PLUS KASKALSIGN RISING TONESITIO" +"N INDICATORSLANTED EQUAL TOSMALL CAPITAL ELSMALL NOON ABOVESTERISK OPERATORST" +"ICKING OUT FARSTRAIGHT STRETCHSTRING FRETBOARDSTUCK-OUT TONGUETAKANA-HIRAGANA" +" TRIPLE CRESCENTSUBJOINED LETTER UDLY CRYING FACEULDERED OPEN BOXUMBER SIGN A" +"BOVEUP MIDDLE HINGEDUP-OUTPUT SYMBOLUPERSCRIPT ALAPHUPPER OVER LOWERVARIANT F" +"ORM ESHVERY HEAVY SHAFTVIEWING CEREMONYVOWEL LENGTHENERWALLED ENCLOSUREWAVY H" +"AMZA BELOWWITH CENTRED DOTWITH HEARING AIDWITH LEFT UPTURNYATHOS BASE SIGNYIR" +" MKPARAQ MEUN ALTERNATE FORM AND BOTTOM END CLOUD AND RAIN CORNER BRACKET DEY" +"TEROU ICHOU NEPOSTOYANNAYA OPERATOR WITH OVER MOUNTAINS OVER SIG4 SHU2 PARES" +"TIGMENON PLUS HI PLUS A THROUGH CIRCLE THUMB STRAIGHT TIMES IGI GUNU TOUCHIN" +"G INDEX WITH DESCENDER WITH DIAERESIS WITH RIGHT LEG-AND-RING BELOW-CARRIER L" +"ETTER-NO-EVIL MONKEY-PIECE SWIMSUIT2 CHARIOT FRAMEACHES THE LIMITAI LAING DIG" +"IT ALAYHE ASSALLAMALAYHI WA-AALIHALIF LENGTHENERALMOST EQUAL TOAMARITAN SOURC" +"EAMOUNT OF CHECKAND PARALLEL TOATA LINK ESCAPEATINATE MYSLITEBAGS UNDER EYESB" +"AR ABOVE UNIONBELGTHOR SYMBOLBELOW LONG DASHBENT OVER INDEXBINDING BRACKETBLA" +"CK TRIANGLESBLOCK DIAGONAL BREAKING HYPHENBROWS STRAIGHT CAPITAL LETTERSCIRCU" +"IT-OUTPUT CKET CALCULATORCLOSED BY CURVECORNER WITH DOTDAGESH OR MAPIQDESCEND" +"ING TONEDI ALLAHOU ANHUDIALYTIKA TONOSDIGA AELA-PILLADOING CARTWHEELDOUBLE TR" +"IANGLEDOWN SEQUENTIALDOWNWARDS TRENDE ISOLATED FORME MUSICAL NOTESE OVER INFI" +"NITYEFT REPEAT SIGNEH INITIAL FORMERICAN FOOTBALLESIDE LESS-THANESISTOR SEGME" +"NTESSARON CHRONONETIC VERSE SIGNEXPONENT SYMBOLFIVE-LIKE BHALEFORWARD TILTING" +"FOUR DOTS BELOWFOUR DOTS WITH FOUR ENCLOSURESFOUR TICK MARKSFRACTION DIGIT FT" +"ER COMPLETIONGEMINATION MARKGGLY LINE BELOWGHT REPEAT SIGNGROUP SEPARATORHAKI" +"NG PARALLELHALF FILL SPACEHALF VERTEX OF HEH MEDIAL FORMHOOKED INDEX UPHORIZO" +"NTAL DASHHORIZONTAL FILLHOUSAND STATERSHREE DOTS BELOWHREE HALF BEATSIAMOND U" +"NDERBARIDING ENCLOSUREIGN PALI VIRAMAIMISEOS CHRONOUIMPERFECTA RESTING SYMBOL" +" FOR INGLE HEAD MARKINVERTED CARIK INVERTED LAZY SINVERTED STROKEIRCUMFLEX BE" +"LOWITH FINGERNAILSIZED WHEELCHAIRKISIM5 TIMES BIKTOVIK NUMERAL LATION FUNCTIO" +"NLD TAMIL SHORT LEFT DOWN BARB LEFT HALF BELOWLEFT HALF BLACKLEFT HAND INDEXL" +"ETTER CAPITAL LEVEL TONE MARKLEVEN FULL STOPLIGHT AND LEFT LMOST EQUAL TO LON" +"G HOOK BELOWLONG VOWEL SIGNLOOK OF TRIUMPHLOSED INSULAR GMALAKON CHROMA MARRY" +"ING MAIDENMEEM FINAL FORMMIDDLE DIAGONALMURDA MAHAPRANAN-ARY SUMMATIONNA DOUB" +"LE HELIXNASALIZED TONE-ND OF PARAGRAPHNJOINING MACRONNO GOOD GESTURENOON FINA" +"L FORMNOT APPROXIMATENVERTED UBADAMAODIFIER DAMAGEDODO SOFT HYPHENOGOGRAM KHA" +"MTI OLIDUS OPERATORON TOP OF MODEMOND PLACE MEDALONJOINED HINGEDONTOUR INTEGR" +"ALORIZONTAL COLONORT EQUALS SIGNOUBLE BACKSLASHOW-FALLING TONEOWER HALF BLACK" +"PEN SQUARED DOTPENSION RAILWAYPERTHO PEORTH PPLUS SIGN BELOWPRISHTHAMATRA EPU" +"T SYMBOL FOR QUADRUPLE ARROWQUADRUPLE DASH R WITH FISHHOOKREAMY EYEBROWS RECE" +"PTIVE EARTHRECITATIVE MARKREVERSE SOLIDUSREVERSED OPEN ERIGHT HALF RINGRIGHT " +"RERENGGANRIGHTWARDS AND RIGHTWARDS TICKRMAN PENNY SIGNRNAMENT STROKE-S ELEVAT" +"US MARKS IN SILHOUETTESHITA PLUS GISHSHORT OVER LONGSIXTEENTH NOTESSSICAL BUI" +"LDINGST QUARTER MOONST SYRIAC CROSSSTANDING KNIGHTSTANDING PERSONSTERESIS SYM" +"BOLSTROKE NOT SIGNTAI LAING TONE-THREE DISH TENUTHROWING A KISSTILDE DIAERESI" +"STIP ON THE LEFTTOP RIGHT FATHATRIANGULAR MARKTVIMADUR SYMBOLTWO WITH STROKEU" +" PLUS U PLUS UUBLE RING BELOWUGMENTATION DOTULTIPLICATION XUMAI PALAUNG FAUR " +"POINTED STARUSTER NOTEHEAD VERTICAL SECANTVOWEL SEPARATORVOWEL SHORTENERWALLP" +"LANE SPACEWHITE DOT RIGHTWITH DOWN ARROWWITH RAIN DROPSWO THIRDS BLOCKXTEEN F" +"ULL STOPYNCHRONOUS IDLEZ WITH CROSSBARZAIN FINAL FORMZERO WITH SLASH AND DIAE" +"RESIS AND SMALL TAH CROSSING ESH2 HASER FOR VAV WITH BACK YER WITH LONG LEG-C" +"URRENCY SIGN1 OVER LAK-081AFETY SCISSORSALF TREE TRUNKALTER PAHLAVI AMNUC PII" +" KUUHAND COLD SWEATANGLE OPENING AROUND-PROFILEAU LENGTH MARKBAG MEMBERSHIPBH" +"ATTIPROLU AABLADE SCISSORSCENTURIAL SIGNCEPTER OF JOVECERTAINTY SIGNCOLON OPE" +"RATORCRAB STEPPING CRIFICIAL WINED-UP NEWSPAPERDASIA PNEUMATADEYTEROS ICHOSDI" +"AGONAL MOUTHDIAGONAL PATH DIO MICROPHONEDIRECTION FLIPDOES NOT EXISTDOUBLE-ST" +"RUCK DUN3 GUNU GUNUED SYMBOL FOR EMIVOWEL SIGN END OF SECTIONENDED MULTIMAPEP" +"ENTHETIC YUTERIAL ARAMAIC ERIC INDICATORERTICAL JOINEREXCLAMATION OHEXTENDED " +"BHALEFATHATAN ABOVEFFED FLATBREADFFICE BUILDINGFINAL ANUSVARAFORWARD INDEX GE" +"RED TREMOLO-GHT WITH STARSGUNU TIMES ASHGYPTOLOGICAL AHESIVE BANDAGEHIRD-STAG" +"E HLIHREE-LEGGED TEIGHTWARDS VANEIKHAYA PUTNAYAING HANDS SIGNINOLOGICAL DOTIN" +"SERTION SIGNINVERTED BIRGAINVERTED DAMMAIRCULAR VIRAMAISED ROUND DOTISSION TI" +"CKETSITA PLUS GISH IVE KEY SYMBOLIVE OBOLS SIGNIWAZ TIR TYR TJOINED SQUARESLA" +"CE OF SAJDAHLEFTWARDS AND LEFTWARDS TICKLESS-THAN NOR LETTER OVERLAPLEVEN TWE" +"LFTHSLIGHTLY SMALL LITTLE SECTIONLOTUS POSITIONLOWER DIAGONALLOWER TERMINALME" +"DIUM DIAMONDMENSION ORIGINMID-LEVEL TONEMOTHETIC ABOVEMRACHNOTIKHAYANORTH ARA" +"BIAN NYI ZLA NAA DAOBLIQUE HYPHENOLD RESOLUTIONONE SOUND WAVEOOTNOTE MARKEROP" +"EN TENTACLESOPPOSING PIRIGORANGE DIAMONDORD SEPARATOR OSITION SYMBOLOT TILDE " +"ABOVEOTHERS CIRCLEDOUR OBOLS SIGNOUSING THUNDEROVER GUD LUGALPAO KAREN TONEPA" +"RTMENT STOREPEN MARK BELOWPLE WITH HEARTPLETE INFINITYPLITTING APARTPPED MIDD" +"LE UPPROTECTED AREAQUINARIUS SIGNRD PLACE MEDALREATIVE HEAVENREE-LINE STAFFRE" +"H FINAL FORMREVERSED-SCHWARIGHT CROSSBARRING MEGAPHONEROSS ON SHIELDSECOND SU" +"BUNITSEL LOCOMOTIVESEPARATOR MARKSHAN MEDIAL WASHESHIG TIMES SHRII PUSHPIKASI" +"DE-DOWN FACESMALL LETTER DSMALL LETTER JSMOKING SYMBOLSPEECH BUBBLESSQUIGGLE " +"ARROWSTRONG ISOLATETELPIECE CLOCKTERMINAL MARK-TETARTOS ICHOSTHAKA ANUDATTATH" +"ALAN ETHEL OTHER CHRISTMASTHOUSANDS MARKTHOUSANDS SIGNTHREE POINTED TIMES OPE" +"RATORTIMES SHU TENUTOP HALF BLACKTRADITIONAL ERTRANSMIT STATETRIANGLE CARETTR" +"IANGLE WITH TURKIC LETTER TWELFTH CIRCLETWO DOT LEADERTWO ENCLOSURESTWO WHITE" +" DOTSUAL WHEELCHAIRUBHAYATO MUKHAUND MARK ABOVEUNDER RELATIONUNION OPERATORUN" +"IT SEPARATORUP RIGHT BARB UPPED INDEX UPUPPER TERMINALUSPENSION MARKVENIENCE " +"STOREVERTICAL ABOVEVERTICAL COLONVERTICAL HEAVYVERTICAL LIGHTVONIC ASTERISKVR" +"ON SNOWFLAKEWITH DOT BELOWWITH FATHATAN WITH LEFT HOOKWORD SEPARATORXO EKFONI" +"TIKONYOUTHFUL FOLLYZAH WITH MEEM ZAKAYA LANTERN AND SKI BOOT AND YEN SIGN B B" +"AR SYMBOL BAT AND BALL BZHI MIG CAN CROSSING KA2 DIMINUTION-1 DIRECTIONAL HE" +"ADED ARROW OF THE HORNS OPPOSING KUR TIMES KASKAL VARIANT FORM WITH INK PEN W" +"ITH JEGOGAN WITH OVERBAR WITH TEE TOP WITHOUT SNOW-ESASA DOTTED-OFF CALENDAR-" +"OR-PLUS SIGN-PER-EM SPACEACCOMMODATIONALL LOST SIGNAMUHU ALAYNAAAN RUPEE SIGN" +"ANNED LEATHERANTIC FIGURE APPED PRESENTAR WITH QUILLARCHAIC KOPPAARGOSYNTHETO" +"NARLAUG SYMBOLARRED TRIDENTARROW OVERLAYAUDATE CHRIVIAWELLEMET YAZBACKSLASH B" +"ARBALL AND HOOPBASAN LETTER BOHAIRIC KHEIBOTTOM CORNERBOWING DEEPLYBY DEFINIT" +"IONCENTRED ABOVECHRYSANTHEMUMCIRCLE INSIDECITATION MARKCRIPTION TAKECRIPTIONA" +"L PACROSSING GABACROSSING GAN2CROSSING MUSHCULATED LORRYDI RIYAL SIGNDIAERESI" +"ZED UDIC MARK SIGNDOTTED ZLAMA DOUBLE CIRCLEDOUBLE HYPHENDOUBLE MUCAADDOUBLE " +"STROKEDVOECHELNAYA EAVENLY EARTHED PAPERCLIPSEDIC ANUSVARAEELING PERSONEHU FE" +"OH FE FEMPHATIC TONEER BOARD FILLERTION SYMBOLEUROPE-AFRICAEVERSED DAMMAFICAT" +"ION CARDFINAL LETTER FINAL SEMKATHFIXED-FORM RAFOREMENTIONEDFROWNING FACEFT A" +"RROWHEAD FULL SURROUNDGAR FRACTION GAW KAREN SHAGIFT ENVELOPEGTER TSHEG MAGYA" +" GRAM SHADH-TYPE SYMBOLHAKASSIAN CHEHAM DIGIT ONEHERICAL ANGLEHIEROGLYPHIC HI" +"NESE TONE YHREE TWELFTHSI LENGTH MARKI WITH STROKEIDE LOST SIGNIFI ROHINGYA I" +"GHT TWELFTHSILABIAL CLICKILE SEPARATORIMAGE BRACKETINTEREST SIGNINVERTED FORK" +"INVERTED TURNIOT SYLLABLE IRCLED INDEX ISH LIRA SIGNITING THROUGHIVE POINT ON" +"EIVE SLOW SIGNJES SU NGA ROJJAL ALLAAHU K WORK SYMBOLKAPYEOUNPIEUPL-TYPE SYMB" +"OLLATERAL CLICKLEFT CROSSBARLEGETOS ICHOSLISION SYMBOLLOCATION SIGNLOCK WITH " +"KEYLOOPED VIRAMALOSING SPIRALLVE FULL STOPLVEOLAR CLICKMAILBOX WITH MALL LETT" +"ER ZMALO POVYSHE MARKS CHAPTERMASORA CIRCLEMATU ALLAAHI MEDIUM SQUAREMELODIC " +"QITSAMESSENIAN TENMICROCOMPUTERMINDER RIBBONMINUS SIMILARMINUS WHITE XMOBILE " +"PHONESMODIFIER MARKMULTIOCULAR ONAP PIZZICATONG TERMINATORNINE TWELFTHSNING M" +"OVEMENTNP TRANSISTORNTY FULL STOPNUMERATOR ONENUMERIC SIGN OBLIQUE LINE OGOTY" +"PE SIGN OLVING HEARTSOMAN NUMERAL ONAL COMPUTERONG RIGHT LEGONG-LEGGED DEONGR" +"ATULATIONOON NOTEHEAD OPPOSING NAGAOTEHEAD BLACKOURTH SUBUNITOUT MIDDLE UPPA " +"NJI PIPAEMPAIRED ARROWSPLUS OPERATORPN TRANSISTORPPOSING LUGALPREPONDERANCEQU" +"ARTERS SIGNRACKETS ABOVERANKS CASKET RIGHT HARPOONRIGHT POINTERRIPLE SVARITAR" +"IZONTAL TAILRN PENTATHLONROTATED BIRGARPENTRY PLANERRIAGE RETURNRTABLE STEREO" +"S KAI APOTHESS KRYZHEM ON S UP TOGETHERSAL PLUS TUG2SAMYOK SANNYASELECTED ARE" +"ASHESH PLUS KISIA-AUSTRALIASIGN AVAGRAHASIGN PAMUDPODSILI PNEUMATASIMPLIFIED " +"ERSMALL LETTERSSSAGE WAITINGSTABLE SYMBOLSTERTIUS SIGNSYNDESMOS NEOTE ORDER M" +"ARKTED HAND SIGNTHIRD SUBUNITTIRTA TUMETESTOP HALF RINGTU WAS-SALAAMU WITH ST" +"ROKEUE OF LIBERTYUFFLE PRODUCTUPERIMPOSED XUPONDIUS SIGNUPSILON WITH UPWARDS " +"TRENDURNED W BELOWUSHING UPWARDUSICAL LEIMMAVE-LINE STAFFVEN POINT ONEVERGREE" +"N TREEVERLAY MIDDLEVERTICAL BARSVERTICAL FILLVERTICAL-LINEVICE CONTROL VOWEL " +"SIGN PAW RING INSIDEWAVY LOW LINEWAVY OVERLINEWAW-AYIN-RESHWHITE ELLIPSEWITH " +"ASTERISKWITH INTEGRALWO-LINE STAFFYMBOL TAU RHOYOD YOD PATAHYUUKALEAPINTUZHOU" +" NUMERAL AND PICTURE AND TOP END CROSSING GU IN TRIANGLE KLYUCHEVAYA LINE SY" +"MBOL OF ANTIMONY ON PEDESTAL OVER KISIM5 OVER MIDDLE OVER TWO PI SKEWED LEFT " +"WITH DAGESH WITH INDEX WITH UPTURN-DZUD RTAGS -MAIL SYMBOL-SHAPED SIGN-SIMPL" +"IFIED 6 LONG NGGOOACE INTEGRALACUTE ACCENTAFU LEERAEWAALLPOINT PENALT PAN SIG" +"NALTERNATING AND CRESCENTAND OPERATORANG KHANG GYAR DIAERESISARALLELOGRAMATNA" +"H HAFUKHATTOOED HEADBACK OF HANDBAHIRGOMUKHABEHIND CLOUDBETWEEN LIPSBINING MA" +"RK BLOWING FACEBLUE DIAMONDBRATION MODEBRIDGE ABOVEBSCRIPT ALEFBUTTON MOUSEBY" +"SMAL WATERCABBAGE-TREECALENDAR PADCENDING NODECHAIR SYMBOLCIAN LETTER CIRCLED" +" PLUSCIRCLES AND CK-O-LANTERNCLOSED MOUTHCRESCENT BARCROSSING GI4CROSSING KAL" +"CROSSING LU2CROSSING NUNDASHED ARROWDE MARK SIGNDENTAL CLICKDHRI LETTER DICTI" +"ON SIGNDIGRAPH KOTODIGRAPH YORIDOT OPERATORDOUBLE ARCH DOUBLE ARROWDOWN HARPO" +"ONDOWN NEUTRALDUG TIMES NIEEPING SMALLEIGHTH NOTESEMELY HEAVY EMISOFT SIGNENA" +"RIUS SIGNENOS CHRONOUERPENDICULARETRETES SIGNEVERING FACEFALLING DOTSFEMININE" +" DOTFERENCE MARKFLAG ON POSTFOLDED HANDSFORMING ARTSFOUNTAIN PENFT RERENGGANG" +"AW KAREN EUGBY FOOTBALLGEBA KAREN IGREEN DRAGONGROUND SLIDEGUARDED AREAHAH WI" +"TH DALHALF BRACKETHAND FORMAT HASIS SYMBOLHEAD-BANDAGEHIBITED SIGNHREE FINGER" +"SHYPHEN-MINUSIDENTICAL TOIGATURE SHRIILLED CIRCLEIN MIDDLE UPINDEX MIDDLEING " +"ENVELOPEING HAND FANING HITTING ING OPERATORINTEGRATION INUSOID SIGNINVERTEBR" +"ATEIRAGANA HOKAIRTY-SECOND IVE TWELFTHSKANA REPEAT KAPPA SYMBOLKHAMTI TONE-KH" +"MIMIC KHEILAM WITH YEHLARGE DOUBLELARGE TRIPLELATALIZATIONLAYING CARDSLEADING" +" EYESLEFT HARPOONLEFT POINTERLER CONSTANTLICKING LIPSLIMBS DIGITSLINGING FIRE" +"LINKING MARKLL MODIFIER-LLE PATTERN LOWER CORNERLOWERED FLAGLU PLUS ESH2LUS N" +"OTEHEADLYING SAUCERM NSHUT NYAMMADDA ABOVE MALL SECTIONMANNAZ MAN MMBELLISHME" +"NTMEDARY CAMELMEDIUM SHAFTMETA STAVROUMIDDLE PIECEMING TO MEETMONOGRAPH UKMPH" +"ASIS MARKMPTY CENTRE MUM TIMES PAN ELEMENT OFNARROW SHAFTNATURAL SIGNNCK CONS" +"TANTNEPOSTOYANNYNERSHIP SIGNNEUTRAL FACENGLE BARLINENJALA GONDI NORTHERN TSEN" +"OTCHED HOOKNOTCHED TAILNUITY SYMBOLOGOGRAM NYAJOHAZARD SIGNOID NOTEHEADOING T" +"O MEETOK HAND SIGNON US SYMBOLONISHED FACEOPENING LEFTOPLE HUGGINGOPPOSING LU" +"2OQ NSHUT YUMOTTOM HALF OOUCHES THUMBOUGHT BUBBLEOUR TWELFTHSPHEME JOINERPOET" +"RY MARK-PORT CONTROLPOUTING FACEPROTOS ICHOSPUT DRACONISQUARED ARROWQUARTER S" +"IGNQUIRREL TAILRAFFIC LIGHTRAH BEN YOMORANCHING OUTRCHAIC SAMPIRCHAIC SHRIIRE" +"FACE COLONREN CROSSINGREVERSE MARKRIAGE SYMBOLRIAL TRAMWAYRIGHT DOUBLERIGHT S" +"INGLERING OVERLAYRION CHRONONRISTMAS TREERNAM BCAD MAROLLING EYESROUNDED ZERO" +"RROUND FROM S ABOVE SIGNS SUBPUNCTISSAZ IS ISS ISECTION SIGNSH ZIDA TENUSHED " +"BARLINESHORT RIKRIKSMALL DOUBLESMALL TRIPLESMILING FACESS-THAN SIGNSTICK FIGU" +"RESUR OVER SURT ASRAARUHUMT MONGKEUAEQTE SEPARATORTEARS OF JOYTERNATE AYINTHE" +"TA SYMBOLTHIC LETTER THREE HEARTSTIC LETTER NTOP-LIGHTED TRAGRAM FOR TRIPLE D" +"ANDATRIPLE FLAMEUBSCRIPT TWOUDA DRACONISUGHT BALLOONUH PLUS GISHULL NOTEHEADU" +"ME INTEGRALUN WITH RAYSUNNER FRAME-UPPER CORNERUSEATED FACEUTH ARABIAN UTH-SL" +"AVEY KVAKRAHASANYAVER EQUAL TOVICTORY HANDVOLTAGE SIGNWDATA SQUAREWIGGLY FENC" +"EWITH SMALL VXIRON KLASMAYAN NUMERAL YMBOL BINDU YMBOL MUEANGYOD TRIANGLEYOUT" +"HFULNESS AND MACRON DECORATION I ZAPYATOY OF FLOWERS OF FORTUNE OVER BULUG OV" +"ER IDIM PLUS MASH2 PLUS NUNUZ PROPORTION S ZAPYATOY SHOE STILE TIMES ESH2 WI" +"TH CARON WITH COMMA WITH DASIA WITH FLASH WITH JACKS WITH KASRA WITH MAPIQ WI" +"TH PLATE WITH TITLO WITH TRILL WRIST FLEX-COPPER ORE-MINUS SIGN-OFF SYMBOL0 F" +"OOTSTOOL3 LONG NGGO5 LONG MBOO6 LONG NGGEAA AS-SALAAACKED COMMAACTIVE SIGNACU" +"TE-GRAVEAESCULAPIUSAESHAE NYAMAGAZ DAEG DAGONAL SIGNAILLESS PHIAMUSED FACEARA" +"M GONDI ARM SPIRAL ARMS RAISEDARPEGGIATO ASE TO THE ASURE CHESTATH PRODUCTATI" +"ON POINTATION SPACEBANK SYMBOLBELL SYMBOLBELOW RIGHTBETA SYMBOLBLACK ARROWBOT" +"TOM MARKBREVE BELOWBUMPY ABOVEBZHI -KHYILCAN RGYINGSCARET TILDECCUMULATIONCE " +"OF PIZZACELANDIC-YRCH AND LAMPCHING CHICKCLOSED JAWSCOMBINATIONCOND SCREENCON" +"TAIN AS CREDIT SIGNCROSSING BUCROSSING ENCROSSING IMCROSSING PICROSSING URCTI" +"ON MARK CTION MARK-CURVED BENDDALETH-RESHDASH SYMBOLDE KIKAKUI DENT EMBLEMDES" +"K PERSONDI ALLAAHU DIATONON DIDOACHASHMEEDOLLAR SIGNDONG TSHUGSDOUBLE AND DOU" "BLE MARKDOUBLE RINGDOUBLE SHADDUATION CAPDYO CHRONONE WITH VEILE2 TIMES ANEAV" "ER DENE EDICAL MASKEEZING FACEEN STRAIGHTENERGY WAVEENG DIGRAPHENTHESIZED EOR" "GIAN NAREPIDAUREAN ERCENT SIGNESH DIGRAPHETEI MAYEK EUNJOMNDEUQFGHANI SIGNFIN" "AL SIGMAFIRE ENGINEFOURTH ROOTGAP FILLER-GAYANUKITTAGE AT NIGHTGENTLE WINDGHA" -"IN WITH GRAMMA SIGNGRAVE-ACUTEGSUM -KHYILGUISED FACEHAGGAR YAZHHANG KHUDAMHAW" -"H HMONG HEATED FACEHEAVEN MARKHEELED SHOEHIGH STROKEHITE DRAGONHLETIC SHOEHOK" -"HLOM ON HORA DIGIT HREE BALUDAI TIMES BADI TIMES NUNIBLE-CREE YIL FRAGMENTILC" -"ROW SIGNILIQUA SIGNIMULTANEOUSIN EQUAL TOINDERGARTENINDICESIMA IPLE TONGUEIRC" -"LED TEXTIRCULAR ARCISIGOTHIC ZIVERY TRUCKIX TWELFTHSJECT SYMBOLJIHVAMULIYAJOY" -"OUS LAKEKAARA POLLUKRAINIAN IEKTIESELSKABL OF THREADL TIMES LALLACK SULFURLAC" -"KLETTER LATIN CROSSLCE TSA CANLD POLISH OLD SCRIPT XLEAF CLOVERLEEP SYMBOLLEF" -"T DOUBLELEFT SINGLELEFT SYMBOLLETION MARKLEU SATANGALINE FILLERLON SKEWED LOS" -"ED ENTRYLOSING MARKLOTI NAGRI LT OF CLOTHLTED FLOWERLTERNATE AALTERNATE YALU " -"PLUS IGILUPOVODNAYAMACING FACEMBA BAYANNAMBLER GLASSME LONG CANMED RGYINGSMFO" -"N PIPAEMMICAL HEARTMIDDLE BENTMIDDLE HOOKMIDDLE STEMMONOCULAR OMOVED BELOWMUN" -"CIA SIGNMUUSIKATOANN THE VERGENBLENDED UKND ODD SIGNND OF PIECENG LEFT LEGNIK" -"OLSBURG NITIAL IZHENSE CHEEKS NTIMONY ORENUMBER SIGNNUMBER ZERONUN HAFUKHANUS" -"VARA ONENYIS -KHYILOF ENVELOPEOF MASHFAATOHINGYA YEHOLD NUBIAN OM PUSHPIKAOMA" -"N SIYAQ ONIAN SIGN OPPOSING ENOPPOSING IMOR OPERATORORCE SYMBOLORT BARLINEOUB" -"LE ACUTEOUBLE DANDAOUNDED FACEOUTHERN TSEOVERSTRUCK PARAKALESMAPERISPOMENIPHN" -"AEK MUANPIRAL FROM PODCHASHIEMPOST OFFICEPUT MORTUUMQUERED FLAGQUIQUADRATERA " -"SOMPENG RACHMA SIGNRADITIONAL RAISED FLAGRANSMISSIONRCHAIC JNYAREAKTHROUGHRES" -"PONDS TORIGHT GUARDRIGHT HEAVYRIGHT-HAND RING LIQUIDRIPLE PRIMERISING DOTSRIT" -"ING HANDROKUTASTI ARONTHISMATAROR-BARRED ROSS ACCENTRPOON ABOVERUNNING MANRYV" -"NIA SIGNSECOND MARKSHAAYATHIYASHEQEL SIGNSIMILE SIGNSINGLE AND SMALL CLOUDSPE" -"ED TRAINSPIRATED FASSANGKIYEOKSTEAMY ROOMSTERED SIGNSTORIC SITESYMBOL VIDJSYU" -"RA SASAKT VEGETABLETA EQUAL TOTENS DIGIT TETRAFONIASTH-THALATHATHAM DIGIT THI" -"RD BLOCKTHIRDS SIGNTHREE TIMESTIEE SHEUOQTIGHT ACUTETONAL MARK TRAIGHT WAWTRE" -"SS SIGN TRESVETLAYATRIAN CAMELTRUNCATED ATUNE COOKIETWO FINGERSTY THOUSANDU-T" -"IGALARI UBLE TONGUEUETTE BREADUG RTAGS GYUISHED FACEULO TWO SUMUMAN FIGUREUNI" -"T DIGIT UNJO WYNN WUPADHMANIYAURRENT SIGNUSHING HANDUTH CORNERSUTING WHALEVA " -"V CHELNUVAMAGOMUKHAVARYS ICHOSVE OF PEACEVERTEX OF VVISARGA ONEVYKA ABOVE WAS" -"LA ABOVEWE PALAUNG WHITE JOKERWING NEEDLEWINKING EYEWITH GARDENWO TWELFTHSXAG" -"RAM FOR XESTES SIGNXI RADICAL XTINGUISHERYEORINHIEUHZERO THIRDSZIGZAG LINEZZA" -" WA JALL AND ACUTE AND ARROW AND BREVE AND KNIFE AND MOUSE DRAWINGS KABA TEN" -"U LATE FORM OF DHARMA OVER KAD5 PLUS SHU2 POVODNAYA RESUPINUS RGYA GRAM SCHRO" -"EDER THOUSANDS TIMES SHE WITH BARS WITH BASE WITH BELT WITH EGGS WITH LOW WI" -"TH PAGE WITH PLUS WITH RAIN WITH RING WITH TAIL WITH TICK-LUE KARAN-SHAPED HA" -"1 LONG MBE1 PLASTICS2 LONG MBO2 PLASTICS2 PLUS ASH3 PLASTICS4 PLASTICS5 PLAST" -"ICS6 PLASTICS7 PLASTICSA PLUS IGIA PLUS KURA TANG LAIAB2 TIMES ABATA TREEACE " -"FILLERADAK BINDIADDA WITH AEDA-PILLAAILED BIRDAKKHANGYAOALEF LAMEDALEF WITH A" -"LENT SIGNALLY MARK ANDHI MARKANGKHANKHUANGULAR TOAR ECLIPSEASPIRATIONASTERISC" -"USAT HORIZONATRICHISMAATTY WITH AUTOMOBILEAYER BEADSBA SATANGABELOW LEFTBLACK" -" FLAGBLUE HEARTBOLD SHAFTBROKEN BARBSTRUCTIONC WITH DOTCAPITAL ETCH BALLOONCH" -"AD RTAGSCHARACTER-CHECK MARKCIRCLED CACISIVENESSCOLATE BARCOMPONENT COMPONENT" -"-CROPHONIC CROSS MARKCURLED WAWCURLY HAIRCY MESSAGED KEYBOARDD WITH DOTDA PLU" -"S HADA SATANGADED PERSONDIATONIKI DIGIT ZERODIRGA MUREDOUBLE BARDUOUS TREEE P" -"LUS SUMEARLY FORMEARTH MARKEBENSTIMMEED FIGURE-ED FINGERSEDESTRIANSEDIC TONE " -"EEKING EYEEICH STARKEIGHTIETHSELT BUCKLEENETRATIONENS SYMBOLENTHUSIASMEONGCHI" -"EUMEQUIHOPPERETTA-PILLAEUTRAL YEREVERSED PEF SHE-GOATFAHRENHEITFFICULTIESFINA" -"L HETHFOR RECORDFORMATTINGFRONT WALLFTOGGOS OUG MUNDARI GAGE CLAIMGANDA MARKG" -"AS BZUNG GBAKURUNENGGING FACEGGRAVATIONGHT LIFTERGIMEL-HETHGOLUBCHIK GREE SLA" -"SHGUA PI MAOHAAPRAANA HAMZA MARKHAN DIGIT HEAVY BEATHERMOMETERHOOK ABOVEHOTIC" -" HOOKHREE ABOVEHUNGARIAN I ARCHAIONICAL TAPERIDDLE MARKIDEOGRAPH IED SHRIMPIG" -"ATING RAIGATURE OEIKRON ISONILE FOLDERINDEX BENTINDU BELOWING LARGE ING-SHIFT" -" INHERENT AINITIAL RAION BOTTLEISMUTH OREIT MBAAKETITH DIGIT IXTHS DISHJONG T" -"ILE K2 PLUS BUKA SATANGAKAI SYMBOLKINDI MVOPKRYZHEVAYALACK JOKERLANE MERGELE " -"LETTER LE-DELAYEDLEFT GUARDLEFT HEAVYLEFT LIGHTLEFT SERIFLEFT-HAND LEK ATTAK " -"LENDED YUSLET SYMBOLLGIZ EOLHXLHAG RTAGSLIGHT BEATLIGHT BULBLIMITATIONLINDRIC" -"ITYLLOW HEARTLOGICAL ORLONG FINALLONG OVER LONG TSHEGLOWER HOOKLOWER STEMLPAP" -"RAANA LTERNATE ULTIC CROSSM STALLIONMADDA MARKMALL ALEPHMBINING DOME PLUS ENM" -"EEM ABOVEMEL SYMBOLMILLE SIGNMINO TILE MONOFONIASMONOGRAM BMONOSPACE MONTH SI" -"GNMOTORCYCLEN NGGEUAETNAKE BELOWNANGMONTHONASPIRATEDNDA PA NJINDU TEMPLENGLIC" -"ANA WNGUAGE TAGNOTE WITH NTITY MARKNTO SHRINENUMBER TENOANDAKHIATOCKET SHIPOF" -" HYGIEIAOLING FACEOLON EQUALOMMA BELOWON MEDIAL OON LILITHOON SELENAOP NKAARA" -"EOPEN SHELFOROME SIGNORTHERN TAOSSED SHEIOSTAL MARKOTING STAROUND OMEGAOUR FI" -"FTHSOUT INDEX OUTER JOINOUTHERN TAPAO DIGIT PASSIMBANGPEDAL MARKPLUS BELOWPLU" -"S ERIN2PLUS NAGA POLICE CARPOUND SIGNPPING BIRDPPOPOTAMUSPRALINEAR QUISH QUAD" -"R2 PLUS SURAGGISMATARCHAIC KHARDHACANDRARECIPITATERED DRAGONRESH BELOWREVERSE" -"D IRGE CIRCLERGE SQUARERHO SYMBOLRIGHT HOOKRIGHT SIGNRING ABOVERING THUMBRKIN" -"G FACEROAD OMEGAROEZENIAN ROUND DOT ROUNDED ERRSI SYMBOLRUDIMENTA RUPEE MARKS" -"BUB -CHALSCAN LINE-SE-CREE SKSELINE ESHSGOR RTAGSSHARP SIGNSHMIRI YEHSIDEWAYS" -" ISIXTEENTHSSMILO SIGNSPACE MARKSS OF MILKSSANGARAEASSANGPIEUPST PALETTEST-FE" -"EDINGSTRAL SIGNSTROM SIGNSTRUCTION SYLLABLE MT AND BOLTTAIL GLASSTAMAN SIGNTE" -"LEVISIONTEMPLATIONTERNATIVE TESE CROSSTHAPASCAN THDAY CAKETHMIKON N TIMES SIG" -"NTING HEARTTOMIC BOMBTOP CORNERTREFACTIONTRESS AND TRETCHED CTRIPLE DOTTWENTI" -"ETHSTWO SHORTSTWO THIRDSTYPE COLONU CIN HAU U2 PLUS BAUAM TSHOOJUARDEDNESSUBL" -"E DASH UM ROTUNDAUMAN EARTHUNG KHEMA UNKIA SIGNUP HARPOONUP NEUTRALUP OR DOWN" -"UPPER HOOKUPPER STEMUR HUNDREDUR YIG MGOURIPIGMENTURVED OMETUSEL HORSEUTH OR " -"SPYVASTI SIGNVEL SLIDERVERAGE BOXVIE CAMERAVIOUS PAGEW OR MODELWHITE FLAGWHIT" -"E HAIRWHOLE NOTEWING HEARTWITH SPOONWITH STRAWWITH WINGSWO SHORTS XED BICEPSX" -"HEEJ CEEVY AND RICEYEH BARREEYMBOL AIVAYPE PIECE ZAR AMULETZEIRO SIGNZH DIGRA" -"PHZU OVER ZU AND BELT AND CURL AND TAIL APODEXIA DIVIDERS FROM BAR GARSHUNI O" -"F BLOOD OF PAPER OVER BAL OVER LUM PLUS GAL PLUS GUD PLUS KU3 PLUS LAL PLUS S" -"AG PLUS TUR PLUS ZA7 RA OR RI RICKSHAW SPARKLER STREAMER TIMES HA TIMES UD TR" -"OMIKON-AMMONIAC-KHYUD PA-LOW TONE-MID TONE-STACCATO0 LONG LE1 CHARIOT2 GARMEN" -"T247 DIPTE3 PLUS AN5 BATHTUB5 CYPERUS5 LONG JOA PLUS NAABOVE TO ACE NOTE ACIN" -"G CARADEG ADEGADMA GDANAF PERSONAFFE FACEAINTBRUSHAISED DOTAJANYALANAL RUNOUT" -"ALAYALAM ALI GALI ALPAPRANAANEROSIS ANG CITI ANGGEUAETANSKRIT SANTAYALANANTHA" -"KHATAOS ICHOSARCHAIC MARISTERA ARM CLOCKAS MEMBERATHAMASATATTACHED AVE ARROWB" -" DIGRAPHBASE UNITBEER MUGSBIAL SIGNBICYCLISTBING CANEBITE LIPSBKHASIAN BO BAI" -"MAIBO GYFU GBOTH BENTBRUL SHADBTRACTIONCANG TE-UCAPACITORCAPITAL DCAPITAL ICA" -"PITAL QCARTRIDGECHANICAL CHAVIYANICHOSEONG CLOSED PLCOIN SIGNCOMPLETEDCONJOIN" -"ERCORN FACECRESCENDOCROUCHINGCUBE ROOTCULTATIOND SALTIREDAD WITH DENT AND DEP" -"ARTUREDIAGONALSDOWN HANDDOWN SIGNDOWN STEPDOX CROSSDRAM SIGNDUS RTAGSE AT LEF" -"TEAVY DOWNEBIT SIGNED DIGIT ED PLANETEEN WITH EFAIDRIN EFORMED TEIGHT OF ELEG" -"RAPH ELLOWSHIPEMBEDDINGEMPTY SETENTRE OF ENTRY SAWER BUBBLEERCIAL ATERTY LINE" -"ES AKURU ESAME DOTETER SIGNETRASIMOUETTI BALLEURO SIGNFACING UPFEH WITH FINAL" -" MEMFINAL NGAFINAL NUNFISH TAILFLAT SIGNFOUR BENTFROM WALLG IN HOLEGITTARIUSG" -"REATER YGRIK SIGNHAIKSUKI HALF NOTEHALF SIGNHALSHELETHARACTERSHARD SIGNHEADSC" -"ARFHI SYMBOLHIMA SIMAHINOCEROSHIYYAALAAHOOK MARKHOT SASAKHREE FOR HWAZ EH EI " -"PLUS LIIA SYMBOLIALECT-P ICE CREAMIDEOGRAM IDEWAYS UIGH HAMZAIGHTH ASHIGN NUK" -"TAIGN SAFHAIGN TOMPIILE TILDEILIPPINE IN SQUAREINAL NOTEINARBORASING CARD ING" -" DOLLSING GLOVEING LANESING STONEINISHMENTINNYIIYHEIRST MARKISEN-ISENITRA SIG" -"NIVE-PULL-IVINATIONJERUSALEMK GESTUREKA- SHOG KAMEYTSA KEMPHRENGKING BOOTKSTR" -"EPTONKU RU KHAKYO TOWERL ME HANDLACKFOOT LAN SIGN LARGEMENTLEFT RINGLEFT TACK" -"LESS TREELIGHTNINGLINE FACELISSANDO LITTLE UPLIVERANCELLABLE B0LLABLE OMLOND " -"HAIRLONG TIP LOWER DOTLVIN SIGNM HE-GOATMAEMGBIEEMALL RINGMARK CIM MARK SHADM" -"BROIDERYMETOBELUSMHANCHOLLMRACHNAYAMUKPHRENGNA KHONNANCLOSING NDAILING NFORZA" -"NDONG SANDALNGER ROOTNGER SHIPNGUN SIGNNIGGAHITANIGHT OF NIHSHVASANING SIGNNO" -" TELEIANSERT AT NTERPRISENTESSENCENTRACTIONNUSVARAYANVERTED ROCCLUSIONODIASTO" -"LEOF STIMMEOKED HEADOKED TAILOKOUFISMAOM SYMBOLON GROUNDON TEUAEQONE MARK-ONE" -" THIRDONG GRAVEONGSEONG OO DENNENOP HALF OOPEN EYESOPEN JAWSORT-TWIG-ORTH WIN" -"DOTAL SIGNOURA SIGNOUT BEAMSOUT MOUTHOUTH WINDOVER GAN2OVER MUSHOW KAVYKAP DI" -"GRAPHP ELAMITEPAA-PILLAPADE SUITPANYANGGAPENT SIGNPENTASEMEPIDERY HAPLE HEART" -"POSITIONSPPOINTED PPOSITIONPROJECTORQUADCOLONQUADRANT-QUEEN OF QUSHSHAYAR PLU" -"S RARCHAIC IIRCHAIC RARDEL DKARREAK HERERED JOKERREDNE ON REFORMED RFUL FACER" -"IED FACERNEY PARARO WIDTH ROJECTIONROTATION-RPORATIONRTER MARKRTS MEDALRUM CL" -"EF-RWARI DDAS DIGRAPHSEMICOLONSEPTEMBERSHAB CEEBSIVE FACESMALL YUSSOF PASUQSP" -"IRITUS SSANGSIOSSTAL BALLSTEBASKETSTRELNAYAT OF MEATT ON BONETABE SIGNTAKHALL" -"USTANDSTILLTED PLANTTEH ABOVETIMES NA2TIMES PAPTO CORNERTONE MAI TRAIGHT UTRE" -"DECILETRESVETLOTTED STEMTUKWENTISTUTEYASATUBSTITUTEUE MAEMBAULL BLANKUMED HEA" -"DUNGLASSESUNGSEONG UPPER DOTUPTSTIMMEUR CORNERUR-DE-LISURAMAZDAAURLY LOOPURNE" -"D AYBURNED GANURUZ UR UUTRA MARKUURDHAJA UVUZHAKKUVANAGARI VELOPMENTVER LUGAL" -"VERLONG AVEUAENGAMVICE MARKVIGINTILEVINE LEAFVISARGAYAVOCALIC RVOETOCHIEVRAKH" -"IYA WASH TAILWING STARWITH FACEWORDSPACEWRINKLES WRY SMILEXCITEMENTXHAUSTIONY" -" BLOSSOMY-FOURTH Y-FOURTHSYEAR SIGNYEH ABOVEYRANISMA Z DIGRAPHZAKRYTAYAZAL SA" -"SAKZENE RINGZERO SIGNZIR SASAK ANTENNA AT DUSK CEDILLA FACING HANDLES KEMBAN" -"G LANTANG NUTILLU OF YARN ON LEFT OTTAVA OVER KG OVER MU OVER ZI PLUS DI PLU" -"S DU PLUS RU POLNAYA RASWADI SATCHEL SCOTS S SLIDING TALENTS TTUDDAG YUQ NAE-" -"CREE TH-EM DASH-KHIEUKH-PHIEUPH-X BELOW0 BRONZE1 BARLEY1 HELMET3 ARMOUR56 TUR" -"O28 KANAKOA SIGN AABAAFILIABOAFILIACKSPACEAEN NYAMAIYANNOIALLIANCEAMS HORNANC" -" SIGNANE TREEANS SIGNAPITAL FAR TSHESARCASITEARKLEAN ARRIVINGARSI YEHARTYRIA " -"AST WINDASTERN WATAKANA ATE MARKATEBOARDATH MARKAVY BANDAY-NIGHTAZHAAKKUBACKW" -"ARDBASSINETBATBEIT BER POLEBEVERAGEBIEE FONBILLIONSBINOVILEBLE SIGNBLED CARBL" -"INEAR BOL SIGNBOT FACEBOX TRAYBRA FACEBUNDANCEC SIYAQ CABLEWAYCAL DISCCANDICU" -"SCASSETTECEILING CER BALLCHATTAWACHINESE CK CHARTCLIMBINGCOMBINEDCOUNCIL COUN" -"TERSCURLICUECURSIVE D BUBBLED CROSS DAMMATANDANTAJA DDY BEARDIAMONDSDIFONIASD" -"IM GUNUDIT CARDDOCUMENTDS-CREE DUSHENNADVANTAGEDVISVARAE OF POOEBEEFILIECH YI" -"WNED BRICKEGORIAN EK ONKARELEPHANTEN NTEUMENICIAN EOUT BOXER TRUTHERAL URNERD" -"IGRISEREVODKAESH LOOPEST WINDET SHOESETA SIGNETRASEMEEUFEUAETEVEN OF EVERANCE" -"EXCHANGEFEBRUARYFILE BOXFINAL THFLOURISHFOR STOPFRAKTUR FRICAN DGARITIC GBASI" -"NNAGENITIVEGERPRINTGLASNAYAGORAZDO GREAT SAHAGALL HHALF GURHAN-AKATHARBAHAYHA" -"RMONICHESPIAN HOP BELLHREE OF I SHAKTIICHAEAN IGHT ARMIGMOID SIMANSIS INAGARI" -" INDUCTORING BELLING BOWLING ROD IRD MARKIS FORM IS WHEELIS-PILLAITA MFONJACK" -" OF JAVIYANIJUNCTIONKAIYARAAKASRATANKATAKANAL POLISHL-LAKUNALA LENGALATION XL" -"EANING LESS SHALESSER YLF RING LFWIDTH LKULIZMYLOCATIVELONG BARLONG S TLORRAI" -"NELOW STOPLOZHITIELTRY LEGLUB SUITM ALLAAHMALL AXEMANDARINMANGALAMMARRATANME " -"BADGEME WITH MEM-QOPHMIONIAN MMATION MON TIMEMY HOUSEN-JOINERNA METEKNAMENNY " -"NAVIYANINCE SIGNNED FOODNEIFORM NG RTAGSNI ABOVENINE OF NITIAL ZNO SLASHNO TH" -"UMBNOTE PADNOVEMBERNRES TOSOBOOFILIOCALIC MOCK SALTOCUS OF ODESTONEOHM SIGNOL" -"LOWINGOM NTEUMOMANIAN OMMA BARON CROSSONE FOR OO TYPE OREHEAD ORM FEEDOT MBUA" -"EOTIFIED OVER BU OVER GA2OVER GI4OVER SAGOVER SHEOVER TIROVERRIDEPAIRTHRAPAKP" -"AK EPALOCHKAPARATED PAVIYANIPENTAGONPRECEDESPROSTAYAPUB DAWBPUN IYEKQAIRTHRAQ" -"UINTILERAMMA GGRASMIAN RAT RAI RAUGHTS RDEL NAGREATNESSRED HAIRREE MARKRESVET" -"LYRILLIONSRIYOOSANROSHTHI ROSSED ORSE DUNGS OCHKOMSALT OF SALTIRESSANYAKA SCR" -"IPT GSE WEDGESENTAGONSEXTANT-SHKIR KASHOE JOTSHORT ERSIFISTONSIGN LAESIGN PVO" -"SIX DOTSSMA SIGNSNA LDANSOFTNESSSPERSIONSQUEEZEDSUCCEEDSSUPERSETSWIMMINGT NGG" -"EETTAALUJA TAI LUE TAR EYESTER FACETHIOPIC THOLHOMATHOSCOPETICK IN TIRRUP RTI" -"SMOS ETO-LEFT TOWARDS TRI DISHTRICOLONTTENTIONTTO MARKTURNED MUAREG YAUATRILL" -"OUBJOINERUDAWADI UKEUTNDAULLS LEGUNDERDOTUNDERTIEUNG DASHUP TRUCKV OVER MVE S" -"ASAKVERGENCEVESSEL BVOLUTIONVOMITINGW PRINTSWASH KAFWBOY HATWN HEARTWO ABOVEW" -"ON SIGNWRINKLEDWRITING XCELLENTY BEETLEY POPPERYAMAKKANYBEYFILIYENISEI YER YA" -"GHYESIEUNGYIDDISH YPORROONYRILLIC ZAKRYTOEZWARAKAYZWJ THAJ APLOUN BUTTON CER-" -"WA FLEXUS ISLAND KEFULA LONSUM MAELEE MENDUT MINUS MUOMAE MUQDAM OCLOCK OPEN" -"-O PLOPHU RAMBAT SHAKER SLOWLY STRIDE TEDUNG WAAJIB WOLOSO-CREE R-KIYEOK-MACR" -"ON-MU-MO--SHIFT--THIRTY-TIKEUT-WELSH 0 SPEAR0 WHEAT1 ARROW2 OLIVE2 WOMAN26 EY" -"YY3 AREPA3 EIGHT3 MONTH3 OMEGA3 SPICE3 SWORD3 WHEEL5 NGGEE6 NGGOO7 NGGUA7 NGU" -"AN9 CLOTH9 NGGAAA -PHRUA NAME ACTER TAD NECKAELAENGAETMEUNAHAPAKHALESMA ALLOT" -" XALTILLOAM ALEFAN MARKAND ENDANDERERANGKUOQANGLED ANGLONGANGOLATAPEZIUMARDNE" -"SSARRED BARRED OAS SIGNASHTRA ASUTORUATAEAN ATH OF AU MARKAULDRONAUNTLETAXIMA" -"TAAY SIGNBAIRKANBAMBOOSBARREKHBERGINEBERRIESBIG YUSBLACHKOBOARDERBOOSTERBORZA" -"YABOURINGBREVIS BUFFALOBULANCECABINETCAP TENCAYANNACELSIUSCHEINAPCHIEUCHCK LI" -"MECLEAVERCLOSE ECLOTHESCOMING CONTACTCOPTIC CRACKERD MADDADA FACEDANCINGDANES" -"E DAYANNADEAVOURDHALATHDIARGONDIPLOUNDISIMOUDOFONONDRIL BUDU NJAADYNAMICE DRI" -"NKE GLASSEAD OREEAVY YAECEMBERED RICEEFT ARMEIGHT KEL PUMPEN LEAFENSHUETER TH" -"ANERNIN AESTIVALETNAHTAEULEUNGF DAVIDF SASAKFATIGUEFAYANNAFINAGH FINAL YFLUEN" -"CEFORKINGGAYANNAGENERALGHEUGHEGLAGOLIGO-KARTGOLIAN GRADUALHAARKAAHALANTAHANGU" -"L HAYANNAHEADINGHEXAGONHI SIGNHIUCHUSHODDONDHYAAUSHI NTEUMI RTAGSIANGQI IBIFI" -"LIIC WANDICOPTERICYCLESIFIED EIKHAHITIL DRUMILLEANNIMILAR INNABARISIBLE ITALI" -"C ITON RAIVE OF JAIN OMJARATI JAYANNAJECTIVEJERAN JJIBWAY KARO BAKAYANNAKEUAE" -"RIKHA YATKKURUNIKOMBUVAKOQNDONKORONISKPAK WAKUTAARUKYLISMAL SEGNOLAGIOS LAK-0" -"50LAMITE LASHES LAYANNALE LEAFLEK TOOLENGTH-LEUT KALEYBALLLF FACELIGHT XLJUDI" -"JELLYFISHLOSION LYGISMAMAAYYAAMAI SATMANCHU MARCATOMASSAGEMBOL B0MEETORUMERIC" -"ASMINGKALMINIMA MONSTERMRACHNYMUNGKAHNANCIALNAYANNANEQUDAANESTED NG MASKNIKAH" -"ITNJAEMLINUMBERSOCTAGONOCTANT-OCTOBEROF SOAPOFFICEROGDIAN OKRYTIEOLAPUK OMERA" -"NGON FACEONG UEXONGONANONTIEENOP MARKORCULUSOREVMA ORKHON ORTIETHOT NGOMOT RE" -"PHOUR OF OUT HUBOUTWARDOVER ANOVER DUOW ALEFOWILO SOX BACKOX LINEP PIEETPALLA" -"WAPANESE PANSIOSPARERENPAYANNAPAYEROKPECTIVEPEGERMAPENGKALPERVISEPHUTHAOPLOYA" -"N POMOFO POVODNYPPROACHPRENKHAPSTICKSPTHAHA PURPLE PUSHPINQUARIUSQUEEZE R2 GU" -"NURA REPARAKHANGRANGKEPRARIETYRAYANNARD FACERDO RJEREATHY REREKANRESILLORIPPL" -"E RISIMOUROGRESSROKEN LRRECTUSRTHIAN RY FACES-SAJDASA VAH SAMPHAOSANDHI SANGA" -"N SAYANNASCOOTERSERPINASEXTILESHAKINGSHIFT TSHORT ASIDDHAMSIGN UDSOLDIERSOV R" -"OGSPRINGSST TUBESTERINGSUKUUDOSYNAGMAT ASHESTA MARKTAISYOUTALL AATASHEELTAYAN" -"NATCHFORKTHALIYATHESEOSTHIEUTHTHKUQI TIKRAMATIVATE TORNADOTRAINERTROLLEYTRYAS" -"KATSECHKATTHACANTTILIK TYSCAPEUBUFILIUKKAKHAUM IYEKUN MEUTUP HANDUP MARKUP SI" -"GNUP STEPUP TACKURATIONURFACE URGLASSUSSYERUUT TIMEUYGHUR VANESE VAPOURSVAV Y" -"ODVAYANNAVE DOT VEMENT-VEW NOWVILIK BVILLAINVOICINGVOWEL KVYSOKO WAZ EOHWDRIV" -"ERWIFRUITWIGNYANWO FOR WO MARKWO WAENWORSHIPXOPHONEY GREENY HEARTYA LAMPYAH L" -"I YANMAR YAYANNAYELLOW YMAIC LYNAMIC ZQAPHA AGUNG DIPLI EPOCH EQUID FACE- GA" -"TE KAPAL LELET LONGA MELIK MURDA QATAN SPLIT TIKHY-HIDET-HIEUH-IEUNG-PIEUP0 " -"NGGI0 NGGO0 NYON0 NYUN00-1021 GBOO1 GOLD1 HORN1 NDEE1 WINE2 KPOO2 NGGU3 GBEE3" -" HEEI3 NGGA4 DART4 DEER4 KPEE4 MUAN4 NGEN4 NJOO4 NYIN5 MERI5 WOOL6 GUEI6 HUAN" -"6 NGGE6 TREE7 GUAN7 KAPO7 MBEE7 MBUU7 NDOO7 NGON8 HOOU8 MBEE8 NYAN8 NYEN9 MUE" -"N9 NJEEA HAAMA-KARAAASHAEACINTHAEMMAEAESURAAFFIX AGOGUEAGRANTAILUREAJANI AK-6" -"68AKABATANCHORANGKATANIMALANUARYAPISMAAPLI MAPYRUSARADDOARBUTAARSEOSASHGABASS" -"INGATTERYATTIC AUTUMNBAFILIBANWA BEFILIBETAN BGBIEEBISCUSBISHOPBLINK BOFILIBO" -"WTIEBUFFERBURGERC CLEFCALATECASTLECATAWACEVITUCHADINCHAMKOCHEIKHCHEMA CHESS C" -"HIKI CHIRETCHO CHCHURCHCKNESSCLOSETCODILECRAYONCREASECUMBERCUPPEDD DISKDAGGER" -"DE DOGDERMA DGEHOGDICINEDIESISDOKMAIDUCEUSDVANCEE WAVEEAHMUKED CAPED ICEEENTH" -"-EIGHTYELLITEEMASTIEMPUS EN GHEENIKI ENTIMAEPACT ERMATAERTUREESTAN ET KUTEU M" -"BUEUAENAEUNYAMEUREUTEVENTHEXHALEEXISTSEYANNAF CLEFF MAREFAMILYFATHA FF OF FOR" -"MEEFORTISFRAMESGANGIAGBASAQGEADALGEDOLAGGLINGGHAMALGHETTIGHEUAEGLAZ HGNANT GO" -" NGUGOBLINGORGONGRASP GS-PA GURAMUHALF HHAM AIHAMEDHHAMILOHASHKAHE MGOHEISEIH" -"ERMESHEUAEPHIBIT HIMAHUHINGE HIVETEHO HOIHORT IHUMBS HUR PAI HOOKI MAIMIASMA " -"IB YAMIDE ESIEVAN IGGLESILBOATILLAGEIN YEHINAGMAINCUNXINDHI INGAATINHALEINPUT" -"SINSHIPINWARDIRINGUISSANTISSHARISSIMOITABLEITHER ITULUMIX OF IXTY PIYANNAKAYA" -"H KE PHOKEYCAPKILLERKLITONKRISISKTIKO KUSHU2KY WAYLAFRONLAMADHLAMEDHLANDERLAS" -"TONLD MAPLEVEL-LIGIONLIGON LISHA LITIKILLIPOPLOACHALONG EM BOARM BULLMADDAHMA" -"DR MMALL FMANYA ME DIEMECHIKMPLINGMUKHI N DASHN YANGN-NISFNACLESNCH FRNDA TAN" -"EUME NGBAT NGGONGNIRUGUNISTERNIZKO NKNOWNNOKHUKNOR BUNOWMANNOZHEKNSANAQNSUZ A" -"NTEVMANTIIMUNTOGENOBELOSOCENCEOCIETYODHADHOFOUNDOGONEKOITIC ON KEYONOCLEOOMUU" -"TOPEN DOPEN POPITSAOSETTEOW TIEPALUTAPBOARDPEAKS PECIALPENCILPEPPERPICKETPIDE" -"R PIRIT POKOJIPOMMEEPTACLEPUFFEDPWATCHQAMATSQETANARAAKANRACINGRAKLITRAVEL-RBI" -"TSAREMEDYRENGTHRICORNRIISAPRISEMERKAANUROCKETRSENICRSHANARSIAN S SHOES TENTSA" -"ADIYSHAYIMSHMAAMSICKLESIXTHSSKAPI SOUNAPSPADESSPATHISPITALSSLESSSTANCESTANCYS" -"TLERSSTOLI STROFOSUCKEDSURANGSURED SWORDSSYNAFISYOUWAT NJAQTAIKHUTAMINGTARGET" -"TAU ROTAUROSTE TSETE USETERON TEUWENTHAKKUTIKENOTIMATETIRYAKTOPBARTRAPLITRIKE" -" TURBANTUXEDOU MBITUAEQTUUANGXIUBLE XUCIBLEUDARKAUGGAGEUNGAAMUP BOWUPNAYAURNA" -"MAUUMISHUYANNAUZEIROVERTKAVILIANVIRIAMWBERRYWEORTHWINDOWWN BOWWN BOXWO OF WOR" -"KERWRENCHX FACEXIMIZEXO NEOYAKASHYIN-DOYOMBO YRENE YSTICKZHITSA AMPS CAPO CHW" -"V COAT DEKA FUJI GORA HAA ICON ILUT JERA KAWI LACA MOOD SARI TABS TELU-ALAF-" -"BEAM-RING-SIOS0 BEE0 DOO0 DWO0 GBO0 GEE0 HAN0 HEE0 JOO0 MAN0 OIL0-VAS1 DWE1 F" -"AN1 PEE1 TEE1 TWO1 WVI1 YOO1-VAS18CFF2 HEN2 HOO2 KPA2 KPI2 MBA2 MBE2 MBO2 MBU" -"2 NJA2 NJU2 POO2 PTE2 SEE2-VAS3 BOO3 FOO3 HIN3 HON3 NDI3 RA33 VEE3 WEI3-VAS32" -" JE4 ABB4 GBI4 KPU4 LEE4 LOO4 MBO4 MON4 NDO4 TOO4 VOO4 WOO4 WUI4-VAS5 KEE5 MB" -"I5 NDU5-VAS6 GBA6 KOO6 RA26 SIA6 SOO6 TA26 WEE6-VAS7 FUA7 GBE7 HUN7 JEE7 MIN7" -" NEN7 NIN7 TWE7-VAS8 FEE8 GBU8 KPE8 KPO8 MAN8 NAN8 NWA8 RO28-VAS9 DEE9 KUA9 M" -"EN9 MUN9 NDA9 NDE9 NON9 NUN9 PU29 WVA9 WVE9 YEE9-VASA UNAA YUEAADHUAAMAEACHKA" -"ADDERADULTAEMAEAEPENAEREEAGMA ALGARALLEYALLI ALOG ALPHAAMBDAAMEKHANGELANNONAP" -"PLEAR AEARERUARTARASAR ASEIAASPERATAF ATIYAAUTHSAVROSAWAY BAARUBACUSBALAGBASA" -" BASSABAWAKBEITHBENDEBHADHBHETHBISAHBLAKOBOOTSBORZYBREW BSTERCAANGCAKESCAKRAC" -"ALYACANUSCAUDACAUSECCEPTCCOLICECAKCECEKCEREKCHADACHERYCHESTCHIMECHOOICHOOLCHU" -"LACHUTECIEUCCKAGECKTIECLIFFCLONECLUBSCROWNCTRICCUBEDDAIC DATUSDBOATDELTADENCE" -"DEPTHDESTYDHAM DKAR DLINGDOTS-DSMANDWICHE GEEEAGLEEATH EBALLEESHIEGALIEGIONEG" -"L HEIDONEISMAEKEETEMAKEEMBICEMLJAENANOENDEPENENGENJETEO-EUEOPLEERINEERKHAESHE" -"3ESO EET TUEUAEMEURAEEYBUSEYYALF COWF EWEF SOWFAAFUFAIHUFEARNFLAGSFLICTFLUTEF" -"ORCEFSAAQGADOLGALGAGAMALGAMANGAZE-GEAN GESH2GHNUTGHULUGOGI GORGIGULUSGURE GVA" -"NGHAALUHADDAHAINUHALA HALQAHAMSOHANNAHASE-HATHIHAYINHELAPHETHEHIMELHIRIQHISTI" -"HIUTHHOLAMHOLARHOTELHROOMHUMP HUTA I KOII-RESIARDSIAUDAICHONICRONIHVUSIKARAIK" -"URUILVERIMGBAIMMA IMMERINGSAINNA INTHUIPEHAIPINGIRACYISTLEITHI ITUALJANG JERV" -"IJUDGEJUDULJUEUIK-020KARORKBALLKERETKESH2KHAPHKNOBSKO LAKTOP KURONKUSMAKWAENL" -" NETL-JUZLABATLABORLAGUSLAMDALATIKLAYARLEASELENISLOAN LOBE LOMKALOOP LOURELUR" -"ALLWAY M RAMMAAEHMAALAMACUSMADYAMAI KMAIZEMALONMAQAFMEEMUMEIZIMELONMENOEMEPET" -"METEGMETRYMI ROMIEUMMINDUMINGOMISRAMMOTHMPAREMROCKMSHAEMUCH MUHORMUOY NA PONA" -"BLANADA NASHINCORANEGARNEMKANENOENGENTNGMANNGUE NIEUNNINTHNIS FNNAN NSIEENSUA" -"ENSYONNTHA NTXIVNUENGNZEUMO ANGO BOXO KAIO PLAO RUAOBYLAOCADOOJKI OKARAOKEE O" -"LD XOMBIEOMMAEOPLETOQPENORUTOOTERIOTHALOTTHIOUNCEPASEQPATAKPCHA PEAN PEITHPEN" -" OPEN-PPEPETPI ROPITERPLHAUPLUTAPLUTOPMUNKPOLI PONSEPPAGEPSILIPTUNEQAAFUQUIRY" -"R-RUBRACHYRAIDARASHARCHIDRDIONREGIAREIWARELA RELAAREPHARICEMRIEENRIEULRILLARI" -"TSIROGOMRONOSROTCHROWN RRITORUDAARUHUARULAIRUMP-RUSH RYASOSADHESAKINSAKTASALA" -"DSATA SAUILSEGOLSENTOSHANGSHAR2SHARASHARUSHIMASHOOKSHTINSICLESILA3SKATESOLVES" -"PINESTARTSTEP-STNUTSTORMSUKUNSURYASUTUHTEGEHTENSETHINGTIGMATINNETIPPITKAANTMA" -"AUTON ATONPITORCHTORSOTOYORTRACKTRAIFTRIOLTSADITSEEBTSERETTOCKTTORUTUEUMTURN " -"TUUMUU U UUBITOUBURUUBUTSUDAATUGUSTUKARAUMMERUNGBAUNITYUNOO UQUETURINEURITYUR" -"TLEUTEUXUTIESUTTHIUWAR VAAVUVARCAVATORVIET VITAEVRIDOVZMETWAAVUWAQFAWATTOWBOA" -"TWFISHWIDE WINDUWINJAWISADWU318WUAETXING XTRA-XW XWXYOOJYAMOKYECEKYENAPYIZETY" -"STERYURIIZHAINZIDI ZILDEZSEKAZYGOS C D OHM R S WEB-RAY-UM 0 BI0 HO0 JU0 KO0 N" -"I0 PU0 RA0 SA0 WI0 YE0 ZO028B1 DA1 DO1 DU1 GA1 HA1 IN1 KI1 KU1 PO1 QI1 RA1 SA" -"1 SI1 SU1 VU1 YI13582 BU2 KA2 L22 NO2 PE2 QO2 RO2 SO2 VI2 YA3 A33 EE3 JE3 JO3" -" KU3 L33 LE3 ME3 MI3 MU3 PA3 RI3 TA3 YU4 DO4 FI4 KE4 L44 NE4 TE4 TU4 WA4 WI4 " -"ZE5 A25 AN5 AU5 BB5 DE5 FA5 FE5 GI5 IN5 JU5 LI5 MO5 NU5 OO5 TE5 TO5 VA5 VE5 W" -"A5 WE6 DI6 FU6 HE6 HI6 JE6 JO6 L66 LA6 NA6 PO6 QA6 RU6 SE6 WU7 BE7 DA7 DD7 EI" -"7 JA7 KI7 LU7 RE7 TI7 VO7 ZA8 BO8 DU8 EN8 FO8 GU8 JI8 KO8 PI8 QE8 SU8 WE9 JA9" -" PA9 PI9 SE9 SI9 SO9 TA9 TO9 TUA IEA-HAAACUAFELAHADAILMALAIALDAALTAAMLAAN XAN" -"AEAPAQAPONARA3ARGIAROOARUMATIMATYAAULABALDBASHBAYIBBITBERDBETHBOOKBOREBUNGBUO" -"YCANOCASECAYNCHAUCOONCORECRETCWAADAGSDAIRDDAKDDHIDEADDGERDIM2DZHAEAAEEEEEEENU" -"EHEHEIRTEIWSEZZOFAIBFASTFEEMFETHFEUQFFINFIRIFITAFROGFWAAGAMEGAMLGEDEGGWSGHOMG" -"HWAGIBAGIDAGIEAGIR2GOALGORTGROMGRU GUINHAVEHAYNHEEPHEROHERUHEYNHEYSHEYTHHWAHI" -"D HIINHMI HOM HOPHHSDAHSHUHUB2HUENHUVAHWAAIANOIARAIEN IFATIGERIITOIK HIKIRILU" -"YIMARINORINY IODEIPODIQAAISI JEONJIIMJOT JYAHKAAFKAD3KAKOKALIKAPHKCETKEUPKICK" -"KINIKMA KOBAKOETKOKEKOKOKWAALFERLFIELIFULIUMLIWNLOLLLOVOLUISLUMNMARUMARYMESOM" -"FAAMIIMMIINMLYAMMU2MPETMUASMUINMVATMWAANAAUNAG NAM2NANANCERNDAPNDUENEMANEO NG" -"A2NHAYNJAMNNNANOWCNPEANRUANSHENSUBNTAANTOCNUNGNUUNNWAAO-YOOBATOBROODLEOFUMOJI" -" OJODONA ONUTOONEOOTHOPODOPUSORAXORIIOUBTOXIAPARDPAWNPEEIPEEPPEUXPHABPHINPLUG" -"PLUMPOLOPPHOPRILQASRQEF QHAUQOPARAFEREIARGU2RIFYROA ROARROOKROUTRPSERROIRSO-R" -"T TRUISRUKURUNARUSISA-ISAATSEENSEEVSELFSEYESHTASHYASHYESIKISINKSLURSOKASONGSU" -"ABTFONTUKITURUTZELUGU UHURULU UNAVUON URUSUSA UTAEUTANUTTYVEDEVEUMVEUXVEYZVID" -"AVIYOVOS VUEQWAAKWAETWAHAWAIRWAW WDERWULUXEIAXEYNYAWNYEUXYUDHYUKUYUPIYWAAZATA" -"ZAYNZELOZETAZIETZIZ2ZZY 0 E0 U0-004A0B91 X1-01-212114D15518D2-020B2532DD3 D3 " -"I3-030531C4 E4-05 U5-05505575B66-06206D77 O72C8 A8 I8F09819E3A7AAEFAL2AUJAWXA" -"ZUB57B89BIBBXGCA9CAHCAICIGCWICYAD42D70DA2DE6DIBDJADUBDZEE80EEGEIEEYKEZHF14F8C" -"FAJFLYFOMFUEHAQHOJHOXI-IIMNIWRJAHJEUJHAK00KAQKUEKUGLFALK LULNIIOAYOIXPOQPUQQ0" -"0QARQIFQIGQOFQOTQUFSIISUUTJETUJUDYUEZUMXUOPUQAVAUVNOVOKVOYVUUWAUWOQX00XAUXEHX" -"WVY00YOTZJEZOOZORZUPZZE16171D1F343638394048494B4E647890929599C0D0G0G3G9LXR7VD" -"VWZ0"; +"IN WITH GILE SYMBOLGRAMMA SIGNGRAVE-ACUTEGSUM -KHYILGUISED FACEHAGGAR YAZHHAN" +"G KHUDAMHAWH HMONG HEATED FACEHEAVEN MARKHEELED SHOEHIGH STROKEHITE DRAGONHLE" +"TIC SHOEHOKHLOM ON HORA DIGIT HREE BALUDAI TIMES BADI TIMES NUNIBLE-CREE YIL " +"FRAGMENTILCROW SIGNILIQUA SIGNIMULTANEOUSIN EQUAL TOINDERGARTENINDICESIMA IPL" +"E TONGUEIRCLED TEXTIRCULAR ARCISIGOTHIC ZIVERY TRUCKIX TWELFTHSJECT SYMBOLJIH" +"VAMULIYAJOYOUS LAKEKAARA POLLUKRAINIAN IEKTIESELSKABL OF THREADL TIMES LALLAC" +"K SULFURLACKLETTER LATIN CROSSLCE TSA CANLD POLISH OLD SCRIPT XLEAF CLOVERLEE" +"P SYMBOLLEFT DOUBLELEFT SINGLELEFT SYMBOLLETION MARKLEU SATANGALINE FILLERLON" +" SKEWED LOSED ENTRYLOSING MARKLOTI NAGRI LT OF CLOTHLTED FLOWERLTERNATE AALTE" +"RNATE YALU PLUS IGILUPOVODNAYAMACING FACEMBA BAYANNAMBLER GLASSME LONG CANMED" +" RGYINGSMFON PIPAEMMICAL HEARTMIDDLE BENTMIDDLE HOOKMIDDLE STEMMONOCULAR OMOV" +"ED BELOWMUNCIA SIGNMUUSIKATOANN THE VERGENBLENDED UKND ODD SIGNND OF PIECENES" +"E SMALL NG LEFT LEGNIKOLSBURG NITIAL IZHENSE CHEEKS NTIMONY ORENUMBER SIGNNUM" +"BER ZERONUN HAFUKHANUSVARA ONENYIS -KHYILOF ENVELOPEOF MASHFAATOHINGYA YEHOLD" +" NUBIAN OM PUSHPIKAOMAN SIYAQ ONIAN SIGN OPPOSING ENOPPOSING IMOR OPERATORORC" +"E SYMBOLORT BARLINEOUBLE ACUTEOUBLE DANDAOUNDED FACEOUTHERN TSEOVERSTRUCK PAR" +"AKALESMAPERISPOMENIPHNAEK MUANPIRAL FROM PODCHASHIEMPOST OFFICEPUT MORTUUMQUA" +"LS SIGN QUERED FLAGQUIQUADRATERA SOMPENG RACHMA SIGNRAISED FLAGRANSMISSIONRCH" +"AIC JNYAREAKTHROUGHRESPONDS TORIGHT GUARDRIGHT HEAVYRIGHT-HAND RING LIQUIDRIP" +"LE PRIMERISING DOTSRITING HANDROKUTASTI ARONTHISMATAROR-BARRED ROSS ACCENTRUN" +"NING MANRYVNIA SIGNSECOND MARKSHAAYATHIYASHEQEL SIGNSIMILE SIGNSINGLE AND SMA" +"LL CLOUDSPEED TRAINSPIRATED FASSANGKIYEOKSTEAMY ROOMSTERED SIGNSTORIC SITESYM" +"BOL VIDJSYURA SASAKT VEGETABLETA EQUAL TOTAAALAA ANHTENS DIGIT TETRAFONIASTH-" +"THALATHATHAM DIGIT THIRD BLOCKTHIRDS SIGNTHREE TIMESTIEE SHEUOQTIGHT ACUTETON" +"AL MARK TORTED FACETRAIGHT WAWTRESS SIGN TRESVETLAYATRIAN CAMELTRUNCATED ATWO" +" FINGERSTY THOUSANDU ALAYHI WAU-TIGALARI UBLE TONGUEUETTE BREADUG RTAGS GYUIS" +"HED FACEULO TWO SUMUMAN FIGUREUNIT DIGIT UNJO WYNN WUPADHMANIYAURRENT SIGNUSH" +"ING HANDUTH CORNERSUTING WHALEVA V CHELNUVAMAGOMUKHAVARYS ICHOSVE OF PEACEVER" +"TEX OF VVISARGA ONEVYKA ABOVE WASLA ABOVEWE PALAUNG WHITE JOKERWING NEEDLEWIN" +"KING EYEWITH GARDENWO TWELFTHSXAGRAM FOR XESTES SIGNXI RADICAL XTINGUISHERYEO" +"RINHIEUHZERO THIRDSZIGZAG LINEZZA WA JALL AND ACUTE AND ARROW AND BREVE AND K" +"NIFE AND MOUSE DRAWINGS KABA TENU LATE FORM OF DHARMA OVER KAD5 PLUS SHU2 PO" +"VODNAYA RESUPINUS RGYA GRAM SCHROEDER THOUSANDS TIMES SHE WITH BARS WITH BASE" +" WITH BELT WITH EGGS WITH LOW WITH PAGE WITH PLUS WITH RAIN WITH RING WITH T" +"AIL WITH TICK-LUE KARAN-SHAPED HA1 LONG MBE1 PLASTICS2 LONG MBO2 PLASTICS2 PL" +"US ASH3 PLASTICS4 PLASTICS5 PLASTICS6 PLASTICS7 PLASTICSA PLUS IGIA PLUS KURA" +" TANG LAIAB2 TIMES ABATA TREEACE FILLERADAK BINDIADDA WITH AEDA-PILLAAILED BI" +"RDAKKHANGYAOALEF LAMEDALEF WITH ALENT SIGNALLY MARK ANDHI MARKANGKHANKHUANGUL" +"AR TOAR ECLIPSEASPIRATIONASTERISCUSAT HORIZONATRICHISMAATTY WITH AUTOMOBILEAY" +"ER BEADSBA SATANGABELOW LEFTBLACK FLAGBLUE HEARTBOLD SHAFTBROKEN BARBSTRUCTIO" +"NC WITH DOTCAPITAL ETCH BALLOONCHAD RTAGSCHARACTER-CHECK MARKCIRCLED CACISIVE" +"NESSCOLATE BARCOMPONENT COMPONENT-CROPHONIC CROSS MARKCURLED WAWCURLY HAIRCY " +"MESSAGED KEYBOARDD WITH DOTDA PLUS HADA SATANGADED PERSONDIATONIKI DIGIT ZERO" +"DIRGA MUREDOUBLE BARDUOUS TREEE PLUS SUMEARLY FORMEARTH MARKEBENSTIMMEED FIGU" +"RE-ED FINGERSEDESTRIANSEDIC TONE EEKING EYEEICH STARKEIGHTIETHSELT BUCKLEENET" +"RATIONENS SYMBOLENTHUSIASMEONGCHIEUMEQUIHOPPERETTA-PILLAEUTRAL YEREVERSED PEF" +" SHE-GOATFAHRENHEITFFICULTIESFINAL HETHFOR RECORDFORMATTINGFRONT WALLFTOGGOS " +"OUG MUNDARI GAGE CLAIMGANDA MARKGAS BZUNG GBAKURUNENGGING FACEGGRAVATIONGHT L" +"IFTERGIMEL-HETHGOLUBCHIK GREE SLASHGUA PI MAOHAAPRAANA HAMZA MARKHAN DIGIT HE" +"AVY BEATHERMOMETERHOOK ABOVEHOTIC HOOKHREE ABOVEHUNGARIAN I ARCHAIONICAL TAPE" +"RIDDLE MARKIDEOGRAPH IED SHRIMPIGATING RAIGATURE OEIKRON ISONILE FOLDERINDEX " +"BENTINDU BELOWING LARGE ING-SHIFT INHERENT AINITIAL RAINUS SIGN ION BOTTLEISM" +"UTH OREIT MBAAKETITH DIGIT IXTHS DISHJALALOUHOUJONG TILE K2 PLUS BUKA SATANGA" +"KAI SYMBOLKINDI MVOPKRYZHEVAYALACK JOKERLANE MERGELE LETTER LE-DELAYEDLEFT GU" +"ARDLEFT HEAVYLEFT LIGHTLEFT SERIFLEFT-HAND LEK ATTAK LENDED YUSLET SYMBOLLGIZ" +" EOLHXLHAG RTAGSLIGHT BEATLIGHT BULBLIMITATIONLINDRICITYLLOW HEARTLOGICAL ORL" +"ONG FINALLONG OVER LONG SIKI LONG TSHEGLOWER HOOKLOWER STEMLPAPRAANA LTERNATE" +" ULTIC CROSSM STALLIONMADDA MARKMALL ALEPHMBINING DOME PLUS ENMEEM ABOVEMEL S" +"YMBOLMILLE SIGNMINO TILE MONOFONIASMONOGRAM BMONOSPACE MONTH SIGNMOTORCYCLEN " +"NGGEUAETNAKE BELOWNANGMONTHONASPIRATEDNDA PA NJINDU TEMPLENGLICANA WNOTE WITH" +" NTITY MARKNTO SHRINENUMBER TENOANDAKHIATOCKET SHIPOF HYGIEIAOLING FACEOLON E" +"QUALOMMA BELOWON MEDIAL OON LILITHOON SELENAOP NKAARAEOPEN SHELFOROME SIGNORT" +"HERN TAOSSED SHEIOSTAL MARKOTING STAROUND OMEGAOUR FIFTHSOUT INDEX OUTER JOIN" +"OUTHERN TAPAO DIGIT PASSIMBANGPEDAL MARKPLUS BELOWPLUS ERIN2PLUS NAGA POLICE " +"CARPOUND SIGNPPING BIRDPPOPOTAMUSPRALINEAR QUISH QUADR2 PLUS SURAGGISMATARCHA" +"IC KHARDHACANDRARECIPITATERED DRAGONRESH BELOWREVERSED IRGE CIRCLERGE SQUARER" +"HO SYMBOLRIGHT HOOKRIGHT SIGNRING ABOVERING THUMBRKING FACEROAD OMEGAROEZENIA" +"N ROUND DOT ROUNDED ERRSI SYMBOLRUDIMENTA RUPEE MARKSBUB -CHALSCAN LINE-SE-CR" +"EE SKSELINE ESHSGOR RTAGSSHARP SIGNSHMIRI YEHSIDEWAYS ISIXTEENTHSSMILO SIGNSP" +"ACE MARKSS OF MILKSSANGARAEASSANGPIEUPST PALETTEST-FEEDINGSTRAL SIGNSTROM SIG" +"NSTRUCTION SYLLABLE MT AND BOLTTAIL GLASSTAMAN SIGNTELEVISIONTEMPLATIONTERNAT" +"IVE TESE CROSSTHAPASCAN THDAY CAKETHMIKON N TIMES SIGNTING HEARTTOMIC BOMBTOP" +" CORNERTREFACTIONTRESS AND TRETCHED CTRIPLE DOTTWENTIETHSTWO SHORTSTWO THIRDS" +"TYPE COLONU CIN HAU U2 PLUS BAUAM TSHOOJUARDEDNESSUBLE DASH UM ROTUNDAUMAN EA" +"RTHUNG KHEMA UNKIA SIGNUP HARPOONUP NEUTRALUP OR DOWNUPPER HOOKUPPER STEMUR H" +"UNDREDUR YIG MGOURIPIGMENTURVED OMETUSEL HORSEUTH OR SPYVASTI SIGNVEL SLIDERV" +"ERAGE BOXVIE CAMERAVIOUS PAGEW OR MODELWHITE FLAGWHITE HAIRWHOLE NOTEWING HEA" +"RTWITH SPOONWITH STRAWWITH WINGSWO SHORTS XED BICEPSXHEEJ CEEVY AND RICEY CRE" +"ATUREYEH BARREEYMBOL AIVAYPE PIECE ZAR AMULETZEIRO SIGNZH DIGRAPHZU OVER ZU A" +"ND BELT AND CURL AND TAIL APODEXIA DIVIDERS FROM BAR GARSHUNI OF BLOOD OF PAP" +"ER OVER BAL OVER LUM PLUS GAL PLUS GUD PLUS KU3 PLUS LAL PLUS SAG PLUS TUR PL" +"US ZA7 RA OR RI RICKSHAW SPARKLER STREAMER TIMES HA TIMES UD TROMIKON-AMMONIA" +"C-KHYUD PA-LOW TONE-MID TONE-STACCATO0 LONG LE1 CHARIOT2 GARMENT247 DIPTE3 PL" +"US AN5 BATHTUB5 CYPERUS5 LONG JOA PLUS NAABOVE TO ACE NOTE ACING CARADEG ADEG" +"ADMA GDANAF PERSONAFFE FACEAINTBRUSHAISED DOTAJANYALANAL RUNOUTALAYALAM ALI G" +"ALI ALPAPRANAANEROSIS ANG CITI ANGGEUAETANSKRIT SANTAYALANANTHAKHATAOS ICHOSA" +"RCHAIC MARISTERA AS MEMBERATHAMASATATTACHED AVE ARROWB DIGRAPHBASE UNITBEER M" +"UGSBIAL SIGNBICYCLISTBING CANEBITE LIPSBKHASIAN BO BAIMAIBO GYFU GBOTH BENTBR" +"UL SHADBTRACTIONCANG TE-UCAPACITORCAPITAL DCAPITAL ICAPITAL QCARTRIDGECHANICA" +"L CHAVIYANICHOSEONG CLOSED PLCOIN SIGNCOMPLETEDCONJOINERCORN FACECQUISITIOCRE" +"SCENDOCROUCHINGCUBE ROOTCULTATIOND SALTIREDENT AND DEPARTUREDIAGONALSDOWN HAN" +"DDOWN SIGNDOWN STEPDOX CROSSDRAM SIGNDUS RTAGSE AT LEFTEAVY DOWNEBIT SIGNED D" +"IGIT ED PLANETEEN WITH EFAIDRIN EFORMED TEIGHT OF ELEGRAPH ELLOWSHIPEMBEDDING" +"EMPTY SETENTRE OF ENTRY SAWER BUBBLEERCIAL ATERTY LINEES AKURU ESAME DOTETER " +"SIGNETRASIMOUETTI BALLEURO SIGNFACING UPFEH WITH FINAL MEMFINAL NGAFINAL NUNF" +"ISH TAILFLAT SIGNFORTUNA MFOUR BENTFROM WALLG IN HOLEGITTARIUSGREATER YGRIK S" +"IGNGUAGE TAGHAIKSUKI HALF NOTEHALF SIGNHALSHELETHARACTERSHARD SIGNHEADSCARFHI" +" SYMBOLHIMA SIMAHINOCEROSHIYYAALAAHOOK MARKHOT SASAKHREE FOR HWAZ EH EI PLUS " +"LIIA SYMBOLIALECT-P ICE CREAMIDEOGRAM IDEWAYS UIGH HAMZAIGHTH ASHIGN NUKTAIGN" +" SAFHAIGN TOMPIILE TILDEILIPPINE IN SQUAREINAL NOTEINARBORASINFINITY ING CARD" +" ING DOLLSING GLOVEING LANESING STONEINISHMENTINNYIIYHEIRST MARKISEN-ISENITRA" +" SIGNIVE-PULL-IVINATIONJERUSALEMK GESTUREKA- SHOG KAMEYTSA KEMPHRENGKING BOOT" +"KSTREPTONKU RU KHAKYO TOWERL ME HANDLACKFOOT LAN SIGN LARGEMENTLEFT RINGLESS " +"TREELIGHTNINGLINE FACELISSANDO LITTLE UPLIVERANCELLABLE B0LLABLE OMLOND HAIRL" +"ONG TIP LOWER DOTLVIN SIGNM HE-GOATMAEMGBIEEMALL RINGMARK CIM MARK SHADMBROID" +"ERYMETOBELUSMHANCHOLLMRACHNAYAMUKPHRENGNA KHONNANCLOSING NDAILING NFORZANDONG" +" SANDALNGER ROOTNGER SHIPNGUN SIGNNIGGAHITANIGHT OF NIHSHVASANING SIGNNO TELE" +"IANSERT AT NTERPRISENTESSENCENTRACTIONNUSVARAYANVERTED ROCCLUSIONODIASTOLEOF " +"STIMMEOKED HEADOKED TAILOKOUFISMAOM SYMBOLON GROUNDON TEUAEQONE MARK-ONE THIR" +"DONG GRAVEONGSEONG ONJUNCTIOOO DENNENOP HALF OOPEN EYESOPEN JAWSORT-TWIG-ORTH" +" WINDOTAL SIGNOURA SIGNOUT BEAMSOUT MOUTHOUTH WINDOVER GAN2OVER MUSHOW KAVYKA" +"P DIGRAPHP ELAMITEPAA-PILLAPADE SUITPANYANGGAPENT SIGNPENTASEMEPIDERY HAPLE H" +"EARTPOSITIONSPPOINTED PPOSITIONPROJECTORQUADCOLONQUADRANT-QUEEN OF QUSHSHAYAR" +" PLUS RARCHAIC IIRCHAIC RARDEL DKARREAK HERERED JOKERREDNE ON REFORMED RFUL F" +"ACERIA ERFE RIED FACERNEY PARARO WIDTH ROJECTIONROTATION-RPORATIONRTER MARKRT" +"S MEDALRUM CLEF-RWARI DDAS DIGRAPHSEMICOLONSEPTEMBERSHAB CEEBSIVE FACESMALL Y" +"USSOF PASUQSPIRITUS SSANGSIOSSTAL BALLSTEBASKETSTRELNAYAT OF MEATT ON BONETAB" +"E SIGNTAKHALLUSTANDSTILLTED PLANTTEH ABOVETHROUGH XTIMES NA2TIMES PAPTO CORNE" +"RTONE MAI TRAIGHT UTREDECILETRESVETLOTRISTITIATTED STEMTUKWENTISTUTEYASATUBST" +"ITUTEUE MAEMBAULL BLANKUMED HEADUNGLASSESUNGSEONG UPPER DOTUPTSTIMMEUR CORNER" +"UR-DE-LISURAMAZDAAURLY LOOPURNED AYBURNED GANURUZ UR UUTRA MARKUURDHAJA UVUZH" +"AKKUVANAGARI VELOPMENTVER LUGALVERLONG AVEUAENGAMVICE MARKVIGINTILEVINE LEAFV" +"ISARGAYAVOCALIC RVOETOCHIEVRAKHIYA WASH TAILWING STARWITH FACEWORDSPACEWRINKL" +"ES WRY SMILEXCITEMENTXHAUSTIONY-FOURTH Y-FOURTHSYEAR SIGNYEH ABOVEYRANISMA Z " +"DIGRAPHZAKRYTAYAZAL SASAKZENE RINGZERO SIGNZIR SASAK ANTENNA AT DUSK CEDILLA " +"FACING HANDLES KEMBANG LANTANG NUTILLU OF YARN ON LEFT OTTAVA OVER KG OVER " +"MU OVER ZI PLUS DI PLUS DU PLUS RU POLNAYA RASWADI SATCHEL SCOTS S SLIDING TA" +"LENTS TTUDDAG WA-ALAA YUQ NAE-CREE TH-EM DASH-KHIEUKH-PHIEUPH-X BELOW0 BRONZE" +"1 BARLEY1 HELMET3 ARMOUR56 TURO28 KANAKOA SIGN AABAAFILIABOAFILIACKSPACEAEN N" +"YAMAIYANNOIALLIANCEAMS HORNANC SIGNANE TREEANS SIGNAPITAL FAR TSHESARCASITEAR" +"KLEAN ARRIVINGARSI YEHARTYRIA AST WINDASTERN WATAKANA ATE MARKATEBOARDATH MAR" +"KAVY BANDAY-NIGHTAZHAAKKUBACKWARDBASSINETBATBEIT BER POLEBEVERAGEBIEE FONBILL" +"IONSBINOVILEBLE SIGNBLED CARBLINEAR BOL SIGNBOT FACEBOX TRAYBRA FACEBUNDANCEC" +" SIYAQ CABLEWAYCAL DISCCANDICUSCASSETTECEILING CER BALLCHATTAWACHINESE CK CHA" +"RTCLIMBINGCOMBINEDCOUNCIL COUNTERSCURLICUECURSIVE D BUBBLED CROSS DAMMATANDAN" +"TAJA DDY BEARDIAMONDSDIFONIASDIM GUNUDIT CARDDOCUMENTDS-CREE DUSHENNADVANTAGE" +"DVISVARAE COOKIEE OF POOEBEEFILIECH YIWNED BRICKEGORIAN EK ONKARELEPHANTEN NT" +"EUMENICIAN EOUT BOXER TRUTHERAL URNERDIGRISEREVODKAESH LOOPEST WINDET SHOESET" +"A SIGNETRASEMEEUFEUAETEVEN OF EVERANCEEXCHANGEFEBRUARYFILE BOXFINAL THFLOURIS" +"HFOR STOPFRAKTUR FRICAN DGARITIC GBASINNAGENITIVEGERPRINTGLASNAYAGORAZDO GREA" +"T SAHAGALL HHALF GURHAN-AKATHARBAHAYHARMONICHESPIAN HIRDEABOHOP BELLHREE OF H" +"T CLOUDI SHAKTIICHAEAN IGHT ARMIGMOID SIMANSIS INAGARI INDUCTORING BELLING BO" +"WLING ROD IRD MARKIS FORM IS WHEELIS-PILLAITA MFONJACK OF JAVIYANIJUNCTIONKAI" +"YARAAKASRATANKATAKANAL POLISHL-LAKUNALA LENGALAETITIALATION XLEANING LESS SHA" +"LESSER YLF RING LFWIDTH LKULIZMYLOCATIVELONG BARLONG S TLORRAINELOW STOPLOZHI" +"TIELTRY LEGLUB SUITMALL AXEMANDARINMANGALAMMARRATANME BADGEME WITH MEM-QOPHMI" +"ONIAN MMATION MON TIMEMY HOUSEN-JOINERNA METEKNAMENNY NAVIYANINCE SIGNNED FOO" +"DNEIFORM NG RTAGSNI ABOVENINE OF NITIAL ZNO SLASHNO THUMBNOTE PADNOVEMBERNRES" +" TOSOBOOFILIOCALIC MOCK SALTOCUS OF ODESTONEOHM SIGNOLLOWINGOM NTEUMOMANIAN O" +"MMA BARON CROSSONE BEATONE FOR OO TYPE OREHEAD ORM FEEDOT MBUAEOTIFIED OVER B" +"U OVER GA2OVER GI4OVER SAGOVER SHEOVER TIROVERRIDEPAIRTHRAPAKPAK EPALOCHKAPAR" +"ATED PAVIYANIPENTAGONPRECEDESPROSTAYAPUB DAWBPUN IYEKQAIRTHRAQUINTILER-RAHMAH" +"RAMMA GGRASMIAN RAT RAI RAUGHTS RDEL NAGREATNESSRED HAIRREE MARKRESVETLYRILLI" +"ONSRIYOOSANROSHTHI ROSSED ORSE DUNGS OCHKOMSALT OF SALTIRESSANYAKA SCRIPT GSE" +" WEDGESENTAGONSEXTANT-SHKIR KASHOE JOTSHORT ERSIFISTONSIGN LAESIGN PVOSIX DOT" +"SSMA SIGNSNA LDANSOFTNESSSPERSIONSQUEEZEDSUCCEEDSSUPERSETSWIMMINGT NGGEETTAAL" +"UJA TAI LUE TAR EYESTATASOUETER FACETHIOPIC THOLHOMATHOSCOPETICK IN TIRRUP RT" +"ISMOS ETO-LEFT TOWARDS TRI DISHTRICOLONTTENTIONTTO MARKTURNED MUAREG YAUATRIL" +"LOUBJOINERUDAWADI UKEUTNDAULLS LEGUNDERDOTUNDERTIEUNG DASHUP TRUCKV OVER MVE " +"SASAKVERGENCEVESSEL BVOLUTIONVOMITINGW PRINTSWASH KAFWBOY HATWN HEARTWO ABOVE" +"WO BEATSWON SIGNWRINKLEDWRITING XCELLENTY BEETLEY POPPERYAMAKKANYBEYFILIYENIS" +"EI YER YAGHYESIEUNGYIDDISH YPORROONYRILLIC ZAKRYTOEZWARAKAYZWJ THAJ APLOUN BU" +"TTON CER-WA FLEXUS ISLAND KEFULA LONSUM MAELEE MENDUT MINUS MUOMAE MUQDAM OC" +"LOCK OPEN-O PLOPHU RAMBAT SHAKER SLOWLY STRIDE TAMURA TEDUNG WAAJIB WOLOSO-CR" +"EE R-KIYEOK-MACRON-MU-MO--SHIFT--THIRTY-TIKEUT-WELSH 0 SPEAR0 WHEAT1 ARROW2 O" +"LIVE2 WOMAN26 EYYY3 AREPA3 EIGHT3 MONTH3 OMEGA3 SPICE3 SWORD3 WHEEL5 NGGEE6 N" +"GGOO7 NGGUA7 NGUAN9 CLOTH9 NGGAAA -PHRUA NAME ACTER TAD NECKAELAENGAETMEUNAHA" +"PAKHALESMA ALLOT XALTILLOAM ALEFAN MARKAND ENDANDERERANGKUOQANGLED ANGLONGANG" +"OLATAPEZIUMARDNESSARRED BARRED OAS SIGNASHTRA ASUTORUATAEAN ATH OF AU MARKAUL" +"DRONAUNTLETAXIMATAAY SIGNBAIRKANBAMBOOSBARREKHBASIGNABERGINEBERRIESBIG YUSBLA" +"CHKOBLOSSOMBOARDERBOOSTERBORZAYABOURINGBREVIS BUFFALOBULANCECABINETCAP TENCAY" +"ANNACELSIUSCHEINAPCHIEUCHCK LIMECLEAVERCLOSE ECLOTHESCOMING CONTACTCOPTIC CRA" +"CKERD MADDADA FACEDANCINGDANESE DAYANNADEAVOURDHALATHDIARGONDIPLOUNDISIMOUDOF" +"ONONDRIL BUDU NJAADYNAMICE DRINKE GLASSEAD OREEAGULL EAVY YAECEMBERED RICEEFT" +" ARMEIGHT KEL PUMPEN LEAFENSHUETER THANERNIN AESTIVALETNAHTAEULEUNGF DAVIDF S" +"ASAKFATIGUEFAYANNAFINAGH FINAL YFLUENCEFORKINGGAYANNAGENERALGHEUGHEGLAGOLIGO-" +"KARTGOLIAN GRADUALHAARKAAHALANTAHANGUL HAYANNAHEADINGHEXAGONHI SIGNHIUCHUSHOD" +"DONDHYAAUSHI NTEUMI RTAGSIANGQI IBIFILIIC WANDICOPTERICYCLESIKHAHITIL DRUMILL" +"EANNIMILAR INNABARISIBLE ITALIC ITON RAIVE OF JAIN OMJARATI JAYANNAJECTIVEJER" +"AN JJIBWAY KARO BAKAYANNAKEUAERIKHA YATKKURUNIKOMBUVAKOQNDONKORONISKPAK WAKUT" +"AARUKYLISMAL SEGNOLAGIOS LAK-050LAMITE LASHES LAYANNALE LEAFLEK TOOLENGTH-LEU" +"T KALEYBALLLF FACELIGHT XLJUDIJELLYFISHLOSION LYGISMAMAAYYAAMAI SATMANCHU MAR" +"CATOMASSAGEMBOL B0MEETORUMERICASMINGKALMINIMA MONSTERMRACHNYMUNGKAHNANCIALNAY" +"ANNANEQUDAANESTED NG MASKNIKAHITNJAEMLINUMBERSOCTAGONOCTANT-OCTOBEROF SOAPOFF" +"ICEROGDIAN OKRYTIEOLAPUK OMERANGON FACEONG UEXONGONANONTIEENOP MARKORCULUSORE" +"VMA ORKHON ORTIETHOT NGOMOT REPHOUR OF OUT HUBOUTWARDOVER ANOVER DUOW ALEFOWI" +"LO SOX BACKOX LINEP PIEETPALLAWAPANESE PANSIOSPARERENPAYANNAPAYEROKPECTIVEPEG" +"ERMAPENGKALPERVISEPHUTHAOPLOYAN POMOFO POVODNYPPROACHPRENKHAPSTICKSPTHAHA PUR" +"PLE PUSHPINQUARIUSQUEEZE R2 GUNURA REPARAKHANGRANGKEPRARIETYRAYANNARD FACERDO" +" RJEREATHY REREKANRESILLORIPPLE RISIMOUROGRESSROKEN LRRECTUSRTHIAN RY FACES-S" +"AJDASA VAH SAMPHAOSANDHI SANGAN SAYANNASCOOTERSEXTILESHAKINGSHIFT TSHORT ASID" +"DHAMSIGN UDSOLDIERSOV ROGSPRINGSST TUBESTERINGSUKUUDOSYNAGMAT ASHESTA MARKTAI" +"SYOUTALL AATASHEELTAYANNATCHFORKTHALIYATHESEOSTHIEUTHTHKUQI TIKRAMATIVATE TOR" +"NADOTRAINERTROLLEYTRYASKATSECHKATTHACANTTILIK TYSCAPEUBUFILIUKKAKHAUKOTHEAUM " +"IYEKUN MEUTUP HANDUP MARKUP SIGNUP STEPUP TACKURATIONURFACE URGLASSUSSYERUUT " +"TIMEUYGHUR VANESE VAPOURSVAV YODVAYANNAVE DOT VEMENT-VEW NOWVILIK BVILLAINVOI" +"CINGVOWEL KVYSOKO WAZ EOHWDRIVERWIFRUITWIGNYANWO FOR WO MARKWO WAENWORSHIPXAM" +" LAIXOPHONEY GREENY HEARTYA LAMPYAH LI YANMAR YAYANNAYELLOW YMAIC LYNAMIC ZQA" +"PHA AGUNG DIPLI EPOCH EQUID FACE- GATE KAPAL LELET LONGA MELIK MURDA QATAN " +"SPLIT TACK TIKHY-HIDET-HIEUH-IEUNG-LINE--PIEUP0 NGGI0 NGGO0 NYON0 NYUN00-102" +"1 GBOO1 GOLD1 HORN1 NDEE1 WINE2 KPOO2 NGGU3 GBEE3 HEEI3 NGGA4 DART4 DEER4 KPE" +"E4 MUAN4 NGEN4 NJOO4 NYIN5 MERI5 WOOL6 GUEI6 HUAN6 NGGE6 TREE7 GUAN7 KAPO7 MB" +"EE7 MBUU7 NDOO7 NGON8 HOOU8 MBEE8 NYAN8 NYEN9 MUEN9 NJEEA HAAMA-KARAAASHAEACI" +"NTHAEMMAEAESURAAFFIX AGOGUEAGRANTAILUREAJANI AK-668AKABATANCHORANGKATANIMALAN" +"UARYAPISMAAPLI MAPYRUSARADDOARBUTAARSEOSASHGABASSINGATTERYATTIC AUTUMNBAFILIB" +"ANWA BEFILIBETAN BGBIEEBISCUSBISHOPBLINK BOFILIBOWTIEBUFFERBURGERC CLEFCALATE" +"CASTLECATAWACEVITUCHADINCHAMKOCHEIKHCHEMA CHESS CHIKI CHIRETCHO CHCHURCHCKNES" +"SCLOSETCODILECRAYONCREASECUMBERCUPPEDD DISKDAGGERDE DOGDERMA DGEHOGDICINEDIES" +"ISDOKMAIDSLIDEDUCEUSDVANCEE WAVEEAHMUKED CAPED ICEEENTH-EIGHTYELLITEEMASTIEMP" +"US EN GHEENIKI ENTIMAEPACT ERMATAERTUREESTAN ET KUTEU MBUEUAENAEUNYAMEUREUTEV" +"ENTHEXHALEEXISTSEYANNAF CLEFF MAREFAMILYFATHA FF OF FIZAHUFORMEEFORTISFRAMESG" +"ANGIAGBASAQGEADALGEDOLAGGLINGGHAMALGHETTIGHEUAEGLAZ HGNANT GO NGUGOBLINGORGON" +"GRASP GS-PA GURAMUHALF HHAM AIHAMEDHHAMILOHASHKAHE MGOHECAKAHEISEIHENOPEHERME" +"SHEUAEPHIBIT HINGE HIVETEHO HOIHORT IHUMBS HUR PAI HOOKI MAIMIASMA IB YAMIDE " +"ESIEVAN IGGLESILBOATILLAGEINAGMAINCUNXINDHI INGAATINHALEINPUTSINSHIPINWARDIRI" +"NGUISSANTISSHARISSIMOITABLEITHER ITRITEITULUMIX OF IXTY PIYANNAKAYAH KE PHOKE" +"YCAPKILLERKLITONKRISISKTIKO KUSHU2KY WAYLAFRONLAMADHLAMEDHLANDERLASTONLD MAPL" +"EVEL-LIGIONLIGON LISHA LITIKILLIPOPLOACHALONG EM BOARM BULLMADDAHMADR MMALL F" +"MANYA ME DIEMECHIKMPLINGMUKHI N DASHN YANGN-NISFNACLESNCH FRNDA TANEUME NGBAT" +" NGGONGNIRUGUNISTERNIZKO NKNOWNNOKHUKNOR BUNOWMANNOZHEKNSANAQNSUZ ANTEVMANTII" +"MUNTOGENOBELOSOCENCEOCIETYODHADHOFOUNDOGONEKOITIC ON KEYONOCLEOOMUUTOPEN DOPE" +"N POPITSAOPULUSOSETTEOW TIEPALUTAPBOARDPEAKS PECIALPENCILPEPPERPICKETPIDER PI" +"RIT POKOJIPOMENEPOMMEEPTACLEPUFFEDPWATCHQAMATSQETANARAAKANRACINGRAKLITRAVEL-R" +"BITSAREMEDYRENGTHRICORNRIISAPRISEMERKAANUROCKETRSENICRSHANARSIAN RUBEUSS SHOE" +"S TENTSAADIYSHAYIMSHMAAMSICKLESIXTHSSKAPI SOUNAPSPADESSPATHISPITALSSLESSSTANC" +"ESTANCYSTLERSSTOLI STROFOSUCKEDSURANGSURED SWORDSSYNAFISYOUWAT NJAQTAIKHUTAMI" +"NGTARGETTAU ROTAUROSTE TSETE USETERON TEUWENTHAKKUTIKENOTIMATETIRYAKTOPBARTRA" +"PLITRIKE TURBANTUXEDOU MBITUAEQTUUANGXIUBLE XUCIBLEUDARKAUDDISAUGGAGEUP BOWUP" +"NAYAURANUSURNAMAUUMISHUYANNAUZEIROVERTKAVILIANVIRIAMWBERRYWEORTHWINDOWWN BOWW" +"N BOXWO OF WORKERWRENCHX FACEXIMIZEXO NEOYAKASHYIN-DOYOMBO YRENE YSTICKZHITSA" +" AMPS CAPO CHWV COAT DEKA FUJI GORA HAA ICON ILUT JERA KAWI LACA MOOD SARI T" +"ABS TELU-ALAF-BEAM-SIOS0 BEE0 DOO0 DWO0 GBO0 GEE0 HAN0 HEE0 JOO0 MAN0 OIL0-VA" +"S1 DWE1 FAN1 PEE1 TEE1 TWO1 WVI1 YOO1-VAS18CFF2 HEN2 HOO2 KPA2 KPI2 MBA2 MBE2" +" MBO2 MBU2 NJA2 NJU2 POO2 PTE2 SEE2-VAS3 BOO3 FOO3 HIN3 HON3 NDI3 RA33 VEE3 W" +"EI3-VAS32 JE4 ABB4 GBI4 KPU4 LEE4 LOO4 MBO4 MON4 NDO4 TOO4 VOO4 WOO4 WUI4-VAS" +"5 KEE5 MBI5 NDU5-VAS6 GBA6 KOO6 RA26 SIA6 SOO6 TA26 WEE6-VAS7 FUA7 GBE7 HUN7 " +"JEE7 MIN7 NEN7 NIN7 TWE7-VAS8 FEE8 GBU8 KPE8 KPO8 MAN8 NAN8 NWA8 RO28-VAS9 DE" +"E9 KUA9 MEN9 MUN9 NDA9 NDE9 NON9 NUN9 PU29 WVA9 WVE9 YEE9-VASA UNAA YUEAADHUA" +"AMAEACHKAADDERADULTAEMAEAEPENAEREEAGMA ALFILALGARALLEYALLI ALOG ALPHAAMBDAAME" +"KHANGELANNONAPPLEAR AEARBAIARERUARTARASAR ASEIAASPERATAF ATIYAAUTHSAVROSAWAY " +"BAARUBACUSBALAGBASA BASSABAWAKBEITHBENDEBHADHBHETHBISAHBLAKOBOOTSBORZYBSTERCA" +"ANGCAKESCAKRACALYACANUSCAUDACAUSECCEPTCCOLICECAKCECEKCEREKCHADACHERYCHIMECHOO" +"ICHOOLCHULACHUTECIEUCCKAGECKTIECLIFFCLONECLUBSCROWNCTRICCUBEDDAIC DATUSDBOATD" +"ELTADENCEDEPTHDESTYDHAM DKAR DLINGDOTS-DSMANDWICHE GEEEAGLEEATH EBALLEESHIEGA" +"LIEGIONEGL HEIDONEISMAEKEETEMAKEEMBICEMLJAENANOENDEPENENGENJETEO-EUEOPLEERINE" +"ERKHAESHE3ESO EET TUETFONEUAEMEURAEEYBUSEYYALF COWF EWEF SOWFAAFUFAIHUFEARNFI" +"TKOFLAGSFLICTFLUTEFORCEFSAAQGADOLGALGAGAMALGAMANGAZE-GEAN GESH2GHNUTGHULUGOGI" +" GORGIGULUSGVANGHAALUHADDAHAINUHALA HALQAHAMSOHANNAHASE-HATHIHAYINHELAPHETHEH" +"IMELHIRIQHISTIHIUTHHOLAMHOLARHOTELHROOMHUMP HUTA I KOII-RESIARDSIAUDAICHONICR" +"ONIHVUSIKARAIKURUILVERIMAHUIMGBAIMMA IMMERINGSAINNA INTHUIPEHAIPINGIRACYISTLE" +"ITHI ITUALJANG JERVIJUDGEJUDULJUEUIK-020KARORKBALLKERETKESH2KHAPHKNOBSKO LAKT" +"OP KURONKUSMAKWAENL NETL-JUZLABATLABORLAGUSLAKKOLAMDALATIKLAYARLEASELENISLOAN" +" LOMKALOOP LOURELURALLWAY M RAMMAAEHMAALAMACUSMADYAMAI KMAIZEMALONMAQAFMBONEM" +"EEMUMEIZIMELONMENOEMEPETMETEGMETRYMI ROMIEUMMINDUMINGOMISRAMMOTHMPAREMPIREMRO" +"CKMSHAEMUCH MUHORMUOY NA PONABLANADA NASHINCORANEGARNEMKANENOENGENTNGMANNGUE " +"NIEUNNINTHNIS FNNAN NOMIANSIEENSUAENSYONNTHA NTXIVNUENGNZEUMO ANGO BOXO KAIO " +"PLAO RUAOBYLAOCADOOJKI OKARAOKEE OLD XOMBIEOMMAEOPLETOQPENORUTOOTERIOTHALOTTH" +"IOUNCEPASEQPATAKPCHA PEAN PEITHPEN OPEN-PPEPETPI ROPITERPLHAUPLUTAPLUTOPMUNKP" +"OLI PONSEPPAGEPSILIPTUNEQAAFUQUIRYR-RUBRACHYRAIDARASHARCHIDRDIONREGIAREIWAREL" +"A RELAAREPHARICEMRIEENRIEULRILLARITSIROGOMRONOSROTCHROWN RRITORUDAARUHUARULAI" +"RUMP-RUSH RYASOSADHESAKINSAKTASALADSATA SAUILSEGOLSENTOSHANGSHAR2SHARASHARUSH" +"IMASHOOKSHTINSICLESILA3SKATESOLVESPINESTARTSTEP-STNUTSTORMSUKUNSURYASUTUHTEGE" +"HTENSETHINGTIGMATINNETIPPITKAANTMAAUTON ATONPITORCHTORSOTOYORTRACKTRAIFTRIOLT" +"SADITSEEBTSERETTOCKTTORUTUEUMTURN TUUMUU U UUBITOUBURUUBUTSUDAATUGUSTUKARAUMM" +"ERUNGBAUNGGAUNITYUNOO UQUETURINEURITYURTLEUTEUXUTIESUTTHIUWAR VAAVUVARCAVATOR" +"VIET VITAEVRIDOVZMETWAAVUWAQFAWASSEWATTOWBOATWFISHWIANGWIDE WINDUWINJAWISADWU" +"318WUAETXING XTRA-XW XWXYOOJYAMOKYECEKYENAPYIZETYSTERYURIIZHAINZIDI ZILDEZSEK" +"AZYGOS C D OHM R S WEB-RAY-UM 0 BI0 HO0 JU0 KO0 NI0 PU0 RA0 SA0 WI0 YE0 ZO028" +"B1 DA1 DO1 DU1 GA1 HA1 IN1 KI1 KU1 PO1 QI1 RA1 SA1 SI1 SU1 VU1 YI13582 BU2 KA" +"2 L22 NO2 PE2 QO2 RO2 SO2 VI2 YA3 A33 EE3 JE3 JO3 KU3 L33 LE3 ME3 MI3 MU3 PA3" +" RI3 TA3 YU4 DO4 FI4 KE4 L44 NE4 TE4 TU4 WA4 WI4 ZE5 A25 AN5 AU5 BB5 DE5 FA5 " +"FE5 GI5 IN5 JU5 LI5 MO5 NU5 OO5 TE5 TO5 VA5 VE5 WA5 WE6 DI6 FU6 HE6 HI6 JE6 J" +"O6 L66 LA6 NA6 PO6 QA6 RU6 SE6 WU7 BE7 DA7 DD7 EI7 JA7 KI7 LU7 RE7 TI7 VO7 ZA" +"8 BO8 DU8 EN8 FO8 GU8 JI8 KO8 PI8 QE8 SU8 WE9 JA9 PA9 PI9 SE9 SI9 SO9 TA9 TO9" +" TUA IEA-HAAACUAFELAHADAILMAJORALAIALDAALTAAMLAAN XANAEAPAQAPONARA3ARGIAROOAR" +"UMATIMATYAAULABALDBASHBAYIBBITBERDBETHBOOKBOREBUNGBUOYCANOCASECAYNCHAUCOONCOR" +"ECRETCWAADAGSDAIRDDAKDDHIDEADDGERDIM2DZHAEAAEEEEEEENUEHEHEIRTEIWSEZZOFAIBFAST" +"FEEMFERZFETHFEUQFFINFIRIFITAFROGFWAAGAAMGAMEGAMLGEDEGGWSGHOMGHWAGIBAGIDAGIEAG" +"IR2GOALGORTGROMGRU GUINHAVEHAYNHEEPHEROHERUHEYNHEYSHEYTHHWAHID HIINHMI HOM HO" +"PHHSDAHSHUHUB2HUENHUVAHWAAIANOIARAIEN IFATIGERIITOIK HIKIRILUYIMARINORINY IOD" +"EIPODIQAAISI JEONJIIMJOT JYAHKAAFKAD3KAKOKALIKAPHKCETKEUPKICKKINIKMA KOBAKOET" +"KOKEKOKOKWAALBUSLFERLFIELIFULIUMLIWNLOLLLOVOLUISLUMNMARUMARYMESOMFAAMIIMMIINM" +"LYAMMU2MPETMUASMUINMVATMWAANAAUNAG NAM2NANANCERNDAPNDUENEMANEO NGA2NHAYNJAMNN" +"NANOWCNPEANRUANSHENSUBNTAANTOCNUNGNUUNNWAAO-YOOBATOBROODLEOFUMOJI OJODONA ONU" +"TOONEOOTHOPODOPUSORAXORIIOUBTOWAYOXIAPARDPAWNPEEIPEEPPEUXPHABPHINPLUGPLUMPOLO" +"PPHOPRILQASRQEF QHAUQOPARAFERCERREIAREW RGU2RIFYRKABROA ROARROOKROUTRPSERROIR" +"SO-RT TRUISRUKURUNARUSISA-ISAATSEENSEEVSELASELFSEYESHTASHYASHYESINKSLURSOKASO" +"NGSUABTUKITURUTZELUGU UHURULU UNAVUON URUSUSA UTAEUTANUTTYVEDEVEUMVEUXVEYZVID" +"AVIYOVOS VUEQWAAKWAETWAHAWAIRWAW WDERWULUXEIAXEYNYAWNYCHEYEUXYUDHYUKUYUPIYWAA" +"ZATAZAYNZELOZETAZIETZIZ2ZZY 0 E0 U0-004A0B91 X1-01-212114D15518D2-020B2532DD3" +" D3 I3-030531C4 E4-05 U5-05505575B66-06206D77 O72C8 A8 I8F09819E3A7AAEFAL2AUJ" +"AWXAZUB57B89BIBBXGCA9CAHCAICIGCWICYAD42D70DA2DE6DIBDJADUBDZEE80EEGEIEEYKEZHF1" +"4F8CFAJFLYFOMFUEHAQHOJHOXI-IIMNIWRJEUK00KAQKUEKUGLFALK LULNIIOAYOIXPOQPUQQ00Q" +"ARQIFQIGQOFQOTQUFSIISUUTJETUJUDYUEZUMXUOPUQAVAUVNOVOKVOYVUUWOQX00XAUXEHXWVY00" +"YOTZJEZOOZORZUPZZE16171D1F343638394048494B4E647890929599C0D0G0G3G9LXR7VDVWZ0"; -static const unsigned char uname2c_tree[218382] = { - 0xa1, 0xad, 0x9f, 0x0c, 0xa2, 0x92, 0x99, 0x0b, 0xa3, 0xf7, 0xc8, 0x09, - 0xa4, 0xc2, 0x96, 0x09, 0xa5, 0xb9, 0xcd, 0x08, 0xa6, 0xef, 0xbf, 0x08, - 0xa7, 0xb8, 0xf9, 0x07, 0xa8, 0x9c, 0xaf, 0x07, 0xa9, 0x9c, 0x9a, 0x07, - 0xaa, 0xa1, 0x94, 0x07, 0xab, 0xd0, 0xdd, 0x06, 0xac, 0xb8, 0xd1, 0x05, - 0xad, 0xdf, 0xa8, 0x04, 0xae, 0x8e, 0x83, 0x04, 0xaf, 0xb2, 0xd4, 0x03, - 0xb0, 0xee, 0xa7, 0x03, 0x02, 0x7c, 0x00, 0xc1, 0xa6, 0x03, 0xb2, 0xde, - 0x83, 0x03, 0xb3, 0xeb, 0xf7, 0x01, 0xb4, 0xde, 0x84, 0x01, 0xb5, 0xb8, - 0x75, 0xb6, 0xb9, 0x56, 0xb7, 0xdf, 0x3f, 0xb8, 0xe5, 0x3e, 0xb9, 0xd3, - 0x10, 0xba, 0x01, 0xff, 0x0a, 0xee, 0x1c, 0xe9, 0x0f, 0x10, 0x6a, 0x5f, - 0x80, 0x0c, 0xa5, 0xd1, 0x0b, 0x50, 0x9a, 0x62, 0x10, 0xf9, 0x01, 0x08, - 0xe2, 0xc5, 0x06, 0x45, 0x6a, 0xe6, 0xdf, 0xf9, 0x41, 0x0a, 0xd6, 0x57, - 0xaa, 0x07, 0x06, 0x44, 0xdb, 0x23, 0x11, 0xe3, 0x5b, 0x01, 0xff, 0x4e, - 0x88, 0x75, 0x44, 0xcf, 0x01, 0x45, 0x93, 0x86, 0x45, 0xcf, 0x01, 0x06, - 0xb4, 0xda, 0x06, 0x43, 0x27, 0x29, 0x46, 0xcf, 0x41, 0xd2, 0x42, 0xcf, - 0x01, 0xd3, 0x43, 0xcf, 0x41, 0x02, 0x1e, 0x14, 0xf2, 0x06, 0xa4, 0xcf, - 0x06, 0x44, 0x96, 0xec, 0x83, 0xcf, 0x01, 0x0a, 0xab, 0xa8, 0xa3, 0x06, - 0xab, 0xf1, 0x05, 0x46, 0x0e, 0xdb, 0xa7, 0xcf, 0x81, 0xca, 0x05, 0x45, - 0xe3, 0xe5, 0xc2, 0xcf, 0x01, 0xaf, 0x8d, 0x05, 0xb0, 0xda, 0x04, 0xb2, - 0xcb, 0x04, 0xb3, 0x4f, 0x09, 0xad, 0xbe, 0x17, 0xba, 0x01, 0xff, 0xa1, - 0x06, 0x46, 0x91, 0xb8, 0x85, 0xcf, 0x41, 0x46, 0x80, 0xdb, 0x55, 0xcf, - 0x01, 0x47, 0xcc, 0x31, 0x5d, 0xcf, 0x41, 0x0c, 0x66, 0x89, 0x18, 0x49, - 0xaf, 0xb9, 0x64, 0xcf, 0x01, 0x48, 0x4a, 0xc7, 0x63, 0xcf, 0x01, 0x48, - 0xa6, 0x53, 0x65, 0xcf, 0x01, 0x4b, 0x8d, 0xa1, 0x66, 0xcf, 0x41, 0x49, - 0xaf, 0xb9, 0x68, 0xcf, 0x01, 0x48, 0x4a, 0xc7, 0x67, 0xcf, 0x01, 0x48, - 0xa6, 0x53, 0x69, 0xcf, 0x01, 0x4b, 0x8d, 0xa1, 0x6a, 0xcf, 0x41, 0x09, - 0x8f, 0xb8, 0xa3, 0x03, 0x48, 0x5a, 0xc5, 0x7d, 0xcf, 0x81, 0x82, 0x03, - 0xb4, 0x01, 0xff, 0x44, 0xee, 0xeb, 0x86, 0xcf, 0x81, 0xac, 0x02, 0x46, - 0xec, 0xdb, 0x56, 0xcf, 0x81, 0x95, 0x02, 0x05, 0x28, 0xe7, 0x01, 0xff, - 0x09, 0xad, 0x80, 0xe8, 0x01, 0x04, 0xd2, 0xec, 0xae, 0x01, 0xab, 0x42, - 0x4e, 0xa6, 0x78, 0x93, 0xcf, 0x01, 0x4e, 0xd6, 0x67, 0x97, 0xcf, 0x01, - 0xb0, 0x20, 0xb4, 0x01, 0xff, 0x4e, 0x02, 0x77, 0x9a, 0xcf, 0x01, 0x05, - 0x82, 0xe7, 0x01, 0xff, 0x48, 0xe2, 0xc3, 0xac, 0xcf, 0x01, 0x49, 0x0c, - 0x9d, 0xad, 0xcf, 0x01, 0x49, 0x06, 0xbd, 0xae, 0xcf, 0x41, 0xaf, 0x06, - 0x47, 0x4b, 0xc7, 0x92, 0xcf, 0x41, 0x4b, 0x0a, 0x9d, 0x95, 0xcf, 0x01, - 0x47, 0x0e, 0x9d, 0x96, 0xcf, 0x41, 0x06, 0x67, 0x89, 0x5a, 0x02, 0x34, - 0x0a, 0x01, 0xff, 0x47, 0x9e, 0x53, 0xb5, 0xcf, 0x81, 0x06, 0x47, 0x20, - 0xaa, 0x94, 0xcf, 0x41, 0x80, 0x01, 0xff, 0x04, 0xd2, 0xec, 0x0c, 0x49, - 0x0c, 0x9d, 0xb6, 0xcf, 0x01, 0x47, 0xbb, 0xd3, 0xbe, 0xcf, 0x41, 0x44, - 0xe0, 0x67, 0xb9, 0xcf, 0x81, 0x28, 0xaf, 0x01, 0xff, 0x4a, 0x1d, 0xaa, - 0xbc, 0xcf, 0x81, 0x18, 0x49, 0x0c, 0x9d, 0xba, 0xcf, 0xc1, 0x00, 0x06, - 0x50, 0x00, 0x01, 0xff, 0x50, 0xca, 0x60, 0xbb, 0xcf, 0x01, 0x50, 0xc3, - 0x31, 0xb8, 0xcf, 0x41, 0x4a, 0xc9, 0xa3, 0xbd, 0xcf, 0x41, 0x56, 0xbd, - 0x31, 0xb7, 0xcf, 0x41, 0x4e, 0xd6, 0x67, 0x99, 0xcf, 0x01, 0x49, 0x0c, - 0x9d, 0x98, 0xcf, 0x41, 0x44, 0xe0, 0x67, 0xa2, 0xcf, 0x81, 0x28, 0xaf, - 0x01, 0xff, 0x4a, 0x1d, 0xaa, 0xa5, 0xcf, 0x81, 0x18, 0x49, 0x0c, 0x9d, - 0xa3, 0xcf, 0xc1, 0x00, 0x06, 0x50, 0x00, 0x01, 0xff, 0x50, 0xca, 0x60, - 0xa4, 0xcf, 0x01, 0x50, 0xc3, 0x31, 0xa1, 0xcf, 0x41, 0x4a, 0xc9, 0xa3, - 0xa6, 0xcf, 0x41, 0x56, 0xbd, 0x31, 0xa0, 0xcf, 0x41, 0x43, 0xd0, 0x31, - 0x9b, 0xcf, 0x81, 0x16, 0xaf, 0x01, 0xff, 0x4a, 0x1d, 0xaa, 0x9c, 0xcf, - 0x01, 0x49, 0x0c, 0x9d, 0x9d, 0xcf, 0xc1, 0x00, 0x4c, 0x65, 0x89, 0x9f, - 0xcf, 0x41, 0x4c, 0x65, 0x89, 0x9e, 0xcf, 0x41, 0x80, 0x01, 0xff, 0x48, - 0xe2, 0xc7, 0x57, 0xcf, 0x01, 0x54, 0xab, 0x45, 0x5a, 0xcf, 0x41, 0x80, - 0x01, 0xff, 0x4e, 0xd6, 0x67, 0x91, 0xcf, 0x01, 0x02, 0x31, 0x01, 0x0d, - 0x49, 0x3d, 0xbf, 0x8b, 0xcf, 0xc1, 0x00, 0x4b, 0xc7, 0x95, 0x8c, 0xcf, - 0x41, 0x50, 0xea, 0x60, 0x8e, 0xcf, 0x01, 0x47, 0x93, 0x86, 0x88, 0xcf, - 0x81, 0x1e, 0x45, 0x50, 0xe7, 0x8d, 0xcf, 0x01, 0x48, 0x72, 0x95, 0x87, - 0xcf, 0xc1, 0x00, 0x03, 0x6e, 0x08, 0x01, 0xff, 0x47, 0x93, 0x86, 0x89, - 0xcf, 0x01, 0x4b, 0x30, 0x9f, 0x8f, 0xcf, 0x41, 0x4b, 0x6f, 0x95, 0x8a, - 0xcf, 0x41, 0x80, 0x01, 0xff, 0x02, 0x31, 0x01, 0x06, 0x48, 0x42, 0xca, - 0x7f, 0xcf, 0x41, 0x47, 0x93, 0x86, 0x80, 0xcf, 0x01, 0x48, 0x72, 0x95, - 0x7e, 0xcf, 0x41, 0x0d, 0xad, 0x80, 0x36, 0x07, 0x66, 0x89, 0x1b, 0x49, - 0xaf, 0xb9, 0x71, 0xcf, 0x01, 0x48, 0xa6, 0x53, 0x72, 0xcf, 0x01, 0xb4, - 0x01, 0xff, 0x46, 0x02, 0x77, 0x74, 0xcf, 0x01, 0x4a, 0x8e, 0xa1, 0x73, - 0xcf, 0x41, 0x4e, 0xd6, 0x67, 0x77, 0xcf, 0x01, 0x05, 0xa1, 0x53, 0x01, - 0xff, 0x48, 0xa6, 0x53, 0x76, 0xcf, 0x01, 0x47, 0xad, 0x78, 0x78, 0xcf, - 0x41, 0x4b, 0x66, 0x89, 0x7c, 0xcf, 0x01, 0x4e, 0xd6, 0x67, 0x7b, 0xcf, - 0x01, 0x48, 0x4a, 0xc7, 0x79, 0xcf, 0x01, 0x48, 0xa6, 0x53, 0x7a, 0xcf, - 0x41, 0x52, 0x4e, 0x50, 0x6c, 0xcf, 0x01, 0x42, 0x55, 0x18, 0x82, 0xcf, - 0x41, 0xa1, 0x1c, 0x48, 0x3a, 0xc3, 0x58, 0xcf, 0x81, 0x0f, 0xaf, 0x01, - 0xff, 0x48, 0x32, 0x9f, 0x70, 0xcf, 0x01, 0x48, 0x2a, 0xc5, 0x90, 0xcf, - 0x41, 0x4f, 0xd5, 0x67, 0x59, 0xcf, 0x41, 0x43, 0x29, 0x83, 0x5c, 0xcf, - 0x01, 0x46, 0x6a, 0xdc, 0x52, 0xcf, 0x01, 0x42, 0x65, 0x08, 0xc3, 0xcf, - 0x41, 0x45, 0xba, 0xe1, 0xc0, 0xcf, 0x01, 0x44, 0x62, 0xef, 0xaf, 0xcf, - 0xc1, 0x00, 0x80, 0x01, 0xff, 0xab, 0x0c, 0x48, 0xa6, 0x53, 0xb0, 0xcf, - 0x01, 0x4b, 0x8d, 0xa1, 0xb1, 0xcf, 0x41, 0x0b, 0x67, 0x89, 0x06, 0x52, - 0x9c, 0x53, 0xb2, 0xcf, 0x41, 0x4e, 0xd6, 0x67, 0xb4, 0xcf, 0x01, 0x48, - 0xa6, 0x53, 0xb3, 0xcf, 0x41, 0x80, 0x01, 0xff, 0x07, 0x66, 0x89, 0x06, - 0x47, 0xfb, 0xd1, 0xa8, 0xcf, 0x41, 0x4c, 0xcd, 0x90, 0xab, 0xcf, 0x01, - 0x47, 0xfb, 0xd1, 0xaa, 0xcf, 0x01, 0x43, 0x71, 0xf1, 0xa9, 0xcf, 0x41, - 0x46, 0x5e, 0xd9, 0x6e, 0xcf, 0x01, 0x45, 0x95, 0x63, 0x54, 0xcf, 0x01, - 0x45, 0x4c, 0xe6, 0x84, 0xcf, 0x01, 0x02, 0x34, 0x0a, 0x06, 0x46, 0x9c, - 0xba, 0xbf, 0xcf, 0x41, 0x42, 0x65, 0x08, 0x50, 0xcf, 0x81, 0x06, 0x42, - 0xb3, 0x27, 0x81, 0xcf, 0x41, 0x46, 0x6e, 0xd5, 0x51, 0xcf, 0x41, 0x45, - 0xc4, 0xe1, 0x5e, 0xcf, 0x01, 0x47, 0x88, 0xd0, 0x60, 0xcf, 0x01, 0x46, - 0xb4, 0xc7, 0x61, 0xcf, 0x01, 0xb4, 0x01, 0xff, 0x44, 0x70, 0xd5, 0x5f, - 0xcf, 0x01, 0x48, 0xb2, 0xc7, 0x62, 0xcf, 0x41, 0xa5, 0x12, 0x4f, 0xcb, - 0x60, 0x6b, 0xcf, 0x01, 0x43, 0x6a, 0x7b, 0xc1, 0xcf, 0x01, 0x4b, 0x69, - 0xa2, 0x53, 0xcf, 0x41, 0x50, 0x8a, 0x63, 0x75, 0xcf, 0x01, 0x46, 0x76, - 0xdc, 0x6d, 0xcf, 0x41, 0x45, 0x65, 0xd9, 0x6f, 0xcf, 0x01, 0x48, 0x58, - 0x50, 0x5b, 0xcf, 0x41, 0x57, 0xd1, 0x2c, 0x3e, 0xcf, 0x01, 0x5b, 0x0c, - 0x1c, 0x41, 0xcf, 0x01, 0x05, 0xb9, 0x00, 0x17, 0x11, 0x15, 0x5d, 0x01, - 0xff, 0x47, 0xa6, 0x78, 0x30, 0xcf, 0x01, 0x46, 0x87, 0xbd, 0x31, 0xcf, - 0x01, 0x49, 0x84, 0xbd, 0x32, 0xcf, 0x41, 0x47, 0xd0, 0xcc, 0x24, 0xcf, - 0x01, 0xa3, 0xcf, 0x03, 0xa4, 0xc0, 0x03, 0x08, 0xea, 0xc3, 0x90, 0x03, - 0xab, 0xf4, 0x02, 0x45, 0x20, 0xe5, 0x27, 0xcf, 0x01, 0x0d, 0xe0, 0x83, - 0xb6, 0x02, 0x06, 0x62, 0xdb, 0x90, 0x02, 0xaf, 0xfd, 0x01, 0x02, 0x9c, +static const unsigned char uname2c_tree[221210] = { + 0xa1, 0xb9, 0xb2, 0x0c, 0xa2, 0xa3, 0xa9, 0x0b, 0xa3, 0x81, 0xd7, 0x09, + 0xa4, 0xc6, 0xa4, 0x09, 0xa5, 0xa7, 0xdb, 0x08, 0xa6, 0xb4, 0xcd, 0x08, + 0xa7, 0x87, 0x86, 0x08, 0xa8, 0xd7, 0xbb, 0x07, 0xa9, 0xc9, 0xa6, 0x07, + 0xaa, 0xce, 0xa0, 0x07, 0xab, 0xf4, 0xe9, 0x06, 0xac, 0xfe, 0xdc, 0x05, + 0xad, 0x8d, 0xb4, 0x04, 0xae, 0xb4, 0x8e, 0x04, 0xaf, 0xc9, 0xdf, 0x03, + 0xb0, 0xf0, 0xb2, 0x03, 0x02, 0x7c, 0x00, 0xc3, 0xb1, 0x03, 0xb2, 0xe0, + 0x8e, 0x03, 0xb3, 0xa0, 0x81, 0x02, 0xb4, 0x98, 0x85, 0x01, 0xb5, 0xf2, + 0x75, 0xb6, 0xe1, 0x56, 0xb7, 0xfb, 0x3f, 0xb8, 0x81, 0x3f, 0xb9, 0xd3, + 0x10, 0xba, 0x01, 0xff, 0x0a, 0x90, 0x1d, 0xe9, 0x0f, 0x10, 0xe6, 0x60, + 0x80, 0x0c, 0xa5, 0xd1, 0x0b, 0x50, 0x16, 0x64, 0x10, 0xf9, 0x01, 0x08, + 0x80, 0xc8, 0x06, 0x45, 0x8e, 0xe9, 0xdf, 0xf9, 0x41, 0x0a, 0x41, 0x59, + 0xaa, 0x07, 0x06, 0x3c, 0xde, 0x23, 0x11, 0x4e, 0x5d, 0x01, 0xff, 0x4e, + 0xf7, 0x76, 0x44, 0xcf, 0x01, 0x45, 0x50, 0x88, 0x45, 0xcf, 0x01, 0x06, + 0xac, 0xdd, 0x06, 0x43, 0xeb, 0x2e, 0x46, 0xcf, 0x41, 0xd2, 0x42, 0xcf, + 0x01, 0xd3, 0x43, 0xcf, 0x41, 0x02, 0x6d, 0x14, 0xf2, 0x06, 0xa4, 0xcf, + 0x06, 0x44, 0xd1, 0xef, 0x83, 0xcf, 0x01, 0x0a, 0xe7, 0xaa, 0xa3, 0x06, + 0xab, 0xf1, 0x05, 0x46, 0x06, 0xde, 0xa7, 0xcf, 0x81, 0xca, 0x05, 0x45, + 0x02, 0xe9, 0xc2, 0xcf, 0x01, 0xaf, 0x8d, 0x05, 0xb0, 0xda, 0x04, 0xb2, + 0xcb, 0x04, 0xb3, 0x4f, 0x09, 0x34, 0xc1, 0x17, 0xba, 0x01, 0xff, 0xa1, + 0x06, 0x46, 0xfd, 0xba, 0x85, 0xcf, 0x41, 0x46, 0x78, 0xde, 0x55, 0xcf, + 0x01, 0x47, 0x9c, 0x32, 0x5d, 0xcf, 0x41, 0x0c, 0x30, 0x8b, 0x18, 0x49, + 0x12, 0xbc, 0x64, 0xcf, 0x01, 0x48, 0xf0, 0xc9, 0x63, 0xcf, 0x01, 0x48, + 0xef, 0x54, 0x65, 0xcf, 0x01, 0x4b, 0xc9, 0xa3, 0x66, 0xcf, 0x41, 0x49, + 0x12, 0xbc, 0x68, 0xcf, 0x01, 0x48, 0xf0, 0xc9, 0x67, 0xcf, 0x01, 0x48, + 0xef, 0x54, 0x69, 0xcf, 0x01, 0x4b, 0xc9, 0xa3, 0x6a, 0xcf, 0x41, 0x09, + 0xfb, 0xba, 0xa3, 0x03, 0x48, 0x00, 0xc8, 0x7d, 0xcf, 0x81, 0x82, 0x03, + 0xb4, 0x01, 0xff, 0x44, 0x25, 0xef, 0x86, 0xcf, 0x81, 0xac, 0x02, 0x46, + 0xe4, 0xde, 0x56, 0xcf, 0x81, 0x95, 0x02, 0x05, 0x4c, 0xea, 0x01, 0xff, + 0x09, 0x43, 0x82, 0xe8, 0x01, 0x04, 0x11, 0xf0, 0xae, 0x01, 0xab, 0x42, + 0x4e, 0x07, 0x7a, 0x93, 0xcf, 0x01, 0x4e, 0x52, 0x69, 0x97, 0xcf, 0x01, + 0xb0, 0x20, 0xb4, 0x01, 0xff, 0x4e, 0x71, 0x78, 0x9a, 0xcf, 0x01, 0x05, + 0xa6, 0xea, 0x01, 0xff, 0x48, 0x70, 0xc6, 0xac, 0xcf, 0x01, 0x49, 0x32, + 0x9f, 0xad, 0xcf, 0x01, 0x49, 0x7b, 0xbf, 0xae, 0xcf, 0x41, 0xaf, 0x06, + 0x47, 0xf1, 0xc9, 0x92, 0xcf, 0x41, 0x4b, 0x30, 0x9f, 0x95, 0xcf, 0x01, + 0x47, 0x34, 0x9f, 0x96, 0xcf, 0x41, 0x06, 0x31, 0x8b, 0x5a, 0x02, 0x83, + 0x0a, 0x01, 0xff, 0x47, 0xe7, 0x54, 0xb5, 0xcf, 0x81, 0x06, 0x47, 0x70, + 0xac, 0x94, 0xcf, 0x41, 0x80, 0x01, 0xff, 0x04, 0x11, 0xf0, 0x0c, 0x49, + 0x32, 0x9f, 0xb6, 0xcf, 0x01, 0x47, 0x87, 0xd6, 0xbe, 0xcf, 0x41, 0x44, + 0x5c, 0x69, 0xb9, 0xcf, 0x81, 0x28, 0xaf, 0x01, 0xff, 0x4a, 0x6d, 0xac, + 0xbc, 0xcf, 0x81, 0x18, 0x49, 0x32, 0x9f, 0xba, 0xcf, 0xc1, 0x00, 0x06, + 0x50, 0x00, 0x01, 0xff, 0x50, 0x46, 0x62, 0xbb, 0xcf, 0x01, 0x50, 0x93, + 0x32, 0xb8, 0xcf, 0x41, 0x4a, 0x05, 0xa6, 0xbd, 0xcf, 0x41, 0x56, 0x8d, + 0x32, 0xb7, 0xcf, 0x41, 0x4e, 0x52, 0x69, 0x99, 0xcf, 0x01, 0x49, 0x32, + 0x9f, 0x98, 0xcf, 0x41, 0x44, 0x5c, 0x69, 0xa2, 0xcf, 0x81, 0x28, 0xaf, + 0x01, 0xff, 0x4a, 0x6d, 0xac, 0xa5, 0xcf, 0x81, 0x18, 0x49, 0x32, 0x9f, + 0xa3, 0xcf, 0xc1, 0x00, 0x06, 0x50, 0x00, 0x01, 0xff, 0x50, 0x46, 0x62, + 0xa4, 0xcf, 0x01, 0x50, 0x93, 0x32, 0xa1, 0xcf, 0x41, 0x4a, 0x05, 0xa6, + 0xa6, 0xcf, 0x41, 0x56, 0x8d, 0x32, 0xa0, 0xcf, 0x41, 0x43, 0xa0, 0x32, + 0x9b, 0xcf, 0x81, 0x16, 0xaf, 0x01, 0xff, 0x4a, 0x6d, 0xac, 0x9c, 0xcf, + 0x01, 0x49, 0x32, 0x9f, 0x9d, 0xcf, 0xc1, 0x00, 0x4c, 0x2f, 0x8b, 0x9f, + 0xcf, 0x41, 0x4c, 0x2f, 0x8b, 0x9e, 0xcf, 0x41, 0x80, 0x01, 0xff, 0x48, + 0x90, 0xca, 0x57, 0xcf, 0x01, 0x54, 0xf4, 0x46, 0x5a, 0xcf, 0x41, 0x80, + 0x01, 0xff, 0x4e, 0x52, 0x69, 0x91, 0xcf, 0x01, 0x02, 0x31, 0x01, 0x0d, + 0x49, 0xbb, 0xc1, 0x8b, 0xcf, 0xc1, 0x00, 0x4b, 0xc1, 0x97, 0x8c, 0xcf, + 0x41, 0x50, 0x66, 0x62, 0x8e, 0xcf, 0x01, 0x47, 0x50, 0x88, 0x88, 0xcf, + 0x81, 0x1e, 0x45, 0x74, 0xea, 0x8d, 0xcf, 0x01, 0x48, 0x6c, 0x97, 0x87, + 0xcf, 0xc1, 0x00, 0x03, 0x99, 0x08, 0x01, 0xff, 0x47, 0x50, 0x88, 0x89, + 0xcf, 0x01, 0x4b, 0x61, 0xa1, 0x8f, 0xcf, 0x41, 0x4b, 0x69, 0x97, 0x8a, + 0xcf, 0x41, 0x80, 0x01, 0xff, 0x02, 0x31, 0x01, 0x06, 0x48, 0x00, 0xcd, + 0x7f, 0xcf, 0x41, 0x47, 0x50, 0x88, 0x80, 0xcf, 0x01, 0x48, 0x6c, 0x97, + 0x7e, 0xcf, 0x41, 0x0d, 0x43, 0x82, 0x36, 0x07, 0x30, 0x8b, 0x1b, 0x49, + 0x12, 0xbc, 0x71, 0xcf, 0x01, 0x48, 0xef, 0x54, 0x72, 0xcf, 0x01, 0xb4, + 0x01, 0xff, 0x46, 0x71, 0x78, 0x74, 0xcf, 0x01, 0x4a, 0xca, 0xa3, 0x73, + 0xcf, 0x41, 0x4e, 0x52, 0x69, 0x77, 0xcf, 0x01, 0x05, 0xea, 0x54, 0x01, + 0xff, 0x48, 0xef, 0x54, 0x76, 0xcf, 0x01, 0x47, 0x0e, 0x7a, 0x78, 0xcf, + 0x41, 0x4b, 0x30, 0x8b, 0x7c, 0xcf, 0x01, 0x4e, 0x52, 0x69, 0x7b, 0xcf, + 0x01, 0x48, 0xf0, 0xc9, 0x79, 0xcf, 0x01, 0x48, 0xef, 0x54, 0x7a, 0xcf, + 0x41, 0x52, 0x97, 0x51, 0x6c, 0xcf, 0x01, 0x42, 0xc1, 0x18, 0x82, 0xcf, + 0x41, 0xa1, 0x1c, 0x48, 0xc8, 0xc5, 0x58, 0xcf, 0x81, 0x0f, 0xaf, 0x01, + 0xff, 0x48, 0x63, 0xa1, 0x70, 0xcf, 0x01, 0x48, 0xd0, 0xc7, 0x90, 0xcf, + 0x41, 0x4f, 0x51, 0x69, 0x59, 0xcf, 0x41, 0x43, 0xd9, 0x84, 0x5c, 0xcf, + 0x01, 0x46, 0x6e, 0xdf, 0x52, 0xcf, 0x01, 0x42, 0x90, 0x08, 0xc3, 0xcf, + 0x41, 0x45, 0xcf, 0xe4, 0xc0, 0xcf, 0x01, 0x44, 0xb5, 0xf2, 0xaf, 0xcf, + 0xc1, 0x00, 0x80, 0x01, 0xff, 0xab, 0x0c, 0x48, 0xef, 0x54, 0xb0, 0xcf, + 0x01, 0x4b, 0xc9, 0xa3, 0xb1, 0xcf, 0x41, 0x0b, 0x31, 0x8b, 0x06, 0x52, + 0xe5, 0x54, 0xb2, 0xcf, 0x41, 0x4e, 0x52, 0x69, 0xb4, 0xcf, 0x01, 0x48, + 0xef, 0x54, 0xb3, 0xcf, 0x41, 0x80, 0x01, 0xff, 0x07, 0x30, 0x8b, 0x06, + 0x47, 0xce, 0xd4, 0xa8, 0xcf, 0x41, 0x4c, 0x7f, 0x92, 0xab, 0xcf, 0x01, + 0x47, 0xce, 0xd4, 0xaa, 0xcf, 0x01, 0x43, 0xbe, 0xf4, 0xa9, 0xcf, 0x41, + 0x46, 0x50, 0xdc, 0x6e, 0xcf, 0x01, 0x45, 0x11, 0x65, 0x54, 0xcf, 0x01, + 0x45, 0x70, 0xe9, 0x84, 0xcf, 0x01, 0x02, 0x83, 0x0a, 0x06, 0x46, 0xff, + 0xbc, 0xbf, 0xcf, 0x41, 0x42, 0x90, 0x08, 0x50, 0xcf, 0x81, 0x06, 0x42, + 0x54, 0x28, 0x81, 0xcf, 0x41, 0x46, 0x4e, 0xd8, 0x51, 0xcf, 0x41, 0x45, + 0xd9, 0xe4, 0x5e, 0xcf, 0x01, 0x47, 0x5b, 0xd3, 0x60, 0xcf, 0x01, 0x46, + 0x62, 0xca, 0x61, 0xcf, 0x01, 0xb4, 0x01, 0xff, 0x44, 0x50, 0xd8, 0x5f, + 0xcf, 0x01, 0x48, 0x60, 0xca, 0x62, 0xcf, 0x41, 0xa5, 0x12, 0x4f, 0x47, + 0x62, 0x6b, 0xcf, 0x01, 0x43, 0xcb, 0x7c, 0xc1, 0xcf, 0x01, 0x4b, 0xa5, + 0xa4, 0x53, 0xcf, 0x41, 0x50, 0x06, 0x65, 0x75, 0xcf, 0x01, 0x46, 0x7a, + 0xdf, 0x6d, 0xcf, 0x41, 0x45, 0x57, 0xdc, 0x6f, 0xcf, 0x01, 0x48, 0xa1, + 0x51, 0x5b, 0xcf, 0x41, 0x57, 0x89, 0x2d, 0x3e, 0xcf, 0x01, 0x5b, 0x93, + 0x1c, 0x41, 0xcf, 0x01, 0x05, 0xb9, 0x00, 0x17, 0x11, 0x80, 0x5e, 0x01, + 0xff, 0x47, 0x07, 0x7a, 0x30, 0xcf, 0x01, 0x46, 0x05, 0xc0, 0x31, 0xcf, + 0x01, 0x49, 0x02, 0xc0, 0x32, 0xcf, 0x41, 0x47, 0xa3, 0xcf, 0x24, 0xcf, + 0x01, 0xa3, 0xcf, 0x03, 0xa4, 0xc0, 0x03, 0x08, 0x78, 0xc6, 0x90, 0x03, + 0xab, 0xf4, 0x02, 0x45, 0x35, 0xe8, 0x27, 0xcf, 0x01, 0x0d, 0x90, 0x85, + 0xb6, 0x02, 0x06, 0x5a, 0xde, 0x90, 0x02, 0xaf, 0xfd, 0x01, 0x02, 0x9c, 0x01, 0xab, 0x01, 0x02, 0x71, 0x00, 0x9a, 0x01, 0xb3, 0x76, 0xb4, 0x4d, - 0x46, 0xd8, 0xdd, 0x25, 0xcf, 0x01, 0x07, 0x94, 0xd4, 0x18, 0xba, 0x01, - 0xff, 0x48, 0x07, 0x41, 0x33, 0xcf, 0x01, 0xa5, 0x01, 0xff, 0x42, 0x13, - 0x01, 0x20, 0xcf, 0x01, 0x43, 0x6e, 0xf1, 0x2a, 0xcf, 0x41, 0x03, 0xb6, - 0x00, 0x1b, 0x03, 0x20, 0x03, 0x01, 0xff, 0x0b, 0xe4, 0x9a, 0x06, 0x46, - 0x94, 0x86, 0x1d, 0xcf, 0x41, 0x44, 0xc3, 0x00, 0x0b, 0xcf, 0x01, 0x45, + 0x46, 0xe2, 0xe0, 0x25, 0xcf, 0x01, 0x07, 0x67, 0xd7, 0x18, 0xba, 0x01, + 0xff, 0x48, 0x14, 0x42, 0x33, 0xcf, 0x01, 0xa5, 0x01, 0xff, 0x42, 0x13, + 0x01, 0x20, 0xcf, 0x01, 0x43, 0xbb, 0xf4, 0x2a, 0xcf, 0x41, 0x03, 0xb6, + 0x00, 0x1b, 0x03, 0x4b, 0x03, 0x01, 0xff, 0x0b, 0x0a, 0x9d, 0x06, 0x46, + 0x51, 0x88, 0x1d, 0xcf, 0x41, 0x44, 0xc3, 0x00, 0x0b, 0xcf, 0x01, 0x45, 0xc8, 0x00, 0x17, 0xcf, 0x41, 0x44, 0xc3, 0x00, 0x08, 0xcf, 0x01, 0x45, - 0xc8, 0x00, 0x14, 0xcf, 0x41, 0x46, 0x02, 0x77, 0x23, 0xcf, 0x01, 0x45, - 0x25, 0xc7, 0x3c, 0xcf, 0x01, 0x05, 0x9b, 0xe7, 0x01, 0xff, 0x03, 0xb6, - 0x00, 0x06, 0x49, 0x91, 0x86, 0x18, 0xcf, 0x41, 0x44, 0xc3, 0x00, 0x02, - 0xcf, 0x01, 0x45, 0xc8, 0x00, 0x0e, 0xcf, 0x41, 0x44, 0xa6, 0xed, 0x2b, - 0xcf, 0x01, 0x4e, 0xb1, 0x45, 0x3b, 0xcf, 0x01, 0x09, 0x2e, 0xbc, 0x06, - 0x53, 0x70, 0x4c, 0x1a, 0xcf, 0x41, 0x44, 0xc3, 0x00, 0x05, 0xcf, 0x01, - 0x45, 0xc8, 0x00, 0x11, 0xcf, 0x41, 0x43, 0x6b, 0xf1, 0x22, 0xcf, 0x01, - 0x45, 0x80, 0xe9, 0x2c, 0xcf, 0x41, 0xa4, 0x38, 0x06, 0xe7, 0x83, 0x01, + 0xc8, 0x00, 0x14, 0xcf, 0x41, 0x46, 0x71, 0x78, 0x23, 0xcf, 0x01, 0x45, + 0xcb, 0xc9, 0x3c, 0xcf, 0x01, 0x05, 0xbf, 0xea, 0x01, 0xff, 0x03, 0xb6, + 0x00, 0x06, 0x49, 0x4e, 0x88, 0x18, 0xcf, 0x41, 0x44, 0xc3, 0x00, 0x02, + 0xcf, 0x01, 0x45, 0xc8, 0x00, 0x0e, 0xcf, 0x41, 0x44, 0xe5, 0xf0, 0x2b, + 0xcf, 0x01, 0x4e, 0xfa, 0x46, 0x3b, 0xcf, 0x01, 0x09, 0x9a, 0xbe, 0x06, + 0x53, 0xb9, 0x4d, 0x1a, 0xcf, 0x41, 0x44, 0xc3, 0x00, 0x05, 0xcf, 0x01, + 0x45, 0xc8, 0x00, 0x11, 0xcf, 0x41, 0x43, 0xb8, 0xf4, 0x22, 0xcf, 0x01, + 0x45, 0xb3, 0xec, 0x2c, 0xcf, 0x41, 0xa4, 0x38, 0x06, 0x97, 0x85, 0x01, 0xff, 0x03, 0xb6, 0x00, 0x23, 0xb3, 0x01, 0xff, 0x02, 0x44, 0x00, 0x06, - 0x46, 0x70, 0x4c, 0x1c, 0xcf, 0x41, 0x0b, 0xe4, 0x9a, 0x06, 0x46, 0x94, - 0x86, 0x1b, 0xcf, 0x41, 0x44, 0xc3, 0x00, 0x0a, 0xcf, 0x01, 0x45, 0xc8, + 0x46, 0xb9, 0x4d, 0x1c, 0xcf, 0x41, 0x0b, 0x0a, 0x9d, 0x06, 0x46, 0x51, + 0x88, 0x1b, 0xcf, 0x41, 0x44, 0xc3, 0x00, 0x0a, 0xcf, 0x01, 0x45, 0xc8, 0x00, 0x16, 0xcf, 0x41, 0x44, 0xc3, 0x00, 0x07, 0xcf, 0x01, 0x45, 0xc8, - 0x00, 0x13, 0xcf, 0x41, 0x47, 0x33, 0x9f, 0x36, 0xcf, 0x81, 0x06, 0x46, - 0x0e, 0xde, 0x26, 0xcf, 0x41, 0x55, 0xd5, 0x37, 0x37, 0xcf, 0x41, 0x47, - 0xbb, 0xcc, 0x3a, 0xcf, 0x01, 0xee, 0x21, 0xcf, 0x01, 0x47, 0xc2, 0xd3, - 0x35, 0xcf, 0x41, 0x03, 0xb6, 0x00, 0x11, 0x0d, 0x91, 0x86, 0x01, 0xff, + 0x00, 0x13, 0xcf, 0x41, 0x47, 0x64, 0xa1, 0x36, 0xcf, 0x81, 0x06, 0x46, + 0x1e, 0xe1, 0x26, 0xcf, 0x41, 0x55, 0xa5, 0x38, 0x37, 0xcf, 0x41, 0x47, + 0x87, 0xcf, 0x3a, 0xcf, 0x01, 0xee, 0x21, 0xcf, 0x01, 0x47, 0x8e, 0xd6, + 0x35, 0xcf, 0x41, 0x03, 0xb6, 0x00, 0x11, 0x0d, 0x4e, 0x88, 0x01, 0xff, 0x44, 0xc3, 0x00, 0x01, 0xcf, 0x01, 0x45, 0xc8, 0x00, 0x0d, 0xcf, 0x41, 0x44, 0xc3, 0x00, 0x04, 0xcf, 0x01, 0x45, 0xc8, 0x00, 0x10, 0xcf, 0x41, 0x03, 0xb6, 0x00, 0x23, 0xb3, 0x01, 0xff, 0x02, 0x44, 0x00, 0x06, 0x46, - 0x70, 0x4c, 0x1e, 0xcf, 0x41, 0x0b, 0xe4, 0x9a, 0x06, 0x46, 0x94, 0x86, + 0xb9, 0x4d, 0x1e, 0xcf, 0x41, 0x0b, 0x0a, 0x9d, 0x06, 0x46, 0x51, 0x88, 0x19, 0xcf, 0x41, 0x44, 0xc3, 0x00, 0x09, 0xcf, 0x01, 0x45, 0xc8, 0x00, 0x15, 0xcf, 0x41, 0x44, 0xc3, 0x00, 0x06, 0xcf, 0x01, 0x45, 0xc8, 0x00, - 0x12, 0xcf, 0x41, 0x45, 0xf7, 0xe0, 0x29, 0xcf, 0x01, 0x44, 0x94, 0x86, - 0x40, 0xcf, 0x81, 0x06, 0x46, 0xf0, 0xdd, 0x28, 0xcf, 0x41, 0x48, 0xb2, - 0xbf, 0x2d, 0xcf, 0x41, 0x06, 0x62, 0xdb, 0x06, 0x46, 0x94, 0xd4, 0x1f, - 0xcf, 0x41, 0x03, 0xb6, 0x00, 0x11, 0x0d, 0x91, 0x86, 0x01, 0xff, 0x44, + 0x12, 0xcf, 0x41, 0x45, 0x02, 0xe4, 0x29, 0xcf, 0x01, 0x44, 0x51, 0x88, + 0x40, 0xcf, 0x81, 0x06, 0x46, 0xfa, 0xe0, 0x28, 0xcf, 0x41, 0x48, 0x30, + 0xc2, 0x2d, 0xcf, 0x41, 0x06, 0x5a, 0xde, 0x06, 0x46, 0x67, 0xd7, 0x1f, + 0xcf, 0x41, 0x03, 0xb6, 0x00, 0x11, 0x0d, 0x4e, 0x88, 0x01, 0xff, 0x44, 0xc3, 0x00, 0x00, 0xcf, 0x01, 0x45, 0xc8, 0x00, 0x0c, 0xcf, 0x41, 0x44, 0xc3, 0x00, 0x03, 0xcf, 0x01, 0x45, 0xc8, 0x00, 0x0f, 0xcf, 0x41, 0x54, - 0xfb, 0x40, 0x34, 0xcf, 0x01, 0x49, 0xa4, 0xbe, 0x3d, 0xcf, 0x41, 0x46, - 0x64, 0xd9, 0x38, 0xcf, 0x81, 0x06, 0x4a, 0xc1, 0xb0, 0x3f, 0xcf, 0x41, - 0x48, 0xf2, 0xbf, 0x39, 0xcf, 0x41, 0x48, 0xd2, 0xc1, 0x93, 0xf9, 0x01, - 0x09, 0x5b, 0xbc, 0x06, 0x42, 0xc4, 0x02, 0xe2, 0x2b, 0x40, 0x46, 0x24, - 0x60, 0x0d, 0x20, 0x00, 0x02, 0xb4, 0x01, 0x06, 0x45, 0x87, 0x4b, 0x0b, - 0x20, 0x40, 0x4c, 0x80, 0x4b, 0xff, 0xfe, 0x00, 0x48, 0xd2, 0xc5, 0x0c, - 0x20, 0x40, 0x02, 0xaf, 0x00, 0xa8, 0x03, 0x54, 0x37, 0x41, 0x33, 0x1a, - 0x01, 0x08, 0x4c, 0x16, 0x91, 0x03, 0x07, 0xc1, 0x05, 0x90, 0x01, 0x05, - 0xb9, 0x00, 0x74, 0xb3, 0x3a, 0x06, 0x6c, 0x38, 0x01, 0xff, 0x4b, 0x72, - 0x38, 0x0a, 0x1a, 0x01, 0x05, 0x2f, 0x03, 0x01, 0xff, 0xa1, 0x20, 0xe5, + 0x08, 0x42, 0x34, 0xcf, 0x01, 0x49, 0x2b, 0xc1, 0x3d, 0xcf, 0x41, 0x46, + 0x56, 0xdc, 0x38, 0xcf, 0x81, 0x06, 0x4a, 0x11, 0xb3, 0x3f, 0xcf, 0x41, + 0x48, 0x70, 0xc2, 0x39, 0xcf, 0x41, 0x48, 0x58, 0xc4, 0x93, 0xf9, 0x01, + 0x09, 0xd0, 0xbe, 0x06, 0x42, 0xef, 0x02, 0xe2, 0x2b, 0x40, 0x46, 0xa0, + 0x61, 0x0d, 0x20, 0x00, 0x02, 0xb4, 0x01, 0x06, 0x45, 0xd0, 0x4c, 0x0b, + 0x20, 0x40, 0x4c, 0xc9, 0x4c, 0xff, 0xfe, 0x00, 0x48, 0x70, 0xc8, 0x0c, + 0x20, 0x40, 0x02, 0xaf, 0x00, 0xa8, 0x03, 0x54, 0x44, 0x42, 0x33, 0x1a, + 0x01, 0x08, 0xb8, 0x16, 0x91, 0x03, 0x07, 0xec, 0x05, 0x90, 0x01, 0x05, + 0xb9, 0x00, 0x74, 0xb3, 0x3a, 0x06, 0x3c, 0x39, 0x01, 0xff, 0x4b, 0x42, + 0x39, 0x0a, 0x1a, 0x01, 0x05, 0x5a, 0x03, 0x01, 0xff, 0xa1, 0x20, 0xe5, 0x04, 0x1a, 0x01, 0xe9, 0x01, 0x1a, 0x01, 0xef, 0x06, 0x1a, 0x81, 0x0f, - 0x4a, 0xd3, 0xad, 0x09, 0x1a, 0x01, 0xf5, 0x03, 0x1a, 0xc1, 0x00, 0xe5, + 0x4a, 0x23, 0xb0, 0x09, 0x1a, 0x01, 0xf5, 0x03, 0x1a, 0xc1, 0x00, 0xe5, 0x02, 0x1a, 0x41, 0xe5, 0x05, 0x1a, 0x41, 0xe9, 0x07, 0x1a, 0x01, 0xf5, - 0x08, 0x1a, 0x41, 0x04, 0x30, 0x03, 0x06, 0x48, 0x3a, 0xc9, 0x47, 0x1a, - 0x41, 0x48, 0xd0, 0x15, 0x38, 0x1a, 0x01, 0x06, 0x4f, 0x23, 0x11, 0x02, - 0x02, 0x00, 0x01, 0xff, 0x44, 0x5d, 0x23, 0x34, 0x1a, 0x01, 0x45, 0xa3, - 0x4a, 0x39, 0x1a, 0x41, 0x4e, 0xe3, 0x24, 0x37, 0x1a, 0x01, 0x45, 0x55, - 0x23, 0x35, 0x1a, 0xc1, 0x00, 0x4e, 0xe3, 0x24, 0x36, 0x1a, 0x41, 0x4b, - 0x2c, 0x99, 0x43, 0x1a, 0x01, 0x4a, 0x03, 0xab, 0x44, 0x1a, 0x01, 0x44, - 0xa4, 0x02, 0x42, 0x1a, 0x01, 0x45, 0x59, 0x39, 0x41, 0x1a, 0x41, 0x42, - 0x2e, 0x25, 0x29, 0x1a, 0x01, 0xe1, 0x00, 0x1a, 0x01, 0xa2, 0xe5, 0x01, + 0x08, 0x1a, 0x41, 0x04, 0x5b, 0x03, 0x06, 0x48, 0xf0, 0xcb, 0x47, 0x1a, + 0x41, 0x48, 0x3c, 0x16, 0x38, 0x1a, 0x01, 0x06, 0xd7, 0x23, 0x11, 0x02, + 0x02, 0x00, 0x01, 0xff, 0x44, 0xe5, 0x23, 0x34, 0x1a, 0x01, 0x45, 0xec, + 0x4b, 0x39, 0x1a, 0x41, 0x4e, 0x6b, 0x25, 0x37, 0x1a, 0x01, 0x45, 0xdd, + 0x23, 0x35, 0x1a, 0xc1, 0x00, 0x4e, 0x6b, 0x25, 0x36, 0x1a, 0x41, 0x4b, + 0x47, 0x9b, 0x43, 0x1a, 0x01, 0x4a, 0x5d, 0xad, 0x44, 0x1a, 0x01, 0x44, + 0xa4, 0x02, 0x42, 0x1a, 0x01, 0x45, 0x29, 0x3a, 0x41, 0x1a, 0x41, 0x42, + 0xcf, 0x25, 0x29, 0x1a, 0x01, 0xe1, 0x00, 0x1a, 0x01, 0xa2, 0xe5, 0x01, 0xa3, 0xd8, 0x01, 0xa4, 0xb2, 0x01, 0xa7, 0xa5, 0x01, 0x42, 0x22, 0x00, - 0x31, 0x1a, 0x01, 0x42, 0xbd, 0x26, 0x12, 0x1a, 0x01, 0xab, 0x86, 0x01, + 0x31, 0x1a, 0x01, 0x42, 0x56, 0x19, 0x12, 0x1a, 0x01, 0xab, 0x86, 0x01, 0x42, 0x74, 0x00, 0x2c, 0x1a, 0x01, 0x42, 0x6c, 0x00, 0x22, 0x1a, 0x01, 0xae, 0x62, 0xb0, 0x56, 0x42, 0x71, 0x00, 0x2b, 0x1a, 0x01, 0xb3, 0x3e, - 0xb4, 0x19, 0x42, 0xa6, 0x0a, 0x2d, 0x1a, 0x01, 0x42, 0x34, 0x22, 0x2a, + 0xb4, 0x19, 0x42, 0xf5, 0x0a, 0x2d, 0x1a, 0x01, 0x42, 0xbc, 0x22, 0x2a, 0x1a, 0x01, 0xba, 0x01, 0xff, 0xe1, 0x28, 0x1a, 0x01, 0x42, 0x22, 0x00, 0x27, 0x1a, 0x41, 0xe1, 0x19, 0x1a, 0x01, 0x42, 0x22, 0x00, 0x1a, 0x1a, 0x01, 0xb3, 0x0d, 0xb4, 0x01, 0xff, 0xe1, 0x14, 0x1a, 0x01, 0x42, 0x22, 0x00, 0x15, 0x1a, 0x41, 0xe1, 0x23, 0x1a, 0x01, 0x42, 0x22, 0x00, 0x24, 0x1a, 0x41, 0xe1, 0x30, 0x1a, 0x01, 0x42, 0x22, 0x00, 0x2e, 0x1a, 0x01, - 0x42, 0x15, 0x06, 0x2f, 0x1a, 0x41, 0xe1, 0x1e, 0x1a, 0x01, 0x42, 0x22, + 0x42, 0x40, 0x06, 0x2f, 0x1a, 0x41, 0xe1, 0x1e, 0x1a, 0x01, 0x42, 0x22, 0x00, 0x1f, 0x1a, 0x41, 0xe1, 0x1d, 0x1a, 0x01, 0x42, 0x24, 0x02, 0x0f, - 0x1a, 0x01, 0x42, 0xff, 0x04, 0x18, 0x1a, 0x01, 0x42, 0x34, 0x22, 0x13, + 0x1a, 0x01, 0x42, 0x2a, 0x05, 0x18, 0x1a, 0x01, 0x42, 0xbc, 0x22, 0x13, 0x1a, 0x41, 0xe1, 0x0b, 0x1a, 0x01, 0x42, 0x22, 0x00, 0x0c, 0x1a, 0x01, - 0x43, 0x59, 0x20, 0x32, 0x1a, 0x41, 0xe1, 0x0d, 0x1a, 0x01, 0x42, 0x22, + 0x43, 0xfb, 0x20, 0x32, 0x1a, 0x41, 0xe1, 0x0d, 0x1a, 0x01, 0x42, 0x22, 0x00, 0x0e, 0x1a, 0x41, 0xe1, 0x1b, 0x1a, 0x01, 0xa4, 0x13, 0x42, 0x22, 0x00, 0x1c, 0x1a, 0x01, 0xba, 0x01, 0xff, 0xe1, 0x25, 0x1a, 0x01, 0x42, 0x22, 0x00, 0x26, 0x1a, 0x41, 0xe1, 0x16, 0x1a, 0x01, 0x42, 0x22, 0x00, 0x17, 0x1a, 0x41, 0xe1, 0x10, 0x1a, 0x01, 0x42, 0x22, 0x00, 0x11, 0x1a, 0x41, 0xe1, 0x20, 0x1a, 0x01, 0x42, 0x22, 0x00, 0x21, 0x1a, 0x41, 0x56, - 0xdb, 0x32, 0x45, 0x1a, 0x01, 0x49, 0x19, 0x1b, 0x3f, 0x1a, 0x41, 0x06, - 0x9a, 0x3c, 0x27, 0x06, 0x2f, 0x2d, 0x01, 0xff, 0x0d, 0x49, 0x81, 0x06, - 0x51, 0xc3, 0x59, 0x3a, 0x1a, 0x41, 0x42, 0x74, 0x00, 0x3d, 0x1a, 0x01, - 0x42, 0x71, 0x00, 0x3c, 0x1a, 0x01, 0x42, 0xa6, 0x0a, 0x3e, 0x1a, 0x01, - 0x42, 0x34, 0x22, 0x3b, 0x1a, 0x41, 0x56, 0xdb, 0x32, 0x46, 0x1a, 0x01, - 0x49, 0x19, 0x1b, 0x40, 0x1a, 0x41, 0x4e, 0xa8, 0x74, 0xff, 0x22, 0x00, - 0x56, 0x99, 0x32, 0x64, 0x2a, 0x00, 0x05, 0xc3, 0x00, 0x46, 0xb2, 0x27, - 0xb3, 0x06, 0x4a, 0x0d, 0xb0, 0x82, 0x29, 0x40, 0x06, 0x9c, 0xd7, 0x06, - 0x43, 0xf3, 0x43, 0x81, 0x29, 0x40, 0x4b, 0x16, 0x3a, 0x1f, 0x2a, 0x00, - 0xb0, 0x01, 0xff, 0x45, 0x76, 0xe4, 0x20, 0x2a, 0x00, 0x49, 0x64, 0xbc, - 0x21, 0x2a, 0x40, 0x54, 0xa7, 0x3f, 0x65, 0x2a, 0x00, 0x55, 0x0c, 0x3a, - 0x3e, 0x2a, 0x00, 0x05, 0xc9, 0x00, 0x01, 0xff, 0x4f, 0xb5, 0x69, 0x8a, - 0x29, 0x00, 0x4d, 0x8e, 0x82, 0x88, 0x29, 0x40, 0x4f, 0xb5, 0x69, 0x89, - 0x29, 0x00, 0x4d, 0x8e, 0x82, 0x87, 0x29, 0x40, 0x4b, 0x69, 0x97, 0x71, - 0xf9, 0x01, 0xa5, 0xc4, 0x2b, 0xa9, 0x06, 0x44, 0x6e, 0xee, 0x80, 0xfa, - 0x41, 0x80, 0x06, 0x46, 0x26, 0xdb, 0x2f, 0x26, 0x40, 0x08, 0x1c, 0xa3, - 0xcd, 0x28, 0x09, 0xae, 0x17, 0x01, 0xff, 0xe1, 0x0a, 0xa0, 0x80, 0xb6, - 0x28, 0xa2, 0x94, 0x26, 0xa3, 0x87, 0x24, 0xa4, 0x9d, 0x22, 0xe5, 0x14, - 0xa0, 0x80, 0x93, 0x22, 0xa6, 0xb6, 0x21, 0xa7, 0xb7, 0x1f, 0xa8, 0x8b, - 0x1b, 0xe9, 0x02, 0xa0, 0x80, 0xe1, 0x1a, 0xaa, 0xf8, 0x18, 0xab, 0xfd, - 0x17, 0xac, 0xe3, 0x16, 0xad, 0xf6, 0x14, 0xae, 0xab, 0x0e, 0xef, 0x11, - 0xa0, 0x80, 0x99, 0x0e, 0xb0, 0x95, 0x0d, 0xb1, 0x9a, 0x0c, 0xb2, 0xba, - 0x0a, 0xb3, 0xb4, 0x07, 0xb4, 0xb9, 0x06, 0x42, 0xef, 0x04, 0x0d, 0xa0, - 0x80, 0xa9, 0x06, 0xb6, 0xa4, 0x05, 0xb7, 0xe4, 0x04, 0xb8, 0x89, 0x04, - 0xb9, 0x8e, 0x03, 0xba, 0x01, 0xff, 0xe1, 0x96, 0xa2, 0x80, 0xf9, 0x02, - 0xe5, 0xa0, 0xa2, 0x80, 0xeb, 0x02, 0xa8, 0xf4, 0x01, 0xe9, 0x8f, 0xa2, - 0x80, 0xd5, 0x01, 0xef, 0x9d, 0xa2, 0x80, 0xc3, 0x01, 0xf5, 0xa4, 0xa2, - 0x80, 0x9b, 0x01, 0xf9, 0xaa, 0xa2, 0x80, 0x80, 0x01, 0xba, 0x01, 0xff, - 0xe1, 0xda, 0xa2, 0x80, 0x6c, 0xe5, 0xe0, 0xa2, 0x80, 0x5f, 0xe9, 0xd2, - 0xa2, 0x80, 0x3d, 0xef, 0xdd, 0xa2, 0x80, 0x30, 0xf5, 0xe3, 0xa2, 0x80, - 0x1a, 0xf9, 0xe9, 0xa2, 0xc0, 0x00, 0xf0, 0xea, 0xa2, 0x00, 0xf2, 0xec, - 0xa2, 0x80, 0x08, 0xf4, 0xe7, 0xa2, 0x00, 0xf8, 0xe8, 0xa2, 0x40, 0xf8, - 0xeb, 0xa2, 0x40, 0xf0, 0xe4, 0xa2, 0x00, 0xf2, 0xe6, 0xa2, 0x80, 0x04, - 0xf8, 0xe2, 0xa2, 0x40, 0xf8, 0xe5, 0xa2, 0x40, 0xf0, 0xde, 0xa2, 0x00, - 0xf8, 0xdc, 0xa2, 0x40, 0xe5, 0xd6, 0xa2, 0x80, 0x0c, 0xf0, 0xd3, 0xa2, - 0x00, 0xf4, 0xd0, 0xa2, 0x00, 0xf8, 0xd1, 0xa2, 0x40, 0xf0, 0xd7, 0xa2, - 0x00, 0xf4, 0xd4, 0xa2, 0x00, 0xf8, 0xd5, 0xa2, 0x40, 0xf0, 0xe1, 0xa2, - 0x00, 0xf8, 0xdf, 0xa2, 0x40, 0xf0, 0xdb, 0xa2, 0x00, 0xf4, 0xd8, 0xa2, - 0x00, 0xf8, 0xd9, 0xa2, 0x40, 0xf0, 0xab, 0xa2, 0x00, 0xf2, 0xad, 0xa2, - 0x80, 0x08, 0xf4, 0xa8, 0xa2, 0x00, 0xf8, 0xa9, 0xa2, 0x40, 0xf8, 0xac, - 0xa2, 0x40, 0xef, 0x99, 0xa2, 0x80, 0x15, 0xf0, 0xa5, 0xa2, 0x00, 0xf2, - 0xa7, 0xa2, 0x80, 0x08, 0xf4, 0xa2, 0xa2, 0x00, 0xf8, 0xa3, 0xa2, 0x40, - 0xf8, 0xa6, 0xa2, 0x40, 0xf0, 0x9a, 0xa2, 0x00, 0xf8, 0x98, 0xa2, 0x40, - 0xf0, 0x9e, 0xa2, 0x00, 0xf4, 0x9b, 0xa2, 0x00, 0xf8, 0x9c, 0xa2, 0x40, - 0xe5, 0x92, 0xa2, 0x80, 0x0c, 0xf0, 0x90, 0xa2, 0x00, 0xf4, 0x8d, 0xa2, - 0x00, 0xf8, 0x8e, 0xa2, 0x40, 0xf0, 0x93, 0xa2, 0x00, 0xf8, 0x91, 0xa2, - 0x40, 0xe1, 0x48, 0xa3, 0x80, 0x63, 0xe5, 0x53, 0xa3, 0x80, 0x52, 0xef, - 0x4f, 0xa3, 0x80, 0x41, 0xf5, 0x57, 0xa3, 0x80, 0x1a, 0xf9, 0x5d, 0xa3, - 0xc0, 0x00, 0xf0, 0x5e, 0xa3, 0x00, 0xf2, 0x60, 0xa3, 0x80, 0x08, 0xf4, - 0x5b, 0xa3, 0x00, 0xf8, 0x5c, 0xa3, 0x40, 0xf8, 0x5f, 0xa3, 0x40, 0xef, - 0x4b, 0xa3, 0x80, 0x15, 0xf0, 0x58, 0xa3, 0x00, 0xf2, 0x5a, 0xa3, 0x80, - 0x08, 0xf4, 0x55, 0xa3, 0x00, 0xf8, 0x56, 0xa3, 0x40, 0xf8, 0x59, 0xa3, - 0x40, 0xf0, 0x4c, 0xa3, 0x00, 0xf8, 0x4a, 0xa3, 0x40, 0xf0, 0x50, 0xa3, - 0x00, 0xf4, 0x4d, 0xa3, 0x00, 0xf8, 0x4e, 0xa3, 0x40, 0xf0, 0x54, 0xa3, - 0x00, 0xf4, 0x51, 0xa3, 0x00, 0xf8, 0x52, 0xa3, 0x40, 0xf0, 0x49, 0xa3, - 0x00, 0xf4, 0x46, 0xa3, 0x00, 0xf8, 0x47, 0xa3, 0x40, 0xf0, 0xa1, 0xa2, - 0x00, 0xf8, 0x9f, 0xa2, 0x40, 0xf0, 0x97, 0xa2, 0x00, 0xf4, 0x94, 0xa2, - 0x00, 0xf8, 0x95, 0xa2, 0x40, 0xe9, 0x73, 0xa4, 0x80, 0x56, 0xef, 0x7f, - 0xa4, 0x80, 0x45, 0xf5, 0x83, 0xa4, 0x80, 0x1a, 0xf9, 0x89, 0xa4, 0xc0, - 0x00, 0xf0, 0x8a, 0xa4, 0x00, 0xf2, 0x8c, 0xa4, 0x80, 0x08, 0xf4, 0x87, - 0xa4, 0x00, 0xf8, 0x88, 0xa4, 0x40, 0xf8, 0x8b, 0xa4, 0x40, 0xef, 0x7b, - 0xa4, 0x80, 0x15, 0xf0, 0x84, 0xa4, 0x00, 0xf2, 0x86, 0xa4, 0x80, 0x08, - 0xf4, 0x81, 0xa4, 0x00, 0xf8, 0x82, 0xa4, 0x40, 0xf8, 0x85, 0xa4, 0x40, - 0xf0, 0x7c, 0xa4, 0x00, 0xf4, 0x79, 0xa4, 0x00, 0xf8, 0x7a, 0xa4, 0x40, - 0xf0, 0x80, 0xa4, 0x00, 0xf4, 0x7d, 0xa4, 0x00, 0xf8, 0x7e, 0xa4, 0x40, - 0xe5, 0x77, 0xa4, 0x80, 0x0c, 0xf0, 0x74, 0xa4, 0x00, 0xf4, 0x71, 0xa4, - 0x00, 0xf8, 0x72, 0xa4, 0x40, 0xf0, 0x78, 0xa4, 0x00, 0xf4, 0x75, 0xa4, - 0x00, 0xf8, 0x76, 0xa4, 0x40, 0xe9, 0x5f, 0xa4, 0x80, 0x36, 0xef, 0x69, - 0xa4, 0x80, 0x25, 0x42, 0xef, 0x04, 0x66, 0xa4, 0x80, 0x1a, 0xf9, 0x6d, - 0xa4, 0xc0, 0x00, 0xf0, 0x6e, 0xa4, 0x00, 0xf2, 0x70, 0xa4, 0x80, 0x08, - 0xf4, 0x6b, 0xa4, 0x00, 0xf8, 0x6c, 0xa4, 0x40, 0xf8, 0x6f, 0xa4, 0x40, - 0xf8, 0x65, 0xa4, 0x40, 0xf0, 0x6a, 0xa4, 0x00, 0xf4, 0x67, 0xa4, 0x00, - 0xf8, 0x68, 0xa4, 0x40, 0xe5, 0x63, 0xa4, 0x80, 0x0c, 0xf0, 0x60, 0xa4, - 0x00, 0xf4, 0x5d, 0xa4, 0x00, 0xf8, 0x5e, 0xa4, 0x40, 0xf0, 0x64, 0xa4, - 0x00, 0xf4, 0x61, 0xa4, 0x00, 0xf8, 0x62, 0xa4, 0x40, 0xe1, 0x82, 0xa2, - 0x80, 0x2c, 0xe5, 0x8b, 0xa2, 0x80, 0x1f, 0xef, 0x88, 0xa2, 0x80, 0x12, - 0xf5, 0x15, 0xa0, 0xc0, 0x00, 0xef, 0x85, 0xa2, 0xc0, 0x00, 0xf0, 0x86, - 0xa2, 0x00, 0xf8, 0x84, 0xa2, 0x40, 0xf0, 0x89, 0xa2, 0x00, 0xf8, 0x87, - 0xa2, 0x40, 0xf0, 0x8c, 0xa2, 0x00, 0xf8, 0x8a, 0xa2, 0x40, 0xf0, 0x83, - 0xa2, 0x00, 0xf4, 0x80, 0xa2, 0x00, 0xf8, 0x81, 0xa2, 0x40, 0xe1, 0xec, - 0xa0, 0x80, 0x71, 0xa5, 0x67, 0xe9, 0xe4, 0xa0, 0x80, 0x45, 0xef, 0xf0, - 0xa0, 0x80, 0x34, 0xf5, 0xf6, 0xa0, 0x80, 0x1a, 0xf9, 0xfc, 0xa0, 0xc0, - 0x00, 0xf0, 0xfd, 0xa0, 0x00, 0xf2, 0xff, 0xa0, 0x80, 0x08, 0xf4, 0xfa, - 0xa0, 0x00, 0xf8, 0xfb, 0xa0, 0x40, 0xf8, 0xfe, 0xa0, 0x40, 0xf0, 0xf7, - 0xa0, 0x00, 0xf2, 0xf9, 0xa0, 0x80, 0x08, 0xf4, 0xf4, 0xa0, 0x00, 0xf8, - 0xf5, 0xa0, 0x40, 0xf8, 0xf8, 0xa0, 0x40, 0xf0, 0xf1, 0xa0, 0x00, 0xf4, - 0xee, 0xa0, 0x00, 0xf8, 0xef, 0xa0, 0x40, 0xe5, 0xe8, 0xa0, 0x80, 0x0c, - 0xf0, 0xe5, 0xa0, 0x00, 0xf4, 0xe2, 0xa0, 0x00, 0xf8, 0xe3, 0xa0, 0x40, - 0xf0, 0xe9, 0xa0, 0x00, 0xf4, 0xe6, 0xa0, 0x00, 0xf8, 0xe7, 0xa0, 0x40, - 0xf0, 0xf3, 0xa0, 0x00, 0xf8, 0xf2, 0xa0, 0x40, 0xf0, 0xed, 0xa0, 0x00, - 0xf4, 0xea, 0xa0, 0x00, 0xf8, 0xeb, 0xa0, 0x40, 0xf0, 0x0e, 0xa0, 0x00, - 0xf8, 0x0c, 0xa0, 0x40, 0xe1, 0x23, 0xa1, 0x80, 0x67, 0xe5, 0x2e, 0xa1, - 0x80, 0x5a, 0xe9, 0x1c, 0xa1, 0x80, 0x3c, 0xef, 0x2b, 0xa1, 0x80, 0x2b, - 0xf5, 0x32, 0xa1, 0xc0, 0x00, 0xef, 0x27, 0xa1, 0x80, 0x15, 0xf0, 0x33, - 0xa1, 0x00, 0xf2, 0x35, 0xa1, 0x80, 0x08, 0xf4, 0x30, 0xa1, 0x00, 0xf8, - 0x31, 0xa1, 0x40, 0xf8, 0x34, 0xa1, 0x40, 0xf0, 0x28, 0xa1, 0x00, 0xf4, - 0x25, 0xa1, 0x00, 0xf8, 0x26, 0xa1, 0x40, 0xf0, 0x2c, 0xa1, 0x00, 0xf4, - 0x29, 0xa1, 0x00, 0xf8, 0x2a, 0xa1, 0x40, 0xe5, 0x1f, 0xa1, 0x80, 0x0c, - 0xf0, 0x1d, 0xa1, 0x00, 0xf4, 0x1a, 0xa1, 0x00, 0xf8, 0x1b, 0xa1, 0x40, - 0xf0, 0x20, 0xa1, 0x00, 0xf8, 0x1e, 0xa1, 0x40, 0xf0, 0x2f, 0xa1, 0x00, - 0xf8, 0x2d, 0xa1, 0x40, 0xf0, 0x24, 0xa1, 0x00, 0xf4, 0x21, 0xa1, 0x00, - 0xf8, 0x22, 0xa1, 0x40, 0xe1, 0x12, 0xa3, 0x80, 0xf1, 0x02, 0xe5, 0x1c, - 0xa3, 0x80, 0xe3, 0x02, 0xa8, 0xec, 0x01, 0xe9, 0x0b, 0xa3, 0x80, 0xcd, - 0x01, 0xef, 0x19, 0xa3, 0x80, 0xbb, 0x01, 0xb3, 0x41, 0xf5, 0x20, 0xa3, - 0x80, 0x1a, 0xf9, 0x26, 0xa3, 0xc0, 0x00, 0xf0, 0x27, 0xa3, 0x00, 0xf2, - 0x29, 0xa3, 0x80, 0x08, 0xf4, 0x24, 0xa3, 0x00, 0xf8, 0x25, 0xa3, 0x40, - 0xf8, 0x28, 0xa3, 0x40, 0xef, 0x15, 0xa3, 0x80, 0x15, 0xf0, 0x21, 0xa3, - 0x00, 0xf2, 0x23, 0xa3, 0x80, 0x08, 0xf4, 0x1e, 0xa3, 0x00, 0xf8, 0x1f, - 0xa3, 0x40, 0xf8, 0x22, 0xa3, 0x40, 0xf0, 0x16, 0xa3, 0x00, 0xf8, 0x14, - 0xa3, 0x40, 0xe1, 0x33, 0xa3, 0x80, 0x67, 0xe5, 0x3a, 0xa3, 0x80, 0x5a, - 0xe9, 0x2c, 0xa3, 0x80, 0x3c, 0xef, 0x37, 0xa3, 0x80, 0x2b, 0xf5, 0x3e, - 0xa3, 0x80, 0x1a, 0xf9, 0x42, 0xa3, 0xc0, 0x00, 0xf0, 0x43, 0xa3, 0x00, - 0xf2, 0x45, 0xa3, 0x80, 0x08, 0xf4, 0x40, 0xa3, 0x00, 0xf8, 0x41, 0xa3, - 0x40, 0xf8, 0x44, 0xa3, 0x40, 0xf0, 0x3f, 0xa3, 0x00, 0xf4, 0x3c, 0xa3, - 0x00, 0xf8, 0x3d, 0xa3, 0x40, 0xf0, 0x38, 0xa3, 0x00, 0xf4, 0x35, 0xa3, - 0x00, 0xf8, 0x36, 0xa3, 0x40, 0xe5, 0x2f, 0xa3, 0x80, 0x0c, 0xf0, 0x2d, - 0xa3, 0x00, 0xf4, 0x2a, 0xa3, 0x00, 0xf8, 0x2b, 0xa3, 0x40, 0xf0, 0x30, - 0xa3, 0x00, 0xf8, 0x2e, 0xa3, 0x40, 0xf0, 0x3b, 0xa3, 0x00, 0xf8, 0x39, - 0xa3, 0x40, 0xf0, 0x34, 0xa3, 0x00, 0xf4, 0x31, 0xa3, 0x00, 0xf8, 0x32, - 0xa3, 0x40, 0xf0, 0x1a, 0xa3, 0x00, 0xf4, 0x17, 0xa3, 0x00, 0xf8, 0x18, - 0xa3, 0x40, 0xe5, 0x0e, 0xa3, 0x80, 0x0c, 0xf0, 0x0c, 0xa3, 0x00, 0xf4, - 0x09, 0xa3, 0x00, 0xf8, 0x0a, 0xa3, 0x40, 0xf0, 0x0f, 0xa3, 0x00, 0xf8, - 0x0d, 0xa3, 0x40, 0xe1, 0xad, 0xa3, 0x80, 0x63, 0xe5, 0xb8, 0xa3, 0x80, - 0x52, 0xef, 0xb4, 0xa3, 0x80, 0x41, 0xf5, 0xbc, 0xa3, 0x80, 0x1a, 0xf9, - 0xc2, 0xa3, 0xc0, 0x00, 0xf0, 0xc3, 0xa3, 0x00, 0xf2, 0xc5, 0xa3, 0x80, - 0x08, 0xf4, 0xc0, 0xa3, 0x00, 0xf8, 0xc1, 0xa3, 0x40, 0xf8, 0xc4, 0xa3, - 0x40, 0xef, 0xb0, 0xa3, 0x80, 0x15, 0xf0, 0xbd, 0xa3, 0x00, 0xf2, 0xbf, - 0xa3, 0x80, 0x08, 0xf4, 0xba, 0xa3, 0x00, 0xf8, 0xbb, 0xa3, 0x40, 0xf8, - 0xbe, 0xa3, 0x40, 0xf0, 0xb1, 0xa3, 0x00, 0xf8, 0xaf, 0xa3, 0x40, 0xf0, - 0xb5, 0xa3, 0x00, 0xf4, 0xb2, 0xa3, 0x00, 0xf8, 0xb3, 0xa3, 0x40, 0xf0, - 0xb9, 0xa3, 0x00, 0xf4, 0xb6, 0xa3, 0x00, 0xf8, 0xb7, 0xa3, 0x40, 0xf0, - 0xae, 0xa3, 0x00, 0xf4, 0xab, 0xa3, 0x00, 0xf8, 0xac, 0xa3, 0x40, 0xf0, - 0x1d, 0xa3, 0x00, 0xf8, 0x1b, 0xa3, 0x40, 0xf0, 0x13, 0xa3, 0x00, 0xf4, - 0x10, 0xa3, 0x00, 0xf8, 0x11, 0xa3, 0x40, 0xe1, 0xc8, 0xa3, 0x80, 0xcb, - 0x01, 0xe5, 0xd2, 0xa3, 0x80, 0xbd, 0x01, 0xef, 0xcf, 0xa3, 0x80, 0xab, - 0x01, 0xb2, 0x41, 0xf5, 0xd6, 0xa3, 0x80, 0x1a, 0xf9, 0xdc, 0xa3, 0xc0, - 0x00, 0xf0, 0xdd, 0xa3, 0x00, 0xf2, 0xdf, 0xa3, 0x80, 0x08, 0xf4, 0xda, - 0xa3, 0x00, 0xf8, 0xdb, 0xa3, 0x40, 0xf8, 0xde, 0xa3, 0x40, 0xef, 0xcb, - 0xa3, 0x80, 0x15, 0xf0, 0xd7, 0xa3, 0x00, 0xf2, 0xd9, 0xa3, 0x80, 0x08, - 0xf4, 0xd4, 0xa3, 0x00, 0xf8, 0xd5, 0xa3, 0x40, 0xf8, 0xd8, 0xa3, 0x40, - 0xf0, 0xcc, 0xa3, 0x00, 0xf8, 0xca, 0xa3, 0x40, 0xe1, 0x7d, 0xa3, 0x80, - 0x5f, 0xe5, 0x86, 0xa3, 0x80, 0x4e, 0xef, 0x82, 0xa3, 0x80, 0x3d, 0xf5, - 0x8a, 0xa3, 0x80, 0x1a, 0xf9, 0x90, 0xa3, 0xc0, 0x00, 0xf0, 0x91, 0xa3, - 0x00, 0xf2, 0x93, 0xa3, 0x80, 0x08, 0xf4, 0x8e, 0xa3, 0x00, 0xf8, 0x8f, - 0xa3, 0x40, 0xf8, 0x92, 0xa3, 0x40, 0xef, 0x7f, 0xa3, 0x80, 0x15, 0xf0, - 0x8b, 0xa3, 0x00, 0xf2, 0x8d, 0xa3, 0x80, 0x08, 0xf4, 0x88, 0xa3, 0x00, - 0xf8, 0x89, 0xa3, 0x40, 0xf8, 0x8c, 0xa3, 0x40, 0xf8, 0x7e, 0xa3, 0x40, - 0xf0, 0x83, 0xa3, 0x00, 0xf4, 0x80, 0xa3, 0x00, 0xf8, 0x81, 0xa3, 0x40, - 0xf0, 0x87, 0xa3, 0x00, 0xf4, 0x84, 0xa3, 0x00, 0xf8, 0x85, 0xa3, 0x40, - 0xf8, 0x7c, 0xa3, 0x40, 0xf0, 0xd0, 0xa3, 0x00, 0xf4, 0xcd, 0xa3, 0x00, - 0xf8, 0xce, 0xa3, 0x40, 0xf0, 0xd3, 0xa3, 0x00, 0xf8, 0xd1, 0xa3, 0x40, - 0xf0, 0xc9, 0xa3, 0x00, 0xf4, 0xc6, 0xa3, 0x00, 0xf8, 0xc7, 0xa3, 0x40, - 0xe9, 0xfe, 0xa3, 0x80, 0x56, 0xef, 0x0a, 0xa4, 0x80, 0x45, 0xf5, 0x0e, - 0xa4, 0x80, 0x1a, 0xf9, 0x14, 0xa4, 0xc0, 0x00, 0xf0, 0x15, 0xa4, 0x00, - 0xf2, 0x17, 0xa4, 0x80, 0x08, 0xf4, 0x12, 0xa4, 0x00, 0xf8, 0x13, 0xa4, - 0x40, 0xf8, 0x16, 0xa4, 0x40, 0xef, 0x06, 0xa4, 0x80, 0x15, 0xf0, 0x0f, - 0xa4, 0x00, 0xf2, 0x11, 0xa4, 0x80, 0x08, 0xf4, 0x0c, 0xa4, 0x00, 0xf8, - 0x0d, 0xa4, 0x40, 0xf8, 0x10, 0xa4, 0x40, 0xf0, 0x07, 0xa4, 0x00, 0xf4, - 0x04, 0xa4, 0x00, 0xf8, 0x05, 0xa4, 0x40, 0xf0, 0x0b, 0xa4, 0x00, 0xf4, - 0x08, 0xa4, 0x00, 0xf8, 0x09, 0xa4, 0x40, 0xe5, 0x02, 0xa4, 0x80, 0x0c, - 0xf0, 0xff, 0xa3, 0x00, 0xf4, 0xfc, 0xa3, 0x00, 0xf8, 0xfd, 0xa3, 0x40, - 0xf0, 0x03, 0xa4, 0x00, 0xf4, 0x00, 0xa4, 0x00, 0xf8, 0x01, 0xa4, 0x40, - 0xe1, 0x41, 0xa0, 0x80, 0x70, 0xe9, 0x3a, 0xa0, 0x80, 0x52, 0xef, 0x48, - 0xa0, 0x80, 0x41, 0xf5, 0x4c, 0xa0, 0x80, 0x1a, 0xf9, 0x52, 0xa0, 0xc0, - 0x00, 0xf0, 0x53, 0xa0, 0x00, 0xf2, 0x55, 0xa0, 0x80, 0x08, 0xf4, 0x50, - 0xa0, 0x00, 0xf8, 0x51, 0xa0, 0x40, 0xf8, 0x54, 0xa0, 0x40, 0xef, 0x44, - 0xa0, 0x80, 0x15, 0xf0, 0x4d, 0xa0, 0x00, 0xf2, 0x4f, 0xa0, 0x80, 0x08, - 0xf4, 0x4a, 0xa0, 0x00, 0xf8, 0x4b, 0xa0, 0x40, 0xf8, 0x4e, 0xa0, 0x40, - 0xf0, 0x45, 0xa0, 0x00, 0xf8, 0x43, 0xa0, 0x40, 0xf0, 0x49, 0xa0, 0x00, - 0xf4, 0x46, 0xa0, 0x00, 0xf8, 0x47, 0xa0, 0x40, 0xe5, 0x3d, 0xa0, 0x80, - 0x0c, 0xf0, 0x3b, 0xa0, 0x00, 0xf4, 0x38, 0xa0, 0x00, 0xf8, 0x39, 0xa0, - 0x40, 0xf0, 0x3e, 0xa0, 0x00, 0xf8, 0x3c, 0xa0, 0x40, 0xf0, 0x42, 0xa0, - 0x00, 0xf4, 0x3f, 0xa0, 0x00, 0xf8, 0x40, 0xa0, 0x40, 0xf0, 0x12, 0xa0, - 0x00, 0xf4, 0x0f, 0xa0, 0x00, 0xf8, 0x10, 0xa0, 0x40, 0xe1, 0x85, 0xa1, - 0x80, 0xba, 0x06, 0xa2, 0xc3, 0x05, 0xa4, 0xdd, 0x04, 0xe5, 0x8f, 0xa1, - 0x80, 0xcf, 0x04, 0xa7, 0xff, 0x03, 0xe9, 0x7f, 0xa1, 0x80, 0xe0, 0x03, - 0xaa, 0xf1, 0x02, 0xef, 0x8c, 0xa1, 0x80, 0xdf, 0x02, 0xb2, 0xf9, 0x01, - 0xf5, 0x93, 0xa1, 0x80, 0xd1, 0x01, 0xb9, 0x7e, 0xba, 0x01, 0xff, 0xe1, - 0xf6, 0xa2, 0x80, 0x6a, 0xe5, 0xfd, 0xa2, 0x80, 0x61, 0xe9, 0xef, 0xa2, - 0x80, 0x43, 0xaf, 0x39, 0xf5, 0xff, 0xa2, 0x80, 0x1a, 0xf9, 0x05, 0xa3, - 0xc0, 0x00, 0xf0, 0x06, 0xa3, 0x00, 0xf2, 0x08, 0xa3, 0x80, 0x08, 0xf4, - 0x03, 0xa3, 0x00, 0xf8, 0x04, 0xa3, 0x40, 0xf8, 0x07, 0xa3, 0x40, 0xef, - 0xf9, 0xa2, 0x80, 0x11, 0xf0, 0x00, 0xa3, 0x00, 0xf2, 0x02, 0xa3, 0x80, - 0x04, 0xf8, 0xfe, 0xa2, 0x40, 0xf8, 0x01, 0xa3, 0x40, 0xf8, 0xf8, 0xa2, - 0x40, 0xf0, 0xfb, 0xa2, 0x00, 0xf8, 0xfa, 0xa2, 0x40, 0xe5, 0xf2, 0xa2, - 0x80, 0x0c, 0xf0, 0xf0, 0xa2, 0x00, 0xf4, 0xed, 0xa2, 0x00, 0xf8, 0xee, - 0xa2, 0x40, 0xf0, 0xf3, 0xa2, 0x00, 0xf8, 0xf1, 0xa2, 0x40, 0xf8, 0xfc, - 0xa2, 0x40, 0xf0, 0xf7, 0xa2, 0x00, 0xf4, 0xf4, 0xa2, 0x00, 0xf8, 0xf5, - 0xa2, 0x40, 0xe9, 0x4c, 0xa4, 0x80, 0x2f, 0xef, 0x57, 0xa4, 0x80, 0x1e, - 0xf5, 0x5b, 0xa4, 0xc0, 0x00, 0xef, 0x53, 0xa4, 0x80, 0x0c, 0xf0, 0x5c, - 0xa4, 0x00, 0xf4, 0x59, 0xa4, 0x00, 0xf8, 0x5a, 0xa4, 0x40, 0xf0, 0x54, - 0xa4, 0x00, 0xf8, 0x52, 0xa4, 0x40, 0xf0, 0x58, 0xa4, 0x00, 0xf4, 0x55, - 0xa4, 0x00, 0xf8, 0x56, 0xa4, 0x40, 0xe5, 0x50, 0xa4, 0x80, 0x0c, 0xf0, - 0x4d, 0xa4, 0x00, 0xf4, 0x4a, 0xa4, 0x00, 0xf8, 0x4b, 0xa4, 0x40, 0xf0, - 0x51, 0xa4, 0x00, 0xf4, 0x4e, 0xa4, 0x00, 0xf8, 0x4f, 0xa4, 0x40, 0xef, - 0x88, 0xa1, 0x80, 0x15, 0xf0, 0x94, 0xa1, 0x00, 0xf2, 0x96, 0xa1, 0x80, - 0x08, 0xf4, 0x91, 0xa1, 0x00, 0xf8, 0x92, 0xa1, 0x40, 0xf8, 0x95, 0xa1, - 0x40, 0xf0, 0x89, 0xa1, 0x00, 0xf8, 0x87, 0xa1, 0x40, 0xe1, 0x96, 0xa3, - 0x80, 0x52, 0xe5, 0x9d, 0xa3, 0x80, 0x41, 0xef, 0x99, 0xa3, 0x80, 0x34, - 0xf5, 0xa1, 0xa3, 0x80, 0x1a, 0xf9, 0xa7, 0xa3, 0xc0, 0x00, 0xf0, 0xa8, - 0xa3, 0x00, 0xf2, 0xaa, 0xa3, 0x80, 0x08, 0xf4, 0xa5, 0xa3, 0x00, 0xf8, - 0xa6, 0xa3, 0x40, 0xf8, 0xa9, 0xa3, 0x40, 0xf0, 0xa2, 0xa3, 0x00, 0xf2, - 0xa4, 0xa3, 0x80, 0x08, 0xf4, 0x9f, 0xa3, 0x00, 0xf8, 0xa0, 0xa3, 0x40, - 0xf8, 0xa3, 0xa3, 0x40, 0xf0, 0x9a, 0xa3, 0x00, 0xf8, 0x98, 0xa3, 0x40, - 0xf0, 0x9e, 0xa3, 0x00, 0xf4, 0x9b, 0xa3, 0x00, 0xf8, 0x9c, 0xa3, 0x40, - 0xf0, 0x97, 0xa3, 0x00, 0xf4, 0x94, 0xa3, 0x00, 0xf8, 0x95, 0xa3, 0x40, - 0xf0, 0x8d, 0xa1, 0x00, 0xf4, 0x8a, 0xa1, 0x00, 0xf8, 0x8b, 0xa1, 0x40, - 0xe9, 0x33, 0xa4, 0x80, 0x4a, 0xef, 0x3d, 0xa4, 0x80, 0x39, 0xf5, 0x40, - 0xa4, 0x80, 0x1a, 0xf9, 0x46, 0xa4, 0xc0, 0x00, 0xf0, 0x47, 0xa4, 0x00, - 0xf2, 0x49, 0xa4, 0x80, 0x08, 0xf4, 0x44, 0xa4, 0x00, 0xf8, 0x45, 0xa4, - 0x40, 0xf8, 0x48, 0xa4, 0x40, 0xef, 0x3a, 0xa4, 0x80, 0x11, 0xf0, 0x41, - 0xa4, 0x00, 0xf2, 0x43, 0xa4, 0x80, 0x04, 0xf8, 0x3f, 0xa4, 0x40, 0xf8, - 0x42, 0xa4, 0x40, 0xf8, 0x39, 0xa4, 0x40, 0xf0, 0x3e, 0xa4, 0x00, 0xf4, - 0x3b, 0xa4, 0x00, 0xf8, 0x3c, 0xa4, 0x40, 0xe5, 0x37, 0xa4, 0x80, 0x0c, - 0xf0, 0x34, 0xa4, 0x00, 0xf4, 0x31, 0xa4, 0x00, 0xf8, 0x32, 0xa4, 0x40, - 0xf0, 0x38, 0xa4, 0x00, 0xf4, 0x35, 0xa4, 0x00, 0xf8, 0x36, 0xa4, 0x40, - 0xe5, 0x82, 0xa1, 0x80, 0x0c, 0xf0, 0x80, 0xa1, 0x00, 0xf4, 0x7d, 0xa1, - 0x00, 0xf8, 0x7e, 0xa1, 0x40, 0xf0, 0x83, 0xa1, 0x00, 0xf8, 0x81, 0xa1, - 0x40, 0xe1, 0x62, 0xa2, 0x80, 0x3c, 0xe5, 0x6c, 0xa2, 0x80, 0x2f, 0x42, - 0xc9, 0x02, 0x5e, 0xa2, 0x80, 0x20, 0xef, 0x69, 0xa2, 0x80, 0x0f, 0x42, - 0xef, 0x04, 0x66, 0xa2, 0xc0, 0x00, 0xf4, 0x64, 0xa2, 0x00, 0xf8, 0x65, - 0xa2, 0x40, 0xf0, 0x6a, 0xa2, 0x00, 0xf4, 0x67, 0xa2, 0x00, 0xf8, 0x68, - 0xa2, 0x40, 0xf0, 0x5f, 0xa2, 0x00, 0xf8, 0x5d, 0xa2, 0x40, 0xf0, 0x6d, - 0xa2, 0x00, 0xf8, 0x6b, 0xa2, 0x40, 0xf0, 0x63, 0xa2, 0x00, 0xf4, 0x60, - 0xa2, 0x00, 0xf8, 0x61, 0xa2, 0x40, 0xf0, 0x90, 0xa1, 0x00, 0xf8, 0x8e, - 0xa1, 0x40, 0xe1, 0x59, 0xa1, 0x80, 0x52, 0xe5, 0x60, 0xa1, 0x80, 0x45, - 0xe9, 0x53, 0xa1, 0x80, 0x2b, 0xef, 0x5d, 0xa1, 0x80, 0x1a, 0xf5, 0x64, - 0xa1, 0xc0, 0x00, 0xf0, 0x65, 0xa1, 0x00, 0xf2, 0x67, 0xa1, 0x80, 0x08, - 0xf4, 0x62, 0xa1, 0x00, 0xf8, 0x63, 0xa1, 0x40, 0xf8, 0x66, 0xa1, 0x40, - 0xf0, 0x5e, 0xa1, 0x00, 0xf4, 0x5b, 0xa1, 0x00, 0xf8, 0x5c, 0xa1, 0x40, - 0xe5, 0x56, 0xa1, 0x80, 0x0c, 0xf0, 0x54, 0xa1, 0x00, 0xf4, 0x51, 0xa1, - 0x00, 0xf8, 0x52, 0xa1, 0x40, 0xf8, 0x55, 0xa1, 0x40, 0xf0, 0x61, 0xa1, - 0x00, 0xf8, 0x5f, 0xa1, 0x40, 0xf0, 0x5a, 0xa1, 0x00, 0xf4, 0x57, 0xa1, - 0x00, 0xf8, 0x58, 0xa1, 0x40, 0xe1, 0x7f, 0xa0, 0x80, 0x63, 0xe9, 0x78, - 0xa0, 0x80, 0x45, 0xef, 0x83, 0xa0, 0x80, 0x34, 0xf5, 0x87, 0xa0, 0x80, - 0x1a, 0xf9, 0x8d, 0xa0, 0xc0, 0x00, 0xf0, 0x8e, 0xa0, 0x00, 0xf2, 0x90, - 0xa0, 0x80, 0x08, 0xf4, 0x8b, 0xa0, 0x00, 0xf8, 0x8c, 0xa0, 0x40, 0xf8, - 0x8f, 0xa0, 0x40, 0xf0, 0x88, 0xa0, 0x00, 0xf2, 0x8a, 0xa0, 0x80, 0x08, - 0xf4, 0x85, 0xa0, 0x00, 0xf8, 0x86, 0xa0, 0x40, 0xf8, 0x89, 0xa0, 0x40, - 0xf0, 0x84, 0xa0, 0x00, 0xf4, 0x81, 0xa0, 0x00, 0xf8, 0x82, 0xa0, 0x40, - 0xe5, 0x7b, 0xa0, 0x80, 0x0c, 0xf0, 0x79, 0xa0, 0x00, 0xf4, 0x76, 0xa0, - 0x00, 0xf8, 0x77, 0xa0, 0x40, 0xf0, 0x7c, 0xa0, 0x00, 0xf8, 0x7a, 0xa0, - 0x40, 0xf0, 0x80, 0xa0, 0x00, 0xf4, 0x7d, 0xa0, 0x00, 0xf8, 0x7e, 0xa0, - 0x40, 0xf0, 0x86, 0xa1, 0x00, 0xf8, 0x84, 0xa1, 0x40, 0xe1, 0xb7, 0xa0, - 0x80, 0xd8, 0x01, 0xe5, 0xc2, 0xa0, 0x80, 0xce, 0x01, 0xa7, 0x6b, 0xe9, - 0xb0, 0xa0, 0x80, 0x4d, 0xef, 0xbf, 0xa0, 0x80, 0x3c, 0xf5, 0xc5, 0xa0, - 0x80, 0x11, 0xf9, 0xcb, 0xa0, 0xc0, 0x00, 0xf0, 0xcc, 0xa0, 0x00, 0xf4, - 0xc9, 0xa0, 0x00, 0xf8, 0xca, 0xa0, 0x40, 0xef, 0xbb, 0xa0, 0x80, 0x15, - 0xf0, 0xc6, 0xa0, 0x00, 0xf2, 0xc8, 0xa0, 0x80, 0x08, 0xf4, 0xc3, 0xa0, - 0x00, 0xf8, 0xc4, 0xa0, 0x40, 0xf8, 0xc7, 0xa0, 0x40, 0xf0, 0xbc, 0xa0, - 0x00, 0xf4, 0xb9, 0xa0, 0x00, 0xf8, 0xba, 0xa0, 0x40, 0xf0, 0xc0, 0xa0, - 0x00, 0xf4, 0xbd, 0xa0, 0x00, 0xf8, 0xbe, 0xa0, 0x40, 0xe5, 0xb3, 0xa0, - 0x80, 0x0c, 0xf0, 0xb1, 0xa0, 0x00, 0xf4, 0xae, 0xa0, 0x00, 0xf8, 0xaf, - 0xa0, 0x40, 0xf0, 0xb4, 0xa0, 0x00, 0xf8, 0xb2, 0xa0, 0x40, 0xe1, 0x34, - 0xa2, 0x80, 0x50, 0xe5, 0x3e, 0xa2, 0x80, 0x43, 0x42, 0xc9, 0x02, 0x31, - 0xa2, 0x80, 0x38, 0xef, 0x3b, 0xa2, 0x80, 0x27, 0xf5, 0x42, 0xa2, 0xc0, - 0x00, 0xef, 0x37, 0xa2, 0x80, 0x15, 0xf0, 0x43, 0xa2, 0x00, 0xf2, 0x45, - 0xa2, 0x80, 0x08, 0xf4, 0x40, 0xa2, 0x00, 0xf8, 0x41, 0xa2, 0x40, 0xf8, - 0x44, 0xa2, 0x40, 0xf0, 0x38, 0xa2, 0x00, 0xf8, 0x36, 0xa2, 0x40, 0xf0, - 0x3c, 0xa2, 0x00, 0xf4, 0x39, 0xa2, 0x00, 0xf8, 0x3a, 0xa2, 0x40, 0xf8, - 0x30, 0xa2, 0x40, 0xf0, 0x3f, 0xa2, 0x00, 0xf8, 0x3d, 0xa2, 0x40, 0xf0, - 0x35, 0xa2, 0x00, 0xf4, 0x32, 0xa2, 0x00, 0xf8, 0x33, 0xa2, 0x40, 0xf8, - 0xc1, 0xa0, 0x40, 0xf0, 0xb8, 0xa0, 0x00, 0xf4, 0xb5, 0xa0, 0x00, 0xf8, - 0xb6, 0xa0, 0x40, 0xe1, 0xc1, 0xa1, 0x80, 0x85, 0x01, 0xe5, 0xcc, 0xa1, - 0x80, 0x78, 0xe9, 0xb9, 0xa1, 0x80, 0x56, 0xef, 0xc9, 0xa1, 0x80, 0x45, - 0xf5, 0xd0, 0xa1, 0x80, 0x1a, 0xf9, 0xd6, 0xa1, 0xc0, 0x00, 0xf0, 0xd7, - 0xa1, 0x00, 0xf2, 0xd9, 0xa1, 0x80, 0x08, 0xf4, 0xd4, 0xa1, 0x00, 0xf8, - 0xd5, 0xa1, 0x40, 0xf8, 0xd8, 0xa1, 0x40, 0xef, 0xc5, 0xa1, 0x80, 0x15, - 0xf0, 0xd1, 0xa1, 0x00, 0xf2, 0xd3, 0xa1, 0x80, 0x08, 0xf4, 0xce, 0xa1, - 0x00, 0xf8, 0xcf, 0xa1, 0x40, 0xf8, 0xd2, 0xa1, 0x40, 0xf0, 0xc6, 0xa1, - 0x00, 0xf4, 0xc3, 0xa1, 0x00, 0xf8, 0xc4, 0xa1, 0x40, 0xf0, 0xca, 0xa1, - 0x00, 0xf4, 0xc7, 0xa1, 0x00, 0xf8, 0xc8, 0xa1, 0x40, 0xe5, 0xbd, 0xa1, - 0x80, 0x0c, 0xf0, 0xba, 0xa1, 0x00, 0xf4, 0xb7, 0xa1, 0x00, 0xf8, 0xb8, - 0xa1, 0x40, 0xf0, 0xbe, 0xa1, 0x00, 0xf4, 0xbb, 0xa1, 0x00, 0xf8, 0xbc, - 0xa1, 0x40, 0xf0, 0xcd, 0xa1, 0x00, 0xf8, 0xcb, 0xa1, 0x40, 0xf0, 0xc2, - 0xa1, 0x00, 0xf4, 0xbf, 0xa1, 0x00, 0xf8, 0xc0, 0xa1, 0x40, 0xe1, 0x01, - 0xa2, 0x80, 0x67, 0xe5, 0x0c, 0xa2, 0x80, 0x56, 0xe9, 0xfa, 0xa1, 0x80, - 0x38, 0xef, 0x08, 0xa2, 0x80, 0x27, 0xf5, 0x10, 0xa2, 0xc0, 0x00, 0xef, - 0x04, 0xa2, 0x80, 0x15, 0xf0, 0x11, 0xa2, 0x00, 0xf2, 0x13, 0xa2, 0x80, - 0x08, 0xf4, 0x0e, 0xa2, 0x00, 0xf8, 0x0f, 0xa2, 0x40, 0xf8, 0x12, 0xa2, - 0x40, 0xf0, 0x05, 0xa2, 0x00, 0xf8, 0x03, 0xa2, 0x40, 0xf0, 0x09, 0xa2, - 0x00, 0xf4, 0x06, 0xa2, 0x00, 0xf8, 0x07, 0xa2, 0x40, 0xe5, 0xfd, 0xa1, - 0x80, 0x0c, 0xf0, 0xfb, 0xa1, 0x00, 0xf4, 0xf8, 0xa1, 0x00, 0xf8, 0xf9, - 0xa1, 0x40, 0xf0, 0xfe, 0xa1, 0x00, 0xf8, 0xfc, 0xa1, 0x40, 0xf0, 0x0d, - 0xa2, 0x00, 0xf4, 0x0a, 0xa2, 0x00, 0xf8, 0x0b, 0xa2, 0x40, 0xf0, 0x02, - 0xa2, 0x00, 0xf4, 0xff, 0xa1, 0x00, 0xf8, 0x00, 0xa2, 0x40, 0xe9, 0xe2, - 0xa3, 0x80, 0xc3, 0x01, 0xaa, 0x56, 0xef, 0xee, 0xa3, 0x80, 0x45, 0xf5, - 0xf2, 0xa3, 0x80, 0x1a, 0xf9, 0xf8, 0xa3, 0xc0, 0x00, 0xf0, 0xf9, 0xa3, - 0x00, 0xf2, 0xfb, 0xa3, 0x80, 0x08, 0xf4, 0xf6, 0xa3, 0x00, 0xf8, 0xf7, - 0xa3, 0x40, 0xf8, 0xfa, 0xa3, 0x40, 0xef, 0xea, 0xa3, 0x80, 0x15, 0xf0, - 0xf3, 0xa3, 0x00, 0xf2, 0xf5, 0xa3, 0x80, 0x08, 0xf4, 0xf0, 0xa3, 0x00, - 0xf8, 0xf1, 0xa3, 0x40, 0xf8, 0xf4, 0xa3, 0x40, 0xf0, 0xeb, 0xa3, 0x00, - 0xf4, 0xe8, 0xa3, 0x00, 0xf8, 0xe9, 0xa3, 0x40, 0xf0, 0xef, 0xa3, 0x00, - 0xf4, 0xec, 0xa3, 0x00, 0xf8, 0xed, 0xa3, 0x40, 0xe9, 0x1a, 0xa4, 0x80, - 0x49, 0xef, 0x25, 0xa4, 0x80, 0x38, 0xf5, 0x29, 0xa4, 0x80, 0x11, 0xf9, - 0x2f, 0xa4, 0xc0, 0x00, 0xf0, 0x30, 0xa4, 0x00, 0xf4, 0x2d, 0xa4, 0x00, - 0xf8, 0x2e, 0xa4, 0x40, 0xef, 0x21, 0xa4, 0x80, 0x15, 0xf0, 0x2a, 0xa4, - 0x00, 0xf2, 0x2c, 0xa4, 0x80, 0x08, 0xf4, 0x27, 0xa4, 0x00, 0xf8, 0x28, - 0xa4, 0x40, 0xf8, 0x2b, 0xa4, 0x40, 0xf0, 0x22, 0xa4, 0x00, 0xf8, 0x20, - 0xa4, 0x40, 0xf0, 0x26, 0xa4, 0x00, 0xf4, 0x23, 0xa4, 0x00, 0xf8, 0x24, - 0xa4, 0x40, 0xe5, 0x1e, 0xa4, 0x80, 0x0c, 0xf0, 0x1b, 0xa4, 0x00, 0xf4, - 0x18, 0xa4, 0x00, 0xf8, 0x19, 0xa4, 0x40, 0xf0, 0x1f, 0xa4, 0x00, 0xf4, - 0x1c, 0xa4, 0x00, 0xf8, 0x1d, 0xa4, 0x40, 0xe5, 0xe6, 0xa3, 0x80, 0x0c, - 0xf0, 0xe3, 0xa3, 0x00, 0xf4, 0xe0, 0xa3, 0x00, 0xf8, 0xe1, 0xa3, 0x40, - 0xf0, 0xe7, 0xa3, 0x00, 0xf4, 0xe4, 0xa3, 0x00, 0xf8, 0xe5, 0xa3, 0x40, - 0xe5, 0x06, 0xa0, 0x80, 0x13, 0xf0, 0x03, 0xa0, 0x00, 0xf4, 0x00, 0xa0, - 0x80, 0x04, 0xf8, 0x01, 0xa0, 0x40, 0x4c, 0xb8, 0x1f, 0x15, 0xa0, 0x40, - 0xf0, 0x07, 0xa0, 0x00, 0xf4, 0x04, 0xa0, 0x00, 0xf8, 0x05, 0xa0, 0x40, - 0xe1, 0x73, 0xa2, 0x80, 0x97, 0x04, 0xe5, 0x7e, 0xa2, 0x80, 0x89, 0x04, - 0xa9, 0xf9, 0x03, 0xac, 0xec, 0x02, 0xad, 0xec, 0x01, 0xae, 0x8b, 0x01, - 0xef, 0x7b, 0xa2, 0x80, 0x7a, 0x42, 0xef, 0x04, 0x77, 0xa2, 0x80, 0x67, - 0xb8, 0x01, 0xff, 0xe1, 0x50, 0xa2, 0x80, 0x53, 0xe5, 0x5b, 0xa2, 0x80, - 0x46, 0xe9, 0x48, 0xa2, 0x80, 0x24, 0xef, 0x58, 0xa2, 0x80, 0x13, 0x42, - 0xef, 0x04, 0x54, 0xa2, 0xc0, 0x00, 0xf0, 0x55, 0xa2, 0x00, 0xf4, 0x52, - 0xa2, 0x00, 0xf8, 0x53, 0xa2, 0x40, 0xf0, 0x59, 0xa2, 0x00, 0xf4, 0x56, - 0xa2, 0x00, 0xf8, 0x57, 0xa2, 0x40, 0xe5, 0x4c, 0xa2, 0x80, 0x0c, 0xf0, - 0x49, 0xa2, 0x00, 0xf4, 0x46, 0xa2, 0x00, 0xf8, 0x47, 0xa2, 0x40, 0xf0, - 0x4d, 0xa2, 0x00, 0xf4, 0x4a, 0xa2, 0x00, 0xf8, 0x4b, 0xa2, 0x40, 0xf0, - 0x5c, 0xa2, 0x00, 0xf8, 0x5a, 0xa2, 0x40, 0xf0, 0x51, 0xa2, 0x00, 0xf4, - 0x4e, 0xa2, 0x00, 0xf8, 0x4f, 0xa2, 0x40, 0xf0, 0x78, 0xa2, 0x00, 0xf4, - 0x75, 0xa2, 0x00, 0xf8, 0x76, 0xa2, 0x40, 0xf0, 0x7c, 0xa2, 0x00, 0xf4, - 0x79, 0xa2, 0x00, 0xf8, 0x7a, 0xa2, 0x40, 0xe1, 0x72, 0xa1, 0x80, 0x4d, - 0xe5, 0x7a, 0xa1, 0x80, 0x40, 0xe9, 0x6a, 0xa1, 0x80, 0x1e, 0xaf, 0x10, - 0xb5, 0x01, 0xff, 0xef, 0x75, 0xa1, 0x80, 0x04, 0xf4, 0x7c, 0xa1, 0x40, - 0xf8, 0x74, 0xa1, 0x40, 0xf0, 0x78, 0xa1, 0x00, 0xf4, 0x76, 0xa1, 0x00, - 0xf8, 0x77, 0xa1, 0x40, 0xe5, 0x6e, 0xa1, 0x80, 0x0c, 0xf0, 0x6b, 0xa1, - 0x00, 0xf4, 0x68, 0xa1, 0x00, 0xf8, 0x69, 0xa1, 0x40, 0xf0, 0x6f, 0xa1, - 0x00, 0xf4, 0x6c, 0xa1, 0x00, 0xf8, 0x6d, 0xa1, 0x40, 0xf0, 0x7b, 0xa1, - 0x00, 0xf8, 0x79, 0xa1, 0x40, 0xf0, 0x73, 0xa1, 0x00, 0xf4, 0x70, 0xa1, - 0x00, 0xf8, 0x71, 0xa1, 0x40, 0xe1, 0x9a, 0xa0, 0x80, 0x6c, 0xe9, 0x93, - 0xa0, 0x80, 0x4e, 0xef, 0xa1, 0xa0, 0x80, 0x3d, 0xf5, 0xa5, 0xa0, 0x80, - 0x16, 0xf9, 0xaa, 0xa0, 0xc0, 0x00, 0xf0, 0xab, 0xa0, 0x00, 0xf2, 0xad, - 0xa0, 0x80, 0x04, 0xf8, 0xa9, 0xa0, 0x40, 0xf8, 0xac, 0xa0, 0x40, 0xef, - 0x9d, 0xa0, 0x80, 0x15, 0xf0, 0xa6, 0xa0, 0x00, 0xf2, 0xa8, 0xa0, 0x80, - 0x08, 0xf4, 0xa3, 0xa0, 0x00, 0xf8, 0xa4, 0xa0, 0x40, 0xf8, 0xa7, 0xa0, - 0x40, 0xf0, 0x9e, 0xa0, 0x00, 0xf8, 0x9c, 0xa0, 0x40, 0xf0, 0xa2, 0xa0, - 0x00, 0xf4, 0x9f, 0xa0, 0x00, 0xf8, 0xa0, 0xa0, 0x40, 0xe5, 0x96, 0xa0, - 0x80, 0x0c, 0xf0, 0x94, 0xa0, 0x00, 0xf4, 0x91, 0xa0, 0x00, 0xf8, 0x92, - 0xa0, 0x40, 0xf0, 0x97, 0xa0, 0x00, 0xf8, 0x95, 0xa0, 0x40, 0xf0, 0x9b, - 0xa0, 0x00, 0xf4, 0x98, 0xa0, 0x00, 0xf8, 0x99, 0xa0, 0x40, 0xe1, 0xa0, - 0xa1, 0x80, 0x79, 0xe5, 0xa9, 0xa1, 0x80, 0x6c, 0xe9, 0x99, 0xa1, 0x80, - 0x4e, 0xef, 0xa6, 0xa1, 0x80, 0x41, 0xf5, 0xad, 0xa1, 0x80, 0x1a, 0xf9, - 0xb3, 0xa1, 0xc0, 0x00, 0xf0, 0xb4, 0xa1, 0x00, 0xf2, 0xb6, 0xa1, 0x80, - 0x08, 0xf4, 0xb1, 0xa1, 0x00, 0xf8, 0xb2, 0xa1, 0x40, 0xf8, 0xb5, 0xa1, - 0x40, 0xef, 0xa3, 0xa1, 0x80, 0x15, 0xf0, 0xae, 0xa1, 0x00, 0xf2, 0xb0, - 0xa1, 0x80, 0x08, 0xf4, 0xab, 0xa1, 0x00, 0xf8, 0xac, 0xa1, 0x40, 0xf8, - 0xaf, 0xa1, 0x40, 0xf0, 0xa4, 0xa1, 0x00, 0xf8, 0xa2, 0xa1, 0x40, 0xf0, - 0xa7, 0xa1, 0x00, 0xf8, 0xa5, 0xa1, 0x40, 0xe5, 0x9c, 0xa1, 0x80, 0x0c, - 0xf0, 0x9a, 0xa1, 0x00, 0xf4, 0x97, 0xa1, 0x00, 0xf8, 0x98, 0xa1, 0x40, - 0xf0, 0x9d, 0xa1, 0x00, 0xf8, 0x9b, 0xa1, 0x40, 0xf0, 0xaa, 0xa1, 0x00, - 0xf8, 0xa8, 0xa1, 0x40, 0xf0, 0xa1, 0xa1, 0x00, 0xf4, 0x9e, 0xa1, 0x00, - 0xf8, 0x9f, 0xa1, 0x40, 0xe5, 0x70, 0xa2, 0x80, 0x04, 0xf4, 0x6e, 0xa2, - 0x40, 0xf8, 0x6f, 0xa2, 0x40, 0xf0, 0x7f, 0xa2, 0x00, 0xf8, 0x7d, 0xa2, - 0x40, 0xf0, 0x74, 0xa2, 0x00, 0xf4, 0x71, 0xa2, 0x00, 0xf8, 0x72, 0xa2, - 0x40, 0xe1, 0xe4, 0xa1, 0x80, 0xea, 0x01, 0xe5, 0xf0, 0xa1, 0x80, 0xd8, - 0x01, 0xa7, 0x5e, 0xe9, 0xdc, 0xa1, 0x80, 0x3c, 0xef, 0xec, 0xa1, 0x80, - 0x2b, 0xf5, 0xf4, 0xa1, 0xc0, 0x00, 0xef, 0xe8, 0xa1, 0x80, 0x15, 0xf0, - 0xf5, 0xa1, 0x00, 0xf2, 0xf7, 0xa1, 0x80, 0x08, 0xf4, 0xf2, 0xa1, 0x00, - 0xf8, 0xf3, 0xa1, 0x40, 0xf8, 0xf6, 0xa1, 0x40, 0xf0, 0xe9, 0xa1, 0x00, - 0xf4, 0xe6, 0xa1, 0x00, 0xf8, 0xe7, 0xa1, 0x40, 0xf0, 0xed, 0xa1, 0x00, - 0xf4, 0xea, 0xa1, 0x00, 0xf8, 0xeb, 0xa1, 0x40, 0xe5, 0xe0, 0xa1, 0x80, - 0x0c, 0xf0, 0xdd, 0xa1, 0x00, 0xf4, 0xda, 0xa1, 0x00, 0xf8, 0xdb, 0xa1, - 0x40, 0xf0, 0xe1, 0xa1, 0x00, 0xf4, 0xde, 0xa1, 0x00, 0xf8, 0xdf, 0xa1, - 0x40, 0xe1, 0x1c, 0xa2, 0x80, 0x67, 0xe5, 0x28, 0xa2, 0x80, 0x56, 0xe9, - 0x16, 0xa2, 0x80, 0x3c, 0xef, 0x24, 0xa2, 0x80, 0x2b, 0xf5, 0x2c, 0xa2, - 0xc0, 0x00, 0xef, 0x20, 0xa2, 0x80, 0x15, 0xf0, 0x2d, 0xa2, 0x00, 0xf2, - 0x2f, 0xa2, 0x80, 0x08, 0xf4, 0x2a, 0xa2, 0x00, 0xf8, 0x2b, 0xa2, 0x40, - 0xf8, 0x2e, 0xa2, 0x40, 0xf0, 0x21, 0xa2, 0x00, 0xf4, 0x1e, 0xa2, 0x00, - 0xf8, 0x1f, 0xa2, 0x40, 0xf0, 0x25, 0xa2, 0x00, 0xf4, 0x22, 0xa2, 0x00, - 0xf8, 0x23, 0xa2, 0x40, 0xe5, 0x18, 0xa2, 0x80, 0x08, 0xf4, 0x14, 0xa2, - 0x00, 0xf8, 0x15, 0xa2, 0x40, 0xf0, 0x19, 0xa2, 0x00, 0xf8, 0x17, 0xa2, - 0x40, 0xf0, 0x29, 0xa2, 0x00, 0xf4, 0x26, 0xa2, 0x00, 0xf8, 0x27, 0xa2, - 0x40, 0xf0, 0x1d, 0xa2, 0x00, 0xf4, 0x1a, 0xa2, 0x00, 0xf8, 0x1b, 0xa2, - 0x40, 0xf0, 0xf1, 0xa1, 0x00, 0xf4, 0xee, 0xa1, 0x00, 0xf8, 0xef, 0xa1, - 0x40, 0xf0, 0xe5, 0xa1, 0x00, 0xf4, 0xe2, 0xa1, 0x00, 0xf8, 0xe3, 0xa1, - 0x40, 0xe1, 0xd3, 0xa0, 0x80, 0x49, 0xe9, 0xcf, 0xa0, 0x80, 0x38, 0xef, - 0xd6, 0xa0, 0x80, 0x2b, 0xf5, 0xda, 0xa0, 0x80, 0x11, 0xf9, 0xe0, 0xa0, - 0xc0, 0x00, 0xf0, 0xe1, 0xa0, 0x00, 0xf4, 0xde, 0xa0, 0x00, 0xf8, 0xdf, - 0xa0, 0x40, 0xf0, 0xdb, 0xa0, 0x00, 0xf2, 0xdd, 0xa0, 0x80, 0x08, 0xf4, - 0xd8, 0xa0, 0x00, 0xf8, 0xd9, 0xa0, 0x40, 0xf8, 0xdc, 0xa0, 0x40, 0xf0, - 0xd7, 0xa0, 0x00, 0xf8, 0xd5, 0xa0, 0x40, 0xf0, 0xd0, 0xa0, 0x00, 0xf4, - 0xcd, 0xa0, 0x00, 0xf8, 0xce, 0xa0, 0x40, 0xf0, 0xd4, 0xa0, 0x00, 0xf4, - 0xd1, 0xa0, 0x00, 0xf8, 0xd2, 0xa0, 0x40, 0xf8, 0x13, 0xa0, 0x40, 0xe1, - 0x09, 0xa1, 0x80, 0xd5, 0x01, 0xa4, 0x5f, 0xe5, 0x12, 0xa1, 0x80, 0x52, - 0xe9, 0x02, 0xa1, 0x80, 0x34, 0xef, 0x0f, 0xa1, 0x80, 0x23, 0xf5, 0x16, - 0xa1, 0xc0, 0x00, 0xef, 0x0c, 0xa1, 0x80, 0x15, 0xf0, 0x17, 0xa1, 0x00, - 0xf2, 0x19, 0xa1, 0x80, 0x08, 0xf4, 0x14, 0xa1, 0x00, 0xf8, 0x15, 0xa1, - 0x40, 0xf8, 0x18, 0xa1, 0x40, 0xf8, 0x0b, 0xa1, 0x40, 0xf0, 0x10, 0xa1, - 0x00, 0xf4, 0x0d, 0xa1, 0x00, 0xf8, 0x0e, 0xa1, 0x40, 0xe5, 0x05, 0xa1, - 0x80, 0x0c, 0xf0, 0x03, 0xa1, 0x00, 0xf4, 0x00, 0xa1, 0x00, 0xf8, 0x01, - 0xa1, 0x40, 0xf0, 0x06, 0xa1, 0x00, 0xf8, 0x04, 0xa1, 0x40, 0xf0, 0x13, - 0xa1, 0x00, 0xf8, 0x11, 0xa1, 0x40, 0xe1, 0x3f, 0xa1, 0x80, 0x63, 0xe5, - 0x49, 0xa1, 0x80, 0x56, 0xe9, 0x38, 0xa1, 0x80, 0x38, 0xef, 0x46, 0xa1, - 0x80, 0x27, 0xf5, 0x4d, 0xa1, 0xc0, 0x00, 0xef, 0x42, 0xa1, 0x80, 0x15, - 0xf0, 0x4e, 0xa1, 0x00, 0xf2, 0x50, 0xa1, 0x80, 0x08, 0xf4, 0x4b, 0xa1, - 0x00, 0xf8, 0x4c, 0xa1, 0x40, 0xf8, 0x4f, 0xa1, 0x40, 0xf0, 0x43, 0xa1, - 0x00, 0xf8, 0x41, 0xa1, 0x40, 0xf0, 0x47, 0xa1, 0x00, 0xf4, 0x44, 0xa1, - 0x00, 0xf8, 0x45, 0xa1, 0x40, 0xe5, 0x3b, 0xa1, 0x80, 0x0c, 0xf0, 0x39, - 0xa1, 0x00, 0xf4, 0x36, 0xa1, 0x00, 0xf8, 0x37, 0xa1, 0x40, 0xf0, 0x3c, - 0xa1, 0x00, 0xf8, 0x3a, 0xa1, 0x40, 0xf0, 0x4a, 0xa1, 0x00, 0xf8, 0x48, - 0xa1, 0x40, 0xf0, 0x40, 0xa1, 0x00, 0xf4, 0x3d, 0xa1, 0x00, 0xf8, 0x3e, - 0xa1, 0x40, 0xf0, 0x0a, 0xa1, 0x00, 0xf4, 0x07, 0xa1, 0x00, 0xf8, 0x08, - 0xa1, 0x40, 0xe1, 0xb8, 0xa2, 0x80, 0xf8, 0x01, 0xe5, 0xc2, 0xa2, 0x80, - 0xea, 0x01, 0xa8, 0x74, 0xe9, 0xb0, 0xa2, 0x80, 0x52, 0xef, 0xbf, 0xa2, - 0x80, 0x41, 0xf5, 0xc6, 0xa2, 0x80, 0x1a, 0xf9, 0xcc, 0xa2, 0xc0, 0x00, - 0xf0, 0xcd, 0xa2, 0x00, 0xf2, 0xcf, 0xa2, 0x80, 0x08, 0xf4, 0xca, 0xa2, - 0x00, 0xf8, 0xcb, 0xa2, 0x40, 0xf8, 0xce, 0xa2, 0x40, 0xef, 0xbb, 0xa2, - 0x80, 0x15, 0xf0, 0xc7, 0xa2, 0x00, 0xf2, 0xc9, 0xa2, 0x80, 0x08, 0xf4, - 0xc4, 0xa2, 0x00, 0xf8, 0xc5, 0xa2, 0x40, 0xf8, 0xc8, 0xa2, 0x40, 0xf0, - 0xbc, 0xa2, 0x00, 0xf8, 0xba, 0xa2, 0x40, 0xf0, 0xc0, 0xa2, 0x00, 0xf4, - 0xbd, 0xa2, 0x00, 0xf8, 0xbe, 0xa2, 0x40, 0xe5, 0xb4, 0xa2, 0x80, 0x0c, - 0xf0, 0xb1, 0xa2, 0x00, 0xf4, 0xae, 0xa2, 0x00, 0xf8, 0xaf, 0xa2, 0x40, - 0xf0, 0xb5, 0xa2, 0x00, 0xf4, 0xb2, 0xa2, 0x00, 0xf8, 0xb3, 0xa2, 0x40, - 0xe1, 0x63, 0xa3, 0x80, 0x63, 0xe5, 0x6f, 0xa3, 0x80, 0x52, 0xef, 0x6b, - 0xa3, 0x80, 0x41, 0xf5, 0x72, 0xa3, 0x80, 0x1a, 0xf9, 0x78, 0xa3, 0xc0, - 0x00, 0xf0, 0x79, 0xa3, 0x00, 0xf2, 0x7b, 0xa3, 0x80, 0x08, 0xf4, 0x76, - 0xa3, 0x00, 0xf8, 0x77, 0xa3, 0x40, 0xf8, 0x7a, 0xa3, 0x40, 0xef, 0x67, - 0xa3, 0x80, 0x11, 0xf0, 0x73, 0xa3, 0x00, 0xf2, 0x75, 0xa3, 0x80, 0x04, - 0xf8, 0x71, 0xa3, 0x40, 0xf8, 0x74, 0xa3, 0x40, 0xf0, 0x68, 0xa3, 0x00, - 0xf4, 0x65, 0xa3, 0x00, 0xf8, 0x66, 0xa3, 0x40, 0xf0, 0x6c, 0xa3, 0x00, - 0xf4, 0x69, 0xa3, 0x00, 0xf8, 0x6a, 0xa3, 0x40, 0xf0, 0x70, 0xa3, 0x00, - 0xf4, 0x6d, 0xa3, 0x00, 0xf8, 0x6e, 0xa3, 0x40, 0xf0, 0x64, 0xa3, 0x00, - 0xf4, 0x61, 0xa3, 0x00, 0xf8, 0x62, 0xa3, 0x40, 0xf0, 0xc3, 0xa2, 0x00, - 0xf8, 0xc1, 0xa2, 0x40, 0xf0, 0xb9, 0xa2, 0x00, 0xf4, 0xb6, 0xa2, 0x00, - 0xf8, 0xb7, 0xa2, 0x40, 0xe1, 0x20, 0xa0, 0x80, 0x8d, 0x02, 0xa2, 0x81, - 0x01, 0xe5, 0x2a, 0xa0, 0x80, 0x74, 0xe9, 0x18, 0xa0, 0x80, 0x52, 0xef, - 0x27, 0xa0, 0x80, 0x41, 0xf5, 0x2e, 0xa0, 0x80, 0x1a, 0xf9, 0x34, 0xa0, - 0xc0, 0x00, 0xf0, 0x35, 0xa0, 0x00, 0xf2, 0x37, 0xa0, 0x80, 0x08, 0xf4, - 0x32, 0xa0, 0x00, 0xf8, 0x33, 0xa0, 0x40, 0xf8, 0x36, 0xa0, 0x40, 0xef, - 0x23, 0xa0, 0x80, 0x15, 0xf0, 0x2f, 0xa0, 0x00, 0xf2, 0x31, 0xa0, 0x80, - 0x08, 0xf4, 0x2c, 0xa0, 0x00, 0xf8, 0x2d, 0xa0, 0x40, 0xf8, 0x30, 0xa0, - 0x40, 0xf0, 0x24, 0xa0, 0x00, 0xf8, 0x22, 0xa0, 0x40, 0xf0, 0x28, 0xa0, - 0x00, 0xf4, 0x25, 0xa0, 0x00, 0xf8, 0x26, 0xa0, 0x40, 0xe5, 0x1c, 0xa0, - 0x80, 0x0c, 0xf0, 0x19, 0xa0, 0x00, 0xf4, 0x16, 0xa0, 0x00, 0xf8, 0x17, - 0xa0, 0x40, 0xf0, 0x1d, 0xa0, 0x00, 0xf4, 0x1a, 0xa0, 0x00, 0xf8, 0x1b, - 0xa0, 0x40, 0xf0, 0x2b, 0xa0, 0x00, 0xf8, 0x29, 0xa0, 0x40, 0xe1, 0x60, - 0xa0, 0x80, 0x78, 0xe5, 0x6a, 0xa0, 0x80, 0x6b, 0xe9, 0x58, 0xa0, 0x80, - 0x49, 0xef, 0x67, 0xa0, 0x80, 0x38, 0xf5, 0x6e, 0xa0, 0x80, 0x11, 0xf9, - 0x74, 0xa0, 0xc0, 0x00, 0xf0, 0x75, 0xa0, 0x00, 0xf4, 0x72, 0xa0, 0x00, - 0xf8, 0x73, 0xa0, 0x40, 0xef, 0x63, 0xa0, 0x80, 0x15, 0xf0, 0x6f, 0xa0, - 0x00, 0xf2, 0x71, 0xa0, 0x80, 0x08, 0xf4, 0x6c, 0xa0, 0x00, 0xf8, 0x6d, - 0xa0, 0x40, 0xf8, 0x70, 0xa0, 0x40, 0xf0, 0x64, 0xa0, 0x00, 0xf8, 0x62, - 0xa0, 0x40, 0xf0, 0x68, 0xa0, 0x00, 0xf4, 0x65, 0xa0, 0x00, 0xf8, 0x66, - 0xa0, 0x40, 0xe5, 0x5c, 0xa0, 0x80, 0x0c, 0xf0, 0x59, 0xa0, 0x00, 0xf4, - 0x56, 0xa0, 0x00, 0xf8, 0x57, 0xa0, 0x40, 0xf0, 0x5d, 0xa0, 0x00, 0xf4, - 0x5a, 0xa0, 0x00, 0xf8, 0x5b, 0xa0, 0x40, 0xf0, 0x6b, 0xa0, 0x00, 0xf8, - 0x69, 0xa0, 0x40, 0xf0, 0x61, 0xa0, 0x00, 0xf4, 0x5e, 0xa0, 0x00, 0xf8, - 0x5f, 0xa0, 0x40, 0xf0, 0x21, 0xa0, 0x00, 0xf4, 0x1e, 0xa0, 0x00, 0xf8, - 0x1f, 0xa0, 0x40, 0xf0, 0x0b, 0xa0, 0x00, 0xf4, 0x08, 0xa0, 0x00, 0xf8, - 0x09, 0xa0, 0x40, 0xa2, 0xd3, 0x02, 0xa3, 0xb1, 0x02, 0xa4, 0xa4, 0x02, - 0xa7, 0x83, 0x02, 0xa8, 0xe5, 0x01, 0xaa, 0xcc, 0x01, 0xab, 0xbf, 0x01, - 0xac, 0xad, 0x01, 0xad, 0xa0, 0x01, 0xae, 0x83, 0x01, 0x42, 0x1f, 0x00, - 0xa9, 0xa4, 0x00, 0xb0, 0x6f, 0x43, 0x47, 0xf1, 0x90, 0xa4, 0x00, 0xb3, - 0x49, 0xb4, 0x3d, 0xb6, 0x2f, 0x42, 0x15, 0x02, 0xb8, 0xa4, 0x00, 0xb9, - 0x1d, 0xba, 0x01, 0xff, 0xe1, 0xb2, 0xa4, 0x00, 0x42, 0xf0, 0x04, 0xab, - 0xa4, 0x00, 0xb5, 0x06, 0x44, 0x12, 0xf0, 0xc4, 0xa4, 0x40, 0xf0, 0xa2, - 0xa4, 0x00, 0xf2, 0xc1, 0xa4, 0x40, 0x42, 0x52, 0x00, 0xae, 0xa4, 0x00, - 0xef, 0x9d, 0xa4, 0x40, 0x42, 0x9c, 0x0a, 0xb1, 0xa4, 0x00, 0x42, 0x42, - 0x00, 0xaf, 0xa4, 0x40, 0x42, 0x8a, 0x00, 0xa0, 0xa4, 0x00, 0xf5, 0xa8, - 0xa4, 0x40, 0xa8, 0x06, 0x42, 0x2f, 0x03, 0x95, 0xa4, 0x40, 0x42, 0x8a, - 0x00, 0xc0, 0xa4, 0x00, 0x42, 0x1f, 0x00, 0xc2, 0xa4, 0x00, 0x42, 0x42, - 0x00, 0xba, 0xa4, 0x00, 0xf9, 0xb0, 0xa4, 0x40, 0x42, 0xfe, 0x07, 0x9e, - 0xa4, 0x00, 0x42, 0xc9, 0x67, 0xac, 0xa4, 0x40, 0x43, 0x75, 0xb9, 0xc5, - 0xa4, 0x00, 0xb9, 0x06, 0x43, 0x98, 0xf1, 0xb4, 0xa4, 0x40, 0x42, 0x8f, - 0x04, 0x93, 0xa4, 0x00, 0x42, 0x1f, 0x00, 0xa7, 0xa4, 0x40, 0xe9, 0x98, - 0xa4, 0x00, 0x42, 0x1f, 0x00, 0x9c, 0xa4, 0x40, 0xe9, 0x91, 0xa4, 0x80, - 0x06, 0x42, 0x7d, 0x21, 0x9a, 0xa4, 0x40, 0xe5, 0xbb, 0xa4, 0x40, 0xe5, - 0xc6, 0xa4, 0x00, 0x42, 0x52, 0x00, 0x92, 0xa4, 0x40, 0xaa, 0x04, 0xef, - 0xb3, 0xa4, 0x40, 0x42, 0xc9, 0x02, 0xb7, 0xa4, 0x00, 0x42, 0xfe, 0x07, - 0xaa, 0xa4, 0x00, 0xf9, 0xb5, 0xa4, 0x40, 0x42, 0x98, 0x07, 0xad, 0xa4, - 0x00, 0xb8, 0x01, 0xff, 0x42, 0x52, 0x00, 0x99, 0xa4, 0x00, 0x42, 0x1f, - 0x00, 0xbf, 0xa4, 0x00, 0x42, 0xef, 0x04, 0x9f, 0xa4, 0x40, 0xe1, 0xa1, - 0xa4, 0x00, 0x42, 0x9c, 0x0a, 0x97, 0xa4, 0x00, 0xa7, 0x06, 0x42, 0xf0, - 0x04, 0xb6, 0xa4, 0x40, 0x42, 0x1f, 0x00, 0x96, 0xa4, 0x00, 0x42, 0xef, - 0x04, 0xa6, 0xa4, 0x40, 0x43, 0x75, 0x72, 0xa4, 0xa4, 0x00, 0xf5, 0xb9, - 0xa4, 0x40, 0x42, 0xb0, 0x01, 0xc3, 0xa4, 0x00, 0x42, 0x8f, 0x04, 0xbe, - 0xa4, 0x00, 0x43, 0x62, 0xf1, 0xbd, 0xa4, 0x00, 0xf9, 0xbc, 0xa4, 0xc0, - 0x00, 0xf0, 0x94, 0xa4, 0x00, 0xf4, 0xa3, 0xa4, 0x40, 0x43, 0x1b, 0x0d, - 0x9b, 0xa4, 0x00, 0x42, 0x42, 0x00, 0xa5, 0xa4, 0x40, 0x4a, 0xdb, 0xaa, - 0x9b, 0xf4, 0x01, 0x46, 0x98, 0x04, 0xa5, 0x00, 0x00, 0x05, 0x76, 0xe9, - 0x01, 0xff, 0x0a, 0xd6, 0x57, 0xa0, 0x02, 0x50, 0x1a, 0x62, 0xad, 0x0e, - 0x01, 0x07, 0xc1, 0x05, 0x01, 0xff, 0x42, 0x8c, 0x05, 0x81, 0x0e, 0x01, - 0xa3, 0xf8, 0x01, 0x02, 0xa1, 0x10, 0xeb, 0x01, 0xa5, 0xd4, 0x01, 0x42, - 0xe1, 0x07, 0x99, 0x0e, 0x01, 0x43, 0x9e, 0xb6, 0x9f, 0x0e, 0x01, 0xa8, - 0xb9, 0x01, 0x42, 0xbd, 0x26, 0x90, 0x0e, 0x01, 0xab, 0xa4, 0x01, 0x43, - 0xb0, 0x00, 0xa0, 0x0e, 0x81, 0x96, 0x01, 0x43, 0xfb, 0x8e, 0xa1, 0x0e, - 0x01, 0x43, 0x54, 0x22, 0xa2, 0x0e, 0x01, 0x42, 0xd1, 0x00, 0xa5, 0x0e, - 0x01, 0xb0, 0x78, 0x43, 0xf4, 0x13, 0x9c, 0x0e, 0x01, 0xb2, 0x66, 0xb3, - 0x4e, 0xb4, 0x42, 0x42, 0x1d, 0x04, 0xa3, 0x0e, 0x01, 0x42, 0xa6, 0x0a, - 0x9a, 0x0e, 0x81, 0x2f, 0x43, 0xc0, 0x88, 0xa4, 0x0e, 0x01, 0xb8, 0x1d, - 0x43, 0x8c, 0xf1, 0xa8, 0x0e, 0x81, 0x10, 0xba, 0x01, 0xff, 0xe1, 0x8f, - 0x0e, 0x81, 0x04, 0xe5, 0x96, 0x0e, 0x41, 0xec, 0x8c, 0x0e, 0x41, 0x56, - 0x91, 0x31, 0xb1, 0x0e, 0x41, 0xe1, 0x8a, 0x0e, 0x01, 0x44, 0xf2, 0xec, - 0x98, 0x0e, 0x41, 0x4f, 0x8a, 0x67, 0x9b, 0x0e, 0x41, 0xe1, 0x95, 0x0e, - 0x01, 0x42, 0xb0, 0x01, 0x84, 0x0e, 0x41, 0x42, 0xe8, 0x01, 0x93, 0x0e, - 0x01, 0xe5, 0x85, 0x0e, 0x01, 0x43, 0x0e, 0x16, 0x92, 0x0e, 0x01, 0x42, - 0x9e, 0x01, 0x91, 0x0e, 0x41, 0xe1, 0x8d, 0x0e, 0x01, 0x42, 0x22, 0x00, - 0x8e, 0x0e, 0x41, 0xe5, 0x82, 0x0e, 0x01, 0x42, 0xb0, 0x01, 0x83, 0x0e, - 0x41, 0x4f, 0xa5, 0x3a, 0xb0, 0x0e, 0x41, 0x42, 0xf5, 0x13, 0x9d, 0x0e, - 0x01, 0x43, 0xdb, 0x4e, 0x9e, 0x0e, 0x41, 0x42, 0x9e, 0x10, 0xa7, 0x0e, - 0x01, 0x42, 0x22, 0x00, 0x89, 0x0e, 0x41, 0x43, 0x02, 0x69, 0x80, 0x0e, - 0x01, 0xf4, 0xa9, 0x0e, 0x01, 0xf7, 0xa6, 0x0e, 0x01, 0x42, 0x61, 0x1c, - 0x97, 0x0e, 0x41, 0xe4, 0x94, 0x0e, 0x01, 0xec, 0x8b, 0x0e, 0x41, 0xa8, - 0x06, 0x42, 0x29, 0x02, 0x86, 0x0e, 0x41, 0x43, 0x4c, 0x38, 0x88, 0x0e, - 0x01, 0x42, 0x29, 0x02, 0x87, 0x0e, 0x41, 0x4a, 0xd3, 0xa8, 0xab, 0x0e, - 0x01, 0x4a, 0x49, 0xab, 0xac, 0x0e, 0x41, 0x53, 0x34, 0x46, 0x27, 0x23, - 0x00, 0x44, 0x9a, 0xe9, 0x7b, 0xfa, 0x01, 0x07, 0xe4, 0xce, 0x06, 0x42, - 0x0c, 0x00, 0xbb, 0x22, 0x40, 0x06, 0xe1, 0x02, 0x31, 0x04, 0xaf, 0x05, - 0x01, 0xff, 0xa3, 0x1e, 0x48, 0x02, 0xc3, 0x62, 0xfa, 0x01, 0x47, 0x66, - 0xce, 0x60, 0xfa, 0x01, 0x45, 0xd0, 0xb0, 0x63, 0xfa, 0x01, 0x48, 0x82, - 0xc5, 0x61, 0xfa, 0x01, 0x47, 0x1a, 0xd3, 0x66, 0xfa, 0x41, 0x45, 0x42, - 0xe1, 0x65, 0xfa, 0x01, 0x46, 0x7c, 0x56, 0x64, 0xfa, 0x41, 0xa3, 0x1e, - 0x48, 0x02, 0xc3, 0x69, 0xfa, 0x01, 0x47, 0x66, 0xce, 0x67, 0xfa, 0x01, - 0x45, 0xd0, 0xb0, 0x6a, 0xfa, 0x01, 0x48, 0x82, 0xc5, 0x68, 0xfa, 0x01, - 0x47, 0x1a, 0xd3, 0x6d, 0xfa, 0x41, 0x45, 0x42, 0xe1, 0x6c, 0xfa, 0x01, - 0x46, 0x7c, 0x56, 0x6b, 0xfa, 0x41, 0xa1, 0x94, 0x0e, 0xa5, 0xdf, 0x0d, - 0xa8, 0xf6, 0x03, 0xa9, 0x8c, 0x01, 0xaf, 0x23, 0xb2, 0x01, 0xff, 0x4d, - 0x0d, 0x7f, 0x81, 0xf3, 0x01, 0xa5, 0x06, 0x4a, 0x02, 0xa0, 0x0d, 0x27, - 0x40, 0x4b, 0x48, 0x97, 0x40, 0x22, 0x00, 0x43, 0x0c, 0x25, 0x27, 0xf5, - 0x01, 0x46, 0x12, 0xdd, 0x3c, 0xf9, 0x41, 0x47, 0x11, 0xd0, 0x3a, 0xf4, - 0x01, 0xad, 0x2f, 0x46, 0x98, 0x04, 0xa9, 0x20, 0x00, 0x42, 0x2a, 0x0c, - 0xb5, 0xfa, 0x01, 0xb2, 0x01, 0xff, 0x02, 0x06, 0x00, 0x10, 0x46, 0xae, - 0xda, 0xfa, 0xf5, 0x01, 0xed, 0xb1, 0xfa, 0x01, 0x49, 0x49, 0xbc, 0x1f, - 0xf6, 0x41, 0x46, 0x24, 0x60, 0x60, 0x20, 0x00, 0x54, 0xa7, 0x44, 0x31, - 0x2e, 0x40, 0x42, 0x1a, 0x00, 0x69, 0xf4, 0x81, 0x06, 0x4a, 0xbb, 0xa7, - 0xba, 0xf6, 0x41, 0x50, 0x1a, 0x5f, 0x6f, 0xf4, 0x01, 0x02, 0x31, 0x01, - 0x01, 0xff, 0x45, 0xbf, 0xe1, 0x62, 0xf4, 0x01, 0x47, 0x32, 0xcd, 0x5a, - 0xf4, 0x01, 0x43, 0x0c, 0x21, 0x52, 0xf4, 0x01, 0x46, 0xe8, 0xb9, 0x61, - 0xf4, 0x41, 0x0a, 0x50, 0x1b, 0x45, 0x52, 0xa8, 0x50, 0x3e, 0x2e, 0x00, - 0x4b, 0xde, 0x9c, 0x40, 0xf9, 0x01, 0xae, 0x11, 0x02, 0x88, 0x00, 0x01, - 0xff, 0x4a, 0xd5, 0xa6, 0xae, 0xf5, 0x01, 0x44, 0xec, 0x00, 0xdc, 0xf6, - 0x41, 0xa4, 0x10, 0x47, 0xbe, 0xcd, 0x77, 0xf3, 0x01, 0xe7, 0xbd, 0xfa, - 0x01, 0x49, 0x24, 0xae, 0x09, 0xf6, 0x41, 0x80, 0x06, 0x42, 0xd1, 0x00, - 0x9f, 0xfa, 0x41, 0x4c, 0x09, 0x8b, 0x2c, 0xf3, 0x01, 0x45, 0x1e, 0xe2, - 0x90, 0xf3, 0x41, 0x0a, 0xa5, 0x01, 0xfb, 0x01, 0x0a, 0xea, 0x01, 0xd8, - 0x01, 0x06, 0xb4, 0x01, 0x8e, 0x01, 0x0b, 0xb3, 0x02, 0x6c, 0x06, 0xff, - 0x1f, 0x23, 0x08, 0x50, 0x02, 0x01, 0xff, 0x4a, 0x07, 0x3e, 0x69, 0xf8, - 0x01, 0x50, 0x01, 0x3e, 0x79, 0xf8, 0x01, 0x50, 0x2a, 0x63, 0x61, 0xf8, - 0x01, 0x51, 0xb1, 0x5a, 0x71, 0xf8, 0x01, 0x55, 0xfc, 0x3d, 0x81, 0xf8, - 0x41, 0x05, 0x25, 0x23, 0x23, 0x05, 0x37, 0x1a, 0x01, 0xff, 0x4a, 0x07, - 0x3e, 0x6f, 0xf8, 0x01, 0x50, 0x01, 0x3e, 0x7f, 0xf8, 0x01, 0x50, 0x2a, - 0x63, 0x67, 0xf8, 0x01, 0x51, 0xb1, 0x5a, 0x77, 0xf8, 0x01, 0x55, 0xfc, - 0x3d, 0x87, 0xf8, 0x41, 0x4a, 0x07, 0x3e, 0x6e, 0xf8, 0x01, 0x50, 0x01, - 0x3e, 0x7e, 0xf8, 0x01, 0x50, 0x2a, 0x63, 0x66, 0xf8, 0x01, 0x51, 0xb1, - 0x5a, 0x76, 0xf8, 0x01, 0x55, 0xfc, 0x3d, 0x86, 0xf8, 0x41, 0x4a, 0x07, - 0x3e, 0x6a, 0xf8, 0x01, 0x50, 0x01, 0x3e, 0x7a, 0xf8, 0x01, 0x50, 0x2a, - 0x63, 0x62, 0xf8, 0x01, 0x51, 0xb1, 0x5a, 0x72, 0xf8, 0x01, 0x55, 0xfc, - 0x3d, 0x82, 0xf8, 0x41, 0x05, 0x25, 0x23, 0x23, 0x05, 0x37, 0x1a, 0x01, - 0xff, 0x4a, 0x07, 0x3e, 0x6c, 0xf8, 0x01, 0x50, 0x01, 0x3e, 0x7c, 0xf8, - 0x01, 0x50, 0x2a, 0x63, 0x64, 0xf8, 0x01, 0x51, 0xb1, 0x5a, 0x74, 0xf8, - 0x01, 0x55, 0xfc, 0x3d, 0x84, 0xf8, 0x41, 0x4a, 0x07, 0x3e, 0x6d, 0xf8, - 0x01, 0x50, 0x01, 0x3e, 0x7d, 0xf8, 0x01, 0x50, 0x2a, 0x63, 0x65, 0xf8, - 0x01, 0x51, 0xb1, 0x5a, 0x75, 0xf8, 0x01, 0x55, 0xfc, 0x3d, 0x85, 0xf8, - 0x41, 0x4a, 0x07, 0x3e, 0x68, 0xf8, 0x01, 0x50, 0x01, 0x3e, 0x78, 0xf8, - 0x01, 0x50, 0x2a, 0x63, 0x60, 0xf8, 0x01, 0x51, 0xb1, 0x5a, 0x70, 0xf8, - 0x01, 0x55, 0xfc, 0x3d, 0x80, 0xf8, 0x41, 0x4a, 0x07, 0x3e, 0x6b, 0xf8, - 0x01, 0x50, 0x01, 0x3e, 0x7b, 0xf8, 0x01, 0x50, 0x2a, 0x63, 0x63, 0xf8, - 0x01, 0x51, 0xb1, 0x5a, 0x73, 0xf8, 0x01, 0x55, 0xfc, 0x3d, 0x83, 0xf8, - 0x41, 0x43, 0x67, 0x00, 0x0b, 0xf4, 0x01, 0x43, 0xde, 0x12, 0xde, 0xf6, - 0x81, 0xcc, 0x09, 0x03, 0xaf, 0x02, 0x01, 0xff, 0x80, 0x06, 0x5b, 0x9f, - 0x19, 0xb3, 0x27, 0x40, 0x12, 0xd4, 0x4e, 0xae, 0x09, 0x46, 0x2a, 0x21, - 0xe6, 0x25, 0x00, 0xa3, 0xb1, 0x06, 0xa4, 0xc0, 0x05, 0x59, 0x91, 0x12, - 0x55, 0x27, 0x00, 0xa6, 0x83, 0x05, 0xa8, 0xc3, 0x04, 0xac, 0xe5, 0x03, - 0xad, 0xb7, 0x03, 0x43, 0x1a, 0x9b, 0x11, 0x27, 0x00, 0xb0, 0x97, 0x03, - 0x56, 0xb1, 0x35, 0x54, 0x27, 0x00, 0xb2, 0xd4, 0x02, 0xb3, 0x7c, 0xb4, - 0x5a, 0x02, 0x50, 0x02, 0x28, 0x03, 0x32, 0x00, 0x01, 0xff, 0x06, 0x35, - 0x00, 0x06, 0x4e, 0x35, 0x0a, 0x1e, 0x2b, 0x40, 0x43, 0x16, 0x00, 0xfe, - 0x2a, 0x00, 0x47, 0x63, 0x65, 0x2f, 0x2b, 0x00, 0x49, 0x3a, 0x46, 0xaf, - 0x25, 0xc0, 0x00, 0x54, 0xf3, 0x3e, 0x06, 0xce, 0x41, 0x0a, 0x9b, 0x01, - 0x1e, 0x0a, 0x3d, 0x0b, 0x01, 0xff, 0x47, 0x01, 0x4d, 0xca, 0xfb, 0x01, - 0x4e, 0xd7, 0x0b, 0xb5, 0x25, 0x00, 0x48, 0x01, 0x02, 0xb3, 0x25, 0xc0, - 0x00, 0x49, 0xa5, 0x3a, 0xec, 0x25, 0x40, 0x4e, 0x3f, 0x26, 0x46, 0xf4, - 0x01, 0x45, 0x40, 0x13, 0x1d, 0x26, 0x40, 0x48, 0x47, 0x3c, 0x0f, 0x26, - 0x00, 0x52, 0x0c, 0x53, 0x7e, 0xf5, 0x01, 0xb2, 0x06, 0x57, 0x21, 0x31, - 0xd7, 0x26, 0x40, 0x47, 0x2f, 0xcc, 0xe2, 0x23, 0x00, 0x66, 0xfa, 0x06, - 0xc1, 0x27, 0x40, 0x47, 0x62, 0x3d, 0x04, 0x27, 0x00, 0x49, 0x4f, 0xb6, - 0x46, 0xfe, 0x00, 0x4a, 0x1b, 0x5e, 0x16, 0x26, 0x00, 0xad, 0xa2, 0x01, - 0x49, 0x7a, 0xbb, 0x64, 0x26, 0x00, 0x45, 0xac, 0x05, 0xa1, 0x25, 0x80, - 0x2e, 0x43, 0xe3, 0x12, 0x06, 0x26, 0x00, 0x42, 0xf3, 0x0a, 0x23, 0xf3, - 0xc1, 0x00, 0x80, 0x01, 0xff, 0x4c, 0xe5, 0x8a, 0x25, 0xf3, 0x81, 0x11, - 0x05, 0x51, 0x00, 0x01, 0xff, 0x44, 0xca, 0x64, 0x3c, 0x26, 0x00, 0x4b, - 0x90, 0xa0, 0x24, 0xf3, 0x41, 0x4a, 0x4b, 0xa4, 0x26, 0xf3, 0x41, 0x80, - 0x01, 0xff, 0x46, 0x45, 0x8b, 0x33, 0xf5, 0x01, 0x11, 0x02, 0x0a, 0x48, - 0x05, 0x51, 0x00, 0x01, 0xff, 0x54, 0xf7, 0x3f, 0x85, 0x23, 0x00, 0xac, - 0x24, 0xb2, 0x16, 0x06, 0x6d, 0x02, 0x06, 0x57, 0xdc, 0x30, 0xeb, 0x25, - 0x40, 0x4d, 0x25, 0x0d, 0xf0, 0x25, 0x00, 0x4e, 0x43, 0x44, 0xf3, 0x25, - 0x40, 0x4e, 0x18, 0x71, 0xe5, 0x27, 0x00, 0x4e, 0xb4, 0x18, 0xa2, 0x25, - 0x40, 0x4d, 0xf1, 0x77, 0xe4, 0x27, 0x00, 0x05, 0x14, 0x01, 0x01, 0xff, - 0x4d, 0x25, 0x0d, 0xf1, 0x25, 0x00, 0x4e, 0x43, 0x44, 0xf2, 0x25, 0x40, - 0x4d, 0x07, 0x84, 0x95, 0xf7, 0x01, 0x4c, 0x37, 0x0a, 0xa3, 0x25, 0x00, - 0x51, 0x32, 0x0a, 0x94, 0xf7, 0x41, 0x04, 0x0e, 0x07, 0x06, 0x4a, 0x93, - 0x93, 0x3a, 0x26, 0x40, 0x47, 0x19, 0x0a, 0x2b, 0x2b, 0x00, 0xb3, 0x01, - 0xff, 0x45, 0xac, 0x05, 0xab, 0x25, 0x00, 0x43, 0xe3, 0x12, 0x52, 0x2b, - 0x40, 0x48, 0x3b, 0x46, 0xad, 0x25, 0x00, 0x04, 0xc9, 0x00, 0x01, 0xff, - 0x0a, 0x9b, 0x01, 0x1f, 0x0a, 0x3d, 0x0b, 0x01, 0xff, 0xb0, 0x0c, 0x4e, - 0xd7, 0x0b, 0xb9, 0x25, 0x00, 0x48, 0x01, 0x02, 0xb7, 0x25, 0x40, 0x47, - 0x3b, 0xc7, 0x54, 0x2b, 0x00, 0x46, 0xa1, 0x48, 0xbb, 0x25, 0x40, 0x4e, - 0x3f, 0x26, 0x49, 0xf4, 0x01, 0x45, 0x40, 0x13, 0x1e, 0x26, 0x40, 0x4c, - 0xa9, 0x8a, 0xb1, 0x25, 0x00, 0x02, 0x92, 0x01, 0x01, 0xff, 0x44, 0x5c, - 0x32, 0xf1, 0xf3, 0x01, 0x45, 0x3d, 0xc7, 0x20, 0x2b, 0x40, 0x06, 0x1a, - 0x04, 0x06, 0x4a, 0x93, 0xac, 0xdd, 0x2b, 0x40, 0x47, 0x88, 0x43, 0x26, - 0x2b, 0x00, 0x47, 0x19, 0x0a, 0x28, 0x2b, 0x00, 0xb3, 0x01, 0xff, 0x4b, - 0x38, 0x0a, 0xfd, 0x25, 0x00, 0x45, 0xac, 0x05, 0xfb, 0x25, 0x00, 0x43, - 0xe3, 0x12, 0x50, 0x2b, 0x40, 0xa1, 0x4d, 0x03, 0xc4, 0x00, 0x19, 0xaf, - 0x01, 0xff, 0x04, 0x15, 0x01, 0x06, 0x64, 0xfc, 0x09, 0xa0, 0xf7, 0x41, - 0x4c, 0x59, 0x8f, 0x86, 0xcc, 0x01, 0x4d, 0x1c, 0x86, 0x87, 0xcc, 0x41, - 0x80, 0x17, 0x0a, 0x3d, 0x0b, 0x01, 0xff, 0x47, 0xa0, 0x48, 0xc5, 0x25, - 0x00, 0x4e, 0xd7, 0x0b, 0xc3, 0x25, 0x00, 0x48, 0x01, 0x02, 0xc1, 0x25, - 0x40, 0x4a, 0x31, 0xaa, 0xd9, 0x26, 0x00, 0x09, 0x9c, 0x01, 0x01, 0xff, - 0x4e, 0x3f, 0x26, 0x48, 0xf4, 0x01, 0x45, 0x40, 0x13, 0x1c, 0x26, 0x40, - 0x4a, 0xe7, 0xad, 0x1c, 0x2b, 0x00, 0x49, 0x25, 0x9c, 0x46, 0xf5, 0x41, - 0x55, 0x7d, 0x38, 0xab, 0xf5, 0x01, 0xa5, 0x0f, 0xaf, 0x01, 0xff, 0x50, - 0x5a, 0x65, 0x2d, 0x2b, 0x00, 0x47, 0x2b, 0xd4, 0xd6, 0x29, 0x40, 0xa1, - 0x06, 0x45, 0xb5, 0xce, 0x21, 0x2b, 0x40, 0x42, 0x34, 0x00, 0x0d, 0xf9, - 0x81, 0x11, 0x03, 0x04, 0x15, 0x01, 0xff, 0x4a, 0x67, 0xa6, 0x05, 0x27, - 0x00, 0x5c, 0xa6, 0x18, 0xc0, 0xfb, 0x41, 0x45, 0xfd, 0x26, 0x61, 0x26, - 0x40, 0xac, 0x16, 0x0c, 0xcd, 0x12, 0x06, 0x4c, 0x7e, 0x81, 0x39, 0x26, - 0x40, 0x44, 0xa6, 0x15, 0xce, 0x2b, 0x00, 0x44, 0xe2, 0x12, 0x27, 0x27, - 0x40, 0x42, 0x23, 0x02, 0x90, 0x26, 0x80, 0x0f, 0xaf, 0x01, 0xff, 0x45, - 0x60, 0x0f, 0x40, 0x27, 0x00, 0x43, 0x15, 0x01, 0xae, 0xf4, 0x41, 0x64, - 0x94, 0x08, 0xff, 0x26, 0x40, 0x46, 0x89, 0x43, 0xc7, 0x25, 0x80, 0x3c, - 0x03, 0xa6, 0x01, 0x11, 0x08, 0x8a, 0xc7, 0x01, 0xff, 0x44, 0xe2, 0x33, - 0xc1, 0x26, 0x00, 0x43, 0xd5, 0x17, 0xc0, 0x26, 0x40, 0x0a, 0x9b, 0x01, - 0x11, 0x0a, 0x3d, 0x0b, 0x01, 0xff, 0x4e, 0xd7, 0x0b, 0xbf, 0x25, 0x00, - 0x48, 0x01, 0x02, 0xbd, 0x25, 0x40, 0x4e, 0x3f, 0x26, 0x47, 0xf4, 0x01, - 0x45, 0x40, 0x13, 0x1f, 0x26, 0x00, 0x4f, 0xde, 0x6d, 0x97, 0xf5, 0x41, - 0x80, 0x01, 0xff, 0x11, 0x02, 0x0a, 0x12, 0x49, 0xed, 0xb7, 0xcb, 0x26, - 0x00, 0x44, 0xfe, 0x26, 0x62, 0x26, 0x00, 0x50, 0x3a, 0x67, 0xd0, 0x27, - 0x40, 0x4e, 0x6e, 0x78, 0x9b, 0xf7, 0x01, 0x4d, 0x2d, 0x55, 0xc8, 0x25, - 0x00, 0x52, 0x28, 0x55, 0x9a, 0xf7, 0x41, 0x05, 0x8e, 0x86, 0x70, 0x45, - 0xe8, 0x02, 0xcb, 0x25, 0x80, 0x24, 0x48, 0x6a, 0xc5, 0x67, 0x26, 0x00, - 0x54, 0x7b, 0x43, 0xe1, 0x27, 0x80, 0x06, 0x49, 0xae, 0xa6, 0xcb, 0xfb, - 0x41, 0x06, 0x50, 0x00, 0x01, 0xff, 0x4e, 0xf0, 0x77, 0xe2, 0x27, 0x00, - 0x4f, 0x17, 0x71, 0xe3, 0x27, 0x40, 0x80, 0x01, 0xff, 0x5d, 0xc2, 0x14, - 0x8a, 0xf7, 0x01, 0x05, 0x51, 0x00, 0x01, 0xff, 0x02, 0x3b, 0x01, 0x27, - 0x06, 0x13, 0x01, 0x17, 0x48, 0xd0, 0x09, 0x87, 0x26, 0x00, 0x06, 0x6d, - 0x02, 0x01, 0xff, 0x4d, 0x25, 0x0d, 0xf4, 0x25, 0x00, 0x4e, 0x43, 0x44, - 0xf7, 0x25, 0x40, 0x4d, 0x25, 0x0d, 0xf5, 0x25, 0x00, 0x4e, 0x43, 0x44, - 0xf6, 0x25, 0x40, 0x47, 0xc6, 0x00, 0x86, 0x26, 0x00, 0x48, 0xc1, 0x40, - 0xec, 0x29, 0x40, 0x46, 0x48, 0xd7, 0x57, 0x26, 0x80, 0xe7, 0x01, 0x4a, - 0xd9, 0xa7, 0x48, 0xfa, 0x81, 0xd9, 0x01, 0xab, 0x73, 0x44, 0xb6, 0xee, - 0x59, 0x26, 0x80, 0x5b, 0x45, 0xe6, 0xbb, 0x55, 0x26, 0x80, 0x43, 0x44, - 0x0a, 0xef, 0x56, 0x26, 0x80, 0x2b, 0x07, 0xd8, 0x09, 0x01, 0xff, 0x46, - 0x48, 0xd7, 0x21, 0xfa, 0x01, 0xab, 0x12, 0x44, 0xb6, 0xee, 0x23, 0xfa, - 0x01, 0x45, 0xe6, 0xbb, 0x1f, 0xfa, 0x01, 0x44, 0x0a, 0xef, 0x20, 0xfa, - 0x41, 0x43, 0xa1, 0x01, 0x1e, 0xfa, 0x01, 0x45, 0xd5, 0x71, 0x22, 0xfa, - 0x41, 0x09, 0x02, 0x2c, 0x01, 0xff, 0x4e, 0x0b, 0x2c, 0x0b, 0xfa, 0x01, - 0x5b, 0x1a, 0x1d, 0x35, 0xfa, 0x41, 0x09, 0x02, 0x2c, 0x01, 0xff, 0x4e, - 0x0b, 0x2c, 0x0a, 0xfa, 0x01, 0x5b, 0x1a, 0x1d, 0x34, 0xfa, 0x41, 0x09, - 0x02, 0x2c, 0x01, 0xff, 0x4e, 0x0b, 0x2c, 0x0e, 0xfa, 0x01, 0x5b, 0x1a, - 0x1d, 0x38, 0xfa, 0x41, 0x43, 0xa1, 0x01, 0x54, 0x26, 0x80, 0x4c, 0x45, - 0xd5, 0x71, 0x58, 0x26, 0xc0, 0x00, 0x09, 0x02, 0x2c, 0x15, 0x8d, 0x01, - 0xff, 0x46, 0x48, 0xd7, 0x50, 0xfa, 0x01, 0x45, 0xe6, 0xbb, 0x4e, 0xfa, - 0x01, 0x44, 0x0a, 0xef, 0x4f, 0xfa, 0x41, 0x52, 0x84, 0x50, 0x06, 0xfa, - 0x01, 0x4e, 0x0b, 0x2c, 0x0d, 0xfa, 0x01, 0x5f, 0x1e, 0x11, 0x1b, 0xfa, - 0x01, 0xb4, 0x01, 0xff, 0x5c, 0x8e, 0x17, 0x45, 0xfa, 0x01, 0x0b, 0x1b, - 0x1d, 0x01, 0xff, 0x4f, 0x26, 0x1d, 0x37, 0xfa, 0x01, 0x53, 0xa9, 0x4c, - 0x30, 0xfa, 0x41, 0x09, 0x02, 0x2c, 0x01, 0xff, 0x4e, 0x0b, 0x2c, 0x09, - 0xfa, 0x01, 0x5b, 0x1a, 0x1d, 0x33, 0xfa, 0x41, 0x57, 0x02, 0x2c, 0x4b, - 0xfa, 0x41, 0x09, 0x02, 0x2c, 0x01, 0xff, 0x4e, 0x0b, 0x2c, 0x0c, 0xfa, - 0x01, 0x5b, 0x1a, 0x1d, 0x36, 0xfa, 0x41, 0x43, 0xbf, 0x0a, 0xac, 0xf8, - 0x01, 0x4a, 0x03, 0xb0, 0xad, 0xf8, 0x41, 0x4a, 0xab, 0xa3, 0x38, 0x26, - 0x00, 0x4c, 0x81, 0x8b, 0x7f, 0x26, 0x40, 0x04, 0xbc, 0x17, 0x22, 0xa4, - 0x14, 0xa9, 0x06, 0x4f, 0xbc, 0x71, 0x70, 0x26, 0x40, 0x5a, 0x76, 0x1f, - 0x18, 0x21, 0x00, 0x4a, 0x97, 0xa8, 0xcb, 0xf3, 0x41, 0x44, 0xd9, 0x05, - 0x92, 0xf4, 0x01, 0x5a, 0x20, 0x17, 0xbc, 0x27, 0x40, 0x48, 0xc0, 0x1e, - 0x40, 0xf6, 0x01, 0x44, 0xe1, 0x07, 0x29, 0xf6, 0x41, 0x44, 0xca, 0x87, - 0xc7, 0xf9, 0x01, 0xae, 0xb5, 0x05, 0xb2, 0x95, 0x01, 0x49, 0xfd, 0xbc, - 0xd1, 0xf5, 0x01, 0xb4, 0x62, 0xb6, 0x11, 0x05, 0x3f, 0xe9, 0x01, 0xff, - 0x54, 0x47, 0x40, 0x12, 0xf3, 0x01, 0x53, 0x6e, 0x48, 0x14, 0xf3, 0x41, - 0x02, 0x60, 0x00, 0x35, 0x04, 0xa1, 0x01, 0x1f, 0x02, 0x09, 0x00, 0x01, - 0xff, 0x44, 0x40, 0x12, 0x30, 0x30, 0x00, 0xac, 0x06, 0x48, 0xb8, 0x88, - 0x4b, 0xfe, 0x40, 0x43, 0xc3, 0x07, 0x07, 0x23, 0x00, 0x47, 0xac, 0x88, - 0x4f, 0xfe, 0x40, 0x4a, 0x03, 0xa6, 0xf4, 0xf3, 0x01, 0x49, 0x64, 0x46, - 0x4b, 0xf4, 0x01, 0x4a, 0x1b, 0xb1, 0xf3, 0xf3, 0x41, 0x18, 0x95, 0x26, - 0x06, 0x44, 0x40, 0x12, 0x1c, 0x30, 0x40, 0x44, 0xc3, 0x00, 0x3f, 0x2b, - 0x00, 0x45, 0xc8, 0x00, 0x33, 0x29, 0x40, 0x42, 0x1e, 0x14, 0x1a, 0x23, - 0x00, 0x02, 0x33, 0x00, 0x01, 0xff, 0x80, 0x06, 0x45, 0x70, 0xe5, 0x49, - 0xf3, 0x41, 0x47, 0xe5, 0xcc, 0x03, 0xf4, 0x01, 0x46, 0xc6, 0xd7, 0xbe, - 0xf6, 0x01, 0x44, 0xd6, 0xee, 0x3d, 0xf9, 0x01, 0x44, 0x39, 0x56, 0x0a, - 0xf3, 0x41, 0x09, 0xb5, 0xb3, 0x06, 0x49, 0x24, 0xba, 0xa0, 0x26, 0x40, - 0x0f, 0xb9, 0x05, 0xd1, 0x02, 0x06, 0xc4, 0x06, 0x8a, 0x02, 0x07, 0x2f, - 0x39, 0xc8, 0x01, 0x42, 0xe9, 0x04, 0xff, 0x18, 0x01, 0x0d, 0x4b, 0x08, - 0x01, 0xff, 0xe1, 0xc1, 0x18, 0x81, 0xa9, 0x01, 0x42, 0x1b, 0x0d, 0xd7, - 0x18, 0x01, 0x42, 0xa1, 0x10, 0xd4, 0x18, 0x01, 0xe5, 0xc8, 0x18, 0x81, - 0x8c, 0x01, 0x42, 0x24, 0x02, 0xcb, 0x18, 0x01, 0xa8, 0x69, 0x42, 0xb1, - 0x27, 0xc6, 0x18, 0x01, 0x42, 0x22, 0x03, 0xcc, 0x18, 0x01, 0xae, 0x4f, - 0xef, 0xc9, 0x18, 0x81, 0x44, 0x42, 0xb8, 0x0b, 0xd8, 0x18, 0x01, 0xb3, - 0x30, 0x43, 0xc3, 0x05, 0xd2, 0x18, 0x01, 0xb5, 0x20, 0x44, 0xba, 0xef, - 0xdf, 0x18, 0x01, 0x42, 0x51, 0x00, 0xc2, 0x18, 0x01, 0xb9, 0x01, 0xff, - 0xe1, 0xc4, 0x18, 0x01, 0xef, 0xc5, 0x18, 0x01, 0xf5, 0xc3, 0x18, 0xc1, - 0x00, 0xea, 0xce, 0x18, 0x41, 0xe3, 0xcf, 0x18, 0x01, 0xf5, 0xc7, 0x18, - 0x41, 0x42, 0xb1, 0x27, 0xde, 0x18, 0x01, 0x43, 0x50, 0xf1, 0xdd, 0x18, - 0x41, 0x42, 0x7f, 0x02, 0xd1, 0x18, 0x41, 0x43, 0x50, 0x56, 0xc0, 0x18, - 0x01, 0x43, 0x75, 0x44, 0xd3, 0x18, 0x41, 0x42, 0x17, 0x00, 0xdc, 0x18, - 0x01, 0x43, 0xc3, 0xc7, 0xd9, 0x18, 0x01, 0xaf, 0x01, 0xff, 0x42, 0x13, - 0x01, 0xda, 0x18, 0x01, 0x42, 0xcf, 0x00, 0xdb, 0x18, 0x41, 0xae, 0x01, - 0xff, 0xee, 0xd0, 0x18, 0x01, 0xf9, 0xcd, 0x18, 0x41, 0xed, 0xd6, 0x18, - 0x01, 0x42, 0x1d, 0x01, 0xca, 0x18, 0x01, 0xf4, 0xd5, 0x18, 0x41, 0x46, - 0x44, 0xd8, 0xf1, 0x18, 0x01, 0xa6, 0x29, 0x46, 0x0b, 0x2c, 0xf2, 0x18, - 0x01, 0xb3, 0x15, 0xb4, 0x01, 0xff, 0x42, 0x92, 0x01, 0xea, 0x18, 0x01, - 0x45, 0x2b, 0x11, 0xec, 0x18, 0x01, 0x45, 0xde, 0x2b, 0xeb, 0x18, 0x41, - 0x46, 0x27, 0x1d, 0xf0, 0x18, 0x01, 0x44, 0x4e, 0xda, 0xef, 0x18, 0x41, - 0x44, 0x08, 0x4c, 0xee, 0x18, 0x01, 0x44, 0x85, 0x50, 0xed, 0x18, 0x41, - 0x45, 0xc3, 0x0a, 0xe8, 0x18, 0x01, 0xa6, 0x2e, 0x44, 0x46, 0x2a, 0xe9, - 0x18, 0x01, 0x43, 0xbf, 0x0a, 0xe1, 0x18, 0x01, 0xb3, 0x14, 0xb4, 0x06, - 0x44, 0xa1, 0x1d, 0xe0, 0x18, 0x41, 0x44, 0x25, 0x01, 0xe3, 0x18, 0x01, - 0x42, 0x15, 0x02, 0xe2, 0x18, 0x41, 0x44, 0x27, 0x1d, 0xe7, 0x18, 0x01, - 0x42, 0x60, 0x25, 0xe6, 0x18, 0x41, 0x43, 0xa7, 0x05, 0xe5, 0x18, 0x01, - 0x43, 0xcb, 0x06, 0xe4, 0x18, 0x41, 0xe1, 0xa1, 0x18, 0x81, 0xa9, 0x01, - 0x42, 0x1b, 0x0d, 0xb7, 0x18, 0x01, 0x42, 0xa1, 0x10, 0xb4, 0x18, 0x01, - 0xe5, 0xa8, 0x18, 0x81, 0x8c, 0x01, 0x42, 0x24, 0x02, 0xab, 0x18, 0x01, - 0xa8, 0x69, 0x42, 0xb1, 0x27, 0xa6, 0x18, 0x01, 0x42, 0x22, 0x03, 0xac, - 0x18, 0x01, 0xae, 0x4f, 0xef, 0xa9, 0x18, 0x81, 0x44, 0x42, 0xb8, 0x0b, - 0xb8, 0x18, 0x01, 0xb3, 0x30, 0x43, 0xc3, 0x05, 0xb2, 0x18, 0x01, 0xb5, - 0x20, 0x44, 0xba, 0xef, 0xbf, 0x18, 0x01, 0x42, 0x51, 0x00, 0xa2, 0x18, - 0x01, 0xb9, 0x01, 0xff, 0xe1, 0xa4, 0x18, 0x01, 0xef, 0xa5, 0x18, 0x01, - 0xf5, 0xa3, 0x18, 0xc1, 0x00, 0xea, 0xae, 0x18, 0x41, 0xe3, 0xaf, 0x18, - 0x01, 0xf5, 0xa7, 0x18, 0x41, 0x42, 0xb1, 0x27, 0xbe, 0x18, 0x01, 0x43, - 0x50, 0xf1, 0xbd, 0x18, 0x41, 0x42, 0x7f, 0x02, 0xb1, 0x18, 0x41, 0x43, - 0x50, 0x56, 0xa0, 0x18, 0x01, 0x43, 0x75, 0x44, 0xb3, 0x18, 0x41, 0x42, - 0x17, 0x00, 0xbc, 0x18, 0x01, 0x43, 0xc3, 0xc7, 0xb9, 0x18, 0x01, 0xaf, - 0x01, 0xff, 0x42, 0x13, 0x01, 0xba, 0x18, 0x01, 0x42, 0xcf, 0x00, 0xbb, - 0x18, 0x41, 0xae, 0x01, 0xff, 0xee, 0xb0, 0x18, 0x01, 0xf9, 0xad, 0x18, - 0x41, 0xed, 0xb6, 0x18, 0x01, 0x42, 0x1d, 0x01, 0xaa, 0x18, 0x01, 0xf4, - 0xb5, 0x18, 0x41, 0x04, 0xb4, 0xd7, 0x11, 0x04, 0xa1, 0x01, 0x01, 0xff, - 0x54, 0x47, 0x40, 0x18, 0xf3, 0x01, 0x53, 0x6e, 0x48, 0x16, 0xf3, 0x41, - 0x06, 0xc4, 0x06, 0xa6, 0x02, 0x07, 0xc1, 0x05, 0x25, 0x49, 0x00, 0xba, - 0xff, 0xe2, 0x01, 0x05, 0x83, 0x2c, 0x01, 0xff, 0x43, 0xc7, 0xdb, 0xee, - 0xe2, 0x81, 0x0d, 0x43, 0x15, 0x19, 0xec, 0xe2, 0xc1, 0x00, 0x42, 0x26, - 0x03, 0xed, 0xe2, 0x41, 0x42, 0x26, 0x03, 0xef, 0xe2, 0x41, 0xe1, 0xc1, - 0xe2, 0x81, 0xdf, 0x01, 0x42, 0x16, 0x00, 0xc2, 0xe2, 0x01, 0x42, 0x37, - 0x00, 0xc3, 0xe2, 0x01, 0x42, 0xa1, 0x10, 0xc4, 0xe2, 0x01, 0xe5, 0xdb, - 0xe2, 0x81, 0xc3, 0x01, 0x42, 0xe1, 0x07, 0xcd, 0xe2, 0x01, 0x42, 0x24, - 0x02, 0xc5, 0xe2, 0x01, 0x42, 0x22, 0x00, 0xda, 0xe2, 0x01, 0xe9, 0xdc, - 0xe2, 0x81, 0xa5, 0x01, 0x42, 0xbd, 0x26, 0xd0, 0xe2, 0x01, 0xab, 0x92, - 0x01, 0xac, 0x85, 0x01, 0x42, 0x6c, 0x00, 0xd8, 0xe2, 0x01, 0xae, 0x6d, - 0xef, 0xd5, 0xe2, 0x81, 0x5f, 0xb0, 0x53, 0x42, 0x71, 0x00, 0xd7, 0xe2, - 0x01, 0xb3, 0x41, 0xb4, 0x29, 0xf5, 0xde, 0xe2, 0x81, 0x1e, 0x42, 0xa6, - 0x0a, 0xd3, 0xe2, 0x01, 0x42, 0xa9, 0x01, 0xd2, 0xe2, 0x01, 0xb9, 0x06, - 0x42, 0x59, 0x00, 0xd1, 0xe2, 0x41, 0xe1, 0xc6, 0xe2, 0x01, 0x42, 0xec, - 0x18, 0xeb, 0xe2, 0x41, 0x42, 0x92, 0x01, 0xea, 0xe2, 0x41, 0xe1, 0xcb, - 0xe2, 0x01, 0x42, 0x22, 0x00, 0xcc, 0xe2, 0x01, 0x42, 0x71, 0x00, 0xe1, - 0xe2, 0x01, 0x42, 0x15, 0x06, 0xe0, 0xe2, 0x41, 0xe1, 0xce, 0xe2, 0x01, - 0x42, 0x22, 0x00, 0xcf, 0xe2, 0x41, 0xe1, 0xca, 0xe2, 0x01, 0x42, 0x22, - 0x00, 0xc7, 0xe2, 0x41, 0xee, 0xe6, 0xe2, 0xc1, 0x00, 0xe7, 0xe2, 0xe2, - 0x41, 0xe1, 0xc9, 0xe2, 0x01, 0x42, 0x24, 0x02, 0xdd, 0xe2, 0x01, 0x42, - 0x34, 0x22, 0xe9, 0xe2, 0x41, 0xe1, 0xc8, 0xe2, 0x01, 0x43, 0x80, 0x48, - 0xdf, 0xe2, 0x41, 0xe1, 0xd4, 0xe2, 0x01, 0x42, 0x22, 0x00, 0xd9, 0xe2, - 0x41, 0x42, 0x1d, 0x01, 0xe5, 0xe2, 0x41, 0xee, 0xe7, 0xe2, 0x41, 0xe1, - 0xc0, 0xe2, 0x81, 0x0a, 0x42, 0x1d, 0x01, 0xe4, 0xe2, 0x01, 0xf5, 0xd6, - 0xe2, 0x41, 0xee, 0xe8, 0xe2, 0xc1, 0x00, 0xe7, 0xe3, 0xe2, 0x41, 0x45, - 0xc3, 0x0a, 0xf8, 0xe2, 0x01, 0xa6, 0x2e, 0x44, 0x46, 0x2a, 0xf9, 0xe2, - 0x01, 0x43, 0xbf, 0x0a, 0xf1, 0xe2, 0x01, 0xb3, 0x14, 0xb4, 0x06, 0x44, - 0xa1, 0x1d, 0xf0, 0xe2, 0x41, 0x44, 0x25, 0x01, 0xf3, 0xe2, 0x01, 0x42, - 0x15, 0x02, 0xf2, 0xe2, 0x41, 0x44, 0x27, 0x1d, 0xf7, 0xe2, 0x01, 0x42, - 0x60, 0x25, 0xf6, 0xe2, 0x41, 0x43, 0xa7, 0x05, 0xf5, 0xe2, 0x01, 0x43, - 0xcb, 0x06, 0xf4, 0xe2, 0x41, 0xa1, 0xf0, 0x0a, 0xa5, 0xaa, 0x05, 0xa9, - 0xba, 0x01, 0xaf, 0x9c, 0x01, 0x02, 0x1f, 0x01, 0x01, 0xff, 0x45, 0xe7, - 0xe1, 0xe6, 0x2b, 0x00, 0x0d, 0xa4, 0x81, 0x01, 0xff, 0xa6, 0x74, 0x04, - 0xbf, 0x0a, 0x35, 0x4d, 0xb2, 0x4b, 0x5e, 0x21, 0x00, 0xb4, 0x06, 0x4b, - 0x3a, 0xa3, 0x89, 0x21, 0x40, 0x05, 0x25, 0x01, 0x11, 0x03, 0xd1, 0x09, - 0x01, 0xff, 0x46, 0xf1, 0xac, 0x56, 0x21, 0x00, 0x46, 0x63, 0x73, 0x54, - 0x21, 0x40, 0x47, 0xb8, 0x4b, 0x5c, 0x21, 0x00, 0x46, 0xf1, 0xac, 0x57, - 0x21, 0x00, 0x48, 0x2a, 0x01, 0xbe, 0x00, 0x40, 0x46, 0xc3, 0x0a, 0x5b, - 0x21, 0x00, 0x45, 0xf1, 0xac, 0x55, 0x21, 0x00, 0x44, 0x22, 0x00, 0xbd, - 0x00, 0x00, 0x45, 0x01, 0xe6, 0x51, 0x21, 0x00, 0x47, 0x2a, 0x01, 0xbc, - 0x00, 0x00, 0xb3, 0x0f, 0xb4, 0x01, 0xff, 0x44, 0xfb, 0x1a, 0x52, 0x21, - 0x00, 0x44, 0x64, 0x73, 0x53, 0x21, 0x40, 0x46, 0xa4, 0xd8, 0x50, 0x21, - 0x00, 0x44, 0xe1, 0xa9, 0x59, 0x21, 0x40, 0x04, 0xa7, 0x05, 0x06, 0x4a, - 0xed, 0xac, 0x58, 0x21, 0x40, 0x47, 0xb8, 0x4b, 0x5d, 0x21, 0x00, 0x46, - 0xdc, 0xdc, 0x5a, 0x21, 0x40, 0x50, 0x2a, 0x62, 0xbb, 0xfb, 0x01, 0xac, - 0x01, 0xff, 0x44, 0x1e, 0xec, 0x0b, 0xf3, 0x01, 0x47, 0x0a, 0xd0, 0xd0, - 0xf3, 0x01, 0x4c, 0x75, 0x94, 0x30, 0x22, 0x40, 0x4c, 0x21, 0x8b, 0xf3, - 0xf4, 0x01, 0x4a, 0xe3, 0x94, 0x0c, 0x27, 0x00, 0x03, 0xab, 0x1f, 0xc8, - 0x03, 0xa5, 0xaf, 0x03, 0x44, 0x61, 0xac, 0xbb, 0xf3, 0x01, 0x43, 0xfa, - 0x16, 0x4d, 0x26, 0x00, 0x07, 0x91, 0xd3, 0x01, 0xff, 0x0f, 0xb9, 0x05, - 0xcf, 0x01, 0x0d, 0x4b, 0x08, 0x01, 0xff, 0xe1, 0x97, 0x05, 0x01, 0xa2, - 0xb9, 0x01, 0xa3, 0xac, 0x01, 0xa4, 0x9f, 0x01, 0xe5, 0x9f, 0x05, 0x81, - 0x95, 0x01, 0x42, 0xa0, 0x19, 0xa0, 0x05, 0x01, 0x42, 0x24, 0x02, 0xa1, - 0x05, 0x01, 0xa8, 0x7d, 0xe9, 0xa5, 0x05, 0x81, 0x72, 0x42, 0xde, 0x1f, - 0xa7, 0x05, 0x01, 0x42, 0x1b, 0x02, 0xa8, 0x05, 0x01, 0xac, 0x5a, 0x42, - 0x2a, 0x02, 0xab, 0x05, 0x01, 0xae, 0x48, 0xef, 0xae, 0x05, 0x01, 0x42, - 0x6f, 0x02, 0xaf, 0x05, 0x01, 0x42, 0xf4, 0x13, 0xb0, 0x05, 0x01, 0x42, - 0x88, 0x00, 0xb1, 0x05, 0x01, 0xb3, 0x26, 0xb4, 0x1a, 0xf5, 0xb7, 0x05, - 0x01, 0x42, 0x32, 0x00, 0xb8, 0x05, 0x01, 0x42, 0x60, 0x42, 0xb9, 0x05, - 0x01, 0xf9, 0xbb, 0x05, 0x01, 0x42, 0xfc, 0x09, 0xbc, 0x05, 0x41, 0xe5, - 0xb5, 0x05, 0x01, 0x42, 0xb0, 0x01, 0xb6, 0x05, 0x41, 0xe5, 0xb3, 0x05, - 0x01, 0x42, 0xb0, 0x01, 0xb4, 0x05, 0x41, 0xe5, 0xac, 0x05, 0x01, 0x42, - 0xde, 0x1f, 0xad, 0x05, 0x41, 0xe1, 0xa9, 0x05, 0x01, 0x42, 0x74, 0x00, - 0xaa, 0x05, 0x41, 0x42, 0xde, 0x1f, 0xa6, 0x05, 0x41, 0xe1, 0xa3, 0x05, - 0x01, 0x42, 0x22, 0x00, 0xa4, 0x05, 0x41, 0xe9, 0x9e, 0x05, 0x41, 0xe5, - 0x9c, 0x05, 0x01, 0x42, 0xb0, 0x01, 0x9d, 0x05, 0x41, 0xe5, 0x9a, 0x05, - 0x01, 0x42, 0xb0, 0x01, 0x9b, 0x05, 0x41, 0x42, 0x8c, 0x05, 0x98, 0x05, - 0x01, 0xe5, 0x99, 0x05, 0x41, 0xe1, 0x70, 0x05, 0x01, 0xa2, 0xb9, 0x01, - 0xa3, 0xac, 0x01, 0xa4, 0x9f, 0x01, 0xe5, 0x78, 0x05, 0x81, 0x95, 0x01, - 0x42, 0xa0, 0x19, 0x79, 0x05, 0x01, 0x42, 0x24, 0x02, 0x7a, 0x05, 0x01, - 0xa8, 0x7d, 0xe9, 0x7e, 0x05, 0x81, 0x72, 0x42, 0xde, 0x1f, 0x80, 0x05, - 0x01, 0x42, 0x1b, 0x02, 0x81, 0x05, 0x01, 0xac, 0x5a, 0x42, 0x2a, 0x02, - 0x84, 0x05, 0x01, 0xae, 0x48, 0xef, 0x87, 0x05, 0x01, 0x42, 0x6f, 0x02, - 0x88, 0x05, 0x01, 0x42, 0xf4, 0x13, 0x89, 0x05, 0x01, 0x42, 0x88, 0x00, - 0x8a, 0x05, 0x01, 0xb3, 0x26, 0xb4, 0x1a, 0xf5, 0x90, 0x05, 0x01, 0x42, - 0x32, 0x00, 0x91, 0x05, 0x01, 0x42, 0x60, 0x42, 0x92, 0x05, 0x01, 0xf9, - 0x94, 0x05, 0x01, 0x42, 0xfc, 0x09, 0x95, 0x05, 0x41, 0xe5, 0x8e, 0x05, - 0x01, 0x42, 0xb0, 0x01, 0x8f, 0x05, 0x41, 0xe5, 0x8c, 0x05, 0x01, 0x42, - 0xb0, 0x01, 0x8d, 0x05, 0x41, 0xe5, 0x85, 0x05, 0x01, 0x42, 0xde, 0x1f, - 0x86, 0x05, 0x41, 0xe1, 0x82, 0x05, 0x01, 0x42, 0x74, 0x00, 0x83, 0x05, - 0x41, 0x42, 0xde, 0x1f, 0x7f, 0x05, 0x41, 0xe1, 0x7c, 0x05, 0x01, 0x42, - 0x22, 0x00, 0x7d, 0x05, 0x41, 0xe9, 0x77, 0x05, 0x41, 0xe5, 0x75, 0x05, - 0x01, 0x42, 0xb0, 0x01, 0x76, 0x05, 0x41, 0xe5, 0x73, 0x05, 0x01, 0x42, - 0xb0, 0x01, 0x74, 0x05, 0x41, 0x42, 0x8c, 0x05, 0x71, 0x05, 0x01, 0xe5, - 0x72, 0x05, 0x41, 0x1f, 0x9a, 0x11, 0x06, 0x4c, 0xf9, 0x94, 0x17, 0x23, - 0x40, 0x42, 0x37, 0x00, 0xf0, 0x6f, 0x01, 0x44, 0x3a, 0xee, 0xf1, 0x6f, - 0x41, 0x80, 0x06, 0x48, 0x02, 0xc2, 0xfc, 0xf4, 0x41, 0x46, 0x01, 0xb1, - 0xf9, 0xf4, 0x01, 0x44, 0xa2, 0xec, 0xae, 0xf3, 0x41, 0x55, 0x3a, 0x39, - 0x2f, 0x2a, 0x00, 0x04, 0xc0, 0x06, 0xfc, 0x02, 0xb2, 0x06, 0x43, 0xe2, - 0x12, 0xb6, 0x26, 0x40, 0x45, 0xd2, 0xe7, 0x23, 0x21, 0x00, 0x06, 0x35, - 0x00, 0x67, 0x02, 0x09, 0x00, 0x01, 0xff, 0x50, 0x9a, 0x5f, 0xa5, 0xf7, - 0x01, 0x06, 0x01, 0x15, 0x11, 0x05, 0xb6, 0xe5, 0x01, 0xff, 0x4c, 0x87, - 0x00, 0xd9, 0x22, 0x00, 0x49, 0xec, 0x00, 0xd8, 0x22, 0x40, 0x06, 0xe2, - 0x13, 0x37, 0x54, 0x4b, 0x41, 0xb3, 0xf7, 0x01, 0x4b, 0x9f, 0x5f, 0xa6, - 0xf7, 0x01, 0x4f, 0xcc, 0x70, 0x7d, 0xf6, 0x01, 0xb3, 0x11, 0x06, 0xad, - 0x02, 0x01, 0xff, 0x46, 0xe7, 0x02, 0x88, 0xf7, 0x01, 0x46, 0xab, 0x05, - 0x92, 0xf7, 0x41, 0x46, 0xa7, 0x18, 0xad, 0xf7, 0x01, 0x52, 0xb6, 0x51, - 0xb9, 0xf7, 0x01, 0x46, 0x6a, 0x30, 0x7c, 0xf6, 0x41, 0x52, 0x4b, 0x2b, - 0xd0, 0xf7, 0x01, 0x4f, 0x4e, 0x1c, 0xbf, 0xf7, 0x41, 0x04, 0x16, 0x00, - 0xe6, 0x01, 0x49, 0xa8, 0xb4, 0x14, 0xcc, 0x01, 0x48, 0x45, 0x29, 0xee, - 0x22, 0x00, 0x49, 0x9c, 0x45, 0x5e, 0x20, 0x00, 0x47, 0x7b, 0xce, 0x9d, - 0xcc, 0x01, 0x5a, 0xaa, 0x1f, 0x3b, 0x30, 0x00, 0x0c, 0xd5, 0x8e, 0xa0, - 0x01, 0xac, 0x61, 0x55, 0x04, 0x3c, 0xa8, 0x26, 0x00, 0x11, 0x6c, 0x5b, - 0x3f, 0xb2, 0x31, 0x48, 0x52, 0xc8, 0x3d, 0x2e, 0x00, 0xb4, 0x06, 0x4b, - 0x45, 0xa3, 0x9a, 0x29, 0x40, 0x02, 0x5c, 0x00, 0x0c, 0x44, 0xae, 0x22, - 0x2f, 0x2e, 0x00, 0x4c, 0x4d, 0x92, 0xa6, 0xf6, 0x41, 0x44, 0x9c, 0x44, - 0x7f, 0x2b, 0x00, 0x47, 0x16, 0x3b, 0x0b, 0x00, 0xc0, 0x00, 0x44, 0x15, - 0xb6, 0x8a, 0x00, 0x40, 0x49, 0x40, 0xb3, 0x9c, 0xcc, 0x01, 0x4f, 0x3b, - 0x6b, 0x0a, 0xcc, 0x41, 0xd2, 0x70, 0xfb, 0x01, 0xd3, 0x71, 0xfb, 0x01, - 0xd4, 0x72, 0xfb, 0x01, 0xd5, 0x73, 0xfb, 0x01, 0xd6, 0x74, 0xfb, 0x01, - 0xd7, 0x75, 0xfb, 0x41, 0x45, 0xfc, 0xe0, 0x84, 0xcc, 0x01, 0x43, 0xc3, - 0x07, 0x7c, 0x00, 0xc0, 0x00, 0x80, 0x01, 0xff, 0x49, 0x56, 0x57, 0xd0, - 0x23, 0x00, 0x05, 0x51, 0x00, 0x01, 0xff, 0x07, 0xd0, 0x04, 0x12, 0x4f, - 0xb3, 0x6b, 0x90, 0xcc, 0x01, 0x4a, 0xb1, 0x44, 0x7f, 0x23, 0x00, 0x50, - 0xcc, 0x07, 0x15, 0xce, 0x41, 0x45, 0x5c, 0x00, 0xef, 0x2a, 0x00, 0x45, - 0xf5, 0x06, 0xf0, 0x2a, 0x40, 0x44, 0xb9, 0x00, 0x31, 0x30, 0x80, 0x0d, - 0x56, 0x7f, 0x37, 0x32, 0x30, 0xc0, 0x00, 0x4b, 0xbd, 0x19, 0x34, 0x30, - 0x40, 0x80, 0x01, 0xff, 0x4a, 0x75, 0x08, 0x35, 0x30, 0x00, 0x4a, 0xbe, - 0x19, 0x33, 0x30, 0x40, 0x55, 0xbc, 0x38, 0xd0, 0x29, 0x00, 0x55, 0x79, - 0x39, 0xe4, 0x2a, 0x00, 0x56, 0xb9, 0x36, 0xe2, 0x2a, 0x00, 0x56, 0x53, - 0x37, 0xca, 0x27, 0x40, 0x05, 0x2f, 0x03, 0x94, 0x01, 0x05, 0x83, 0x2c, - 0x01, 0xff, 0x60, 0x25, 0x0f, 0xe1, 0x1c, 0x00, 0x07, 0xba, 0x5f, 0x79, - 0x02, 0x3b, 0x01, 0x5e, 0x02, 0x1b, 0x02, 0x4e, 0x47, 0x09, 0xd2, 0xd2, - 0x1c, 0x00, 0x02, 0x0d, 0x00, 0x38, 0x45, 0xb9, 0xe7, 0xd1, 0x1c, 0x00, - 0xb4, 0x1e, 0x0b, 0x34, 0x22, 0x01, 0xff, 0x5e, 0x14, 0x12, 0xd5, 0x1c, - 0x00, 0x53, 0x99, 0x0a, 0xd6, 0x1c, 0x00, 0x5b, 0x85, 0x1b, 0xd7, 0x1c, - 0xc0, 0x00, 0x4a, 0xe7, 0xa3, 0xd9, 0x1c, 0x40, 0x4f, 0x94, 0x6c, 0xdf, - 0x1c, 0x00, 0x4d, 0x29, 0x86, 0xdb, 0x1c, 0x00, 0x4d, 0xb7, 0x0e, 0xde, - 0x1c, 0x40, 0x63, 0x89, 0x0a, 0xe0, 0x1c, 0x00, 0x48, 0x11, 0xae, 0xf8, - 0x1c, 0x40, 0x46, 0xac, 0xdc, 0xd0, 0x1c, 0x00, 0x4e, 0x62, 0x7b, 0xdc, - 0x1c, 0x40, 0x47, 0x52, 0x12, 0xdd, 0x1c, 0x00, 0x05, 0x3d, 0x01, 0x01, - 0xff, 0x4a, 0x0f, 0xae, 0xf9, 0x1c, 0x00, 0x47, 0xa5, 0x0a, 0xda, 0x1c, - 0x40, 0x45, 0x5c, 0x00, 0xf4, 0x1c, 0x00, 0x45, 0xf5, 0x06, 0xd8, 0x1c, - 0x40, 0xa1, 0x72, 0x5c, 0xe6, 0x16, 0xfa, 0x1c, 0x00, 0x56, 0x5f, 0x33, - 0xee, 0x1c, 0x00, 0x4b, 0xc0, 0x9b, 0xf5, 0x1c, 0x00, 0x4d, 0x68, 0x33, - 0xef, 0x1c, 0x00, 0x49, 0x1b, 0xba, 0xd3, 0x1c, 0x00, 0xb2, 0x36, 0x46, - 0x96, 0xdd, 0xed, 0x1c, 0x00, 0x4b, 0x32, 0xa2, 0xf6, 0x1c, 0x00, 0x08, - 0x92, 0x61, 0x06, 0x5a, 0x34, 0x22, 0xd4, 0x1c, 0x40, 0x48, 0x68, 0x7b, - 0xe5, 0x1c, 0x80, 0x13, 0x47, 0xa5, 0x0a, 0xe2, 0x1c, 0x00, 0x46, 0x6a, - 0x7b, 0xe3, 0x1c, 0xc0, 0x00, 0x4a, 0x5f, 0xa4, 0xe7, 0x1c, 0x40, 0x4a, - 0x5f, 0xa4, 0xe8, 0x1c, 0x40, 0x10, 0x8a, 0x61, 0x0c, 0x53, 0x95, 0x4a, - 0xf3, 0x1c, 0x00, 0x53, 0x37, 0x4c, 0xf0, 0x1c, 0x40, 0x48, 0x68, 0x7b, - 0xe6, 0x1c, 0x00, 0x46, 0x6a, 0x7b, 0xe4, 0x1c, 0x40, 0x08, 0xd1, 0x15, - 0x0c, 0x4b, 0x9d, 0x4a, 0xf2, 0x1c, 0x00, 0x47, 0x98, 0xd3, 0xf7, 0x1c, - 0x40, 0x4c, 0xf6, 0x16, 0xe9, 0x1c, 0x00, 0x4c, 0xd9, 0x8a, 0xea, 0x1c, - 0x00, 0x4e, 0x5e, 0x7c, 0xf1, 0x1c, 0x00, 0x4b, 0x74, 0xa2, 0xeb, 0x1c, - 0xc0, 0x00, 0x4a, 0x5f, 0xa4, 0xec, 0x1c, 0x40, 0x02, 0xc6, 0x03, 0xb4, - 0x08, 0x45, 0x7a, 0x92, 0xdb, 0xf9, 0x01, 0x11, 0x27, 0x5c, 0x01, 0xff, - 0xd1, 0x00, 0xfe, 0x80, 0xda, 0x04, 0xd2, 0x01, 0xfe, 0x80, 0xbf, 0x02, - 0xd3, 0x02, 0xfe, 0x80, 0x91, 0x02, 0xd4, 0x03, 0xfe, 0x80, 0xe3, 0x01, - 0xd5, 0x04, 0xfe, 0x80, 0xb5, 0x01, 0xd6, 0x05, 0xfe, 0x80, 0x87, 0x01, - 0xd7, 0x06, 0xfe, 0x80, 0x5a, 0xd8, 0x07, 0xfe, 0x80, 0x2d, 0xd9, 0x08, - 0xfe, 0xc0, 0x00, 0xd0, 0x49, 0x01, 0x0e, 0xd1, 0x4a, 0x01, 0x0e, 0xd2, - 0x4b, 0x01, 0x0e, 0xd3, 0x4c, 0x01, 0x0e, 0xd4, 0x4d, 0x01, 0x0e, 0xd5, - 0x4e, 0x01, 0x0e, 0xd6, 0x4f, 0x01, 0x0e, 0xd7, 0x50, 0x01, 0x0e, 0xd8, - 0x51, 0x01, 0x0e, 0xd9, 0x52, 0x01, 0x4e, 0xd0, 0x3f, 0x01, 0x0e, 0xd1, - 0x40, 0x01, 0x0e, 0xd2, 0x41, 0x01, 0x0e, 0xd3, 0x42, 0x01, 0x0e, 0xd4, - 0x43, 0x01, 0x0e, 0xd5, 0x44, 0x01, 0x0e, 0xd6, 0x45, 0x01, 0x0e, 0xd7, - 0x46, 0x01, 0x0e, 0xd8, 0x47, 0x01, 0x0e, 0xd9, 0x48, 0x01, 0x4e, 0xd0, - 0x35, 0x01, 0x0e, 0xd1, 0x36, 0x01, 0x0e, 0xd2, 0x37, 0x01, 0x0e, 0xd3, - 0x38, 0x01, 0x0e, 0xd4, 0x39, 0x01, 0x0e, 0xd5, 0x3a, 0x01, 0x0e, 0xd6, - 0x3b, 0x01, 0x0e, 0xd7, 0x3c, 0x01, 0x0e, 0xd8, 0x3d, 0x01, 0x0e, 0xd9, - 0x3e, 0x01, 0x4e, 0xd0, 0x2b, 0x01, 0x0e, 0xd1, 0x2c, 0x01, 0x0e, 0xd2, - 0x2d, 0x01, 0x0e, 0xd3, 0x2e, 0x01, 0x0e, 0xd4, 0x2f, 0x01, 0x0e, 0xd5, - 0x30, 0x01, 0x0e, 0xd6, 0x31, 0x01, 0x0e, 0xd7, 0x32, 0x01, 0x0e, 0xd8, - 0x33, 0x01, 0x0e, 0xd9, 0x34, 0x01, 0x4e, 0xd0, 0x21, 0x01, 0x0e, 0xd1, - 0x22, 0x01, 0x0e, 0xd2, 0x23, 0x01, 0x0e, 0xd3, 0x24, 0x01, 0x0e, 0xd4, - 0x25, 0x01, 0x0e, 0xd5, 0x26, 0x01, 0x0e, 0xd6, 0x27, 0x01, 0x0e, 0xd7, - 0x28, 0x01, 0x0e, 0xd8, 0x29, 0x01, 0x0e, 0xd9, 0x2a, 0x01, 0x4e, 0xd0, - 0x17, 0x01, 0x0e, 0xd1, 0x18, 0x01, 0x0e, 0xd2, 0x19, 0x01, 0x0e, 0xd3, - 0x1a, 0x01, 0x0e, 0xd4, 0x1b, 0x01, 0x0e, 0xd5, 0x1c, 0x01, 0x0e, 0xd6, - 0x1d, 0x01, 0x0e, 0xd7, 0x1e, 0x01, 0x0e, 0xd8, 0x1f, 0x01, 0x0e, 0xd9, - 0x20, 0x01, 0x4e, 0xd0, 0x0d, 0x01, 0x0e, 0xd1, 0x0e, 0x01, 0x0e, 0xd2, - 0x0f, 0x01, 0x0e, 0xd3, 0x10, 0x01, 0x0e, 0xd4, 0x11, 0x01, 0x0e, 0xd5, - 0x12, 0x01, 0x0e, 0xd6, 0x13, 0x01, 0x0e, 0xd7, 0x14, 0x01, 0x0e, 0xd8, - 0x15, 0x01, 0x0e, 0xd9, 0x16, 0x01, 0x4e, 0xd0, 0x03, 0x01, 0x8e, 0xe7, - 0x01, 0xd1, 0x04, 0x01, 0x8e, 0xb9, 0x01, 0xd2, 0x05, 0x01, 0x8e, 0x8b, - 0x01, 0xd3, 0x06, 0x01, 0x8e, 0x5e, 0xd4, 0x07, 0x01, 0x8e, 0x31, 0xd5, - 0x08, 0x01, 0x8e, 0x10, 0xd6, 0x09, 0x01, 0x0e, 0xd7, 0x0a, 0x01, 0x0e, - 0xd8, 0x0b, 0x01, 0x0e, 0xd9, 0x0c, 0x01, 0x4e, 0xd0, 0xe9, 0x01, 0x0e, - 0xd1, 0xea, 0x01, 0x0e, 0xd2, 0xeb, 0x01, 0x0e, 0xd3, 0xec, 0x01, 0x0e, - 0xd4, 0xed, 0x01, 0x0e, 0xd5, 0xee, 0x01, 0x0e, 0xd6, 0xef, 0x01, 0x4e, - 0xd0, 0xdf, 0x01, 0x0e, 0xd1, 0xe0, 0x01, 0x0e, 0xd2, 0xe1, 0x01, 0x0e, - 0xd3, 0xe2, 0x01, 0x0e, 0xd4, 0xe3, 0x01, 0x0e, 0xd5, 0xe4, 0x01, 0x0e, - 0xd6, 0xe5, 0x01, 0x0e, 0xd7, 0xe6, 0x01, 0x0e, 0xd8, 0xe7, 0x01, 0x0e, - 0xd9, 0xe8, 0x01, 0x4e, 0xd0, 0xd5, 0x01, 0x0e, 0xd1, 0xd6, 0x01, 0x0e, - 0xd2, 0xd7, 0x01, 0x0e, 0xd3, 0xd8, 0x01, 0x0e, 0xd4, 0xd9, 0x01, 0x0e, - 0xd5, 0xda, 0x01, 0x0e, 0xd6, 0xdb, 0x01, 0x0e, 0xd7, 0xdc, 0x01, 0x0e, - 0xd8, 0xdd, 0x01, 0x0e, 0xd9, 0xde, 0x01, 0x4e, 0xd0, 0xcb, 0x01, 0x0e, - 0xd1, 0xcc, 0x01, 0x0e, 0xd2, 0xcd, 0x01, 0x0e, 0xd3, 0xce, 0x01, 0x0e, - 0xd4, 0xcf, 0x01, 0x0e, 0xd5, 0xd0, 0x01, 0x0e, 0xd6, 0xd1, 0x01, 0x0e, - 0xd7, 0xd2, 0x01, 0x0e, 0xd8, 0xd3, 0x01, 0x0e, 0xd9, 0xd4, 0x01, 0x4e, - 0xd0, 0xc1, 0x01, 0x0e, 0xd1, 0xc2, 0x01, 0x0e, 0xd2, 0xc3, 0x01, 0x0e, - 0xd3, 0xc4, 0x01, 0x0e, 0xd4, 0xc5, 0x01, 0x0e, 0xd5, 0xc6, 0x01, 0x0e, - 0xd6, 0xc7, 0x01, 0x0e, 0xd7, 0xc8, 0x01, 0x0e, 0xd8, 0xc9, 0x01, 0x0e, - 0xd9, 0xca, 0x01, 0x4e, 0xd0, 0xb7, 0x01, 0x0e, 0xd1, 0xb8, 0x01, 0x0e, - 0xd2, 0xb9, 0x01, 0x0e, 0xd3, 0xba, 0x01, 0x0e, 0xd4, 0xbb, 0x01, 0x0e, - 0xd5, 0xbc, 0x01, 0x0e, 0xd6, 0xbd, 0x01, 0x0e, 0xd7, 0xbe, 0x01, 0x0e, - 0xd8, 0xbf, 0x01, 0x0e, 0xd9, 0xc0, 0x01, 0x4e, 0xd0, 0x09, 0xfe, 0x80, - 0x9b, 0x03, 0xd1, 0x0a, 0xfe, 0x80, 0xed, 0x02, 0xd2, 0x0b, 0xfe, 0x80, - 0xbf, 0x02, 0xd3, 0x0c, 0xfe, 0x80, 0x91, 0x02, 0xd4, 0x0d, 0xfe, 0x80, - 0xe3, 0x01, 0xd5, 0x0e, 0xfe, 0x80, 0xb5, 0x01, 0xd6, 0x0f, 0xfe, 0x80, - 0x87, 0x01, 0xd7, 0x00, 0x01, 0x8e, 0x5a, 0xd8, 0x01, 0x01, 0x8e, 0x2d, - 0xd9, 0x02, 0x01, 0xce, 0x00, 0xd0, 0xad, 0x01, 0x0e, 0xd1, 0xae, 0x01, - 0x0e, 0xd2, 0xaf, 0x01, 0x0e, 0xd3, 0xb0, 0x01, 0x0e, 0xd4, 0xb1, 0x01, - 0x0e, 0xd5, 0xb2, 0x01, 0x0e, 0xd6, 0xb3, 0x01, 0x0e, 0xd7, 0xb4, 0x01, - 0x0e, 0xd8, 0xb5, 0x01, 0x0e, 0xd9, 0xb6, 0x01, 0x4e, 0xd0, 0xa3, 0x01, - 0x0e, 0xd1, 0xa4, 0x01, 0x0e, 0xd2, 0xa5, 0x01, 0x0e, 0xd3, 0xa6, 0x01, - 0x0e, 0xd4, 0xa7, 0x01, 0x0e, 0xd5, 0xa8, 0x01, 0x0e, 0xd6, 0xa9, 0x01, - 0x0e, 0xd7, 0xaa, 0x01, 0x0e, 0xd8, 0xab, 0x01, 0x0e, 0xd9, 0xac, 0x01, - 0x4e, 0xd0, 0x99, 0x01, 0x0e, 0xd1, 0x9a, 0x01, 0x0e, 0xd2, 0x9b, 0x01, - 0x0e, 0xd3, 0x9c, 0x01, 0x0e, 0xd4, 0x9d, 0x01, 0x0e, 0xd5, 0x9e, 0x01, - 0x0e, 0xd6, 0x9f, 0x01, 0x0e, 0xd7, 0xa0, 0x01, 0x0e, 0xd8, 0xa1, 0x01, - 0x0e, 0xd9, 0xa2, 0x01, 0x4e, 0xd0, 0x8f, 0x01, 0x0e, 0xd1, 0x90, 0x01, - 0x0e, 0xd2, 0x91, 0x01, 0x0e, 0xd3, 0x92, 0x01, 0x0e, 0xd4, 0x93, 0x01, - 0x0e, 0xd5, 0x94, 0x01, 0x0e, 0xd6, 0x95, 0x01, 0x0e, 0xd7, 0x96, 0x01, - 0x0e, 0xd8, 0x97, 0x01, 0x0e, 0xd9, 0x98, 0x01, 0x4e, 0xd0, 0x85, 0x01, - 0x0e, 0xd1, 0x86, 0x01, 0x0e, 0xd2, 0x87, 0x01, 0x0e, 0xd3, 0x88, 0x01, - 0x0e, 0xd4, 0x89, 0x01, 0x0e, 0xd5, 0x8a, 0x01, 0x0e, 0xd6, 0x8b, 0x01, - 0x0e, 0xd7, 0x8c, 0x01, 0x0e, 0xd8, 0x8d, 0x01, 0x0e, 0xd9, 0x8e, 0x01, - 0x4e, 0xd0, 0x7b, 0x01, 0x0e, 0xd1, 0x7c, 0x01, 0x0e, 0xd2, 0x7d, 0x01, - 0x0e, 0xd3, 0x7e, 0x01, 0x0e, 0xd4, 0x7f, 0x01, 0x0e, 0xd5, 0x80, 0x01, - 0x0e, 0xd6, 0x81, 0x01, 0x0e, 0xd7, 0x82, 0x01, 0x0e, 0xd8, 0x83, 0x01, - 0x0e, 0xd9, 0x84, 0x01, 0x4e, 0xd0, 0x71, 0x01, 0x0e, 0xd1, 0x72, 0x01, - 0x0e, 0xd2, 0x73, 0x01, 0x0e, 0xd3, 0x74, 0x01, 0x0e, 0xd4, 0x75, 0x01, - 0x0e, 0xd5, 0x76, 0x01, 0x0e, 0xd6, 0x77, 0x01, 0x0e, 0xd7, 0x78, 0x01, - 0x0e, 0xd8, 0x79, 0x01, 0x0e, 0xd9, 0x7a, 0x01, 0x4e, 0xd0, 0x67, 0x01, - 0x0e, 0xd1, 0x68, 0x01, 0x0e, 0xd2, 0x69, 0x01, 0x0e, 0xd3, 0x6a, 0x01, - 0x0e, 0xd4, 0x6b, 0x01, 0x0e, 0xd5, 0x6c, 0x01, 0x0e, 0xd6, 0x6d, 0x01, - 0x0e, 0xd7, 0x6e, 0x01, 0x0e, 0xd8, 0x6f, 0x01, 0x0e, 0xd9, 0x70, 0x01, - 0x4e, 0xd0, 0x5d, 0x01, 0x0e, 0xd1, 0x5e, 0x01, 0x0e, 0xd2, 0x5f, 0x01, - 0x0e, 0xd3, 0x60, 0x01, 0x0e, 0xd4, 0x61, 0x01, 0x0e, 0xd5, 0x62, 0x01, - 0x0e, 0xd6, 0x63, 0x01, 0x0e, 0xd7, 0x64, 0x01, 0x0e, 0xd8, 0x65, 0x01, - 0x0e, 0xd9, 0x66, 0x01, 0x4e, 0xd0, 0x53, 0x01, 0x0e, 0xd1, 0x54, 0x01, - 0x0e, 0xd2, 0x55, 0x01, 0x0e, 0xd3, 0x56, 0x01, 0x0e, 0xd4, 0x57, 0x01, - 0x0e, 0xd5, 0x58, 0x01, 0x0e, 0xd6, 0x59, 0x01, 0x0e, 0xd7, 0x5a, 0x01, - 0x0e, 0xd8, 0x5b, 0x01, 0x0e, 0xd9, 0x5c, 0x01, 0x4e, 0x45, 0xe8, 0x04, - 0x0d, 0xa6, 0x00, 0x06, 0xc4, 0x06, 0x83, 0x0b, 0x49, 0x15, 0x16, 0x0e, - 0xa6, 0x00, 0x4d, 0xd6, 0x33, 0x0f, 0xa6, 0x00, 0x02, 0xeb, 0x07, 0x01, - 0xff, 0x07, 0xb0, 0x17, 0x5f, 0x05, 0xf5, 0x15, 0x01, 0xff, 0x44, 0xba, - 0x15, 0x17, 0xa6, 0x00, 0xa4, 0x3d, 0xa6, 0x2f, 0x44, 0xeb, 0xa9, 0x1f, - 0xa6, 0x00, 0xab, 0x1b, 0x43, 0x29, 0xf1, 0x16, 0xa6, 0x00, 0xb4, 0x01, - 0xff, 0x42, 0x31, 0x12, 0x19, 0xa6, 0x00, 0x43, 0xa1, 0x01, 0x15, 0xa6, - 0x00, 0x43, 0x63, 0x0e, 0x1d, 0xa6, 0x40, 0x44, 0x99, 0x99, 0x14, 0xa6, - 0x00, 0x43, 0x75, 0x44, 0x1c, 0xa6, 0x40, 0x42, 0x31, 0x12, 0x18, 0xa6, - 0x00, 0x44, 0x99, 0x99, 0x13, 0xa6, 0x40, 0x43, 0x1c, 0x01, 0x1a, 0xa6, - 0x00, 0xaf, 0x01, 0xff, 0x42, 0xad, 0x20, 0x1e, 0xa6, 0x00, 0x43, 0x63, - 0x0e, 0x1b, 0xa6, 0x40, 0xe1, 0x49, 0xa5, 0x80, 0x85, 0x0a, 0xa2, 0xc4, - 0x09, 0xa3, 0xa3, 0x09, 0xa4, 0xc2, 0x08, 0xe5, 0xe1, 0xa5, 0x80, 0xaf, - 0x08, 0xa6, 0x8e, 0x08, 0xa7, 0xc1, 0x07, 0xa8, 0x89, 0x07, 0xe9, 0x24, - 0xa5, 0x80, 0xff, 0x06, 0xaa, 0xde, 0x06, 0xab, 0x8f, 0x06, 0xac, 0xe8, - 0x05, 0xad, 0x85, 0x05, 0xae, 0xa4, 0x03, 0xef, 0xba, 0xa5, 0x80, 0x91, - 0x03, 0xb0, 0xf0, 0x02, 0xb2, 0xcf, 0x02, 0xb3, 0x8e, 0x02, 0xb4, 0xcd, - 0x01, 0xf5, 0x95, 0xa5, 0x80, 0xc3, 0x01, 0xb6, 0xa2, 0x01, 0xb7, 0x61, - 0xb9, 0x41, 0xba, 0x01, 0xff, 0xe1, 0x64, 0xa5, 0x00, 0xe5, 0xfd, 0xa5, - 0x80, 0x31, 0xa8, 0x11, 0xe9, 0x3d, 0xa5, 0x00, 0xef, 0xd5, 0xa5, 0x80, - 0x04, 0xf5, 0xae, 0xa5, 0x40, 0xef, 0x89, 0xa5, 0x40, 0xe1, 0x65, 0xa5, - 0x00, 0xe5, 0xfe, 0xa5, 0x80, 0x11, 0xe9, 0x3e, 0xa5, 0x00, 0xef, 0xd6, - 0xa5, 0x80, 0x04, 0xf5, 0xaf, 0xa5, 0x40, 0xef, 0x8a, 0xa5, 0x40, 0xe5, - 0x19, 0xa5, 0x40, 0xe5, 0x18, 0xa5, 0x40, 0xe1, 0x69, 0xa5, 0x00, 0xe5, - 0x02, 0xa6, 0x80, 0x11, 0xe9, 0x42, 0xa5, 0x00, 0xef, 0xda, 0xa5, 0x80, - 0x04, 0xf5, 0xb3, 0xa5, 0x40, 0xef, 0x8e, 0xa5, 0x40, 0xe5, 0x1d, 0xa5, - 0x40, 0xe1, 0x4e, 0xa5, 0x80, 0x36, 0xe5, 0xe6, 0xa5, 0x80, 0x24, 0xe9, - 0x28, 0xa5, 0x80, 0x1b, 0xef, 0xbf, 0xa5, 0x80, 0x09, 0xf5, 0x99, 0xa5, - 0xc0, 0x00, 0xee, 0x9a, 0xa5, 0x40, 0xee, 0xc0, 0xa5, 0x00, 0xef, 0x74, - 0xa5, 0xc0, 0x00, 0xee, 0x75, 0xa5, 0x40, 0xee, 0x29, 0xa5, 0x40, 0xe5, - 0x03, 0xa5, 0x80, 0x04, 0xee, 0xe7, 0xa5, 0x40, 0xee, 0x04, 0xa5, 0x40, - 0xee, 0x4f, 0xa5, 0x40, 0xe1, 0x59, 0xa5, 0x00, 0xe5, 0xf2, 0xa5, 0x80, - 0x11, 0xe9, 0x32, 0xa5, 0x00, 0xef, 0xca, 0xa5, 0x80, 0x04, 0xf5, 0xa3, - 0xa5, 0x40, 0xef, 0x7e, 0xa5, 0x40, 0xe5, 0x0d, 0xa5, 0x40, 0xee, 0x96, - 0xa5, 0x40, 0xe1, 0x5a, 0xa5, 0x00, 0xe5, 0xf3, 0xa5, 0x80, 0x31, 0xa8, - 0x11, 0xe9, 0x33, 0xa5, 0x00, 0xef, 0xcb, 0xa5, 0x80, 0x04, 0xf5, 0xa4, - 0xa5, 0x40, 0xef, 0x7f, 0xa5, 0x40, 0xe1, 0x5b, 0xa5, 0x00, 0xe5, 0xf4, - 0xa5, 0x80, 0x11, 0xe9, 0x34, 0xa5, 0x00, 0xef, 0xcc, 0xa5, 0x80, 0x04, - 0xf5, 0xa5, 0xa5, 0x40, 0xef, 0x80, 0xa5, 0x40, 0xe5, 0x0f, 0xa5, 0x40, - 0xe5, 0x0e, 0xa5, 0x40, 0xe1, 0x62, 0xa5, 0x00, 0xe5, 0xfb, 0xa5, 0x80, - 0x31, 0xa8, 0x11, 0xe9, 0x3b, 0xa5, 0x00, 0xef, 0xd3, 0xa5, 0x80, 0x04, - 0xf5, 0xac, 0xa5, 0x40, 0xef, 0x87, 0xa5, 0x40, 0xe1, 0x63, 0xa5, 0x00, - 0xe5, 0xfc, 0xa5, 0x80, 0x11, 0xe9, 0x3c, 0xa5, 0x00, 0xef, 0xd4, 0xa5, - 0x80, 0x04, 0xf5, 0xad, 0xa5, 0x40, 0xef, 0x88, 0xa5, 0x40, 0xe5, 0x17, - 0xa5, 0x40, 0xe5, 0x16, 0xa5, 0x40, 0xe1, 0x5f, 0xa5, 0x00, 0xe5, 0xf8, - 0xa5, 0x80, 0x11, 0xe9, 0x38, 0xa5, 0x00, 0xef, 0xd0, 0xa5, 0x80, 0x04, - 0xf5, 0xa9, 0xa5, 0x40, 0xef, 0x84, 0xa5, 0x40, 0xe5, 0x13, 0xa5, 0x40, - 0xe1, 0x50, 0xa5, 0x00, 0xe5, 0xe8, 0xa5, 0x80, 0x11, 0xe9, 0x2a, 0xa5, - 0x00, 0xef, 0xc1, 0xa5, 0x80, 0x04, 0xf5, 0x9b, 0xa5, 0x40, 0xef, 0x76, - 0xa5, 0x40, 0xe5, 0x05, 0xa5, 0x40, 0xee, 0xbb, 0xa5, 0x00, 0xef, 0x71, - 0xa5, 0xc0, 0x00, 0xee, 0x72, 0xa5, 0x40, 0xe1, 0x6f, 0xa5, 0x00, 0xa4, - 0x97, 0x01, 0xe5, 0x09, 0xa6, 0x80, 0x8d, 0x01, 0xe7, 0x0b, 0xa6, 0x80, - 0x52, 0xe9, 0x47, 0xa5, 0x00, 0xaa, 0x2e, 0xef, 0xdf, 0xa5, 0x80, 0x25, - 0xf5, 0xb8, 0xa5, 0x00, 0xb9, 0x01, 0xff, 0xe1, 0x70, 0xa5, 0x00, 0xe5, - 0x0a, 0xa6, 0x80, 0x11, 0xe9, 0x48, 0xa5, 0x00, 0xef, 0xe0, 0xa5, 0x80, - 0x04, 0xf5, 0xb9, 0xa5, 0x40, 0xef, 0x94, 0xa5, 0x40, 0xe5, 0x23, 0xa5, - 0x40, 0xef, 0x93, 0xa5, 0x40, 0xe1, 0x68, 0xa5, 0x00, 0xe5, 0x01, 0xa6, - 0x80, 0x11, 0xe9, 0x41, 0xa5, 0x00, 0xef, 0xd9, 0xa5, 0x80, 0x04, 0xf5, - 0xb2, 0xa5, 0x40, 0xef, 0x8d, 0xa5, 0x40, 0xe5, 0x1c, 0xa5, 0x40, 0x42, - 0x1a, 0x00, 0x4b, 0xa5, 0x00, 0x42, 0x92, 0x01, 0xe3, 0xa5, 0x00, 0xa7, - 0x06, 0x42, 0x10, 0x00, 0xbc, 0xa5, 0x40, 0xe1, 0x6c, 0xa5, 0x00, 0xe5, - 0x04, 0xa6, 0x80, 0x11, 0xe9, 0x44, 0xa5, 0x00, 0xef, 0xdc, 0xa5, 0x80, - 0x04, 0xf5, 0xb5, 0xa5, 0x40, 0xef, 0x90, 0xa5, 0x40, 0xe5, 0x1f, 0xa5, - 0x00, 0xee, 0x05, 0xa6, 0x40, 0xe5, 0x22, 0xa5, 0x40, 0xe1, 0x61, 0xa5, - 0x00, 0xe5, 0xfa, 0xa5, 0x80, 0x33, 0xe9, 0x3a, 0xa5, 0x00, 0xef, 0xd2, - 0xa5, 0x80, 0x04, 0xf5, 0xab, 0xa5, 0x40, 0x03, 0x3f, 0x01, 0x04, 0xef, - 0x86, 0xa5, 0x40, 0x42, 0x3b, 0x01, 0x2b, 0xa6, 0x00, 0x42, 0xe1, 0x07, - 0x10, 0xa6, 0x00, 0x42, 0x1b, 0x02, 0x11, 0xa6, 0x00, 0x42, 0x6c, 0x00, - 0x2a, 0xa6, 0x00, 0x43, 0xe1, 0x20, 0x12, 0xa6, 0x40, 0xe5, 0x15, 0xa5, - 0x40, 0xe1, 0x6e, 0xa5, 0x00, 0xa2, 0x3c, 0xe5, 0x08, 0xa6, 0x80, 0x33, - 0x02, 0x50, 0x47, 0x11, 0xe9, 0x46, 0xa5, 0x00, 0xef, 0xde, 0xa5, 0x80, - 0x04, 0xf5, 0xb7, 0xa5, 0x40, 0xef, 0x92, 0xa5, 0x40, 0xe1, 0x56, 0xa5, - 0x00, 0xe5, 0xee, 0xa5, 0x80, 0x11, 0xe9, 0x2f, 0xa5, 0x00, 0xef, 0xc6, - 0xa5, 0x80, 0x04, 0xf5, 0xa0, 0xa5, 0x40, 0xef, 0x7b, 0xa5, 0x40, 0xe5, - 0x0a, 0xa5, 0x40, 0xe5, 0x21, 0xa5, 0x40, 0xe1, 0x53, 0xa5, 0x00, 0xe5, - 0xeb, 0xa5, 0x80, 0x11, 0xe9, 0x2d, 0xa5, 0x00, 0xef, 0xc4, 0xa5, 0x80, - 0x04, 0xf5, 0x9e, 0xa5, 0x40, 0xef, 0x79, 0xa5, 0x40, 0xe5, 0x08, 0xa5, - 0x40, 0xe1, 0x5e, 0xa5, 0x00, 0xe5, 0xf7, 0xa5, 0x80, 0x11, 0xe9, 0x37, - 0xa5, 0x00, 0xef, 0xcf, 0xa5, 0x80, 0x04, 0xf5, 0xa8, 0xa5, 0x40, 0xef, - 0x83, 0xa5, 0x40, 0xe5, 0x12, 0xa5, 0x00, 0x48, 0x8c, 0x55, 0x0c, 0xa6, - 0x40, 0xe1, 0x6a, 0xa5, 0x80, 0x43, 0xe5, 0x03, 0xa6, 0x80, 0x3a, 0xe9, - 0x43, 0xa5, 0x00, 0xef, 0xdb, 0xa5, 0x80, 0x2d, 0xb0, 0x04, 0xf5, 0xb4, - 0xa5, 0x40, 0xe1, 0x54, 0xa5, 0x80, 0x1e, 0xe5, 0xec, 0xa5, 0x80, 0x11, - 0xe9, 0x2e, 0xa5, 0x00, 0xef, 0xc5, 0xa5, 0x80, 0x04, 0xf5, 0x9f, 0xa5, - 0x40, 0xef, 0x7a, 0xa5, 0x40, 0xe5, 0x09, 0xa5, 0x00, 0xee, 0xed, 0xa5, - 0x40, 0xee, 0x55, 0xa5, 0x40, 0xef, 0x8f, 0xa5, 0x40, 0xe5, 0x1e, 0xa5, - 0x40, 0xee, 0x6b, 0xa5, 0x40, 0xe1, 0x67, 0xa5, 0x00, 0xe5, 0x00, 0xa6, - 0x80, 0x11, 0xe9, 0x40, 0xa5, 0x00, 0xef, 0xd8, 0xa5, 0x80, 0x04, 0xf5, - 0xb1, 0xa5, 0x40, 0xef, 0x8c, 0xa5, 0x40, 0xe5, 0x1b, 0xa5, 0x40, 0xee, - 0x25, 0xa5, 0x40, 0xe1, 0x4c, 0xa5, 0x80, 0x2c, 0xe5, 0xe4, 0xa5, 0x80, - 0x1f, 0xe9, 0x26, 0xa5, 0x80, 0x16, 0xef, 0xbd, 0xa5, 0x80, 0x09, 0xf5, - 0x97, 0xa5, 0xc0, 0x00, 0xee, 0x98, 0xa5, 0x40, 0xee, 0xbe, 0xa5, 0x00, - 0xef, 0x73, 0xa5, 0x40, 0xee, 0x27, 0xa5, 0x40, 0xe5, 0x02, 0xa5, 0x00, - 0xee, 0xe5, 0xa5, 0x40, 0xee, 0x4d, 0xa5, 0x40, 0xe1, 0x6d, 0xa5, 0x00, - 0xa2, 0x1e, 0xe5, 0x06, 0xa6, 0x80, 0x11, 0xe9, 0x45, 0xa5, 0x00, 0xef, - 0xdd, 0xa5, 0x80, 0x04, 0xf5, 0xb6, 0xa5, 0x40, 0xef, 0x91, 0xa5, 0x40, - 0xe5, 0x20, 0xa5, 0x00, 0xee, 0x07, 0xa6, 0x40, 0xe1, 0x57, 0xa5, 0x00, - 0xe5, 0xef, 0xa5, 0x80, 0x15, 0xe9, 0x30, 0xa5, 0x00, 0xef, 0xc7, 0xa5, - 0x80, 0x04, 0xf5, 0xa1, 0xa5, 0x40, 0xee, 0xc8, 0xa5, 0x00, 0xef, 0x7c, - 0xa5, 0x40, 0xe5, 0x0b, 0xa5, 0x00, 0xee, 0xf0, 0xa5, 0x40, 0xe1, 0x58, - 0xa5, 0x00, 0xe5, 0xf1, 0xa5, 0x80, 0x11, 0xe9, 0x31, 0xa5, 0x00, 0xef, - 0xc9, 0xa5, 0x80, 0x04, 0xf5, 0xa2, 0xa5, 0x40, 0xef, 0x7d, 0xa5, 0x40, - 0xe5, 0x0c, 0xa5, 0x40, 0xe5, 0x00, 0xa5, 0x80, 0x04, 0xee, 0xe2, 0xa5, - 0x40, 0xee, 0x01, 0xa5, 0x40, 0xe1, 0x60, 0xa5, 0x00, 0xe5, 0xf9, 0xa5, - 0x80, 0x51, 0xa8, 0x11, 0xe9, 0x39, 0xa5, 0x00, 0xef, 0xd1, 0xa5, 0x80, - 0x04, 0xf5, 0xaa, 0xa5, 0x40, 0xef, 0x85, 0xa5, 0x40, 0xe1, 0x5c, 0xa5, - 0x00, 0xe5, 0xf5, 0xa5, 0x80, 0x31, 0xa8, 0x11, 0xe9, 0x35, 0xa5, 0x00, - 0xef, 0xcd, 0xa5, 0x80, 0x04, 0xf5, 0xa6, 0xa5, 0x40, 0xef, 0x81, 0xa5, - 0x40, 0xe1, 0x5d, 0xa5, 0x00, 0xe5, 0xf6, 0xa5, 0x80, 0x11, 0xe9, 0x36, - 0xa5, 0x00, 0xef, 0xce, 0xa5, 0x80, 0x04, 0xf5, 0xa7, 0xa5, 0x40, 0xef, - 0x82, 0xa5, 0x40, 0xe5, 0x11, 0xa5, 0x40, 0xe5, 0x10, 0xa5, 0x40, 0xe5, - 0x14, 0xa5, 0x40, 0xe1, 0x66, 0xa5, 0x00, 0xe5, 0xff, 0xa5, 0x80, 0x11, - 0xe9, 0x3f, 0xa5, 0x00, 0xef, 0xd7, 0xa5, 0x80, 0x04, 0xf5, 0xb0, 0xa5, - 0x40, 0xef, 0x8b, 0xa5, 0x40, 0xe5, 0x1a, 0xa5, 0x40, 0xe1, 0x52, 0xa5, - 0x00, 0xe5, 0xea, 0xa5, 0x80, 0x31, 0xa8, 0x11, 0xe9, 0x2c, 0xa5, 0x00, - 0xef, 0xc3, 0xa5, 0x80, 0x04, 0xf5, 0x9d, 0xa5, 0x40, 0xef, 0x78, 0xa5, - 0x40, 0xe1, 0x51, 0xa5, 0x00, 0xe5, 0xe9, 0xa5, 0x80, 0x11, 0xe9, 0x2b, - 0xa5, 0x00, 0xef, 0xc2, 0xa5, 0x80, 0x04, 0xf5, 0x9c, 0xa5, 0x40, 0xef, - 0x77, 0xa5, 0x40, 0xe5, 0x06, 0xa5, 0x40, 0xe5, 0x07, 0xa5, 0x40, 0xee, - 0x4a, 0xa5, 0x40, 0x45, 0xc3, 0x0a, 0x28, 0xa6, 0x00, 0xa6, 0x2e, 0x44, - 0x46, 0x2a, 0x29, 0xa6, 0x00, 0x43, 0xbf, 0x0a, 0x21, 0xa6, 0x00, 0xb3, - 0x14, 0xb4, 0x06, 0x44, 0xa1, 0x1d, 0x20, 0xa6, 0x40, 0x44, 0x25, 0x01, - 0x23, 0xa6, 0x00, 0x42, 0x15, 0x02, 0x22, 0xa6, 0x40, 0x44, 0x27, 0x1d, - 0x27, 0xa6, 0x00, 0x42, 0x60, 0x25, 0x26, 0xa6, 0x40, 0x43, 0xa7, 0x05, - 0x25, 0xa6, 0x00, 0x43, 0xcb, 0x06, 0x24, 0xa6, 0x40, 0x08, 0xc2, 0xc3, - 0xd2, 0x0d, 0x47, 0xe3, 0x5f, 0x02, 0x26, 0x80, 0xbb, 0x0d, 0xae, 0xc5, - 0x0c, 0xb0, 0x06, 0x45, 0xdd, 0x20, 0x45, 0x26, 0x40, 0x80, 0xad, 0x0b, - 0x8d, 0xb4, 0x0a, 0x04, 0x6f, 0x02, 0xff, 0x03, 0x4e, 0xd6, 0x7a, 0x43, - 0xf6, 0x01, 0x06, 0xa9, 0x01, 0x01, 0xff, 0xa1, 0xff, 0x02, 0x06, 0xe1, - 0x02, 0xee, 0x02, 0x50, 0x0a, 0x60, 0x3d, 0xf8, 0x01, 0xa4, 0xd9, 0x02, - 0x51, 0x91, 0x58, 0x35, 0xf8, 0x01, 0xa8, 0xfa, 0x01, 0x4d, 0xa7, 0x85, - 0xc8, 0x21, 0x00, 0x4f, 0x72, 0x70, 0xf0, 0x27, 0x00, 0x46, 0xa0, 0xdc, - 0x6d, 0xf6, 0x01, 0xb3, 0xd9, 0x01, 0xb4, 0x47, 0x06, 0xad, 0x02, 0x01, - 0xff, 0x45, 0xce, 0x00, 0xe7, 0x21, 0x80, 0x0d, 0x4c, 0x71, 0x8c, 0xee, - 0x21, 0xc0, 0x00, 0x4c, 0x89, 0x89, 0xef, 0x21, 0x40, 0x80, 0x01, 0xff, - 0x48, 0xfd, 0xb1, 0xea, 0x21, 0x80, 0x1e, 0x4b, 0x8a, 0x89, 0xeb, 0x21, - 0x80, 0x06, 0x59, 0x25, 0x1e, 0x95, 0xf8, 0x41, 0x06, 0x50, 0x00, 0x01, - 0xff, 0x4e, 0x0b, 0x00, 0xec, 0x21, 0x00, 0x4c, 0x32, 0x00, 0xed, 0x21, - 0x40, 0x54, 0xf3, 0x3e, 0xb8, 0x2b, 0x40, 0x02, 0x0d, 0x00, 0x1c, 0x02, - 0x15, 0x02, 0x01, 0xff, 0x4d, 0x16, 0x7e, 0x9f, 0x21, 0x00, 0x0e, 0xf0, - 0x05, 0x01, 0xff, 0x51, 0xc4, 0x58, 0x49, 0x29, 0x00, 0x58, 0xfe, 0x05, - 0xed, 0x2b, 0x40, 0x05, 0x04, 0x02, 0x06, 0x49, 0x78, 0x70, 0x0a, 0x29, - 0x40, 0x4a, 0xe0, 0x01, 0x91, 0xf8, 0x01, 0x08, 0x09, 0x02, 0x01, 0xff, - 0x45, 0xce, 0x00, 0x61, 0x2b, 0x80, 0x0c, 0x4c, 0x05, 0x8c, 0x6b, 0x2b, - 0x00, 0x4d, 0xa7, 0x85, 0x85, 0x2b, 0x40, 0x80, 0x01, 0xff, 0x6c, 0xea, - 0x01, 0x81, 0x2b, 0x00, 0x46, 0x82, 0x14, 0x71, 0x2b, 0x00, 0x05, 0x51, - 0x00, 0x01, 0xff, 0x4a, 0x17, 0xa6, 0x29, 0xf8, 0x01, 0x58, 0x85, 0x27, - 0x7b, 0x2b, 0x00, 0x4b, 0xef, 0x66, 0x2d, 0xf8, 0x01, 0x09, 0x4c, 0xb9, - 0x12, 0x4c, 0x3d, 0x90, 0x25, 0xf8, 0x01, 0x4c, 0xa9, 0x90, 0x21, 0xf8, - 0x01, 0x50, 0xea, 0x66, 0x31, 0xf8, 0x41, 0x49, 0xea, 0x01, 0xa2, 0x2b, - 0x00, 0x4a, 0xb3, 0x02, 0xa3, 0x2b, 0x40, 0x4f, 0x6b, 0x65, 0x51, 0xf8, - 0x01, 0x4c, 0x29, 0x92, 0x39, 0xf8, 0x41, 0x11, 0x66, 0x05, 0x11, 0x05, - 0x02, 0x15, 0x01, 0xff, 0x45, 0xce, 0x00, 0x45, 0xf8, 0x01, 0x50, 0x0a, - 0x60, 0x41, 0xf8, 0x41, 0x04, 0xc3, 0x00, 0x19, 0x05, 0xc8, 0x00, 0x01, - 0xff, 0x80, 0x06, 0x45, 0xa9, 0x01, 0xbe, 0x21, 0x40, 0x48, 0xfd, 0xb1, - 0x5c, 0x29, 0x00, 0x46, 0x82, 0x14, 0x54, 0x29, 0x40, 0x80, 0x06, 0x45, - 0xa9, 0x01, 0xbf, 0x21, 0x40, 0x07, 0x43, 0x0a, 0x0c, 0x48, 0xfd, 0xb1, - 0x60, 0x29, 0x00, 0x46, 0x82, 0x14, 0x58, 0x29, 0x40, 0x61, 0x7a, 0x0d, - 0x6e, 0x29, 0x00, 0x5f, 0xb9, 0x11, 0x63, 0x29, 0x40, 0x4b, 0x06, 0x8c, - 0xe1, 0x21, 0x00, 0x4b, 0x72, 0x8c, 0xd1, 0x21, 0x40, 0x45, 0xce, 0x00, - 0x06, 0x2b, 0x00, 0x53, 0x8a, 0x47, 0x89, 0x2b, 0x40, 0x45, 0xd9, 0xe5, - 0x15, 0x2e, 0x00, 0x44, 0xcf, 0x00, 0x91, 0x21, 0xc0, 0x00, 0x80, 0x01, - 0xff, 0x5a, 0x8c, 0x1e, 0xb8, 0xfb, 0x01, 0x48, 0xfd, 0xb1, 0xa5, 0x21, - 0x00, 0x5c, 0xe2, 0x17, 0xc5, 0x21, 0x00, 0x46, 0x82, 0x14, 0x12, 0x29, - 0x00, 0x05, 0x51, 0x00, 0x01, 0xff, 0x4d, 0xa0, 0x80, 0xde, 0x21, 0x00, - 0x55, 0xd5, 0x01, 0x15, 0xf8, 0x01, 0x51, 0x1c, 0x05, 0x09, 0x29, 0x00, - 0x58, 0xd5, 0x28, 0x09, 0xf8, 0x01, 0x59, 0x5b, 0x24, 0x05, 0xf8, 0x01, - 0x4c, 0x21, 0x91, 0x99, 0xf8, 0x01, 0x06, 0x0c, 0x07, 0x11, 0x04, 0xfa, - 0x0b, 0x01, 0xff, 0x49, 0xea, 0x01, 0xb0, 0x21, 0x00, 0x4a, 0xb3, 0x02, - 0xb1, 0x21, 0x40, 0x55, 0xd5, 0x01, 0x11, 0xf8, 0x01, 0x52, 0x03, 0x06, - 0x01, 0xf8, 0x41, 0x04, 0x1a, 0x00, 0x8c, 0x06, 0x4e, 0xc4, 0x74, 0x01, - 0x27, 0x00, 0x07, 0x73, 0x02, 0xda, 0x05, 0x52, 0x60, 0x50, 0x84, 0xfb, - 0x01, 0x05, 0x22, 0x00, 0x8e, 0x05, 0x05, 0xc3, 0x00, 0x8c, 0x03, 0x07, - 0x7d, 0x02, 0xd6, 0x02, 0x04, 0xbf, 0x0a, 0xc5, 0x02, 0x06, 0xc8, 0x00, - 0x30, 0x53, 0xb2, 0x4b, 0x86, 0xfb, 0x01, 0xb4, 0x01, 0xff, 0x05, 0x25, - 0x01, 0x06, 0x5b, 0x93, 0x1c, 0x6d, 0xfb, 0x41, 0x4d, 0xb8, 0x4b, 0x83, - 0xfb, 0x01, 0x09, 0x2a, 0x01, 0x01, 0xff, 0x45, 0x33, 0x01, 0x85, 0xfb, - 0x01, 0x56, 0x67, 0x34, 0xa6, 0xce, 0x01, 0x57, 0xf6, 0x2f, 0xad, 0xce, - 0x41, 0x0f, 0xd3, 0x69, 0xac, 0x01, 0x5a, 0x42, 0x1f, 0x50, 0x27, 0x00, - 0xaf, 0x97, 0x01, 0x46, 0x16, 0xdc, 0x10, 0x27, 0x00, 0x03, 0x7c, 0x00, - 0x2f, 0x0f, 0xa4, 0x02, 0x1f, 0xb4, 0x01, 0xff, 0x51, 0x75, 0x54, 0x99, - 0xfb, 0x01, 0x05, 0x1a, 0x01, 0x06, 0x4d, 0x19, 0x7c, 0x33, 0xcc, 0x41, - 0x42, 0x68, 0x00, 0xf9, 0x25, 0x00, 0x51, 0x37, 0x5d, 0x9d, 0xfb, 0x41, - 0x46, 0xe7, 0x02, 0x3f, 0xf5, 0x01, 0x46, 0xab, 0x05, 0x52, 0x27, 0x40, - 0x06, 0x2d, 0x0d, 0x06, 0x4b, 0x47, 0x4b, 0x36, 0xcc, 0x41, 0xa3, 0x22, - 0x0a, 0xe1, 0x07, 0x12, 0x4d, 0x2e, 0x84, 0xb7, 0xcc, 0x01, 0x4f, 0xcb, - 0x71, 0xd3, 0xcc, 0x01, 0x4a, 0x59, 0xaf, 0xb3, 0xcc, 0x41, 0x4b, 0x0b, - 0x23, 0xa9, 0xcc, 0x01, 0x49, 0xf3, 0xba, 0xa7, 0xcc, 0x41, 0x05, 0x8e, - 0x86, 0x06, 0x4b, 0x89, 0x9b, 0xdd, 0x25, 0x40, 0x46, 0x48, 0xd7, 0xc7, - 0xcc, 0x01, 0xab, 0x12, 0x44, 0xb6, 0xee, 0xcf, 0xcc, 0x01, 0x45, 0xe6, - 0xbb, 0xbf, 0xcc, 0x01, 0x44, 0x0a, 0xef, 0xc3, 0xcc, 0x41, 0x43, 0xa1, - 0x01, 0xbb, 0xcc, 0x01, 0x45, 0xd5, 0x71, 0xcb, 0xcc, 0x41, 0x52, 0x5c, - 0x25, 0x93, 0xce, 0x01, 0x62, 0xb1, 0x0c, 0xb1, 0x23, 0x40, 0x1b, 0xf1, - 0x1b, 0x50, 0x06, 0x6d, 0x02, 0x01, 0xff, 0x0a, 0x73, 0x02, 0x31, 0x08, - 0x84, 0x02, 0x17, 0x15, 0x7d, 0x02, 0x01, 0xff, 0x46, 0x73, 0x02, 0x54, - 0xfb, 0x01, 0x4c, 0x09, 0x0f, 0x67, 0xfb, 0x01, 0x45, 0xc8, 0x00, 0x55, - 0xfb, 0x41, 0x06, 0x13, 0x01, 0x06, 0x52, 0xf2, 0x54, 0x63, 0xfb, 0x41, - 0x46, 0x73, 0x02, 0x56, 0xfb, 0x01, 0x4c, 0x09, 0x0f, 0x65, 0xfb, 0x41, - 0x06, 0x13, 0x01, 0x06, 0x52, 0xf2, 0x54, 0x62, 0xfb, 0x41, 0x4c, 0x09, - 0x0f, 0x64, 0xfb, 0x01, 0x45, 0xc8, 0x00, 0x66, 0xfb, 0x41, 0x46, 0x73, - 0x02, 0x52, 0xfb, 0x01, 0x45, 0xc8, 0x00, 0x53, 0xfb, 0x41, 0x4c, 0xc3, - 0x0a, 0x94, 0x25, 0x00, 0x4d, 0xa1, 0x1c, 0x82, 0xfb, 0x41, 0x07, 0x73, - 0x02, 0x21, 0x05, 0xc3, 0x00, 0x11, 0x06, 0xc8, 0x00, 0x01, 0xff, 0x53, - 0x5b, 0x25, 0x97, 0xce, 0x01, 0x4e, 0x18, 0x7c, 0x37, 0xcc, 0x41, 0x53, - 0x5b, 0x25, 0x94, 0xce, 0x01, 0x4e, 0x18, 0x7c, 0x34, 0xcc, 0x41, 0x58, - 0x05, 0x29, 0x95, 0xce, 0x01, 0x59, 0x55, 0x25, 0x96, 0xce, 0x41, 0x0f, - 0xd3, 0x69, 0x96, 0x01, 0x4f, 0x3c, 0x6a, 0xd4, 0x27, 0x00, 0xaf, 0x81, - 0x01, 0x03, 0x7c, 0x00, 0x1f, 0xb4, 0x01, 0xff, 0x52, 0x5e, 0x4c, 0x98, - 0xfb, 0x01, 0x05, 0x1a, 0x01, 0x06, 0x4d, 0x19, 0x7c, 0x30, 0xcc, 0x41, - 0x42, 0x68, 0x00, 0xf8, 0x25, 0x00, 0x51, 0x37, 0x5d, 0x9c, 0xfb, 0x41, - 0x06, 0x2d, 0x0d, 0x06, 0x4b, 0x47, 0x4b, 0x35, 0xcc, 0x41, 0xa3, 0x22, - 0x0a, 0xe1, 0x07, 0x12, 0x4d, 0x2e, 0x84, 0xb6, 0xcc, 0x01, 0x4f, 0xcb, - 0x71, 0xd2, 0xcc, 0x01, 0x4a, 0x59, 0xaf, 0xb2, 0xcc, 0x41, 0x4b, 0x0b, - 0x23, 0xa8, 0xcc, 0x01, 0x49, 0xf3, 0xba, 0xa6, 0xcc, 0x41, 0x05, 0x8e, - 0x86, 0x06, 0x4b, 0x89, 0x9b, 0xdc, 0x25, 0x40, 0x46, 0x48, 0xd7, 0xc6, - 0xcc, 0x01, 0xab, 0x12, 0x44, 0xb6, 0xee, 0xce, 0xcc, 0x01, 0x45, 0xe6, - 0xbb, 0xbe, 0xcc, 0x01, 0x44, 0x0a, 0xef, 0xc2, 0xcc, 0x41, 0x43, 0xa1, - 0x01, 0xba, 0xcc, 0x01, 0x45, 0xd5, 0x71, 0xca, 0xcc, 0x41, 0x52, 0x5c, - 0x25, 0x90, 0xce, 0x01, 0x63, 0x15, 0x0b, 0xb0, 0x23, 0x40, 0x06, 0x13, - 0x01, 0x11, 0x1b, 0x50, 0x1d, 0x01, 0xff, 0x46, 0x73, 0x02, 0x57, 0xfb, - 0x01, 0x45, 0xc8, 0x00, 0x58, 0xfb, 0x41, 0x0a, 0x73, 0x02, 0x32, 0x08, - 0x84, 0x02, 0x17, 0x15, 0x56, 0x1d, 0x01, 0xff, 0x46, 0x73, 0x02, 0x59, - 0xfb, 0x01, 0x4c, 0x09, 0x0f, 0x5c, 0xfb, 0x01, 0x45, 0xc8, 0x00, 0x5a, - 0xfb, 0x41, 0x52, 0x46, 0x52, 0x5e, 0xfb, 0x01, 0x06, 0x6d, 0x02, 0x01, - 0xff, 0x46, 0x73, 0x02, 0x5b, 0xfb, 0x01, 0x4c, 0x09, 0x0f, 0x60, 0xfb, - 0x41, 0x52, 0x46, 0x52, 0x5d, 0xfb, 0x01, 0x06, 0x6d, 0x02, 0x01, 0xff, - 0x4c, 0x09, 0x0f, 0x5f, 0xfb, 0x01, 0x45, 0xc8, 0x00, 0x61, 0xfb, 0x41, - 0x45, 0x33, 0x01, 0x80, 0x25, 0x80, 0x34, 0x46, 0xe7, 0x02, 0xe0, 0x25, - 0x00, 0x52, 0xde, 0x50, 0x03, 0xce, 0x01, 0x08, 0x11, 0x04, 0x18, 0x56, - 0x67, 0x34, 0xa7, 0xce, 0x01, 0x4c, 0x19, 0x04, 0x8e, 0xfb, 0x01, 0x57, - 0xf6, 0x2f, 0xac, 0xce, 0x01, 0x63, 0x7e, 0x0b, 0x14, 0xce, 0x41, 0x61, - 0xfe, 0x0d, 0x92, 0xfb, 0x01, 0x4c, 0xe3, 0x10, 0xda, 0x25, 0x40, 0x64, - 0x70, 0x08, 0x91, 0xfb, 0x41, 0x05, 0xc3, 0x00, 0x17, 0x51, 0x9d, 0x1c, - 0xe4, 0xfb, 0x01, 0x06, 0xc8, 0x00, 0x01, 0xff, 0x53, 0x5b, 0x25, 0x92, - 0xce, 0x01, 0x4e, 0x18, 0x7c, 0x32, 0xcc, 0x41, 0x53, 0x5b, 0x25, 0x91, - 0xce, 0x01, 0x4e, 0x18, 0x7c, 0x31, 0xcc, 0x41, 0xac, 0x06, 0x6f, 0x09, - 0x01, 0x68, 0xfb, 0x41, 0x6d, 0x65, 0x01, 0x6a, 0xfb, 0x01, 0x05, 0x14, - 0x01, 0x01, 0xff, 0x50, 0xbf, 0x0a, 0x80, 0xfb, 0x01, 0x55, 0xbd, 0x3d, - 0x9a, 0xfb, 0x41, 0x17, 0xa0, 0x2d, 0x66, 0x09, 0x9c, 0x01, 0x01, 0xff, - 0xa1, 0x53, 0x4b, 0x8f, 0x99, 0x79, 0xcc, 0x01, 0x44, 0x9a, 0xec, 0xfb, - 0xcd, 0x01, 0x47, 0x7b, 0xce, 0x00, 0xcc, 0x01, 0x51, 0xe4, 0x5a, 0xe6, - 0xf6, 0x01, 0xb2, 0x21, 0x06, 0x0c, 0x07, 0x11, 0x0e, 0xfc, 0x7b, 0x01, - 0xff, 0x4f, 0xcf, 0x6d, 0xed, 0x25, 0x00, 0x50, 0x3a, 0x65, 0xee, 0x25, - 0x40, 0x48, 0x41, 0x33, 0xe8, 0xf6, 0x01, 0x4c, 0x83, 0x5a, 0x3c, 0xf5, - 0x41, 0x49, 0x40, 0xb3, 0x98, 0xcc, 0x01, 0x4b, 0x65, 0x06, 0x3a, 0xf5, - 0x01, 0x44, 0x75, 0xaa, 0x66, 0xcc, 0x01, 0x4a, 0x4d, 0xac, 0x57, 0xcc, - 0x41, 0x47, 0x42, 0x33, 0xe7, 0xf6, 0x01, 0x4a, 0xb3, 0xaf, 0x61, 0xcc, - 0x41, 0x4c, 0xbd, 0x8b, 0x75, 0xcc, 0x01, 0x4a, 0x9b, 0x28, 0x71, 0xcc, - 0x41, 0x05, 0xce, 0x00, 0x6d, 0x05, 0x72, 0x05, 0x48, 0x05, 0x4f, 0x14, - 0x19, 0x49, 0xa9, 0xb6, 0x7e, 0x29, 0x00, 0x57, 0xc8, 0x2f, 0xf0, 0x22, - 0x00, 0x44, 0x25, 0x38, 0xa5, 0x22, 0xc0, 0x00, 0x52, 0x56, 0x4e, 0xdf, - 0x27, 0x40, 0x45, 0xce, 0x00, 0x95, 0x21, 0x80, 0x1e, 0x4b, 0x95, 0x97, - 0x0d, 0x2b, 0x00, 0x4c, 0x71, 0x8c, 0xd5, 0x21, 0x00, 0x50, 0x6a, 0x65, - 0x59, 0xf8, 0x01, 0x55, 0x01, 0x02, 0x65, 0x2b, 0x00, 0x4b, 0xfa, 0x0f, - 0xf3, 0x21, 0x40, 0x4a, 0x0f, 0xa4, 0xa8, 0x21, 0x40, 0x0f, 0xb1, 0x6d, - 0x11, 0x10, 0x1a, 0x65, 0x01, 0xff, 0x4c, 0x4d, 0x8f, 0x4c, 0x29, 0x00, - 0x4d, 0x0f, 0x86, 0x4f, 0x29, 0x40, 0x4c, 0x4d, 0x8f, 0x51, 0x29, 0x00, - 0x4d, 0x0f, 0x86, 0x4d, 0x29, 0x40, 0x4f, 0x2f, 0x68, 0xbd, 0x29, 0x00, - 0x44, 0xe6, 0x01, 0x03, 0x23, 0xc0, 0x00, 0x80, 0x01, 0xff, 0x5b, 0xd5, - 0x19, 0x24, 0x23, 0x00, 0x52, 0x35, 0x46, 0xb9, 0x2b, 0x40, 0x4b, 0x06, - 0x97, 0x12, 0xf6, 0x01, 0x4e, 0xee, 0x74, 0xd1, 0x2b, 0x00, 0xa4, 0x59, - 0xa9, 0x06, 0x5a, 0x60, 0x20, 0xaf, 0x26, 0x40, 0x49, 0x14, 0xb5, 0x84, - 0xf9, 0x01, 0x42, 0x10, 0x00, 0x2a, 0x22, 0x80, 0x14, 0xb4, 0x06, 0x57, - 0x8f, 0x24, 0x72, 0x26, 0x40, 0x4a, 0x35, 0x20, 0x1f, 0x00, 0x00, 0x49, - 0xc0, 0x75, 0xfa, 0x2b, 0x40, 0x80, 0x01, 0xff, 0x06, 0x5c, 0x00, 0x1d, - 0x5c, 0xca, 0x16, 0x4a, 0x2a, 0x00, 0x05, 0x51, 0x00, 0x01, 0xff, 0x4a, - 0xe5, 0xaa, 0x45, 0x2a, 0x00, 0x4a, 0x6d, 0x96, 0x41, 0x2a, 0x00, 0x47, - 0x77, 0x7e, 0x42, 0x2a, 0x40, 0x56, 0x2b, 0x32, 0x48, 0x2a, 0x00, 0x4c, - 0x5a, 0x0a, 0x46, 0x2a, 0x40, 0x45, 0x65, 0xc9, 0x3f, 0x20, 0x00, 0x48, - 0xf3, 0xad, 0x8c, 0x23, 0x40, 0x80, 0x01, 0xff, 0x49, 0xab, 0xba, 0xf1, - 0x26, 0x00, 0x4f, 0x51, 0x73, 0x14, 0x26, 0x40, 0x07, 0xc1, 0x05, 0x06, - 0x4c, 0xb3, 0x24, 0x9f, 0x03, 0x41, 0xa1, 0xb3, 0x01, 0x44, 0x8a, 0x97, - 0x81, 0x03, 0x01, 0xa4, 0x9e, 0x01, 0xa7, 0x8f, 0x01, 0x42, 0x0b, 0x00, - 0x85, 0x03, 0x81, 0x81, 0x01, 0xe9, 0x9b, 0x03, 0x01, 0xab, 0x6f, 0x45, - 0xfd, 0xe4, 0x8d, 0x03, 0x01, 0x43, 0x89, 0x05, 0x8e, 0x03, 0x01, 0x43, - 0x54, 0x22, 0x90, 0x03, 0x01, 0x42, 0xb8, 0x0b, 0x94, 0x03, 0x01, 0x44, - 0xee, 0xee, 0x96, 0x03, 0x01, 0x45, 0x0f, 0xe7, 0x97, 0x03, 0x01, 0xb3, - 0x2f, 0xb4, 0x1d, 0xf5, 0x9c, 0x03, 0x01, 0x42, 0x15, 0x02, 0x86, 0x03, - 0x01, 0x43, 0x58, 0x51, 0x8a, 0x03, 0x01, 0xba, 0x01, 0xff, 0x43, 0x45, - 0x0f, 0x87, 0x03, 0x01, 0xf5, 0x91, 0x03, 0x41, 0x42, 0xc2, 0x05, 0x89, - 0x03, 0x01, 0x45, 0xd1, 0xe3, 0x98, 0x03, 0x01, 0xef, 0x9a, 0x03, 0x41, - 0xa1, 0x0c, 0x43, 0x0e, 0x16, 0x8c, 0x03, 0x01, 0x42, 0x6f, 0x00, 0x9d, - 0x03, 0x41, 0x42, 0x04, 0x00, 0x95, 0x03, 0x01, 0x43, 0xd9, 0x51, 0x92, - 0x03, 0x41, 0x42, 0xf5, 0x13, 0x8b, 0x03, 0x01, 0x42, 0x22, 0x00, 0x83, - 0x03, 0x41, 0x42, 0x12, 0x00, 0x88, 0x03, 0x41, 0x44, 0xc6, 0xeb, 0x82, - 0x03, 0x01, 0x44, 0x4b, 0x9a, 0x99, 0x03, 0x41, 0x44, 0x6c, 0xd3, 0x84, - 0x03, 0x01, 0x43, 0x22, 0x00, 0x8f, 0x03, 0x41, 0x42, 0x9e, 0x01, 0x93, - 0x03, 0x01, 0x43, 0x93, 0x79, 0x80, 0x03, 0x41, 0x8d, 0xfa, 0x72, 0xa1, - 0xe3, 0x38, 0xa5, 0x81, 0x2e, 0xa8, 0xee, 0x23, 0xa9, 0xd1, 0x10, 0xaf, - 0xc2, 0x09, 0xb2, 0xd4, 0x06, 0xb5, 0x88, 0x01, 0xb7, 0x01, 0xff, 0x57, - 0x46, 0x2b, 0x39, 0x27, 0x00, 0x57, 0x58, 0x2e, 0x00, 0xf5, 0x01, 0xaf, - 0x01, 0xff, 0x80, 0x06, 0x48, 0x3a, 0xc0, 0x3a, 0x2e, 0x40, 0x5c, 0xae, - 0x16, 0x51, 0x20, 0x00, 0x4c, 0x45, 0x8b, 0xb0, 0xf5, 0x01, 0x58, 0x25, - 0x27, 0x75, 0x2a, 0x00, 0x03, 0xd4, 0x09, 0x44, 0x46, 0x12, 0x85, 0x95, - 0xf4, 0x01, 0x15, 0x32, 0x3b, 0x2e, 0x4e, 0xc6, 0x77, 0xc9, 0x29, 0x00, - 0x08, 0xa3, 0x21, 0x18, 0x51, 0xb5, 0x4d, 0x6c, 0xf4, 0x01, 0x5a, 0x64, - 0x21, 0x88, 0xcc, 0x01, 0x4e, 0x0e, 0x7b, 0xea, 0xf5, 0x01, 0x53, 0xb3, - 0x4d, 0x6d, 0xf4, 0x41, 0x4c, 0x85, 0x8a, 0x07, 0x2a, 0x00, 0x4b, 0xac, - 0x9e, 0x08, 0x2a, 0x40, 0x43, 0x1a, 0x00, 0x55, 0x2a, 0x00, 0x42, 0x0c, - 0x00, 0x56, 0x2a, 0x40, 0x80, 0x06, 0x5a, 0xa9, 0x0b, 0x2a, 0x2e, 0x40, - 0x46, 0x2e, 0x7c, 0x25, 0x20, 0x00, 0x4b, 0xb8, 0x0b, 0x5a, 0x20, 0x40, - 0x49, 0xe8, 0xb6, 0xae, 0x20, 0x00, 0xac, 0xc4, 0x01, 0x4b, 0x2b, 0x9d, - 0x43, 0xf9, 0x01, 0xb2, 0x01, 0xff, 0xab, 0xac, 0x01, 0x04, 0x48, 0x07, - 0x06, 0x43, 0xbd, 0x01, 0x22, 0xf4, 0x41, 0xa1, 0x93, 0x01, 0x06, 0xe1, - 0x02, 0x82, 0x01, 0xa3, 0x74, 0xa4, 0x5b, 0x57, 0xb7, 0x2d, 0x29, 0x21, - 0x00, 0x02, 0xb4, 0x01, 0x3b, 0x4c, 0x69, 0x91, 0x8f, 0xf5, 0x01, 0xb3, - 0x06, 0x51, 0x14, 0x5e, 0xc9, 0x26, 0x40, 0x12, 0xcc, 0x46, 0x1d, 0x48, - 0x6f, 0x58, 0x35, 0x2e, 0x00, 0x46, 0xfc, 0xda, 0x4e, 0x21, 0x00, 0x05, - 0x00, 0x20, 0x01, 0xff, 0x52, 0xe2, 0x4f, 0x57, 0xf6, 0x01, 0x52, 0x3a, - 0x55, 0x55, 0xf6, 0x41, 0xe7, 0x41, 0x21, 0x00, 0xec, 0x42, 0x21, 0x00, - 0xf9, 0x44, 0x21, 0x40, 0x04, 0xb6, 0x01, 0x06, 0x46, 0x75, 0x32, 0x19, - 0x23, 0x40, 0x52, 0xe2, 0x4f, 0x56, 0xf6, 0x01, 0x52, 0x3a, 0x55, 0x54, - 0xf6, 0x41, 0x45, 0xf1, 0xd7, 0x38, 0x2e, 0x00, 0x06, 0x87, 0x15, 0x01, - 0xff, 0x44, 0x25, 0x01, 0x8b, 0x21, 0x00, 0x42, 0x15, 0x02, 0x8a, 0x21, - 0x40, 0x48, 0xe2, 0xc0, 0x32, 0x21, 0x00, 0x44, 0xe9, 0x04, 0x32, 0x2e, - 0x40, 0x48, 0x3a, 0xc7, 0xc2, 0x2b, 0x00, 0x4b, 0x1a, 0x5e, 0xca, 0x26, - 0x40, 0x48, 0x2e, 0x3d, 0x4b, 0x21, 0x00, 0x44, 0x05, 0x02, 0xa2, 0x29, - 0x40, 0x42, 0x3f, 0x1c, 0x83, 0xf9, 0x01, 0x4d, 0xdc, 0x82, 0xba, 0x20, - 0x40, 0x42, 0x8f, 0x04, 0x37, 0xf3, 0x01, 0x0b, 0xcf, 0xa1, 0x01, 0xff, - 0x4e, 0x9a, 0x74, 0xc9, 0x13, 0x01, 0x49, 0x0b, 0xb5, 0xd0, 0x13, 0x01, - 0xa4, 0xd6, 0x03, 0x4f, 0xe0, 0x6b, 0xd2, 0x13, 0x01, 0x07, 0xc1, 0x05, - 0xa2, 0x01, 0x45, 0x32, 0xe7, 0xd1, 0x13, 0x01, 0x05, 0x2f, 0x03, 0x5b, - 0xb6, 0x01, 0xff, 0x0a, 0x7f, 0xa7, 0x48, 0x0a, 0xd2, 0x75, 0x01, 0xff, - 0xa1, 0x35, 0x42, 0x27, 0x01, 0xc2, 0x13, 0x01, 0xe9, 0xb9, 0x13, 0x81, - 0x26, 0x42, 0x69, 0x05, 0xc7, 0x13, 0x01, 0xf5, 0xbb, 0x13, 0x81, 0x17, - 0x08, 0x9b, 0xbe, 0x01, 0xff, 0xec, 0xbf, 0x13, 0x81, 0x09, 0xf2, 0xbd, - 0x13, 0xc1, 0x00, 0xf2, 0xbe, 0x13, 0x41, 0xec, 0xc0, 0x13, 0x41, 0xf5, - 0xbc, 0x13, 0x41, 0xe9, 0xba, 0x13, 0x41, 0xe1, 0xb8, 0x13, 0x01, 0xe9, - 0xc5, 0x13, 0x01, 0xf5, 0xc8, 0x13, 0x41, 0x48, 0x68, 0x7b, 0xe2, 0x13, - 0x01, 0x47, 0xa5, 0x0a, 0xe1, 0x13, 0x41, 0xa1, 0x2f, 0x50, 0xba, 0x5f, - 0xca, 0x13, 0x01, 0x4d, 0x92, 0x83, 0xcf, 0x13, 0x01, 0x4b, 0x75, 0x9e, - 0xd7, 0x13, 0x01, 0x45, 0xce, 0xe6, 0xd3, 0x13, 0x01, 0x4e, 0xc8, 0x7a, - 0xd8, 0x13, 0x01, 0x02, 0x02, 0x00, 0x01, 0xff, 0x44, 0x5d, 0x23, 0xce, - 0x13, 0x01, 0x45, 0xa3, 0x4a, 0xcd, 0x13, 0x41, 0x47, 0xd1, 0x15, 0xcc, - 0x13, 0x01, 0x47, 0xf2, 0x86, 0xb7, 0x13, 0x41, 0xe1, 0x80, 0x13, 0x81, - 0x97, 0x02, 0xa2, 0x8a, 0x02, 0xa3, 0xfd, 0x01, 0xa4, 0xe4, 0x01, 0x42, - 0x27, 0x01, 0x8b, 0x13, 0x01, 0xa7, 0xd1, 0x01, 0x42, 0x22, 0x00, 0xb2, - 0x13, 0x01, 0xe9, 0x82, 0x13, 0x81, 0xc1, 0x01, 0xaa, 0xb4, 0x01, 0xab, - 0xa7, 0x01, 0xac, 0x93, 0x01, 0x42, 0x6c, 0x00, 0xaa, 0x13, 0x01, 0xae, - 0x75, 0x42, 0x69, 0x05, 0x90, 0x13, 0x01, 0xb0, 0x63, 0xb2, 0x57, 0xb3, - 0x45, 0xb4, 0x2c, 0xf5, 0x84, 0x13, 0x81, 0x23, 0xb6, 0x06, 0x42, 0x34, - 0x22, 0xab, 0x13, 0x41, 0xe1, 0xae, 0x13, 0x01, 0x07, 0x9c, 0xbe, 0x01, - 0xff, 0xec, 0x88, 0x13, 0x81, 0x09, 0xf2, 0x86, 0x13, 0xc1, 0x00, 0xf2, - 0x87, 0x13, 0x41, 0xec, 0x89, 0x13, 0x41, 0xf5, 0x85, 0x13, 0x41, 0xe1, - 0xa1, 0x13, 0x01, 0x42, 0x22, 0x00, 0xa2, 0x13, 0x01, 0xb4, 0x01, 0xff, - 0xe1, 0x9c, 0x13, 0x01, 0x42, 0x22, 0x00, 0x9d, 0x13, 0x41, 0xe1, 0xb1, - 0x13, 0x01, 0x42, 0x22, 0x00, 0xaf, 0x13, 0x01, 0x42, 0x15, 0x06, 0xb0, - 0x13, 0x41, 0xe1, 0xac, 0x13, 0x01, 0x42, 0x71, 0x00, 0xb4, 0x13, 0x41, - 0xe1, 0xa6, 0x13, 0x01, 0x42, 0x22, 0x00, 0xa7, 0x13, 0x41, 0xe1, 0xa5, - 0x13, 0x01, 0x42, 0x24, 0x02, 0x96, 0x13, 0x01, 0x42, 0xff, 0x04, 0xa0, - 0x13, 0x01, 0x42, 0x34, 0x22, 0x9b, 0x13, 0x41, 0xe1, 0xad, 0x13, 0x01, - 0xac, 0x01, 0xff, 0xe1, 0xb3, 0x13, 0x01, 0x42, 0x74, 0x00, 0xb5, 0x13, - 0x41, 0xe1, 0x92, 0x13, 0x01, 0x42, 0x22, 0x00, 0x93, 0x13, 0x41, 0xe1, - 0x99, 0x13, 0x01, 0x42, 0x22, 0x00, 0x9a, 0x13, 0x41, 0xe9, 0x83, 0x13, - 0x41, 0xe1, 0x94, 0x13, 0x01, 0x42, 0x22, 0x00, 0x95, 0x13, 0x41, 0xe1, - 0xa3, 0x13, 0x01, 0xa4, 0x06, 0x42, 0x22, 0x00, 0xa4, 0x13, 0x41, 0xe1, - 0x9e, 0x13, 0x01, 0x42, 0x22, 0x00, 0x9f, 0x13, 0x41, 0xe1, 0x97, 0x13, - 0x01, 0x42, 0x22, 0x00, 0x98, 0x13, 0x41, 0xe1, 0xa8, 0x13, 0x01, 0x42, - 0x22, 0x00, 0xa9, 0x13, 0x41, 0xe1, 0x81, 0x13, 0x01, 0xe9, 0x8e, 0x13, - 0x01, 0xf5, 0x91, 0x13, 0x41, 0x44, 0xd1, 0x1f, 0xd4, 0x13, 0x01, 0x4b, - 0xd8, 0x9e, 0xd5, 0x13, 0x41, 0xa1, 0xb2, 0x02, 0xa9, 0x3d, 0xaf, 0x14, - 0xb5, 0x01, 0xff, 0xe5, 0xa8, 0x22, 0x80, 0x06, 0x44, 0xfe, 0xed, 0xba, - 0xf3, 0x41, 0x50, 0xba, 0x5e, 0xdf, 0x2b, 0x40, 0x42, 0x0f, 0x07, 0xcc, - 0xf9, 0x81, 0x1a, 0xb0, 0x01, 0xff, 0x42, 0xb5, 0x45, 0xc6, 0xf3, 0x01, - 0x05, 0x36, 0x00, 0x01, 0xff, 0x45, 0xb9, 0xcd, 0x79, 0xf3, 0x01, 0x44, - 0xbf, 0x59, 0x20, 0xf4, 0x41, 0x45, 0x2c, 0xe3, 0x8e, 0xf6, 0x41, 0x03, - 0x1c, 0x01, 0xb1, 0x01, 0x45, 0xc4, 0x3a, 0x5d, 0x20, 0x00, 0x4b, 0xc9, - 0x98, 0x31, 0xf5, 0x01, 0x09, 0x24, 0x94, 0x6e, 0x04, 0xcb, 0x1c, 0x01, - 0xff, 0x4e, 0xfc, 0x74, 0xf6, 0x2a, 0x00, 0x46, 0xf0, 0xd7, 0x4b, 0x2e, - 0x00, 0x14, 0xc4, 0x29, 0x4d, 0x48, 0xf3, 0x25, 0x2d, 0x22, 0x00, 0x07, - 0xab, 0xd0, 0x37, 0xb0, 0x29, 0x57, 0x69, 0x30, 0xfb, 0x2a, 0x00, 0x45, - 0xad, 0x22, 0x4b, 0x22, 0x00, 0x0d, 0x42, 0x01, 0x01, 0xff, 0x4f, 0x71, - 0x30, 0xf4, 0x2a, 0x00, 0x49, 0x0b, 0x38, 0x80, 0x29, 0x00, 0x4f, 0x56, - 0x01, 0xaa, 0x22, 0x00, 0x56, 0x53, 0x37, 0xf5, 0x2a, 0x40, 0x43, 0xb8, - 0x27, 0xfb, 0x29, 0x00, 0x44, 0x64, 0x1a, 0x34, 0x20, 0x40, 0x4c, 0x87, - 0x00, 0xf8, 0x2a, 0x00, 0x49, 0xec, 0x00, 0xf7, 0x2a, 0x40, 0x56, 0xc5, - 0x32, 0x68, 0x2a, 0x00, 0x56, 0xcf, 0x36, 0x69, 0x2a, 0x40, 0x45, 0xb8, - 0x70, 0x37, 0x26, 0x00, 0x44, 0x91, 0x8f, 0x32, 0x26, 0x00, 0x46, 0x28, - 0x7a, 0x30, 0x26, 0x00, 0x44, 0x0f, 0x2e, 0x31, 0x26, 0x00, 0x48, 0x33, - 0x34, 0x36, 0x26, 0x00, 0x47, 0x7f, 0x79, 0x33, 0x26, 0x00, 0xb7, 0x01, - 0xff, 0x44, 0x8a, 0x00, 0x35, 0x26, 0x00, 0x43, 0xbe, 0x06, 0x34, 0x26, - 0x40, 0x02, 0x68, 0x00, 0x17, 0x05, 0x1f, 0x01, 0x01, 0xff, 0x46, 0x2a, - 0x21, 0x23, 0x20, 0x00, 0x4c, 0x3d, 0x8d, 0xa9, 0xf6, 0x01, 0x45, 0x1a, - 0x2f, 0xd0, 0xf4, 0x41, 0x06, 0x50, 0x00, 0x06, 0x58, 0x70, 0x06, 0x9d, - 0x27, 0x40, 0x49, 0x98, 0x1d, 0xca, 0x29, 0x00, 0x4f, 0xb3, 0x18, 0xc6, - 0xf6, 0x01, 0x50, 0x7a, 0x65, 0xcd, 0x29, 0x00, 0x48, 0x78, 0x58, 0xcb, - 0x29, 0x40, 0xa3, 0x28, 0x4c, 0x11, 0x8c, 0x22, 0x21, 0x00, 0x42, 0x9e, - 0x01, 0x86, 0xf6, 0x01, 0xed, 0x8a, 0xf6, 0x81, 0x11, 0x02, 0x5f, 0x01, - 0x01, 0xff, 0x45, 0xd3, 0xe6, 0xd7, 0x2b, 0x00, 0x53, 0x67, 0x4d, 0xdb, - 0x2a, 0x40, 0x44, 0x46, 0x63, 0x8b, 0xf6, 0x41, 0x45, 0xb2, 0xe4, 0xb2, - 0xf5, 0x01, 0x43, 0x9c, 0x07, 0x9c, 0xf6, 0x41, 0x0c, 0x29, 0x8c, 0xd4, - 0x04, 0x44, 0xcc, 0x36, 0xbd, 0xf6, 0x01, 0x49, 0xbc, 0xb8, 0xfc, 0xf5, - 0x01, 0x44, 0x4e, 0x38, 0x45, 0xf3, 0x01, 0x44, 0x36, 0x66, 0x45, 0xf4, - 0x01, 0xaf, 0xa6, 0x04, 0x02, 0x20, 0x00, 0x8f, 0x02, 0x17, 0x24, 0x30, - 0xbf, 0x01, 0xb4, 0x01, 0xff, 0x49, 0x88, 0xb3, 0x30, 0x23, 0x00, 0x02, - 0x7b, 0x02, 0x01, 0xff, 0x07, 0xc1, 0x05, 0x06, 0x50, 0x9a, 0x65, 0xae, - 0xe2, 0x41, 0xe1, 0xad, 0xe2, 0x81, 0x9d, 0x01, 0xa2, 0x7a, 0x43, 0xef, - 0x1f, 0x9a, 0xe2, 0x01, 0x42, 0xa1, 0x10, 0x93, 0xe2, 0x01, 0xe5, 0xa6, + 0xab, 0x33, 0x45, 0x1a, 0x01, 0x49, 0xa0, 0x1b, 0x3f, 0x1a, 0x41, 0x06, + 0x6a, 0x3d, 0x27, 0x06, 0xfe, 0x2d, 0x01, 0xff, 0x0d, 0xdf, 0x82, 0x06, + 0x51, 0x2e, 0x5b, 0x3a, 0x1a, 0x41, 0x42, 0x74, 0x00, 0x3d, 0x1a, 0x01, + 0x42, 0x71, 0x00, 0x3c, 0x1a, 0x01, 0x42, 0xf5, 0x0a, 0x3e, 0x1a, 0x01, + 0x42, 0xbc, 0x22, 0x3b, 0x1a, 0x41, 0x56, 0xab, 0x33, 0x46, 0x1a, 0x01, + 0x49, 0xa0, 0x1b, 0x40, 0x1a, 0x41, 0x4e, 0x25, 0x76, 0xff, 0x22, 0x00, + 0x56, 0x69, 0x33, 0x64, 0x2a, 0x00, 0x05, 0xc3, 0x00, 0x46, 0xb2, 0x27, + 0xb3, 0x06, 0x4a, 0x5d, 0xb2, 0x82, 0x29, 0x40, 0x06, 0x82, 0xda, 0x06, + 0x43, 0x14, 0x45, 0x81, 0x29, 0x40, 0x4b, 0xe6, 0x3a, 0x1f, 0x2a, 0x00, + 0xb0, 0x01, 0xff, 0x45, 0x8b, 0xe7, 0x20, 0x2a, 0x00, 0x49, 0xd9, 0xbe, + 0x21, 0x2a, 0x40, 0x54, 0xa0, 0x40, 0x65, 0x2a, 0x00, 0x55, 0xdc, 0x3a, + 0x3e, 0x2a, 0x00, 0x05, 0xc9, 0x00, 0x01, 0xff, 0x4f, 0x4f, 0x6b, 0x8a, + 0x29, 0x00, 0x4d, 0x31, 0x84, 0x88, 0x29, 0x40, 0x4f, 0x4f, 0x6b, 0x89, + 0x29, 0x00, 0x4d, 0x31, 0x84, 0x87, 0x29, 0x40, 0xa1, 0x89, 0x2e, 0xa5, + 0xc4, 0x2b, 0xa9, 0x06, 0x44, 0xb1, 0xf1, 0x80, 0xfa, 0x41, 0x80, 0x06, + 0x46, 0x1e, 0xde, 0x2f, 0x26, 0x40, 0x08, 0x58, 0xa5, 0xcd, 0x28, 0x09, + 0x1a, 0x18, 0x01, 0xff, 0xe1, 0x0a, 0xa0, 0x80, 0xb6, 0x28, 0xa2, 0x94, + 0x26, 0xa3, 0x87, 0x24, 0xa4, 0x9d, 0x22, 0xe5, 0x14, 0xa0, 0x80, 0x93, + 0x22, 0xa6, 0xb6, 0x21, 0xa7, 0xb7, 0x1f, 0xa8, 0x8b, 0x1b, 0xe9, 0x02, + 0xa0, 0x80, 0xe1, 0x1a, 0xaa, 0xf8, 0x18, 0xab, 0xfd, 0x17, 0xac, 0xe3, + 0x16, 0xad, 0xf6, 0x14, 0xae, 0xab, 0x0e, 0xef, 0x11, 0xa0, 0x80, 0x99, + 0x0e, 0xb0, 0x95, 0x0d, 0xb1, 0x9a, 0x0c, 0xb2, 0xba, 0x0a, 0xb3, 0xb4, + 0x07, 0xb4, 0xb9, 0x06, 0x42, 0x1a, 0x05, 0x0d, 0xa0, 0x80, 0xa9, 0x06, + 0xb6, 0xa4, 0x05, 0xb7, 0xe4, 0x04, 0xb8, 0x89, 0x04, 0xb9, 0x8e, 0x03, + 0xba, 0x01, 0xff, 0xe1, 0x96, 0xa2, 0x80, 0xf9, 0x02, 0xe5, 0xa0, 0xa2, + 0x80, 0xeb, 0x02, 0xa8, 0xf4, 0x01, 0xe9, 0x8f, 0xa2, 0x80, 0xd5, 0x01, + 0xef, 0x9d, 0xa2, 0x80, 0xc3, 0x01, 0xf5, 0xa4, 0xa2, 0x80, 0x9b, 0x01, + 0xf9, 0xaa, 0xa2, 0x80, 0x80, 0x01, 0xba, 0x01, 0xff, 0xe1, 0xda, 0xa2, + 0x80, 0x6c, 0xe5, 0xe0, 0xa2, 0x80, 0x5f, 0xe9, 0xd2, 0xa2, 0x80, 0x3d, + 0xef, 0xdd, 0xa2, 0x80, 0x30, 0xf5, 0xe3, 0xa2, 0x80, 0x1a, 0xf9, 0xe9, + 0xa2, 0xc0, 0x00, 0xf0, 0xea, 0xa2, 0x00, 0xf2, 0xec, 0xa2, 0x80, 0x08, + 0xf4, 0xe7, 0xa2, 0x00, 0xf8, 0xe8, 0xa2, 0x40, 0xf8, 0xeb, 0xa2, 0x40, + 0xf0, 0xe4, 0xa2, 0x00, 0xf2, 0xe6, 0xa2, 0x80, 0x04, 0xf8, 0xe2, 0xa2, + 0x40, 0xf8, 0xe5, 0xa2, 0x40, 0xf0, 0xde, 0xa2, 0x00, 0xf8, 0xdc, 0xa2, + 0x40, 0xe5, 0xd6, 0xa2, 0x80, 0x0c, 0xf0, 0xd3, 0xa2, 0x00, 0xf4, 0xd0, + 0xa2, 0x00, 0xf8, 0xd1, 0xa2, 0x40, 0xf0, 0xd7, 0xa2, 0x00, 0xf4, 0xd4, + 0xa2, 0x00, 0xf8, 0xd5, 0xa2, 0x40, 0xf0, 0xe1, 0xa2, 0x00, 0xf8, 0xdf, + 0xa2, 0x40, 0xf0, 0xdb, 0xa2, 0x00, 0xf4, 0xd8, 0xa2, 0x00, 0xf8, 0xd9, + 0xa2, 0x40, 0xf0, 0xab, 0xa2, 0x00, 0xf2, 0xad, 0xa2, 0x80, 0x08, 0xf4, + 0xa8, 0xa2, 0x00, 0xf8, 0xa9, 0xa2, 0x40, 0xf8, 0xac, 0xa2, 0x40, 0xef, + 0x99, 0xa2, 0x80, 0x15, 0xf0, 0xa5, 0xa2, 0x00, 0xf2, 0xa7, 0xa2, 0x80, + 0x08, 0xf4, 0xa2, 0xa2, 0x00, 0xf8, 0xa3, 0xa2, 0x40, 0xf8, 0xa6, 0xa2, + 0x40, 0xf0, 0x9a, 0xa2, 0x00, 0xf8, 0x98, 0xa2, 0x40, 0xf0, 0x9e, 0xa2, + 0x00, 0xf4, 0x9b, 0xa2, 0x00, 0xf8, 0x9c, 0xa2, 0x40, 0xe5, 0x92, 0xa2, + 0x80, 0x0c, 0xf0, 0x90, 0xa2, 0x00, 0xf4, 0x8d, 0xa2, 0x00, 0xf8, 0x8e, + 0xa2, 0x40, 0xf0, 0x93, 0xa2, 0x00, 0xf8, 0x91, 0xa2, 0x40, 0xe1, 0x48, + 0xa3, 0x80, 0x63, 0xe5, 0x53, 0xa3, 0x80, 0x52, 0xef, 0x4f, 0xa3, 0x80, + 0x41, 0xf5, 0x57, 0xa3, 0x80, 0x1a, 0xf9, 0x5d, 0xa3, 0xc0, 0x00, 0xf0, + 0x5e, 0xa3, 0x00, 0xf2, 0x60, 0xa3, 0x80, 0x08, 0xf4, 0x5b, 0xa3, 0x00, + 0xf8, 0x5c, 0xa3, 0x40, 0xf8, 0x5f, 0xa3, 0x40, 0xef, 0x4b, 0xa3, 0x80, + 0x15, 0xf0, 0x58, 0xa3, 0x00, 0xf2, 0x5a, 0xa3, 0x80, 0x08, 0xf4, 0x55, + 0xa3, 0x00, 0xf8, 0x56, 0xa3, 0x40, 0xf8, 0x59, 0xa3, 0x40, 0xf0, 0x4c, + 0xa3, 0x00, 0xf8, 0x4a, 0xa3, 0x40, 0xf0, 0x50, 0xa3, 0x00, 0xf4, 0x4d, + 0xa3, 0x00, 0xf8, 0x4e, 0xa3, 0x40, 0xf0, 0x54, 0xa3, 0x00, 0xf4, 0x51, + 0xa3, 0x00, 0xf8, 0x52, 0xa3, 0x40, 0xf0, 0x49, 0xa3, 0x00, 0xf4, 0x46, + 0xa3, 0x00, 0xf8, 0x47, 0xa3, 0x40, 0xf0, 0xa1, 0xa2, 0x00, 0xf8, 0x9f, + 0xa2, 0x40, 0xf0, 0x97, 0xa2, 0x00, 0xf4, 0x94, 0xa2, 0x00, 0xf8, 0x95, + 0xa2, 0x40, 0xe9, 0x73, 0xa4, 0x80, 0x56, 0xef, 0x7f, 0xa4, 0x80, 0x45, + 0xf5, 0x83, 0xa4, 0x80, 0x1a, 0xf9, 0x89, 0xa4, 0xc0, 0x00, 0xf0, 0x8a, + 0xa4, 0x00, 0xf2, 0x8c, 0xa4, 0x80, 0x08, 0xf4, 0x87, 0xa4, 0x00, 0xf8, + 0x88, 0xa4, 0x40, 0xf8, 0x8b, 0xa4, 0x40, 0xef, 0x7b, 0xa4, 0x80, 0x15, + 0xf0, 0x84, 0xa4, 0x00, 0xf2, 0x86, 0xa4, 0x80, 0x08, 0xf4, 0x81, 0xa4, + 0x00, 0xf8, 0x82, 0xa4, 0x40, 0xf8, 0x85, 0xa4, 0x40, 0xf0, 0x7c, 0xa4, + 0x00, 0xf4, 0x79, 0xa4, 0x00, 0xf8, 0x7a, 0xa4, 0x40, 0xf0, 0x80, 0xa4, + 0x00, 0xf4, 0x7d, 0xa4, 0x00, 0xf8, 0x7e, 0xa4, 0x40, 0xe5, 0x77, 0xa4, + 0x80, 0x0c, 0xf0, 0x74, 0xa4, 0x00, 0xf4, 0x71, 0xa4, 0x00, 0xf8, 0x72, + 0xa4, 0x40, 0xf0, 0x78, 0xa4, 0x00, 0xf4, 0x75, 0xa4, 0x00, 0xf8, 0x76, + 0xa4, 0x40, 0xe9, 0x5f, 0xa4, 0x80, 0x36, 0xef, 0x69, 0xa4, 0x80, 0x25, + 0x42, 0x1a, 0x05, 0x66, 0xa4, 0x80, 0x1a, 0xf9, 0x6d, 0xa4, 0xc0, 0x00, + 0xf0, 0x6e, 0xa4, 0x00, 0xf2, 0x70, 0xa4, 0x80, 0x08, 0xf4, 0x6b, 0xa4, + 0x00, 0xf8, 0x6c, 0xa4, 0x40, 0xf8, 0x6f, 0xa4, 0x40, 0xf8, 0x65, 0xa4, + 0x40, 0xf0, 0x6a, 0xa4, 0x00, 0xf4, 0x67, 0xa4, 0x00, 0xf8, 0x68, 0xa4, + 0x40, 0xe5, 0x63, 0xa4, 0x80, 0x0c, 0xf0, 0x60, 0xa4, 0x00, 0xf4, 0x5d, + 0xa4, 0x00, 0xf8, 0x5e, 0xa4, 0x40, 0xf0, 0x64, 0xa4, 0x00, 0xf4, 0x61, + 0xa4, 0x00, 0xf8, 0x62, 0xa4, 0x40, 0xe1, 0x82, 0xa2, 0x80, 0x2c, 0xe5, + 0x8b, 0xa2, 0x80, 0x1f, 0xef, 0x88, 0xa2, 0x80, 0x12, 0xf5, 0x15, 0xa0, + 0xc0, 0x00, 0xef, 0x85, 0xa2, 0xc0, 0x00, 0xf0, 0x86, 0xa2, 0x00, 0xf8, + 0x84, 0xa2, 0x40, 0xf0, 0x89, 0xa2, 0x00, 0xf8, 0x87, 0xa2, 0x40, 0xf0, + 0x8c, 0xa2, 0x00, 0xf8, 0x8a, 0xa2, 0x40, 0xf0, 0x83, 0xa2, 0x00, 0xf4, + 0x80, 0xa2, 0x00, 0xf8, 0x81, 0xa2, 0x40, 0xe1, 0xec, 0xa0, 0x80, 0x71, + 0xa5, 0x67, 0xe9, 0xe4, 0xa0, 0x80, 0x45, 0xef, 0xf0, 0xa0, 0x80, 0x34, + 0xf5, 0xf6, 0xa0, 0x80, 0x1a, 0xf9, 0xfc, 0xa0, 0xc0, 0x00, 0xf0, 0xfd, + 0xa0, 0x00, 0xf2, 0xff, 0xa0, 0x80, 0x08, 0xf4, 0xfa, 0xa0, 0x00, 0xf8, + 0xfb, 0xa0, 0x40, 0xf8, 0xfe, 0xa0, 0x40, 0xf0, 0xf7, 0xa0, 0x00, 0xf2, + 0xf9, 0xa0, 0x80, 0x08, 0xf4, 0xf4, 0xa0, 0x00, 0xf8, 0xf5, 0xa0, 0x40, + 0xf8, 0xf8, 0xa0, 0x40, 0xf0, 0xf1, 0xa0, 0x00, 0xf4, 0xee, 0xa0, 0x00, + 0xf8, 0xef, 0xa0, 0x40, 0xe5, 0xe8, 0xa0, 0x80, 0x0c, 0xf0, 0xe5, 0xa0, + 0x00, 0xf4, 0xe2, 0xa0, 0x00, 0xf8, 0xe3, 0xa0, 0x40, 0xf0, 0xe9, 0xa0, + 0x00, 0xf4, 0xe6, 0xa0, 0x00, 0xf8, 0xe7, 0xa0, 0x40, 0xf0, 0xf3, 0xa0, + 0x00, 0xf8, 0xf2, 0xa0, 0x40, 0xf0, 0xed, 0xa0, 0x00, 0xf4, 0xea, 0xa0, + 0x00, 0xf8, 0xeb, 0xa0, 0x40, 0xf0, 0x0e, 0xa0, 0x00, 0xf8, 0x0c, 0xa0, + 0x40, 0xe1, 0x23, 0xa1, 0x80, 0x67, 0xe5, 0x2e, 0xa1, 0x80, 0x5a, 0xe9, + 0x1c, 0xa1, 0x80, 0x3c, 0xef, 0x2b, 0xa1, 0x80, 0x2b, 0xf5, 0x32, 0xa1, + 0xc0, 0x00, 0xef, 0x27, 0xa1, 0x80, 0x15, 0xf0, 0x33, 0xa1, 0x00, 0xf2, + 0x35, 0xa1, 0x80, 0x08, 0xf4, 0x30, 0xa1, 0x00, 0xf8, 0x31, 0xa1, 0x40, + 0xf8, 0x34, 0xa1, 0x40, 0xf0, 0x28, 0xa1, 0x00, 0xf4, 0x25, 0xa1, 0x00, + 0xf8, 0x26, 0xa1, 0x40, 0xf0, 0x2c, 0xa1, 0x00, 0xf4, 0x29, 0xa1, 0x00, + 0xf8, 0x2a, 0xa1, 0x40, 0xe5, 0x1f, 0xa1, 0x80, 0x0c, 0xf0, 0x1d, 0xa1, + 0x00, 0xf4, 0x1a, 0xa1, 0x00, 0xf8, 0x1b, 0xa1, 0x40, 0xf0, 0x20, 0xa1, + 0x00, 0xf8, 0x1e, 0xa1, 0x40, 0xf0, 0x2f, 0xa1, 0x00, 0xf8, 0x2d, 0xa1, + 0x40, 0xf0, 0x24, 0xa1, 0x00, 0xf4, 0x21, 0xa1, 0x00, 0xf8, 0x22, 0xa1, + 0x40, 0xe1, 0x12, 0xa3, 0x80, 0xf1, 0x02, 0xe5, 0x1c, 0xa3, 0x80, 0xe3, + 0x02, 0xa8, 0xec, 0x01, 0xe9, 0x0b, 0xa3, 0x80, 0xcd, 0x01, 0xef, 0x19, + 0xa3, 0x80, 0xbb, 0x01, 0xb3, 0x41, 0xf5, 0x20, 0xa3, 0x80, 0x1a, 0xf9, + 0x26, 0xa3, 0xc0, 0x00, 0xf0, 0x27, 0xa3, 0x00, 0xf2, 0x29, 0xa3, 0x80, + 0x08, 0xf4, 0x24, 0xa3, 0x00, 0xf8, 0x25, 0xa3, 0x40, 0xf8, 0x28, 0xa3, + 0x40, 0xef, 0x15, 0xa3, 0x80, 0x15, 0xf0, 0x21, 0xa3, 0x00, 0xf2, 0x23, + 0xa3, 0x80, 0x08, 0xf4, 0x1e, 0xa3, 0x00, 0xf8, 0x1f, 0xa3, 0x40, 0xf8, + 0x22, 0xa3, 0x40, 0xf0, 0x16, 0xa3, 0x00, 0xf8, 0x14, 0xa3, 0x40, 0xe1, + 0x33, 0xa3, 0x80, 0x67, 0xe5, 0x3a, 0xa3, 0x80, 0x5a, 0xe9, 0x2c, 0xa3, + 0x80, 0x3c, 0xef, 0x37, 0xa3, 0x80, 0x2b, 0xf5, 0x3e, 0xa3, 0x80, 0x1a, + 0xf9, 0x42, 0xa3, 0xc0, 0x00, 0xf0, 0x43, 0xa3, 0x00, 0xf2, 0x45, 0xa3, + 0x80, 0x08, 0xf4, 0x40, 0xa3, 0x00, 0xf8, 0x41, 0xa3, 0x40, 0xf8, 0x44, + 0xa3, 0x40, 0xf0, 0x3f, 0xa3, 0x00, 0xf4, 0x3c, 0xa3, 0x00, 0xf8, 0x3d, + 0xa3, 0x40, 0xf0, 0x38, 0xa3, 0x00, 0xf4, 0x35, 0xa3, 0x00, 0xf8, 0x36, + 0xa3, 0x40, 0xe5, 0x2f, 0xa3, 0x80, 0x0c, 0xf0, 0x2d, 0xa3, 0x00, 0xf4, + 0x2a, 0xa3, 0x00, 0xf8, 0x2b, 0xa3, 0x40, 0xf0, 0x30, 0xa3, 0x00, 0xf8, + 0x2e, 0xa3, 0x40, 0xf0, 0x3b, 0xa3, 0x00, 0xf8, 0x39, 0xa3, 0x40, 0xf0, + 0x34, 0xa3, 0x00, 0xf4, 0x31, 0xa3, 0x00, 0xf8, 0x32, 0xa3, 0x40, 0xf0, + 0x1a, 0xa3, 0x00, 0xf4, 0x17, 0xa3, 0x00, 0xf8, 0x18, 0xa3, 0x40, 0xe5, + 0x0e, 0xa3, 0x80, 0x0c, 0xf0, 0x0c, 0xa3, 0x00, 0xf4, 0x09, 0xa3, 0x00, + 0xf8, 0x0a, 0xa3, 0x40, 0xf0, 0x0f, 0xa3, 0x00, 0xf8, 0x0d, 0xa3, 0x40, + 0xe1, 0xad, 0xa3, 0x80, 0x63, 0xe5, 0xb8, 0xa3, 0x80, 0x52, 0xef, 0xb4, + 0xa3, 0x80, 0x41, 0xf5, 0xbc, 0xa3, 0x80, 0x1a, 0xf9, 0xc2, 0xa3, 0xc0, + 0x00, 0xf0, 0xc3, 0xa3, 0x00, 0xf2, 0xc5, 0xa3, 0x80, 0x08, 0xf4, 0xc0, + 0xa3, 0x00, 0xf8, 0xc1, 0xa3, 0x40, 0xf8, 0xc4, 0xa3, 0x40, 0xef, 0xb0, + 0xa3, 0x80, 0x15, 0xf0, 0xbd, 0xa3, 0x00, 0xf2, 0xbf, 0xa3, 0x80, 0x08, + 0xf4, 0xba, 0xa3, 0x00, 0xf8, 0xbb, 0xa3, 0x40, 0xf8, 0xbe, 0xa3, 0x40, + 0xf0, 0xb1, 0xa3, 0x00, 0xf8, 0xaf, 0xa3, 0x40, 0xf0, 0xb5, 0xa3, 0x00, + 0xf4, 0xb2, 0xa3, 0x00, 0xf8, 0xb3, 0xa3, 0x40, 0xf0, 0xb9, 0xa3, 0x00, + 0xf4, 0xb6, 0xa3, 0x00, 0xf8, 0xb7, 0xa3, 0x40, 0xf0, 0xae, 0xa3, 0x00, + 0xf4, 0xab, 0xa3, 0x00, 0xf8, 0xac, 0xa3, 0x40, 0xf0, 0x1d, 0xa3, 0x00, + 0xf8, 0x1b, 0xa3, 0x40, 0xf0, 0x13, 0xa3, 0x00, 0xf4, 0x10, 0xa3, 0x00, + 0xf8, 0x11, 0xa3, 0x40, 0xe1, 0xc8, 0xa3, 0x80, 0xcb, 0x01, 0xe5, 0xd2, + 0xa3, 0x80, 0xbd, 0x01, 0xef, 0xcf, 0xa3, 0x80, 0xab, 0x01, 0xb2, 0x41, + 0xf5, 0xd6, 0xa3, 0x80, 0x1a, 0xf9, 0xdc, 0xa3, 0xc0, 0x00, 0xf0, 0xdd, + 0xa3, 0x00, 0xf2, 0xdf, 0xa3, 0x80, 0x08, 0xf4, 0xda, 0xa3, 0x00, 0xf8, + 0xdb, 0xa3, 0x40, 0xf8, 0xde, 0xa3, 0x40, 0xef, 0xcb, 0xa3, 0x80, 0x15, + 0xf0, 0xd7, 0xa3, 0x00, 0xf2, 0xd9, 0xa3, 0x80, 0x08, 0xf4, 0xd4, 0xa3, + 0x00, 0xf8, 0xd5, 0xa3, 0x40, 0xf8, 0xd8, 0xa3, 0x40, 0xf0, 0xcc, 0xa3, + 0x00, 0xf8, 0xca, 0xa3, 0x40, 0xe1, 0x7d, 0xa3, 0x80, 0x5f, 0xe5, 0x86, + 0xa3, 0x80, 0x4e, 0xef, 0x82, 0xa3, 0x80, 0x3d, 0xf5, 0x8a, 0xa3, 0x80, + 0x1a, 0xf9, 0x90, 0xa3, 0xc0, 0x00, 0xf0, 0x91, 0xa3, 0x00, 0xf2, 0x93, + 0xa3, 0x80, 0x08, 0xf4, 0x8e, 0xa3, 0x00, 0xf8, 0x8f, 0xa3, 0x40, 0xf8, + 0x92, 0xa3, 0x40, 0xef, 0x7f, 0xa3, 0x80, 0x15, 0xf0, 0x8b, 0xa3, 0x00, + 0xf2, 0x8d, 0xa3, 0x80, 0x08, 0xf4, 0x88, 0xa3, 0x00, 0xf8, 0x89, 0xa3, + 0x40, 0xf8, 0x8c, 0xa3, 0x40, 0xf8, 0x7e, 0xa3, 0x40, 0xf0, 0x83, 0xa3, + 0x00, 0xf4, 0x80, 0xa3, 0x00, 0xf8, 0x81, 0xa3, 0x40, 0xf0, 0x87, 0xa3, + 0x00, 0xf4, 0x84, 0xa3, 0x00, 0xf8, 0x85, 0xa3, 0x40, 0xf8, 0x7c, 0xa3, + 0x40, 0xf0, 0xd0, 0xa3, 0x00, 0xf4, 0xcd, 0xa3, 0x00, 0xf8, 0xce, 0xa3, + 0x40, 0xf0, 0xd3, 0xa3, 0x00, 0xf8, 0xd1, 0xa3, 0x40, 0xf0, 0xc9, 0xa3, + 0x00, 0xf4, 0xc6, 0xa3, 0x00, 0xf8, 0xc7, 0xa3, 0x40, 0xe9, 0xfe, 0xa3, + 0x80, 0x56, 0xef, 0x0a, 0xa4, 0x80, 0x45, 0xf5, 0x0e, 0xa4, 0x80, 0x1a, + 0xf9, 0x14, 0xa4, 0xc0, 0x00, 0xf0, 0x15, 0xa4, 0x00, 0xf2, 0x17, 0xa4, + 0x80, 0x08, 0xf4, 0x12, 0xa4, 0x00, 0xf8, 0x13, 0xa4, 0x40, 0xf8, 0x16, + 0xa4, 0x40, 0xef, 0x06, 0xa4, 0x80, 0x15, 0xf0, 0x0f, 0xa4, 0x00, 0xf2, + 0x11, 0xa4, 0x80, 0x08, 0xf4, 0x0c, 0xa4, 0x00, 0xf8, 0x0d, 0xa4, 0x40, + 0xf8, 0x10, 0xa4, 0x40, 0xf0, 0x07, 0xa4, 0x00, 0xf4, 0x04, 0xa4, 0x00, + 0xf8, 0x05, 0xa4, 0x40, 0xf0, 0x0b, 0xa4, 0x00, 0xf4, 0x08, 0xa4, 0x00, + 0xf8, 0x09, 0xa4, 0x40, 0xe5, 0x02, 0xa4, 0x80, 0x0c, 0xf0, 0xff, 0xa3, + 0x00, 0xf4, 0xfc, 0xa3, 0x00, 0xf8, 0xfd, 0xa3, 0x40, 0xf0, 0x03, 0xa4, + 0x00, 0xf4, 0x00, 0xa4, 0x00, 0xf8, 0x01, 0xa4, 0x40, 0xe1, 0x41, 0xa0, + 0x80, 0x70, 0xe9, 0x3a, 0xa0, 0x80, 0x52, 0xef, 0x48, 0xa0, 0x80, 0x41, + 0xf5, 0x4c, 0xa0, 0x80, 0x1a, 0xf9, 0x52, 0xa0, 0xc0, 0x00, 0xf0, 0x53, + 0xa0, 0x00, 0xf2, 0x55, 0xa0, 0x80, 0x08, 0xf4, 0x50, 0xa0, 0x00, 0xf8, + 0x51, 0xa0, 0x40, 0xf8, 0x54, 0xa0, 0x40, 0xef, 0x44, 0xa0, 0x80, 0x15, + 0xf0, 0x4d, 0xa0, 0x00, 0xf2, 0x4f, 0xa0, 0x80, 0x08, 0xf4, 0x4a, 0xa0, + 0x00, 0xf8, 0x4b, 0xa0, 0x40, 0xf8, 0x4e, 0xa0, 0x40, 0xf0, 0x45, 0xa0, + 0x00, 0xf8, 0x43, 0xa0, 0x40, 0xf0, 0x49, 0xa0, 0x00, 0xf4, 0x46, 0xa0, + 0x00, 0xf8, 0x47, 0xa0, 0x40, 0xe5, 0x3d, 0xa0, 0x80, 0x0c, 0xf0, 0x3b, + 0xa0, 0x00, 0xf4, 0x38, 0xa0, 0x00, 0xf8, 0x39, 0xa0, 0x40, 0xf0, 0x3e, + 0xa0, 0x00, 0xf8, 0x3c, 0xa0, 0x40, 0xf0, 0x42, 0xa0, 0x00, 0xf4, 0x3f, + 0xa0, 0x00, 0xf8, 0x40, 0xa0, 0x40, 0xf0, 0x12, 0xa0, 0x00, 0xf4, 0x0f, + 0xa0, 0x00, 0xf8, 0x10, 0xa0, 0x40, 0xe1, 0x85, 0xa1, 0x80, 0xba, 0x06, + 0xa2, 0xc3, 0x05, 0xa4, 0xdd, 0x04, 0xe5, 0x8f, 0xa1, 0x80, 0xcf, 0x04, + 0xa7, 0xff, 0x03, 0xe9, 0x7f, 0xa1, 0x80, 0xe0, 0x03, 0xaa, 0xf1, 0x02, + 0xef, 0x8c, 0xa1, 0x80, 0xdf, 0x02, 0xb2, 0xf9, 0x01, 0xf5, 0x93, 0xa1, + 0x80, 0xd1, 0x01, 0xb9, 0x7e, 0xba, 0x01, 0xff, 0xe1, 0xf6, 0xa2, 0x80, + 0x6a, 0xe5, 0xfd, 0xa2, 0x80, 0x61, 0xe9, 0xef, 0xa2, 0x80, 0x43, 0xaf, + 0x39, 0xf5, 0xff, 0xa2, 0x80, 0x1a, 0xf9, 0x05, 0xa3, 0xc0, 0x00, 0xf0, + 0x06, 0xa3, 0x00, 0xf2, 0x08, 0xa3, 0x80, 0x08, 0xf4, 0x03, 0xa3, 0x00, + 0xf8, 0x04, 0xa3, 0x40, 0xf8, 0x07, 0xa3, 0x40, 0xef, 0xf9, 0xa2, 0x80, + 0x11, 0xf0, 0x00, 0xa3, 0x00, 0xf2, 0x02, 0xa3, 0x80, 0x04, 0xf8, 0xfe, + 0xa2, 0x40, 0xf8, 0x01, 0xa3, 0x40, 0xf8, 0xf8, 0xa2, 0x40, 0xf0, 0xfb, + 0xa2, 0x00, 0xf8, 0xfa, 0xa2, 0x40, 0xe5, 0xf2, 0xa2, 0x80, 0x0c, 0xf0, + 0xf0, 0xa2, 0x00, 0xf4, 0xed, 0xa2, 0x00, 0xf8, 0xee, 0xa2, 0x40, 0xf0, + 0xf3, 0xa2, 0x00, 0xf8, 0xf1, 0xa2, 0x40, 0xf8, 0xfc, 0xa2, 0x40, 0xf0, + 0xf7, 0xa2, 0x00, 0xf4, 0xf4, 0xa2, 0x00, 0xf8, 0xf5, 0xa2, 0x40, 0xe9, + 0x4c, 0xa4, 0x80, 0x2f, 0xef, 0x57, 0xa4, 0x80, 0x1e, 0xf5, 0x5b, 0xa4, + 0xc0, 0x00, 0xef, 0x53, 0xa4, 0x80, 0x0c, 0xf0, 0x5c, 0xa4, 0x00, 0xf4, + 0x59, 0xa4, 0x00, 0xf8, 0x5a, 0xa4, 0x40, 0xf0, 0x54, 0xa4, 0x00, 0xf8, + 0x52, 0xa4, 0x40, 0xf0, 0x58, 0xa4, 0x00, 0xf4, 0x55, 0xa4, 0x00, 0xf8, + 0x56, 0xa4, 0x40, 0xe5, 0x50, 0xa4, 0x80, 0x0c, 0xf0, 0x4d, 0xa4, 0x00, + 0xf4, 0x4a, 0xa4, 0x00, 0xf8, 0x4b, 0xa4, 0x40, 0xf0, 0x51, 0xa4, 0x00, + 0xf4, 0x4e, 0xa4, 0x00, 0xf8, 0x4f, 0xa4, 0x40, 0xef, 0x88, 0xa1, 0x80, + 0x15, 0xf0, 0x94, 0xa1, 0x00, 0xf2, 0x96, 0xa1, 0x80, 0x08, 0xf4, 0x91, + 0xa1, 0x00, 0xf8, 0x92, 0xa1, 0x40, 0xf8, 0x95, 0xa1, 0x40, 0xf0, 0x89, + 0xa1, 0x00, 0xf8, 0x87, 0xa1, 0x40, 0xe1, 0x96, 0xa3, 0x80, 0x52, 0xe5, + 0x9d, 0xa3, 0x80, 0x41, 0xef, 0x99, 0xa3, 0x80, 0x34, 0xf5, 0xa1, 0xa3, + 0x80, 0x1a, 0xf9, 0xa7, 0xa3, 0xc0, 0x00, 0xf0, 0xa8, 0xa3, 0x00, 0xf2, + 0xaa, 0xa3, 0x80, 0x08, 0xf4, 0xa5, 0xa3, 0x00, 0xf8, 0xa6, 0xa3, 0x40, + 0xf8, 0xa9, 0xa3, 0x40, 0xf0, 0xa2, 0xa3, 0x00, 0xf2, 0xa4, 0xa3, 0x80, + 0x08, 0xf4, 0x9f, 0xa3, 0x00, 0xf8, 0xa0, 0xa3, 0x40, 0xf8, 0xa3, 0xa3, + 0x40, 0xf0, 0x9a, 0xa3, 0x00, 0xf8, 0x98, 0xa3, 0x40, 0xf0, 0x9e, 0xa3, + 0x00, 0xf4, 0x9b, 0xa3, 0x00, 0xf8, 0x9c, 0xa3, 0x40, 0xf0, 0x97, 0xa3, + 0x00, 0xf4, 0x94, 0xa3, 0x00, 0xf8, 0x95, 0xa3, 0x40, 0xf0, 0x8d, 0xa1, + 0x00, 0xf4, 0x8a, 0xa1, 0x00, 0xf8, 0x8b, 0xa1, 0x40, 0xe9, 0x33, 0xa4, + 0x80, 0x4a, 0xef, 0x3d, 0xa4, 0x80, 0x39, 0xf5, 0x40, 0xa4, 0x80, 0x1a, + 0xf9, 0x46, 0xa4, 0xc0, 0x00, 0xf0, 0x47, 0xa4, 0x00, 0xf2, 0x49, 0xa4, + 0x80, 0x08, 0xf4, 0x44, 0xa4, 0x00, 0xf8, 0x45, 0xa4, 0x40, 0xf8, 0x48, + 0xa4, 0x40, 0xef, 0x3a, 0xa4, 0x80, 0x11, 0xf0, 0x41, 0xa4, 0x00, 0xf2, + 0x43, 0xa4, 0x80, 0x04, 0xf8, 0x3f, 0xa4, 0x40, 0xf8, 0x42, 0xa4, 0x40, + 0xf8, 0x39, 0xa4, 0x40, 0xf0, 0x3e, 0xa4, 0x00, 0xf4, 0x3b, 0xa4, 0x00, + 0xf8, 0x3c, 0xa4, 0x40, 0xe5, 0x37, 0xa4, 0x80, 0x0c, 0xf0, 0x34, 0xa4, + 0x00, 0xf4, 0x31, 0xa4, 0x00, 0xf8, 0x32, 0xa4, 0x40, 0xf0, 0x38, 0xa4, + 0x00, 0xf4, 0x35, 0xa4, 0x00, 0xf8, 0x36, 0xa4, 0x40, 0xe5, 0x82, 0xa1, + 0x80, 0x0c, 0xf0, 0x80, 0xa1, 0x00, 0xf4, 0x7d, 0xa1, 0x00, 0xf8, 0x7e, + 0xa1, 0x40, 0xf0, 0x83, 0xa1, 0x00, 0xf8, 0x81, 0xa1, 0x40, 0xe1, 0x62, + 0xa2, 0x80, 0x3c, 0xe5, 0x6c, 0xa2, 0x80, 0x2f, 0x42, 0xf4, 0x02, 0x5e, + 0xa2, 0x80, 0x20, 0xef, 0x69, 0xa2, 0x80, 0x0f, 0x42, 0x1a, 0x05, 0x66, + 0xa2, 0xc0, 0x00, 0xf4, 0x64, 0xa2, 0x00, 0xf8, 0x65, 0xa2, 0x40, 0xf0, + 0x6a, 0xa2, 0x00, 0xf4, 0x67, 0xa2, 0x00, 0xf8, 0x68, 0xa2, 0x40, 0xf0, + 0x5f, 0xa2, 0x00, 0xf8, 0x5d, 0xa2, 0x40, 0xf0, 0x6d, 0xa2, 0x00, 0xf8, + 0x6b, 0xa2, 0x40, 0xf0, 0x63, 0xa2, 0x00, 0xf4, 0x60, 0xa2, 0x00, 0xf8, + 0x61, 0xa2, 0x40, 0xf0, 0x90, 0xa1, 0x00, 0xf8, 0x8e, 0xa1, 0x40, 0xe1, + 0x59, 0xa1, 0x80, 0x52, 0xe5, 0x60, 0xa1, 0x80, 0x45, 0xe9, 0x53, 0xa1, + 0x80, 0x2b, 0xef, 0x5d, 0xa1, 0x80, 0x1a, 0xf5, 0x64, 0xa1, 0xc0, 0x00, + 0xf0, 0x65, 0xa1, 0x00, 0xf2, 0x67, 0xa1, 0x80, 0x08, 0xf4, 0x62, 0xa1, + 0x00, 0xf8, 0x63, 0xa1, 0x40, 0xf8, 0x66, 0xa1, 0x40, 0xf0, 0x5e, 0xa1, + 0x00, 0xf4, 0x5b, 0xa1, 0x00, 0xf8, 0x5c, 0xa1, 0x40, 0xe5, 0x56, 0xa1, + 0x80, 0x0c, 0xf0, 0x54, 0xa1, 0x00, 0xf4, 0x51, 0xa1, 0x00, 0xf8, 0x52, + 0xa1, 0x40, 0xf8, 0x55, 0xa1, 0x40, 0xf0, 0x61, 0xa1, 0x00, 0xf8, 0x5f, + 0xa1, 0x40, 0xf0, 0x5a, 0xa1, 0x00, 0xf4, 0x57, 0xa1, 0x00, 0xf8, 0x58, + 0xa1, 0x40, 0xe1, 0x7f, 0xa0, 0x80, 0x63, 0xe9, 0x78, 0xa0, 0x80, 0x45, + 0xef, 0x83, 0xa0, 0x80, 0x34, 0xf5, 0x87, 0xa0, 0x80, 0x1a, 0xf9, 0x8d, + 0xa0, 0xc0, 0x00, 0xf0, 0x8e, 0xa0, 0x00, 0xf2, 0x90, 0xa0, 0x80, 0x08, + 0xf4, 0x8b, 0xa0, 0x00, 0xf8, 0x8c, 0xa0, 0x40, 0xf8, 0x8f, 0xa0, 0x40, + 0xf0, 0x88, 0xa0, 0x00, 0xf2, 0x8a, 0xa0, 0x80, 0x08, 0xf4, 0x85, 0xa0, + 0x00, 0xf8, 0x86, 0xa0, 0x40, 0xf8, 0x89, 0xa0, 0x40, 0xf0, 0x84, 0xa0, + 0x00, 0xf4, 0x81, 0xa0, 0x00, 0xf8, 0x82, 0xa0, 0x40, 0xe5, 0x7b, 0xa0, + 0x80, 0x0c, 0xf0, 0x79, 0xa0, 0x00, 0xf4, 0x76, 0xa0, 0x00, 0xf8, 0x77, + 0xa0, 0x40, 0xf0, 0x7c, 0xa0, 0x00, 0xf8, 0x7a, 0xa0, 0x40, 0xf0, 0x80, + 0xa0, 0x00, 0xf4, 0x7d, 0xa0, 0x00, 0xf8, 0x7e, 0xa0, 0x40, 0xf0, 0x86, + 0xa1, 0x00, 0xf8, 0x84, 0xa1, 0x40, 0xe1, 0xb7, 0xa0, 0x80, 0xd8, 0x01, + 0xe5, 0xc2, 0xa0, 0x80, 0xce, 0x01, 0xa7, 0x6b, 0xe9, 0xb0, 0xa0, 0x80, + 0x4d, 0xef, 0xbf, 0xa0, 0x80, 0x3c, 0xf5, 0xc5, 0xa0, 0x80, 0x11, 0xf9, + 0xcb, 0xa0, 0xc0, 0x00, 0xf0, 0xcc, 0xa0, 0x00, 0xf4, 0xc9, 0xa0, 0x00, + 0xf8, 0xca, 0xa0, 0x40, 0xef, 0xbb, 0xa0, 0x80, 0x15, 0xf0, 0xc6, 0xa0, + 0x00, 0xf2, 0xc8, 0xa0, 0x80, 0x08, 0xf4, 0xc3, 0xa0, 0x00, 0xf8, 0xc4, + 0xa0, 0x40, 0xf8, 0xc7, 0xa0, 0x40, 0xf0, 0xbc, 0xa0, 0x00, 0xf4, 0xb9, + 0xa0, 0x00, 0xf8, 0xba, 0xa0, 0x40, 0xf0, 0xc0, 0xa0, 0x00, 0xf4, 0xbd, + 0xa0, 0x00, 0xf8, 0xbe, 0xa0, 0x40, 0xe5, 0xb3, 0xa0, 0x80, 0x0c, 0xf0, + 0xb1, 0xa0, 0x00, 0xf4, 0xae, 0xa0, 0x00, 0xf8, 0xaf, 0xa0, 0x40, 0xf0, + 0xb4, 0xa0, 0x00, 0xf8, 0xb2, 0xa0, 0x40, 0xe1, 0x34, 0xa2, 0x80, 0x50, + 0xe5, 0x3e, 0xa2, 0x80, 0x43, 0x42, 0xf4, 0x02, 0x31, 0xa2, 0x80, 0x38, + 0xef, 0x3b, 0xa2, 0x80, 0x27, 0xf5, 0x42, 0xa2, 0xc0, 0x00, 0xef, 0x37, + 0xa2, 0x80, 0x15, 0xf0, 0x43, 0xa2, 0x00, 0xf2, 0x45, 0xa2, 0x80, 0x08, + 0xf4, 0x40, 0xa2, 0x00, 0xf8, 0x41, 0xa2, 0x40, 0xf8, 0x44, 0xa2, 0x40, + 0xf0, 0x38, 0xa2, 0x00, 0xf8, 0x36, 0xa2, 0x40, 0xf0, 0x3c, 0xa2, 0x00, + 0xf4, 0x39, 0xa2, 0x00, 0xf8, 0x3a, 0xa2, 0x40, 0xf8, 0x30, 0xa2, 0x40, + 0xf0, 0x3f, 0xa2, 0x00, 0xf8, 0x3d, 0xa2, 0x40, 0xf0, 0x35, 0xa2, 0x00, + 0xf4, 0x32, 0xa2, 0x00, 0xf8, 0x33, 0xa2, 0x40, 0xf8, 0xc1, 0xa0, 0x40, + 0xf0, 0xb8, 0xa0, 0x00, 0xf4, 0xb5, 0xa0, 0x00, 0xf8, 0xb6, 0xa0, 0x40, + 0xe1, 0xc1, 0xa1, 0x80, 0x85, 0x01, 0xe5, 0xcc, 0xa1, 0x80, 0x78, 0xe9, + 0xb9, 0xa1, 0x80, 0x56, 0xef, 0xc9, 0xa1, 0x80, 0x45, 0xf5, 0xd0, 0xa1, + 0x80, 0x1a, 0xf9, 0xd6, 0xa1, 0xc0, 0x00, 0xf0, 0xd7, 0xa1, 0x00, 0xf2, + 0xd9, 0xa1, 0x80, 0x08, 0xf4, 0xd4, 0xa1, 0x00, 0xf8, 0xd5, 0xa1, 0x40, + 0xf8, 0xd8, 0xa1, 0x40, 0xef, 0xc5, 0xa1, 0x80, 0x15, 0xf0, 0xd1, 0xa1, + 0x00, 0xf2, 0xd3, 0xa1, 0x80, 0x08, 0xf4, 0xce, 0xa1, 0x00, 0xf8, 0xcf, + 0xa1, 0x40, 0xf8, 0xd2, 0xa1, 0x40, 0xf0, 0xc6, 0xa1, 0x00, 0xf4, 0xc3, + 0xa1, 0x00, 0xf8, 0xc4, 0xa1, 0x40, 0xf0, 0xca, 0xa1, 0x00, 0xf4, 0xc7, + 0xa1, 0x00, 0xf8, 0xc8, 0xa1, 0x40, 0xe5, 0xbd, 0xa1, 0x80, 0x0c, 0xf0, + 0xba, 0xa1, 0x00, 0xf4, 0xb7, 0xa1, 0x00, 0xf8, 0xb8, 0xa1, 0x40, 0xf0, + 0xbe, 0xa1, 0x00, 0xf4, 0xbb, 0xa1, 0x00, 0xf8, 0xbc, 0xa1, 0x40, 0xf0, + 0xcd, 0xa1, 0x00, 0xf8, 0xcb, 0xa1, 0x40, 0xf0, 0xc2, 0xa1, 0x00, 0xf4, + 0xbf, 0xa1, 0x00, 0xf8, 0xc0, 0xa1, 0x40, 0xe1, 0x01, 0xa2, 0x80, 0x67, + 0xe5, 0x0c, 0xa2, 0x80, 0x56, 0xe9, 0xfa, 0xa1, 0x80, 0x38, 0xef, 0x08, + 0xa2, 0x80, 0x27, 0xf5, 0x10, 0xa2, 0xc0, 0x00, 0xef, 0x04, 0xa2, 0x80, + 0x15, 0xf0, 0x11, 0xa2, 0x00, 0xf2, 0x13, 0xa2, 0x80, 0x08, 0xf4, 0x0e, + 0xa2, 0x00, 0xf8, 0x0f, 0xa2, 0x40, 0xf8, 0x12, 0xa2, 0x40, 0xf0, 0x05, + 0xa2, 0x00, 0xf8, 0x03, 0xa2, 0x40, 0xf0, 0x09, 0xa2, 0x00, 0xf4, 0x06, + 0xa2, 0x00, 0xf8, 0x07, 0xa2, 0x40, 0xe5, 0xfd, 0xa1, 0x80, 0x0c, 0xf0, + 0xfb, 0xa1, 0x00, 0xf4, 0xf8, 0xa1, 0x00, 0xf8, 0xf9, 0xa1, 0x40, 0xf0, + 0xfe, 0xa1, 0x00, 0xf8, 0xfc, 0xa1, 0x40, 0xf0, 0x0d, 0xa2, 0x00, 0xf4, + 0x0a, 0xa2, 0x00, 0xf8, 0x0b, 0xa2, 0x40, 0xf0, 0x02, 0xa2, 0x00, 0xf4, + 0xff, 0xa1, 0x00, 0xf8, 0x00, 0xa2, 0x40, 0xe9, 0xe2, 0xa3, 0x80, 0xc3, + 0x01, 0xaa, 0x56, 0xef, 0xee, 0xa3, 0x80, 0x45, 0xf5, 0xf2, 0xa3, 0x80, + 0x1a, 0xf9, 0xf8, 0xa3, 0xc0, 0x00, 0xf0, 0xf9, 0xa3, 0x00, 0xf2, 0xfb, + 0xa3, 0x80, 0x08, 0xf4, 0xf6, 0xa3, 0x00, 0xf8, 0xf7, 0xa3, 0x40, 0xf8, + 0xfa, 0xa3, 0x40, 0xef, 0xea, 0xa3, 0x80, 0x15, 0xf0, 0xf3, 0xa3, 0x00, + 0xf2, 0xf5, 0xa3, 0x80, 0x08, 0xf4, 0xf0, 0xa3, 0x00, 0xf8, 0xf1, 0xa3, + 0x40, 0xf8, 0xf4, 0xa3, 0x40, 0xf0, 0xeb, 0xa3, 0x00, 0xf4, 0xe8, 0xa3, + 0x00, 0xf8, 0xe9, 0xa3, 0x40, 0xf0, 0xef, 0xa3, 0x00, 0xf4, 0xec, 0xa3, + 0x00, 0xf8, 0xed, 0xa3, 0x40, 0xe9, 0x1a, 0xa4, 0x80, 0x49, 0xef, 0x25, + 0xa4, 0x80, 0x38, 0xf5, 0x29, 0xa4, 0x80, 0x11, 0xf9, 0x2f, 0xa4, 0xc0, + 0x00, 0xf0, 0x30, 0xa4, 0x00, 0xf4, 0x2d, 0xa4, 0x00, 0xf8, 0x2e, 0xa4, + 0x40, 0xef, 0x21, 0xa4, 0x80, 0x15, 0xf0, 0x2a, 0xa4, 0x00, 0xf2, 0x2c, + 0xa4, 0x80, 0x08, 0xf4, 0x27, 0xa4, 0x00, 0xf8, 0x28, 0xa4, 0x40, 0xf8, + 0x2b, 0xa4, 0x40, 0xf0, 0x22, 0xa4, 0x00, 0xf8, 0x20, 0xa4, 0x40, 0xf0, + 0x26, 0xa4, 0x00, 0xf4, 0x23, 0xa4, 0x00, 0xf8, 0x24, 0xa4, 0x40, 0xe5, + 0x1e, 0xa4, 0x80, 0x0c, 0xf0, 0x1b, 0xa4, 0x00, 0xf4, 0x18, 0xa4, 0x00, + 0xf8, 0x19, 0xa4, 0x40, 0xf0, 0x1f, 0xa4, 0x00, 0xf4, 0x1c, 0xa4, 0x00, + 0xf8, 0x1d, 0xa4, 0x40, 0xe5, 0xe6, 0xa3, 0x80, 0x0c, 0xf0, 0xe3, 0xa3, + 0x00, 0xf4, 0xe0, 0xa3, 0x00, 0xf8, 0xe1, 0xa3, 0x40, 0xf0, 0xe7, 0xa3, + 0x00, 0xf4, 0xe4, 0xa3, 0x00, 0xf8, 0xe5, 0xa3, 0x40, 0xe5, 0x06, 0xa0, + 0x80, 0x13, 0xf0, 0x03, 0xa0, 0x00, 0xf4, 0x00, 0xa0, 0x80, 0x04, 0xf8, + 0x01, 0xa0, 0x40, 0x4c, 0x5a, 0x20, 0x15, 0xa0, 0x40, 0xf0, 0x07, 0xa0, + 0x00, 0xf4, 0x04, 0xa0, 0x00, 0xf8, 0x05, 0xa0, 0x40, 0xe1, 0x73, 0xa2, + 0x80, 0x97, 0x04, 0xe5, 0x7e, 0xa2, 0x80, 0x89, 0x04, 0xa9, 0xf9, 0x03, + 0xac, 0xec, 0x02, 0xad, 0xec, 0x01, 0xae, 0x8b, 0x01, 0xef, 0x7b, 0xa2, + 0x80, 0x7a, 0x42, 0x1a, 0x05, 0x77, 0xa2, 0x80, 0x67, 0xb8, 0x01, 0xff, + 0xe1, 0x50, 0xa2, 0x80, 0x53, 0xe5, 0x5b, 0xa2, 0x80, 0x46, 0xe9, 0x48, + 0xa2, 0x80, 0x24, 0xef, 0x58, 0xa2, 0x80, 0x13, 0x42, 0x1a, 0x05, 0x54, + 0xa2, 0xc0, 0x00, 0xf0, 0x55, 0xa2, 0x00, 0xf4, 0x52, 0xa2, 0x00, 0xf8, + 0x53, 0xa2, 0x40, 0xf0, 0x59, 0xa2, 0x00, 0xf4, 0x56, 0xa2, 0x00, 0xf8, + 0x57, 0xa2, 0x40, 0xe5, 0x4c, 0xa2, 0x80, 0x0c, 0xf0, 0x49, 0xa2, 0x00, + 0xf4, 0x46, 0xa2, 0x00, 0xf8, 0x47, 0xa2, 0x40, 0xf0, 0x4d, 0xa2, 0x00, + 0xf4, 0x4a, 0xa2, 0x00, 0xf8, 0x4b, 0xa2, 0x40, 0xf0, 0x5c, 0xa2, 0x00, + 0xf8, 0x5a, 0xa2, 0x40, 0xf0, 0x51, 0xa2, 0x00, 0xf4, 0x4e, 0xa2, 0x00, + 0xf8, 0x4f, 0xa2, 0x40, 0xf0, 0x78, 0xa2, 0x00, 0xf4, 0x75, 0xa2, 0x00, + 0xf8, 0x76, 0xa2, 0x40, 0xf0, 0x7c, 0xa2, 0x00, 0xf4, 0x79, 0xa2, 0x00, + 0xf8, 0x7a, 0xa2, 0x40, 0xe1, 0x72, 0xa1, 0x80, 0x4d, 0xe5, 0x7a, 0xa1, + 0x80, 0x40, 0xe9, 0x6a, 0xa1, 0x80, 0x1e, 0xaf, 0x10, 0xb5, 0x01, 0xff, + 0xef, 0x75, 0xa1, 0x80, 0x04, 0xf4, 0x7c, 0xa1, 0x40, 0xf8, 0x74, 0xa1, + 0x40, 0xf0, 0x78, 0xa1, 0x00, 0xf4, 0x76, 0xa1, 0x00, 0xf8, 0x77, 0xa1, + 0x40, 0xe5, 0x6e, 0xa1, 0x80, 0x0c, 0xf0, 0x6b, 0xa1, 0x00, 0xf4, 0x68, + 0xa1, 0x00, 0xf8, 0x69, 0xa1, 0x40, 0xf0, 0x6f, 0xa1, 0x00, 0xf4, 0x6c, + 0xa1, 0x00, 0xf8, 0x6d, 0xa1, 0x40, 0xf0, 0x7b, 0xa1, 0x00, 0xf8, 0x79, + 0xa1, 0x40, 0xf0, 0x73, 0xa1, 0x00, 0xf4, 0x70, 0xa1, 0x00, 0xf8, 0x71, + 0xa1, 0x40, 0xe1, 0x9a, 0xa0, 0x80, 0x6c, 0xe9, 0x93, 0xa0, 0x80, 0x4e, + 0xef, 0xa1, 0xa0, 0x80, 0x3d, 0xf5, 0xa5, 0xa0, 0x80, 0x16, 0xf9, 0xaa, + 0xa0, 0xc0, 0x00, 0xf0, 0xab, 0xa0, 0x00, 0xf2, 0xad, 0xa0, 0x80, 0x04, + 0xf8, 0xa9, 0xa0, 0x40, 0xf8, 0xac, 0xa0, 0x40, 0xef, 0x9d, 0xa0, 0x80, + 0x15, 0xf0, 0xa6, 0xa0, 0x00, 0xf2, 0xa8, 0xa0, 0x80, 0x08, 0xf4, 0xa3, + 0xa0, 0x00, 0xf8, 0xa4, 0xa0, 0x40, 0xf8, 0xa7, 0xa0, 0x40, 0xf0, 0x9e, + 0xa0, 0x00, 0xf8, 0x9c, 0xa0, 0x40, 0xf0, 0xa2, 0xa0, 0x00, 0xf4, 0x9f, + 0xa0, 0x00, 0xf8, 0xa0, 0xa0, 0x40, 0xe5, 0x96, 0xa0, 0x80, 0x0c, 0xf0, + 0x94, 0xa0, 0x00, 0xf4, 0x91, 0xa0, 0x00, 0xf8, 0x92, 0xa0, 0x40, 0xf0, + 0x97, 0xa0, 0x00, 0xf8, 0x95, 0xa0, 0x40, 0xf0, 0x9b, 0xa0, 0x00, 0xf4, + 0x98, 0xa0, 0x00, 0xf8, 0x99, 0xa0, 0x40, 0xe1, 0xa0, 0xa1, 0x80, 0x79, + 0xe5, 0xa9, 0xa1, 0x80, 0x6c, 0xe9, 0x99, 0xa1, 0x80, 0x4e, 0xef, 0xa6, + 0xa1, 0x80, 0x41, 0xf5, 0xad, 0xa1, 0x80, 0x1a, 0xf9, 0xb3, 0xa1, 0xc0, + 0x00, 0xf0, 0xb4, 0xa1, 0x00, 0xf2, 0xb6, 0xa1, 0x80, 0x08, 0xf4, 0xb1, + 0xa1, 0x00, 0xf8, 0xb2, 0xa1, 0x40, 0xf8, 0xb5, 0xa1, 0x40, 0xef, 0xa3, + 0xa1, 0x80, 0x15, 0xf0, 0xae, 0xa1, 0x00, 0xf2, 0xb0, 0xa1, 0x80, 0x08, + 0xf4, 0xab, 0xa1, 0x00, 0xf8, 0xac, 0xa1, 0x40, 0xf8, 0xaf, 0xa1, 0x40, + 0xf0, 0xa4, 0xa1, 0x00, 0xf8, 0xa2, 0xa1, 0x40, 0xf0, 0xa7, 0xa1, 0x00, + 0xf8, 0xa5, 0xa1, 0x40, 0xe5, 0x9c, 0xa1, 0x80, 0x0c, 0xf0, 0x9a, 0xa1, + 0x00, 0xf4, 0x97, 0xa1, 0x00, 0xf8, 0x98, 0xa1, 0x40, 0xf0, 0x9d, 0xa1, + 0x00, 0xf8, 0x9b, 0xa1, 0x40, 0xf0, 0xaa, 0xa1, 0x00, 0xf8, 0xa8, 0xa1, + 0x40, 0xf0, 0xa1, 0xa1, 0x00, 0xf4, 0x9e, 0xa1, 0x00, 0xf8, 0x9f, 0xa1, + 0x40, 0xe5, 0x70, 0xa2, 0x80, 0x04, 0xf4, 0x6e, 0xa2, 0x40, 0xf8, 0x6f, + 0xa2, 0x40, 0xf0, 0x7f, 0xa2, 0x00, 0xf8, 0x7d, 0xa2, 0x40, 0xf0, 0x74, + 0xa2, 0x00, 0xf4, 0x71, 0xa2, 0x00, 0xf8, 0x72, 0xa2, 0x40, 0xe1, 0xe4, + 0xa1, 0x80, 0xea, 0x01, 0xe5, 0xf0, 0xa1, 0x80, 0xd8, 0x01, 0xa7, 0x5e, + 0xe9, 0xdc, 0xa1, 0x80, 0x3c, 0xef, 0xec, 0xa1, 0x80, 0x2b, 0xf5, 0xf4, + 0xa1, 0xc0, 0x00, 0xef, 0xe8, 0xa1, 0x80, 0x15, 0xf0, 0xf5, 0xa1, 0x00, + 0xf2, 0xf7, 0xa1, 0x80, 0x08, 0xf4, 0xf2, 0xa1, 0x00, 0xf8, 0xf3, 0xa1, + 0x40, 0xf8, 0xf6, 0xa1, 0x40, 0xf0, 0xe9, 0xa1, 0x00, 0xf4, 0xe6, 0xa1, + 0x00, 0xf8, 0xe7, 0xa1, 0x40, 0xf0, 0xed, 0xa1, 0x00, 0xf4, 0xea, 0xa1, + 0x00, 0xf8, 0xeb, 0xa1, 0x40, 0xe5, 0xe0, 0xa1, 0x80, 0x0c, 0xf0, 0xdd, + 0xa1, 0x00, 0xf4, 0xda, 0xa1, 0x00, 0xf8, 0xdb, 0xa1, 0x40, 0xf0, 0xe1, + 0xa1, 0x00, 0xf4, 0xde, 0xa1, 0x00, 0xf8, 0xdf, 0xa1, 0x40, 0xe1, 0x1c, + 0xa2, 0x80, 0x67, 0xe5, 0x28, 0xa2, 0x80, 0x56, 0xe9, 0x16, 0xa2, 0x80, + 0x3c, 0xef, 0x24, 0xa2, 0x80, 0x2b, 0xf5, 0x2c, 0xa2, 0xc0, 0x00, 0xef, + 0x20, 0xa2, 0x80, 0x15, 0xf0, 0x2d, 0xa2, 0x00, 0xf2, 0x2f, 0xa2, 0x80, + 0x08, 0xf4, 0x2a, 0xa2, 0x00, 0xf8, 0x2b, 0xa2, 0x40, 0xf8, 0x2e, 0xa2, + 0x40, 0xf0, 0x21, 0xa2, 0x00, 0xf4, 0x1e, 0xa2, 0x00, 0xf8, 0x1f, 0xa2, + 0x40, 0xf0, 0x25, 0xa2, 0x00, 0xf4, 0x22, 0xa2, 0x00, 0xf8, 0x23, 0xa2, + 0x40, 0xe5, 0x18, 0xa2, 0x80, 0x08, 0xf4, 0x14, 0xa2, 0x00, 0xf8, 0x15, + 0xa2, 0x40, 0xf0, 0x19, 0xa2, 0x00, 0xf8, 0x17, 0xa2, 0x40, 0xf0, 0x29, + 0xa2, 0x00, 0xf4, 0x26, 0xa2, 0x00, 0xf8, 0x27, 0xa2, 0x40, 0xf0, 0x1d, + 0xa2, 0x00, 0xf4, 0x1a, 0xa2, 0x00, 0xf8, 0x1b, 0xa2, 0x40, 0xf0, 0xf1, + 0xa1, 0x00, 0xf4, 0xee, 0xa1, 0x00, 0xf8, 0xef, 0xa1, 0x40, 0xf0, 0xe5, + 0xa1, 0x00, 0xf4, 0xe2, 0xa1, 0x00, 0xf8, 0xe3, 0xa1, 0x40, 0xe1, 0xd3, + 0xa0, 0x80, 0x49, 0xe9, 0xcf, 0xa0, 0x80, 0x38, 0xef, 0xd6, 0xa0, 0x80, + 0x2b, 0xf5, 0xda, 0xa0, 0x80, 0x11, 0xf9, 0xe0, 0xa0, 0xc0, 0x00, 0xf0, + 0xe1, 0xa0, 0x00, 0xf4, 0xde, 0xa0, 0x00, 0xf8, 0xdf, 0xa0, 0x40, 0xf0, + 0xdb, 0xa0, 0x00, 0xf2, 0xdd, 0xa0, 0x80, 0x08, 0xf4, 0xd8, 0xa0, 0x00, + 0xf8, 0xd9, 0xa0, 0x40, 0xf8, 0xdc, 0xa0, 0x40, 0xf0, 0xd7, 0xa0, 0x00, + 0xf8, 0xd5, 0xa0, 0x40, 0xf0, 0xd0, 0xa0, 0x00, 0xf4, 0xcd, 0xa0, 0x00, + 0xf8, 0xce, 0xa0, 0x40, 0xf0, 0xd4, 0xa0, 0x00, 0xf4, 0xd1, 0xa0, 0x00, + 0xf8, 0xd2, 0xa0, 0x40, 0xf8, 0x13, 0xa0, 0x40, 0xe1, 0x09, 0xa1, 0x80, + 0xd5, 0x01, 0xa4, 0x5f, 0xe5, 0x12, 0xa1, 0x80, 0x52, 0xe9, 0x02, 0xa1, + 0x80, 0x34, 0xef, 0x0f, 0xa1, 0x80, 0x23, 0xf5, 0x16, 0xa1, 0xc0, 0x00, + 0xef, 0x0c, 0xa1, 0x80, 0x15, 0xf0, 0x17, 0xa1, 0x00, 0xf2, 0x19, 0xa1, + 0x80, 0x08, 0xf4, 0x14, 0xa1, 0x00, 0xf8, 0x15, 0xa1, 0x40, 0xf8, 0x18, + 0xa1, 0x40, 0xf8, 0x0b, 0xa1, 0x40, 0xf0, 0x10, 0xa1, 0x00, 0xf4, 0x0d, + 0xa1, 0x00, 0xf8, 0x0e, 0xa1, 0x40, 0xe5, 0x05, 0xa1, 0x80, 0x0c, 0xf0, + 0x03, 0xa1, 0x00, 0xf4, 0x00, 0xa1, 0x00, 0xf8, 0x01, 0xa1, 0x40, 0xf0, + 0x06, 0xa1, 0x00, 0xf8, 0x04, 0xa1, 0x40, 0xf0, 0x13, 0xa1, 0x00, 0xf8, + 0x11, 0xa1, 0x40, 0xe1, 0x3f, 0xa1, 0x80, 0x63, 0xe5, 0x49, 0xa1, 0x80, + 0x56, 0xe9, 0x38, 0xa1, 0x80, 0x38, 0xef, 0x46, 0xa1, 0x80, 0x27, 0xf5, + 0x4d, 0xa1, 0xc0, 0x00, 0xef, 0x42, 0xa1, 0x80, 0x15, 0xf0, 0x4e, 0xa1, + 0x00, 0xf2, 0x50, 0xa1, 0x80, 0x08, 0xf4, 0x4b, 0xa1, 0x00, 0xf8, 0x4c, + 0xa1, 0x40, 0xf8, 0x4f, 0xa1, 0x40, 0xf0, 0x43, 0xa1, 0x00, 0xf8, 0x41, + 0xa1, 0x40, 0xf0, 0x47, 0xa1, 0x00, 0xf4, 0x44, 0xa1, 0x00, 0xf8, 0x45, + 0xa1, 0x40, 0xe5, 0x3b, 0xa1, 0x80, 0x0c, 0xf0, 0x39, 0xa1, 0x00, 0xf4, + 0x36, 0xa1, 0x00, 0xf8, 0x37, 0xa1, 0x40, 0xf0, 0x3c, 0xa1, 0x00, 0xf8, + 0x3a, 0xa1, 0x40, 0xf0, 0x4a, 0xa1, 0x00, 0xf8, 0x48, 0xa1, 0x40, 0xf0, + 0x40, 0xa1, 0x00, 0xf4, 0x3d, 0xa1, 0x00, 0xf8, 0x3e, 0xa1, 0x40, 0xf0, + 0x0a, 0xa1, 0x00, 0xf4, 0x07, 0xa1, 0x00, 0xf8, 0x08, 0xa1, 0x40, 0xe1, + 0xb8, 0xa2, 0x80, 0xf8, 0x01, 0xe5, 0xc2, 0xa2, 0x80, 0xea, 0x01, 0xa8, + 0x74, 0xe9, 0xb0, 0xa2, 0x80, 0x52, 0xef, 0xbf, 0xa2, 0x80, 0x41, 0xf5, + 0xc6, 0xa2, 0x80, 0x1a, 0xf9, 0xcc, 0xa2, 0xc0, 0x00, 0xf0, 0xcd, 0xa2, + 0x00, 0xf2, 0xcf, 0xa2, 0x80, 0x08, 0xf4, 0xca, 0xa2, 0x00, 0xf8, 0xcb, + 0xa2, 0x40, 0xf8, 0xce, 0xa2, 0x40, 0xef, 0xbb, 0xa2, 0x80, 0x15, 0xf0, + 0xc7, 0xa2, 0x00, 0xf2, 0xc9, 0xa2, 0x80, 0x08, 0xf4, 0xc4, 0xa2, 0x00, + 0xf8, 0xc5, 0xa2, 0x40, 0xf8, 0xc8, 0xa2, 0x40, 0xf0, 0xbc, 0xa2, 0x00, + 0xf8, 0xba, 0xa2, 0x40, 0xf0, 0xc0, 0xa2, 0x00, 0xf4, 0xbd, 0xa2, 0x00, + 0xf8, 0xbe, 0xa2, 0x40, 0xe5, 0xb4, 0xa2, 0x80, 0x0c, 0xf0, 0xb1, 0xa2, + 0x00, 0xf4, 0xae, 0xa2, 0x00, 0xf8, 0xaf, 0xa2, 0x40, 0xf0, 0xb5, 0xa2, + 0x00, 0xf4, 0xb2, 0xa2, 0x00, 0xf8, 0xb3, 0xa2, 0x40, 0xe1, 0x63, 0xa3, + 0x80, 0x63, 0xe5, 0x6f, 0xa3, 0x80, 0x52, 0xef, 0x6b, 0xa3, 0x80, 0x41, + 0xf5, 0x72, 0xa3, 0x80, 0x1a, 0xf9, 0x78, 0xa3, 0xc0, 0x00, 0xf0, 0x79, + 0xa3, 0x00, 0xf2, 0x7b, 0xa3, 0x80, 0x08, 0xf4, 0x76, 0xa3, 0x00, 0xf8, + 0x77, 0xa3, 0x40, 0xf8, 0x7a, 0xa3, 0x40, 0xef, 0x67, 0xa3, 0x80, 0x11, + 0xf0, 0x73, 0xa3, 0x00, 0xf2, 0x75, 0xa3, 0x80, 0x04, 0xf8, 0x71, 0xa3, + 0x40, 0xf8, 0x74, 0xa3, 0x40, 0xf0, 0x68, 0xa3, 0x00, 0xf4, 0x65, 0xa3, + 0x00, 0xf8, 0x66, 0xa3, 0x40, 0xf0, 0x6c, 0xa3, 0x00, 0xf4, 0x69, 0xa3, + 0x00, 0xf8, 0x6a, 0xa3, 0x40, 0xf0, 0x70, 0xa3, 0x00, 0xf4, 0x6d, 0xa3, + 0x00, 0xf8, 0x6e, 0xa3, 0x40, 0xf0, 0x64, 0xa3, 0x00, 0xf4, 0x61, 0xa3, + 0x00, 0xf8, 0x62, 0xa3, 0x40, 0xf0, 0xc3, 0xa2, 0x00, 0xf8, 0xc1, 0xa2, + 0x40, 0xf0, 0xb9, 0xa2, 0x00, 0xf4, 0xb6, 0xa2, 0x00, 0xf8, 0xb7, 0xa2, + 0x40, 0xe1, 0x20, 0xa0, 0x80, 0x8d, 0x02, 0xa2, 0x81, 0x01, 0xe5, 0x2a, + 0xa0, 0x80, 0x74, 0xe9, 0x18, 0xa0, 0x80, 0x52, 0xef, 0x27, 0xa0, 0x80, + 0x41, 0xf5, 0x2e, 0xa0, 0x80, 0x1a, 0xf9, 0x34, 0xa0, 0xc0, 0x00, 0xf0, + 0x35, 0xa0, 0x00, 0xf2, 0x37, 0xa0, 0x80, 0x08, 0xf4, 0x32, 0xa0, 0x00, + 0xf8, 0x33, 0xa0, 0x40, 0xf8, 0x36, 0xa0, 0x40, 0xef, 0x23, 0xa0, 0x80, + 0x15, 0xf0, 0x2f, 0xa0, 0x00, 0xf2, 0x31, 0xa0, 0x80, 0x08, 0xf4, 0x2c, + 0xa0, 0x00, 0xf8, 0x2d, 0xa0, 0x40, 0xf8, 0x30, 0xa0, 0x40, 0xf0, 0x24, + 0xa0, 0x00, 0xf8, 0x22, 0xa0, 0x40, 0xf0, 0x28, 0xa0, 0x00, 0xf4, 0x25, + 0xa0, 0x00, 0xf8, 0x26, 0xa0, 0x40, 0xe5, 0x1c, 0xa0, 0x80, 0x0c, 0xf0, + 0x19, 0xa0, 0x00, 0xf4, 0x16, 0xa0, 0x00, 0xf8, 0x17, 0xa0, 0x40, 0xf0, + 0x1d, 0xa0, 0x00, 0xf4, 0x1a, 0xa0, 0x00, 0xf8, 0x1b, 0xa0, 0x40, 0xf0, + 0x2b, 0xa0, 0x00, 0xf8, 0x29, 0xa0, 0x40, 0xe1, 0x60, 0xa0, 0x80, 0x78, + 0xe5, 0x6a, 0xa0, 0x80, 0x6b, 0xe9, 0x58, 0xa0, 0x80, 0x49, 0xef, 0x67, + 0xa0, 0x80, 0x38, 0xf5, 0x6e, 0xa0, 0x80, 0x11, 0xf9, 0x74, 0xa0, 0xc0, + 0x00, 0xf0, 0x75, 0xa0, 0x00, 0xf4, 0x72, 0xa0, 0x00, 0xf8, 0x73, 0xa0, + 0x40, 0xef, 0x63, 0xa0, 0x80, 0x15, 0xf0, 0x6f, 0xa0, 0x00, 0xf2, 0x71, + 0xa0, 0x80, 0x08, 0xf4, 0x6c, 0xa0, 0x00, 0xf8, 0x6d, 0xa0, 0x40, 0xf8, + 0x70, 0xa0, 0x40, 0xf0, 0x64, 0xa0, 0x00, 0xf8, 0x62, 0xa0, 0x40, 0xf0, + 0x68, 0xa0, 0x00, 0xf4, 0x65, 0xa0, 0x00, 0xf8, 0x66, 0xa0, 0x40, 0xe5, + 0x5c, 0xa0, 0x80, 0x0c, 0xf0, 0x59, 0xa0, 0x00, 0xf4, 0x56, 0xa0, 0x00, + 0xf8, 0x57, 0xa0, 0x40, 0xf0, 0x5d, 0xa0, 0x00, 0xf4, 0x5a, 0xa0, 0x00, + 0xf8, 0x5b, 0xa0, 0x40, 0xf0, 0x6b, 0xa0, 0x00, 0xf8, 0x69, 0xa0, 0x40, + 0xf0, 0x61, 0xa0, 0x00, 0xf4, 0x5e, 0xa0, 0x00, 0xf8, 0x5f, 0xa0, 0x40, + 0xf0, 0x21, 0xa0, 0x00, 0xf4, 0x1e, 0xa0, 0x00, 0xf8, 0x1f, 0xa0, 0x40, + 0xf0, 0x0b, 0xa0, 0x00, 0xf4, 0x08, 0xa0, 0x00, 0xf8, 0x09, 0xa0, 0x40, + 0xa2, 0xd3, 0x02, 0xa3, 0xb1, 0x02, 0xa4, 0xa4, 0x02, 0xa7, 0x83, 0x02, + 0xa8, 0xe5, 0x01, 0xaa, 0xcc, 0x01, 0xab, 0xbf, 0x01, 0xac, 0xad, 0x01, + 0xad, 0xa0, 0x01, 0xae, 0x83, 0x01, 0x42, 0x1f, 0x00, 0xa9, 0xa4, 0x00, + 0xb0, 0x6f, 0x43, 0x94, 0xf4, 0x90, 0xa4, 0x00, 0xb3, 0x49, 0xb4, 0x3d, + 0xb6, 0x2f, 0x42, 0x15, 0x02, 0xb8, 0xa4, 0x00, 0xb9, 0x1d, 0xba, 0x01, + 0xff, 0xe1, 0xb2, 0xa4, 0x00, 0x42, 0x1b, 0x05, 0xab, 0xa4, 0x00, 0xb5, + 0x06, 0x44, 0x65, 0xf3, 0xc4, 0xa4, 0x40, 0xf0, 0xa2, 0xa4, 0x00, 0xf2, + 0xc1, 0xa4, 0x40, 0x42, 0x52, 0x00, 0xae, 0xa4, 0x00, 0xef, 0x9d, 0xa4, + 0x40, 0x42, 0xeb, 0x0a, 0xb1, 0xa4, 0x00, 0x42, 0x42, 0x00, 0xaf, 0xa4, + 0x40, 0x42, 0x8a, 0x00, 0xa0, 0xa4, 0x00, 0xf5, 0xa8, 0xa4, 0x40, 0xa8, + 0x06, 0x42, 0x5a, 0x03, 0x95, 0xa4, 0x40, 0x42, 0x8a, 0x00, 0xc0, 0xa4, + 0x00, 0x42, 0x1f, 0x00, 0xc2, 0xa4, 0x00, 0x42, 0x42, 0x00, 0xba, 0xa4, + 0x00, 0xf9, 0xb0, 0xa4, 0x40, 0x42, 0x29, 0x08, 0x9e, 0xa4, 0x00, 0x42, + 0x45, 0x69, 0xac, 0xa4, 0x40, 0x43, 0xd8, 0xbb, 0xc5, 0xa4, 0x00, 0xb9, + 0x06, 0x43, 0xe2, 0xf4, 0xb4, 0xa4, 0x40, 0x42, 0xba, 0x04, 0x93, 0xa4, + 0x00, 0x42, 0x1f, 0x00, 0xa7, 0xa4, 0x40, 0xe9, 0x98, 0xa4, 0x00, 0x42, + 0x1f, 0x00, 0x9c, 0xa4, 0x40, 0xe9, 0x91, 0xa4, 0x80, 0x06, 0x42, 0x05, + 0x22, 0x9a, 0xa4, 0x40, 0xe5, 0xbb, 0xa4, 0x40, 0xe5, 0xc6, 0xa4, 0x00, + 0x42, 0x52, 0x00, 0x92, 0xa4, 0x40, 0xaa, 0x04, 0xef, 0xb3, 0xa4, 0x40, + 0x42, 0xf4, 0x02, 0xb7, 0xa4, 0x00, 0x42, 0x29, 0x08, 0xaa, 0xa4, 0x00, + 0xf9, 0xb5, 0xa4, 0x40, 0x42, 0xc3, 0x07, 0xad, 0xa4, 0x00, 0xb8, 0x01, + 0xff, 0x42, 0x52, 0x00, 0x99, 0xa4, 0x00, 0x42, 0x1f, 0x00, 0xbf, 0xa4, + 0x00, 0x42, 0x1a, 0x05, 0x9f, 0xa4, 0x40, 0xe1, 0xa1, 0xa4, 0x00, 0x42, + 0xeb, 0x0a, 0x97, 0xa4, 0x00, 0xa7, 0x06, 0x42, 0x1b, 0x05, 0xb6, 0xa4, + 0x40, 0x42, 0x1f, 0x00, 0x96, 0xa4, 0x00, 0x42, 0x1a, 0x05, 0xa6, 0xa4, + 0x40, 0x43, 0x00, 0x74, 0xa4, 0xa4, 0x00, 0xf5, 0xb9, 0xa4, 0x40, 0x42, + 0xb0, 0x01, 0xc3, 0xa4, 0x00, 0x42, 0xba, 0x04, 0xbe, 0xa4, 0x00, 0x43, + 0xaf, 0xf4, 0xbd, 0xa4, 0x00, 0xf9, 0xbc, 0xa4, 0xc0, 0x00, 0xf0, 0x94, + 0xa4, 0x00, 0xf4, 0xa3, 0xa4, 0x40, 0x43, 0x6a, 0x0d, 0x9b, 0xa4, 0x00, + 0x42, 0x42, 0x00, 0xa5, 0xa4, 0x40, 0x4a, 0x2b, 0xad, 0x9b, 0xf4, 0x01, + 0x46, 0xc3, 0x04, 0xa5, 0x00, 0x00, 0x05, 0xa9, 0xec, 0x01, 0xff, 0x0a, + 0x41, 0x59, 0xa0, 0x02, 0x50, 0x96, 0x63, 0xad, 0x0e, 0x01, 0x07, 0xec, + 0x05, 0x01, 0xff, 0x42, 0xb7, 0x05, 0x81, 0x0e, 0x01, 0xa3, 0xf8, 0x01, + 0x02, 0xf0, 0x10, 0xeb, 0x01, 0xa5, 0xd4, 0x01, 0x42, 0x0c, 0x08, 0x99, + 0x0e, 0x01, 0x43, 0xef, 0xb8, 0x9f, 0x0e, 0x01, 0xa8, 0xb9, 0x01, 0x42, + 0x56, 0x19, 0x90, 0x0e, 0x01, 0xab, 0xa4, 0x01, 0x43, 0xb0, 0x00, 0xa0, + 0x0e, 0x81, 0x96, 0x01, 0x43, 0xad, 0x90, 0xa1, 0x0e, 0x01, 0x43, 0xdc, + 0x22, 0xa2, 0x0e, 0x01, 0x42, 0xd1, 0x00, 0xa5, 0x0e, 0x01, 0xb0, 0x78, + 0x43, 0x43, 0x14, 0x9c, 0x0e, 0x01, 0xb2, 0x66, 0xb3, 0x4e, 0xb4, 0x42, + 0x42, 0x48, 0x04, 0xa3, 0x0e, 0x01, 0x42, 0xf5, 0x0a, 0x9a, 0x0e, 0x81, + 0x2f, 0x43, 0x8a, 0x8a, 0xa4, 0x0e, 0x01, 0xb8, 0x1d, 0x43, 0xd6, 0xf4, + 0xa8, 0x0e, 0x81, 0x10, 0xba, 0x01, 0xff, 0xe1, 0x8f, 0x0e, 0x81, 0x04, + 0xe5, 0x96, 0x0e, 0x41, 0xec, 0x8c, 0x0e, 0x41, 0x56, 0x61, 0x32, 0xb1, + 0x0e, 0x41, 0xe1, 0x8a, 0x0e, 0x01, 0x44, 0x31, 0xf0, 0x98, 0x0e, 0x41, + 0x4f, 0x06, 0x69, 0x9b, 0x0e, 0x41, 0xe1, 0x95, 0x0e, 0x01, 0x42, 0xb0, + 0x01, 0x84, 0x0e, 0x41, 0x42, 0xe8, 0x01, 0x93, 0x0e, 0x01, 0xe5, 0x85, + 0x0e, 0x01, 0x43, 0x7a, 0x16, 0x92, 0x0e, 0x01, 0x42, 0x9e, 0x01, 0x91, + 0x0e, 0x41, 0xe1, 0x8d, 0x0e, 0x01, 0x42, 0x22, 0x00, 0x8e, 0x0e, 0x41, + 0xe5, 0x82, 0x0e, 0x01, 0x42, 0xb0, 0x01, 0x83, 0x0e, 0x41, 0x4f, 0x75, + 0x3b, 0xb0, 0x0e, 0x41, 0x42, 0x44, 0x14, 0x9d, 0x0e, 0x01, 0x43, 0x36, + 0x50, 0x9e, 0x0e, 0x41, 0x42, 0xed, 0x10, 0xa7, 0x0e, 0x01, 0x42, 0x22, + 0x00, 0x89, 0x0e, 0x41, 0x43, 0x9c, 0x6a, 0x80, 0x0e, 0x01, 0xf4, 0xa9, + 0x0e, 0x01, 0xf7, 0xa6, 0x0e, 0x01, 0x42, 0x03, 0x1d, 0x97, 0x0e, 0x41, + 0xe4, 0x94, 0x0e, 0x01, 0xec, 0x8b, 0x0e, 0x41, 0xa8, 0x06, 0x42, 0x29, + 0x02, 0x86, 0x0e, 0x41, 0x43, 0x1c, 0x39, 0x88, 0x0e, 0x01, 0x42, 0x29, + 0x02, 0x87, 0x0e, 0x41, 0x4a, 0x0f, 0xab, 0xab, 0x0e, 0x01, 0x4a, 0xa3, + 0xad, 0xac, 0x0e, 0x41, 0x10, 0x46, 0x65, 0x06, 0x4a, 0x16, 0x83, 0x71, + 0xf9, 0x41, 0x48, 0x48, 0xc9, 0xf4, 0x6f, 0x01, 0xb4, 0x01, 0xff, 0x4f, + 0x4c, 0x6e, 0xf5, 0x6f, 0x01, 0x48, 0x88, 0xcc, 0xf6, 0x6f, 0x41, 0x53, + 0x7d, 0x47, 0x27, 0x23, 0x00, 0x44, 0xcd, 0xec, 0x7b, 0xfa, 0x01, 0x07, + 0xbe, 0xd1, 0x06, 0x42, 0x0c, 0x00, 0xbb, 0x22, 0x40, 0x06, 0x0c, 0x03, + 0x31, 0x04, 0xda, 0x05, 0x01, 0xff, 0xa3, 0x1e, 0x48, 0x90, 0xc5, 0x62, + 0xfa, 0x01, 0x47, 0x40, 0xd1, 0x60, 0xfa, 0x01, 0x45, 0x20, 0xb3, 0x63, + 0xfa, 0x01, 0x48, 0x20, 0xc8, 0x61, 0xfa, 0x01, 0x47, 0xe6, 0xd5, 0x66, + 0xfa, 0x41, 0x45, 0x52, 0xe4, 0x65, 0xfa, 0x01, 0x46, 0xc5, 0x57, 0x64, + 0xfa, 0x41, 0xa3, 0x1e, 0x48, 0x90, 0xc5, 0x69, 0xfa, 0x01, 0x47, 0x40, + 0xd1, 0x67, 0xfa, 0x01, 0x45, 0x20, 0xb3, 0x6a, 0xfa, 0x01, 0x48, 0x20, + 0xc8, 0x68, 0xfa, 0x01, 0x47, 0xe6, 0xd5, 0x6d, 0xfa, 0x41, 0x45, 0x52, + 0xe4, 0x6c, 0xfa, 0x01, 0x46, 0xc5, 0x57, 0x6b, 0xfa, 0x41, 0xa1, 0xa0, + 0x0e, 0xa5, 0xeb, 0x0d, 0xa8, 0xf6, 0x03, 0xa9, 0x8c, 0x01, 0xaf, 0x23, + 0xb2, 0x01, 0xff, 0x4d, 0x89, 0x80, 0x81, 0xf3, 0x01, 0xa5, 0x06, 0x4a, + 0x33, 0xa2, 0x0d, 0x27, 0x40, 0x4b, 0x58, 0x99, 0x40, 0x22, 0x00, 0x43, + 0xad, 0x25, 0x27, 0xf5, 0x01, 0x46, 0x1c, 0xe0, 0x3c, 0xf9, 0x41, 0x47, + 0xe4, 0xd2, 0x3a, 0xf4, 0x01, 0xad, 0x2f, 0x46, 0xc3, 0x04, 0xa9, 0x20, + 0x00, 0x42, 0x79, 0x0c, 0xb5, 0xfa, 0x01, 0xb2, 0x01, 0xff, 0x02, 0x06, + 0x00, 0x10, 0x46, 0xa6, 0xdd, 0xfa, 0xf5, 0x01, 0xed, 0xb1, 0xfa, 0x01, + 0x49, 0xbe, 0xbe, 0x1f, 0xf6, 0x41, 0x46, 0xa0, 0x61, 0x60, 0x20, 0x00, + 0x54, 0xdc, 0x45, 0x31, 0x2e, 0x40, 0x42, 0x1a, 0x00, 0x69, 0xf4, 0x81, + 0x06, 0x4a, 0xf7, 0xa9, 0xba, 0xf6, 0x41, 0x50, 0x96, 0x60, 0x6f, 0xf4, + 0x01, 0x02, 0x31, 0x01, 0x01, 0xff, 0x45, 0xd4, 0xe4, 0x62, 0xf4, 0x01, + 0x47, 0x05, 0xd0, 0x5a, 0xf4, 0x01, 0x43, 0x94, 0x21, 0x52, 0xf4, 0x01, + 0x46, 0x4b, 0xbc, 0x61, 0xf4, 0x41, 0x0a, 0xd7, 0x1b, 0x45, 0x52, 0xf1, + 0x51, 0x3e, 0x2e, 0x00, 0x4b, 0x04, 0x9f, 0x40, 0xf9, 0x01, 0xae, 0x11, + 0x02, 0x88, 0x00, 0x01, 0xff, 0x4a, 0x11, 0xa9, 0xae, 0xf5, 0x01, 0x44, + 0xec, 0x00, 0xdc, 0xf6, 0x41, 0xa4, 0x10, 0x47, 0x91, 0xd0, 0x77, 0xf3, + 0x01, 0xe7, 0xbd, 0xfa, 0x01, 0x49, 0x74, 0xb0, 0x09, 0xf6, 0x41, 0x80, + 0x06, 0x42, 0xd1, 0x00, 0x9f, 0xfa, 0x41, 0x4c, 0xc7, 0x8c, 0x2c, 0xf3, + 0x01, 0x45, 0x29, 0xe5, 0x90, 0xf3, 0x41, 0x0a, 0xa5, 0x01, 0xfb, 0x01, + 0x0a, 0xea, 0x01, 0xd8, 0x01, 0x06, 0xb4, 0x01, 0x8e, 0x01, 0x0b, 0xb3, + 0x02, 0x6c, 0x06, 0xa1, 0x20, 0x23, 0x08, 0x50, 0x02, 0x01, 0xff, 0x4a, + 0xec, 0x3e, 0x69, 0xf8, 0x01, 0x50, 0xe6, 0x3e, 0x79, 0xf8, 0x01, 0x50, + 0xa6, 0x64, 0x61, 0xf8, 0x01, 0x51, 0x1c, 0x5c, 0x71, 0xf8, 0x01, 0x55, + 0xe1, 0x3e, 0x81, 0xf8, 0x41, 0x05, 0xad, 0x23, 0x23, 0x05, 0xbe, 0x1a, + 0x01, 0xff, 0x4a, 0xec, 0x3e, 0x6f, 0xf8, 0x01, 0x50, 0xe6, 0x3e, 0x7f, + 0xf8, 0x01, 0x50, 0xa6, 0x64, 0x67, 0xf8, 0x01, 0x51, 0x1c, 0x5c, 0x77, + 0xf8, 0x01, 0x55, 0xe1, 0x3e, 0x87, 0xf8, 0x41, 0x4a, 0xec, 0x3e, 0x6e, + 0xf8, 0x01, 0x50, 0xe6, 0x3e, 0x7e, 0xf8, 0x01, 0x50, 0xa6, 0x64, 0x66, + 0xf8, 0x01, 0x51, 0x1c, 0x5c, 0x76, 0xf8, 0x01, 0x55, 0xe1, 0x3e, 0x86, + 0xf8, 0x41, 0x4a, 0xec, 0x3e, 0x6a, 0xf8, 0x01, 0x50, 0xe6, 0x3e, 0x7a, + 0xf8, 0x01, 0x50, 0xa6, 0x64, 0x62, 0xf8, 0x01, 0x51, 0x1c, 0x5c, 0x72, + 0xf8, 0x01, 0x55, 0xe1, 0x3e, 0x82, 0xf8, 0x41, 0x05, 0xad, 0x23, 0x23, + 0x05, 0xbe, 0x1a, 0x01, 0xff, 0x4a, 0xec, 0x3e, 0x6c, 0xf8, 0x01, 0x50, + 0xe6, 0x3e, 0x7c, 0xf8, 0x01, 0x50, 0xa6, 0x64, 0x64, 0xf8, 0x01, 0x51, + 0x1c, 0x5c, 0x74, 0xf8, 0x01, 0x55, 0xe1, 0x3e, 0x84, 0xf8, 0x41, 0x4a, + 0xec, 0x3e, 0x6d, 0xf8, 0x01, 0x50, 0xe6, 0x3e, 0x7d, 0xf8, 0x01, 0x50, + 0xa6, 0x64, 0x65, 0xf8, 0x01, 0x51, 0x1c, 0x5c, 0x75, 0xf8, 0x01, 0x55, + 0xe1, 0x3e, 0x85, 0xf8, 0x41, 0x4a, 0xec, 0x3e, 0x68, 0xf8, 0x01, 0x50, + 0xe6, 0x3e, 0x78, 0xf8, 0x01, 0x50, 0xa6, 0x64, 0x60, 0xf8, 0x01, 0x51, + 0x1c, 0x5c, 0x70, 0xf8, 0x01, 0x55, 0xe1, 0x3e, 0x80, 0xf8, 0x41, 0x4a, + 0xec, 0x3e, 0x6b, 0xf8, 0x01, 0x50, 0xe6, 0x3e, 0x7b, 0xf8, 0x01, 0x50, + 0xa6, 0x64, 0x63, 0xf8, 0x01, 0x51, 0x1c, 0x5c, 0x73, 0xf8, 0x01, 0x55, + 0xe1, 0x3e, 0x83, 0xf8, 0x41, 0x43, 0x67, 0x00, 0x0b, 0xf4, 0x01, 0x43, + 0x2d, 0x13, 0xde, 0xf6, 0x81, 0xd8, 0x09, 0x03, 0xaf, 0x02, 0x01, 0xff, + 0x80, 0x06, 0x5b, 0x0b, 0x1a, 0xb3, 0x27, 0x40, 0x12, 0x2f, 0x50, 0xba, + 0x09, 0x46, 0xb2, 0x21, 0xe6, 0x25, 0x00, 0xa3, 0xb1, 0x06, 0xa4, 0xc0, + 0x05, 0x59, 0xe0, 0x12, 0x55, 0x27, 0x00, 0xa6, 0x83, 0x05, 0xa8, 0xc3, + 0x04, 0xac, 0xe5, 0x03, 0xad, 0xb7, 0x03, 0x43, 0x40, 0x9d, 0x11, 0x27, + 0x00, 0xb0, 0x97, 0x03, 0x56, 0x81, 0x36, 0x54, 0x27, 0x00, 0xb2, 0xd4, + 0x02, 0xb3, 0x7c, 0xb4, 0x5a, 0x02, 0x50, 0x02, 0x28, 0x03, 0x32, 0x00, + 0x01, 0xff, 0x06, 0x35, 0x00, 0x06, 0x4e, 0x84, 0x0a, 0x1e, 0x2b, 0x40, + 0x43, 0x16, 0x00, 0xfe, 0x2a, 0x00, 0x47, 0xdf, 0x66, 0x2f, 0x2b, 0x00, + 0x49, 0x83, 0x47, 0xaf, 0x25, 0xc0, 0x00, 0x54, 0xec, 0x3f, 0x06, 0xce, + 0x41, 0x0a, 0x9b, 0x01, 0x1e, 0x0a, 0x8c, 0x0b, 0x01, 0xff, 0x47, 0x4a, + 0x4e, 0xca, 0xfb, 0x01, 0x4e, 0x26, 0x0c, 0xb5, 0x25, 0x00, 0x48, 0x01, + 0x02, 0xb3, 0x25, 0xc0, 0x00, 0x49, 0x75, 0x3b, 0xec, 0x25, 0x40, 0x4e, + 0xe0, 0x26, 0x46, 0xf4, 0x01, 0x45, 0x8f, 0x13, 0x1d, 0x26, 0x40, 0x48, + 0x17, 0x3d, 0x0f, 0x26, 0x00, 0x52, 0x55, 0x54, 0x7e, 0xf5, 0x01, 0xb2, + 0x06, 0x57, 0x07, 0x32, 0xd7, 0x26, 0x40, 0x47, 0xf4, 0xce, 0xe2, 0x23, + 0x00, 0x66, 0x4b, 0x07, 0xc1, 0x27, 0x40, 0x47, 0x47, 0x3e, 0x04, 0x27, + 0x00, 0x49, 0xa0, 0xb8, 0x46, 0xfe, 0x00, 0x4a, 0x86, 0x5f, 0x16, 0x26, + 0x00, 0xad, 0xa2, 0x01, 0x49, 0xe6, 0xbd, 0x64, 0x26, 0x00, 0x45, 0xd7, + 0x05, 0xa1, 0x25, 0x80, 0x2e, 0x43, 0x32, 0x13, 0x06, 0x26, 0x00, 0x42, + 0x42, 0x0b, 0x23, 0xf3, 0xc1, 0x00, 0x80, 0x01, 0xff, 0x4c, 0xa3, 0x8c, + 0x25, 0xf3, 0x81, 0x11, 0x05, 0x51, 0x00, 0x01, 0xff, 0x44, 0x46, 0x66, + 0x3c, 0x26, 0x00, 0x4b, 0xb6, 0xa2, 0x24, 0xf3, 0x41, 0x4a, 0x87, 0xa6, + 0x26, 0xf3, 0x41, 0x80, 0x01, 0xff, 0x46, 0x03, 0x8d, 0x33, 0xf5, 0x01, + 0x11, 0x51, 0x0a, 0x48, 0x05, 0x51, 0x00, 0x01, 0xff, 0x54, 0xf0, 0x40, + 0x85, 0x23, 0x00, 0xac, 0x24, 0xb2, 0x16, 0x06, 0x6d, 0x02, 0x06, 0x57, + 0xc2, 0x31, 0xeb, 0x25, 0x40, 0x4d, 0x74, 0x0d, 0xf0, 0x25, 0x00, 0x4e, + 0x64, 0x45, 0xf3, 0x25, 0x40, 0x4e, 0xb2, 0x72, 0xe5, 0x27, 0x00, 0x4e, + 0x20, 0x19, 0xa2, 0x25, 0x40, 0x4d, 0x52, 0x79, 0xe4, 0x27, 0x00, 0x05, + 0x14, 0x01, 0x01, 0xff, 0x4d, 0x74, 0x0d, 0xf1, 0x25, 0x00, 0x4e, 0x64, + 0x45, 0xf2, 0x25, 0x40, 0x4d, 0xc4, 0x85, 0x95, 0xf7, 0x01, 0x4c, 0x86, + 0x0a, 0xa3, 0x25, 0x00, 0x51, 0x81, 0x0a, 0x94, 0xf7, 0x41, 0x04, 0x5f, + 0x07, 0x06, 0x4a, 0x5d, 0x95, 0x3a, 0x26, 0x40, 0x47, 0x68, 0x0a, 0x2b, + 0x2b, 0x00, 0xb3, 0x01, 0xff, 0x45, 0xd7, 0x05, 0xab, 0x25, 0x00, 0x43, + 0x32, 0x13, 0x52, 0x2b, 0x40, 0x48, 0x84, 0x47, 0xad, 0x25, 0x00, 0x04, + 0xc9, 0x00, 0x01, 0xff, 0x0a, 0x9b, 0x01, 0x1f, 0x0a, 0x8c, 0x0b, 0x01, + 0xff, 0xb0, 0x0c, 0x4e, 0x26, 0x0c, 0xb9, 0x25, 0x00, 0x48, 0x01, 0x02, + 0xb7, 0x25, 0x40, 0x47, 0xe1, 0xc9, 0x54, 0x2b, 0x00, 0x46, 0xea, 0x49, + 0xbb, 0x25, 0x40, 0x4e, 0xe0, 0x26, 0x49, 0xf4, 0x01, 0x45, 0x8f, 0x13, + 0x1e, 0x26, 0x40, 0x4c, 0x67, 0x8c, 0xb1, 0x25, 0x00, 0x02, 0x92, 0x01, + 0x01, 0xff, 0x44, 0x2c, 0x33, 0xf1, 0xf3, 0x01, 0x45, 0xe3, 0xc9, 0x20, + 0x2b, 0x40, 0x06, 0x45, 0x04, 0x06, 0x4a, 0xe3, 0xae, 0xdd, 0x2b, 0x40, + 0x47, 0x95, 0x44, 0x26, 0x2b, 0x00, 0x47, 0x68, 0x0a, 0x28, 0x2b, 0x00, + 0xb3, 0x01, 0xff, 0x4b, 0x87, 0x0a, 0xfd, 0x25, 0x00, 0x45, 0xd7, 0x05, + 0xfb, 0x25, 0x00, 0x43, 0x32, 0x13, 0x50, 0x2b, 0x40, 0xa1, 0x4d, 0x03, + 0xc4, 0x00, 0x19, 0xaf, 0x01, 0xff, 0x04, 0x15, 0x01, 0x06, 0x64, 0x4b, + 0x0a, 0xa0, 0xf7, 0x41, 0x4c, 0x0b, 0x91, 0x86, 0xcc, 0x01, 0x4d, 0xd9, + 0x87, 0x87, 0xcc, 0x41, 0x80, 0x17, 0x0a, 0x8c, 0x0b, 0x01, 0xff, 0x47, + 0xe9, 0x49, 0xc5, 0x25, 0x00, 0x4e, 0x26, 0x0c, 0xc3, 0x25, 0x00, 0x48, + 0x01, 0x02, 0xc1, 0x25, 0x40, 0x4a, 0x81, 0xac, 0xd9, 0x26, 0x00, 0x09, + 0x9c, 0x01, 0x01, 0xff, 0x4e, 0xe0, 0x26, 0x48, 0xf4, 0x01, 0x45, 0x8f, + 0x13, 0x1c, 0x26, 0x40, 0x4a, 0x37, 0xb0, 0x1c, 0x2b, 0x00, 0x49, 0x4b, + 0x9e, 0x46, 0xf5, 0x41, 0x55, 0x4d, 0x39, 0xab, 0xf5, 0x01, 0xa5, 0x0f, + 0xaf, 0x01, 0xff, 0x50, 0xd6, 0x66, 0x2d, 0x2b, 0x00, 0x47, 0xfe, 0xd6, + 0xd6, 0x29, 0x40, 0xa1, 0x06, 0x45, 0x8f, 0xd1, 0x21, 0x2b, 0x40, 0x42, + 0x34, 0x00, 0x0d, 0xf9, 0x81, 0x11, 0x03, 0x70, 0x15, 0x01, 0xff, 0x4a, + 0xa3, 0xa8, 0x05, 0x27, 0x00, 0x5c, 0x12, 0x19, 0xc0, 0xfb, 0x41, 0x45, + 0x9e, 0x27, 0x61, 0x26, 0x40, 0xac, 0x16, 0x0c, 0x1c, 0x13, 0x06, 0x4c, + 0x14, 0x83, 0x39, 0x26, 0x40, 0x44, 0x12, 0x16, 0xce, 0x2b, 0x00, 0x44, + 0x31, 0x13, 0x27, 0x27, 0x40, 0x42, 0x23, 0x02, 0x90, 0x26, 0x80, 0x0f, + 0xaf, 0x01, 0xff, 0x45, 0xaf, 0x0f, 0x40, 0x27, 0x00, 0x43, 0x15, 0x01, + 0xae, 0xf4, 0x41, 0x64, 0xbf, 0x08, 0xff, 0x26, 0x40, 0x46, 0x96, 0x44, + 0xc7, 0x25, 0x80, 0x3c, 0x03, 0xa6, 0x01, 0x11, 0x08, 0x38, 0xca, 0x01, + 0xff, 0x44, 0xb2, 0x34, 0xc1, 0x26, 0x00, 0x43, 0x41, 0x18, 0xc0, 0x26, + 0x40, 0x0a, 0x9b, 0x01, 0x11, 0x0a, 0x8c, 0x0b, 0x01, 0xff, 0x4e, 0x26, + 0x0c, 0xbf, 0x25, 0x00, 0x48, 0x01, 0x02, 0xbd, 0x25, 0x40, 0x4e, 0xe0, + 0x26, 0x47, 0xf4, 0x01, 0x45, 0x8f, 0x13, 0x1f, 0x26, 0x00, 0x4f, 0x87, + 0x6f, 0x97, 0xf5, 0x41, 0x80, 0x01, 0xff, 0x11, 0x51, 0x0a, 0x12, 0x49, + 0x50, 0xba, 0xcb, 0x26, 0x00, 0x44, 0x9f, 0x27, 0x62, 0x26, 0x00, 0x50, + 0xb6, 0x68, 0xd0, 0x27, 0x40, 0x4e, 0xcf, 0x79, 0x9b, 0xf7, 0x01, 0x4d, + 0x76, 0x56, 0xc8, 0x25, 0x00, 0x52, 0x71, 0x56, 0x9a, 0xf7, 0x41, 0x05, + 0x4b, 0x88, 0x70, 0x45, 0x13, 0x03, 0xcb, 0x25, 0x80, 0x24, 0x48, 0x10, + 0xc8, 0x67, 0x26, 0x00, 0x54, 0x88, 0x44, 0xe1, 0x27, 0x80, 0x06, 0x49, + 0xea, 0xa8, 0xcb, 0xfb, 0x41, 0x06, 0x50, 0x00, 0x01, 0xff, 0x4e, 0x51, + 0x79, 0xe2, 0x27, 0x00, 0x4f, 0xb1, 0x72, 0xe3, 0x27, 0x40, 0x80, 0x01, + 0xff, 0x5d, 0x2e, 0x15, 0x8a, 0xf7, 0x01, 0x05, 0x51, 0x00, 0x01, 0xff, + 0x02, 0x3b, 0x01, 0x27, 0x06, 0x13, 0x01, 0x17, 0x48, 0x1f, 0x0a, 0x87, + 0x26, 0x00, 0x06, 0x6d, 0x02, 0x01, 0xff, 0x4d, 0x74, 0x0d, 0xf4, 0x25, + 0x00, 0x4e, 0x64, 0x45, 0xf7, 0x25, 0x40, 0x4d, 0x74, 0x0d, 0xf5, 0x25, + 0x00, 0x4e, 0x64, 0x45, 0xf6, 0x25, 0x40, 0x47, 0xc6, 0x00, 0x86, 0x26, + 0x00, 0x48, 0xce, 0x41, 0xec, 0x29, 0x40, 0x45, 0x25, 0xe4, 0x55, 0xfa, + 0x01, 0x46, 0x2e, 0xda, 0x57, 0x26, 0x80, 0xed, 0x01, 0x4a, 0x15, 0xaa, + 0x48, 0xfa, 0x81, 0xdf, 0x01, 0x44, 0xbd, 0xef, 0x54, 0xfa, 0x01, 0xab, + 0x73, 0x44, 0xfd, 0xf1, 0x59, 0x26, 0x80, 0x5b, 0x45, 0x52, 0xbe, 0x55, + 0x26, 0x80, 0x43, 0x44, 0x5d, 0xf2, 0x56, 0x26, 0x80, 0x2b, 0x07, 0x27, + 0x0a, 0x01, 0xff, 0x46, 0x2e, 0xda, 0x21, 0xfa, 0x01, 0xab, 0x12, 0x44, + 0xfd, 0xf1, 0x23, 0xfa, 0x01, 0x45, 0x52, 0xbe, 0x1f, 0xfa, 0x01, 0x44, + 0x5d, 0xf2, 0x20, 0xfa, 0x41, 0x43, 0xa1, 0x01, 0x1e, 0xfa, 0x01, 0x45, + 0x4e, 0x09, 0x22, 0xfa, 0x41, 0x09, 0xa3, 0x2c, 0x01, 0xff, 0x4e, 0xac, + 0x2c, 0x0b, 0xfa, 0x01, 0x5b, 0xbc, 0x1d, 0x35, 0xfa, 0x41, 0x09, 0xa3, + 0x2c, 0x01, 0xff, 0x4e, 0xac, 0x2c, 0x0a, 0xfa, 0x01, 0x5b, 0xbc, 0x1d, + 0x34, 0xfa, 0x41, 0x09, 0xa3, 0x2c, 0x01, 0xff, 0x4e, 0xac, 0x2c, 0x0e, + 0xfa, 0x01, 0x5b, 0xbc, 0x1d, 0x38, 0xfa, 0x41, 0x43, 0xa1, 0x01, 0x54, + 0x26, 0x80, 0x4c, 0x45, 0x4e, 0x09, 0x58, 0x26, 0xc0, 0x00, 0x09, 0xa3, + 0x2c, 0x15, 0x8d, 0x01, 0xff, 0x46, 0x2e, 0xda, 0x50, 0xfa, 0x01, 0x45, + 0x52, 0xbe, 0x4e, 0xfa, 0x01, 0x44, 0x5d, 0xf2, 0x4f, 0xfa, 0x41, 0x52, + 0xcd, 0x51, 0x06, 0xfa, 0x01, 0x4e, 0xac, 0x2c, 0x0d, 0xfa, 0x01, 0x5f, + 0x6d, 0x11, 0x1b, 0xfa, 0x01, 0xb4, 0x01, 0xff, 0x5c, 0xfa, 0x17, 0x45, + 0xfa, 0x01, 0x0b, 0xbd, 0x1d, 0x01, 0xff, 0x4f, 0xc8, 0x1d, 0x37, 0xfa, + 0x01, 0x53, 0xf2, 0x4d, 0x30, 0xfa, 0x41, 0x09, 0xa3, 0x2c, 0x01, 0xff, + 0x4e, 0xac, 0x2c, 0x09, 0xfa, 0x01, 0x5b, 0xbc, 0x1d, 0x33, 0xfa, 0x41, + 0x57, 0xa3, 0x2c, 0x4b, 0xfa, 0x41, 0x09, 0xa3, 0x2c, 0x01, 0xff, 0x4e, + 0xac, 0x2c, 0x0c, 0xfa, 0x01, 0x5b, 0xbc, 0x1d, 0x36, 0xfa, 0x41, 0x43, + 0x0e, 0x0b, 0xac, 0xf8, 0x01, 0x4a, 0x53, 0xb2, 0xad, 0xf8, 0x41, 0x4a, + 0xe7, 0xa5, 0x38, 0x26, 0x00, 0x4c, 0x3f, 0x8d, 0x7f, 0x26, 0x40, 0x04, + 0x28, 0x18, 0x22, 0xa4, 0x14, 0xa9, 0x06, 0x4f, 0x47, 0x73, 0x70, 0x26, + 0x40, 0x5a, 0x18, 0x20, 0x18, 0x21, 0x00, 0x4a, 0xd3, 0xaa, 0xcb, 0xf3, + 0x41, 0x44, 0x04, 0x06, 0x92, 0xf4, 0x01, 0x5a, 0x8c, 0x17, 0xbc, 0x27, + 0x40, 0x48, 0x62, 0x1f, 0x40, 0xf6, 0x01, 0x44, 0x0c, 0x08, 0x29, 0xf6, + 0x41, 0x44, 0x87, 0x89, 0xc7, 0xf9, 0x01, 0xae, 0xb5, 0x05, 0xb2, 0x95, + 0x01, 0x49, 0x72, 0xbf, 0xd1, 0xf5, 0x01, 0xb4, 0x62, 0xb6, 0x11, 0x05, + 0x72, 0xec, 0x01, 0xff, 0x54, 0x40, 0x41, 0x12, 0xf3, 0x01, 0x53, 0xb7, + 0x49, 0x14, 0xf3, 0x41, 0x02, 0x60, 0x00, 0x35, 0x04, 0xa1, 0x01, 0x1f, + 0x02, 0x09, 0x00, 0x01, 0xff, 0x44, 0x8f, 0x12, 0x30, 0x30, 0x00, 0xac, + 0x06, 0x48, 0x82, 0x8a, 0x4b, 0xfe, 0x40, 0x43, 0xee, 0x07, 0x07, 0x23, + 0x00, 0x47, 0x76, 0x8a, 0x4f, 0xfe, 0x40, 0x4a, 0x3f, 0xa8, 0xf4, 0xf3, + 0x01, 0x49, 0xad, 0x47, 0x4b, 0xf4, 0x01, 0x4a, 0x6b, 0xb3, 0xf3, 0xf3, + 0x41, 0x18, 0x36, 0x27, 0x06, 0x44, 0x8f, 0x12, 0x1c, 0x30, 0x40, 0x44, + 0xc3, 0x00, 0x3f, 0x2b, 0x00, 0x45, 0xc8, 0x00, 0x33, 0x29, 0x40, 0x42, + 0x6d, 0x14, 0x1a, 0x23, 0x00, 0x02, 0x33, 0x00, 0x01, 0xff, 0x80, 0x06, + 0x45, 0x8a, 0xe8, 0x49, 0xf3, 0x41, 0x47, 0xb8, 0xcf, 0x03, 0xf4, 0x01, + 0x46, 0xac, 0xda, 0xbe, 0xf6, 0x01, 0x44, 0x1d, 0xf2, 0x3d, 0xf9, 0x01, + 0x44, 0x82, 0x57, 0x0a, 0xf3, 0x41, 0x09, 0x0f, 0xb6, 0x06, 0x49, 0x87, + 0xbc, 0xa0, 0x26, 0x40, 0x0f, 0xe4, 0x05, 0xd1, 0x02, 0x06, 0xef, 0x06, + 0x8a, 0x02, 0x07, 0xff, 0x39, 0xc8, 0x01, 0x42, 0x14, 0x05, 0xff, 0x18, + 0x01, 0x0d, 0x76, 0x08, 0x01, 0xff, 0xe1, 0xc1, 0x18, 0x81, 0xa9, 0x01, + 0x42, 0x6a, 0x0d, 0xd7, 0x18, 0x01, 0x42, 0xf0, 0x10, 0xd4, 0x18, 0x01, + 0xe5, 0xc8, 0x18, 0x81, 0x8c, 0x01, 0x42, 0x24, 0x02, 0xcb, 0x18, 0x01, + 0xa8, 0x69, 0x42, 0x52, 0x28, 0xc6, 0x18, 0x01, 0x42, 0x4d, 0x03, 0xcc, + 0x18, 0x01, 0xae, 0x4f, 0xef, 0xc9, 0x18, 0x81, 0x44, 0x42, 0x07, 0x0c, + 0xd8, 0x18, 0x01, 0xb3, 0x30, 0x43, 0xee, 0x05, 0xd2, 0x18, 0x01, 0xb5, + 0x20, 0x44, 0x09, 0xf3, 0xdf, 0x18, 0x01, 0x42, 0x51, 0x00, 0xc2, 0x18, + 0x01, 0xb9, 0x01, 0xff, 0xe1, 0xc4, 0x18, 0x01, 0xef, 0xc5, 0x18, 0x01, + 0xf5, 0xc3, 0x18, 0xc1, 0x00, 0xea, 0xce, 0x18, 0x41, 0xe3, 0xcf, 0x18, + 0x01, 0xf5, 0xc7, 0x18, 0x41, 0x42, 0x52, 0x28, 0xde, 0x18, 0x01, 0x43, + 0x9d, 0xf4, 0xdd, 0x18, 0x41, 0x42, 0x7f, 0x02, 0xd1, 0x18, 0x41, 0x43, + 0x99, 0x57, 0xc0, 0x18, 0x01, 0x43, 0xaa, 0x45, 0xd3, 0x18, 0x41, 0x42, + 0x17, 0x00, 0xdc, 0x18, 0x01, 0x43, 0x71, 0xca, 0xd9, 0x18, 0x01, 0xaf, + 0x01, 0xff, 0x42, 0x13, 0x01, 0xda, 0x18, 0x01, 0x42, 0xcf, 0x00, 0xdb, + 0x18, 0x41, 0xae, 0x01, 0xff, 0xee, 0xd0, 0x18, 0x01, 0xf9, 0xcd, 0x18, + 0x41, 0xed, 0xd6, 0x18, 0x01, 0x42, 0x1d, 0x01, 0xca, 0x18, 0x01, 0xf4, + 0xd5, 0x18, 0x41, 0x46, 0x30, 0xdb, 0xf1, 0x18, 0x01, 0xa6, 0x29, 0x46, + 0xac, 0x2c, 0xf2, 0x18, 0x01, 0xb3, 0x15, 0xb4, 0x01, 0xff, 0x42, 0x92, + 0x01, 0xea, 0x18, 0x01, 0x45, 0x7a, 0x11, 0xec, 0x18, 0x01, 0x45, 0x7f, + 0x2c, 0xeb, 0x18, 0x41, 0x46, 0xc9, 0x1d, 0xf0, 0x18, 0x01, 0x44, 0x46, + 0xdd, 0xef, 0x18, 0x41, 0x44, 0x51, 0x4d, 0xee, 0x18, 0x01, 0x44, 0xce, + 0x51, 0xed, 0x18, 0x41, 0x45, 0x12, 0x0b, 0xe8, 0x18, 0x01, 0xa6, 0x2e, + 0x44, 0xcf, 0x2a, 0xe9, 0x18, 0x01, 0x43, 0x0e, 0x0b, 0xe1, 0x18, 0x01, + 0xb3, 0x14, 0xb4, 0x06, 0x44, 0x43, 0x1e, 0xe0, 0x18, 0x41, 0x44, 0x25, + 0x01, 0xe3, 0x18, 0x01, 0x42, 0x15, 0x02, 0xe2, 0x18, 0x41, 0x44, 0xc9, + 0x1d, 0xe7, 0x18, 0x01, 0x42, 0x01, 0x26, 0xe6, 0x18, 0x41, 0x43, 0xd2, + 0x05, 0xe5, 0x18, 0x01, 0x43, 0xf6, 0x06, 0xe4, 0x18, 0x41, 0xe1, 0xa1, + 0x18, 0x81, 0xa9, 0x01, 0x42, 0x6a, 0x0d, 0xb7, 0x18, 0x01, 0x42, 0xf0, + 0x10, 0xb4, 0x18, 0x01, 0xe5, 0xa8, 0x18, 0x81, 0x8c, 0x01, 0x42, 0x24, + 0x02, 0xab, 0x18, 0x01, 0xa8, 0x69, 0x42, 0x52, 0x28, 0xa6, 0x18, 0x01, + 0x42, 0x4d, 0x03, 0xac, 0x18, 0x01, 0xae, 0x4f, 0xef, 0xa9, 0x18, 0x81, + 0x44, 0x42, 0x07, 0x0c, 0xb8, 0x18, 0x01, 0xb3, 0x30, 0x43, 0xee, 0x05, + 0xb2, 0x18, 0x01, 0xb5, 0x20, 0x44, 0x09, 0xf3, 0xbf, 0x18, 0x01, 0x42, + 0x51, 0x00, 0xa2, 0x18, 0x01, 0xb9, 0x01, 0xff, 0xe1, 0xa4, 0x18, 0x01, + 0xef, 0xa5, 0x18, 0x01, 0xf5, 0xa3, 0x18, 0xc1, 0x00, 0xea, 0xae, 0x18, + 0x41, 0xe3, 0xaf, 0x18, 0x01, 0xf5, 0xa7, 0x18, 0x41, 0x42, 0x52, 0x28, + 0xbe, 0x18, 0x01, 0x43, 0x9d, 0xf4, 0xbd, 0x18, 0x41, 0x42, 0x7f, 0x02, + 0xb1, 0x18, 0x41, 0x43, 0x99, 0x57, 0xa0, 0x18, 0x01, 0x43, 0xaa, 0x45, + 0xb3, 0x18, 0x41, 0x42, 0x17, 0x00, 0xbc, 0x18, 0x01, 0x43, 0x71, 0xca, + 0xb9, 0x18, 0x01, 0xaf, 0x01, 0xff, 0x42, 0x13, 0x01, 0xba, 0x18, 0x01, + 0x42, 0xcf, 0x00, 0xbb, 0x18, 0x41, 0xae, 0x01, 0xff, 0xee, 0xb0, 0x18, + 0x01, 0xf9, 0xad, 0x18, 0x41, 0xed, 0xb6, 0x18, 0x01, 0x42, 0x1d, 0x01, + 0xaa, 0x18, 0x01, 0xf4, 0xb5, 0x18, 0x41, 0x04, 0x9a, 0xda, 0x11, 0x04, + 0xa1, 0x01, 0x01, 0xff, 0x54, 0x40, 0x41, 0x18, 0xf3, 0x01, 0x53, 0xb7, + 0x49, 0x16, 0xf3, 0x41, 0x06, 0xef, 0x06, 0xa6, 0x02, 0x07, 0xec, 0x05, + 0x25, 0x49, 0x63, 0xbc, 0xff, 0xe2, 0x01, 0x05, 0x3b, 0x2d, 0x01, 0xff, + 0x43, 0xbf, 0xde, 0xee, 0xe2, 0x81, 0x0d, 0x43, 0x81, 0x19, 0xec, 0xe2, + 0xc1, 0x00, 0x42, 0x51, 0x03, 0xed, 0xe2, 0x41, 0x42, 0x51, 0x03, 0xef, + 0xe2, 0x41, 0xe1, 0xc1, 0xe2, 0x81, 0xdf, 0x01, 0x42, 0x16, 0x00, 0xc2, + 0xe2, 0x01, 0x42, 0x37, 0x00, 0xc3, 0xe2, 0x01, 0x42, 0xf0, 0x10, 0xc4, + 0xe2, 0x01, 0xe5, 0xdb, 0xe2, 0x81, 0xc3, 0x01, 0x42, 0x0c, 0x08, 0xcd, + 0xe2, 0x01, 0x42, 0x24, 0x02, 0xc5, 0xe2, 0x01, 0x42, 0x22, 0x00, 0xda, + 0xe2, 0x01, 0xe9, 0xdc, 0xe2, 0x81, 0xa5, 0x01, 0x42, 0x56, 0x19, 0xd0, + 0xe2, 0x01, 0xab, 0x92, 0x01, 0xac, 0x85, 0x01, 0x42, 0x6c, 0x00, 0xd8, + 0xe2, 0x01, 0xae, 0x6d, 0xef, 0xd5, 0xe2, 0x81, 0x5f, 0xb0, 0x53, 0x42, + 0x71, 0x00, 0xd7, 0xe2, 0x01, 0xb3, 0x41, 0xb4, 0x29, 0xf5, 0xde, 0xe2, + 0x81, 0x1e, 0x42, 0xf5, 0x0a, 0xd3, 0xe2, 0x01, 0x42, 0xa9, 0x01, 0xd2, + 0xe2, 0x01, 0xb9, 0x06, 0x42, 0x59, 0x00, 0xd1, 0xe2, 0x41, 0xe1, 0xc6, + 0xe2, 0x01, 0x42, 0xda, 0x2c, 0xeb, 0xe2, 0x41, 0x42, 0x92, 0x01, 0xea, + 0xe2, 0x41, 0xe1, 0xcb, 0xe2, 0x01, 0x42, 0x22, 0x00, 0xcc, 0xe2, 0x01, + 0x42, 0x71, 0x00, 0xe1, 0xe2, 0x01, 0x42, 0x40, 0x06, 0xe0, 0xe2, 0x41, + 0xe1, 0xce, 0xe2, 0x01, 0x42, 0x22, 0x00, 0xcf, 0xe2, 0x41, 0xe1, 0xca, + 0xe2, 0x01, 0x42, 0x22, 0x00, 0xc7, 0xe2, 0x41, 0xee, 0xe6, 0xe2, 0xc1, + 0x00, 0xe7, 0xe2, 0xe2, 0x41, 0xe1, 0xc9, 0xe2, 0x01, 0x42, 0x24, 0x02, + 0xdd, 0xe2, 0x01, 0x42, 0xbc, 0x22, 0xe9, 0xe2, 0x41, 0xe1, 0xc8, 0xe2, + 0x01, 0x43, 0x2a, 0x09, 0xdf, 0xe2, 0x41, 0xe1, 0xd4, 0xe2, 0x01, 0x42, + 0x22, 0x00, 0xd9, 0xe2, 0x41, 0x42, 0x1d, 0x01, 0xe5, 0xe2, 0x41, 0xee, + 0xe7, 0xe2, 0x41, 0xe1, 0xc0, 0xe2, 0x81, 0x0a, 0x42, 0x1d, 0x01, 0xe4, + 0xe2, 0x01, 0xf5, 0xd6, 0xe2, 0x41, 0xee, 0xe8, 0xe2, 0xc1, 0x00, 0xe7, + 0xe3, 0xe2, 0x41, 0x45, 0x12, 0x0b, 0xf8, 0xe2, 0x01, 0xa6, 0x2e, 0x44, + 0xcf, 0x2a, 0xf9, 0xe2, 0x01, 0x43, 0x0e, 0x0b, 0xf1, 0xe2, 0x01, 0xb3, + 0x14, 0xb4, 0x06, 0x44, 0x43, 0x1e, 0xf0, 0xe2, 0x41, 0x44, 0x25, 0x01, + 0xf3, 0xe2, 0x01, 0x42, 0x15, 0x02, 0xf2, 0xe2, 0x41, 0x44, 0xc9, 0x1d, + 0xf7, 0xe2, 0x01, 0x42, 0x01, 0x26, 0xf6, 0xe2, 0x41, 0x43, 0xd2, 0x05, + 0xf5, 0xe2, 0x01, 0x43, 0xf6, 0x06, 0xf4, 0xe2, 0x41, 0xa1, 0x82, 0x0b, + 0xa5, 0xb5, 0x05, 0xa9, 0xba, 0x01, 0xaf, 0x9c, 0x01, 0x02, 0x1f, 0x01, + 0x01, 0xff, 0x45, 0xf7, 0xe4, 0xe6, 0x2b, 0x00, 0x0d, 0x3a, 0x83, 0x01, + 0xff, 0xa6, 0x74, 0x04, 0x0e, 0x0b, 0x35, 0x4d, 0xfb, 0x4c, 0x5e, 0x21, + 0x00, 0xb4, 0x06, 0x4b, 0x76, 0xa5, 0x89, 0x21, 0x40, 0x05, 0x25, 0x01, + 0x11, 0x03, 0x20, 0x0a, 0x01, 0xff, 0x46, 0x41, 0xaf, 0x56, 0x21, 0x00, + 0x46, 0xee, 0x74, 0x54, 0x21, 0x40, 0x47, 0x01, 0x4d, 0x5c, 0x21, 0x00, + 0x46, 0x41, 0xaf, 0x57, 0x21, 0x00, 0x48, 0x2a, 0x01, 0xbe, 0x00, 0x40, + 0x46, 0x12, 0x0b, 0x5b, 0x21, 0x00, 0x45, 0x41, 0xaf, 0x55, 0x21, 0x00, + 0x44, 0x22, 0x00, 0xbd, 0x00, 0x00, 0x45, 0x20, 0xe9, 0x51, 0x21, 0x00, + 0x47, 0x2a, 0x01, 0xbc, 0x00, 0x00, 0xb3, 0x0f, 0xb4, 0x01, 0xff, 0x44, + 0x82, 0x1b, 0x52, 0x21, 0x00, 0x44, 0xef, 0x74, 0x53, 0x21, 0x40, 0x46, + 0x90, 0xdb, 0x50, 0x21, 0x00, 0x44, 0x27, 0xac, 0x59, 0x21, 0x40, 0x04, + 0xd2, 0x05, 0x06, 0x4a, 0x3d, 0xaf, 0x58, 0x21, 0x40, 0x47, 0x01, 0x4d, + 0x5d, 0x21, 0x00, 0x46, 0xe6, 0xdf, 0x5a, 0x21, 0x40, 0x50, 0xa6, 0x63, + 0xbb, 0xfb, 0x01, 0xac, 0x01, 0xff, 0x44, 0x55, 0xef, 0x0b, 0xf3, 0x01, + 0x47, 0xdd, 0xd2, 0xd0, 0xf3, 0x01, 0x4c, 0x63, 0x96, 0x30, 0x22, 0x40, + 0x4c, 0xdf, 0x8c, 0xf3, 0xf4, 0x01, 0x04, 0xdd, 0x0f, 0xe1, 0x03, 0x03, + 0x4d, 0x20, 0xc8, 0x03, 0xa5, 0xaf, 0x03, 0x44, 0xb1, 0xae, 0xbb, 0xf3, + 0x01, 0x43, 0x66, 0x17, 0x4d, 0x26, 0x00, 0x07, 0x5d, 0xd6, 0x01, 0xff, + 0x0f, 0xe4, 0x05, 0xcf, 0x01, 0x0d, 0x76, 0x08, 0x01, 0xff, 0xe1, 0x97, + 0x05, 0x01, 0xa2, 0xb9, 0x01, 0xa3, 0xac, 0x01, 0xa4, 0x9f, 0x01, 0xe5, + 0x9f, 0x05, 0x81, 0x95, 0x01, 0x42, 0x0c, 0x1a, 0xa0, 0x05, 0x01, 0x42, + 0x24, 0x02, 0xa1, 0x05, 0x01, 0xa8, 0x7d, 0xe9, 0xa5, 0x05, 0x81, 0x72, + 0x42, 0x80, 0x20, 0xa7, 0x05, 0x01, 0x42, 0x1b, 0x02, 0xa8, 0x05, 0x01, + 0xac, 0x5a, 0x42, 0x2a, 0x02, 0xab, 0x05, 0x01, 0xae, 0x48, 0xef, 0xae, + 0x05, 0x01, 0x42, 0x6f, 0x02, 0xaf, 0x05, 0x01, 0x42, 0x43, 0x14, 0xb0, + 0x05, 0x01, 0x42, 0x88, 0x00, 0xb1, 0x05, 0x01, 0xb3, 0x26, 0xb4, 0x1a, + 0xf5, 0xb7, 0x05, 0x01, 0x42, 0x32, 0x00, 0xb8, 0x05, 0x01, 0x42, 0x6d, + 0x43, 0xb9, 0x05, 0x01, 0xf9, 0xbb, 0x05, 0x01, 0x42, 0x4b, 0x0a, 0xbc, + 0x05, 0x41, 0xe5, 0xb5, 0x05, 0x01, 0x42, 0xb0, 0x01, 0xb6, 0x05, 0x41, + 0xe5, 0xb3, 0x05, 0x01, 0x42, 0xb0, 0x01, 0xb4, 0x05, 0x41, 0xe5, 0xac, + 0x05, 0x01, 0x42, 0x80, 0x20, 0xad, 0x05, 0x41, 0xe1, 0xa9, 0x05, 0x01, + 0x42, 0x74, 0x00, 0xaa, 0x05, 0x41, 0x42, 0x80, 0x20, 0xa6, 0x05, 0x41, + 0xe1, 0xa3, 0x05, 0x01, 0x42, 0x22, 0x00, 0xa4, 0x05, 0x41, 0xe9, 0x9e, + 0x05, 0x41, 0xe5, 0x9c, 0x05, 0x01, 0x42, 0xb0, 0x01, 0x9d, 0x05, 0x41, + 0xe5, 0x9a, 0x05, 0x01, 0x42, 0xb0, 0x01, 0x9b, 0x05, 0x41, 0x42, 0xb7, + 0x05, 0x98, 0x05, 0x01, 0xe5, 0x99, 0x05, 0x41, 0xe1, 0x70, 0x05, 0x01, + 0xa2, 0xb9, 0x01, 0xa3, 0xac, 0x01, 0xa4, 0x9f, 0x01, 0xe5, 0x78, 0x05, + 0x81, 0x95, 0x01, 0x42, 0x0c, 0x1a, 0x79, 0x05, 0x01, 0x42, 0x24, 0x02, + 0x7a, 0x05, 0x01, 0xa8, 0x7d, 0xe9, 0x7e, 0x05, 0x81, 0x72, 0x42, 0x80, + 0x20, 0x80, 0x05, 0x01, 0x42, 0x1b, 0x02, 0x81, 0x05, 0x01, 0xac, 0x5a, + 0x42, 0x2a, 0x02, 0x84, 0x05, 0x01, 0xae, 0x48, 0xef, 0x87, 0x05, 0x01, + 0x42, 0x6f, 0x02, 0x88, 0x05, 0x01, 0x42, 0x43, 0x14, 0x89, 0x05, 0x01, + 0x42, 0x88, 0x00, 0x8a, 0x05, 0x01, 0xb3, 0x26, 0xb4, 0x1a, 0xf5, 0x90, + 0x05, 0x01, 0x42, 0x32, 0x00, 0x91, 0x05, 0x01, 0x42, 0x6d, 0x43, 0x92, + 0x05, 0x01, 0xf9, 0x94, 0x05, 0x01, 0x42, 0x4b, 0x0a, 0x95, 0x05, 0x41, + 0xe5, 0x8e, 0x05, 0x01, 0x42, 0xb0, 0x01, 0x8f, 0x05, 0x41, 0xe5, 0x8c, + 0x05, 0x01, 0x42, 0xb0, 0x01, 0x8d, 0x05, 0x41, 0xe5, 0x85, 0x05, 0x01, + 0x42, 0x80, 0x20, 0x86, 0x05, 0x41, 0xe1, 0x82, 0x05, 0x01, 0x42, 0x74, + 0x00, 0x83, 0x05, 0x41, 0x42, 0x80, 0x20, 0x7f, 0x05, 0x41, 0xe1, 0x7c, + 0x05, 0x01, 0x42, 0x22, 0x00, 0x7d, 0x05, 0x41, 0xe9, 0x77, 0x05, 0x41, + 0xe5, 0x75, 0x05, 0x01, 0x42, 0xb0, 0x01, 0x76, 0x05, 0x41, 0xe5, 0x73, + 0x05, 0x01, 0x42, 0xb0, 0x01, 0x74, 0x05, 0x41, 0x42, 0xb7, 0x05, 0x71, + 0x05, 0x01, 0xe5, 0x72, 0x05, 0x41, 0x1f, 0xe9, 0x11, 0x06, 0x4c, 0xe7, + 0x96, 0x17, 0x23, 0x40, 0x42, 0x37, 0x00, 0xf0, 0x6f, 0x01, 0x44, 0x7d, + 0xf1, 0xf1, 0x6f, 0x41, 0x80, 0x06, 0x48, 0x88, 0xc4, 0xfc, 0xf4, 0x41, + 0x46, 0x51, 0xb3, 0xf9, 0xf4, 0x01, 0x44, 0xe1, 0xef, 0xae, 0xf3, 0x41, + 0x42, 0x1b, 0x01, 0xc5, 0xce, 0x01, 0x46, 0xd5, 0x96, 0x0c, 0x27, 0x40, + 0x55, 0x0a, 0x3a, 0x2f, 0x2a, 0x00, 0x04, 0xeb, 0x06, 0x83, 0x03, 0xb2, + 0x0d, 0x43, 0x31, 0x13, 0xb6, 0x26, 0xc0, 0x00, 0x49, 0x21, 0x2e, 0x77, + 0xf7, 0x41, 0x45, 0xf6, 0xea, 0x23, 0x21, 0x00, 0x06, 0x35, 0x00, 0x67, + 0x02, 0x09, 0x00, 0x01, 0xff, 0x50, 0x16, 0x61, 0xa5, 0xf7, 0x01, 0x06, + 0x6d, 0x15, 0x11, 0x05, 0xd5, 0xe8, 0x01, 0xff, 0x4c, 0x87, 0x00, 0xd9, + 0x22, 0x00, 0x49, 0xec, 0x00, 0xd8, 0x22, 0x40, 0x06, 0x31, 0x14, 0x37, + 0x54, 0x58, 0x42, 0xb3, 0xf7, 0x01, 0x4b, 0x1b, 0x61, 0xa6, 0xf7, 0x01, + 0x4f, 0x66, 0x72, 0x7d, 0xf6, 0x01, 0xb3, 0x11, 0x06, 0xad, 0x02, 0x01, + 0xff, 0x46, 0x12, 0x03, 0x88, 0xf7, 0x01, 0x46, 0xd6, 0x05, 0x92, 0xf7, + 0x41, 0x46, 0x13, 0x19, 0xad, 0xf7, 0x01, 0x52, 0xff, 0x52, 0xb9, 0xf7, + 0x01, 0x46, 0x50, 0x31, 0x7c, 0xf6, 0x41, 0x52, 0xec, 0x2b, 0xd0, 0xf7, + 0x01, 0x4f, 0xd5, 0x1c, 0xbf, 0xf7, 0x41, 0x04, 0x16, 0x00, 0xe6, 0x01, + 0x49, 0xf9, 0xb6, 0x14, 0xcc, 0x01, 0x48, 0xce, 0x29, 0xee, 0x22, 0x00, + 0x49, 0xd1, 0x46, 0x5e, 0x20, 0x00, 0x47, 0x55, 0xd1, 0x9d, 0xcc, 0x01, + 0x5a, 0x4c, 0x20, 0x3b, 0x30, 0x00, 0x0c, 0x87, 0x90, 0xa0, 0x01, 0xac, + 0x61, 0x55, 0xd4, 0x3c, 0xa8, 0x26, 0x00, 0x11, 0xd7, 0x5c, 0x3f, 0xb2, + 0x31, 0x48, 0x00, 0xcb, 0x3d, 0x2e, 0x00, 0xb4, 0x06, 0x4b, 0x81, 0xa5, + 0x9a, 0x29, 0x40, 0x02, 0x5c, 0x00, 0x0c, 0x44, 0x36, 0x23, 0x2f, 0x2e, + 0x00, 0x4c, 0x0b, 0x94, 0xa6, 0xf6, 0x41, 0x44, 0xd1, 0x45, 0x7f, 0x2b, + 0x00, 0x47, 0xe6, 0x3b, 0x0b, 0x00, 0xc0, 0x00, 0x44, 0x66, 0xb8, 0x8a, + 0x00, 0x40, 0x49, 0x9a, 0xb5, 0x9c, 0xcc, 0x01, 0x4f, 0xd5, 0x6c, 0x0a, + 0xcc, 0x41, 0xd2, 0x70, 0xfb, 0x01, 0xd3, 0x71, 0xfb, 0x01, 0xd4, 0x72, + 0xfb, 0x01, 0xd5, 0x73, 0xfb, 0x01, 0xd6, 0x74, 0xfb, 0x01, 0xd7, 0x75, + 0xfb, 0x41, 0x45, 0x07, 0xe4, 0x84, 0xcc, 0x01, 0x43, 0xee, 0x07, 0x7c, + 0x00, 0xc0, 0x00, 0x80, 0x01, 0xff, 0x49, 0xc1, 0x58, 0xd0, 0x23, 0x00, + 0x05, 0x51, 0x00, 0x01, 0xff, 0x07, 0xfb, 0x04, 0x12, 0x4f, 0x5c, 0x6d, + 0x90, 0xcc, 0x01, 0x4a, 0xe6, 0x45, 0x7f, 0x23, 0x00, 0x50, 0xf7, 0x07, + 0x15, 0xce, 0x41, 0x45, 0x5c, 0x00, 0xef, 0x2a, 0x00, 0x45, 0x20, 0x07, + 0xf0, 0x2a, 0x40, 0x44, 0xb9, 0x00, 0x31, 0x30, 0x80, 0x0d, 0x56, 0x4f, + 0x38, 0x32, 0x30, 0xc0, 0x00, 0x4b, 0x29, 0x1a, 0x34, 0x30, 0x40, 0x80, + 0x01, 0xff, 0x4a, 0xa0, 0x08, 0x35, 0x30, 0x00, 0x4a, 0x2a, 0x1a, 0x33, + 0x30, 0x40, 0x55, 0x8c, 0x39, 0xd0, 0x29, 0x00, 0x55, 0x49, 0x3a, 0xe4, + 0x2a, 0x00, 0x56, 0x89, 0x37, 0xe2, 0x2a, 0x00, 0x56, 0x23, 0x38, 0xca, + 0x27, 0x40, 0x05, 0x5a, 0x03, 0x94, 0x01, 0x05, 0x3b, 0x2d, 0x01, 0xff, + 0x60, 0x74, 0x0f, 0xe1, 0x1c, 0x00, 0x07, 0x36, 0x61, 0x79, 0x02, 0x3b, + 0x01, 0x5e, 0x02, 0x1b, 0x02, 0x4e, 0x47, 0xdc, 0xd4, 0xd2, 0x1c, 0x00, + 0x02, 0x0d, 0x00, 0x38, 0x45, 0xdd, 0xea, 0xd1, 0x1c, 0x00, 0xb4, 0x1e, + 0x0b, 0xbc, 0x22, 0x01, 0xff, 0x5e, 0x63, 0x12, 0xd5, 0x1c, 0x00, 0x53, + 0xe8, 0x0a, 0xd6, 0x1c, 0x00, 0x5b, 0x0c, 0x1c, 0xd7, 0x1c, 0xc0, 0x00, + 0x4a, 0x23, 0xa6, 0xd9, 0x1c, 0x40, 0x4f, 0x3d, 0x6e, 0xdf, 0x1c, 0x00, + 0x4d, 0xe6, 0x87, 0xdb, 0x1c, 0x00, 0x4d, 0x06, 0x0f, 0xde, 0x1c, 0x40, + 0x63, 0xd8, 0x0a, 0xe0, 0x1c, 0x00, 0x48, 0x61, 0xb0, 0xf8, 0x1c, 0x40, + 0x46, 0xb0, 0xdf, 0xd0, 0x1c, 0x00, 0x4e, 0xc3, 0x7c, 0xdc, 0x1c, 0x40, + 0x47, 0xa1, 0x12, 0xdd, 0x1c, 0x00, 0x05, 0x3d, 0x01, 0x01, 0xff, 0x4a, + 0x5f, 0xb0, 0xf9, 0x1c, 0x00, 0x47, 0xf4, 0x0a, 0xda, 0x1c, 0x40, 0x45, + 0x5c, 0x00, 0xf4, 0x1c, 0x00, 0x45, 0x20, 0x07, 0xd8, 0x1c, 0x40, 0xa1, + 0x72, 0x5c, 0x52, 0x17, 0xfa, 0x1c, 0x00, 0x56, 0x2f, 0x34, 0xee, 0x1c, + 0x00, 0x4b, 0xe6, 0x9d, 0xf5, 0x1c, 0x00, 0x4d, 0x38, 0x34, 0xef, 0x1c, + 0x00, 0x49, 0x7e, 0xbc, 0xd3, 0x1c, 0x00, 0xb2, 0x36, 0x46, 0xa0, 0xe0, + 0xed, 0x1c, 0x00, 0x4b, 0x6e, 0xa4, 0xf6, 0x1c, 0x00, 0x08, 0x0e, 0x63, + 0x06, 0x5a, 0xbc, 0x22, 0xd4, 0x1c, 0x40, 0x48, 0xc9, 0x7c, 0xe5, 0x1c, + 0x80, 0x13, 0x47, 0xf4, 0x0a, 0xe2, 0x1c, 0x00, 0x46, 0xcb, 0x7c, 0xe3, + 0x1c, 0xc0, 0x00, 0x4a, 0x9b, 0xa6, 0xe7, 0x1c, 0x40, 0x4a, 0x9b, 0xa6, + 0xe8, 0x1c, 0x40, 0x10, 0x06, 0x63, 0x0c, 0x53, 0xde, 0x4b, 0xf3, 0x1c, + 0x00, 0x53, 0x80, 0x4d, 0xf0, 0x1c, 0x40, 0x48, 0xc9, 0x7c, 0xe6, 0x1c, + 0x00, 0x46, 0xcb, 0x7c, 0xe4, 0x1c, 0x40, 0x08, 0x3d, 0x16, 0x0c, 0x4b, + 0xe6, 0x4b, 0xf2, 0x1c, 0x00, 0x47, 0x64, 0xd6, 0xf7, 0x1c, 0x40, 0x4c, + 0x62, 0x17, 0xe9, 0x1c, 0x00, 0x4c, 0x97, 0x8c, 0xea, 0x1c, 0x00, 0x4e, + 0xcd, 0x7d, 0xf1, 0x1c, 0x00, 0x4b, 0xb0, 0xa4, 0xeb, 0x1c, 0xc0, 0x00, + 0x4a, 0x9b, 0xa6, 0xec, 0x1c, 0x40, 0x02, 0xf1, 0x03, 0xb4, 0x08, 0x45, + 0xc6, 0xe8, 0xdb, 0xf9, 0x01, 0x11, 0x92, 0x5d, 0x01, 0xff, 0xd1, 0x00, + 0xfe, 0x80, 0xda, 0x04, 0xd2, 0x01, 0xfe, 0x80, 0xbf, 0x02, 0xd3, 0x02, + 0xfe, 0x80, 0x91, 0x02, 0xd4, 0x03, 0xfe, 0x80, 0xe3, 0x01, 0xd5, 0x04, + 0xfe, 0x80, 0xb5, 0x01, 0xd6, 0x05, 0xfe, 0x80, 0x87, 0x01, 0xd7, 0x06, + 0xfe, 0x80, 0x5a, 0xd8, 0x07, 0xfe, 0x80, 0x2d, 0xd9, 0x08, 0xfe, 0xc0, + 0x00, 0xd0, 0x49, 0x01, 0x0e, 0xd1, 0x4a, 0x01, 0x0e, 0xd2, 0x4b, 0x01, + 0x0e, 0xd3, 0x4c, 0x01, 0x0e, 0xd4, 0x4d, 0x01, 0x0e, 0xd5, 0x4e, 0x01, + 0x0e, 0xd6, 0x4f, 0x01, 0x0e, 0xd7, 0x50, 0x01, 0x0e, 0xd8, 0x51, 0x01, + 0x0e, 0xd9, 0x52, 0x01, 0x4e, 0xd0, 0x3f, 0x01, 0x0e, 0xd1, 0x40, 0x01, + 0x0e, 0xd2, 0x41, 0x01, 0x0e, 0xd3, 0x42, 0x01, 0x0e, 0xd4, 0x43, 0x01, + 0x0e, 0xd5, 0x44, 0x01, 0x0e, 0xd6, 0x45, 0x01, 0x0e, 0xd7, 0x46, 0x01, + 0x0e, 0xd8, 0x47, 0x01, 0x0e, 0xd9, 0x48, 0x01, 0x4e, 0xd0, 0x35, 0x01, + 0x0e, 0xd1, 0x36, 0x01, 0x0e, 0xd2, 0x37, 0x01, 0x0e, 0xd3, 0x38, 0x01, + 0x0e, 0xd4, 0x39, 0x01, 0x0e, 0xd5, 0x3a, 0x01, 0x0e, 0xd6, 0x3b, 0x01, + 0x0e, 0xd7, 0x3c, 0x01, 0x0e, 0xd8, 0x3d, 0x01, 0x0e, 0xd9, 0x3e, 0x01, + 0x4e, 0xd0, 0x2b, 0x01, 0x0e, 0xd1, 0x2c, 0x01, 0x0e, 0xd2, 0x2d, 0x01, + 0x0e, 0xd3, 0x2e, 0x01, 0x0e, 0xd4, 0x2f, 0x01, 0x0e, 0xd5, 0x30, 0x01, + 0x0e, 0xd6, 0x31, 0x01, 0x0e, 0xd7, 0x32, 0x01, 0x0e, 0xd8, 0x33, 0x01, + 0x0e, 0xd9, 0x34, 0x01, 0x4e, 0xd0, 0x21, 0x01, 0x0e, 0xd1, 0x22, 0x01, + 0x0e, 0xd2, 0x23, 0x01, 0x0e, 0xd3, 0x24, 0x01, 0x0e, 0xd4, 0x25, 0x01, + 0x0e, 0xd5, 0x26, 0x01, 0x0e, 0xd6, 0x27, 0x01, 0x0e, 0xd7, 0x28, 0x01, + 0x0e, 0xd8, 0x29, 0x01, 0x0e, 0xd9, 0x2a, 0x01, 0x4e, 0xd0, 0x17, 0x01, + 0x0e, 0xd1, 0x18, 0x01, 0x0e, 0xd2, 0x19, 0x01, 0x0e, 0xd3, 0x1a, 0x01, + 0x0e, 0xd4, 0x1b, 0x01, 0x0e, 0xd5, 0x1c, 0x01, 0x0e, 0xd6, 0x1d, 0x01, + 0x0e, 0xd7, 0x1e, 0x01, 0x0e, 0xd8, 0x1f, 0x01, 0x0e, 0xd9, 0x20, 0x01, + 0x4e, 0xd0, 0x0d, 0x01, 0x0e, 0xd1, 0x0e, 0x01, 0x0e, 0xd2, 0x0f, 0x01, + 0x0e, 0xd3, 0x10, 0x01, 0x0e, 0xd4, 0x11, 0x01, 0x0e, 0xd5, 0x12, 0x01, + 0x0e, 0xd6, 0x13, 0x01, 0x0e, 0xd7, 0x14, 0x01, 0x0e, 0xd8, 0x15, 0x01, + 0x0e, 0xd9, 0x16, 0x01, 0x4e, 0xd0, 0x03, 0x01, 0x8e, 0xe7, 0x01, 0xd1, + 0x04, 0x01, 0x8e, 0xb9, 0x01, 0xd2, 0x05, 0x01, 0x8e, 0x8b, 0x01, 0xd3, + 0x06, 0x01, 0x8e, 0x5e, 0xd4, 0x07, 0x01, 0x8e, 0x31, 0xd5, 0x08, 0x01, + 0x8e, 0x10, 0xd6, 0x09, 0x01, 0x0e, 0xd7, 0x0a, 0x01, 0x0e, 0xd8, 0x0b, + 0x01, 0x0e, 0xd9, 0x0c, 0x01, 0x4e, 0xd0, 0xe9, 0x01, 0x0e, 0xd1, 0xea, + 0x01, 0x0e, 0xd2, 0xeb, 0x01, 0x0e, 0xd3, 0xec, 0x01, 0x0e, 0xd4, 0xed, + 0x01, 0x0e, 0xd5, 0xee, 0x01, 0x0e, 0xd6, 0xef, 0x01, 0x4e, 0xd0, 0xdf, + 0x01, 0x0e, 0xd1, 0xe0, 0x01, 0x0e, 0xd2, 0xe1, 0x01, 0x0e, 0xd3, 0xe2, + 0x01, 0x0e, 0xd4, 0xe3, 0x01, 0x0e, 0xd5, 0xe4, 0x01, 0x0e, 0xd6, 0xe5, + 0x01, 0x0e, 0xd7, 0xe6, 0x01, 0x0e, 0xd8, 0xe7, 0x01, 0x0e, 0xd9, 0xe8, + 0x01, 0x4e, 0xd0, 0xd5, 0x01, 0x0e, 0xd1, 0xd6, 0x01, 0x0e, 0xd2, 0xd7, + 0x01, 0x0e, 0xd3, 0xd8, 0x01, 0x0e, 0xd4, 0xd9, 0x01, 0x0e, 0xd5, 0xda, + 0x01, 0x0e, 0xd6, 0xdb, 0x01, 0x0e, 0xd7, 0xdc, 0x01, 0x0e, 0xd8, 0xdd, + 0x01, 0x0e, 0xd9, 0xde, 0x01, 0x4e, 0xd0, 0xcb, 0x01, 0x0e, 0xd1, 0xcc, + 0x01, 0x0e, 0xd2, 0xcd, 0x01, 0x0e, 0xd3, 0xce, 0x01, 0x0e, 0xd4, 0xcf, + 0x01, 0x0e, 0xd5, 0xd0, 0x01, 0x0e, 0xd6, 0xd1, 0x01, 0x0e, 0xd7, 0xd2, + 0x01, 0x0e, 0xd8, 0xd3, 0x01, 0x0e, 0xd9, 0xd4, 0x01, 0x4e, 0xd0, 0xc1, + 0x01, 0x0e, 0xd1, 0xc2, 0x01, 0x0e, 0xd2, 0xc3, 0x01, 0x0e, 0xd3, 0xc4, + 0x01, 0x0e, 0xd4, 0xc5, 0x01, 0x0e, 0xd5, 0xc6, 0x01, 0x0e, 0xd6, 0xc7, + 0x01, 0x0e, 0xd7, 0xc8, 0x01, 0x0e, 0xd8, 0xc9, 0x01, 0x0e, 0xd9, 0xca, + 0x01, 0x4e, 0xd0, 0xb7, 0x01, 0x0e, 0xd1, 0xb8, 0x01, 0x0e, 0xd2, 0xb9, + 0x01, 0x0e, 0xd3, 0xba, 0x01, 0x0e, 0xd4, 0xbb, 0x01, 0x0e, 0xd5, 0xbc, + 0x01, 0x0e, 0xd6, 0xbd, 0x01, 0x0e, 0xd7, 0xbe, 0x01, 0x0e, 0xd8, 0xbf, + 0x01, 0x0e, 0xd9, 0xc0, 0x01, 0x4e, 0xd0, 0x09, 0xfe, 0x80, 0x9b, 0x03, + 0xd1, 0x0a, 0xfe, 0x80, 0xed, 0x02, 0xd2, 0x0b, 0xfe, 0x80, 0xbf, 0x02, + 0xd3, 0x0c, 0xfe, 0x80, 0x91, 0x02, 0xd4, 0x0d, 0xfe, 0x80, 0xe3, 0x01, + 0xd5, 0x0e, 0xfe, 0x80, 0xb5, 0x01, 0xd6, 0x0f, 0xfe, 0x80, 0x87, 0x01, + 0xd7, 0x00, 0x01, 0x8e, 0x5a, 0xd8, 0x01, 0x01, 0x8e, 0x2d, 0xd9, 0x02, + 0x01, 0xce, 0x00, 0xd0, 0xad, 0x01, 0x0e, 0xd1, 0xae, 0x01, 0x0e, 0xd2, + 0xaf, 0x01, 0x0e, 0xd3, 0xb0, 0x01, 0x0e, 0xd4, 0xb1, 0x01, 0x0e, 0xd5, + 0xb2, 0x01, 0x0e, 0xd6, 0xb3, 0x01, 0x0e, 0xd7, 0xb4, 0x01, 0x0e, 0xd8, + 0xb5, 0x01, 0x0e, 0xd9, 0xb6, 0x01, 0x4e, 0xd0, 0xa3, 0x01, 0x0e, 0xd1, + 0xa4, 0x01, 0x0e, 0xd2, 0xa5, 0x01, 0x0e, 0xd3, 0xa6, 0x01, 0x0e, 0xd4, + 0xa7, 0x01, 0x0e, 0xd5, 0xa8, 0x01, 0x0e, 0xd6, 0xa9, 0x01, 0x0e, 0xd7, + 0xaa, 0x01, 0x0e, 0xd8, 0xab, 0x01, 0x0e, 0xd9, 0xac, 0x01, 0x4e, 0xd0, + 0x99, 0x01, 0x0e, 0xd1, 0x9a, 0x01, 0x0e, 0xd2, 0x9b, 0x01, 0x0e, 0xd3, + 0x9c, 0x01, 0x0e, 0xd4, 0x9d, 0x01, 0x0e, 0xd5, 0x9e, 0x01, 0x0e, 0xd6, + 0x9f, 0x01, 0x0e, 0xd7, 0xa0, 0x01, 0x0e, 0xd8, 0xa1, 0x01, 0x0e, 0xd9, + 0xa2, 0x01, 0x4e, 0xd0, 0x8f, 0x01, 0x0e, 0xd1, 0x90, 0x01, 0x0e, 0xd2, + 0x91, 0x01, 0x0e, 0xd3, 0x92, 0x01, 0x0e, 0xd4, 0x93, 0x01, 0x0e, 0xd5, + 0x94, 0x01, 0x0e, 0xd6, 0x95, 0x01, 0x0e, 0xd7, 0x96, 0x01, 0x0e, 0xd8, + 0x97, 0x01, 0x0e, 0xd9, 0x98, 0x01, 0x4e, 0xd0, 0x85, 0x01, 0x0e, 0xd1, + 0x86, 0x01, 0x0e, 0xd2, 0x87, 0x01, 0x0e, 0xd3, 0x88, 0x01, 0x0e, 0xd4, + 0x89, 0x01, 0x0e, 0xd5, 0x8a, 0x01, 0x0e, 0xd6, 0x8b, 0x01, 0x0e, 0xd7, + 0x8c, 0x01, 0x0e, 0xd8, 0x8d, 0x01, 0x0e, 0xd9, 0x8e, 0x01, 0x4e, 0xd0, + 0x7b, 0x01, 0x0e, 0xd1, 0x7c, 0x01, 0x0e, 0xd2, 0x7d, 0x01, 0x0e, 0xd3, + 0x7e, 0x01, 0x0e, 0xd4, 0x7f, 0x01, 0x0e, 0xd5, 0x80, 0x01, 0x0e, 0xd6, + 0x81, 0x01, 0x0e, 0xd7, 0x82, 0x01, 0x0e, 0xd8, 0x83, 0x01, 0x0e, 0xd9, + 0x84, 0x01, 0x4e, 0xd0, 0x71, 0x01, 0x0e, 0xd1, 0x72, 0x01, 0x0e, 0xd2, + 0x73, 0x01, 0x0e, 0xd3, 0x74, 0x01, 0x0e, 0xd4, 0x75, 0x01, 0x0e, 0xd5, + 0x76, 0x01, 0x0e, 0xd6, 0x77, 0x01, 0x0e, 0xd7, 0x78, 0x01, 0x0e, 0xd8, + 0x79, 0x01, 0x0e, 0xd9, 0x7a, 0x01, 0x4e, 0xd0, 0x67, 0x01, 0x0e, 0xd1, + 0x68, 0x01, 0x0e, 0xd2, 0x69, 0x01, 0x0e, 0xd3, 0x6a, 0x01, 0x0e, 0xd4, + 0x6b, 0x01, 0x0e, 0xd5, 0x6c, 0x01, 0x0e, 0xd6, 0x6d, 0x01, 0x0e, 0xd7, + 0x6e, 0x01, 0x0e, 0xd8, 0x6f, 0x01, 0x0e, 0xd9, 0x70, 0x01, 0x4e, 0xd0, + 0x5d, 0x01, 0x0e, 0xd1, 0x5e, 0x01, 0x0e, 0xd2, 0x5f, 0x01, 0x0e, 0xd3, + 0x60, 0x01, 0x0e, 0xd4, 0x61, 0x01, 0x0e, 0xd5, 0x62, 0x01, 0x0e, 0xd6, + 0x63, 0x01, 0x0e, 0xd7, 0x64, 0x01, 0x0e, 0xd8, 0x65, 0x01, 0x0e, 0xd9, + 0x66, 0x01, 0x4e, 0xd0, 0x53, 0x01, 0x0e, 0xd1, 0x54, 0x01, 0x0e, 0xd2, + 0x55, 0x01, 0x0e, 0xd3, 0x56, 0x01, 0x0e, 0xd4, 0x57, 0x01, 0x0e, 0xd5, + 0x58, 0x01, 0x0e, 0xd6, 0x59, 0x01, 0x0e, 0xd7, 0x5a, 0x01, 0x0e, 0xd8, + 0x5b, 0x01, 0x0e, 0xd9, 0x5c, 0x01, 0x4e, 0x45, 0x13, 0x05, 0x0d, 0xa6, + 0x00, 0x06, 0xef, 0x06, 0x83, 0x0b, 0x49, 0x81, 0x16, 0x0e, 0xa6, 0x00, + 0x4d, 0xa6, 0x34, 0x0f, 0xa6, 0x00, 0x02, 0x16, 0x08, 0x01, 0xff, 0x07, + 0x1c, 0x18, 0x5f, 0x05, 0x61, 0x16, 0x01, 0xff, 0x44, 0x26, 0x16, 0x17, + 0xa6, 0x00, 0xa4, 0x3d, 0xa6, 0x2f, 0x44, 0x3b, 0xac, 0x1f, 0xa6, 0x00, + 0xab, 0x1b, 0x43, 0x76, 0xf4, 0x16, 0xa6, 0x00, 0xb4, 0x01, 0xff, 0x42, + 0x80, 0x12, 0x19, 0xa6, 0x00, 0x43, 0xa1, 0x01, 0x15, 0xa6, 0x00, 0x43, + 0xd8, 0x02, 0x1d, 0xa6, 0x40, 0x44, 0xb4, 0x9b, 0x14, 0xa6, 0x00, 0x43, + 0xaa, 0x45, 0x1c, 0xa6, 0x40, 0x42, 0x80, 0x12, 0x18, 0xa6, 0x00, 0x44, + 0xb4, 0x9b, 0x13, 0xa6, 0x40, 0x43, 0x1c, 0x01, 0x1a, 0xa6, 0x00, 0xaf, + 0x01, 0xff, 0x42, 0x4f, 0x21, 0x1e, 0xa6, 0x00, 0x43, 0xd8, 0x02, 0x1b, + 0xa6, 0x40, 0xe1, 0x49, 0xa5, 0x80, 0x85, 0x0a, 0xa2, 0xc4, 0x09, 0xa3, + 0xa3, 0x09, 0xa4, 0xc2, 0x08, 0xe5, 0xe1, 0xa5, 0x80, 0xaf, 0x08, 0xa6, + 0x8e, 0x08, 0xa7, 0xc1, 0x07, 0xa8, 0x89, 0x07, 0xe9, 0x24, 0xa5, 0x80, + 0xff, 0x06, 0xaa, 0xde, 0x06, 0xab, 0x8f, 0x06, 0xac, 0xe8, 0x05, 0xad, + 0x85, 0x05, 0xae, 0xa4, 0x03, 0xef, 0xba, 0xa5, 0x80, 0x91, 0x03, 0xb0, + 0xf0, 0x02, 0xb2, 0xcf, 0x02, 0xb3, 0x8e, 0x02, 0xb4, 0xcd, 0x01, 0xf5, + 0x95, 0xa5, 0x80, 0xc3, 0x01, 0xb6, 0xa2, 0x01, 0xb7, 0x61, 0xb9, 0x41, + 0xba, 0x01, 0xff, 0xe1, 0x64, 0xa5, 0x00, 0xe5, 0xfd, 0xa5, 0x80, 0x31, + 0xa8, 0x11, 0xe9, 0x3d, 0xa5, 0x00, 0xef, 0xd5, 0xa5, 0x80, 0x04, 0xf5, + 0xae, 0xa5, 0x40, 0xef, 0x89, 0xa5, 0x40, 0xe1, 0x65, 0xa5, 0x00, 0xe5, + 0xfe, 0xa5, 0x80, 0x11, 0xe9, 0x3e, 0xa5, 0x00, 0xef, 0xd6, 0xa5, 0x80, + 0x04, 0xf5, 0xaf, 0xa5, 0x40, 0xef, 0x8a, 0xa5, 0x40, 0xe5, 0x19, 0xa5, + 0x40, 0xe5, 0x18, 0xa5, 0x40, 0xe1, 0x69, 0xa5, 0x00, 0xe5, 0x02, 0xa6, + 0x80, 0x11, 0xe9, 0x42, 0xa5, 0x00, 0xef, 0xda, 0xa5, 0x80, 0x04, 0xf5, + 0xb3, 0xa5, 0x40, 0xef, 0x8e, 0xa5, 0x40, 0xe5, 0x1d, 0xa5, 0x40, 0xe1, + 0x4e, 0xa5, 0x80, 0x36, 0xe5, 0xe6, 0xa5, 0x80, 0x24, 0xe9, 0x28, 0xa5, + 0x80, 0x1b, 0xef, 0xbf, 0xa5, 0x80, 0x09, 0xf5, 0x99, 0xa5, 0xc0, 0x00, + 0xee, 0x9a, 0xa5, 0x40, 0xee, 0xc0, 0xa5, 0x00, 0xef, 0x74, 0xa5, 0xc0, + 0x00, 0xee, 0x75, 0xa5, 0x40, 0xee, 0x29, 0xa5, 0x40, 0xe5, 0x03, 0xa5, + 0x80, 0x04, 0xee, 0xe7, 0xa5, 0x40, 0xee, 0x04, 0xa5, 0x40, 0xee, 0x4f, + 0xa5, 0x40, 0xe1, 0x59, 0xa5, 0x00, 0xe5, 0xf2, 0xa5, 0x80, 0x11, 0xe9, + 0x32, 0xa5, 0x00, 0xef, 0xca, 0xa5, 0x80, 0x04, 0xf5, 0xa3, 0xa5, 0x40, + 0xef, 0x7e, 0xa5, 0x40, 0xe5, 0x0d, 0xa5, 0x40, 0xee, 0x96, 0xa5, 0x40, + 0xe1, 0x5a, 0xa5, 0x00, 0xe5, 0xf3, 0xa5, 0x80, 0x31, 0xa8, 0x11, 0xe9, + 0x33, 0xa5, 0x00, 0xef, 0xcb, 0xa5, 0x80, 0x04, 0xf5, 0xa4, 0xa5, 0x40, + 0xef, 0x7f, 0xa5, 0x40, 0xe1, 0x5b, 0xa5, 0x00, 0xe5, 0xf4, 0xa5, 0x80, + 0x11, 0xe9, 0x34, 0xa5, 0x00, 0xef, 0xcc, 0xa5, 0x80, 0x04, 0xf5, 0xa5, + 0xa5, 0x40, 0xef, 0x80, 0xa5, 0x40, 0xe5, 0x0f, 0xa5, 0x40, 0xe5, 0x0e, + 0xa5, 0x40, 0xe1, 0x62, 0xa5, 0x00, 0xe5, 0xfb, 0xa5, 0x80, 0x31, 0xa8, + 0x11, 0xe9, 0x3b, 0xa5, 0x00, 0xef, 0xd3, 0xa5, 0x80, 0x04, 0xf5, 0xac, + 0xa5, 0x40, 0xef, 0x87, 0xa5, 0x40, 0xe1, 0x63, 0xa5, 0x00, 0xe5, 0xfc, + 0xa5, 0x80, 0x11, 0xe9, 0x3c, 0xa5, 0x00, 0xef, 0xd4, 0xa5, 0x80, 0x04, + 0xf5, 0xad, 0xa5, 0x40, 0xef, 0x88, 0xa5, 0x40, 0xe5, 0x17, 0xa5, 0x40, + 0xe5, 0x16, 0xa5, 0x40, 0xe1, 0x5f, 0xa5, 0x00, 0xe5, 0xf8, 0xa5, 0x80, + 0x11, 0xe9, 0x38, 0xa5, 0x00, 0xef, 0xd0, 0xa5, 0x80, 0x04, 0xf5, 0xa9, + 0xa5, 0x40, 0xef, 0x84, 0xa5, 0x40, 0xe5, 0x13, 0xa5, 0x40, 0xe1, 0x50, + 0xa5, 0x00, 0xe5, 0xe8, 0xa5, 0x80, 0x11, 0xe9, 0x2a, 0xa5, 0x00, 0xef, + 0xc1, 0xa5, 0x80, 0x04, 0xf5, 0x9b, 0xa5, 0x40, 0xef, 0x76, 0xa5, 0x40, + 0xe5, 0x05, 0xa5, 0x40, 0xee, 0xbb, 0xa5, 0x00, 0xef, 0x71, 0xa5, 0xc0, + 0x00, 0xee, 0x72, 0xa5, 0x40, 0xe1, 0x6f, 0xa5, 0x00, 0xa4, 0x97, 0x01, + 0xe5, 0x09, 0xa6, 0x80, 0x8d, 0x01, 0xe7, 0x0b, 0xa6, 0x80, 0x52, 0xe9, + 0x47, 0xa5, 0x00, 0xaa, 0x2e, 0xef, 0xdf, 0xa5, 0x80, 0x25, 0xf5, 0xb8, + 0xa5, 0x00, 0xb9, 0x01, 0xff, 0xe1, 0x70, 0xa5, 0x00, 0xe5, 0x0a, 0xa6, + 0x80, 0x11, 0xe9, 0x48, 0xa5, 0x00, 0xef, 0xe0, 0xa5, 0x80, 0x04, 0xf5, + 0xb9, 0xa5, 0x40, 0xef, 0x94, 0xa5, 0x40, 0xe5, 0x23, 0xa5, 0x40, 0xef, + 0x93, 0xa5, 0x40, 0xe1, 0x68, 0xa5, 0x00, 0xe5, 0x01, 0xa6, 0x80, 0x11, + 0xe9, 0x41, 0xa5, 0x00, 0xef, 0xd9, 0xa5, 0x80, 0x04, 0xf5, 0xb2, 0xa5, + 0x40, 0xef, 0x8d, 0xa5, 0x40, 0xe5, 0x1c, 0xa5, 0x40, 0x42, 0x1a, 0x00, + 0x4b, 0xa5, 0x00, 0x42, 0x92, 0x01, 0xe3, 0xa5, 0x00, 0xa7, 0x06, 0x42, + 0x10, 0x00, 0xbc, 0xa5, 0x40, 0xe1, 0x6c, 0xa5, 0x00, 0xe5, 0x04, 0xa6, + 0x80, 0x11, 0xe9, 0x44, 0xa5, 0x00, 0xef, 0xdc, 0xa5, 0x80, 0x04, 0xf5, + 0xb5, 0xa5, 0x40, 0xef, 0x90, 0xa5, 0x40, 0xe5, 0x1f, 0xa5, 0x00, 0xee, + 0x05, 0xa6, 0x40, 0xe5, 0x22, 0xa5, 0x40, 0xe1, 0x61, 0xa5, 0x00, 0xe5, + 0xfa, 0xa5, 0x80, 0x33, 0xe9, 0x3a, 0xa5, 0x00, 0xef, 0xd2, 0xa5, 0x80, + 0x04, 0xf5, 0xab, 0xa5, 0x40, 0x03, 0x3f, 0x01, 0x04, 0xef, 0x86, 0xa5, + 0x40, 0x42, 0x3b, 0x01, 0x2b, 0xa6, 0x00, 0x42, 0x0c, 0x08, 0x10, 0xa6, + 0x00, 0x42, 0x1b, 0x02, 0x11, 0xa6, 0x00, 0x42, 0x6c, 0x00, 0x2a, 0xa6, + 0x00, 0x43, 0x41, 0xe3, 0x12, 0xa6, 0x40, 0xe5, 0x15, 0xa5, 0x40, 0xe1, + 0x6e, 0xa5, 0x00, 0xa2, 0x3c, 0xe5, 0x08, 0xa6, 0x80, 0x33, 0x02, 0x99, + 0x48, 0x11, 0xe9, 0x46, 0xa5, 0x00, 0xef, 0xde, 0xa5, 0x80, 0x04, 0xf5, + 0xb7, 0xa5, 0x40, 0xef, 0x92, 0xa5, 0x40, 0xe1, 0x56, 0xa5, 0x00, 0xe5, + 0xee, 0xa5, 0x80, 0x11, 0xe9, 0x2f, 0xa5, 0x00, 0xef, 0xc6, 0xa5, 0x80, + 0x04, 0xf5, 0xa0, 0xa5, 0x40, 0xef, 0x7b, 0xa5, 0x40, 0xe5, 0x0a, 0xa5, + 0x40, 0xe5, 0x21, 0xa5, 0x40, 0xe1, 0x53, 0xa5, 0x00, 0xe5, 0xeb, 0xa5, + 0x80, 0x11, 0xe9, 0x2d, 0xa5, 0x00, 0xef, 0xc4, 0xa5, 0x80, 0x04, 0xf5, + 0x9e, 0xa5, 0x40, 0xef, 0x79, 0xa5, 0x40, 0xe5, 0x08, 0xa5, 0x40, 0xe1, + 0x5e, 0xa5, 0x00, 0xe5, 0xf7, 0xa5, 0x80, 0x11, 0xe9, 0x37, 0xa5, 0x00, + 0xef, 0xcf, 0xa5, 0x80, 0x04, 0xf5, 0xa8, 0xa5, 0x40, 0xef, 0x83, 0xa5, + 0x40, 0xe5, 0x12, 0xa5, 0x00, 0x48, 0xd5, 0x56, 0x0c, 0xa6, 0x40, 0xe1, + 0x6a, 0xa5, 0x80, 0x43, 0xe5, 0x03, 0xa6, 0x80, 0x3a, 0xe9, 0x43, 0xa5, + 0x00, 0xef, 0xdb, 0xa5, 0x80, 0x2d, 0xb0, 0x04, 0xf5, 0xb4, 0xa5, 0x40, + 0xe1, 0x54, 0xa5, 0x80, 0x1e, 0xe5, 0xec, 0xa5, 0x80, 0x11, 0xe9, 0x2e, + 0xa5, 0x00, 0xef, 0xc5, 0xa5, 0x80, 0x04, 0xf5, 0x9f, 0xa5, 0x40, 0xef, + 0x7a, 0xa5, 0x40, 0xe5, 0x09, 0xa5, 0x00, 0xee, 0xed, 0xa5, 0x40, 0xee, + 0x55, 0xa5, 0x40, 0xef, 0x8f, 0xa5, 0x40, 0xe5, 0x1e, 0xa5, 0x40, 0xee, + 0x6b, 0xa5, 0x40, 0xe1, 0x67, 0xa5, 0x00, 0xe5, 0x00, 0xa6, 0x80, 0x11, + 0xe9, 0x40, 0xa5, 0x00, 0xef, 0xd8, 0xa5, 0x80, 0x04, 0xf5, 0xb1, 0xa5, + 0x40, 0xef, 0x8c, 0xa5, 0x40, 0xe5, 0x1b, 0xa5, 0x40, 0xee, 0x25, 0xa5, + 0x40, 0xe1, 0x4c, 0xa5, 0x80, 0x2c, 0xe5, 0xe4, 0xa5, 0x80, 0x1f, 0xe9, + 0x26, 0xa5, 0x80, 0x16, 0xef, 0xbd, 0xa5, 0x80, 0x09, 0xf5, 0x97, 0xa5, + 0xc0, 0x00, 0xee, 0x98, 0xa5, 0x40, 0xee, 0xbe, 0xa5, 0x00, 0xef, 0x73, + 0xa5, 0x40, 0xee, 0x27, 0xa5, 0x40, 0xe5, 0x02, 0xa5, 0x00, 0xee, 0xe5, + 0xa5, 0x40, 0xee, 0x4d, 0xa5, 0x40, 0xe1, 0x6d, 0xa5, 0x00, 0xa2, 0x1e, + 0xe5, 0x06, 0xa6, 0x80, 0x11, 0xe9, 0x45, 0xa5, 0x00, 0xef, 0xdd, 0xa5, + 0x80, 0x04, 0xf5, 0xb6, 0xa5, 0x40, 0xef, 0x91, 0xa5, 0x40, 0xe5, 0x20, + 0xa5, 0x00, 0xee, 0x07, 0xa6, 0x40, 0xe1, 0x57, 0xa5, 0x00, 0xe5, 0xef, + 0xa5, 0x80, 0x15, 0xe9, 0x30, 0xa5, 0x00, 0xef, 0xc7, 0xa5, 0x80, 0x04, + 0xf5, 0xa1, 0xa5, 0x40, 0xee, 0xc8, 0xa5, 0x00, 0xef, 0x7c, 0xa5, 0x40, + 0xe5, 0x0b, 0xa5, 0x00, 0xee, 0xf0, 0xa5, 0x40, 0xe1, 0x58, 0xa5, 0x00, + 0xe5, 0xf1, 0xa5, 0x80, 0x11, 0xe9, 0x31, 0xa5, 0x00, 0xef, 0xc9, 0xa5, + 0x80, 0x04, 0xf5, 0xa2, 0xa5, 0x40, 0xef, 0x7d, 0xa5, 0x40, 0xe5, 0x0c, + 0xa5, 0x40, 0xe5, 0x00, 0xa5, 0x80, 0x04, 0xee, 0xe2, 0xa5, 0x40, 0xee, + 0x01, 0xa5, 0x40, 0xe1, 0x60, 0xa5, 0x00, 0xe5, 0xf9, 0xa5, 0x80, 0x51, + 0xa8, 0x11, 0xe9, 0x39, 0xa5, 0x00, 0xef, 0xd1, 0xa5, 0x80, 0x04, 0xf5, + 0xaa, 0xa5, 0x40, 0xef, 0x85, 0xa5, 0x40, 0xe1, 0x5c, 0xa5, 0x00, 0xe5, + 0xf5, 0xa5, 0x80, 0x31, 0xa8, 0x11, 0xe9, 0x35, 0xa5, 0x00, 0xef, 0xcd, + 0xa5, 0x80, 0x04, 0xf5, 0xa6, 0xa5, 0x40, 0xef, 0x81, 0xa5, 0x40, 0xe1, + 0x5d, 0xa5, 0x00, 0xe5, 0xf6, 0xa5, 0x80, 0x11, 0xe9, 0x36, 0xa5, 0x00, + 0xef, 0xce, 0xa5, 0x80, 0x04, 0xf5, 0xa7, 0xa5, 0x40, 0xef, 0x82, 0xa5, + 0x40, 0xe5, 0x11, 0xa5, 0x40, 0xe5, 0x10, 0xa5, 0x40, 0xe5, 0x14, 0xa5, + 0x40, 0xe1, 0x66, 0xa5, 0x00, 0xe5, 0xff, 0xa5, 0x80, 0x11, 0xe9, 0x3f, + 0xa5, 0x00, 0xef, 0xd7, 0xa5, 0x80, 0x04, 0xf5, 0xb0, 0xa5, 0x40, 0xef, + 0x8b, 0xa5, 0x40, 0xe5, 0x1a, 0xa5, 0x40, 0xe1, 0x52, 0xa5, 0x00, 0xe5, + 0xea, 0xa5, 0x80, 0x31, 0xa8, 0x11, 0xe9, 0x2c, 0xa5, 0x00, 0xef, 0xc3, + 0xa5, 0x80, 0x04, 0xf5, 0x9d, 0xa5, 0x40, 0xef, 0x78, 0xa5, 0x40, 0xe1, + 0x51, 0xa5, 0x00, 0xe5, 0xe9, 0xa5, 0x80, 0x11, 0xe9, 0x2b, 0xa5, 0x00, + 0xef, 0xc2, 0xa5, 0x80, 0x04, 0xf5, 0x9c, 0xa5, 0x40, 0xef, 0x77, 0xa5, + 0x40, 0xe5, 0x06, 0xa5, 0x40, 0xe5, 0x07, 0xa5, 0x40, 0xee, 0x4a, 0xa5, + 0x40, 0x45, 0x12, 0x0b, 0x28, 0xa6, 0x00, 0xa6, 0x2e, 0x44, 0xcf, 0x2a, + 0x29, 0xa6, 0x00, 0x43, 0x0e, 0x0b, 0x21, 0xa6, 0x00, 0xb3, 0x14, 0xb4, + 0x06, 0x44, 0x43, 0x1e, 0x20, 0xa6, 0x40, 0x44, 0x25, 0x01, 0x23, 0xa6, + 0x00, 0x42, 0x15, 0x02, 0x22, 0xa6, 0x40, 0x44, 0xc9, 0x1d, 0x27, 0xa6, + 0x00, 0x42, 0x01, 0x26, 0x26, 0xa6, 0x40, 0x43, 0xd2, 0x05, 0x25, 0xa6, + 0x00, 0x43, 0xf6, 0x06, 0x24, 0xa6, 0x40, 0x08, 0x50, 0xc6, 0xd2, 0x0d, + 0x47, 0x5f, 0x61, 0x02, 0x26, 0x80, 0xbb, 0x0d, 0xae, 0xc5, 0x0c, 0xb0, + 0x06, 0x45, 0x01, 0xe1, 0x45, 0x26, 0x40, 0x80, 0xad, 0x0b, 0x8d, 0xb4, + 0x0a, 0x04, 0x6f, 0x02, 0xff, 0x03, 0x4e, 0x37, 0x7c, 0x43, 0xf6, 0x01, + 0x06, 0xa9, 0x01, 0x01, 0xff, 0xa1, 0xff, 0x02, 0x06, 0x0c, 0x03, 0xee, + 0x02, 0x50, 0x86, 0x61, 0x3d, 0xf8, 0x01, 0xa4, 0xd9, 0x02, 0x51, 0xfc, + 0x59, 0x35, 0xf8, 0x01, 0xa8, 0xfa, 0x01, 0x4d, 0x64, 0x87, 0xc8, 0x21, + 0x00, 0x4f, 0x0c, 0x72, 0xf0, 0x27, 0x00, 0x46, 0xa4, 0xdf, 0x6d, 0xf6, + 0x01, 0xb3, 0xd9, 0x01, 0xb4, 0x47, 0x06, 0xad, 0x02, 0x01, 0xff, 0x45, + 0xce, 0x00, 0xe7, 0x21, 0x80, 0x0d, 0x4c, 0x2f, 0x8e, 0xee, 0x21, 0xc0, + 0x00, 0x4c, 0x53, 0x8b, 0xef, 0x21, 0x40, 0x80, 0x01, 0xff, 0x48, 0x57, + 0xb4, 0xea, 0x21, 0x80, 0x1e, 0x4b, 0x54, 0x8b, 0xeb, 0x21, 0x80, 0x06, + 0x59, 0xc7, 0x1e, 0x95, 0xf8, 0x41, 0x06, 0x50, 0x00, 0x01, 0xff, 0x4e, + 0x0b, 0x00, 0xec, 0x21, 0x00, 0x4c, 0x32, 0x00, 0xed, 0x21, 0x40, 0x54, + 0xec, 0x3f, 0xb8, 0x2b, 0x40, 0x02, 0x0d, 0x00, 0x1c, 0x02, 0x15, 0x02, + 0x01, 0xff, 0x4d, 0x85, 0x7f, 0x9f, 0x21, 0x00, 0x0e, 0x1b, 0x06, 0x01, + 0xff, 0x51, 0x2f, 0x5a, 0x49, 0x29, 0x00, 0x58, 0x29, 0x06, 0xed, 0x2b, + 0x40, 0x05, 0x04, 0x02, 0x06, 0x49, 0x12, 0x72, 0x0a, 0x29, 0x40, 0x4a, + 0xe0, 0x01, 0x91, 0xf8, 0x01, 0x08, 0x09, 0x02, 0x01, 0xff, 0x45, 0xce, + 0x00, 0x61, 0x2b, 0x80, 0x0c, 0x4c, 0xc3, 0x8d, 0x6b, 0x2b, 0x00, 0x4d, + 0x64, 0x87, 0x85, 0x2b, 0x40, 0x80, 0x01, 0xff, 0x6c, 0xea, 0x01, 0x81, + 0x2b, 0x00, 0x46, 0xd1, 0x14, 0x71, 0x2b, 0x00, 0x05, 0x51, 0x00, 0x01, + 0xff, 0x4a, 0x53, 0xa8, 0x29, 0xf8, 0x01, 0x58, 0x26, 0x28, 0x7b, 0x2b, + 0x00, 0x4b, 0x6b, 0x68, 0x2d, 0xf8, 0x01, 0x09, 0xaf, 0xbb, 0x12, 0x4c, + 0xef, 0x91, 0x25, 0xf8, 0x01, 0x4c, 0x5b, 0x92, 0x21, 0xf8, 0x01, 0x50, + 0x66, 0x68, 0x31, 0xf8, 0x41, 0x49, 0xea, 0x01, 0xa2, 0x2b, 0x00, 0x4a, + 0xb3, 0x02, 0xa3, 0x2b, 0x40, 0x4f, 0xe7, 0x66, 0x51, 0xf8, 0x01, 0x4c, + 0xe7, 0x93, 0x39, 0xf8, 0x41, 0x11, 0x91, 0x05, 0x11, 0x05, 0x6e, 0x15, + 0x01, 0xff, 0x45, 0xce, 0x00, 0x45, 0xf8, 0x01, 0x50, 0x86, 0x61, 0x41, + 0xf8, 0x41, 0x04, 0xc3, 0x00, 0x19, 0x05, 0xc8, 0x00, 0x01, 0xff, 0x80, + 0x06, 0x45, 0xa9, 0x01, 0xbe, 0x21, 0x40, 0x48, 0x57, 0xb4, 0x5c, 0x29, + 0x00, 0x46, 0xd1, 0x14, 0x54, 0x29, 0x40, 0x80, 0x06, 0x45, 0xa9, 0x01, + 0xbf, 0x21, 0x40, 0x07, 0x92, 0x0a, 0x0c, 0x48, 0x57, 0xb4, 0x60, 0x29, + 0x00, 0x46, 0xd1, 0x14, 0x58, 0x29, 0x40, 0x61, 0xc9, 0x0d, 0x6e, 0x29, + 0x00, 0x5f, 0x08, 0x12, 0x63, 0x29, 0x40, 0x4b, 0xc4, 0x8d, 0xe1, 0x21, + 0x00, 0x4b, 0x30, 0x8e, 0xd1, 0x21, 0x40, 0x45, 0xce, 0x00, 0x06, 0x2b, + 0x00, 0x53, 0xd3, 0x48, 0x89, 0x2b, 0x40, 0x45, 0xf8, 0xe8, 0x15, 0x2e, + 0x00, 0x44, 0xcf, 0x00, 0x91, 0x21, 0xc0, 0x00, 0x80, 0x01, 0xff, 0x5a, + 0x2e, 0x1f, 0xb8, 0xfb, 0x01, 0x48, 0x57, 0xb4, 0xa5, 0x21, 0x00, 0x5c, + 0x4e, 0x18, 0xc5, 0x21, 0x00, 0x46, 0xd1, 0x14, 0x12, 0x29, 0x00, 0x05, + 0x51, 0x00, 0x01, 0xff, 0x4d, 0x36, 0x82, 0xde, 0x21, 0x00, 0x55, 0xd5, + 0x01, 0x15, 0xf8, 0x01, 0x51, 0x47, 0x05, 0x09, 0x29, 0x00, 0x58, 0x76, + 0x29, 0x09, 0xf8, 0x01, 0x59, 0xe3, 0x24, 0x05, 0xf8, 0x01, 0x4c, 0xd3, + 0x92, 0x99, 0xf8, 0x01, 0x06, 0x5d, 0x07, 0x11, 0x04, 0x49, 0x0c, 0x01, + 0xff, 0x49, 0xea, 0x01, 0xb0, 0x21, 0x00, 0x4a, 0xb3, 0x02, 0xb1, 0x21, + 0x40, 0x55, 0xd5, 0x01, 0x11, 0xf8, 0x01, 0x52, 0x2e, 0x06, 0x01, 0xf8, + 0x41, 0x04, 0x1a, 0x00, 0x8c, 0x06, 0x4e, 0x41, 0x76, 0x01, 0x27, 0x00, + 0x07, 0x73, 0x02, 0xda, 0x05, 0x52, 0xa9, 0x51, 0x84, 0xfb, 0x01, 0x05, + 0x22, 0x00, 0x8e, 0x05, 0x05, 0xc3, 0x00, 0x8c, 0x03, 0x07, 0x7d, 0x02, + 0xd6, 0x02, 0x04, 0x0e, 0x0b, 0xc5, 0x02, 0x06, 0xc8, 0x00, 0x30, 0x53, + 0xfb, 0x4c, 0x86, 0xfb, 0x01, 0xb4, 0x01, 0xff, 0x05, 0x25, 0x01, 0x06, + 0x5b, 0x35, 0x1d, 0x6d, 0xfb, 0x41, 0x4d, 0x01, 0x4d, 0x83, 0xfb, 0x01, + 0x09, 0x2a, 0x01, 0x01, 0xff, 0x45, 0x33, 0x01, 0x85, 0xfb, 0x01, 0x56, + 0x37, 0x35, 0xa6, 0xce, 0x01, 0x57, 0xdc, 0x30, 0xad, 0xce, 0x41, 0x0f, + 0x6d, 0x6b, 0xac, 0x01, 0x5a, 0xe4, 0x1f, 0x50, 0x27, 0x00, 0xaf, 0x97, + 0x01, 0x46, 0x14, 0xdf, 0x10, 0x27, 0x00, 0x03, 0x7c, 0x00, 0x2f, 0x0f, + 0xa4, 0x02, 0x1f, 0xb4, 0x01, 0xff, 0x51, 0xbe, 0x55, 0x99, 0xfb, 0x01, + 0x05, 0x1a, 0x01, 0x06, 0x4d, 0x88, 0x7d, 0x33, 0xcc, 0x41, 0x42, 0x68, + 0x00, 0xf9, 0x25, 0x00, 0x51, 0xa2, 0x5e, 0x9d, 0xfb, 0x41, 0x46, 0x12, + 0x03, 0x3f, 0xf5, 0x01, 0x46, 0xd6, 0x05, 0x52, 0x27, 0x40, 0x06, 0x7c, + 0x0d, 0x06, 0x4b, 0x90, 0x4c, 0x36, 0xcc, 0x41, 0xa3, 0x22, 0x0a, 0x0c, + 0x08, 0x12, 0x4d, 0xeb, 0x85, 0xb7, 0xcc, 0x01, 0x4f, 0x56, 0x73, 0xd3, + 0xcc, 0x01, 0x4a, 0xa9, 0xb1, 0xb3, 0xcc, 0x41, 0x4b, 0x93, 0x23, 0xa9, + 0xcc, 0x01, 0x49, 0x5f, 0xbd, 0xa7, 0xcc, 0x41, 0x05, 0x4b, 0x88, 0x06, + 0x4b, 0xaf, 0x9d, 0xdd, 0x25, 0x40, 0x46, 0x2e, 0xda, 0xc7, 0xcc, 0x01, + 0xab, 0x12, 0x44, 0xfd, 0xf1, 0xcf, 0xcc, 0x01, 0x45, 0x52, 0xbe, 0xbf, + 0xcc, 0x01, 0x44, 0x5d, 0xf2, 0xc3, 0xcc, 0x41, 0x43, 0xa1, 0x01, 0xbb, + 0xcc, 0x01, 0x45, 0x4e, 0x09, 0xcb, 0xcc, 0x41, 0x52, 0xfd, 0x25, 0x93, + 0xce, 0x01, 0x62, 0x00, 0x0d, 0xb1, 0x23, 0x40, 0x1b, 0x78, 0x1c, 0x50, + 0x06, 0x6d, 0x02, 0x01, 0xff, 0x0a, 0x73, 0x02, 0x31, 0x08, 0x84, 0x02, + 0x17, 0x15, 0x7d, 0x02, 0x01, 0xff, 0x46, 0x73, 0x02, 0x54, 0xfb, 0x01, + 0x4c, 0x58, 0x0f, 0x67, 0xfb, 0x01, 0x45, 0xc8, 0x00, 0x55, 0xfb, 0x41, + 0x06, 0x13, 0x01, 0x06, 0x52, 0x3b, 0x56, 0x63, 0xfb, 0x41, 0x46, 0x73, + 0x02, 0x56, 0xfb, 0x01, 0x4c, 0x58, 0x0f, 0x65, 0xfb, 0x41, 0x06, 0x13, + 0x01, 0x06, 0x52, 0x3b, 0x56, 0x62, 0xfb, 0x41, 0x4c, 0x58, 0x0f, 0x64, + 0xfb, 0x01, 0x45, 0xc8, 0x00, 0x66, 0xfb, 0x41, 0x46, 0x73, 0x02, 0x52, + 0xfb, 0x01, 0x45, 0xc8, 0x00, 0x53, 0xfb, 0x41, 0x4c, 0x12, 0x0b, 0x94, + 0x25, 0x00, 0x4d, 0x43, 0x1d, 0x82, 0xfb, 0x41, 0x07, 0x73, 0x02, 0x21, + 0x05, 0xc3, 0x00, 0x11, 0x06, 0xc8, 0x00, 0x01, 0xff, 0x53, 0xfc, 0x25, + 0x97, 0xce, 0x01, 0x4e, 0x87, 0x7d, 0x37, 0xcc, 0x41, 0x53, 0xfc, 0x25, + 0x94, 0xce, 0x01, 0x4e, 0x87, 0x7d, 0x34, 0xcc, 0x41, 0x58, 0xa6, 0x29, + 0x95, 0xce, 0x01, 0x59, 0xf6, 0x25, 0x96, 0xce, 0x41, 0x0f, 0x6d, 0x6b, + 0x96, 0x01, 0x4f, 0xd6, 0x6b, 0xd4, 0x27, 0x00, 0xaf, 0x81, 0x01, 0x03, + 0x7c, 0x00, 0x1f, 0xb4, 0x01, 0xff, 0x52, 0xa7, 0x4d, 0x98, 0xfb, 0x01, + 0x05, 0x1a, 0x01, 0x06, 0x4d, 0x88, 0x7d, 0x30, 0xcc, 0x41, 0x42, 0x68, + 0x00, 0xf8, 0x25, 0x00, 0x51, 0xa2, 0x5e, 0x9c, 0xfb, 0x41, 0x06, 0x7c, + 0x0d, 0x06, 0x4b, 0x90, 0x4c, 0x35, 0xcc, 0x41, 0xa3, 0x22, 0x0a, 0x0c, + 0x08, 0x12, 0x4d, 0xeb, 0x85, 0xb6, 0xcc, 0x01, 0x4f, 0x56, 0x73, 0xd2, + 0xcc, 0x01, 0x4a, 0xa9, 0xb1, 0xb2, 0xcc, 0x41, 0x4b, 0x93, 0x23, 0xa8, + 0xcc, 0x01, 0x49, 0x5f, 0xbd, 0xa6, 0xcc, 0x41, 0x05, 0x4b, 0x88, 0x06, + 0x4b, 0xaf, 0x9d, 0xdc, 0x25, 0x40, 0x46, 0x2e, 0xda, 0xc6, 0xcc, 0x01, + 0xab, 0x12, 0x44, 0xfd, 0xf1, 0xce, 0xcc, 0x01, 0x45, 0x52, 0xbe, 0xbe, + 0xcc, 0x01, 0x44, 0x5d, 0xf2, 0xc2, 0xcc, 0x41, 0x43, 0xa1, 0x01, 0xba, + 0xcc, 0x01, 0x45, 0x4e, 0x09, 0xca, 0xcc, 0x41, 0x52, 0xfd, 0x25, 0x90, + 0xce, 0x01, 0x63, 0x64, 0x0b, 0xb0, 0x23, 0x40, 0x06, 0x13, 0x01, 0x11, + 0x1b, 0xf2, 0x1d, 0x01, 0xff, 0x46, 0x73, 0x02, 0x57, 0xfb, 0x01, 0x45, + 0xc8, 0x00, 0x58, 0xfb, 0x41, 0x0a, 0x73, 0x02, 0x32, 0x08, 0x84, 0x02, + 0x17, 0x15, 0xf8, 0x1d, 0x01, 0xff, 0x46, 0x73, 0x02, 0x59, 0xfb, 0x01, + 0x4c, 0x58, 0x0f, 0x5c, 0xfb, 0x01, 0x45, 0xc8, 0x00, 0x5a, 0xfb, 0x41, + 0x52, 0x8f, 0x53, 0x5e, 0xfb, 0x01, 0x06, 0x6d, 0x02, 0x01, 0xff, 0x46, + 0x73, 0x02, 0x5b, 0xfb, 0x01, 0x4c, 0x58, 0x0f, 0x60, 0xfb, 0x41, 0x52, + 0x8f, 0x53, 0x5d, 0xfb, 0x01, 0x06, 0x6d, 0x02, 0x01, 0xff, 0x4c, 0x58, + 0x0f, 0x5f, 0xfb, 0x01, 0x45, 0xc8, 0x00, 0x61, 0xfb, 0x41, 0x45, 0x33, + 0x01, 0x80, 0x25, 0x80, 0x34, 0x46, 0x12, 0x03, 0xe0, 0x25, 0x00, 0x52, + 0x27, 0x52, 0x03, 0xce, 0x01, 0x08, 0x3c, 0x04, 0x18, 0x56, 0x37, 0x35, + 0xa7, 0xce, 0x01, 0x4c, 0x44, 0x04, 0x8e, 0xfb, 0x01, 0x57, 0xdc, 0x30, + 0xac, 0xce, 0x01, 0x63, 0xcd, 0x0b, 0x14, 0xce, 0x41, 0x61, 0x4d, 0x0e, + 0x92, 0xfb, 0x01, 0x4c, 0x32, 0x11, 0xda, 0x25, 0x40, 0x64, 0x9b, 0x08, + 0x91, 0xfb, 0x41, 0x05, 0xc3, 0x00, 0x17, 0x51, 0x3f, 0x1d, 0xe4, 0xfb, + 0x01, 0x06, 0xc8, 0x00, 0x01, 0xff, 0x53, 0xfc, 0x25, 0x92, 0xce, 0x01, + 0x4e, 0x87, 0x7d, 0x32, 0xcc, 0x41, 0x53, 0xfc, 0x25, 0x91, 0xce, 0x01, + 0x4e, 0x87, 0x7d, 0x31, 0xcc, 0x41, 0xac, 0x06, 0x6f, 0x09, 0x01, 0x68, + 0xfb, 0x41, 0x6d, 0x65, 0x01, 0x6a, 0xfb, 0x01, 0x05, 0x14, 0x01, 0x01, + 0xff, 0x50, 0x0e, 0x0b, 0x80, 0xfb, 0x01, 0x55, 0xa2, 0x3e, 0x9a, 0xfb, + 0x41, 0x17, 0x6f, 0x2e, 0x66, 0x09, 0x9c, 0x01, 0x01, 0xff, 0xa1, 0x53, + 0x4b, 0xaa, 0x9b, 0x79, 0xcc, 0x01, 0x44, 0xd5, 0xef, 0xfb, 0xcd, 0x01, + 0x47, 0x55, 0xd1, 0x00, 0xcc, 0x01, 0x51, 0x4f, 0x5c, 0xe6, 0xf6, 0x01, + 0xb2, 0x21, 0x06, 0x5d, 0x07, 0x11, 0x0e, 0x6b, 0x7d, 0x01, 0xff, 0x4f, + 0x78, 0x6f, 0xed, 0x25, 0x00, 0x50, 0xb6, 0x66, 0xee, 0x25, 0x40, 0x48, + 0x11, 0x34, 0xe8, 0xf6, 0x01, 0x4c, 0xee, 0x5b, 0x3c, 0xf5, 0x41, 0x49, + 0x9a, 0xb5, 0x98, 0xcc, 0x01, 0x4b, 0x90, 0x06, 0x3a, 0xf5, 0x01, 0x44, + 0xc5, 0xac, 0x66, 0xcc, 0x01, 0x4a, 0x9d, 0xae, 0x57, 0xcc, 0x41, 0x47, + 0x12, 0x34, 0xe7, 0xf6, 0x01, 0x4a, 0x03, 0xb2, 0x61, 0xcc, 0x41, 0x4c, + 0x7b, 0x8d, 0x75, 0xcc, 0x01, 0x4a, 0x3c, 0x29, 0x71, 0xcc, 0x41, 0x05, + 0xce, 0x00, 0x6d, 0x05, 0x9d, 0x05, 0x48, 0x05, 0x9e, 0x14, 0x19, 0x49, + 0xfa, 0xb8, 0x7e, 0x29, 0x00, 0x57, 0xae, 0x30, 0xf0, 0x22, 0x00, 0x44, + 0xf5, 0x38, 0xa5, 0x22, 0xc0, 0x00, 0x52, 0x9f, 0x4f, 0xdf, 0x27, 0x40, + 0x45, 0xce, 0x00, 0x95, 0x21, 0x80, 0x1e, 0x4b, 0xa5, 0x99, 0x0d, 0x2b, + 0x00, 0x4c, 0x2f, 0x8e, 0xd5, 0x21, 0x00, 0x50, 0xe6, 0x66, 0x59, 0xf8, + 0x01, 0x55, 0x01, 0x02, 0x65, 0x2b, 0x00, 0x4b, 0x49, 0x10, 0xf3, 0x21, + 0x40, 0x4a, 0x4b, 0xa6, 0xa8, 0x21, 0x40, 0x0f, 0x5a, 0x6f, 0x11, 0x10, + 0x96, 0x66, 0x01, 0xff, 0x4c, 0xff, 0x90, 0x4c, 0x29, 0x00, 0x4d, 0xcc, + 0x87, 0x4f, 0x29, 0x40, 0x4c, 0xff, 0x90, 0x51, 0x29, 0x00, 0x4d, 0xcc, + 0x87, 0x4d, 0x29, 0x40, 0x4f, 0xab, 0x69, 0xbd, 0x29, 0x00, 0x44, 0xe6, + 0x01, 0x03, 0x23, 0xc0, 0x00, 0x80, 0x01, 0xff, 0x5b, 0x5c, 0x1a, 0x24, + 0x23, 0x00, 0x52, 0x7e, 0x47, 0xb9, 0x2b, 0x40, 0x4b, 0x0b, 0x99, 0x12, + 0xf6, 0x01, 0x4e, 0x6b, 0x76, 0xd1, 0x2b, 0x00, 0xa4, 0x59, 0xa9, 0x06, + 0x5a, 0x02, 0x21, 0xaf, 0x26, 0x40, 0x49, 0x65, 0xb7, 0x84, 0xf9, 0x01, + 0x42, 0x10, 0x00, 0x2a, 0x22, 0x80, 0x14, 0xb4, 0x06, 0x57, 0x17, 0x25, + 0x72, 0x26, 0x40, 0x4a, 0xd7, 0x20, 0x1f, 0x00, 0x00, 0x49, 0x2f, 0x77, + 0xfa, 0x2b, 0x40, 0x80, 0x01, 0xff, 0x06, 0x5c, 0x00, 0x1d, 0x5c, 0x36, + 0x17, 0x4a, 0x2a, 0x00, 0x05, 0x51, 0x00, 0x01, 0xff, 0x4a, 0x35, 0xad, + 0x45, 0x2a, 0x00, 0x4a, 0x67, 0x98, 0x41, 0x2a, 0x00, 0x47, 0xe6, 0x7f, + 0x42, 0x2a, 0x40, 0x56, 0xfb, 0x32, 0x48, 0x2a, 0x00, 0x4c, 0xa9, 0x0a, + 0x46, 0x2a, 0x40, 0x45, 0x1b, 0xcc, 0x3f, 0x20, 0x00, 0x48, 0x43, 0xb0, + 0x8c, 0x23, 0x40, 0x80, 0x01, 0xff, 0x49, 0x0e, 0xbd, 0xf1, 0x26, 0x00, + 0x4f, 0xdc, 0x74, 0x14, 0x26, 0x40, 0x07, 0xec, 0x05, 0x06, 0x4c, 0x3b, + 0x25, 0x9f, 0x03, 0x41, 0xa1, 0xb3, 0x01, 0x44, 0x9a, 0x99, 0x81, 0x03, + 0x01, 0xa4, 0x9e, 0x01, 0xa7, 0x8f, 0x01, 0x42, 0x0b, 0x00, 0x85, 0x03, + 0x81, 0x81, 0x01, 0xe9, 0x9b, 0x03, 0x01, 0xab, 0x6f, 0x45, 0x17, 0xe8, + 0x8d, 0x03, 0x01, 0x43, 0xb4, 0x05, 0x8e, 0x03, 0x01, 0x43, 0xdc, 0x22, + 0x90, 0x03, 0x01, 0x42, 0x07, 0x0c, 0x94, 0x03, 0x01, 0x44, 0x35, 0xf2, + 0x96, 0x03, 0x01, 0x45, 0x33, 0xea, 0x97, 0x03, 0x01, 0xb3, 0x2f, 0xb4, + 0x1d, 0xf5, 0x9c, 0x03, 0x01, 0x42, 0x15, 0x02, 0x86, 0x03, 0x01, 0x43, + 0xa1, 0x52, 0x8a, 0x03, 0x01, 0xba, 0x01, 0xff, 0x43, 0x94, 0x0f, 0x87, + 0x03, 0x01, 0xf5, 0x91, 0x03, 0x41, 0x42, 0xed, 0x05, 0x89, 0x03, 0x01, + 0x45, 0xe1, 0xe6, 0x98, 0x03, 0x01, 0xef, 0x9a, 0x03, 0x41, 0xa1, 0x0c, + 0x43, 0x7a, 0x16, 0x8c, 0x03, 0x01, 0x42, 0x6f, 0x00, 0x9d, 0x03, 0x41, + 0x42, 0x04, 0x00, 0x95, 0x03, 0x01, 0x43, 0x22, 0x53, 0x92, 0x03, 0x41, + 0x42, 0x44, 0x14, 0x8b, 0x03, 0x01, 0x42, 0x22, 0x00, 0x83, 0x03, 0x41, + 0x42, 0x12, 0x00, 0x88, 0x03, 0x41, 0x44, 0xfd, 0xee, 0x82, 0x03, 0x01, + 0x44, 0x66, 0x9c, 0x99, 0x03, 0x41, 0x44, 0x38, 0xd6, 0x84, 0x03, 0x01, + 0x43, 0x22, 0x00, 0x8f, 0x03, 0x41, 0x42, 0x9e, 0x01, 0x93, 0x03, 0x01, + 0x43, 0xf4, 0x7a, 0x80, 0x03, 0x41, 0x8d, 0xf5, 0x7b, 0xa1, 0xa4, 0x3b, + 0xa5, 0xb9, 0x30, 0xa8, 0xa0, 0x26, 0xa9, 0x83, 0x13, 0xaf, 0xd7, 0x09, + 0xb2, 0xd4, 0x06, 0xb5, 0x88, 0x01, 0xb7, 0x01, 0xff, 0x57, 0xe7, 0x2b, + 0x39, 0x27, 0x00, 0x57, 0x3e, 0x2f, 0x00, 0xf5, 0x01, 0xaf, 0x01, 0xff, + 0x80, 0x06, 0x48, 0xc0, 0xc2, 0x3a, 0x2e, 0x40, 0x5c, 0x1a, 0x17, 0x51, + 0x20, 0x00, 0x4c, 0x03, 0x8d, 0xb0, 0xf5, 0x01, 0x58, 0xc6, 0x27, 0x75, + 0x2a, 0x00, 0x03, 0x23, 0x0a, 0x44, 0x46, 0xcf, 0x86, 0x95, 0xf4, 0x01, + 0x15, 0x02, 0x3c, 0x2e, 0x4e, 0x27, 0x79, 0xc9, 0x29, 0x00, 0x08, 0x2b, + 0x22, 0x18, 0x51, 0xfe, 0x4e, 0x6c, 0xf4, 0x01, 0x5a, 0xec, 0x21, 0x88, + 0xcc, 0x01, 0x4e, 0x6f, 0x7c, 0xea, 0xf5, 0x01, 0x53, 0xfc, 0x4e, 0x6d, + 0xf4, 0x41, 0x4c, 0x43, 0x8c, 0x07, 0x2a, 0x00, 0x4b, 0xdd, 0xa0, 0x08, + 0x2a, 0x40, 0x43, 0x1a, 0x00, 0x55, 0x2a, 0x00, 0x42, 0x0c, 0x00, 0x56, + 0x2a, 0x40, 0x80, 0x06, 0x5a, 0xf8, 0x0b, 0x2a, 0x2e, 0x40, 0x46, 0x9d, + 0x7d, 0x25, 0x20, 0x00, 0x4b, 0x07, 0x0c, 0x5a, 0x20, 0x40, 0x49, 0x42, + 0xb9, 0xae, 0x20, 0x00, 0xac, 0xc4, 0x01, 0x4b, 0x51, 0x9f, 0x43, 0xf9, + 0x01, 0xb2, 0x01, 0xff, 0xab, 0xac, 0x01, 0x04, 0x73, 0x07, 0x06, 0x43, + 0xbd, 0x01, 0x22, 0xf4, 0x41, 0xa1, 0x93, 0x01, 0x06, 0x0c, 0x03, 0x82, + 0x01, 0xa3, 0x74, 0xa4, 0x5b, 0x57, 0x86, 0x2e, 0x29, 0x21, 0x00, 0x02, + 0xb4, 0x01, 0x3b, 0x4c, 0x1b, 0x93, 0x8f, 0xf5, 0x01, 0xb3, 0x06, 0x51, + 0x7f, 0x5f, 0xc9, 0x26, 0x40, 0x12, 0x02, 0x48, 0x1d, 0x48, 0xda, 0x59, + 0x35, 0x2e, 0x00, 0x46, 0xf4, 0xdd, 0x4e, 0x21, 0x00, 0x05, 0xa2, 0x20, + 0x01, 0xff, 0x52, 0x2b, 0x51, 0x57, 0xf6, 0x01, 0x52, 0x83, 0x56, 0x55, + 0xf6, 0x41, 0xe7, 0x41, 0x21, 0x00, 0xec, 0x42, 0x21, 0x00, 0xf9, 0x44, + 0x21, 0x40, 0x04, 0xb6, 0x01, 0x06, 0x46, 0x45, 0x33, 0x19, 0x23, 0x40, + 0x52, 0x2b, 0x51, 0x56, 0xf6, 0x01, 0x52, 0x83, 0x56, 0x54, 0xf6, 0x41, + 0x45, 0xd7, 0xda, 0x38, 0x2e, 0x00, 0x06, 0xf3, 0x15, 0x01, 0xff, 0x44, + 0x25, 0x01, 0x8b, 0x21, 0x00, 0x42, 0x15, 0x02, 0x8a, 0x21, 0x40, 0x48, + 0x68, 0xc3, 0x32, 0x21, 0x00, 0x44, 0x14, 0x05, 0x32, 0x2e, 0x40, 0x48, + 0xe0, 0xc9, 0xc2, 0x2b, 0x00, 0x4b, 0x85, 0x5f, 0xca, 0x26, 0x40, 0x48, + 0x13, 0x3e, 0x4b, 0x21, 0x00, 0x44, 0x05, 0x02, 0xa2, 0x29, 0x40, 0x42, + 0xc6, 0x1c, 0x83, 0xf9, 0x01, 0x4d, 0x7f, 0x84, 0xba, 0x20, 0x40, 0x42, + 0xba, 0x04, 0x37, 0xf3, 0x01, 0x0b, 0x0b, 0xa4, 0x01, 0xff, 0x4e, 0x17, + 0x76, 0xc9, 0x13, 0x01, 0x49, 0x5c, 0xb7, 0xd0, 0x13, 0x01, 0xa4, 0xd6, + 0x03, 0x4f, 0x89, 0x6d, 0xd2, 0x13, 0x01, 0x07, 0xec, 0x05, 0xa2, 0x01, + 0x45, 0x56, 0xea, 0xd1, 0x13, 0x01, 0x05, 0x5a, 0x03, 0x5b, 0xb6, 0x01, + 0xff, 0x0a, 0xbb, 0xa9, 0x48, 0x0a, 0x41, 0x77, 0x01, 0xff, 0xa1, 0x35, + 0x42, 0x27, 0x01, 0xc2, 0x13, 0x01, 0xe9, 0xb9, 0x13, 0x81, 0x26, 0x42, + 0xcd, 0x02, 0xc7, 0x13, 0x01, 0xf5, 0xbb, 0x13, 0x81, 0x17, 0x08, 0x22, + 0xc1, 0x01, 0xff, 0xec, 0xbf, 0x13, 0x81, 0x09, 0xf2, 0xbd, 0x13, 0xc1, + 0x00, 0xf2, 0xbe, 0x13, 0x41, 0xec, 0xc0, 0x13, 0x41, 0xf5, 0xbc, 0x13, + 0x41, 0xe9, 0xba, 0x13, 0x41, 0xe1, 0xb8, 0x13, 0x01, 0xe9, 0xc5, 0x13, + 0x01, 0xf5, 0xc8, 0x13, 0x41, 0x48, 0xc9, 0x7c, 0xe2, 0x13, 0x01, 0x47, + 0xf4, 0x0a, 0xe1, 0x13, 0x41, 0xa1, 0x2f, 0x50, 0x36, 0x61, 0xca, 0x13, + 0x01, 0x4d, 0x42, 0x85, 0xcf, 0x13, 0x01, 0x4b, 0xa6, 0xa0, 0xd7, 0x13, + 0x01, 0x45, 0xf2, 0xe9, 0xd3, 0x13, 0x01, 0x4e, 0x29, 0x7c, 0xd8, 0x13, + 0x01, 0x02, 0x02, 0x00, 0x01, 0xff, 0x44, 0xe5, 0x23, 0xce, 0x13, 0x01, + 0x45, 0xec, 0x4b, 0xcd, 0x13, 0x41, 0x47, 0x3d, 0x16, 0xcc, 0x13, 0x01, + 0x47, 0xaf, 0x88, 0xb7, 0x13, 0x41, 0xe1, 0x80, 0x13, 0x81, 0x97, 0x02, + 0xa2, 0x8a, 0x02, 0xa3, 0xfd, 0x01, 0xa4, 0xe4, 0x01, 0x42, 0x27, 0x01, + 0x8b, 0x13, 0x01, 0xa7, 0xd1, 0x01, 0x42, 0x22, 0x00, 0xb2, 0x13, 0x01, + 0xe9, 0x82, 0x13, 0x81, 0xc1, 0x01, 0xaa, 0xb4, 0x01, 0xab, 0xa7, 0x01, + 0xac, 0x93, 0x01, 0x42, 0x6c, 0x00, 0xaa, 0x13, 0x01, 0xae, 0x75, 0x42, + 0xcd, 0x02, 0x90, 0x13, 0x01, 0xb0, 0x63, 0xb2, 0x57, 0xb3, 0x45, 0xb4, + 0x2c, 0xf5, 0x84, 0x13, 0x81, 0x23, 0xb6, 0x06, 0x42, 0xbc, 0x22, 0xab, + 0x13, 0x41, 0xe1, 0xae, 0x13, 0x01, 0x07, 0x23, 0xc1, 0x01, 0xff, 0xec, + 0x88, 0x13, 0x81, 0x09, 0xf2, 0x86, 0x13, 0xc1, 0x00, 0xf2, 0x87, 0x13, + 0x41, 0xec, 0x89, 0x13, 0x41, 0xf5, 0x85, 0x13, 0x41, 0xe1, 0xa1, 0x13, + 0x01, 0x42, 0x22, 0x00, 0xa2, 0x13, 0x01, 0xb4, 0x01, 0xff, 0xe1, 0x9c, + 0x13, 0x01, 0x42, 0x22, 0x00, 0x9d, 0x13, 0x41, 0xe1, 0xb1, 0x13, 0x01, + 0x42, 0x22, 0x00, 0xaf, 0x13, 0x01, 0x42, 0x40, 0x06, 0xb0, 0x13, 0x41, + 0xe1, 0xac, 0x13, 0x01, 0x42, 0x71, 0x00, 0xb4, 0x13, 0x41, 0xe1, 0xa6, + 0x13, 0x01, 0x42, 0x22, 0x00, 0xa7, 0x13, 0x41, 0xe1, 0xa5, 0x13, 0x01, + 0x42, 0x24, 0x02, 0x96, 0x13, 0x01, 0x42, 0x2a, 0x05, 0xa0, 0x13, 0x01, + 0x42, 0xbc, 0x22, 0x9b, 0x13, 0x41, 0xe1, 0xad, 0x13, 0x01, 0xac, 0x01, + 0xff, 0xe1, 0xb3, 0x13, 0x01, 0x42, 0x74, 0x00, 0xb5, 0x13, 0x41, 0xe1, + 0x92, 0x13, 0x01, 0x42, 0x22, 0x00, 0x93, 0x13, 0x41, 0xe1, 0x99, 0x13, + 0x01, 0x42, 0x22, 0x00, 0x9a, 0x13, 0x41, 0xe9, 0x83, 0x13, 0x41, 0xe1, + 0x94, 0x13, 0x01, 0x42, 0x22, 0x00, 0x95, 0x13, 0x41, 0xe1, 0xa3, 0x13, + 0x01, 0xa4, 0x06, 0x42, 0x22, 0x00, 0xa4, 0x13, 0x41, 0xe1, 0x9e, 0x13, + 0x01, 0x42, 0x22, 0x00, 0x9f, 0x13, 0x41, 0xe1, 0x97, 0x13, 0x01, 0x42, + 0x22, 0x00, 0x98, 0x13, 0x41, 0xe1, 0xa8, 0x13, 0x01, 0x42, 0x22, 0x00, + 0xa9, 0x13, 0x41, 0xe1, 0x81, 0x13, 0x01, 0xe9, 0x8e, 0x13, 0x01, 0xf5, + 0x91, 0x13, 0x41, 0x44, 0x73, 0x20, 0xd4, 0x13, 0x01, 0x4b, 0x09, 0xa1, + 0xd5, 0x13, 0x41, 0xa1, 0xc7, 0x02, 0xa5, 0xb8, 0x02, 0xa9, 0x43, 0xaf, + 0x14, 0xb5, 0x01, 0xff, 0xe5, 0xa8, 0x22, 0x80, 0x06, 0x44, 0x41, 0xf1, + 0xba, 0xf3, 0x41, 0x50, 0x36, 0x60, 0xdf, 0x2b, 0x40, 0x42, 0x60, 0x07, + 0xcc, 0xf9, 0x81, 0x20, 0x45, 0x7b, 0xe8, 0x8a, 0xfa, 0x01, 0xb0, 0x01, + 0xff, 0x42, 0xfe, 0x46, 0xc6, 0xf3, 0x01, 0x05, 0x36, 0x00, 0x01, 0xff, + 0x45, 0x8c, 0xd0, 0x79, 0xf3, 0x01, 0x44, 0x2a, 0x5b, 0x20, 0xf4, 0x41, + 0x45, 0x3c, 0xe6, 0x8e, 0xf6, 0x41, 0x03, 0x1c, 0x01, 0xb1, 0x01, 0x45, + 0x94, 0x3b, 0x5d, 0x20, 0x00, 0x4b, 0xd9, 0x9a, 0x31, 0xf5, 0x01, 0x09, + 0x06, 0x96, 0x6e, 0x04, 0x6d, 0x1d, 0x01, 0xff, 0x4e, 0x79, 0x76, 0xf6, + 0x2a, 0x00, 0x46, 0xd6, 0xda, 0x4b, 0x2e, 0x00, 0x14, 0x4d, 0x2a, 0x4d, + 0x48, 0x94, 0x26, 0x2d, 0x22, 0x00, 0x07, 0x7e, 0xd3, 0x37, 0xb0, 0x29, + 0x57, 0x4f, 0x31, 0xfb, 0x2a, 0x00, 0x45, 0x35, 0x23, 0x4b, 0x22, 0x00, + 0x0d, 0x42, 0x01, 0x01, 0xff, 0x4f, 0x57, 0x31, 0xf4, 0x2a, 0x00, 0x49, + 0xdb, 0x38, 0x80, 0x29, 0x00, 0x4f, 0x56, 0x01, 0xaa, 0x22, 0x00, 0x56, + 0x23, 0x38, 0xf5, 0x2a, 0x40, 0x43, 0x59, 0x28, 0xfb, 0x29, 0x00, 0x44, + 0xeb, 0x1a, 0x34, 0x20, 0x40, 0x4c, 0x87, 0x00, 0xf8, 0x2a, 0x00, 0x49, + 0xec, 0x00, 0xf7, 0x2a, 0x40, 0x56, 0x95, 0x33, 0x68, 0x2a, 0x00, 0x56, + 0x9f, 0x37, 0x69, 0x2a, 0x40, 0x45, 0x52, 0x72, 0x37, 0x26, 0x00, 0x44, + 0x43, 0x91, 0x32, 0x26, 0x00, 0x46, 0x89, 0x7b, 0x30, 0x26, 0x00, 0x44, + 0xde, 0x2e, 0x31, 0x26, 0x00, 0x48, 0x03, 0x35, 0x36, 0x26, 0x00, 0x47, + 0xe0, 0x7a, 0x33, 0x26, 0x00, 0xb7, 0x01, 0xff, 0x44, 0x8a, 0x00, 0x35, + 0x26, 0x00, 0x43, 0xe9, 0x06, 0x34, 0x26, 0x40, 0x02, 0x68, 0x00, 0x17, + 0x05, 0x1f, 0x01, 0x01, 0xff, 0x46, 0xb2, 0x21, 0x23, 0x20, 0x00, 0x4c, + 0xef, 0x8e, 0xa9, 0xf6, 0x01, 0x45, 0x00, 0x30, 0xd0, 0xf4, 0x41, 0x06, + 0x50, 0x00, 0x06, 0x58, 0x9b, 0x06, 0x9d, 0x27, 0x40, 0x49, 0x3a, 0x1e, + 0xca, 0x29, 0x00, 0x4f, 0x1f, 0x19, 0xc6, 0xf6, 0x01, 0x50, 0xf6, 0x66, + 0xcd, 0x29, 0x00, 0x48, 0xe3, 0x59, 0xcb, 0x29, 0x40, 0x4b, 0x4d, 0x99, + 0x8e, 0xfa, 0x01, 0x48, 0x42, 0x19, 0xbc, 0xce, 0x41, 0xa3, 0x28, 0x4c, + 0xcf, 0x8d, 0x22, 0x21, 0x00, 0x42, 0x9e, 0x01, 0x86, 0xf6, 0x01, 0xed, + 0x8a, 0xf6, 0x81, 0x11, 0x02, 0x5f, 0x01, 0x01, 0xff, 0x45, 0xf7, 0xe9, + 0xd7, 0x2b, 0x00, 0x53, 0xb0, 0x4e, 0xdb, 0x2a, 0x40, 0x44, 0xc2, 0x64, + 0x8b, 0xf6, 0x41, 0x45, 0xc7, 0xe7, 0xb2, 0xf5, 0x01, 0x43, 0xc7, 0x07, + 0x9c, 0xf6, 0x41, 0x0c, 0xe7, 0x8d, 0xf1, 0x06, 0x44, 0x9c, 0x37, 0xbd, + 0xf6, 0x01, 0x49, 0x28, 0xbb, 0xfc, 0xf5, 0x01, 0x0a, 0x53, 0xad, 0xc8, + 0x04, 0x44, 0x1e, 0x39, 0x45, 0xf3, 0x01, 0x44, 0xb2, 0x67, 0x45, 0xf4, + 0x01, 0xaf, 0xa6, 0x04, 0x02, 0x20, 0x00, 0x8f, 0x02, 0x17, 0x0a, 0x31, + 0xbf, 0x01, 0xb4, 0x01, 0xff, 0x49, 0xe2, 0xb5, 0x30, 0x23, 0x00, 0x02, + 0x7b, 0x02, 0x01, 0xff, 0x07, 0xec, 0x05, 0x06, 0x50, 0x16, 0x67, 0xae, + 0xe2, 0x41, 0xe1, 0xad, 0xe2, 0x81, 0x9d, 0x01, 0xa2, 0x7a, 0x43, 0x91, + 0x20, 0x9a, 0xe2, 0x01, 0x42, 0xf0, 0x10, 0x93, 0xe2, 0x01, 0xe5, 0xa6, 0xe2, 0x81, 0x65, 0x42, 0x24, 0x02, 0x95, 0xe2, 0x01, 0x42, 0x22, 0x00, - 0x9e, 0xe2, 0x01, 0xe9, 0xa1, 0xe2, 0x81, 0x50, 0x42, 0xbd, 0x26, 0x9d, + 0x9e, 0xe2, 0x01, 0xe9, 0xa1, 0xe2, 0x81, 0x50, 0x42, 0x56, 0x19, 0x9d, 0xe2, 0x01, 0x42, 0x1b, 0x02, 0x94, 0xe2, 0x01, 0x42, 0x74, 0x00, 0xa0, 0xe2, 0x01, 0x42, 0x6c, 0x00, 0x96, 0xe2, 0x01, 0xae, 0x2c, 0xef, 0xaa, - 0xe2, 0x01, 0x42, 0x6c, 0x09, 0x90, 0xe2, 0x01, 0x42, 0x71, 0x00, 0x9f, - 0xe2, 0x01, 0x42, 0x15, 0x06, 0x99, 0xe2, 0x01, 0x42, 0x12, 0x00, 0x92, + 0xe2, 0x01, 0x42, 0xbb, 0x09, 0x90, 0xe2, 0x01, 0x42, 0x71, 0x00, 0x9f, + 0xe2, 0x01, 0x42, 0x40, 0x06, 0x99, 0xe2, 0x01, 0x42, 0x12, 0x00, 0x92, 0xe2, 0x01, 0xf5, 0xa5, 0xe2, 0x01, 0x42, 0xa9, 0x01, 0x9c, 0xe2, 0x01, - 0x42, 0x34, 0x22, 0x9b, 0xe2, 0x41, 0xe1, 0x97, 0xe2, 0x01, 0x42, 0x24, + 0x42, 0xbc, 0x22, 0x9b, 0xe2, 0x41, 0xe1, 0x97, 0xe2, 0x01, 0x42, 0x24, 0x02, 0x98, 0xe2, 0x41, 0xf5, 0xa3, 0xe2, 0x41, 0xef, 0xa8, 0xe2, 0x41, - 0xe1, 0x91, 0xe2, 0x01, 0x07, 0x72, 0xd2, 0x01, 0xff, 0x42, 0x44, 0x0f, + 0xe1, 0x91, 0xe2, 0x01, 0x07, 0x45, 0xd5, 0x01, 0xff, 0x42, 0x93, 0x0f, 0xac, 0xe2, 0x01, 0xe5, 0xa7, 0xe2, 0x81, 0x09, 0xe9, 0xa2, 0xe2, 0xc1, 0x00, 0xf5, 0xa4, 0xe2, 0x41, 0xef, 0xa9, 0xe2, 0x41, 0xe5, 0xab, 0xe2, - 0x41, 0x16, 0x41, 0x32, 0x06, 0x56, 0x3b, 0x34, 0x2a, 0xf1, 0x41, 0x02, - 0xb6, 0xf1, 0x31, 0x95, 0x23, 0x96, 0x0f, 0x97, 0x01, 0xff, 0x43, 0x2a, - 0xf0, 0x44, 0xf2, 0x01, 0x43, 0x78, 0xf0, 0x46, 0xf2, 0x41, 0x43, 0x48, - 0xf0, 0x45, 0xf2, 0x01, 0x43, 0x6c, 0xf0, 0x48, 0xf2, 0x01, 0x43, 0x7e, - 0xf0, 0x40, 0xf2, 0x41, 0x43, 0x4b, 0xf0, 0x47, 0xf2, 0x01, 0x43, 0xa5, - 0xf0, 0x43, 0xf2, 0x41, 0x42, 0x89, 0xf0, 0x41, 0xf2, 0x01, 0x42, 0x4f, - 0xdf, 0x42, 0xf2, 0x41, 0x04, 0x3e, 0x17, 0xfa, 0x01, 0x4d, 0x23, 0x0b, - 0xde, 0x23, 0x00, 0x02, 0x22, 0x00, 0x6a, 0x15, 0x86, 0x3b, 0x5a, 0x05, - 0xc3, 0x00, 0x36, 0x4b, 0x50, 0x21, 0xdc, 0x23, 0x00, 0x06, 0xc8, 0x00, - 0x12, 0x4e, 0x27, 0x26, 0xb4, 0x23, 0x00, 0x56, 0x05, 0x09, 0xe0, 0x23, - 0x00, 0x58, 0x75, 0x2b, 0x1d, 0xf5, 0x41, 0xa3, 0x0c, 0x4c, 0xcd, 0x8d, - 0x23, 0x2e, 0x00, 0x69, 0x3a, 0x04, 0xec, 0xfb, 0x41, 0x45, 0xcf, 0x0a, - 0x1d, 0x23, 0x00, 0x43, 0xd8, 0x0c, 0x0e, 0x23, 0x40, 0x62, 0xc3, 0x0b, - 0x07, 0xce, 0x01, 0xa3, 0x0c, 0x4c, 0xcd, 0x8d, 0x22, 0x2e, 0x00, 0x6a, - 0xc3, 0x02, 0xef, 0xfb, 0x41, 0x45, 0xcf, 0x0a, 0x1c, 0x23, 0x00, 0x43, - 0xd8, 0x0c, 0x0f, 0x23, 0x40, 0x4c, 0xe1, 0x02, 0xe8, 0xfb, 0x01, 0x4c, - 0xe3, 0x10, 0xe0, 0xfb, 0x41, 0x03, 0x24, 0x00, 0x04, 0xf4, 0xa9, 0xf3, - 0x41, 0x4c, 0xe1, 0x02, 0xca, 0x2b, 0x00, 0xa6, 0x59, 0x48, 0xf3, 0x25, + 0x41, 0x16, 0x11, 0x33, 0x06, 0x56, 0x0b, 0x35, 0x2a, 0xf1, 0x41, 0x02, + 0x00, 0xf5, 0x31, 0x95, 0x23, 0x96, 0x0f, 0x97, 0x01, 0xff, 0x43, 0x7d, + 0xf3, 0x44, 0xf2, 0x01, 0x43, 0xcb, 0xf3, 0x46, 0xf2, 0x41, 0x43, 0x9b, + 0xf3, 0x45, 0xf2, 0x01, 0x43, 0xbf, 0xf3, 0x48, 0xf2, 0x01, 0x43, 0xd1, + 0xf3, 0x40, 0xf2, 0x41, 0x43, 0x9e, 0xf3, 0x47, 0xf2, 0x01, 0x43, 0xf8, + 0xf3, 0x43, 0xf2, 0x41, 0x42, 0xdc, 0xf3, 0x41, 0xf2, 0x01, 0x42, 0x5a, + 0xe2, 0x42, 0xf2, 0x41, 0x04, 0xaa, 0x17, 0xfa, 0x01, 0x4d, 0x72, 0x0b, + 0xde, 0x23, 0x00, 0x02, 0x22, 0x00, 0x6a, 0x15, 0x56, 0x3c, 0x5a, 0x05, + 0xc3, 0x00, 0x36, 0x4b, 0xd8, 0x21, 0xdc, 0x23, 0x00, 0x06, 0xc8, 0x00, + 0x12, 0x4e, 0xc8, 0x26, 0xb4, 0x23, 0x00, 0x56, 0x54, 0x09, 0xe0, 0x23, + 0x00, 0x58, 0x16, 0x2c, 0x1d, 0xf5, 0x41, 0xa3, 0x0c, 0x4c, 0x7f, 0x8f, + 0x23, 0x2e, 0x00, 0x69, 0x65, 0x04, 0xec, 0xfb, 0x41, 0x45, 0x1e, 0x0b, + 0x1d, 0x23, 0x00, 0x43, 0x27, 0x0d, 0x0e, 0x23, 0x40, 0x62, 0x12, 0x0c, + 0x07, 0xce, 0x01, 0xa3, 0x0c, 0x4c, 0x7f, 0x8f, 0x22, 0x2e, 0x00, 0x6a, + 0xee, 0x02, 0xef, 0xfb, 0x41, 0x45, 0x1e, 0x0b, 0x1c, 0x23, 0x00, 0x43, + 0x27, 0x0d, 0x0f, 0x23, 0x40, 0x4c, 0x0c, 0x03, 0xe8, 0xfb, 0x01, 0x4c, + 0x32, 0x11, 0xe0, 0xfb, 0x41, 0x03, 0x24, 0x00, 0x04, 0xf4, 0xa9, 0xf3, + 0x41, 0x4c, 0x0c, 0x03, 0xca, 0x2b, 0x00, 0xa6, 0x59, 0x48, 0x94, 0x26, 0x20, 0x23, 0x00, 0x04, 0xc3, 0x00, 0x31, 0x05, 0xc8, 0x00, 0x0f, 0xb3, - 0x01, 0xff, 0x4b, 0x4a, 0x93, 0x39, 0x2e, 0x00, 0x4e, 0xdb, 0x71, 0xe6, - 0xcd, 0x41, 0x4c, 0x4f, 0x21, 0x5a, 0x2e, 0x00, 0x09, 0xe1, 0x61, 0x01, - 0xff, 0x44, 0xf8, 0x42, 0x5c, 0xcc, 0x01, 0x0c, 0x8d, 0x94, 0x01, 0xff, - 0xd1, 0xe8, 0xcd, 0x01, 0xd2, 0xea, 0xcd, 0x41, 0x4c, 0x4f, 0x21, 0x59, - 0x2e, 0x00, 0x09, 0xe1, 0x61, 0x01, 0xff, 0x44, 0xf8, 0x42, 0x5a, 0xcc, - 0x01, 0x0c, 0x8d, 0x94, 0x01, 0xff, 0xd1, 0xec, 0xcd, 0x01, 0xd2, 0xee, - 0xcd, 0x41, 0x14, 0xef, 0x42, 0x11, 0x0f, 0xdb, 0x61, 0x01, 0xff, 0x44, - 0xf8, 0x42, 0x5b, 0xcc, 0x01, 0x45, 0x8d, 0x94, 0xf0, 0xcd, 0x41, 0xd1, - 0xf6, 0xcd, 0x01, 0xd2, 0xf7, 0xcd, 0x41, 0x53, 0x12, 0x10, 0x3a, 0x29, - 0x80, 0x06, 0x5a, 0xda, 0x1e, 0x3c, 0x29, 0x40, 0x4a, 0x41, 0xa4, 0x3d, - 0x29, 0x40, 0x44, 0xc9, 0x83, 0xf0, 0xf9, 0x01, 0x42, 0x53, 0x00, 0xb7, - 0xf9, 0xc1, 0x00, 0x45, 0x71, 0xb3, 0xa5, 0xfa, 0x41, 0xe1, 0xc0, 0x05, - 0x81, 0xa9, 0x02, 0x42, 0x16, 0x00, 0xc2, 0x05, 0x01, 0xa3, 0x96, 0x02, - 0xa4, 0x89, 0x02, 0xe5, 0xca, 0x05, 0x81, 0xff, 0x01, 0x42, 0xe1, 0x07, - 0xcb, 0x05, 0x01, 0xa7, 0xe6, 0x01, 0xa8, 0xd9, 0x01, 0xe9, 0xd2, 0x05, - 0x01, 0xaa, 0xca, 0x01, 0xab, 0xbd, 0x01, 0xac, 0xb0, 0x01, 0xad, 0xa3, - 0x01, 0xae, 0x78, 0xef, 0xda, 0x05, 0x81, 0x6f, 0xb0, 0x63, 0x42, 0xf4, - 0x13, 0xdc, 0x05, 0x01, 0xb2, 0x51, 0xb3, 0x33, 0xb4, 0x27, 0xf5, 0xe4, - 0x05, 0x01, 0x42, 0xa6, 0x0a, 0xe5, 0x05, 0x01, 0xb8, 0x11, 0xf9, 0xea, - 0x05, 0x01, 0xba, 0x01, 0xff, 0xe1, 0xec, 0x05, 0x01, 0x42, 0x22, 0x00, - 0xed, 0x05, 0x41, 0xe1, 0xe6, 0x05, 0x01, 0x42, 0x22, 0x00, 0xe8, 0x05, - 0x41, 0xe1, 0xe2, 0x05, 0x01, 0x42, 0x22, 0x00, 0xe3, 0x05, 0x41, 0xe1, - 0xdf, 0x05, 0x01, 0xa8, 0x0c, 0x43, 0xb0, 0x26, 0xf0, 0x05, 0x01, 0x42, - 0x12, 0x00, 0xef, 0x05, 0x41, 0xe1, 0xe0, 0x05, 0x01, 0x42, 0x12, 0x00, - 0xe1, 0x05, 0x41, 0xe1, 0xdd, 0x05, 0x01, 0x42, 0x71, 0x00, 0xde, 0x05, - 0x41, 0xe1, 0xdb, 0x05, 0x01, 0x42, 0x15, 0x06, 0xf2, 0x05, 0x41, 0xef, - 0xf3, 0x05, 0x41, 0xe1, 0xd8, 0x05, 0x01, 0x42, 0xa1, 0x10, 0xc7, 0x05, - 0x01, 0xa7, 0x13, 0x43, 0x80, 0xb3, 0xd9, 0x05, 0x01, 0xb8, 0x01, 0xff, - 0xe1, 0xe7, 0x05, 0x01, 0x42, 0x22, 0x00, 0xe9, 0x05, 0x41, 0xe1, 0xcd, - 0x05, 0x01, 0x42, 0xbd, 0x26, 0xcf, 0x05, 0x41, 0xe1, 0xd7, 0x05, 0x01, - 0x42, 0x16, 0x00, 0xc3, 0x05, 0x41, 0xe1, 0xd5, 0x05, 0x01, 0x42, 0x74, - 0x00, 0xd6, 0x05, 0x41, 0xe1, 0xd4, 0x05, 0x01, 0x42, 0x22, 0x00, 0xf1, - 0x05, 0x41, 0xe1, 0xd3, 0x05, 0x01, 0xf9, 0xeb, 0x05, 0x41, 0xe1, 0xd0, - 0x05, 0x01, 0x42, 0xbd, 0x26, 0xd1, 0x05, 0x41, 0xe1, 0xcc, 0x05, 0x01, - 0x42, 0x22, 0x00, 0xee, 0x05, 0x01, 0x42, 0xbd, 0x26, 0xce, 0x05, 0x41, - 0xe9, 0xc9, 0x05, 0x41, 0xe1, 0xc6, 0x05, 0x01, 0x42, 0x22, 0x00, 0xc8, - 0x05, 0x41, 0xe1, 0xc4, 0x05, 0x01, 0x42, 0x22, 0x00, 0xc5, 0x05, 0x41, - 0xf3, 0xc1, 0x05, 0x41, 0x06, 0x36, 0xd7, 0xde, 0x07, 0x44, 0x17, 0x09, - 0xab, 0xf3, 0x01, 0x4f, 0xf0, 0x6a, 0xdd, 0x29, 0x00, 0x07, 0x43, 0xce, - 0xa6, 0x05, 0xa7, 0x90, 0x05, 0x43, 0x79, 0x1d, 0x7e, 0x00, 0x80, 0xbf, - 0x04, 0x02, 0x2a, 0x02, 0xa3, 0x04, 0x42, 0xf6, 0x19, 0xfe, 0x29, 0x80, - 0x95, 0x04, 0xb2, 0x01, 0xff, 0x47, 0xa7, 0x14, 0x2b, 0xf6, 0x01, 0x05, - 0x1c, 0xe4, 0x11, 0x0b, 0x8b, 0x9e, 0x01, 0xff, 0x4a, 0x3f, 0xa6, 0x52, - 0x2e, 0x00, 0x42, 0xc2, 0x05, 0x4a, 0x20, 0x40, 0xa1, 0xe8, 0x03, 0x06, - 0xc4, 0x06, 0xa1, 0x03, 0x45, 0xae, 0xe3, 0xc5, 0x14, 0x01, 0x07, 0xc1, - 0x05, 0x85, 0x01, 0x42, 0xe9, 0x04, 0xc7, 0x14, 0x01, 0x05, 0x2f, 0x03, - 0x50, 0x0b, 0xd1, 0x75, 0x01, 0xff, 0xa1, 0x3d, 0xe5, 0xb9, 0x14, 0x01, - 0xe9, 0xb1, 0x14, 0x81, 0x30, 0xef, 0xbc, 0x14, 0x01, 0x06, 0x61, 0x36, - 0x20, 0xf5, 0xb3, 0x14, 0x81, 0x17, 0x08, 0x9b, 0xbe, 0x01, 0xff, 0xec, - 0xb7, 0x14, 0x81, 0x09, 0xf2, 0xb5, 0x14, 0xc1, 0x00, 0xf2, 0xb6, 0x14, - 0x41, 0xec, 0xb8, 0x14, 0x41, 0xf5, 0xb4, 0x14, 0x41, 0xe5, 0xba, 0x14, - 0x01, 0xef, 0xbd, 0x14, 0x41, 0xe9, 0xb2, 0x14, 0x41, 0xe1, 0xb0, 0x14, - 0x01, 0xe9, 0xbb, 0x14, 0x01, 0xf5, 0xbe, 0x14, 0x41, 0xa1, 0x1d, 0x4b, - 0x4f, 0x23, 0xbf, 0x14, 0x01, 0x45, 0x5a, 0x3e, 0xc3, 0x14, 0x01, 0x02, - 0x02, 0x00, 0x01, 0xff, 0x44, 0x5d, 0x23, 0xc2, 0x14, 0x01, 0x45, 0xa3, - 0x4a, 0xc1, 0x14, 0x41, 0x47, 0xd1, 0x15, 0xc0, 0x14, 0x01, 0x47, 0xf2, - 0x86, 0xc4, 0x14, 0x41, 0xe1, 0x81, 0x14, 0x81, 0xff, 0x01, 0xa2, 0xf2, - 0x01, 0xa3, 0xe5, 0x01, 0xa4, 0xcc, 0x01, 0xe5, 0x8b, 0x14, 0x01, 0xa7, - 0xbb, 0x01, 0x42, 0x22, 0x00, 0xaf, 0x14, 0x01, 0xe9, 0x83, 0x14, 0x81, - 0xab, 0x01, 0xaa, 0x9e, 0x01, 0xab, 0x91, 0x01, 0x42, 0x74, 0x00, 0xaa, - 0x14, 0x01, 0x42, 0x6c, 0x00, 0xa7, 0x14, 0x01, 0xae, 0x6d, 0xef, 0x8d, - 0x14, 0x01, 0xb0, 0x5d, 0x42, 0x71, 0x00, 0xa9, 0x14, 0x01, 0xb3, 0x45, - 0xb4, 0x2c, 0xf5, 0x85, 0x14, 0x81, 0x23, 0xb6, 0x06, 0x42, 0x34, 0x22, - 0xa8, 0x14, 0x41, 0xe1, 0xab, 0x14, 0x01, 0x07, 0x9c, 0xbe, 0x01, 0xff, - 0xec, 0x89, 0x14, 0x81, 0x09, 0xf2, 0x87, 0x14, 0xc1, 0x00, 0xf2, 0x88, - 0x14, 0x41, 0xec, 0x8a, 0x14, 0x41, 0xf5, 0x86, 0x14, 0x41, 0xe1, 0x9e, - 0x14, 0x01, 0x42, 0x22, 0x00, 0x9f, 0x14, 0x01, 0xb4, 0x01, 0xff, 0xe1, - 0x99, 0x14, 0x01, 0x42, 0x22, 0x00, 0x9a, 0x14, 0x41, 0xe1, 0xae, 0x14, - 0x01, 0x42, 0x22, 0x00, 0xac, 0x14, 0x01, 0x42, 0x15, 0x06, 0xad, 0x14, - 0x41, 0xe1, 0xa3, 0x14, 0x01, 0x42, 0x22, 0x00, 0xa4, 0x14, 0x41, 0xe1, - 0xa2, 0x14, 0x01, 0x42, 0x24, 0x02, 0x93, 0x14, 0x01, 0x42, 0xff, 0x04, - 0x9d, 0x14, 0x01, 0x42, 0x34, 0x22, 0x98, 0x14, 0x41, 0xe1, 0x8f, 0x14, - 0x01, 0x42, 0x22, 0x00, 0x90, 0x14, 0x41, 0xe1, 0x96, 0x14, 0x01, 0x42, - 0x22, 0x00, 0x97, 0x14, 0x41, 0xe9, 0x84, 0x14, 0x41, 0xe1, 0x91, 0x14, - 0x01, 0x42, 0x22, 0x00, 0x92, 0x14, 0x41, 0xe1, 0xa0, 0x14, 0x01, 0xa4, - 0x06, 0x42, 0x22, 0x00, 0xa1, 0x14, 0x41, 0xe1, 0x9b, 0x14, 0x01, 0x42, - 0x22, 0x00, 0x9c, 0x14, 0x41, 0xe1, 0x94, 0x14, 0x01, 0x42, 0x22, 0x00, - 0x95, 0x14, 0x41, 0xe1, 0xa5, 0x14, 0x01, 0x42, 0x22, 0x00, 0xa6, 0x14, - 0x41, 0xe1, 0x82, 0x14, 0x01, 0xe9, 0x8c, 0x14, 0x01, 0xf5, 0x8e, 0x14, - 0x41, 0x45, 0xc3, 0x0a, 0xd8, 0x14, 0x01, 0xa6, 0x2e, 0x44, 0x46, 0x2a, - 0xd9, 0x14, 0x01, 0x43, 0xbf, 0x0a, 0xd1, 0x14, 0x01, 0xb3, 0x14, 0xb4, - 0x06, 0x44, 0xa1, 0x1d, 0xd0, 0x14, 0x41, 0x44, 0x25, 0x01, 0xd3, 0x14, - 0x01, 0x42, 0x15, 0x02, 0xd2, 0x14, 0x41, 0x44, 0x27, 0x1d, 0xd7, 0x14, - 0x01, 0x42, 0x60, 0x25, 0xd6, 0x14, 0x41, 0x43, 0xa7, 0x05, 0xd5, 0x14, - 0x01, 0x43, 0xcb, 0x06, 0xd4, 0x14, 0x41, 0x50, 0x94, 0x56, 0xc6, 0x14, - 0x01, 0x43, 0x9d, 0x85, 0x80, 0x14, 0x41, 0x62, 0xa1, 0x0b, 0x3a, 0x0b, - 0x41, 0x47, 0x9c, 0x1a, 0xf2, 0x23, 0x00, 0x07, 0x91, 0x07, 0x01, 0xff, - 0x4f, 0xcf, 0x6d, 0xd4, 0x29, 0x00, 0x50, 0x3a, 0x65, 0xd5, 0x29, 0x40, - 0x80, 0x01, 0xff, 0x48, 0xdc, 0x1c, 0x3c, 0x22, 0x80, 0x1b, 0x05, 0x51, - 0x00, 0x01, 0xff, 0x04, 0xb4, 0x0b, 0x06, 0x4a, 0x0f, 0xae, 0x1b, 0x2e, - 0x40, 0x45, 0x5c, 0x00, 0x1e, 0x2e, 0x00, 0x45, 0xf5, 0x06, 0x1f, 0x2e, - 0x40, 0x80, 0x01, 0xff, 0x06, 0x5c, 0x00, 0x11, 0x05, 0x51, 0x00, 0x01, - 0xff, 0x49, 0x98, 0x1d, 0x6a, 0x2a, 0x00, 0x4b, 0xf6, 0x9f, 0x6b, 0x2a, - 0x40, 0x4f, 0x37, 0x07, 0x49, 0x2b, 0x00, 0x50, 0xb3, 0x02, 0x72, 0x29, - 0x40, 0x42, 0x33, 0x00, 0x05, 0xf4, 0x81, 0x06, 0x57, 0xfc, 0x2d, 0x45, - 0x27, 0x40, 0x45, 0xe0, 0x07, 0x2f, 0xf4, 0x41, 0x50, 0x1a, 0x60, 0x7f, - 0x2d, 0x00, 0x07, 0xc1, 0x05, 0x0c, 0x62, 0x29, 0x0c, 0x6f, 0x2d, 0x00, - 0x4e, 0x9e, 0x7a, 0x70, 0x2d, 0x40, 0xa1, 0x82, 0x02, 0x11, 0x2c, 0x57, - 0xf5, 0x01, 0xb4, 0xc0, 0x01, 0xb9, 0x01, 0xff, 0xe1, 0x30, 0x2d, 0x80, - 0x15, 0xe5, 0x66, 0x2d, 0x80, 0x0c, 0xe9, 0x49, 0x2d, 0x00, 0xef, 0x67, - 0x2d, 0x00, 0xf5, 0x53, 0x2d, 0x40, 0xf9, 0x3b, 0x2d, 0x40, 0xe1, 0x44, - 0x2d, 0x00, 0xe2, 0x31, 0x2d, 0x80, 0x95, 0x01, 0x42, 0x1e, 0x14, 0x5e, - 0x2d, 0x00, 0xe4, 0x37, 0x2d, 0x80, 0x7d, 0xe6, 0x3c, 0x2d, 0x00, 0xe7, - 0x33, 0x2d, 0x80, 0x6b, 0xe8, 0x40, 0x2d, 0x80, 0x62, 0xea, 0x36, 0x2d, - 0x00, 0xeb, 0x3d, 0x2d, 0x80, 0x50, 0xec, 0x4d, 0x2d, 0x00, 0xed, 0x4e, - 0x2d, 0x00, 0xee, 0x4f, 0x2d, 0x00, 0xf0, 0x52, 0x2d, 0x00, 0xf1, 0x47, - 0x2d, 0x00, 0xf2, 0x54, 0x2d, 0x80, 0x33, 0xf3, 0x59, 0x2d, 0x80, 0x26, - 0xf4, 0x5c, 0x2d, 0x80, 0x19, 0xf6, 0x60, 0x2d, 0x00, 0xf7, 0x61, 0x2d, - 0x00, 0xf9, 0x62, 0x2d, 0x00, 0xfa, 0x63, 0x2d, 0xc0, 0x00, 0xe8, 0x4a, - 0x2d, 0x00, 0xfa, 0x65, 0x2d, 0x40, 0xe8, 0x5d, 0x2d, 0x00, 0xf4, 0x5f, - 0x2d, 0x40, 0xe8, 0x5b, 0x2d, 0x00, 0xf3, 0x5a, 0x2d, 0x40, 0xf2, 0x55, - 0x2d, 0x40, 0xe8, 0x45, 0x2d, 0xc0, 0x00, 0xe8, 0x3f, 0x2d, 0x40, 0xe8, - 0x43, 0x2d, 0x40, 0xe8, 0x56, 0x2d, 0xc0, 0x00, 0xe8, 0x34, 0x2d, 0x40, - 0xe4, 0x39, 0x2d, 0x80, 0x04, 0xe8, 0x38, 0x2d, 0x40, 0xe8, 0x3a, 0x2d, - 0x40, 0xe8, 0x32, 0x2d, 0x40, 0x4d, 0x75, 0x7f, 0x64, 0x2d, 0x00, 0x08, - 0x2a, 0xc9, 0x01, 0xff, 0xa7, 0x1d, 0xe8, 0x42, 0x2d, 0x00, 0xeb, 0x3e, - 0x2d, 0x80, 0x10, 0x42, 0x1d, 0x01, 0x51, 0x2d, 0x00, 0xf1, 0x48, 0x2d, - 0x00, 0x42, 0xb3, 0x27, 0x4c, 0x2d, 0x40, 0xe8, 0x46, 0x2d, 0x40, 0xe8, - 0x57, 0x2d, 0x00, 0xee, 0x50, 0x2d, 0x40, 0xe8, 0x41, 0x2d, 0x00, 0xea, - 0x35, 0x2d, 0x40, 0x4b, 0x81, 0x9a, 0x4b, 0x2d, 0x00, 0x48, 0x1a, 0xca, - 0x58, 0x2d, 0x40, 0x12, 0xf8, 0x4e, 0x9d, 0x0b, 0x12, 0x64, 0x4f, 0x80, - 0x0b, 0x06, 0xc4, 0x06, 0xf3, 0x09, 0x49, 0xb3, 0xb8, 0xbe, 0x0f, 0x80, - 0xe5, 0x09, 0xac, 0xbf, 0x07, 0x05, 0xb9, 0x00, 0xf6, 0x04, 0xb3, 0x51, - 0x0b, 0xd1, 0x75, 0x01, 0xff, 0x42, 0x31, 0x12, 0x71, 0x0f, 0x00, 0xe5, - 0x7a, 0x0f, 0x80, 0x3d, 0xe9, 0x72, 0x0f, 0x80, 0x34, 0xef, 0x7c, 0x0f, - 0x80, 0x2b, 0x4a, 0xd3, 0xad, 0x80, 0x0f, 0x80, 0x20, 0xf5, 0x74, 0x0f, - 0x80, 0x17, 0x08, 0x9b, 0xbe, 0x01, 0xff, 0xec, 0x78, 0x0f, 0x80, 0x09, - 0xf2, 0x76, 0x0f, 0xc0, 0x00, 0xf2, 0x77, 0x0f, 0x40, 0xec, 0x79, 0x0f, - 0x40, 0xf5, 0x75, 0x0f, 0x40, 0xe9, 0x81, 0x0f, 0x40, 0xef, 0x7d, 0x0f, - 0x40, 0xe9, 0x73, 0x0f, 0x40, 0xe5, 0x7b, 0x0f, 0x40, 0x04, 0x30, 0x03, - 0xfd, 0x02, 0x09, 0x5a, 0x66, 0x4b, 0xb9, 0x01, 0xff, 0x49, 0x3a, 0xb9, - 0x00, 0x0f, 0x00, 0x05, 0xf5, 0x15, 0x01, 0xff, 0x47, 0xa2, 0xcd, 0xc4, - 0x0f, 0x00, 0x46, 0x74, 0xdb, 0xc9, 0x0f, 0x80, 0x1b, 0xb0, 0x0d, 0x47, - 0x6b, 0xd2, 0xc5, 0x0f, 0xc0, 0x00, 0x4a, 0xdd, 0xa3, 0xc7, 0x0f, 0x40, - 0x49, 0x52, 0xb3, 0xc6, 0x0f, 0x00, 0x46, 0xac, 0xd9, 0xc8, 0x0f, 0x40, - 0x80, 0x01, 0xff, 0x4b, 0xc1, 0x97, 0xcc, 0x0f, 0x00, 0x4b, 0x6b, 0x9a, - 0xcb, 0x0f, 0x00, 0x4b, 0x3e, 0x9e, 0xca, 0x0f, 0x40, 0x07, 0xc1, 0x05, - 0x17, 0x05, 0x2f, 0x03, 0x01, 0xff, 0x51, 0xd4, 0x59, 0x8f, 0x0f, 0x00, - 0x4b, 0x2e, 0x9c, 0x8d, 0x0f, 0x00, 0x48, 0xdd, 0x59, 0x8e, 0x0f, 0x40, - 0x42, 0x2e, 0x25, 0xb0, 0x0f, 0x00, 0xe1, 0xb8, 0x0f, 0x00, 0xa2, 0xfc, - 0x01, 0xa3, 0xef, 0x01, 0xa4, 0xc9, 0x01, 0x0b, 0x63, 0x81, 0xb2, 0x01, - 0xa7, 0xa5, 0x01, 0x42, 0x22, 0x00, 0xb7, 0x0f, 0x00, 0x42, 0xbd, 0x26, - 0x97, 0x0f, 0x00, 0xab, 0x86, 0x01, 0x42, 0x74, 0x00, 0xb3, 0x0f, 0x00, - 0x42, 0x6c, 0x00, 0xa8, 0x0f, 0x00, 0xae, 0x62, 0xb0, 0x56, 0x42, 0x71, - 0x00, 0xb2, 0x0f, 0x00, 0xb3, 0x3e, 0xb4, 0x19, 0x42, 0xa9, 0x01, 0xad, - 0x0f, 0x00, 0x42, 0x34, 0x22, 0xb1, 0x0f, 0x00, 0xba, 0x01, 0xff, 0xe1, - 0xaf, 0x0f, 0x00, 0x42, 0x22, 0x00, 0xae, 0x0f, 0x40, 0xe1, 0x9f, 0x0f, - 0x00, 0x42, 0x22, 0x00, 0xa0, 0x0f, 0x00, 0xb3, 0x0d, 0xb4, 0x01, 0xff, - 0xe1, 0x9a, 0x0f, 0x00, 0x42, 0x22, 0x00, 0x9b, 0x0f, 0x40, 0xe1, 0xa9, - 0x0f, 0x00, 0x42, 0x22, 0x00, 0xaa, 0x0f, 0x40, 0xe1, 0xb6, 0x0f, 0x00, - 0x42, 0x22, 0x00, 0xb4, 0x0f, 0x00, 0x42, 0x15, 0x06, 0xb5, 0x0f, 0x40, - 0xe1, 0xa4, 0x0f, 0x00, 0x42, 0x22, 0x00, 0xa5, 0x0f, 0x40, 0xe1, 0xa3, - 0x0f, 0x00, 0x42, 0x24, 0x02, 0x94, 0x0f, 0x00, 0x42, 0xff, 0x04, 0x9e, - 0x0f, 0x00, 0x42, 0x34, 0x22, 0x99, 0x0f, 0x40, 0xe1, 0x90, 0x0f, 0x00, - 0x42, 0x22, 0x00, 0x91, 0x0f, 0x00, 0x43, 0x59, 0x20, 0xb9, 0x0f, 0x40, - 0xe1, 0x92, 0x0f, 0x00, 0x42, 0x22, 0x00, 0x93, 0x0f, 0x40, 0x42, 0x71, - 0x00, 0xbc, 0x0f, 0x00, 0x42, 0xa9, 0x01, 0xba, 0x0f, 0x00, 0x42, 0x34, - 0x22, 0xbb, 0x0f, 0x40, 0xe1, 0xa1, 0x0f, 0x00, 0xa4, 0x13, 0x42, 0x22, - 0x00, 0xa2, 0x0f, 0x00, 0xba, 0x01, 0xff, 0xe1, 0xab, 0x0f, 0x00, 0x42, - 0x22, 0x00, 0xac, 0x0f, 0x40, 0xe1, 0x9c, 0x0f, 0x00, 0x42, 0x22, 0x00, - 0x9d, 0x0f, 0x40, 0xe1, 0x95, 0x0f, 0x00, 0x42, 0x22, 0x00, 0x96, 0x0f, - 0x40, 0xe1, 0xa6, 0x0f, 0x00, 0x42, 0x22, 0x00, 0xa7, 0x0f, 0x40, 0x04, - 0xd6, 0xec, 0x90, 0x01, 0x51, 0xd4, 0x59, 0x8c, 0x0f, 0x00, 0x02, 0xbf, - 0x1e, 0x7a, 0xad, 0x6c, 0x4e, 0xc2, 0x78, 0x82, 0x0f, 0x00, 0xb2, 0x17, - 0x48, 0x62, 0xc8, 0x83, 0x0f, 0x00, 0x02, 0x34, 0x22, 0x01, 0xff, 0x48, - 0x0a, 0xc6, 0x87, 0x0f, 0x00, 0x47, 0xeb, 0xc0, 0x3e, 0x0f, 0x40, 0x04, - 0x14, 0xbc, 0x0c, 0x4d, 0x10, 0x83, 0x7e, 0x0f, 0x00, 0x48, 0xf6, 0x92, - 0x7f, 0x0f, 0x40, 0x05, 0x8c, 0xe2, 0x1f, 0x04, 0x16, 0xee, 0x01, 0xff, - 0xa7, 0x06, 0x49, 0x13, 0xbc, 0xce, 0x0f, 0x40, 0x43, 0xb7, 0xf0, 0x1d, - 0x0f, 0x00, 0x44, 0x3e, 0x9e, 0x1e, 0x0f, 0x00, 0x43, 0xcd, 0x54, 0xcf, - 0x0f, 0x40, 0xa7, 0x06, 0x48, 0x92, 0xc7, 0x1f, 0x0f, 0x40, 0x43, 0xb7, - 0xf0, 0x1a, 0x0f, 0x00, 0x44, 0x3e, 0x9e, 0x1b, 0x0f, 0x00, 0x43, 0xcd, - 0x54, 0x1c, 0x0f, 0x40, 0x48, 0xea, 0xc0, 0x3f, 0x0f, 0x00, 0x47, 0xde, - 0x59, 0x89, 0x0f, 0x40, 0x49, 0x30, 0x9c, 0x88, 0x0f, 0x00, 0x47, 0xdd, - 0xce, 0x86, 0x0f, 0x40, 0x4b, 0xcc, 0x97, 0x8a, 0x0f, 0x00, 0x4b, 0x41, - 0x9d, 0x8b, 0x0f, 0x40, 0x0c, 0x91, 0x8a, 0xb3, 0x02, 0xa2, 0x88, 0x02, - 0xa3, 0xd4, 0x01, 0x55, 0x4f, 0x39, 0x0c, 0x0f, 0x00, 0xa7, 0x95, 0x01, - 0x47, 0x97, 0xce, 0x84, 0x0f, 0x00, 0x02, 0x9e, 0x01, 0x75, 0x53, 0x8b, - 0x49, 0xd9, 0x0f, 0x00, 0x56, 0xd5, 0x34, 0xd1, 0x0f, 0x00, 0xae, 0x3f, - 0x46, 0xfe, 0xdb, 0x85, 0x0f, 0x00, 0xb2, 0x2b, 0xb3, 0x1d, 0xb4, 0x06, - 0x55, 0x7a, 0x3e, 0x07, 0x0f, 0x40, 0x53, 0x1a, 0x4b, 0xda, 0x0f, 0x00, - 0xb3, 0x01, 0xff, 0x47, 0xb1, 0xcb, 0x39, 0x0f, 0x00, 0x48, 0x84, 0x3e, - 0x0f, 0x0f, 0x40, 0x49, 0x8d, 0xb4, 0x08, 0x0f, 0x00, 0x43, 0xa5, 0x02, - 0x0d, 0x0f, 0x40, 0x4d, 0xd8, 0x81, 0x12, 0x0f, 0x00, 0x53, 0x06, 0x49, - 0x11, 0x0f, 0x40, 0x0a, 0x6f, 0xa8, 0x18, 0x04, 0x3f, 0x9e, 0x01, 0xff, - 0x44, 0xa4, 0x02, 0x0e, 0x0f, 0x00, 0x45, 0x59, 0x39, 0xd2, 0x0f, 0xc0, - 0x00, 0x45, 0x1f, 0x04, 0x10, 0x0f, 0x40, 0x47, 0xc2, 0x78, 0x35, 0x0f, - 0x00, 0x4a, 0x9b, 0xae, 0x37, 0x0f, 0x40, 0x06, 0x4e, 0x16, 0x06, 0x51, - 0xe2, 0x5c, 0x0b, 0x0f, 0x40, 0x5b, 0xf0, 0x19, 0xd3, 0x0f, 0x00, 0x4f, - 0xfc, 0x19, 0x04, 0x0f, 0x40, 0x04, 0xdd, 0x02, 0x11, 0x0b, 0xf0, 0xa1, - 0x01, 0xff, 0x42, 0xbb, 0x01, 0x3b, 0x0f, 0x00, 0x42, 0x10, 0x00, 0x3a, - 0x0f, 0x40, 0x45, 0x59, 0x39, 0x14, 0x0f, 0x00, 0x08, 0xfc, 0x19, 0x01, - 0xff, 0x04, 0x9e, 0xe9, 0x06, 0x4b, 0xa3, 0xa1, 0x01, 0x0f, 0x40, 0x4d, - 0xcb, 0x81, 0x03, 0x0f, 0x00, 0x4c, 0xf5, 0x92, 0x02, 0x0f, 0x40, 0x05, - 0xd8, 0x97, 0x17, 0x46, 0x6a, 0xd9, 0x38, 0x0f, 0x00, 0x07, 0x9f, 0x83, - 0x01, 0xff, 0x5b, 0x0b, 0x1a, 0xd4, 0x0f, 0x00, 0x4f, 0x17, 0x1a, 0x05, - 0x0f, 0x40, 0x0c, 0xe9, 0x89, 0x06, 0x54, 0xd3, 0x45, 0x06, 0x0f, 0x40, - 0x4c, 0xe3, 0x7d, 0x36, 0x0f, 0x00, 0x4b, 0x36, 0x9d, 0x13, 0x0f, 0x40, - 0x09, 0x86, 0xb8, 0x18, 0xb3, 0x01, 0xff, 0x49, 0x9b, 0xb5, 0x34, 0x0f, - 0x00, 0xab, 0x01, 0xff, 0x54, 0x2f, 0x3f, 0xd0, 0x0f, 0x00, 0x4a, 0xad, - 0xb0, 0x09, 0x0f, 0x40, 0x4c, 0xdf, 0x34, 0xd0, 0x0f, 0x00, 0x47, 0xfc, - 0x19, 0x0a, 0x0f, 0x40, 0x42, 0xbb, 0x01, 0x3d, 0x0f, 0x00, 0x42, 0x10, - 0x00, 0x3c, 0x0f, 0x40, 0x06, 0xc2, 0x05, 0x11, 0x0d, 0xfe, 0x84, 0x01, - 0xff, 0x4a, 0x53, 0xa6, 0x15, 0x0f, 0x00, 0x4a, 0xa9, 0xaa, 0x16, 0x0f, - 0x40, 0x42, 0x2e, 0x25, 0x60, 0x0f, 0x00, 0xe1, 0x68, 0x0f, 0x00, 0xa2, - 0xf7, 0x01, 0xa3, 0xea, 0x01, 0xa4, 0xc4, 0x01, 0x4d, 0x63, 0x81, 0x6a, - 0x0f, 0x00, 0xa7, 0xb1, 0x01, 0x42, 0x22, 0x00, 0x67, 0x0f, 0x00, 0x42, - 0xbd, 0x26, 0x47, 0x0f, 0x00, 0xab, 0x8c, 0x01, 0x42, 0x74, 0x00, 0x63, - 0x0f, 0x00, 0x42, 0x6c, 0x00, 0x58, 0x0f, 0x00, 0xae, 0x68, 0xb0, 0x5c, - 0xb2, 0x50, 0xb3, 0x3e, 0xb4, 0x19, 0x42, 0xa9, 0x01, 0x5d, 0x0f, 0x00, - 0x42, 0x34, 0x22, 0x61, 0x0f, 0x00, 0xba, 0x01, 0xff, 0xe1, 0x5f, 0x0f, - 0x00, 0x42, 0x22, 0x00, 0x5e, 0x0f, 0x40, 0xe1, 0x4f, 0x0f, 0x00, 0x42, - 0x22, 0x00, 0x50, 0x0f, 0x00, 0xb3, 0x0d, 0xb4, 0x01, 0xff, 0xe1, 0x4a, - 0x0f, 0x00, 0x42, 0x22, 0x00, 0x4b, 0x0f, 0x40, 0xe1, 0x59, 0x0f, 0x00, - 0x42, 0x22, 0x00, 0x5a, 0x0f, 0x40, 0xe1, 0x66, 0x0f, 0x00, 0x42, 0x22, - 0x00, 0x64, 0x0f, 0x00, 0x42, 0x15, 0x06, 0x65, 0x0f, 0x40, 0xe1, 0x62, - 0x0f, 0x00, 0x42, 0x71, 0x00, 0x6c, 0x0f, 0x40, 0xe1, 0x54, 0x0f, 0x00, - 0x42, 0x22, 0x00, 0x55, 0x0f, 0x40, 0xe1, 0x53, 0x0f, 0x00, 0x42, 0x24, - 0x02, 0x44, 0x0f, 0x00, 0x42, 0xff, 0x04, 0x4e, 0x0f, 0x00, 0x42, 0x34, - 0x22, 0x49, 0x0f, 0x40, 0xe1, 0x40, 0x0f, 0x00, 0x42, 0x22, 0x00, 0x41, - 0x0f, 0x00, 0x42, 0x1b, 0x02, 0x6b, 0x0f, 0x00, 0x43, 0x59, 0x20, 0x69, - 0x0f, 0x40, 0xe1, 0x42, 0x0f, 0x00, 0x42, 0x22, 0x00, 0x43, 0x0f, 0x40, - 0xe1, 0x51, 0x0f, 0x00, 0xa4, 0x13, 0x42, 0x22, 0x00, 0x52, 0x0f, 0x00, - 0xba, 0x01, 0xff, 0xe1, 0x5b, 0x0f, 0x00, 0x42, 0x22, 0x00, 0x5c, 0x0f, - 0x40, 0xe1, 0x4c, 0x0f, 0x00, 0x42, 0x22, 0x00, 0x4d, 0x0f, 0x40, 0xe1, - 0x45, 0x0f, 0x00, 0x42, 0x22, 0x00, 0x46, 0x0f, 0x40, 0xe1, 0x56, 0x0f, - 0x00, 0x42, 0x22, 0x00, 0x57, 0x0f, 0x40, 0x4d, 0xe2, 0x7d, 0xbf, 0x0f, - 0x40, 0x45, 0xc3, 0x0a, 0x28, 0x0f, 0x00, 0xa6, 0x74, 0x05, 0x22, 0x00, - 0x2e, 0x44, 0x46, 0x2a, 0x29, 0x0f, 0x00, 0x43, 0xbf, 0x0a, 0x21, 0x0f, - 0x00, 0xb3, 0x14, 0xb4, 0x06, 0x44, 0xa1, 0x1d, 0x20, 0x0f, 0x40, 0x44, - 0x25, 0x01, 0x23, 0x0f, 0x00, 0x42, 0x15, 0x02, 0x22, 0x0f, 0x40, 0x44, - 0x27, 0x1d, 0x27, 0x0f, 0x00, 0x42, 0x60, 0x25, 0x26, 0x0f, 0x40, 0x45, - 0xc3, 0x0a, 0x31, 0x0f, 0x00, 0xa6, 0x2e, 0x44, 0x46, 0x2a, 0x32, 0x0f, - 0x00, 0x43, 0xbf, 0x0a, 0x2a, 0x0f, 0x00, 0xb3, 0x14, 0xb4, 0x06, 0x44, - 0xa1, 0x1d, 0x33, 0x0f, 0x40, 0x44, 0x25, 0x01, 0x2c, 0x0f, 0x00, 0x42, - 0x15, 0x02, 0x2b, 0x0f, 0x40, 0x44, 0x27, 0x1d, 0x30, 0x0f, 0x00, 0x42, - 0x60, 0x25, 0x2f, 0x0f, 0x40, 0x43, 0xa7, 0x05, 0x2e, 0x0f, 0x00, 0x43, - 0xcb, 0x06, 0x2d, 0x0f, 0x40, 0x43, 0xa7, 0x05, 0x25, 0x0f, 0x00, 0x43, - 0xcb, 0x06, 0x24, 0x0f, 0x40, 0x49, 0x9f, 0xb4, 0xc2, 0x0f, 0x00, 0x4a, - 0xe7, 0xa8, 0xc0, 0x0f, 0x00, 0x4a, 0xb3, 0xaa, 0xc1, 0x0f, 0x00, 0x4a, - 0x73, 0xae, 0xc3, 0x0f, 0x40, 0x49, 0xb9, 0xb2, 0x18, 0x0f, 0x00, 0xb3, - 0x01, 0xff, 0x4b, 0x00, 0x99, 0x19, 0x0f, 0x00, 0x54, 0x9b, 0x41, 0x17, - 0x0f, 0x40, 0xa1, 0xb7, 0x02, 0x02, 0x33, 0x00, 0x8b, 0x02, 0xa9, 0xe3, - 0x01, 0xaf, 0xd4, 0x01, 0x03, 0x26, 0x01, 0x24, 0xb5, 0x01, 0xff, 0x04, - 0x7f, 0x8f, 0x11, 0x04, 0x4d, 0x1a, 0x01, 0xff, 0x4f, 0xa8, 0x67, 0xc8, - 0x26, 0x00, 0x45, 0xfa, 0xe7, 0x08, 0x26, 0x40, 0x49, 0x77, 0xb5, 0x4e, - 0xf4, 0x01, 0x47, 0x08, 0xd4, 0x4d, 0xf4, 0x41, 0x80, 0x41, 0x8d, 0x01, - 0xff, 0x02, 0x06, 0x00, 0x0c, 0x47, 0x3b, 0xc0, 0x3b, 0x2e, 0x00, 0x4c, - 0xc0, 0x7e, 0x04, 0x20, 0x40, 0x63, 0x66, 0x0a, 0xa3, 0x27, 0x00, 0x6c, - 0xbe, 0x01, 0x9b, 0x2b, 0x00, 0x6b, 0x42, 0x02, 0x99, 0x2b, 0x00, 0x0c, - 0x15, 0x94, 0x01, 0xff, 0x5f, 0xff, 0x10, 0x98, 0x2b, 0x00, 0x0b, 0xb3, - 0x02, 0x01, 0xff, 0x49, 0xe1, 0x01, 0xa2, 0x27, 0x00, 0x55, 0xd5, 0x01, - 0x9a, 0x2b, 0x40, 0x4c, 0x45, 0x8b, 0xb1, 0xf5, 0x01, 0x58, 0x25, 0x27, - 0x76, 0x2a, 0x00, 0xa4, 0x4f, 0xac, 0x36, 0x53, 0x49, 0x4a, 0xa7, 0xf5, - 0x01, 0x52, 0x4b, 0x2b, 0xc2, 0xf7, 0x01, 0xb2, 0x06, 0x4e, 0x0e, 0x7b, - 0xeb, 0xf5, 0x41, 0x04, 0xc0, 0x44, 0x06, 0x50, 0x5f, 0x2e, 0xf6, 0x21, - 0x40, 0x45, 0x5c, 0x00, 0xe4, 0xf5, 0x01, 0x45, 0xf5, 0x06, 0xe5, 0xf5, - 0x01, 0x44, 0xc3, 0x00, 0xe6, 0xf5, 0x01, 0x45, 0xc8, 0x00, 0xe7, 0xf5, - 0x41, 0x4f, 0x46, 0x3d, 0x31, 0x2b, 0x00, 0x10, 0x8a, 0x62, 0x01, 0xff, - 0x44, 0xc3, 0x00, 0x9f, 0x26, 0x00, 0x45, 0xc8, 0x00, 0x9e, 0x26, 0x40, - 0x50, 0x5a, 0x62, 0xc0, 0x27, 0x00, 0x4e, 0xb5, 0x0b, 0x56, 0x20, 0x40, - 0x49, 0xe5, 0xb9, 0x74, 0xfa, 0x01, 0x4c, 0x51, 0x94, 0xad, 0xf4, 0x41, - 0xae, 0x06, 0x4e, 0x12, 0x7a, 0x49, 0xf9, 0x41, 0x80, 0x06, 0x49, 0x24, - 0xae, 0x14, 0xf9, 0x41, 0x4b, 0x9f, 0x5f, 0xa1, 0xf7, 0x01, 0xb3, 0x01, - 0xff, 0x46, 0xa7, 0x18, 0xa8, 0xf7, 0x01, 0x44, 0x88, 0x4b, 0x09, 0x20, - 0x40, 0xa5, 0x11, 0x02, 0x98, 0x07, 0x01, 0xff, 0x47, 0xb0, 0xcd, 0xe7, - 0x29, 0x00, 0x45, 0xf6, 0xa8, 0x21, 0xf3, 0x41, 0x80, 0x06, 0x44, 0x1b, - 0x61, 0x34, 0x22, 0x40, 0x4e, 0x96, 0x75, 0x04, 0x22, 0x00, 0x46, 0xb0, - 0xd8, 0x03, 0x22, 0x40, 0x04, 0xfc, 0x11, 0xfc, 0x04, 0x02, 0xc6, 0x03, - 0x01, 0xff, 0xa3, 0x47, 0x06, 0xc4, 0x06, 0x01, 0xff, 0x45, 0xc3, 0x0a, - 0x58, 0x0e, 0x00, 0xa6, 0x2e, 0x44, 0x46, 0x2a, 0x59, 0x0e, 0x00, 0x43, - 0xbf, 0x0a, 0x51, 0x0e, 0x00, 0xb3, 0x14, 0xb4, 0x06, 0x44, 0xa1, 0x1d, - 0x50, 0x0e, 0x40, 0x44, 0x25, 0x01, 0x53, 0x0e, 0x00, 0x42, 0x15, 0x02, - 0x52, 0x0e, 0x40, 0x44, 0x27, 0x1d, 0x57, 0x0e, 0x00, 0x42, 0x60, 0x25, - 0x56, 0x0e, 0x40, 0x43, 0xa7, 0x05, 0x55, 0x0e, 0x00, 0x43, 0xcb, 0x06, - 0x54, 0x0e, 0x40, 0x09, 0x0c, 0x40, 0x06, 0x53, 0x08, 0x4d, 0x3f, 0x0e, - 0x40, 0x4a, 0x8b, 0xa5, 0x5a, 0x0e, 0x00, 0x49, 0x72, 0xb4, 0x1a, 0x0e, - 0x00, 0x06, 0xb4, 0xd7, 0xfc, 0x03, 0x03, 0xbd, 0x64, 0xeb, 0x03, 0x02, - 0x3d, 0x03, 0xd5, 0x03, 0x03, 0x3a, 0x70, 0xc4, 0x03, 0xab, 0x8d, 0x03, - 0xac, 0xf0, 0x02, 0xad, 0xb4, 0x02, 0xae, 0x96, 0x02, 0x45, 0x33, 0xe6, - 0x2d, 0x0e, 0x00, 0xb0, 0xde, 0x01, 0xb2, 0xd1, 0x01, 0xb3, 0x69, 0xb4, - 0x20, 0x47, 0xc5, 0xd4, 0x27, 0x0e, 0x00, 0xb9, 0x01, 0xff, 0x47, 0x03, - 0xca, 0x4e, 0x0e, 0x00, 0x03, 0x72, 0xde, 0x01, 0xff, 0x42, 0x6d, 0x00, - 0x22, 0x0e, 0x00, 0x43, 0xa1, 0x01, 0x0d, 0x0e, 0x40, 0xa8, 0x11, 0x02, - 0x7b, 0x02, 0x01, 0xff, 0x45, 0x9c, 0xe6, 0x0f, 0x0e, 0x00, 0x43, 0x6c, - 0x18, 0x15, 0x0e, 0x40, 0x49, 0xd9, 0xb3, 0x4c, 0x0e, 0x00, 0x02, 0x7b, - 0x02, 0x01, 0xff, 0x4a, 0xdf, 0xab, 0x11, 0x0e, 0x00, 0x47, 0xe6, 0xd1, - 0x12, 0x0e, 0x00, 0x02, 0x53, 0x00, 0x01, 0xff, 0xa1, 0x0c, 0x43, 0x63, - 0x0e, 0x18, 0x0e, 0x00, 0x43, 0x75, 0x44, 0x16, 0x0e, 0x40, 0x43, 0x90, - 0x00, 0x17, 0x0e, 0x00, 0xee, 0x10, 0x0e, 0x40, 0x04, 0xd5, 0x15, 0x1e, - 0x02, 0x7b, 0x02, 0x01, 0xff, 0x44, 0x2e, 0xef, 0x29, 0x0e, 0x00, 0xb3, - 0x01, 0xff, 0x43, 0xe0, 0x18, 0x28, 0x0e, 0x00, 0xef, 0x0b, 0x0e, 0x00, - 0x42, 0x7d, 0x00, 0x2a, 0x0e, 0x40, 0xe1, 0x30, 0x0e, 0x80, 0x23, 0xe5, - 0x40, 0x0e, 0x00, 0xe9, 0x34, 0x0e, 0x80, 0x16, 0xef, 0x42, 0x0e, 0x00, - 0xf5, 0x38, 0x0e, 0xc0, 0x00, 0xe5, 0x36, 0x0e, 0x80, 0x04, 0xf5, 0x39, - 0x0e, 0x40, 0xe5, 0x37, 0x0e, 0x40, 0xe9, 0x35, 0x0e, 0x40, 0xe1, 0x32, - 0x0e, 0x00, 0xe5, 0x41, 0x0e, 0x00, 0x06, 0xb8, 0xd9, 0x04, 0xed, 0x33, - 0x0e, 0x40, 0x44, 0xba, 0xeb, 0x44, 0x0e, 0x00, 0x43, 0x22, 0x9f, 0x43, - 0x0e, 0x40, 0x45, 0x47, 0xe6, 0x23, 0x0e, 0x00, 0xf5, 0x24, 0x0e, 0x40, - 0x48, 0xb2, 0xc0, 0x2f, 0x0e, 0x00, 0xa8, 0x06, 0x45, 0x42, 0xe6, 0x1b, - 0x0e, 0x40, 0x45, 0x6c, 0xe4, 0x3a, 0x0e, 0x00, 0x02, 0x7b, 0x02, 0x01, - 0xff, 0x02, 0x35, 0x10, 0x06, 0x47, 0xc6, 0xd2, 0x20, 0x0e, 0x40, 0x42, - 0x1a, 0x00, 0x1e, 0x0e, 0x00, 0x43, 0x75, 0x44, 0x1c, 0x0e, 0x40, 0x46, - 0x28, 0xd9, 0x07, 0x0e, 0x00, 0x47, 0x0e, 0xcf, 0x4d, 0x0e, 0x00, 0x03, - 0x29, 0xd9, 0x01, 0xff, 0x42, 0x92, 0x01, 0x13, 0x0e, 0x00, 0xf5, 0x19, - 0x0e, 0x40, 0x02, 0x05, 0x07, 0x06, 0x44, 0x75, 0x4c, 0x21, 0x0e, 0x40, - 0x80, 0x0c, 0x46, 0x4e, 0xdd, 0x47, 0x0e, 0x00, 0x45, 0x53, 0xe9, 0x46, - 0x0e, 0x40, 0x48, 0x1a, 0xc2, 0x4b, 0x0e, 0x00, 0x42, 0x69, 0x18, 0x48, - 0x0e, 0x00, 0x48, 0x0a, 0xc4, 0x31, 0x0e, 0x00, 0xb4, 0x01, 0xff, 0x42, - 0x0b, 0x00, 0x49, 0x0e, 0x00, 0x42, 0x0d, 0x00, 0x4a, 0x0e, 0x40, 0x4a, - 0x4f, 0xa5, 0x45, 0x0e, 0x00, 0x02, 0x7b, 0x02, 0x04, 0xf5, 0x26, 0x0e, - 0x40, 0x45, 0x2d, 0xe2, 0x2c, 0x0e, 0x00, 0x44, 0xe0, 0x0a, 0x25, 0x0e, - 0x40, 0x02, 0x0b, 0x00, 0x06, 0x45, 0x3d, 0xe6, 0x01, 0x0e, 0x40, 0x80, - 0x06, 0x43, 0xc5, 0xa9, 0x5b, 0x0e, 0x40, 0x02, 0x11, 0x0c, 0x06, 0x47, - 0x48, 0xd2, 0x06, 0x0e, 0x40, 0x42, 0x05, 0x07, 0x02, 0x0e, 0x00, 0x42, - 0x10, 0x00, 0x05, 0x0e, 0x00, 0x43, 0xbd, 0x0b, 0x03, 0x0e, 0x00, 0x43, - 0x82, 0x10, 0x04, 0x0e, 0x40, 0x43, 0x0d, 0x0d, 0x2b, 0x0e, 0x00, 0x46, - 0x6e, 0xdb, 0x2e, 0x0e, 0x40, 0x43, 0xe0, 0x07, 0x1d, 0x0e, 0x80, 0x06, - 0x45, 0xf2, 0xe5, 0x4f, 0x0e, 0x40, 0xee, 0x1f, 0x0e, 0x40, 0x45, 0x0f, - 0xe2, 0x0e, 0x0e, 0x00, 0x43, 0x68, 0x18, 0x14, 0x0e, 0x40, 0x42, 0x1a, - 0x00, 0x08, 0x0e, 0x80, 0x0c, 0x43, 0xa1, 0x01, 0x09, 0x0e, 0x00, 0x42, - 0x17, 0x50, 0x0c, 0x0e, 0x40, 0xe7, 0x0a, 0x0e, 0x40, 0xa1, 0xc6, 0x02, - 0xa5, 0xb1, 0x02, 0x47, 0xeb, 0xce, 0xa8, 0x07, 0x00, 0x07, 0xc1, 0x05, - 0x20, 0xaf, 0x0c, 0x45, 0xff, 0xe7, 0xb0, 0x07, 0x00, 0x47, 0xde, 0xd3, - 0xaa, 0x07, 0x40, 0x48, 0x9a, 0xc0, 0xaf, 0x07, 0x00, 0x46, 0x54, 0xd7, - 0xae, 0x07, 0x00, 0x48, 0x52, 0xc6, 0xab, 0x07, 0x40, 0xa1, 0xf8, 0x01, - 0x43, 0x2e, 0x4f, 0x84, 0x07, 0x00, 0x49, 0xde, 0xb4, 0x97, 0x07, 0x00, - 0xa4, 0xd5, 0x01, 0x45, 0x45, 0xe3, 0x8a, 0x07, 0x00, 0xa7, 0xba, 0x01, - 0xa8, 0xab, 0x01, 0x48, 0xba, 0xc4, 0x96, 0x07, 0x00, 0xab, 0x96, 0x01, - 0xac, 0x87, 0x01, 0x45, 0x66, 0xe5, 0x89, 0x07, 0x00, 0xae, 0x73, 0x48, - 0x32, 0xc7, 0x95, 0x07, 0x00, 0x45, 0xf6, 0xe6, 0xa4, 0x07, 0x00, 0x43, - 0xcd, 0xa8, 0x83, 0x07, 0x00, 0xb3, 0x44, 0xb4, 0x25, 0x45, 0xe5, 0xe8, - 0x88, 0x07, 0x00, 0x45, 0x08, 0xe9, 0xa5, 0x07, 0x00, 0x43, 0x4e, 0xb7, - 0x94, 0x07, 0x00, 0xba, 0x01, 0xff, 0xa1, 0x04, 0xef, 0xa1, 0x07, 0x40, - 0xe1, 0x9c, 0x07, 0x00, 0x46, 0xe1, 0xb4, 0x92, 0x07, 0x40, 0x47, 0xe0, - 0xb4, 0x93, 0x07, 0x00, 0x43, 0x42, 0x40, 0x8c, 0x07, 0x80, 0x0a, 0xef, - 0xa0, 0x07, 0x00, 0x43, 0x30, 0x12, 0x98, 0x07, 0x40, 0x42, 0x5b, 0x15, - 0x9b, 0x07, 0x40, 0x45, 0xed, 0xe0, 0x9e, 0x07, 0x00, 0x44, 0x66, 0xec, - 0x90, 0x07, 0x00, 0xa8, 0x01, 0xff, 0x47, 0xe0, 0xb4, 0x81, 0x07, 0x00, - 0x44, 0x66, 0xec, 0x9d, 0x07, 0x40, 0x42, 0x31, 0x12, 0xb1, 0x07, 0x00, - 0x44, 0x5a, 0x94, 0x82, 0x07, 0x40, 0x44, 0x9f, 0x87, 0x8d, 0x07, 0x00, - 0x48, 0xdf, 0xb4, 0x85, 0x07, 0x40, 0x44, 0x46, 0xe3, 0x86, 0x07, 0x00, - 0x43, 0x42, 0x40, 0x9a, 0x07, 0x40, 0x42, 0x31, 0x12, 0x80, 0x07, 0x00, - 0x43, 0x42, 0x40, 0x99, 0x07, 0x40, 0x44, 0x46, 0xe3, 0x8e, 0x07, 0x00, - 0x45, 0xbd, 0xe3, 0xa3, 0x07, 0x00, 0x48, 0xea, 0xc5, 0x8f, 0x07, 0x40, - 0xa1, 0x06, 0x45, 0xb3, 0xe3, 0x8b, 0x07, 0x40, 0x44, 0xee, 0xe0, 0x9f, - 0x07, 0x00, 0x46, 0xe1, 0xb4, 0x91, 0x07, 0x40, 0x43, 0x45, 0x1a, 0xa2, - 0x07, 0x00, 0x44, 0xc2, 0xed, 0x87, 0x07, 0x40, 0x46, 0x30, 0xd7, 0xac, - 0x07, 0x00, 0x48, 0xda, 0xc2, 0xa9, 0x07, 0x00, 0x48, 0x0a, 0xca, 0xad, - 0x07, 0x40, 0x48, 0x92, 0xc0, 0xa7, 0x07, 0x00, 0x46, 0x24, 0xd7, 0xa6, - 0x07, 0x40, 0xa1, 0xb6, 0x0a, 0x48, 0x82, 0xc2, 0xf8, 0xf9, 0x01, 0xac, - 0xea, 0x04, 0xae, 0xd7, 0x04, 0x47, 0x2f, 0xd3, 0xea, 0xf9, 0x01, 0x0c, - 0x21, 0x94, 0x01, 0xff, 0xa1, 0xb1, 0x04, 0xa2, 0x9c, 0x04, 0xa3, 0xc4, - 0x03, 0xa4, 0xff, 0x02, 0xa5, 0xd0, 0x02, 0xa6, 0xa2, 0x02, 0xa7, 0x80, - 0x02, 0xa8, 0xf1, 0x01, 0x02, 0x9e, 0x01, 0xe0, 0x01, 0x43, 0xe2, 0x93, - 0x1d, 0xd3, 0x01, 0xab, 0xcb, 0x01, 0xac, 0xb4, 0x01, 0xad, 0x9f, 0x01, - 0xaf, 0x90, 0x01, 0xb0, 0x74, 0xb2, 0x47, 0xb3, 0x22, 0x45, 0xb3, 0xe8, - 0x3b, 0xd3, 0x01, 0x53, 0x54, 0x4d, 0x37, 0xd3, 0x01, 0x02, 0xa9, 0x01, - 0x06, 0x4c, 0x4d, 0x95, 0x11, 0xd3, 0x41, 0x45, 0xe9, 0x82, 0x17, 0xd3, - 0x01, 0x43, 0x0e, 0x21, 0x44, 0xd3, 0x41, 0x48, 0x7a, 0xc3, 0x4b, 0xd3, - 0x01, 0x46, 0x96, 0x8f, 0x45, 0xd3, 0x01, 0xb4, 0x01, 0xff, 0xaf, 0x06, - 0x46, 0x82, 0xdc, 0x29, 0xd3, 0x41, 0x45, 0xe7, 0xe6, 0x4c, 0xd3, 0x01, - 0x42, 0x32, 0x00, 0x31, 0xd3, 0x41, 0xa5, 0x06, 0x45, 0x8a, 0xe4, 0x35, - 0xd3, 0x41, 0x43, 0xd4, 0x2c, 0x14, 0xd3, 0x01, 0x45, 0x0c, 0xe5, 0x1a, - 0xd3, 0x01, 0xb3, 0x01, 0xff, 0xa9, 0x06, 0x45, 0xe2, 0xe6, 0x2e, 0xd3, - 0x41, 0x45, 0x78, 0xe2, 0x2c, 0xd3, 0x01, 0x46, 0x06, 0xdd, 0x1b, 0xd3, - 0x41, 0xa1, 0x0c, 0x4a, 0xb1, 0xa7, 0x13, 0xd3, 0x01, 0x45, 0xc7, 0xe8, - 0x2a, 0xd3, 0x41, 0x45, 0xfd, 0x65, 0x24, 0xd3, 0x01, 0x45, 0xb3, 0x8f, - 0x34, 0xd3, 0x41, 0x4b, 0xaf, 0x9d, 0x53, 0xd3, 0x01, 0x49, 0xc2, 0xbb, - 0x0d, 0xd3, 0x41, 0x46, 0x0c, 0xd7, 0x40, 0xd3, 0x01, 0x46, 0x06, 0x18, - 0x39, 0xd3, 0x01, 0x44, 0xa9, 0x85, 0x08, 0xd3, 0x41, 0xa1, 0x06, 0x45, - 0xc3, 0xe2, 0x25, 0xd3, 0x41, 0x47, 0xd7, 0xcc, 0x55, 0xd3, 0x01, 0x4a, - 0x11, 0xb1, 0x2d, 0xd3, 0x41, 0x4c, 0xad, 0x8c, 0x0a, 0xd3, 0x01, 0x46, - 0x12, 0xda, 0x27, 0xd3, 0x41, 0x46, 0xd8, 0xd7, 0x12, 0xd3, 0x01, 0x43, - 0xd1, 0x0a, 0x46, 0xd3, 0x41, 0x47, 0x36, 0xcc, 0x4d, 0xd3, 0x01, 0x4b, - 0x03, 0x51, 0x16, 0xd3, 0x41, 0x48, 0xf9, 0x56, 0x28, 0xd3, 0x81, 0x12, - 0x4c, 0x5d, 0x91, 0x2f, 0xd3, 0x01, 0x48, 0x9a, 0xc7, 0x32, 0xd3, 0x01, - 0x4a, 0x35, 0xb0, 0x3e, 0xd3, 0x41, 0x43, 0xdd, 0x05, 0x3f, 0xd3, 0x41, - 0x46, 0xb2, 0xd6, 0x50, 0xd3, 0x01, 0x45, 0xc3, 0x01, 0x36, 0xd3, 0x01, - 0xaf, 0x11, 0x03, 0x16, 0x16, 0x01, 0xff, 0x47, 0xe6, 0x02, 0x07, 0xd3, - 0x01, 0x44, 0x9a, 0x23, 0x2b, 0xd3, 0x41, 0x47, 0x83, 0xc6, 0x18, 0xd3, - 0x01, 0x47, 0x36, 0xd3, 0x56, 0xd3, 0x41, 0x43, 0xca, 0x34, 0x1c, 0xd3, - 0x01, 0x4c, 0x25, 0x90, 0x42, 0xd3, 0x01, 0xae, 0x0c, 0x47, 0x1f, 0x32, - 0x3a, 0xd3, 0x01, 0x49, 0xf5, 0xbe, 0x4a, 0xd3, 0x41, 0x48, 0x4a, 0xc2, - 0x30, 0xd3, 0x01, 0x47, 0x78, 0xcd, 0x1f, 0xd3, 0x01, 0x49, 0xe0, 0xb8, - 0x33, 0xd3, 0x41, 0x48, 0x92, 0x38, 0x48, 0xd3, 0x01, 0xa5, 0x28, 0xa9, - 0x0c, 0x44, 0xaa, 0xee, 0x43, 0xd3, 0x01, 0x45, 0xd6, 0xe8, 0x20, 0xd3, - 0x41, 0x4a, 0x15, 0xa8, 0x54, 0xd3, 0x01, 0xad, 0x06, 0x48, 0x8a, 0xc9, - 0x10, 0xd3, 0x41, 0x49, 0x35, 0xb8, 0x3c, 0xd3, 0x01, 0x44, 0x4e, 0x60, - 0x49, 0xd3, 0x41, 0x4a, 0x7b, 0xa6, 0x22, 0xd3, 0x01, 0x59, 0x93, 0x23, - 0x0f, 0xd3, 0x01, 0x47, 0x5e, 0xb5, 0x47, 0xd3, 0x41, 0x45, 0x74, 0x02, - 0x06, 0xd3, 0x01, 0x45, 0x85, 0xc3, 0x21, 0xd3, 0x01, 0x03, 0x54, 0x0d, - 0x31, 0xaf, 0x01, 0xff, 0x03, 0x22, 0x61, 0x1e, 0xae, 0x01, 0xff, 0x46, - 0x0c, 0xdd, 0x38, 0xd3, 0x01, 0xb4, 0x01, 0xff, 0x43, 0xa0, 0x0c, 0x15, - 0xd3, 0x01, 0x46, 0x75, 0x81, 0x1e, 0xd3, 0x01, 0x47, 0x56, 0xd2, 0x0b, - 0xd3, 0x41, 0x45, 0x25, 0x61, 0x4e, 0xd3, 0x01, 0x45, 0xbd, 0xc0, 0x52, - 0xd3, 0x41, 0xa5, 0x06, 0x43, 0x09, 0x18, 0x4f, 0xd3, 0x41, 0x47, 0xc2, - 0x8b, 0x3d, 0xd3, 0x01, 0x44, 0x9a, 0x23, 0x26, 0xd3, 0x41, 0x46, 0x9a, - 0x68, 0x09, 0xd3, 0x01, 0x4e, 0xde, 0x78, 0x23, 0xd3, 0x01, 0x4c, 0x65, - 0x92, 0x0e, 0xd3, 0x41, 0x4b, 0xe2, 0x97, 0x41, 0xd3, 0x01, 0x46, 0x20, - 0xd8, 0x19, 0xd3, 0x01, 0x4a, 0x8d, 0xa8, 0x51, 0xd3, 0x01, 0x45, 0x4a, - 0x40, 0x0c, 0xd3, 0x41, 0x47, 0xf2, 0x94, 0xb8, 0x20, 0x00, 0x54, 0x67, - 0x43, 0xbe, 0xf3, 0x01, 0xf4, 0xfa, 0x26, 0x40, 0xa5, 0x87, 0x05, 0x04, - 0x7e, 0xef, 0x01, 0xff, 0x4e, 0x38, 0x74, 0x56, 0x0c, 0x00, 0x06, 0xc4, - 0x06, 0xb5, 0x04, 0x0f, 0xc2, 0x6b, 0xf7, 0x03, 0x02, 0x68, 0x00, 0x9c, - 0x01, 0x05, 0x2f, 0x03, 0x4e, 0x0b, 0xd1, 0x75, 0x01, 0xff, 0xa1, 0x3b, - 0xe5, 0x46, 0x0c, 0x80, 0x32, 0xe9, 0x3f, 0x0c, 0x80, 0x29, 0xef, 0x4a, - 0x0c, 0x80, 0x20, 0xf5, 0x41, 0x0c, 0x80, 0x17, 0x08, 0x9b, 0xbe, 0x01, - 0xff, 0xec, 0x62, 0x0c, 0x80, 0x09, 0xf2, 0x43, 0x0c, 0xc0, 0x00, 0xf2, - 0x44, 0x0c, 0x40, 0xec, 0x63, 0x0c, 0x40, 0xf5, 0x42, 0x0c, 0x40, 0xef, - 0x4b, 0x0c, 0x40, 0xe9, 0x40, 0x0c, 0x40, 0xe5, 0x47, 0x0c, 0x40, 0xe1, - 0x3e, 0x0c, 0x00, 0xe9, 0x48, 0x0c, 0x00, 0xf5, 0x4c, 0x0c, 0x40, 0xa1, - 0x3c, 0xa3, 0x23, 0x45, 0x5a, 0x3e, 0x3c, 0x0c, 0x00, 0x47, 0x0c, 0xd3, - 0x77, 0x0c, 0x00, 0x45, 0x81, 0xe8, 0x7f, 0x0c, 0x00, 0x02, 0x02, 0x00, - 0x01, 0xff, 0x44, 0x5d, 0x23, 0x4d, 0x0c, 0x00, 0x45, 0xa3, 0x4a, 0x03, - 0x0c, 0x40, 0x4a, 0x50, 0x23, 0x01, 0x0c, 0x00, 0x09, 0xc7, 0x15, 0x01, - 0xff, 0x4e, 0xd0, 0x15, 0x04, 0x0c, 0x00, 0x51, 0xa3, 0x57, 0x00, 0x0c, - 0x40, 0x47, 0xd1, 0x15, 0x02, 0x0c, 0x00, 0x47, 0xf2, 0x86, 0x3d, 0x0c, - 0x40, 0x49, 0x74, 0x38, 0x55, 0x0c, 0x00, 0x05, 0xc3, 0x05, 0x01, 0xff, - 0xe1, 0x05, 0x0c, 0x80, 0xb9, 0x02, 0xa2, 0xac, 0x02, 0xa3, 0x9f, 0x02, - 0xa4, 0x80, 0x02, 0xe5, 0x0e, 0x0c, 0x80, 0xf6, 0x01, 0xa7, 0xe9, 0x01, - 0x42, 0x22, 0x00, 0x39, 0x0c, 0x00, 0xe9, 0x07, 0x0c, 0x80, 0xd9, 0x01, - 0xaa, 0xcc, 0x01, 0xab, 0xbf, 0x01, 0xac, 0xab, 0x01, 0x42, 0x6c, 0x00, - 0x2e, 0x0c, 0x00, 0xae, 0x85, 0x01, 0xef, 0x12, 0x0c, 0x80, 0x7c, 0xb0, - 0x70, 0xb2, 0x5d, 0xb3, 0x4b, 0xb4, 0x2c, 0xf5, 0x09, 0x0c, 0x80, 0x23, - 0xb6, 0x06, 0x42, 0x34, 0x22, 0x2f, 0x0c, 0x40, 0xe1, 0x35, 0x0c, 0x00, - 0x07, 0x9c, 0xbe, 0x01, 0xff, 0xec, 0x0c, 0x0c, 0x80, 0x09, 0xf2, 0x0b, - 0x0c, 0xc0, 0x00, 0xf2, 0x60, 0x0c, 0x40, 0xec, 0x61, 0x0c, 0x40, 0xf5, - 0x0a, 0x0c, 0x40, 0xe1, 0x24, 0x0c, 0x00, 0x42, 0x22, 0x00, 0x25, 0x0c, - 0x00, 0x42, 0x15, 0x06, 0x58, 0x0c, 0x00, 0xb4, 0x01, 0xff, 0xe1, 0x1f, - 0x0c, 0x00, 0x42, 0x22, 0x00, 0x20, 0x0c, 0x40, 0xe1, 0x38, 0x0c, 0x00, - 0x42, 0x22, 0x00, 0x36, 0x0c, 0x00, 0x42, 0x15, 0x06, 0x37, 0x0c, 0x40, - 0xe1, 0x30, 0x0c, 0x00, 0xb2, 0x01, 0xff, 0xe1, 0x31, 0x0c, 0x00, 0x42, - 0x71, 0x00, 0x5a, 0x0c, 0x40, 0xe1, 0x2a, 0x0c, 0x00, 0x42, 0x22, 0x00, - 0x2b, 0x0c, 0x40, 0xef, 0x13, 0x0c, 0x40, 0xe1, 0x28, 0x0c, 0x80, 0x12, - 0x42, 0x24, 0x02, 0x19, 0x0c, 0x00, 0x42, 0xff, 0x04, 0x23, 0x0c, 0x00, - 0x42, 0x34, 0x22, 0x1e, 0x0c, 0x40, 0x4b, 0xd6, 0x9b, 0x5d, 0x0c, 0x40, - 0xe1, 0x32, 0x0c, 0x00, 0xac, 0x01, 0xff, 0xe1, 0x33, 0x0c, 0x00, 0x42, - 0x74, 0x00, 0x34, 0x0c, 0x40, 0xe1, 0x15, 0x0c, 0x00, 0x42, 0x22, 0x00, - 0x16, 0x0c, 0x40, 0xe1, 0x1c, 0x0c, 0x00, 0x42, 0x22, 0x00, 0x1d, 0x0c, - 0x40, 0xe9, 0x08, 0x0c, 0x40, 0xe1, 0x17, 0x0c, 0x00, 0x42, 0x22, 0x00, - 0x18, 0x0c, 0x40, 0xe5, 0x0f, 0x0c, 0x40, 0xe1, 0x26, 0x0c, 0x00, 0xa4, - 0x0c, 0x42, 0x22, 0x00, 0x27, 0x0c, 0x00, 0x42, 0x59, 0x00, 0x59, 0x0c, - 0x40, 0xe1, 0x21, 0x0c, 0x00, 0x42, 0x22, 0x00, 0x22, 0x0c, 0x40, 0xe1, - 0x1a, 0x0c, 0x00, 0x42, 0x22, 0x00, 0x1b, 0x0c, 0x40, 0xe1, 0x2c, 0x0c, - 0x00, 0x42, 0x22, 0x00, 0x2d, 0x0c, 0x40, 0xe1, 0x06, 0x0c, 0x00, 0xe9, - 0x10, 0x0c, 0x00, 0xf5, 0x14, 0x0c, 0x40, 0x08, 0xaa, 0xc6, 0x29, 0xb4, - 0x06, 0x5b, 0xa1, 0x1d, 0x78, 0x0c, 0x40, 0x09, 0x66, 0xb7, 0x11, 0x07, - 0xb7, 0xd4, 0x01, 0xff, 0x53, 0x0f, 0x48, 0x7d, 0x0c, 0x00, 0x52, 0xaa, - 0x1d, 0x7a, 0x0c, 0x40, 0x53, 0x0f, 0x48, 0x7e, 0x0c, 0x00, 0x52, 0xaa, - 0x1d, 0x7b, 0x0c, 0x40, 0x53, 0x0f, 0x48, 0x7c, 0x0c, 0x00, 0x52, 0xaa, - 0x1d, 0x79, 0x0c, 0x40, 0x45, 0xc3, 0x0a, 0x6e, 0x0c, 0x00, 0xa6, 0x2e, - 0x44, 0x46, 0x2a, 0x6f, 0x0c, 0x00, 0x43, 0xbf, 0x0a, 0x67, 0x0c, 0x00, - 0xb3, 0x14, 0xb4, 0x06, 0x44, 0xa1, 0x1d, 0x66, 0x0c, 0x40, 0x44, 0x25, - 0x01, 0x69, 0x0c, 0x00, 0x42, 0x15, 0x02, 0x68, 0x0c, 0x40, 0x44, 0x27, - 0x1d, 0x6d, 0x0c, 0x00, 0x42, 0x60, 0x25, 0x6c, 0x0c, 0x40, 0x43, 0xa7, - 0x05, 0x6b, 0x0c, 0x00, 0x43, 0xcb, 0x06, 0x6a, 0x0c, 0x40, 0x06, 0x4a, - 0x3c, 0x0c, 0x45, 0xd5, 0xc8, 0x2d, 0xf5, 0x01, 0x46, 0xf4, 0x31, 0xfa, - 0xf4, 0x41, 0x4d, 0x78, 0x83, 0x06, 0x27, 0x00, 0x4f, 0x91, 0x6f, 0x80, - 0xf5, 0x01, 0x03, 0x3a, 0x0d, 0x06, 0x44, 0x2f, 0x03, 0x21, 0x21, 0x40, - 0x45, 0x53, 0x3c, 0xde, 0xf4, 0x81, 0x06, 0x45, 0x57, 0x87, 0x15, 0x23, - 0x40, 0x4a, 0x37, 0xa4, 0x7c, 0xf5, 0x41, 0x52, 0xac, 0x4f, 0x75, 0xf3, - 0x01, 0x43, 0xf3, 0x43, 0xd6, 0xfa, 0x01, 0xb2, 0x01, 0xff, 0x4d, 0xa5, - 0x7e, 0xc6, 0xf4, 0x01, 0x05, 0xd7, 0x0c, 0x01, 0xff, 0x57, 0xff, 0x2c, - 0xba, 0x27, 0x00, 0x4f, 0x4e, 0x1c, 0x3b, 0x27, 0x40, 0x5a, 0xa6, 0x1e, - 0xd3, 0xf3, 0x01, 0x42, 0xe8, 0x04, 0x2e, 0xf3, 0x01, 0xa7, 0xe9, 0x33, - 0x02, 0xc6, 0x03, 0xa3, 0x28, 0xab, 0xf7, 0x24, 0x09, 0x78, 0xa5, 0xe6, - 0x24, 0xad, 0xa9, 0x1e, 0xae, 0x1c, 0x03, 0x3e, 0x30, 0x0c, 0x44, 0x92, - 0xef, 0x49, 0x26, 0x00, 0x42, 0x93, 0x0c, 0x95, 0xf6, 0x41, 0x49, 0xcc, - 0xb4, 0xad, 0xf5, 0x01, 0x45, 0xa3, 0xd4, 0x07, 0x27, 0x40, 0x4a, 0x13, - 0xa5, 0x8b, 0xf3, 0x01, 0xa7, 0x01, 0xff, 0x45, 0x09, 0xe3, 0x4a, 0xf3, - 0x01, 0x03, 0x0c, 0x4e, 0xff, 0x19, 0x03, 0x1c, 0x0d, 0x01, 0xff, 0x0a, - 0x99, 0xa6, 0x0f, 0xa9, 0x01, 0xff, 0x49, 0x1c, 0x27, 0x03, 0xd8, 0x00, - 0x4d, 0xb7, 0x1f, 0xe0, 0x6f, 0x41, 0x90, 0xbd, 0x16, 0x91, 0x8f, 0x13, - 0x92, 0xe1, 0x0f, 0x93, 0xb3, 0x0c, 0x94, 0x85, 0x09, 0x95, 0xd7, 0x05, - 0x96, 0xa9, 0x02, 0x97, 0x01, 0xff, 0x90, 0xfb, 0x01, 0x91, 0xd0, 0x01, - 0x92, 0xa5, 0x01, 0x93, 0x7b, 0x94, 0x51, 0x95, 0x27, 0x96, 0x01, 0xff, - 0xd0, 0xf7, 0x8a, 0x01, 0xd1, 0xf8, 0x8a, 0x01, 0xd2, 0xf9, 0x8a, 0x01, - 0xd3, 0xfa, 0x8a, 0x01, 0xd4, 0xfb, 0x8a, 0x01, 0xd5, 0xfc, 0x8a, 0x01, - 0xd6, 0xfd, 0x8a, 0x01, 0xd7, 0xfe, 0x8a, 0x01, 0xd8, 0xff, 0x8a, 0x41, - 0xd0, 0xed, 0x8a, 0x01, 0xd1, 0xee, 0x8a, 0x01, 0xd2, 0xef, 0x8a, 0x01, - 0xd3, 0xf0, 0x8a, 0x01, 0xd4, 0xf1, 0x8a, 0x01, 0xd5, 0xf2, 0x8a, 0x01, - 0xd6, 0xf3, 0x8a, 0x01, 0xd7, 0xf4, 0x8a, 0x01, 0xd8, 0xf5, 0x8a, 0x01, - 0xd9, 0xf6, 0x8a, 0x41, 0xd0, 0xe3, 0x8a, 0x01, 0xd1, 0xe4, 0x8a, 0x01, - 0xd2, 0xe5, 0x8a, 0x01, 0xd3, 0xe6, 0x8a, 0x01, 0xd4, 0xe7, 0x8a, 0x01, - 0xd5, 0xe8, 0x8a, 0x01, 0xd6, 0xe9, 0x8a, 0x01, 0xd7, 0xea, 0x8a, 0x01, - 0xd8, 0xeb, 0x8a, 0x01, 0xd9, 0xec, 0x8a, 0x41, 0xd0, 0xd9, 0x8a, 0x01, - 0xd1, 0xda, 0x8a, 0x01, 0xd2, 0xdb, 0x8a, 0x01, 0xd3, 0xdc, 0x8a, 0x01, - 0xd4, 0xdd, 0x8a, 0x01, 0xd5, 0xde, 0x8a, 0x01, 0xd6, 0xdf, 0x8a, 0x01, - 0xd7, 0xe0, 0x8a, 0x01, 0xd8, 0xe1, 0x8a, 0x01, 0xd9, 0xe2, 0x8a, 0x41, - 0xd0, 0xcf, 0x8a, 0x01, 0xd1, 0xd0, 0x8a, 0x01, 0xd2, 0xd1, 0x8a, 0x01, - 0xd3, 0xd2, 0x8a, 0x01, 0xd4, 0xd3, 0x8a, 0x01, 0xd5, 0xd4, 0x8a, 0x01, - 0xd6, 0xd5, 0x8a, 0x01, 0xd7, 0xd6, 0x8a, 0x01, 0xd8, 0xd7, 0x8a, 0x01, - 0xd9, 0xd8, 0x8a, 0x41, 0xd0, 0xc5, 0x8a, 0x01, 0xd1, 0xc6, 0x8a, 0x01, - 0xd2, 0xc7, 0x8a, 0x01, 0xd3, 0xc8, 0x8a, 0x01, 0xd4, 0xc9, 0x8a, 0x01, - 0xd5, 0xca, 0x8a, 0x01, 0xd6, 0xcb, 0x8a, 0x01, 0xd7, 0xcc, 0x8a, 0x01, - 0xd8, 0xcd, 0x8a, 0x01, 0xd9, 0xce, 0x8a, 0x41, 0xd0, 0xbb, 0x8a, 0x01, - 0xd1, 0xbc, 0x8a, 0x01, 0xd2, 0xbd, 0x8a, 0x01, 0xd3, 0xbe, 0x8a, 0x01, - 0xd4, 0xbf, 0x8a, 0x01, 0xd5, 0xc0, 0x8a, 0x01, 0xd6, 0xc1, 0x8a, 0x01, - 0xd7, 0xc2, 0x8a, 0x01, 0xd8, 0xc3, 0x8a, 0x01, 0xd9, 0xc4, 0x8a, 0x41, - 0x90, 0x80, 0x03, 0x91, 0xd5, 0x02, 0x92, 0xaa, 0x02, 0x93, 0xff, 0x01, - 0x94, 0xd4, 0x01, 0x95, 0xa9, 0x01, 0x96, 0x7f, 0x97, 0x55, 0x98, 0x2b, - 0x99, 0x01, 0xff, 0xd0, 0xb1, 0x8a, 0x01, 0xd1, 0xb2, 0x8a, 0x01, 0xd2, - 0xb3, 0x8a, 0x01, 0xd3, 0xb4, 0x8a, 0x01, 0xd4, 0xb5, 0x8a, 0x01, 0xd5, - 0xb6, 0x8a, 0x01, 0xd6, 0xb7, 0x8a, 0x01, 0xd7, 0xb8, 0x8a, 0x01, 0xd8, - 0xb9, 0x8a, 0x01, 0xd9, 0xba, 0x8a, 0x41, 0xd0, 0xa7, 0x8a, 0x01, 0xd1, - 0xa8, 0x8a, 0x01, 0xd2, 0xa9, 0x8a, 0x01, 0xd3, 0xaa, 0x8a, 0x01, 0xd4, - 0xab, 0x8a, 0x01, 0xd5, 0xac, 0x8a, 0x01, 0xd6, 0xad, 0x8a, 0x01, 0xd7, - 0xae, 0x8a, 0x01, 0xd8, 0xaf, 0x8a, 0x01, 0xd9, 0xb0, 0x8a, 0x41, 0xd0, - 0x9d, 0x8a, 0x01, 0xd1, 0x9e, 0x8a, 0x01, 0xd2, 0x9f, 0x8a, 0x01, 0xd3, - 0xa0, 0x8a, 0x01, 0xd4, 0xa1, 0x8a, 0x01, 0xd5, 0xa2, 0x8a, 0x01, 0xd6, - 0xa3, 0x8a, 0x01, 0xd7, 0xa4, 0x8a, 0x01, 0xd8, 0xa5, 0x8a, 0x01, 0xd9, - 0xa6, 0x8a, 0x41, 0xd0, 0x93, 0x8a, 0x01, 0xd1, 0x94, 0x8a, 0x01, 0xd2, - 0x95, 0x8a, 0x01, 0xd3, 0x96, 0x8a, 0x01, 0xd4, 0x97, 0x8a, 0x01, 0xd5, - 0x98, 0x8a, 0x01, 0xd6, 0x99, 0x8a, 0x01, 0xd7, 0x9a, 0x8a, 0x01, 0xd8, - 0x9b, 0x8a, 0x01, 0xd9, 0x9c, 0x8a, 0x41, 0xd0, 0x89, 0x8a, 0x01, 0xd1, - 0x8a, 0x8a, 0x01, 0xd2, 0x8b, 0x8a, 0x01, 0xd3, 0x8c, 0x8a, 0x01, 0xd4, - 0x8d, 0x8a, 0x01, 0xd5, 0x8e, 0x8a, 0x01, 0xd6, 0x8f, 0x8a, 0x01, 0xd7, - 0x90, 0x8a, 0x01, 0xd8, 0x91, 0x8a, 0x01, 0xd9, 0x92, 0x8a, 0x41, 0xd0, - 0x7f, 0x8a, 0x01, 0xd1, 0x80, 0x8a, 0x01, 0xd2, 0x81, 0x8a, 0x01, 0xd3, - 0x82, 0x8a, 0x01, 0xd4, 0x83, 0x8a, 0x01, 0xd5, 0x84, 0x8a, 0x01, 0xd6, - 0x85, 0x8a, 0x01, 0xd7, 0x86, 0x8a, 0x01, 0xd8, 0x87, 0x8a, 0x01, 0xd9, - 0x88, 0x8a, 0x41, 0xd0, 0x75, 0x8a, 0x01, 0xd1, 0x76, 0x8a, 0x01, 0xd2, - 0x77, 0x8a, 0x01, 0xd3, 0x78, 0x8a, 0x01, 0xd4, 0x79, 0x8a, 0x01, 0xd5, - 0x7a, 0x8a, 0x01, 0xd6, 0x7b, 0x8a, 0x01, 0xd7, 0x7c, 0x8a, 0x01, 0xd8, - 0x7d, 0x8a, 0x01, 0xd9, 0x7e, 0x8a, 0x41, 0xd0, 0x6b, 0x8a, 0x01, 0xd1, - 0x6c, 0x8a, 0x01, 0xd2, 0x6d, 0x8a, 0x01, 0xd3, 0x6e, 0x8a, 0x01, 0xd4, - 0x6f, 0x8a, 0x01, 0xd5, 0x70, 0x8a, 0x01, 0xd6, 0x71, 0x8a, 0x01, 0xd7, - 0x72, 0x8a, 0x01, 0xd8, 0x73, 0x8a, 0x01, 0xd9, 0x74, 0x8a, 0x41, 0xd0, - 0x61, 0x8a, 0x01, 0xd1, 0x62, 0x8a, 0x01, 0xd2, 0x63, 0x8a, 0x01, 0xd3, - 0x64, 0x8a, 0x01, 0xd4, 0x65, 0x8a, 0x01, 0xd5, 0x66, 0x8a, 0x01, 0xd6, - 0x67, 0x8a, 0x01, 0xd7, 0x68, 0x8a, 0x01, 0xd8, 0x69, 0x8a, 0x01, 0xd9, - 0x6a, 0x8a, 0x41, 0xd0, 0x57, 0x8a, 0x01, 0xd1, 0x58, 0x8a, 0x01, 0xd2, - 0x59, 0x8a, 0x01, 0xd3, 0x5a, 0x8a, 0x01, 0xd4, 0x5b, 0x8a, 0x01, 0xd5, - 0x5c, 0x8a, 0x01, 0xd6, 0x5d, 0x8a, 0x01, 0xd7, 0x5e, 0x8a, 0x01, 0xd8, - 0x5f, 0x8a, 0x01, 0xd9, 0x60, 0x8a, 0x41, 0x90, 0x80, 0x03, 0x91, 0xd5, - 0x02, 0x92, 0xaa, 0x02, 0x93, 0xff, 0x01, 0x94, 0xd4, 0x01, 0x95, 0xa9, - 0x01, 0x96, 0x7f, 0x97, 0x55, 0x98, 0x2b, 0x99, 0x01, 0xff, 0xd0, 0x4d, - 0x8a, 0x01, 0xd1, 0x4e, 0x8a, 0x01, 0xd2, 0x4f, 0x8a, 0x01, 0xd3, 0x50, - 0x8a, 0x01, 0xd4, 0x51, 0x8a, 0x01, 0xd5, 0x52, 0x8a, 0x01, 0xd6, 0x53, - 0x8a, 0x01, 0xd7, 0x54, 0x8a, 0x01, 0xd8, 0x55, 0x8a, 0x01, 0xd9, 0x56, - 0x8a, 0x41, 0xd0, 0x43, 0x8a, 0x01, 0xd1, 0x44, 0x8a, 0x01, 0xd2, 0x45, - 0x8a, 0x01, 0xd3, 0x46, 0x8a, 0x01, 0xd4, 0x47, 0x8a, 0x01, 0xd5, 0x48, - 0x8a, 0x01, 0xd6, 0x49, 0x8a, 0x01, 0xd7, 0x4a, 0x8a, 0x01, 0xd8, 0x4b, - 0x8a, 0x01, 0xd9, 0x4c, 0x8a, 0x41, 0xd0, 0x39, 0x8a, 0x01, 0xd1, 0x3a, - 0x8a, 0x01, 0xd2, 0x3b, 0x8a, 0x01, 0xd3, 0x3c, 0x8a, 0x01, 0xd4, 0x3d, - 0x8a, 0x01, 0xd5, 0x3e, 0x8a, 0x01, 0xd6, 0x3f, 0x8a, 0x01, 0xd7, 0x40, - 0x8a, 0x01, 0xd8, 0x41, 0x8a, 0x01, 0xd9, 0x42, 0x8a, 0x41, 0xd0, 0x2f, - 0x8a, 0x01, 0xd1, 0x30, 0x8a, 0x01, 0xd2, 0x31, 0x8a, 0x01, 0xd3, 0x32, - 0x8a, 0x01, 0xd4, 0x33, 0x8a, 0x01, 0xd5, 0x34, 0x8a, 0x01, 0xd6, 0x35, - 0x8a, 0x01, 0xd7, 0x36, 0x8a, 0x01, 0xd8, 0x37, 0x8a, 0x01, 0xd9, 0x38, - 0x8a, 0x41, 0xd0, 0x25, 0x8a, 0x01, 0xd1, 0x26, 0x8a, 0x01, 0xd2, 0x27, - 0x8a, 0x01, 0xd3, 0x28, 0x8a, 0x01, 0xd4, 0x29, 0x8a, 0x01, 0xd5, 0x2a, - 0x8a, 0x01, 0xd6, 0x2b, 0x8a, 0x01, 0xd7, 0x2c, 0x8a, 0x01, 0xd8, 0x2d, - 0x8a, 0x01, 0xd9, 0x2e, 0x8a, 0x41, 0xd0, 0x1b, 0x8a, 0x01, 0xd1, 0x1c, - 0x8a, 0x01, 0xd2, 0x1d, 0x8a, 0x01, 0xd3, 0x1e, 0x8a, 0x01, 0xd4, 0x1f, - 0x8a, 0x01, 0xd5, 0x20, 0x8a, 0x01, 0xd6, 0x21, 0x8a, 0x01, 0xd7, 0x22, - 0x8a, 0x01, 0xd8, 0x23, 0x8a, 0x01, 0xd9, 0x24, 0x8a, 0x41, 0xd0, 0x11, - 0x8a, 0x01, 0xd1, 0x12, 0x8a, 0x01, 0xd2, 0x13, 0x8a, 0x01, 0xd3, 0x14, - 0x8a, 0x01, 0xd4, 0x15, 0x8a, 0x01, 0xd5, 0x16, 0x8a, 0x01, 0xd6, 0x17, - 0x8a, 0x01, 0xd7, 0x18, 0x8a, 0x01, 0xd8, 0x19, 0x8a, 0x01, 0xd9, 0x1a, - 0x8a, 0x41, 0xd0, 0x07, 0x8a, 0x01, 0xd1, 0x08, 0x8a, 0x01, 0xd2, 0x09, - 0x8a, 0x01, 0xd3, 0x0a, 0x8a, 0x01, 0xd4, 0x0b, 0x8a, 0x01, 0xd5, 0x0c, - 0x8a, 0x01, 0xd6, 0x0d, 0x8a, 0x01, 0xd7, 0x0e, 0x8a, 0x01, 0xd8, 0x0f, - 0x8a, 0x01, 0xd9, 0x10, 0x8a, 0x41, 0xd0, 0xfd, 0x89, 0x01, 0xd1, 0xfe, - 0x89, 0x01, 0xd2, 0xff, 0x89, 0x01, 0xd3, 0x00, 0x8a, 0x01, 0xd4, 0x01, - 0x8a, 0x01, 0xd5, 0x02, 0x8a, 0x01, 0xd6, 0x03, 0x8a, 0x01, 0xd7, 0x04, - 0x8a, 0x01, 0xd8, 0x05, 0x8a, 0x01, 0xd9, 0x06, 0x8a, 0x41, 0xd0, 0xf3, - 0x89, 0x01, 0xd1, 0xf4, 0x89, 0x01, 0xd2, 0xf5, 0x89, 0x01, 0xd3, 0xf6, - 0x89, 0x01, 0xd4, 0xf7, 0x89, 0x01, 0xd5, 0xf8, 0x89, 0x01, 0xd6, 0xf9, - 0x89, 0x01, 0xd7, 0xfa, 0x89, 0x01, 0xd8, 0xfb, 0x89, 0x01, 0xd9, 0xfc, - 0x89, 0x41, 0x90, 0x80, 0x03, 0x91, 0xd5, 0x02, 0x92, 0xaa, 0x02, 0x93, - 0xff, 0x01, 0x94, 0xd4, 0x01, 0x95, 0xa9, 0x01, 0x96, 0x7f, 0x97, 0x55, - 0x98, 0x2b, 0x99, 0x01, 0xff, 0xd0, 0xe9, 0x89, 0x01, 0xd1, 0xea, 0x89, - 0x01, 0xd2, 0xeb, 0x89, 0x01, 0xd3, 0xec, 0x89, 0x01, 0xd4, 0xed, 0x89, - 0x01, 0xd5, 0xee, 0x89, 0x01, 0xd6, 0xef, 0x89, 0x01, 0xd7, 0xf0, 0x89, - 0x01, 0xd8, 0xf1, 0x89, 0x01, 0xd9, 0xf2, 0x89, 0x41, 0xd0, 0xdf, 0x89, - 0x01, 0xd1, 0xe0, 0x89, 0x01, 0xd2, 0xe1, 0x89, 0x01, 0xd3, 0xe2, 0x89, - 0x01, 0xd4, 0xe3, 0x89, 0x01, 0xd5, 0xe4, 0x89, 0x01, 0xd6, 0xe5, 0x89, - 0x01, 0xd7, 0xe6, 0x89, 0x01, 0xd8, 0xe7, 0x89, 0x01, 0xd9, 0xe8, 0x89, - 0x41, 0xd0, 0xd5, 0x89, 0x01, 0xd1, 0xd6, 0x89, 0x01, 0xd2, 0xd7, 0x89, - 0x01, 0xd3, 0xd8, 0x89, 0x01, 0xd4, 0xd9, 0x89, 0x01, 0xd5, 0xda, 0x89, - 0x01, 0xd6, 0xdb, 0x89, 0x01, 0xd7, 0xdc, 0x89, 0x01, 0xd8, 0xdd, 0x89, - 0x01, 0xd9, 0xde, 0x89, 0x41, 0xd0, 0xcb, 0x89, 0x01, 0xd1, 0xcc, 0x89, - 0x01, 0xd2, 0xcd, 0x89, 0x01, 0xd3, 0xce, 0x89, 0x01, 0xd4, 0xcf, 0x89, - 0x01, 0xd5, 0xd0, 0x89, 0x01, 0xd6, 0xd1, 0x89, 0x01, 0xd7, 0xd2, 0x89, - 0x01, 0xd8, 0xd3, 0x89, 0x01, 0xd9, 0xd4, 0x89, 0x41, 0xd0, 0xc1, 0x89, - 0x01, 0xd1, 0xc2, 0x89, 0x01, 0xd2, 0xc3, 0x89, 0x01, 0xd3, 0xc4, 0x89, - 0x01, 0xd4, 0xc5, 0x89, 0x01, 0xd5, 0xc6, 0x89, 0x01, 0xd6, 0xc7, 0x89, - 0x01, 0xd7, 0xc8, 0x89, 0x01, 0xd8, 0xc9, 0x89, 0x01, 0xd9, 0xca, 0x89, - 0x41, 0xd0, 0xb7, 0x89, 0x01, 0xd1, 0xb8, 0x89, 0x01, 0xd2, 0xb9, 0x89, - 0x01, 0xd3, 0xba, 0x89, 0x01, 0xd4, 0xbb, 0x89, 0x01, 0xd5, 0xbc, 0x89, - 0x01, 0xd6, 0xbd, 0x89, 0x01, 0xd7, 0xbe, 0x89, 0x01, 0xd8, 0xbf, 0x89, - 0x01, 0xd9, 0xc0, 0x89, 0x41, 0xd0, 0xad, 0x89, 0x01, 0xd1, 0xae, 0x89, - 0x01, 0xd2, 0xaf, 0x89, 0x01, 0xd3, 0xb0, 0x89, 0x01, 0xd4, 0xb1, 0x89, - 0x01, 0xd5, 0xb2, 0x89, 0x01, 0xd6, 0xb3, 0x89, 0x01, 0xd7, 0xb4, 0x89, - 0x01, 0xd8, 0xb5, 0x89, 0x01, 0xd9, 0xb6, 0x89, 0x41, 0xd0, 0xa3, 0x89, - 0x01, 0xd1, 0xa4, 0x89, 0x01, 0xd2, 0xa5, 0x89, 0x01, 0xd3, 0xa6, 0x89, - 0x01, 0xd4, 0xa7, 0x89, 0x01, 0xd5, 0xa8, 0x89, 0x01, 0xd6, 0xa9, 0x89, - 0x01, 0xd7, 0xaa, 0x89, 0x01, 0xd8, 0xab, 0x89, 0x01, 0xd9, 0xac, 0x89, - 0x41, 0xd0, 0x99, 0x89, 0x01, 0xd1, 0x9a, 0x89, 0x01, 0xd2, 0x9b, 0x89, - 0x01, 0xd3, 0x9c, 0x89, 0x01, 0xd4, 0x9d, 0x89, 0x01, 0xd5, 0x9e, 0x89, - 0x01, 0xd6, 0x9f, 0x89, 0x01, 0xd7, 0xa0, 0x89, 0x01, 0xd8, 0xa1, 0x89, - 0x01, 0xd9, 0xa2, 0x89, 0x41, 0xd0, 0x8f, 0x89, 0x01, 0xd1, 0x90, 0x89, - 0x01, 0xd2, 0x91, 0x89, 0x01, 0xd3, 0x92, 0x89, 0x01, 0xd4, 0x93, 0x89, - 0x01, 0xd5, 0x94, 0x89, 0x01, 0xd6, 0x95, 0x89, 0x01, 0xd7, 0x96, 0x89, - 0x01, 0xd8, 0x97, 0x89, 0x01, 0xd9, 0x98, 0x89, 0x41, 0x90, 0x80, 0x03, - 0x91, 0xd5, 0x02, 0x92, 0xaa, 0x02, 0x93, 0xff, 0x01, 0x94, 0xd4, 0x01, - 0x95, 0xa9, 0x01, 0x96, 0x7f, 0x97, 0x55, 0x98, 0x2b, 0x99, 0x01, 0xff, - 0xd0, 0x85, 0x89, 0x01, 0xd1, 0x86, 0x89, 0x01, 0xd2, 0x87, 0x89, 0x01, - 0xd3, 0x88, 0x89, 0x01, 0xd4, 0x89, 0x89, 0x01, 0xd5, 0x8a, 0x89, 0x01, - 0xd6, 0x8b, 0x89, 0x01, 0xd7, 0x8c, 0x89, 0x01, 0xd8, 0x8d, 0x89, 0x01, - 0xd9, 0x8e, 0x89, 0x41, 0xd0, 0x7b, 0x89, 0x01, 0xd1, 0x7c, 0x89, 0x01, - 0xd2, 0x7d, 0x89, 0x01, 0xd3, 0x7e, 0x89, 0x01, 0xd4, 0x7f, 0x89, 0x01, - 0xd5, 0x80, 0x89, 0x01, 0xd6, 0x81, 0x89, 0x01, 0xd7, 0x82, 0x89, 0x01, - 0xd8, 0x83, 0x89, 0x01, 0xd9, 0x84, 0x89, 0x41, 0xd0, 0x71, 0x89, 0x01, - 0xd1, 0x72, 0x89, 0x01, 0xd2, 0x73, 0x89, 0x01, 0xd3, 0x74, 0x89, 0x01, - 0xd4, 0x75, 0x89, 0x01, 0xd5, 0x76, 0x89, 0x01, 0xd6, 0x77, 0x89, 0x01, - 0xd7, 0x78, 0x89, 0x01, 0xd8, 0x79, 0x89, 0x01, 0xd9, 0x7a, 0x89, 0x41, - 0xd0, 0x67, 0x89, 0x01, 0xd1, 0x68, 0x89, 0x01, 0xd2, 0x69, 0x89, 0x01, - 0xd3, 0x6a, 0x89, 0x01, 0xd4, 0x6b, 0x89, 0x01, 0xd5, 0x6c, 0x89, 0x01, - 0xd6, 0x6d, 0x89, 0x01, 0xd7, 0x6e, 0x89, 0x01, 0xd8, 0x6f, 0x89, 0x01, - 0xd9, 0x70, 0x89, 0x41, 0xd0, 0x5d, 0x89, 0x01, 0xd1, 0x5e, 0x89, 0x01, - 0xd2, 0x5f, 0x89, 0x01, 0xd3, 0x60, 0x89, 0x01, 0xd4, 0x61, 0x89, 0x01, - 0xd5, 0x62, 0x89, 0x01, 0xd6, 0x63, 0x89, 0x01, 0xd7, 0x64, 0x89, 0x01, - 0xd8, 0x65, 0x89, 0x01, 0xd9, 0x66, 0x89, 0x41, 0xd0, 0x53, 0x89, 0x01, - 0xd1, 0x54, 0x89, 0x01, 0xd2, 0x55, 0x89, 0x01, 0xd3, 0x56, 0x89, 0x01, - 0xd4, 0x57, 0x89, 0x01, 0xd5, 0x58, 0x89, 0x01, 0xd6, 0x59, 0x89, 0x01, - 0xd7, 0x5a, 0x89, 0x01, 0xd8, 0x5b, 0x89, 0x01, 0xd9, 0x5c, 0x89, 0x41, - 0xd0, 0x49, 0x89, 0x01, 0xd1, 0x4a, 0x89, 0x01, 0xd2, 0x4b, 0x89, 0x01, - 0xd3, 0x4c, 0x89, 0x01, 0xd4, 0x4d, 0x89, 0x01, 0xd5, 0x4e, 0x89, 0x01, - 0xd6, 0x4f, 0x89, 0x01, 0xd7, 0x50, 0x89, 0x01, 0xd8, 0x51, 0x89, 0x01, - 0xd9, 0x52, 0x89, 0x41, 0xd0, 0x3f, 0x89, 0x01, 0xd1, 0x40, 0x89, 0x01, - 0xd2, 0x41, 0x89, 0x01, 0xd3, 0x42, 0x89, 0x01, 0xd4, 0x43, 0x89, 0x01, - 0xd5, 0x44, 0x89, 0x01, 0xd6, 0x45, 0x89, 0x01, 0xd7, 0x46, 0x89, 0x01, - 0xd8, 0x47, 0x89, 0x01, 0xd9, 0x48, 0x89, 0x41, 0xd0, 0x35, 0x89, 0x01, - 0xd1, 0x36, 0x89, 0x01, 0xd2, 0x37, 0x89, 0x01, 0xd3, 0x38, 0x89, 0x01, - 0xd4, 0x39, 0x89, 0x01, 0xd5, 0x3a, 0x89, 0x01, 0xd6, 0x3b, 0x89, 0x01, - 0xd7, 0x3c, 0x89, 0x01, 0xd8, 0x3d, 0x89, 0x01, 0xd9, 0x3e, 0x89, 0x41, - 0xd0, 0x2b, 0x89, 0x01, 0xd1, 0x2c, 0x89, 0x01, 0xd2, 0x2d, 0x89, 0x01, - 0xd3, 0x2e, 0x89, 0x01, 0xd4, 0x2f, 0x89, 0x01, 0xd5, 0x30, 0x89, 0x01, - 0xd6, 0x31, 0x89, 0x01, 0xd7, 0x32, 0x89, 0x01, 0xd8, 0x33, 0x89, 0x01, - 0xd9, 0x34, 0x89, 0x41, 0x90, 0x80, 0x03, 0x91, 0xd5, 0x02, 0x92, 0xaa, + 0x01, 0xff, 0x4b, 0x14, 0x95, 0x39, 0x2e, 0x00, 0x4e, 0x66, 0x73, 0xe6, + 0xcd, 0x41, 0x4c, 0xd7, 0x21, 0x5a, 0x2e, 0x00, 0x09, 0x5d, 0x63, 0x01, + 0xff, 0x44, 0x05, 0x44, 0x5c, 0xcc, 0x01, 0x0c, 0x7b, 0x96, 0x01, 0xff, + 0xd1, 0xe8, 0xcd, 0x01, 0xd2, 0xea, 0xcd, 0x41, 0x4c, 0xd7, 0x21, 0x59, + 0x2e, 0x00, 0x09, 0x5d, 0x63, 0x01, 0xff, 0x44, 0x05, 0x44, 0x5a, 0xcc, + 0x01, 0x0c, 0x7b, 0x96, 0x01, 0xff, 0xd1, 0xec, 0xcd, 0x01, 0xd2, 0xee, + 0xcd, 0x41, 0x14, 0xfc, 0x43, 0x11, 0x0f, 0x57, 0x63, 0x01, 0xff, 0x44, + 0x05, 0x44, 0x5b, 0xcc, 0x01, 0x45, 0x7b, 0x96, 0xf0, 0xcd, 0x41, 0xd1, + 0xf6, 0xcd, 0x01, 0xd2, 0xf7, 0xcd, 0x41, 0x53, 0x61, 0x10, 0x3a, 0x29, + 0x80, 0x06, 0x5a, 0x7c, 0x1f, 0x3c, 0x29, 0x40, 0x4a, 0x7d, 0xa6, 0x3d, + 0x29, 0x40, 0x44, 0x79, 0x85, 0xf0, 0xf9, 0x01, 0x42, 0x53, 0x00, 0xb7, + 0xf9, 0xc1, 0x00, 0x45, 0xcb, 0xb5, 0xa5, 0xfa, 0x41, 0x06, 0xef, 0x06, + 0xd1, 0x01, 0x07, 0xec, 0x05, 0x16, 0x05, 0x5a, 0x03, 0x06, 0x45, 0xd7, + 0xeb, 0xdb, 0x1d, 0x41, 0x46, 0x62, 0xdc, 0xda, 0x1d, 0x01, 0x44, 0x95, + 0xf2, 0xd9, 0x1d, 0x41, 0xe1, 0xb4, 0x1d, 0x81, 0xad, 0x01, 0xe2, 0xb8, + 0x1d, 0x81, 0xa3, 0x01, 0xe3, 0xc5, 0x1d, 0x81, 0x99, 0x01, 0xe4, 0xbd, + 0x1d, 0x81, 0x86, 0x01, 0xe5, 0xb1, 0x1d, 0x01, 0xe7, 0xcc, 0x1d, 0x81, + 0x79, 0xe8, 0xd5, 0x1d, 0x01, 0xe9, 0xb0, 0x1d, 0x01, 0xea, 0xc7, 0x1d, + 0x81, 0x68, 0xeb, 0xca, 0x1d, 0x81, 0x5f, 0xec, 0xd1, 0x1d, 0x01, 0xed, + 0xba, 0x1d, 0x01, 0xee, 0xbf, 0x1d, 0x81, 0x41, 0xef, 0xb3, 0x1d, 0x01, + 0xf0, 0xb6, 0x1d, 0x81, 0x34, 0xf2, 0xd0, 0x1d, 0x81, 0x26, 0xf3, 0xd4, + 0x1d, 0x01, 0xf4, 0xbb, 0x1d, 0x81, 0x10, 0xf5, 0xb2, 0x1d, 0x01, 0xf6, + 0xd2, 0x1d, 0x01, 0xf8, 0xd6, 0x1d, 0x01, 0xf9, 0xcf, 0x1d, 0x41, 0xe8, + 0xbc, 0x1d, 0x01, 0xf4, 0xc0, 0x1d, 0xc1, 0x00, 0xe8, 0xc1, 0x1d, 0x41, + 0xf2, 0xd7, 0x1d, 0xc1, 0x00, 0xe8, 0xd8, 0x1d, 0x41, 0xe8, 0xb7, 0x1d, + 0x41, 0xe7, 0xce, 0x1d, 0x01, 0xee, 0xc4, 0x1d, 0x81, 0x04, 0xf9, 0xc9, + 0x1d, 0x41, 0xf9, 0xd3, 0x1d, 0x41, 0xe8, 0xcb, 0x1d, 0x41, 0xe8, 0xc8, + 0x1d, 0x41, 0xe8, 0xcd, 0x1d, 0x41, 0xe4, 0xc2, 0x1d, 0x81, 0x04, 0xe8, + 0xbe, 0x1d, 0x41, 0xe8, 0xc3, 0x1d, 0x41, 0xe8, 0xc6, 0x1d, 0x41, 0xe8, + 0xb9, 0x1d, 0x41, 0xe1, 0xb5, 0x1d, 0x41, 0x45, 0x12, 0x0b, 0xe8, 0x1d, + 0x01, 0xa6, 0x2e, 0x44, 0xcf, 0x2a, 0xe9, 0x1d, 0x01, 0x43, 0x0e, 0x0b, + 0xe1, 0x1d, 0x01, 0xb3, 0x14, 0xb4, 0x06, 0x44, 0x43, 0x1e, 0xe0, 0x1d, + 0x41, 0x44, 0x25, 0x01, 0xe3, 0x1d, 0x01, 0x42, 0x15, 0x02, 0xe2, 0x1d, + 0x41, 0x44, 0xc9, 0x1d, 0xe7, 0x1d, 0x01, 0x42, 0x01, 0x26, 0xe6, 0x1d, + 0x41, 0x43, 0xd2, 0x05, 0xe5, 0x1d, 0x01, 0x43, 0xf6, 0x06, 0xe4, 0x1d, + 0x41, 0xe1, 0xc0, 0x05, 0x81, 0xa9, 0x02, 0x42, 0x16, 0x00, 0xc2, 0x05, + 0x01, 0xa3, 0x96, 0x02, 0xa4, 0x89, 0x02, 0xe5, 0xca, 0x05, 0x81, 0xff, + 0x01, 0x42, 0x0c, 0x08, 0xcb, 0x05, 0x01, 0xa7, 0xe6, 0x01, 0xa8, 0xd9, + 0x01, 0xe9, 0xd2, 0x05, 0x01, 0xaa, 0xca, 0x01, 0xab, 0xbd, 0x01, 0xac, + 0xb0, 0x01, 0xad, 0xa3, 0x01, 0xae, 0x78, 0xef, 0xda, 0x05, 0x81, 0x6f, + 0xb0, 0x63, 0x42, 0x43, 0x14, 0xdc, 0x05, 0x01, 0xb2, 0x51, 0xb3, 0x33, + 0xb4, 0x27, 0xf5, 0xe4, 0x05, 0x01, 0x42, 0xf5, 0x0a, 0xe5, 0x05, 0x01, + 0xb8, 0x11, 0xf9, 0xea, 0x05, 0x01, 0xba, 0x01, 0xff, 0xe1, 0xec, 0x05, + 0x01, 0x42, 0x22, 0x00, 0xed, 0x05, 0x41, 0xe1, 0xe6, 0x05, 0x01, 0x42, + 0x22, 0x00, 0xe8, 0x05, 0x41, 0xe1, 0xe2, 0x05, 0x01, 0x42, 0x22, 0x00, + 0xe3, 0x05, 0x41, 0xe1, 0xdf, 0x05, 0x01, 0xa8, 0x0c, 0x43, 0x51, 0x27, + 0xf0, 0x05, 0x01, 0x42, 0x12, 0x00, 0xef, 0x05, 0x41, 0xe1, 0xe0, 0x05, + 0x01, 0x42, 0x12, 0x00, 0xe1, 0x05, 0x41, 0xe1, 0xdd, 0x05, 0x01, 0x42, + 0x71, 0x00, 0xde, 0x05, 0x41, 0xe1, 0xdb, 0x05, 0x01, 0x42, 0x40, 0x06, + 0xf2, 0x05, 0x41, 0xef, 0xf3, 0x05, 0x41, 0xe1, 0xd8, 0x05, 0x01, 0x42, + 0xf0, 0x10, 0xc7, 0x05, 0x01, 0xa7, 0x13, 0x43, 0xda, 0xb5, 0xd9, 0x05, + 0x01, 0xb8, 0x01, 0xff, 0xe1, 0xe7, 0x05, 0x01, 0x42, 0x22, 0x00, 0xe9, + 0x05, 0x41, 0xe1, 0xcd, 0x05, 0x01, 0x42, 0x56, 0x19, 0xcf, 0x05, 0x41, + 0xe1, 0xd7, 0x05, 0x01, 0x42, 0x16, 0x00, 0xc3, 0x05, 0x41, 0xe1, 0xd5, + 0x05, 0x01, 0x42, 0x74, 0x00, 0xd6, 0x05, 0x41, 0xe1, 0xd4, 0x05, 0x01, + 0x42, 0x22, 0x00, 0xf1, 0x05, 0x41, 0xe1, 0xd3, 0x05, 0x01, 0xf9, 0xeb, + 0x05, 0x41, 0xe1, 0xd0, 0x05, 0x01, 0x42, 0x56, 0x19, 0xd1, 0x05, 0x41, + 0xe1, 0xcc, 0x05, 0x01, 0x42, 0x22, 0x00, 0xee, 0x05, 0x01, 0x42, 0x56, + 0x19, 0xce, 0x05, 0x41, 0xe9, 0xc9, 0x05, 0x41, 0xe1, 0xc6, 0x05, 0x01, + 0x42, 0x22, 0x00, 0xc8, 0x05, 0x41, 0xe1, 0xc4, 0x05, 0x01, 0x42, 0x22, + 0x00, 0xc5, 0x05, 0x41, 0xf3, 0xc1, 0x05, 0x41, 0x06, 0x1c, 0xda, 0xde, + 0x07, 0x44, 0x66, 0x09, 0xab, 0xf3, 0x01, 0x4f, 0x8a, 0x6c, 0xdd, 0x29, + 0x00, 0x07, 0x1d, 0xd1, 0xa6, 0x05, 0xa7, 0x90, 0x05, 0x43, 0x1b, 0x1e, + 0x7e, 0x00, 0x80, 0xbf, 0x04, 0x02, 0x2a, 0x02, 0xa3, 0x04, 0x42, 0x7d, + 0x1a, 0xfe, 0x29, 0x80, 0x95, 0x04, 0xb2, 0x01, 0xff, 0x47, 0x13, 0x15, + 0x2b, 0xf6, 0x01, 0x05, 0x2c, 0xe7, 0x11, 0x0b, 0xbc, 0xa0, 0x01, 0xff, + 0x4a, 0x7b, 0xa8, 0x52, 0x2e, 0x00, 0x42, 0xed, 0x05, 0x4a, 0x20, 0x40, + 0xa1, 0xe8, 0x03, 0x06, 0xef, 0x06, 0xa1, 0x03, 0x45, 0xbe, 0xe6, 0xc5, + 0x14, 0x01, 0x07, 0xec, 0x05, 0x85, 0x01, 0x42, 0x14, 0x05, 0xc7, 0x14, + 0x01, 0x05, 0x5a, 0x03, 0x50, 0x0b, 0x40, 0x77, 0x01, 0xff, 0xa1, 0x3d, + 0xe5, 0xb9, 0x14, 0x01, 0xe9, 0xb1, 0x14, 0x81, 0x30, 0xef, 0xbc, 0x14, + 0x01, 0x06, 0x33, 0x07, 0x20, 0xf5, 0xb3, 0x14, 0x81, 0x17, 0x08, 0x22, + 0xc1, 0x01, 0xff, 0xec, 0xb7, 0x14, 0x81, 0x09, 0xf2, 0xb5, 0x14, 0xc1, + 0x00, 0xf2, 0xb6, 0x14, 0x41, 0xec, 0xb8, 0x14, 0x41, 0xf5, 0xb4, 0x14, + 0x41, 0xe5, 0xba, 0x14, 0x01, 0xef, 0xbd, 0x14, 0x41, 0xe9, 0xb2, 0x14, + 0x41, 0xe1, 0xb0, 0x14, 0x01, 0xe9, 0xbb, 0x14, 0x01, 0xf5, 0xbe, 0x14, + 0x41, 0xa1, 0x1d, 0x4b, 0xd7, 0x23, 0xbf, 0x14, 0x01, 0x45, 0x3f, 0x3f, + 0xc3, 0x14, 0x01, 0x02, 0x02, 0x00, 0x01, 0xff, 0x44, 0xe5, 0x23, 0xc2, + 0x14, 0x01, 0x45, 0xec, 0x4b, 0xc1, 0x14, 0x41, 0x47, 0x3d, 0x16, 0xc0, + 0x14, 0x01, 0x47, 0xaf, 0x88, 0xc4, 0x14, 0x41, 0xe1, 0x81, 0x14, 0x81, + 0xff, 0x01, 0xa2, 0xf2, 0x01, 0xa3, 0xe5, 0x01, 0xa4, 0xcc, 0x01, 0xe5, + 0x8b, 0x14, 0x01, 0xa7, 0xbb, 0x01, 0x42, 0x22, 0x00, 0xaf, 0x14, 0x01, + 0xe9, 0x83, 0x14, 0x81, 0xab, 0x01, 0xaa, 0x9e, 0x01, 0xab, 0x91, 0x01, + 0x42, 0x74, 0x00, 0xaa, 0x14, 0x01, 0x42, 0x6c, 0x00, 0xa7, 0x14, 0x01, + 0xae, 0x6d, 0xef, 0x8d, 0x14, 0x01, 0xb0, 0x5d, 0x42, 0x71, 0x00, 0xa9, + 0x14, 0x01, 0xb3, 0x45, 0xb4, 0x2c, 0xf5, 0x85, 0x14, 0x81, 0x23, 0xb6, + 0x06, 0x42, 0xbc, 0x22, 0xa8, 0x14, 0x41, 0xe1, 0xab, 0x14, 0x01, 0x07, + 0x23, 0xc1, 0x01, 0xff, 0xec, 0x89, 0x14, 0x81, 0x09, 0xf2, 0x87, 0x14, + 0xc1, 0x00, 0xf2, 0x88, 0x14, 0x41, 0xec, 0x8a, 0x14, 0x41, 0xf5, 0x86, + 0x14, 0x41, 0xe1, 0x9e, 0x14, 0x01, 0x42, 0x22, 0x00, 0x9f, 0x14, 0x01, + 0xb4, 0x01, 0xff, 0xe1, 0x99, 0x14, 0x01, 0x42, 0x22, 0x00, 0x9a, 0x14, + 0x41, 0xe1, 0xae, 0x14, 0x01, 0x42, 0x22, 0x00, 0xac, 0x14, 0x01, 0x42, + 0x40, 0x06, 0xad, 0x14, 0x41, 0xe1, 0xa3, 0x14, 0x01, 0x42, 0x22, 0x00, + 0xa4, 0x14, 0x41, 0xe1, 0xa2, 0x14, 0x01, 0x42, 0x24, 0x02, 0x93, 0x14, + 0x01, 0x42, 0x2a, 0x05, 0x9d, 0x14, 0x01, 0x42, 0xbc, 0x22, 0x98, 0x14, + 0x41, 0xe1, 0x8f, 0x14, 0x01, 0x42, 0x22, 0x00, 0x90, 0x14, 0x41, 0xe1, + 0x96, 0x14, 0x01, 0x42, 0x22, 0x00, 0x97, 0x14, 0x41, 0xe9, 0x84, 0x14, + 0x41, 0xe1, 0x91, 0x14, 0x01, 0x42, 0x22, 0x00, 0x92, 0x14, 0x41, 0xe1, + 0xa0, 0x14, 0x01, 0xa4, 0x06, 0x42, 0x22, 0x00, 0xa1, 0x14, 0x41, 0xe1, + 0x9b, 0x14, 0x01, 0x42, 0x22, 0x00, 0x9c, 0x14, 0x41, 0xe1, 0x94, 0x14, + 0x01, 0x42, 0x22, 0x00, 0x95, 0x14, 0x41, 0xe1, 0xa5, 0x14, 0x01, 0x42, + 0x22, 0x00, 0xa6, 0x14, 0x41, 0xe1, 0x82, 0x14, 0x01, 0xe9, 0x8c, 0x14, + 0x01, 0xf5, 0x8e, 0x14, 0x41, 0x45, 0x12, 0x0b, 0xd8, 0x14, 0x01, 0xa6, + 0x2e, 0x44, 0xcf, 0x2a, 0xd9, 0x14, 0x01, 0x43, 0x0e, 0x0b, 0xd1, 0x14, + 0x01, 0xb3, 0x14, 0xb4, 0x06, 0x44, 0x43, 0x1e, 0xd0, 0x14, 0x41, 0x44, + 0x25, 0x01, 0xd3, 0x14, 0x01, 0x42, 0x15, 0x02, 0xd2, 0x14, 0x41, 0x44, + 0xc9, 0x1d, 0xd7, 0x14, 0x01, 0x42, 0x01, 0x26, 0xd6, 0x14, 0x41, 0x43, + 0xd2, 0x05, 0xd5, 0x14, 0x01, 0x43, 0xf6, 0x06, 0xd4, 0x14, 0x41, 0x50, + 0xdd, 0x57, 0xc6, 0x14, 0x01, 0x43, 0x5a, 0x87, 0x80, 0x14, 0x41, 0x62, + 0xf0, 0x0b, 0x3a, 0x0b, 0x41, 0x47, 0x23, 0x1b, 0xf2, 0x23, 0x00, 0x07, + 0xbc, 0x07, 0x01, 0xff, 0x4f, 0x78, 0x6f, 0xd4, 0x29, 0x00, 0x50, 0xb6, + 0x66, 0xd5, 0x29, 0x40, 0x80, 0x01, 0xff, 0x48, 0x7e, 0x1d, 0x3c, 0x22, + 0x80, 0x1b, 0x05, 0x51, 0x00, 0x01, 0xff, 0x04, 0x03, 0x0c, 0x06, 0x4a, + 0x5f, 0xb0, 0x1b, 0x2e, 0x40, 0x45, 0x5c, 0x00, 0x1e, 0x2e, 0x00, 0x45, + 0x20, 0x07, 0x1f, 0x2e, 0x40, 0x80, 0x01, 0xff, 0x06, 0x5c, 0x00, 0x11, + 0x05, 0x51, 0x00, 0x01, 0xff, 0x49, 0x3a, 0x1e, 0x6a, 0x2a, 0x00, 0x4b, + 0x27, 0xa2, 0x6b, 0x2a, 0x40, 0x4f, 0x4d, 0x1a, 0x49, 0x2b, 0x00, 0x50, + 0xb3, 0x02, 0x72, 0x29, 0x40, 0x42, 0x33, 0x00, 0x05, 0xf4, 0x81, 0x06, + 0x57, 0xcb, 0x2e, 0x45, 0x27, 0x40, 0x45, 0x0b, 0x08, 0x2f, 0xf4, 0x41, + 0x50, 0x96, 0x61, 0x7f, 0x2d, 0x00, 0x07, 0xec, 0x05, 0x0c, 0x62, 0x78, + 0x0c, 0x6f, 0x2d, 0x00, 0x4e, 0xff, 0x7b, 0x70, 0x2d, 0x40, 0xa1, 0x82, + 0x02, 0x11, 0x97, 0x58, 0xf5, 0x01, 0xb4, 0xc0, 0x01, 0xb9, 0x01, 0xff, + 0xe1, 0x30, 0x2d, 0x80, 0x15, 0xe5, 0x66, 0x2d, 0x80, 0x0c, 0xe9, 0x49, + 0x2d, 0x00, 0xef, 0x67, 0x2d, 0x00, 0xf5, 0x53, 0x2d, 0x40, 0xf9, 0x3b, + 0x2d, 0x40, 0xe1, 0x44, 0x2d, 0x00, 0xe2, 0x31, 0x2d, 0x80, 0x95, 0x01, + 0x42, 0x6d, 0x14, 0x5e, 0x2d, 0x00, 0xe4, 0x37, 0x2d, 0x80, 0x7d, 0xe6, + 0x3c, 0x2d, 0x00, 0xe7, 0x33, 0x2d, 0x80, 0x6b, 0xe8, 0x40, 0x2d, 0x80, + 0x62, 0xea, 0x36, 0x2d, 0x00, 0xeb, 0x3d, 0x2d, 0x80, 0x50, 0xec, 0x4d, + 0x2d, 0x00, 0xed, 0x4e, 0x2d, 0x00, 0xee, 0x4f, 0x2d, 0x00, 0xf0, 0x52, + 0x2d, 0x00, 0xf1, 0x47, 0x2d, 0x00, 0xf2, 0x54, 0x2d, 0x80, 0x33, 0xf3, + 0x59, 0x2d, 0x80, 0x26, 0xf4, 0x5c, 0x2d, 0x80, 0x19, 0xf6, 0x60, 0x2d, + 0x00, 0xf7, 0x61, 0x2d, 0x00, 0xf9, 0x62, 0x2d, 0x00, 0xfa, 0x63, 0x2d, + 0xc0, 0x00, 0xe8, 0x4a, 0x2d, 0x00, 0xfa, 0x65, 0x2d, 0x40, 0xe8, 0x5d, + 0x2d, 0x00, 0xf4, 0x5f, 0x2d, 0x40, 0xe8, 0x5b, 0x2d, 0x00, 0xf3, 0x5a, + 0x2d, 0x40, 0xf2, 0x55, 0x2d, 0x40, 0xe8, 0x45, 0x2d, 0xc0, 0x00, 0xe8, + 0x3f, 0x2d, 0x40, 0xe8, 0x43, 0x2d, 0x40, 0xe8, 0x56, 0x2d, 0xc0, 0x00, + 0xe8, 0x34, 0x2d, 0x40, 0xe4, 0x39, 0x2d, 0x80, 0x04, 0xe8, 0x38, 0x2d, + 0x40, 0xe8, 0x3a, 0x2d, 0x40, 0xe8, 0x32, 0x2d, 0x40, 0x4d, 0xf1, 0x80, + 0x64, 0x2d, 0x00, 0x08, 0xe0, 0xcb, 0x01, 0xff, 0xa7, 0x1d, 0xe8, 0x42, + 0x2d, 0x00, 0xeb, 0x3e, 0x2d, 0x80, 0x10, 0x42, 0x1d, 0x01, 0x51, 0x2d, + 0x00, 0xf1, 0x48, 0x2d, 0x00, 0x42, 0x54, 0x28, 0x4c, 0x2d, 0x40, 0xe8, + 0x46, 0x2d, 0x40, 0xe8, 0x57, 0x2d, 0x00, 0xee, 0x50, 0x2d, 0x40, 0xe8, + 0x41, 0x2d, 0x00, 0xea, 0x35, 0x2d, 0x40, 0x4b, 0xa7, 0x9c, 0x4b, 0x2d, + 0x00, 0x48, 0xd8, 0xcc, 0x58, 0x2d, 0x40, 0x12, 0x53, 0x50, 0x9d, 0x0b, + 0x12, 0xad, 0x50, 0x80, 0x0b, 0x06, 0xef, 0x06, 0xf3, 0x09, 0x49, 0x1f, + 0xbb, 0xbe, 0x0f, 0x80, 0xe5, 0x09, 0xac, 0xbf, 0x07, 0x05, 0xb9, 0x00, + 0xf6, 0x04, 0xb3, 0x51, 0x0b, 0x40, 0x77, 0x01, 0xff, 0x42, 0x80, 0x12, + 0x71, 0x0f, 0x00, 0xe5, 0x7a, 0x0f, 0x80, 0x3d, 0xe9, 0x72, 0x0f, 0x80, + 0x34, 0xef, 0x7c, 0x0f, 0x80, 0x2b, 0x4a, 0x23, 0xb0, 0x80, 0x0f, 0x80, + 0x20, 0xf5, 0x74, 0x0f, 0x80, 0x17, 0x08, 0x22, 0xc1, 0x01, 0xff, 0xec, + 0x78, 0x0f, 0x80, 0x09, 0xf2, 0x76, 0x0f, 0xc0, 0x00, 0xf2, 0x77, 0x0f, + 0x40, 0xec, 0x79, 0x0f, 0x40, 0xf5, 0x75, 0x0f, 0x40, 0xe9, 0x81, 0x0f, + 0x40, 0xef, 0x7d, 0x0f, 0x40, 0xe9, 0x73, 0x0f, 0x40, 0xe5, 0x7b, 0x0f, + 0x40, 0x04, 0x5b, 0x03, 0xfd, 0x02, 0x09, 0xd6, 0x67, 0x4b, 0xb9, 0x01, + 0xff, 0x49, 0x9d, 0xbb, 0x00, 0x0f, 0x00, 0x05, 0x61, 0x16, 0x01, 0xff, + 0x47, 0x75, 0xd0, 0xc4, 0x0f, 0x00, 0x46, 0x6c, 0xde, 0xc9, 0x0f, 0x80, + 0x1b, 0xb0, 0x0d, 0x47, 0x3e, 0xd5, 0xc5, 0x0f, 0xc0, 0x00, 0x4a, 0x19, + 0xa6, 0xc7, 0x0f, 0x40, 0x49, 0xac, 0xb5, 0xc6, 0x0f, 0x00, 0x46, 0xa4, + 0xdc, 0xc8, 0x0f, 0x40, 0x80, 0x01, 0xff, 0x4b, 0xd1, 0x99, 0xcc, 0x0f, + 0x00, 0x4b, 0x91, 0x9c, 0xcb, 0x0f, 0x00, 0x4b, 0x6f, 0xa0, 0xca, 0x0f, + 0x40, 0x07, 0xec, 0x05, 0x17, 0x05, 0x5a, 0x03, 0x01, 0xff, 0x51, 0x3f, + 0x5b, 0x8f, 0x0f, 0x00, 0x4b, 0x54, 0x9e, 0x8d, 0x0f, 0x00, 0x48, 0x48, + 0x5b, 0x8e, 0x0f, 0x40, 0x42, 0xcf, 0x25, 0xb0, 0x0f, 0x00, 0xe1, 0xb8, + 0x0f, 0x00, 0xa2, 0xfc, 0x01, 0xa3, 0xef, 0x01, 0xa4, 0xc9, 0x01, 0x0b, + 0xf9, 0x82, 0xb2, 0x01, 0xa7, 0xa5, 0x01, 0x42, 0x22, 0x00, 0xb7, 0x0f, + 0x00, 0x42, 0x56, 0x19, 0x97, 0x0f, 0x00, 0xab, 0x86, 0x01, 0x42, 0x74, + 0x00, 0xb3, 0x0f, 0x00, 0x42, 0x6c, 0x00, 0xa8, 0x0f, 0x00, 0xae, 0x62, + 0xb0, 0x56, 0x42, 0x71, 0x00, 0xb2, 0x0f, 0x00, 0xb3, 0x3e, 0xb4, 0x19, + 0x42, 0xa9, 0x01, 0xad, 0x0f, 0x00, 0x42, 0xbc, 0x22, 0xb1, 0x0f, 0x00, + 0xba, 0x01, 0xff, 0xe1, 0xaf, 0x0f, 0x00, 0x42, 0x22, 0x00, 0xae, 0x0f, + 0x40, 0xe1, 0x9f, 0x0f, 0x00, 0x42, 0x22, 0x00, 0xa0, 0x0f, 0x00, 0xb3, + 0x0d, 0xb4, 0x01, 0xff, 0xe1, 0x9a, 0x0f, 0x00, 0x42, 0x22, 0x00, 0x9b, + 0x0f, 0x40, 0xe1, 0xa9, 0x0f, 0x00, 0x42, 0x22, 0x00, 0xaa, 0x0f, 0x40, + 0xe1, 0xb6, 0x0f, 0x00, 0x42, 0x22, 0x00, 0xb4, 0x0f, 0x00, 0x42, 0x40, + 0x06, 0xb5, 0x0f, 0x40, 0xe1, 0xa4, 0x0f, 0x00, 0x42, 0x22, 0x00, 0xa5, + 0x0f, 0x40, 0xe1, 0xa3, 0x0f, 0x00, 0x42, 0x24, 0x02, 0x94, 0x0f, 0x00, + 0x42, 0x2a, 0x05, 0x9e, 0x0f, 0x00, 0x42, 0xbc, 0x22, 0x99, 0x0f, 0x40, + 0xe1, 0x90, 0x0f, 0x00, 0x42, 0x22, 0x00, 0x91, 0x0f, 0x00, 0x43, 0xfb, + 0x20, 0xb9, 0x0f, 0x40, 0xe1, 0x92, 0x0f, 0x00, 0x42, 0x22, 0x00, 0x93, + 0x0f, 0x40, 0x42, 0x71, 0x00, 0xbc, 0x0f, 0x00, 0x42, 0xa9, 0x01, 0xba, + 0x0f, 0x00, 0x42, 0xbc, 0x22, 0xbb, 0x0f, 0x40, 0xe1, 0xa1, 0x0f, 0x00, + 0xa4, 0x13, 0x42, 0x22, 0x00, 0xa2, 0x0f, 0x00, 0xba, 0x01, 0xff, 0xe1, + 0xab, 0x0f, 0x00, 0x42, 0x22, 0x00, 0xac, 0x0f, 0x40, 0xe1, 0x9c, 0x0f, + 0x00, 0x42, 0x22, 0x00, 0x9d, 0x0f, 0x40, 0xe1, 0x95, 0x0f, 0x00, 0x42, + 0x22, 0x00, 0x96, 0x0f, 0x40, 0xe1, 0xa6, 0x0f, 0x00, 0x42, 0x22, 0x00, + 0xa7, 0x0f, 0x40, 0x04, 0x15, 0xf0, 0x90, 0x01, 0x51, 0x3f, 0x5b, 0x8c, + 0x0f, 0x00, 0x02, 0x61, 0x1f, 0x7a, 0xad, 0x6c, 0x4e, 0x23, 0x7a, 0x82, + 0x0f, 0x00, 0xb2, 0x17, 0x48, 0x10, 0xcb, 0x83, 0x0f, 0x00, 0x02, 0xbc, + 0x22, 0x01, 0xff, 0x48, 0xa8, 0xc8, 0x87, 0x0f, 0x00, 0x47, 0x71, 0xc3, + 0x3e, 0x0f, 0x40, 0x04, 0x80, 0xbe, 0x0c, 0x4d, 0xb3, 0x84, 0x7e, 0x0f, + 0x00, 0x48, 0xc0, 0x94, 0x7f, 0x0f, 0x40, 0x05, 0x97, 0xe5, 0x1f, 0x04, + 0x59, 0xf1, 0x01, 0xff, 0xa7, 0x06, 0x49, 0x7f, 0xbe, 0xce, 0x0f, 0x40, + 0x43, 0x0a, 0xf4, 0x1d, 0x0f, 0x00, 0x44, 0x6f, 0xa0, 0x1e, 0x0f, 0x00, + 0x43, 0x16, 0x56, 0xcf, 0x0f, 0x40, 0xa7, 0x06, 0x48, 0x40, 0xca, 0x1f, + 0x0f, 0x40, 0x43, 0x0a, 0xf4, 0x1a, 0x0f, 0x00, 0x44, 0x6f, 0xa0, 0x1b, + 0x0f, 0x00, 0x43, 0x16, 0x56, 0x1c, 0x0f, 0x40, 0x48, 0x70, 0xc3, 0x3f, + 0x0f, 0x00, 0x47, 0x49, 0x5b, 0x89, 0x0f, 0x40, 0x49, 0x56, 0x9e, 0x88, + 0x0f, 0x00, 0x47, 0xb7, 0xd1, 0x86, 0x0f, 0x40, 0x4b, 0xdc, 0x99, 0x8a, + 0x0f, 0x00, 0x4b, 0x67, 0x9f, 0x8b, 0x0f, 0x40, 0x0c, 0x4f, 0x8c, 0xb3, + 0x02, 0xa2, 0x88, 0x02, 0xa3, 0xd4, 0x01, 0x55, 0x1f, 0x3a, 0x0c, 0x0f, + 0x00, 0xa7, 0x95, 0x01, 0x47, 0x71, 0xd1, 0x84, 0x0f, 0x00, 0x02, 0x9e, + 0x01, 0x75, 0x53, 0xd4, 0x4a, 0xd9, 0x0f, 0x00, 0x56, 0xa5, 0x35, 0xd1, + 0x0f, 0x00, 0xae, 0x3f, 0x46, 0xfc, 0xde, 0x85, 0x0f, 0x00, 0xb2, 0x2b, + 0xb3, 0x1d, 0xb4, 0x06, 0x55, 0x5f, 0x3f, 0x07, 0x0f, 0x40, 0x53, 0x63, + 0x4c, 0xda, 0x0f, 0x00, 0xb3, 0x01, 0xff, 0x47, 0x76, 0xce, 0x39, 0x0f, + 0x00, 0x48, 0x69, 0x3f, 0x0f, 0x0f, 0x40, 0x49, 0xde, 0xb6, 0x08, 0x0f, + 0x00, 0x43, 0xa5, 0x02, 0x0d, 0x0f, 0x40, 0x4d, 0x6e, 0x83, 0x12, 0x0f, + 0x00, 0x53, 0x4f, 0x4a, 0x11, 0x0f, 0x40, 0x0a, 0xab, 0xaa, 0x18, 0x04, + 0x70, 0xa0, 0x01, 0xff, 0x44, 0xa4, 0x02, 0x0e, 0x0f, 0x00, 0x45, 0x29, + 0x3a, 0xd2, 0x0f, 0xc0, 0x00, 0x45, 0x4a, 0x04, 0x10, 0x0f, 0x40, 0x47, + 0x23, 0x7a, 0x35, 0x0f, 0x00, 0x4a, 0xeb, 0xb0, 0x37, 0x0f, 0x40, 0x06, + 0xba, 0x16, 0x06, 0x51, 0x4d, 0x5e, 0x0b, 0x0f, 0x40, 0x5b, 0x77, 0x1a, + 0xd3, 0x0f, 0x00, 0x4f, 0x83, 0x1a, 0x04, 0x0f, 0x40, 0x04, 0x08, 0x03, + 0x11, 0x0b, 0x2c, 0xa4, 0x01, 0xff, 0x42, 0xbb, 0x01, 0x3b, 0x0f, 0x00, + 0x42, 0x10, 0x00, 0x3a, 0x0f, 0x40, 0x45, 0x29, 0x3a, 0x14, 0x0f, 0x00, + 0x08, 0x83, 0x1a, 0x01, 0xff, 0x04, 0xd1, 0xec, 0x06, 0x4b, 0xdf, 0xa3, + 0x01, 0x0f, 0x40, 0x4d, 0x61, 0x83, 0x03, 0x0f, 0x00, 0x4c, 0xbf, 0x94, + 0x02, 0x0f, 0x40, 0x05, 0xe8, 0x99, 0x17, 0x46, 0x5c, 0xdc, 0x38, 0x0f, + 0x00, 0x07, 0x4f, 0x85, 0x01, 0xff, 0x5b, 0x92, 0x1a, 0xd4, 0x0f, 0x00, + 0x4f, 0x9e, 0x1a, 0x05, 0x0f, 0x40, 0x0c, 0xb3, 0x8b, 0x06, 0x54, 0x1c, + 0x47, 0x06, 0x0f, 0x40, 0x4c, 0x52, 0x7f, 0x36, 0x0f, 0x00, 0x4b, 0x5c, + 0x9f, 0x13, 0x0f, 0x40, 0x09, 0xf2, 0xba, 0x18, 0xb3, 0x01, 0xff, 0x49, + 0xec, 0xb7, 0x34, 0x0f, 0x00, 0xab, 0x01, 0xff, 0x54, 0x28, 0x40, 0xd0, + 0x0f, 0x00, 0x4a, 0xfd, 0xb2, 0x09, 0x0f, 0x40, 0x4c, 0xaf, 0x35, 0xd0, + 0x0f, 0x00, 0x47, 0x83, 0x1a, 0x0a, 0x0f, 0x40, 0x42, 0xbb, 0x01, 0x3d, + 0x0f, 0x00, 0x42, 0x10, 0x00, 0x3c, 0x0f, 0x40, 0x06, 0xed, 0x05, 0x11, + 0x0d, 0xbb, 0x86, 0x01, 0xff, 0x4a, 0x8f, 0xa8, 0x15, 0x0f, 0x00, 0x4a, + 0xf9, 0xac, 0x16, 0x0f, 0x40, 0x42, 0xcf, 0x25, 0x60, 0x0f, 0x00, 0xe1, + 0x68, 0x0f, 0x00, 0xa2, 0xf7, 0x01, 0xa3, 0xea, 0x01, 0xa4, 0xc4, 0x01, + 0x4d, 0xf9, 0x82, 0x6a, 0x0f, 0x00, 0xa7, 0xb1, 0x01, 0x42, 0x22, 0x00, + 0x67, 0x0f, 0x00, 0x42, 0x56, 0x19, 0x47, 0x0f, 0x00, 0xab, 0x8c, 0x01, + 0x42, 0x74, 0x00, 0x63, 0x0f, 0x00, 0x42, 0x6c, 0x00, 0x58, 0x0f, 0x00, + 0xae, 0x68, 0xb0, 0x5c, 0xb2, 0x50, 0xb3, 0x3e, 0xb4, 0x19, 0x42, 0xa9, + 0x01, 0x5d, 0x0f, 0x00, 0x42, 0xbc, 0x22, 0x61, 0x0f, 0x00, 0xba, 0x01, + 0xff, 0xe1, 0x5f, 0x0f, 0x00, 0x42, 0x22, 0x00, 0x5e, 0x0f, 0x40, 0xe1, + 0x4f, 0x0f, 0x00, 0x42, 0x22, 0x00, 0x50, 0x0f, 0x00, 0xb3, 0x0d, 0xb4, + 0x01, 0xff, 0xe1, 0x4a, 0x0f, 0x00, 0x42, 0x22, 0x00, 0x4b, 0x0f, 0x40, + 0xe1, 0x59, 0x0f, 0x00, 0x42, 0x22, 0x00, 0x5a, 0x0f, 0x40, 0xe1, 0x66, + 0x0f, 0x00, 0x42, 0x22, 0x00, 0x64, 0x0f, 0x00, 0x42, 0x40, 0x06, 0x65, + 0x0f, 0x40, 0xe1, 0x62, 0x0f, 0x00, 0x42, 0x71, 0x00, 0x6c, 0x0f, 0x40, + 0xe1, 0x54, 0x0f, 0x00, 0x42, 0x22, 0x00, 0x55, 0x0f, 0x40, 0xe1, 0x53, + 0x0f, 0x00, 0x42, 0x24, 0x02, 0x44, 0x0f, 0x00, 0x42, 0x2a, 0x05, 0x4e, + 0x0f, 0x00, 0x42, 0xbc, 0x22, 0x49, 0x0f, 0x40, 0xe1, 0x40, 0x0f, 0x00, + 0x42, 0x22, 0x00, 0x41, 0x0f, 0x00, 0x42, 0x1b, 0x02, 0x6b, 0x0f, 0x00, + 0x43, 0xfb, 0x20, 0x69, 0x0f, 0x40, 0xe1, 0x42, 0x0f, 0x00, 0x42, 0x22, + 0x00, 0x43, 0x0f, 0x40, 0xe1, 0x51, 0x0f, 0x00, 0xa4, 0x13, 0x42, 0x22, + 0x00, 0x52, 0x0f, 0x00, 0xba, 0x01, 0xff, 0xe1, 0x5b, 0x0f, 0x00, 0x42, + 0x22, 0x00, 0x5c, 0x0f, 0x40, 0xe1, 0x4c, 0x0f, 0x00, 0x42, 0x22, 0x00, + 0x4d, 0x0f, 0x40, 0xe1, 0x45, 0x0f, 0x00, 0x42, 0x22, 0x00, 0x46, 0x0f, + 0x40, 0xe1, 0x56, 0x0f, 0x00, 0x42, 0x22, 0x00, 0x57, 0x0f, 0x40, 0x4d, + 0x51, 0x7f, 0xbf, 0x0f, 0x40, 0x45, 0x12, 0x0b, 0x28, 0x0f, 0x00, 0xa6, + 0x74, 0x05, 0x22, 0x00, 0x2e, 0x44, 0xcf, 0x2a, 0x29, 0x0f, 0x00, 0x43, + 0x0e, 0x0b, 0x21, 0x0f, 0x00, 0xb3, 0x14, 0xb4, 0x06, 0x44, 0x43, 0x1e, + 0x20, 0x0f, 0x40, 0x44, 0x25, 0x01, 0x23, 0x0f, 0x00, 0x42, 0x15, 0x02, + 0x22, 0x0f, 0x40, 0x44, 0xc9, 0x1d, 0x27, 0x0f, 0x00, 0x42, 0x01, 0x26, + 0x26, 0x0f, 0x40, 0x45, 0x12, 0x0b, 0x31, 0x0f, 0x00, 0xa6, 0x2e, 0x44, + 0xcf, 0x2a, 0x32, 0x0f, 0x00, 0x43, 0x0e, 0x0b, 0x2a, 0x0f, 0x00, 0xb3, + 0x14, 0xb4, 0x06, 0x44, 0x43, 0x1e, 0x33, 0x0f, 0x40, 0x44, 0x25, 0x01, + 0x2c, 0x0f, 0x00, 0x42, 0x15, 0x02, 0x2b, 0x0f, 0x40, 0x44, 0xc9, 0x1d, + 0x30, 0x0f, 0x00, 0x42, 0x01, 0x26, 0x2f, 0x0f, 0x40, 0x43, 0xd2, 0x05, + 0x2e, 0x0f, 0x00, 0x43, 0xf6, 0x06, 0x2d, 0x0f, 0x40, 0x43, 0xd2, 0x05, + 0x25, 0x0f, 0x00, 0x43, 0xf6, 0x06, 0x24, 0x0f, 0x40, 0x49, 0xf0, 0xb6, + 0xc2, 0x0f, 0x00, 0x4a, 0x23, 0xab, 0xc0, 0x0f, 0x00, 0x4a, 0x03, 0xad, + 0xc1, 0x0f, 0x00, 0x4a, 0xc3, 0xb0, 0xc3, 0x0f, 0x40, 0x49, 0x13, 0xb5, + 0x18, 0x0f, 0x00, 0xb3, 0x01, 0xff, 0x4b, 0x1b, 0x9b, 0x19, 0x0f, 0x00, + 0x54, 0x94, 0x42, 0x17, 0x0f, 0x40, 0xa1, 0xbd, 0x02, 0xa5, 0x8b, 0x02, + 0xa9, 0xe3, 0x01, 0xaf, 0xd4, 0x01, 0x03, 0x26, 0x01, 0x24, 0xb5, 0x01, + 0xff, 0x04, 0x31, 0x91, 0x11, 0x04, 0xd4, 0x1a, 0x01, 0xff, 0x4f, 0x24, + 0x69, 0xc8, 0x26, 0x00, 0x45, 0x1e, 0xeb, 0x08, 0x26, 0x40, 0x49, 0xc8, + 0xb7, 0x4e, 0xf4, 0x01, 0x47, 0xdb, 0xd6, 0x4d, 0xf4, 0x41, 0x80, 0x41, + 0x8d, 0x01, 0xff, 0x02, 0x06, 0x00, 0x0c, 0x47, 0xc1, 0xc2, 0x3b, 0x2e, + 0x00, 0x4c, 0x2f, 0x80, 0x04, 0x20, 0x40, 0x63, 0xb5, 0x0a, 0xa3, 0x27, + 0x00, 0x6c, 0xbe, 0x01, 0x9b, 0x2b, 0x00, 0x6b, 0x42, 0x02, 0x99, 0x2b, + 0x00, 0x0c, 0xf7, 0x95, 0x01, 0xff, 0x5f, 0x4e, 0x11, 0x98, 0x2b, 0x00, + 0x0b, 0xb3, 0x02, 0x01, 0xff, 0x49, 0xe1, 0x01, 0xa2, 0x27, 0x00, 0x55, + 0xd5, 0x01, 0x9a, 0x2b, 0x40, 0x4c, 0x03, 0x8d, 0xb1, 0xf5, 0x01, 0x58, + 0xc6, 0x27, 0x76, 0x2a, 0x00, 0xa4, 0x4f, 0xac, 0x36, 0x53, 0x92, 0x4b, + 0xa7, 0xf5, 0x01, 0x52, 0xec, 0x2b, 0xc2, 0xf7, 0x01, 0xb2, 0x06, 0x4e, + 0x6f, 0x7c, 0xeb, 0xf5, 0x41, 0x04, 0xf5, 0x45, 0x06, 0x50, 0x45, 0x2f, + 0xf6, 0x21, 0x40, 0x45, 0x5c, 0x00, 0xe4, 0xf5, 0x01, 0x45, 0x20, 0x07, + 0xe5, 0xf5, 0x01, 0x44, 0xc3, 0x00, 0xe6, 0xf5, 0x01, 0x45, 0xc8, 0x00, + 0xe7, 0xf5, 0x41, 0x4f, 0x2b, 0x3e, 0x31, 0x2b, 0x00, 0x10, 0x06, 0x64, + 0x01, 0xff, 0x44, 0xc3, 0x00, 0x9f, 0x26, 0x00, 0x45, 0xc8, 0x00, 0x9e, + 0x26, 0x40, 0x50, 0xd6, 0x63, 0xc0, 0x27, 0x00, 0x4e, 0x04, 0x0c, 0x56, + 0x20, 0x40, 0x49, 0x48, 0xbc, 0x74, 0xfa, 0x01, 0x4c, 0x3f, 0x96, 0xad, + 0xf4, 0x41, 0xae, 0x06, 0x4e, 0x73, 0x7b, 0x49, 0xf9, 0x41, 0x80, 0x06, + 0x49, 0x74, 0xb0, 0x14, 0xf9, 0x41, 0x4b, 0x1b, 0x61, 0xa1, 0xf7, 0x01, + 0xb3, 0x01, 0xff, 0x46, 0x13, 0x19, 0xa8, 0xf7, 0x01, 0x44, 0xd1, 0x4c, + 0x09, 0x20, 0x40, 0xb2, 0x06, 0x43, 0x2c, 0x46, 0xca, 0xce, 0x41, 0xa5, + 0x11, 0x02, 0xc3, 0x07, 0x01, 0xff, 0x47, 0x83, 0xd0, 0xe7, 0x29, 0x00, + 0x45, 0x32, 0xab, 0x21, 0xf3, 0x41, 0x80, 0x06, 0x44, 0x97, 0x62, 0x34, + 0x22, 0x40, 0x4e, 0x05, 0x77, 0x04, 0x22, 0x00, 0x46, 0x9c, 0xdb, 0x03, + 0x22, 0x40, 0x04, 0x4b, 0x12, 0xfc, 0x04, 0x02, 0xf1, 0x03, 0x01, 0xff, + 0xa3, 0x47, 0x06, 0xef, 0x06, 0x01, 0xff, 0x45, 0x12, 0x0b, 0x58, 0x0e, + 0x00, 0xa6, 0x2e, 0x44, 0xcf, 0x2a, 0x59, 0x0e, 0x00, 0x43, 0x0e, 0x0b, + 0x51, 0x0e, 0x00, 0xb3, 0x14, 0xb4, 0x06, 0x44, 0x43, 0x1e, 0x50, 0x0e, + 0x40, 0x44, 0x25, 0x01, 0x53, 0x0e, 0x00, 0x42, 0x15, 0x02, 0x52, 0x0e, + 0x40, 0x44, 0xc9, 0x1d, 0x57, 0x0e, 0x00, 0x42, 0x01, 0x26, 0x56, 0x0e, + 0x40, 0x43, 0xd2, 0x05, 0x55, 0x0e, 0x00, 0x43, 0xf6, 0x06, 0x54, 0x0e, + 0x40, 0x09, 0x05, 0x41, 0x06, 0x53, 0x51, 0x4e, 0x3f, 0x0e, 0x40, 0x4a, + 0xc7, 0xa7, 0x5a, 0x0e, 0x00, 0x49, 0xc3, 0xb6, 0x1a, 0x0e, 0x00, 0x06, + 0x9a, 0xda, 0xfc, 0x03, 0x03, 0x39, 0x66, 0xeb, 0x03, 0x02, 0x68, 0x03, + 0xd5, 0x03, 0x03, 0xd4, 0x71, 0xc4, 0x03, 0xab, 0x8d, 0x03, 0xac, 0xf0, + 0x02, 0xad, 0xb4, 0x02, 0xae, 0x96, 0x02, 0x45, 0x57, 0xe9, 0x2d, 0x0e, + 0x00, 0xb0, 0xde, 0x01, 0xb2, 0xd1, 0x01, 0xb3, 0x69, 0xb4, 0x20, 0x47, + 0x98, 0xd7, 0x27, 0x0e, 0x00, 0xb9, 0x01, 0xff, 0x47, 0xc1, 0xcc, 0x4e, + 0x0e, 0x00, 0x03, 0x82, 0xe1, 0x01, 0xff, 0x42, 0x6d, 0x00, 0x22, 0x0e, + 0x00, 0x43, 0xa1, 0x01, 0x0d, 0x0e, 0x40, 0xa8, 0x11, 0x02, 0x7b, 0x02, + 0x01, 0xff, 0x45, 0xc0, 0xe9, 0x0f, 0x0e, 0x00, 0x43, 0xd8, 0x18, 0x15, + 0x0e, 0x40, 0x49, 0x33, 0xb6, 0x4c, 0x0e, 0x00, 0x02, 0x7b, 0x02, 0x01, + 0xff, 0x4a, 0x39, 0xae, 0x11, 0x0e, 0x00, 0x47, 0xb9, 0xd4, 0x12, 0x0e, + 0x00, 0x02, 0x53, 0x00, 0x01, 0xff, 0xa1, 0x0c, 0x43, 0xd8, 0x02, 0x18, + 0x0e, 0x00, 0x43, 0xaa, 0x45, 0x16, 0x0e, 0x40, 0x43, 0x90, 0x00, 0x17, + 0x0e, 0x00, 0xee, 0x10, 0x0e, 0x40, 0x04, 0x41, 0x16, 0x1e, 0x02, 0x7b, + 0x02, 0x01, 0xff, 0x44, 0x81, 0xf2, 0x29, 0x0e, 0x00, 0xb3, 0x01, 0xff, + 0x43, 0x4d, 0x19, 0x28, 0x0e, 0x00, 0xef, 0x0b, 0x0e, 0x00, 0x42, 0x7d, + 0x00, 0x2a, 0x0e, 0x40, 0xe1, 0x30, 0x0e, 0x80, 0x23, 0xe5, 0x40, 0x0e, + 0x00, 0xe9, 0x34, 0x0e, 0x80, 0x16, 0xef, 0x42, 0x0e, 0x00, 0xf5, 0x38, + 0x0e, 0xc0, 0x00, 0xe5, 0x36, 0x0e, 0x80, 0x04, 0xf5, 0x39, 0x0e, 0x40, + 0xe5, 0x37, 0x0e, 0x40, 0xe9, 0x35, 0x0e, 0x40, 0xe1, 0x32, 0x0e, 0x00, + 0xe5, 0x41, 0x0e, 0x00, 0x06, 0xb0, 0xdc, 0x04, 0xed, 0x33, 0x0e, 0x40, + 0x44, 0xf1, 0xee, 0x44, 0x0e, 0x00, 0x43, 0x53, 0xa1, 0x43, 0x0e, 0x40, + 0x45, 0x6b, 0xe9, 0x23, 0x0e, 0x00, 0xf5, 0x24, 0x0e, 0x40, 0x48, 0x38, + 0xc3, 0x2f, 0x0e, 0x00, 0xa8, 0x06, 0x45, 0x66, 0xe9, 0x1b, 0x0e, 0x40, + 0x45, 0x81, 0xe7, 0x3a, 0x0e, 0x00, 0x02, 0x7b, 0x02, 0x01, 0xff, 0x02, + 0x84, 0x10, 0x06, 0x47, 0x99, 0xd5, 0x20, 0x0e, 0x40, 0x42, 0x1a, 0x00, + 0x1e, 0x0e, 0x00, 0x43, 0xaa, 0x45, 0x1c, 0x0e, 0x40, 0x46, 0x1a, 0xdc, + 0x07, 0x0e, 0x00, 0x47, 0xe1, 0xd1, 0x4d, 0x0e, 0x00, 0x03, 0x1b, 0xdc, + 0x01, 0xff, 0x42, 0x92, 0x01, 0x13, 0x0e, 0x00, 0xf5, 0x19, 0x0e, 0x40, + 0x02, 0x56, 0x07, 0x06, 0x44, 0xbe, 0x4d, 0x21, 0x0e, 0x40, 0x80, 0x0c, + 0x46, 0x58, 0xe0, 0x47, 0x0e, 0x00, 0x45, 0x86, 0xec, 0x46, 0x0e, 0x40, + 0x48, 0xa0, 0xc4, 0x4b, 0x0e, 0x00, 0x42, 0xd5, 0x18, 0x48, 0x0e, 0x00, + 0x48, 0x98, 0xc6, 0x31, 0x0e, 0x00, 0xb4, 0x01, 0xff, 0x42, 0x0b, 0x00, + 0x49, 0x0e, 0x00, 0x42, 0x0d, 0x00, 0x4a, 0x0e, 0x40, 0x4a, 0x8b, 0xa7, + 0x45, 0x0e, 0x00, 0x02, 0x7b, 0x02, 0x04, 0xf5, 0x26, 0x0e, 0x40, 0x45, + 0x38, 0xe5, 0x2c, 0x0e, 0x00, 0x44, 0x2f, 0x0b, 0x25, 0x0e, 0x40, 0x02, + 0x0b, 0x00, 0x06, 0x45, 0x61, 0xe9, 0x01, 0x0e, 0x40, 0x80, 0x06, 0x43, + 0x0b, 0xac, 0x5b, 0x0e, 0x40, 0x02, 0x60, 0x0c, 0x06, 0x47, 0x1b, 0xd5, + 0x06, 0x0e, 0x40, 0x42, 0x56, 0x07, 0x02, 0x0e, 0x00, 0x42, 0x10, 0x00, + 0x05, 0x0e, 0x00, 0x43, 0x0c, 0x0c, 0x03, 0x0e, 0x00, 0x43, 0xd1, 0x10, + 0x04, 0x0e, 0x40, 0x43, 0x5c, 0x0d, 0x2b, 0x0e, 0x00, 0x46, 0x66, 0xde, + 0x2e, 0x0e, 0x40, 0x43, 0x0b, 0x08, 0x1d, 0x0e, 0x80, 0x06, 0x45, 0x11, + 0xe9, 0x4f, 0x0e, 0x40, 0xee, 0x1f, 0x0e, 0x40, 0x45, 0x1f, 0xe5, 0x0e, + 0x0e, 0x00, 0x43, 0xd4, 0x18, 0x14, 0x0e, 0x40, 0x42, 0x1a, 0x00, 0x08, + 0x0e, 0x80, 0x0c, 0x43, 0xa1, 0x01, 0x09, 0x0e, 0x00, 0x42, 0x60, 0x51, + 0x0c, 0x0e, 0x40, 0xe7, 0x0a, 0x0e, 0x40, 0xa1, 0xc6, 0x02, 0xa5, 0xb1, + 0x02, 0x47, 0xc5, 0xd1, 0xa8, 0x07, 0x00, 0x07, 0xec, 0x05, 0x20, 0xaf, + 0x0c, 0x45, 0x23, 0xeb, 0xb0, 0x07, 0x00, 0x47, 0xaa, 0xd6, 0xaa, 0x07, + 0x40, 0x48, 0x20, 0xc3, 0xaf, 0x07, 0x00, 0x46, 0x3a, 0xda, 0xae, 0x07, + 0x00, 0x48, 0xf0, 0xc8, 0xab, 0x07, 0x40, 0xa1, 0xf8, 0x01, 0x43, 0x89, + 0x50, 0x84, 0x07, 0x00, 0x49, 0x2f, 0xb7, 0x97, 0x07, 0x00, 0xa4, 0xd5, + 0x01, 0x45, 0x55, 0xe6, 0x8a, 0x07, 0x00, 0xa7, 0xba, 0x01, 0xa8, 0xab, + 0x01, 0x48, 0x58, 0xc7, 0x96, 0x07, 0x00, 0xab, 0x96, 0x01, 0xac, 0x87, + 0x01, 0x45, 0x80, 0xe8, 0x89, 0x07, 0x00, 0xae, 0x73, 0x48, 0xd8, 0xc9, + 0x95, 0x07, 0x00, 0x45, 0x1a, 0xea, 0xa4, 0x07, 0x00, 0x43, 0x8f, 0x95, + 0x83, 0x07, 0x00, 0xb3, 0x44, 0xb4, 0x25, 0x45, 0x0e, 0xec, 0x88, 0x07, + 0x00, 0x45, 0x31, 0xec, 0xa5, 0x07, 0x00, 0x43, 0xb1, 0xb9, 0x94, 0x07, + 0x00, 0xba, 0x01, 0xff, 0xa1, 0x04, 0xef, 0xa1, 0x07, 0x40, 0xe1, 0x9c, + 0x07, 0x00, 0x46, 0x32, 0xb7, 0x92, 0x07, 0x40, 0x47, 0x31, 0xb7, 0x93, + 0x07, 0x00, 0x43, 0x3b, 0x41, 0x8c, 0x07, 0x80, 0x0a, 0xef, 0xa0, 0x07, + 0x00, 0x43, 0x7f, 0x12, 0x98, 0x07, 0x40, 0x42, 0xc7, 0x15, 0x9b, 0x07, + 0x40, 0x45, 0xf8, 0xe3, 0x9e, 0x07, 0x00, 0x44, 0x9d, 0xef, 0x90, 0x07, + 0x00, 0xa8, 0x01, 0xff, 0x47, 0x31, 0xb7, 0x81, 0x07, 0x00, 0x44, 0x9d, + 0xef, 0x9d, 0x07, 0x40, 0x42, 0x80, 0x12, 0xb1, 0x07, 0x00, 0x44, 0x48, + 0x96, 0x82, 0x07, 0x40, 0x44, 0x69, 0x89, 0x8d, 0x07, 0x00, 0x48, 0x30, + 0xb7, 0x85, 0x07, 0x40, 0x44, 0x56, 0xe6, 0x86, 0x07, 0x00, 0x43, 0x3b, + 0x41, 0x9a, 0x07, 0x40, 0x42, 0x80, 0x12, 0x80, 0x07, 0x00, 0x43, 0x3b, + 0x41, 0x99, 0x07, 0x40, 0x44, 0x56, 0xe6, 0x8e, 0x07, 0x00, 0x45, 0xcd, + 0xe6, 0xa3, 0x07, 0x00, 0x48, 0x88, 0xc8, 0x8f, 0x07, 0x40, 0xa1, 0x06, + 0x45, 0xc3, 0xe6, 0x8b, 0x07, 0x40, 0x44, 0xf9, 0xe3, 0x9f, 0x07, 0x00, + 0x46, 0x32, 0xb7, 0x91, 0x07, 0x40, 0x43, 0xcc, 0x1a, 0xa2, 0x07, 0x00, + 0x44, 0x05, 0xf1, 0x87, 0x07, 0x40, 0x46, 0x16, 0xda, 0xac, 0x07, 0x00, + 0x48, 0x68, 0xc5, 0xa9, 0x07, 0x00, 0x48, 0xc8, 0xcc, 0xad, 0x07, 0x40, + 0x48, 0x18, 0xc3, 0xa7, 0x07, 0x00, 0x46, 0x0a, 0xda, 0xa6, 0x07, 0x40, + 0xa1, 0xbf, 0x0a, 0x48, 0x08, 0xc5, 0xf8, 0xf9, 0x01, 0xac, 0xea, 0x04, + 0xae, 0xd7, 0x04, 0x47, 0xfb, 0xd5, 0xea, 0xf9, 0x01, 0x0c, 0x03, 0x96, + 0x01, 0xff, 0xa1, 0xb1, 0x04, 0xa2, 0x9c, 0x04, 0xa3, 0xc4, 0x03, 0xa4, + 0xff, 0x02, 0xa5, 0xd0, 0x02, 0xa6, 0xa2, 0x02, 0xa7, 0x80, 0x02, 0xa8, + 0xf1, 0x01, 0x02, 0x9e, 0x01, 0xe0, 0x01, 0x43, 0xb8, 0x95, 0x1d, 0xd3, + 0x01, 0xab, 0xcb, 0x01, 0xac, 0xb4, 0x01, 0xad, 0x9f, 0x01, 0xaf, 0x90, + 0x01, 0xb0, 0x74, 0xb2, 0x47, 0xb3, 0x22, 0x45, 0xdc, 0xeb, 0x3b, 0xd3, + 0x01, 0x53, 0x9d, 0x4e, 0x37, 0xd3, 0x01, 0x02, 0xa9, 0x01, 0x06, 0x4c, + 0x47, 0x97, 0x11, 0xd3, 0x41, 0x45, 0x8c, 0x84, 0x17, 0xd3, 0x01, 0x43, + 0x96, 0x21, 0x44, 0xd3, 0x41, 0x48, 0x08, 0xc6, 0x4b, 0xd3, 0x01, 0x46, + 0x48, 0x91, 0x45, 0xd3, 0x01, 0xb4, 0x01, 0xff, 0xaf, 0x06, 0x46, 0x86, + 0xdf, 0x29, 0xd3, 0x41, 0x45, 0x0b, 0xea, 0x4c, 0xd3, 0x01, 0x42, 0x32, + 0x00, 0x31, 0xd3, 0x41, 0xa5, 0x06, 0x45, 0x9f, 0xe7, 0x35, 0xd3, 0x41, + 0x43, 0x8c, 0x2d, 0x14, 0xd3, 0x01, 0x45, 0x26, 0xe8, 0x1a, 0xd3, 0x01, + 0xb3, 0x01, 0xff, 0xa9, 0x06, 0x45, 0x06, 0xea, 0x2e, 0xd3, 0x41, 0x45, + 0x83, 0xe5, 0x2c, 0xd3, 0x01, 0x46, 0x10, 0xe0, 0x1b, 0xd3, 0x41, 0xa1, + 0x0c, 0x4a, 0xed, 0xa9, 0x13, 0xd3, 0x01, 0x45, 0xf0, 0xeb, 0x2a, 0xd3, + 0x41, 0x45, 0x79, 0x67, 0x24, 0xd3, 0x01, 0x45, 0x65, 0x91, 0x34, 0xd3, + 0x41, 0x4b, 0xd5, 0x9f, 0x53, 0xd3, 0x01, 0x49, 0x2e, 0xbe, 0x0d, 0xd3, + 0x41, 0x46, 0xf2, 0xd9, 0x40, 0xd3, 0x01, 0x46, 0x72, 0x18, 0x39, 0xd3, + 0x01, 0x44, 0x66, 0x87, 0x08, 0xd3, 0x41, 0xa1, 0x06, 0x45, 0xce, 0xe5, + 0x25, 0xd3, 0x41, 0x47, 0xaa, 0xcf, 0x55, 0xd3, 0x01, 0x4a, 0x61, 0xb3, + 0x2d, 0xd3, 0x41, 0x4c, 0x5f, 0x8e, 0x0a, 0xd3, 0x01, 0x46, 0x04, 0xdd, + 0x27, 0xd3, 0x41, 0x46, 0xbe, 0xda, 0x12, 0xd3, 0x01, 0x43, 0x20, 0x0b, + 0x46, 0xd3, 0x41, 0x47, 0xfb, 0xce, 0x4d, 0xd3, 0x01, 0x4b, 0x4c, 0x52, + 0x16, 0xd3, 0x41, 0x48, 0x64, 0x58, 0x28, 0xd3, 0x81, 0x12, 0x4c, 0x0f, + 0x93, 0x2f, 0xd3, 0x01, 0x48, 0x48, 0xca, 0x32, 0xd3, 0x01, 0x4a, 0x85, + 0xb2, 0x3e, 0xd3, 0x41, 0x43, 0x08, 0x06, 0x3f, 0xd3, 0x41, 0x46, 0x98, + 0xd9, 0x50, 0xd3, 0x01, 0x45, 0xc3, 0x01, 0x36, 0xd3, 0x01, 0xaf, 0x11, + 0x03, 0x82, 0x16, 0x01, 0xff, 0x47, 0x11, 0x03, 0x07, 0xd3, 0x01, 0x44, + 0x22, 0x24, 0x2b, 0xd3, 0x41, 0x47, 0x21, 0xc9, 0x18, 0xd3, 0x01, 0x47, + 0x02, 0xd6, 0x56, 0xd3, 0x41, 0x43, 0x9a, 0x35, 0x1c, 0xd3, 0x01, 0x4c, + 0xd7, 0x91, 0x42, 0xd3, 0x01, 0xae, 0x0c, 0x47, 0xef, 0x32, 0x3a, 0xd3, + 0x01, 0x49, 0x7c, 0xc1, 0x4a, 0xd3, 0x41, 0x48, 0xd0, 0xc4, 0x30, 0xd3, + 0x01, 0x47, 0x4b, 0xd0, 0x1f, 0xd3, 0x01, 0x49, 0x4c, 0xbb, 0x33, 0xd3, + 0x41, 0x48, 0x62, 0x39, 0x48, 0xd3, 0x01, 0xa5, 0x28, 0xa9, 0x0c, 0x44, + 0xed, 0xf1, 0x43, 0xd3, 0x01, 0x45, 0xff, 0xeb, 0x20, 0xd3, 0x41, 0x4a, + 0x51, 0xaa, 0x54, 0xd3, 0x01, 0xad, 0x06, 0x48, 0x40, 0xcc, 0x10, 0xd3, + 0x41, 0x49, 0xa1, 0xba, 0x3c, 0xd3, 0x01, 0x44, 0xca, 0x61, 0x49, 0xd3, + 0x41, 0x4a, 0xb7, 0xa8, 0x22, 0xd3, 0x01, 0x59, 0x1b, 0x24, 0x0f, 0xd3, + 0x01, 0x47, 0xaf, 0xb7, 0x47, 0xd3, 0x41, 0x45, 0x74, 0x02, 0x06, 0xd3, + 0x01, 0x45, 0x13, 0xc6, 0x21, 0xd3, 0x01, 0x03, 0xa3, 0x0d, 0x31, 0xaf, + 0x01, 0xff, 0x03, 0x9e, 0x62, 0x1e, 0xae, 0x01, 0xff, 0x46, 0x16, 0xe0, + 0x38, 0xd3, 0x01, 0xb4, 0x01, 0xff, 0x43, 0xef, 0x0c, 0x15, 0xd3, 0x01, + 0x46, 0x0b, 0x83, 0x1e, 0xd3, 0x01, 0x47, 0x29, 0xd5, 0x0b, 0xd3, 0x41, + 0x45, 0xa1, 0x62, 0x4e, 0xd3, 0x01, 0x45, 0x43, 0xc3, 0x52, 0xd3, 0x41, + 0xa5, 0x06, 0x43, 0x75, 0x18, 0x4f, 0xd3, 0x41, 0x47, 0x80, 0x8d, 0x3d, + 0xd3, 0x01, 0x44, 0x22, 0x24, 0x26, 0xd3, 0x41, 0x46, 0x25, 0x6a, 0x09, + 0xd3, 0x01, 0x4e, 0x3f, 0x7a, 0x23, 0xd3, 0x01, 0x4c, 0x23, 0x94, 0x0e, + 0xd3, 0x41, 0x4b, 0xf2, 0x99, 0x41, 0xd3, 0x01, 0x46, 0x0c, 0xdb, 0x19, + 0xd3, 0x01, 0x4a, 0xc9, 0xaa, 0x51, 0xd3, 0x01, 0x45, 0x43, 0x41, 0x0c, + 0xd3, 0x41, 0x47, 0xe0, 0x96, 0xb8, 0x20, 0x00, 0x54, 0x74, 0x44, 0xbe, + 0xf3, 0x01, 0xf4, 0xfa, 0x26, 0x40, 0xa5, 0x90, 0x05, 0x04, 0xcd, 0xf2, + 0x01, 0xff, 0xa1, 0xfc, 0x04, 0x06, 0xef, 0x06, 0xb5, 0x04, 0x0f, 0x6b, + 0x6d, 0xf7, 0x03, 0x02, 0x68, 0x00, 0x9c, 0x01, 0x05, 0x5a, 0x03, 0x4e, + 0x0b, 0x40, 0x77, 0x01, 0xff, 0xa1, 0x3b, 0xe5, 0x46, 0x0c, 0x80, 0x32, + 0xe9, 0x3f, 0x0c, 0x80, 0x29, 0xef, 0x4a, 0x0c, 0x80, 0x20, 0xf5, 0x41, + 0x0c, 0x80, 0x17, 0x08, 0x22, 0xc1, 0x01, 0xff, 0xec, 0x62, 0x0c, 0x80, + 0x09, 0xf2, 0x43, 0x0c, 0xc0, 0x00, 0xf2, 0x44, 0x0c, 0x40, 0xec, 0x63, + 0x0c, 0x40, 0xf5, 0x42, 0x0c, 0x40, 0xef, 0x4b, 0x0c, 0x40, 0xe9, 0x40, + 0x0c, 0x40, 0xe5, 0x47, 0x0c, 0x40, 0xe1, 0x3e, 0x0c, 0x00, 0xe9, 0x48, + 0x0c, 0x00, 0xf5, 0x4c, 0x0c, 0x40, 0xa1, 0x3c, 0xa3, 0x23, 0x45, 0x3f, + 0x3f, 0x3c, 0x0c, 0x00, 0x47, 0xd8, 0xd5, 0x77, 0x0c, 0x00, 0x45, 0xa5, + 0xeb, 0x7f, 0x0c, 0x00, 0x02, 0x02, 0x00, 0x01, 0xff, 0x44, 0xe5, 0x23, + 0x4d, 0x0c, 0x00, 0x45, 0xec, 0x4b, 0x03, 0x0c, 0x40, 0x4a, 0xd8, 0x23, + 0x01, 0x0c, 0x00, 0x09, 0x33, 0x16, 0x01, 0xff, 0x4e, 0x3c, 0x16, 0x04, + 0x0c, 0x00, 0x51, 0x0e, 0x59, 0x00, 0x0c, 0x40, 0x47, 0x3d, 0x16, 0x02, + 0x0c, 0x00, 0x47, 0xaf, 0x88, 0x3d, 0x0c, 0x40, 0x49, 0x44, 0x39, 0x55, + 0x0c, 0x00, 0x05, 0xee, 0x05, 0x01, 0xff, 0xe1, 0x05, 0x0c, 0x80, 0xb9, + 0x02, 0xa2, 0xac, 0x02, 0xa3, 0x9f, 0x02, 0xa4, 0x80, 0x02, 0xe5, 0x0e, + 0x0c, 0x80, 0xf6, 0x01, 0xa7, 0xe9, 0x01, 0x42, 0x22, 0x00, 0x39, 0x0c, + 0x00, 0xe9, 0x07, 0x0c, 0x80, 0xd9, 0x01, 0xaa, 0xcc, 0x01, 0xab, 0xbf, + 0x01, 0xac, 0xab, 0x01, 0x42, 0x6c, 0x00, 0x2e, 0x0c, 0x00, 0xae, 0x85, + 0x01, 0xef, 0x12, 0x0c, 0x80, 0x7c, 0xb0, 0x70, 0xb2, 0x5d, 0xb3, 0x4b, + 0xb4, 0x2c, 0xf5, 0x09, 0x0c, 0x80, 0x23, 0xb6, 0x06, 0x42, 0xbc, 0x22, + 0x2f, 0x0c, 0x40, 0xe1, 0x35, 0x0c, 0x00, 0x07, 0x23, 0xc1, 0x01, 0xff, + 0xec, 0x0c, 0x0c, 0x80, 0x09, 0xf2, 0x0b, 0x0c, 0xc0, 0x00, 0xf2, 0x60, + 0x0c, 0x40, 0xec, 0x61, 0x0c, 0x40, 0xf5, 0x0a, 0x0c, 0x40, 0xe1, 0x24, + 0x0c, 0x00, 0x42, 0x22, 0x00, 0x25, 0x0c, 0x00, 0x42, 0x40, 0x06, 0x58, + 0x0c, 0x00, 0xb4, 0x01, 0xff, 0xe1, 0x1f, 0x0c, 0x00, 0x42, 0x22, 0x00, + 0x20, 0x0c, 0x40, 0xe1, 0x38, 0x0c, 0x00, 0x42, 0x22, 0x00, 0x36, 0x0c, + 0x00, 0x42, 0x40, 0x06, 0x37, 0x0c, 0x40, 0xe1, 0x30, 0x0c, 0x00, 0xb2, + 0x01, 0xff, 0xe1, 0x31, 0x0c, 0x00, 0x42, 0x71, 0x00, 0x5a, 0x0c, 0x40, + 0xe1, 0x2a, 0x0c, 0x00, 0x42, 0x22, 0x00, 0x2b, 0x0c, 0x40, 0xef, 0x13, + 0x0c, 0x40, 0xe1, 0x28, 0x0c, 0x80, 0x12, 0x42, 0x24, 0x02, 0x19, 0x0c, + 0x00, 0x42, 0x2a, 0x05, 0x23, 0x0c, 0x00, 0x42, 0xbc, 0x22, 0x1e, 0x0c, + 0x40, 0x4b, 0xfc, 0x9d, 0x5d, 0x0c, 0x40, 0xe1, 0x32, 0x0c, 0x00, 0xac, + 0x01, 0xff, 0xe1, 0x33, 0x0c, 0x00, 0x42, 0x74, 0x00, 0x34, 0x0c, 0x40, + 0xe1, 0x15, 0x0c, 0x00, 0x42, 0x22, 0x00, 0x16, 0x0c, 0x40, 0xe1, 0x1c, + 0x0c, 0x00, 0x42, 0x22, 0x00, 0x1d, 0x0c, 0x40, 0xe9, 0x08, 0x0c, 0x40, + 0xe1, 0x17, 0x0c, 0x00, 0x42, 0x22, 0x00, 0x18, 0x0c, 0x40, 0xe5, 0x0f, + 0x0c, 0x40, 0xe1, 0x26, 0x0c, 0x00, 0xa4, 0x0c, 0x42, 0x22, 0x00, 0x27, + 0x0c, 0x00, 0x42, 0x59, 0x00, 0x59, 0x0c, 0x40, 0xe1, 0x21, 0x0c, 0x00, + 0x42, 0x22, 0x00, 0x22, 0x0c, 0x40, 0xe1, 0x1a, 0x0c, 0x00, 0x42, 0x22, + 0x00, 0x1b, 0x0c, 0x40, 0xe1, 0x2c, 0x0c, 0x00, 0x42, 0x22, 0x00, 0x2d, + 0x0c, 0x40, 0xe1, 0x06, 0x0c, 0x00, 0xe9, 0x10, 0x0c, 0x00, 0xf5, 0x14, + 0x0c, 0x40, 0x08, 0x50, 0xc9, 0x29, 0xb4, 0x06, 0x5b, 0x43, 0x1e, 0x78, + 0x0c, 0x40, 0x09, 0xc9, 0xb9, 0x11, 0x07, 0x8a, 0xd7, 0x01, 0xff, 0x53, + 0x58, 0x49, 0x7d, 0x0c, 0x00, 0x52, 0x4c, 0x1e, 0x7a, 0x0c, 0x40, 0x53, + 0x58, 0x49, 0x7e, 0x0c, 0x00, 0x52, 0x4c, 0x1e, 0x7b, 0x0c, 0x40, 0x53, + 0x58, 0x49, 0x7c, 0x0c, 0x00, 0x52, 0x4c, 0x1e, 0x79, 0x0c, 0x40, 0x45, + 0x12, 0x0b, 0x6e, 0x0c, 0x00, 0xa6, 0x2e, 0x44, 0xcf, 0x2a, 0x6f, 0x0c, + 0x00, 0x43, 0x0e, 0x0b, 0x67, 0x0c, 0x00, 0xb3, 0x14, 0xb4, 0x06, 0x44, + 0x43, 0x1e, 0x66, 0x0c, 0x40, 0x44, 0x25, 0x01, 0x69, 0x0c, 0x00, 0x42, + 0x15, 0x02, 0x68, 0x0c, 0x40, 0x44, 0xc9, 0x1d, 0x6d, 0x0c, 0x00, 0x42, + 0x01, 0x26, 0x6c, 0x0c, 0x40, 0x43, 0xd2, 0x05, 0x6b, 0x0c, 0x00, 0x43, + 0xf6, 0x06, 0x6a, 0x0c, 0x40, 0x4d, 0xd6, 0x83, 0x56, 0x0c, 0x00, 0x4c, + 0x3b, 0x94, 0x5c, 0x0c, 0x40, 0x06, 0x1a, 0x3d, 0x0c, 0x45, 0x8b, 0xcb, + 0x2d, 0xf5, 0x01, 0x46, 0xc4, 0x32, 0xfa, 0xf4, 0x41, 0x4d, 0x28, 0x85, + 0x06, 0x27, 0x00, 0x4f, 0x2b, 0x71, 0x80, 0xf5, 0x01, 0x03, 0x89, 0x0d, + 0x06, 0x44, 0x5a, 0x03, 0x21, 0x21, 0x40, 0x45, 0x23, 0x3d, 0xde, 0xf4, + 0x81, 0x06, 0x45, 0x21, 0x89, 0x15, 0x23, 0x40, 0x4a, 0x73, 0xa6, 0x7c, + 0xf5, 0x41, 0x52, 0xf5, 0x50, 0x75, 0xf3, 0x01, 0x43, 0x14, 0x45, 0xd6, + 0xfa, 0x01, 0xb2, 0x01, 0xff, 0x4d, 0x14, 0x80, 0xc6, 0xf4, 0x01, 0x05, + 0x26, 0x0d, 0x01, 0xff, 0x57, 0xce, 0x2d, 0xba, 0x27, 0x00, 0x4f, 0xd5, + 0x1c, 0x3b, 0x27, 0x40, 0x5a, 0x48, 0x1f, 0xd3, 0xf3, 0x01, 0x42, 0x13, + 0x05, 0x2e, 0xf3, 0x01, 0xa7, 0xa3, 0x3a, 0x02, 0xf1, 0x03, 0x93, 0x2c, + 0xab, 0xe7, 0x28, 0x09, 0xb4, 0xa7, 0xd6, 0x28, 0xad, 0x99, 0x22, 0xae, + 0x1c, 0x03, 0x24, 0x31, 0x0c, 0x44, 0xe1, 0xf2, 0x49, 0x26, 0x00, 0x42, + 0xe2, 0x0c, 0x95, 0xf6, 0x41, 0x49, 0x1d, 0xb7, 0xad, 0xf5, 0x01, 0x45, + 0x76, 0xd7, 0x07, 0x27, 0x40, 0x4a, 0x4f, 0xa7, 0x8b, 0xf3, 0x01, 0xa7, + 0x01, 0xff, 0x45, 0x14, 0xe6, 0x4a, 0xf3, 0x01, 0x03, 0x7f, 0x41, 0xef, + 0x1d, 0x03, 0x6b, 0x0d, 0x01, 0xff, 0x0a, 0xd5, 0xa8, 0x0f, 0xa9, 0x01, + 0xff, 0x49, 0xbd, 0x27, 0x03, 0xd8, 0x00, 0x4d, 0x59, 0x20, 0xe0, 0x6f, + 0x41, 0x90, 0xad, 0x1a, 0x91, 0xff, 0x16, 0x92, 0xd1, 0x13, 0x93, 0xa3, + 0x10, 0x94, 0xf5, 0x0c, 0x95, 0xc7, 0x09, 0x96, 0x99, 0x06, 0x97, 0xeb, + 0x02, 0x98, 0x01, 0xff, 0x90, 0xbd, 0x02, 0x91, 0x92, 0x02, 0x92, 0xe7, + 0x01, 0x93, 0xbc, 0x01, 0x94, 0x91, 0x01, 0x95, 0x67, 0x96, 0x3d, 0x97, + 0x13, 0x98, 0x01, 0xff, 0xd0, 0xef, 0x8d, 0x01, 0xd1, 0xf0, 0x8d, 0x01, + 0xd2, 0xf1, 0x8d, 0x01, 0xd3, 0xf2, 0x8d, 0x41, 0xd0, 0xe5, 0x8d, 0x01, + 0xd1, 0xe6, 0x8d, 0x01, 0xd2, 0xe7, 0x8d, 0x01, 0xd3, 0xe8, 0x8d, 0x01, + 0xd4, 0xe9, 0x8d, 0x01, 0xd5, 0xea, 0x8d, 0x01, 0xd6, 0xeb, 0x8d, 0x01, + 0xd7, 0xec, 0x8d, 0x01, 0xd8, 0xed, 0x8d, 0x01, 0xd9, 0xee, 0x8d, 0x41, + 0xd0, 0xdb, 0x8d, 0x01, 0xd1, 0xdc, 0x8d, 0x01, 0xd2, 0xdd, 0x8d, 0x01, + 0xd3, 0xde, 0x8d, 0x01, 0xd4, 0xdf, 0x8d, 0x01, 0xd5, 0xe0, 0x8d, 0x01, + 0xd6, 0xe1, 0x8d, 0x01, 0xd7, 0xe2, 0x8d, 0x01, 0xd8, 0xe3, 0x8d, 0x01, + 0xd9, 0xe4, 0x8d, 0x41, 0xd0, 0xd1, 0x8d, 0x01, 0xd1, 0xd2, 0x8d, 0x01, + 0xd2, 0xd3, 0x8d, 0x01, 0xd3, 0xd4, 0x8d, 0x01, 0xd4, 0xd5, 0x8d, 0x01, + 0xd5, 0xd6, 0x8d, 0x01, 0xd6, 0xd7, 0x8d, 0x01, 0xd7, 0xd8, 0x8d, 0x01, + 0xd8, 0xd9, 0x8d, 0x01, 0xd9, 0xda, 0x8d, 0x41, 0xd0, 0xc7, 0x8d, 0x01, + 0xd1, 0xc8, 0x8d, 0x01, 0xd2, 0xc9, 0x8d, 0x01, 0xd3, 0xca, 0x8d, 0x01, + 0xd4, 0xcb, 0x8d, 0x01, 0xd5, 0xcc, 0x8d, 0x01, 0xd6, 0xcd, 0x8d, 0x01, + 0xd7, 0xce, 0x8d, 0x01, 0xd8, 0xcf, 0x8d, 0x01, 0xd9, 0xd0, 0x8d, 0x41, + 0xd0, 0xbd, 0x8d, 0x01, 0xd1, 0xbe, 0x8d, 0x01, 0xd2, 0xbf, 0x8d, 0x01, + 0xd3, 0xc0, 0x8d, 0x01, 0xd4, 0xc1, 0x8d, 0x01, 0xd5, 0xc2, 0x8d, 0x01, + 0xd6, 0xc3, 0x8d, 0x01, 0xd7, 0xc4, 0x8d, 0x01, 0xd8, 0xc5, 0x8d, 0x01, + 0xd9, 0xc6, 0x8d, 0x41, 0xd0, 0xb3, 0x8d, 0x01, 0xd1, 0xb4, 0x8d, 0x01, + 0xd2, 0xb5, 0x8d, 0x01, 0xd3, 0xb6, 0x8d, 0x01, 0xd4, 0xb7, 0x8d, 0x01, + 0xd5, 0xb8, 0x8d, 0x01, 0xd6, 0xb9, 0x8d, 0x01, 0xd7, 0xba, 0x8d, 0x01, + 0xd8, 0xbb, 0x8d, 0x01, 0xd9, 0xbc, 0x8d, 0x41, 0xd0, 0xa9, 0x8d, 0x01, + 0xd1, 0xaa, 0x8d, 0x01, 0xd2, 0xab, 0x8d, 0x01, 0xd3, 0xac, 0x8d, 0x01, + 0xd4, 0xad, 0x8d, 0x01, 0xd5, 0xae, 0x8d, 0x01, 0xd6, 0xaf, 0x8d, 0x01, + 0xd7, 0xb0, 0x8d, 0x01, 0xd8, 0xb1, 0x8d, 0x01, 0xd9, 0xb2, 0x8d, 0x41, + 0xd0, 0x9f, 0x8d, 0x01, 0xd1, 0xa0, 0x8d, 0x01, 0xd2, 0xa1, 0x8d, 0x01, + 0xd3, 0xa2, 0x8d, 0x01, 0xd4, 0xa3, 0x8d, 0x01, 0xd5, 0xa4, 0x8d, 0x01, + 0xd6, 0xa5, 0x8d, 0x01, 0xd7, 0xa6, 0x8d, 0x01, 0xd8, 0xa7, 0x8d, 0x01, + 0xd9, 0xa8, 0x8d, 0x41, 0x90, 0x80, 0x03, 0x91, 0xd5, 0x02, 0x92, 0xaa, 0x02, 0x93, 0xff, 0x01, 0x94, 0xd4, 0x01, 0x95, 0xa9, 0x01, 0x96, 0x7f, - 0x97, 0x55, 0x98, 0x2b, 0x99, 0x01, 0xff, 0xd0, 0x21, 0x89, 0x01, 0xd1, - 0x22, 0x89, 0x01, 0xd2, 0x23, 0x89, 0x01, 0xd3, 0x24, 0x89, 0x01, 0xd4, - 0x25, 0x89, 0x01, 0xd5, 0x26, 0x89, 0x01, 0xd6, 0x27, 0x89, 0x01, 0xd7, - 0x28, 0x89, 0x01, 0xd8, 0x29, 0x89, 0x01, 0xd9, 0x2a, 0x89, 0x41, 0xd0, - 0x17, 0x89, 0x01, 0xd1, 0x18, 0x89, 0x01, 0xd2, 0x19, 0x89, 0x01, 0xd3, - 0x1a, 0x89, 0x01, 0xd4, 0x1b, 0x89, 0x01, 0xd5, 0x1c, 0x89, 0x01, 0xd6, - 0x1d, 0x89, 0x01, 0xd7, 0x1e, 0x89, 0x01, 0xd8, 0x1f, 0x89, 0x01, 0xd9, - 0x20, 0x89, 0x41, 0xd0, 0x0d, 0x89, 0x01, 0xd1, 0x0e, 0x89, 0x01, 0xd2, - 0x0f, 0x89, 0x01, 0xd3, 0x10, 0x89, 0x01, 0xd4, 0x11, 0x89, 0x01, 0xd5, - 0x12, 0x89, 0x01, 0xd6, 0x13, 0x89, 0x01, 0xd7, 0x14, 0x89, 0x01, 0xd8, - 0x15, 0x89, 0x01, 0xd9, 0x16, 0x89, 0x41, 0xd0, 0x03, 0x89, 0x01, 0xd1, - 0x04, 0x89, 0x01, 0xd2, 0x05, 0x89, 0x01, 0xd3, 0x06, 0x89, 0x01, 0xd4, - 0x07, 0x89, 0x01, 0xd5, 0x08, 0x89, 0x01, 0xd6, 0x09, 0x89, 0x01, 0xd7, - 0x0a, 0x89, 0x01, 0xd8, 0x0b, 0x89, 0x01, 0xd9, 0x0c, 0x89, 0x41, 0xd0, - 0xf9, 0x88, 0x01, 0xd1, 0xfa, 0x88, 0x01, 0xd2, 0xfb, 0x88, 0x01, 0xd3, - 0xfc, 0x88, 0x01, 0xd4, 0xfd, 0x88, 0x01, 0xd5, 0xfe, 0x88, 0x01, 0xd6, - 0xff, 0x88, 0x01, 0xd7, 0x00, 0x89, 0x01, 0xd8, 0x01, 0x89, 0x01, 0xd9, - 0x02, 0x89, 0x41, 0xd0, 0xef, 0x88, 0x01, 0xd1, 0xf0, 0x88, 0x01, 0xd2, - 0xf1, 0x88, 0x01, 0xd3, 0xf2, 0x88, 0x01, 0xd4, 0xf3, 0x88, 0x01, 0xd5, - 0xf4, 0x88, 0x01, 0xd6, 0xf5, 0x88, 0x01, 0xd7, 0xf6, 0x88, 0x01, 0xd8, - 0xf7, 0x88, 0x01, 0xd9, 0xf8, 0x88, 0x41, 0xd0, 0xe5, 0x88, 0x01, 0xd1, - 0xe6, 0x88, 0x01, 0xd2, 0xe7, 0x88, 0x01, 0xd3, 0xe8, 0x88, 0x01, 0xd4, - 0xe9, 0x88, 0x01, 0xd5, 0xea, 0x88, 0x01, 0xd6, 0xeb, 0x88, 0x01, 0xd7, - 0xec, 0x88, 0x01, 0xd8, 0xed, 0x88, 0x01, 0xd9, 0xee, 0x88, 0x41, 0xd0, - 0xdb, 0x88, 0x01, 0xd1, 0xdc, 0x88, 0x01, 0xd2, 0xdd, 0x88, 0x01, 0xd3, - 0xde, 0x88, 0x01, 0xd4, 0xdf, 0x88, 0x01, 0xd5, 0xe0, 0x88, 0x01, 0xd6, - 0xe1, 0x88, 0x01, 0xd7, 0xe2, 0x88, 0x01, 0xd8, 0xe3, 0x88, 0x01, 0xd9, - 0xe4, 0x88, 0x41, 0xd0, 0xd1, 0x88, 0x01, 0xd1, 0xd2, 0x88, 0x01, 0xd2, - 0xd3, 0x88, 0x01, 0xd3, 0xd4, 0x88, 0x01, 0xd4, 0xd5, 0x88, 0x01, 0xd5, - 0xd6, 0x88, 0x01, 0xd6, 0xd7, 0x88, 0x01, 0xd7, 0xd8, 0x88, 0x01, 0xd8, - 0xd9, 0x88, 0x01, 0xd9, 0xda, 0x88, 0x41, 0xd0, 0xc7, 0x88, 0x01, 0xd1, - 0xc8, 0x88, 0x01, 0xd2, 0xc9, 0x88, 0x01, 0xd3, 0xca, 0x88, 0x01, 0xd4, - 0xcb, 0x88, 0x01, 0xd5, 0xcc, 0x88, 0x01, 0xd6, 0xcd, 0x88, 0x01, 0xd7, - 0xce, 0x88, 0x01, 0xd8, 0xcf, 0x88, 0x01, 0xd9, 0xd0, 0x88, 0x41, 0x90, + 0x97, 0x55, 0x98, 0x2b, 0x99, 0x01, 0xff, 0xd0, 0x95, 0x8d, 0x01, 0xd1, + 0x96, 0x8d, 0x01, 0xd2, 0x97, 0x8d, 0x01, 0xd3, 0x98, 0x8d, 0x01, 0xd4, + 0x99, 0x8d, 0x01, 0xd5, 0x9a, 0x8d, 0x01, 0xd6, 0x9b, 0x8d, 0x01, 0xd7, + 0x9c, 0x8d, 0x01, 0xd8, 0x9d, 0x8d, 0x01, 0xd9, 0x9e, 0x8d, 0x41, 0xd0, + 0x8b, 0x8d, 0x01, 0xd1, 0x8c, 0x8d, 0x01, 0xd2, 0x8d, 0x8d, 0x01, 0xd3, + 0x8e, 0x8d, 0x01, 0xd4, 0x8f, 0x8d, 0x01, 0xd5, 0x90, 0x8d, 0x01, 0xd6, + 0x91, 0x8d, 0x01, 0xd7, 0x92, 0x8d, 0x01, 0xd8, 0x93, 0x8d, 0x01, 0xd9, + 0x94, 0x8d, 0x41, 0xd0, 0x81, 0x8d, 0x01, 0xd1, 0x82, 0x8d, 0x01, 0xd2, + 0x83, 0x8d, 0x01, 0xd3, 0x84, 0x8d, 0x01, 0xd4, 0x85, 0x8d, 0x01, 0xd5, + 0x86, 0x8d, 0x01, 0xd6, 0x87, 0x8d, 0x01, 0xd7, 0x88, 0x8d, 0x01, 0xd8, + 0x89, 0x8d, 0x01, 0xd9, 0x8a, 0x8d, 0x41, 0xd0, 0xf7, 0x8a, 0x01, 0xd1, + 0xf8, 0x8a, 0x01, 0xd2, 0xf9, 0x8a, 0x01, 0xd3, 0xfa, 0x8a, 0x01, 0xd4, + 0xfb, 0x8a, 0x01, 0xd5, 0xfc, 0x8a, 0x01, 0xd6, 0xfd, 0x8a, 0x01, 0xd7, + 0xfe, 0x8a, 0x01, 0xd8, 0xff, 0x8a, 0x01, 0xd9, 0x80, 0x8d, 0x41, 0xd0, + 0xed, 0x8a, 0x01, 0xd1, 0xee, 0x8a, 0x01, 0xd2, 0xef, 0x8a, 0x01, 0xd3, + 0xf0, 0x8a, 0x01, 0xd4, 0xf1, 0x8a, 0x01, 0xd5, 0xf2, 0x8a, 0x01, 0xd6, + 0xf3, 0x8a, 0x01, 0xd7, 0xf4, 0x8a, 0x01, 0xd8, 0xf5, 0x8a, 0x01, 0xd9, + 0xf6, 0x8a, 0x41, 0xd0, 0xe3, 0x8a, 0x01, 0xd1, 0xe4, 0x8a, 0x01, 0xd2, + 0xe5, 0x8a, 0x01, 0xd3, 0xe6, 0x8a, 0x01, 0xd4, 0xe7, 0x8a, 0x01, 0xd5, + 0xe8, 0x8a, 0x01, 0xd6, 0xe9, 0x8a, 0x01, 0xd7, 0xea, 0x8a, 0x01, 0xd8, + 0xeb, 0x8a, 0x01, 0xd9, 0xec, 0x8a, 0x41, 0xd0, 0xd9, 0x8a, 0x01, 0xd1, + 0xda, 0x8a, 0x01, 0xd2, 0xdb, 0x8a, 0x01, 0xd3, 0xdc, 0x8a, 0x01, 0xd4, + 0xdd, 0x8a, 0x01, 0xd5, 0xde, 0x8a, 0x01, 0xd6, 0xdf, 0x8a, 0x01, 0xd7, + 0xe0, 0x8a, 0x01, 0xd8, 0xe1, 0x8a, 0x01, 0xd9, 0xe2, 0x8a, 0x41, 0xd0, + 0xcf, 0x8a, 0x01, 0xd1, 0xd0, 0x8a, 0x01, 0xd2, 0xd1, 0x8a, 0x01, 0xd3, + 0xd2, 0x8a, 0x01, 0xd4, 0xd3, 0x8a, 0x01, 0xd5, 0xd4, 0x8a, 0x01, 0xd6, + 0xd5, 0x8a, 0x01, 0xd7, 0xd6, 0x8a, 0x01, 0xd8, 0xd7, 0x8a, 0x01, 0xd9, + 0xd8, 0x8a, 0x41, 0xd0, 0xc5, 0x8a, 0x01, 0xd1, 0xc6, 0x8a, 0x01, 0xd2, + 0xc7, 0x8a, 0x01, 0xd3, 0xc8, 0x8a, 0x01, 0xd4, 0xc9, 0x8a, 0x01, 0xd5, + 0xca, 0x8a, 0x01, 0xd6, 0xcb, 0x8a, 0x01, 0xd7, 0xcc, 0x8a, 0x01, 0xd8, + 0xcd, 0x8a, 0x01, 0xd9, 0xce, 0x8a, 0x41, 0xd0, 0xbb, 0x8a, 0x01, 0xd1, + 0xbc, 0x8a, 0x01, 0xd2, 0xbd, 0x8a, 0x01, 0xd3, 0xbe, 0x8a, 0x01, 0xd4, + 0xbf, 0x8a, 0x01, 0xd5, 0xc0, 0x8a, 0x01, 0xd6, 0xc1, 0x8a, 0x01, 0xd7, + 0xc2, 0x8a, 0x01, 0xd8, 0xc3, 0x8a, 0x01, 0xd9, 0xc4, 0x8a, 0x41, 0x90, 0x80, 0x03, 0x91, 0xd5, 0x02, 0x92, 0xaa, 0x02, 0x93, 0xff, 0x01, 0x94, 0xd4, 0x01, 0x95, 0xa9, 0x01, 0x96, 0x7f, 0x97, 0x55, 0x98, 0x2b, 0x99, - 0x01, 0xff, 0xd0, 0xbd, 0x88, 0x01, 0xd1, 0xbe, 0x88, 0x01, 0xd2, 0xbf, - 0x88, 0x01, 0xd3, 0xc0, 0x88, 0x01, 0xd4, 0xc1, 0x88, 0x01, 0xd5, 0xc2, - 0x88, 0x01, 0xd6, 0xc3, 0x88, 0x01, 0xd7, 0xc4, 0x88, 0x01, 0xd8, 0xc5, - 0x88, 0x01, 0xd9, 0xc6, 0x88, 0x41, 0xd0, 0xb3, 0x88, 0x01, 0xd1, 0xb4, - 0x88, 0x01, 0xd2, 0xb5, 0x88, 0x01, 0xd3, 0xb6, 0x88, 0x01, 0xd4, 0xb7, - 0x88, 0x01, 0xd5, 0xb8, 0x88, 0x01, 0xd6, 0xb9, 0x88, 0x01, 0xd7, 0xba, - 0x88, 0x01, 0xd8, 0xbb, 0x88, 0x01, 0xd9, 0xbc, 0x88, 0x41, 0xd0, 0xa9, - 0x88, 0x01, 0xd1, 0xaa, 0x88, 0x01, 0xd2, 0xab, 0x88, 0x01, 0xd3, 0xac, - 0x88, 0x01, 0xd4, 0xad, 0x88, 0x01, 0xd5, 0xae, 0x88, 0x01, 0xd6, 0xaf, - 0x88, 0x01, 0xd7, 0xb0, 0x88, 0x01, 0xd8, 0xb1, 0x88, 0x01, 0xd9, 0xb2, - 0x88, 0x41, 0xd0, 0x9f, 0x88, 0x01, 0xd1, 0xa0, 0x88, 0x01, 0xd2, 0xa1, - 0x88, 0x01, 0xd3, 0xa2, 0x88, 0x01, 0xd4, 0xa3, 0x88, 0x01, 0xd5, 0xa4, - 0x88, 0x01, 0xd6, 0xa5, 0x88, 0x01, 0xd7, 0xa6, 0x88, 0x01, 0xd8, 0xa7, - 0x88, 0x01, 0xd9, 0xa8, 0x88, 0x41, 0xd0, 0x95, 0x88, 0x01, 0xd1, 0x96, - 0x88, 0x01, 0xd2, 0x97, 0x88, 0x01, 0xd3, 0x98, 0x88, 0x01, 0xd4, 0x99, - 0x88, 0x01, 0xd5, 0x9a, 0x88, 0x01, 0xd6, 0x9b, 0x88, 0x01, 0xd7, 0x9c, - 0x88, 0x01, 0xd8, 0x9d, 0x88, 0x01, 0xd9, 0x9e, 0x88, 0x41, 0xd0, 0x8b, - 0x88, 0x01, 0xd1, 0x8c, 0x88, 0x01, 0xd2, 0x8d, 0x88, 0x01, 0xd3, 0x8e, - 0x88, 0x01, 0xd4, 0x8f, 0x88, 0x01, 0xd5, 0x90, 0x88, 0x01, 0xd6, 0x91, - 0x88, 0x01, 0xd7, 0x92, 0x88, 0x01, 0xd8, 0x93, 0x88, 0x01, 0xd9, 0x94, - 0x88, 0x41, 0xd0, 0x81, 0x88, 0x01, 0xd1, 0x82, 0x88, 0x01, 0xd2, 0x83, - 0x88, 0x01, 0xd3, 0x84, 0x88, 0x01, 0xd4, 0x85, 0x88, 0x01, 0xd5, 0x86, - 0x88, 0x01, 0xd6, 0x87, 0x88, 0x01, 0xd7, 0x88, 0x88, 0x01, 0xd8, 0x89, - 0x88, 0x01, 0xd9, 0x8a, 0x88, 0x41, 0xd0, 0x77, 0x88, 0x01, 0xd1, 0x78, - 0x88, 0x01, 0xd2, 0x79, 0x88, 0x01, 0xd3, 0x7a, 0x88, 0x01, 0xd4, 0x7b, - 0x88, 0x01, 0xd5, 0x7c, 0x88, 0x01, 0xd6, 0x7d, 0x88, 0x01, 0xd7, 0x7e, - 0x88, 0x01, 0xd8, 0x7f, 0x88, 0x01, 0xd9, 0x80, 0x88, 0x41, 0xd0, 0x6d, - 0x88, 0x01, 0xd1, 0x6e, 0x88, 0x01, 0xd2, 0x6f, 0x88, 0x01, 0xd3, 0x70, - 0x88, 0x01, 0xd4, 0x71, 0x88, 0x01, 0xd5, 0x72, 0x88, 0x01, 0xd6, 0x73, - 0x88, 0x01, 0xd7, 0x74, 0x88, 0x01, 0xd8, 0x75, 0x88, 0x01, 0xd9, 0x76, - 0x88, 0x41, 0xd0, 0x63, 0x88, 0x01, 0xd1, 0x64, 0x88, 0x01, 0xd2, 0x65, - 0x88, 0x01, 0xd3, 0x66, 0x88, 0x01, 0xd4, 0x67, 0x88, 0x01, 0xd5, 0x68, - 0x88, 0x01, 0xd6, 0x69, 0x88, 0x01, 0xd7, 0x6a, 0x88, 0x01, 0xd8, 0x6b, - 0x88, 0x01, 0xd9, 0x6c, 0x88, 0x41, 0x90, 0x80, 0x03, 0x91, 0xd5, 0x02, + 0x01, 0xff, 0xd0, 0xb1, 0x8a, 0x01, 0xd1, 0xb2, 0x8a, 0x01, 0xd2, 0xb3, + 0x8a, 0x01, 0xd3, 0xb4, 0x8a, 0x01, 0xd4, 0xb5, 0x8a, 0x01, 0xd5, 0xb6, + 0x8a, 0x01, 0xd6, 0xb7, 0x8a, 0x01, 0xd7, 0xb8, 0x8a, 0x01, 0xd8, 0xb9, + 0x8a, 0x01, 0xd9, 0xba, 0x8a, 0x41, 0xd0, 0xa7, 0x8a, 0x01, 0xd1, 0xa8, + 0x8a, 0x01, 0xd2, 0xa9, 0x8a, 0x01, 0xd3, 0xaa, 0x8a, 0x01, 0xd4, 0xab, + 0x8a, 0x01, 0xd5, 0xac, 0x8a, 0x01, 0xd6, 0xad, 0x8a, 0x01, 0xd7, 0xae, + 0x8a, 0x01, 0xd8, 0xaf, 0x8a, 0x01, 0xd9, 0xb0, 0x8a, 0x41, 0xd0, 0x9d, + 0x8a, 0x01, 0xd1, 0x9e, 0x8a, 0x01, 0xd2, 0x9f, 0x8a, 0x01, 0xd3, 0xa0, + 0x8a, 0x01, 0xd4, 0xa1, 0x8a, 0x01, 0xd5, 0xa2, 0x8a, 0x01, 0xd6, 0xa3, + 0x8a, 0x01, 0xd7, 0xa4, 0x8a, 0x01, 0xd8, 0xa5, 0x8a, 0x01, 0xd9, 0xa6, + 0x8a, 0x41, 0xd0, 0x93, 0x8a, 0x01, 0xd1, 0x94, 0x8a, 0x01, 0xd2, 0x95, + 0x8a, 0x01, 0xd3, 0x96, 0x8a, 0x01, 0xd4, 0x97, 0x8a, 0x01, 0xd5, 0x98, + 0x8a, 0x01, 0xd6, 0x99, 0x8a, 0x01, 0xd7, 0x9a, 0x8a, 0x01, 0xd8, 0x9b, + 0x8a, 0x01, 0xd9, 0x9c, 0x8a, 0x41, 0xd0, 0x89, 0x8a, 0x01, 0xd1, 0x8a, + 0x8a, 0x01, 0xd2, 0x8b, 0x8a, 0x01, 0xd3, 0x8c, 0x8a, 0x01, 0xd4, 0x8d, + 0x8a, 0x01, 0xd5, 0x8e, 0x8a, 0x01, 0xd6, 0x8f, 0x8a, 0x01, 0xd7, 0x90, + 0x8a, 0x01, 0xd8, 0x91, 0x8a, 0x01, 0xd9, 0x92, 0x8a, 0x41, 0xd0, 0x7f, + 0x8a, 0x01, 0xd1, 0x80, 0x8a, 0x01, 0xd2, 0x81, 0x8a, 0x01, 0xd3, 0x82, + 0x8a, 0x01, 0xd4, 0x83, 0x8a, 0x01, 0xd5, 0x84, 0x8a, 0x01, 0xd6, 0x85, + 0x8a, 0x01, 0xd7, 0x86, 0x8a, 0x01, 0xd8, 0x87, 0x8a, 0x01, 0xd9, 0x88, + 0x8a, 0x41, 0xd0, 0x75, 0x8a, 0x01, 0xd1, 0x76, 0x8a, 0x01, 0xd2, 0x77, + 0x8a, 0x01, 0xd3, 0x78, 0x8a, 0x01, 0xd4, 0x79, 0x8a, 0x01, 0xd5, 0x7a, + 0x8a, 0x01, 0xd6, 0x7b, 0x8a, 0x01, 0xd7, 0x7c, 0x8a, 0x01, 0xd8, 0x7d, + 0x8a, 0x01, 0xd9, 0x7e, 0x8a, 0x41, 0xd0, 0x6b, 0x8a, 0x01, 0xd1, 0x6c, + 0x8a, 0x01, 0xd2, 0x6d, 0x8a, 0x01, 0xd3, 0x6e, 0x8a, 0x01, 0xd4, 0x6f, + 0x8a, 0x01, 0xd5, 0x70, 0x8a, 0x01, 0xd6, 0x71, 0x8a, 0x01, 0xd7, 0x72, + 0x8a, 0x01, 0xd8, 0x73, 0x8a, 0x01, 0xd9, 0x74, 0x8a, 0x41, 0xd0, 0x61, + 0x8a, 0x01, 0xd1, 0x62, 0x8a, 0x01, 0xd2, 0x63, 0x8a, 0x01, 0xd3, 0x64, + 0x8a, 0x01, 0xd4, 0x65, 0x8a, 0x01, 0xd5, 0x66, 0x8a, 0x01, 0xd6, 0x67, + 0x8a, 0x01, 0xd7, 0x68, 0x8a, 0x01, 0xd8, 0x69, 0x8a, 0x01, 0xd9, 0x6a, + 0x8a, 0x41, 0xd0, 0x57, 0x8a, 0x01, 0xd1, 0x58, 0x8a, 0x01, 0xd2, 0x59, + 0x8a, 0x01, 0xd3, 0x5a, 0x8a, 0x01, 0xd4, 0x5b, 0x8a, 0x01, 0xd5, 0x5c, + 0x8a, 0x01, 0xd6, 0x5d, 0x8a, 0x01, 0xd7, 0x5e, 0x8a, 0x01, 0xd8, 0x5f, + 0x8a, 0x01, 0xd9, 0x60, 0x8a, 0x41, 0x90, 0x80, 0x03, 0x91, 0xd5, 0x02, 0x92, 0xaa, 0x02, 0x93, 0xff, 0x01, 0x94, 0xd4, 0x01, 0x95, 0xa9, 0x01, - 0x96, 0x7f, 0x97, 0x55, 0x98, 0x2b, 0x99, 0x01, 0xff, 0xd0, 0x59, 0x88, - 0x01, 0xd1, 0x5a, 0x88, 0x01, 0xd2, 0x5b, 0x88, 0x01, 0xd3, 0x5c, 0x88, - 0x01, 0xd4, 0x5d, 0x88, 0x01, 0xd5, 0x5e, 0x88, 0x01, 0xd6, 0x5f, 0x88, - 0x01, 0xd7, 0x60, 0x88, 0x01, 0xd8, 0x61, 0x88, 0x01, 0xd9, 0x62, 0x88, - 0x41, 0xd0, 0x4f, 0x88, 0x01, 0xd1, 0x50, 0x88, 0x01, 0xd2, 0x51, 0x88, - 0x01, 0xd3, 0x52, 0x88, 0x01, 0xd4, 0x53, 0x88, 0x01, 0xd5, 0x54, 0x88, - 0x01, 0xd6, 0x55, 0x88, 0x01, 0xd7, 0x56, 0x88, 0x01, 0xd8, 0x57, 0x88, - 0x01, 0xd9, 0x58, 0x88, 0x41, 0xd0, 0x45, 0x88, 0x01, 0xd1, 0x46, 0x88, - 0x01, 0xd2, 0x47, 0x88, 0x01, 0xd3, 0x48, 0x88, 0x01, 0xd4, 0x49, 0x88, - 0x01, 0xd5, 0x4a, 0x88, 0x01, 0xd6, 0x4b, 0x88, 0x01, 0xd7, 0x4c, 0x88, - 0x01, 0xd8, 0x4d, 0x88, 0x01, 0xd9, 0x4e, 0x88, 0x41, 0xd0, 0x3b, 0x88, - 0x01, 0xd1, 0x3c, 0x88, 0x01, 0xd2, 0x3d, 0x88, 0x01, 0xd3, 0x3e, 0x88, - 0x01, 0xd4, 0x3f, 0x88, 0x01, 0xd5, 0x40, 0x88, 0x01, 0xd6, 0x41, 0x88, - 0x01, 0xd7, 0x42, 0x88, 0x01, 0xd8, 0x43, 0x88, 0x01, 0xd9, 0x44, 0x88, - 0x41, 0xd0, 0x31, 0x88, 0x01, 0xd1, 0x32, 0x88, 0x01, 0xd2, 0x33, 0x88, - 0x01, 0xd3, 0x34, 0x88, 0x01, 0xd4, 0x35, 0x88, 0x01, 0xd5, 0x36, 0x88, - 0x01, 0xd6, 0x37, 0x88, 0x01, 0xd7, 0x38, 0x88, 0x01, 0xd8, 0x39, 0x88, - 0x01, 0xd9, 0x3a, 0x88, 0x41, 0xd0, 0x27, 0x88, 0x01, 0xd1, 0x28, 0x88, - 0x01, 0xd2, 0x29, 0x88, 0x01, 0xd3, 0x2a, 0x88, 0x01, 0xd4, 0x2b, 0x88, - 0x01, 0xd5, 0x2c, 0x88, 0x01, 0xd6, 0x2d, 0x88, 0x01, 0xd7, 0x2e, 0x88, - 0x01, 0xd8, 0x2f, 0x88, 0x01, 0xd9, 0x30, 0x88, 0x41, 0xd0, 0x1d, 0x88, - 0x01, 0xd1, 0x1e, 0x88, 0x01, 0xd2, 0x1f, 0x88, 0x01, 0xd3, 0x20, 0x88, - 0x01, 0xd4, 0x21, 0x88, 0x01, 0xd5, 0x22, 0x88, 0x01, 0xd6, 0x23, 0x88, - 0x01, 0xd7, 0x24, 0x88, 0x01, 0xd8, 0x25, 0x88, 0x01, 0xd9, 0x26, 0x88, - 0x41, 0xd0, 0x13, 0x88, 0x01, 0xd1, 0x14, 0x88, 0x01, 0xd2, 0x15, 0x88, - 0x01, 0xd3, 0x16, 0x88, 0x01, 0xd4, 0x17, 0x88, 0x01, 0xd5, 0x18, 0x88, - 0x01, 0xd6, 0x19, 0x88, 0x01, 0xd7, 0x1a, 0x88, 0x01, 0xd8, 0x1b, 0x88, - 0x01, 0xd9, 0x1c, 0x88, 0x41, 0xd0, 0x09, 0x88, 0x01, 0xd1, 0x0a, 0x88, - 0x01, 0xd2, 0x0b, 0x88, 0x01, 0xd3, 0x0c, 0x88, 0x01, 0xd4, 0x0d, 0x88, - 0x01, 0xd5, 0x0e, 0x88, 0x01, 0xd6, 0x0f, 0x88, 0x01, 0xd7, 0x10, 0x88, - 0x01, 0xd8, 0x11, 0x88, 0x01, 0xd9, 0x12, 0x88, 0x41, 0xd1, 0x00, 0x88, - 0x01, 0xd2, 0x01, 0x88, 0x01, 0xd3, 0x02, 0x88, 0x01, 0xd4, 0x03, 0x88, - 0x01, 0xd5, 0x04, 0x88, 0x01, 0xd6, 0x05, 0x88, 0x01, 0xd7, 0x06, 0x88, - 0x01, 0xd8, 0x07, 0x88, 0x01, 0xd9, 0x08, 0x88, 0x41, 0x06, 0xc4, 0x06, - 0xb1, 0x03, 0x07, 0xc1, 0x05, 0x01, 0xff, 0xa1, 0x87, 0x03, 0x42, 0x16, - 0x00, 0xaa, 0x6a, 0x01, 0xa3, 0xf4, 0x02, 0xa4, 0xe7, 0x02, 0xa5, 0xd4, - 0x02, 0xa6, 0xc7, 0x02, 0xa7, 0xba, 0x02, 0xa8, 0xa6, 0x02, 0xa9, 0x93, - 0x02, 0xab, 0x86, 0x02, 0xac, 0xf9, 0x01, 0xad, 0xe2, 0x01, 0xae, 0xc9, - 0x01, 0xaf, 0xb6, 0x01, 0xb0, 0xa9, 0x01, 0x42, 0x71, 0x00, 0xb2, 0x6a, - 0x01, 0xb3, 0x84, 0x01, 0xb4, 0x72, 0xb5, 0x2a, 0xb6, 0x18, 0x42, 0xa9, - 0x01, 0xa6, 0x6a, 0x01, 0x42, 0x4c, 0x26, 0xba, 0x6a, 0x01, 0x42, 0x34, - 0x22, 0xa5, 0x6a, 0x01, 0x42, 0x59, 0x00, 0xbe, 0x6a, 0x41, 0xe3, 0x79, - 0x6a, 0x01, 0xf1, 0x7a, 0x6a, 0x01, 0xf8, 0x7b, 0x6a, 0x01, 0xfa, 0x78, - 0x6a, 0x41, 0xe3, 0x85, 0x6a, 0x01, 0xa5, 0x30, 0xa9, 0x0c, 0xf1, 0x86, - 0x6a, 0x01, 0xf8, 0x87, 0x6a, 0x01, 0xfa, 0x84, 0x6a, 0x41, 0xe3, 0x8d, - 0x6a, 0x01, 0xf1, 0x8e, 0x6a, 0x01, 0xb5, 0x08, 0xf8, 0x8f, 0x6a, 0x01, - 0xfa, 0x8c, 0x6a, 0x41, 0xe3, 0x99, 0x6a, 0x01, 0xf1, 0x9a, 0x6a, 0x01, - 0xf8, 0x9b, 0x6a, 0x01, 0xfa, 0x98, 0x6a, 0x41, 0xe3, 0x94, 0x6a, 0x01, - 0xf1, 0x96, 0x6a, 0x01, 0xf8, 0x97, 0x6a, 0x01, 0xfa, 0x95, 0x6a, 0x41, - 0xe1, 0xb0, 0x6a, 0x01, 0x42, 0x22, 0x00, 0xb9, 0x6a, 0x01, 0x42, 0x15, - 0x06, 0xb6, 0x6a, 0x41, 0xe1, 0xa4, 0x6a, 0x01, 0xa8, 0x01, 0xff, 0xe1, - 0xb4, 0x6a, 0x01, 0x04, 0x76, 0x33, 0x01, 0xff, 0x43, 0x9c, 0xf0, 0x93, - 0x6a, 0x01, 0x43, 0x5c, 0xf1, 0x92, 0x6a, 0x41, 0xe1, 0xa7, 0x6a, 0x01, - 0x42, 0x22, 0x00, 0xa9, 0x6a, 0x41, 0xe3, 0x71, 0x6a, 0x01, 0xf1, 0x72, - 0x6a, 0x01, 0xf8, 0x73, 0x6a, 0x01, 0xfa, 0x70, 0x6a, 0x41, 0xe1, 0xac, - 0x6a, 0x01, 0x42, 0x24, 0x02, 0xa3, 0x6a, 0x01, 0x42, 0x22, 0x00, 0xb3, - 0x6a, 0x01, 0x42, 0x34, 0x22, 0xa8, 0x6a, 0x41, 0xe1, 0xab, 0x6a, 0x01, - 0xe3, 0x9d, 0x6a, 0x01, 0xf1, 0x9e, 0x6a, 0x01, 0xf8, 0x9f, 0x6a, 0x01, - 0xfa, 0x9c, 0x6a, 0x41, 0xe1, 0xae, 0x6a, 0x01, 0x47, 0x14, 0xd1, 0x91, - 0x6a, 0x41, 0xe1, 0xa0, 0x6a, 0x01, 0x42, 0x22, 0x00, 0xa1, 0x6a, 0x41, - 0xe3, 0x81, 0x6a, 0x01, 0xf1, 0x82, 0x6a, 0x01, 0xf8, 0x83, 0x6a, 0x01, - 0xfa, 0x80, 0x6a, 0x41, 0xe1, 0xad, 0x6a, 0x01, 0xb4, 0x01, 0xff, 0xe1, - 0xaf, 0x6a, 0x01, 0x42, 0x12, 0x00, 0xb8, 0x6a, 0x41, 0xe1, 0xa2, 0x6a, - 0x01, 0x42, 0x22, 0x00, 0xb7, 0x6a, 0x41, 0xe1, 0xbb, 0x6a, 0x01, 0x47, - 0x98, 0xb6, 0x90, 0x6a, 0x41, 0xe3, 0x7d, 0x6a, 0x01, 0xf1, 0x7e, 0x6a, - 0x01, 0xf8, 0x7f, 0x6a, 0x01, 0xfa, 0x7c, 0x6a, 0x41, 0xe1, 0xb1, 0x6a, - 0x01, 0x42, 0x22, 0x00, 0xbc, 0x6a, 0x41, 0xe1, 0xb5, 0x6a, 0x01, 0x42, - 0x22, 0x00, 0xbd, 0x6a, 0x41, 0xe3, 0x75, 0x6a, 0x01, 0xf1, 0x76, 0x6a, - 0x01, 0xb7, 0x08, 0xf8, 0x77, 0x6a, 0x01, 0xfa, 0x74, 0x6a, 0x41, 0xe3, - 0x89, 0x6a, 0x01, 0xf1, 0x8a, 0x6a, 0x01, 0xf8, 0x8b, 0x6a, 0x01, 0xfa, - 0x88, 0x6a, 0x41, 0x45, 0xc3, 0x0a, 0xc8, 0x6a, 0x01, 0xa6, 0x2e, 0x44, - 0x46, 0x2a, 0xc9, 0x6a, 0x01, 0x43, 0xbf, 0x0a, 0xc1, 0x6a, 0x01, 0xb3, - 0x14, 0xb4, 0x06, 0x44, 0xa1, 0x1d, 0xc0, 0x6a, 0x41, 0x44, 0x25, 0x01, - 0xc3, 0x6a, 0x01, 0x42, 0x15, 0x02, 0xc2, 0x6a, 0x41, 0x44, 0x27, 0x1d, - 0xc7, 0x6a, 0x01, 0x42, 0x60, 0x25, 0xc6, 0x6a, 0x41, 0x43, 0xa7, 0x05, - 0xc5, 0x6a, 0x01, 0x43, 0xcb, 0x06, 0xc4, 0x6a, 0x41, 0x43, 0x67, 0x00, - 0xd4, 0xfa, 0x01, 0x03, 0x8a, 0x4e, 0x01, 0xff, 0xa1, 0x9a, 0x06, 0xa3, - 0x8b, 0x06, 0xa4, 0xb0, 0x05, 0x09, 0xb3, 0x58, 0x93, 0x04, 0x52, 0x6e, - 0x51, 0xee, 0x1f, 0x01, 0xac, 0xbc, 0x02, 0x4a, 0xb7, 0xab, 0xf4, 0x0b, - 0x00, 0x07, 0x2f, 0x39, 0x95, 0x02, 0x42, 0xe9, 0x04, 0xd0, 0x0b, 0x00, - 0x57, 0x83, 0x2f, 0xff, 0x1f, 0x01, 0x4a, 0xf6, 0x7e, 0xf9, 0x0b, 0x00, - 0xb3, 0x5b, 0xb4, 0x42, 0x0b, 0xd1, 0x75, 0x0c, 0x54, 0x83, 0x45, 0xe4, - 0x1f, 0x01, 0x49, 0x19, 0xbf, 0xf5, 0x0b, 0x40, 0xa1, 0x24, 0xe5, 0xc6, - 0x0b, 0x80, 0x1b, 0xe9, 0xbf, 0x0b, 0x80, 0x12, 0xef, 0xca, 0x0b, 0x80, - 0x09, 0xf5, 0xc1, 0x0b, 0xc0, 0x00, 0xf5, 0xc2, 0x0b, 0x40, 0xef, 0xcb, - 0x0b, 0x40, 0xe9, 0xc0, 0x0b, 0x40, 0xe5, 0xc7, 0x0b, 0x40, 0xe1, 0xbe, - 0x0b, 0x00, 0xe9, 0xc8, 0x0b, 0x00, 0xf5, 0xcc, 0x0b, 0x40, 0x49, 0x17, - 0xbb, 0xed, 0x1f, 0x01, 0x0b, 0x7d, 0x9f, 0x01, 0xff, 0x4b, 0x45, 0x98, - 0xe8, 0x1f, 0x01, 0x4b, 0x12, 0x9e, 0xe9, 0x1f, 0x41, 0x4c, 0x61, 0x8a, - 0xe7, 0x1f, 0x01, 0x04, 0x30, 0x03, 0x0c, 0x49, 0x8c, 0xbb, 0xec, 0x1f, - 0x01, 0x51, 0xc0, 0x5c, 0xef, 0x1f, 0x41, 0xa1, 0x81, 0x01, 0x46, 0x84, - 0xd7, 0xd6, 0x1f, 0x01, 0xab, 0x64, 0x02, 0x57, 0x16, 0x4e, 0x43, 0x50, - 0xc5, 0xd5, 0x1f, 0x01, 0xb0, 0x2c, 0x47, 0x43, 0xbe, 0xd8, 0x1f, 0x01, - 0xb6, 0x01, 0xff, 0xa1, 0x15, 0x43, 0xf2, 0x2c, 0xe3, 0x1f, 0x01, 0xa9, - 0x01, 0xff, 0x44, 0x5d, 0x23, 0xcd, 0x0b, 0x00, 0x45, 0xa3, 0x4a, 0x83, - 0x0b, 0x40, 0x48, 0xca, 0xc4, 0xf1, 0x1f, 0x01, 0x46, 0x5e, 0xdc, 0xe0, - 0x1f, 0x41, 0xa1, 0x06, 0x42, 0x10, 0x00, 0xdf, 0x1f, 0x41, 0x44, 0x0c, - 0x76, 0xe1, 0x1f, 0x01, 0x43, 0xff, 0x04, 0xde, 0x1f, 0x01, 0x46, 0x84, - 0xdd, 0xdb, 0x1f, 0x41, 0x47, 0x93, 0xcf, 0xdc, 0x1f, 0x01, 0x47, 0x7c, - 0xd3, 0xf0, 0x1f, 0x01, 0x49, 0x41, 0xbe, 0xd9, 0x1f, 0x41, 0x44, 0xaa, - 0xeb, 0xdd, 0x1f, 0x01, 0xb5, 0x01, 0xff, 0x44, 0x95, 0x7c, 0xda, 0x1f, - 0x01, 0x43, 0xe4, 0x7d, 0xe2, 0x1f, 0x41, 0x48, 0x5a, 0xc1, 0xd7, 0x1f, - 0x01, 0x47, 0xd1, 0x15, 0x82, 0x0b, 0x40, 0x04, 0xbf, 0x0a, 0x0c, 0x44, - 0x2f, 0x03, 0xfa, 0x0b, 0x00, 0x43, 0xb0, 0x06, 0xf0, 0x0b, 0x40, 0x47, - 0x22, 0x11, 0xf1, 0x0b, 0x00, 0x48, 0xd5, 0x5c, 0xf2, 0x0b, 0x40, 0x48, - 0x65, 0x46, 0xe6, 0x1f, 0x01, 0x06, 0xc2, 0x05, 0x01, 0xff, 0xe1, 0x85, - 0x0b, 0x80, 0xb1, 0x01, 0x42, 0x37, 0x00, 0x9a, 0x0b, 0x00, 0xe5, 0x8e, - 0x0b, 0x80, 0xa1, 0x01, 0x42, 0x22, 0x00, 0xb9, 0x0b, 0x00, 0xe9, 0x87, - 0x0b, 0x80, 0x91, 0x01, 0x42, 0xbd, 0x26, 0x9c, 0x0b, 0x00, 0x42, 0x1b, - 0x02, 0x95, 0x0b, 0x00, 0xac, 0x72, 0x42, 0x6c, 0x00, 0xae, 0x0b, 0x00, - 0xae, 0x4e, 0xef, 0x92, 0x0b, 0x80, 0x45, 0x42, 0x6c, 0x09, 0xaa, 0x0b, - 0x00, 0xb2, 0x33, 0xb3, 0x21, 0xb4, 0x15, 0xf5, 0x89, 0x0b, 0x80, 0x0c, - 0x42, 0xa6, 0x0a, 0xb5, 0x0b, 0x00, 0x42, 0x34, 0x22, 0xaf, 0x0b, 0x40, - 0xf5, 0x8a, 0x0b, 0x40, 0xe1, 0xa4, 0x0b, 0x00, 0x42, 0x12, 0x00, 0x9f, - 0x0b, 0x40, 0xe1, 0xb8, 0x0b, 0x00, 0x42, 0x22, 0x00, 0xb6, 0x0b, 0x00, - 0x42, 0x15, 0x06, 0xb7, 0x0b, 0x40, 0xe1, 0xb0, 0x0b, 0x00, 0x42, 0x71, - 0x00, 0xb1, 0x0b, 0x40, 0xef, 0x93, 0x0b, 0x40, 0xe1, 0xa8, 0x0b, 0x00, - 0x42, 0x24, 0x02, 0x99, 0x0b, 0x00, 0xae, 0x06, 0x42, 0x34, 0x22, 0x9e, - 0x0b, 0x40, 0xe1, 0xa3, 0x0b, 0x00, 0x42, 0xff, 0x04, 0xa9, 0x0b, 0x40, - 0xe1, 0xb2, 0x0b, 0x00, 0xac, 0x01, 0xff, 0xe1, 0xb3, 0x0b, 0x00, 0x42, - 0x74, 0x00, 0xb4, 0x0b, 0x40, 0xe9, 0x88, 0x0b, 0x40, 0xe5, 0x8f, 0x0b, - 0x40, 0xe1, 0x86, 0x0b, 0x00, 0xe9, 0x90, 0x0b, 0x00, 0xf5, 0x94, 0x0b, - 0x40, 0x58, 0x9d, 0x27, 0xd4, 0x1f, 0x01, 0x04, 0xbf, 0x0a, 0x27, 0x06, - 0x24, 0x01, 0x01, 0xff, 0x4a, 0x9d, 0xa7, 0xc6, 0x1f, 0x01, 0x48, 0x2a, - 0x01, 0xd3, 0x1f, 0x01, 0x04, 0x5f, 0x25, 0x06, 0x4a, 0xef, 0xaf, 0xcd, - 0x1f, 0x41, 0x46, 0xc7, 0xae, 0xce, 0x1f, 0x01, 0x49, 0x10, 0xbf, 0xc7, - 0x1f, 0x41, 0x05, 0xc3, 0x0a, 0x59, 0xa6, 0x4b, 0x05, 0x1f, 0x2c, 0x3f, - 0x58, 0xad, 0x29, 0xc1, 0x1f, 0x01, 0x47, 0x2a, 0x01, 0xd0, 0x1f, 0x01, - 0x04, 0x5f, 0x25, 0x1d, 0xb4, 0x01, 0xff, 0x44, 0xfb, 0x1a, 0xcb, 0x1f, - 0x01, 0xa8, 0x06, 0x48, 0x34, 0x25, 0xc8, 0x1f, 0x41, 0x4b, 0xbd, 0x8e, - 0xc5, 0x1f, 0x01, 0x59, 0x23, 0x25, 0xc0, 0x1f, 0x41, 0x06, 0x3e, 0xd8, - 0x06, 0x48, 0x07, 0xbf, 0xc3, 0x1f, 0x41, 0xd1, 0xc9, 0x1f, 0x01, 0xd2, - 0xca, 0x1f, 0x41, 0xd1, 0xd1, 0x1f, 0x01, 0xd2, 0xd2, 0x1f, 0x41, 0x44, - 0xf2, 0xac, 0xcf, 0x1f, 0x01, 0x47, 0x45, 0xd1, 0xc4, 0x1f, 0x41, 0xe8, - 0xcc, 0x1f, 0x01, 0x44, 0x38, 0x25, 0xc2, 0x1f, 0x41, 0x47, 0x8a, 0xcc, - 0xf3, 0x0b, 0x00, 0x49, 0xb6, 0xb5, 0xf6, 0x0b, 0x00, 0x05, 0xc5, 0x06, - 0x06, 0x53, 0x8c, 0x4b, 0xe5, 0x1f, 0x41, 0x45, 0xc3, 0x0a, 0xee, 0x0b, - 0x00, 0xa6, 0x2e, 0x44, 0x46, 0x2a, 0xef, 0x0b, 0x00, 0x43, 0xbf, 0x0a, - 0xe7, 0x0b, 0x00, 0xb3, 0x14, 0xb4, 0x06, 0x44, 0xa1, 0x1d, 0xe6, 0x0b, - 0x40, 0x44, 0x25, 0x01, 0xe9, 0x0b, 0x00, 0x42, 0x15, 0x02, 0xe8, 0x0b, - 0x40, 0x44, 0x27, 0x1d, 0xed, 0x0b, 0x00, 0x42, 0x60, 0x25, 0xec, 0x0b, - 0x40, 0x43, 0xa7, 0x05, 0xeb, 0x0b, 0x00, 0x43, 0xcb, 0x06, 0xea, 0x0b, - 0x40, 0x4a, 0x46, 0x98, 0xf7, 0x0b, 0x00, 0x4b, 0x3d, 0xa2, 0xea, 0x1f, - 0x41, 0x4b, 0xc5, 0x9d, 0xeb, 0x1f, 0x01, 0x4c, 0x25, 0x93, 0xf8, 0x0b, - 0x00, 0x4d, 0x9b, 0x74, 0xd7, 0x0b, 0x40, 0x44, 0x31, 0x11, 0x78, 0xd3, - 0x01, 0x43, 0xbf, 0x0a, 0x77, 0xd3, 0x41, 0x48, 0x1a, 0xc3, 0x61, 0xf9, - 0x01, 0x03, 0x96, 0x0a, 0x01, 0xff, 0x51, 0x93, 0x56, 0xb9, 0x16, 0x01, - 0x06, 0xc4, 0x06, 0xd1, 0x02, 0x07, 0xc1, 0x05, 0x4e, 0x05, 0x2f, 0x03, - 0x2d, 0x0b, 0xd1, 0x75, 0x01, 0xff, 0xa1, 0x1a, 0xe5, 0xb2, 0x16, 0x01, - 0xe9, 0xae, 0x16, 0x81, 0x0d, 0xef, 0xb4, 0x16, 0x01, 0xf5, 0xb0, 0x16, - 0xc1, 0x00, 0xf5, 0xb1, 0x16, 0x41, 0xe9, 0xaf, 0x16, 0x41, 0xe1, 0xad, - 0x16, 0x01, 0xe9, 0xb3, 0x16, 0x01, 0xf5, 0xb5, 0x16, 0x41, 0x48, 0xd0, - 0x15, 0xab, 0x16, 0x01, 0x45, 0x5a, 0x3e, 0xb7, 0x16, 0x01, 0x02, 0x02, - 0x00, 0x01, 0xff, 0x44, 0x5d, 0x23, 0xb6, 0x16, 0x01, 0x45, 0xa3, 0x4a, - 0xac, 0x16, 0x41, 0xe1, 0x80, 0x16, 0x81, 0xe7, 0x01, 0xa2, 0xda, 0x01, - 0xa3, 0xcd, 0x01, 0xa4, 0xb4, 0x01, 0xe5, 0x86, 0x16, 0x01, 0xa7, 0xa3, - 0x01, 0x42, 0x22, 0x00, 0xa9, 0x16, 0x01, 0xe9, 0x82, 0x16, 0x81, 0x93, - 0x01, 0xaa, 0x86, 0x01, 0xab, 0x7a, 0x42, 0x74, 0x00, 0xa5, 0x16, 0x01, - 0x42, 0x6c, 0x00, 0xa2, 0x16, 0x01, 0xae, 0x56, 0xef, 0x88, 0x16, 0x01, - 0xb0, 0x46, 0xb2, 0x3a, 0xb3, 0x2e, 0xb4, 0x15, 0xf5, 0x84, 0x16, 0x81, - 0x0c, 0x42, 0xa6, 0x0a, 0xa6, 0x16, 0x01, 0x42, 0x34, 0x22, 0xa3, 0x16, - 0x41, 0xf5, 0x85, 0x16, 0x41, 0xe1, 0x99, 0x16, 0x01, 0x42, 0x22, 0x00, - 0x9a, 0x16, 0x01, 0xb4, 0x01, 0xff, 0xe1, 0x94, 0x16, 0x01, 0x42, 0x22, - 0x00, 0x95, 0x16, 0x41, 0xe1, 0xa8, 0x16, 0x01, 0x42, 0x22, 0x00, 0xa7, - 0x16, 0x41, 0xe1, 0xa4, 0x16, 0x01, 0x42, 0x71, 0x00, 0xaa, 0x16, 0x41, - 0xe1, 0x9e, 0x16, 0x01, 0x42, 0x22, 0x00, 0x9f, 0x16, 0x41, 0xe1, 0x9d, - 0x16, 0x01, 0x42, 0x24, 0x02, 0x8e, 0x16, 0x01, 0x42, 0xff, 0x04, 0x98, - 0x16, 0x01, 0x42, 0x34, 0x22, 0x93, 0x16, 0x41, 0xe1, 0x8a, 0x16, 0x01, - 0x42, 0x22, 0x00, 0x8b, 0x16, 0x41, 0xe1, 0x91, 0x16, 0x01, 0x42, 0x22, - 0x00, 0x92, 0x16, 0x41, 0xe9, 0x83, 0x16, 0x41, 0xe1, 0x8c, 0x16, 0x01, - 0x42, 0x22, 0x00, 0x8d, 0x16, 0x41, 0xe1, 0x9b, 0x16, 0x01, 0xa4, 0x06, - 0x42, 0x22, 0x00, 0x9c, 0x16, 0x41, 0xe1, 0x96, 0x16, 0x01, 0x42, 0x22, - 0x00, 0x97, 0x16, 0x41, 0xe1, 0x8f, 0x16, 0x01, 0x42, 0x22, 0x00, 0x90, - 0x16, 0x41, 0xe1, 0xa0, 0x16, 0x01, 0x42, 0x22, 0x00, 0xa1, 0x16, 0x41, - 0xe1, 0x81, 0x16, 0x01, 0xe9, 0x87, 0x16, 0x01, 0x4a, 0xa1, 0xad, 0xb8, - 0x16, 0x01, 0xf5, 0x89, 0x16, 0x41, 0x45, 0xc3, 0x0a, 0xc8, 0x16, 0x01, - 0xa6, 0x2e, 0x44, 0x46, 0x2a, 0xc9, 0x16, 0x01, 0x43, 0xbf, 0x0a, 0xc1, - 0x16, 0x01, 0xb3, 0x14, 0xb4, 0x06, 0x44, 0xa1, 0x1d, 0xc0, 0x16, 0x41, - 0x44, 0x25, 0x01, 0xc3, 0x16, 0x01, 0x42, 0x15, 0x02, 0xc2, 0x16, 0x41, - 0x44, 0x27, 0x1d, 0xc7, 0x16, 0x01, 0x42, 0x60, 0x25, 0xc6, 0x16, 0x41, - 0x43, 0xa7, 0x05, 0xc5, 0x16, 0x01, 0x43, 0xcb, 0x06, 0xc4, 0x16, 0x41, - 0x0a, 0x3b, 0xaa, 0xfc, 0x09, 0x05, 0x2a, 0xa1, 0xc1, 0x03, 0x05, 0xf4, - 0xe8, 0x01, 0xff, 0x07, 0xc1, 0x05, 0x91, 0x01, 0x05, 0x52, 0xe5, 0x80, - 0x01, 0x07, 0xf3, 0x15, 0x5c, 0x09, 0x69, 0xbd, 0x40, 0x06, 0x6c, 0x38, - 0x01, 0xff, 0xa1, 0x23, 0xe5, 0xb5, 0xaa, 0x00, 0xe9, 0xb2, 0xaa, 0x80, - 0x16, 0xef, 0xb6, 0xaa, 0x00, 0xf5, 0xb4, 0xaa, 0xc0, 0x00, 0xe1, 0xba, - 0xaa, 0x00, 0xe5, 0xb3, 0xaa, 0xc0, 0x00, 0xe1, 0xb9, 0xaa, 0x40, 0xe1, - 0xb8, 0xaa, 0x40, 0xe1, 0xb1, 0xaa, 0x00, 0xed, 0xbe, 0xaa, 0x00, 0xee, - 0xbd, 0xaa, 0x00, 0x42, 0x87, 0x13, 0xbb, 0xaa, 0x00, 0xf9, 0xbc, 0xaa, - 0x40, 0x42, 0x69, 0x18, 0xbf, 0xaa, 0x00, 0x45, 0x29, 0xe6, 0xc0, 0xaa, - 0x00, 0x44, 0x66, 0xef, 0xc2, 0xaa, 0x00, 0x43, 0xff, 0x07, 0xc1, 0xaa, - 0x40, 0x46, 0x9a, 0xd9, 0xde, 0xaa, 0x00, 0x02, 0x22, 0x03, 0x0c, 0x45, - 0x29, 0xe6, 0xdc, 0xaa, 0x00, 0x43, 0x1f, 0x84, 0xdd, 0xaa, 0x40, 0x45, - 0x21, 0xe4, 0xdf, 0xaa, 0x00, 0xee, 0xdb, 0xaa, 0x40, 0x43, 0x1c, 0x01, - 0xb0, 0xaa, 0x00, 0x43, 0xae, 0x02, 0xb7, 0xaa, 0x40, 0x05, 0xf9, 0x0a, - 0x93, 0x01, 0x04, 0xdd, 0x04, 0x01, 0xff, 0x42, 0x5d, 0x00, 0x9a, 0xaa, - 0x00, 0xa3, 0x7c, 0x42, 0x3b, 0x01, 0x92, 0xaa, 0x00, 0x42, 0x3d, 0x03, - 0xa0, 0xaa, 0x00, 0x42, 0xb7, 0x13, 0x86, 0xaa, 0x00, 0x42, 0x0b, 0x00, - 0xac, 0xaa, 0x00, 0xab, 0x52, 0x42, 0x13, 0x01, 0xa8, 0xaa, 0x00, 0x42, - 0x98, 0x07, 0xa2, 0xaa, 0x00, 0xae, 0x34, 0xef, 0xae, 0xaa, 0x00, 0xb0, - 0x24, 0x42, 0xd0, 0x00, 0xa6, 0xaa, 0x00, 0x42, 0x35, 0x03, 0x8e, 0xaa, - 0x00, 0xb4, 0x0c, 0x42, 0x68, 0x1c, 0xaa, 0xaa, 0x00, 0x42, 0x60, 0x46, - 0xa4, 0xaa, 0x40, 0x42, 0x0b, 0x00, 0x96, 0xaa, 0x00, 0xef, 0x94, 0xaa, - 0x40, 0x42, 0x0b, 0x00, 0x9e, 0xaa, 0x00, 0xef, 0x9c, 0xaa, 0x40, 0x42, - 0xb7, 0x13, 0x88, 0xaa, 0x00, 0xef, 0x98, 0xaa, 0x00, 0x42, 0x60, 0x46, - 0x90, 0xaa, 0x40, 0xa8, 0x04, 0xef, 0x80, 0xaa, 0x40, 0x42, 0x0b, 0x00, - 0x84, 0xaa, 0x00, 0xef, 0x82, 0xaa, 0x40, 0x42, 0x0b, 0x00, 0x8c, 0xaa, - 0x00, 0xef, 0x8a, 0xaa, 0x40, 0x42, 0x5d, 0x00, 0x9b, 0xaa, 0x00, 0xa3, - 0x7c, 0x42, 0x3b, 0x01, 0x93, 0xaa, 0x00, 0x42, 0x3d, 0x03, 0xa1, 0xaa, - 0x00, 0x42, 0xb7, 0x13, 0x87, 0xaa, 0x00, 0x42, 0x0b, 0x00, 0xad, 0xaa, - 0x00, 0xab, 0x52, 0x42, 0x13, 0x01, 0xa9, 0xaa, 0x00, 0x42, 0x98, 0x07, - 0xa3, 0xaa, 0x00, 0xae, 0x34, 0xef, 0xaf, 0xaa, 0x00, 0xb0, 0x24, 0x42, - 0xd0, 0x00, 0xa7, 0xaa, 0x00, 0x42, 0x35, 0x03, 0x8f, 0xaa, 0x00, 0xb4, - 0x0c, 0x42, 0x68, 0x1c, 0xab, 0xaa, 0x00, 0x42, 0x60, 0x46, 0xa5, 0xaa, - 0x40, 0x42, 0x0b, 0x00, 0x97, 0xaa, 0x00, 0xef, 0x95, 0xaa, 0x40, 0x42, - 0x0b, 0x00, 0x9f, 0xaa, 0x00, 0xef, 0x9d, 0xaa, 0x40, 0x42, 0xb7, 0x13, - 0x89, 0xaa, 0x00, 0xef, 0x99, 0xaa, 0x00, 0x42, 0x60, 0x46, 0x91, 0xaa, - 0x40, 0xa8, 0x04, 0xef, 0x81, 0xaa, 0x40, 0x42, 0x0b, 0x00, 0x85, 0xaa, - 0x00, 0xef, 0x83, 0xaa, 0x40, 0x42, 0x0b, 0x00, 0x8d, 0xaa, 0x00, 0xef, - 0x8b, 0xaa, 0x40, 0x02, 0xe8, 0x04, 0xe9, 0x05, 0x0b, 0xef, 0x9a, 0xa2, - 0x05, 0x07, 0xc1, 0x05, 0xdd, 0x02, 0x05, 0x2f, 0x03, 0xac, 0x01, 0x0b, - 0x2a, 0xa1, 0x66, 0x0b, 0xd1, 0x75, 0x01, 0xff, 0xe1, 0x61, 0x1a, 0x80, - 0x50, 0xe5, 0x6e, 0x1a, 0x00, 0xe9, 0x65, 0x1a, 0x80, 0x43, 0x47, 0x42, - 0xd0, 0x62, 0x1a, 0x00, 0xef, 0x6b, 0x1a, 0x80, 0x20, 0xb4, 0x12, 0xf5, - 0x69, 0x1a, 0xc0, 0x00, 0xe5, 0x67, 0x1a, 0x00, 0xf5, 0x6a, 0x1a, 0xc0, - 0x00, 0xe5, 0x68, 0x1a, 0x40, 0x46, 0x61, 0xd3, 0x64, 0x1a, 0x00, 0x46, - 0x52, 0xd9, 0x72, 0x1a, 0x40, 0x02, 0x5a, 0x00, 0x08, 0xef, 0x70, 0x1a, - 0x00, 0xf9, 0x6d, 0x1a, 0x40, 0x45, 0x5c, 0x00, 0x73, 0x1a, 0x00, 0x45, - 0xf5, 0x06, 0x6c, 0x1a, 0x40, 0xe9, 0x66, 0x1a, 0x40, 0xe1, 0x63, 0x1a, - 0x00, 0xe5, 0x6f, 0x1a, 0x00, 0xe9, 0x71, 0x1a, 0x40, 0x45, 0xc3, 0x0a, - 0x98, 0x1a, 0x00, 0xa6, 0x2e, 0x44, 0x46, 0x2a, 0x99, 0x1a, 0x00, 0x43, - 0xbf, 0x0a, 0x91, 0x1a, 0x00, 0xb3, 0x14, 0xb4, 0x06, 0x44, 0xa1, 0x1d, - 0x90, 0x1a, 0x40, 0x44, 0x25, 0x01, 0x93, 0x1a, 0x00, 0x42, 0x15, 0x02, - 0x92, 0x1a, 0x40, 0x44, 0x27, 0x1d, 0x97, 0x1a, 0x00, 0x42, 0x60, 0x25, - 0x96, 0x1a, 0x40, 0x43, 0xa7, 0x05, 0x95, 0x1a, 0x00, 0x43, 0xcb, 0x06, - 0x94, 0x1a, 0x40, 0x45, 0xd3, 0xe1, 0xad, 0x1a, 0x00, 0x46, 0x14, 0xd8, - 0xa5, 0x1a, 0x00, 0xa8, 0x91, 0x01, 0xab, 0x61, 0x04, 0x6d, 0x44, 0x44, - 0xb2, 0x36, 0x02, 0x15, 0x06, 0x19, 0x05, 0x05, 0x31, 0x0d, 0x45, 0xf9, - 0x06, 0xa0, 0x1a, 0xc0, 0x00, 0x44, 0xc6, 0xef, 0xa1, 0x1a, 0x40, 0xd1, - 0x75, 0x1a, 0x00, 0xd2, 0x76, 0x1a, 0x40, 0x43, 0x49, 0x8c, 0x60, 0x1a, - 0x00, 0x45, 0x2c, 0xe8, 0xaa, 0x1a, 0x80, 0x06, 0x43, 0xb9, 0x19, 0xa2, - 0x1a, 0x40, 0x43, 0x6c, 0x74, 0xab, 0x1a, 0x40, 0x46, 0x7c, 0xd6, 0x7a, - 0x1a, 0x00, 0x54, 0x23, 0x41, 0xa6, 0x1a, 0x40, 0x44, 0x8a, 0xa5, 0x74, - 0x1a, 0x80, 0x0c, 0x43, 0x1f, 0x84, 0x7b, 0x1a, 0x00, 0x45, 0x53, 0xe9, - 0xa7, 0x1a, 0x40, 0x44, 0xee, 0x42, 0x58, 0x1a, 0x40, 0x43, 0x31, 0x12, - 0xa8, 0x1a, 0x80, 0x21, 0x43, 0x1d, 0x53, 0xa3, 0x1a, 0x00, 0x04, 0x22, - 0xed, 0x01, 0xff, 0x06, 0x04, 0x31, 0x06, 0x4a, 0x73, 0xa4, 0x7c, 0x1a, - 0x40, 0xd3, 0x77, 0x1a, 0x00, 0xd4, 0x78, 0x1a, 0x00, 0xd5, 0x79, 0x1a, - 0x40, 0x43, 0x6c, 0x74, 0xa9, 0x1a, 0x40, 0x43, 0x1c, 0x01, 0xac, 0x1a, - 0x00, 0x42, 0xdc, 0x67, 0xa4, 0x1a, 0x40, 0xe1, 0x4b, 0x1a, 0x00, 0x42, - 0x16, 0x00, 0x37, 0x1a, 0x00, 0x42, 0xa1, 0x10, 0x2f, 0x1a, 0x00, 0x42, - 0x27, 0x01, 0x51, 0x1a, 0x00, 0x48, 0xf2, 0xc3, 0x54, 0x1a, 0x00, 0x05, - 0xf9, 0x0a, 0xbf, 0x01, 0xe9, 0x4d, 0x1a, 0x80, 0xb5, 0x01, 0xac, 0x46, - 0x42, 0x6c, 0x00, 0x3e, 0x1a, 0x00, 0xae, 0x2e, 0x42, 0x69, 0x05, 0x52, - 0x1a, 0x00, 0xb2, 0x0f, 0xf5, 0x4f, 0x1a, 0x80, 0x06, 0x42, 0xa9, 0x01, - 0x45, 0x1a, 0x40, 0xf5, 0x50, 0x1a, 0x40, 0xe1, 0x41, 0x1a, 0x80, 0x06, - 0x42, 0x87, 0x13, 0x42, 0x1a, 0x40, 0x42, 0xff, 0x04, 0x31, 0x1a, 0x00, - 0x42, 0x12, 0x00, 0x2d, 0x1a, 0x40, 0xe1, 0x36, 0x1a, 0x00, 0x42, 0x24, - 0x02, 0x26, 0x1a, 0x00, 0x42, 0x34, 0x22, 0x2c, 0x1a, 0x40, 0xe1, 0x43, - 0x1a, 0x80, 0x64, 0x42, 0x74, 0x00, 0x4a, 0x1a, 0x00, 0x03, 0xd1, 0x00, - 0x06, 0x42, 0x87, 0x13, 0x44, 0x1a, 0x40, 0xa3, 0x48, 0x42, 0xe1, 0x07, - 0x3c, 0x1a, 0x00, 0x42, 0x22, 0x00, 0x4c, 0x1a, 0x00, 0xab, 0x2a, 0xb0, - 0x1e, 0x45, 0xdc, 0x41, 0x30, 0x1a, 0x00, 0x42, 0x15, 0x06, 0x2a, 0x1a, - 0x00, 0xb4, 0x06, 0x42, 0x34, 0x22, 0x3f, 0x1a, 0x40, 0xe1, 0x34, 0x1a, - 0x00, 0x42, 0x22, 0x00, 0x35, 0x1a, 0x40, 0xe1, 0x3b, 0x1a, 0x00, 0x42, - 0x22, 0x00, 0x3d, 0x1a, 0x40, 0xe1, 0x23, 0x1a, 0x00, 0x42, 0x22, 0x00, - 0x25, 0x1a, 0x00, 0x42, 0x4c, 0x26, 0x24, 0x1a, 0x40, 0xe1, 0x29, 0x1a, - 0x00, 0x42, 0x22, 0x00, 0x2b, 0x1a, 0x40, 0xe5, 0x53, 0x1a, 0x40, 0xe9, - 0x4e, 0x1a, 0x40, 0xa3, 0x54, 0x42, 0xe1, 0x07, 0x3a, 0x1a, 0x00, 0x42, - 0x22, 0x00, 0x49, 0x1a, 0x00, 0xab, 0x36, 0xb0, 0x2a, 0x45, 0xdc, 0x41, - 0x2e, 0x1a, 0x00, 0xb3, 0x12, 0xb4, 0x06, 0x42, 0x34, 0x22, 0x40, 0x1a, - 0x40, 0xe1, 0x32, 0x1a, 0x00, 0x42, 0x22, 0x00, 0x33, 0x1a, 0x40, 0xe1, - 0x48, 0x1a, 0x00, 0x42, 0x22, 0x00, 0x46, 0x1a, 0x00, 0x42, 0x15, 0x06, - 0x47, 0x1a, 0x40, 0xe1, 0x38, 0x1a, 0x00, 0x42, 0x22, 0x00, 0x39, 0x1a, - 0x40, 0xe1, 0x20, 0x1a, 0x00, 0x42, 0x22, 0x00, 0x21, 0x1a, 0x00, 0x42, - 0x4c, 0x26, 0x22, 0x1a, 0x40, 0xe1, 0x27, 0x1a, 0x00, 0x42, 0x22, 0x00, - 0x28, 0x1a, 0x40, 0x45, 0xc3, 0x0a, 0x88, 0x1a, 0x00, 0xa6, 0x2e, 0x44, - 0x46, 0x2a, 0x89, 0x1a, 0x00, 0x43, 0xbf, 0x0a, 0x81, 0x1a, 0x00, 0xb3, - 0x14, 0xb4, 0x06, 0x44, 0xa1, 0x1d, 0x80, 0x1a, 0x40, 0x44, 0x25, 0x01, - 0x83, 0x1a, 0x00, 0x42, 0x15, 0x02, 0x82, 0x1a, 0x40, 0x44, 0x27, 0x1d, - 0x87, 0x1a, 0x00, 0x42, 0x60, 0x25, 0x86, 0x1a, 0x40, 0x43, 0xa7, 0x05, - 0x85, 0x1a, 0x00, 0x43, 0xcb, 0x06, 0x84, 0x1a, 0x40, 0x59, 0x42, 0x24, - 0x7f, 0x1a, 0x00, 0x0d, 0x6f, 0x32, 0x01, 0xff, 0x42, 0x16, 0x00, 0x5d, - 0x1a, 0x00, 0x49, 0x97, 0xb6, 0x59, 0x1a, 0x00, 0x54, 0xd7, 0x41, 0x5b, - 0x1a, 0x00, 0xac, 0x1d, 0xad, 0x06, 0x42, 0x15, 0x06, 0x5e, 0x1a, 0x40, - 0xe1, 0x5c, 0x1a, 0x00, 0x06, 0x7d, 0x32, 0x01, 0xff, 0x42, 0x74, 0x00, - 0x56, 0x1a, 0x00, 0x42, 0x71, 0x00, 0x55, 0x1a, 0x40, 0x4a, 0xff, 0xa4, - 0x57, 0x1a, 0x00, 0x45, 0xc0, 0x34, 0x5a, 0x1a, 0x40, 0xe1, 0x63, 0x19, - 0x80, 0xb0, 0x01, 0xe5, 0x6b, 0x19, 0x80, 0xa2, 0x01, 0x42, 0xe1, 0x07, - 0x5c, 0x19, 0x00, 0x42, 0x22, 0x00, 0x5e, 0x19, 0x00, 0xe9, 0x64, 0x19, - 0x00, 0xab, 0x85, 0x01, 0x42, 0x74, 0x00, 0x58, 0x19, 0x00, 0x42, 0x6c, - 0x00, 0x5b, 0x19, 0x00, 0xae, 0x6d, 0xef, 0x69, 0x19, 0x80, 0x64, 0xb0, - 0x58, 0x42, 0xf4, 0x13, 0x5f, 0x19, 0x00, 0x42, 0x15, 0x06, 0x54, 0x19, - 0x00, 0xb4, 0x1b, 0xf5, 0x67, 0x19, 0x80, 0x12, 0x42, 0xa6, 0x0a, 0x5d, - 0x19, 0x00, 0x42, 0x4c, 0x26, 0x51, 0x19, 0x00, 0x42, 0x34, 0x22, 0x55, - 0x19, 0x40, 0xe5, 0x6a, 0x19, 0x40, 0xe1, 0x56, 0x19, 0x00, 0x42, 0x22, - 0x00, 0x57, 0x19, 0x00, 0x04, 0x5e, 0x1f, 0x0d, 0xb3, 0x01, 0xff, 0xe1, - 0x53, 0x19, 0x00, 0x42, 0x22, 0x00, 0x61, 0x19, 0x40, 0xd2, 0x70, 0x19, - 0x00, 0xd3, 0x71, 0x19, 0x00, 0xd4, 0x72, 0x19, 0x00, 0xd5, 0x73, 0x19, - 0x00, 0xd6, 0x74, 0x19, 0x40, 0xe1, 0x59, 0x19, 0x00, 0x42, 0x22, 0x00, - 0x5a, 0x19, 0x40, 0xef, 0x68, 0x19, 0x40, 0xe1, 0x62, 0x19, 0x00, 0x42, - 0x24, 0x02, 0x52, 0x19, 0x40, 0xe1, 0x50, 0x19, 0x00, 0x42, 0x22, 0x00, - 0x60, 0x19, 0x40, 0xe5, 0x65, 0x19, 0x00, 0xe8, 0x66, 0x19, 0x40, 0xe9, - 0x6d, 0x19, 0x00, 0x42, 0x87, 0x13, 0x6c, 0x19, 0x40, 0x80, 0x82, 0x02, - 0x05, 0x29, 0xe1, 0x70, 0x06, 0x2a, 0xd7, 0x01, 0xff, 0x07, 0xc1, 0x05, - 0x0d, 0x0b, 0xd1, 0x75, 0x01, 0xff, 0xe9, 0x72, 0x17, 0x00, 0xf5, 0x73, - 0x17, 0x40, 0xe1, 0x60, 0x17, 0x00, 0x42, 0x16, 0x00, 0x6a, 0x17, 0x00, - 0x42, 0xa1, 0x10, 0x67, 0x17, 0x00, 0x42, 0x24, 0x02, 0x64, 0x17, 0x00, - 0xe9, 0x61, 0x17, 0x00, 0x42, 0x1b, 0x02, 0x63, 0x17, 0x00, 0x42, 0x74, - 0x00, 0x6e, 0x17, 0x00, 0x42, 0x6c, 0x00, 0x6b, 0x17, 0x00, 0xae, 0x22, - 0x42, 0x6c, 0x09, 0x69, 0x17, 0x00, 0x42, 0x15, 0x06, 0x70, 0x17, 0x00, - 0x42, 0x12, 0x00, 0x66, 0x17, 0x00, 0xf5, 0x62, 0x17, 0x00, 0x42, 0xa9, - 0x01, 0x6f, 0x17, 0x00, 0x42, 0x34, 0x22, 0x6c, 0x17, 0x40, 0xe1, 0x68, - 0x17, 0x00, 0x42, 0x24, 0x02, 0x65, 0x17, 0x40, 0x07, 0xc1, 0x05, 0x1d, - 0x05, 0x2f, 0x03, 0x0d, 0x0b, 0xd1, 0x75, 0x01, 0xff, 0xe9, 0x12, 0x17, - 0x00, 0xf5, 0x13, 0x17, 0x40, 0x48, 0xfe, 0x86, 0x15, 0x17, 0x00, 0x46, - 0x5b, 0x23, 0x14, 0x17, 0x40, 0xe1, 0x00, 0x17, 0x80, 0x62, 0x42, 0x16, - 0x00, 0x0a, 0x17, 0x00, 0x42, 0xa1, 0x10, 0x07, 0x17, 0x00, 0x42, 0x24, - 0x02, 0x04, 0x17, 0x00, 0x42, 0x22, 0x00, 0x11, 0x17, 0x00, 0xe9, 0x01, - 0x17, 0x00, 0x42, 0x1b, 0x02, 0x03, 0x17, 0x00, 0x42, 0x74, 0x00, 0x0e, - 0x17, 0x00, 0x42, 0x6c, 0x00, 0x0b, 0x17, 0x00, 0xae, 0x28, 0x42, 0x6c, - 0x09, 0x09, 0x17, 0x00, 0x42, 0x71, 0x00, 0x0d, 0x17, 0x00, 0x42, 0x15, - 0x06, 0x10, 0x17, 0x00, 0x42, 0x12, 0x00, 0x06, 0x17, 0x00, 0xf5, 0x02, - 0x17, 0x00, 0x42, 0xa9, 0x01, 0x0f, 0x17, 0x00, 0x42, 0x34, 0x22, 0x0c, - 0x17, 0x40, 0xe1, 0x08, 0x17, 0x00, 0x42, 0x24, 0x02, 0x05, 0x17, 0x40, - 0x49, 0x0a, 0xbc, 0x1f, 0x17, 0x40, 0xa1, 0x82, 0x04, 0xa3, 0xe1, 0x03, - 0xa4, 0x92, 0x03, 0xa5, 0x83, 0x03, 0x49, 0x15, 0x16, 0x2e, 0x00, 0x0e, - 0x02, 0x87, 0x00, 0xec, 0x02, 0x4c, 0x15, 0x8e, 0x2d, 0x00, 0x0e, 0xac, - 0x63, 0x4b, 0x12, 0x9e, 0x23, 0x00, 0x0e, 0xb0, 0x4f, 0x02, 0x7c, 0x00, - 0x3f, 0xb2, 0x20, 0xb3, 0x0c, 0x45, 0xad, 0x22, 0x7e, 0x00, 0x0e, 0x4d, - 0x7e, 0x0b, 0x7c, 0x00, 0x4e, 0x48, 0x6f, 0x58, 0x3b, 0x00, 0x0e, 0x46, - 0x6a, 0x30, 0x2f, 0x00, 0x0e, 0x44, 0x88, 0x4b, 0x20, 0x00, 0x4e, 0x4e, - 0xcd, 0x70, 0x5c, 0x00, 0x0e, 0x05, 0xc9, 0x00, 0x01, 0xff, 0x4d, 0x23, - 0x0b, 0x7d, 0x00, 0x0e, 0x4b, 0x50, 0x21, 0x29, 0x00, 0x0e, 0x4e, 0x27, - 0x26, 0x5d, 0x00, 0x4e, 0x4b, 0xd8, 0x33, 0x3f, 0x00, 0x0e, 0x4c, 0xf0, - 0x04, 0x22, 0x00, 0x4e, 0x4b, 0xc6, 0x99, 0x25, 0x00, 0x0e, 0x48, 0x46, - 0x70, 0x2b, 0x00, 0x4e, 0x05, 0xb4, 0x05, 0x24, 0xa5, 0x06, 0x47, 0xac, - 0x88, 0x5f, 0x00, 0x4e, 0x03, 0xc5, 0x00, 0x06, 0x4c, 0x9d, 0x93, 0x3c, - 0x00, 0x4e, 0x4d, 0x23, 0x0b, 0x7b, 0x00, 0x0e, 0x4b, 0x50, 0x21, 0x28, - 0x00, 0x0e, 0x4e, 0x27, 0x26, 0x5b, 0x00, 0x4e, 0x0f, 0xb9, 0x05, 0x6d, - 0x0d, 0x4b, 0x08, 0x01, 0xff, 0xe1, 0x61, 0x00, 0x0e, 0xe2, 0x62, 0x00, - 0x0e, 0xe3, 0x63, 0x00, 0x0e, 0xe4, 0x64, 0x00, 0x0e, 0xe5, 0x65, 0x00, - 0x0e, 0xe6, 0x66, 0x00, 0x0e, 0xe7, 0x67, 0x00, 0x0e, 0xe8, 0x68, 0x00, - 0x0e, 0xe9, 0x69, 0x00, 0x0e, 0xea, 0x6a, 0x00, 0x0e, 0xeb, 0x6b, 0x00, - 0x0e, 0xec, 0x6c, 0x00, 0x0e, 0xed, 0x6d, 0x00, 0x0e, 0xee, 0x6e, 0x00, - 0x0e, 0xef, 0x6f, 0x00, 0x0e, 0xf0, 0x70, 0x00, 0x0e, 0xf1, 0x71, 0x00, - 0x0e, 0xf2, 0x72, 0x00, 0x0e, 0xf3, 0x73, 0x00, 0x0e, 0xf4, 0x74, 0x00, - 0x0e, 0xf5, 0x75, 0x00, 0x0e, 0xf6, 0x76, 0x00, 0x0e, 0xf7, 0x77, 0x00, - 0x0e, 0xf8, 0x78, 0x00, 0x0e, 0xf9, 0x79, 0x00, 0x0e, 0xfa, 0x7a, 0x00, - 0x4e, 0xe1, 0x41, 0x00, 0x0e, 0xe2, 0x42, 0x00, 0x0e, 0xe3, 0x43, 0x00, - 0x0e, 0xe4, 0x44, 0x00, 0x0e, 0xe5, 0x45, 0x00, 0x0e, 0xe6, 0x46, 0x00, - 0x0e, 0xe7, 0x47, 0x00, 0x0e, 0xe8, 0x48, 0x00, 0x0e, 0xe9, 0x49, 0x00, - 0x0e, 0xea, 0x4a, 0x00, 0x0e, 0xeb, 0x4b, 0x00, 0x0e, 0xec, 0x4c, 0x00, - 0x0e, 0xed, 0x4d, 0x00, 0x0e, 0xee, 0x4e, 0x00, 0x0e, 0xef, 0x4f, 0x00, - 0x0e, 0xf0, 0x50, 0x00, 0x0e, 0xf1, 0x51, 0x00, 0x0e, 0xf2, 0x52, 0x00, - 0x0e, 0xf3, 0x53, 0x00, 0x0e, 0xf4, 0x54, 0x00, 0x0e, 0xf5, 0x55, 0x00, - 0x0e, 0xf6, 0x56, 0x00, 0x0e, 0xf7, 0x57, 0x00, 0x0e, 0xf8, 0x58, 0x00, - 0x0e, 0xf9, 0x59, 0x00, 0x0e, 0xfa, 0x5a, 0x00, 0x4e, 0x4a, 0x8f, 0x22, - 0x60, 0x00, 0x0e, 0x4f, 0xf9, 0x58, 0x3e, 0x00, 0x4e, 0x4a, 0xfa, 0x12, - 0x3d, 0x00, 0x0e, 0x4f, 0xae, 0x00, 0x21, 0x00, 0x4e, 0x05, 0xc5, 0x06, - 0x06, 0x4a, 0xf6, 0x98, 0x24, 0x00, 0x4e, 0x45, 0xc3, 0x0a, 0x38, 0x00, - 0x0e, 0xa6, 0x2e, 0x44, 0x46, 0x2a, 0x39, 0x00, 0x0e, 0x43, 0xbf, 0x0a, - 0x31, 0x00, 0x0e, 0xb3, 0x14, 0xb4, 0x06, 0x44, 0xa1, 0x1d, 0x30, 0x00, - 0x4e, 0x44, 0x25, 0x01, 0x33, 0x00, 0x0e, 0x42, 0x15, 0x02, 0x32, 0x00, - 0x4e, 0x44, 0x27, 0x1d, 0x37, 0x00, 0x0e, 0x42, 0x60, 0x25, 0x36, 0x00, - 0x4e, 0x43, 0xa7, 0x05, 0x35, 0x00, 0x0e, 0x43, 0xcb, 0x06, 0x34, 0x00, - 0x4e, 0x50, 0xa5, 0x04, 0x5e, 0x00, 0x0e, 0xaf, 0x01, 0xff, 0x43, 0x03, - 0x12, 0x3a, 0x00, 0x0e, 0x02, 0xea, 0x04, 0x01, 0xff, 0xe1, 0x2c, 0x00, - 0x0e, 0x49, 0x34, 0xb6, 0x40, 0x00, 0x4e, 0x48, 0x2e, 0x3d, 0x26, 0x00, - 0x0e, 0x49, 0x92, 0x35, 0x27, 0x00, 0x0e, 0x47, 0xee, 0x0c, 0x2a, 0x00, - 0x4e, 0x43, 0x2f, 0x76, 0x96, 0xf9, 0x01, 0x45, 0x1d, 0x49, 0x55, 0xf4, - 0x41, 0x4c, 0x59, 0x89, 0xcc, 0x29, 0x00, 0xa1, 0xd3, 0x83, 0x01, 0xa3, - 0xb6, 0x82, 0x01, 0xa5, 0xe0, 0x7d, 0xa8, 0xb7, 0x74, 0xa9, 0xec, 0x3d, - 0xab, 0xbf, 0x3d, 0xac, 0x95, 0x3c, 0xad, 0xdf, 0x37, 0xae, 0xa4, 0x37, - 0xaf, 0xc8, 0x2c, 0xb0, 0xd0, 0x2a, 0x02, 0x7c, 0x00, 0xbe, 0x18, 0xb4, - 0xf4, 0x15, 0xb5, 0xa8, 0x0a, 0xb7, 0x8d, 0x0a, 0xb9, 0x01, 0xff, 0x0b, - 0xc8, 0x9c, 0xfa, 0x07, 0xad, 0xb2, 0x05, 0xae, 0xa3, 0x05, 0x02, 0x0d, - 0x00, 0x01, 0xff, 0x03, 0xc3, 0x71, 0x06, 0x43, 0x8b, 0x09, 0x89, 0xf4, - 0x41, 0x51, 0xb0, 0x4e, 0x0f, 0x07, 0x00, 0x47, 0x9f, 0xcc, 0x4a, 0x07, - 0x00, 0x02, 0xe8, 0x04, 0xed, 0x04, 0x0d, 0x6c, 0x80, 0xdc, 0x04, 0xa5, - 0xc2, 0x04, 0x4c, 0x25, 0x8d, 0x40, 0x07, 0x00, 0xa8, 0x85, 0x04, 0x07, - 0xc1, 0x05, 0xca, 0x01, 0x45, 0x60, 0x27, 0x49, 0x07, 0x00, 0x0d, 0xf1, - 0x84, 0xb3, 0x01, 0x07, 0x17, 0xd2, 0x9c, 0x01, 0x49, 0xef, 0xbb, 0x41, - 0x07, 0x00, 0xb2, 0x78, 0x02, 0x6f, 0x00, 0x3a, 0xb4, 0x17, 0x07, 0x19, - 0xd5, 0x01, 0xff, 0x45, 0x5c, 0x00, 0x33, 0x07, 0x00, 0x45, 0xf5, 0x06, - 0x34, 0x07, 0x00, 0x46, 0x0e, 0x1f, 0x35, 0x07, 0x40, 0x0a, 0x5f, 0x12, - 0x11, 0x11, 0x36, 0x5e, 0x01, 0xff, 0x45, 0x5c, 0x00, 0x43, 0x07, 0x00, - 0x45, 0xf5, 0x06, 0x44, 0x07, 0x40, 0x45, 0x5c, 0x00, 0x45, 0x07, 0x00, - 0x45, 0xf5, 0x06, 0x46, 0x07, 0x40, 0x08, 0xb2, 0xc1, 0x18, 0x0a, 0x79, - 0xad, 0x01, 0xff, 0x45, 0xc4, 0x3a, 0x03, 0x07, 0x80, 0x06, 0x49, 0x15, - 0x16, 0x01, 0x07, 0x40, 0x4c, 0xb9, 0x89, 0x08, 0x07, 0x40, 0x45, 0xc4, - 0x3a, 0x04, 0x07, 0x80, 0x06, 0x49, 0x15, 0x16, 0x02, 0x07, 0x40, 0x08, - 0xb9, 0x89, 0x01, 0xff, 0x44, 0xc3, 0x00, 0x09, 0x07, 0x00, 0x45, 0xc8, - 0x00, 0x09, 0x07, 0x40, 0x05, 0x92, 0xe1, 0x0c, 0x47, 0xe5, 0xd3, 0x42, - 0x07, 0x00, 0x44, 0xce, 0xef, 0x3f, 0x07, 0x40, 0x45, 0x5c, 0x00, 0x36, - 0x07, 0x00, 0x45, 0xf5, 0x06, 0x37, 0x07, 0x40, 0x45, 0x5c, 0x00, 0x30, - 0x07, 0x00, 0x45, 0xf5, 0x06, 0x31, 0x07, 0x00, 0x46, 0x0e, 0x1f, 0x32, - 0x07, 0x40, 0x45, 0x5c, 0x00, 0x47, 0x07, 0x00, 0x45, 0xf5, 0x06, 0x48, - 0x07, 0x40, 0x45, 0xc5, 0x66, 0x10, 0x07, 0x00, 0x44, 0x0a, 0xec, 0x12, - 0x07, 0x00, 0xa4, 0x9b, 0x02, 0xe5, 0x25, 0x07, 0x00, 0x4d, 0x56, 0x81, - 0x24, 0x07, 0x00, 0x45, 0x77, 0xe3, 0x13, 0x07, 0x80, 0x83, 0x02, 0x42, - 0xb0, 0x01, 0x17, 0x07, 0x80, 0xf5, 0x01, 0x44, 0x8e, 0xed, 0x1f, 0x07, - 0x00, 0x46, 0x96, 0xda, 0x20, 0x07, 0x00, 0xad, 0x96, 0x01, 0x43, 0x54, - 0x22, 0x22, 0x07, 0x00, 0x42, 0x6f, 0x02, 0x26, 0x07, 0x80, 0x72, 0x44, - 0x1a, 0xd5, 0x29, 0x07, 0x00, 0xb2, 0x5e, 0xb3, 0x2e, 0xb4, 0x19, 0x43, - 0xc0, 0x88, 0x18, 0x07, 0x00, 0x44, 0xf2, 0xef, 0x1d, 0x07, 0x80, 0x06, - 0x44, 0x9c, 0x73, 0x19, 0x07, 0x40, 0x43, 0xbd, 0x14, 0x1e, 0x07, 0x40, - 0x42, 0x9a, 0x43, 0x2c, 0x07, 0x00, 0x43, 0x39, 0x25, 0x1b, 0x07, 0xc0, - 0x00, 0x49, 0x05, 0xb2, 0x1c, 0x07, 0x40, 0x44, 0x88, 0xe7, 0x28, 0x07, - 0x00, 0x46, 0x5d, 0x81, 0x23, 0x07, 0x00, 0x43, 0x0e, 0x16, 0x2b, 0x07, - 0x00, 0x07, 0xf1, 0xd0, 0x06, 0x50, 0xba, 0x66, 0x11, 0x07, 0x40, 0x42, - 0xa0, 0x19, 0x4f, 0x07, 0x00, 0x45, 0xc1, 0xe4, 0x4e, 0x07, 0x00, 0x45, - 0x71, 0xe9, 0x4d, 0x07, 0x40, 0x4a, 0xf7, 0xa7, 0x27, 0x07, 0x00, 0x43, - 0x82, 0x0c, 0x2a, 0x07, 0x40, 0x06, 0xb2, 0xdc, 0x01, 0xff, 0x45, 0xb0, - 0xe1, 0x2d, 0x07, 0x00, 0x47, 0x7f, 0xcd, 0x2f, 0x07, 0x00, 0x46, 0x0a, - 0xd9, 0x2e, 0x07, 0x40, 0x09, 0x91, 0xb3, 0x06, 0x42, 0x29, 0x02, 0x21, - 0x07, 0x40, 0x43, 0x50, 0x2a, 0x66, 0x08, 0x00, 0x42, 0xbd, 0x26, 0x61, - 0x08, 0x00, 0x02, 0x0f, 0x07, 0x2c, 0xae, 0x12, 0x42, 0x71, 0x00, 0x67, - 0x08, 0x00, 0x43, 0x59, 0x20, 0x6a, 0x08, 0x00, 0x43, 0x30, 0x28, 0x63, - 0x08, 0x40, 0x42, 0x24, 0x02, 0x60, 0x08, 0x00, 0xae, 0x06, 0x42, 0x34, - 0x22, 0x62, 0x08, 0x40, 0xe1, 0x64, 0x08, 0x00, 0x42, 0xff, 0x04, 0x65, - 0x08, 0x40, 0xe1, 0x68, 0x08, 0x00, 0x42, 0x74, 0x00, 0x69, 0x08, 0x40, - 0x42, 0x53, 0x00, 0x1a, 0x07, 0x40, 0x49, 0x05, 0xb2, 0x14, 0x07, 0x40, - 0x45, 0xf0, 0x52, 0x15, 0x07, 0x00, 0x52, 0xe8, 0x52, 0x16, 0x07, 0x40, - 0x08, 0xfa, 0xc0, 0x1e, 0x04, 0x9c, 0x7f, 0x06, 0x4f, 0xcd, 0x6f, 0x05, - 0x07, 0x40, 0x80, 0x06, 0x4d, 0x98, 0x7e, 0x3c, 0x07, 0x40, 0x45, 0x5c, - 0x00, 0x3a, 0x07, 0x00, 0x45, 0xf5, 0x06, 0x3b, 0x07, 0x40, 0x4a, 0xb3, - 0xa5, 0x0d, 0x07, 0x00, 0x49, 0x9d, 0xb9, 0x0c, 0x07, 0x00, 0x46, 0xa0, - 0xb9, 0x0b, 0x07, 0x40, 0x4f, 0xec, 0x6e, 0x00, 0x07, 0x00, 0x05, 0x9a, - 0x7e, 0x01, 0xff, 0x45, 0x5c, 0x00, 0x3d, 0x07, 0x00, 0x45, 0xf5, 0x06, - 0x3e, 0x07, 0x40, 0x47, 0x1c, 0x01, 0x39, 0x07, 0x00, 0x4a, 0x0b, 0x00, - 0x38, 0x07, 0x40, 0x0b, 0xa7, 0x9c, 0x06, 0x49, 0x51, 0xba, 0x0a, 0x07, - 0x40, 0x44, 0xc3, 0x00, 0x06, 0x07, 0x00, 0x45, 0xc8, 0x00, 0x07, 0x07, - 0x40, 0x46, 0xa6, 0xd6, 0x4d, 0xf5, 0x01, 0x4d, 0x80, 0x73, 0x16, 0x00, - 0x40, 0x08, 0xd4, 0x20, 0x06, 0x45, 0x84, 0xe5, 0x2f, 0x23, 0x40, 0x4b, - 0x9d, 0x50, 0x06, 0x24, 0x00, 0xa2, 0xa6, 0x02, 0x02, 0x37, 0x00, 0x95, - 0x02, 0xa4, 0xc7, 0x01, 0xa5, 0x96, 0x01, 0xa6, 0x87, 0x01, 0x4f, 0x0d, - 0x6c, 0x1d, 0x24, 0x00, 0x55, 0x08, 0x3b, 0x09, 0x24, 0x00, 0x49, 0x2c, - 0x20, 0x0a, 0x24, 0x00, 0x4d, 0xed, 0x83, 0x45, 0xf5, 0x01, 0xae, 0x59, - 0x50, 0xda, 0x64, 0x1e, 0x24, 0x00, 0xb3, 0x12, 0x52, 0xaa, 0x54, 0x97, - 0x2b, 0x00, 0x4e, 0x96, 0x7c, 0x1f, 0x24, 0x00, 0x53, 0x8d, 0x4d, 0x0b, - 0x24, 0x40, 0x4f, 0x1f, 0x69, 0x4f, 0x21, 0x00, 0x05, 0xa0, 0xa9, 0x29, - 0x44, 0x88, 0x4b, 0x20, 0x24, 0x00, 0x08, 0x24, 0x4c, 0x13, 0x49, 0xa8, - 0xbd, 0x1a, 0x24, 0x80, 0x06, 0x4f, 0x7e, 0x73, 0x16, 0x24, 0x40, 0x49, - 0x52, 0x2d, 0x26, 0x24, 0x40, 0x47, 0xac, 0xce, 0x01, 0x24, 0x00, 0x44, - 0x96, 0x2f, 0x02, 0x24, 0x40, 0x42, 0x9e, 0x01, 0x0f, 0x24, 0x00, 0x43, - 0xfd, 0x07, 0x0e, 0x24, 0x40, 0xa5, 0x06, 0x43, 0x16, 0x16, 0x00, 0x24, - 0x40, 0x52, 0x96, 0x50, 0x15, 0x24, 0x00, 0x45, 0x2b, 0x20, 0x24, 0x24, - 0x40, 0x4d, 0x81, 0x82, 0x1c, 0x24, 0x00, 0x48, 0xc2, 0xc6, 0x0c, 0x24, - 0x40, 0xae, 0x06, 0x45, 0x56, 0x69, 0x1b, 0x24, 0x40, 0x05, 0x17, 0x05, - 0x06, 0x45, 0xfb, 0xe6, 0x05, 0x24, 0x40, 0x46, 0x19, 0x04, 0x19, 0x24, - 0x00, 0xb4, 0x01, 0xff, 0x43, 0xae, 0x06, 0x03, 0x24, 0x00, 0x4b, 0x93, - 0x9f, 0x04, 0x24, 0xc0, 0x00, 0x46, 0x32, 0x01, 0x17, 0x24, 0x40, 0x4f, - 0x4c, 0x69, 0x10, 0x24, 0x00, 0xa5, 0x01, 0xff, 0x44, 0xcd, 0x79, 0x21, - 0x24, 0x80, 0x20, 0x0d, 0x7f, 0x88, 0x01, 0xff, 0x44, 0xca, 0x06, 0x14, - 0x24, 0x00, 0x43, 0xbf, 0x0a, 0x11, 0x24, 0x00, 0xb4, 0x01, 0xff, 0x44, - 0x25, 0x01, 0x13, 0x24, 0x00, 0x42, 0x15, 0x02, 0x12, 0x24, 0x40, 0x80, - 0x01, 0xff, 0x48, 0x53, 0x2d, 0x25, 0x24, 0x00, 0x51, 0xc2, 0x5a, 0x29, - 0x24, 0x00, 0x5e, 0x12, 0x14, 0x28, 0x24, 0x00, 0x59, 0xa0, 0x25, 0x27, - 0x24, 0x40, 0x44, 0x64, 0x2b, 0x18, 0x24, 0x00, 0x4d, 0x6a, 0x86, 0x0d, - 0x24, 0x40, 0x48, 0xa2, 0xc0, 0x08, 0x24, 0x00, 0x43, 0x10, 0x09, 0x07, - 0x24, 0x40, 0x07, 0xc1, 0x05, 0x4d, 0x0c, 0xf9, 0x91, 0x39, 0x05, 0x2f, - 0x03, 0x1b, 0x0b, 0xd1, 0x75, 0x01, 0xff, 0xe1, 0x23, 0xa8, 0x00, 0xe5, - 0x26, 0xa8, 0x00, 0xe9, 0x24, 0xa8, 0x00, 0x42, 0x69, 0x05, 0x27, 0xa8, - 0x00, 0xf5, 0x25, 0xa8, 0x40, 0xa1, 0x0c, 0x48, 0xca, 0xc2, 0x02, 0xa8, - 0x00, 0x47, 0x73, 0x63, 0x06, 0xa8, 0x40, 0x50, 0x6a, 0x63, 0x2c, 0xa8, - 0x00, 0x47, 0xd1, 0x15, 0x0b, 0xa8, 0x40, 0xd1, 0x28, 0xa8, 0x00, 0xd2, - 0x29, 0xa8, 0x00, 0xd3, 0x2a, 0xa8, 0x00, 0xd4, 0x2b, 0xa8, 0x40, 0xe1, - 0x00, 0xa8, 0x00, 0xa2, 0xa9, 0x01, 0xa3, 0x9c, 0x01, 0xa4, 0x83, 0x01, - 0xe5, 0x04, 0xa8, 0x00, 0xa7, 0x73, 0x42, 0x0b, 0x00, 0x22, 0xa8, 0x00, - 0xe9, 0x01, 0xa8, 0x00, 0xaa, 0x5d, 0xab, 0x51, 0x42, 0x13, 0x01, 0x1f, - 0xa8, 0x00, 0x42, 0x98, 0x07, 0x1d, 0xa8, 0x00, 0x42, 0xb4, 0x01, 0x18, - 0xa8, 0x00, 0xef, 0x05, 0xa8, 0x00, 0xb0, 0x2f, 0xb2, 0x23, 0x42, 0x35, - 0x03, 0x21, 0xa8, 0x00, 0xb4, 0x04, 0xf5, 0x03, 0xa8, 0x40, 0x42, 0x0b, - 0x00, 0x15, 0xa8, 0x00, 0xef, 0x14, 0xa8, 0x00, 0xb4, 0x01, 0xff, 0x42, - 0x0b, 0x00, 0x11, 0xa8, 0x00, 0xef, 0x10, 0xa8, 0x40, 0xef, 0x1e, 0xa8, - 0x00, 0x42, 0xd0, 0x00, 0x20, 0xa8, 0x40, 0x42, 0x0b, 0x00, 0x1a, 0xa8, - 0x00, 0xef, 0x19, 0xa8, 0x40, 0x42, 0x0b, 0x00, 0x08, 0xa8, 0x00, 0xef, - 0x07, 0xa8, 0x40, 0x42, 0x0b, 0x00, 0x0f, 0xa8, 0x00, 0xef, 0x0e, 0xa8, - 0x40, 0x42, 0x0b, 0x00, 0x0a, 0xa8, 0x00, 0xef, 0x09, 0xa8, 0x40, 0xa4, - 0x0a, 0x42, 0x0b, 0x00, 0x17, 0xa8, 0x00, 0xef, 0x16, 0xa8, 0x40, 0x42, - 0x0b, 0x00, 0x13, 0xa8, 0x00, 0xef, 0x12, 0xa8, 0x40, 0x42, 0x0b, 0x00, - 0x0d, 0xa8, 0x00, 0xef, 0x0c, 0xa8, 0x40, 0x42, 0x0b, 0x00, 0x1c, 0xa8, - 0x00, 0xef, 0x1b, 0xa8, 0x40, 0xa1, 0x0c, 0x45, 0x5d, 0xe4, 0xca, 0xf3, - 0x01, 0x48, 0x6a, 0xc9, 0x53, 0x20, 0x40, 0xee, 0xa2, 0xf9, 0x01, 0x55, - 0x2a, 0x3d, 0x75, 0xf6, 0x41, 0x02, 0x4c, 0x12, 0xe9, 0x09, 0x46, 0x84, - 0xc8, 0x7b, 0x22, 0x80, 0x91, 0x09, 0x08, 0xba, 0xc5, 0xfa, 0x08, 0xee, - 0x09, 0x26, 0x80, 0xac, 0x02, 0x03, 0x6f, 0x02, 0x1f, 0x02, 0x6e, 0x1b, - 0x0f, 0xb3, 0x01, 0xff, 0x42, 0x49, 0x00, 0x63, 0xf3, 0x01, 0x4f, 0x27, - 0x70, 0x9f, 0xf6, 0x41, 0x4c, 0x31, 0x8a, 0x2f, 0x22, 0x00, 0x42, 0x33, - 0x00, 0xc4, 0xf3, 0x41, 0x44, 0xea, 0xec, 0xb8, 0xf9, 0x01, 0xb3, 0x06, - 0x47, 0x7f, 0xd4, 0xb9, 0xf9, 0x41, 0x06, 0x4a, 0x06, 0x86, 0x01, 0x03, - 0x19, 0x09, 0x01, 0xff, 0x06, 0x5c, 0x00, 0x66, 0x07, 0x43, 0x0a, 0x56, - 0x42, 0xf4, 0x01, 0x83, 0x22, 0x80, 0x1d, 0x51, 0xd2, 0x5b, 0xc9, 0x27, - 0x00, 0x05, 0x51, 0x00, 0x01, 0xff, 0x43, 0xd4, 0x09, 0xbe, 0x2a, 0x00, - 0x59, 0x74, 0x24, 0xc2, 0x2a, 0x00, 0x4f, 0x45, 0x70, 0xc0, 0x2a, 0x40, - 0x80, 0x01, 0xff, 0x06, 0x5c, 0x00, 0x13, 0x4b, 0x52, 0x28, 0x87, 0x22, - 0x80, 0x06, 0x51, 0x25, 0x5e, 0x8b, 0x22, 0x40, 0x4f, 0xa5, 0x3a, 0xc4, - 0x2a, 0x40, 0x4f, 0x10, 0x69, 0xca, 0x2a, 0x00, 0x4b, 0xf9, 0x12, 0xc6, - 0x2a, 0x00, 0x4c, 0x79, 0x2a, 0xcc, 0x2a, 0x00, 0x4e, 0x93, 0x3d, 0xc8, - 0x2a, 0x40, 0x5e, 0x32, 0x12, 0xd8, 0x2a, 0x00, 0x46, 0x4a, 0x12, 0xd7, - 0x2a, 0x40, 0x4f, 0x37, 0x07, 0x7b, 0x29, 0x00, 0x02, 0x6f, 0x00, 0x01, - 0xff, 0x44, 0x4c, 0x12, 0xd4, 0x2a, 0x00, 0x46, 0x59, 0x35, 0xd6, 0x2a, - 0x40, 0xa5, 0x62, 0xa6, 0x54, 0xac, 0x40, 0x45, 0xef, 0x1e, 0x7b, 0x20, - 0x00, 0x44, 0x46, 0x2a, 0x79, 0x20, 0x00, 0x43, 0xbf, 0x0a, 0xb9, 0x00, - 0x00, 0x49, 0x45, 0x70, 0x7a, 0x20, 0x00, 0x51, 0x4a, 0x21, 0x7e, 0x20, - 0x00, 0xb3, 0x14, 0xb4, 0x06, 0x44, 0xa1, 0x1d, 0x70, 0x20, 0x40, 0x44, - 0x25, 0x01, 0xb3, 0x00, 0x00, 0x42, 0x15, 0x02, 0xb2, 0x00, 0x40, 0x44, - 0x27, 0x1d, 0x77, 0x20, 0x00, 0x42, 0x60, 0x25, 0x76, 0x20, 0x40, 0x12, - 0x1c, 0x4f, 0x06, 0x4f, 0xf8, 0x23, 0x7d, 0x20, 0x40, 0xe9, 0x71, 0x20, - 0x00, 0xee, 0x7f, 0x20, 0x40, 0x43, 0xa7, 0x05, 0x75, 0x20, 0x00, 0x43, - 0xcb, 0x06, 0x74, 0x20, 0x40, 0x44, 0xc9, 0x00, 0x78, 0x20, 0x00, 0x4a, - 0xfa, 0x12, 0x7c, 0x20, 0x40, 0x80, 0xb9, 0x06, 0x07, 0x6a, 0xcd, 0xcc, - 0x02, 0x46, 0x7e, 0x95, 0x3b, 0xf3, 0x01, 0x44, 0x44, 0xba, 0x05, 0xf3, - 0x81, 0xb8, 0x02, 0x52, 0xe4, 0x53, 0x07, 0xf3, 0x01, 0x05, 0xe0, 0xe8, - 0x01, 0xff, 0x06, 0xc4, 0x06, 0xe6, 0x01, 0x07, 0xc1, 0x05, 0x06, 0x48, - 0x4a, 0xc8, 0xe1, 0x1b, 0x41, 0xa1, 0xc7, 0x01, 0x43, 0x37, 0x35, 0xce, - 0x1b, 0x01, 0xa3, 0xb2, 0x01, 0xa4, 0xa3, 0x01, 0x43, 0xc6, 0xdb, 0xc2, - 0x1b, 0x01, 0x43, 0x08, 0x9d, 0xca, 0x1b, 0x01, 0x45, 0xcc, 0xe3, 0xcb, - 0x1b, 0x01, 0x44, 0x52, 0xed, 0xc3, 0x1b, 0x01, 0x44, 0x7a, 0xed, 0xcf, - 0x1b, 0x01, 0xab, 0x71, 0x46, 0xd8, 0xda, 0xd0, 0x1b, 0x01, 0x42, 0x6c, - 0x00, 0xc7, 0x1b, 0x01, 0xae, 0x57, 0x45, 0x8d, 0xe6, 0xd1, 0x1b, 0x01, - 0xb0, 0x43, 0x43, 0x96, 0x02, 0xc4, 0x1b, 0x01, 0x04, 0x52, 0xef, 0x2f, - 0xb4, 0x12, 0x45, 0xdb, 0xe8, 0xc5, 0x1b, 0x01, 0x45, 0xea, 0xe8, 0xd3, - 0x1b, 0x01, 0x43, 0xcd, 0x31, 0xd4, 0x1b, 0x41, 0x44, 0xb7, 0xa2, 0xc1, - 0x1b, 0x01, 0x44, 0xd3, 0x74, 0xde, 0x1b, 0x01, 0xa8, 0x01, 0xff, 0x43, - 0xa7, 0x0a, 0xd8, 0x1b, 0x01, 0x43, 0x36, 0x0e, 0xdf, 0x1b, 0x41, 0x42, - 0x68, 0x00, 0xd2, 0x1b, 0x01, 0xf2, 0xdc, 0x1b, 0x41, 0x43, 0x65, 0x05, - 0xd9, 0x1b, 0x01, 0x42, 0x8f, 0x04, 0xc9, 0x1b, 0x41, 0x42, 0xc9, 0x09, - 0xcd, 0x1b, 0x01, 0x43, 0xca, 0x1d, 0xda, 0x1b, 0x41, 0x42, 0x22, 0x00, - 0xdb, 0x1b, 0x01, 0x42, 0x4c, 0x2a, 0xc6, 0x1b, 0x01, 0x44, 0x98, 0xba, - 0xe0, 0x1b, 0x41, 0x43, 0x04, 0x27, 0xc0, 0x1b, 0x01, 0x44, 0x59, 0x48, - 0xd7, 0x1b, 0x41, 0x44, 0x53, 0x84, 0xcc, 0x1b, 0x01, 0x45, 0xe5, 0xe3, - 0xdd, 0x1b, 0x41, 0x42, 0x13, 0x00, 0xd6, 0x1b, 0x01, 0x44, 0xda, 0xee, - 0xc8, 0x1b, 0x01, 0x42, 0xa6, 0x0a, 0xd5, 0x1b, 0x41, 0x45, 0xc3, 0x0a, - 0xf8, 0x1b, 0x01, 0xa6, 0x2e, 0x44, 0x46, 0x2a, 0xf9, 0x1b, 0x01, 0x43, - 0xbf, 0x0a, 0xf1, 0x1b, 0x01, 0xb3, 0x14, 0xb4, 0x06, 0x44, 0xa1, 0x1d, - 0xf0, 0x1b, 0x41, 0x44, 0x25, 0x01, 0xf3, 0x1b, 0x01, 0x42, 0x15, 0x02, - 0xf2, 0x1b, 0x41, 0x44, 0x27, 0x1d, 0xf7, 0x1b, 0x01, 0x42, 0x60, 0x25, - 0xf6, 0x1b, 0x41, 0x43, 0xa7, 0x05, 0xf5, 0x1b, 0x01, 0x43, 0xcb, 0x06, - 0xf4, 0x1b, 0x41, 0x4f, 0xf3, 0x67, 0x04, 0xf3, 0x41, 0x48, 0xf1, 0x86, - 0xba, 0x1b, 0x00, 0x11, 0xe7, 0x57, 0xb6, 0x03, 0x06, 0xc4, 0x06, 0xef, - 0x02, 0x07, 0xc1, 0x05, 0x8d, 0x01, 0x12, 0x54, 0x53, 0x57, 0x05, 0x2f, - 0x03, 0x2c, 0x0d, 0x8c, 0x88, 0x01, 0xff, 0x45, 0x7a, 0xe5, 0xa8, 0x1b, - 0x00, 0xae, 0x01, 0xff, 0x47, 0xcd, 0xcb, 0xa6, 0x1b, 0x00, 0x47, 0x20, - 0xce, 0xa9, 0x1b, 0x00, 0x45, 0x95, 0xe3, 0xa4, 0x1b, 0x00, 0x45, 0x02, - 0x12, 0xa7, 0x1b, 0x00, 0x44, 0xf6, 0xef, 0xa5, 0x1b, 0x40, 0x02, 0x6c, - 0x09, 0x06, 0x46, 0x5b, 0x23, 0xab, 0x1b, 0x40, 0x45, 0x3e, 0xe5, 0xaa, - 0x1b, 0x00, 0xae, 0x01, 0xff, 0xa7, 0x06, 0x45, 0x58, 0xe9, 0x80, 0x1b, - 0x40, 0x45, 0x07, 0xe5, 0x81, 0x1b, 0x00, 0x45, 0x30, 0xe9, 0x82, 0x1b, - 0x40, 0x4a, 0xef, 0xa5, 0xc7, 0x1c, 0x00, 0x45, 0xdd, 0xe1, 0xc3, 0x1c, - 0x00, 0x4a, 0xf3, 0xa6, 0xc6, 0x1c, 0x00, 0x4a, 0xff, 0xa9, 0xc5, 0x1c, - 0x00, 0x4b, 0x91, 0x9c, 0xc4, 0x1c, 0x00, 0xb0, 0x06, 0x45, 0x04, 0xe8, - 0xc0, 0x1c, 0x40, 0x47, 0x21, 0xcc, 0xc1, 0x1c, 0x00, 0x46, 0xf6, 0xdd, - 0xc2, 0x1c, 0x40, 0xe1, 0x83, 0x1b, 0x80, 0xcd, 0x01, 0xa2, 0xc0, 0x01, - 0x42, 0x37, 0x00, 0x8e, 0x1b, 0x00, 0x42, 0xa1, 0x10, 0x93, 0x1b, 0x00, - 0xe5, 0x88, 0x1b, 0x80, 0xaa, 0x01, 0xa6, 0x96, 0x01, 0x42, 0x24, 0x02, - 0x8c, 0x1b, 0x00, 0x42, 0x22, 0x00, 0xa0, 0x1b, 0x00, 0xe9, 0x84, 0x1b, - 0x00, 0x42, 0xbd, 0x26, 0x8f, 0x1b, 0x00, 0xab, 0x74, 0xac, 0x68, 0x42, - 0x6c, 0x00, 0x99, 0x1b, 0x00, 0xae, 0x50, 0xef, 0x87, 0x1b, 0x00, 0x42, - 0x6c, 0x09, 0x95, 0x1b, 0x00, 0x42, 0xf4, 0x13, 0x8b, 0x1b, 0x00, 0xb2, - 0x34, 0xb3, 0x28, 0x42, 0x12, 0x00, 0x92, 0x1b, 0x00, 0xf5, 0x85, 0x1b, - 0x00, 0x42, 0xa6, 0x0a, 0x97, 0x1b, 0x00, 0x42, 0xa9, 0x01, 0x9d, 0x1b, - 0x00, 0x42, 0x4c, 0x26, 0x9f, 0x1b, 0x00, 0x42, 0x34, 0x22, 0x9a, 0x1b, - 0x00, 0x42, 0x59, 0x00, 0x90, 0x1b, 0x40, 0xe1, 0x9e, 0x1b, 0x00, 0x42, - 0x34, 0x22, 0xaf, 0x1b, 0x40, 0xe1, 0x9b, 0x1b, 0x00, 0x42, 0x97, 0x02, - 0xbb, 0x1b, 0x40, 0xe1, 0x94, 0x1b, 0x00, 0x42, 0x24, 0x02, 0x8d, 0x1b, - 0x00, 0x42, 0x34, 0x22, 0x91, 0x1b, 0x40, 0xe1, 0x9c, 0x1b, 0x00, 0x42, - 0x97, 0x02, 0xbc, 0x1b, 0x40, 0xe1, 0x8a, 0x1b, 0x00, 0x42, 0x22, 0x00, - 0xae, 0x1b, 0x40, 0xe1, 0x96, 0x1b, 0x00, 0x05, 0x47, 0x27, 0x01, 0xff, - 0xeb, 0xbe, 0x1b, 0x00, 0xed, 0xbf, 0x1b, 0x40, 0xf5, 0x89, 0x1b, 0x40, - 0xe1, 0x98, 0x1b, 0x00, 0x42, 0x22, 0x00, 0xbd, 0x1b, 0x40, 0xe5, 0x86, - 0x1b, 0x00, 0x48, 0x01, 0xbc, 0xbd, 0x1b, 0x40, 0x45, 0xc3, 0x0a, 0xb8, - 0x1b, 0x00, 0xa6, 0x2e, 0x44, 0x46, 0x2a, 0xb9, 0x1b, 0x00, 0x43, 0xbf, - 0x0a, 0xb1, 0x1b, 0x00, 0xb3, 0x14, 0xb4, 0x06, 0x44, 0xa1, 0x1d, 0xb0, - 0x1b, 0x40, 0x44, 0x25, 0x01, 0xb3, 0x1b, 0x00, 0x42, 0x15, 0x02, 0xb2, - 0x1b, 0x40, 0x44, 0x27, 0x1d, 0xb7, 0x1b, 0x00, 0x42, 0x60, 0x25, 0xb6, - 0x1b, 0x40, 0x43, 0xa7, 0x05, 0xb5, 0x1b, 0x00, 0x43, 0xcb, 0x06, 0xb4, - 0x1b, 0x40, 0x47, 0x73, 0xd0, 0xa1, 0x1b, 0x00, 0x02, 0xf6, 0x19, 0x11, - 0x07, 0xd4, 0xd2, 0x01, 0xff, 0x42, 0x6c, 0x00, 0xac, 0x1b, 0x00, 0x42, - 0xa9, 0x01, 0xad, 0x1b, 0x40, 0x44, 0xca, 0x94, 0xa2, 0x1b, 0x00, 0x43, - 0x49, 0xe4, 0xa3, 0x1b, 0x40, 0x4c, 0xe5, 0x8a, 0xc5, 0x26, 0x00, 0x49, - 0xc8, 0xbe, 0x1e, 0xf3, 0x41, 0x46, 0x66, 0x0a, 0xb3, 0x23, 0x00, 0x43, - 0x1e, 0x00, 0xb2, 0x23, 0x00, 0x4d, 0xe7, 0x88, 0x0b, 0x2a, 0x40, 0x80, - 0x01, 0xff, 0x06, 0x5c, 0x00, 0x1c, 0x55, 0xfb, 0x38, 0xe9, 0x22, 0x00, - 0x06, 0x52, 0x28, 0x06, 0x4e, 0x7a, 0x7c, 0xb1, 0x22, 0x40, 0x45, 0xac, - 0x0c, 0x7d, 0x22, 0x00, 0x4a, 0x06, 0x39, 0x7f, 0x22, 0x40, 0x4f, 0x10, - 0x69, 0xb8, 0x2a, 0x00, 0x4b, 0xf9, 0x12, 0xb4, 0x2a, 0x00, 0x04, 0xe8, - 0x22, 0x11, 0x0c, 0x6d, 0x2a, 0x01, 0xff, 0x4b, 0xf9, 0x12, 0xb0, 0x2a, - 0x00, 0x4c, 0x79, 0x2a, 0xb2, 0x2a, 0x40, 0x4f, 0x10, 0x69, 0xba, 0x2a, - 0x00, 0x48, 0xa9, 0x0c, 0xb6, 0x2a, 0x40, 0x06, 0x4a, 0x06, 0x75, 0x03, - 0x19, 0x09, 0x06, 0x46, 0xab, 0xbd, 0x1a, 0x00, 0x40, 0x06, 0x5c, 0x00, - 0x50, 0x42, 0xf4, 0x01, 0x82, 0x22, 0x80, 0x17, 0x05, 0x51, 0x00, 0x01, - 0xff, 0x43, 0xd4, 0x09, 0xbd, 0x2a, 0x00, 0x59, 0x74, 0x24, 0xc1, 0x2a, - 0x00, 0x4f, 0x45, 0x70, 0xbf, 0x2a, 0x40, 0x80, 0x01, 0xff, 0x06, 0x5c, - 0x00, 0x13, 0x4b, 0x52, 0x28, 0x86, 0x22, 0x80, 0x06, 0x51, 0x25, 0x5e, - 0x8a, 0x22, 0x40, 0x4f, 0xa5, 0x3a, 0xc3, 0x2a, 0x40, 0x4f, 0x10, 0x69, - 0xc9, 0x2a, 0x00, 0x4b, 0xf9, 0x12, 0xc5, 0x2a, 0x00, 0x4c, 0x79, 0x2a, - 0xcb, 0x2a, 0x00, 0x4e, 0x93, 0x3d, 0xc7, 0x2a, 0x40, 0x50, 0xb3, 0x02, - 0x79, 0x29, 0x00, 0x02, 0x6f, 0x00, 0x01, 0xff, 0x44, 0x4c, 0x12, 0xd5, - 0x2a, 0x00, 0x46, 0x59, 0x35, 0xd3, 0x2a, 0x40, 0xa5, 0x54, 0xa6, 0x46, - 0x50, 0xf7, 0x23, 0x8d, 0x20, 0x00, 0x45, 0xef, 0x1e, 0x8b, 0x20, 0x00, - 0x44, 0x46, 0x2a, 0x89, 0x20, 0x00, 0x43, 0xbf, 0x0a, 0x81, 0x20, 0x00, - 0x49, 0x45, 0x70, 0x8a, 0x20, 0x00, 0x51, 0x4a, 0x21, 0x8e, 0x20, 0x00, - 0xb3, 0x14, 0xb4, 0x06, 0x44, 0xa1, 0x1d, 0x80, 0x20, 0x40, 0x44, 0x25, - 0x01, 0x83, 0x20, 0x00, 0x42, 0x15, 0x02, 0x82, 0x20, 0x40, 0x44, 0x27, - 0x1d, 0x87, 0x20, 0x00, 0x42, 0x60, 0x25, 0x86, 0x20, 0x40, 0x43, 0xa7, - 0x05, 0x85, 0x20, 0x00, 0x43, 0xcb, 0x06, 0x84, 0x20, 0x40, 0x44, 0xc9, - 0x00, 0x88, 0x20, 0x00, 0x4a, 0xfa, 0x12, 0x8c, 0x20, 0x40, 0xa1, 0xb9, - 0x01, 0xa5, 0x9a, 0x01, 0x4a, 0xab, 0x93, 0xc5, 0xfb, 0x81, 0x6f, 0xaf, - 0x61, 0xb2, 0x15, 0xb5, 0x01, 0xff, 0x4e, 0x7a, 0x75, 0x99, 0xf3, 0x01, - 0x4e, 0x5a, 0x76, 0x59, 0xf9, 0x01, 0x42, 0x6c, 0x09, 0xd3, 0xf6, 0x41, - 0xa1, 0x32, 0x57, 0x89, 0x2d, 0x29, 0x27, 0x00, 0xa9, 0x01, 0xff, 0x52, - 0x9a, 0x4f, 0x63, 0x22, 0x00, 0x4d, 0x96, 0x84, 0x9c, 0x00, 0x00, 0x04, - 0x76, 0x18, 0x01, 0xff, 0x56, 0xf1, 0x32, 0x83, 0xcc, 0x01, 0x56, 0x93, - 0x34, 0x80, 0xcc, 0x01, 0x57, 0x0d, 0x30, 0x82, 0xcc, 0x01, 0x54, 0x47, - 0x45, 0x81, 0xcc, 0x41, 0x04, 0xc9, 0x00, 0x06, 0x46, 0x20, 0xde, 0x53, - 0xf3, 0x41, 0x46, 0x19, 0x2f, 0xcf, 0xf4, 0x01, 0x44, 0x9a, 0x23, 0xe4, - 0x23, 0x40, 0x48, 0x2a, 0xc2, 0xe0, 0xf5, 0x01, 0x46, 0x4c, 0xdc, 0xf1, - 0x23, 0x40, 0x80, 0x01, 0xff, 0x08, 0x02, 0xc5, 0x11, 0x05, 0x51, 0x00, - 0x01, 0xff, 0x4b, 0x27, 0x97, 0xc6, 0xfb, 0x01, 0x45, 0xe4, 0x26, 0xc9, + 0x96, 0x7f, 0x97, 0x55, 0x98, 0x2b, 0x99, 0x01, 0xff, 0xd0, 0x4d, 0x8a, + 0x01, 0xd1, 0x4e, 0x8a, 0x01, 0xd2, 0x4f, 0x8a, 0x01, 0xd3, 0x50, 0x8a, + 0x01, 0xd4, 0x51, 0x8a, 0x01, 0xd5, 0x52, 0x8a, 0x01, 0xd6, 0x53, 0x8a, + 0x01, 0xd7, 0x54, 0x8a, 0x01, 0xd8, 0x55, 0x8a, 0x01, 0xd9, 0x56, 0x8a, + 0x41, 0xd0, 0x43, 0x8a, 0x01, 0xd1, 0x44, 0x8a, 0x01, 0xd2, 0x45, 0x8a, + 0x01, 0xd3, 0x46, 0x8a, 0x01, 0xd4, 0x47, 0x8a, 0x01, 0xd5, 0x48, 0x8a, + 0x01, 0xd6, 0x49, 0x8a, 0x01, 0xd7, 0x4a, 0x8a, 0x01, 0xd8, 0x4b, 0x8a, + 0x01, 0xd9, 0x4c, 0x8a, 0x41, 0xd0, 0x39, 0x8a, 0x01, 0xd1, 0x3a, 0x8a, + 0x01, 0xd2, 0x3b, 0x8a, 0x01, 0xd3, 0x3c, 0x8a, 0x01, 0xd4, 0x3d, 0x8a, + 0x01, 0xd5, 0x3e, 0x8a, 0x01, 0xd6, 0x3f, 0x8a, 0x01, 0xd7, 0x40, 0x8a, + 0x01, 0xd8, 0x41, 0x8a, 0x01, 0xd9, 0x42, 0x8a, 0x41, 0xd0, 0x2f, 0x8a, + 0x01, 0xd1, 0x30, 0x8a, 0x01, 0xd2, 0x31, 0x8a, 0x01, 0xd3, 0x32, 0x8a, + 0x01, 0xd4, 0x33, 0x8a, 0x01, 0xd5, 0x34, 0x8a, 0x01, 0xd6, 0x35, 0x8a, + 0x01, 0xd7, 0x36, 0x8a, 0x01, 0xd8, 0x37, 0x8a, 0x01, 0xd9, 0x38, 0x8a, + 0x41, 0xd0, 0x25, 0x8a, 0x01, 0xd1, 0x26, 0x8a, 0x01, 0xd2, 0x27, 0x8a, + 0x01, 0xd3, 0x28, 0x8a, 0x01, 0xd4, 0x29, 0x8a, 0x01, 0xd5, 0x2a, 0x8a, + 0x01, 0xd6, 0x2b, 0x8a, 0x01, 0xd7, 0x2c, 0x8a, 0x01, 0xd8, 0x2d, 0x8a, + 0x01, 0xd9, 0x2e, 0x8a, 0x41, 0xd0, 0x1b, 0x8a, 0x01, 0xd1, 0x1c, 0x8a, + 0x01, 0xd2, 0x1d, 0x8a, 0x01, 0xd3, 0x1e, 0x8a, 0x01, 0xd4, 0x1f, 0x8a, + 0x01, 0xd5, 0x20, 0x8a, 0x01, 0xd6, 0x21, 0x8a, 0x01, 0xd7, 0x22, 0x8a, + 0x01, 0xd8, 0x23, 0x8a, 0x01, 0xd9, 0x24, 0x8a, 0x41, 0xd0, 0x11, 0x8a, + 0x01, 0xd1, 0x12, 0x8a, 0x01, 0xd2, 0x13, 0x8a, 0x01, 0xd3, 0x14, 0x8a, + 0x01, 0xd4, 0x15, 0x8a, 0x01, 0xd5, 0x16, 0x8a, 0x01, 0xd6, 0x17, 0x8a, + 0x01, 0xd7, 0x18, 0x8a, 0x01, 0xd8, 0x19, 0x8a, 0x01, 0xd9, 0x1a, 0x8a, + 0x41, 0xd0, 0x07, 0x8a, 0x01, 0xd1, 0x08, 0x8a, 0x01, 0xd2, 0x09, 0x8a, + 0x01, 0xd3, 0x0a, 0x8a, 0x01, 0xd4, 0x0b, 0x8a, 0x01, 0xd5, 0x0c, 0x8a, + 0x01, 0xd6, 0x0d, 0x8a, 0x01, 0xd7, 0x0e, 0x8a, 0x01, 0xd8, 0x0f, 0x8a, + 0x01, 0xd9, 0x10, 0x8a, 0x41, 0xd0, 0xfd, 0x89, 0x01, 0xd1, 0xfe, 0x89, + 0x01, 0xd2, 0xff, 0x89, 0x01, 0xd3, 0x00, 0x8a, 0x01, 0xd4, 0x01, 0x8a, + 0x01, 0xd5, 0x02, 0x8a, 0x01, 0xd6, 0x03, 0x8a, 0x01, 0xd7, 0x04, 0x8a, + 0x01, 0xd8, 0x05, 0x8a, 0x01, 0xd9, 0x06, 0x8a, 0x41, 0xd0, 0xf3, 0x89, + 0x01, 0xd1, 0xf4, 0x89, 0x01, 0xd2, 0xf5, 0x89, 0x01, 0xd3, 0xf6, 0x89, + 0x01, 0xd4, 0xf7, 0x89, 0x01, 0xd5, 0xf8, 0x89, 0x01, 0xd6, 0xf9, 0x89, + 0x01, 0xd7, 0xfa, 0x89, 0x01, 0xd8, 0xfb, 0x89, 0x01, 0xd9, 0xfc, 0x89, + 0x41, 0x90, 0x80, 0x03, 0x91, 0xd5, 0x02, 0x92, 0xaa, 0x02, 0x93, 0xff, + 0x01, 0x94, 0xd4, 0x01, 0x95, 0xa9, 0x01, 0x96, 0x7f, 0x97, 0x55, 0x98, + 0x2b, 0x99, 0x01, 0xff, 0xd0, 0xe9, 0x89, 0x01, 0xd1, 0xea, 0x89, 0x01, + 0xd2, 0xeb, 0x89, 0x01, 0xd3, 0xec, 0x89, 0x01, 0xd4, 0xed, 0x89, 0x01, + 0xd5, 0xee, 0x89, 0x01, 0xd6, 0xef, 0x89, 0x01, 0xd7, 0xf0, 0x89, 0x01, + 0xd8, 0xf1, 0x89, 0x01, 0xd9, 0xf2, 0x89, 0x41, 0xd0, 0xdf, 0x89, 0x01, + 0xd1, 0xe0, 0x89, 0x01, 0xd2, 0xe1, 0x89, 0x01, 0xd3, 0xe2, 0x89, 0x01, + 0xd4, 0xe3, 0x89, 0x01, 0xd5, 0xe4, 0x89, 0x01, 0xd6, 0xe5, 0x89, 0x01, + 0xd7, 0xe6, 0x89, 0x01, 0xd8, 0xe7, 0x89, 0x01, 0xd9, 0xe8, 0x89, 0x41, + 0xd0, 0xd5, 0x89, 0x01, 0xd1, 0xd6, 0x89, 0x01, 0xd2, 0xd7, 0x89, 0x01, + 0xd3, 0xd8, 0x89, 0x01, 0xd4, 0xd9, 0x89, 0x01, 0xd5, 0xda, 0x89, 0x01, + 0xd6, 0xdb, 0x89, 0x01, 0xd7, 0xdc, 0x89, 0x01, 0xd8, 0xdd, 0x89, 0x01, + 0xd9, 0xde, 0x89, 0x41, 0xd0, 0xcb, 0x89, 0x01, 0xd1, 0xcc, 0x89, 0x01, + 0xd2, 0xcd, 0x89, 0x01, 0xd3, 0xce, 0x89, 0x01, 0xd4, 0xcf, 0x89, 0x01, + 0xd5, 0xd0, 0x89, 0x01, 0xd6, 0xd1, 0x89, 0x01, 0xd7, 0xd2, 0x89, 0x01, + 0xd8, 0xd3, 0x89, 0x01, 0xd9, 0xd4, 0x89, 0x41, 0xd0, 0xc1, 0x89, 0x01, + 0xd1, 0xc2, 0x89, 0x01, 0xd2, 0xc3, 0x89, 0x01, 0xd3, 0xc4, 0x89, 0x01, + 0xd4, 0xc5, 0x89, 0x01, 0xd5, 0xc6, 0x89, 0x01, 0xd6, 0xc7, 0x89, 0x01, + 0xd7, 0xc8, 0x89, 0x01, 0xd8, 0xc9, 0x89, 0x01, 0xd9, 0xca, 0x89, 0x41, + 0xd0, 0xb7, 0x89, 0x01, 0xd1, 0xb8, 0x89, 0x01, 0xd2, 0xb9, 0x89, 0x01, + 0xd3, 0xba, 0x89, 0x01, 0xd4, 0xbb, 0x89, 0x01, 0xd5, 0xbc, 0x89, 0x01, + 0xd6, 0xbd, 0x89, 0x01, 0xd7, 0xbe, 0x89, 0x01, 0xd8, 0xbf, 0x89, 0x01, + 0xd9, 0xc0, 0x89, 0x41, 0xd0, 0xad, 0x89, 0x01, 0xd1, 0xae, 0x89, 0x01, + 0xd2, 0xaf, 0x89, 0x01, 0xd3, 0xb0, 0x89, 0x01, 0xd4, 0xb1, 0x89, 0x01, + 0xd5, 0xb2, 0x89, 0x01, 0xd6, 0xb3, 0x89, 0x01, 0xd7, 0xb4, 0x89, 0x01, + 0xd8, 0xb5, 0x89, 0x01, 0xd9, 0xb6, 0x89, 0x41, 0xd0, 0xa3, 0x89, 0x01, + 0xd1, 0xa4, 0x89, 0x01, 0xd2, 0xa5, 0x89, 0x01, 0xd3, 0xa6, 0x89, 0x01, + 0xd4, 0xa7, 0x89, 0x01, 0xd5, 0xa8, 0x89, 0x01, 0xd6, 0xa9, 0x89, 0x01, + 0xd7, 0xaa, 0x89, 0x01, 0xd8, 0xab, 0x89, 0x01, 0xd9, 0xac, 0x89, 0x41, + 0xd0, 0x99, 0x89, 0x01, 0xd1, 0x9a, 0x89, 0x01, 0xd2, 0x9b, 0x89, 0x01, + 0xd3, 0x9c, 0x89, 0x01, 0xd4, 0x9d, 0x89, 0x01, 0xd5, 0x9e, 0x89, 0x01, + 0xd6, 0x9f, 0x89, 0x01, 0xd7, 0xa0, 0x89, 0x01, 0xd8, 0xa1, 0x89, 0x01, + 0xd9, 0xa2, 0x89, 0x41, 0xd0, 0x8f, 0x89, 0x01, 0xd1, 0x90, 0x89, 0x01, + 0xd2, 0x91, 0x89, 0x01, 0xd3, 0x92, 0x89, 0x01, 0xd4, 0x93, 0x89, 0x01, + 0xd5, 0x94, 0x89, 0x01, 0xd6, 0x95, 0x89, 0x01, 0xd7, 0x96, 0x89, 0x01, + 0xd8, 0x97, 0x89, 0x01, 0xd9, 0x98, 0x89, 0x41, 0x90, 0x80, 0x03, 0x91, + 0xd5, 0x02, 0x92, 0xaa, 0x02, 0x93, 0xff, 0x01, 0x94, 0xd4, 0x01, 0x95, + 0xa9, 0x01, 0x96, 0x7f, 0x97, 0x55, 0x98, 0x2b, 0x99, 0x01, 0xff, 0xd0, + 0x85, 0x89, 0x01, 0xd1, 0x86, 0x89, 0x01, 0xd2, 0x87, 0x89, 0x01, 0xd3, + 0x88, 0x89, 0x01, 0xd4, 0x89, 0x89, 0x01, 0xd5, 0x8a, 0x89, 0x01, 0xd6, + 0x8b, 0x89, 0x01, 0xd7, 0x8c, 0x89, 0x01, 0xd8, 0x8d, 0x89, 0x01, 0xd9, + 0x8e, 0x89, 0x41, 0xd0, 0x7b, 0x89, 0x01, 0xd1, 0x7c, 0x89, 0x01, 0xd2, + 0x7d, 0x89, 0x01, 0xd3, 0x7e, 0x89, 0x01, 0xd4, 0x7f, 0x89, 0x01, 0xd5, + 0x80, 0x89, 0x01, 0xd6, 0x81, 0x89, 0x01, 0xd7, 0x82, 0x89, 0x01, 0xd8, + 0x83, 0x89, 0x01, 0xd9, 0x84, 0x89, 0x41, 0xd0, 0x71, 0x89, 0x01, 0xd1, + 0x72, 0x89, 0x01, 0xd2, 0x73, 0x89, 0x01, 0xd3, 0x74, 0x89, 0x01, 0xd4, + 0x75, 0x89, 0x01, 0xd5, 0x76, 0x89, 0x01, 0xd6, 0x77, 0x89, 0x01, 0xd7, + 0x78, 0x89, 0x01, 0xd8, 0x79, 0x89, 0x01, 0xd9, 0x7a, 0x89, 0x41, 0xd0, + 0x67, 0x89, 0x01, 0xd1, 0x68, 0x89, 0x01, 0xd2, 0x69, 0x89, 0x01, 0xd3, + 0x6a, 0x89, 0x01, 0xd4, 0x6b, 0x89, 0x01, 0xd5, 0x6c, 0x89, 0x01, 0xd6, + 0x6d, 0x89, 0x01, 0xd7, 0x6e, 0x89, 0x01, 0xd8, 0x6f, 0x89, 0x01, 0xd9, + 0x70, 0x89, 0x41, 0xd0, 0x5d, 0x89, 0x01, 0xd1, 0x5e, 0x89, 0x01, 0xd2, + 0x5f, 0x89, 0x01, 0xd3, 0x60, 0x89, 0x01, 0xd4, 0x61, 0x89, 0x01, 0xd5, + 0x62, 0x89, 0x01, 0xd6, 0x63, 0x89, 0x01, 0xd7, 0x64, 0x89, 0x01, 0xd8, + 0x65, 0x89, 0x01, 0xd9, 0x66, 0x89, 0x41, 0xd0, 0x53, 0x89, 0x01, 0xd1, + 0x54, 0x89, 0x01, 0xd2, 0x55, 0x89, 0x01, 0xd3, 0x56, 0x89, 0x01, 0xd4, + 0x57, 0x89, 0x01, 0xd5, 0x58, 0x89, 0x01, 0xd6, 0x59, 0x89, 0x01, 0xd7, + 0x5a, 0x89, 0x01, 0xd8, 0x5b, 0x89, 0x01, 0xd9, 0x5c, 0x89, 0x41, 0xd0, + 0x49, 0x89, 0x01, 0xd1, 0x4a, 0x89, 0x01, 0xd2, 0x4b, 0x89, 0x01, 0xd3, + 0x4c, 0x89, 0x01, 0xd4, 0x4d, 0x89, 0x01, 0xd5, 0x4e, 0x89, 0x01, 0xd6, + 0x4f, 0x89, 0x01, 0xd7, 0x50, 0x89, 0x01, 0xd8, 0x51, 0x89, 0x01, 0xd9, + 0x52, 0x89, 0x41, 0xd0, 0x3f, 0x89, 0x01, 0xd1, 0x40, 0x89, 0x01, 0xd2, + 0x41, 0x89, 0x01, 0xd3, 0x42, 0x89, 0x01, 0xd4, 0x43, 0x89, 0x01, 0xd5, + 0x44, 0x89, 0x01, 0xd6, 0x45, 0x89, 0x01, 0xd7, 0x46, 0x89, 0x01, 0xd8, + 0x47, 0x89, 0x01, 0xd9, 0x48, 0x89, 0x41, 0xd0, 0x35, 0x89, 0x01, 0xd1, + 0x36, 0x89, 0x01, 0xd2, 0x37, 0x89, 0x01, 0xd3, 0x38, 0x89, 0x01, 0xd4, + 0x39, 0x89, 0x01, 0xd5, 0x3a, 0x89, 0x01, 0xd6, 0x3b, 0x89, 0x01, 0xd7, + 0x3c, 0x89, 0x01, 0xd8, 0x3d, 0x89, 0x01, 0xd9, 0x3e, 0x89, 0x41, 0xd0, + 0x2b, 0x89, 0x01, 0xd1, 0x2c, 0x89, 0x01, 0xd2, 0x2d, 0x89, 0x01, 0xd3, + 0x2e, 0x89, 0x01, 0xd4, 0x2f, 0x89, 0x01, 0xd5, 0x30, 0x89, 0x01, 0xd6, + 0x31, 0x89, 0x01, 0xd7, 0x32, 0x89, 0x01, 0xd8, 0x33, 0x89, 0x01, 0xd9, + 0x34, 0x89, 0x41, 0x90, 0x80, 0x03, 0x91, 0xd5, 0x02, 0x92, 0xaa, 0x02, + 0x93, 0xff, 0x01, 0x94, 0xd4, 0x01, 0x95, 0xa9, 0x01, 0x96, 0x7f, 0x97, + 0x55, 0x98, 0x2b, 0x99, 0x01, 0xff, 0xd0, 0x21, 0x89, 0x01, 0xd1, 0x22, + 0x89, 0x01, 0xd2, 0x23, 0x89, 0x01, 0xd3, 0x24, 0x89, 0x01, 0xd4, 0x25, + 0x89, 0x01, 0xd5, 0x26, 0x89, 0x01, 0xd6, 0x27, 0x89, 0x01, 0xd7, 0x28, + 0x89, 0x01, 0xd8, 0x29, 0x89, 0x01, 0xd9, 0x2a, 0x89, 0x41, 0xd0, 0x17, + 0x89, 0x01, 0xd1, 0x18, 0x89, 0x01, 0xd2, 0x19, 0x89, 0x01, 0xd3, 0x1a, + 0x89, 0x01, 0xd4, 0x1b, 0x89, 0x01, 0xd5, 0x1c, 0x89, 0x01, 0xd6, 0x1d, + 0x89, 0x01, 0xd7, 0x1e, 0x89, 0x01, 0xd8, 0x1f, 0x89, 0x01, 0xd9, 0x20, + 0x89, 0x41, 0xd0, 0x0d, 0x89, 0x01, 0xd1, 0x0e, 0x89, 0x01, 0xd2, 0x0f, + 0x89, 0x01, 0xd3, 0x10, 0x89, 0x01, 0xd4, 0x11, 0x89, 0x01, 0xd5, 0x12, + 0x89, 0x01, 0xd6, 0x13, 0x89, 0x01, 0xd7, 0x14, 0x89, 0x01, 0xd8, 0x15, + 0x89, 0x01, 0xd9, 0x16, 0x89, 0x41, 0xd0, 0x03, 0x89, 0x01, 0xd1, 0x04, + 0x89, 0x01, 0xd2, 0x05, 0x89, 0x01, 0xd3, 0x06, 0x89, 0x01, 0xd4, 0x07, + 0x89, 0x01, 0xd5, 0x08, 0x89, 0x01, 0xd6, 0x09, 0x89, 0x01, 0xd7, 0x0a, + 0x89, 0x01, 0xd8, 0x0b, 0x89, 0x01, 0xd9, 0x0c, 0x89, 0x41, 0xd0, 0xf9, + 0x88, 0x01, 0xd1, 0xfa, 0x88, 0x01, 0xd2, 0xfb, 0x88, 0x01, 0xd3, 0xfc, + 0x88, 0x01, 0xd4, 0xfd, 0x88, 0x01, 0xd5, 0xfe, 0x88, 0x01, 0xd6, 0xff, + 0x88, 0x01, 0xd7, 0x00, 0x89, 0x01, 0xd8, 0x01, 0x89, 0x01, 0xd9, 0x02, + 0x89, 0x41, 0xd0, 0xef, 0x88, 0x01, 0xd1, 0xf0, 0x88, 0x01, 0xd2, 0xf1, + 0x88, 0x01, 0xd3, 0xf2, 0x88, 0x01, 0xd4, 0xf3, 0x88, 0x01, 0xd5, 0xf4, + 0x88, 0x01, 0xd6, 0xf5, 0x88, 0x01, 0xd7, 0xf6, 0x88, 0x01, 0xd8, 0xf7, + 0x88, 0x01, 0xd9, 0xf8, 0x88, 0x41, 0xd0, 0xe5, 0x88, 0x01, 0xd1, 0xe6, + 0x88, 0x01, 0xd2, 0xe7, 0x88, 0x01, 0xd3, 0xe8, 0x88, 0x01, 0xd4, 0xe9, + 0x88, 0x01, 0xd5, 0xea, 0x88, 0x01, 0xd6, 0xeb, 0x88, 0x01, 0xd7, 0xec, + 0x88, 0x01, 0xd8, 0xed, 0x88, 0x01, 0xd9, 0xee, 0x88, 0x41, 0xd0, 0xdb, + 0x88, 0x01, 0xd1, 0xdc, 0x88, 0x01, 0xd2, 0xdd, 0x88, 0x01, 0xd3, 0xde, + 0x88, 0x01, 0xd4, 0xdf, 0x88, 0x01, 0xd5, 0xe0, 0x88, 0x01, 0xd6, 0xe1, + 0x88, 0x01, 0xd7, 0xe2, 0x88, 0x01, 0xd8, 0xe3, 0x88, 0x01, 0xd9, 0xe4, + 0x88, 0x41, 0xd0, 0xd1, 0x88, 0x01, 0xd1, 0xd2, 0x88, 0x01, 0xd2, 0xd3, + 0x88, 0x01, 0xd3, 0xd4, 0x88, 0x01, 0xd4, 0xd5, 0x88, 0x01, 0xd5, 0xd6, + 0x88, 0x01, 0xd6, 0xd7, 0x88, 0x01, 0xd7, 0xd8, 0x88, 0x01, 0xd8, 0xd9, + 0x88, 0x01, 0xd9, 0xda, 0x88, 0x41, 0xd0, 0xc7, 0x88, 0x01, 0xd1, 0xc8, + 0x88, 0x01, 0xd2, 0xc9, 0x88, 0x01, 0xd3, 0xca, 0x88, 0x01, 0xd4, 0xcb, + 0x88, 0x01, 0xd5, 0xcc, 0x88, 0x01, 0xd6, 0xcd, 0x88, 0x01, 0xd7, 0xce, + 0x88, 0x01, 0xd8, 0xcf, 0x88, 0x01, 0xd9, 0xd0, 0x88, 0x41, 0x90, 0x80, + 0x03, 0x91, 0xd5, 0x02, 0x92, 0xaa, 0x02, 0x93, 0xff, 0x01, 0x94, 0xd4, + 0x01, 0x95, 0xa9, 0x01, 0x96, 0x7f, 0x97, 0x55, 0x98, 0x2b, 0x99, 0x01, + 0xff, 0xd0, 0xbd, 0x88, 0x01, 0xd1, 0xbe, 0x88, 0x01, 0xd2, 0xbf, 0x88, + 0x01, 0xd3, 0xc0, 0x88, 0x01, 0xd4, 0xc1, 0x88, 0x01, 0xd5, 0xc2, 0x88, + 0x01, 0xd6, 0xc3, 0x88, 0x01, 0xd7, 0xc4, 0x88, 0x01, 0xd8, 0xc5, 0x88, + 0x01, 0xd9, 0xc6, 0x88, 0x41, 0xd0, 0xb3, 0x88, 0x01, 0xd1, 0xb4, 0x88, + 0x01, 0xd2, 0xb5, 0x88, 0x01, 0xd3, 0xb6, 0x88, 0x01, 0xd4, 0xb7, 0x88, + 0x01, 0xd5, 0xb8, 0x88, 0x01, 0xd6, 0xb9, 0x88, 0x01, 0xd7, 0xba, 0x88, + 0x01, 0xd8, 0xbb, 0x88, 0x01, 0xd9, 0xbc, 0x88, 0x41, 0xd0, 0xa9, 0x88, + 0x01, 0xd1, 0xaa, 0x88, 0x01, 0xd2, 0xab, 0x88, 0x01, 0xd3, 0xac, 0x88, + 0x01, 0xd4, 0xad, 0x88, 0x01, 0xd5, 0xae, 0x88, 0x01, 0xd6, 0xaf, 0x88, + 0x01, 0xd7, 0xb0, 0x88, 0x01, 0xd8, 0xb1, 0x88, 0x01, 0xd9, 0xb2, 0x88, + 0x41, 0xd0, 0x9f, 0x88, 0x01, 0xd1, 0xa0, 0x88, 0x01, 0xd2, 0xa1, 0x88, + 0x01, 0xd3, 0xa2, 0x88, 0x01, 0xd4, 0xa3, 0x88, 0x01, 0xd5, 0xa4, 0x88, + 0x01, 0xd6, 0xa5, 0x88, 0x01, 0xd7, 0xa6, 0x88, 0x01, 0xd8, 0xa7, 0x88, + 0x01, 0xd9, 0xa8, 0x88, 0x41, 0xd0, 0x95, 0x88, 0x01, 0xd1, 0x96, 0x88, + 0x01, 0xd2, 0x97, 0x88, 0x01, 0xd3, 0x98, 0x88, 0x01, 0xd4, 0x99, 0x88, + 0x01, 0xd5, 0x9a, 0x88, 0x01, 0xd6, 0x9b, 0x88, 0x01, 0xd7, 0x9c, 0x88, + 0x01, 0xd8, 0x9d, 0x88, 0x01, 0xd9, 0x9e, 0x88, 0x41, 0xd0, 0x8b, 0x88, + 0x01, 0xd1, 0x8c, 0x88, 0x01, 0xd2, 0x8d, 0x88, 0x01, 0xd3, 0x8e, 0x88, + 0x01, 0xd4, 0x8f, 0x88, 0x01, 0xd5, 0x90, 0x88, 0x01, 0xd6, 0x91, 0x88, + 0x01, 0xd7, 0x92, 0x88, 0x01, 0xd8, 0x93, 0x88, 0x01, 0xd9, 0x94, 0x88, + 0x41, 0xd0, 0x81, 0x88, 0x01, 0xd1, 0x82, 0x88, 0x01, 0xd2, 0x83, 0x88, + 0x01, 0xd3, 0x84, 0x88, 0x01, 0xd4, 0x85, 0x88, 0x01, 0xd5, 0x86, 0x88, + 0x01, 0xd6, 0x87, 0x88, 0x01, 0xd7, 0x88, 0x88, 0x01, 0xd8, 0x89, 0x88, + 0x01, 0xd9, 0x8a, 0x88, 0x41, 0xd0, 0x77, 0x88, 0x01, 0xd1, 0x78, 0x88, + 0x01, 0xd2, 0x79, 0x88, 0x01, 0xd3, 0x7a, 0x88, 0x01, 0xd4, 0x7b, 0x88, + 0x01, 0xd5, 0x7c, 0x88, 0x01, 0xd6, 0x7d, 0x88, 0x01, 0xd7, 0x7e, 0x88, + 0x01, 0xd8, 0x7f, 0x88, 0x01, 0xd9, 0x80, 0x88, 0x41, 0xd0, 0x6d, 0x88, + 0x01, 0xd1, 0x6e, 0x88, 0x01, 0xd2, 0x6f, 0x88, 0x01, 0xd3, 0x70, 0x88, + 0x01, 0xd4, 0x71, 0x88, 0x01, 0xd5, 0x72, 0x88, 0x01, 0xd6, 0x73, 0x88, + 0x01, 0xd7, 0x74, 0x88, 0x01, 0xd8, 0x75, 0x88, 0x01, 0xd9, 0x76, 0x88, + 0x41, 0xd0, 0x63, 0x88, 0x01, 0xd1, 0x64, 0x88, 0x01, 0xd2, 0x65, 0x88, + 0x01, 0xd3, 0x66, 0x88, 0x01, 0xd4, 0x67, 0x88, 0x01, 0xd5, 0x68, 0x88, + 0x01, 0xd6, 0x69, 0x88, 0x01, 0xd7, 0x6a, 0x88, 0x01, 0xd8, 0x6b, 0x88, + 0x01, 0xd9, 0x6c, 0x88, 0x41, 0x90, 0x80, 0x03, 0x91, 0xd5, 0x02, 0x92, + 0xaa, 0x02, 0x93, 0xff, 0x01, 0x94, 0xd4, 0x01, 0x95, 0xa9, 0x01, 0x96, + 0x7f, 0x97, 0x55, 0x98, 0x2b, 0x99, 0x01, 0xff, 0xd0, 0x59, 0x88, 0x01, + 0xd1, 0x5a, 0x88, 0x01, 0xd2, 0x5b, 0x88, 0x01, 0xd3, 0x5c, 0x88, 0x01, + 0xd4, 0x5d, 0x88, 0x01, 0xd5, 0x5e, 0x88, 0x01, 0xd6, 0x5f, 0x88, 0x01, + 0xd7, 0x60, 0x88, 0x01, 0xd8, 0x61, 0x88, 0x01, 0xd9, 0x62, 0x88, 0x41, + 0xd0, 0x4f, 0x88, 0x01, 0xd1, 0x50, 0x88, 0x01, 0xd2, 0x51, 0x88, 0x01, + 0xd3, 0x52, 0x88, 0x01, 0xd4, 0x53, 0x88, 0x01, 0xd5, 0x54, 0x88, 0x01, + 0xd6, 0x55, 0x88, 0x01, 0xd7, 0x56, 0x88, 0x01, 0xd8, 0x57, 0x88, 0x01, + 0xd9, 0x58, 0x88, 0x41, 0xd0, 0x45, 0x88, 0x01, 0xd1, 0x46, 0x88, 0x01, + 0xd2, 0x47, 0x88, 0x01, 0xd3, 0x48, 0x88, 0x01, 0xd4, 0x49, 0x88, 0x01, + 0xd5, 0x4a, 0x88, 0x01, 0xd6, 0x4b, 0x88, 0x01, 0xd7, 0x4c, 0x88, 0x01, + 0xd8, 0x4d, 0x88, 0x01, 0xd9, 0x4e, 0x88, 0x41, 0xd0, 0x3b, 0x88, 0x01, + 0xd1, 0x3c, 0x88, 0x01, 0xd2, 0x3d, 0x88, 0x01, 0xd3, 0x3e, 0x88, 0x01, + 0xd4, 0x3f, 0x88, 0x01, 0xd5, 0x40, 0x88, 0x01, 0xd6, 0x41, 0x88, 0x01, + 0xd7, 0x42, 0x88, 0x01, 0xd8, 0x43, 0x88, 0x01, 0xd9, 0x44, 0x88, 0x41, + 0xd0, 0x31, 0x88, 0x01, 0xd1, 0x32, 0x88, 0x01, 0xd2, 0x33, 0x88, 0x01, + 0xd3, 0x34, 0x88, 0x01, 0xd4, 0x35, 0x88, 0x01, 0xd5, 0x36, 0x88, 0x01, + 0xd6, 0x37, 0x88, 0x01, 0xd7, 0x38, 0x88, 0x01, 0xd8, 0x39, 0x88, 0x01, + 0xd9, 0x3a, 0x88, 0x41, 0xd0, 0x27, 0x88, 0x01, 0xd1, 0x28, 0x88, 0x01, + 0xd2, 0x29, 0x88, 0x01, 0xd3, 0x2a, 0x88, 0x01, 0xd4, 0x2b, 0x88, 0x01, + 0xd5, 0x2c, 0x88, 0x01, 0xd6, 0x2d, 0x88, 0x01, 0xd7, 0x2e, 0x88, 0x01, + 0xd8, 0x2f, 0x88, 0x01, 0xd9, 0x30, 0x88, 0x41, 0xd0, 0x1d, 0x88, 0x01, + 0xd1, 0x1e, 0x88, 0x01, 0xd2, 0x1f, 0x88, 0x01, 0xd3, 0x20, 0x88, 0x01, + 0xd4, 0x21, 0x88, 0x01, 0xd5, 0x22, 0x88, 0x01, 0xd6, 0x23, 0x88, 0x01, + 0xd7, 0x24, 0x88, 0x01, 0xd8, 0x25, 0x88, 0x01, 0xd9, 0x26, 0x88, 0x41, + 0xd0, 0x13, 0x88, 0x01, 0xd1, 0x14, 0x88, 0x01, 0xd2, 0x15, 0x88, 0x01, + 0xd3, 0x16, 0x88, 0x01, 0xd4, 0x17, 0x88, 0x01, 0xd5, 0x18, 0x88, 0x01, + 0xd6, 0x19, 0x88, 0x01, 0xd7, 0x1a, 0x88, 0x01, 0xd8, 0x1b, 0x88, 0x01, + 0xd9, 0x1c, 0x88, 0x41, 0xd0, 0x09, 0x88, 0x01, 0xd1, 0x0a, 0x88, 0x01, + 0xd2, 0x0b, 0x88, 0x01, 0xd3, 0x0c, 0x88, 0x01, 0xd4, 0x0d, 0x88, 0x01, + 0xd5, 0x0e, 0x88, 0x01, 0xd6, 0x0f, 0x88, 0x01, 0xd7, 0x10, 0x88, 0x01, + 0xd8, 0x11, 0x88, 0x01, 0xd9, 0x12, 0x88, 0x41, 0xd1, 0x00, 0x88, 0x01, + 0xd2, 0x01, 0x88, 0x01, 0xd3, 0x02, 0x88, 0x01, 0xd4, 0x03, 0x88, 0x01, + 0xd5, 0x04, 0x88, 0x01, 0xd6, 0x05, 0x88, 0x01, 0xd7, 0x06, 0x88, 0x01, + 0xd8, 0x07, 0x88, 0x01, 0xd9, 0x08, 0x88, 0x41, 0x06, 0xef, 0x06, 0xb1, + 0x03, 0x07, 0xec, 0x05, 0x01, 0xff, 0xa1, 0x87, 0x03, 0x42, 0x16, 0x00, + 0xaa, 0x6a, 0x01, 0xa3, 0xf4, 0x02, 0xa4, 0xe7, 0x02, 0xa5, 0xd4, 0x02, + 0xa6, 0xc7, 0x02, 0xa7, 0xba, 0x02, 0xa8, 0xa6, 0x02, 0xa9, 0x93, 0x02, + 0xab, 0x86, 0x02, 0xac, 0xf9, 0x01, 0xad, 0xe2, 0x01, 0xae, 0xc9, 0x01, + 0xaf, 0xb6, 0x01, 0xb0, 0xa9, 0x01, 0x42, 0x71, 0x00, 0xb2, 0x6a, 0x01, + 0xb3, 0x84, 0x01, 0xb4, 0x72, 0xb5, 0x2a, 0xb6, 0x18, 0x42, 0xa9, 0x01, + 0xa6, 0x6a, 0x01, 0x42, 0xed, 0x26, 0xba, 0x6a, 0x01, 0x42, 0xbc, 0x22, + 0xa5, 0x6a, 0x01, 0x42, 0x59, 0x00, 0xbe, 0x6a, 0x41, 0xe3, 0x79, 0x6a, + 0x01, 0xf1, 0x7a, 0x6a, 0x01, 0xf8, 0x7b, 0x6a, 0x01, 0xfa, 0x78, 0x6a, + 0x41, 0xe3, 0x85, 0x6a, 0x01, 0xa5, 0x30, 0xa9, 0x0c, 0xf1, 0x86, 0x6a, + 0x01, 0xf8, 0x87, 0x6a, 0x01, 0xfa, 0x84, 0x6a, 0x41, 0xe3, 0x8d, 0x6a, + 0x01, 0xf1, 0x8e, 0x6a, 0x01, 0xb5, 0x08, 0xf8, 0x8f, 0x6a, 0x01, 0xfa, + 0x8c, 0x6a, 0x41, 0xe3, 0x99, 0x6a, 0x01, 0xf1, 0x9a, 0x6a, 0x01, 0xf8, + 0x9b, 0x6a, 0x01, 0xfa, 0x98, 0x6a, 0x41, 0xe3, 0x94, 0x6a, 0x01, 0xf1, + 0x96, 0x6a, 0x01, 0xf8, 0x97, 0x6a, 0x01, 0xfa, 0x95, 0x6a, 0x41, 0xe1, + 0xb0, 0x6a, 0x01, 0x42, 0x22, 0x00, 0xb9, 0x6a, 0x01, 0x42, 0x40, 0x06, + 0xb6, 0x6a, 0x41, 0xe1, 0xa4, 0x6a, 0x01, 0xa8, 0x01, 0xff, 0xe1, 0xb4, + 0x6a, 0x01, 0x04, 0x35, 0x07, 0x01, 0xff, 0x43, 0xef, 0xf3, 0x93, 0x6a, + 0x01, 0x43, 0xa9, 0xf4, 0x92, 0x6a, 0x41, 0xe1, 0xa7, 0x6a, 0x01, 0x42, + 0x22, 0x00, 0xa9, 0x6a, 0x41, 0xe3, 0x71, 0x6a, 0x01, 0xf1, 0x72, 0x6a, + 0x01, 0xf8, 0x73, 0x6a, 0x01, 0xfa, 0x70, 0x6a, 0x41, 0xe1, 0xac, 0x6a, + 0x01, 0x42, 0x24, 0x02, 0xa3, 0x6a, 0x01, 0x42, 0x22, 0x00, 0xb3, 0x6a, + 0x01, 0x42, 0xbc, 0x22, 0xa8, 0x6a, 0x41, 0xe1, 0xab, 0x6a, 0x01, 0xe3, + 0x9d, 0x6a, 0x01, 0xf1, 0x9e, 0x6a, 0x01, 0xf8, 0x9f, 0x6a, 0x01, 0xfa, + 0x9c, 0x6a, 0x41, 0xe1, 0xae, 0x6a, 0x01, 0x47, 0xe7, 0xd3, 0x91, 0x6a, + 0x41, 0xe1, 0xa0, 0x6a, 0x01, 0x42, 0x22, 0x00, 0xa1, 0x6a, 0x41, 0xe3, + 0x81, 0x6a, 0x01, 0xf1, 0x82, 0x6a, 0x01, 0xf8, 0x83, 0x6a, 0x01, 0xfa, + 0x80, 0x6a, 0x41, 0xe1, 0xad, 0x6a, 0x01, 0xb4, 0x01, 0xff, 0xe1, 0xaf, + 0x6a, 0x01, 0x42, 0x12, 0x00, 0xb8, 0x6a, 0x41, 0xe1, 0xa2, 0x6a, 0x01, + 0x42, 0x22, 0x00, 0xb7, 0x6a, 0x41, 0xe1, 0xbb, 0x6a, 0x01, 0x47, 0xe9, + 0xb8, 0x90, 0x6a, 0x41, 0xe3, 0x7d, 0x6a, 0x01, 0xf1, 0x7e, 0x6a, 0x01, + 0xf8, 0x7f, 0x6a, 0x01, 0xfa, 0x7c, 0x6a, 0x41, 0xe1, 0xb1, 0x6a, 0x01, + 0x42, 0x22, 0x00, 0xbc, 0x6a, 0x41, 0xe1, 0xb5, 0x6a, 0x01, 0x42, 0x22, + 0x00, 0xbd, 0x6a, 0x41, 0xe3, 0x75, 0x6a, 0x01, 0xf1, 0x76, 0x6a, 0x01, + 0xb7, 0x08, 0xf8, 0x77, 0x6a, 0x01, 0xfa, 0x74, 0x6a, 0x41, 0xe3, 0x89, + 0x6a, 0x01, 0xf1, 0x8a, 0x6a, 0x01, 0xf8, 0x8b, 0x6a, 0x01, 0xfa, 0x88, + 0x6a, 0x41, 0x45, 0x12, 0x0b, 0xc8, 0x6a, 0x01, 0xa6, 0x2e, 0x44, 0xcf, + 0x2a, 0xc9, 0x6a, 0x01, 0x43, 0x0e, 0x0b, 0xc1, 0x6a, 0x01, 0xb3, 0x14, + 0xb4, 0x06, 0x44, 0x43, 0x1e, 0xc0, 0x6a, 0x41, 0x44, 0x25, 0x01, 0xc3, + 0x6a, 0x01, 0x42, 0x15, 0x02, 0xc2, 0x6a, 0x41, 0x44, 0xc9, 0x1d, 0xc7, + 0x6a, 0x01, 0x42, 0x01, 0x26, 0xc6, 0x6a, 0x41, 0x43, 0xd2, 0x05, 0xc5, + 0x6a, 0x01, 0x43, 0xf6, 0x06, 0xc4, 0x6a, 0x41, 0x43, 0x67, 0x00, 0xd4, + 0xfa, 0x01, 0x03, 0xd3, 0x4f, 0x01, 0xff, 0xa1, 0x9a, 0x06, 0xa3, 0x8b, + 0x06, 0xa4, 0xb0, 0x05, 0x09, 0x1e, 0x5a, 0x93, 0x04, 0x52, 0xb7, 0x52, + 0xee, 0x1f, 0x01, 0xac, 0xbc, 0x02, 0x4a, 0x11, 0xae, 0xf4, 0x0b, 0x00, + 0x07, 0xff, 0x39, 0x95, 0x02, 0x42, 0x14, 0x05, 0xd0, 0x0b, 0x00, 0x57, + 0x69, 0x30, 0xff, 0x1f, 0x01, 0x4a, 0x65, 0x80, 0xf9, 0x0b, 0x00, 0xb3, + 0x5b, 0xb4, 0x42, 0x0b, 0x40, 0x77, 0x0c, 0x54, 0xb8, 0x46, 0xe4, 0x1f, + 0x01, 0x49, 0x97, 0xc1, 0xf5, 0x0b, 0x40, 0xa1, 0x24, 0xe5, 0xc6, 0x0b, + 0x80, 0x1b, 0xe9, 0xbf, 0x0b, 0x80, 0x12, 0xef, 0xca, 0x0b, 0x80, 0x09, + 0xf5, 0xc1, 0x0b, 0xc0, 0x00, 0xf5, 0xc2, 0x0b, 0x40, 0xef, 0xcb, 0x0b, + 0x40, 0xe9, 0xc0, 0x0b, 0x40, 0xe5, 0xc7, 0x0b, 0x40, 0xe1, 0xbe, 0x0b, + 0x00, 0xe9, 0xc8, 0x0b, 0x00, 0xf5, 0xcc, 0x0b, 0x40, 0x49, 0x83, 0xbd, + 0xed, 0x1f, 0x01, 0x0b, 0x42, 0x7d, 0x01, 0xff, 0x4b, 0x55, 0x9a, 0xe8, + 0x1f, 0x01, 0x4b, 0x43, 0xa0, 0xe9, 0x1f, 0x41, 0x4c, 0x1f, 0x8c, 0xe7, + 0x1f, 0x01, 0x04, 0x5b, 0x03, 0x0c, 0x49, 0xf8, 0xbd, 0xec, 0x1f, 0x01, + 0x51, 0x2b, 0x5e, 0xef, 0x1f, 0x41, 0xa1, 0x81, 0x01, 0x46, 0x6a, 0xda, + 0xd6, 0x1f, 0x01, 0xab, 0x64, 0x02, 0xc3, 0x16, 0x4e, 0x43, 0xf6, 0xc7, + 0xd5, 0x1f, 0x01, 0xb0, 0x2c, 0x47, 0xca, 0xc0, 0xd8, 0x1f, 0x01, 0xb6, + 0x01, 0xff, 0xa1, 0x15, 0x43, 0xaa, 0x2d, 0xe3, 0x1f, 0x01, 0xa9, 0x01, + 0xff, 0x44, 0xe5, 0x23, 0xcd, 0x0b, 0x00, 0x45, 0xec, 0x4b, 0x83, 0x0b, + 0x40, 0x48, 0x68, 0xc7, 0xf1, 0x1f, 0x01, 0x46, 0x62, 0xdf, 0xe0, 0x1f, + 0x41, 0xa1, 0x06, 0x42, 0x10, 0x00, 0xdf, 0x1f, 0x41, 0x44, 0x7b, 0x77, + 0xe1, 0x1f, 0x01, 0x43, 0x2a, 0x05, 0xde, 0x1f, 0x01, 0x46, 0x8e, 0xe0, + 0xdb, 0x1f, 0x41, 0x47, 0x66, 0xd2, 0xdc, 0x1f, 0x01, 0x47, 0x48, 0xd6, + 0xf0, 0x1f, 0x01, 0x49, 0xc8, 0xc0, 0xd9, 0x1f, 0x41, 0x44, 0xdd, 0xee, + 0xdd, 0x1f, 0x01, 0xb5, 0x01, 0xff, 0x44, 0x04, 0x7e, 0xda, 0x1f, 0x01, + 0x43, 0x53, 0x7f, 0xe2, 0x1f, 0x41, 0x48, 0xe0, 0xc3, 0xd7, 0x1f, 0x01, + 0x47, 0x3d, 0x16, 0x82, 0x0b, 0x40, 0x04, 0x0e, 0x0b, 0x0c, 0x44, 0x5a, + 0x03, 0xfa, 0x0b, 0x00, 0x43, 0xdb, 0x06, 0xf0, 0x0b, 0x40, 0x47, 0x71, + 0x11, 0xf1, 0x0b, 0x00, 0x48, 0x40, 0x5e, 0xf2, 0x0b, 0x40, 0x48, 0xae, + 0x47, 0xe6, 0x1f, 0x01, 0x06, 0xed, 0x05, 0x01, 0xff, 0xe1, 0x85, 0x0b, + 0x80, 0xb1, 0x01, 0x42, 0x37, 0x00, 0x9a, 0x0b, 0x00, 0xe5, 0x8e, 0x0b, + 0x80, 0xa1, 0x01, 0x42, 0x22, 0x00, 0xb9, 0x0b, 0x00, 0xe9, 0x87, 0x0b, + 0x80, 0x91, 0x01, 0x42, 0x56, 0x19, 0x9c, 0x0b, 0x00, 0x42, 0x1b, 0x02, + 0x95, 0x0b, 0x00, 0xac, 0x72, 0x42, 0x6c, 0x00, 0xae, 0x0b, 0x00, 0xae, + 0x4e, 0xef, 0x92, 0x0b, 0x80, 0x45, 0x42, 0xbb, 0x09, 0xaa, 0x0b, 0x00, + 0xb2, 0x33, 0xb3, 0x21, 0xb4, 0x15, 0xf5, 0x89, 0x0b, 0x80, 0x0c, 0x42, + 0xf5, 0x0a, 0xb5, 0x0b, 0x00, 0x42, 0xbc, 0x22, 0xaf, 0x0b, 0x40, 0xf5, + 0x8a, 0x0b, 0x40, 0xe1, 0xa4, 0x0b, 0x00, 0x42, 0x12, 0x00, 0x9f, 0x0b, + 0x40, 0xe1, 0xb8, 0x0b, 0x00, 0x42, 0x22, 0x00, 0xb6, 0x0b, 0x00, 0x42, + 0x40, 0x06, 0xb7, 0x0b, 0x40, 0xe1, 0xb0, 0x0b, 0x00, 0x42, 0x71, 0x00, + 0xb1, 0x0b, 0x40, 0xef, 0x93, 0x0b, 0x40, 0xe1, 0xa8, 0x0b, 0x00, 0x42, + 0x24, 0x02, 0x99, 0x0b, 0x00, 0xae, 0x06, 0x42, 0xbc, 0x22, 0x9e, 0x0b, + 0x40, 0xe1, 0xa3, 0x0b, 0x00, 0x42, 0x2a, 0x05, 0xa9, 0x0b, 0x40, 0xe1, + 0xb2, 0x0b, 0x00, 0xac, 0x01, 0xff, 0xe1, 0xb3, 0x0b, 0x00, 0x42, 0x74, + 0x00, 0xb4, 0x0b, 0x40, 0xe9, 0x88, 0x0b, 0x40, 0xe5, 0x8f, 0x0b, 0x40, + 0xe1, 0x86, 0x0b, 0x00, 0xe9, 0x90, 0x0b, 0x00, 0xf5, 0x94, 0x0b, 0x40, + 0x58, 0x3e, 0x28, 0xd4, 0x1f, 0x01, 0x04, 0x0e, 0x0b, 0x27, 0x06, 0x24, + 0x01, 0x01, 0xff, 0x4a, 0xd9, 0xa9, 0xc6, 0x1f, 0x01, 0x48, 0x2a, 0x01, + 0xd3, 0x1f, 0x01, 0x04, 0x00, 0x26, 0x06, 0x4a, 0x3f, 0xb2, 0xcd, 0x1f, + 0x41, 0x46, 0x17, 0xb1, 0xce, 0x1f, 0x01, 0x49, 0x8e, 0xc1, 0xc7, 0x1f, + 0x41, 0x05, 0x12, 0x0b, 0x59, 0xa6, 0x4b, 0x05, 0xc0, 0x2c, 0x3f, 0x58, + 0x36, 0x2a, 0xc1, 0x1f, 0x01, 0x47, 0x2a, 0x01, 0xd0, 0x1f, 0x01, 0x04, + 0x00, 0x26, 0x1d, 0xb4, 0x01, 0xff, 0x44, 0x82, 0x1b, 0xcb, 0x1f, 0x01, + 0xa8, 0x06, 0x48, 0xd5, 0x25, 0xc8, 0x1f, 0x41, 0x4b, 0x6f, 0x90, 0xc5, + 0x1f, 0x01, 0x59, 0xc4, 0x25, 0xc0, 0x1f, 0x41, 0x06, 0x2a, 0xdb, 0x06, + 0x48, 0x85, 0xc1, 0xc3, 0x1f, 0x41, 0xd1, 0xc9, 0x1f, 0x01, 0xd2, 0xca, + 0x1f, 0x41, 0xd1, 0xd1, 0x1f, 0x01, 0xd2, 0xd2, 0x1f, 0x41, 0x44, 0x42, + 0xaf, 0xcf, 0x1f, 0x01, 0x47, 0x18, 0xd4, 0xc4, 0x1f, 0x41, 0xe8, 0xcc, + 0x1f, 0x01, 0x44, 0xd9, 0x25, 0xc2, 0x1f, 0x41, 0x47, 0x4f, 0xcf, 0xf3, + 0x0b, 0x00, 0x49, 0x07, 0xb8, 0xf6, 0x0b, 0x00, 0x05, 0xf0, 0x06, 0x06, + 0x53, 0xd5, 0x4c, 0xe5, 0x1f, 0x41, 0x45, 0x12, 0x0b, 0xee, 0x0b, 0x00, + 0xa6, 0x2e, 0x44, 0xcf, 0x2a, 0xef, 0x0b, 0x00, 0x43, 0x0e, 0x0b, 0xe7, + 0x0b, 0x00, 0xb3, 0x14, 0xb4, 0x06, 0x44, 0x43, 0x1e, 0xe6, 0x0b, 0x40, + 0x44, 0x25, 0x01, 0xe9, 0x0b, 0x00, 0x42, 0x15, 0x02, 0xe8, 0x0b, 0x40, + 0x44, 0xc9, 0x1d, 0xed, 0x0b, 0x00, 0x42, 0x01, 0x26, 0xec, 0x0b, 0x40, + 0x43, 0xd2, 0x05, 0xeb, 0x0b, 0x00, 0x43, 0xf6, 0x06, 0xea, 0x0b, 0x40, + 0x4a, 0x56, 0x9a, 0xf7, 0x0b, 0x00, 0x4b, 0x79, 0xa4, 0xea, 0x1f, 0x41, + 0x4b, 0xeb, 0x9f, 0xeb, 0x1f, 0x01, 0x4c, 0xef, 0x94, 0xf8, 0x0b, 0x00, + 0x4d, 0x18, 0x76, 0xd7, 0x0b, 0x40, 0x44, 0x80, 0x11, 0x78, 0xd3, 0x01, + 0x43, 0x0e, 0x0b, 0x77, 0xd3, 0x41, 0x48, 0xa8, 0xc5, 0x61, 0xf9, 0x01, + 0x03, 0xe5, 0x0a, 0x01, 0xff, 0x51, 0xdc, 0x57, 0xb9, 0x16, 0x01, 0x06, + 0xef, 0x06, 0xd1, 0x02, 0x07, 0xec, 0x05, 0x4e, 0x05, 0x5a, 0x03, 0x2d, + 0x0b, 0x40, 0x77, 0x01, 0xff, 0xa1, 0x1a, 0xe5, 0xb2, 0x16, 0x01, 0xe9, + 0xae, 0x16, 0x81, 0x0d, 0xef, 0xb4, 0x16, 0x01, 0xf5, 0xb0, 0x16, 0xc1, + 0x00, 0xf5, 0xb1, 0x16, 0x41, 0xe9, 0xaf, 0x16, 0x41, 0xe1, 0xad, 0x16, + 0x01, 0xe9, 0xb3, 0x16, 0x01, 0xf5, 0xb5, 0x16, 0x41, 0x48, 0x3c, 0x16, + 0xab, 0x16, 0x01, 0x45, 0x3f, 0x3f, 0xb7, 0x16, 0x01, 0x02, 0x02, 0x00, + 0x01, 0xff, 0x44, 0xe5, 0x23, 0xb6, 0x16, 0x01, 0x45, 0xec, 0x4b, 0xac, + 0x16, 0x41, 0xe1, 0x80, 0x16, 0x81, 0xe7, 0x01, 0xa2, 0xda, 0x01, 0xa3, + 0xcd, 0x01, 0xa4, 0xb4, 0x01, 0xe5, 0x86, 0x16, 0x01, 0xa7, 0xa3, 0x01, + 0x42, 0x22, 0x00, 0xa9, 0x16, 0x01, 0xe9, 0x82, 0x16, 0x81, 0x93, 0x01, + 0xaa, 0x86, 0x01, 0xab, 0x7a, 0x42, 0x74, 0x00, 0xa5, 0x16, 0x01, 0x42, + 0x6c, 0x00, 0xa2, 0x16, 0x01, 0xae, 0x56, 0xef, 0x88, 0x16, 0x01, 0xb0, + 0x46, 0xb2, 0x3a, 0xb3, 0x2e, 0xb4, 0x15, 0xf5, 0x84, 0x16, 0x81, 0x0c, + 0x42, 0xf5, 0x0a, 0xa6, 0x16, 0x01, 0x42, 0xbc, 0x22, 0xa3, 0x16, 0x41, + 0xf5, 0x85, 0x16, 0x41, 0xe1, 0x99, 0x16, 0x01, 0x42, 0x22, 0x00, 0x9a, + 0x16, 0x01, 0xb4, 0x01, 0xff, 0xe1, 0x94, 0x16, 0x01, 0x42, 0x22, 0x00, + 0x95, 0x16, 0x41, 0xe1, 0xa8, 0x16, 0x01, 0x42, 0x22, 0x00, 0xa7, 0x16, + 0x41, 0xe1, 0xa4, 0x16, 0x01, 0x42, 0x71, 0x00, 0xaa, 0x16, 0x41, 0xe1, + 0x9e, 0x16, 0x01, 0x42, 0x22, 0x00, 0x9f, 0x16, 0x41, 0xe1, 0x9d, 0x16, + 0x01, 0x42, 0x24, 0x02, 0x8e, 0x16, 0x01, 0x42, 0x2a, 0x05, 0x98, 0x16, + 0x01, 0x42, 0xbc, 0x22, 0x93, 0x16, 0x41, 0xe1, 0x8a, 0x16, 0x01, 0x42, + 0x22, 0x00, 0x8b, 0x16, 0x41, 0xe1, 0x91, 0x16, 0x01, 0x42, 0x22, 0x00, + 0x92, 0x16, 0x41, 0xe9, 0x83, 0x16, 0x41, 0xe1, 0x8c, 0x16, 0x01, 0x42, + 0x22, 0x00, 0x8d, 0x16, 0x41, 0xe1, 0x9b, 0x16, 0x01, 0xa4, 0x06, 0x42, + 0x22, 0x00, 0x9c, 0x16, 0x41, 0xe1, 0x96, 0x16, 0x01, 0x42, 0x22, 0x00, + 0x97, 0x16, 0x41, 0xe1, 0x8f, 0x16, 0x01, 0x42, 0x22, 0x00, 0x90, 0x16, + 0x41, 0xe1, 0xa0, 0x16, 0x01, 0x42, 0x22, 0x00, 0xa1, 0x16, 0x41, 0xe1, + 0x81, 0x16, 0x01, 0xe9, 0x87, 0x16, 0x01, 0x4a, 0xf1, 0xaf, 0xb8, 0x16, + 0x01, 0xf5, 0x89, 0x16, 0x41, 0x45, 0x12, 0x0b, 0xc8, 0x16, 0x01, 0xa6, + 0x2e, 0x44, 0xcf, 0x2a, 0xc9, 0x16, 0x01, 0x43, 0x0e, 0x0b, 0xc1, 0x16, + 0x01, 0xb3, 0x14, 0xb4, 0x06, 0x44, 0x43, 0x1e, 0xc0, 0x16, 0x41, 0x44, + 0x25, 0x01, 0xc3, 0x16, 0x01, 0x42, 0x15, 0x02, 0xc2, 0x16, 0x41, 0x44, + 0xc9, 0x1d, 0xc7, 0x16, 0x01, 0x42, 0x01, 0x26, 0xc6, 0x16, 0x41, 0x43, + 0xd2, 0x05, 0xc5, 0x16, 0x01, 0x43, 0xf6, 0x06, 0xc4, 0x16, 0x41, 0x0a, + 0x8b, 0xac, 0xc6, 0x0c, 0x05, 0x5b, 0xa3, 0x8b, 0x06, 0x05, 0x1d, 0xec, + 0xca, 0x02, 0x03, 0x48, 0x58, 0x01, 0xff, 0x07, 0xec, 0x05, 0x2e, 0xb3, + 0x06, 0x47, 0xa6, 0xd7, 0xff, 0xe6, 0x41, 0x04, 0x5b, 0x03, 0x06, 0x4c, + 0x2f, 0x97, 0xfe, 0xe6, 0x41, 0xa1, 0x0c, 0x42, 0x14, 0x05, 0xf5, 0xe6, + 0x01, 0x42, 0xd6, 0x13, 0xe3, 0xe6, 0x41, 0x42, 0x1d, 0x01, 0xef, 0xe6, + 0x01, 0xf5, 0xe6, 0xe6, 0x01, 0xf9, 0xee, 0xe6, 0x41, 0xa1, 0xee, 0x01, + 0x42, 0x5d, 0x00, 0xd0, 0xe6, 0x01, 0x42, 0x13, 0x05, 0xc6, 0xe6, 0x01, + 0x42, 0x3b, 0x01, 0xcb, 0xe6, 0x01, 0xe5, 0xe8, 0xe6, 0x01, 0x42, 0x06, + 0x14, 0xc4, 0xe6, 0x01, 0x05, 0x48, 0x0b, 0x97, 0x01, 0xe9, 0xe1, 0xe6, + 0x81, 0x8d, 0x01, 0x42, 0x13, 0x01, 0xd8, 0xe6, 0x81, 0x4b, 0x42, 0xc3, + 0x07, 0xd6, 0xe6, 0x01, 0xae, 0x39, 0xef, 0xe7, 0xe6, 0x81, 0x30, 0x43, + 0x01, 0x3d, 0xd3, 0xe6, 0x01, 0x42, 0x1f, 0xbd, 0xdc, 0xe6, 0x01, 0x43, + 0x2a, 0x08, 0xce, 0xe6, 0x01, 0xf5, 0xe4, 0xe6, 0x81, 0x0c, 0x42, 0x0a, + 0x1d, 0xd9, 0xe6, 0x01, 0x42, 0xa9, 0x47, 0xd7, 0xe6, 0x41, 0xe1, 0xeb, + 0xe6, 0x01, 0xe5, 0xe2, 0xe6, 0xc1, 0x00, 0xe1, 0xea, 0xe6, 0x41, 0xef, + 0xec, 0xe6, 0x41, 0x42, 0x06, 0x14, 0xc5, 0xe6, 0x01, 0xef, 0xcf, 0xe6, + 0x41, 0x02, 0xd2, 0x00, 0x01, 0xff, 0x42, 0x68, 0x03, 0xd4, 0xe6, 0x01, + 0x42, 0x0b, 0x00, 0xda, 0xe6, 0x01, 0xab, 0x18, 0x43, 0x0d, 0x54, 0xc9, + 0xe6, 0x01, 0x42, 0x9c, 0x01, 0xd1, 0xe6, 0x01, 0x42, 0x1e, 0x00, 0xcc, + 0xe6, 0x01, 0x42, 0xc7, 0x2f, 0xc7, 0xe6, 0x41, 0x42, 0x0b, 0x00, 0xc2, + 0xe6, 0x01, 0xef, 0xc0, 0xe6, 0x01, 0x42, 0x0a, 0x1d, 0xdd, 0xe6, 0x41, + 0xe1, 0xe9, 0xe6, 0x41, 0x42, 0x68, 0x03, 0xd5, 0xe6, 0x01, 0x42, 0x0b, + 0x00, 0xdb, 0xe6, 0x01, 0xab, 0x18, 0x43, 0x0d, 0x54, 0xca, 0xe6, 0x01, + 0x42, 0x9c, 0x01, 0xd2, 0xe6, 0x01, 0x42, 0x1e, 0x00, 0xcd, 0xe6, 0x01, + 0x42, 0xc7, 0x2f, 0xc8, 0xe6, 0x41, 0x42, 0x0b, 0x00, 0xc3, 0xe6, 0x01, + 0xef, 0xc1, 0xe6, 0x01, 0x42, 0x0a, 0x1d, 0xde, 0xe6, 0x41, 0xe1, 0xe0, + 0xe6, 0x01, 0xe5, 0xe5, 0xe6, 0x01, 0xeb, 0xf2, 0xe6, 0x01, 0xed, 0xf1, + 0xe6, 0x01, 0xee, 0xf0, 0xe6, 0x01, 0xf0, 0xf4, 0xe6, 0x01, 0xf4, 0xf3, + 0xe6, 0x01, 0x42, 0xd6, 0x13, 0xed, 0xe6, 0x41, 0x07, 0xec, 0x05, 0x91, + 0x01, 0x05, 0x67, 0xe8, 0x80, 0x01, 0x07, 0x5f, 0x16, 0x5c, 0x09, 0xe7, + 0xbf, 0x40, 0x06, 0x3c, 0x39, 0x01, 0xff, 0xa1, 0x23, 0xe5, 0xb5, 0xaa, + 0x00, 0xe9, 0xb2, 0xaa, 0x80, 0x16, 0xef, 0xb6, 0xaa, 0x00, 0xf5, 0xb4, + 0xaa, 0xc0, 0x00, 0xe1, 0xba, 0xaa, 0x00, 0xe5, 0xb3, 0xaa, 0xc0, 0x00, + 0xe1, 0xb9, 0xaa, 0x40, 0xe1, 0xb8, 0xaa, 0x40, 0xe1, 0xb1, 0xaa, 0x00, + 0xed, 0xbe, 0xaa, 0x00, 0xee, 0xbd, 0xaa, 0x00, 0x42, 0xd6, 0x13, 0xbb, + 0xaa, 0x00, 0xf9, 0xbc, 0xaa, 0x40, 0x42, 0xd5, 0x18, 0xbf, 0xaa, 0x00, + 0x45, 0x4d, 0xe9, 0xc0, 0xaa, 0x00, 0x44, 0xb9, 0xf2, 0xc2, 0xaa, 0x00, + 0x43, 0x2a, 0x08, 0xc1, 0xaa, 0x40, 0x46, 0x92, 0xdc, 0xde, 0xaa, 0x00, + 0x02, 0x4d, 0x03, 0x0c, 0x45, 0x4d, 0xe9, 0xdc, 0xaa, 0x00, 0x43, 0xdc, + 0x85, 0xdd, 0xaa, 0x40, 0x45, 0x31, 0xe7, 0xdf, 0xaa, 0x00, 0xee, 0xdb, + 0xaa, 0x40, 0x43, 0x1c, 0x01, 0xb0, 0xaa, 0x00, 0x43, 0xae, 0x02, 0xb7, + 0xaa, 0x40, 0x05, 0x48, 0x0b, 0x93, 0x01, 0x04, 0x08, 0x05, 0x01, 0xff, + 0x42, 0x5d, 0x00, 0x9a, 0xaa, 0x00, 0xa3, 0x7c, 0x42, 0x3b, 0x01, 0x92, + 0xaa, 0x00, 0x42, 0x68, 0x03, 0xa0, 0xaa, 0x00, 0x42, 0x06, 0x14, 0x86, + 0xaa, 0x00, 0x42, 0x0b, 0x00, 0xac, 0xaa, 0x00, 0xab, 0x52, 0x42, 0x13, + 0x01, 0xa8, 0xaa, 0x00, 0x42, 0xc3, 0x07, 0xa2, 0xaa, 0x00, 0xae, 0x34, + 0xef, 0xae, 0xaa, 0x00, 0xb0, 0x24, 0x42, 0xd0, 0x00, 0xa6, 0xaa, 0x00, + 0x42, 0x60, 0x03, 0x8e, 0xaa, 0x00, 0xb4, 0x0c, 0x42, 0x0a, 0x1d, 0xaa, + 0xaa, 0x00, 0x42, 0xa9, 0x47, 0xa4, 0xaa, 0x40, 0x42, 0x0b, 0x00, 0x96, + 0xaa, 0x00, 0xef, 0x94, 0xaa, 0x40, 0x42, 0x0b, 0x00, 0x9e, 0xaa, 0x00, + 0xef, 0x9c, 0xaa, 0x40, 0x42, 0x06, 0x14, 0x88, 0xaa, 0x00, 0xef, 0x98, + 0xaa, 0x00, 0x42, 0xa9, 0x47, 0x90, 0xaa, 0x40, 0xa8, 0x04, 0xef, 0x80, + 0xaa, 0x40, 0x42, 0x0b, 0x00, 0x84, 0xaa, 0x00, 0xef, 0x82, 0xaa, 0x40, + 0x42, 0x0b, 0x00, 0x8c, 0xaa, 0x00, 0xef, 0x8a, 0xaa, 0x40, 0x42, 0x5d, + 0x00, 0x9b, 0xaa, 0x00, 0xa3, 0x7c, 0x42, 0x3b, 0x01, 0x93, 0xaa, 0x00, + 0x42, 0x68, 0x03, 0xa1, 0xaa, 0x00, 0x42, 0x06, 0x14, 0x87, 0xaa, 0x00, + 0x42, 0x0b, 0x00, 0xad, 0xaa, 0x00, 0xab, 0x52, 0x42, 0x13, 0x01, 0xa9, + 0xaa, 0x00, 0x42, 0xc3, 0x07, 0xa3, 0xaa, 0x00, 0xae, 0x34, 0xef, 0xaf, + 0xaa, 0x00, 0xb0, 0x24, 0x42, 0xd0, 0x00, 0xa7, 0xaa, 0x00, 0x42, 0x60, + 0x03, 0x8f, 0xaa, 0x00, 0xb4, 0x0c, 0x42, 0x0a, 0x1d, 0xab, 0xaa, 0x00, + 0x42, 0xa9, 0x47, 0xa5, 0xaa, 0x40, 0x42, 0x0b, 0x00, 0x97, 0xaa, 0x00, + 0xef, 0x95, 0xaa, 0x40, 0x42, 0x0b, 0x00, 0x9f, 0xaa, 0x00, 0xef, 0x9d, + 0xaa, 0x40, 0x42, 0x06, 0x14, 0x89, 0xaa, 0x00, 0xef, 0x99, 0xaa, 0x00, + 0x42, 0xa9, 0x47, 0x91, 0xaa, 0x40, 0xa8, 0x04, 0xef, 0x81, 0xaa, 0x40, + 0x42, 0x0b, 0x00, 0x85, 0xaa, 0x00, 0xef, 0x83, 0xaa, 0x40, 0x42, 0x0b, + 0x00, 0x8d, 0xaa, 0x00, 0xef, 0x8b, 0xaa, 0x40, 0x02, 0x13, 0x05, 0xe9, + 0x05, 0x0b, 0x15, 0x9d, 0xa2, 0x05, 0x07, 0xec, 0x05, 0xdd, 0x02, 0x05, + 0x5a, 0x03, 0xac, 0x01, 0x0b, 0x5b, 0xa3, 0x66, 0x0b, 0x40, 0x77, 0x01, + 0xff, 0xe1, 0x61, 0x1a, 0x80, 0x50, 0xe5, 0x6e, 0x1a, 0x00, 0xe9, 0x65, + 0x1a, 0x80, 0x43, 0x47, 0x15, 0xd3, 0x62, 0x1a, 0x00, 0xef, 0x6b, 0x1a, + 0x80, 0x20, 0xb4, 0x12, 0xf5, 0x69, 0x1a, 0xc0, 0x00, 0xe5, 0x67, 0x1a, + 0x00, 0xf5, 0x6a, 0x1a, 0xc0, 0x00, 0xe5, 0x68, 0x1a, 0x40, 0x46, 0x2d, + 0xd6, 0x64, 0x1a, 0x00, 0x46, 0x44, 0xdc, 0x72, 0x1a, 0x40, 0x02, 0x5a, + 0x00, 0x08, 0xef, 0x70, 0x1a, 0x00, 0xf9, 0x6d, 0x1a, 0x40, 0x45, 0x5c, + 0x00, 0x73, 0x1a, 0x00, 0x45, 0x20, 0x07, 0x6c, 0x1a, 0x40, 0xe9, 0x66, + 0x1a, 0x40, 0xe1, 0x63, 0x1a, 0x00, 0xe5, 0x6f, 0x1a, 0x00, 0xe9, 0x71, + 0x1a, 0x40, 0x45, 0x12, 0x0b, 0x98, 0x1a, 0x00, 0xa6, 0x2e, 0x44, 0xcf, + 0x2a, 0x99, 0x1a, 0x00, 0x43, 0x0e, 0x0b, 0x91, 0x1a, 0x00, 0xb3, 0x14, + 0xb4, 0x06, 0x44, 0x43, 0x1e, 0x90, 0x1a, 0x40, 0x44, 0x25, 0x01, 0x93, + 0x1a, 0x00, 0x42, 0x15, 0x02, 0x92, 0x1a, 0x40, 0x44, 0xc9, 0x1d, 0x97, + 0x1a, 0x00, 0x42, 0x01, 0x26, 0x96, 0x1a, 0x40, 0x43, 0xd2, 0x05, 0x95, + 0x1a, 0x00, 0x43, 0xf6, 0x06, 0x94, 0x1a, 0x40, 0x45, 0xe3, 0xe4, 0xad, + 0x1a, 0x00, 0x46, 0xfa, 0xda, 0xa5, 0x1a, 0x00, 0xa8, 0x91, 0x01, 0xab, + 0x61, 0x04, 0xa2, 0x45, 0x44, 0xb2, 0x36, 0x02, 0x40, 0x06, 0x19, 0x05, + 0xeb, 0x31, 0x0d, 0x45, 0x4f, 0xec, 0xa0, 0x1a, 0xc0, 0x00, 0x44, 0x15, + 0xf3, 0xa1, 0x1a, 0x40, 0xd1, 0x75, 0x1a, 0x00, 0xd2, 0x76, 0x1a, 0x40, + 0x43, 0x07, 0x8e, 0x60, 0x1a, 0x00, 0x45, 0x50, 0xeb, 0xaa, 0x1a, 0x80, + 0x06, 0x43, 0x25, 0x1a, 0xa2, 0x1a, 0x40, 0x43, 0xe9, 0x75, 0xab, 0x1a, + 0x40, 0x46, 0x62, 0xd9, 0x7a, 0x1a, 0x00, 0x54, 0x30, 0x42, 0xa6, 0x1a, + 0x40, 0x44, 0xc6, 0xa7, 0x74, 0x1a, 0x80, 0x0c, 0x43, 0xdc, 0x85, 0x7b, + 0x1a, 0x00, 0x45, 0x86, 0xec, 0xa7, 0x1a, 0x40, 0x44, 0xfb, 0x43, 0x58, + 0x1a, 0x40, 0x43, 0x80, 0x12, 0xa8, 0x1a, 0x80, 0x21, 0x43, 0x66, 0x54, + 0xa3, 0x1a, 0x00, 0x04, 0x61, 0xf0, 0x01, 0xff, 0x06, 0xea, 0x31, 0x06, + 0x4a, 0xaf, 0xa6, 0x7c, 0x1a, 0x40, 0xd3, 0x77, 0x1a, 0x00, 0xd4, 0x78, + 0x1a, 0x00, 0xd5, 0x79, 0x1a, 0x40, 0x43, 0xe9, 0x75, 0xa9, 0x1a, 0x40, + 0x43, 0x1c, 0x01, 0xac, 0x1a, 0x00, 0x42, 0x58, 0x69, 0xa4, 0x1a, 0x40, + 0xe1, 0x4b, 0x1a, 0x00, 0x42, 0x16, 0x00, 0x37, 0x1a, 0x00, 0x42, 0xf0, + 0x10, 0x2f, 0x1a, 0x00, 0x42, 0x27, 0x01, 0x51, 0x1a, 0x00, 0x48, 0x80, + 0xc6, 0x54, 0x1a, 0x00, 0x05, 0x48, 0x0b, 0xbf, 0x01, 0xe9, 0x4d, 0x1a, + 0x80, 0xb5, 0x01, 0xac, 0x46, 0x42, 0x6c, 0x00, 0x3e, 0x1a, 0x00, 0xae, + 0x2e, 0x42, 0xcd, 0x02, 0x52, 0x1a, 0x00, 0xb2, 0x0f, 0xf5, 0x4f, 0x1a, + 0x80, 0x06, 0x42, 0xa9, 0x01, 0x45, 0x1a, 0x40, 0xf5, 0x50, 0x1a, 0x40, + 0xe1, 0x41, 0x1a, 0x80, 0x06, 0x42, 0xd6, 0x13, 0x42, 0x1a, 0x40, 0x42, + 0x2a, 0x05, 0x31, 0x1a, 0x00, 0x42, 0x12, 0x00, 0x2d, 0x1a, 0x40, 0xe1, + 0x36, 0x1a, 0x00, 0x42, 0x24, 0x02, 0x26, 0x1a, 0x00, 0x42, 0xbc, 0x22, + 0x2c, 0x1a, 0x40, 0xe1, 0x43, 0x1a, 0x80, 0x64, 0x42, 0x74, 0x00, 0x4a, + 0x1a, 0x00, 0x03, 0xd1, 0x00, 0x06, 0x42, 0xd6, 0x13, 0x44, 0x1a, 0x40, + 0xa3, 0x48, 0x42, 0x0c, 0x08, 0x3c, 0x1a, 0x00, 0x42, 0x22, 0x00, 0x4c, + 0x1a, 0x00, 0xab, 0x2a, 0xb0, 0x1e, 0x45, 0xd5, 0x42, 0x30, 0x1a, 0x00, + 0x42, 0x40, 0x06, 0x2a, 0x1a, 0x00, 0xb4, 0x06, 0x42, 0xbc, 0x22, 0x3f, + 0x1a, 0x40, 0xe1, 0x34, 0x1a, 0x00, 0x42, 0x22, 0x00, 0x35, 0x1a, 0x40, + 0xe1, 0x3b, 0x1a, 0x00, 0x42, 0x22, 0x00, 0x3d, 0x1a, 0x40, 0xe1, 0x23, + 0x1a, 0x00, 0x42, 0x22, 0x00, 0x25, 0x1a, 0x00, 0x42, 0xed, 0x26, 0x24, + 0x1a, 0x40, 0xe1, 0x29, 0x1a, 0x00, 0x42, 0x22, 0x00, 0x2b, 0x1a, 0x40, + 0xe5, 0x53, 0x1a, 0x40, 0xe9, 0x4e, 0x1a, 0x40, 0xa3, 0x54, 0x42, 0x0c, + 0x08, 0x3a, 0x1a, 0x00, 0x42, 0x22, 0x00, 0x49, 0x1a, 0x00, 0xab, 0x36, + 0xb0, 0x2a, 0x45, 0xd5, 0x42, 0x2e, 0x1a, 0x00, 0xb3, 0x12, 0xb4, 0x06, + 0x42, 0xbc, 0x22, 0x40, 0x1a, 0x40, 0xe1, 0x32, 0x1a, 0x00, 0x42, 0x22, + 0x00, 0x33, 0x1a, 0x40, 0xe1, 0x48, 0x1a, 0x00, 0x42, 0x22, 0x00, 0x46, + 0x1a, 0x00, 0x42, 0x40, 0x06, 0x47, 0x1a, 0x40, 0xe1, 0x38, 0x1a, 0x00, + 0x42, 0x22, 0x00, 0x39, 0x1a, 0x40, 0xe1, 0x20, 0x1a, 0x00, 0x42, 0x22, + 0x00, 0x21, 0x1a, 0x00, 0x42, 0xed, 0x26, 0x22, 0x1a, 0x40, 0xe1, 0x27, + 0x1a, 0x00, 0x42, 0x22, 0x00, 0x28, 0x1a, 0x40, 0x45, 0x12, 0x0b, 0x88, + 0x1a, 0x00, 0xa6, 0x2e, 0x44, 0xcf, 0x2a, 0x89, 0x1a, 0x00, 0x43, 0x0e, + 0x0b, 0x81, 0x1a, 0x00, 0xb3, 0x14, 0xb4, 0x06, 0x44, 0x43, 0x1e, 0x80, + 0x1a, 0x40, 0x44, 0x25, 0x01, 0x83, 0x1a, 0x00, 0x42, 0x15, 0x02, 0x82, + 0x1a, 0x40, 0x44, 0xc9, 0x1d, 0x87, 0x1a, 0x00, 0x42, 0x01, 0x26, 0x86, + 0x1a, 0x40, 0x43, 0xd2, 0x05, 0x85, 0x1a, 0x00, 0x43, 0xf6, 0x06, 0x84, + 0x1a, 0x40, 0x59, 0xca, 0x24, 0x7f, 0x1a, 0x00, 0x0d, 0x3f, 0x33, 0x01, + 0xff, 0x42, 0x16, 0x00, 0x5d, 0x1a, 0x00, 0x49, 0xe8, 0xb8, 0x59, 0x1a, + 0x00, 0x54, 0xd0, 0x42, 0x5b, 0x1a, 0x00, 0xac, 0x1d, 0xad, 0x06, 0x42, + 0x40, 0x06, 0x5e, 0x1a, 0x40, 0xe1, 0x5c, 0x1a, 0x00, 0x06, 0x4d, 0x33, + 0x01, 0xff, 0x42, 0x74, 0x00, 0x56, 0x1a, 0x00, 0x42, 0x71, 0x00, 0x55, + 0x1a, 0x40, 0x4a, 0x3b, 0xa7, 0x57, 0x1a, 0x00, 0x45, 0x90, 0x35, 0x5a, + 0x1a, 0x40, 0xe1, 0x63, 0x19, 0x80, 0xb0, 0x01, 0xe5, 0x6b, 0x19, 0x80, + 0xa2, 0x01, 0x42, 0x0c, 0x08, 0x5c, 0x19, 0x00, 0x42, 0x22, 0x00, 0x5e, + 0x19, 0x00, 0xe9, 0x64, 0x19, 0x00, 0xab, 0x85, 0x01, 0x42, 0x74, 0x00, + 0x58, 0x19, 0x00, 0x42, 0x6c, 0x00, 0x5b, 0x19, 0x00, 0xae, 0x6d, 0xef, + 0x69, 0x19, 0x80, 0x64, 0xb0, 0x58, 0x42, 0x43, 0x14, 0x5f, 0x19, 0x00, + 0x42, 0x40, 0x06, 0x54, 0x19, 0x00, 0xb4, 0x1b, 0xf5, 0x67, 0x19, 0x80, + 0x12, 0x42, 0xf5, 0x0a, 0x5d, 0x19, 0x00, 0x42, 0xed, 0x26, 0x51, 0x19, + 0x00, 0x42, 0xbc, 0x22, 0x55, 0x19, 0x40, 0xe5, 0x6a, 0x19, 0x40, 0xe1, + 0x56, 0x19, 0x00, 0x42, 0x22, 0x00, 0x57, 0x19, 0x00, 0x04, 0x00, 0x20, + 0x0d, 0xb3, 0x01, 0xff, 0xe1, 0x53, 0x19, 0x00, 0x42, 0x22, 0x00, 0x61, + 0x19, 0x40, 0xd2, 0x70, 0x19, 0x00, 0xd3, 0x71, 0x19, 0x00, 0xd4, 0x72, + 0x19, 0x00, 0xd5, 0x73, 0x19, 0x00, 0xd6, 0x74, 0x19, 0x40, 0xe1, 0x59, + 0x19, 0x00, 0x42, 0x22, 0x00, 0x5a, 0x19, 0x40, 0xef, 0x68, 0x19, 0x40, + 0xe1, 0x62, 0x19, 0x00, 0x42, 0x24, 0x02, 0x52, 0x19, 0x40, 0xe1, 0x50, + 0x19, 0x00, 0x42, 0x22, 0x00, 0x60, 0x19, 0x40, 0xe5, 0x65, 0x19, 0x00, + 0xe8, 0x66, 0x19, 0x40, 0xe9, 0x6d, 0x19, 0x00, 0x42, 0xd6, 0x13, 0x6c, + 0x19, 0x40, 0x80, 0x82, 0x02, 0x05, 0x39, 0xe4, 0x70, 0x06, 0x10, 0xda, + 0x01, 0xff, 0x07, 0xec, 0x05, 0x0d, 0x0b, 0x40, 0x77, 0x01, 0xff, 0xe9, + 0x72, 0x17, 0x00, 0xf5, 0x73, 0x17, 0x40, 0xe1, 0x60, 0x17, 0x00, 0x42, + 0x16, 0x00, 0x6a, 0x17, 0x00, 0x42, 0xf0, 0x10, 0x67, 0x17, 0x00, 0x42, + 0x24, 0x02, 0x64, 0x17, 0x00, 0xe9, 0x61, 0x17, 0x00, 0x42, 0x1b, 0x02, + 0x63, 0x17, 0x00, 0x42, 0x74, 0x00, 0x6e, 0x17, 0x00, 0x42, 0x6c, 0x00, + 0x6b, 0x17, 0x00, 0xae, 0x22, 0x42, 0xbb, 0x09, 0x69, 0x17, 0x00, 0x42, + 0x40, 0x06, 0x70, 0x17, 0x00, 0x42, 0x12, 0x00, 0x66, 0x17, 0x00, 0xf5, + 0x62, 0x17, 0x00, 0x42, 0xa9, 0x01, 0x6f, 0x17, 0x00, 0x42, 0xbc, 0x22, + 0x6c, 0x17, 0x40, 0xe1, 0x68, 0x17, 0x00, 0x42, 0x24, 0x02, 0x65, 0x17, + 0x40, 0x07, 0xec, 0x05, 0x1d, 0x05, 0x5a, 0x03, 0x0d, 0x0b, 0x40, 0x77, + 0x01, 0xff, 0xe9, 0x12, 0x17, 0x00, 0xf5, 0x13, 0x17, 0x40, 0x48, 0xbb, + 0x88, 0x15, 0x17, 0x00, 0x46, 0xe3, 0x23, 0x14, 0x17, 0x40, 0xe1, 0x00, + 0x17, 0x80, 0x62, 0x42, 0x16, 0x00, 0x0a, 0x17, 0x00, 0x42, 0xf0, 0x10, + 0x07, 0x17, 0x00, 0x42, 0x24, 0x02, 0x04, 0x17, 0x00, 0x42, 0x22, 0x00, + 0x11, 0x17, 0x00, 0xe9, 0x01, 0x17, 0x00, 0x42, 0x1b, 0x02, 0x03, 0x17, + 0x00, 0x42, 0x74, 0x00, 0x0e, 0x17, 0x00, 0x42, 0x6c, 0x00, 0x0b, 0x17, + 0x00, 0xae, 0x28, 0x42, 0xbb, 0x09, 0x09, 0x17, 0x00, 0x42, 0x71, 0x00, + 0x0d, 0x17, 0x00, 0x42, 0x40, 0x06, 0x10, 0x17, 0x00, 0x42, 0x12, 0x00, + 0x06, 0x17, 0x00, 0xf5, 0x02, 0x17, 0x00, 0x42, 0xa9, 0x01, 0x0f, 0x17, + 0x00, 0x42, 0xbc, 0x22, 0x0c, 0x17, 0x40, 0xe1, 0x08, 0x17, 0x00, 0x42, + 0x24, 0x02, 0x05, 0x17, 0x40, 0x49, 0x76, 0xbe, 0x1f, 0x17, 0x40, 0xa1, + 0x82, 0x04, 0xa3, 0xe1, 0x03, 0xa4, 0x92, 0x03, 0xa5, 0x83, 0x03, 0x49, + 0x81, 0x16, 0x2e, 0x00, 0x0e, 0x02, 0x87, 0x00, 0xec, 0x02, 0x4c, 0xc7, + 0x8f, 0x2d, 0x00, 0x0e, 0xac, 0x63, 0x4b, 0x43, 0xa0, 0x23, 0x00, 0x0e, + 0xb0, 0x4f, 0x02, 0x7c, 0x00, 0x3f, 0xb2, 0x20, 0xb3, 0x0c, 0x45, 0x35, + 0x23, 0x7e, 0x00, 0x0e, 0x4d, 0xcd, 0x0b, 0x7c, 0x00, 0x4e, 0x48, 0xda, + 0x59, 0x3b, 0x00, 0x0e, 0x46, 0x50, 0x31, 0x2f, 0x00, 0x0e, 0x44, 0xd1, + 0x4c, 0x20, 0x00, 0x4e, 0x4e, 0x67, 0x72, 0x5c, 0x00, 0x0e, 0x05, 0xc9, + 0x00, 0x01, 0xff, 0x4d, 0x72, 0x0b, 0x7d, 0x00, 0x0e, 0x4b, 0xd8, 0x21, + 0x29, 0x00, 0x0e, 0x4e, 0xc8, 0x26, 0x5d, 0x00, 0x4e, 0x4b, 0xa8, 0x34, + 0x3f, 0x00, 0x0e, 0x4c, 0x1b, 0x05, 0x22, 0x00, 0x4e, 0x4b, 0xe1, 0x9b, + 0x25, 0x00, 0x0e, 0x48, 0xe0, 0x71, 0x2b, 0x00, 0x4e, 0x05, 0xdf, 0x05, + 0x24, 0xa5, 0x06, 0x47, 0x76, 0x8a, 0x5f, 0x00, 0x4e, 0x03, 0xc5, 0x00, + 0x06, 0x4c, 0x67, 0x95, 0x3c, 0x00, 0x4e, 0x4d, 0x72, 0x0b, 0x7b, 0x00, + 0x0e, 0x4b, 0xd8, 0x21, 0x28, 0x00, 0x0e, 0x4e, 0xc8, 0x26, 0x5b, 0x00, + 0x4e, 0x0f, 0xe4, 0x05, 0x6d, 0x0d, 0x76, 0x08, 0x01, 0xff, 0xe1, 0x61, + 0x00, 0x0e, 0xe2, 0x62, 0x00, 0x0e, 0xe3, 0x63, 0x00, 0x0e, 0xe4, 0x64, + 0x00, 0x0e, 0xe5, 0x65, 0x00, 0x0e, 0xe6, 0x66, 0x00, 0x0e, 0xe7, 0x67, + 0x00, 0x0e, 0xe8, 0x68, 0x00, 0x0e, 0xe9, 0x69, 0x00, 0x0e, 0xea, 0x6a, + 0x00, 0x0e, 0xeb, 0x6b, 0x00, 0x0e, 0xec, 0x6c, 0x00, 0x0e, 0xed, 0x6d, + 0x00, 0x0e, 0xee, 0x6e, 0x00, 0x0e, 0xef, 0x6f, 0x00, 0x0e, 0xf0, 0x70, + 0x00, 0x0e, 0xf1, 0x71, 0x00, 0x0e, 0xf2, 0x72, 0x00, 0x0e, 0xf3, 0x73, + 0x00, 0x0e, 0xf4, 0x74, 0x00, 0x0e, 0xf5, 0x75, 0x00, 0x0e, 0xf6, 0x76, + 0x00, 0x0e, 0xf7, 0x77, 0x00, 0x0e, 0xf8, 0x78, 0x00, 0x0e, 0xf9, 0x79, + 0x00, 0x0e, 0xfa, 0x7a, 0x00, 0x4e, 0xe1, 0x41, 0x00, 0x0e, 0xe2, 0x42, + 0x00, 0x0e, 0xe3, 0x43, 0x00, 0x0e, 0xe4, 0x44, 0x00, 0x0e, 0xe5, 0x45, + 0x00, 0x0e, 0xe6, 0x46, 0x00, 0x0e, 0xe7, 0x47, 0x00, 0x0e, 0xe8, 0x48, + 0x00, 0x0e, 0xe9, 0x49, 0x00, 0x0e, 0xea, 0x4a, 0x00, 0x0e, 0xeb, 0x4b, + 0x00, 0x0e, 0xec, 0x4c, 0x00, 0x0e, 0xed, 0x4d, 0x00, 0x0e, 0xee, 0x4e, + 0x00, 0x0e, 0xef, 0x4f, 0x00, 0x0e, 0xf0, 0x50, 0x00, 0x0e, 0xf1, 0x51, + 0x00, 0x0e, 0xf2, 0x52, 0x00, 0x0e, 0xf3, 0x53, 0x00, 0x0e, 0xf4, 0x54, + 0x00, 0x0e, 0xf5, 0x55, 0x00, 0x0e, 0xf6, 0x56, 0x00, 0x0e, 0xf7, 0x57, + 0x00, 0x0e, 0xf8, 0x58, 0x00, 0x0e, 0xf9, 0x59, 0x00, 0x0e, 0xfa, 0x5a, + 0x00, 0x4e, 0x4a, 0x17, 0x23, 0x60, 0x00, 0x0e, 0x4f, 0x64, 0x5a, 0x3e, + 0x00, 0x4e, 0x4a, 0x49, 0x13, 0x3d, 0x00, 0x0e, 0x4f, 0xae, 0x00, 0x21, + 0x00, 0x4e, 0x05, 0xf0, 0x06, 0x06, 0x4a, 0x11, 0x9b, 0x24, 0x00, 0x4e, + 0x45, 0x12, 0x0b, 0x38, 0x00, 0x0e, 0xa6, 0x2e, 0x44, 0xcf, 0x2a, 0x39, + 0x00, 0x0e, 0x43, 0x0e, 0x0b, 0x31, 0x00, 0x0e, 0xb3, 0x14, 0xb4, 0x06, + 0x44, 0x43, 0x1e, 0x30, 0x00, 0x4e, 0x44, 0x25, 0x01, 0x33, 0x00, 0x0e, + 0x42, 0x15, 0x02, 0x32, 0x00, 0x4e, 0x44, 0xc9, 0x1d, 0x37, 0x00, 0x0e, + 0x42, 0x01, 0x26, 0x36, 0x00, 0x4e, 0x43, 0xd2, 0x05, 0x35, 0x00, 0x0e, + 0x43, 0xf6, 0x06, 0x34, 0x00, 0x4e, 0x50, 0xd0, 0x04, 0x5e, 0x00, 0x0e, + 0xaf, 0x01, 0xff, 0x43, 0xd7, 0x02, 0x3a, 0x00, 0x0e, 0x02, 0x15, 0x05, + 0x01, 0xff, 0xe1, 0x2c, 0x00, 0x0e, 0x49, 0x85, 0xb8, 0x40, 0x00, 0x4e, + 0x48, 0x13, 0x3e, 0x26, 0x00, 0x0e, 0x49, 0x62, 0x36, 0x27, 0x00, 0x0e, + 0x47, 0x3d, 0x0d, 0x2a, 0x00, 0x4e, 0x43, 0x9e, 0x77, 0x96, 0xf9, 0x01, + 0x45, 0x66, 0x4a, 0x55, 0xf4, 0x41, 0x4c, 0x23, 0x8b, 0xcc, 0x29, 0x00, + 0xa1, 0x99, 0x85, 0x01, 0xa3, 0xfc, 0x83, 0x01, 0xa5, 0xa6, 0x7f, 0xa8, + 0xbc, 0x75, 0xa9, 0xfa, 0x3d, 0xab, 0xcd, 0x3d, 0xac, 0xa3, 0x3c, 0xad, + 0xed, 0x37, 0xae, 0xab, 0x37, 0xaf, 0xcf, 0x2c, 0xb0, 0xd7, 0x2a, 0x02, + 0x7c, 0x00, 0xc5, 0x18, 0xb4, 0xf4, 0x15, 0xb5, 0xa8, 0x0a, 0xb7, 0x8d, + 0x0a, 0xb9, 0x01, 0xff, 0x0b, 0xee, 0x9e, 0xfa, 0x07, 0xad, 0xb2, 0x05, + 0xae, 0xa3, 0x05, 0x02, 0x0d, 0x00, 0x01, 0xff, 0x03, 0x4e, 0x73, 0x06, + 0x43, 0xda, 0x09, 0x89, 0xf4, 0x41, 0x51, 0x0b, 0x50, 0x0f, 0x07, 0x00, + 0x47, 0x64, 0xcf, 0x4a, 0x07, 0x00, 0x02, 0x13, 0x05, 0xed, 0x04, 0x0d, + 0x02, 0x82, 0xdc, 0x04, 0xa5, 0xc2, 0x04, 0x4c, 0xd7, 0x8e, 0x40, 0x07, + 0x00, 0xa8, 0x85, 0x04, 0x07, 0xec, 0x05, 0xca, 0x01, 0x45, 0x01, 0x28, + 0x49, 0x07, 0x00, 0x0d, 0xae, 0x86, 0xb3, 0x01, 0x07, 0xea, 0xd4, 0x9c, + 0x01, 0x49, 0x5b, 0xbe, 0x41, 0x07, 0x00, 0xb2, 0x78, 0x02, 0x6f, 0x00, + 0x3a, 0xb4, 0x17, 0x07, 0xf3, 0xd7, 0x01, 0xff, 0x45, 0x5c, 0x00, 0x33, + 0x07, 0x00, 0x45, 0x20, 0x07, 0x34, 0x07, 0x00, 0x46, 0xb0, 0x1f, 0x35, + 0x07, 0x40, 0x0a, 0xae, 0x12, 0x11, 0x11, 0xb2, 0x5f, 0x01, 0xff, 0x45, + 0x5c, 0x00, 0x43, 0x07, 0x00, 0x45, 0x20, 0x07, 0x44, 0x07, 0x40, 0x45, + 0x5c, 0x00, 0x45, 0x07, 0x00, 0x45, 0x20, 0x07, 0x46, 0x07, 0x40, 0x08, + 0x38, 0xc4, 0x18, 0x0a, 0xc9, 0xaf, 0x01, 0xff, 0x45, 0x94, 0x3b, 0x03, + 0x07, 0x80, 0x06, 0x49, 0x81, 0x16, 0x01, 0x07, 0x40, 0x4c, 0x83, 0x8b, + 0x08, 0x07, 0x40, 0x45, 0x94, 0x3b, 0x04, 0x07, 0x80, 0x06, 0x49, 0x81, + 0x16, 0x02, 0x07, 0x40, 0x08, 0x83, 0x8b, 0x01, 0xff, 0x44, 0xc3, 0x00, + 0x09, 0x07, 0x00, 0x45, 0xc8, 0x00, 0x09, 0x07, 0x40, 0x05, 0xa7, 0xe4, + 0x0c, 0x47, 0xb1, 0xd6, 0x42, 0x07, 0x00, 0x44, 0x1d, 0xf3, 0x3f, 0x07, + 0x40, 0x45, 0x5c, 0x00, 0x36, 0x07, 0x00, 0x45, 0x20, 0x07, 0x37, 0x07, + 0x40, 0x45, 0x5c, 0x00, 0x30, 0x07, 0x00, 0x45, 0x20, 0x07, 0x31, 0x07, + 0x00, 0x46, 0xb0, 0x1f, 0x32, 0x07, 0x40, 0x45, 0x5c, 0x00, 0x47, 0x07, + 0x00, 0x45, 0x20, 0x07, 0x48, 0x07, 0x40, 0x45, 0x41, 0x68, 0x10, 0x07, + 0x00, 0x44, 0x41, 0xef, 0x12, 0x07, 0x00, 0xa4, 0x9b, 0x02, 0xe5, 0x25, + 0x07, 0x00, 0x4d, 0xec, 0x82, 0x24, 0x07, 0x00, 0x45, 0x8c, 0xe6, 0x13, + 0x07, 0x80, 0x83, 0x02, 0x42, 0xb0, 0x01, 0x17, 0x07, 0x80, 0xf5, 0x01, + 0x44, 0xcd, 0xf0, 0x1f, 0x07, 0x00, 0x46, 0x8e, 0xdd, 0x20, 0x07, 0x00, + 0xad, 0x96, 0x01, 0x43, 0xdc, 0x22, 0x22, 0x07, 0x00, 0x42, 0x6f, 0x02, + 0x26, 0x07, 0x80, 0x72, 0x44, 0xf4, 0xd7, 0x29, 0x07, 0x00, 0xb2, 0x5e, + 0xb3, 0x2e, 0xb4, 0x19, 0x43, 0x8a, 0x8a, 0x18, 0x07, 0x00, 0x44, 0x45, + 0xf3, 0x1d, 0x07, 0x80, 0x06, 0x44, 0x27, 0x75, 0x19, 0x07, 0x40, 0x43, + 0x29, 0x15, 0x1e, 0x07, 0x40, 0x42, 0xb7, 0x2d, 0x2c, 0x07, 0x00, 0x43, + 0xda, 0x25, 0x1b, 0x07, 0xc0, 0x00, 0x49, 0x5f, 0xb4, 0x1c, 0x07, 0x40, + 0x44, 0xac, 0xea, 0x28, 0x07, 0x00, 0x46, 0xf3, 0x82, 0x23, 0x07, 0x00, + 0x43, 0x7a, 0x16, 0x2b, 0x07, 0x00, 0x07, 0xc4, 0xd3, 0x06, 0x50, 0x36, + 0x68, 0x11, 0x07, 0x40, 0x42, 0x0c, 0x1a, 0x4f, 0x07, 0x00, 0x45, 0xd6, + 0xe7, 0x4e, 0x07, 0x00, 0x45, 0xa4, 0xec, 0x4d, 0x07, 0x40, 0x4a, 0x33, + 0xaa, 0x27, 0x07, 0x00, 0x43, 0xd1, 0x0c, 0x2a, 0x07, 0x40, 0x06, 0xb6, + 0xdf, 0x01, 0xff, 0x45, 0xc5, 0xe4, 0x2d, 0x07, 0x00, 0x47, 0x52, 0xd0, + 0x2f, 0x07, 0x00, 0x46, 0xfc, 0xdb, 0x2e, 0x07, 0x40, 0x09, 0xeb, 0xb5, + 0x06, 0x42, 0x29, 0x02, 0x21, 0x07, 0x40, 0x43, 0xd9, 0x2a, 0x66, 0x08, + 0x00, 0x42, 0x56, 0x19, 0x61, 0x08, 0x00, 0x02, 0x60, 0x07, 0x2c, 0xae, + 0x12, 0x42, 0x71, 0x00, 0x67, 0x08, 0x00, 0x43, 0xfb, 0x20, 0x6a, 0x08, + 0x00, 0x43, 0xd1, 0x28, 0x63, 0x08, 0x40, 0x42, 0x24, 0x02, 0x60, 0x08, + 0x00, 0xae, 0x06, 0x42, 0xbc, 0x22, 0x62, 0x08, 0x40, 0xe1, 0x64, 0x08, + 0x00, 0x42, 0x2a, 0x05, 0x65, 0x08, 0x40, 0xe1, 0x68, 0x08, 0x00, 0x42, + 0x74, 0x00, 0x69, 0x08, 0x40, 0x42, 0x53, 0x00, 0x1a, 0x07, 0x40, 0x49, + 0x5f, 0xb4, 0x14, 0x07, 0x40, 0x45, 0x39, 0x54, 0x15, 0x07, 0x00, 0x52, + 0x31, 0x54, 0x16, 0x07, 0x40, 0x08, 0x80, 0xc3, 0x1e, 0x04, 0x18, 0x81, + 0x06, 0x4f, 0x67, 0x71, 0x05, 0x07, 0x40, 0x80, 0x06, 0x4d, 0x07, 0x80, + 0x3c, 0x07, 0x40, 0x45, 0x5c, 0x00, 0x3a, 0x07, 0x00, 0x45, 0x20, 0x07, + 0x3b, 0x07, 0x40, 0x4a, 0xef, 0xa7, 0x0d, 0x07, 0x00, 0x49, 0x00, 0xbc, + 0x0c, 0x07, 0x00, 0x46, 0x03, 0xbc, 0x0b, 0x07, 0x40, 0x4f, 0x95, 0x70, + 0x00, 0x07, 0x00, 0x05, 0x09, 0x80, 0x01, 0xff, 0x45, 0x5c, 0x00, 0x3d, + 0x07, 0x00, 0x45, 0x20, 0x07, 0x3e, 0x07, 0x40, 0x47, 0x1c, 0x01, 0x39, + 0x07, 0x00, 0x4a, 0x0b, 0x00, 0x38, 0x07, 0x40, 0x0b, 0xcd, 0x9e, 0x06, + 0x49, 0xb4, 0xbc, 0x0a, 0x07, 0x40, 0x44, 0xc3, 0x00, 0x06, 0x07, 0x00, + 0x45, 0xc8, 0x00, 0x07, 0x07, 0x40, 0x46, 0x8c, 0xd9, 0x4d, 0xf5, 0x01, + 0x4d, 0x0b, 0x75, 0x16, 0x00, 0x40, 0x08, 0x4f, 0x32, 0x06, 0x45, 0x9e, + 0xe8, 0x2f, 0x23, 0x40, 0x4b, 0xe6, 0x51, 0x06, 0x24, 0x00, 0xa2, 0xa6, + 0x02, 0x02, 0x37, 0x00, 0x95, 0x02, 0xa4, 0xc7, 0x01, 0xa5, 0x96, 0x01, + 0xa6, 0x87, 0x01, 0x4f, 0xb6, 0x6d, 0x1d, 0x24, 0x00, 0x55, 0xd8, 0x3b, + 0x09, 0x24, 0x00, 0x49, 0xce, 0x20, 0x0a, 0x24, 0x00, 0x4d, 0x9d, 0x85, + 0x45, 0xf5, 0x01, 0xae, 0x59, 0x50, 0x56, 0x66, 0x1e, 0x24, 0x00, 0xb3, + 0x12, 0x52, 0xf3, 0x55, 0x97, 0x2b, 0x00, 0x4e, 0x05, 0x7e, 0x1f, 0x24, + 0x00, 0x53, 0xd6, 0x4e, 0x0b, 0x24, 0x40, 0x4f, 0xb9, 0x6a, 0x4f, 0x21, + 0x00, 0x05, 0xdc, 0xab, 0x29, 0x44, 0xd1, 0x4c, 0x20, 0x24, 0x00, 0x08, + 0x6d, 0x4d, 0x13, 0x49, 0x2f, 0xc0, 0x1a, 0x24, 0x80, 0x06, 0x4f, 0x09, + 0x75, 0x16, 0x24, 0x40, 0x49, 0x21, 0x2e, 0x26, 0x24, 0x40, 0x47, 0x86, + 0xd1, 0x01, 0x24, 0x00, 0x44, 0x7c, 0x30, 0x02, 0x24, 0x40, 0x42, 0x9e, + 0x01, 0x0f, 0x24, 0x00, 0x43, 0x28, 0x08, 0x0e, 0x24, 0x40, 0xa5, 0x06, + 0x43, 0x82, 0x16, 0x00, 0x24, 0x40, 0x52, 0xdf, 0x51, 0x15, 0x24, 0x00, + 0x45, 0xcd, 0x20, 0x24, 0x24, 0x40, 0x4d, 0x24, 0x84, 0x1c, 0x24, 0x00, + 0x48, 0x68, 0xc9, 0x0c, 0x24, 0x40, 0xae, 0x06, 0x45, 0xf0, 0x6a, 0x1b, + 0x24, 0x40, 0x05, 0x42, 0x05, 0x06, 0x45, 0x1f, 0xea, 0x05, 0x24, 0x40, + 0x46, 0x44, 0x04, 0x19, 0x24, 0x00, 0xb4, 0x01, 0xff, 0x43, 0xd9, 0x06, + 0x03, 0x24, 0x00, 0x4b, 0xc4, 0xa1, 0x04, 0x24, 0xc0, 0x00, 0x46, 0x32, + 0x01, 0x17, 0x24, 0x40, 0x4f, 0xe6, 0x6a, 0x10, 0x24, 0x00, 0xa5, 0x01, + 0xff, 0x44, 0x2e, 0x7b, 0x21, 0x24, 0x80, 0x20, 0x0d, 0x49, 0x8a, 0x01, + 0xff, 0x44, 0xf5, 0x06, 0x14, 0x24, 0x00, 0x43, 0x0e, 0x0b, 0x11, 0x24, + 0x00, 0xb4, 0x01, 0xff, 0x44, 0x25, 0x01, 0x13, 0x24, 0x00, 0x42, 0x15, + 0x02, 0x12, 0x24, 0x40, 0x80, 0x01, 0xff, 0x48, 0x22, 0x2e, 0x25, 0x24, + 0x00, 0x51, 0x2d, 0x5c, 0x29, 0x24, 0x00, 0x5e, 0x61, 0x14, 0x28, 0x24, + 0x00, 0x59, 0x41, 0x26, 0x27, 0x24, 0x40, 0x44, 0x05, 0x2c, 0x18, 0x24, + 0x00, 0x4d, 0x27, 0x88, 0x0d, 0x24, 0x40, 0x48, 0x28, 0xc3, 0x08, 0x24, + 0x00, 0x43, 0x5f, 0x09, 0x07, 0x24, 0x40, 0x07, 0xec, 0x05, 0x4d, 0x0c, + 0xab, 0x93, 0x39, 0x05, 0x5a, 0x03, 0x1b, 0x0b, 0x40, 0x77, 0x01, 0xff, + 0xe1, 0x23, 0xa8, 0x00, 0xe5, 0x26, 0xa8, 0x00, 0xe9, 0x24, 0xa8, 0x00, + 0x42, 0xcd, 0x02, 0x27, 0xa8, 0x00, 0xf5, 0x25, 0xa8, 0x40, 0xa1, 0x0c, + 0x48, 0x50, 0xc5, 0x02, 0xa8, 0x00, 0x47, 0xef, 0x64, 0x06, 0xa8, 0x40, + 0x50, 0xe6, 0x64, 0x2c, 0xa8, 0x00, 0x47, 0x3d, 0x16, 0x0b, 0xa8, 0x40, + 0xd1, 0x28, 0xa8, 0x00, 0xd2, 0x29, 0xa8, 0x00, 0xd3, 0x2a, 0xa8, 0x00, + 0xd4, 0x2b, 0xa8, 0x40, 0xe1, 0x00, 0xa8, 0x00, 0xa2, 0xa9, 0x01, 0xa3, + 0x9c, 0x01, 0xa4, 0x83, 0x01, 0xe5, 0x04, 0xa8, 0x00, 0xa7, 0x73, 0x42, + 0x0b, 0x00, 0x22, 0xa8, 0x00, 0xe9, 0x01, 0xa8, 0x00, 0xaa, 0x5d, 0xab, + 0x51, 0x42, 0x13, 0x01, 0x1f, 0xa8, 0x00, 0x42, 0xc3, 0x07, 0x1d, 0xa8, + 0x00, 0x42, 0xb4, 0x01, 0x18, 0xa8, 0x00, 0xef, 0x05, 0xa8, 0x00, 0xb0, + 0x2f, 0xb2, 0x23, 0x42, 0x60, 0x03, 0x21, 0xa8, 0x00, 0xb4, 0x04, 0xf5, + 0x03, 0xa8, 0x40, 0x42, 0x0b, 0x00, 0x15, 0xa8, 0x00, 0xef, 0x14, 0xa8, + 0x00, 0xb4, 0x01, 0xff, 0x42, 0x0b, 0x00, 0x11, 0xa8, 0x00, 0xef, 0x10, + 0xa8, 0x40, 0xef, 0x1e, 0xa8, 0x00, 0x42, 0xd0, 0x00, 0x20, 0xa8, 0x40, + 0x42, 0x0b, 0x00, 0x1a, 0xa8, 0x00, 0xef, 0x19, 0xa8, 0x40, 0x42, 0x0b, + 0x00, 0x08, 0xa8, 0x00, 0xef, 0x07, 0xa8, 0x40, 0x42, 0x0b, 0x00, 0x0f, + 0xa8, 0x00, 0xef, 0x0e, 0xa8, 0x40, 0x42, 0x0b, 0x00, 0x0a, 0xa8, 0x00, + 0xef, 0x09, 0xa8, 0x40, 0xa4, 0x0a, 0x42, 0x0b, 0x00, 0x17, 0xa8, 0x00, + 0xef, 0x16, 0xa8, 0x40, 0x42, 0x0b, 0x00, 0x13, 0xa8, 0x00, 0xef, 0x12, + 0xa8, 0x40, 0x42, 0x0b, 0x00, 0x0d, 0xa8, 0x00, 0xef, 0x0c, 0xa8, 0x40, + 0x42, 0x0b, 0x00, 0x1c, 0xa8, 0x00, 0xef, 0x1b, 0xa8, 0x40, 0xa1, 0x0c, + 0x45, 0x72, 0xe7, 0xca, 0xf3, 0x01, 0x48, 0x20, 0xcc, 0x53, 0x20, 0x40, + 0xee, 0xa2, 0xf9, 0x01, 0x55, 0x0f, 0x3e, 0x75, 0xf6, 0x41, 0x02, 0x9b, + 0x12, 0xe9, 0x09, 0x46, 0x32, 0xcb, 0x7b, 0x22, 0x80, 0x91, 0x09, 0x08, + 0x58, 0xc8, 0xfa, 0x08, 0xee, 0x09, 0x26, 0x80, 0xac, 0x02, 0x03, 0x6f, + 0x02, 0x1f, 0x02, 0xf5, 0x1b, 0x0f, 0xb3, 0x01, 0xff, 0x42, 0x49, 0x00, + 0x63, 0xf3, 0x01, 0x4f, 0xc1, 0x71, 0x9f, 0xf6, 0x41, 0x4c, 0xef, 0x8b, + 0x2f, 0x22, 0x00, 0x42, 0x33, 0x00, 0xc4, 0xf3, 0x41, 0x44, 0x29, 0xf0, + 0xb8, 0xf9, 0x01, 0xb3, 0x06, 0x47, 0x52, 0xd7, 0xb9, 0xf9, 0x41, 0x06, + 0x75, 0x06, 0x86, 0x01, 0x03, 0x68, 0x09, 0x01, 0xff, 0x06, 0x5c, 0x00, + 0x66, 0x07, 0x92, 0x0a, 0x56, 0x42, 0xf4, 0x01, 0x83, 0x22, 0x80, 0x1d, + 0x51, 0x3d, 0x5d, 0xc9, 0x27, 0x00, 0x05, 0x51, 0x00, 0x01, 0xff, 0x43, + 0x23, 0x0a, 0xbe, 0x2a, 0x00, 0x59, 0xfc, 0x24, 0xc2, 0x2a, 0x00, 0x4f, + 0xdf, 0x71, 0xc0, 0x2a, 0x40, 0x80, 0x01, 0xff, 0x06, 0x5c, 0x00, 0x13, + 0x4b, 0xf3, 0x28, 0x87, 0x22, 0x80, 0x06, 0x51, 0xa1, 0x5f, 0x8b, 0x22, + 0x40, 0x4f, 0x75, 0x3b, 0xc4, 0x2a, 0x40, 0x4f, 0xaa, 0x6a, 0xca, 0x2a, + 0x00, 0x4b, 0x48, 0x13, 0xc6, 0x2a, 0x00, 0x4c, 0x02, 0x2b, 0xcc, 0x2a, + 0x00, 0x4e, 0x78, 0x3e, 0xc8, 0x2a, 0x40, 0x5e, 0x81, 0x12, 0xd8, 0x2a, + 0x00, 0x46, 0x99, 0x12, 0xd7, 0x2a, 0x40, 0x4f, 0x4d, 0x1a, 0x7b, 0x29, + 0x00, 0x02, 0x6f, 0x00, 0x01, 0xff, 0x44, 0x9b, 0x12, 0xd4, 0x2a, 0x00, + 0x46, 0x29, 0x36, 0xd6, 0x2a, 0x40, 0xa5, 0x62, 0xa6, 0x54, 0xac, 0x40, + 0x45, 0x91, 0x1f, 0x7b, 0x20, 0x00, 0x44, 0xcf, 0x2a, 0x79, 0x20, 0x00, + 0x43, 0x0e, 0x0b, 0xb9, 0x00, 0x00, 0x49, 0xdf, 0x71, 0x7a, 0x20, 0x00, + 0x51, 0xd2, 0x21, 0x7e, 0x20, 0x00, 0xb3, 0x14, 0xb4, 0x06, 0x44, 0x43, + 0x1e, 0x70, 0x20, 0x40, 0x44, 0x25, 0x01, 0xb3, 0x00, 0x00, 0x42, 0x15, + 0x02, 0xb2, 0x00, 0x40, 0x44, 0xc9, 0x1d, 0x77, 0x20, 0x00, 0x42, 0x01, + 0x26, 0x76, 0x20, 0x40, 0x12, 0x77, 0x50, 0x06, 0x4f, 0x80, 0x24, 0x7d, + 0x20, 0x40, 0xe9, 0x71, 0x20, 0x00, 0xee, 0x7f, 0x20, 0x40, 0x43, 0xd2, + 0x05, 0x75, 0x20, 0x00, 0x43, 0xf6, 0x06, 0x74, 0x20, 0x40, 0x44, 0xc9, + 0x00, 0x78, 0x20, 0x00, 0x4a, 0x49, 0x13, 0x7c, 0x20, 0x40, 0x80, 0xb9, + 0x06, 0x07, 0x3d, 0xd0, 0xcc, 0x02, 0x46, 0x78, 0x97, 0x3b, 0xf3, 0x01, + 0x44, 0xa7, 0xbc, 0x05, 0xf3, 0x81, 0xb8, 0x02, 0x52, 0x2d, 0x55, 0x07, + 0xf3, 0x01, 0x05, 0x09, 0xec, 0x01, 0xff, 0x06, 0xef, 0x06, 0xe6, 0x01, + 0x07, 0xec, 0x05, 0x06, 0x48, 0xf8, 0xca, 0xe1, 0x1b, 0x41, 0xa1, 0xc7, + 0x01, 0x43, 0x07, 0x36, 0xce, 0x1b, 0x01, 0xa3, 0xb2, 0x01, 0xa4, 0xa3, + 0x01, 0x43, 0xbe, 0xde, 0xc2, 0x1b, 0x01, 0x43, 0x70, 0x9c, 0xca, 0x1b, + 0x01, 0x45, 0xdc, 0xe6, 0xcb, 0x1b, 0x01, 0x44, 0x91, 0xf0, 0xc3, 0x1b, + 0x01, 0x44, 0xb9, 0xf0, 0xcf, 0x1b, 0x01, 0xab, 0x71, 0x46, 0xd0, 0xdd, + 0xd0, 0x1b, 0x01, 0x42, 0x6c, 0x00, 0xc7, 0x1b, 0x01, 0xae, 0x57, 0x45, + 0xb1, 0xe9, 0xd1, 0x1b, 0x01, 0xb0, 0x43, 0x43, 0x96, 0x02, 0xc4, 0x1b, + 0x01, 0x04, 0xa9, 0xf2, 0x2f, 0xb4, 0x12, 0x45, 0x04, 0xec, 0xc5, 0x1b, + 0x01, 0x45, 0x13, 0xec, 0xd3, 0x1b, 0x01, 0x43, 0x9d, 0x32, 0xd4, 0x1b, + 0x41, 0x44, 0xf3, 0xa4, 0xc1, 0x1b, 0x01, 0x44, 0x50, 0x76, 0xde, 0x1b, + 0x01, 0xa8, 0x01, 0xff, 0x43, 0xf6, 0x0a, 0xd8, 0x1b, 0x01, 0x43, 0x85, + 0x0e, 0xdf, 0x1b, 0x41, 0x42, 0x68, 0x00, 0xd2, 0x1b, 0x01, 0xf2, 0xdc, + 0x1b, 0x41, 0x43, 0xc9, 0x02, 0xd9, 0x1b, 0x01, 0x42, 0xba, 0x04, 0xc9, + 0x1b, 0x41, 0x42, 0x18, 0x0a, 0xcd, 0x1b, 0x01, 0x43, 0x6c, 0x1e, 0xda, + 0x1b, 0x41, 0x42, 0x22, 0x00, 0xdb, 0x1b, 0x01, 0x42, 0xd5, 0x2a, 0xc6, + 0x1b, 0x01, 0x44, 0xfb, 0xbc, 0xe0, 0x1b, 0x41, 0x43, 0xa5, 0x27, 0xc0, + 0x1b, 0x01, 0x44, 0xa2, 0x49, 0xd7, 0x1b, 0x41, 0x44, 0x10, 0x86, 0xcc, + 0x1b, 0x01, 0x45, 0xf5, 0xe6, 0xdd, 0x1b, 0x41, 0x42, 0x13, 0x00, 0xd6, + 0x1b, 0x01, 0x44, 0x21, 0xf2, 0xc8, 0x1b, 0x01, 0x42, 0xf5, 0x0a, 0xd5, + 0x1b, 0x41, 0x45, 0x12, 0x0b, 0xf8, 0x1b, 0x01, 0xa6, 0x2e, 0x44, 0xcf, + 0x2a, 0xf9, 0x1b, 0x01, 0x43, 0x0e, 0x0b, 0xf1, 0x1b, 0x01, 0xb3, 0x14, + 0xb4, 0x06, 0x44, 0x43, 0x1e, 0xf0, 0x1b, 0x41, 0x44, 0x25, 0x01, 0xf3, + 0x1b, 0x01, 0x42, 0x15, 0x02, 0xf2, 0x1b, 0x41, 0x44, 0xc9, 0x1d, 0xf7, + 0x1b, 0x01, 0x42, 0x01, 0x26, 0xf6, 0x1b, 0x41, 0x43, 0xd2, 0x05, 0xf5, + 0x1b, 0x01, 0x43, 0xf6, 0x06, 0xf4, 0x1b, 0x41, 0x4f, 0x6f, 0x69, 0x04, + 0xf3, 0x41, 0x48, 0xae, 0x88, 0xba, 0x1b, 0x00, 0x11, 0x52, 0x59, 0xb6, + 0x03, 0x06, 0xef, 0x06, 0xef, 0x02, 0x07, 0xec, 0x05, 0x8d, 0x01, 0x12, + 0x9d, 0x54, 0x57, 0x05, 0x5a, 0x03, 0x2c, 0x0d, 0x56, 0x8a, 0x01, 0xff, + 0x45, 0x94, 0xe8, 0xa8, 0x1b, 0x00, 0xae, 0x01, 0xff, 0x47, 0x92, 0xce, + 0xa6, 0x1b, 0x00, 0x47, 0xfa, 0xd0, 0xa9, 0x1b, 0x00, 0x45, 0xaa, 0xe6, + 0xa4, 0x1b, 0x00, 0x45, 0x51, 0x12, 0xa7, 0x1b, 0x00, 0x44, 0x49, 0xf3, + 0xa5, 0x1b, 0x40, 0x02, 0xbb, 0x09, 0x06, 0x46, 0xe3, 0x23, 0xab, 0x1b, + 0x40, 0x45, 0x53, 0xe8, 0xaa, 0x1b, 0x00, 0xae, 0x01, 0xff, 0xa7, 0x06, + 0x45, 0x8b, 0xec, 0x80, 0x1b, 0x40, 0x45, 0x21, 0xe8, 0x81, 0x1b, 0x00, + 0x45, 0x63, 0xec, 0x82, 0x1b, 0x40, 0x4a, 0x2b, 0xa8, 0xc7, 0x1c, 0x00, + 0x45, 0xed, 0xe4, 0xc3, 0x1c, 0x00, 0x4a, 0x2f, 0xa9, 0xc6, 0x1c, 0x00, + 0x4a, 0x4f, 0xac, 0xc5, 0x1c, 0x00, 0x4b, 0xb7, 0x9e, 0xc4, 0x1c, 0x00, + 0xb0, 0x06, 0x45, 0x28, 0xeb, 0xc0, 0x1c, 0x40, 0x47, 0xe6, 0xce, 0xc1, + 0x1c, 0x00, 0x46, 0x06, 0xe1, 0xc2, 0x1c, 0x40, 0xe1, 0x83, 0x1b, 0x80, + 0xcd, 0x01, 0xa2, 0xc0, 0x01, 0x42, 0x37, 0x00, 0x8e, 0x1b, 0x00, 0x42, + 0xf0, 0x10, 0x93, 0x1b, 0x00, 0xe5, 0x88, 0x1b, 0x80, 0xaa, 0x01, 0xa6, + 0x96, 0x01, 0x42, 0x24, 0x02, 0x8c, 0x1b, 0x00, 0x42, 0x22, 0x00, 0xa0, + 0x1b, 0x00, 0xe9, 0x84, 0x1b, 0x00, 0x42, 0x56, 0x19, 0x8f, 0x1b, 0x00, + 0xab, 0x74, 0xac, 0x68, 0x42, 0x6c, 0x00, 0x99, 0x1b, 0x00, 0xae, 0x50, + 0xef, 0x87, 0x1b, 0x00, 0x42, 0xbb, 0x09, 0x95, 0x1b, 0x00, 0x42, 0x43, + 0x14, 0x8b, 0x1b, 0x00, 0xb2, 0x34, 0xb3, 0x28, 0x42, 0x12, 0x00, 0x92, + 0x1b, 0x00, 0xf5, 0x85, 0x1b, 0x00, 0x42, 0xf5, 0x0a, 0x97, 0x1b, 0x00, + 0x42, 0xa9, 0x01, 0x9d, 0x1b, 0x00, 0x42, 0xed, 0x26, 0x9f, 0x1b, 0x00, + 0x42, 0xbc, 0x22, 0x9a, 0x1b, 0x00, 0x42, 0x59, 0x00, 0x90, 0x1b, 0x40, + 0xe1, 0x9e, 0x1b, 0x00, 0x42, 0xbc, 0x22, 0xaf, 0x1b, 0x40, 0xe1, 0x9b, + 0x1b, 0x00, 0x42, 0x97, 0x02, 0xbb, 0x1b, 0x40, 0xe1, 0x94, 0x1b, 0x00, + 0x42, 0x24, 0x02, 0x8d, 0x1b, 0x00, 0x42, 0xbc, 0x22, 0x91, 0x1b, 0x40, + 0xe1, 0x9c, 0x1b, 0x00, 0x42, 0x97, 0x02, 0xbc, 0x1b, 0x40, 0xe1, 0x8a, + 0x1b, 0x00, 0x42, 0x22, 0x00, 0xae, 0x1b, 0x40, 0xe1, 0x96, 0x1b, 0x00, + 0x05, 0xe8, 0x27, 0x01, 0xff, 0xeb, 0xbe, 0x1b, 0x00, 0xed, 0xbf, 0x1b, + 0x40, 0xf5, 0x89, 0x1b, 0x40, 0xe1, 0x98, 0x1b, 0x00, 0x42, 0x22, 0x00, + 0xbd, 0x1b, 0x40, 0xe5, 0x86, 0x1b, 0x00, 0x48, 0x6d, 0xbe, 0xbd, 0x1b, + 0x40, 0x45, 0x12, 0x0b, 0xb8, 0x1b, 0x00, 0xa6, 0x2e, 0x44, 0xcf, 0x2a, + 0xb9, 0x1b, 0x00, 0x43, 0x0e, 0x0b, 0xb1, 0x1b, 0x00, 0xb3, 0x14, 0xb4, + 0x06, 0x44, 0x43, 0x1e, 0xb0, 0x1b, 0x40, 0x44, 0x25, 0x01, 0xb3, 0x1b, + 0x00, 0x42, 0x15, 0x02, 0xb2, 0x1b, 0x40, 0x44, 0xc9, 0x1d, 0xb7, 0x1b, + 0x00, 0x42, 0x01, 0x26, 0xb6, 0x1b, 0x40, 0x43, 0xd2, 0x05, 0xb5, 0x1b, + 0x00, 0x43, 0xf6, 0x06, 0xb4, 0x1b, 0x40, 0x47, 0x46, 0xd3, 0xa1, 0x1b, + 0x00, 0x02, 0x7d, 0x1a, 0x11, 0x07, 0xa7, 0xd5, 0x01, 0xff, 0x42, 0x6c, + 0x00, 0xac, 0x1b, 0x00, 0x42, 0xa9, 0x01, 0xad, 0x1b, 0x40, 0x44, 0xb8, + 0x96, 0xa2, 0x1b, 0x00, 0x43, 0x59, 0xe7, 0xa3, 0x1b, 0x40, 0x4c, 0xa3, + 0x8c, 0xc5, 0x26, 0x00, 0x49, 0x4f, 0xc1, 0x1e, 0xf3, 0x41, 0x46, 0xb5, + 0x0a, 0xb3, 0x23, 0x00, 0x43, 0x1e, 0x00, 0xb2, 0x23, 0x00, 0x4d, 0xb1, + 0x8a, 0x0b, 0x2a, 0x40, 0x80, 0x01, 0xff, 0x06, 0x5c, 0x00, 0x1c, 0x55, + 0xcb, 0x39, 0xe9, 0x22, 0x00, 0x06, 0xf3, 0x28, 0x06, 0x4e, 0xe9, 0x7d, + 0xb1, 0x22, 0x40, 0x45, 0xfb, 0x0c, 0x7d, 0x22, 0x00, 0x4a, 0xd6, 0x39, + 0x7f, 0x22, 0x40, 0x4f, 0xaa, 0x6a, 0xb8, 0x2a, 0x00, 0x4b, 0x48, 0x13, + 0xb4, 0x2a, 0x00, 0x04, 0x70, 0x23, 0x11, 0x0c, 0xf6, 0x2a, 0x01, 0xff, + 0x4b, 0x48, 0x13, 0xb0, 0x2a, 0x00, 0x4c, 0x02, 0x2b, 0xb2, 0x2a, 0x40, + 0x4f, 0xaa, 0x6a, 0xba, 0x2a, 0x00, 0x48, 0xf8, 0x0c, 0xb6, 0x2a, 0x40, + 0x06, 0x75, 0x06, 0x75, 0x03, 0x68, 0x09, 0x06, 0x46, 0x32, 0xc0, 0x1a, + 0x00, 0x40, 0x06, 0x5c, 0x00, 0x50, 0x42, 0xf4, 0x01, 0x82, 0x22, 0x80, + 0x17, 0x05, 0x51, 0x00, 0x01, 0xff, 0x43, 0x23, 0x0a, 0xbd, 0x2a, 0x00, + 0x59, 0xfc, 0x24, 0xc1, 0x2a, 0x00, 0x4f, 0xdf, 0x71, 0xbf, 0x2a, 0x40, + 0x80, 0x01, 0xff, 0x06, 0x5c, 0x00, 0x13, 0x4b, 0xf3, 0x28, 0x86, 0x22, + 0x80, 0x06, 0x51, 0xa1, 0x5f, 0x8a, 0x22, 0x40, 0x4f, 0x75, 0x3b, 0xc3, + 0x2a, 0x40, 0x4f, 0xaa, 0x6a, 0xc9, 0x2a, 0x00, 0x4b, 0x48, 0x13, 0xc5, + 0x2a, 0x00, 0x4c, 0x02, 0x2b, 0xcb, 0x2a, 0x00, 0x4e, 0x78, 0x3e, 0xc7, + 0x2a, 0x40, 0x50, 0xb3, 0x02, 0x79, 0x29, 0x00, 0x02, 0x6f, 0x00, 0x01, + 0xff, 0x44, 0x9b, 0x12, 0xd5, 0x2a, 0x00, 0x46, 0x29, 0x36, 0xd3, 0x2a, + 0x40, 0xa5, 0x54, 0xa6, 0x46, 0x50, 0x7f, 0x24, 0x8d, 0x20, 0x00, 0x45, + 0x91, 0x1f, 0x8b, 0x20, 0x00, 0x44, 0xcf, 0x2a, 0x89, 0x20, 0x00, 0x43, + 0x0e, 0x0b, 0x81, 0x20, 0x00, 0x49, 0xdf, 0x71, 0x8a, 0x20, 0x00, 0x51, + 0xd2, 0x21, 0x8e, 0x20, 0x00, 0xb3, 0x14, 0xb4, 0x06, 0x44, 0x43, 0x1e, + 0x80, 0x20, 0x40, 0x44, 0x25, 0x01, 0x83, 0x20, 0x00, 0x42, 0x15, 0x02, + 0x82, 0x20, 0x40, 0x44, 0xc9, 0x1d, 0x87, 0x20, 0x00, 0x42, 0x01, 0x26, + 0x86, 0x20, 0x40, 0x43, 0xd2, 0x05, 0x85, 0x20, 0x00, 0x43, 0xf6, 0x06, + 0x84, 0x20, 0x40, 0x44, 0xc9, 0x00, 0x88, 0x20, 0x00, 0x4a, 0x49, 0x13, + 0x8c, 0x20, 0x40, 0xa1, 0xc0, 0x01, 0xa5, 0xa1, 0x01, 0x4a, 0x75, 0x95, + 0xc5, 0xfb, 0x81, 0x76, 0xaf, 0x68, 0xb2, 0x15, 0xb5, 0x01, 0xff, 0x4e, + 0xe9, 0x76, 0x99, 0xf3, 0x01, 0x4e, 0xc9, 0x77, 0x59, 0xf9, 0x01, 0x42, + 0xbb, 0x09, 0xd3, 0xf6, 0x41, 0xa1, 0x32, 0x57, 0x58, 0x2e, 0x29, 0x27, + 0x00, 0xa9, 0x01, 0xff, 0x52, 0xe3, 0x50, 0x63, 0x22, 0x00, 0x4d, 0x53, + 0x86, 0x9c, 0x00, 0x00, 0x04, 0xe2, 0x18, 0x01, 0xff, 0x56, 0xc1, 0x33, + 0x83, 0xcc, 0x01, 0x56, 0x63, 0x35, 0x80, 0xcc, 0x01, 0x57, 0xf3, 0x30, + 0x82, 0xcc, 0x01, 0x54, 0x7c, 0x46, 0x81, 0xcc, 0x41, 0x04, 0xc9, 0x00, + 0x0d, 0x46, 0x30, 0xe1, 0x53, 0xf3, 0xc1, 0x00, 0x47, 0x15, 0x08, 0xbf, + 0xce, 0x41, 0x46, 0xff, 0x2f, 0xcf, 0xf4, 0x01, 0x44, 0x22, 0x24, 0xe4, + 0x23, 0x40, 0x48, 0xb0, 0xc4, 0xe0, 0xf5, 0x01, 0x46, 0x50, 0xdf, 0xf1, + 0x23, 0x40, 0x80, 0x01, 0xff, 0x08, 0xa8, 0xc7, 0x11, 0x05, 0x51, 0x00, + 0x01, 0xff, 0x4b, 0x2c, 0x99, 0xc6, 0xfb, 0x01, 0x45, 0x85, 0x27, 0xc9, 0xfb, 0x41, 0x44, 0xc3, 0x00, 0xc7, 0xfb, 0x01, 0x45, 0xc8, 0x00, 0xc8, - 0xfb, 0x41, 0x02, 0x57, 0x00, 0x0c, 0x53, 0x5c, 0x4a, 0x3c, 0x2e, 0x00, - 0x48, 0xd2, 0xc8, 0x7a, 0xfa, 0x41, 0x4b, 0x93, 0x7a, 0x82, 0xf6, 0x01, - 0x48, 0x7a, 0xc4, 0x5c, 0xf3, 0x41, 0x44, 0x1b, 0x04, 0xdf, 0xf3, 0x01, - 0x06, 0xd4, 0xd8, 0x75, 0x4d, 0x58, 0x31, 0x83, 0xf5, 0x01, 0x4c, 0xdd, - 0x71, 0xcd, 0xf9, 0x01, 0xb2, 0x0f, 0xb4, 0x01, 0xff, 0x43, 0xb5, 0x00, - 0x89, 0xf6, 0x01, 0x4d, 0xbc, 0x87, 0xfd, 0xf5, 0x41, 0x80, 0x2b, 0x05, - 0x5e, 0x35, 0x01, 0xff, 0x4c, 0xb5, 0x8d, 0x96, 0x00, 0x00, 0x47, 0xac, - 0xce, 0x01, 0x00, 0x00, 0x4e, 0xf6, 0x79, 0x96, 0x00, 0x00, 0xb3, 0x06, - 0x44, 0x96, 0x2f, 0x02, 0x00, 0x40, 0x4c, 0xc6, 0x86, 0x86, 0x00, 0x00, - 0x45, 0x63, 0x21, 0x98, 0x00, 0x40, 0x4c, 0x79, 0x8a, 0x2a, 0x26, 0x00, - 0x46, 0xf9, 0x12, 0x5b, 0x22, 0x00, 0xaf, 0x11, 0x05, 0x51, 0x00, 0x01, - 0xff, 0x4f, 0xcf, 0x6d, 0xea, 0x2b, 0x00, 0x50, 0x3a, 0x65, 0xeb, 0x2b, - 0x40, 0x47, 0x27, 0xce, 0x21, 0x27, 0x00, 0x47, 0xdd, 0x1c, 0xc6, 0x22, - 0x40, 0x4b, 0xcf, 0x96, 0x95, 0x26, 0x00, 0x46, 0x76, 0xd9, 0x9a, 0x26, + 0xfb, 0x41, 0x02, 0x57, 0x00, 0x0c, 0x53, 0xa5, 0x4b, 0x3c, 0x2e, 0x00, + 0x48, 0x88, 0xcb, 0x7a, 0xfa, 0x41, 0x4b, 0xf4, 0x7b, 0x82, 0xf6, 0x01, + 0x48, 0x18, 0xc7, 0x5c, 0xf3, 0x41, 0x44, 0x46, 0x04, 0xdf, 0xf3, 0x01, + 0x06, 0xc0, 0xdb, 0x75, 0x4d, 0x3e, 0x32, 0x83, 0xf5, 0x01, 0x4c, 0x68, + 0x73, 0xcd, 0xf9, 0x01, 0xb2, 0x0f, 0xb4, 0x01, 0xff, 0x43, 0xb5, 0x00, + 0x89, 0xf6, 0x01, 0x4d, 0x79, 0x89, 0xfd, 0xf5, 0x41, 0x80, 0x2b, 0x05, + 0x2e, 0x36, 0x01, 0xff, 0x4c, 0x67, 0x8f, 0x96, 0x00, 0x00, 0x47, 0x86, + 0xd1, 0x01, 0x00, 0x00, 0x4e, 0x57, 0x7b, 0x96, 0x00, 0x00, 0xb3, 0x06, + 0x44, 0x7c, 0x30, 0x02, 0x00, 0x40, 0x4c, 0x83, 0x88, 0x86, 0x00, 0x00, + 0x45, 0xeb, 0x21, 0x98, 0x00, 0x40, 0x4c, 0x37, 0x8c, 0x2a, 0x26, 0x00, + 0x46, 0x48, 0x13, 0x5b, 0x22, 0x00, 0xaf, 0x11, 0x05, 0x51, 0x00, 0x01, + 0xff, 0x4f, 0x78, 0x6f, 0xea, 0x2b, 0x00, 0x50, 0xb6, 0x66, 0xeb, 0x2b, + 0x40, 0x47, 0x01, 0xd1, 0x21, 0x27, 0x00, 0x47, 0x7f, 0x1d, 0xc6, 0x22, + 0x40, 0x4b, 0xd4, 0x98, 0x95, 0x26, 0x00, 0x46, 0x74, 0xdc, 0x9a, 0x26, 0x40, 0xa1, 0x06, 0x42, 0x03, 0x00, 0x91, 0xf9, 0x41, 0x02, 0x88, 0x00, - 0x06, 0x58, 0xb5, 0x2a, 0xa7, 0x27, 0x40, 0x80, 0xee, 0x05, 0x02, 0x06, - 0x00, 0x01, 0xff, 0x48, 0xed, 0x0c, 0xc6, 0x29, 0x00, 0xa3, 0xb1, 0x03, - 0x4c, 0x59, 0x8c, 0xa1, 0x22, 0x00, 0x47, 0xe8, 0xcd, 0x9f, 0xf1, 0x01, + 0x06, 0x58, 0x3e, 0x2b, 0xa7, 0x27, 0x40, 0x80, 0xee, 0x05, 0x02, 0x06, + 0x00, 0x01, 0xff, 0x48, 0x3c, 0x0d, 0xc6, 0x29, 0x00, 0xa3, 0xb1, 0x03, + 0x4c, 0x17, 0x8e, 0xa1, 0x22, 0x00, 0x47, 0xc2, 0xd0, 0x9f, 0xf1, 0x01, 0xa6, 0x82, 0x03, 0xa8, 0xeb, 0x02, 0x42, 0x03, 0x00, 0x94, 0xf1, 0x01, 0xab, 0xc6, 0x02, 0xac, 0xb4, 0x01, 0xad, 0xa7, 0x01, 0xae, 0x9a, 0x01, - 0xaf, 0x8d, 0x01, 0xb0, 0x7f, 0x55, 0x15, 0x3d, 0xc4, 0x29, 0x00, 0xb3, - 0x3d, 0xb4, 0x20, 0xb5, 0x12, 0xb6, 0x06, 0x42, 0x40, 0x1a, 0x4f, 0xf1, - 0x41, 0x42, 0x2a, 0x0c, 0xac, 0xf1, 0x01, 0xf3, 0x9a, 0xf1, 0x41, 0x42, - 0x96, 0x40, 0xab, 0xf1, 0x01, 0x57, 0x55, 0x2f, 0x99, 0xf1, 0x41, 0x46, - 0xdc, 0x0f, 0x9b, 0xf1, 0x01, 0x44, 0x29, 0x02, 0xa0, 0x22, 0x00, 0xb7, - 0x01, 0xff, 0x52, 0x06, 0x50, 0xa2, 0xf1, 0x01, 0x43, 0xd7, 0x27, 0x9d, - 0xf1, 0x41, 0x46, 0xa7, 0x18, 0xdd, 0x26, 0x00, 0xe4, 0x4c, 0xf1, 0x01, - 0xa5, 0x22, 0x42, 0xe0, 0x5d, 0xaa, 0xf1, 0x01, 0x46, 0x4e, 0xda, 0xa3, - 0xf1, 0x01, 0x4b, 0xd4, 0x14, 0xc7, 0x29, 0x00, 0x42, 0x55, 0x0d, 0x98, - 0xf1, 0x01, 0x45, 0xac, 0x05, 0xc8, 0x29, 0x00, 0xf3, 0x4d, 0xf1, 0x41, - 0x4b, 0x2f, 0x98, 0x9c, 0xf1, 0x01, 0x4d, 0x3e, 0x88, 0xa1, 0xf1, 0x41, - 0x43, 0xb8, 0x27, 0x9e, 0x22, 0x00, 0x42, 0x4f, 0xc8, 0x4e, 0xf1, 0x41, - 0xeb, 0x97, 0xf1, 0x01, 0x53, 0x36, 0x4a, 0xa4, 0xf1, 0x41, 0x42, 0x85, - 0x1d, 0x95, 0xf1, 0x01, 0xe7, 0x96, 0xf1, 0x41, 0x44, 0xf0, 0x1e, 0x9f, - 0x22, 0x00, 0xf6, 0x4b, 0xf1, 0x41, 0x05, 0xb4, 0x05, 0x19, 0xaf, 0x01, - 0xff, 0x06, 0xa5, 0x21, 0x06, 0x46, 0x00, 0xdd, 0xa9, 0xf1, 0x41, 0x43, + 0xaf, 0x8d, 0x01, 0xb0, 0x7f, 0x55, 0xfa, 0x3d, 0xc4, 0x29, 0x00, 0xb3, + 0x3d, 0xb4, 0x20, 0xb5, 0x12, 0xb6, 0x06, 0x42, 0xc7, 0x1a, 0x4f, 0xf1, + 0x41, 0x42, 0x79, 0x0c, 0xac, 0xf1, 0x01, 0xf3, 0x9a, 0xf1, 0x41, 0x42, + 0x8f, 0x41, 0xab, 0xf1, 0x01, 0x57, 0x3b, 0x30, 0x99, 0xf1, 0x41, 0x46, + 0x2b, 0x10, 0x9b, 0xf1, 0x01, 0x44, 0x29, 0x02, 0xa0, 0x22, 0x00, 0xb7, + 0x01, 0xff, 0x52, 0x4f, 0x51, 0xa2, 0xf1, 0x01, 0x43, 0x78, 0x28, 0x9d, + 0xf1, 0x41, 0x46, 0x13, 0x19, 0xdd, 0x26, 0x00, 0xe4, 0x4c, 0xf1, 0x01, + 0xa5, 0x22, 0x42, 0x4b, 0x5f, 0xaa, 0xf1, 0x01, 0x46, 0x46, 0xdd, 0xa3, + 0xf1, 0x01, 0x4b, 0x40, 0x15, 0xc7, 0x29, 0x00, 0x42, 0xa4, 0x0d, 0x98, + 0xf1, 0x01, 0x45, 0xd7, 0x05, 0xc8, 0x29, 0x00, 0xf3, 0x4d, 0xf1, 0x41, + 0x4b, 0x3f, 0x9a, 0x9c, 0xf1, 0x01, 0x4d, 0xfb, 0x89, 0xa1, 0xf1, 0x41, + 0x43, 0x59, 0x28, 0x9e, 0x22, 0x00, 0x42, 0xfd, 0xca, 0x4e, 0xf1, 0x41, + 0xeb, 0x97, 0xf1, 0x01, 0x53, 0x7f, 0x4b, 0xa4, 0xf1, 0x41, 0x42, 0x27, + 0x1e, 0x95, 0xf1, 0x01, 0xe7, 0x96, 0xf1, 0x41, 0x44, 0x92, 0x1f, 0x9f, + 0x22, 0x00, 0xf6, 0x4b, 0xf1, 0x41, 0x05, 0xdf, 0x05, 0x19, 0xaf, 0x01, + 0xff, 0x06, 0x2d, 0x22, 0x06, 0x46, 0x0a, 0xe0, 0xa9, 0xf1, 0x41, 0x43, 0x1a, 0x00, 0xce, 0x27, 0x00, 0x42, 0x0c, 0x00, 0xcf, 0x27, 0x40, 0x0f, - 0xb9, 0x05, 0x06, 0x4e, 0xe4, 0x7a, 0xa5, 0xf1, 0x41, 0xe1, 0x30, 0xf1, + 0xe4, 0x05, 0x06, 0x4e, 0x45, 0x7c, 0xa5, 0xf1, 0x41, 0xe1, 0x30, 0xf1, 0x01, 0xe2, 0x31, 0xf1, 0x01, 0xe3, 0x32, 0xf1, 0x01, 0xe4, 0x33, 0xf1, 0x01, 0xe5, 0x34, 0xf1, 0x01, 0xe6, 0x35, 0xf1, 0x01, 0xe7, 0x36, 0xf1, 0x01, 0xe8, 0x37, 0xf1, 0x01, 0xe9, 0x38, 0xf1, 0x01, 0xea, 0x39, 0xf1, @@ -3807,2286 +3918,2305 @@ static const unsigned char uname2c_tree[218382] = { 0x01, 0xf1, 0x40, 0xf1, 0x01, 0xf2, 0x41, 0xf1, 0x01, 0xf3, 0x42, 0xf1, 0x01, 0xf4, 0x43, 0xf1, 0x01, 0xf5, 0x44, 0xf1, 0x01, 0xf6, 0x45, 0xf1, 0x01, 0xf7, 0x46, 0xf1, 0x01, 0xf8, 0x47, 0xf1, 0x01, 0xf9, 0x48, 0xf1, - 0x01, 0xfa, 0x49, 0xf1, 0x41, 0x08, 0x2a, 0xc1, 0x06, 0x42, 0x3f, 0x1c, - 0xbf, 0x26, 0x40, 0x42, 0x04, 0x00, 0x13, 0xf2, 0x01, 0x44, 0xb2, 0xed, - 0x01, 0xf2, 0x01, 0x42, 0x15, 0x06, 0x02, 0xf2, 0x41, 0xe3, 0xa6, 0xf1, - 0x01, 0x42, 0xd7, 0x0c, 0xa7, 0xf1, 0x01, 0x45, 0x26, 0xe4, 0xa8, 0xf1, - 0x01, 0xf6, 0x4a, 0xf1, 0x41, 0x55, 0x53, 0x38, 0xc5, 0x29, 0x00, 0x4d, - 0xf6, 0x82, 0xa0, 0xf1, 0x01, 0x04, 0xcb, 0x06, 0x06, 0x43, 0x26, 0x01, - 0x93, 0xf1, 0x41, 0x4f, 0xb4, 0x0b, 0x2c, 0x2e, 0x00, 0xeb, 0x9e, 0xf1, - 0x41, 0x15, 0x42, 0x32, 0x0a, 0xec, 0x91, 0xf1, 0x01, 0x43, 0x8a, 0x96, - 0x92, 0xf1, 0x41, 0x02, 0xb6, 0xf1, 0x80, 0x02, 0x95, 0x9b, 0x01, 0x96, - 0x4b, 0x97, 0x23, 0x98, 0x0f, 0x99, 0x01, 0xff, 0x43, 0x27, 0xf0, 0x2b, - 0xf2, 0x01, 0x43, 0x39, 0xf0, 0x3b, 0xf2, 0x41, 0x43, 0x8d, 0xf0, 0x16, - 0xf2, 0x01, 0x43, 0xae, 0xf0, 0x23, 0xf2, 0x01, 0x43, 0xc3, 0xf0, 0x30, - 0xf2, 0x41, 0x43, 0x36, 0xf0, 0x1a, 0xf2, 0x01, 0x95, 0x12, 0x43, 0x8a, - 0xf0, 0x32, 0xf2, 0x01, 0x43, 0x90, 0xf0, 0x33, 0xf2, 0x01, 0x43, 0xc0, - 0xf0, 0x21, 0xf2, 0x41, 0x42, 0xa4, 0xf1, 0x22, 0xf2, 0x01, 0x42, 0xb6, - 0xdf, 0x38, 0xf2, 0x41, 0x92, 0x3a, 0x93, 0x2c, 0x95, 0x1e, 0x43, 0x75, - 0xf0, 0x19, 0xf2, 0x01, 0x02, 0xc4, 0xf0, 0x0c, 0x43, 0xd8, 0xf0, 0x35, - 0xf2, 0x01, 0x43, 0xe7, 0xf0, 0x26, 0xf2, 0x41, 0xd8, 0x37, 0xf2, 0x01, - 0xd9, 0x36, 0xf2, 0x41, 0x42, 0xc2, 0xf1, 0x1b, 0xf2, 0x01, 0x42, 0x38, - 0xb9, 0x1f, 0xf2, 0x41, 0x42, 0x27, 0x3f, 0x2f, 0xf2, 0x01, 0x42, 0x3d, - 0xf0, 0x28, 0xf2, 0x41, 0x42, 0xb4, 0xf1, 0x10, 0xf2, 0x01, 0x42, 0x49, - 0xf0, 0x31, 0xf2, 0x01, 0x42, 0xc0, 0xf1, 0x27, 0xf2, 0x41, 0x43, 0x3f, - 0xf0, 0x1e, 0xf2, 0x01, 0x92, 0x48, 0x93, 0x3a, 0x94, 0x2c, 0x43, 0x6f, - 0xf0, 0x3a, 0xf2, 0x01, 0x43, 0x87, 0xf0, 0x24, 0xf2, 0x01, 0x99, 0x12, - 0x43, 0xa2, 0xf0, 0x11, 0xf2, 0x01, 0x43, 0xc9, 0xf0, 0x2c, 0xf2, 0x01, - 0x43, 0xea, 0xf0, 0x1d, 0xf2, 0x41, 0x42, 0x29, 0x74, 0x15, 0xf2, 0x01, - 0x42, 0xce, 0xe0, 0x17, 0xf2, 0x41, 0x42, 0x27, 0x74, 0x34, 0xf2, 0x01, - 0x42, 0xac, 0xf1, 0x25, 0xf2, 0x41, 0x42, 0xb0, 0x04, 0x12, 0xf2, 0x01, - 0x42, 0xa5, 0xf1, 0x2e, 0xf2, 0x41, 0x42, 0xa2, 0xf1, 0x20, 0xf2, 0x01, - 0x42, 0x3a, 0xf0, 0x1c, 0xf2, 0x01, 0x42, 0x7e, 0xf0, 0x39, 0xf2, 0x41, - 0x90, 0x12, 0x42, 0x59, 0xec, 0x2d, 0xf2, 0x01, 0x42, 0x4f, 0xdf, 0x14, - 0xf2, 0x01, 0x42, 0xe5, 0xd5, 0x18, 0xf2, 0x41, 0xd0, 0x29, 0xf2, 0x01, + 0x01, 0xfa, 0x49, 0xf1, 0x41, 0x08, 0xb0, 0xc3, 0x06, 0x42, 0xc6, 0x1c, + 0xbf, 0x26, 0x40, 0x42, 0x04, 0x00, 0x13, 0xf2, 0x01, 0x44, 0xf1, 0xf0, + 0x01, 0xf2, 0x01, 0x42, 0x40, 0x06, 0x02, 0xf2, 0x41, 0xe3, 0xa6, 0xf1, + 0x01, 0x42, 0x26, 0x0d, 0xa7, 0xf1, 0x01, 0x45, 0x36, 0xe7, 0xa8, 0xf1, + 0x01, 0xf6, 0x4a, 0xf1, 0x41, 0x55, 0x23, 0x39, 0xc5, 0x29, 0x00, 0x4d, + 0x99, 0x84, 0xa0, 0xf1, 0x01, 0x04, 0xf6, 0x06, 0x06, 0x43, 0x26, 0x01, + 0x93, 0xf1, 0x41, 0x4f, 0x03, 0x0c, 0x2c, 0x2e, 0x00, 0xeb, 0x9e, 0xf1, + 0x41, 0x15, 0x12, 0x33, 0x0a, 0xec, 0x91, 0xf1, 0x01, 0x43, 0x84, 0x98, + 0x92, 0xf1, 0x41, 0x02, 0x00, 0xf5, 0x80, 0x02, 0x95, 0x9b, 0x01, 0x96, + 0x4b, 0x97, 0x23, 0x98, 0x0f, 0x99, 0x01, 0xff, 0x43, 0x7a, 0xf3, 0x2b, + 0xf2, 0x01, 0x43, 0x8c, 0xf3, 0x3b, 0xf2, 0x41, 0x43, 0xe0, 0xf3, 0x16, + 0xf2, 0x01, 0x43, 0x01, 0xf4, 0x23, 0xf2, 0x01, 0x43, 0x16, 0xf4, 0x30, + 0xf2, 0x41, 0x43, 0x89, 0xf3, 0x1a, 0xf2, 0x01, 0x95, 0x12, 0x43, 0xdd, + 0xf3, 0x32, 0xf2, 0x01, 0x43, 0xe3, 0xf3, 0x33, 0xf2, 0x01, 0x43, 0x13, + 0xf4, 0x21, 0xf2, 0x41, 0x42, 0xee, 0xf4, 0x22, 0xf2, 0x01, 0x42, 0xc1, + 0xe2, 0x38, 0xf2, 0x41, 0x92, 0x3a, 0x93, 0x2c, 0x95, 0x1e, 0x43, 0xc8, + 0xf3, 0x19, 0xf2, 0x01, 0x02, 0x17, 0xf4, 0x0c, 0x43, 0x2b, 0xf4, 0x35, + 0xf2, 0x01, 0x43, 0x3a, 0xf4, 0x26, 0xf2, 0x41, 0xd8, 0x37, 0xf2, 0x01, + 0xd9, 0x36, 0xf2, 0x41, 0x42, 0x0c, 0xf5, 0x1b, 0xf2, 0x01, 0x42, 0x9b, + 0xbb, 0x1f, 0xf2, 0x41, 0x42, 0x20, 0x40, 0x2f, 0xf2, 0x01, 0x42, 0x90, + 0xf3, 0x28, 0xf2, 0x41, 0x42, 0xfe, 0xf4, 0x10, 0xf2, 0x01, 0x42, 0x9c, + 0xf3, 0x31, 0xf2, 0x01, 0x42, 0x0a, 0xf5, 0x27, 0xf2, 0x41, 0x43, 0x92, + 0xf3, 0x1e, 0xf2, 0x01, 0x92, 0x48, 0x93, 0x3a, 0x94, 0x2c, 0x43, 0xc2, + 0xf3, 0x3a, 0xf2, 0x01, 0x43, 0xda, 0xf3, 0x24, 0xf2, 0x01, 0x99, 0x12, + 0x43, 0xf5, 0xf3, 0x11, 0xf2, 0x01, 0x43, 0x1c, 0xf4, 0x2c, 0xf2, 0x01, + 0x43, 0x3d, 0xf4, 0x1d, 0xf2, 0x41, 0x42, 0xb4, 0x75, 0x15, 0xf2, 0x01, + 0x42, 0xd9, 0xe3, 0x17, 0xf2, 0x41, 0x42, 0xb2, 0x75, 0x34, 0xf2, 0x01, + 0x42, 0xf6, 0xf4, 0x25, 0xf2, 0x41, 0x42, 0xdb, 0x04, 0x12, 0xf2, 0x01, + 0x42, 0xef, 0xf4, 0x2e, 0xf2, 0x41, 0x42, 0xec, 0xf4, 0x20, 0xf2, 0x01, + 0x42, 0x8d, 0xf3, 0x1c, 0xf2, 0x01, 0x42, 0xd1, 0xf3, 0x39, 0xf2, 0x41, + 0x90, 0x12, 0x42, 0x90, 0xef, 0x2d, 0xf2, 0x01, 0x42, 0x5a, 0xe2, 0x14, + 0xf2, 0x01, 0x42, 0xcb, 0xd8, 0x18, 0xf2, 0x41, 0xd0, 0x29, 0xf2, 0x01, 0xd9, 0x2a, 0xf2, 0x41, 0xa1, 0xd9, 0x0b, 0xa2, 0xae, 0x0b, 0xa3, 0xee, 0x0a, 0xa4, 0xb4, 0x0a, 0xa5, 0xf9, 0x09, 0xa6, 0xcc, 0x09, 0xa7, 0x82, 0x09, 0xa8, 0xa8, 0x08, 0xa9, 0xf8, 0x07, 0xab, 0xc7, 0x06, 0xac, 0xa6, 0x06, 0xad, 0xb2, 0x04, 0xae, 0x8a, 0x04, 0xaf, 0xdf, 0x03, 0xb0, 0xd7, - 0x02, 0xb2, 0x89, 0x02, 0xb3, 0xb9, 0x01, 0xb4, 0xa4, 0x01, 0x43, 0x8e, - 0xef, 0x06, 0x33, 0x00, 0x48, 0x7a, 0xc9, 0xde, 0x33, 0x00, 0xb7, 0x19, - 0xb9, 0x01, 0xff, 0x02, 0x31, 0x12, 0x06, 0x43, 0x22, 0x9f, 0x50, 0x33, + 0x02, 0xb2, 0x89, 0x02, 0xb3, 0xb9, 0x01, 0xb4, 0xa4, 0x01, 0x43, 0xdd, + 0xf2, 0x06, 0x33, 0x00, 0x48, 0x30, 0xcc, 0xde, 0x33, 0x00, 0xb7, 0x19, + 0xb9, 0x01, 0xff, 0x02, 0x80, 0x12, 0x06, 0x43, 0x53, 0xa1, 0x50, 0x33, 0x40, 0x42, 0x3b, 0x01, 0x4e, 0x33, 0x00, 0x42, 0x3d, 0x00, 0x4f, 0x33, - 0x40, 0x44, 0xc1, 0x8a, 0x57, 0x33, 0x00, 0xe2, 0xdd, 0x33, 0x00, 0x04, - 0x52, 0x00, 0x01, 0xff, 0x51, 0x3d, 0x57, 0x13, 0x2b, 0x00, 0x51, 0x09, - 0x58, 0xe0, 0x29, 0x00, 0x58, 0x6d, 0x27, 0xa9, 0x25, 0x00, 0x4f, 0x76, - 0x6c, 0xa4, 0x25, 0x00, 0xac, 0x3d, 0x5a, 0xfc, 0x20, 0xa6, 0x25, 0x00, - 0x50, 0x3a, 0x65, 0xe8, 0x25, 0x00, 0x4e, 0xd2, 0x7b, 0x12, 0x2b, 0x00, - 0x06, 0x6d, 0x02, 0x06, 0x4d, 0x72, 0x88, 0xa5, 0x25, 0x40, 0x05, 0xc3, - 0x00, 0x11, 0x06, 0xc8, 0x00, 0x01, 0xff, 0x53, 0x42, 0x25, 0x14, 0x2b, - 0x00, 0x52, 0x74, 0x54, 0xa8, 0x25, 0x40, 0x53, 0x42, 0x25, 0xe9, 0x25, - 0x00, 0x53, 0x5d, 0x4c, 0xa7, 0x25, 0x40, 0x4e, 0xd0, 0x6d, 0xe7, 0x25, - 0x00, 0x05, 0x14, 0x01, 0x01, 0xff, 0x58, 0xed, 0x28, 0x15, 0x2b, 0x00, - 0x59, 0x3c, 0x25, 0xea, 0x25, 0x40, 0x45, 0x5b, 0xdd, 0x96, 0xf7, 0x01, - 0x42, 0x39, 0xa3, 0x94, 0x33, 0x00, 0x42, 0x10, 0x00, 0x27, 0x33, 0x40, - 0xa1, 0x3f, 0x03, 0x92, 0x01, 0x33, 0x46, 0x1e, 0xda, 0x21, 0x33, 0x00, - 0x0b, 0x25, 0x9f, 0x08, 0xf2, 0xdb, 0x33, 0x00, 0xf6, 0xdc, 0x33, 0x40, - 0x07, 0x4c, 0x0d, 0x11, 0x04, 0x1e, 0x00, 0x01, 0xff, 0x44, 0xc3, 0x00, + 0x40, 0x44, 0x7f, 0x8c, 0x57, 0x33, 0x00, 0xe2, 0xdd, 0x33, 0x00, 0x04, + 0x52, 0x00, 0x01, 0xff, 0x51, 0xa8, 0x58, 0x13, 0x2b, 0x00, 0x51, 0x74, + 0x59, 0xe0, 0x29, 0x00, 0x58, 0x0e, 0x28, 0xa9, 0x25, 0x00, 0x4f, 0x1f, + 0x6e, 0xa4, 0x25, 0x00, 0xac, 0x3d, 0x5a, 0x84, 0x21, 0xa6, 0x25, 0x00, + 0x50, 0xb6, 0x66, 0xe8, 0x25, 0x00, 0x4e, 0x33, 0x7d, 0x12, 0x2b, 0x00, + 0x06, 0x6d, 0x02, 0x06, 0x4d, 0x2f, 0x8a, 0xa5, 0x25, 0x40, 0x05, 0xc3, + 0x00, 0x11, 0x06, 0xc8, 0x00, 0x01, 0xff, 0x53, 0xe3, 0x25, 0x14, 0x2b, + 0x00, 0x52, 0xbd, 0x55, 0xa8, 0x25, 0x40, 0x53, 0xe3, 0x25, 0xe9, 0x25, + 0x00, 0x53, 0xa6, 0x4d, 0xa7, 0x25, 0x40, 0x4e, 0x79, 0x6f, 0xe7, 0x25, + 0x00, 0x05, 0x14, 0x01, 0x01, 0xff, 0x58, 0x8e, 0x29, 0x15, 0x2b, 0x00, + 0x59, 0xdd, 0x25, 0xea, 0x25, 0x40, 0x45, 0x65, 0xe0, 0x96, 0xf7, 0x01, + 0x42, 0x75, 0xa5, 0x94, 0x33, 0x00, 0x42, 0x10, 0x00, 0x27, 0x33, 0x40, + 0xa1, 0x3f, 0x03, 0x92, 0x01, 0x33, 0x46, 0x10, 0xdd, 0x21, 0x33, 0x00, + 0x0b, 0x56, 0xa1, 0x08, 0xf2, 0xdb, 0x33, 0x00, 0xf6, 0xdc, 0x33, 0x40, + 0x07, 0x9b, 0x0d, 0x11, 0x04, 0x1e, 0x00, 0x01, 0xff, 0x44, 0xc3, 0x00, 0x7c, 0xcc, 0x01, 0x45, 0xc8, 0x00, 0x7d, 0xcc, 0x41, 0x44, 0xc3, 0x00, 0x7f, 0xcc, 0x01, 0x45, 0xc8, 0x00, 0x7e, 0xcc, 0x41, 0xe9, 0x22, 0x33, - 0x00, 0xef, 0x23, 0x33, 0x40, 0x45, 0x49, 0xe4, 0x1f, 0x33, 0x00, 0x46, - 0x98, 0xdb, 0x20, 0x33, 0x40, 0x42, 0xe8, 0x01, 0xad, 0x33, 0x80, 0x37, - 0xa5, 0x29, 0xa9, 0x15, 0x43, 0x25, 0x6b, 0x1a, 0x22, 0x00, 0xb5, 0x01, - 0xff, 0x43, 0x68, 0x74, 0x53, 0x33, 0x00, 0x45, 0x90, 0xe8, 0x54, 0x33, - 0x40, 0x55, 0x75, 0x3a, 0xce, 0x2a, 0x00, 0x42, 0x71, 0x00, 0x52, 0x33, - 0x00, 0x45, 0x72, 0xe8, 0x51, 0x33, 0x40, 0x42, 0x57, 0x16, 0x55, 0x33, - 0x00, 0x46, 0x9e, 0xdb, 0x56, 0x33, 0x40, 0x47, 0x58, 0x0c, 0xae, 0x33, - 0xc0, 0x00, 0x48, 0xaa, 0x05, 0xaf, 0x33, 0x40, 0xe1, 0xa9, 0x33, 0x80, + 0x00, 0xef, 0x23, 0x33, 0x40, 0x45, 0x59, 0xe7, 0x1f, 0x33, 0x00, 0x46, + 0x90, 0xde, 0x20, 0x33, 0x40, 0x42, 0xe8, 0x01, 0xad, 0x33, 0x80, 0x37, + 0xa5, 0x29, 0xa9, 0x15, 0x43, 0xbf, 0x6c, 0x1a, 0x22, 0x00, 0xb5, 0x01, + 0xff, 0x43, 0xe5, 0x75, 0x53, 0x33, 0x00, 0x45, 0xb4, 0xeb, 0x54, 0x33, + 0x40, 0x55, 0x45, 0x3b, 0xce, 0x2a, 0x00, 0x42, 0x71, 0x00, 0x52, 0x33, + 0x00, 0x45, 0x96, 0xeb, 0x51, 0x33, 0x40, 0x42, 0xc3, 0x16, 0x55, 0x33, + 0x00, 0x46, 0x96, 0xde, 0x56, 0x33, 0x40, 0x47, 0xa7, 0x0c, 0xae, 0x33, + 0xc0, 0x00, 0x48, 0xd5, 0x05, 0xaf, 0x33, 0x40, 0xe1, 0xa9, 0x33, 0x80, 0x6b, 0xe3, 0x76, 0x33, 0x00, 0xa5, 0x4b, 0xe6, 0x8a, 0x33, 0x00, 0xe8, 0xd7, 0x33, 0x00, 0xa9, 0x2e, 0xed, 0xd8, 0x33, 0x00, 0xaf, 0x16, 0x42, - 0x57, 0xbe, 0xd9, 0x33, 0x00, 0xf2, 0xda, 0x33, 0x00, 0xf3, 0xb0, 0x33, - 0x00, 0xf6, 0xb4, 0x33, 0x00, 0xf7, 0xba, 0x33, 0x40, 0x44, 0x7d, 0x13, - 0x3d, 0x33, 0x00, 0x43, 0x79, 0x0d, 0x40, 0x33, 0x00, 0x50, 0xaa, 0x65, - 0xd0, 0x2b, 0x40, 0x47, 0x59, 0xcc, 0x2e, 0x33, 0x00, 0xab, 0x01, 0xff, - 0xef, 0x30, 0x33, 0x00, 0x43, 0x7d, 0xa8, 0x2f, 0x33, 0x40, 0x43, 0x7a, - 0x99, 0x3b, 0x33, 0x00, 0xae, 0x06, 0x42, 0x35, 0x03, 0x37, 0x33, 0x40, - 0x43, 0xfd, 0xe3, 0x38, 0x33, 0x00, 0x42, 0x6f, 0x00, 0x3a, 0x33, 0x40, - 0x45, 0x86, 0xde, 0x80, 0x33, 0x00, 0xa1, 0x01, 0xff, 0x45, 0xaa, 0xe7, - 0x2b, 0x33, 0x00, 0x42, 0x5c, 0x01, 0x2c, 0x33, 0x40, 0x43, 0x6c, 0x6e, - 0x09, 0x33, 0x00, 0x43, 0xfc, 0x16, 0x0a, 0x33, 0x00, 0x4a, 0xfa, 0x2e, - 0x90, 0x22, 0x80, 0x04, 0xf6, 0x75, 0x33, 0x40, 0x04, 0x0a, 0x1e, 0x01, - 0xff, 0x48, 0xa9, 0x0c, 0x92, 0x22, 0x00, 0x4c, 0x79, 0x2a, 0xe5, 0x22, + 0xde, 0xc0, 0xd9, 0x33, 0x00, 0xf2, 0xda, 0x33, 0x00, 0xf3, 0xb0, 0x33, + 0x00, 0xf6, 0xb4, 0x33, 0x00, 0xf7, 0xba, 0x33, 0x40, 0x44, 0xcc, 0x13, + 0x3d, 0x33, 0x00, 0x43, 0xc8, 0x0d, 0x40, 0x33, 0x00, 0x50, 0x26, 0x67, + 0xd0, 0x2b, 0x40, 0x47, 0x1e, 0xcf, 0x2e, 0x33, 0x00, 0xab, 0x01, 0xff, + 0xef, 0x30, 0x33, 0x00, 0x43, 0xb9, 0xaa, 0x2f, 0x33, 0x40, 0x43, 0x95, + 0x9b, 0x3b, 0x33, 0x00, 0xae, 0x06, 0x42, 0x60, 0x03, 0x37, 0x33, 0x40, + 0x43, 0x0d, 0xe7, 0x38, 0x33, 0x00, 0x42, 0x6f, 0x00, 0x3a, 0x33, 0x40, + 0x45, 0x96, 0xe1, 0x80, 0x33, 0x00, 0xa1, 0x01, 0xff, 0x45, 0xce, 0xea, + 0x2b, 0x33, 0x00, 0x42, 0x5c, 0x01, 0x2c, 0x33, 0x40, 0x43, 0x15, 0x70, + 0x09, 0x33, 0x00, 0x43, 0x68, 0x17, 0x0a, 0x33, 0x00, 0x4a, 0xe0, 0x2f, + 0x90, 0x22, 0x80, 0x04, 0xf6, 0x75, 0x33, 0x40, 0x04, 0xac, 0x1e, 0x01, + 0xff, 0x48, 0xf8, 0x0c, 0x92, 0x22, 0x00, 0x4c, 0x02, 0x2b, 0xe5, 0x22, 0x40, 0xe1, 0x81, 0x33, 0x80, 0x1a, 0xe6, 0x8b, 0x33, 0x00, 0xed, 0x9a, - 0x33, 0x00, 0x44, 0x67, 0x0a, 0x29, 0x33, 0x00, 0xf3, 0xb1, 0x33, 0x00, + 0x33, 0x00, 0x44, 0xb6, 0x0a, 0x29, 0x33, 0x00, 0xf3, 0xb1, 0x33, 0x00, 0xf6, 0xb5, 0x33, 0x00, 0xf7, 0xbb, 0x33, 0x40, 0x42, 0xb4, 0x01, 0x28, 0x33, 0x40, 0x80, 0xcd, 0x01, 0xe1, 0x83, 0x33, 0x80, 0xa7, 0x01, 0xe2, 0x86, 0x33, 0x80, 0x9b, 0x01, 0xa5, 0x85, 0x01, 0xe7, 0x8e, 0x33, 0x00, - 0x42, 0x39, 0xa3, 0x92, 0x33, 0x00, 0xa9, 0x62, 0xec, 0x96, 0x33, 0x00, - 0xed, 0x9c, 0x33, 0x80, 0x4a, 0x42, 0x36, 0x03, 0xd6, 0x33, 0x00, 0x42, - 0x6c, 0x09, 0xab, 0x33, 0x00, 0xf3, 0xb3, 0x33, 0x00, 0x02, 0x2e, 0x02, + 0x42, 0x75, 0xa5, 0x92, 0x33, 0x00, 0xa9, 0x62, 0xec, 0x96, 0x33, 0x00, + 0xed, 0x9c, 0x33, 0x80, 0x4a, 0x42, 0x61, 0x03, 0xd6, 0x33, 0x00, 0x42, + 0xbb, 0x09, 0xab, 0x33, 0x00, 0xf3, 0xb3, 0x33, 0x00, 0x02, 0x2e, 0x02, 0x16, 0xf6, 0xb7, 0x33, 0x80, 0x0b, 0xf7, 0xbd, 0x33, 0xc0, 0x00, 0x45, - 0x6a, 0x7a, 0xbf, 0x33, 0x40, 0x45, 0x6a, 0x7a, 0xb9, 0x33, 0x40, 0xe1, + 0xcb, 0x7b, 0xbf, 0x33, 0x40, 0x45, 0xcb, 0x7b, 0xb9, 0x33, 0x40, 0xe1, 0x82, 0x33, 0x00, 0xe6, 0x8c, 0x33, 0x00, 0xe7, 0x8d, 0x33, 0x00, 0xec, 0x95, 0x33, 0x00, 0xed, 0x9b, 0x33, 0x00, 0xf3, 0xb2, 0x33, 0x00, 0xf6, - 0xb6, 0x33, 0x00, 0xf7, 0xbc, 0x33, 0x40, 0x80, 0x01, 0xff, 0x45, 0x5f, - 0xe2, 0xa3, 0x33, 0x00, 0x47, 0xab, 0x05, 0x9f, 0x33, 0x40, 0x45, 0xd5, - 0xe4, 0x48, 0x33, 0x00, 0xec, 0xd5, 0x33, 0x00, 0x42, 0x0d, 0x00, 0x49, - 0x33, 0xc0, 0x00, 0x45, 0x83, 0xe1, 0x4a, 0x33, 0x40, 0x45, 0x67, 0xd0, - 0x4d, 0x33, 0x00, 0x42, 0x24, 0x02, 0x4b, 0x33, 0xc0, 0x00, 0x43, 0x7f, - 0x13, 0x4c, 0x33, 0x40, 0x46, 0x0b, 0x07, 0xd4, 0x33, 0x40, 0x43, 0xcb, - 0x50, 0x45, 0x33, 0x00, 0xa9, 0x0c, 0x45, 0x1a, 0xe6, 0x47, 0x33, 0x00, - 0x44, 0x26, 0xef, 0x46, 0x33, 0x40, 0x44, 0xd5, 0xe4, 0x43, 0x33, 0x00, - 0x42, 0x3d, 0x00, 0x44, 0x33, 0x40, 0x45, 0x5f, 0xe2, 0xa5, 0x33, 0x00, - 0xaf, 0x06, 0x47, 0xab, 0x05, 0xa1, 0x33, 0x40, 0x42, 0x93, 0x0a, 0xc1, - 0x33, 0x00, 0x45, 0x5a, 0x0c, 0xa7, 0x33, 0xc0, 0x00, 0x48, 0xaa, 0x05, - 0xa8, 0x33, 0x40, 0x55, 0xe2, 0x39, 0xcd, 0x2a, 0x00, 0xed, 0xd0, 0x33, + 0xb6, 0x33, 0x00, 0xf7, 0xbc, 0x33, 0x40, 0x80, 0x01, 0xff, 0x45, 0x6a, + 0xe5, 0xa3, 0x33, 0x00, 0x47, 0xd6, 0x05, 0x9f, 0x33, 0x40, 0x45, 0xea, + 0xe7, 0x48, 0x33, 0x00, 0xec, 0xd5, 0x33, 0x00, 0x42, 0x0d, 0x00, 0x49, + 0x33, 0xc0, 0x00, 0x45, 0x98, 0xe4, 0x4a, 0x33, 0x40, 0x45, 0x3a, 0xd3, + 0x4d, 0x33, 0x00, 0x42, 0x24, 0x02, 0x4b, 0x33, 0xc0, 0x00, 0x43, 0xce, + 0x13, 0x4c, 0x33, 0x40, 0x46, 0x5c, 0x07, 0xd4, 0x33, 0x40, 0x43, 0x14, + 0x52, 0x45, 0x33, 0x00, 0xa9, 0x0c, 0x45, 0x3e, 0xe9, 0x47, 0x33, 0x00, + 0x44, 0x79, 0xf2, 0x46, 0x33, 0x40, 0x44, 0xea, 0xe7, 0x43, 0x33, 0x00, + 0x42, 0x3d, 0x00, 0x44, 0x33, 0x40, 0x45, 0x6a, 0xe5, 0xa5, 0x33, 0x00, + 0xaf, 0x06, 0x47, 0xd6, 0x05, 0xa1, 0x33, 0x40, 0x42, 0xe2, 0x0a, 0xc1, + 0x33, 0x00, 0x45, 0xa9, 0x0c, 0xa7, 0x33, 0xc0, 0x00, 0x48, 0xd5, 0x05, + 0xa8, 0x33, 0x40, 0x55, 0xb2, 0x3a, 0xcd, 0x2a, 0x00, 0xed, 0xd0, 0x33, 0x00, 0xee, 0xd1, 0x33, 0x00, 0xaf, 0x04, 0xf8, 0xd3, 0x33, 0x40, 0xe7, - 0xd2, 0x33, 0x00, 0x45, 0xfc, 0x09, 0x11, 0x23, 0x40, 0x44, 0x8e, 0xe9, + 0xd2, 0x33, 0x00, 0x45, 0x4b, 0x0a, 0x11, 0x23, 0x40, 0x44, 0xc1, 0xec, 0xc0, 0x33, 0x00, 0xe1, 0x84, 0x33, 0x80, 0x8d, 0x01, 0xe2, 0x85, 0x33, - 0x00, 0x43, 0x37, 0x00, 0x89, 0x33, 0x00, 0x44, 0x32, 0x1d, 0x1c, 0x33, - 0x00, 0xe7, 0x8f, 0x33, 0x00, 0x42, 0x39, 0xa3, 0x91, 0x33, 0x00, 0x43, - 0x99, 0x1f, 0x14, 0x33, 0x80, 0x5a, 0xeb, 0xcd, 0x33, 0x00, 0xec, 0x98, - 0x33, 0x00, 0xed, 0x9e, 0x33, 0x80, 0x36, 0xaf, 0x28, 0x42, 0x6c, 0x09, + 0x00, 0x43, 0x37, 0x00, 0x89, 0x33, 0x00, 0x44, 0xd4, 0x1d, 0x1c, 0x33, + 0x00, 0xe7, 0x8f, 0x33, 0x00, 0x42, 0x75, 0xa5, 0x91, 0x33, 0x00, 0x43, + 0x3b, 0x20, 0x14, 0x33, 0x80, 0x5a, 0xeb, 0xcd, 0x33, 0x00, 0xec, 0x98, + 0x33, 0x00, 0xed, 0x9e, 0x33, 0x80, 0x36, 0xaf, 0x28, 0x42, 0xbb, 0x09, 0xaa, 0x33, 0x00, 0xf4, 0xcf, 0x33, 0x00, 0x02, 0x42, 0x00, 0x0e, 0xf6, - 0xb8, 0x33, 0x00, 0xf7, 0xbe, 0x33, 0x00, 0x45, 0x6c, 0xe9, 0x12, 0x33, - 0x40, 0x44, 0x92, 0xee, 0x1b, 0x33, 0x00, 0x46, 0x08, 0xde, 0x1a, 0x33, - 0x40, 0x43, 0x6e, 0x35, 0x1e, 0x33, 0x00, 0x44, 0x2a, 0xef, 0x1d, 0x33, - 0x40, 0x80, 0x01, 0xff, 0xa3, 0x06, 0x47, 0xab, 0x05, 0xa2, 0x33, 0x40, - 0x46, 0xba, 0x05, 0xce, 0x33, 0x00, 0x44, 0x60, 0xe2, 0xa6, 0x33, 0x40, - 0x46, 0x46, 0xd9, 0x15, 0x33, 0x00, 0x47, 0x65, 0xd0, 0x16, 0x33, 0x00, - 0x45, 0x12, 0xe9, 0x17, 0x33, 0x40, 0x43, 0x95, 0x0a, 0x0b, 0x33, 0x00, - 0xb2, 0x01, 0xff, 0x44, 0xc1, 0x8a, 0x0c, 0x33, 0x00, 0x44, 0xa6, 0xee, - 0x0d, 0x33, 0x40, 0x47, 0x14, 0x42, 0x8f, 0x22, 0x80, 0x15, 0xee, 0xcc, - 0x33, 0x80, 0x04, 0xf5, 0x7a, 0x33, 0x40, 0x44, 0x26, 0xa3, 0x04, 0x33, - 0x00, 0x42, 0x35, 0x00, 0x05, 0x33, 0x40, 0x04, 0x0a, 0x1e, 0x01, 0xff, - 0x48, 0xa9, 0x0c, 0x91, 0x22, 0x00, 0x4c, 0x79, 0x2a, 0xe4, 0x22, 0x40, + 0xb8, 0x33, 0x00, 0xf7, 0xbe, 0x33, 0x00, 0x45, 0x9f, 0xec, 0x12, 0x33, + 0x40, 0x44, 0xd5, 0xf1, 0x1b, 0x33, 0x00, 0x46, 0x18, 0xe1, 0x1a, 0x33, + 0x40, 0x43, 0x3e, 0x36, 0x1e, 0x33, 0x00, 0x44, 0x7d, 0xf2, 0x1d, 0x33, + 0x40, 0x80, 0x01, 0xff, 0xa3, 0x06, 0x47, 0xd6, 0x05, 0xa2, 0x33, 0x40, + 0x46, 0xe5, 0x05, 0xce, 0x33, 0x00, 0x44, 0x6b, 0xe5, 0xa6, 0x33, 0x40, + 0x46, 0x38, 0xdc, 0x15, 0x33, 0x00, 0x47, 0x38, 0xd3, 0x16, 0x33, 0x00, + 0x45, 0x40, 0xec, 0x17, 0x33, 0x40, 0x43, 0xe4, 0x0a, 0x0b, 0x33, 0x00, + 0xb2, 0x01, 0xff, 0x44, 0x7f, 0x8c, 0x0c, 0x33, 0x00, 0x44, 0xe9, 0xf1, + 0x0d, 0x33, 0x40, 0x47, 0x21, 0x43, 0x8f, 0x22, 0x80, 0x15, 0xee, 0xcc, + 0x33, 0x80, 0x04, 0xf5, 0x7a, 0x33, 0x40, 0x44, 0x62, 0xa5, 0x04, 0x33, + 0x00, 0x42, 0x35, 0x00, 0x05, 0x33, 0x40, 0x04, 0xac, 0x1e, 0x01, 0xff, + 0x48, 0xf8, 0x0c, 0x91, 0x22, 0x00, 0x4c, 0x02, 0x2b, 0xe4, 0x22, 0x40, 0xe1, 0xca, 0x33, 0x80, 0x4c, 0xa5, 0x3e, 0xe7, 0xcc, 0x32, 0x00, 0x4c, - 0xb1, 0x8e, 0x00, 0xf2, 0x01, 0xaf, 0x21, 0xf0, 0xcb, 0x33, 0x80, 0x18, - 0xb5, 0x04, 0xfa, 0x90, 0x33, 0x40, 0x46, 0xf4, 0xd6, 0x32, 0x33, 0x00, - 0x44, 0x42, 0xed, 0x33, 0x33, 0x00, 0x43, 0x24, 0x03, 0x35, 0x33, 0x40, + 0x63, 0x90, 0x00, 0xf2, 0x01, 0xaf, 0x21, 0xf0, 0xcb, 0x33, 0x80, 0x18, + 0xb5, 0x04, 0xfa, 0x90, 0x33, 0x40, 0x46, 0xda, 0xd9, 0x32, 0x33, 0x00, + 0x44, 0x81, 0xf0, 0x33, 0x33, 0x00, 0x43, 0x4f, 0x03, 0x35, 0x33, 0x40, 0xe1, 0x71, 0x33, 0x40, 0xee, 0x3f, 0x33, 0x00, 0xaf, 0x01, 0xff, 0xee, - 0x42, 0x33, 0x00, 0x42, 0x3d, 0x00, 0x41, 0x33, 0x40, 0x47, 0xb6, 0xcf, - 0x36, 0x33, 0x00, 0x44, 0x75, 0xe8, 0x39, 0x33, 0x40, 0x43, 0x34, 0x1f, - 0x2a, 0x33, 0x40, 0xa1, 0x35, 0xe2, 0x87, 0x33, 0x00, 0x42, 0x39, 0xa3, - 0x93, 0x33, 0x00, 0xa9, 0x17, 0x42, 0x6c, 0x09, 0xac, 0x33, 0x00, 0x45, - 0x47, 0xd9, 0x18, 0x33, 0x80, 0x04, 0xf9, 0xc9, 0x33, 0x40, 0x43, 0x7f, - 0x13, 0x19, 0x33, 0x40, 0x42, 0x24, 0x02, 0x10, 0x33, 0x00, 0x43, 0x29, - 0xf1, 0x11, 0x33, 0x00, 0x45, 0x69, 0xe7, 0x13, 0x33, 0x40, 0xec, 0xff, - 0x33, 0x00, 0x43, 0x18, 0x90, 0x0f, 0x33, 0x00, 0x43, 0x62, 0x0e, 0x0e, - 0x33, 0x40, 0xed, 0x99, 0x33, 0x00, 0xaf, 0x01, 0xff, 0x42, 0xf0, 0x04, - 0xcd, 0x23, 0x00, 0x09, 0xf0, 0xbd, 0x01, 0xff, 0x80, 0x04, 0xf3, 0xf6, - 0x26, 0x40, 0x4f, 0xc4, 0x69, 0x8b, 0xcc, 0x01, 0x49, 0x65, 0xb5, 0x8a, - 0xcc, 0x01, 0x48, 0xf2, 0xc7, 0x89, 0xcc, 0x41, 0x44, 0xd5, 0x9b, 0x08, - 0x33, 0x00, 0xb2, 0x0a, 0x47, 0x3d, 0xd3, 0x07, 0x33, 0x00, 0xf6, 0xce, - 0x32, 0x40, 0x07, 0xb8, 0xcb, 0x04, 0xe7, 0xcd, 0x32, 0x40, 0x46, 0x70, - 0xd9, 0x7b, 0x33, 0x00, 0x45, 0x6b, 0xe5, 0x7e, 0x33, 0x00, 0x45, 0x23, - 0xe7, 0xff, 0x32, 0x00, 0x46, 0x42, 0xdd, 0x7c, 0x33, 0x00, 0x47, 0x59, - 0xd3, 0x7d, 0x33, 0x40, 0xe1, 0x72, 0x33, 0x80, 0x2c, 0xe2, 0xc8, 0x33, - 0x00, 0x43, 0x44, 0x0a, 0x25, 0x33, 0x00, 0xea, 0x90, 0xf1, 0x01, 0xec, - 0x97, 0x33, 0x00, 0xed, 0x77, 0x33, 0x80, 0x06, 0x43, 0x5c, 0x08, 0x26, - 0x33, 0x40, 0x80, 0x01, 0xff, 0x45, 0x5f, 0xe2, 0x79, 0x33, 0x00, 0x47, - 0xab, 0x05, 0x78, 0x33, 0x40, 0x43, 0x07, 0x18, 0x24, 0x33, 0x40, 0x48, - 0xc2, 0xbf, 0xc6, 0x33, 0x00, 0xa1, 0x2d, 0xe3, 0xc4, 0x33, 0x00, 0xe4, + 0x42, 0x33, 0x00, 0x42, 0x3d, 0x00, 0x41, 0x33, 0x40, 0x47, 0x89, 0xd2, + 0x36, 0x33, 0x00, 0x44, 0x99, 0xeb, 0x39, 0x33, 0x40, 0x43, 0xd6, 0x1f, + 0x2a, 0x33, 0x40, 0xa1, 0x35, 0xe2, 0x87, 0x33, 0x00, 0x42, 0x75, 0xa5, + 0x93, 0x33, 0x00, 0xa9, 0x17, 0x42, 0xbb, 0x09, 0xac, 0x33, 0x00, 0x45, + 0x39, 0xdc, 0x18, 0x33, 0x80, 0x04, 0xf9, 0xc9, 0x33, 0x40, 0x43, 0xce, + 0x13, 0x19, 0x33, 0x40, 0x42, 0x24, 0x02, 0x10, 0x33, 0x00, 0x43, 0x76, + 0xf4, 0x11, 0x33, 0x00, 0x45, 0x8d, 0xea, 0x13, 0x33, 0x40, 0xec, 0xff, + 0x33, 0x00, 0x43, 0xca, 0x91, 0x0f, 0x33, 0x00, 0x43, 0xb1, 0x0e, 0x0e, + 0x33, 0x40, 0xed, 0x99, 0x33, 0x00, 0xaf, 0x01, 0xff, 0x42, 0x1b, 0x05, + 0xcd, 0x23, 0x00, 0x09, 0x77, 0xc0, 0x01, 0xff, 0x80, 0x04, 0xf3, 0xf6, + 0x26, 0x40, 0x4f, 0x5e, 0x6b, 0x8b, 0xcc, 0x01, 0x49, 0xb6, 0xb7, 0x8a, + 0xcc, 0x01, 0x48, 0xa0, 0xca, 0x89, 0xcc, 0x41, 0x44, 0xfb, 0x9d, 0x08, + 0x33, 0x00, 0xb2, 0x0a, 0x47, 0x09, 0xd6, 0x07, 0x33, 0x00, 0xf6, 0xce, + 0x32, 0x40, 0x07, 0x7d, 0xce, 0x04, 0xe7, 0xcd, 0x32, 0x40, 0x46, 0x68, + 0xdc, 0x7b, 0x33, 0x00, 0x45, 0x85, 0xe8, 0x7e, 0x33, 0x00, 0x45, 0x47, + 0xea, 0xff, 0x32, 0x00, 0x46, 0x4c, 0xe0, 0x7c, 0x33, 0x00, 0x47, 0x25, + 0xd6, 0x7d, 0x33, 0x40, 0xe1, 0x72, 0x33, 0x80, 0x2c, 0xe2, 0xc8, 0x33, + 0x00, 0x43, 0x93, 0x0a, 0x25, 0x33, 0x00, 0xea, 0x90, 0xf1, 0x01, 0xec, + 0x97, 0x33, 0x00, 0xed, 0x77, 0x33, 0x80, 0x06, 0x43, 0x87, 0x08, 0x26, + 0x33, 0x40, 0x80, 0x01, 0xff, 0x45, 0x6a, 0xe5, 0x79, 0x33, 0x00, 0x47, + 0xd6, 0x05, 0x78, 0x33, 0x40, 0x43, 0x73, 0x18, 0x24, 0x33, 0x40, 0x48, + 0x40, 0xc2, 0xc6, 0x33, 0x00, 0xa1, 0x2d, 0xe3, 0xc4, 0x33, 0x00, 0xe4, 0xc5, 0x33, 0x00, 0xed, 0x9d, 0x33, 0x80, 0x11, 0xef, 0xc7, 0x33, 0x80, - 0x06, 0x42, 0x50, 0x02, 0x94, 0x22, 0x40, 0x49, 0x76, 0xbc, 0x7f, 0x33, - 0x40, 0x80, 0x01, 0xff, 0x45, 0x5f, 0xe2, 0xa4, 0x33, 0x00, 0x47, 0xab, + 0x06, 0x42, 0x50, 0x02, 0x94, 0x22, 0x40, 0x49, 0xeb, 0xbe, 0x7f, 0x33, + 0x40, 0x80, 0x01, 0xff, 0x45, 0x6a, 0xe5, 0xa4, 0x33, 0x00, 0x47, 0xd6, 0x05, 0xa0, 0x33, 0x40, 0xec, 0x88, 0x33, 0x00, 0xf0, 0x93, 0x22, 0x40, - 0xa1, 0x1c, 0x44, 0xc0, 0x10, 0x3c, 0x33, 0x00, 0x43, 0x5c, 0x7c, 0x31, - 0x33, 0x00, 0x45, 0x7e, 0xe6, 0x3e, 0x33, 0x00, 0xf1, 0xc3, 0x33, 0x00, - 0x47, 0x32, 0xd4, 0x34, 0x33, 0x40, 0x45, 0x51, 0xe1, 0x2d, 0x33, 0x00, - 0xf2, 0x74, 0x33, 0x40, 0x47, 0x0a, 0x28, 0xdf, 0x33, 0x00, 0x43, 0x3c, - 0x00, 0x03, 0x33, 0x00, 0xed, 0xc2, 0x33, 0x00, 0x44, 0x4a, 0xee, 0x02, - 0x33, 0x00, 0xb0, 0x0a, 0x45, 0x6e, 0xe7, 0x01, 0x33, 0x00, 0xf5, 0x73, - 0x33, 0x40, 0x44, 0x5c, 0x9e, 0x00, 0x33, 0x00, 0x46, 0x7a, 0xd8, 0x8c, - 0xcc, 0x41, 0xa1, 0xbf, 0x01, 0xa5, 0x6f, 0x4d, 0x0c, 0x82, 0x22, 0x22, + 0xa1, 0x1c, 0x44, 0x0f, 0x11, 0x3c, 0x33, 0x00, 0x43, 0xcb, 0x7d, 0x31, + 0x33, 0x00, 0x45, 0xa2, 0xe9, 0x3e, 0x33, 0x00, 0xf1, 0xc3, 0x33, 0x00, + 0x47, 0x05, 0xd7, 0x34, 0x33, 0x40, 0x45, 0x66, 0xe4, 0x2d, 0x33, 0x00, + 0xf2, 0x74, 0x33, 0x40, 0x47, 0xab, 0x28, 0xdf, 0x33, 0x00, 0x43, 0x3c, + 0x00, 0x03, 0x33, 0x00, 0xed, 0xc2, 0x33, 0x00, 0x44, 0x8d, 0xf1, 0x02, + 0x33, 0x00, 0xb0, 0x0a, 0x45, 0x92, 0xea, 0x01, 0x33, 0x00, 0xf5, 0x73, + 0x33, 0x40, 0x44, 0x8d, 0xa0, 0x00, 0x33, 0x00, 0x46, 0x66, 0xdb, 0x8c, + 0xcc, 0x41, 0xa1, 0xbf, 0x01, 0xa5, 0x6f, 0x4d, 0xa2, 0x83, 0x22, 0x22, 0x80, 0x57, 0xa9, 0x31, 0x02, 0x74, 0x00, 0x21, 0xaf, 0x01, 0xff, 0x43, - 0x8b, 0x09, 0xfd, 0xf9, 0x01, 0xaf, 0x0c, 0x49, 0x88, 0xbc, 0xc5, 0xf3, - 0x01, 0x4b, 0x5e, 0xa2, 0x33, 0xf4, 0x41, 0x4b, 0xf7, 0x9b, 0xf5, 0xf9, - 0x01, 0xee, 0x44, 0xf9, 0x41, 0x52, 0x08, 0x54, 0xa6, 0xf4, 0x01, 0x44, - 0xc3, 0x05, 0xdf, 0xfa, 0x41, 0x43, 0x4e, 0x1a, 0x77, 0xf5, 0x81, 0x17, - 0x04, 0xdd, 0x01, 0x01, 0xff, 0x4c, 0x69, 0x8b, 0xd3, 0xf5, 0x01, 0x48, - 0x3a, 0xc6, 0xd2, 0xf5, 0x01, 0x45, 0x0e, 0x09, 0x1a, 0xf4, 0x41, 0x44, - 0x96, 0xe9, 0x78, 0xf5, 0x41, 0x09, 0x83, 0x74, 0x01, 0xff, 0x44, 0xc3, + 0xda, 0x09, 0xfd, 0xf9, 0x01, 0xaf, 0x0c, 0x49, 0xfd, 0xbe, 0xc5, 0xf3, + 0x01, 0x4b, 0x9a, 0xa4, 0x33, 0xf4, 0x41, 0x4b, 0x1d, 0x9e, 0xf5, 0xf9, + 0x01, 0xee, 0x44, 0xf9, 0x41, 0x52, 0x51, 0x55, 0xa6, 0xf4, 0x01, 0x44, + 0xee, 0x05, 0xdf, 0xfa, 0x41, 0x43, 0xd5, 0x1a, 0x77, 0xf5, 0x81, 0x17, + 0x04, 0xdd, 0x01, 0x01, 0xff, 0x4c, 0x27, 0x8d, 0xd3, 0xf5, 0x01, 0x48, + 0xd8, 0xc8, 0xd2, 0xf5, 0x01, 0x45, 0x5d, 0x09, 0x1a, 0xf4, 0x41, 0x44, + 0xc9, 0xec, 0x78, 0xf5, 0x41, 0x09, 0x00, 0x76, 0x01, 0xff, 0x44, 0xc3, 0x00, 0xa0, 0x29, 0x00, 0x42, 0x50, 0x02, 0xa1, 0x29, 0x40, 0x02, 0x6d, - 0x00, 0x20, 0x10, 0xea, 0x5f, 0x14, 0xa5, 0x06, 0x4a, 0xcd, 0xae, 0xb7, - 0x20, 0x40, 0x4a, 0x49, 0xa6, 0xac, 0xf4, 0x01, 0x45, 0x6e, 0xe2, 0xa4, - 0xf6, 0x41, 0xd1, 0x46, 0xcc, 0x01, 0xd2, 0x47, 0xcc, 0x41, 0x4f, 0xa7, - 0x68, 0x4a, 0xf6, 0x01, 0x42, 0x33, 0x00, 0x08, 0xf5, 0x81, 0x06, 0x56, - 0xe3, 0x33, 0xe3, 0xf5, 0x41, 0x06, 0x50, 0x00, 0x01, 0xff, 0x53, 0x62, - 0x2b, 0x07, 0xf5, 0x01, 0x4e, 0xec, 0x78, 0x09, 0xf5, 0x01, 0x51, 0xf3, - 0x5c, 0x0a, 0xf5, 0x41, 0x42, 0x73, 0x02, 0x20, 0x00, 0x00, 0x46, 0x10, - 0xd9, 0x5d, 0xf3, 0x01, 0xb2, 0x01, 0xff, 0x02, 0xbb, 0x0d, 0x11, 0x03, - 0x16, 0x04, 0x01, 0xff, 0x4f, 0x76, 0x6c, 0x40, 0xcc, 0x01, 0x4d, 0x72, - 0x88, 0x41, 0xcc, 0x41, 0xe5, 0x47, 0x27, 0x80, 0x06, 0x49, 0x0e, 0x85, + 0x00, 0x20, 0x10, 0x66, 0x61, 0x14, 0xa5, 0x06, 0x4a, 0x1d, 0xb1, 0xb7, + 0x20, 0x40, 0x4a, 0x85, 0xa8, 0xac, 0xf4, 0x01, 0x45, 0x79, 0xe5, 0xa4, + 0xf6, 0x41, 0xd1, 0x46, 0xcc, 0x01, 0xd2, 0x47, 0xcc, 0x41, 0x4f, 0x32, + 0x6a, 0x4a, 0xf6, 0x01, 0x42, 0x33, 0x00, 0x08, 0xf5, 0x81, 0x06, 0x56, + 0xb3, 0x34, 0xe3, 0xf5, 0x41, 0x06, 0x50, 0x00, 0x01, 0xff, 0x53, 0x03, + 0x2c, 0x07, 0xf5, 0x01, 0x4e, 0x4d, 0x7a, 0x09, 0xf5, 0x01, 0x51, 0x5e, + 0x5e, 0x0a, 0xf5, 0x41, 0x42, 0x73, 0x02, 0x20, 0x00, 0x00, 0x46, 0x02, + 0xdc, 0x5d, 0xf3, 0x01, 0xb2, 0x01, 0xff, 0x02, 0x0a, 0x0e, 0x11, 0x03, + 0x41, 0x04, 0x01, 0xff, 0x4f, 0x1f, 0x6e, 0x40, 0xcc, 0x01, 0x4d, 0x2f, + 0x8a, 0x41, 0xcc, 0x41, 0xe5, 0x47, 0x27, 0x80, 0x06, 0x49, 0xcb, 0x86, 0x96, 0xf4, 0x41, 0xf3, 0x28, 0x27, 0x40, 0xa3, 0xca, 0x0a, 0x02, 0xc5, - 0x00, 0xa5, 0x0a, 0x06, 0xf2, 0xd0, 0xee, 0x07, 0x03, 0x6b, 0x30, 0xcf, - 0x07, 0x46, 0xcb, 0x5c, 0xc0, 0x20, 0x00, 0x5e, 0xb8, 0x13, 0x1c, 0xf5, - 0x01, 0x0b, 0x67, 0x9f, 0xda, 0x05, 0xb5, 0x89, 0x04, 0x06, 0x6e, 0xde, - 0x01, 0xff, 0x17, 0x2d, 0x2d, 0xe6, 0x03, 0x15, 0x4b, 0x3a, 0xad, 0x03, - 0x4f, 0xe0, 0x6b, 0x98, 0x1a, 0x01, 0x5b, 0x19, 0x1b, 0xa0, 0x1a, 0x81, - 0x8e, 0x03, 0x07, 0xc1, 0x05, 0x8d, 0x01, 0x05, 0xb9, 0x00, 0x71, 0xb3, - 0x4d, 0x0e, 0x46, 0x7b, 0x41, 0x06, 0x6c, 0x38, 0x01, 0xff, 0x4b, 0x72, - 0x38, 0x5b, 0x1a, 0x01, 0x05, 0x2f, 0x03, 0x01, 0xff, 0xa1, 0x27, 0xe5, + 0x00, 0xa5, 0x0a, 0x06, 0xc5, 0xd3, 0xee, 0x07, 0x03, 0x51, 0x31, 0xcf, + 0x07, 0x46, 0x36, 0x5e, 0xc0, 0x20, 0x00, 0x5e, 0x07, 0x14, 0x1c, 0xf5, + 0x01, 0x0b, 0xa3, 0xa1, 0xda, 0x05, 0xb5, 0x89, 0x04, 0x06, 0x7e, 0xe1, + 0x01, 0xff, 0x17, 0xfc, 0x2d, 0xe6, 0x03, 0x15, 0x1b, 0x3b, 0xad, 0x03, + 0x4f, 0x89, 0x6d, 0x98, 0x1a, 0x01, 0x5b, 0xa0, 0x1b, 0xa0, 0x1a, 0x81, + 0x8e, 0x03, 0x07, 0xec, 0x05, 0x8d, 0x01, 0x05, 0xb9, 0x00, 0x71, 0xb3, + 0x4d, 0x0e, 0xa7, 0x7c, 0x41, 0x06, 0x3c, 0x39, 0x01, 0xff, 0x4b, 0x42, + 0x39, 0x5b, 0x1a, 0x01, 0x05, 0x5a, 0x03, 0x01, 0xff, 0xa1, 0x27, 0xe5, 0x54, 0x1a, 0x01, 0xe9, 0x51, 0x1a, 0x01, 0xef, 0x55, 0x1a, 0x81, 0x16, - 0xf5, 0x53, 0x1a, 0x81, 0x0d, 0x08, 0x9b, 0xbe, 0x01, 0xff, 0xec, 0x5a, + 0xf5, 0x53, 0x1a, 0x81, 0x0d, 0x08, 0x22, 0xc1, 0x01, 0xff, 0xec, 0x5a, 0x1a, 0x01, 0xf2, 0x59, 0x1a, 0x41, 0xe5, 0x52, 0x1a, 0x41, 0xe5, 0x56, 0x1a, 0x41, 0xe9, 0x57, 0x1a, 0x01, 0xf5, 0x58, 0x1a, 0x41, 0xd1, 0xa1, - 0x1a, 0x01, 0xd2, 0xa2, 0x1a, 0x41, 0x04, 0x30, 0x03, 0x06, 0x48, 0x3a, - 0xc9, 0x99, 0x1a, 0x41, 0x48, 0xd0, 0x15, 0x96, 0x1a, 0x01, 0x4b, 0xc0, - 0x9b, 0x84, 0x1a, 0x01, 0x4b, 0x32, 0xa2, 0x85, 0x1a, 0x01, 0x47, 0xa1, - 0x4a, 0x97, 0x1a, 0x41, 0x4b, 0x2c, 0x99, 0x9c, 0x1a, 0x01, 0x45, 0xce, - 0xe6, 0x9d, 0x1a, 0x01, 0x44, 0xa4, 0x02, 0x9b, 0x1a, 0x01, 0x45, 0x59, - 0x39, 0x9a, 0x1a, 0x41, 0x42, 0x2e, 0x25, 0x7a, 0x1a, 0x01, 0xe1, 0x50, + 0x1a, 0x01, 0xd2, 0xa2, 0x1a, 0x41, 0x04, 0x5b, 0x03, 0x06, 0x48, 0xf0, + 0xcb, 0x99, 0x1a, 0x41, 0x48, 0x3c, 0x16, 0x96, 0x1a, 0x01, 0x4b, 0xe6, + 0x9d, 0x84, 0x1a, 0x01, 0x4b, 0x6e, 0xa4, 0x85, 0x1a, 0x01, 0x47, 0xea, + 0x4b, 0x97, 0x1a, 0x41, 0x4b, 0x47, 0x9b, 0x9c, 0x1a, 0x01, 0x45, 0xf2, + 0xe9, 0x9d, 0x1a, 0x01, 0x44, 0xa4, 0x02, 0x9b, 0x1a, 0x01, 0x45, 0x29, + 0x3a, 0x9a, 0x1a, 0x41, 0x42, 0xcf, 0x25, 0x7a, 0x1a, 0x01, 0xe1, 0x50, 0x1a, 0x01, 0xa2, 0xe5, 0x01, 0xa3, 0xd8, 0x01, 0xa4, 0xb9, 0x01, 0xa7, 0xac, 0x01, 0x42, 0x22, 0x00, 0x82, 0x1a, 0x01, 0xaa, 0x99, 0x01, 0xab, 0x86, 0x01, 0x42, 0x74, 0x00, 0x7d, 0x1a, 0x01, 0x42, 0x6c, 0x00, 0x74, 0x1a, 0x01, 0xae, 0x62, 0xb0, 0x56, 0x42, 0x71, 0x00, 0x7c, 0x1a, 0x01, - 0xb3, 0x3e, 0xb4, 0x19, 0x42, 0xa6, 0x0a, 0x7e, 0x1a, 0x01, 0x42, 0x34, + 0xb3, 0x3e, 0xb4, 0x19, 0x42, 0xf5, 0x0a, 0x7e, 0x1a, 0x01, 0x42, 0xbc, 0x22, 0x7b, 0x1a, 0x01, 0xba, 0x01, 0xff, 0xe1, 0x79, 0x1a, 0x01, 0x42, 0x22, 0x00, 0x78, 0x1a, 0x41, 0xe1, 0x6b, 0x1a, 0x01, 0x42, 0x22, 0x00, 0x6c, 0x1a, 0x01, 0xb3, 0x0d, 0xb4, 0x01, 0xff, 0xe1, 0x66, 0x1a, 0x01, 0x42, 0x22, 0x00, 0x67, 0x1a, 0x41, 0xe1, 0x75, 0x1a, 0x01, 0x42, 0x22, 0x00, 0x76, 0x1a, 0x41, 0xe1, 0x81, 0x1a, 0x01, 0x42, 0x22, 0x00, 0x7f, - 0x1a, 0x01, 0x42, 0x15, 0x06, 0x80, 0x1a, 0x41, 0xe1, 0x70, 0x1a, 0x01, + 0x1a, 0x01, 0x42, 0x40, 0x06, 0x80, 0x1a, 0x41, 0xe1, 0x70, 0x1a, 0x01, 0x42, 0x22, 0x00, 0x71, 0x1a, 0x41, 0xe1, 0x6f, 0x1a, 0x01, 0x42, 0x24, - 0x02, 0x60, 0x1a, 0x01, 0x42, 0xff, 0x04, 0x6a, 0x1a, 0x01, 0x42, 0x34, + 0x02, 0x60, 0x1a, 0x01, 0x42, 0x2a, 0x05, 0x6a, 0x1a, 0x01, 0x42, 0xbc, 0x22, 0x65, 0x1a, 0x41, 0xe1, 0x5c, 0x1a, 0x01, 0x42, 0x22, 0x00, 0x5d, - 0x1a, 0x01, 0x43, 0x59, 0x20, 0x83, 0x1a, 0x41, 0xe1, 0x63, 0x1a, 0x01, + 0x1a, 0x01, 0x43, 0xfb, 0x20, 0x83, 0x1a, 0x41, 0xe1, 0x63, 0x1a, 0x01, 0x42, 0x22, 0x00, 0x64, 0x1a, 0x41, 0xe1, 0x5e, 0x1a, 0x01, 0x42, 0x22, 0x00, 0x5f, 0x1a, 0x41, 0xe1, 0x6d, 0x1a, 0x01, 0xa4, 0x0c, 0x42, 0x22, 0x00, 0x6e, 0x1a, 0x01, 0x42, 0x59, 0x00, 0x77, 0x1a, 0x41, 0xe1, 0x68, 0x1a, 0x01, 0x42, 0x22, 0x00, 0x69, 0x1a, 0x41, 0xe1, 0x61, 0x1a, 0x01, 0x42, 0x22, 0x00, 0x62, 0x1a, 0x41, 0xe1, 0x72, 0x1a, 0x01, 0x42, 0x22, - 0x00, 0x73, 0x1a, 0x41, 0x05, 0x19, 0x00, 0x01, 0xff, 0x45, 0x40, 0x94, - 0x9f, 0x1a, 0x01, 0x4c, 0x39, 0x94, 0x9e, 0x1a, 0x41, 0x42, 0x2e, 0x25, + 0x00, 0x73, 0x1a, 0x41, 0x05, 0x19, 0x00, 0x01, 0xff, 0x45, 0x22, 0x96, + 0x9f, 0x1a, 0x01, 0x4c, 0x1b, 0x96, 0x9e, 0x1a, 0x41, 0x42, 0xcf, 0x25, 0x95, 0x1a, 0x01, 0xe2, 0x8f, 0x1a, 0x01, 0xe4, 0x8d, 0x1a, 0x01, 0xe7, 0x8a, 0x1a, 0x01, 0xeb, 0x8b, 0x1a, 0x01, 0xec, 0x92, 0x1a, 0x01, 0xed, 0x90, 0x1a, 0x01, 0xee, 0x8e, 0x1a, 0x81, 0x0d, 0xf2, 0x91, 0x1a, 0x01, 0xf3, 0x94, 0x1a, 0xc1, 0x00, 0xe8, 0x93, 0x1a, 0x41, 0xe7, 0x8c, 0x1a, 0x41, 0x42, 0x74, 0x00, 0x87, 0x1a, 0x01, 0x42, 0x71, 0x00, 0x86, 0x1a, 0x01, 0xb3, 0x01, 0xff, 0xe1, 0x89, 0x1a, 0x01, 0x42, 0x22, 0x00, 0x88, - 0x1a, 0x41, 0x56, 0xeb, 0x34, 0x17, 0x21, 0x00, 0x03, 0x53, 0x00, 0x01, - 0xff, 0x05, 0x25, 0x23, 0x5c, 0x05, 0x37, 0x1a, 0x01, 0xff, 0x45, 0xce, - 0x00, 0x99, 0x21, 0x80, 0x3b, 0x4b, 0x95, 0x97, 0x0b, 0x2b, 0x00, 0x4c, - 0x71, 0x8c, 0xd9, 0x21, 0x00, 0x09, 0x9c, 0x01, 0x19, 0x50, 0x6a, 0x65, - 0x57, 0xf8, 0x01, 0x55, 0x01, 0x02, 0x69, 0x2b, 0x80, 0x06, 0x4b, 0xfa, - 0x0f, 0x03, 0x2b, 0x40, 0x47, 0x81, 0x14, 0x79, 0x2b, 0x40, 0x43, 0xa7, - 0xcd, 0x61, 0xf6, 0x01, 0x44, 0xf0, 0x4f, 0x51, 0xf6, 0x01, 0x49, 0x89, - 0xbe, 0x59, 0xf6, 0x41, 0x80, 0x01, 0xff, 0x54, 0x6b, 0x3f, 0x2a, 0x29, - 0x00, 0x48, 0xfd, 0xb1, 0xbb, 0xf8, 0x01, 0x49, 0x20, 0x24, 0x26, 0x29, - 0x40, 0x45, 0xce, 0x00, 0x98, 0x21, 0x80, 0x3b, 0x4b, 0x95, 0x97, 0x0a, - 0x2b, 0x00, 0x4c, 0x71, 0x8c, 0xd8, 0x21, 0x00, 0x09, 0x9c, 0x01, 0x19, - 0x50, 0x6a, 0x65, 0x56, 0xf8, 0x01, 0x55, 0x01, 0x02, 0x68, 0x2b, 0x80, - 0x06, 0x4b, 0xfa, 0x0f, 0x02, 0x2b, 0x40, 0x47, 0x81, 0x14, 0x78, 0x2b, - 0x40, 0x43, 0xa7, 0xcd, 0x63, 0xf6, 0x01, 0x44, 0xf0, 0x4f, 0x53, 0xf6, - 0x01, 0x49, 0x89, 0xbe, 0x5b, 0xf6, 0x41, 0x80, 0x01, 0xff, 0x54, 0x93, - 0x3f, 0x29, 0x29, 0x00, 0x59, 0x16, 0x23, 0x2d, 0x29, 0x00, 0x48, 0xfd, - 0xb1, 0xba, 0xf8, 0x01, 0x49, 0x60, 0xbd, 0xf2, 0x21, 0x00, 0x49, 0x20, - 0x24, 0x25, 0x29, 0x40, 0x06, 0xc4, 0x06, 0x9d, 0x01, 0x07, 0xc1, 0x05, - 0x01, 0xff, 0x42, 0xc9, 0x09, 0xe2, 0x10, 0x01, 0x43, 0x17, 0x4d, 0xd2, - 0x10, 0x01, 0x43, 0xb1, 0xf0, 0xd3, 0x10, 0x01, 0x43, 0xdf, 0x77, 0xd4, - 0x10, 0x01, 0xa5, 0x74, 0x43, 0x0c, 0xba, 0xd5, 0x10, 0x01, 0x43, 0x84, - 0x20, 0xde, 0x10, 0x01, 0x42, 0xec, 0x18, 0xe4, 0x10, 0x01, 0x43, 0x0b, - 0xf1, 0xe0, 0x10, 0x01, 0x43, 0xa5, 0x46, 0xdf, 0x10, 0x01, 0x43, 0xcb, - 0x17, 0xd8, 0x10, 0x01, 0x02, 0x6c, 0x00, 0x44, 0xae, 0x30, 0x42, 0x5c, - 0x28, 0xe6, 0x10, 0x01, 0x43, 0xe9, 0x41, 0xdb, 0x10, 0x01, 0x43, 0xd2, - 0x17, 0xdd, 0x10, 0x01, 0x43, 0xf8, 0xc3, 0xd0, 0x10, 0x01, 0x43, 0xc8, - 0x09, 0xd1, 0x10, 0x01, 0x42, 0x5e, 0x74, 0xe5, 0x10, 0x01, 0x43, 0xc2, - 0xd2, 0xda, 0x10, 0x01, 0x43, 0x62, 0x49, 0xdc, 0x10, 0x41, 0x42, 0xc9, - 0x09, 0xd9, 0x10, 0x01, 0x43, 0x0c, 0xba, 0xd7, 0x10, 0x01, 0x43, 0x62, - 0x49, 0xe1, 0x10, 0x41, 0xe5, 0xe8, 0x10, 0x01, 0xe8, 0xd6, 0x10, 0x41, - 0x42, 0x4e, 0x00, 0xe3, 0x10, 0x01, 0xe8, 0xe7, 0x10, 0x41, 0x45, 0xc3, - 0x0a, 0xf8, 0x10, 0x01, 0xa6, 0x2e, 0x44, 0x46, 0x2a, 0xf9, 0x10, 0x01, - 0x43, 0xbf, 0x0a, 0xf1, 0x10, 0x01, 0xb3, 0x14, 0xb4, 0x06, 0x44, 0xa1, - 0x1d, 0xf0, 0x10, 0x41, 0x44, 0x25, 0x01, 0xf3, 0x10, 0x01, 0x42, 0x15, - 0x02, 0xf2, 0x10, 0x41, 0x44, 0x27, 0x1d, 0xf7, 0x10, 0x01, 0x42, 0x60, - 0x25, 0xf6, 0x10, 0x41, 0x43, 0xa7, 0x05, 0xf5, 0x10, 0x01, 0x43, 0xcb, - 0x06, 0xf4, 0x10, 0x41, 0x56, 0x2c, 0x24, 0x6a, 0xf6, 0x81, 0x0d, 0x42, - 0xc4, 0x02, 0x2f, 0x00, 0xc0, 0x00, 0x4d, 0x71, 0x7e, 0xf6, 0x29, 0x40, - 0x50, 0xef, 0x10, 0x6b, 0xf6, 0x41, 0x0a, 0xd6, 0x57, 0xda, 0x01, 0x50, - 0x6a, 0x62, 0x45, 0x0f, 0x01, 0x07, 0xc1, 0x05, 0x49, 0x07, 0x2f, 0x39, - 0x29, 0x0c, 0x01, 0x16, 0x01, 0xff, 0x4f, 0xb4, 0x41, 0x57, 0x0f, 0x01, - 0x54, 0xaf, 0x41, 0x59, 0x0f, 0x01, 0x04, 0xd0, 0x09, 0x01, 0xff, 0x51, - 0xb4, 0x57, 0x58, 0x0f, 0x01, 0x4d, 0x65, 0x88, 0x55, 0x0f, 0xc1, 0x00, - 0x4a, 0xbb, 0x57, 0x56, 0x0f, 0x41, 0x43, 0xbf, 0x0a, 0x51, 0x0f, 0x81, - 0x0f, 0xb4, 0x01, 0xff, 0x42, 0x92, 0x01, 0x52, 0x0f, 0x01, 0x45, 0xde, - 0x2b, 0x53, 0x0f, 0x41, 0x48, 0x21, 0x11, 0x54, 0x0f, 0x41, 0xa1, 0x79, - 0x44, 0x0a, 0xec, 0x31, 0x0f, 0x01, 0x44, 0x86, 0xec, 0x43, 0x0f, 0x01, - 0x45, 0xa1, 0xa8, 0x32, 0x0f, 0x01, 0x42, 0xb0, 0x01, 0x33, 0x0f, 0x81, - 0x5a, 0x44, 0x8e, 0xed, 0x38, 0x0f, 0x01, 0xac, 0x46, 0x43, 0x89, 0x05, - 0x3a, 0x0f, 0x01, 0x43, 0x54, 0x22, 0x3b, 0x0f, 0x01, 0x42, 0x6f, 0x02, - 0x3e, 0x0f, 0x01, 0x49, 0xfa, 0x64, 0x40, 0x0f, 0x01, 0xb3, 0x18, 0x43, - 0x1e, 0xc2, 0x42, 0x0f, 0x01, 0x43, 0xc0, 0x88, 0x34, 0x0f, 0x01, 0x44, - 0x58, 0x51, 0x37, 0x0f, 0x01, 0x45, 0x52, 0x51, 0x35, 0x0f, 0x41, 0xa1, - 0x06, 0x43, 0x0e, 0x16, 0x41, 0x0f, 0x41, 0x43, 0x89, 0xe7, 0x3f, 0x0f, - 0x01, 0x44, 0x39, 0xe1, 0x3c, 0x0f, 0x41, 0x45, 0x59, 0xd9, 0x39, 0x0f, - 0x01, 0x43, 0x28, 0x59, 0x44, 0x0f, 0x41, 0x42, 0x53, 0x00, 0x36, 0x0f, - 0x41, 0x44, 0x48, 0x3c, 0x30, 0x0f, 0x01, 0x43, 0xf7, 0x19, 0x3d, 0x0f, - 0x41, 0x06, 0x4c, 0x13, 0x43, 0x04, 0xb4, 0x0b, 0x33, 0x05, 0x60, 0x14, - 0x23, 0x4f, 0x38, 0x6e, 0x4e, 0x0f, 0x01, 0x4a, 0xc9, 0xad, 0x4f, 0x0f, - 0x01, 0x4c, 0x76, 0x0e, 0x50, 0x0f, 0x01, 0x09, 0xa2, 0x0b, 0x01, 0xff, - 0x45, 0x5c, 0x00, 0x49, 0x0f, 0x01, 0x45, 0xf5, 0x06, 0x47, 0x0f, 0x41, - 0x45, 0x5c, 0x00, 0x4c, 0x0f, 0x01, 0x45, 0xf5, 0x06, 0x4d, 0x0f, 0x41, - 0x45, 0x5c, 0x00, 0x48, 0x0f, 0x01, 0x45, 0xf5, 0x06, 0x46, 0x0f, 0x41, - 0x45, 0x5c, 0x00, 0x4a, 0x0f, 0x01, 0x45, 0xf5, 0x06, 0x4b, 0x0f, 0x41, - 0x80, 0x0c, 0x44, 0x46, 0x1c, 0x4e, 0xf9, 0x01, 0x54, 0x6f, 0x45, 0x94, - 0x23, 0x40, 0x46, 0x1a, 0x62, 0xad, 0x00, 0x00, 0x49, 0x93, 0xb7, 0x66, - 0xf3, 0x01, 0x51, 0x81, 0x38, 0xac, 0xf5, 0x41, 0x48, 0x12, 0xc2, 0xbd, - 0x26, 0x00, 0x42, 0x6e, 0x00, 0xe6, 0xf9, 0x41, 0xa1, 0x2a, 0x4b, 0x79, - 0x99, 0x27, 0xf9, 0x01, 0x02, 0xd1, 0x00, 0x01, 0xff, 0x50, 0x9a, 0x5e, - 0xd4, 0xf3, 0x01, 0x47, 0xc2, 0xcc, 0xc2, 0xf3, 0x01, 0x45, 0x0e, 0x2e, - 0x44, 0x27, 0x00, 0x43, 0xd5, 0x17, 0x03, 0x26, 0xc0, 0x00, 0x4d, 0x8b, - 0x7e, 0xc4, 0x26, 0x40, 0x42, 0x62, 0x01, 0x0c, 0xf4, 0x01, 0x42, 0x37, - 0x01, 0x0d, 0xf4, 0x41, 0xa1, 0x86, 0x01, 0xa9, 0x06, 0x4c, 0x02, 0x7b, - 0xac, 0xf6, 0x41, 0xac, 0x06, 0x4a, 0x23, 0xae, 0x0f, 0xf6, 0x41, 0xe5, - 0x23, 0x23, 0x00, 0x04, 0xa1, 0x01, 0x01, 0xff, 0x0e, 0xc0, 0x1e, 0x5d, - 0x0a, 0xe1, 0x07, 0x01, 0xff, 0xa8, 0x44, 0x4a, 0x9b, 0x28, 0x03, 0xf6, - 0x81, 0x26, 0xb3, 0x06, 0x44, 0xd3, 0x0c, 0x72, 0xf9, 0x41, 0x4b, 0xcf, - 0x1e, 0x0a, 0xf6, 0x81, 0x06, 0x49, 0xcc, 0xbd, 0x0e, 0xf6, 0x41, 0x05, - 0x19, 0x00, 0x01, 0xff, 0x53, 0x81, 0x48, 0x2d, 0xf9, 0x01, 0x4c, 0x09, - 0x94, 0x70, 0xf9, 0x41, 0x05, 0x19, 0x00, 0x01, 0xff, 0x4a, 0x74, 0x74, - 0x05, 0xf6, 0x01, 0x4c, 0xce, 0x1e, 0x04, 0xf6, 0x01, 0x53, 0x4a, 0x4c, - 0x06, 0xf6, 0x41, 0x43, 0x78, 0x4c, 0x07, 0xf6, 0x01, 0x50, 0x1a, 0x59, - 0x0d, 0xf6, 0x01, 0x44, 0x2c, 0x7e, 0x08, 0xf6, 0x41, 0x51, 0x19, 0x59, - 0x3b, 0xf6, 0x01, 0x4a, 0x9b, 0x28, 0x3a, 0xf6, 0x41, 0x02, 0x0f, 0x07, - 0x06, 0x4a, 0xe0, 0x4d, 0x33, 0x2a, 0x40, 0x80, 0x0d, 0x47, 0x04, 0xce, - 0xaa, 0x2a, 0xc0, 0x00, 0x4c, 0x51, 0x28, 0xac, 0x2a, 0x40, 0xa1, 0xfc, - 0x02, 0x4c, 0x15, 0x8b, 0x39, 0xf5, 0x01, 0x02, 0xe8, 0x04, 0xc1, 0x02, - 0x4b, 0xf5, 0x98, 0x69, 0xfe, 0x00, 0xa5, 0x8e, 0x02, 0x49, 0x15, 0x16, - 0x52, 0xfe, 0x00, 0x51, 0xf7, 0x58, 0x65, 0xfe, 0x00, 0x4c, 0x15, 0x8e, - 0x63, 0xfe, 0x00, 0x51, 0x7f, 0x59, 0x51, 0xfe, 0x00, 0x02, 0x68, 0x00, - 0xd5, 0x01, 0x4b, 0x12, 0x9e, 0x5f, 0xfe, 0x00, 0x4e, 0x24, 0x79, 0x38, - 0xf5, 0x01, 0xb0, 0xba, 0x01, 0x4d, 0xd6, 0x33, 0x56, 0xfe, 0x00, 0xb2, - 0x20, 0x49, 0xac, 0xbc, 0x54, 0xfe, 0x00, 0xb4, 0x0c, 0x54, 0x33, 0x45, - 0xfa, 0xcd, 0x01, 0x51, 0xbf, 0x5d, 0x61, 0x2a, 0x40, 0x44, 0xae, 0x22, - 0xdc, 0x02, 0x00, 0x60, 0xa3, 0x0b, 0x3b, 0x0b, 0x41, 0x4e, 0xcd, 0x70, - 0x68, 0xfe, 0x00, 0x05, 0xc9, 0x00, 0x76, 0x0d, 0x18, 0x85, 0x01, 0xff, - 0xa5, 0x63, 0xa6, 0x46, 0x44, 0x46, 0x2a, 0x78, 0x21, 0x00, 0x43, 0xbf, - 0x0a, 0x70, 0x21, 0x80, 0x2a, 0xb3, 0x1c, 0xb4, 0x01, 0xff, 0x42, 0x92, - 0x01, 0x79, 0x21, 0x00, 0x44, 0x25, 0x01, 0x72, 0x21, 0x00, 0xb7, 0x01, - 0xff, 0x44, 0x46, 0x2b, 0x7b, 0x21, 0x00, 0xef, 0x71, 0x21, 0x40, 0x44, - 0x27, 0x1d, 0x76, 0x21, 0x00, 0x42, 0x60, 0x25, 0x75, 0x21, 0x40, 0x80, - 0x01, 0xff, 0x47, 0x22, 0x11, 0x7d, 0x21, 0x00, 0x48, 0xd5, 0x5c, 0x7f, - 0x21, 0x40, 0xa9, 0x06, 0x43, 0xcb, 0x06, 0x73, 0x21, 0x40, 0x43, 0x09, - 0x4c, 0x7c, 0x21, 0x00, 0x42, 0x32, 0x00, 0x74, 0x21, 0xc0, 0x00, 0x48, - 0x21, 0x11, 0x7e, 0x21, 0x40, 0x44, 0xc9, 0x00, 0x77, 0x21, 0x00, 0x45, - 0x0b, 0x6e, 0x7a, 0x21, 0x40, 0x4d, 0x23, 0x0b, 0x5c, 0xfe, 0x00, 0x4b, - 0x50, 0x21, 0x5a, 0xfe, 0x00, 0x56, 0x05, 0x09, 0x5e, 0xfe, 0x40, 0x4b, - 0xc6, 0x99, 0x6a, 0xfe, 0x00, 0x48, 0x46, 0x70, 0x62, 0xfe, 0x40, 0x03, - 0xc5, 0x00, 0x06, 0x4c, 0x9d, 0x93, 0x64, 0xfe, 0x40, 0x4d, 0x23, 0x0b, - 0x5b, 0xfe, 0x00, 0x4b, 0x50, 0x21, 0x59, 0xfe, 0x00, 0x56, 0x05, 0x09, - 0x5d, 0xfe, 0x40, 0x49, 0xa0, 0x90, 0x0a, 0x22, 0x80, 0x12, 0x46, 0x3c, - 0xc0, 0x58, 0xfe, 0x00, 0x4a, 0xfa, 0x12, 0x66, 0xfe, 0x00, 0x4f, 0xae, - 0x00, 0x57, 0xfe, 0x40, 0x06, 0x50, 0x00, 0x01, 0xff, 0x47, 0x77, 0x7e, - 0xf7, 0x22, 0x00, 0x68, 0x05, 0x05, 0xf4, 0x22, 0x40, 0x43, 0x03, 0x12, - 0x55, 0xfe, 0x00, 0x02, 0xea, 0x04, 0x1c, 0x07, 0xfc, 0x67, 0x01, 0xff, - 0x49, 0x06, 0xb4, 0x0d, 0x22, 0x00, 0x05, 0x51, 0x00, 0x01, 0xff, 0x47, - 0x77, 0x7e, 0xfe, 0x22, 0x00, 0x68, 0x05, 0x05, 0xfc, 0x22, 0x40, 0xe1, - 0x50, 0xfe, 0x00, 0x49, 0x34, 0xb6, 0x6b, 0xfe, 0x40, 0x47, 0x42, 0x33, - 0xe9, 0xf6, 0x01, 0x48, 0x2e, 0x3d, 0x60, 0xfe, 0x00, 0x47, 0xee, 0x0c, - 0x61, 0xfe, 0x40, 0xa1, 0x6c, 0xa5, 0x40, 0xa9, 0x27, 0xaf, 0x01, 0xff, - 0xb0, 0x0d, 0xb4, 0x01, 0xff, 0x48, 0x36, 0x47, 0xb0, 0xf3, 0x01, 0xe8, - 0xa5, 0xf9, 0x41, 0xe5, 0x33, 0x23, 0x00, 0x0a, 0x91, 0xa9, 0x01, 0xff, - 0x43, 0x1a, 0x00, 0x58, 0x2a, 0x00, 0x42, 0x0c, 0x00, 0x57, 0x2a, 0x40, - 0x4b, 0xed, 0x97, 0x55, 0xf3, 0x01, 0x06, 0x2a, 0x78, 0x01, 0xff, 0x4d, - 0x7d, 0x81, 0x41, 0xf6, 0x01, 0x4c, 0x91, 0x93, 0x42, 0xf6, 0x41, 0xe4, - 0xf7, 0xf6, 0x01, 0x02, 0x9c, 0x0a, 0x06, 0x4a, 0xd5, 0xb0, 0x75, 0xf5, - 0x41, 0x04, 0xa1, 0x01, 0x06, 0x46, 0xb2, 0xd2, 0x2a, 0xf6, 0x41, 0x4d, - 0xcc, 0x7e, 0xcc, 0xf6, 0x01, 0x44, 0xe1, 0x07, 0x34, 0xf6, 0x01, 0x46, - 0xeb, 0x07, 0xa4, 0xf4, 0x41, 0x05, 0x76, 0x00, 0x06, 0x4e, 0x22, 0x7d, - 0x73, 0xa6, 0x40, 0x0c, 0xe5, 0x27, 0x11, 0x13, 0x6f, 0x4a, 0x01, 0xff, - 0x49, 0x87, 0xba, 0x5a, 0x2b, 0x00, 0x4d, 0x36, 0x86, 0x5c, 0x2b, 0x40, - 0x4c, 0x87, 0x00, 0x96, 0x2a, 0x80, 0x0d, 0x49, 0xec, 0x00, 0x95, 0x2a, - 0xc0, 0x00, 0x50, 0x2a, 0x5f, 0x97, 0x2a, 0x40, 0x50, 0x2a, 0x5f, 0x98, - 0x2a, 0x40, 0x48, 0x3a, 0xc1, 0xf9, 0xf6, 0x01, 0xa9, 0x16, 0xb5, 0x01, - 0xff, 0x42, 0x0f, 0x07, 0x80, 0xf4, 0x81, 0x06, 0x42, 0x12, 0x25, 0xa8, - 0xf9, 0x41, 0x4f, 0x7c, 0x49, 0x20, 0x26, 0x40, 0x4d, 0xae, 0x7d, 0xbf, - 0xf3, 0x01, 0x42, 0x33, 0x00, 0xf7, 0x26, 0x40, 0xa4, 0xbc, 0x31, 0x02, - 0x31, 0x03, 0xf0, 0x07, 0x51, 0x5c, 0x5a, 0xfe, 0xf5, 0x01, 0x06, 0x24, - 0xcf, 0xbe, 0x07, 0xae, 0x30, 0xb8, 0x01, 0xff, 0x02, 0x9b, 0x01, 0x0c, - 0x4d, 0xbf, 0x7e, 0x06, 0x20, 0x00, 0x55, 0x69, 0x3d, 0x3a, 0x27, 0x40, - 0x60, 0x45, 0x0f, 0x3e, 0x27, 0x00, 0x07, 0x09, 0x08, 0x01, 0xff, 0x4a, - 0x53, 0x2b, 0x36, 0x27, 0x00, 0x4d, 0xd9, 0x12, 0xcd, 0xf7, 0x01, 0x54, - 0xcf, 0x44, 0x2f, 0xf5, 0x41, 0x46, 0x26, 0xd8, 0x3f, 0x22, 0x00, 0x03, - 0x06, 0x02, 0xc1, 0x06, 0x05, 0xc2, 0xe3, 0x01, 0xff, 0x08, 0x27, 0x7f, - 0xa4, 0x05, 0xac, 0xae, 0x01, 0x56, 0x9b, 0x35, 0xf4, 0x0d, 0x00, 0x05, - 0x2f, 0x03, 0x89, 0x01, 0x0b, 0xd1, 0x75, 0x01, 0xff, 0x4a, 0x8c, 0x6a, - 0xcf, 0x0d, 0x00, 0x05, 0x87, 0x6a, 0x52, 0x02, 0x24, 0x02, 0x42, 0xab, - 0x01, 0xff, 0x05, 0x6a, 0xb6, 0x29, 0x04, 0x9b, 0xcf, 0x01, 0xff, 0x45, - 0x9a, 0xde, 0xdb, 0x0d, 0x00, 0x42, 0xa6, 0x0a, 0xd9, 0x0d, 0xc0, 0x00, - 0x05, 0xa9, 0xde, 0x01, 0xff, 0x4a, 0x8c, 0x6a, 0xdc, 0x0d, 0x00, 0x4f, - 0x87, 0x6a, 0xdd, 0x0d, 0x00, 0x4b, 0x29, 0x9a, 0xde, 0x0d, 0x40, 0x4a, - 0x3b, 0xa5, 0xd0, 0x0d, 0x00, 0x48, 0xa2, 0xc4, 0xd2, 0x0d, 0x00, 0x49, - 0x71, 0xbb, 0xd4, 0x0d, 0x40, 0x4a, 0xe3, 0xa7, 0xd8, 0x0d, 0x00, 0x49, - 0x2b, 0x9a, 0xdf, 0x0d, 0x40, 0x4a, 0x3b, 0xa5, 0xd1, 0x0d, 0x00, 0x02, - 0x24, 0x02, 0x12, 0x48, 0xa2, 0xc4, 0xd3, 0x0d, 0x00, 0x47, 0x9a, 0xcf, - 0xda, 0x0d, 0x00, 0x49, 0x71, 0xbb, 0xd6, 0x0d, 0x40, 0x4a, 0xe3, 0xa7, - 0xf2, 0x0d, 0x00, 0x49, 0x2b, 0x9a, 0xf3, 0x0d, 0x40, 0xa1, 0x0c, 0x4b, - 0x4f, 0x23, 0x81, 0x0d, 0x00, 0x49, 0x92, 0xbe, 0x83, 0x0d, 0x40, 0x48, - 0xea, 0xc4, 0xca, 0x0d, 0x00, 0x49, 0x5a, 0xba, 0x82, 0x0d, 0x40, 0x06, - 0xc2, 0x05, 0x47, 0x0a, 0xd7, 0xa9, 0x01, 0xff, 0x45, 0xc3, 0x0a, 0xee, - 0x0d, 0x00, 0xa6, 0x2e, 0x44, 0x46, 0x2a, 0xef, 0x0d, 0x00, 0x43, 0xbf, - 0x0a, 0xe7, 0x0d, 0x00, 0xb3, 0x14, 0xb4, 0x06, 0x44, 0xa1, 0x1d, 0xe6, - 0x0d, 0x40, 0x44, 0x25, 0x01, 0xe9, 0x0d, 0x00, 0x42, 0x15, 0x02, 0xe8, - 0x0d, 0x40, 0x44, 0x27, 0x1d, 0xed, 0x0d, 0x00, 0x42, 0x60, 0x25, 0xec, - 0x0d, 0x40, 0x43, 0xa7, 0x05, 0xeb, 0x0d, 0x00, 0x43, 0xcb, 0x06, 0xea, - 0x0d, 0x40, 0xa1, 0xb4, 0x02, 0x08, 0x7a, 0xc2, 0x9d, 0x02, 0xa5, 0x8e, - 0x02, 0x47, 0x3c, 0xce, 0xc6, 0x0d, 0x00, 0x47, 0xa5, 0xce, 0xc4, 0x0d, - 0x00, 0xa9, 0xd3, 0x01, 0x52, 0xda, 0x51, 0x9e, 0x0d, 0x00, 0xad, 0x67, - 0xaf, 0x59, 0x47, 0x5d, 0xd2, 0xbb, 0x0d, 0x00, 0x08, 0xfa, 0xc7, 0x35, - 0x08, 0xa2, 0xc8, 0x1a, 0xb5, 0x0c, 0x47, 0x5c, 0xd4, 0xc0, 0x0d, 0x00, - 0x47, 0xfd, 0xd4, 0xba, 0x0d, 0x40, 0x46, 0x02, 0xde, 0x8c, 0x0d, 0x00, - 0x45, 0xdd, 0x67, 0x8b, 0x0d, 0x40, 0x4a, 0xe2, 0x51, 0xa4, 0x0d, 0x00, - 0x02, 0x15, 0x06, 0x01, 0xff, 0x52, 0xc4, 0x52, 0xa5, 0x0d, 0x00, 0x45, - 0xdd, 0x67, 0xc1, 0x0d, 0x40, 0xa4, 0x0c, 0x47, 0x5f, 0xce, 0x9f, 0x0d, - 0x00, 0x47, 0x5b, 0xcf, 0xa6, 0x0d, 0x40, 0x46, 0x25, 0x9d, 0xb3, 0x0d, - 0x00, 0x47, 0x71, 0xcd, 0xac, 0x0d, 0x40, 0x46, 0xdc, 0x67, 0x95, 0x0d, - 0x00, 0x45, 0xdd, 0x67, 0x94, 0x0d, 0x40, 0xa1, 0x17, 0x09, 0x38, 0xbe, - 0x01, 0xff, 0x47, 0xe7, 0xcf, 0xc5, 0x0d, 0x00, 0x47, 0x9d, 0xd0, 0xab, - 0x0d, 0x00, 0x47, 0xdb, 0xd2, 0xc2, 0x0d, 0x40, 0x0a, 0xc9, 0xa8, 0x06, - 0x45, 0xdd, 0x67, 0xb8, 0x0d, 0x40, 0x47, 0x24, 0x9d, 0xb7, 0x0d, 0x00, - 0x47, 0x01, 0xcd, 0xa1, 0x0d, 0x00, 0xa4, 0x27, 0x47, 0x5f, 0xce, 0x9d, - 0x0d, 0x00, 0x47, 0x5b, 0xcf, 0xa3, 0x0d, 0x00, 0x47, 0x7e, 0xcf, 0x9b, - 0x0d, 0x00, 0x47, 0xbc, 0xd1, 0xb5, 0x0d, 0x00, 0xb4, 0x01, 0xff, 0x46, - 0x25, 0x9d, 0xae, 0x0d, 0x00, 0x47, 0x6e, 0xd3, 0xa8, 0x0d, 0x40, 0x46, - 0x25, 0x9d, 0xb0, 0x0d, 0x00, 0x47, 0x71, 0xcd, 0xaa, 0x0d, 0x40, 0x46, - 0x54, 0xda, 0x8a, 0x0d, 0x00, 0x02, 0x5b, 0x15, 0x16, 0x02, 0x3d, 0x00, - 0x06, 0x45, 0xdd, 0x67, 0x89, 0x0d, 0x40, 0x46, 0x02, 0xde, 0x8e, 0x0d, - 0x00, 0x45, 0xdd, 0x67, 0x8d, 0x0d, 0x40, 0x46, 0x02, 0xde, 0x90, 0x0d, - 0x00, 0x45, 0xdd, 0x67, 0x8f, 0x0d, 0x40, 0x46, 0xb6, 0xd8, 0x92, 0x0d, - 0x00, 0x45, 0xdd, 0x67, 0x91, 0x0d, 0x40, 0x47, 0xe7, 0xcf, 0xbd, 0x0d, - 0x00, 0x47, 0x9d, 0xd0, 0xb1, 0x0d, 0x00, 0x47, 0xdb, 0xd2, 0xc3, 0x0d, - 0x40, 0x46, 0x25, 0x9d, 0x86, 0x0d, 0x00, 0xa5, 0x5d, 0x46, 0x54, 0xda, - 0x93, 0x0d, 0x00, 0x0a, 0x21, 0xab, 0x12, 0x4b, 0x20, 0x9d, 0xb9, 0x0d, - 0x00, 0x46, 0x02, 0xde, 0x96, 0x0d, 0x00, 0x45, 0xdd, 0x67, 0x85, 0x0d, - 0x40, 0x47, 0x24, 0x9d, 0xb6, 0x0d, 0x00, 0x47, 0x01, 0xcd, 0xa0, 0x0d, - 0x00, 0xa4, 0x27, 0x47, 0x5f, 0xce, 0x9c, 0x0d, 0x00, 0x47, 0x5b, 0xcf, - 0xa2, 0x0d, 0x00, 0x47, 0x7e, 0xcf, 0x9a, 0x0d, 0x00, 0x47, 0xbc, 0xd1, - 0xb4, 0x0d, 0x00, 0xb4, 0x01, 0xff, 0x46, 0x25, 0x9d, 0xad, 0x0d, 0x00, - 0x47, 0x6e, 0xd3, 0xa7, 0x0d, 0x40, 0x46, 0x25, 0x9d, 0xaf, 0x0d, 0x00, - 0x47, 0x71, 0xcd, 0xa9, 0x0d, 0x40, 0x46, 0xb6, 0xd8, 0x88, 0x0d, 0x00, - 0x45, 0xdd, 0x67, 0x87, 0x0d, 0x40, 0x06, 0xc4, 0x06, 0x52, 0x07, 0x2f, - 0x39, 0x01, 0xff, 0x46, 0x44, 0xd8, 0xf1, 0x11, 0x01, 0xa6, 0x39, 0x46, - 0x0b, 0x2c, 0xf2, 0x11, 0x01, 0x04, 0xbf, 0x0a, 0x23, 0xb3, 0x15, 0xb4, - 0x01, 0xff, 0x42, 0x92, 0x01, 0xea, 0x11, 0x01, 0x45, 0x2b, 0x11, 0xec, - 0x11, 0x01, 0x45, 0xde, 0x2b, 0xeb, 0x11, 0x41, 0x46, 0x27, 0x1d, 0xf0, - 0x11, 0x01, 0x44, 0x4e, 0xda, 0xef, 0x11, 0x41, 0x47, 0x22, 0x11, 0xf3, - 0x11, 0x01, 0x48, 0xd5, 0x5c, 0xf4, 0x11, 0x41, 0x44, 0x08, 0x4c, 0xee, - 0x11, 0x01, 0x44, 0x85, 0x50, 0xed, 0x11, 0x41, 0x45, 0xc3, 0x0a, 0xe8, - 0x11, 0x01, 0xa6, 0x29, 0x44, 0x46, 0x2a, 0xe9, 0x11, 0x01, 0x43, 0xbf, - 0x0a, 0xe1, 0x11, 0x01, 0xb3, 0x0f, 0xb4, 0x01, 0xff, 0x44, 0x25, 0x01, - 0xe3, 0x11, 0x01, 0x42, 0x15, 0x02, 0xe2, 0x11, 0x41, 0x44, 0x27, 0x1d, - 0xe7, 0x11, 0x01, 0x42, 0x60, 0x25, 0xe6, 0x11, 0x41, 0x43, 0xa7, 0x05, - 0xe5, 0x11, 0x01, 0x43, 0xcb, 0x06, 0xe4, 0x11, 0x41, 0x80, 0x0d, 0x07, - 0x10, 0xcb, 0x01, 0xff, 0xd2, 0x8e, 0x00, 0x00, 0xd3, 0x8f, 0x00, 0x40, - 0x54, 0x0b, 0x40, 0x9a, 0x00, 0x00, 0x5e, 0x04, 0x13, 0x1b, 0x20, 0x00, - 0xac, 0x17, 0x63, 0x38, 0x0b, 0x3a, 0x20, 0x00, 0x07, 0xfe, 0xd2, 0x01, - 0xff, 0x44, 0x25, 0x01, 0x8f, 0x00, 0x00, 0x42, 0x15, 0x02, 0x8e, 0x00, - 0x40, 0x61, 0x9b, 0x0d, 0x39, 0x20, 0x00, 0x53, 0xbb, 0x4a, 0x1a, 0x20, - 0x40, 0x06, 0x5c, 0x00, 0x17, 0x4d, 0x48, 0x84, 0x6c, 0x2a, 0x00, 0x03, - 0x9d, 0x07, 0x01, 0xff, 0x4c, 0x87, 0x00, 0x9e, 0x2a, 0x00, 0x49, 0xec, - 0x00, 0x9d, 0x2a, 0x40, 0x5e, 0xe6, 0x12, 0xa0, 0x2a, 0x00, 0x5b, 0xbb, - 0x1b, 0x9f, 0x2a, 0x40, 0x4d, 0x23, 0x7e, 0x18, 0xf9, 0x01, 0x08, 0xe2, - 0xc9, 0x01, 0xff, 0x04, 0x83, 0x8b, 0x96, 0x29, 0x02, 0x14, 0x09, 0xea, - 0x28, 0xa3, 0xc2, 0x28, 0xa4, 0xd7, 0x27, 0xa5, 0xf8, 0x25, 0xa6, 0xec, - 0x24, 0x06, 0x3a, 0xd9, 0xd5, 0x24, 0xa8, 0xc7, 0x14, 0xac, 0xc2, 0x13, - 0x02, 0x98, 0x07, 0x8c, 0x06, 0xae, 0xe3, 0x05, 0x4b, 0x50, 0x21, 0x8b, - 0xda, 0x01, 0xb2, 0xdf, 0x03, 0xb3, 0xe1, 0x02, 0xb4, 0x0c, 0x62, 0xf5, - 0x0c, 0x75, 0xda, 0x01, 0x5b, 0x6b, 0x1d, 0x6f, 0xda, 0x41, 0xa5, 0x84, - 0x02, 0xaf, 0x92, 0x01, 0x06, 0x70, 0xdc, 0x01, 0xff, 0x0b, 0x35, 0x48, - 0x52, 0x0a, 0x6b, 0x1d, 0x01, 0xff, 0x0b, 0x1c, 0x97, 0x37, 0x09, 0x6d, - 0xbc, 0x06, 0x47, 0xf7, 0xd2, 0x51, 0xd9, 0x41, 0x0b, 0x35, 0x48, 0x17, - 0x0a, 0x6b, 0x1d, 0x01, 0xff, 0x4b, 0xa8, 0x58, 0x4d, 0xd9, 0x01, 0x46, - 0x3b, 0x01, 0x4c, 0xd9, 0x01, 0x46, 0x90, 0x09, 0x4b, 0xd9, 0x41, 0x4b, - 0xa8, 0x58, 0x50, 0xd9, 0x01, 0x46, 0x3b, 0x01, 0x4f, 0xd9, 0x01, 0x46, - 0x90, 0x09, 0x4e, 0xd9, 0x41, 0x46, 0x3b, 0x01, 0x53, 0xd9, 0x01, 0x46, - 0x90, 0x09, 0x52, 0xd9, 0x01, 0x46, 0xc8, 0x1c, 0x54, 0xd9, 0x41, 0x09, - 0x6d, 0xbc, 0x06, 0x47, 0xf7, 0xd2, 0x87, 0xd9, 0x41, 0x0b, 0x35, 0x48, - 0x17, 0x0a, 0x6b, 0x1d, 0x01, 0xff, 0x4b, 0xa8, 0x58, 0x86, 0xd9, 0x01, - 0x46, 0x3b, 0x01, 0x85, 0xd9, 0x01, 0x46, 0x90, 0x09, 0x84, 0xd9, 0x41, - 0x4b, 0xa8, 0x58, 0x83, 0xd9, 0x01, 0x46, 0x3b, 0x01, 0x82, 0xd9, 0x01, - 0x46, 0x90, 0x09, 0x81, 0xd9, 0x41, 0x05, 0xf7, 0xe5, 0x32, 0x04, 0x1a, - 0xef, 0x17, 0x04, 0xb7, 0xe5, 0x01, 0xff, 0x47, 0x71, 0x09, 0x07, 0xd9, - 0x01, 0x48, 0x53, 0x43, 0x06, 0xd9, 0x01, 0x46, 0x90, 0x09, 0x05, 0xd9, - 0x41, 0x53, 0x35, 0x48, 0x74, 0xda, 0x01, 0x0a, 0x6b, 0x1d, 0x01, 0xff, - 0x4b, 0x9d, 0x98, 0x73, 0xda, 0x01, 0x50, 0x0a, 0x66, 0x72, 0xda, 0x41, - 0x07, 0x73, 0x02, 0x29, 0x54, 0x4f, 0x42, 0x5d, 0xda, 0x01, 0x4c, 0x71, - 0x8f, 0x5a, 0xda, 0x01, 0x53, 0xea, 0x49, 0x5e, 0xda, 0x01, 0x50, 0xfa, - 0x65, 0x59, 0xda, 0x01, 0x04, 0xfa, 0x0b, 0x01, 0xff, 0x4c, 0xf1, 0x8a, - 0x5b, 0xda, 0x01, 0x55, 0xa8, 0x3d, 0x5c, 0xda, 0x41, 0x4c, 0xb1, 0x3d, - 0x60, 0xda, 0x01, 0x4c, 0xfa, 0x65, 0x5f, 0xda, 0x41, 0x43, 0x39, 0x25, - 0x61, 0xda, 0x81, 0x17, 0x0b, 0xfc, 0x9d, 0x01, 0xff, 0x44, 0xf9, 0x0a, - 0x2d, 0xda, 0x01, 0x43, 0x13, 0x01, 0x2f, 0xda, 0x01, 0x46, 0x7d, 0x02, - 0x2e, 0xda, 0x41, 0x80, 0x01, 0xff, 0x49, 0x60, 0xb4, 0x67, 0xda, 0x01, - 0x48, 0xa7, 0x5c, 0x62, 0xda, 0x01, 0x03, 0xb6, 0x00, 0x01, 0xff, 0x44, - 0xdf, 0x1a, 0x65, 0xda, 0x81, 0x0d, 0x46, 0x34, 0x66, 0x63, 0xda, 0xc1, - 0x00, 0x49, 0xa6, 0x5c, 0x64, 0xda, 0x41, 0x49, 0xa6, 0x5c, 0x66, 0xda, - 0x41, 0x48, 0x6f, 0x58, 0x89, 0xda, 0x01, 0x08, 0x76, 0x1d, 0x5b, 0x07, - 0x33, 0xd2, 0x27, 0x06, 0xa8, 0xdd, 0x11, 0x07, 0x24, 0xd4, 0x01, 0xff, - 0x47, 0x71, 0x09, 0x15, 0xd9, 0x01, 0x47, 0xeb, 0x07, 0x14, 0xd9, 0x41, - 0x47, 0x71, 0x09, 0x0d, 0xd9, 0x01, 0x48, 0x53, 0x43, 0x0c, 0xd9, 0x01, - 0x46, 0x90, 0x09, 0x0b, 0xd9, 0x41, 0x51, 0xa2, 0x58, 0x20, 0xd9, 0x01, - 0x06, 0xa0, 0x1b, 0x1a, 0xb3, 0x01, 0xff, 0x49, 0xba, 0x6a, 0x1a, 0xd9, - 0x01, 0x05, 0x0d, 0x07, 0x01, 0xff, 0x48, 0x53, 0x43, 0x19, 0xd9, 0x01, - 0x46, 0x90, 0x09, 0x17, 0xd9, 0x41, 0x48, 0x53, 0x43, 0x18, 0xd9, 0x01, - 0x46, 0x90, 0x09, 0x16, 0xd9, 0x41, 0x04, 0x0d, 0x0d, 0x06, 0x52, 0x62, - 0x54, 0x71, 0xda, 0x41, 0x49, 0xb0, 0xbb, 0x6e, 0xda, 0x01, 0x45, 0xe6, - 0xe7, 0x6d, 0xda, 0x41, 0x07, 0xf0, 0x04, 0x17, 0x03, 0x2d, 0x4c, 0x01, - 0xff, 0x47, 0x71, 0x09, 0x13, 0xd9, 0x01, 0x48, 0x53, 0x43, 0x12, 0xd9, - 0x01, 0x46, 0x90, 0x09, 0x11, 0xd9, 0x41, 0x0a, 0xa3, 0x8f, 0x9d, 0x01, - 0x8d, 0x01, 0xff, 0x0b, 0x35, 0x48, 0x4e, 0x0a, 0x6b, 0x1d, 0x01, 0xff, - 0x08, 0xa2, 0x11, 0x30, 0x46, 0x3b, 0x01, 0xa3, 0xd9, 0x81, 0x18, 0x46, - 0x90, 0x09, 0xa2, 0xd9, 0xc1, 0x00, 0x09, 0x92, 0x25, 0x01, 0xff, 0x45, - 0x19, 0xe2, 0xb1, 0xd9, 0x01, 0x4a, 0x3d, 0xa8, 0xaa, 0xd9, 0x41, 0x09, - 0x92, 0x25, 0x01, 0xff, 0x45, 0x19, 0xe2, 0xb2, 0xd9, 0x01, 0x4a, 0x3d, - 0xa8, 0xab, 0xd9, 0x41, 0xe5, 0xa4, 0xd9, 0x01, 0x0c, 0x75, 0x8e, 0x01, - 0xff, 0x45, 0x19, 0xe2, 0xb3, 0xd9, 0x01, 0x4a, 0x3d, 0xa8, 0xac, 0xd9, - 0x41, 0x4b, 0xa8, 0x58, 0xe1, 0xd9, 0x81, 0x30, 0x46, 0x3b, 0x01, 0xe0, - 0xd9, 0x81, 0x18, 0x46, 0x90, 0x09, 0xdf, 0xd9, 0xc1, 0x00, 0x09, 0x92, - 0x25, 0x01, 0xff, 0x47, 0x0a, 0xc2, 0xc3, 0xd9, 0x01, 0x45, 0xd0, 0x23, - 0xd2, 0xd9, 0x41, 0x09, 0x92, 0x25, 0x01, 0xff, 0x47, 0x0a, 0xc2, 0xc4, - 0xd9, 0x01, 0x45, 0xd0, 0x23, 0xd3, 0xd9, 0x41, 0x09, 0x92, 0x25, 0x01, - 0xff, 0x47, 0x0a, 0xc2, 0xc5, 0xd9, 0x01, 0x45, 0xd0, 0x23, 0xd4, 0xd9, - 0x41, 0x91, 0x20, 0xd2, 0xa1, 0xda, 0x01, 0xd3, 0xa2, 0xda, 0x01, 0xd4, - 0xa3, 0xda, 0x01, 0xd5, 0xa4, 0xda, 0x01, 0xd6, 0xa5, 0xda, 0x01, 0xd7, - 0xa6, 0xda, 0x01, 0xd8, 0xa7, 0xda, 0x01, 0xd9, 0xa8, 0xda, 0x41, 0xd0, - 0xa9, 0xda, 0x01, 0xd1, 0xaa, 0xda, 0x01, 0xd2, 0xab, 0xda, 0x01, 0xd3, - 0xac, 0xda, 0x01, 0xd4, 0xad, 0xda, 0x01, 0xd5, 0xae, 0xda, 0x01, 0xd6, - 0xaf, 0xda, 0x41, 0x43, 0x20, 0x14, 0x6a, 0xda, 0x01, 0x04, 0xaa, 0x16, - 0x01, 0xff, 0x47, 0x40, 0xcd, 0x32, 0xda, 0x01, 0x47, 0x8e, 0x8c, 0x31, - 0xda, 0x01, 0xb7, 0x01, 0xff, 0x46, 0xd6, 0xd9, 0x34, 0xda, 0x01, 0x47, - 0xdb, 0xbe, 0x33, 0xda, 0x41, 0x04, 0x01, 0x20, 0xe1, 0x0b, 0x07, 0x6a, - 0xd4, 0x01, 0xff, 0x09, 0x42, 0x25, 0xdd, 0x0a, 0x0b, 0x35, 0x48, 0xd5, - 0x05, 0x06, 0x8e, 0xd9, 0x99, 0x05, 0x0a, 0x6b, 0x1d, 0x01, 0xff, 0x0b, - 0x7d, 0x26, 0xee, 0x04, 0xa2, 0xbe, 0x04, 0xa3, 0x80, 0x03, 0x07, 0x3b, - 0x01, 0xe2, 0x02, 0x08, 0xc8, 0x1a, 0xc7, 0x02, 0x05, 0x17, 0xe4, 0xa0, - 0x02, 0x43, 0x20, 0x98, 0x68, 0xda, 0x01, 0x05, 0x25, 0xe5, 0xec, 0x01, - 0x06, 0x0a, 0xdc, 0xd5, 0x01, 0xb3, 0xa4, 0x01, 0x07, 0xc8, 0x1c, 0x86, - 0x01, 0xb7, 0x17, 0x07, 0x11, 0x33, 0x01, 0xff, 0x45, 0xa0, 0x1b, 0x47, - 0xd9, 0x01, 0x46, 0x19, 0x04, 0x46, 0xd9, 0x01, 0x45, 0x0c, 0x07, 0x45, - 0xd9, 0x41, 0x04, 0x8f, 0x22, 0x11, 0x12, 0x8a, 0x53, 0x01, 0xff, 0x46, - 0x3b, 0x01, 0xee, 0xd9, 0x01, 0x46, 0x90, 0x09, 0xed, 0xd9, 0x41, 0x06, - 0x4c, 0x13, 0x27, 0x0e, 0x6c, 0x75, 0x11, 0x08, 0x93, 0x25, 0x01, 0xff, - 0x45, 0x19, 0xe2, 0xb0, 0xd9, 0x01, 0x4a, 0x3d, 0xa8, 0xa9, 0xd9, 0x41, - 0x45, 0xa0, 0x1b, 0xb6, 0xd9, 0x01, 0x46, 0x19, 0x04, 0xb5, 0xd9, 0x01, - 0x45, 0x0c, 0x07, 0xb4, 0xd9, 0x41, 0x07, 0x3b, 0x01, 0x17, 0x07, 0xc8, - 0x1c, 0x01, 0xff, 0x45, 0xa0, 0x1b, 0x9e, 0xd9, 0x01, 0x46, 0x19, 0x04, - 0x9d, 0xd9, 0x01, 0x45, 0x0c, 0x07, 0x9c, 0xd9, 0x41, 0x45, 0xa0, 0x1b, - 0x9b, 0xd9, 0x01, 0x46, 0x19, 0x04, 0x9a, 0xd9, 0x01, 0x45, 0x0c, 0x07, - 0x99, 0xd9, 0x41, 0x4b, 0xa8, 0x58, 0x36, 0xd9, 0x81, 0x0c, 0x51, 0x9e, - 0x5c, 0x34, 0xd9, 0x01, 0x4a, 0x57, 0x96, 0x35, 0xd9, 0x41, 0x4b, 0x56, - 0x96, 0x37, 0xd9, 0x41, 0x46, 0x1c, 0x6c, 0xa5, 0xd9, 0x01, 0x06, 0x91, - 0x09, 0x01, 0xff, 0x09, 0xeb, 0x4b, 0x06, 0x4a, 0x57, 0x96, 0x2e, 0xd9, - 0x41, 0x45, 0xa0, 0x1b, 0x2c, 0xd9, 0x81, 0x0c, 0x46, 0x19, 0x04, 0x2b, - 0xd9, 0x01, 0x45, 0x0c, 0x07, 0x2a, 0xd9, 0x41, 0x42, 0x60, 0x01, 0x2d, - 0xd9, 0x41, 0x45, 0xa0, 0x1b, 0x4a, 0xd9, 0x01, 0x46, 0x19, 0x04, 0x49, - 0xd9, 0x01, 0x45, 0x0c, 0x07, 0x48, 0xd9, 0x41, 0x08, 0x93, 0x25, 0x19, - 0x45, 0xa0, 0x1b, 0x97, 0xd9, 0x01, 0x46, 0x19, 0x04, 0x96, 0xd9, 0x01, - 0x45, 0x0c, 0x07, 0x95, 0xd9, 0xc1, 0x00, 0x47, 0x3a, 0x01, 0x98, 0xd9, - 0x41, 0x45, 0x19, 0xe2, 0xaf, 0xd9, 0x01, 0x4a, 0x3d, 0xa8, 0xa8, 0xd9, - 0x41, 0x08, 0x93, 0x25, 0x12, 0x45, 0xa0, 0x1b, 0x94, 0xd9, 0x01, 0x46, - 0x19, 0x04, 0x93, 0xd9, 0x01, 0x45, 0x0c, 0x07, 0x92, 0xd9, 0x41, 0x45, - 0x19, 0xe2, 0xae, 0xd9, 0x01, 0x4a, 0x3d, 0xa8, 0xa7, 0xd9, 0x41, 0x07, - 0x8b, 0x42, 0x06, 0x46, 0x41, 0xcd, 0x28, 0xd9, 0x41, 0x46, 0x3b, 0x01, - 0xf2, 0xd9, 0x01, 0x46, 0x90, 0x09, 0xf1, 0xd9, 0x41, 0x4b, 0xa8, 0x58, - 0x31, 0xd9, 0x81, 0x0c, 0x48, 0xeb, 0x4b, 0x2f, 0xd9, 0x01, 0x4a, 0x57, - 0x96, 0x30, 0xd9, 0x41, 0x4b, 0x56, 0x96, 0x32, 0xd9, 0x41, 0x05, 0x68, - 0xa6, 0xa4, 0x01, 0x06, 0xcf, 0x0a, 0x87, 0x01, 0x44, 0x47, 0x10, 0x33, - 0xd9, 0x01, 0x04, 0x4d, 0x13, 0x01, 0xff, 0x80, 0x11, 0x08, 0x6a, 0xc2, - 0x01, 0xff, 0x46, 0x19, 0x04, 0xa1, 0xd9, 0x01, 0x45, 0x0c, 0x07, 0xa0, - 0xd9, 0x41, 0xa8, 0x39, 0x08, 0xd9, 0x02, 0x1c, 0x02, 0x53, 0x00, 0x01, - 0xff, 0x4b, 0x84, 0x99, 0x9f, 0xd9, 0x01, 0x13, 0x40, 0x4b, 0x01, 0xff, - 0x46, 0x19, 0x04, 0x91, 0xd9, 0x01, 0x45, 0x0c, 0x07, 0x90, 0xd9, 0x41, - 0x45, 0xa0, 0x1b, 0x8a, 0xd9, 0x81, 0x0c, 0x46, 0x19, 0x04, 0x89, 0xd9, - 0x01, 0x45, 0x0c, 0x07, 0x88, 0xd9, 0x41, 0x42, 0x60, 0x01, 0x8b, 0xd9, - 0x41, 0x0b, 0x20, 0x2c, 0x11, 0x07, 0x94, 0x25, 0x01, 0xff, 0x45, 0x19, - 0xe2, 0xad, 0xd9, 0x01, 0x4a, 0x3d, 0xa8, 0xa6, 0xd9, 0x41, 0x45, 0xa0, - 0x1b, 0x8e, 0xd9, 0x81, 0x0c, 0x46, 0x19, 0x04, 0x8d, 0xd9, 0x01, 0x45, - 0x0c, 0x07, 0x8c, 0xd9, 0x41, 0x42, 0x60, 0x01, 0x8f, 0xd9, 0x41, 0x45, - 0xa0, 0x1b, 0x3d, 0xd9, 0x01, 0x46, 0x19, 0x04, 0x3c, 0xd9, 0x01, 0x48, - 0xf1, 0x5e, 0x3e, 0xd9, 0x01, 0x45, 0x0c, 0x07, 0x3b, 0xd9, 0x41, 0x45, - 0xa0, 0x1b, 0x41, 0xd9, 0x01, 0x46, 0x19, 0x04, 0x40, 0xd9, 0x01, 0x45, - 0x0c, 0x07, 0x3f, 0xd9, 0x41, 0x04, 0x15, 0x05, 0x17, 0x03, 0xec, 0x39, - 0x01, 0xff, 0x45, 0xa0, 0x1b, 0x44, 0xd9, 0x01, 0x46, 0x19, 0x04, 0x43, - 0xd9, 0x01, 0x45, 0x0c, 0x07, 0x42, 0xd9, 0x41, 0x45, 0xa0, 0x1b, 0x3a, - 0xd9, 0x01, 0x46, 0x19, 0x04, 0x39, 0xd9, 0x01, 0x45, 0x0c, 0x07, 0x38, - 0xd9, 0x41, 0x07, 0x19, 0x04, 0x11, 0x06, 0x0c, 0x07, 0x01, 0xff, 0x46, - 0x3b, 0x01, 0xe5, 0xd9, 0x01, 0x46, 0x90, 0x09, 0xe3, 0xd9, 0x41, 0x46, - 0x3b, 0x01, 0xe6, 0xd9, 0x01, 0x46, 0x90, 0x09, 0xe4, 0xd9, 0x41, 0x4f, - 0xb4, 0x6a, 0x24, 0xd9, 0x01, 0x55, 0x54, 0x3d, 0x27, 0xd9, 0x01, 0x03, - 0x11, 0x15, 0x01, 0xff, 0x05, 0x4f, 0x14, 0x06, 0x4a, 0xb9, 0x6a, 0x23, - 0xd9, 0x41, 0x0c, 0x6d, 0x8a, 0x0c, 0x45, 0xa0, 0x1b, 0x21, 0xd9, 0x01, - 0x45, 0x0c, 0x07, 0x22, 0xd9, 0x41, 0x45, 0xa0, 0x1b, 0x25, 0xd9, 0x01, - 0x45, 0x0c, 0x07, 0x26, 0xd9, 0x41, 0x18, 0x7d, 0x26, 0xcd, 0x04, 0xa2, - 0xad, 0x04, 0xa3, 0xbf, 0x03, 0x07, 0x3b, 0x01, 0xa1, 0x03, 0x08, 0xc8, - 0x1a, 0x86, 0x03, 0x05, 0x17, 0xe4, 0xb0, 0x02, 0x43, 0x20, 0x98, 0x69, - 0xda, 0x01, 0x05, 0x25, 0xe5, 0xd0, 0x01, 0x06, 0x0a, 0xdc, 0xb9, 0x01, - 0xb3, 0x88, 0x01, 0x07, 0xc8, 0x1c, 0x68, 0xb7, 0x17, 0x07, 0x11, 0x33, - 0x01, 0xff, 0x45, 0xa0, 0x1b, 0x7d, 0xd9, 0x01, 0x46, 0x19, 0x04, 0x7c, - 0xd9, 0x01, 0x45, 0x0c, 0x07, 0x7b, 0xd9, 0x41, 0x04, 0x8f, 0x22, 0x11, - 0x19, 0x87, 0x25, 0x01, 0xff, 0x46, 0x3b, 0x01, 0xf0, 0xd9, 0x01, 0x46, - 0x90, 0x09, 0xef, 0xd9, 0x41, 0x08, 0x93, 0x25, 0x15, 0x45, 0xa0, 0x1b, - 0xde, 0xd9, 0x01, 0xb3, 0x01, 0xff, 0x44, 0x0d, 0x07, 0xdd, 0xd9, 0x01, - 0x44, 0xa8, 0x2d, 0xdc, 0xd9, 0x41, 0x08, 0x0a, 0xc2, 0x11, 0x06, 0xd0, - 0x23, 0x01, 0xff, 0x45, 0xa0, 0x1b, 0xd1, 0xd9, 0x01, 0x45, 0x0c, 0x07, - 0xd0, 0xd9, 0x41, 0x45, 0xa0, 0x1b, 0xc2, 0xd9, 0x01, 0x45, 0x0c, 0x07, - 0xc1, 0xd9, 0x41, 0x0c, 0x6d, 0x8a, 0x0c, 0x51, 0x9e, 0x5c, 0x6f, 0xd9, - 0x01, 0x4a, 0x57, 0x96, 0x70, 0xd9, 0x41, 0x48, 0xa7, 0x5c, 0x71, 0xd9, - 0x01, 0x4a, 0x57, 0x96, 0x72, 0xd9, 0x41, 0x4f, 0x1c, 0x6c, 0xe2, 0xd9, - 0x01, 0x06, 0x91, 0x09, 0x01, 0xff, 0x09, 0xeb, 0x4b, 0x06, 0x4a, 0x57, - 0x96, 0x69, 0xd9, 0x41, 0x45, 0xa0, 0x1b, 0x67, 0xd9, 0x81, 0x0c, 0x46, - 0x19, 0x04, 0x66, 0xd9, 0x01, 0x45, 0x0c, 0x07, 0x65, 0xd9, 0x41, 0x42, - 0x60, 0x01, 0x68, 0xd9, 0x41, 0x45, 0xa0, 0x1b, 0x80, 0xd9, 0x01, 0x46, - 0x19, 0x04, 0x7f, 0xd9, 0x01, 0x45, 0x0c, 0x07, 0x7e, 0xd9, 0x41, 0x08, - 0x93, 0x25, 0x06, 0x45, 0x0c, 0x07, 0xdb, 0xd9, 0x41, 0x08, 0x0a, 0xc2, - 0x26, 0x06, 0xd0, 0x23, 0x01, 0xff, 0x06, 0xa0, 0x1b, 0x11, 0x06, 0x0c, - 0x07, 0x01, 0xff, 0x46, 0x3b, 0x01, 0xce, 0xd9, 0x01, 0x46, 0x90, 0x09, - 0xcc, 0xd9, 0x41, 0x46, 0x3b, 0x01, 0xcf, 0xd9, 0x01, 0x46, 0x90, 0x09, - 0xcd, 0xd9, 0x41, 0x06, 0xa0, 0x1b, 0x11, 0x06, 0x0c, 0x07, 0x01, 0xff, - 0x46, 0x3b, 0x01, 0xbf, 0xd9, 0x01, 0x46, 0x90, 0x09, 0xbd, 0xd9, 0x41, - 0x46, 0x3b, 0x01, 0xc0, 0xd9, 0x01, 0x46, 0x90, 0x09, 0xbe, 0xd9, 0x41, - 0x08, 0x93, 0x25, 0x06, 0x45, 0x0c, 0x07, 0xda, 0xd9, 0x41, 0x08, 0x0a, - 0xc2, 0x22, 0x06, 0xd0, 0x23, 0x01, 0xff, 0x4c, 0x11, 0x8f, 0xc9, 0xd9, - 0x01, 0x4c, 0x79, 0x93, 0xc8, 0xd9, 0x01, 0x07, 0xc8, 0x1c, 0x01, 0xff, - 0x4c, 0x1d, 0x8f, 0xcb, 0xd9, 0x01, 0x4c, 0x85, 0x93, 0xca, 0xd9, 0x41, - 0x06, 0xa0, 0x1b, 0x11, 0x06, 0x0c, 0x07, 0x01, 0xff, 0x46, 0x3b, 0x01, - 0xb9, 0xd9, 0x01, 0x46, 0xc8, 0x1c, 0xbb, 0xd9, 0x41, 0x46, 0x3b, 0x01, - 0xba, 0xd9, 0x01, 0x46, 0xc8, 0x1c, 0xbc, 0xd9, 0x41, 0x14, 0x8b, 0x42, - 0x06, 0x46, 0x41, 0xcd, 0x29, 0xd9, 0x41, 0x46, 0x3b, 0x01, 0xf4, 0xd9, - 0x01, 0x46, 0x90, 0x09, 0xf3, 0xd9, 0x41, 0x4b, 0xa8, 0x58, 0x6c, 0xd9, - 0x81, 0x0c, 0x48, 0xeb, 0x4b, 0x6a, 0xd9, 0x01, 0x4a, 0x57, 0x96, 0x6b, - 0xd9, 0x41, 0x4b, 0x56, 0x96, 0x6d, 0xd9, 0x41, 0x44, 0x1f, 0x14, 0x77, - 0xd9, 0x01, 0x06, 0xcf, 0x0a, 0x4f, 0x44, 0x47, 0x10, 0x6e, 0xd9, 0x01, - 0x05, 0x4d, 0x13, 0x01, 0xff, 0x48, 0x3a, 0xc2, 0xd9, 0xd9, 0x01, 0x08, - 0x93, 0x25, 0x19, 0x45, 0xa0, 0x1b, 0xd7, 0xd9, 0x81, 0x0c, 0x46, 0x19, - 0x04, 0xd6, 0xd9, 0x01, 0x45, 0x0c, 0x07, 0xd5, 0xd9, 0x41, 0x42, 0x60, - 0x01, 0xd8, 0xd9, 0x41, 0x08, 0x0a, 0xc2, 0x11, 0x06, 0xd0, 0x23, 0x01, - 0xff, 0x45, 0xa0, 0x1b, 0xc7, 0xd9, 0x01, 0x45, 0x0c, 0x07, 0xc6, 0xd9, - 0x41, 0x45, 0xa0, 0x1b, 0xb8, 0xd9, 0x01, 0x45, 0x0c, 0x07, 0xb7, 0xd9, - 0x41, 0x45, 0xa0, 0x1b, 0x76, 0xd9, 0x01, 0x46, 0x19, 0x04, 0x75, 0xd9, - 0x01, 0x45, 0x0c, 0x07, 0x74, 0xd9, 0x41, 0x43, 0x15, 0x05, 0x73, 0xd9, - 0x01, 0x03, 0xec, 0x39, 0x01, 0xff, 0x45, 0xa0, 0x1b, 0x7a, 0xd9, 0x01, - 0x46, 0x19, 0x04, 0x79, 0xd9, 0x01, 0x45, 0x0c, 0x07, 0x78, 0xd9, 0x41, - 0x06, 0xa0, 0x1b, 0x21, 0x07, 0x19, 0x04, 0x11, 0x06, 0x0c, 0x07, 0x01, - 0xff, 0x46, 0x3b, 0x01, 0xea, 0xd9, 0x01, 0x46, 0x90, 0x09, 0xe7, 0xd9, - 0x41, 0x46, 0x3b, 0x01, 0xeb, 0xd9, 0x01, 0x46, 0x90, 0x09, 0xe8, 0xd9, - 0x41, 0x46, 0x3b, 0x01, 0xec, 0xd9, 0x01, 0x46, 0x90, 0x09, 0xe9, 0xd9, - 0x41, 0x05, 0x7e, 0xe1, 0x5d, 0x08, 0x71, 0x09, 0x1e, 0x08, 0xfa, 0xc8, - 0x01, 0xff, 0x45, 0xa0, 0x1b, 0x5b, 0xd9, 0x81, 0x0c, 0x46, 0x19, 0x04, - 0x5a, 0xd9, 0x01, 0x45, 0x0c, 0x07, 0x59, 0xd9, 0x41, 0x42, 0x60, 0x01, - 0x5c, 0xd9, 0x41, 0x05, 0x7e, 0xe1, 0x1e, 0x08, 0xfa, 0xc8, 0x01, 0xff, - 0x45, 0xa0, 0x1b, 0x63, 0xd9, 0x81, 0x0c, 0x46, 0x19, 0x04, 0x62, 0xd9, - 0x01, 0x45, 0x0c, 0x07, 0x61, 0xd9, 0x41, 0x42, 0x60, 0x01, 0x64, 0xd9, - 0x41, 0x45, 0xa0, 0x1b, 0x5f, 0xd9, 0x81, 0x0c, 0x46, 0x19, 0x04, 0x5e, - 0xd9, 0x01, 0x45, 0x0c, 0x07, 0x5d, 0xd9, 0x41, 0x42, 0x60, 0x01, 0x60, - 0xd9, 0x41, 0x45, 0xa0, 0x1b, 0x57, 0xd9, 0x81, 0x0c, 0x46, 0x19, 0x04, - 0x56, 0xd9, 0x01, 0x45, 0x0c, 0x07, 0x55, 0xd9, 0x41, 0x42, 0x60, 0x01, - 0x58, 0xd9, 0x41, 0xa3, 0xac, 0x01, 0x45, 0x7d, 0x81, 0x41, 0xda, 0x81, - 0x95, 0x01, 0x44, 0x30, 0x72, 0x4d, 0xda, 0x81, 0x7f, 0x05, 0xcb, 0x04, - 0x3d, 0x45, 0xe7, 0xbe, 0x3e, 0xda, 0x81, 0x27, 0x45, 0x13, 0xe8, 0x50, - 0xda, 0x81, 0x11, 0x09, 0xda, 0xbe, 0x01, 0xff, 0x46, 0x3b, 0x01, 0x58, - 0xda, 0x01, 0x46, 0x90, 0x09, 0x57, 0xda, 0x41, 0x80, 0x01, 0xff, 0x47, - 0xa7, 0x30, 0x51, 0xda, 0x01, 0x46, 0x24, 0xdd, 0x52, 0xda, 0x41, 0x80, - 0x01, 0xff, 0x44, 0xcb, 0x04, 0x40, 0xda, 0x01, 0x48, 0xda, 0xc9, 0x3f, - 0xda, 0x41, 0x46, 0xe7, 0x02, 0x44, 0xda, 0x01, 0x47, 0xa7, 0x30, 0x45, - 0xda, 0x01, 0x44, 0x64, 0x45, 0x47, 0xda, 0x81, 0x1c, 0x49, 0x3a, 0x46, - 0x4a, 0xda, 0x81, 0x06, 0x48, 0xda, 0xc9, 0x46, 0xda, 0x41, 0x80, 0x01, - 0xff, 0x48, 0xda, 0xc9, 0x4b, 0xda, 0x01, 0x44, 0xea, 0xef, 0x4c, 0xda, - 0x41, 0x80, 0x01, 0xff, 0x48, 0xda, 0xc9, 0x48, 0xda, 0x01, 0x44, 0xea, - 0xef, 0x49, 0xda, 0x41, 0x80, 0x01, 0xff, 0x47, 0xa7, 0x30, 0x4e, 0xda, - 0x01, 0x48, 0xda, 0xc9, 0x4f, 0xda, 0x41, 0x80, 0x01, 0xff, 0x44, 0xcb, - 0x04, 0x43, 0xda, 0x01, 0x48, 0xda, 0xc9, 0x42, 0xda, 0x41, 0x06, 0xd9, - 0x1a, 0x06, 0x46, 0xbc, 0x18, 0x56, 0xda, 0x41, 0x47, 0x40, 0xcd, 0x3d, - 0xda, 0x01, 0x47, 0xa7, 0x30, 0x3c, 0xda, 0x01, 0x47, 0x8e, 0x8c, 0x3b, - 0xda, 0x41, 0xa9, 0x3e, 0x07, 0x79, 0x83, 0x01, 0xff, 0x80, 0x0f, 0x8d, - 0x01, 0xff, 0x50, 0xca, 0x61, 0x80, 0xda, 0x01, 0x4f, 0x24, 0x73, 0x7f, - 0xda, 0x41, 0x45, 0x7d, 0xe2, 0x83, 0xda, 0x01, 0x02, 0xb0, 0x01, 0x12, - 0x4c, 0x7d, 0x8f, 0x86, 0xda, 0x01, 0x45, 0x45, 0xe8, 0x85, 0xda, 0x01, - 0x45, 0xe0, 0x4e, 0x82, 0xda, 0x41, 0x47, 0xc6, 0xcb, 0x84, 0xda, 0x01, - 0x44, 0xc9, 0x00, 0x81, 0xda, 0x41, 0x03, 0x49, 0x13, 0x17, 0xb0, 0x01, - 0xff, 0x80, 0x06, 0x52, 0xc0, 0x53, 0x53, 0xda, 0x41, 0x50, 0x5a, 0x63, - 0x54, 0xda, 0x01, 0x50, 0xca, 0x66, 0x55, 0xda, 0x41, 0x4b, 0x24, 0x98, - 0x76, 0xda, 0x01, 0x07, 0xfc, 0xcf, 0x01, 0xff, 0xd1, 0x77, 0xda, 0x01, - 0xd2, 0x78, 0xda, 0x01, 0xd3, 0x79, 0xda, 0x01, 0xd4, 0x7a, 0xda, 0x01, - 0xd5, 0x7b, 0xda, 0x01, 0xd6, 0x7c, 0xda, 0x01, 0xd7, 0x7d, 0xda, 0x41, - 0xa1, 0x44, 0x43, 0xe7, 0x01, 0xff, 0xd9, 0xc1, 0x00, 0x80, 0x01, 0xff, - 0x08, 0xa7, 0x5c, 0x06, 0x43, 0x64, 0x1a, 0x00, 0xda, 0x41, 0x47, 0xe6, - 0x02, 0x06, 0xda, 0x01, 0x8d, 0x01, 0xff, 0x0b, 0x35, 0x48, 0x17, 0x0a, - 0x6b, 0x1d, 0x01, 0xff, 0x45, 0x4c, 0x13, 0x04, 0xda, 0x01, 0x48, 0xeb, - 0x4b, 0x01, 0xda, 0x01, 0x44, 0x2e, 0x05, 0x02, 0xda, 0x41, 0x45, 0x4c, - 0x13, 0x05, 0xda, 0x01, 0x48, 0xeb, 0x4b, 0x03, 0xda, 0x41, 0x42, 0x46, - 0x00, 0x6b, 0xda, 0x01, 0x03, 0x70, 0x18, 0x01, 0xff, 0x45, 0x04, 0x02, - 0x85, 0xd8, 0x81, 0xad, 0x0e, 0xa3, 0xe0, 0x0b, 0xa6, 0xee, 0x02, 0xa8, - 0x39, 0x44, 0x64, 0x45, 0x77, 0xd8, 0xc1, 0x00, 0x80, 0x01, 0xff, 0x53, - 0x22, 0x48, 0x56, 0xd8, 0x01, 0x45, 0x40, 0x13, 0x03, 0xd8, 0x01, 0x49, - 0x1f, 0xb9, 0x95, 0xd8, 0x01, 0x48, 0x32, 0xc6, 0x79, 0xd8, 0x01, 0x4b, - 0x3d, 0x18, 0xb2, 0xd8, 0x01, 0x06, 0x46, 0x13, 0x01, 0xff, 0x47, 0xa7, - 0x30, 0x7a, 0xd8, 0x01, 0x44, 0x45, 0x0a, 0x78, 0xd8, 0x41, 0x44, 0x8a, - 0x09, 0x7d, 0xd8, 0x81, 0x4c, 0x43, 0x5e, 0x0e, 0x6b, 0xd8, 0xc1, 0x00, - 0x80, 0x01, 0xff, 0x48, 0x52, 0xc2, 0x6a, 0xd8, 0x01, 0x12, 0x27, 0x42, - 0x26, 0x07, 0x7d, 0x02, 0x06, 0x4a, 0x19, 0xae, 0xb9, 0xd8, 0x41, 0x55, - 0x3d, 0x18, 0xda, 0xd8, 0x81, 0x06, 0x45, 0x46, 0x13, 0xca, 0xd8, 0x41, - 0x80, 0x01, 0xff, 0x42, 0x9e, 0x01, 0xd9, 0xd8, 0x01, 0x43, 0xfd, 0x07, - 0xd8, 0xd8, 0x41, 0x42, 0x9e, 0x01, 0xbe, 0xd8, 0x01, 0x43, 0xfd, 0x07, - 0xbd, 0xd8, 0x01, 0x45, 0x4c, 0x1a, 0xbf, 0xd8, 0x41, 0x80, 0x01, 0xff, - 0xa6, 0xce, 0x01, 0x45, 0x40, 0x13, 0x04, 0xd8, 0x81, 0x7c, 0x46, 0x42, - 0x18, 0x8a, 0xd8, 0x81, 0x5f, 0x46, 0x7d, 0x02, 0xc5, 0xd8, 0x81, 0x52, - 0x48, 0x32, 0xc6, 0x82, 0xd8, 0x01, 0x44, 0xcb, 0x04, 0x7b, 0xd8, 0x81, - 0x2b, 0x44, 0xf7, 0x07, 0xa7, 0xd8, 0x81, 0x1e, 0x45, 0x0c, 0x07, 0x7e, - 0xd8, 0x01, 0x06, 0x46, 0x13, 0x01, 0xff, 0x53, 0x3e, 0x47, 0x84, 0xd8, - 0x01, 0x44, 0x45, 0x0a, 0x80, 0xd8, 0xc1, 0x00, 0x4f, 0x5c, 0x68, 0x83, - 0xd8, 0x41, 0x5d, 0x4e, 0x14, 0xac, 0xd8, 0x41, 0x80, 0x01, 0xff, 0x48, - 0x32, 0xc6, 0x81, 0xd8, 0x01, 0x06, 0x46, 0x13, 0x01, 0xff, 0x47, 0xa7, - 0x30, 0x7c, 0xd8, 0x01, 0x44, 0x45, 0x0a, 0x7f, 0xd8, 0x41, 0x4c, 0x3c, - 0x18, 0xd1, 0xd8, 0x41, 0x80, 0x01, 0xff, 0x45, 0x40, 0x13, 0xa2, 0xd8, - 0x81, 0x06, 0x45, 0x46, 0x13, 0x9b, 0xd8, 0x41, 0x46, 0x45, 0x13, 0x9d, - 0xd8, 0x41, 0x80, 0x01, 0xff, 0x46, 0xa4, 0x66, 0xdb, 0xd8, 0x01, 0x07, - 0x7d, 0x02, 0x2b, 0x4b, 0x3d, 0x18, 0xc1, 0xd8, 0x01, 0x45, 0x46, 0x13, - 0xf0, 0xd8, 0xc1, 0x00, 0x80, 0x01, 0xff, 0x45, 0xa0, 0x1b, 0xef, 0xd8, - 0x01, 0x44, 0xcb, 0x04, 0xee, 0xd8, 0x01, 0xb3, 0x01, 0xff, 0x43, 0x03, - 0x00, 0xdd, 0xd8, 0x01, 0x44, 0x0d, 0x07, 0xf1, 0xd8, 0x41, 0x46, 0x42, - 0x18, 0xa6, 0xd8, 0x01, 0x44, 0xf7, 0x07, 0x88, 0xd8, 0xc1, 0x00, 0x4a, - 0x48, 0x18, 0x8d, 0xd8, 0x41, 0x57, 0x6f, 0x2e, 0x55, 0xd8, 0x01, 0x55, - 0xe4, 0x1a, 0x4b, 0xd8, 0x41, 0x43, 0xa3, 0x23, 0x03, 0xd9, 0x81, 0xc8, - 0x01, 0x43, 0xd9, 0x01, 0x5a, 0xd8, 0xc1, 0x00, 0x80, 0x01, 0xff, 0x54, - 0xcf, 0x3f, 0x5b, 0xd8, 0x01, 0xa6, 0x61, 0x44, 0xdd, 0x12, 0x5c, 0xd8, - 0x81, 0x3b, 0x06, 0x69, 0xd5, 0x17, 0x06, 0x46, 0x13, 0x01, 0xff, 0x44, - 0xfa, 0x1a, 0x5f, 0xd8, 0x01, 0x47, 0xa7, 0x30, 0x60, 0xd8, 0x01, 0x44, - 0x45, 0x0a, 0x5d, 0xd8, 0x41, 0x46, 0x73, 0x02, 0x62, 0xd8, 0x81, 0x0c, - 0x50, 0x7a, 0x62, 0x61, 0xd8, 0x01, 0x46, 0x42, 0x18, 0x65, 0xd8, 0x41, - 0x4b, 0x39, 0x4e, 0x63, 0xd8, 0xc1, 0x00, 0x45, 0xf9, 0x1a, 0x64, 0xd8, - 0x41, 0x80, 0x01, 0xff, 0x53, 0x22, 0x48, 0x4d, 0xd8, 0x81, 0x06, 0x4a, - 0x3a, 0x4e, 0x5e, 0xd8, 0x41, 0x80, 0x01, 0xff, 0x44, 0xfa, 0x1a, 0x51, - 0xd8, 0x01, 0x49, 0xbb, 0xb6, 0x4f, 0xd8, 0x41, 0x52, 0x6f, 0x2e, 0x4c, - 0xd8, 0x81, 0x23, 0x4b, 0xe4, 0x1a, 0x44, 0xd8, 0xc1, 0x00, 0x80, 0x01, - 0xff, 0x44, 0xfa, 0x1a, 0x45, 0xd8, 0x01, 0x49, 0x49, 0x18, 0x47, 0xd8, - 0x81, 0x06, 0x46, 0xa4, 0x66, 0x46, 0xd8, 0x41, 0x46, 0x68, 0xd5, 0x48, - 0xd8, 0x41, 0x80, 0x01, 0xff, 0x44, 0xfa, 0x1a, 0x50, 0xd8, 0x01, 0x49, - 0xbb, 0xb6, 0x4e, 0xd8, 0x01, 0x46, 0xa4, 0x66, 0x57, 0xd8, 0x81, 0x06, - 0x4d, 0xa1, 0x30, 0x52, 0xd8, 0x41, 0x80, 0x01, 0xff, 0x48, 0x32, 0xc6, - 0x59, 0xd8, 0x01, 0x4a, 0x3a, 0x4e, 0x58, 0xd8, 0x41, 0x80, 0x01, 0xff, - 0x5b, 0xe3, 0x1a, 0x4a, 0xd8, 0x01, 0x44, 0xdd, 0x12, 0x04, 0xd9, 0x01, - 0x45, 0x40, 0x13, 0x00, 0xd8, 0x81, 0x85, 0x03, 0x07, 0x42, 0x18, 0xb2, - 0x02, 0x07, 0x7d, 0x02, 0xbd, 0x01, 0x05, 0xf7, 0x07, 0x7f, 0x45, 0x46, - 0x13, 0xf5, 0xd8, 0xc1, 0x00, 0x80, 0x01, 0xff, 0x08, 0x71, 0x09, 0x58, - 0x47, 0xa7, 0x30, 0xfa, 0xd8, 0x01, 0x44, 0xdd, 0x12, 0xf6, 0xd8, 0x01, - 0x05, 0x16, 0x02, 0x3c, 0x05, 0x45, 0x0a, 0x26, 0x06, 0xc3, 0x24, 0x01, - 0xff, 0x4c, 0xe3, 0x1a, 0x01, 0xd9, 0x01, 0x4a, 0x7d, 0xa9, 0x08, 0xd8, - 0x01, 0x49, 0x1f, 0xb9, 0x93, 0xd8, 0x01, 0xb4, 0x01, 0xff, 0x4c, 0x09, - 0x8e, 0x00, 0xd9, 0x01, 0x4a, 0xba, 0xa1, 0xfe, 0xd8, 0x41, 0x44, 0xfa, - 0x1a, 0xf9, 0xd8, 0x01, 0x49, 0x49, 0x18, 0xf8, 0xd8, 0x01, 0x48, 0x42, - 0x25, 0xf7, 0xd8, 0x41, 0x54, 0x73, 0x41, 0x02, 0xd9, 0x01, 0x4b, 0xb9, - 0xa1, 0xff, 0xd8, 0x41, 0x4c, 0x51, 0x8e, 0xfb, 0xd8, 0x81, 0x0c, 0x4b, - 0x36, 0x18, 0xfc, 0xd8, 0x01, 0x4b, 0x3d, 0x18, 0xfd, 0xd8, 0x41, 0x49, - 0x44, 0x68, 0x2c, 0xd8, 0x41, 0x44, 0xa5, 0x01, 0xab, 0xd8, 0x01, 0x45, - 0x40, 0x13, 0xb7, 0xd8, 0x01, 0x46, 0x42, 0x18, 0xb0, 0xd8, 0x01, 0x46, - 0x7d, 0x02, 0xb4, 0xd8, 0x81, 0x12, 0x4e, 0x78, 0x41, 0xaf, 0xd8, 0x01, - 0x45, 0x46, 0x13, 0xb8, 0xd8, 0x01, 0x42, 0x50, 0x02, 0xae, 0xd8, 0x41, - 0x80, 0x01, 0xff, 0x49, 0x49, 0x18, 0xb5, 0xd8, 0x01, 0x4f, 0x78, 0x41, - 0xb6, 0xd8, 0x41, 0x4f, 0xa6, 0x69, 0x1c, 0xd8, 0x01, 0x44, 0xa5, 0x01, - 0xc4, 0xd8, 0x01, 0x46, 0x42, 0x18, 0xcc, 0xd8, 0x01, 0xb2, 0x50, 0x06, - 0x46, 0x13, 0x0d, 0x42, 0x50, 0x02, 0xc6, 0xd8, 0xc1, 0x00, 0x4b, 0x39, - 0x4e, 0xc9, 0xd8, 0x41, 0x07, 0x1a, 0xcc, 0x24, 0xa3, 0x0c, 0x4f, 0x58, - 0x6c, 0x30, 0xd8, 0x01, 0x46, 0x42, 0x18, 0xcb, 0xd8, 0x41, 0x0d, 0xcf, - 0x82, 0x06, 0x4e, 0xb2, 0x7c, 0x36, 0xd8, 0x41, 0x46, 0xa4, 0x66, 0x39, - 0xd8, 0x01, 0x42, 0x50, 0x02, 0x38, 0xd8, 0x41, 0x48, 0x5f, 0x6c, 0x42, - 0xd8, 0x01, 0x0a, 0xf7, 0xac, 0x01, 0xff, 0x47, 0x85, 0x1e, 0x41, 0xd8, - 0x01, 0x42, 0x50, 0x02, 0x40, 0xd8, 0x41, 0x4d, 0x79, 0x41, 0xc8, 0xd8, - 0x01, 0x4a, 0x3e, 0x18, 0xcd, 0xd8, 0x41, 0x44, 0xfa, 0x1a, 0x98, 0xd8, - 0x01, 0x44, 0xa5, 0x01, 0x8e, 0xd8, 0x81, 0x27, 0x45, 0x40, 0x13, 0xa0, - 0xd8, 0x81, 0x1a, 0x4e, 0x78, 0x41, 0x97, 0xd8, 0x01, 0xb4, 0x06, 0x42, - 0x50, 0x02, 0x92, 0xd8, 0x41, 0x44, 0x47, 0x13, 0x9a, 0xd8, 0x01, 0x4c, - 0xc9, 0x91, 0x99, 0xd8, 0x41, 0x46, 0x45, 0x13, 0x9c, 0xd8, 0x41, 0x80, - 0x01, 0xff, 0x4e, 0x5c, 0x79, 0x91, 0xd8, 0x01, 0x07, 0x87, 0xd2, 0x01, - 0xff, 0x46, 0x6f, 0x40, 0x90, 0xd8, 0x01, 0x48, 0xeb, 0x4b, 0x8f, 0xd8, - 0x41, 0x80, 0x01, 0xff, 0x44, 0xfa, 0x1a, 0x06, 0xd8, 0x81, 0xf2, 0x03, - 0x46, 0xe4, 0xd7, 0x0a, 0xd8, 0x01, 0x46, 0xa4, 0x66, 0x0b, 0xd8, 0x81, - 0xce, 0x03, 0x46, 0x7d, 0x02, 0x0e, 0xd8, 0x81, 0xcd, 0x01, 0xb2, 0xbe, - 0x01, 0x06, 0x46, 0x13, 0x18, 0x50, 0x9a, 0x66, 0x13, 0xd8, 0xc1, 0x00, - 0x07, 0x45, 0x13, 0x01, 0xff, 0x49, 0x49, 0x18, 0x25, 0xd8, 0x01, 0x44, - 0x45, 0x0a, 0x24, 0xd8, 0x41, 0x07, 0x1a, 0xcc, 0x91, 0x01, 0xa3, 0x5f, - 0x0e, 0x84, 0x76, 0x4f, 0x44, 0x5d, 0x0e, 0xe6, 0xd8, 0x81, 0x37, 0x44, - 0x45, 0x0a, 0xdc, 0xd8, 0xc1, 0x00, 0x80, 0x01, 0xff, 0x49, 0x84, 0xb4, - 0xe2, 0xd8, 0x01, 0x06, 0x40, 0x13, 0x17, 0x06, 0x46, 0x13, 0x01, 0xff, - 0x44, 0xfa, 0x1a, 0xe0, 0xd8, 0x01, 0x49, 0x49, 0x18, 0xdf, 0xd8, 0x01, - 0x48, 0x42, 0x25, 0xde, 0xd8, 0x41, 0x44, 0xfa, 0x1a, 0xe1, 0xd8, 0x01, - 0x45, 0xa4, 0x66, 0xe3, 0xd8, 0x41, 0x0a, 0xea, 0x79, 0x01, 0xff, 0x46, - 0xa4, 0x66, 0x43, 0xd8, 0x01, 0x42, 0x50, 0x02, 0x31, 0xd8, 0x41, 0x44, - 0xfa, 0x1a, 0xe5, 0xd8, 0x01, 0x48, 0xeb, 0x4b, 0xe4, 0xd8, 0x41, 0x45, - 0xe8, 0x02, 0xeb, 0xd8, 0x81, 0x23, 0xb5, 0x01, 0xff, 0x4e, 0xe8, 0x79, - 0x37, 0xd8, 0x01, 0xb2, 0x01, 0xff, 0x45, 0x55, 0xc2, 0xe7, 0xd8, 0x01, - 0x09, 0x4f, 0x13, 0x01, 0xff, 0x46, 0x58, 0x13, 0xe8, 0xd8, 0x01, 0x45, - 0x4c, 0x1a, 0xea, 0xd8, 0x41, 0x4b, 0xeb, 0x79, 0x3c, 0xd8, 0x41, 0x4c, - 0x45, 0x8e, 0x3b, 0xd8, 0x01, 0x4d, 0x8d, 0x85, 0x3a, 0xd8, 0x41, 0x4d, - 0x79, 0x41, 0x09, 0xd8, 0x01, 0x4a, 0x3e, 0x18, 0xba, 0xd8, 0x41, 0x80, - 0x01, 0xff, 0x44, 0xfa, 0x1a, 0x10, 0xd8, 0x81, 0xe8, 0x01, 0xa3, 0x7d, - 0x46, 0xa4, 0x66, 0x12, 0xd8, 0x81, 0x70, 0x46, 0x42, 0x18, 0xa4, 0xd8, - 0x01, 0xb2, 0x4c, 0x53, 0xeb, 0x4b, 0x20, 0xd8, 0x01, 0x45, 0x46, 0x13, - 0x1e, 0xd8, 0x81, 0x06, 0x57, 0x97, 0x30, 0x27, 0xd8, 0x41, 0x80, 0x01, - 0xff, 0x46, 0xe0, 0x0b, 0x3f, 0xd8, 0x81, 0x29, 0x44, 0xfa, 0x1a, 0x22, - 0xd8, 0x01, 0xa3, 0x0f, 0xa8, 0x01, 0xff, 0x45, 0xa5, 0x66, 0x2b, 0xd8, - 0x01, 0x45, 0x59, 0x6c, 0x2a, 0xd8, 0x41, 0x46, 0xda, 0x14, 0x29, 0xd8, - 0x01, 0x4f, 0xaf, 0x6f, 0x3d, 0xd8, 0x01, 0x45, 0xb2, 0x7c, 0x28, 0xd8, - 0x41, 0x44, 0xc8, 0x10, 0x3e, 0xd8, 0x41, 0x4e, 0x79, 0x41, 0x11, 0xd8, - 0x01, 0x43, 0xa1, 0x01, 0x86, 0xd8, 0xc1, 0x00, 0x80, 0x01, 0xff, 0x44, - 0xfa, 0x1a, 0x8b, 0xd8, 0x01, 0x49, 0x49, 0x18, 0x8c, 0xd8, 0x41, 0x52, - 0x32, 0x4e, 0x23, 0xd8, 0x41, 0x48, 0x4a, 0x18, 0x15, 0xd8, 0x81, 0x18, - 0x04, 0x47, 0x10, 0x01, 0xff, 0x47, 0x41, 0x18, 0xa9, 0xd8, 0x01, 0x42, - 0x05, 0x00, 0x1a, 0xd8, 0xc1, 0x00, 0x4b, 0x39, 0x4e, 0x33, 0xd8, 0x41, - 0x80, 0x01, 0xff, 0x46, 0xe4, 0xd7, 0x18, 0xd8, 0x81, 0x3a, 0x46, 0xa4, - 0x66, 0x19, 0xd8, 0x81, 0x2d, 0x4a, 0x7d, 0xa9, 0x16, 0xd8, 0x01, 0x4b, - 0x62, 0x9d, 0x17, 0xd8, 0x01, 0x06, 0x46, 0x13, 0x01, 0xff, 0x47, 0xa7, - 0x30, 0x34, 0xd8, 0x01, 0x44, 0x45, 0x0a, 0x2d, 0xd8, 0xc1, 0x00, 0x80, - 0x01, 0xff, 0x44, 0xfa, 0x1a, 0x2f, 0xd8, 0x01, 0x49, 0x49, 0x18, 0x2e, - 0xd8, 0x41, 0x4b, 0x39, 0x4e, 0x32, 0xd8, 0x41, 0x4e, 0xa0, 0x30, 0x35, - 0xd8, 0x41, 0x4f, 0x3e, 0x68, 0x21, 0xd8, 0x41, 0x80, 0x01, 0xff, 0x43, - 0x13, 0x01, 0x0c, 0xd8, 0x01, 0x49, 0xed, 0x79, 0x14, 0xd8, 0xc1, 0x00, - 0x4b, 0x39, 0x4e, 0x26, 0xd8, 0x41, 0x4c, 0xa1, 0x89, 0x1d, 0xd8, 0x41, - 0x45, 0xe8, 0x02, 0x76, 0xd8, 0x81, 0xca, 0x01, 0x43, 0xa3, 0xd1, 0x66, - 0xd8, 0x81, 0x8f, 0x01, 0xb5, 0x01, 0xff, 0xf0, 0x6d, 0xd8, 0x81, 0x1c, - 0x46, 0x54, 0xc2, 0x75, 0xd8, 0xc1, 0x00, 0x80, 0x01, 0xff, 0x54, 0x27, - 0x42, 0xbc, 0xd8, 0x01, 0x55, 0x19, 0x3c, 0xcf, 0xd8, 0x01, 0x44, 0xcb, - 0x04, 0x74, 0xd8, 0x41, 0x80, 0x01, 0xff, 0x53, 0x22, 0x48, 0x53, 0xd8, - 0x81, 0x5b, 0x45, 0x40, 0x13, 0x02, 0xd8, 0x81, 0x3e, 0x52, 0x36, 0x18, - 0xd0, 0xd8, 0x01, 0x48, 0x32, 0xc6, 0x71, 0xd8, 0x01, 0x44, 0xcb, 0x04, - 0x6c, 0xd8, 0x81, 0x11, 0x06, 0x46, 0x13, 0x01, 0xff, 0x47, 0xa7, 0x30, - 0x73, 0xd8, 0x01, 0x44, 0x45, 0x0a, 0x6f, 0xd8, 0x41, 0x80, 0x01, 0xff, - 0x48, 0x32, 0xc6, 0x70, 0xd8, 0x01, 0x06, 0x46, 0x13, 0x01, 0xff, 0x47, - 0xa7, 0x30, 0x72, 0xd8, 0x01, 0x44, 0x45, 0x0a, 0x6e, 0xd8, 0x41, 0x80, - 0x01, 0xff, 0x4b, 0x3d, 0x18, 0xc0, 0xd8, 0x01, 0x45, 0x46, 0x13, 0xec, - 0xd8, 0xc1, 0x00, 0x45, 0xca, 0x04, 0xed, 0xd8, 0x41, 0x45, 0xca, 0x04, - 0x54, 0xd8, 0x41, 0x80, 0x01, 0xff, 0x56, 0xe3, 0x1a, 0x49, 0xd8, 0x01, - 0x5e, 0x40, 0x13, 0xe9, 0xd8, 0x01, 0x5c, 0x36, 0x18, 0xd6, 0xd8, 0x81, - 0x17, 0x48, 0x32, 0xc6, 0x68, 0xd8, 0x01, 0x06, 0x46, 0x13, 0x01, 0xff, - 0x47, 0xa7, 0x30, 0x69, 0xd8, 0x01, 0x44, 0x45, 0x0a, 0x67, 0xd8, 0x41, - 0x45, 0x5b, 0x3d, 0xd7, 0xd8, 0x41, 0x80, 0x01, 0xff, 0x45, 0x40, 0x13, - 0x01, 0xd8, 0x81, 0x2d, 0x07, 0x42, 0x18, 0x1d, 0x07, 0x7d, 0x02, 0x06, - 0x4b, 0x3d, 0x18, 0xb1, 0xd8, 0x41, 0x4b, 0x3d, 0x18, 0xce, 0xd8, 0x81, - 0x06, 0x42, 0x50, 0x02, 0xc7, 0xd8, 0x41, 0x45, 0xf9, 0x1a, 0xd5, 0xd8, - 0x41, 0x45, 0x40, 0x13, 0xa1, 0xd8, 0x01, 0x42, 0x50, 0x02, 0x94, 0xd8, - 0x41, 0x80, 0x01, 0xff, 0x44, 0xfa, 0x1a, 0x07, 0xd8, 0x01, 0x45, 0xa4, - 0x66, 0x0d, 0xd8, 0x01, 0x46, 0x7d, 0x02, 0x0f, 0xd8, 0x81, 0x06, 0x4b, - 0x3d, 0x18, 0xbb, 0xd8, 0x41, 0x80, 0x01, 0xff, 0x05, 0x46, 0x10, 0x12, - 0x46, 0x42, 0x18, 0xa5, 0xd8, 0x01, 0x44, 0xf7, 0x07, 0x87, 0xd8, 0x01, - 0x45, 0x46, 0x13, 0x1f, 0xd8, 0x41, 0x47, 0x41, 0x18, 0xaa, 0xd8, 0x01, - 0x42, 0x05, 0x00, 0x1b, 0xd8, 0x41, 0x80, 0x01, 0xff, 0x45, 0x40, 0x13, - 0x05, 0xd8, 0x81, 0x45, 0x07, 0x42, 0x18, 0x27, 0x52, 0x36, 0x18, 0xd4, - 0xd8, 0x81, 0x11, 0x05, 0xf7, 0x07, 0x01, 0xff, 0x5d, 0x19, 0x15, 0xad, - 0xd8, 0x01, 0x46, 0x42, 0x18, 0xb3, 0xd8, 0x41, 0x80, 0x01, 0xff, 0x42, - 0x9e, 0x01, 0xd3, 0xd8, 0x01, 0x43, 0xfd, 0x07, 0xd2, 0xd8, 0x41, 0x45, - 0x40, 0x13, 0xa3, 0xd8, 0x81, 0x06, 0x42, 0x50, 0x02, 0x96, 0xd8, 0x41, - 0x52, 0x44, 0x4e, 0x9f, 0xd8, 0xc1, 0x00, 0x44, 0xc8, 0x10, 0x9e, 0xd8, - 0x41, 0x80, 0x01, 0xff, 0x07, 0x7d, 0x02, 0x23, 0x4b, 0x3d, 0x18, 0xc3, - 0xd8, 0x81, 0x16, 0x45, 0x46, 0x13, 0xf4, 0xd8, 0xc1, 0x00, 0x80, 0x01, - 0xff, 0x42, 0x9e, 0x01, 0xf3, 0xd8, 0x01, 0x43, 0xfd, 0x07, 0xf2, 0xd8, - 0x41, 0x44, 0xc8, 0x10, 0xc2, 0xd8, 0x41, 0x46, 0x42, 0x18, 0xa8, 0xd8, - 0x01, 0x44, 0xf7, 0x07, 0x89, 0xd8, 0x41, 0x47, 0x71, 0x09, 0x0a, 0xd9, - 0x01, 0x48, 0x53, 0x43, 0x09, 0xd9, 0x01, 0x46, 0x90, 0x09, 0x08, 0xd9, - 0x41, 0x1c, 0x92, 0x16, 0x72, 0xa9, 0x52, 0xac, 0x1c, 0x08, 0xba, 0xc6, - 0x06, 0x48, 0x16, 0x16, 0x88, 0xda, 0x41, 0x47, 0x40, 0xcd, 0x12, 0xda, - 0x01, 0x47, 0x8e, 0x8c, 0x11, 0xda, 0x01, 0x48, 0xda, 0xc9, 0x13, 0xda, - 0x41, 0x04, 0xd3, 0x07, 0x06, 0x5a, 0xe2, 0x20, 0x70, 0xda, 0x41, 0x06, - 0xa0, 0x1b, 0x1a, 0xb3, 0x01, 0xff, 0x49, 0xba, 0x6a, 0x1f, 0xd9, 0x01, - 0x05, 0x0d, 0x07, 0x01, 0xff, 0x48, 0x53, 0x43, 0x1e, 0xd9, 0x01, 0x46, - 0x90, 0x09, 0x1c, 0xd9, 0x41, 0x48, 0x53, 0x43, 0x1d, 0xd9, 0x01, 0x46, - 0x90, 0x09, 0x1b, 0xd9, 0x41, 0x0c, 0xa1, 0x8f, 0x06, 0x44, 0x8b, 0x09, - 0x7e, 0xda, 0x41, 0xd2, 0x9b, 0xda, 0x01, 0xd3, 0x9c, 0xda, 0x01, 0xd4, - 0x9d, 0xda, 0x01, 0xd5, 0x9e, 0xda, 0x01, 0xd6, 0x9f, 0xda, 0x41, 0x4f, - 0x86, 0x6b, 0x07, 0xda, 0x01, 0x4a, 0x85, 0xb0, 0x08, 0xda, 0xc1, 0x00, - 0x48, 0xff, 0x0c, 0x09, 0xda, 0x41, 0x43, 0xed, 0x19, 0x30, 0xda, 0x01, - 0x49, 0xec, 0xbe, 0x6c, 0xda, 0x01, 0x02, 0x4d, 0x00, 0x01, 0xff, 0x80, - 0xb2, 0x01, 0x0f, 0xf1, 0x69, 0x9b, 0x01, 0x05, 0x81, 0xe3, 0x4e, 0x07, - 0xe0, 0xcf, 0x38, 0x02, 0x31, 0x01, 0x01, 0xff, 0x46, 0x53, 0x0d, 0x16, - 0xda, 0x01, 0x05, 0x22, 0x00, 0x1d, 0x44, 0xcb, 0x04, 0x14, 0xda, 0x01, - 0x48, 0x7a, 0xc8, 0x15, 0xda, 0x01, 0x04, 0x4e, 0x1b, 0x01, 0xff, 0x45, - 0xca, 0x04, 0x1a, 0xda, 0x01, 0x4d, 0xb0, 0x84, 0x1c, 0xda, 0x41, 0x46, - 0x53, 0x0d, 0x1b, 0xda, 0x01, 0x44, 0xcb, 0x04, 0x19, 0xda, 0x41, 0x44, - 0xa5, 0x01, 0x1f, 0xda, 0x01, 0x4a, 0x22, 0x46, 0x20, 0xda, 0x01, 0x42, - 0x50, 0x02, 0x1e, 0xda, 0x41, 0x0b, 0x35, 0x48, 0x29, 0x0a, 0x6b, 0x1d, - 0x01, 0xff, 0xa3, 0x16, 0x48, 0xeb, 0x4b, 0x21, 0xda, 0xc1, 0x00, 0x80, - 0x01, 0xff, 0x4b, 0xa8, 0x58, 0x23, 0xda, 0x01, 0x46, 0x3b, 0x01, 0x22, - 0xda, 0x41, 0x47, 0xdd, 0x0a, 0x29, 0xda, 0x01, 0x45, 0x37, 0x22, 0x27, - 0xda, 0x41, 0x46, 0x6f, 0x40, 0x28, 0xda, 0x01, 0x48, 0xeb, 0x4b, 0x24, - 0xda, 0xc1, 0x00, 0x80, 0x01, 0xff, 0x4b, 0xa8, 0x58, 0x26, 0xda, 0x01, - 0x46, 0x3b, 0x01, 0x25, 0xda, 0x41, 0x44, 0xa5, 0x01, 0x0c, 0xda, 0x01, - 0x47, 0x8e, 0x8c, 0x0b, 0xda, 0x01, 0x42, 0x50, 0x02, 0x0a, 0xda, 0x41, - 0x06, 0x4e, 0xd7, 0x06, 0x44, 0xe2, 0xa2, 0x1d, 0xda, 0x41, 0x48, 0x53, - 0x43, 0x18, 0xda, 0x01, 0x46, 0x90, 0x09, 0x17, 0xda, 0x41, 0x0f, 0x9f, - 0x70, 0x48, 0x07, 0x12, 0xd5, 0x01, 0xff, 0x0a, 0x6c, 0x31, 0x33, 0x50, - 0x9a, 0x61, 0xfd, 0xd9, 0x01, 0x44, 0x7e, 0xec, 0xf7, 0xd9, 0x01, 0x47, - 0x89, 0xce, 0xfe, 0xd9, 0x01, 0x47, 0x5c, 0x42, 0xfa, 0xd9, 0x01, 0xb3, - 0x06, 0x45, 0x13, 0xe8, 0xf9, 0xd9, 0x41, 0x4b, 0x47, 0x9b, 0xfb, 0xd9, - 0x81, 0x06, 0x43, 0x13, 0x01, 0xf8, 0xd9, 0x41, 0x4c, 0xa7, 0x58, 0xfc, - 0xd9, 0x41, 0x45, 0xa0, 0x1b, 0xf6, 0xd9, 0x01, 0x45, 0x0c, 0x07, 0xf5, - 0xd9, 0x41, 0x4c, 0x89, 0x8c, 0x0e, 0xda, 0x01, 0x08, 0xe5, 0x90, 0x06, - 0x4a, 0x7b, 0xb0, 0x0f, 0xda, 0x41, 0x44, 0xa5, 0x01, 0x0d, 0xda, 0x01, - 0x42, 0x50, 0x02, 0x10, 0xda, 0x41, 0x06, 0x01, 0x9e, 0x0f, 0xaf, 0x01, - 0xff, 0x43, 0x03, 0x12, 0x8a, 0xda, 0x01, 0x43, 0xea, 0x04, 0x87, 0xda, - 0x41, 0x47, 0x8e, 0x8c, 0x2b, 0xda, 0x01, 0x46, 0x46, 0xdc, 0x2a, 0xda, - 0x01, 0x46, 0x24, 0xdd, 0x2c, 0xda, 0x41, 0x05, 0xaf, 0xe2, 0x17, 0x04, - 0x7e, 0xe7, 0x01, 0xff, 0x47, 0x71, 0x09, 0x10, 0xd9, 0x01, 0x48, 0x53, - 0x43, 0x0f, 0xd9, 0x01, 0x46, 0x90, 0x09, 0x0e, 0xd9, 0x41, 0x46, 0xaa, - 0xd8, 0x3a, 0xda, 0x01, 0x46, 0x06, 0xda, 0x39, 0xda, 0x41, 0x04, 0x09, - 0x8b, 0x11, 0x04, 0x24, 0xdd, 0x01, 0xff, 0x50, 0xea, 0x5e, 0x38, 0xda, - 0x01, 0x46, 0xda, 0x05, 0x36, 0xda, 0x41, 0x50, 0xea, 0x5e, 0x37, 0xda, - 0x01, 0x47, 0xff, 0x65, 0x35, 0xda, 0x41, 0x05, 0x87, 0xe2, 0x3e, 0x06, - 0xbe, 0x44, 0x01, 0xff, 0x06, 0xe1, 0x02, 0x1d, 0x06, 0xad, 0x02, 0x01, - 0xff, 0x53, 0xd6, 0x47, 0x9f, 0xf5, 0x01, 0x53, 0x9e, 0x49, 0x98, 0xf5, - 0x01, 0x54, 0x06, 0x22, 0x99, 0xf5, 0x01, 0x51, 0x59, 0x5d, 0x9e, 0xf5, - 0x41, 0x53, 0xd6, 0x47, 0xa1, 0xf5, 0x01, 0x53, 0x9e, 0x49, 0x9a, 0xf5, - 0x01, 0x54, 0x06, 0x22, 0x9b, 0xf5, 0x01, 0x51, 0x59, 0x5d, 0xa0, 0xf5, - 0x41, 0xa4, 0xb8, 0x04, 0x50, 0x3a, 0x61, 0xc9, 0x15, 0x01, 0x07, 0xc1, - 0x05, 0x86, 0x02, 0x10, 0xea, 0x64, 0xf5, 0x01, 0xb3, 0x43, 0x0b, 0xd1, - 0x75, 0x01, 0xff, 0xa1, 0x25, 0xe5, 0xb8, 0x15, 0x01, 0xe9, 0xb0, 0x15, - 0x81, 0x18, 0xef, 0xba, 0x15, 0x01, 0xf5, 0xb2, 0x15, 0x81, 0x0b, 0x49, - 0x9b, 0xbe, 0xb4, 0x15, 0xc1, 0x00, 0xf2, 0xb5, 0x15, 0x41, 0xf5, 0xb3, - 0x15, 0x41, 0xe9, 0xb1, 0x15, 0x41, 0xe1, 0xaf, 0x15, 0x01, 0xe9, 0xb9, - 0x15, 0x01, 0x4a, 0x2b, 0xab, 0xdc, 0x15, 0x81, 0x04, 0xf5, 0xbb, 0x15, - 0x41, 0xf5, 0xdd, 0x15, 0x41, 0xa5, 0x2e, 0x04, 0x30, 0x03, 0x01, 0xff, - 0x48, 0xd0, 0x15, 0xbd, 0x15, 0x01, 0x4b, 0x4f, 0x23, 0xbc, 0x15, 0x01, - 0x45, 0x5a, 0x3e, 0xc0, 0x15, 0x01, 0x47, 0x0c, 0xd3, 0xc1, 0x15, 0x01, - 0x02, 0x02, 0x00, 0x01, 0xff, 0x44, 0x5d, 0x23, 0xbf, 0x15, 0x01, 0x45, - 0xa3, 0x4a, 0xbe, 0x15, 0x41, 0x0b, 0x87, 0x98, 0x11, 0x08, 0x38, 0x20, - 0x01, 0xff, 0x43, 0x16, 0x00, 0xc5, 0x15, 0x01, 0x43, 0xd4, 0x09, 0xc4, - 0x15, 0x41, 0x4b, 0x21, 0x99, 0xcf, 0x15, 0x81, 0x5e, 0x05, 0x51, 0x00, - 0x01, 0xff, 0x0c, 0xa5, 0x8b, 0x43, 0x50, 0x8a, 0x60, 0xd1, 0x15, 0x01, - 0x53, 0xf4, 0x4a, 0xd3, 0x15, 0x01, 0x10, 0xca, 0x64, 0x21, 0x52, 0xd2, - 0x53, 0xd4, 0x15, 0x01, 0x03, 0x19, 0x01, 0x01, 0xff, 0x09, 0x53, 0xb5, - 0x06, 0x4d, 0xfa, 0x4a, 0xd2, 0x15, 0x41, 0x50, 0x7a, 0x60, 0xcb, 0x15, - 0x01, 0x52, 0xbc, 0x54, 0xca, 0x15, 0x41, 0x49, 0xfe, 0x4a, 0xcc, 0x15, - 0x01, 0x50, 0x8a, 0x60, 0xcd, 0x15, 0x01, 0x50, 0x4a, 0x66, 0xce, 0x15, - 0x41, 0x4f, 0xa4, 0x6b, 0xd7, 0x15, 0x01, 0x44, 0xca, 0x64, 0xd5, 0x15, - 0x01, 0x4e, 0x34, 0x7c, 0xd6, 0x15, 0x41, 0x4a, 0x83, 0x94, 0xd0, 0x15, - 0x41, 0xd1, 0xc6, 0x15, 0x01, 0xd2, 0xc7, 0x15, 0x01, 0xd3, 0xc8, 0x15, - 0x41, 0xe1, 0x80, 0x15, 0x81, 0x8f, 0x02, 0xa2, 0x82, 0x02, 0xa3, 0xf5, - 0x01, 0xa4, 0xdc, 0x01, 0xe5, 0x8a, 0x15, 0x01, 0xa7, 0xcb, 0x01, 0x42, - 0x22, 0x00, 0xae, 0x15, 0x01, 0xe9, 0x82, 0x15, 0x81, 0xbb, 0x01, 0xaa, - 0xae, 0x01, 0xab, 0xa1, 0x01, 0x42, 0x74, 0x00, 0xa9, 0x15, 0x01, 0x42, - 0x6c, 0x00, 0xa6, 0x15, 0x01, 0xae, 0x7d, 0xef, 0x8c, 0x15, 0x01, 0xb0, - 0x6d, 0x42, 0x71, 0x00, 0xa8, 0x15, 0x01, 0xb3, 0x55, 0xb4, 0x2c, 0xf5, - 0x84, 0x15, 0x81, 0x23, 0xb6, 0x06, 0x42, 0x34, 0x22, 0xa7, 0x15, 0x41, - 0xe1, 0xaa, 0x15, 0x01, 0x07, 0x9c, 0xbe, 0x01, 0xff, 0xec, 0x88, 0x15, - 0x81, 0x09, 0xf2, 0x86, 0x15, 0xc1, 0x00, 0xf2, 0x87, 0x15, 0x41, 0xec, - 0x89, 0x15, 0x41, 0xf5, 0x85, 0x15, 0x41, 0xe1, 0x9d, 0x15, 0x01, 0xa8, - 0x17, 0xb4, 0x0b, 0x55, 0x3b, 0x3e, 0xd9, 0x15, 0xc1, 0x00, 0xe9, 0xda, - 0x15, 0x41, 0xe1, 0x98, 0x15, 0x01, 0x42, 0x22, 0x00, 0x99, 0x15, 0x41, - 0xe1, 0x9e, 0x15, 0x01, 0x56, 0xf3, 0x35, 0xd8, 0x15, 0x41, 0xe1, 0xad, - 0x15, 0x01, 0x42, 0x22, 0x00, 0xab, 0x15, 0x01, 0x42, 0x15, 0x06, 0xac, - 0x15, 0x41, 0xe1, 0xa2, 0x15, 0x01, 0x42, 0x22, 0x00, 0xa3, 0x15, 0x41, - 0xe1, 0xa1, 0x15, 0x01, 0x42, 0x24, 0x02, 0x92, 0x15, 0x01, 0x42, 0xff, - 0x04, 0x9c, 0x15, 0x01, 0x42, 0x34, 0x22, 0x97, 0x15, 0x41, 0xe1, 0x8e, - 0x15, 0x01, 0x42, 0x22, 0x00, 0x8f, 0x15, 0x41, 0xe1, 0x95, 0x15, 0x01, - 0x42, 0x22, 0x00, 0x96, 0x15, 0x41, 0xe9, 0x83, 0x15, 0x41, 0xe1, 0x90, - 0x15, 0x01, 0x42, 0x22, 0x00, 0x91, 0x15, 0x41, 0xe1, 0x9f, 0x15, 0x01, - 0xa4, 0x06, 0x42, 0x22, 0x00, 0xa0, 0x15, 0x41, 0xe1, 0x9a, 0x15, 0x01, - 0x42, 0x22, 0x00, 0x9b, 0x15, 0x41, 0xe1, 0x93, 0x15, 0x01, 0x42, 0x22, - 0x00, 0x94, 0x15, 0x41, 0xe1, 0xa4, 0x15, 0x01, 0x42, 0x22, 0x00, 0xa5, - 0x15, 0x41, 0xe1, 0x81, 0x15, 0x01, 0xe9, 0x8b, 0x15, 0x01, 0x4a, 0x2b, - 0xab, 0xdb, 0x15, 0x01, 0xf5, 0x8d, 0x15, 0x41, 0x44, 0xd1, 0x1f, 0xc2, - 0x15, 0x01, 0x4b, 0xd8, 0x9e, 0xc3, 0x15, 0x41, 0xa1, 0xdd, 0x01, 0x43, - 0x26, 0x34, 0x11, 0xf4, 0x01, 0xa9, 0xb4, 0x01, 0xaf, 0x14, 0xb2, 0x06, - 0x4d, 0xc9, 0x87, 0xe2, 0x29, 0x40, 0x43, 0x6a, 0x1b, 0x90, 0xf9, 0x01, - 0x42, 0x83, 0x0e, 0x37, 0xf9, 0x41, 0x5d, 0xa5, 0x14, 0x2f, 0xf9, 0x01, - 0x4a, 0xd9, 0xac, 0x20, 0xf3, 0x01, 0x06, 0x44, 0x2f, 0x81, 0x01, 0x02, - 0x34, 0x00, 0x12, 0x50, 0x7a, 0x66, 0x7d, 0x23, 0x00, 0x43, 0xd7, 0x00, - 0x8f, 0xfa, 0x01, 0x43, 0x15, 0x01, 0xbf, 0xf6, 0x41, 0x80, 0x26, 0x44, - 0xbe, 0x2b, 0x70, 0xf3, 0x01, 0x0c, 0xd9, 0x8d, 0x04, 0xf3, 0x73, 0xfa, - 0x41, 0x52, 0x76, 0x4f, 0xa1, 0xbc, 0x01, 0x49, 0x80, 0xb5, 0xa2, 0xbc, - 0x01, 0x4e, 0x0c, 0x78, 0xa0, 0xbc, 0x01, 0x47, 0x0f, 0xd4, 0xa3, 0xbc, - 0x41, 0xa2, 0x35, 0x49, 0x20, 0x38, 0xdf, 0x2a, 0x80, 0x28, 0x49, 0xf2, - 0xb8, 0xde, 0x2a, 0x00, 0x66, 0x20, 0x07, 0x44, 0x29, 0x00, 0x53, 0xd8, - 0x4b, 0x4e, 0x2b, 0x00, 0x47, 0x16, 0xd4, 0xe0, 0x2a, 0xc0, 0x00, 0x80, - 0x01, 0xff, 0x55, 0x14, 0x38, 0xe9, 0x2a, 0x00, 0x4d, 0xc3, 0x5d, 0xe8, - 0x2a, 0x40, 0x4d, 0x71, 0x7e, 0xe7, 0x2a, 0x40, 0x56, 0xff, 0x31, 0x4f, - 0x2b, 0x00, 0x6c, 0x92, 0x01, 0x5f, 0x2b, 0x40, 0x44, 0x6a, 0x69, 0xcd, - 0xf6, 0x01, 0x47, 0xb4, 0xd3, 0xd2, 0xf6, 0x41, 0x43, 0x7a, 0x23, 0xe1, - 0xf6, 0x01, 0x03, 0xc5, 0x00, 0x0a, 0x4a, 0x2f, 0xac, 0xe9, 0x26, 0x00, - 0xf0, 0xa2, 0xf6, 0x41, 0x42, 0x9e, 0x01, 0x0f, 0x00, 0x00, 0x43, 0xfd, - 0x07, 0x0e, 0x00, 0x40, 0x0c, 0xa7, 0x02, 0xaf, 0x07, 0x49, 0x24, 0xae, - 0xe8, 0xfa, 0x01, 0x50, 0x4a, 0x63, 0x58, 0xf9, 0x01, 0x45, 0xac, 0xe5, - 0x18, 0x26, 0x00, 0xb2, 0xbb, 0x02, 0xb6, 0x01, 0xff, 0x46, 0x38, 0xd8, - 0x67, 0xf3, 0x01, 0x0b, 0x8e, 0x8b, 0x01, 0xff, 0xa1, 0xfc, 0x01, 0x43, - 0xa8, 0xf0, 0x5a, 0x04, 0x01, 0x46, 0xba, 0xd7, 0x57, 0x04, 0x01, 0x44, - 0x4e, 0xec, 0x5b, 0x04, 0x01, 0xa5, 0xd1, 0x01, 0x43, 0x31, 0x20, 0x53, - 0x04, 0x01, 0x43, 0x5b, 0xa8, 0x5c, 0x04, 0x01, 0xa8, 0xb6, 0x01, 0xa9, - 0xa3, 0x01, 0x45, 0x99, 0xe4, 0x61, 0x04, 0x01, 0x44, 0x9a, 0xed, 0x52, - 0x04, 0x01, 0x44, 0xce, 0xed, 0x64, 0x04, 0x01, 0xad, 0x82, 0x01, 0x43, - 0x54, 0x22, 0x6f, 0x04, 0x01, 0xaf, 0x5a, 0x44, 0xbe, 0xee, 0x50, 0x04, - 0x01, 0x44, 0x06, 0xef, 0x6e, 0x04, 0x01, 0xb3, 0x42, 0xb4, 0x2c, 0x42, - 0x50, 0x02, 0x73, 0x04, 0x01, 0x43, 0x6c, 0x38, 0x5d, 0x04, 0x01, 0x02, - 0x15, 0x02, 0x12, 0x02, 0x4d, 0x00, 0x06, 0x43, 0x92, 0xf1, 0x5f, 0x04, - 0x41, 0xe1, 0x58, 0x04, 0x01, 0xf7, 0x7f, 0x04, 0x41, 0xe5, 0x62, 0x04, - 0x01, 0x42, 0x36, 0x03, 0x6b, 0x04, 0x41, 0xa8, 0x06, 0x42, 0xf0, 0x04, - 0x51, 0x04, 0x41, 0x42, 0x3f, 0x1c, 0x5e, 0x04, 0x01, 0x43, 0x3f, 0x00, - 0x54, 0x04, 0x41, 0xef, 0x55, 0x04, 0x01, 0x43, 0x09, 0x18, 0x56, 0x04, - 0x41, 0x42, 0x6d, 0x00, 0x74, 0x04, 0x01, 0x42, 0x62, 0x01, 0x76, 0x04, - 0x01, 0xee, 0x6a, 0x04, 0x01, 0x43, 0x1a, 0x0a, 0x75, 0x04, 0x01, 0xf2, - 0x79, 0x04, 0x01, 0x42, 0xfe, 0x07, 0x6c, 0x04, 0x41, 0x46, 0x06, 0x18, - 0x60, 0x04, 0x01, 0x43, 0x29, 0x02, 0x65, 0x04, 0x41, 0x42, 0x1a, 0x00, - 0x7e, 0x04, 0x01, 0x42, 0x73, 0x02, 0x72, 0x04, 0x01, 0xe6, 0x66, 0x04, - 0x41, 0x44, 0xa6, 0xeb, 0x63, 0x04, 0x01, 0x43, 0x75, 0x44, 0x59, 0x04, - 0x41, 0xa1, 0x0c, 0x42, 0x15, 0x12, 0x67, 0x04, 0x01, 0x42, 0xcf, 0x00, - 0x7b, 0x04, 0x41, 0xf2, 0x7d, 0x04, 0x01, 0xf4, 0x70, 0x04, 0x41, 0x42, - 0x3b, 0x01, 0x69, 0x04, 0x01, 0x42, 0x8c, 0x09, 0x71, 0x04, 0x01, 0xe8, - 0x6d, 0x04, 0x01, 0x42, 0x46, 0x00, 0x7a, 0x04, 0x01, 0xb2, 0x0c, 0x42, - 0xa4, 0x02, 0x68, 0x04, 0x01, 0x42, 0x15, 0x01, 0x77, 0x04, 0x41, 0xe5, - 0x78, 0x04, 0x01, 0x43, 0xca, 0x64, 0x7c, 0x04, 0x41, 0x04, 0x8b, 0x4c, - 0x04, 0xeb, 0x88, 0xf9, 0x41, 0x51, 0x93, 0x56, 0xc7, 0x11, 0x01, 0x51, - 0xf8, 0x57, 0xdd, 0x11, 0x01, 0xa4, 0xf6, 0x03, 0xa5, 0xe7, 0x03, 0x4a, - 0x40, 0x5f, 0xdc, 0x11, 0x01, 0x07, 0xc1, 0x05, 0xc4, 0x01, 0x42, 0xe9, - 0x04, 0xc4, 0x11, 0x01, 0xb3, 0x55, 0x06, 0x6c, 0x38, 0x01, 0xff, 0x4d, - 0x6f, 0x84, 0xcb, 0x11, 0x01, 0x05, 0x2f, 0x03, 0x01, 0xff, 0xa1, 0x37, - 0xe5, 0xbc, 0x11, 0x01, 0xe9, 0xb4, 0x11, 0x81, 0x2a, 0xef, 0xbe, 0x11, - 0x01, 0x4f, 0x54, 0x70, 0xce, 0x11, 0x01, 0xf5, 0xb6, 0x11, 0x81, 0x17, - 0x08, 0x9b, 0xbe, 0x01, 0xff, 0xec, 0xba, 0x11, 0x81, 0x09, 0xf2, 0xb8, - 0x11, 0xc1, 0x00, 0xf2, 0xb9, 0x11, 0x41, 0xec, 0xbb, 0x11, 0x41, 0xf5, - 0xb7, 0x11, 0x41, 0xe9, 0xb5, 0x11, 0x41, 0xe1, 0xb3, 0x11, 0x01, 0xe9, - 0xbd, 0x11, 0x01, 0xf5, 0xbf, 0x11, 0x41, 0x4a, 0x81, 0xa5, 0xc9, 0x11, - 0x01, 0xa5, 0x4d, 0x04, 0x30, 0x03, 0x06, 0x49, 0x2f, 0xbe, 0xcd, 0x11, - 0x41, 0xa1, 0x35, 0x4b, 0x4f, 0x23, 0x80, 0x11, 0x01, 0x54, 0x77, 0x42, - 0xcf, 0x11, 0x01, 0x4b, 0xc0, 0x9b, 0xc2, 0x11, 0x01, 0x45, 0x5a, 0x3e, - 0xca, 0x11, 0x01, 0x47, 0x0c, 0xd3, 0xdb, 0x11, 0x01, 0x4b, 0x32, 0xa2, - 0xc3, 0x11, 0x01, 0x02, 0x02, 0x00, 0x01, 0xff, 0x44, 0x5d, 0x23, 0xc0, - 0x11, 0x01, 0x45, 0xa3, 0x4a, 0x82, 0x11, 0x41, 0x47, 0xd1, 0x15, 0x81, - 0x11, 0x01, 0x47, 0xf2, 0x86, 0xc1, 0x11, 0x41, 0x0b, 0x92, 0x98, 0x06, - 0x47, 0x38, 0x20, 0xc8, 0x11, 0x41, 0xd1, 0xde, 0x11, 0x01, 0xd2, 0xdf, - 0x11, 0x41, 0xe1, 0x83, 0x11, 0x81, 0x86, 0x02, 0xa2, 0xf9, 0x01, 0xa3, - 0xec, 0x01, 0xa4, 0xd3, 0x01, 0xe5, 0x8d, 0x11, 0x01, 0xa7, 0xc2, 0x01, - 0x42, 0x22, 0x00, 0xb2, 0x11, 0x01, 0xe9, 0x85, 0x11, 0x81, 0xb2, 0x01, - 0xaa, 0xa5, 0x01, 0xab, 0x98, 0x01, 0xac, 0x8b, 0x01, 0x42, 0x6c, 0x00, - 0xa9, 0x11, 0x01, 0xae, 0x6d, 0xef, 0x8f, 0x11, 0x01, 0xb0, 0x5d, 0x42, - 0x71, 0x00, 0xab, 0x11, 0x01, 0xb3, 0x45, 0xb4, 0x2c, 0xf5, 0x87, 0x11, - 0x81, 0x23, 0xb6, 0x06, 0x42, 0x34, 0x22, 0xaa, 0x11, 0x41, 0xe1, 0xae, - 0x11, 0x01, 0x07, 0x9c, 0xbe, 0x01, 0xff, 0xec, 0x8b, 0x11, 0x81, 0x09, - 0xf2, 0x89, 0x11, 0xc1, 0x00, 0xf2, 0x8a, 0x11, 0x41, 0xec, 0x8c, 0x11, - 0x41, 0xf5, 0x88, 0x11, 0x41, 0xe1, 0xa0, 0x11, 0x01, 0x42, 0x22, 0x00, - 0xa1, 0x11, 0x01, 0xb4, 0x01, 0xff, 0xe1, 0x9b, 0x11, 0x01, 0x42, 0x22, - 0x00, 0x9c, 0x11, 0x41, 0xe1, 0xb1, 0x11, 0x01, 0x42, 0x22, 0x00, 0xaf, - 0x11, 0x01, 0x42, 0x15, 0x06, 0xb0, 0x11, 0x41, 0xe1, 0xa5, 0x11, 0x01, - 0x42, 0x22, 0x00, 0xa6, 0x11, 0x41, 0xe1, 0xa4, 0x11, 0x01, 0x42, 0x24, - 0x02, 0x95, 0x11, 0x01, 0x42, 0xff, 0x04, 0x9f, 0x11, 0x01, 0x42, 0x34, - 0x22, 0x9a, 0x11, 0x41, 0xe1, 0xac, 0x11, 0x01, 0x42, 0x74, 0x00, 0xad, - 0x11, 0x41, 0xe1, 0x91, 0x11, 0x01, 0x42, 0x22, 0x00, 0x92, 0x11, 0x41, - 0xe1, 0x98, 0x11, 0x01, 0x42, 0x22, 0x00, 0x99, 0x11, 0x41, 0xe9, 0x86, - 0x11, 0x41, 0xe1, 0x93, 0x11, 0x01, 0x42, 0x22, 0x00, 0x94, 0x11, 0x41, - 0xe1, 0xa2, 0x11, 0x01, 0xa4, 0x06, 0x42, 0x22, 0x00, 0xa3, 0x11, 0x41, - 0xe1, 0x9d, 0x11, 0x01, 0x42, 0x22, 0x00, 0x9e, 0x11, 0x41, 0xe1, 0x96, - 0x11, 0x01, 0x42, 0x22, 0x00, 0x97, 0x11, 0x41, 0xe1, 0xa7, 0x11, 0x01, - 0x42, 0x22, 0x00, 0xa8, 0x11, 0x41, 0xe1, 0x84, 0x11, 0x01, 0xe9, 0x8e, - 0x11, 0x01, 0xf5, 0x90, 0x11, 0x41, 0x43, 0x8f, 0xb8, 0xda, 0x11, 0x01, - 0x55, 0x65, 0x3e, 0xcc, 0x11, 0x41, 0x44, 0xd1, 0x1f, 0xc5, 0x11, 0x01, - 0x05, 0xc5, 0x06, 0x06, 0x4b, 0xd8, 0x9e, 0xc6, 0x11, 0x41, 0x45, 0xc3, - 0x0a, 0xd8, 0x11, 0x01, 0xa6, 0x2e, 0x44, 0x46, 0x2a, 0xd9, 0x11, 0x01, - 0x43, 0xbf, 0x0a, 0xd1, 0x11, 0x01, 0xb3, 0x14, 0xb4, 0x06, 0x44, 0xa1, - 0x1d, 0xd0, 0x11, 0x41, 0x44, 0x25, 0x01, 0xd3, 0x11, 0x01, 0x42, 0x15, - 0x02, 0xd2, 0x11, 0x41, 0x44, 0x27, 0x1d, 0xd7, 0x11, 0x01, 0x42, 0x60, - 0x25, 0xd6, 0x11, 0x41, 0x43, 0xa7, 0x05, 0xd5, 0x11, 0x01, 0x43, 0xcb, - 0x06, 0xd4, 0x11, 0x41, 0x46, 0xe7, 0x02, 0x4d, 0x27, 0x00, 0x4b, 0x23, - 0x9c, 0x1e, 0x27, 0x00, 0x44, 0xe2, 0x12, 0x30, 0x27, 0x40, 0xa1, 0xc8, - 0x04, 0xa3, 0xb0, 0x04, 0x43, 0x10, 0x9d, 0xf2, 0x2b, 0x00, 0xa5, 0x9b, - 0x04, 0x45, 0x22, 0x2f, 0x13, 0x23, 0x80, 0xcc, 0x03, 0x44, 0xbe, 0xed, - 0x33, 0xf9, 0x01, 0x02, 0x7d, 0x02, 0xaf, 0x03, 0x08, 0x2a, 0xc7, 0x38, - 0xb2, 0x2a, 0xb3, 0x1c, 0x02, 0xc6, 0x00, 0x0c, 0x4b, 0xd7, 0xa2, 0xa1, - 0xfa, 0x01, 0x45, 0xf2, 0xd2, 0xb9, 0x26, 0x40, 0x45, 0xef, 0x1e, 0x16, - 0x22, 0x00, 0x4e, 0xe0, 0x7b, 0x93, 0x00, 0x40, 0x47, 0x51, 0xb6, 0x45, - 0xfe, 0x00, 0x4b, 0x5c, 0x9f, 0xbc, 0x26, 0x40, 0x65, 0xdc, 0x07, 0x2c, - 0xf9, 0x01, 0x49, 0x77, 0xbe, 0x20, 0x21, 0x40, 0x06, 0xd3, 0x69, 0x06, - 0x46, 0xeb, 0x07, 0xfb, 0x2b, 0x40, 0x09, 0xdd, 0xbb, 0xa1, 0x02, 0x08, - 0x1a, 0xc8, 0x01, 0xff, 0xd1, 0x51, 0xce, 0x81, 0x8b, 0x01, 0xd2, 0x52, - 0xce, 0x81, 0x43, 0xd3, 0x54, 0xce, 0x81, 0x1f, 0xd4, 0x58, 0xce, 0x81, - 0x0d, 0xd5, 0x60, 0xce, 0x81, 0x04, 0xd6, 0x70, 0xce, 0x41, 0xd6, 0x80, - 0xce, 0x41, 0xd5, 0x68, 0xce, 0x81, 0x04, 0xd6, 0x78, 0xce, 0x41, 0xd6, - 0x88, 0xce, 0x41, 0xd4, 0x5c, 0xce, 0x81, 0x0d, 0xd5, 0x64, 0xce, 0x81, - 0x04, 0xd6, 0x74, 0xce, 0x41, 0xd6, 0x84, 0xce, 0x41, 0xd5, 0x6c, 0xce, - 0x81, 0x04, 0xd6, 0x7c, 0xce, 0x41, 0xd6, 0x8c, 0xce, 0x41, 0xd3, 0x56, - 0xce, 0x81, 0x1f, 0xd4, 0x5a, 0xce, 0x81, 0x0d, 0xd5, 0x62, 0xce, 0x81, - 0x04, 0xd6, 0x72, 0xce, 0x41, 0xd6, 0x82, 0xce, 0x41, 0xd5, 0x6a, 0xce, - 0x81, 0x04, 0xd6, 0x7a, 0xce, 0x41, 0xd6, 0x8a, 0xce, 0x41, 0xd4, 0x5e, - 0xce, 0x81, 0x0d, 0xd5, 0x66, 0xce, 0x81, 0x04, 0xd6, 0x76, 0xce, 0x41, - 0xd6, 0x86, 0xce, 0x41, 0xd5, 0x6e, 0xce, 0x81, 0x04, 0xd6, 0x7e, 0xce, - 0x41, 0xd6, 0x8e, 0xce, 0x41, 0xd2, 0x53, 0xce, 0x81, 0x43, 0xd3, 0x55, - 0xce, 0x81, 0x1f, 0xd4, 0x59, 0xce, 0x81, 0x0d, 0xd5, 0x61, 0xce, 0x81, - 0x04, 0xd6, 0x71, 0xce, 0x41, 0xd6, 0x81, 0xce, 0x41, 0xd5, 0x69, 0xce, - 0x81, 0x04, 0xd6, 0x79, 0xce, 0x41, 0xd6, 0x89, 0xce, 0x41, 0xd4, 0x5d, - 0xce, 0x81, 0x0d, 0xd5, 0x65, 0xce, 0x81, 0x04, 0xd6, 0x75, 0xce, 0x41, - 0xd6, 0x85, 0xce, 0x41, 0xd5, 0x6d, 0xce, 0x81, 0x04, 0xd6, 0x7d, 0xce, - 0x41, 0xd6, 0x8d, 0xce, 0x41, 0xd3, 0x57, 0xce, 0x81, 0x1f, 0xd4, 0x5b, - 0xce, 0x81, 0x0d, 0xd5, 0x63, 0xce, 0x81, 0x04, 0xd6, 0x73, 0xce, 0x41, - 0xd6, 0x83, 0xce, 0x41, 0xd5, 0x6b, 0xce, 0x81, 0x04, 0xd6, 0x7b, 0xce, - 0x41, 0xd6, 0x8b, 0xce, 0x41, 0xd4, 0x5f, 0xce, 0x81, 0x0d, 0xd5, 0x67, - 0xce, 0x81, 0x04, 0xd6, 0x77, 0xce, 0x41, 0xd6, 0x87, 0xce, 0x41, 0xd5, - 0x6f, 0xce, 0x81, 0x04, 0xd6, 0x7f, 0xce, 0x41, 0xd6, 0x8f, 0xce, 0x41, - 0xd1, 0x21, 0xcc, 0x81, 0x1f, 0xd2, 0x22, 0xcc, 0x81, 0x0d, 0xd3, 0x24, - 0xcc, 0x81, 0x04, 0xd4, 0x28, 0xcc, 0x41, 0xd4, 0x2c, 0xcc, 0x41, 0xd3, - 0x26, 0xcc, 0x81, 0x04, 0xd4, 0x2a, 0xcc, 0x41, 0xd4, 0x2e, 0xcc, 0x41, - 0xd2, 0x23, 0xcc, 0x81, 0x0d, 0xd3, 0x25, 0xcc, 0x81, 0x04, 0xd4, 0x29, - 0xcc, 0x41, 0xd4, 0x2d, 0xcc, 0x41, 0xd3, 0x27, 0xcc, 0x81, 0x04, 0xd4, - 0x2b, 0xcc, 0x41, 0xd4, 0x2f, 0xcc, 0x41, 0x45, 0xc4, 0x3a, 0x3b, 0x00, - 0x00, 0x61, 0x38, 0x0d, 0x32, 0x2a, 0x00, 0x47, 0xf0, 0xd2, 0xba, 0x26, - 0x40, 0x09, 0xbf, 0xb5, 0x01, 0xff, 0x45, 0xc3, 0x0a, 0xf8, 0xfb, 0x01, - 0xa6, 0x2e, 0x44, 0x46, 0x2a, 0xf9, 0xfb, 0x01, 0x43, 0xbf, 0x0a, 0xf1, - 0xfb, 0x01, 0xb3, 0x14, 0xb4, 0x06, 0x44, 0xa1, 0x1d, 0xf0, 0xfb, 0x41, - 0x44, 0x25, 0x01, 0xf3, 0xfb, 0x01, 0x42, 0x15, 0x02, 0xf2, 0xfb, 0x41, - 0x44, 0x27, 0x1d, 0xf7, 0xfb, 0x01, 0x42, 0x60, 0x25, 0xf6, 0xfb, 0x41, - 0x43, 0xa7, 0x05, 0xf5, 0xfb, 0x01, 0x43, 0xcb, 0x06, 0xf4, 0xfb, 0x41, - 0x4f, 0xa7, 0x68, 0x48, 0xf6, 0x01, 0x45, 0x91, 0xe2, 0x31, 0xf3, 0x41, - 0x4f, 0xa0, 0x6f, 0x48, 0xf9, 0x01, 0xb4, 0x01, 0xff, 0x48, 0x96, 0x04, - 0xa7, 0x00, 0x00, 0x42, 0x0c, 0x00, 0x14, 0x23, 0x40, 0xec, 0xad, 0xf9, - 0x01, 0xf4, 0xba, 0xf4, 0x41, 0xa1, 0x8a, 0x01, 0x44, 0x29, 0xe2, 0xeb, - 0xf3, 0x81, 0x7d, 0xaf, 0x64, 0xb2, 0x01, 0xff, 0xa5, 0x53, 0x04, 0x4c, - 0x06, 0x0c, 0x43, 0x44, 0x20, 0xdc, 0xf4, 0x01, 0x44, 0xf9, 0x4a, 0x08, - 0x21, 0x40, 0x08, 0xb9, 0x05, 0x1b, 0x54, 0xfa, 0x1e, 0x70, 0xf6, 0x01, - 0x06, 0x0c, 0x07, 0x01, 0xff, 0xe5, 0x2f, 0x21, 0x00, 0xe7, 0x0a, 0x21, - 0x00, 0xec, 0x13, 0x21, 0x00, 0xef, 0x34, 0x21, 0x40, 0xe2, 0x2c, 0x21, - 0x00, 0xe5, 0x30, 0x21, 0x00, 0xe6, 0x31, 0x21, 0x00, 0xe8, 0x0b, 0x21, - 0x00, 0xe9, 0x10, 0x21, 0x00, 0xec, 0x12, 0x21, 0x00, 0xed, 0x33, 0x21, - 0x00, 0xf0, 0x18, 0x21, 0x00, 0xf2, 0x1b, 0x21, 0x40, 0x42, 0x92, 0x01, - 0xb5, 0xf5, 0x01, 0x47, 0xa2, 0xd4, 0x9b, 0xfa, 0x41, 0x44, 0xe5, 0xd2, - 0xf4, 0xf6, 0x01, 0x03, 0xeb, 0xd2, 0x01, 0xff, 0x42, 0x10, 0x00, 0x82, - 0xf9, 0x01, 0x42, 0xc4, 0x02, 0x4f, 0x26, 0x40, 0x48, 0x02, 0xc0, 0x92, - 0xf3, 0x41, 0x43, 0xec, 0x00, 0x96, 0x26, 0x00, 0x42, 0x6e, 0x1b, 0xe3, - 0xf9, 0x41, 0x05, 0x2b, 0x74, 0x81, 0x08, 0x49, 0xd6, 0xb6, 0x50, 0x26, - 0x00, 0x46, 0xdc, 0xd9, 0xf5, 0x26, 0x00, 0x51, 0xf6, 0x59, 0x76, 0xf3, - 0x01, 0xac, 0xd8, 0x07, 0x08, 0x20, 0x69, 0xcf, 0x04, 0xae, 0xa1, 0x04, - 0x42, 0x0d, 0x00, 0x7b, 0xf9, 0x01, 0xb4, 0x85, 0x04, 0x02, 0x42, 0x00, - 0x06, 0x47, 0xd3, 0xd4, 0xb7, 0xf3, 0x41, 0x07, 0x52, 0xcc, 0x06, 0x44, - 0x9a, 0xee, 0x95, 0xf9, 0x41, 0x54, 0x33, 0x40, 0xb4, 0xa8, 0x00, 0xa4, - 0x96, 0x03, 0x07, 0xc1, 0x05, 0x6f, 0x05, 0x2f, 0x03, 0x4e, 0x0b, 0xd1, - 0x75, 0x01, 0xff, 0xa1, 0x3b, 0xe5, 0xbe, 0xa8, 0x80, 0x32, 0xe9, 0xb6, - 0xa8, 0x80, 0x29, 0xef, 0xc1, 0xa8, 0x80, 0x20, 0xf5, 0xb8, 0xa8, 0x80, - 0x17, 0x08, 0x9b, 0xbe, 0x01, 0xff, 0xec, 0xbc, 0xa8, 0x80, 0x09, 0xf2, - 0xba, 0xa8, 0xc0, 0x00, 0xf2, 0xbb, 0xa8, 0x40, 0xec, 0xbd, 0xa8, 0x40, - 0xf5, 0xb9, 0xa8, 0x40, 0xef, 0xc2, 0xa8, 0x40, 0xe9, 0xb7, 0xa8, 0x40, - 0xe5, 0xbf, 0xa8, 0x40, 0xe1, 0xb5, 0xa8, 0x00, 0xe9, 0xc0, 0xa8, 0x00, - 0xf5, 0xc3, 0xa8, 0x40, 0x48, 0xd0, 0x15, 0x80, 0xa8, 0x00, 0x4b, 0x4f, - 0x23, 0xc5, 0xa8, 0x00, 0x02, 0x02, 0x00, 0x01, 0xff, 0x44, 0x5d, 0x23, - 0xc4, 0xa8, 0x00, 0x45, 0xa3, 0x4a, 0x81, 0xa8, 0x40, 0xe1, 0x82, 0xa8, - 0x80, 0x91, 0x02, 0xa2, 0x84, 0x02, 0xa3, 0xf7, 0x01, 0xa4, 0xde, 0x01, - 0xe5, 0x8c, 0xa8, 0x80, 0xd4, 0x01, 0xa7, 0xc7, 0x01, 0x42, 0x22, 0x00, - 0xb2, 0xa8, 0x00, 0xe9, 0x84, 0xa8, 0x80, 0xb7, 0x01, 0xaa, 0xaa, 0x01, - 0xab, 0x9d, 0x01, 0xac, 0x90, 0x01, 0x42, 0x6c, 0x00, 0xaa, 0xa8, 0x00, - 0xae, 0x72, 0xef, 0x8f, 0xa8, 0x80, 0x69, 0xb0, 0x5d, 0x42, 0x71, 0x00, - 0xac, 0xa8, 0x00, 0xb3, 0x45, 0xb4, 0x2c, 0xf5, 0x86, 0xa8, 0x80, 0x23, - 0xb6, 0x06, 0x42, 0x34, 0x22, 0xab, 0xa8, 0x40, 0xe1, 0xae, 0xa8, 0x00, - 0x07, 0x9c, 0xbe, 0x01, 0xff, 0xec, 0x8a, 0xa8, 0x80, 0x09, 0xf2, 0x88, - 0xa8, 0xc0, 0x00, 0xf2, 0x89, 0xa8, 0x40, 0xec, 0x8b, 0xa8, 0x40, 0xf5, - 0x87, 0xa8, 0x40, 0xe1, 0xa1, 0xa8, 0x00, 0x42, 0x22, 0x00, 0xa2, 0xa8, - 0x00, 0xb4, 0x01, 0xff, 0xe1, 0x9c, 0xa8, 0x00, 0x42, 0x22, 0x00, 0x9d, - 0xa8, 0x40, 0xe1, 0xb1, 0xa8, 0x00, 0x42, 0x22, 0x00, 0xaf, 0xa8, 0x00, - 0x42, 0x15, 0x06, 0xb0, 0xa8, 0x40, 0xe1, 0xa6, 0xa8, 0x00, 0x42, 0x22, - 0x00, 0xa7, 0xa8, 0x40, 0xef, 0x90, 0xa8, 0x40, 0xe1, 0xa5, 0xa8, 0x00, - 0x42, 0x24, 0x02, 0x96, 0xa8, 0x00, 0x42, 0xff, 0x04, 0xa0, 0xa8, 0x00, - 0x42, 0x34, 0x22, 0x9b, 0xa8, 0x40, 0xe1, 0xad, 0xa8, 0x00, 0x42, 0x74, - 0x00, 0xb3, 0xa8, 0x40, 0xe1, 0x92, 0xa8, 0x00, 0x42, 0x22, 0x00, 0x93, - 0xa8, 0x40, 0xe1, 0x99, 0xa8, 0x00, 0x42, 0x22, 0x00, 0x9a, 0xa8, 0x40, - 0xe9, 0x85, 0xa8, 0x40, 0xe1, 0x94, 0xa8, 0x00, 0x42, 0x22, 0x00, 0x95, - 0xa8, 0x40, 0xe5, 0x8d, 0xa8, 0x40, 0xe1, 0xa3, 0xa8, 0x00, 0xa4, 0x06, - 0x42, 0x22, 0x00, 0xa4, 0xa8, 0x40, 0xe1, 0x9e, 0xa8, 0x00, 0x42, 0x22, - 0x00, 0x9f, 0xa8, 0x40, 0xe1, 0x97, 0xa8, 0x00, 0x42, 0x22, 0x00, 0x98, - 0xa8, 0x40, 0xe1, 0xa8, 0xa8, 0x00, 0x42, 0x22, 0x00, 0xa9, 0xa8, 0x40, - 0xe1, 0x83, 0xa8, 0x00, 0xe9, 0x8e, 0xa8, 0x00, 0xf5, 0x91, 0xa8, 0x40, - 0x44, 0xd1, 0x1f, 0xce, 0xa8, 0x00, 0x05, 0xc5, 0x06, 0x06, 0x4b, 0xd8, - 0x9e, 0xcf, 0xa8, 0x40, 0x45, 0xc3, 0x0a, 0xd8, 0xa8, 0x00, 0xa6, 0x2e, - 0x44, 0x46, 0x2a, 0xd9, 0xa8, 0x00, 0x43, 0xbf, 0x0a, 0xd1, 0xa8, 0x00, - 0xb3, 0x14, 0xb4, 0x06, 0x44, 0xa1, 0x1d, 0xd0, 0xa8, 0x40, 0x44, 0x25, - 0x01, 0xd3, 0xa8, 0x00, 0x42, 0x15, 0x02, 0xd2, 0xa8, 0x40, 0x44, 0x27, - 0x1d, 0xd7, 0xa8, 0x00, 0x42, 0x60, 0x25, 0xd6, 0xa8, 0x40, 0x43, 0xa7, - 0x05, 0xd5, 0xa8, 0x00, 0x43, 0xcb, 0x06, 0xd4, 0xa8, 0x40, 0x46, 0x4a, - 0xd8, 0xf0, 0xf6, 0x81, 0x06, 0x43, 0x5d, 0x01, 0x44, 0x26, 0x40, 0x48, - 0x6a, 0xbf, 0xe1, 0xf4, 0x41, 0x45, 0xa0, 0xe2, 0x6a, 0xf9, 0x01, 0x08, - 0xab, 0x15, 0x01, 0xff, 0x06, 0x01, 0x15, 0x06, 0x54, 0xb3, 0x15, 0x7a, - 0xf6, 0x41, 0x07, 0x3b, 0x01, 0x06, 0x68, 0xdd, 0x04, 0x78, 0xf6, 0x41, - 0x5d, 0xe8, 0x04, 0x77, 0xf6, 0x01, 0x64, 0xd8, 0x09, 0x76, 0xf6, 0x41, - 0x51, 0xb0, 0x4e, 0x36, 0x08, 0x00, 0x07, 0xc1, 0x05, 0xf3, 0x01, 0xad, - 0xb2, 0x01, 0x0c, 0x01, 0x16, 0x51, 0x0b, 0xd1, 0x75, 0x01, 0xff, 0xe1, - 0x23, 0x08, 0x80, 0x43, 0xe5, 0x1d, 0x08, 0x00, 0xe9, 0x2a, 0x08, 0x00, - 0x05, 0x68, 0x33, 0x22, 0xef, 0x2b, 0x08, 0x80, 0x12, 0xb3, 0x04, 0xf5, - 0x27, 0x08, 0x40, 0x46, 0x06, 0xd3, 0x25, 0x08, 0x00, 0x44, 0x00, 0xe8, - 0x2c, 0x08, 0x40, 0x49, 0x65, 0xbe, 0x21, 0x08, 0xc0, 0x00, 0xe1, 0x1e, - 0x08, 0x40, 0xe1, 0x22, 0x08, 0x80, 0x0c, 0xe5, 0x1c, 0x08, 0x00, 0xe9, - 0x29, 0x08, 0x00, 0xf5, 0x26, 0x08, 0x40, 0xe1, 0x1f, 0x08, 0x40, 0xe1, - 0x20, 0x08, 0x40, 0xa1, 0x3b, 0x43, 0x29, 0xb0, 0x33, 0x08, 0x00, 0x4d, - 0x14, 0x84, 0x37, 0x08, 0x00, 0x47, 0xa4, 0xd0, 0x30, 0x08, 0x00, 0x45, - 0x1c, 0x84, 0x39, 0x08, 0x00, 0xb3, 0x15, 0x44, 0x76, 0xef, 0x3b, 0x08, - 0x00, 0xba, 0x01, 0xff, 0x43, 0x93, 0xf0, 0x3a, 0x08, 0x00, 0x44, 0x66, - 0xed, 0x38, 0x08, 0x40, 0x49, 0x4b, 0xb7, 0x35, 0x08, 0x00, 0x4b, 0x54, - 0x9e, 0x3d, 0x08, 0x40, 0x45, 0x68, 0xe3, 0x31, 0x08, 0x00, 0xae, 0x0c, - 0x46, 0x9a, 0xdc, 0x3c, 0x08, 0x00, 0x45, 0x31, 0xe8, 0x34, 0x08, 0x40, - 0x43, 0x06, 0x12, 0x32, 0x08, 0x00, 0x44, 0x12, 0xee, 0x3e, 0x08, 0x40, - 0x04, 0xba, 0x00, 0x15, 0x0f, 0x2a, 0x0c, 0x01, 0xff, 0x4e, 0xf8, 0x75, - 0x1a, 0x08, 0x00, 0xe9, 0x28, 0x08, 0x00, 0x47, 0x05, 0xd3, 0x24, 0x08, - 0x40, 0x46, 0x4b, 0x6a, 0x19, 0x08, 0x00, 0x4e, 0xf8, 0x75, 0x1b, 0x08, - 0x00, 0x42, 0x9e, 0x01, 0x16, 0x08, 0x80, 0x0c, 0x47, 0xa4, 0xd0, 0x2d, - 0x08, 0x00, 0x49, 0x6c, 0xba, 0x18, 0x08, 0x40, 0x45, 0xdb, 0xde, 0x17, - 0x08, 0x40, 0x44, 0xdc, 0xde, 0x00, 0x08, 0x00, 0xa2, 0x72, 0x45, 0xef, - 0x52, 0x03, 0x08, 0x00, 0x42, 0xc8, 0x02, 0x10, 0x08, 0x00, 0x45, 0x7c, - 0xe3, 0x02, 0x08, 0x00, 0xa9, 0x52, 0x44, 0x7e, 0xed, 0x0a, 0x08, 0x00, - 0x45, 0xee, 0xe4, 0x0b, 0x08, 0x00, 0x43, 0xfb, 0x8e, 0x0c, 0x08, 0x00, - 0x43, 0x54, 0x22, 0x0d, 0x08, 0x00, 0x43, 0x4a, 0xf1, 0x12, 0x08, 0x00, - 0x44, 0xf6, 0x52, 0x13, 0x08, 0x00, 0xb3, 0x20, 0xb4, 0x0c, 0x43, 0x03, - 0x76, 0x09, 0x08, 0x00, 0x43, 0xfc, 0x09, 0x06, 0x08, 0x40, 0x43, 0x94, - 0xc0, 0x15, 0x08, 0x00, 0x42, 0x52, 0x00, 0x08, 0x08, 0x00, 0x46, 0xc4, - 0xdc, 0x11, 0x08, 0x40, 0x43, 0x90, 0x00, 0x14, 0x08, 0x00, 0x46, 0x00, - 0xda, 0x0e, 0x08, 0x40, 0xee, 0x0f, 0x08, 0x00, 0xf4, 0x07, 0x08, 0x00, - 0xf9, 0x04, 0x08, 0x40, 0x42, 0x31, 0x12, 0x05, 0x08, 0x00, 0x42, 0x52, - 0x00, 0x01, 0x08, 0x40, 0xb4, 0x06, 0x4a, 0x13, 0x92, 0xe1, 0xfa, 0x41, - 0x47, 0xca, 0xca, 0xc2, 0xf9, 0x01, 0x43, 0x39, 0x0d, 0x13, 0x26, 0x40, - 0x43, 0xd9, 0x12, 0xf7, 0xf9, 0x01, 0x44, 0x01, 0x5d, 0xba, 0xf9, 0x41, - 0xa1, 0x81, 0x21, 0xa5, 0xe4, 0x1a, 0x49, 0x42, 0xb7, 0x8f, 0xf9, 0x01, - 0xa9, 0xd4, 0x0a, 0xaf, 0x81, 0x07, 0xb5, 0x01, 0xff, 0x48, 0xa2, 0xc1, - 0xbd, 0x20, 0x00, 0x4c, 0x85, 0x8d, 0xc9, 0xf3, 0x01, 0x4a, 0x45, 0xaa, - 0xf4, 0x29, 0x00, 0x03, 0xdc, 0xce, 0xf3, 0x04, 0xae, 0x2f, 0x48, 0xf8, - 0x7e, 0xa8, 0x20, 0x00, 0x1a, 0x98, 0x21, 0x01, 0xff, 0x48, 0x9a, 0xc1, - 0xf6, 0x2b, 0x00, 0x46, 0x9c, 0xc1, 0xf4, 0x2b, 0x00, 0x48, 0x6a, 0xc7, - 0xf5, 0x2b, 0x00, 0x48, 0x12, 0xc8, 0xf7, 0x2b, 0x00, 0x49, 0x7b, 0xbd, - 0xf8, 0x2b, 0x00, 0x49, 0x80, 0xbe, 0xf3, 0x2b, 0x40, 0x03, 0x27, 0x03, - 0x0f, 0xae, 0x01, 0xff, 0x42, 0x33, 0x00, 0xc3, 0xf3, 0x01, 0x53, 0x19, - 0x49, 0xbd, 0xf3, 0x41, 0x4d, 0x41, 0x7f, 0xee, 0x16, 0x00, 0x4f, 0x88, - 0x69, 0xf0, 0x16, 0x00, 0x51, 0x1a, 0x58, 0xed, 0x16, 0x00, 0x07, 0xc1, - 0x05, 0x12, 0x54, 0x53, 0x43, 0xec, 0x16, 0x00, 0x52, 0x1a, 0x54, 0xeb, - 0x16, 0x00, 0x4f, 0x70, 0x72, 0xef, 0x16, 0x40, 0xa1, 0xec, 0x03, 0x58, - 0xad, 0x26, 0xd2, 0x16, 0x00, 0xe3, 0xcd, 0x16, 0x80, 0xc8, 0x03, 0xe4, - 0xd1, 0x16, 0x80, 0xab, 0x03, 0xe5, 0xc2, 0x16, 0x80, 0x8d, 0x03, 0xa6, - 0xe1, 0x02, 0xe7, 0xb5, 0x16, 0x80, 0xc8, 0x02, 0x02, 0x22, 0x00, 0xb7, - 0x02, 0xa9, 0x8f, 0x02, 0x47, 0x69, 0xcf, 0xc3, 0x16, 0x00, 0xeb, 0xf1, - 0x16, 0x80, 0xf4, 0x01, 0xac, 0xc8, 0x01, 0x4c, 0x19, 0x90, 0xd7, 0x16, - 0x00, 0x51, 0x06, 0x5b, 0xbe, 0x16, 0x00, 0xef, 0xae, 0x16, 0x80, 0x98, - 0x01, 0x4f, 0x36, 0x70, 0xc8, 0x16, 0x00, 0xf1, 0xe9, 0x16, 0x00, 0x50, - 0xba, 0x64, 0xb1, 0x16, 0x00, 0xb3, 0x34, 0xb4, 0x26, 0x49, 0x26, 0xbe, - 0xa2, 0x16, 0x00, 0xf6, 0xa1, 0x16, 0x00, 0xf7, 0xa5, 0x16, 0x80, 0x11, - 0xf8, 0xea, 0x16, 0x00, 0xf9, 0xa4, 0x16, 0x80, 0x04, 0xfa, 0xce, 0x16, - 0x40, 0xf2, 0xa3, 0x16, 0x40, 0x4b, 0x27, 0xa2, 0xb9, 0x16, 0x40, 0x53, - 0xba, 0x48, 0xa6, 0x16, 0x00, 0x4e, 0xb8, 0x77, 0xcf, 0x16, 0x40, 0xe8, - 0xf2, 0x16, 0x80, 0x12, 0x56, 0xa1, 0x33, 0xcb, 0x16, 0x00, 0x47, 0x84, - 0xd1, 0xca, 0x16, 0x00, 0x43, 0xaa, 0x0a, 0xe5, 0x16, 0x40, 0x09, 0x05, - 0xbb, 0x01, 0xff, 0x44, 0x17, 0x00, 0xc6, 0x16, 0x00, 0x49, 0xbc, 0x26, - 0xd3, 0x16, 0x00, 0x48, 0xfa, 0xc3, 0xbd, 0x16, 0x00, 0x46, 0xf6, 0xda, - 0xd9, 0x16, 0x00, 0x46, 0x11, 0x5b, 0xbf, 0x16, 0x00, 0x45, 0x75, 0x7a, - 0xad, 0x16, 0x00, 0x45, 0xb2, 0x33, 0xcc, 0x16, 0x00, 0x45, 0xc1, 0x77, - 0xd0, 0x16, 0x00, 0x42, 0x7d, 0x21, 0xe7, 0x16, 0x40, 0xe5, 0xaf, 0x16, - 0x00, 0xee, 0xb0, 0x16, 0x00, 0xef, 0xf3, 0x16, 0x00, 0x45, 0xb5, 0xe6, - 0xd5, 0x16, 0x00, 0x43, 0xf2, 0x01, 0xa9, 0x16, 0x00, 0x4e, 0x70, 0x7b, - 0xdf, 0x16, 0x40, 0x51, 0x0a, 0x57, 0xda, 0x16, 0x00, 0x0b, 0xa7, 0x33, - 0x01, 0xff, 0x45, 0x4c, 0xe1, 0xc5, 0x16, 0x00, 0x48, 0xfa, 0xc3, 0xbc, - 0x16, 0x00, 0x46, 0xf6, 0xda, 0xd8, 0x16, 0x00, 0x45, 0x75, 0x7a, 0xac, - 0x16, 0x00, 0x42, 0x7d, 0x21, 0xe6, 0x16, 0x40, 0x03, 0x74, 0x44, 0x01, - 0xff, 0x42, 0x44, 0x00, 0xb4, 0x16, 0x00, 0xe1, 0xb2, 0x16, 0x40, 0x4b, - 0xf8, 0x97, 0xe8, 0x16, 0x00, 0x42, 0x1d, 0x01, 0xdd, 0x16, 0x80, 0x12, - 0x42, 0x0c, 0x00, 0xe1, 0x16, 0x00, 0x4c, 0x3d, 0x93, 0xc1, 0x16, 0x00, - 0x47, 0x9b, 0xd4, 0xc7, 0x16, 0x40, 0x43, 0xb9, 0x77, 0xdc, 0x16, 0x40, - 0x45, 0xc8, 0xe2, 0xbb, 0x16, 0x00, 0x46, 0x1c, 0xd9, 0xba, 0x16, 0x40, - 0x42, 0x17, 0x00, 0xb8, 0x16, 0x00, 0xa5, 0x01, 0xff, 0x49, 0x7b, 0xb4, - 0xb7, 0x16, 0x00, 0xf2, 0xc4, 0x16, 0x40, 0x4d, 0xee, 0x80, 0xa0, 0x16, - 0x00, 0x0d, 0x02, 0x86, 0x01, 0xff, 0xa1, 0x12, 0x42, 0x4e, 0x00, 0xf6, - 0x16, 0x00, 0x42, 0x34, 0x03, 0xf5, 0x16, 0x00, 0x42, 0x55, 0x0d, 0xf4, - 0x16, 0x40, 0xe3, 0xf7, 0x16, 0x00, 0x43, 0xd8, 0x1e, 0xf8, 0x16, 0x40, - 0x42, 0x17, 0x00, 0xe0, 0x16, 0x00, 0x49, 0x6f, 0xb7, 0xd6, 0x16, 0x00, - 0x42, 0x1d, 0x01, 0xb6, 0x16, 0x00, 0x42, 0x53, 0x00, 0xa7, 0x16, 0x40, - 0x4b, 0xe5, 0x96, 0xde, 0x16, 0x00, 0x06, 0xa0, 0x7e, 0x01, 0xff, 0xec, - 0xdb, 0x16, 0x00, 0xee, 0xc0, 0x16, 0x00, 0xf0, 0xd4, 0x16, 0x40, 0x43, - 0x24, 0x6a, 0xe3, 0x16, 0x00, 0xa5, 0x06, 0x46, 0x26, 0xde, 0xe2, 0x16, - 0x40, 0x43, 0x24, 0x6a, 0xe4, 0x16, 0x00, 0xee, 0xb3, 0x16, 0x40, 0x43, - 0x3a, 0x1b, 0xaa, 0x16, 0x00, 0x43, 0xd8, 0x1e, 0xab, 0x16, 0x00, 0x4a, - 0x9f, 0xaa, 0xc9, 0x16, 0x00, 0x46, 0x8c, 0xdb, 0xa8, 0x16, 0x40, 0x06, - 0xc4, 0x06, 0xb2, 0x01, 0x09, 0xb3, 0x58, 0x91, 0x01, 0x07, 0x2f, 0x39, - 0x01, 0xff, 0x05, 0xc3, 0x0a, 0x7e, 0xa6, 0x5f, 0x04, 0x46, 0x2a, 0x4f, - 0x4b, 0x1e, 0x11, 0x72, 0x0e, 0x01, 0xb3, 0x26, 0xb4, 0x01, 0xff, 0x42, - 0x92, 0x01, 0x69, 0x0e, 0x01, 0xa8, 0x0f, 0xb7, 0x01, 0xff, 0x44, 0x29, - 0x1d, 0x6a, 0x0e, 0x01, 0x49, 0x1c, 0x1d, 0x73, 0x0e, 0x41, 0x44, 0x2c, - 0x11, 0x6b, 0x0e, 0x01, 0x4b, 0x8f, 0x17, 0x74, 0x0e, 0x41, 0x04, 0x27, - 0x1d, 0x11, 0x02, 0x60, 0x25, 0x01, 0xff, 0x48, 0x21, 0x11, 0x77, 0x0e, - 0x01, 0x42, 0x2e, 0x11, 0x6e, 0x0e, 0x41, 0x48, 0x21, 0x11, 0x78, 0x0e, - 0x01, 0x42, 0x2e, 0x11, 0x6f, 0x0e, 0x41, 0x48, 0x21, 0x11, 0x7a, 0x0e, - 0x01, 0x42, 0x2e, 0x11, 0x71, 0x0e, 0x41, 0xa9, 0x0f, 0xaf, 0x01, 0xff, - 0x43, 0x2d, 0x11, 0x6c, 0x0e, 0x01, 0x4a, 0xa3, 0xb0, 0x75, 0x0e, 0x41, - 0x43, 0x09, 0x4c, 0x6d, 0x0e, 0x01, 0x4a, 0xb2, 0x38, 0x76, 0x0e, 0x41, - 0x48, 0x21, 0x11, 0x79, 0x0e, 0x01, 0xf9, 0x70, 0x0e, 0x41, 0x04, 0xbf, - 0x0a, 0x06, 0x4a, 0x03, 0xb0, 0x7e, 0x0e, 0x41, 0x44, 0x22, 0x00, 0x7b, - 0x0e, 0x01, 0x47, 0x2a, 0x01, 0x7c, 0x0e, 0x01, 0x45, 0x63, 0x73, 0x7d, - 0x0e, 0x41, 0x45, 0xc3, 0x0a, 0x67, 0x0e, 0x01, 0xa6, 0x29, 0x44, 0x46, - 0x2a, 0x68, 0x0e, 0x01, 0x43, 0xbf, 0x0a, 0x60, 0x0e, 0x01, 0xb3, 0x0f, - 0xb4, 0x01, 0xff, 0x44, 0x25, 0x01, 0x62, 0x0e, 0x01, 0x42, 0x15, 0x02, - 0x61, 0x0e, 0x41, 0x44, 0x27, 0x1d, 0x66, 0x0e, 0x01, 0x42, 0x60, 0x25, - 0x65, 0x0e, 0x41, 0x43, 0xa7, 0x05, 0x64, 0x0e, 0x01, 0x43, 0xcb, 0x06, - 0x63, 0x0e, 0x41, 0x52, 0xe6, 0x4e, 0x60, 0xf3, 0x01, 0x48, 0xc2, 0xc1, - 0x16, 0xf9, 0x01, 0x42, 0x36, 0x01, 0xa8, 0xfa, 0x81, 0xb6, 0x03, 0x02, - 0x0f, 0x07, 0x8c, 0x03, 0x04, 0xd5, 0x17, 0x82, 0x01, 0xaf, 0x74, 0x42, - 0x1b, 0x03, 0x39, 0xf3, 0x81, 0x67, 0x06, 0x17, 0x21, 0x45, 0x03, 0xf3, - 0x0a, 0x06, 0x45, 0x17, 0xe9, 0xa3, 0xf6, 0x41, 0x80, 0x2d, 0x0e, 0xc0, - 0x75, 0x01, 0xff, 0x43, 0xb4, 0xf0, 0x65, 0xf2, 0x01, 0x42, 0x15, 0x16, - 0x60, 0xf2, 0x01, 0x42, 0x5b, 0x15, 0x61, 0xf2, 0x01, 0x02, 0xa4, 0x02, - 0x06, 0x42, 0x93, 0x0c, 0x63, 0xf2, 0x41, 0x42, 0x3c, 0x01, 0x62, 0xf2, - 0x01, 0x46, 0xc6, 0xdd, 0x64, 0xf2, 0x41, 0x47, 0x25, 0xd2, 0xcd, 0xf4, - 0x01, 0x46, 0x5a, 0xdd, 0x8b, 0xf7, 0x41, 0x49, 0xc3, 0xb4, 0x3a, 0x21, - 0x00, 0x53, 0x1d, 0x21, 0x67, 0x27, 0x00, 0x58, 0x5d, 0x28, 0x65, 0x27, - 0x00, 0x5d, 0x8d, 0x15, 0xcd, 0x2b, 0x00, 0x57, 0x0a, 0x31, 0xcf, 0x2b, - 0x40, 0x43, 0xc3, 0x05, 0xf5, 0xf3, 0x41, 0x44, 0xee, 0x0c, 0x13, 0xf4, - 0x01, 0x4b, 0xf3, 0xa0, 0xdc, 0xfa, 0x41, 0x47, 0x4b, 0xcc, 0x9a, 0x01, - 0x01, 0x4e, 0xd2, 0x74, 0x9b, 0x01, 0x01, 0xa4, 0xe4, 0x01, 0x08, 0xb5, - 0x5b, 0x33, 0x4e, 0x04, 0x7a, 0x97, 0x01, 0x01, 0xb3, 0x06, 0x4a, 0x9a, - 0x9d, 0x91, 0x01, 0x41, 0xa5, 0x06, 0x4b, 0x3c, 0x9b, 0x95, 0x01, 0x41, - 0x4b, 0x99, 0x9d, 0x92, 0x01, 0x01, 0x4d, 0x3a, 0x87, 0x98, 0x01, 0x01, - 0x02, 0xaf, 0x06, 0x01, 0xff, 0x48, 0xda, 0xc0, 0x90, 0x01, 0x01, 0x48, - 0xfe, 0x48, 0x93, 0x01, 0x41, 0xa5, 0x9e, 0x01, 0xa6, 0x68, 0x44, 0x46, - 0x2a, 0x68, 0x21, 0x00, 0x43, 0xbf, 0x0a, 0x60, 0x21, 0x80, 0x3e, 0x54, - 0x1b, 0x44, 0x83, 0x21, 0x00, 0xb3, 0x23, 0xb4, 0x01, 0xff, 0x42, 0x92, - 0x01, 0x69, 0x21, 0x80, 0x13, 0x44, 0x25, 0x01, 0x62, 0x21, 0x00, 0xb7, - 0x01, 0xff, 0x44, 0x46, 0x2b, 0x6b, 0x21, 0x00, 0xef, 0x61, 0x21, 0x40, - 0x49, 0xd4, 0x5c, 0x82, 0x21, 0x40, 0x44, 0x27, 0x1d, 0x66, 0x21, 0x00, - 0x42, 0x60, 0x25, 0x65, 0x21, 0xc0, 0x00, 0x4a, 0xa1, 0xa3, 0x85, 0x21, - 0x40, 0x80, 0x01, 0xff, 0x47, 0x22, 0x11, 0x6d, 0x21, 0x80, 0x0d, 0x48, - 0xd5, 0x5c, 0x6f, 0x21, 0xc0, 0x00, 0x44, 0x8a, 0xe9, 0x80, 0x21, 0x40, - 0x49, 0xd4, 0x5c, 0x88, 0x21, 0x40, 0xa9, 0x06, 0x43, 0xcb, 0x06, 0x63, - 0x21, 0x40, 0x43, 0x09, 0x4c, 0x6c, 0x21, 0x80, 0x16, 0x42, 0x32, 0x00, - 0x64, 0x21, 0xc0, 0x00, 0x80, 0x01, 0xff, 0x47, 0x22, 0x11, 0x6e, 0x21, - 0x00, 0x48, 0xd5, 0x5c, 0x81, 0x21, 0x40, 0x80, 0x01, 0xff, 0x4a, 0x43, - 0xa7, 0x86, 0x21, 0x00, 0x48, 0xd5, 0x5c, 0x87, 0x21, 0x40, 0x44, 0xc9, - 0x00, 0x67, 0x21, 0x00, 0x45, 0x0b, 0x6e, 0x6a, 0x21, 0x40, 0x4c, 0xdd, - 0x8c, 0x96, 0x01, 0x01, 0x53, 0xf3, 0x48, 0x94, 0x01, 0x01, 0x4d, 0xe3, - 0x87, 0x99, 0x01, 0x41, 0x49, 0x17, 0xb2, 0xfb, 0xf9, 0x01, 0xa5, 0x06, - 0x59, 0xc5, 0x23, 0x23, 0xf9, 0x41, 0x4e, 0x26, 0x75, 0xde, 0xf5, 0x01, - 0x02, 0x18, 0x00, 0x01, 0xff, 0x47, 0x3f, 0x63, 0xa2, 0xf3, 0x01, 0x45, - 0xdc, 0xe7, 0xfc, 0xf6, 0x41, 0x42, 0xc2, 0x05, 0x80, 0xf6, 0x41, 0x47, - 0xed, 0x4a, 0xfc, 0xfd, 0x00, 0x44, 0x44, 0x84, 0x80, 0xf3, 0x81, 0xb3, - 0x0f, 0x03, 0xe3, 0x07, 0xa2, 0x0f, 0x43, 0xaa, 0x04, 0x46, 0xf9, 0x01, - 0x03, 0xca, 0x00, 0x4a, 0x42, 0x1d, 0x01, 0x8d, 0xf4, 0x81, 0x11, 0x17, - 0x52, 0x30, 0x01, 0xff, 0x50, 0xaa, 0x61, 0x2b, 0x29, 0x00, 0x50, 0x83, - 0x3f, 0x30, 0x29, 0x40, 0x80, 0x0c, 0x49, 0xc8, 0xb5, 0x90, 0xfa, 0x01, - 0x48, 0x72, 0xc4, 0x6d, 0xf5, 0x41, 0x45, 0x5c, 0x00, 0xda, 0x02, 0x00, - 0x44, 0x1a, 0xec, 0xdf, 0xf6, 0x01, 0x48, 0xa9, 0x0c, 0x57, 0x22, 0x00, - 0x4b, 0x52, 0x9b, 0x56, 0x22, 0x00, 0x48, 0xdc, 0x1c, 0x18, 0x22, 0x00, - 0x45, 0x9c, 0x01, 0x30, 0x2e, 0x40, 0x80, 0xc6, 0x08, 0x8d, 0xe3, 0x06, - 0x55, 0xc9, 0x3a, 0x3d, 0x2a, 0x00, 0x06, 0xa9, 0x01, 0x01, 0xff, 0x45, - 0xce, 0x00, 0x92, 0x21, 0x80, 0xba, 0x04, 0xa2, 0x9b, 0x04, 0x50, 0x0a, - 0x60, 0x3e, 0xf8, 0x01, 0xa4, 0xdb, 0x03, 0xa6, 0xcc, 0x03, 0xa8, 0xcb, - 0x02, 0x57, 0x86, 0x2e, 0xa7, 0xf8, 0x01, 0x51, 0x8e, 0x5b, 0xfe, 0x21, - 0x00, 0xb0, 0xb0, 0x02, 0x4f, 0x72, 0x70, 0x46, 0x2b, 0x00, 0xb2, 0x9b, - 0x02, 0xb3, 0x81, 0x02, 0xb4, 0x1f, 0xb7, 0x01, 0xff, 0x49, 0x21, 0xb4, - 0x9d, 0x21, 0x00, 0x4a, 0xfb, 0x0f, 0xe8, 0x21, 0xc0, 0x00, 0x80, 0x01, - 0xff, 0x49, 0xc4, 0xb6, 0xf0, 0x21, 0x00, 0x59, 0x25, 0x1e, 0x96, 0xf8, - 0x41, 0x55, 0x82, 0x3c, 0xa3, 0xf8, 0x01, 0x02, 0x0d, 0x00, 0x51, 0x02, - 0x15, 0x02, 0x01, 0xff, 0x4d, 0x16, 0x7e, 0xa0, 0x21, 0x00, 0x08, 0x09, - 0x02, 0x01, 0xff, 0x06, 0xce, 0x00, 0x06, 0x51, 0x26, 0x5d, 0x10, 0x29, - 0x40, 0x48, 0xfd, 0xb1, 0x05, 0x29, 0x00, 0x05, 0x51, 0x00, 0x01, 0xff, - 0x56, 0xc5, 0x32, 0x01, 0x29, 0x00, 0xb4, 0x06, 0x4f, 0xcc, 0x32, 0x00, - 0x29, 0x40, 0x43, 0x24, 0x17, 0x16, 0x29, 0x80, 0x06, 0x52, 0x04, 0x06, - 0xee, 0x2b, 0x40, 0x06, 0x50, 0x00, 0x01, 0xff, 0x56, 0xc5, 0x32, 0x18, - 0x29, 0x00, 0x4f, 0xcc, 0x32, 0x17, 0x29, 0x40, 0x05, 0x04, 0x02, 0x11, - 0x04, 0xcb, 0x1c, 0x01, 0xff, 0x45, 0xce, 0x00, 0xdb, 0x21, 0x00, 0x4a, - 0x2d, 0x5d, 0x0f, 0x29, 0x40, 0x4a, 0xe0, 0x01, 0x92, 0xf8, 0x01, 0x08, - 0x09, 0x02, 0x01, 0xff, 0x45, 0xce, 0x00, 0x62, 0x2b, 0x80, 0x0c, 0x4c, - 0x05, 0x8c, 0x6c, 0x2b, 0x00, 0x4d, 0xa7, 0x85, 0x86, 0x2b, 0x40, 0x80, - 0x01, 0xff, 0x64, 0x48, 0x09, 0x82, 0x2b, 0x00, 0x46, 0x82, 0x14, 0x72, - 0x2b, 0x00, 0x05, 0x51, 0x00, 0x01, 0xff, 0x4a, 0x17, 0xa6, 0x2a, 0xf8, - 0x01, 0x07, 0x3b, 0x01, 0x28, 0x4b, 0xef, 0x66, 0x2e, 0xf8, 0x01, 0x09, - 0x4c, 0xb9, 0x12, 0x4c, 0x3d, 0x90, 0x26, 0xf8, 0x01, 0x4c, 0xa9, 0x90, - 0x22, 0xf8, 0x01, 0x50, 0xea, 0x66, 0x32, 0xf8, 0x41, 0x49, 0xa5, 0x01, - 0xa7, 0x2b, 0x00, 0x47, 0x50, 0x02, 0xa5, 0x2b, 0x40, 0x51, 0x1c, 0x05, - 0x7c, 0x2b, 0x00, 0x4f, 0xcc, 0x32, 0x7c, 0x2b, 0x40, 0x4f, 0x6b, 0x65, - 0x52, 0xf8, 0x01, 0x02, 0x7c, 0x00, 0x01, 0xff, 0x4a, 0x2b, 0x92, 0x3a, - 0xf8, 0x01, 0x4b, 0x1f, 0x7b, 0xdd, 0x21, 0x40, 0x57, 0x2a, 0x2e, 0xa5, - 0xf8, 0x01, 0x45, 0x4d, 0xac, 0x6e, 0xf6, 0x41, 0x4c, 0xa8, 0x85, 0xc9, - 0x21, 0x00, 0x4b, 0x48, 0xa2, 0xf8, 0xfa, 0x41, 0xa1, 0x11, 0x05, 0x02, - 0x15, 0x01, 0xff, 0x45, 0xce, 0x00, 0x46, 0xf8, 0x01, 0x50, 0x0a, 0x60, - 0x42, 0xf8, 0x41, 0x42, 0x1b, 0x00, 0xf1, 0xfa, 0x01, 0x06, 0x67, 0x05, - 0x01, 0xff, 0x56, 0x17, 0x35, 0xcc, 0x21, 0x00, 0x0a, 0x6d, 0x05, 0x01, - 0xff, 0x04, 0xa5, 0x01, 0x31, 0x02, 0x50, 0x02, 0x01, 0xff, 0x80, 0x06, - 0x45, 0xa9, 0x01, 0xc0, 0x21, 0x40, 0x06, 0x5c, 0x00, 0x0c, 0x48, 0xfd, - 0xb1, 0x5b, 0x29, 0x00, 0x46, 0x82, 0x14, 0x53, 0x29, 0x40, 0xac, 0x06, - 0x61, 0x5a, 0x05, 0x64, 0x29, 0x40, 0x5d, 0x36, 0x15, 0x68, 0x29, 0x00, - 0x48, 0x9e, 0x69, 0x6c, 0x29, 0x40, 0x80, 0x06, 0x45, 0xa9, 0x01, 0xc1, - 0x21, 0x40, 0x66, 0x16, 0x06, 0x69, 0x29, 0x00, 0x4f, 0x97, 0x69, 0x6d, - 0x29, 0x00, 0x48, 0xfd, 0xb1, 0x5f, 0x29, 0x00, 0x46, 0x82, 0x14, 0x57, - 0x29, 0x40, 0x50, 0x92, 0x58, 0x36, 0xf8, 0x01, 0x60, 0xe5, 0x0f, 0xab, - 0xf8, 0x41, 0x4b, 0x06, 0x8c, 0xe2, 0x21, 0x00, 0x06, 0x3c, 0x01, 0x01, - 0xff, 0x45, 0xce, 0x00, 0xd2, 0x21, 0x80, 0x06, 0x4a, 0x2d, 0x5d, 0x0d, - 0x29, 0x40, 0x80, 0x06, 0x45, 0x22, 0x17, 0x1c, 0x29, 0x40, 0x48, 0xfd, - 0xb1, 0x07, 0x29, 0x00, 0x05, 0x51, 0x00, 0x01, 0xff, 0x46, 0x27, 0x05, - 0xcf, 0x21, 0x00, 0x4f, 0xcc, 0x32, 0x03, 0x29, 0x40, 0x5f, 0x64, 0x10, - 0xa9, 0xf8, 0x01, 0x05, 0xe2, 0x02, 0x06, 0x58, 0xdd, 0x29, 0xa1, 0xf8, - 0x41, 0x45, 0xce, 0x00, 0x95, 0x2b, 0x00, 0x53, 0x8a, 0x47, 0x8a, 0x2b, - 0x40, 0x80, 0x06, 0x45, 0x22, 0x17, 0x1a, 0x29, 0x40, 0xa1, 0xdf, 0x01, - 0x05, 0x7f, 0x05, 0xc7, 0x01, 0x54, 0xb7, 0x43, 0xc4, 0x21, 0x00, 0xb4, - 0x99, 0x01, 0x05, 0x51, 0x00, 0x01, 0xff, 0x50, 0x2a, 0x60, 0xb4, 0x21, - 0x00, 0x02, 0x3b, 0x01, 0x7e, 0x55, 0xd5, 0x01, 0x16, 0xf8, 0x01, 0x44, - 0x5d, 0x0e, 0xaa, 0x21, 0x00, 0xac, 0x5b, 0x59, 0x5b, 0x24, 0x06, 0xf8, - 0x01, 0x4c, 0x21, 0x91, 0x9a, 0xf8, 0x01, 0x4a, 0x33, 0xad, 0x45, 0x29, - 0x00, 0xb3, 0x31, 0xb4, 0x06, 0x4f, 0xcc, 0x32, 0xf8, 0x21, 0x40, 0x43, - 0x24, 0x17, 0xa3, 0x21, 0x80, 0x11, 0x03, 0xfb, 0x0b, 0x01, 0xff, 0x49, - 0xa5, 0x01, 0x0e, 0x2b, 0x00, 0x47, 0x50, 0x02, 0x0f, 0x2b, 0x40, 0x06, - 0x50, 0x00, 0x01, 0xff, 0x56, 0xc5, 0x32, 0x15, 0x29, 0x00, 0x4f, 0xcc, - 0x32, 0x14, 0x29, 0x40, 0x05, 0x0d, 0x07, 0x06, 0x45, 0x28, 0x05, 0x9b, - 0x21, 0x40, 0x55, 0xd5, 0x01, 0x12, 0xf8, 0x01, 0x52, 0x03, 0x06, 0x02, - 0xf8, 0x41, 0x57, 0xd6, 0x28, 0x0a, 0xf8, 0x01, 0xaf, 0x01, 0xff, 0x42, - 0x1f, 0x00, 0xac, 0x21, 0x00, 0x48, 0x0f, 0xab, 0xb2, 0xf8, 0x41, 0x49, - 0x8d, 0xbd, 0x11, 0x29, 0x00, 0x54, 0xc7, 0x32, 0xfb, 0x21, 0x40, 0x07, - 0x8d, 0x2a, 0x11, 0x03, 0x83, 0x14, 0x01, 0xff, 0x42, 0x17, 0x00, 0xe5, - 0x21, 0x00, 0x4c, 0x10, 0x56, 0x1e, 0x29, 0x40, 0x4c, 0x87, 0x00, 0x43, - 0x2b, 0x00, 0x48, 0x8a, 0xc8, 0x44, 0x2b, 0x00, 0xf8, 0x47, 0x29, 0x40, - 0x43, 0x16, 0x00, 0xa6, 0x21, 0x80, 0x06, 0x4f, 0xe5, 0x0b, 0xc1, 0xf8, - 0x41, 0x51, 0x0b, 0x56, 0x20, 0x29, 0x40, 0x05, 0x5d, 0x00, 0x06, 0x63, - 0xac, 0x0a, 0xb6, 0xfb, 0x41, 0x4f, 0x10, 0x69, 0x75, 0x29, 0x00, 0x08, - 0xcc, 0x70, 0x0c, 0x55, 0x3f, 0x3d, 0x42, 0x29, 0x00, 0x4e, 0x93, 0x3d, - 0x74, 0x29, 0x40, 0x4f, 0x10, 0x69, 0x48, 0x2b, 0x00, 0x4e, 0x93, 0x3d, - 0x4c, 0x2b, 0x40, 0x07, 0xa0, 0x2d, 0x9c, 0x01, 0x5b, 0xfe, 0x1a, 0xe5, - 0x26, 0x00, 0x09, 0x9c, 0x01, 0x2b, 0xb3, 0x1d, 0x08, 0xf2, 0xc8, 0x01, - 0xff, 0x49, 0x07, 0xb6, 0x2b, 0x20, 0x00, 0x47, 0x34, 0x03, 0x67, 0x20, - 0x00, 0x44, 0xb9, 0x00, 0x0f, 0x20, 0x00, 0x48, 0x0a, 0xc7, 0x2e, 0x20, - 0x40, 0x5c, 0x72, 0x17, 0xa9, 0x27, 0x00, 0x57, 0x13, 0x2e, 0x38, 0x29, - 0x40, 0xa1, 0x59, 0x54, 0x6f, 0x40, 0xfd, 0x29, 0x00, 0xa4, 0x45, 0x4b, - 0x8f, 0x99, 0x7a, 0xcc, 0x01, 0x47, 0x7b, 0xce, 0x01, 0xcc, 0x01, 0x50, - 0x7a, 0x63, 0x0e, 0xf5, 0x01, 0xb2, 0x0c, 0x4c, 0xa9, 0x93, 0x03, 0xcc, - 0x01, 0x44, 0xd7, 0xc4, 0x9f, 0xcc, 0x41, 0x49, 0x40, 0xb3, 0x99, 0xcc, - 0x01, 0x44, 0x75, 0xaa, 0x67, 0xcc, 0x01, 0xaf, 0x01, 0xff, 0x05, 0x17, - 0x09, 0x06, 0x50, 0x3a, 0x63, 0xa3, 0xcc, 0x41, 0x47, 0xc9, 0xcc, 0xa1, - 0xcc, 0x01, 0x44, 0x6f, 0x20, 0x58, 0xcc, 0x41, 0x44, 0x5e, 0xed, 0x0f, - 0xcc, 0x01, 0x5a, 0x30, 0x21, 0xbb, 0x00, 0x40, 0x4c, 0xf0, 0x0e, 0x2a, - 0x23, 0x00, 0x4a, 0xb3, 0xaf, 0x62, 0xcc, 0x41, 0x56, 0x15, 0x32, 0x8d, - 0x05, 0x00, 0x48, 0x6a, 0xc1, 0x49, 0xcc, 0x01, 0x03, 0xbf, 0x59, 0x20, - 0xb3, 0x01, 0xff, 0x0f, 0xa8, 0x2d, 0x0d, 0x4a, 0xdf, 0xb0, 0xd5, 0x0f, - 0xc0, 0x00, 0x4a, 0xbb, 0x57, 0xd7, 0x0f, 0x40, 0x4c, 0xbd, 0x8b, 0x76, - 0xcc, 0x01, 0x4a, 0x9b, 0x28, 0x72, 0xcc, 0x41, 0xe8, 0x93, 0xcc, 0x81, - 0x04, 0xf4, 0x1c, 0xf9, 0x41, 0x50, 0x95, 0x28, 0x95, 0xcc, 0x41, 0xa1, - 0x93, 0x05, 0x06, 0xe1, 0x02, 0x82, 0x05, 0xa3, 0xd7, 0x04, 0x02, 0x3b, - 0x01, 0xa7, 0x04, 0xa6, 0x90, 0x04, 0x02, 0x22, 0x00, 0xa9, 0x03, 0x14, - 0xb3, 0x42, 0x98, 0x03, 0x56, 0xbf, 0x34, 0x1d, 0x2e, 0x00, 0x60, 0x85, - 0x0f, 0xca, 0x22, 0x00, 0xaf, 0xed, 0x02, 0x4b, 0x50, 0x21, 0x29, 0x00, - 0x80, 0xd0, 0x02, 0x57, 0x9a, 0x2f, 0x0d, 0x2e, 0x00, 0xb3, 0xb4, 0x01, - 0xb4, 0x4b, 0x09, 0x32, 0x00, 0x33, 0xb7, 0x01, 0xff, 0x05, 0xae, 0x02, - 0x06, 0x4b, 0x06, 0x95, 0xd9, 0x29, 0x40, 0xa3, 0x18, 0x52, 0xcb, 0x26, - 0x17, 0x30, 0x00, 0x4b, 0x50, 0x21, 0x86, 0x29, 0x00, 0x4e, 0x27, 0x26, - 0x1b, 0x30, 0x00, 0x56, 0x05, 0x09, 0x19, 0x30, 0x40, 0x4d, 0xb9, 0x67, - 0x0f, 0x30, 0x00, 0x4c, 0x24, 0x0b, 0x84, 0x29, 0x40, 0xa2, 0x06, 0x4d, - 0x1a, 0x2f, 0x06, 0xcc, 0x41, 0x4d, 0x1a, 0x7f, 0x21, 0x2e, 0x00, 0x47, - 0x92, 0xd1, 0xb9, 0x23, 0x40, 0x43, 0xe3, 0x02, 0xa2, 0x22, 0x00, 0xa8, - 0x27, 0x55, 0x06, 0x09, 0x15, 0x30, 0x00, 0xb2, 0x01, 0xff, 0x53, 0xdf, - 0x46, 0x0a, 0x2e, 0x00, 0x04, 0x1b, 0x01, 0x01, 0xff, 0x42, 0x68, 0x00, - 0xbf, 0x22, 0x80, 0x06, 0x56, 0x98, 0x1c, 0x6e, 0xfb, 0x41, 0x54, 0x8f, - 0x3e, 0xce, 0x29, 0x40, 0x04, 0x70, 0x87, 0x28, 0x4c, 0xd5, 0x91, 0xed, - 0xf5, 0x01, 0x04, 0x26, 0x01, 0x01, 0xff, 0x4d, 0xb8, 0x4b, 0x88, 0xfb, - 0x01, 0x09, 0x2a, 0x01, 0x01, 0xff, 0x45, 0x33, 0x01, 0x8a, 0xfb, 0x01, - 0x57, 0x9d, 0x2e, 0xa1, 0xce, 0x01, 0x57, 0xae, 0x30, 0xaa, 0xce, 0x41, - 0x48, 0x6a, 0xc4, 0x0d, 0xcc, 0x01, 0x5a, 0x00, 0x22, 0xc3, 0xfb, 0x41, - 0x55, 0xff, 0x37, 0xc6, 0x27, 0x00, 0xa5, 0x7f, 0xa9, 0x71, 0x02, 0x6f, - 0x02, 0x4f, 0x4d, 0x28, 0x26, 0x5d, 0x00, 0x80, 0x06, 0x53, 0x0a, 0x26, - 0x03, 0x2e, 0x40, 0x80, 0x01, 0xff, 0x49, 0x56, 0x57, 0xa5, 0x23, 0x00, - 0x4c, 0xb9, 0x8f, 0xa6, 0x23, 0x00, 0x4c, 0x99, 0x94, 0xa4, 0x23, 0x00, - 0x05, 0x51, 0x00, 0x01, 0xff, 0x4d, 0xa0, 0x80, 0x58, 0x2e, 0x00, 0x45, - 0x22, 0x7f, 0x46, 0x20, 0x00, 0x46, 0x27, 0x05, 0x56, 0x2e, 0x00, 0x08, - 0xda, 0xc8, 0x06, 0x48, 0x78, 0x58, 0x8c, 0x29, 0x40, 0x4d, 0xb6, 0x7f, - 0x8e, 0x29, 0x00, 0x4a, 0xbd, 0xaf, 0x90, 0x29, 0x40, 0x44, 0xf1, 0x26, - 0x68, 0xf5, 0x81, 0x06, 0x4a, 0x11, 0x7b, 0xe9, 0xf5, 0x41, 0x06, 0x50, - 0x00, 0x01, 0xff, 0x4e, 0xec, 0x78, 0x69, 0xf5, 0x01, 0x51, 0xf3, 0x5c, - 0x6a, 0xf5, 0x41, 0x50, 0x5a, 0x60, 0x27, 0x2e, 0x00, 0x53, 0x48, 0x0b, - 0x19, 0x20, 0x40, 0x50, 0x95, 0x0f, 0xcc, 0x22, 0x00, 0x51, 0xb4, 0x4b, - 0x8b, 0xfb, 0x41, 0x80, 0x01, 0xff, 0x49, 0x56, 0x57, 0x9f, 0x23, 0x00, - 0x4a, 0x0d, 0xab, 0xa0, 0x23, 0x00, 0x4a, 0x8f, 0xb0, 0x9e, 0x23, 0x40, - 0x03, 0xc4, 0x07, 0x0c, 0x4f, 0x18, 0x70, 0xbc, 0xfb, 0x01, 0x49, 0x02, - 0xad, 0xd6, 0x27, 0x40, 0x4c, 0xc3, 0x0a, 0x95, 0x25, 0x00, 0x4d, 0xa1, - 0x1c, 0x87, 0xfb, 0x41, 0x4c, 0xe1, 0x02, 0xe9, 0xfb, 0x01, 0x4c, 0xe3, - 0x10, 0xe1, 0xfb, 0x41, 0x03, 0x24, 0x00, 0x06, 0x55, 0x43, 0x3c, 0x7d, - 0xf5, 0x41, 0x5a, 0x58, 0x1e, 0x00, 0xce, 0x01, 0x02, 0x33, 0x01, 0x38, - 0xa6, 0x2a, 0x65, 0xb7, 0x07, 0x11, 0xce, 0x01, 0x57, 0x9d, 0x2e, 0xa0, - 0xce, 0x01, 0x4c, 0x19, 0x04, 0x8d, 0xfb, 0x01, 0x4b, 0x43, 0xa0, 0xb3, - 0xfb, 0x01, 0x56, 0xa3, 0x36, 0x0e, 0xce, 0x01, 0x57, 0xae, 0x30, 0xab, - 0xce, 0x01, 0x4d, 0xcd, 0x88, 0x0c, 0xce, 0x41, 0x4c, 0xe9, 0x8f, 0xa5, - 0xcc, 0x01, 0x45, 0x40, 0x64, 0xba, 0xfb, 0x41, 0x04, 0xe3, 0x02, 0x06, - 0x43, 0x35, 0x01, 0x90, 0x25, 0x40, 0x46, 0xe7, 0x02, 0xd7, 0x25, 0x00, - 0x44, 0xe2, 0x12, 0xe9, 0x2b, 0x40, 0xa9, 0x06, 0x44, 0xd1, 0x23, 0x0b, - 0x23, 0x40, 0x47, 0xab, 0xb6, 0x7d, 0x29, 0x00, 0x50, 0x62, 0x50, 0x89, - 0xfb, 0x41, 0x59, 0x04, 0x26, 0x05, 0x2e, 0x00, 0x05, 0x3d, 0x01, 0x01, - 0xff, 0xa1, 0x12, 0x4b, 0x50, 0x21, 0x29, 0x2e, 0x00, 0x4e, 0xee, 0x04, - 0x1d, 0x20, 0x00, 0x4c, 0x05, 0x95, 0xdb, 0x29, 0x40, 0x4c, 0xf0, 0x0e, - 0x0b, 0x30, 0x00, 0x56, 0x35, 0x36, 0x70, 0x29, 0x40, 0x46, 0x0b, 0xc2, - 0x09, 0x23, 0x00, 0x4d, 0xb9, 0x67, 0x0d, 0x30, 0x00, 0x4c, 0x24, 0x0b, - 0x7d, 0x00, 0xc0, 0x00, 0x80, 0x01, 0xff, 0x4a, 0x0d, 0xab, 0xad, 0x23, - 0x00, 0x4c, 0x55, 0x90, 0xac, 0x23, 0x00, 0x4a, 0x8f, 0xb0, 0xab, 0x23, - 0x40, 0x52, 0xcb, 0x26, 0x11, 0x30, 0x00, 0x56, 0x05, 0x09, 0x98, 0x29, - 0x40, 0xae, 0x1a, 0xb2, 0x01, 0xff, 0x56, 0x40, 0x17, 0x94, 0x29, 0x00, - 0x09, 0xfa, 0x05, 0x01, 0xff, 0x4c, 0x99, 0x8b, 0xf4, 0x27, 0x00, 0x4c, - 0xd3, 0x14, 0xf4, 0x21, 0x40, 0x02, 0x06, 0x00, 0x43, 0xa7, 0x01, 0xff, - 0x49, 0x2b, 0xb6, 0xef, 0xf5, 0x01, 0x42, 0x68, 0x00, 0x1f, 0x22, 0xc0, - 0x00, 0x80, 0x01, 0xff, 0x47, 0x14, 0x09, 0x09, 0x30, 0x80, 0x23, 0x5a, - 0x28, 0x1f, 0x01, 0x2e, 0x00, 0x53, 0x2f, 0x1f, 0x00, 0x2e, 0x00, 0x53, - 0x2e, 0x4d, 0x9c, 0x29, 0x00, 0x05, 0x51, 0x00, 0x01, 0xff, 0x43, 0x3e, - 0x17, 0xbe, 0x22, 0x00, 0x56, 0x07, 0x33, 0x7c, 0x23, 0x40, 0x49, 0xa5, - 0x3a, 0x92, 0x29, 0x40, 0x56, 0xb9, 0x0a, 0x7f, 0xfb, 0x01, 0x56, 0xfb, - 0x36, 0x7e, 0xfb, 0x41, 0x44, 0x46, 0x1c, 0x59, 0xf3, 0x01, 0x47, 0x4e, - 0xcd, 0x58, 0xf3, 0x41, 0x07, 0xcd, 0x00, 0x01, 0xff, 0x05, 0x4f, 0x14, - 0x31, 0x05, 0xc3, 0x00, 0x21, 0x06, 0xc8, 0x00, 0x11, 0x03, 0x11, 0x15, - 0x01, 0xff, 0x44, 0xc3, 0x00, 0xb2, 0x2b, 0x00, 0x45, 0xc8, 0x00, 0xb3, - 0x2b, 0x40, 0x44, 0xa5, 0x01, 0xb7, 0x2b, 0x00, 0x42, 0x50, 0x02, 0xb5, - 0x2b, 0x40, 0x44, 0xa5, 0x01, 0xb6, 0x2b, 0x00, 0x42, 0x50, 0x02, 0xb4, - 0x2b, 0x40, 0x44, 0xc3, 0x00, 0xb0, 0x2b, 0x00, 0x45, 0xc8, 0x00, 0xb1, - 0x2b, 0x40, 0xa3, 0xb8, 0x05, 0x02, 0x06, 0x00, 0xa7, 0x05, 0x4c, 0x31, - 0x8d, 0x3b, 0x20, 0x00, 0x02, 0xc6, 0x06, 0xaa, 0x04, 0x05, 0x8f, 0xe4, - 0xcb, 0x02, 0x4b, 0x76, 0x57, 0x0c, 0xf6, 0x01, 0x4d, 0x3b, 0x84, 0x97, - 0xf3, 0x01, 0x53, 0xe5, 0x1f, 0xfd, 0xff, 0x00, 0xb3, 0x99, 0x02, 0x05, - 0x7c, 0xe8, 0x82, 0x02, 0xb6, 0x01, 0xff, 0x04, 0x14, 0x04, 0x06, 0x4d, - 0x0b, 0x85, 0x9e, 0xf4, 0x41, 0x80, 0xa9, 0x01, 0x02, 0x06, 0x00, 0x01, - 0xff, 0x45, 0x04, 0x02, 0xa3, 0x29, 0x80, 0x96, 0x01, 0x45, 0xe8, 0x04, - 0x41, 0x2e, 0x00, 0x07, 0x3b, 0x01, 0x79, 0x49, 0x10, 0xb6, 0xb0, 0x29, - 0x00, 0x52, 0x72, 0x50, 0x11, 0x2e, 0x00, 0x60, 0x65, 0x0f, 0x95, 0xf5, - 0x01, 0x48, 0xff, 0x71, 0x10, 0x23, 0x00, 0xb0, 0x53, 0x4d, 0xd6, 0x33, - 0x2e, 0x2e, 0x00, 0xb2, 0x39, 0xb3, 0x2b, 0xb4, 0x06, 0x4c, 0xe1, 0x94, - 0x94, 0xf5, 0x41, 0x06, 0xa6, 0xd9, 0x13, 0x44, 0xae, 0x22, 0x3d, 0x22, - 0x80, 0x06, 0x4b, 0xeb, 0x9f, 0x37, 0x20, 0x40, 0x47, 0xf8, 0x12, 0xcd, - 0x22, 0x40, 0x49, 0x77, 0xb5, 0x93, 0xf5, 0x01, 0x47, 0x08, 0xd4, 0x92, - 0xf5, 0x41, 0x53, 0xcc, 0x46, 0x43, 0x21, 0x00, 0x48, 0x6f, 0x58, 0x4f, - 0x20, 0x40, 0x5f, 0x83, 0x10, 0x91, 0xf5, 0x01, 0x4a, 0x30, 0x44, 0xfe, - 0x2b, 0x00, 0x5a, 0x16, 0x21, 0x19, 0x26, 0x40, 0x4b, 0x31, 0x9b, 0x4b, - 0x20, 0x00, 0x44, 0x64, 0x1a, 0x35, 0x20, 0x40, 0x45, 0x63, 0x1a, 0x36, - 0x20, 0x80, 0x06, 0x4f, 0xf8, 0x71, 0xed, 0x2a, 0x40, 0x4f, 0xed, 0x04, - 0x1d, 0x30, 0x40, 0x4e, 0xc2, 0x5d, 0xa5, 0x29, 0x40, 0x4d, 0x1e, 0x14, - 0x7f, 0xf6, 0x01, 0x45, 0x40, 0x13, 0x8d, 0x00, 0x00, 0x02, 0xc3, 0x01, - 0x2d, 0x47, 0x69, 0x30, 0x5c, 0x00, 0x80, 0x11, 0x15, 0x93, 0x3d, 0x01, - 0xff, 0x4f, 0x37, 0x07, 0x41, 0x2b, 0x00, 0x50, 0xb3, 0x02, 0x47, 0x2b, - 0x40, 0x80, 0x01, 0xff, 0x48, 0xdc, 0x1c, 0xf5, 0x29, 0x00, 0x50, 0x6a, - 0x64, 0xc8, 0x27, 0x00, 0x56, 0x53, 0x37, 0xf7, 0x29, 0x40, 0x5e, 0xc8, - 0x12, 0xc8, 0xf7, 0x01, 0x47, 0x2e, 0x20, 0x8d, 0x00, 0x40, 0x44, 0xc3, - 0x00, 0x90, 0x2b, 0x00, 0x45, 0xc8, 0x00, 0x91, 0x2b, 0x00, 0x46, 0xeb, - 0x07, 0xce, 0x23, 0x40, 0x45, 0xe2, 0xe6, 0x1f, 0x21, 0x00, 0x02, 0x19, - 0x01, 0x01, 0xff, 0x11, 0x6e, 0x59, 0x06, 0x43, 0xba, 0x52, 0xbb, 0xf6, - 0x41, 0xd1, 0xe0, 0x26, 0x00, 0xd2, 0xe1, 0x26, 0x40, 0x0f, 0x6d, 0x32, - 0xc4, 0x01, 0x07, 0xc1, 0x05, 0x37, 0x4c, 0x57, 0x26, 0x5f, 0xa9, 0x00, - 0xb6, 0x01, 0xff, 0x45, 0x5c, 0x23, 0x53, 0xa9, 0x00, 0x0a, 0xd2, 0x75, - 0x01, 0xff, 0xa1, 0x19, 0xe5, 0x49, 0xa9, 0x80, 0x0c, 0xe9, 0x47, 0xa9, - 0x00, 0xef, 0x4b, 0xa9, 0x00, 0xf5, 0x48, 0xa9, 0x40, 0xe1, 0x4e, 0xa9, - 0x00, 0xf5, 0x4d, 0xa9, 0x40, 0xe9, 0x4a, 0xa9, 0x00, 0xf5, 0x4c, 0xa9, - 0x40, 0xe1, 0x46, 0xa9, 0x00, 0x42, 0x16, 0x00, 0x37, 0xa9, 0x00, 0x42, - 0x37, 0x00, 0x39, 0xa9, 0x00, 0x42, 0xa1, 0x10, 0x34, 0xa9, 0x00, 0x42, - 0x24, 0x02, 0x31, 0xa9, 0x00, 0x42, 0x22, 0x00, 0x41, 0xa9, 0x00, 0x42, - 0xbd, 0x26, 0x3a, 0xa9, 0x00, 0x42, 0x1b, 0x02, 0x30, 0xa9, 0x00, 0x42, - 0x74, 0x00, 0x3e, 0xa9, 0x00, 0xad, 0x49, 0xae, 0x24, 0x42, 0x6c, 0x09, - 0x36, 0xa9, 0x00, 0x42, 0x71, 0x00, 0x3d, 0xa9, 0x00, 0x42, 0x15, 0x06, - 0x3c, 0xa9, 0x00, 0x42, 0x12, 0x00, 0x33, 0xa9, 0x00, 0x42, 0xa9, 0x01, - 0x40, 0xa9, 0x00, 0x42, 0x34, 0x22, 0x3f, 0xa9, 0x40, 0xe1, 0x35, 0xa9, - 0x00, 0x42, 0xa1, 0x10, 0x44, 0xa9, 0x00, 0xa7, 0x0d, 0xb9, 0x01, 0xff, - 0xe1, 0x3b, 0xa9, 0x00, 0x42, 0xbd, 0x26, 0x45, 0xa9, 0x40, 0xe1, 0x32, - 0xa9, 0x00, 0x42, 0x24, 0x02, 0x43, 0xa9, 0x40, 0xe1, 0x38, 0xa9, 0x00, - 0x42, 0x16, 0x00, 0x42, 0xa9, 0x40, 0xe8, 0x52, 0xa9, 0x00, 0xee, 0x50, - 0xa9, 0x80, 0x04, 0xf2, 0x51, 0xa9, 0x40, 0xe7, 0x4f, 0xa9, 0x40, 0x1d, - 0xe4, 0x15, 0x06, 0x4b, 0xc7, 0xa0, 0xae, 0x00, 0x40, 0xe1, 0xe6, 0xf1, - 0x01, 0xe2, 0xe7, 0xf1, 0x01, 0xe3, 0xe8, 0xf1, 0x01, 0xe4, 0xe9, 0xf1, - 0x01, 0xe5, 0xea, 0xf1, 0x01, 0xe6, 0xeb, 0xf1, 0x01, 0xe7, 0xec, 0xf1, - 0x01, 0xe8, 0xed, 0xf1, 0x01, 0xe9, 0xee, 0xf1, 0x01, 0xea, 0xef, 0xf1, - 0x01, 0xeb, 0xf0, 0xf1, 0x01, 0xec, 0xf1, 0xf1, 0x01, 0xed, 0xf2, 0xf1, - 0x01, 0xee, 0xf3, 0xf1, 0x01, 0xef, 0xf4, 0xf1, 0x01, 0xf0, 0xf5, 0xf1, - 0x01, 0xf1, 0xf6, 0xf1, 0x01, 0xf2, 0xf7, 0xf1, 0x01, 0xf3, 0xf8, 0xf1, - 0x01, 0xf4, 0xf9, 0xf1, 0x01, 0xf5, 0xfa, 0xf1, 0x01, 0xf6, 0xfb, 0xf1, - 0x01, 0xf7, 0xfc, 0xf1, 0x01, 0xf8, 0xfd, 0xf1, 0x01, 0xf9, 0xfe, 0xf1, - 0x01, 0xfa, 0xff, 0xf1, 0x41, 0x45, 0x47, 0xe1, 0x4e, 0xf3, 0x01, 0x4d, - 0xbe, 0x81, 0xe7, 0xf9, 0x41, 0xa5, 0x51, 0x4d, 0xdd, 0x64, 0x1e, 0x00, - 0x00, 0x51, 0x16, 0x5c, 0x99, 0xf6, 0x01, 0x03, 0x99, 0x24, 0x01, 0xff, - 0x4f, 0x56, 0x29, 0x7c, 0x26, 0x00, 0x0f, 0xee, 0x6c, 0x01, 0xff, 0x51, - 0xd5, 0x58, 0x7a, 0x26, 0x00, 0x05, 0xa9, 0x20, 0x01, 0xff, 0x4a, 0x91, - 0xa4, 0x73, 0x26, 0x00, 0x4a, 0xa5, 0xa4, 0x74, 0x26, 0x00, 0x4a, 0xb9, - 0xa4, 0x75, 0x26, 0x00, 0x4a, 0xc3, 0xa4, 0x76, 0x26, 0x00, 0x4a, 0xcd, - 0xa4, 0x77, 0x26, 0x00, 0x4a, 0xd7, 0xa4, 0x78, 0x26, 0x00, 0x4a, 0xe1, - 0xa4, 0x79, 0x26, 0x40, 0x43, 0x4c, 0x06, 0xfe, 0xf9, 0x01, 0x46, 0x40, - 0xdc, 0x12, 0xcc, 0x41, 0x44, 0x02, 0xec, 0x07, 0xf4, 0x81, 0xcd, 0x01, - 0xa3, 0xb3, 0x01, 0x02, 0x00, 0x00, 0x97, 0x01, 0xa9, 0x15, 0xed, 0x0f, - 0xf4, 0x01, 0xf4, 0x00, 0xf4, 0x81, 0x06, 0x43, 0x95, 0xf1, 0x92, 0xfa, - 0x41, 0x42, 0xb5, 0x00, 0x36, 0x22, 0x40, 0x05, 0x34, 0xe5, 0x70, 0xee, - 0xc6, 0x26, 0x80, 0x65, 0x04, 0x1b, 0x03, 0x01, 0xff, 0x4c, 0xcd, 0x8a, - 0x1a, 0xf9, 0x01, 0x45, 0xe8, 0x04, 0x34, 0x2e, 0x00, 0x43, 0xd4, 0x09, - 0x33, 0x2e, 0x80, 0x47, 0x44, 0x3c, 0xc8, 0x0a, 0x27, 0x00, 0x44, 0x77, - 0x0d, 0x0b, 0x27, 0x80, 0x29, 0x54, 0xe9, 0x2a, 0x06, 0x2e, 0x00, 0xad, - 0x0f, 0xb3, 0x01, 0xff, 0x58, 0x7d, 0x29, 0xcc, 0xfb, 0x01, 0x45, 0xac, - 0x05, 0x0b, 0x2e, 0x40, 0x46, 0xc3, 0x62, 0x6a, 0xf1, 0x01, 0x46, 0x67, - 0x46, 0x6b, 0xf1, 0x01, 0x46, 0xe0, 0x0d, 0x6c, 0xf1, 0x41, 0x06, 0x50, - 0x00, 0x01, 0xff, 0x4f, 0x93, 0x10, 0x90, 0xf5, 0x01, 0x64, 0x6c, 0x09, - 0x96, 0xf5, 0x41, 0x58, 0xe5, 0x2a, 0x07, 0x2e, 0x40, 0x43, 0xc3, 0x7f, - 0x08, 0xf3, 0x41, 0x43, 0x47, 0x63, 0x83, 0xf6, 0x01, 0x45, 0x4f, 0xe8, - 0xe4, 0xf6, 0x41, 0x51, 0x81, 0x57, 0xb7, 0x23, 0x00, 0xef, 0xfb, 0xf4, - 0xc1, 0x00, 0x47, 0x61, 0xca, 0x18, 0xf5, 0x01, 0x4b, 0xb9, 0x96, 0x22, - 0x26, 0x40, 0x44, 0x2e, 0xec, 0x9d, 0xf9, 0x01, 0x04, 0xa1, 0x01, 0x01, - 0xff, 0x43, 0x47, 0x63, 0xce, 0xf3, 0x01, 0x4a, 0xc1, 0xab, 0xcd, 0xf3, - 0x41, 0x45, 0xe0, 0x07, 0x30, 0xf4, 0x41, 0xa1, 0x24, 0x06, 0xd8, 0x33, - 0x0c, 0x46, 0xf4, 0xd9, 0xbb, 0x26, 0x00, 0x4c, 0xf0, 0x04, 0x22, 0x00, - 0x40, 0x80, 0x06, 0x4b, 0xbf, 0x65, 0x5f, 0x22, 0x40, 0x50, 0xad, 0x00, - 0x48, 0x20, 0x00, 0x44, 0xb9, 0x00, 0x3f, 0x00, 0x40, 0x02, 0xd7, 0x0c, - 0x12, 0x43, 0x27, 0x14, 0x7e, 0xf7, 0x01, 0x49, 0x69, 0x53, 0x69, 0x26, - 0x00, 0x59, 0xeb, 0x25, 0x16, 0x2a, 0x40, 0x04, 0x2f, 0x0d, 0x11, 0x05, - 0xf9, 0x4a, 0x01, 0xff, 0x51, 0xf3, 0x25, 0x0c, 0x2a, 0x00, 0x45, 0x63, - 0x1a, 0x57, 0x20, 0x40, 0x06, 0x13, 0x01, 0x46, 0x06, 0x6d, 0x02, 0x01, - 0xff, 0x44, 0xc3, 0x00, 0x98, 0x25, 0x80, 0x14, 0x45, 0xc8, 0x00, 0x9d, - 0x25, 0xc0, 0x00, 0x4f, 0xd7, 0x38, 0x9e, 0x25, 0xc0, 0x00, 0x50, 0x2f, - 0x43, 0x9f, 0x25, 0x40, 0x05, 0x19, 0x00, 0x01, 0xff, 0x06, 0x13, 0x01, - 0x11, 0x16, 0x11, 0x37, 0x01, 0xff, 0x44, 0xc3, 0x00, 0x9b, 0x25, 0x00, - 0x45, 0xc8, 0x00, 0x9c, 0x25, 0x40, 0x54, 0x2b, 0x43, 0x99, 0x25, 0x00, - 0x45, 0xc8, 0x00, 0x9a, 0x25, 0x40, 0x44, 0xc3, 0x00, 0x96, 0x25, 0x00, - 0x45, 0xc8, 0x00, 0x97, 0x25, 0x40, 0xa1, 0x8e, 0x18, 0xa5, 0xfb, 0x15, - 0xa8, 0xe5, 0x0e, 0xa9, 0xde, 0x0d, 0xac, 0xf1, 0x07, 0x4d, 0xbd, 0x84, - 0x11, 0xcc, 0x01, 0xaf, 0x8c, 0x06, 0xb2, 0xfc, 0x01, 0x0f, 0x62, 0x71, - 0x33, 0xb5, 0x01, 0xff, 0x58, 0xdd, 0x26, 0xe2, 0xf4, 0x01, 0x04, 0xba, - 0x0b, 0x1a, 0xb2, 0x0c, 0x45, 0x27, 0xd2, 0xcc, 0xf4, 0x01, 0x5c, 0xc2, - 0x18, 0xae, 0xf6, 0x41, 0x49, 0xa7, 0xbb, 0x9c, 0xf4, 0x01, 0x42, 0x1b, - 0x03, 0x5b, 0xf4, 0x41, 0x4b, 0x5e, 0x97, 0x08, 0x20, 0x00, 0x4f, 0x44, - 0x71, 0x4e, 0x2e, 0x40, 0x0f, 0x95, 0x6b, 0xb4, 0x01, 0x07, 0xc1, 0x05, - 0x3f, 0x07, 0x2f, 0x39, 0x0c, 0x4c, 0x57, 0x26, 0x99, 0x0b, 0x01, 0x53, - 0x96, 0x4c, 0x9a, 0x0b, 0x41, 0x44, 0xca, 0x06, 0xac, 0x0b, 0x01, 0x43, - 0xbf, 0x0a, 0xa9, 0x0b, 0x81, 0x1c, 0xb4, 0x01, 0xff, 0x42, 0x92, 0x01, - 0xad, 0x0b, 0x01, 0x44, 0x25, 0x01, 0xab, 0x0b, 0x01, 0xb7, 0x01, 0xff, - 0x44, 0x29, 0x1d, 0xae, 0x0b, 0x01, 0xef, 0xaa, 0x0b, 0x41, 0x48, 0x21, - 0x11, 0xaf, 0x0b, 0x41, 0x45, 0x58, 0xab, 0x80, 0x0b, 0x01, 0x44, 0x0a, - 0xec, 0x81, 0x0b, 0x01, 0x46, 0xda, 0x48, 0x83, 0x0b, 0x01, 0x45, 0xa1, - 0xa8, 0x82, 0x0b, 0x01, 0x42, 0xb0, 0x01, 0x84, 0x0b, 0x81, 0x4c, 0x44, - 0x8e, 0xed, 0x89, 0x0b, 0x01, 0x46, 0x9c, 0xda, 0x8a, 0x0b, 0x01, 0x48, - 0xaa, 0xc5, 0x8b, 0x0b, 0x01, 0x43, 0x54, 0x22, 0x8c, 0x0b, 0x01, 0x42, - 0x6f, 0x02, 0x8e, 0x0b, 0x01, 0xb3, 0x18, 0x43, 0x1e, 0xc2, 0x91, 0x0b, - 0x01, 0x4d, 0xc0, 0x88, 0x85, 0x0b, 0x01, 0x44, 0x58, 0x51, 0x88, 0x0b, - 0x01, 0x45, 0x52, 0x51, 0x86, 0x0b, 0x41, 0xa1, 0x06, 0x43, 0x0e, 0x16, - 0x90, 0x0b, 0x41, 0x43, 0x89, 0xe7, 0x8f, 0x0b, 0x01, 0x44, 0x39, 0xe1, - 0x8d, 0x0b, 0x41, 0x42, 0x53, 0x00, 0x87, 0x0b, 0x41, 0x45, 0x46, 0x10, - 0x9b, 0x0b, 0x01, 0x43, 0xd4, 0x09, 0x9c, 0x0b, 0x41, 0x4a, 0xe5, 0xa5, - 0xff, 0xf4, 0x01, 0xa5, 0x86, 0x01, 0xa9, 0x30, 0xaf, 0x01, 0xff, 0x49, - 0x57, 0xb4, 0xaf, 0xf9, 0x01, 0x4c, 0xfd, 0x8d, 0xc7, 0xf6, 0x01, 0x47, - 0x62, 0xcf, 0x05, 0x23, 0x00, 0xb0, 0x06, 0x47, 0xe9, 0xd2, 0xd8, 0x2b, - 0x40, 0x49, 0x3d, 0xb6, 0x4a, 0x21, 0x00, 0x46, 0xa6, 0x23, 0x37, 0x22, - 0xc0, 0x00, 0x45, 0xac, 0x0c, 0x1d, 0x22, 0x40, 0x42, 0x2a, 0x02, 0x32, - 0x20, 0x00, 0xae, 0x29, 0x02, 0xa6, 0x0a, 0x01, 0xff, 0x4a, 0xcb, 0xa6, - 0x9e, 0x00, 0x00, 0x06, 0x72, 0xdd, 0x01, 0xff, 0x80, 0x0b, 0x8d, 0x01, - 0xff, 0xd1, 0x91, 0x00, 0x00, 0xd2, 0x92, 0x00, 0x40, 0x43, 0xbf, 0x0a, - 0x91, 0x00, 0x00, 0x43, 0xd0, 0x09, 0x92, 0x00, 0x40, 0x42, 0x73, 0x02, - 0x34, 0xf9, 0x81, 0x16, 0xb4, 0x01, 0xff, 0x4e, 0x61, 0x58, 0x99, 0x23, - 0x00, 0x42, 0x33, 0x00, 0xa8, 0xf5, 0xc1, 0x00, 0x45, 0xae, 0xde, 0xb6, - 0xf5, 0x41, 0x42, 0xee, 0x00, 0x78, 0xf4, 0x41, 0x45, 0x45, 0xc7, 0x7a, - 0x22, 0x80, 0xa6, 0x02, 0x06, 0x22, 0xd9, 0x8f, 0x02, 0xb3, 0x0c, 0x44, - 0x7a, 0xef, 0x68, 0xf9, 0x01, 0x4a, 0x07, 0xb1, 0x97, 0x23, 0x40, 0x4d, - 0x04, 0x80, 0x1e, 0x21, 0x00, 0x1b, 0xad, 0x1a, 0x01, 0xff, 0x02, 0xe8, - 0x04, 0xe5, 0x01, 0xa5, 0xd0, 0x01, 0x53, 0x3a, 0x29, 0x19, 0xfe, 0x00, - 0x0c, 0xaa, 0x1f, 0xb9, 0x01, 0xac, 0x6a, 0x4d, 0xd6, 0x33, 0x16, 0xfe, - 0x00, 0x06, 0xc8, 0x00, 0x12, 0x49, 0xac, 0xbc, 0x14, 0xfe, 0x00, 0x4e, - 0x26, 0x7c, 0x30, 0xfe, 0x00, 0x4d, 0xa6, 0x88, 0x34, 0xfe, 0x40, 0x4d, - 0xef, 0x0e, 0x40, 0xfe, 0x00, 0x58, 0xc5, 0x26, 0x3c, 0xfe, 0x00, 0xa3, - 0x34, 0x54, 0x97, 0x40, 0x3e, 0xfe, 0x00, 0x4b, 0x50, 0x21, 0x36, 0xfe, - 0x00, 0x4e, 0x27, 0x26, 0x48, 0xfe, 0x00, 0x56, 0x05, 0x09, 0x3a, 0xfe, - 0x00, 0x06, 0xad, 0x02, 0x01, 0xff, 0x4e, 0xb8, 0x67, 0x44, 0xfe, 0x00, - 0x0e, 0xcb, 0x26, 0x01, 0xff, 0x44, 0x17, 0x09, 0x18, 0xfe, 0x00, 0x44, - 0x92, 0xed, 0x18, 0xfe, 0x40, 0x4d, 0xb9, 0x67, 0x42, 0xfe, 0x00, 0x4c, - 0x24, 0x0b, 0x38, 0xfe, 0x40, 0x04, 0xc4, 0x00, 0x06, 0x47, 0xac, 0x88, - 0x33, 0xfe, 0x40, 0x4d, 0xef, 0x0e, 0x3f, 0xfe, 0x00, 0x58, 0xc5, 0x26, - 0x3b, 0xfe, 0x00, 0xa3, 0x29, 0x54, 0x97, 0x40, 0x3d, 0xfe, 0x00, 0x4b, - 0x50, 0x21, 0x35, 0xfe, 0x00, 0x4e, 0x27, 0x26, 0x47, 0xfe, 0x00, 0x56, - 0x05, 0x09, 0x39, 0xfe, 0x00, 0x06, 0xad, 0x02, 0x01, 0xff, 0x4e, 0xb8, - 0x67, 0x43, 0xfe, 0x00, 0x52, 0xcb, 0x26, 0x17, 0xfe, 0x40, 0x4d, 0xb9, - 0x67, 0x41, 0xfe, 0x00, 0x4c, 0x24, 0x0b, 0x37, 0xfe, 0x40, 0x45, 0xe8, - 0x04, 0x11, 0xfe, 0x00, 0x49, 0x15, 0x16, 0x12, 0xfe, 0x40, 0x46, 0x3c, - 0xc0, 0x31, 0xfe, 0x00, 0x46, 0x20, 0xdb, 0x32, 0xfe, 0x00, 0x4f, 0xae, - 0x00, 0x15, 0xfe, 0x40, 0x43, 0x03, 0x12, 0x13, 0xfe, 0x00, 0x43, 0xea, - 0x04, 0x10, 0xfe, 0x40, 0x43, 0xd5, 0x17, 0xc3, 0xfa, 0x01, 0x46, 0x7c, - 0x1c, 0xc4, 0xfa, 0x01, 0x45, 0x62, 0x2c, 0x30, 0xf9, 0x41, 0x80, 0x01, - 0xff, 0x06, 0x5c, 0x00, 0x1c, 0x55, 0xfb, 0x38, 0xe8, 0x22, 0x00, 0x06, - 0x52, 0x28, 0x06, 0x4e, 0x7a, 0x7c, 0xb0, 0x22, 0x40, 0x45, 0xac, 0x0c, - 0x7c, 0x22, 0x00, 0x4a, 0x06, 0x39, 0x7e, 0x22, 0x40, 0x4f, 0x10, 0x69, - 0xb7, 0x2a, 0x00, 0x4b, 0xf9, 0x12, 0xb3, 0x2a, 0x00, 0x04, 0xe8, 0x22, - 0x11, 0x0c, 0x6d, 0x2a, 0x01, 0xff, 0x4b, 0xf9, 0x12, 0xaf, 0x2a, 0x00, - 0x4c, 0x79, 0x2a, 0xb1, 0x2a, 0x40, 0x4f, 0x10, 0x69, 0xb9, 0x2a, 0x00, - 0x48, 0xa9, 0x0c, 0xb5, 0x2a, 0x40, 0x4f, 0x1e, 0x6a, 0xa9, 0xf5, 0x01, - 0x05, 0x53, 0xad, 0xbe, 0x01, 0x44, 0x7a, 0xee, 0x29, 0xf4, 0x01, 0xb0, - 0x9f, 0x01, 0x4d, 0x77, 0x86, 0xfe, 0xf4, 0x01, 0xb3, 0x6b, 0xb4, 0x4f, - 0xb5, 0x24, 0x04, 0x15, 0x01, 0x01, 0xff, 0x02, 0x10, 0x00, 0x0f, 0xb3, - 0x01, 0xff, 0x4b, 0x5a, 0x9c, 0xfe, 0x23, 0x00, 0x45, 0xec, 0x07, 0xfb, - 0x23, 0x40, 0x47, 0xea, 0x07, 0xfd, 0x23, 0x00, 0x4b, 0x77, 0x96, 0xfc, - 0x23, 0x40, 0x42, 0x1e, 0x14, 0x5d, 0xf4, 0x01, 0x48, 0x62, 0xc5, 0x57, - 0xf3, 0x01, 0x47, 0x66, 0x46, 0xa3, 0x00, 0x00, 0x4b, 0xe0, 0x9f, 0xd7, - 0xfa, 0x01, 0x05, 0xa0, 0x01, 0x01, 0xff, 0x48, 0xc0, 0x1e, 0x3e, 0xf6, - 0x01, 0x44, 0xe1, 0x07, 0x21, 0xf6, 0x41, 0x48, 0x52, 0x63, 0x72, 0xf3, - 0x01, 0xa1, 0x06, 0x49, 0x3c, 0xbd, 0xb4, 0xfa, 0x41, 0x50, 0xf7, 0x43, - 0xb0, 0xf6, 0x01, 0x42, 0x1e, 0x00, 0x54, 0xf9, 0x41, 0x45, 0xcd, 0xe2, - 0xe7, 0x2b, 0x00, 0x4f, 0xab, 0x65, 0x16, 0x23, 0x00, 0xb4, 0x01, 0xff, - 0x03, 0x13, 0x00, 0x06, 0x43, 0xeb, 0x39, 0xee, 0xf4, 0x41, 0x44, 0xa8, - 0x2c, 0xef, 0xf4, 0x01, 0x44, 0xb9, 0x00, 0x12, 0x30, 0xc0, 0x00, 0x45, - 0xe0, 0x07, 0x20, 0x30, 0x40, 0x0d, 0x09, 0x7e, 0x06, 0x44, 0xbb, 0x18, - 0x7f, 0xf3, 0x41, 0x4a, 0x33, 0xa8, 0x2c, 0x20, 0x00, 0x47, 0x34, 0x03, - 0x69, 0x20, 0x40, 0x43, 0x47, 0x63, 0x93, 0xf6, 0x81, 0x06, 0x47, 0xea, - 0xd0, 0x6e, 0xf4, 0x41, 0x51, 0x5a, 0x5c, 0xa8, 0xf6, 0x41, 0xa1, 0x96, - 0x01, 0xb5, 0x01, 0xff, 0x44, 0x8b, 0x09, 0xa0, 0xfa, 0x01, 0xb3, 0x29, - 0x42, 0x1e, 0x00, 0x47, 0x26, 0xc0, 0x00, 0x06, 0xb5, 0x1a, 0x01, 0xff, - 0xa6, 0x0f, 0xb4, 0x01, 0xff, 0x44, 0x25, 0x01, 0xd4, 0x2b, 0x00, 0x42, - 0x15, 0x02, 0xd3, 0x2b, 0x40, 0x43, 0xa7, 0x05, 0xd6, 0x2b, 0x00, 0x43, - 0xcb, 0x06, 0xd5, 0x2b, 0x40, 0x45, 0x2e, 0x03, 0x2b, 0x00, 0x80, 0x06, - 0x4b, 0x6c, 0x96, 0xb1, 0x00, 0x40, 0x80, 0x01, 0xff, 0x51, 0xf3, 0x12, - 0x72, 0x2a, 0x00, 0x03, 0xb6, 0x05, 0x36, 0x05, 0x51, 0x00, 0x01, 0xff, - 0x4e, 0xc4, 0x69, 0x28, 0x2a, 0x00, 0x57, 0x16, 0x2d, 0x23, 0x2a, 0x00, - 0x49, 0x50, 0x12, 0x25, 0x2a, 0x00, 0xb3, 0x11, 0x06, 0xad, 0x22, 0x01, - 0xff, 0x45, 0x5c, 0x00, 0x24, 0x2a, 0x00, 0x45, 0xf5, 0x06, 0x26, 0x2a, - 0x40, 0x51, 0x2d, 0x54, 0x22, 0x2a, 0x00, 0x4c, 0x45, 0x94, 0x27, 0x2a, - 0x40, 0x50, 0x0a, 0x63, 0x2d, 0x2a, 0x00, 0x51, 0x38, 0x5c, 0x2e, 0x2a, - 0x00, 0x48, 0x01, 0x02, 0x39, 0x2a, 0x40, 0xa3, 0xb7, 0x04, 0x4c, 0xc1, - 0x90, 0x0e, 0x21, 0x80, 0xa9, 0x04, 0xb9, 0x01, 0xff, 0x4c, 0xa9, 0x8d, - 0xdd, 0xf6, 0x01, 0x09, 0x08, 0xb8, 0x01, 0xff, 0x07, 0xd5, 0x77, 0xfe, - 0x03, 0xa2, 0xef, 0x03, 0x09, 0xec, 0xb5, 0xd2, 0x03, 0xa6, 0x8d, 0x03, - 0x08, 0xb2, 0xc4, 0xf0, 0x02, 0xab, 0xb4, 0x02, 0x08, 0x1a, 0xc6, 0x97, - 0x02, 0x09, 0xe6, 0xbb, 0xfa, 0x01, 0x49, 0x25, 0xbc, 0xbf, 0xf0, 0x01, - 0xb3, 0xb8, 0x01, 0xb4, 0x06, 0x4b, 0xcc, 0xa2, 0xdf, 0xf0, 0x41, 0x06, - 0xe9, 0xbb, 0x93, 0x01, 0x08, 0x32, 0xc4, 0x77, 0x05, 0x78, 0xe7, 0x1d, - 0x06, 0x3e, 0xde, 0x01, 0xff, 0x45, 0x50, 0xe2, 0xd2, 0xf0, 0x01, 0x48, - 0x8a, 0xc2, 0xc2, 0xf0, 0x01, 0x46, 0x12, 0x85, 0xb2, 0xf0, 0x01, 0x46, - 0xee, 0xdc, 0xa2, 0xf0, 0x41, 0xd1, 0xe1, 0xf0, 0x81, 0x29, 0xd2, 0xe2, - 0xf0, 0x81, 0x1c, 0xd3, 0xe3, 0xf0, 0x01, 0xd4, 0xe4, 0xf0, 0x01, 0xd5, - 0xe5, 0xf0, 0x01, 0xd6, 0xe6, 0xf0, 0x01, 0xd7, 0xe7, 0xf0, 0x01, 0xd8, - 0xe8, 0xf0, 0x01, 0xd9, 0xe9, 0xf0, 0x41, 0xd0, 0xf4, 0xf0, 0x01, 0xd1, - 0xf5, 0xf0, 0x41, 0xd0, 0xea, 0xf0, 0x01, 0xd1, 0xeb, 0xf0, 0x01, 0xd2, - 0xec, 0xf0, 0x01, 0xd3, 0xed, 0xf0, 0x01, 0xd4, 0xee, 0xf0, 0x01, 0xd5, - 0xef, 0xf0, 0x01, 0xd6, 0xf0, 0xf0, 0x01, 0xd7, 0xf1, 0xf0, 0x01, 0xd8, - 0xf2, 0xf0, 0x01, 0xd9, 0xf3, 0xf0, 0x41, 0x45, 0x50, 0xe2, 0xd3, 0xf0, - 0x01, 0x48, 0x8a, 0xc2, 0xc3, 0xf0, 0x01, 0x46, 0x12, 0x85, 0xb3, 0xf0, - 0x01, 0x46, 0xee, 0xdc, 0xa3, 0xf0, 0x41, 0x45, 0x50, 0xe2, 0xda, 0xf0, - 0x01, 0x48, 0x8a, 0xc2, 0xca, 0xf0, 0x01, 0x46, 0x12, 0x85, 0xba, 0xf0, - 0x01, 0x46, 0xee, 0xdc, 0xaa, 0xf0, 0x41, 0x08, 0x72, 0xc3, 0x1d, 0x06, - 0x48, 0xda, 0x01, 0xff, 0x45, 0x50, 0xe2, 0xd6, 0xf0, 0x01, 0x48, 0x8a, - 0xc2, 0xc6, 0xf0, 0x01, 0x46, 0x12, 0x85, 0xb6, 0xf0, 0x01, 0x46, 0xee, - 0xdc, 0xa6, 0xf0, 0x41, 0x45, 0x50, 0xe2, 0xd7, 0xf0, 0x01, 0x48, 0x8a, - 0xc2, 0xc7, 0xf0, 0x01, 0x46, 0x12, 0x85, 0xb7, 0xf0, 0x01, 0x46, 0xee, - 0xdc, 0xa7, 0xf0, 0x41, 0x45, 0x50, 0xe2, 0xdd, 0xf0, 0x01, 0x48, 0x8a, - 0xc2, 0xcd, 0xf0, 0x01, 0x46, 0x12, 0x85, 0xbd, 0xf0, 0x01, 0x46, 0xee, - 0xdc, 0xad, 0xf0, 0x41, 0x45, 0x50, 0xe2, 0xd9, 0xf0, 0x01, 0x48, 0x8a, - 0xc2, 0xc9, 0xf0, 0x01, 0x46, 0x12, 0x85, 0xb9, 0xf0, 0x01, 0x46, 0xee, - 0xdc, 0xa9, 0xf0, 0x41, 0x07, 0x97, 0x38, 0x1d, 0x09, 0x12, 0xba, 0x01, - 0xff, 0x45, 0x50, 0xe2, 0xdc, 0xf0, 0x01, 0x48, 0x8a, 0xc2, 0xcc, 0xf0, - 0x01, 0x46, 0x12, 0x85, 0xbc, 0xf0, 0x01, 0x46, 0xee, 0xdc, 0xac, 0xf0, - 0x41, 0x45, 0x50, 0xe2, 0xde, 0xf0, 0x01, 0x48, 0x8a, 0xc2, 0xce, 0xf0, - 0x01, 0x46, 0x12, 0x85, 0xbe, 0xf0, 0x01, 0x46, 0xee, 0xdc, 0xae, 0xf0, - 0x41, 0x45, 0x50, 0xe2, 0xdb, 0xf0, 0x01, 0x48, 0x8a, 0xc2, 0xcb, 0xf0, - 0x01, 0x46, 0x12, 0x85, 0xbb, 0xf0, 0x01, 0x46, 0xee, 0xdc, 0xab, 0xf0, - 0x41, 0x07, 0x46, 0xcf, 0x26, 0xaf, 0x01, 0xff, 0x42, 0x36, 0x03, 0xe0, - 0xf0, 0x01, 0x06, 0x5b, 0xd1, 0x01, 0xff, 0x45, 0x50, 0xe2, 0xd4, 0xf0, - 0x01, 0x48, 0x8a, 0xc2, 0xc4, 0xf0, 0x01, 0x46, 0x12, 0x85, 0xb4, 0xf0, - 0x01, 0x46, 0xee, 0xdc, 0xa4, 0xf0, 0x41, 0x45, 0x50, 0xe2, 0xd5, 0xf0, - 0x01, 0x48, 0x8a, 0xc2, 0xc5, 0xf0, 0x01, 0x46, 0x12, 0x85, 0xb5, 0xf0, - 0x01, 0x46, 0xee, 0xdc, 0xa5, 0xf0, 0x41, 0x45, 0x50, 0xe2, 0xd8, 0xf0, - 0x01, 0x48, 0x8a, 0xc2, 0xc8, 0xf0, 0x01, 0x46, 0x12, 0x85, 0xb8, 0xf0, - 0x01, 0x46, 0xee, 0xdc, 0xa8, 0xf0, 0x41, 0x43, 0xe3, 0x02, 0xa0, 0xf0, - 0x01, 0x4a, 0x27, 0xaa, 0xcf, 0xf0, 0x41, 0x45, 0x50, 0xe2, 0xd1, 0xf0, - 0x01, 0x48, 0x8a, 0xc2, 0xc1, 0xf0, 0x01, 0x46, 0x12, 0x85, 0xb1, 0xf0, - 0x01, 0x46, 0xee, 0xdc, 0xa1, 0xf0, 0x41, 0x4c, 0xad, 0x89, 0x0f, 0x21, - 0x40, 0x43, 0xaa, 0x01, 0xa7, 0xfa, 0x01, 0x05, 0x17, 0x42, 0x01, 0xff, - 0x4d, 0x9b, 0x82, 0x18, 0x23, 0x00, 0x47, 0xcc, 0xd4, 0xd0, 0xf6, 0x41, - 0x42, 0x36, 0x01, 0xcf, 0x26, 0x80, 0x77, 0xe5, 0x67, 0xf9, 0x01, 0xe7, - 0x16, 0xf4, 0x81, 0x5f, 0xac, 0x4d, 0xae, 0x1b, 0xb3, 0x0d, 0x47, 0x75, - 0xd3, 0xd4, 0x22, 0xc0, 0x00, 0x4d, 0x7e, 0x7e, 0xda, 0x2a, 0x40, 0x43, - 0xe2, 0x7a, 0x53, 0x26, 0x00, 0x43, 0xed, 0x3b, 0x2b, 0xf5, 0x41, 0x43, - 0x6b, 0x18, 0x85, 0xfa, 0x01, 0x02, 0x1e, 0x14, 0x1a, 0xa5, 0x0c, 0x47, - 0x67, 0x28, 0x77, 0xfa, 0x01, 0x4a, 0xdc, 0x12, 0x2f, 0x27, 0x40, 0x4b, - 0x64, 0x95, 0x8d, 0xf3, 0x01, 0x45, 0x47, 0xe1, 0x4d, 0xf3, 0x41, 0x4a, - 0x6b, 0xa7, 0x0c, 0xf9, 0x01, 0x48, 0x6c, 0x2c, 0x0f, 0xf9, 0x41, 0x49, - 0x33, 0x9b, 0xb6, 0x00, 0x00, 0x48, 0xd2, 0xc2, 0xa9, 0xf4, 0x01, 0xec, - 0x8a, 0xf4, 0x41, 0x80, 0x01, 0xff, 0x44, 0xe1, 0x07, 0x37, 0xf4, 0x01, - 0x44, 0xa9, 0x16, 0x3d, 0xf4, 0x41, 0x48, 0x72, 0xc9, 0xfb, 0xf6, 0x41, - 0xa1, 0xde, 0x01, 0x09, 0xe4, 0xb7, 0xcd, 0x01, 0xaf, 0x01, 0xff, 0x08, - 0x12, 0xc3, 0x06, 0x43, 0xb8, 0x27, 0xdb, 0x2b, 0x40, 0x07, 0xc1, 0x05, - 0x33, 0x07, 0x2f, 0x39, 0x06, 0x4e, 0x68, 0x7d, 0x1f, 0x09, 0x41, 0x43, - 0xbf, 0x0a, 0x16, 0x09, 0x81, 0x1c, 0xb4, 0x01, 0xff, 0x42, 0x92, 0x01, - 0x17, 0x09, 0x01, 0x44, 0x25, 0x01, 0x1b, 0x09, 0x01, 0xb7, 0x01, 0xff, - 0x44, 0x29, 0x1d, 0x18, 0x09, 0x01, 0xef, 0x1a, 0x09, 0x41, 0x48, 0x21, - 0x11, 0x19, 0x09, 0x41, 0xa1, 0x7b, 0x43, 0x71, 0x09, 0x01, 0x09, 0x01, - 0x44, 0x73, 0xe2, 0x03, 0x09, 0x01, 0x44, 0xa6, 0xec, 0x02, 0x09, 0x01, - 0x42, 0xb0, 0x01, 0x04, 0x09, 0x81, 0x5e, 0x43, 0x5e, 0x50, 0x0a, 0x09, - 0x01, 0x44, 0xfd, 0xe4, 0x0b, 0x09, 0x01, 0x43, 0x89, 0x05, 0x0c, 0x09, - 0x01, 0x43, 0x54, 0x22, 0x0d, 0x09, 0x01, 0x42, 0x6f, 0x02, 0x10, 0x09, - 0x01, 0x43, 0x44, 0xf1, 0x12, 0x09, 0x01, 0x44, 0x48, 0xb7, 0x13, 0x09, - 0x01, 0xb3, 0x20, 0xb4, 0x12, 0x43, 0x77, 0xf1, 0x05, 0x09, 0x01, 0x43, - 0x58, 0x51, 0x09, 0x09, 0x01, 0x43, 0x9c, 0x73, 0x06, 0x09, 0x41, 0x42, - 0xd7, 0x23, 0x15, 0x09, 0x01, 0x42, 0xc2, 0x05, 0x08, 0x09, 0x41, 0x43, - 0x0c, 0x02, 0x11, 0x09, 0x01, 0x43, 0x5d, 0x81, 0x0e, 0x09, 0x01, 0x43, - 0x0e, 0x16, 0x14, 0x09, 0x41, 0xf4, 0x07, 0x09, 0x41, 0x42, 0x9e, 0x01, - 0x0f, 0x09, 0x01, 0x42, 0x24, 0x00, 0x00, 0x09, 0x41, 0x52, 0xbe, 0x4f, - 0x36, 0x17, 0x00, 0x52, 0x1a, 0x54, 0x35, 0x17, 0x40, 0x06, 0x40, 0xd9, - 0xc7, 0x02, 0x10, 0xba, 0x62, 0x01, 0xff, 0x45, 0xce, 0x00, 0xd9, 0x01, - 0x01, 0xa2, 0x9a, 0x02, 0xa3, 0xe3, 0x01, 0x02, 0x3b, 0x01, 0xd2, 0x01, - 0x45, 0xaa, 0xe2, 0xee, 0x01, 0x01, 0x45, 0x5e, 0xe3, 0xf8, 0x01, 0x01, - 0xa7, 0xb7, 0x01, 0xa8, 0xa2, 0x01, 0x02, 0xc3, 0x01, 0x93, 0x01, 0x02, - 0x6c, 0x00, 0x82, 0x01, 0x47, 0x8b, 0xd1, 0xf7, 0x01, 0x01, 0xb0, 0x5f, - 0xb2, 0x51, 0xb3, 0x29, 0xb4, 0x15, 0x44, 0x89, 0xbe, 0xf3, 0x01, 0x01, - 0xb7, 0x01, 0xff, 0x48, 0x4a, 0xc1, 0xfc, 0x01, 0x01, 0x44, 0x63, 0x2c, - 0xd5, 0x01, 0x41, 0x4c, 0xc1, 0x8a, 0xd2, 0x01, 0x01, 0x44, 0x32, 0xed, - 0xd8, 0x01, 0x01, 0x44, 0x21, 0x5f, 0xf0, 0x01, 0x41, 0x42, 0x9a, 0x43, - 0xdf, 0x01, 0x01, 0x02, 0x49, 0x00, 0x12, 0x44, 0xe0, 0x0a, 0xe5, 0x01, - 0x01, 0x48, 0x7a, 0xc5, 0xfb, 0x01, 0x01, 0x47, 0xad, 0xd3, 0xfa, 0x01, - 0x41, 0x43, 0x7a, 0x23, 0xdb, 0x01, 0x01, 0xf0, 0xe8, 0x01, 0x41, 0x42, - 0x57, 0x00, 0xed, 0x01, 0x01, 0x46, 0xf2, 0xdb, 0xf5, 0x01, 0x41, 0x46, - 0xee, 0xd6, 0xf4, 0x01, 0x01, 0x49, 0x75, 0xa7, 0xd0, 0x01, 0x01, 0xac, - 0x01, 0xff, 0x48, 0xd2, 0xc0, 0xf2, 0x01, 0x01, 0x49, 0xc3, 0xbd, 0xd1, - 0x01, 0x41, 0x46, 0x32, 0xdb, 0xdd, 0x01, 0x01, 0x45, 0x6d, 0xe8, 0xde, - 0x01, 0x41, 0xe4, 0xe0, 0x01, 0x01, 0x42, 0x26, 0x0b, 0xf6, 0x01, 0x41, - 0x45, 0x6d, 0xc0, 0xd6, 0x01, 0x01, 0x43, 0x03, 0x00, 0xea, 0x01, 0x01, - 0x43, 0xfd, 0x04, 0xe9, 0x01, 0x41, 0x47, 0x7c, 0xcc, 0xd7, 0x01, 0x01, - 0x45, 0x63, 0x9f, 0xf9, 0x01, 0x41, 0x44, 0xc6, 0xed, 0xe3, 0x01, 0x01, - 0x42, 0x32, 0x00, 0xef, 0x01, 0x41, 0xa1, 0x22, 0x44, 0xdf, 0x48, 0xd4, - 0x01, 0x01, 0x43, 0xd7, 0x49, 0xdc, 0x01, 0x01, 0xaf, 0x01, 0xff, 0x44, - 0xda, 0xed, 0xe6, 0x01, 0x01, 0x42, 0x8b, 0x05, 0xe4, 0x01, 0xc1, 0x00, - 0x54, 0x3b, 0x42, 0xfd, 0x01, 0x41, 0x45, 0xb2, 0x70, 0xd3, 0x01, 0x01, - 0x4d, 0x5d, 0x86, 0xe2, 0x01, 0x01, 0xf4, 0xec, 0x01, 0x41, 0x42, 0x27, - 0x01, 0xf1, 0x01, 0x81, 0x12, 0xaf, 0x06, 0x48, 0x52, 0xc9, 0xeb, 0x01, - 0x41, 0x47, 0x06, 0xd1, 0xe1, 0x01, 0x01, 0xf7, 0xda, 0x01, 0x41, 0x44, - 0xf5, 0x82, 0xe7, 0x01, 0x41, 0x50, 0xaa, 0x60, 0x75, 0xa8, 0x00, 0x07, - 0xc1, 0x05, 0x38, 0x05, 0xb9, 0x00, 0x28, 0xb3, 0x01, 0xff, 0x4f, 0xfd, - 0x6c, 0x74, 0xa8, 0x00, 0xb5, 0x01, 0xff, 0x0f, 0x5b, 0x66, 0x06, 0x52, - 0x42, 0x53, 0x72, 0xa8, 0x40, 0x42, 0x71, 0x00, 0x71, 0xa8, 0x00, 0x42, - 0xa9, 0x01, 0x67, 0xa8, 0x00, 0x42, 0x34, 0x22, 0x68, 0xa8, 0x40, 0x4b, - 0x2c, 0x99, 0x77, 0xa8, 0x00, 0x44, 0xa4, 0x02, 0x76, 0xa8, 0x40, 0xe1, - 0x5d, 0xa8, 0x80, 0x92, 0x02, 0x42, 0x16, 0x00, 0x4e, 0xa8, 0x00, 0xa3, - 0xf8, 0x01, 0xa4, 0xe5, 0x01, 0xe5, 0x60, 0xa8, 0x80, 0xdb, 0x01, 0x42, - 0xe1, 0x07, 0x64, 0xa8, 0x00, 0xa7, 0xc8, 0x01, 0x42, 0x22, 0x00, 0x5c, - 0xa8, 0x00, 0xe9, 0x5e, 0xa8, 0x00, 0x42, 0xbd, 0x26, 0x46, 0xa8, 0x00, - 0xab, 0xab, 0x01, 0x42, 0x74, 0x00, 0x59, 0xa8, 0x00, 0x42, 0x6c, 0x00, - 0x4f, 0xa8, 0x00, 0xae, 0x86, 0x01, 0xef, 0x61, 0xa8, 0x00, 0xb0, 0x76, - 0x42, 0xf4, 0x13, 0x62, 0xa8, 0x00, 0x42, 0x71, 0x00, 0x58, 0xa8, 0x00, - 0xb3, 0x58, 0xb4, 0x33, 0xf5, 0x5f, 0xa8, 0x00, 0x05, 0x68, 0x1c, 0x1f, - 0x42, 0xa9, 0x01, 0x53, 0xa8, 0x00, 0x42, 0x4c, 0x26, 0x63, 0xa8, 0x00, - 0x42, 0x34, 0x22, 0x57, 0xa8, 0x00, 0xba, 0x01, 0xff, 0xe1, 0x55, 0xa8, - 0x00, 0x42, 0x22, 0x00, 0x54, 0xa8, 0x40, 0x44, 0x87, 0x10, 0x6f, 0xa8, - 0x00, 0x48, 0x0a, 0xc5, 0x6e, 0xa8, 0x40, 0xe1, 0x48, 0xa8, 0x00, 0x42, - 0x22, 0x00, 0x49, 0xa8, 0x00, 0xb3, 0x0d, 0xb4, 0x01, 0xff, 0xe1, 0x69, - 0xa8, 0x00, 0x42, 0x22, 0x00, 0x6a, 0xa8, 0x40, 0xe1, 0x50, 0xa8, 0x00, - 0x42, 0x22, 0x00, 0x51, 0xa8, 0x40, 0xe1, 0x5b, 0xa8, 0x00, 0x42, 0x22, - 0x00, 0x5a, 0xa8, 0x00, 0x46, 0xb5, 0x09, 0x56, 0xa8, 0x40, 0xe1, 0x4c, - 0xa8, 0x00, 0x42, 0x22, 0x00, 0x4d, 0xa8, 0x40, 0xe1, 0x4b, 0xa8, 0x00, - 0x42, 0x24, 0x02, 0x43, 0xa8, 0x00, 0x42, 0xff, 0x04, 0x6c, 0xa8, 0x00, - 0x42, 0x34, 0x22, 0x47, 0xa8, 0x40, 0xe1, 0x40, 0xa8, 0x00, 0x42, 0x22, - 0x00, 0x41, 0xa8, 0x40, 0xe1, 0x42, 0xa8, 0x00, 0x42, 0x24, 0x02, 0x65, - 0xa8, 0x40, 0xe5, 0x66, 0xa8, 0x40, 0xe1, 0x4a, 0xa8, 0x00, 0x42, 0xa1, - 0x10, 0x6b, 0xa8, 0x00, 0x42, 0x59, 0x00, 0x52, 0xa8, 0x40, 0xe1, 0x44, - 0xa8, 0x80, 0x06, 0x42, 0x22, 0x00, 0x45, 0xa8, 0x40, 0x49, 0x51, 0x23, - 0x73, 0xa8, 0x40, 0x4b, 0xf4, 0x9c, 0x6d, 0xa8, 0x00, 0x4b, 0xa6, 0xa0, - 0x70, 0xa8, 0x40, 0xa1, 0xeb, 0x01, 0x48, 0x76, 0xa7, 0xb6, 0xf6, 0x01, - 0xae, 0xc4, 0x01, 0x4c, 0x99, 0x91, 0xc2, 0xfa, 0x01, 0xb2, 0x14, 0xb3, - 0x06, 0x48, 0x02, 0xc9, 0xeb, 0xf9, 0x41, 0x48, 0x5a, 0xc3, 0xa7, 0x20, - 0x00, 0x46, 0xd1, 0xae, 0xb1, 0x20, 0x40, 0x80, 0x93, 0x01, 0x49, 0xc8, - 0x99, 0x25, 0x00, 0x00, 0x4c, 0x55, 0x8d, 0xad, 0xf3, 0x01, 0x51, 0xa0, - 0x5a, 0x7e, 0x26, 0x00, 0x4a, 0xf7, 0x8c, 0xc2, 0x27, 0x80, 0x74, 0xb3, - 0x01, 0xff, 0x4c, 0x0d, 0x8d, 0x23, 0xf6, 0x01, 0x02, 0x10, 0x00, 0x06, - 0x47, 0xca, 0xd1, 0x06, 0x23, 0x40, 0x80, 0x06, 0x4b, 0x27, 0x85, 0xbb, - 0xf4, 0x41, 0x4d, 0xc3, 0x7f, 0x47, 0xf6, 0x01, 0x48, 0x32, 0xc2, 0xd7, - 0xf9, 0x01, 0x4f, 0x96, 0x6a, 0x38, 0xf9, 0x01, 0x48, 0x7d, 0x81, 0x4d, - 0xf6, 0x01, 0x03, 0xb6, 0x05, 0x31, 0x61, 0x1f, 0x0e, 0x4c, 0xf6, 0x01, - 0x05, 0x51, 0x00, 0x01, 0xff, 0xa2, 0x18, 0x45, 0x55, 0xe2, 0xc5, 0xfa, - 0x01, 0x4c, 0x49, 0x8d, 0x4f, 0xf6, 0x01, 0x49, 0x27, 0xb7, 0xd5, 0xf9, - 0x01, 0x4c, 0x11, 0x92, 0x4e, 0xf6, 0x41, 0x43, 0x0e, 0x07, 0xf9, 0x26, - 0x00, 0x49, 0x43, 0xb9, 0x71, 0xf4, 0x41, 0x4e, 0x44, 0x78, 0xd8, 0xf9, - 0x01, 0x4b, 0xbc, 0xa0, 0xd6, 0xf9, 0x41, 0x47, 0x3e, 0x06, 0xe1, 0x2a, - 0x40, 0x4a, 0x85, 0xab, 0x30, 0x20, 0x00, 0x44, 0x2f, 0x03, 0x4c, 0x21, - 0x00, 0x51, 0xd1, 0x5c, 0x31, 0x20, 0x40, 0x56, 0x4f, 0x31, 0x86, 0xf5, - 0x01, 0x43, 0x80, 0xbd, 0x0f, 0x27, 0x00, 0x44, 0xda, 0xec, 0x27, 0xf4, - 0x01, 0x49, 0xc7, 0xbc, 0x14, 0xf6, 0x01, 0x46, 0x13, 0x1b, 0xe4, 0x26, - 0x40, 0x44, 0x2f, 0x9f, 0xdb, 0xfa, 0x01, 0xa3, 0x0a, 0x44, 0xf7, 0xe7, - 0x5c, 0xf9, 0x01, 0xf2, 0x50, 0xf3, 0x41, 0x48, 0xd6, 0x18, 0x2e, 0x26, - 0x00, 0xe8, 0x51, 0xf3, 0x01, 0x43, 0x35, 0x01, 0x9a, 0xf9, 0x41, 0x45, - 0x3c, 0xe2, 0xe6, 0xf4, 0x01, 0xa7, 0xfa, 0x13, 0x0b, 0x97, 0x9a, 0x96, - 0x0d, 0xac, 0x87, 0x0b, 0xae, 0xf8, 0x0a, 0x47, 0xcc, 0x80, 0xce, 0xf4, - 0x01, 0xb2, 0x96, 0x03, 0x02, 0xee, 0x00, 0xed, 0x02, 0x0a, 0x17, 0xb0, - 0x06, 0x48, 0xaa, 0xc9, 0x3e, 0xf4, 0x41, 0x4c, 0x2d, 0x28, 0xf5, 0x1a, - 0x81, 0xcc, 0x02, 0xac, 0x62, 0x4e, 0x8a, 0x78, 0xef, 0x1a, 0x81, 0x4c, - 0x4b, 0x4a, 0x65, 0xe6, 0x1a, 0x81, 0x2f, 0x07, 0xcd, 0xd2, 0x01, 0xff, - 0x4c, 0x2d, 0x28, 0xe7, 0x1a, 0x81, 0x1d, 0x44, 0x83, 0x2c, 0xec, 0x1a, - 0xc1, 0x00, 0x80, 0x01, 0xff, 0x45, 0x3d, 0x2c, 0xee, 0x1a, 0x01, 0x44, - 0x03, 0x12, 0xeb, 0x1a, 0xc1, 0x00, 0x46, 0x3c, 0x2c, 0xed, 0x1a, 0x41, - 0x46, 0x3c, 0x2c, 0xea, 0x1a, 0x41, 0x80, 0x01, 0xff, 0x45, 0x3d, 0x2c, - 0xe9, 0x1a, 0x01, 0x44, 0x03, 0x12, 0xe5, 0x1a, 0xc1, 0x00, 0x46, 0x3c, - 0x2c, 0xe8, 0x1a, 0x41, 0x80, 0x01, 0xff, 0x45, 0x3d, 0x2c, 0xf2, 0x1a, - 0x01, 0x4a, 0xef, 0xaa, 0xf1, 0x1a, 0x41, 0x06, 0xc2, 0x05, 0x1d, 0x4f, - 0xfa, 0x6f, 0xf4, 0x1a, 0xc1, 0x00, 0x80, 0x01, 0xff, 0x45, 0x3d, 0x2c, - 0xf7, 0x1a, 0x01, 0x44, 0x03, 0x12, 0xf3, 0x1a, 0xc1, 0x00, 0x46, 0x3c, - 0x2c, 0xf6, 0x1a, 0x41, 0xe1, 0xd5, 0x1a, 0x01, 0x42, 0x16, 0x00, 0xcc, - 0x1a, 0x01, 0xa3, 0xb0, 0x01, 0x42, 0xa1, 0x10, 0xc4, 0x1a, 0x01, 0xe5, - 0xd6, 0x1a, 0x01, 0xa6, 0x76, 0x42, 0x24, 0x02, 0xc9, 0x1a, 0x01, 0x42, - 0x22, 0x00, 0xc8, 0x1a, 0x01, 0xe9, 0xd7, 0x1a, 0x81, 0x61, 0xab, 0x55, - 0x42, 0x74, 0x00, 0xc2, 0x1a, 0x01, 0x42, 0x6c, 0x00, 0xc3, 0x1a, 0x01, - 0xae, 0x3d, 0xef, 0xd8, 0x1a, 0x01, 0xb0, 0x2d, 0x42, 0x71, 0x00, 0xd2, - 0x1a, 0x01, 0x42, 0x15, 0x06, 0xcb, 0x1a, 0x01, 0xb4, 0x15, 0xf5, 0xd9, - 0x1a, 0x81, 0x0c, 0x42, 0xa6, 0x0a, 0xc6, 0x1a, 0x01, 0x42, 0x59, 0x00, - 0xc5, 0x1a, 0x41, 0xe1, 0xda, 0x1a, 0x41, 0xe1, 0xce, 0x1a, 0x01, 0x42, - 0x22, 0x00, 0xcf, 0x1a, 0x41, 0xe1, 0xc0, 0x1a, 0x01, 0x42, 0x22, 0x00, - 0xd1, 0x1a, 0x41, 0xe1, 0xd0, 0x1a, 0x01, 0x42, 0x24, 0x02, 0xc7, 0x1a, - 0x41, 0xe1, 0xc1, 0x1a, 0x01, 0x42, 0x22, 0x00, 0xca, 0x1a, 0x41, 0xe1, - 0xdb, 0x1a, 0x41, 0xe1, 0xd3, 0x1a, 0x01, 0x05, 0x47, 0x27, 0x01, 0xff, - 0xeb, 0xdd, 0x1a, 0x01, 0xec, 0xe1, 0x1a, 0x01, 0xed, 0xdf, 0x1a, 0x01, - 0xee, 0xe0, 0x1a, 0x81, 0x10, 0xf0, 0xdc, 0x1a, 0x01, 0xf4, 0xde, 0x1a, - 0x01, 0xf7, 0xe2, 0x1a, 0x01, 0xf9, 0xe4, 0x1a, 0x41, 0xe7, 0xe3, 0x1a, - 0x41, 0xe1, 0xcd, 0x1a, 0x01, 0x42, 0x22, 0x00, 0xd4, 0x1a, 0x41, 0x80, - 0x01, 0xff, 0x45, 0x3d, 0x2c, 0xf8, 0x1a, 0x01, 0x47, 0x1b, 0x4d, 0xf0, - 0x1a, 0x41, 0xa5, 0x16, 0x09, 0x62, 0xb8, 0x06, 0x4c, 0x05, 0x92, 0xc2, - 0xf6, 0x41, 0x52, 0xd0, 0x4f, 0x91, 0x23, 0x00, 0x50, 0xaa, 0x66, 0x92, - 0x23, 0x40, 0x48, 0xd6, 0x1f, 0xfd, 0x2b, 0x00, 0x49, 0xf7, 0xb9, 0xf3, - 0xf6, 0x41, 0xa1, 0x9e, 0x07, 0x0b, 0xa5, 0x99, 0x4a, 0x43, 0x03, 0x2c, - 0x9c, 0xf9, 0x01, 0xb4, 0x01, 0xff, 0x51, 0x94, 0x55, 0x3d, 0x30, 0x00, - 0x03, 0x3c, 0x0c, 0x0c, 0x4c, 0xd9, 0x90, 0x50, 0x32, 0x00, 0x48, 0xfa, - 0xc9, 0x89, 0xf3, 0x41, 0x80, 0x06, 0x58, 0x4d, 0x29, 0x7d, 0x26, 0x40, - 0x4c, 0x1f, 0x47, 0x02, 0x22, 0x00, 0x05, 0xc2, 0x07, 0x01, 0xff, 0x48, - 0x62, 0xc1, 0x8c, 0x00, 0x00, 0x44, 0xa5, 0x01, 0x8b, 0x00, 0x00, 0x47, - 0xa7, 0x30, 0x8b, 0x00, 0x00, 0x42, 0x50, 0x02, 0x8c, 0x00, 0x40, 0x06, - 0xc4, 0x06, 0x8e, 0x06, 0x07, 0x9e, 0xce, 0xc2, 0x04, 0x0a, 0x41, 0xa9, - 0xc3, 0x02, 0x12, 0xfe, 0x51, 0xb2, 0x02, 0x06, 0xb3, 0x05, 0x55, 0x07, - 0x2f, 0x39, 0x01, 0xff, 0xa5, 0x42, 0xa6, 0x34, 0x48, 0x7c, 0x52, 0x86, - 0x24, 0x00, 0xb3, 0x20, 0xb4, 0x01, 0xff, 0x42, 0x92, 0x01, 0x7d, 0x24, - 0x00, 0x47, 0x2a, 0x59, 0x80, 0x24, 0x00, 0x02, 0x15, 0x01, 0x01, 0xff, - 0x43, 0x47, 0x2b, 0x7f, 0x24, 0x00, 0x43, 0x2a, 0x1d, 0x87, 0x24, 0x40, - 0x48, 0x3c, 0x50, 0x84, 0x24, 0x00, 0x46, 0x60, 0x25, 0x83, 0x24, 0x40, - 0x46, 0x9c, 0x17, 0x82, 0x24, 0x00, 0x47, 0x9f, 0x5b, 0x81, 0x24, 0x40, - 0x47, 0xca, 0x24, 0x85, 0x24, 0x00, 0x45, 0x0b, 0x6e, 0x7e, 0x24, 0x40, - 0x0f, 0xb9, 0x05, 0x6d, 0x0d, 0x4b, 0x08, 0x01, 0xff, 0xe1, 0x9c, 0x24, - 0x00, 0xe2, 0x9d, 0x24, 0x00, 0xe3, 0x9e, 0x24, 0x00, 0xe4, 0x9f, 0x24, - 0x00, 0xe5, 0xa0, 0x24, 0x00, 0xe6, 0xa1, 0x24, 0x00, 0xe7, 0xa2, 0x24, - 0x00, 0xe8, 0xa3, 0x24, 0x00, 0xe9, 0xa4, 0x24, 0x00, 0xea, 0xa5, 0x24, - 0x00, 0xeb, 0xa6, 0x24, 0x00, 0xec, 0xa7, 0x24, 0x00, 0xed, 0xa8, 0x24, - 0x00, 0xee, 0xa9, 0x24, 0x00, 0xef, 0xaa, 0x24, 0x00, 0xf0, 0xab, 0x24, - 0x00, 0xf1, 0xac, 0x24, 0x00, 0xf2, 0xad, 0x24, 0x00, 0xf3, 0xae, 0x24, - 0x00, 0xf4, 0xaf, 0x24, 0x00, 0xf5, 0xb0, 0x24, 0x00, 0xf6, 0xb1, 0x24, - 0x00, 0xf7, 0xb2, 0x24, 0x00, 0xf8, 0xb3, 0x24, 0x00, 0xf9, 0xb4, 0x24, - 0x00, 0xfa, 0xb5, 0x24, 0x40, 0xe1, 0x10, 0xf1, 0x01, 0xe2, 0x11, 0xf1, - 0x01, 0xe3, 0x12, 0xf1, 0x01, 0xe4, 0x13, 0xf1, 0x01, 0xe5, 0x14, 0xf1, - 0x01, 0xe6, 0x15, 0xf1, 0x01, 0xe7, 0x16, 0xf1, 0x01, 0xe8, 0x17, 0xf1, - 0x01, 0xe9, 0x18, 0xf1, 0x01, 0xea, 0x19, 0xf1, 0x01, 0xeb, 0x1a, 0xf1, - 0x01, 0xec, 0x1b, 0xf1, 0x01, 0xed, 0x1c, 0xf1, 0x01, 0xee, 0x1d, 0xf1, - 0x01, 0xef, 0x1e, 0xf1, 0x01, 0xf0, 0x1f, 0xf1, 0x01, 0xf1, 0x20, 0xf1, - 0x01, 0xf2, 0x21, 0xf1, 0x01, 0xf3, 0x22, 0xf1, 0x01, 0xf4, 0x23, 0xf1, - 0x01, 0xf5, 0x24, 0xf1, 0x01, 0xf6, 0x25, 0xf1, 0x01, 0xf7, 0x26, 0xf1, - 0x01, 0xf8, 0x27, 0xf1, 0x01, 0xf9, 0x28, 0xf1, 0x01, 0xfa, 0x29, 0xf1, - 0x41, 0x43, 0x21, 0x11, 0x1e, 0x32, 0x00, 0x44, 0x6e, 0xed, 0x1d, 0x32, - 0x40, 0x48, 0xba, 0xc0, 0x3f, 0x32, 0x00, 0xa3, 0xe5, 0x01, 0xa5, 0xd0, - 0x01, 0xa6, 0xad, 0x01, 0x44, 0xde, 0xec, 0x32, 0x32, 0x00, 0x45, 0xf3, - 0xe4, 0x38, 0x32, 0x00, 0xad, 0x92, 0x01, 0xae, 0x83, 0x01, 0x43, 0xbf, - 0x0a, 0x20, 0x32, 0x00, 0x02, 0x88, 0x00, 0x60, 0xb3, 0x23, 0xb4, 0x0f, - 0xb7, 0x01, 0xff, 0x44, 0x8a, 0x00, 0x2c, 0x32, 0x00, 0x43, 0xfc, 0x2c, - 0x2d, 0x32, 0x40, 0x42, 0x92, 0x01, 0x29, 0x32, 0x00, 0x44, 0x25, 0x01, - 0x22, 0x32, 0x00, 0x42, 0x15, 0x02, 0x21, 0x32, 0x40, 0xa5, 0x2d, 0x42, - 0x60, 0x25, 0x25, 0x32, 0x00, 0x46, 0xb0, 0xdb, 0x33, 0x32, 0x00, 0x46, - 0x10, 0xdc, 0x35, 0x32, 0x00, 0xb4, 0x0d, 0xb5, 0x01, 0xff, 0xee, 0x30, - 0x32, 0x00, 0x47, 0xdf, 0xd1, 0x3c, 0x32, 0x40, 0x43, 0x35, 0x01, 0x31, - 0x32, 0x00, 0x43, 0x59, 0xf1, 0x3b, 0x32, 0x40, 0x42, 0x24, 0x00, 0x42, - 0x32, 0x00, 0x43, 0x28, 0x1d, 0x26, 0x32, 0x40, 0x43, 0xd4, 0x2c, 0x43, - 0x32, 0x00, 0x47, 0x13, 0x7f, 0x39, 0x32, 0x00, 0xb3, 0x01, 0xff, 0x45, - 0x56, 0x5b, 0x3e, 0x32, 0x00, 0xf4, 0x41, 0x32, 0x40, 0x43, 0x00, 0x05, - 0x34, 0x32, 0x00, 0x43, 0xc3, 0x07, 0x28, 0x32, 0x40, 0x44, 0x45, 0x0f, - 0x2e, 0x32, 0x00, 0x43, 0x69, 0x05, 0x2a, 0x32, 0x40, 0x47, 0x12, 0xce, - 0x40, 0x32, 0x00, 0xa9, 0x06, 0x43, 0xcb, 0x06, 0x23, 0x32, 0x40, 0x47, - 0x96, 0xd0, 0x36, 0x32, 0x00, 0x42, 0x88, 0x00, 0x2b, 0x32, 0x00, 0x42, - 0x32, 0x00, 0x24, 0x32, 0x40, 0x44, 0xb9, 0x70, 0x2f, 0x32, 0x00, 0x44, - 0xc9, 0x00, 0x27, 0x32, 0x00, 0x49, 0x3f, 0xba, 0x3d, 0x32, 0x40, 0x43, - 0x0e, 0x07, 0x3a, 0x32, 0x00, 0x4d, 0x4c, 0x85, 0x37, 0x32, 0x40, 0xa3, - 0xa5, 0x01, 0x45, 0x35, 0xa3, 0x0d, 0x32, 0x80, 0x97, 0x01, 0x45, 0x68, - 0xc9, 0x07, 0x32, 0x80, 0x89, 0x01, 0xab, 0x6d, 0x45, 0x8e, 0xe5, 0x04, - 0x32, 0x80, 0x60, 0x45, 0xfc, 0xe5, 0x01, 0x32, 0x80, 0x53, 0xb0, 0x37, - 0x45, 0x41, 0xe7, 0x03, 0x32, 0x80, 0x2a, 0x44, 0xf0, 0xbc, 0x06, 0x32, - 0x80, 0x1d, 0xb4, 0x01, 0xff, 0x46, 0x8b, 0xd3, 0x0b, 0x32, 0x80, 0x0d, - 0x45, 0x20, 0xcb, 0x02, 0x32, 0xc0, 0x00, 0x42, 0x19, 0x00, 0x10, 0x32, - 0x40, 0x42, 0x19, 0x00, 0x19, 0x32, 0x40, 0x42, 0x19, 0x00, 0x14, 0x32, - 0x40, 0x42, 0x19, 0x00, 0x11, 0x32, 0x40, 0x46, 0x4c, 0xc0, 0x0c, 0x32, - 0x80, 0x0d, 0x44, 0x33, 0x83, 0x05, 0x32, 0xc0, 0x00, 0x42, 0x19, 0x00, - 0x13, 0x32, 0x40, 0x42, 0x19, 0x00, 0x1a, 0x32, 0x40, 0x42, 0x19, 0x00, - 0x0f, 0x32, 0x40, 0x42, 0x19, 0x00, 0x12, 0x32, 0x40, 0x46, 0x44, 0xc0, - 0x0a, 0x32, 0x80, 0x0d, 0x45, 0xb7, 0xa0, 0x00, 0x32, 0xc0, 0x00, 0x42, - 0x19, 0x00, 0x0e, 0x32, 0x40, 0x42, 0x19, 0x00, 0x18, 0x32, 0x40, 0x42, - 0x19, 0x00, 0x15, 0x32, 0x40, 0x42, 0x19, 0x00, 0x1b, 0x32, 0x40, 0x46, - 0x17, 0xcd, 0x09, 0x32, 0x80, 0x12, 0x44, 0x18, 0xcd, 0x08, 0x32, 0xc0, - 0x00, 0x80, 0x01, 0xff, 0xe1, 0x16, 0x32, 0x00, 0xf5, 0x1c, 0x32, 0x40, - 0x42, 0x19, 0x00, 0x17, 0x32, 0x40, 0x45, 0xc3, 0x0a, 0x7b, 0x24, 0x00, - 0xa6, 0x29, 0x44, 0x46, 0x2a, 0x7c, 0x24, 0x00, 0x43, 0xbf, 0x0a, 0x74, - 0x24, 0x00, 0xb3, 0x0f, 0xb4, 0x01, 0xff, 0x44, 0x25, 0x01, 0x76, 0x24, - 0x00, 0x42, 0x15, 0x02, 0x75, 0x24, 0x40, 0x44, 0x27, 0x1d, 0x7a, 0x24, - 0x00, 0x42, 0x60, 0x25, 0x79, 0x24, 0x40, 0x43, 0xa7, 0x05, 0x78, 0x24, - 0x00, 0x43, 0xcb, 0x06, 0x77, 0x24, 0x40, 0x45, 0x32, 0xe2, 0x82, 0xfa, - 0x01, 0x05, 0x32, 0x10, 0x1c, 0x05, 0xbc, 0x37, 0x01, 0xff, 0x42, 0x1e, - 0x00, 0x25, 0x22, 0x00, 0x05, 0x51, 0x00, 0x01, 0xff, 0x51, 0x1c, 0x05, - 0xf2, 0x2a, 0x00, 0x4e, 0x93, 0x3d, 0xf3, 0x2a, 0x40, 0x4a, 0x35, 0x20, - 0x29, 0x20, 0x00, 0x42, 0x55, 0x0d, 0x0f, 0x2e, 0x00, 0x47, 0x4c, 0x71, - 0x4d, 0x2e, 0x40, 0x45, 0xd8, 0xe1, 0x5e, 0xf9, 0x01, 0x47, 0x5c, 0xcd, - 0x3c, 0xf4, 0x41, 0x43, 0xfa, 0x0d, 0xb4, 0x26, 0x00, 0xad, 0x01, 0xff, - 0x80, 0xe8, 0x01, 0x4d, 0x9e, 0x86, 0x32, 0xf9, 0x01, 0x06, 0x74, 0xde, - 0x01, 0xff, 0x02, 0x68, 0x00, 0x3a, 0x07, 0x2f, 0x39, 0x06, 0x56, 0x09, - 0x36, 0x78, 0x08, 0x41, 0xa6, 0x22, 0x43, 0xbf, 0x0a, 0x79, 0x08, 0x01, - 0xb4, 0x01, 0xff, 0x42, 0x92, 0x01, 0x7e, 0x08, 0x01, 0x44, 0x25, 0x01, - 0x7b, 0x08, 0x01, 0xb7, 0x01, 0xff, 0x44, 0x29, 0x1d, 0x7f, 0x08, 0x01, - 0xef, 0x7a, 0x08, 0x41, 0x43, 0xa7, 0x05, 0x7d, 0x08, 0x01, 0x43, 0xcb, - 0x06, 0x7c, 0x08, 0x41, 0x53, 0x48, 0x48, 0x77, 0x08, 0x01, 0x05, 0xc3, - 0x05, 0x01, 0xff, 0xa1, 0x85, 0x01, 0x44, 0x0a, 0xec, 0x61, 0x08, 0x01, - 0x46, 0xda, 0x48, 0x63, 0x08, 0x01, 0x49, 0xa0, 0xb6, 0x6d, 0x08, 0x01, - 0x45, 0xa1, 0xa8, 0x62, 0x08, 0x01, 0x42, 0xb0, 0x01, 0x64, 0x08, 0x81, - 0x60, 0x44, 0x8e, 0xed, 0x6a, 0x08, 0x01, 0x46, 0x9c, 0xda, 0x6b, 0x08, - 0x01, 0x43, 0x89, 0x05, 0x6c, 0x08, 0x01, 0x43, 0x54, 0x22, 0x6e, 0x08, - 0x01, 0x42, 0x6f, 0x02, 0x71, 0x08, 0x01, 0x44, 0xae, 0xc5, 0x73, 0x08, - 0x01, 0x44, 0xfa, 0x64, 0x74, 0x08, 0x01, 0xb3, 0x20, 0xb4, 0x12, 0x43, - 0xc0, 0x88, 0x65, 0x08, 0x01, 0x44, 0x58, 0x51, 0x69, 0x08, 0x01, 0x45, - 0x52, 0x51, 0x66, 0x08, 0x41, 0x42, 0x9a, 0x43, 0x76, 0x08, 0x01, 0x43, - 0x39, 0x25, 0x68, 0x08, 0x41, 0xa1, 0x06, 0x43, 0x0e, 0x16, 0x75, 0x08, - 0x41, 0x43, 0x89, 0xe7, 0x72, 0x08, 0x01, 0x44, 0x39, 0xe1, 0x6f, 0x08, - 0x41, 0x42, 0x53, 0x00, 0x67, 0x08, 0x41, 0x44, 0x48, 0x3c, 0x60, 0x08, - 0x01, 0x43, 0xf7, 0x19, 0x70, 0x08, 0x41, 0x46, 0xf1, 0x2e, 0x19, 0x2e, - 0x00, 0x49, 0x6e, 0xb5, 0xf3, 0xfa, 0x01, 0x44, 0xbe, 0x10, 0x34, 0xf3, - 0x01, 0x47, 0xfa, 0xd3, 0xf4, 0xfa, 0x41, 0xa3, 0xcf, 0x04, 0x06, 0xc4, - 0x06, 0x88, 0x04, 0x09, 0x82, 0xb9, 0xd4, 0x03, 0x07, 0x2f, 0x39, 0x9c, - 0x03, 0x05, 0x2f, 0x03, 0x93, 0x01, 0x07, 0x8d, 0xd4, 0x01, 0xff, 0xa1, - 0x5b, 0xa5, 0x47, 0xa9, 0x33, 0xaf, 0x1f, 0xb5, 0x0b, 0xb7, 0x01, 0xff, - 0xe2, 0x18, 0x6b, 0x01, 0xf6, 0x19, 0x6b, 0x41, 0xa1, 0x08, 0xe2, 0x06, - 0x6b, 0x01, 0xf6, 0x07, 0x6b, 0x41, 0xe2, 0x10, 0x6b, 0x01, 0xf6, 0x11, - 0x6b, 0x41, 0xe2, 0x12, 0x6b, 0x01, 0xaf, 0x04, 0xf6, 0x13, 0x6b, 0x41, - 0xe2, 0x0c, 0x6b, 0x01, 0xf6, 0x0d, 0x6b, 0x41, 0xa1, 0x08, 0xe2, 0x02, - 0x6b, 0x01, 0xf6, 0x03, 0x6b, 0x41, 0xe2, 0x14, 0x6b, 0x01, 0xf6, 0x15, - 0x6b, 0x41, 0xe2, 0x08, 0x6b, 0x01, 0xa5, 0x04, 0xf6, 0x09, 0x6b, 0x41, - 0xe2, 0x00, 0x6b, 0x01, 0xf6, 0x01, 0x6b, 0x41, 0xa1, 0x27, 0xe2, 0x16, - 0x6b, 0x01, 0xa9, 0x19, 0xb5, 0x0f, 0xf6, 0x17, 0x6b, 0x01, 0xb7, 0x01, - 0xff, 0xe2, 0x0e, 0x6b, 0x01, 0xf6, 0x0f, 0x6b, 0x41, 0xe2, 0x04, 0x6b, - 0x01, 0xf6, 0x05, 0x6b, 0x41, 0xe2, 0x0a, 0x6b, 0x01, 0xf6, 0x0b, 0x6b, - 0x41, 0xe2, 0x1a, 0x6b, 0x01, 0xf6, 0x1b, 0x6b, 0x41, 0x42, 0x04, 0x08, - 0x6c, 0x6b, 0x01, 0x04, 0x87, 0xb9, 0xc3, 0x01, 0xa8, 0xb4, 0x01, 0x46, - 0xc4, 0xd9, 0x43, 0x6b, 0x01, 0x43, 0x54, 0x0d, 0x70, 0x6b, 0x01, 0xad, - 0x8f, 0x01, 0xae, 0x80, 0x01, 0xb4, 0x6c, 0x04, 0xbe, 0xef, 0x39, 0xb8, - 0x06, 0x48, 0x52, 0xca, 0x67, 0x6b, 0x41, 0x43, 0xc0, 0x2e, 0x44, 0x6b, - 0x01, 0x43, 0x6b, 0x49, 0x6a, 0x6b, 0x01, 0xb9, 0x01, 0xff, 0x04, 0x7b, - 0x20, 0x06, 0x42, 0x69, 0x05, 0x64, 0x6b, 0x41, 0x44, 0x7a, 0xec, 0x3f, - 0x6b, 0x01, 0x45, 0x24, 0xe6, 0x3c, 0x6b, 0x01, 0x43, 0xa6, 0x48, 0x3d, - 0x6b, 0x01, 0x43, 0x47, 0x09, 0x3e, 0x6b, 0x41, 0x44, 0x82, 0xec, 0x3b, - 0x6b, 0x01, 0x43, 0xd7, 0x49, 0x63, 0x6b, 0x01, 0x44, 0x4e, 0xee, 0x42, - 0x6b, 0x01, 0x44, 0x3e, 0xef, 0x40, 0x6b, 0x01, 0xb4, 0x01, 0xff, 0xa8, - 0x06, 0x49, 0xbe, 0xbc, 0x38, 0x6b, 0x41, 0x43, 0x6b, 0x49, 0x3a, 0x6b, - 0x01, 0x42, 0xe9, 0x04, 0x37, 0x6b, 0x41, 0x42, 0xd7, 0x23, 0x6f, 0x6b, - 0x01, 0x4e, 0xd8, 0x76, 0x66, 0x6b, 0x01, 0x4a, 0x75, 0xb1, 0x6d, 0x6b, - 0x41, 0x43, 0x41, 0xf1, 0x69, 0x6b, 0x01, 0x43, 0x56, 0xf1, 0x6b, 0x6b, - 0x41, 0x04, 0x77, 0xb1, 0x06, 0x42, 0xc4, 0x02, 0x71, 0x6b, 0x41, 0x44, - 0x6a, 0xef, 0x41, 0x6b, 0x01, 0x45, 0x63, 0xe8, 0x6e, 0x6b, 0x41, 0x42, - 0xc3, 0x01, 0x65, 0x6b, 0x01, 0x43, 0x7f, 0x30, 0x68, 0x6b, 0x41, 0xa3, - 0x28, 0x52, 0xcc, 0x50, 0x72, 0x6b, 0x01, 0x48, 0x4a, 0xc6, 0x77, 0x6b, - 0x01, 0x48, 0x52, 0xc7, 0x76, 0x6b, 0x01, 0xb4, 0x01, 0xff, 0x47, 0x21, - 0xd3, 0x45, 0x6b, 0x01, 0x43, 0x86, 0xf1, 0x74, 0x6b, 0xc1, 0x00, 0x45, - 0x90, 0xde, 0x75, 0x6b, 0x41, 0x44, 0xde, 0x17, 0x39, 0x6b, 0x01, 0x4a, - 0x2b, 0xb0, 0x73, 0x6b, 0x41, 0x07, 0x22, 0x11, 0x25, 0x48, 0x25, 0x3b, - 0x5e, 0x6b, 0x01, 0xb4, 0x01, 0xff, 0x02, 0x92, 0x01, 0x06, 0x48, 0xba, - 0xc7, 0x61, 0x6b, 0x41, 0x80, 0x04, 0xf3, 0x5b, 0x6b, 0x41, 0x48, 0x92, - 0xc1, 0x60, 0x6b, 0x01, 0x49, 0x8c, 0x7b, 0x5d, 0x6b, 0x41, 0x49, 0x24, - 0x3b, 0x5f, 0x6b, 0x01, 0xf3, 0x5c, 0x6b, 0x41, 0x43, 0xce, 0xc8, 0x35, - 0x6b, 0x01, 0xab, 0x1b, 0xb3, 0x0f, 0xb4, 0x01, 0xff, 0x43, 0x52, 0xb0, - 0x36, 0x6b, 0x01, 0x42, 0x3d, 0x01, 0x30, 0x6b, 0x41, 0xef, 0x31, 0x6b, - 0x01, 0x43, 0x61, 0x74, 0x34, 0x6b, 0x41, 0x42, 0xed, 0x00, 0x32, 0x6b, - 0x01, 0x43, 0x9f, 0x4a, 0x33, 0x6b, 0x41, 0x45, 0xc3, 0x0a, 0x58, 0x6b, - 0x01, 0xa6, 0x2e, 0x44, 0x46, 0x2a, 0x59, 0x6b, 0x01, 0x43, 0xbf, 0x0a, - 0x51, 0x6b, 0x01, 0xb3, 0x14, 0xb4, 0x06, 0x44, 0xa1, 0x1d, 0x50, 0x6b, - 0x41, 0x44, 0x25, 0x01, 0x53, 0x6b, 0x01, 0x42, 0x15, 0x02, 0x52, 0x6b, - 0x41, 0x44, 0x27, 0x1d, 0x57, 0x6b, 0x01, 0x42, 0x60, 0x25, 0x56, 0x6b, - 0x41, 0x43, 0xa7, 0x05, 0x55, 0x6b, 0x01, 0x43, 0xcb, 0x06, 0x54, 0x6b, - 0x41, 0x09, 0xd7, 0xb8, 0x86, 0x01, 0x09, 0x58, 0x32, 0x01, 0xff, 0x42, - 0xd7, 0x23, 0x2d, 0x6b, 0x01, 0xa3, 0x6d, 0xa8, 0x59, 0x43, 0xd6, 0x23, - 0x1e, 0x6b, 0x01, 0x43, 0xfa, 0xdd, 0x26, 0x6b, 0x01, 0xae, 0x24, 0x45, - 0xc9, 0xe6, 0x2a, 0x6b, 0x01, 0x44, 0xea, 0xee, 0x23, 0x6b, 0x01, 0x43, - 0x09, 0x57, 0x21, 0x6b, 0x01, 0x43, 0x68, 0xf1, 0x1c, 0x6b, 0x01, 0x43, - 0x80, 0xf1, 0x2e, 0x6b, 0x01, 0x43, 0x67, 0x7f, 0x24, 0x6b, 0x41, 0x42, - 0xd7, 0x23, 0x2c, 0x6b, 0x01, 0x44, 0x2a, 0xec, 0x28, 0x6b, 0x01, 0x43, - 0x74, 0xcc, 0x22, 0x6b, 0x01, 0x43, 0xd6, 0x23, 0x20, 0x6b, 0x01, 0xb4, - 0x01, 0xff, 0x43, 0x6a, 0x7c, 0x2b, 0x6b, 0x01, 0x43, 0xef, 0x8f, 0x1d, - 0x6b, 0x41, 0x42, 0xd7, 0x23, 0x1f, 0x6b, 0x01, 0x43, 0xd6, 0x23, 0x25, - 0x6b, 0x01, 0x43, 0x06, 0x5b, 0x29, 0x6b, 0x41, 0x42, 0xd7, 0x23, 0x2f, - 0x6b, 0x01, 0x43, 0x6a, 0x7c, 0x27, 0x6b, 0x41, 0x43, 0xed, 0xf0, 0x8b, - 0x6b, 0x01, 0x02, 0x22, 0x00, 0x6e, 0xab, 0x5a, 0xac, 0x4c, 0x44, 0x02, - 0xee, 0x84, 0x6b, 0x01, 0x44, 0xc6, 0xee, 0x87, 0x6b, 0x01, 0xb4, 0x23, - 0xb6, 0x15, 0x45, 0x4e, 0xe9, 0x81, 0x6b, 0x01, 0xb9, 0x01, 0xff, 0x42, - 0x35, 0x22, 0x8c, 0x6b, 0x01, 0x43, 0xdb, 0xf0, 0x7e, 0x6b, 0x41, 0x42, - 0x35, 0x22, 0x8a, 0x6b, 0x01, 0x42, 0xc2, 0x02, 0x8f, 0x6b, 0x41, 0x43, - 0xfc, 0xf0, 0x85, 0x6b, 0x01, 0xb3, 0x01, 0xff, 0x42, 0x5c, 0x00, 0x86, - 0x6b, 0x01, 0x44, 0x76, 0xb1, 0x7d, 0x6b, 0x01, 0x42, 0xfa, 0x38, 0x8d, - 0x6b, 0x41, 0x43, 0x99, 0xf0, 0x80, 0x6b, 0x01, 0x42, 0x34, 0x03, 0x7f, - 0x6b, 0x41, 0x43, 0xe3, 0x8a, 0x88, 0x6b, 0x01, 0x42, 0x69, 0x05, 0x82, - 0x6b, 0x01, 0x42, 0xc1, 0x5a, 0x8e, 0x6b, 0x41, 0xed, 0x89, 0x6b, 0x01, - 0x42, 0xc2, 0x02, 0x83, 0x6b, 0x41, 0xe5, 0xcf, 0xf5, 0x81, 0x06, 0x43, - 0xd2, 0x7e, 0xd4, 0xf6, 0x41, 0x80, 0x08, 0xf2, 0xdf, 0xf4, 0x01, 0xf3, - 0xd0, 0xf5, 0x41, 0x49, 0x7c, 0xb6, 0xc4, 0xf4, 0x01, 0x06, 0x9f, 0x04, - 0x01, 0xff, 0x4b, 0x7e, 0x9b, 0xdf, 0xf5, 0x01, 0x43, 0x24, 0x0b, 0xc3, - 0xf4, 0x41, 0xa2, 0xaf, 0x2e, 0xa3, 0xcb, 0x2d, 0x43, 0xa0, 0x0a, 0x62, - 0xf3, 0x01, 0x4e, 0x68, 0x76, 0xe2, 0xf3, 0x01, 0xa7, 0xf2, 0x2b, 0x47, - 0x7b, 0xc6, 0x26, 0x21, 0x00, 0x47, 0x15, 0xcf, 0xe2, 0xf6, 0x01, 0x4b, - 0x6a, 0x91, 0x4c, 0xf4, 0x01, 0xac, 0xd1, 0x12, 0x48, 0xa3, 0xba, 0x49, - 0xf5, 0x01, 0xae, 0xf9, 0x11, 0xb0, 0xc8, 0x10, 0xb2, 0xb3, 0x0b, 0xb3, - 0xfd, 0x05, 0x02, 0xc3, 0x05, 0xab, 0x02, 0xb5, 0x46, 0x03, 0x32, 0x00, - 0x10, 0x42, 0x6a, 0x03, 0x89, 0xf9, 0x01, 0xf8, 0x02, 0xf4, 0x01, 0x45, - 0x67, 0xe9, 0xaa, 0xf9, 0x41, 0x4b, 0xa2, 0x9a, 0x75, 0xf9, 0x01, 0xac, - 0x01, 0xff, 0x42, 0xba, 0x05, 0xd7, 0xf5, 0x81, 0x06, 0x43, 0xc3, 0x07, - 0x3e, 0x20, 0x40, 0x05, 0x45, 0x2f, 0x01, 0xff, 0x4d, 0xdb, 0x56, 0xbc, - 0x2b, 0x00, 0x06, 0xad, 0x02, 0x01, 0xff, 0x51, 0xd7, 0x56, 0xbb, 0x2b, - 0x00, 0x47, 0xe1, 0x56, 0xba, 0x2b, 0x40, 0x48, 0xf2, 0xc5, 0x25, 0x21, - 0x00, 0xb4, 0x01, 0xff, 0x48, 0xca, 0xc1, 0xe4, 0xf4, 0x01, 0x06, 0xcc, - 0x10, 0x01, 0xff, 0x4a, 0x53, 0x2b, 0x2d, 0x27, 0x00, 0x06, 0xc4, 0x06, - 0x82, 0x01, 0x4b, 0x9f, 0x5f, 0x19, 0x27, 0x00, 0x07, 0xb3, 0x05, 0x06, - 0x4a, 0x96, 0x2d, 0x9d, 0x26, 0x40, 0x0e, 0xba, 0x05, 0x06, 0x44, 0x47, - 0x10, 0x1f, 0x27, 0x40, 0xe1, 0xd6, 0xcc, 0x01, 0xe2, 0xd7, 0xcc, 0x01, - 0xe3, 0xd8, 0xcc, 0x01, 0xe4, 0xd9, 0xcc, 0x01, 0xe5, 0xda, 0xcc, 0x01, - 0xe6, 0xdb, 0xcc, 0x01, 0xe7, 0xdc, 0xcc, 0x01, 0xe8, 0xdd, 0xcc, 0x01, - 0xe9, 0xde, 0xcc, 0x01, 0xea, 0xdf, 0xcc, 0x01, 0xeb, 0xe0, 0xcc, 0x01, - 0xec, 0xe1, 0xcc, 0x01, 0xed, 0xe2, 0xcc, 0x01, 0xee, 0xe3, 0xcc, 0x01, - 0xef, 0xe4, 0xcc, 0x01, 0xf0, 0xe5, 0xcc, 0x01, 0xf1, 0xe6, 0xcc, 0x01, - 0xf2, 0xe7, 0xcc, 0x01, 0xf3, 0xe8, 0xcc, 0x01, 0xf4, 0xe9, 0xcc, 0x01, - 0xf5, 0xea, 0xcc, 0x01, 0xf6, 0xeb, 0xcc, 0x01, 0xf7, 0xec, 0xcc, 0x01, - 0xf8, 0xed, 0xcc, 0x01, 0xf9, 0xee, 0xcc, 0x01, 0xfa, 0xef, 0xcc, 0x41, - 0x45, 0xc3, 0x0a, 0xf8, 0xcc, 0x01, 0xa6, 0x2e, 0x44, 0x46, 0x2a, 0xf9, - 0xcc, 0x01, 0x43, 0xbf, 0x0a, 0xf1, 0xcc, 0x01, 0xb3, 0x14, 0xb4, 0x06, - 0x44, 0xa1, 0x1d, 0xf0, 0xcc, 0x41, 0x44, 0x25, 0x01, 0xf3, 0xcc, 0x01, - 0x42, 0x15, 0x02, 0xf2, 0xcc, 0x41, 0x44, 0x27, 0x1d, 0xf7, 0xcc, 0x01, - 0x42, 0x60, 0x25, 0xf6, 0xcc, 0x41, 0x43, 0xa7, 0x05, 0xf5, 0xcc, 0x01, - 0x43, 0xcb, 0x06, 0xf4, 0xcc, 0x41, 0x42, 0x33, 0x00, 0xa6, 0xf9, 0x01, - 0x0b, 0x80, 0x9e, 0x01, 0xff, 0x11, 0xb5, 0x56, 0xe4, 0x02, 0x0d, 0xb3, - 0x58, 0xd3, 0x02, 0x48, 0x92, 0xc5, 0x2e, 0xed, 0x01, 0x07, 0x2f, 0x39, - 0x01, 0xff, 0x45, 0xc3, 0x0a, 0x08, 0xed, 0x81, 0xa7, 0x02, 0xa6, 0xd9, - 0x01, 0x44, 0x46, 0x2a, 0x09, 0xed, 0x81, 0xb6, 0x01, 0x43, 0xbf, 0x0a, - 0x01, 0xed, 0x81, 0x9f, 0x01, 0xb3, 0x59, 0xb4, 0x01, 0xff, 0x42, 0x92, - 0x01, 0x0a, 0xed, 0x81, 0x49, 0xa8, 0x24, 0xb7, 0x01, 0xff, 0x44, 0x29, - 0x1d, 0x0b, 0xed, 0x81, 0x14, 0xef, 0x02, 0xed, 0xc1, 0x00, 0x80, 0x01, - 0xff, 0x47, 0x22, 0x11, 0x14, 0xed, 0x01, 0x48, 0xd5, 0x5c, 0x1d, 0xed, - 0x41, 0x49, 0xd4, 0x5c, 0x26, 0xed, 0x41, 0x44, 0x2c, 0x11, 0x0c, 0xed, - 0x81, 0x16, 0x43, 0x26, 0x01, 0x03, 0xed, 0xc1, 0x00, 0x80, 0x01, 0xff, - 0x47, 0x22, 0x11, 0x15, 0xed, 0x01, 0x48, 0xd5, 0x5c, 0x1e, 0xed, 0x41, - 0x49, 0xd4, 0x5c, 0x27, 0xed, 0x41, 0x49, 0xd4, 0x5c, 0x25, 0xed, 0x41, - 0x44, 0x27, 0x1d, 0x07, 0xed, 0x81, 0x22, 0x42, 0x60, 0x25, 0x06, 0xed, - 0xc1, 0x00, 0x80, 0x0d, 0x42, 0x2e, 0x11, 0x0f, 0xed, 0xc1, 0x00, 0x49, - 0xd4, 0x5c, 0x2a, 0xed, 0x41, 0x47, 0x22, 0x11, 0x18, 0xed, 0x01, 0x48, - 0xd5, 0x5c, 0x21, 0xed, 0x41, 0x80, 0x0d, 0x42, 0x2e, 0x11, 0x10, 0xed, - 0xc1, 0x00, 0x49, 0xd4, 0x5c, 0x2b, 0xed, 0x41, 0x47, 0x22, 0x11, 0x19, - 0xed, 0x01, 0x48, 0xd5, 0x5c, 0x22, 0xed, 0x41, 0x80, 0x01, 0xff, 0x47, - 0x22, 0x11, 0x13, 0xed, 0x01, 0x48, 0xd5, 0x5c, 0x1c, 0xed, 0x41, 0x80, - 0x0d, 0x42, 0x2e, 0x11, 0x12, 0xed, 0xc1, 0x00, 0x49, 0xd4, 0x5c, 0x2d, - 0xed, 0x41, 0x47, 0x22, 0x11, 0x1b, 0xed, 0x01, 0x48, 0xd5, 0x5c, 0x24, - 0xed, 0x41, 0xa9, 0x26, 0xaf, 0x01, 0xff, 0x43, 0x2d, 0x11, 0x0d, 0xed, - 0x81, 0x16, 0x42, 0x42, 0x00, 0x04, 0xed, 0xc1, 0x00, 0x80, 0x01, 0xff, - 0x47, 0x22, 0x11, 0x16, 0xed, 0x01, 0x48, 0xd5, 0x5c, 0x1f, 0xed, 0x41, - 0x49, 0xd4, 0x5c, 0x28, 0xed, 0x41, 0x43, 0x09, 0x4c, 0x0e, 0xed, 0x81, - 0x16, 0x42, 0x32, 0x00, 0x05, 0xed, 0xc1, 0x00, 0x80, 0x01, 0xff, 0x47, - 0x22, 0x11, 0x17, 0xed, 0x01, 0x48, 0xd5, 0x5c, 0x20, 0xed, 0x41, 0x49, - 0xd4, 0x5c, 0x29, 0xed, 0x41, 0x80, 0x0b, 0xf9, 0x11, 0xed, 0xc1, 0x00, - 0x49, 0xd4, 0x5c, 0x2c, 0xed, 0x41, 0x47, 0x22, 0x11, 0x1a, 0xed, 0x01, - 0x48, 0xd5, 0x5c, 0x23, 0xed, 0x41, 0x44, 0x22, 0x00, 0x3c, 0xed, 0x01, - 0x45, 0xdc, 0xdc, 0x3d, 0xed, 0x41, 0x45, 0xc3, 0x0a, 0x35, 0xed, 0x01, - 0xa6, 0x3e, 0x44, 0x46, 0x2a, 0x36, 0xed, 0x01, 0xb3, 0x23, 0xb4, 0x01, - 0xff, 0x42, 0x92, 0x01, 0x37, 0xed, 0x81, 0x13, 0x44, 0x25, 0x01, 0x30, - 0xed, 0x01, 0x42, 0x15, 0x02, 0x2f, 0xed, 0xc1, 0x00, 0x49, 0xd4, 0x5c, - 0x3a, 0xed, 0x41, 0x49, 0xd4, 0x5c, 0x3b, 0xed, 0x41, 0x44, 0x27, 0x1d, - 0x34, 0xed, 0x01, 0x42, 0x60, 0x25, 0x33, 0xed, 0xc1, 0x00, 0x48, 0x21, - 0x11, 0x39, 0xed, 0x41, 0x43, 0xa7, 0x05, 0x32, 0xed, 0x01, 0x43, 0xcb, - 0x06, 0x31, 0xed, 0xc1, 0x00, 0x48, 0x21, 0x11, 0x38, 0xed, 0x41, 0x04, - 0x15, 0x42, 0xfe, 0x01, 0x06, 0x02, 0xdb, 0x01, 0xff, 0x06, 0xc4, 0x06, - 0xb2, 0x01, 0x07, 0xc1, 0x05, 0x01, 0xff, 0xe1, 0x96, 0x04, 0x81, 0x9d, - 0x01, 0x42, 0x16, 0x00, 0x81, 0x04, 0x01, 0x44, 0x26, 0xec, 0x8b, 0x04, - 0x01, 0xa4, 0x82, 0x01, 0xe5, 0x97, 0x04, 0x81, 0x79, 0x42, 0xe1, 0x07, - 0x8d, 0x04, 0x01, 0x42, 0x24, 0x02, 0x8c, 0x04, 0x01, 0x42, 0x22, 0x00, - 0x94, 0x04, 0x01, 0xe9, 0x98, 0x04, 0x01, 0x42, 0xbd, 0x26, 0x83, 0x04, - 0x01, 0xab, 0x4f, 0x44, 0xc8, 0xeb, 0x90, 0x04, 0x01, 0x44, 0xf2, 0xed, - 0x91, 0x04, 0x01, 0x44, 0x66, 0xee, 0x92, 0x04, 0x01, 0xef, 0x99, 0x04, - 0x81, 0x34, 0x44, 0xf6, 0xe6, 0x8e, 0x04, 0x01, 0x42, 0x71, 0x00, 0x87, - 0x04, 0x01, 0xb3, 0x1c, 0x42, 0x12, 0x00, 0x82, 0x04, 0x01, 0xf5, 0x9a, - 0x04, 0x01, 0x43, 0xc0, 0x88, 0x93, 0x04, 0x01, 0x42, 0x4c, 0x26, 0x84, - 0x04, 0x01, 0x42, 0x34, 0x22, 0x95, 0x04, 0x41, 0xe1, 0x88, 0x04, 0x01, - 0x44, 0x06, 0xed, 0x89, 0x04, 0x41, 0xef, 0x9d, 0x04, 0x41, 0x43, 0x94, - 0xc0, 0x8f, 0x04, 0x01, 0x42, 0x22, 0x00, 0x85, 0x04, 0x41, 0xe5, 0x9c, - 0x04, 0x41, 0x43, 0xde, 0x12, 0x86, 0x04, 0x01, 0x42, 0x22, 0x00, 0x8a, - 0x04, 0x41, 0xe1, 0x9b, 0x04, 0x01, 0x43, 0x68, 0x00, 0x80, 0x04, 0x41, - 0x45, 0xc3, 0x0a, 0xa8, 0x04, 0x01, 0xa6, 0x2e, 0x44, 0x46, 0x2a, 0xa9, - 0x04, 0x01, 0x43, 0xbf, 0x0a, 0xa1, 0x04, 0x01, 0xb3, 0x14, 0xb4, 0x06, - 0x44, 0xa1, 0x1d, 0xa0, 0x04, 0x41, 0x44, 0x25, 0x01, 0xa3, 0x04, 0x01, - 0x42, 0x15, 0x02, 0xa2, 0x04, 0x41, 0x44, 0x27, 0x1d, 0xa7, 0x04, 0x01, - 0x42, 0x60, 0x25, 0xa6, 0x04, 0x41, 0x43, 0xa7, 0x05, 0xa5, 0x04, 0x01, - 0x43, 0xcb, 0x06, 0xa4, 0x04, 0x41, 0x0f, 0xb9, 0x05, 0xd8, 0x01, 0x0d, - 0x4b, 0x08, 0x01, 0xff, 0xe1, 0xd8, 0x04, 0x81, 0xc0, 0x01, 0x43, 0x14, - 0x09, 0xdc, 0x04, 0x01, 0x43, 0xef, 0x1f, 0xdd, 0x04, 0x01, 0x43, 0x9e, - 0x4a, 0xf5, 0x04, 0x01, 0xe5, 0xdf, 0x04, 0x81, 0x81, 0x01, 0x43, 0xf3, - 0x99, 0xf9, 0x04, 0x01, 0xa8, 0x6f, 0xe9, 0xe3, 0x04, 0x01, 0xab, 0x59, - 0x42, 0x74, 0x00, 0xe7, 0x04, 0x01, 0x42, 0x6c, 0x00, 0xe8, 0x04, 0x01, - 0x42, 0xff, 0x04, 0xe9, 0x04, 0x01, 0xef, 0xea, 0x04, 0x81, 0x3c, 0x42, - 0x6c, 0x09, 0xec, 0x04, 0x01, 0xb3, 0x2a, 0xb4, 0x17, 0xf5, 0xf6, 0x04, - 0x01, 0x42, 0xa9, 0x01, 0xf7, 0x04, 0x01, 0xba, 0x01, 0xff, 0xe1, 0xfa, - 0x04, 0x01, 0x42, 0x22, 0x00, 0xfb, 0x04, 0x41, 0xe1, 0xf0, 0x04, 0x01, - 0xb3, 0x01, 0xff, 0xe1, 0xf2, 0x04, 0x01, 0x42, 0x22, 0x00, 0xf4, 0x04, - 0x41, 0xe1, 0xee, 0x04, 0x01, 0x42, 0x22, 0x00, 0xef, 0x04, 0x41, 0x42, - 0x9e, 0x01, 0xeb, 0x04, 0x41, 0xe1, 0xe4, 0x04, 0x01, 0x42, 0x22, 0x00, - 0xf8, 0x04, 0x01, 0x42, 0x34, 0x22, 0xe6, 0x04, 0x41, 0xe1, 0xe1, 0x04, - 0x01, 0x42, 0x34, 0x22, 0xe2, 0x04, 0x41, 0xa8, 0x06, 0x42, 0x9e, 0x01, - 0xe0, 0x04, 0x41, 0x43, 0xef, 0x1f, 0xde, 0x04, 0x01, 0x42, 0x1b, 0x02, - 0xe5, 0x04, 0x01, 0x42, 0x6c, 0x09, 0xed, 0x04, 0x01, 0xb4, 0x01, 0xff, - 0xe1, 0xf1, 0x04, 0x01, 0x42, 0x15, 0x06, 0xf3, 0x04, 0x41, 0xe8, 0xdb, - 0x04, 0x01, 0xe9, 0xd9, 0x04, 0xc1, 0x00, 0xee, 0xda, 0x04, 0x41, 0xe1, - 0xb0, 0x04, 0x81, 0xc0, 0x01, 0x43, 0x14, 0x09, 0xb4, 0x04, 0x01, 0x43, - 0xef, 0x1f, 0xb5, 0x04, 0x01, 0x43, 0x9e, 0x4a, 0xcd, 0x04, 0x01, 0xe5, - 0xb7, 0x04, 0x81, 0x81, 0x01, 0x43, 0xf3, 0x99, 0xd1, 0x04, 0x01, 0xa8, - 0x6f, 0xe9, 0xbb, 0x04, 0x01, 0xab, 0x59, 0x42, 0x74, 0x00, 0xbf, 0x04, - 0x01, 0x42, 0x6c, 0x00, 0xc0, 0x04, 0x01, 0x42, 0xff, 0x04, 0xc1, 0x04, - 0x01, 0xef, 0xc2, 0x04, 0x81, 0x3c, 0x42, 0x6c, 0x09, 0xc4, 0x04, 0x01, - 0xb3, 0x2a, 0xb4, 0x17, 0xf5, 0xce, 0x04, 0x01, 0x42, 0xa9, 0x01, 0xcf, - 0x04, 0x01, 0xba, 0x01, 0xff, 0xe1, 0xd2, 0x04, 0x01, 0x42, 0x22, 0x00, - 0xd3, 0x04, 0x41, 0xe1, 0xc8, 0x04, 0x01, 0xb3, 0x01, 0xff, 0xe1, 0xca, - 0x04, 0x01, 0x42, 0x22, 0x00, 0xcc, 0x04, 0x41, 0xe1, 0xc6, 0x04, 0x01, - 0x42, 0x22, 0x00, 0xc7, 0x04, 0x41, 0x42, 0x9e, 0x01, 0xc3, 0x04, 0x41, - 0xe1, 0xbc, 0x04, 0x01, 0x42, 0x22, 0x00, 0xd0, 0x04, 0x01, 0x42, 0x34, - 0x22, 0xbe, 0x04, 0x41, 0xe1, 0xb9, 0x04, 0x01, 0x42, 0x34, 0x22, 0xba, - 0x04, 0x41, 0xa8, 0x06, 0x42, 0x9e, 0x01, 0xb8, 0x04, 0x41, 0x43, 0xef, - 0x1f, 0xb6, 0x04, 0x01, 0x42, 0x1b, 0x02, 0xbd, 0x04, 0x01, 0x42, 0x6c, - 0x09, 0xc5, 0x04, 0x01, 0xb4, 0x01, 0xff, 0xe1, 0xc9, 0x04, 0x01, 0x42, - 0x15, 0x06, 0xcb, 0x04, 0x41, 0xe8, 0xb3, 0x04, 0x01, 0xe9, 0xb1, 0x04, - 0xc1, 0x00, 0xee, 0xb2, 0x04, 0x41, 0x50, 0x2a, 0x5f, 0xc7, 0x27, 0x00, - 0x03, 0x1c, 0x01, 0xf1, 0x04, 0x43, 0xa6, 0x15, 0x7f, 0xf7, 0x01, 0xa9, - 0x21, 0x05, 0xa7, 0x11, 0x11, 0x03, 0xff, 0x07, 0x01, 0xff, 0x49, 0x89, - 0xb5, 0x26, 0x26, 0x00, 0x55, 0x01, 0x21, 0x42, 0xcc, 0x41, 0x50, 0xf7, - 0x23, 0x3e, 0xfd, 0x00, 0x51, 0x4a, 0x21, 0x3f, 0xfd, 0x40, 0x48, 0xfc, - 0x2e, 0xb6, 0x22, 0x00, 0x03, 0xd1, 0x31, 0x01, 0xff, 0xa1, 0xae, 0x04, - 0x06, 0xc4, 0x06, 0xe7, 0x03, 0x09, 0xb3, 0x58, 0xb5, 0x03, 0x46, 0x2a, - 0xda, 0x70, 0x0b, 0x00, 0x07, 0xc1, 0x05, 0x79, 0x05, 0x2f, 0x03, 0x44, - 0x0b, 0xd1, 0x75, 0x01, 0xff, 0xa1, 0x31, 0xe5, 0x47, 0x0b, 0x00, 0xe9, - 0x3f, 0x0b, 0x80, 0x24, 0xef, 0x4b, 0x0b, 0x00, 0xf5, 0x41, 0x0b, 0x80, - 0x17, 0x08, 0x9b, 0xbe, 0x01, 0xff, 0xec, 0x62, 0x0b, 0x80, 0x09, 0xf2, - 0x43, 0x0b, 0xc0, 0x00, 0xf2, 0x44, 0x0b, 0x40, 0xec, 0x63, 0x0b, 0x40, - 0xf5, 0x42, 0x0b, 0x40, 0xe9, 0x40, 0x0b, 0x40, 0xe1, 0x3e, 0x0b, 0x00, - 0xe9, 0x48, 0x0b, 0x00, 0xf5, 0x4c, 0x0b, 0x40, 0xa1, 0x23, 0x4b, 0x4f, - 0x23, 0x01, 0x0b, 0x00, 0x45, 0x5a, 0x3e, 0x3c, 0x0b, 0x00, 0x48, 0xb8, - 0x88, 0x55, 0x0b, 0x00, 0x02, 0x02, 0x00, 0x01, 0xff, 0x44, 0x5d, 0x23, - 0x4d, 0x0b, 0x00, 0x45, 0xa3, 0x4a, 0x03, 0x0b, 0x40, 0x47, 0xd1, 0x15, - 0x02, 0x0b, 0x00, 0x47, 0xf2, 0x86, 0x3d, 0x0b, 0x40, 0xe1, 0x05, 0x0b, - 0x80, 0xa0, 0x02, 0xa2, 0x93, 0x02, 0xa3, 0x86, 0x02, 0xa4, 0xed, 0x01, - 0xe5, 0x0f, 0x0b, 0x00, 0xa7, 0xdc, 0x01, 0x42, 0x22, 0x00, 0x39, 0x0b, - 0x00, 0xe9, 0x07, 0x0b, 0x80, 0xcc, 0x01, 0xaa, 0xbf, 0x01, 0xab, 0xb2, - 0x01, 0xac, 0xa5, 0x01, 0x42, 0x6c, 0x00, 0x2e, 0x0b, 0x00, 0xae, 0x86, - 0x01, 0xef, 0x13, 0x0b, 0x00, 0xb0, 0x76, 0xb2, 0x64, 0xb3, 0x52, 0xb4, - 0x39, 0xf5, 0x09, 0x0b, 0x80, 0x30, 0xb6, 0x13, 0x42, 0xa9, 0x01, 0x71, - 0x0b, 0x00, 0xb9, 0x01, 0xff, 0xe1, 0x2f, 0x0b, 0x00, 0x42, 0x34, 0x22, - 0x5f, 0x0b, 0x40, 0xe1, 0x35, 0x0b, 0x00, 0x07, 0x9c, 0xbe, 0x01, 0xff, - 0xec, 0x0c, 0x0b, 0x80, 0x09, 0xf2, 0x0b, 0x0b, 0xc0, 0x00, 0xf2, 0x60, - 0x0b, 0x40, 0xec, 0x61, 0x0b, 0x40, 0xf5, 0x0a, 0x0b, 0x40, 0xe1, 0x24, - 0x0b, 0x00, 0x42, 0x22, 0x00, 0x25, 0x0b, 0x00, 0xb4, 0x01, 0xff, 0xe1, - 0x1f, 0x0b, 0x00, 0x42, 0x22, 0x00, 0x20, 0x0b, 0x40, 0xe1, 0x38, 0x0b, - 0x00, 0x42, 0x22, 0x00, 0x36, 0x0b, 0x00, 0x42, 0x15, 0x06, 0x37, 0x0b, - 0x40, 0xe1, 0x30, 0x0b, 0x00, 0x42, 0x22, 0x00, 0x5d, 0x0b, 0x00, 0x42, - 0x71, 0x00, 0x5c, 0x0b, 0x40, 0xe1, 0x2a, 0x0b, 0x00, 0x42, 0x22, 0x00, - 0x2b, 0x0b, 0x40, 0xe1, 0x28, 0x0b, 0x00, 0x42, 0x24, 0x02, 0x19, 0x0b, - 0x00, 0x42, 0xff, 0x04, 0x23, 0x0b, 0x00, 0x42, 0x34, 0x22, 0x1e, 0x0b, - 0x40, 0xe1, 0x32, 0x0b, 0x00, 0x42, 0x74, 0x00, 0x33, 0x0b, 0x40, 0xe1, - 0x15, 0x0b, 0x00, 0x42, 0x22, 0x00, 0x16, 0x0b, 0x40, 0xe1, 0x1c, 0x0b, - 0x00, 0x42, 0x22, 0x00, 0x1d, 0x0b, 0x40, 0xe9, 0x08, 0x0b, 0x40, 0xe1, - 0x17, 0x0b, 0x00, 0x42, 0x22, 0x00, 0x18, 0x0b, 0x40, 0xe1, 0x26, 0x0b, - 0x00, 0xa4, 0x06, 0x42, 0x22, 0x00, 0x27, 0x0b, 0x40, 0xe1, 0x21, 0x0b, - 0x00, 0x42, 0x22, 0x00, 0x22, 0x0b, 0x40, 0xe1, 0x1a, 0x0b, 0x00, 0x42, - 0x22, 0x00, 0x1b, 0x0b, 0x40, 0xe1, 0x2c, 0x0b, 0x00, 0x42, 0x22, 0x00, - 0x2d, 0x0b, 0x40, 0xe1, 0x06, 0x0b, 0x00, 0xe9, 0x10, 0x0b, 0x00, 0xf5, - 0x14, 0x0b, 0x40, 0x04, 0xbf, 0x0a, 0x11, 0x06, 0x24, 0x01, 0x01, 0xff, - 0x48, 0x2a, 0x01, 0x74, 0x0b, 0x00, 0x4a, 0xc3, 0xae, 0x77, 0x0b, 0x40, - 0x46, 0xc3, 0x0a, 0x76, 0x0b, 0x00, 0x44, 0x22, 0x00, 0x73, 0x0b, 0x00, - 0x47, 0x2a, 0x01, 0x72, 0x0b, 0x00, 0x49, 0x5f, 0x25, 0x75, 0x0b, 0x40, - 0x45, 0xc3, 0x0a, 0x6e, 0x0b, 0x00, 0xa6, 0x2e, 0x44, 0x46, 0x2a, 0x6f, - 0x0b, 0x00, 0x43, 0xbf, 0x0a, 0x67, 0x0b, 0x00, 0xb3, 0x14, 0xb4, 0x06, - 0x44, 0xa1, 0x1d, 0x66, 0x0b, 0x40, 0x44, 0x25, 0x01, 0x69, 0x0b, 0x00, - 0x42, 0x15, 0x02, 0x68, 0x0b, 0x40, 0x44, 0x27, 0x1d, 0x6d, 0x0b, 0x00, - 0x42, 0x60, 0x25, 0x6c, 0x0b, 0x40, 0x43, 0xa7, 0x05, 0x6b, 0x0b, 0x00, - 0x43, 0xcb, 0x06, 0x6a, 0x0b, 0x40, 0x4d, 0x39, 0x74, 0x56, 0x0b, 0x00, - 0x4d, 0x9b, 0x74, 0x57, 0x0b, 0x40, 0x02, 0x60, 0x00, 0x06, 0x44, 0x9e, - 0xef, 0xa7, 0xf9, 0x41, 0x44, 0x0e, 0xec, 0xd9, 0xf4, 0x01, 0x45, 0x24, - 0x21, 0xe1, 0xf9, 0x41, 0xa5, 0x24, 0x47, 0xc1, 0xce, 0xce, 0x26, 0x00, - 0x48, 0xa0, 0x16, 0x0d, 0x26, 0x00, 0x02, 0x35, 0x00, 0x01, 0xff, 0x48, - 0xf2, 0xc1, 0xbf, 0xf4, 0x81, 0x06, 0x46, 0xce, 0xdb, 0x25, 0x23, 0x40, - 0x45, 0xae, 0xde, 0xb8, 0xf5, 0x41, 0xae, 0x06, 0x55, 0xc1, 0x3c, 0x9d, - 0x00, 0x40, 0x80, 0x19, 0x8d, 0x01, 0xff, 0x0f, 0x0f, 0x6a, 0x06, 0x59, - 0xf1, 0x24, 0xbe, 0x27, 0x40, 0x4d, 0xe5, 0x81, 0x8f, 0x23, 0x00, 0x4d, - 0x37, 0x83, 0x90, 0x23, 0x40, 0x02, 0x5d, 0x00, 0x57, 0x07, 0x73, 0x02, - 0x3b, 0xa6, 0x2d, 0x4a, 0x22, 0x77, 0x50, 0xf4, 0x01, 0x44, 0x34, 0x01, - 0x13, 0xf5, 0x01, 0x0d, 0xc6, 0x83, 0x11, 0x02, 0x6f, 0x00, 0x01, 0xff, - 0x44, 0x4c, 0x12, 0xc3, 0x27, 0x00, 0x46, 0x59, 0x35, 0xc4, 0x27, 0x40, - 0x4c, 0xc5, 0x8f, 0xed, 0xf4, 0x01, 0x4b, 0x88, 0x9f, 0xec, 0xf4, 0x41, - 0x4a, 0x73, 0xa9, 0xc2, 0xf4, 0x01, 0x45, 0x40, 0x64, 0xc1, 0xf5, 0x41, - 0x48, 0xed, 0x0c, 0x32, 0x27, 0x00, 0x4a, 0x53, 0x2b, 0x2b, 0x27, 0x00, - 0x45, 0x46, 0x10, 0x1b, 0x27, 0x00, 0x58, 0xcd, 0x2a, 0x3c, 0x27, 0x40, - 0x42, 0x2a, 0x05, 0xd6, 0xf4, 0x01, 0xf8, 0x23, 0x24, 0x40, 0x72, 0xa7, - 0x00, 0x1b, 0xf5, 0x01, 0x07, 0x39, 0xcd, 0x27, 0xa5, 0x06, 0x43, 0xb5, - 0x00, 0xc5, 0xf9, 0x41, 0x80, 0x06, 0x4f, 0xb6, 0x68, 0x71, 0xfa, 0x41, - 0x4c, 0x45, 0x8b, 0xaf, 0xf5, 0x01, 0x04, 0xb4, 0x0b, 0x01, 0xff, 0x46, - 0x2e, 0x7c, 0x24, 0x20, 0x00, 0x59, 0xe3, 0x14, 0x2b, 0x2e, 0x40, 0x4a, - 0xdb, 0xa5, 0x98, 0xf6, 0x01, 0x43, 0xf5, 0x26, 0x8d, 0xf6, 0x01, 0x4b, - 0x08, 0x9a, 0xf1, 0xf6, 0x01, 0x4a, 0x51, 0xad, 0x94, 0xf6, 0x01, 0x44, - 0x82, 0xcc, 0x96, 0xf6, 0x41, 0x80, 0xf5, 0x14, 0xa4, 0x06, 0x43, 0xa7, + 0x1a, 0x41, 0x56, 0xbb, 0x35, 0x17, 0x21, 0x00, 0x03, 0x53, 0x00, 0x01, + 0xff, 0x05, 0xad, 0x23, 0x5c, 0x05, 0xbe, 0x1a, 0x01, 0xff, 0x45, 0xce, + 0x00, 0x99, 0x21, 0x80, 0x3b, 0x4b, 0xa5, 0x99, 0x0b, 0x2b, 0x00, 0x4c, + 0x2f, 0x8e, 0xd9, 0x21, 0x00, 0x09, 0x9c, 0x01, 0x19, 0x50, 0xe6, 0x66, + 0x57, 0xf8, 0x01, 0x55, 0x01, 0x02, 0x69, 0x2b, 0x80, 0x06, 0x4b, 0x49, + 0x10, 0x03, 0x2b, 0x40, 0x47, 0xd0, 0x14, 0x79, 0x2b, 0x40, 0x43, 0x7a, + 0xd0, 0x61, 0xf6, 0x01, 0x44, 0x39, 0x51, 0x51, 0xf6, 0x01, 0x49, 0x10, + 0xc1, 0x59, 0xf6, 0x41, 0x80, 0x01, 0xff, 0x54, 0x64, 0x40, 0x2a, 0x29, + 0x00, 0x48, 0x57, 0xb4, 0xbb, 0xf8, 0x01, 0x49, 0xa8, 0x24, 0x26, 0x29, + 0x40, 0x45, 0xce, 0x00, 0x98, 0x21, 0x80, 0x3b, 0x4b, 0xa5, 0x99, 0x0a, + 0x2b, 0x00, 0x4c, 0x2f, 0x8e, 0xd8, 0x21, 0x00, 0x09, 0x9c, 0x01, 0x19, + 0x50, 0xe6, 0x66, 0x56, 0xf8, 0x01, 0x55, 0x01, 0x02, 0x68, 0x2b, 0x80, + 0x06, 0x4b, 0x49, 0x10, 0x02, 0x2b, 0x40, 0x47, 0xd0, 0x14, 0x78, 0x2b, + 0x40, 0x43, 0x7a, 0xd0, 0x63, 0xf6, 0x01, 0x44, 0x39, 0x51, 0x53, 0xf6, + 0x01, 0x49, 0x10, 0xc1, 0x5b, 0xf6, 0x41, 0x80, 0x01, 0xff, 0x54, 0x8c, + 0x40, 0x29, 0x29, 0x00, 0x59, 0x9e, 0x23, 0x2d, 0x29, 0x00, 0x48, 0x57, + 0xb4, 0xba, 0xf8, 0x01, 0x49, 0xde, 0xbf, 0xf2, 0x21, 0x00, 0x49, 0xa8, + 0x24, 0x25, 0x29, 0x40, 0x06, 0xef, 0x06, 0x9d, 0x01, 0x07, 0xec, 0x05, + 0x01, 0xff, 0x42, 0x18, 0x0a, 0xe2, 0x10, 0x01, 0x43, 0x60, 0x4e, 0xd2, + 0x10, 0x01, 0x43, 0x04, 0xf4, 0xd3, 0x10, 0x01, 0x43, 0xcb, 0x2d, 0xd4, + 0x10, 0x01, 0xa5, 0x74, 0x43, 0x6f, 0xbc, 0xd5, 0x10, 0x01, 0x43, 0x26, + 0x21, 0xde, 0x10, 0x01, 0x42, 0xda, 0x2c, 0xe4, 0x10, 0x01, 0x43, 0x56, + 0x19, 0xe0, 0x10, 0x01, 0x43, 0x66, 0xd3, 0xdf, 0x10, 0x01, 0x43, 0x37, + 0x18, 0xd8, 0x10, 0x01, 0x02, 0x6c, 0x00, 0x44, 0xae, 0x30, 0x42, 0xfd, + 0x28, 0xe6, 0x10, 0x01, 0x43, 0xe2, 0x42, 0xdb, 0x10, 0x01, 0x43, 0x3e, + 0x18, 0xdd, 0x10, 0x01, 0x43, 0x86, 0xc6, 0xd0, 0x10, 0x01, 0x43, 0x17, + 0x0a, 0xd1, 0x10, 0x01, 0x42, 0x1c, 0x58, 0xe5, 0x10, 0x01, 0x43, 0x95, + 0xd5, 0xda, 0x10, 0x01, 0x43, 0xab, 0x4a, 0xdc, 0x10, 0x41, 0x42, 0x18, + 0x0a, 0xd9, 0x10, 0x01, 0x43, 0x6f, 0xbc, 0xd7, 0x10, 0x01, 0x43, 0xab, + 0x4a, 0xe1, 0x10, 0x41, 0xe5, 0xe8, 0x10, 0x01, 0xe8, 0xd6, 0x10, 0x41, + 0x42, 0x4e, 0x00, 0xe3, 0x10, 0x01, 0xe8, 0xe7, 0x10, 0x41, 0x45, 0x12, + 0x0b, 0xf8, 0x10, 0x01, 0xa6, 0x2e, 0x44, 0xcf, 0x2a, 0xf9, 0x10, 0x01, + 0x43, 0x0e, 0x0b, 0xf1, 0x10, 0x01, 0xb3, 0x14, 0xb4, 0x06, 0x44, 0x43, + 0x1e, 0xf0, 0x10, 0x41, 0x44, 0x25, 0x01, 0xf3, 0x10, 0x01, 0x42, 0x15, + 0x02, 0xf2, 0x10, 0x41, 0x44, 0xc9, 0x1d, 0xf7, 0x10, 0x01, 0x42, 0x01, + 0x26, 0xf6, 0x10, 0x41, 0x43, 0xd2, 0x05, 0xf5, 0x10, 0x01, 0x43, 0xf6, + 0x06, 0xf4, 0x10, 0x41, 0x56, 0xb4, 0x24, 0x6a, 0xf6, 0x81, 0x0d, 0x42, + 0xef, 0x02, 0x2f, 0x00, 0xc0, 0x00, 0x4d, 0xe0, 0x7f, 0xf6, 0x29, 0x40, + 0x50, 0x3e, 0x11, 0x6b, 0xf6, 0x41, 0x0a, 0x41, 0x59, 0xda, 0x01, 0x50, + 0xe6, 0x63, 0x45, 0x0f, 0x01, 0x07, 0xec, 0x05, 0x49, 0x07, 0xff, 0x39, + 0x29, 0x0c, 0x6d, 0x16, 0x01, 0xff, 0x4f, 0xad, 0x42, 0x57, 0x0f, 0x01, + 0x54, 0xa8, 0x42, 0x59, 0x0f, 0x01, 0x04, 0x1f, 0x0a, 0x01, 0xff, 0x51, + 0x1f, 0x59, 0x58, 0x0f, 0x01, 0x4d, 0x22, 0x8a, 0x55, 0x0f, 0xc1, 0x00, + 0x4a, 0x26, 0x59, 0x56, 0x0f, 0x41, 0x43, 0x0e, 0x0b, 0x51, 0x0f, 0x81, + 0x0f, 0xb4, 0x01, 0xff, 0x42, 0x92, 0x01, 0x52, 0x0f, 0x01, 0x45, 0x7f, + 0x2c, 0x53, 0x0f, 0x41, 0x48, 0x70, 0x11, 0x54, 0x0f, 0x41, 0xa1, 0x79, + 0x44, 0x41, 0xef, 0x31, 0x0f, 0x01, 0x44, 0xc1, 0xef, 0x43, 0x0f, 0x01, + 0x45, 0xdd, 0xaa, 0x32, 0x0f, 0x01, 0x42, 0xb0, 0x01, 0x33, 0x0f, 0x81, + 0x5a, 0x44, 0xcd, 0xf0, 0x38, 0x0f, 0x01, 0xac, 0x46, 0x43, 0xb4, 0x05, + 0x3a, 0x0f, 0x01, 0x43, 0xdc, 0x22, 0x3b, 0x0f, 0x01, 0x42, 0x6f, 0x02, + 0x3e, 0x0f, 0x01, 0x49, 0x76, 0x66, 0x40, 0x0f, 0x01, 0xb3, 0x18, 0x43, + 0xa4, 0xc4, 0x42, 0x0f, 0x01, 0x43, 0x8a, 0x8a, 0x34, 0x0f, 0x01, 0x44, + 0xa1, 0x52, 0x37, 0x0f, 0x01, 0x45, 0x9b, 0x52, 0x35, 0x0f, 0x41, 0xa1, + 0x06, 0x43, 0x7a, 0x16, 0x41, 0x0f, 0x41, 0x43, 0xad, 0xea, 0x3f, 0x0f, + 0x01, 0x44, 0x49, 0xe4, 0x3c, 0x0f, 0x41, 0x45, 0x4b, 0xdc, 0x39, 0x0f, + 0x01, 0x43, 0x93, 0x5a, 0x44, 0x0f, 0x41, 0x42, 0x53, 0x00, 0x36, 0x0f, + 0x41, 0x44, 0x18, 0x3d, 0x30, 0x0f, 0x01, 0x43, 0x7e, 0x1a, 0x3d, 0x0f, + 0x41, 0x06, 0x9b, 0x13, 0x43, 0x04, 0x03, 0x0c, 0x33, 0x05, 0xaf, 0x14, + 0x23, 0x4f, 0xe1, 0x6f, 0x4e, 0x0f, 0x01, 0x4a, 0x19, 0xb0, 0x4f, 0x0f, + 0x01, 0x4c, 0xc5, 0x0e, 0x50, 0x0f, 0x01, 0x09, 0xf1, 0x0b, 0x01, 0xff, + 0x45, 0x5c, 0x00, 0x49, 0x0f, 0x01, 0x45, 0x20, 0x07, 0x47, 0x0f, 0x41, + 0x45, 0x5c, 0x00, 0x4c, 0x0f, 0x01, 0x45, 0x20, 0x07, 0x4d, 0x0f, 0x41, + 0x45, 0x5c, 0x00, 0x48, 0x0f, 0x01, 0x45, 0x20, 0x07, 0x46, 0x0f, 0x41, + 0x45, 0x5c, 0x00, 0x4a, 0x0f, 0x01, 0x45, 0x20, 0x07, 0x4b, 0x0f, 0x41, + 0x80, 0x0c, 0x44, 0xcd, 0x1c, 0x4e, 0xf9, 0x01, 0x54, 0xa4, 0x46, 0x94, + 0x23, 0x40, 0x46, 0x96, 0x63, 0xad, 0x00, 0x00, 0x49, 0xf6, 0xb9, 0x66, + 0xf3, 0x01, 0x51, 0x51, 0x39, 0xac, 0xf5, 0x41, 0x48, 0x98, 0xc4, 0xbd, + 0x26, 0x00, 0x42, 0x6e, 0x00, 0xe6, 0xf9, 0x41, 0xa1, 0x2a, 0x4b, 0x94, + 0x9b, 0x27, 0xf9, 0x01, 0x02, 0xd1, 0x00, 0x01, 0xff, 0x50, 0x16, 0x60, + 0xd4, 0xf3, 0x01, 0x47, 0x95, 0xcf, 0xc2, 0xf3, 0x01, 0x45, 0xdd, 0x2e, + 0x44, 0x27, 0x00, 0x43, 0x41, 0x18, 0x03, 0x26, 0xc0, 0x00, 0x4d, 0xfa, + 0x7f, 0xc4, 0x26, 0x40, 0x42, 0x62, 0x01, 0x0c, 0xf4, 0x01, 0x42, 0x37, + 0x01, 0x0d, 0xf4, 0xc1, 0x00, 0x47, 0x15, 0x08, 0xfa, 0xcc, 0x41, 0xa1, + 0x86, 0x01, 0xa9, 0x06, 0x4c, 0x63, 0x7c, 0xac, 0xf6, 0x41, 0xac, 0x06, + 0x4a, 0x73, 0xb0, 0x0f, 0xf6, 0x41, 0xe5, 0x23, 0x23, 0x00, 0x04, 0xa1, + 0x01, 0x01, 0xff, 0x0e, 0x62, 0x1f, 0x5d, 0x0a, 0x0c, 0x08, 0x01, 0xff, + 0xa8, 0x44, 0x4a, 0x3c, 0x29, 0x03, 0xf6, 0x81, 0x26, 0xb3, 0x06, 0x44, + 0x22, 0x0d, 0x72, 0xf9, 0x41, 0x4b, 0x71, 0x1f, 0x0a, 0xf6, 0x81, 0x06, + 0x49, 0x53, 0xc0, 0x0e, 0xf6, 0x41, 0x05, 0x19, 0x00, 0x01, 0xff, 0x53, + 0xca, 0x49, 0x2d, 0xf9, 0x01, 0x4c, 0xdf, 0x95, 0x70, 0xf9, 0x41, 0x05, + 0x19, 0x00, 0x01, 0xff, 0x4a, 0xf1, 0x75, 0x05, 0xf6, 0x01, 0x4c, 0x70, + 0x1f, 0x04, 0xf6, 0x01, 0x53, 0x93, 0x4d, 0x06, 0xf6, 0x41, 0x43, 0xc1, + 0x4d, 0x07, 0xf6, 0x01, 0x50, 0x85, 0x5a, 0x0d, 0xf6, 0x01, 0x44, 0x9b, + 0x7f, 0x08, 0xf6, 0x41, 0x51, 0x84, 0x5a, 0x3b, 0xf6, 0x01, 0x4a, 0x3c, + 0x29, 0x3a, 0xf6, 0x41, 0x02, 0x60, 0x07, 0x06, 0x4a, 0x29, 0x4f, 0x33, + 0x2a, 0x40, 0x80, 0x0d, 0x47, 0xde, 0xd0, 0xaa, 0x2a, 0xc0, 0x00, 0x4c, + 0xf2, 0x28, 0xac, 0x2a, 0x40, 0xa1, 0xfc, 0x02, 0x4c, 0xd3, 0x8c, 0x39, + 0xf5, 0x01, 0x02, 0x13, 0x05, 0xc1, 0x02, 0x4b, 0x10, 0x9b, 0x69, 0xfe, + 0x00, 0xa5, 0x8e, 0x02, 0x49, 0x81, 0x16, 0x52, 0xfe, 0x00, 0x51, 0x62, + 0x5a, 0x65, 0xfe, 0x00, 0x4c, 0xc7, 0x8f, 0x63, 0xfe, 0x00, 0x51, 0xea, + 0x5a, 0x51, 0xfe, 0x00, 0x02, 0x68, 0x00, 0xd5, 0x01, 0x4b, 0x43, 0xa0, + 0x5f, 0xfe, 0x00, 0x4e, 0x85, 0x7a, 0x38, 0xf5, 0x01, 0xb0, 0xba, 0x01, + 0x4d, 0xa6, 0x34, 0x56, 0xfe, 0x00, 0xb2, 0x20, 0x49, 0x21, 0xbf, 0x54, + 0xfe, 0x00, 0xb4, 0x0c, 0x54, 0x68, 0x46, 0xfa, 0xcd, 0x01, 0x51, 0x2a, + 0x5f, 0x61, 0x2a, 0x40, 0x44, 0x36, 0x23, 0xdc, 0x02, 0x00, 0x60, 0xf2, + 0x0b, 0x3b, 0x0b, 0x41, 0x4e, 0x67, 0x72, 0x68, 0xfe, 0x00, 0x05, 0xc9, + 0x00, 0x76, 0x0d, 0xd5, 0x86, 0x01, 0xff, 0xa5, 0x63, 0xa6, 0x46, 0x44, + 0xcf, 0x2a, 0x78, 0x21, 0x00, 0x43, 0x0e, 0x0b, 0x70, 0x21, 0x80, 0x2a, + 0xb3, 0x1c, 0xb4, 0x01, 0xff, 0x42, 0x92, 0x01, 0x79, 0x21, 0x00, 0x44, + 0x25, 0x01, 0x72, 0x21, 0x00, 0xb7, 0x01, 0xff, 0x44, 0xe7, 0x2b, 0x7b, + 0x21, 0x00, 0xef, 0x71, 0x21, 0x40, 0x44, 0xc9, 0x1d, 0x76, 0x21, 0x00, + 0x42, 0x01, 0x26, 0x75, 0x21, 0x40, 0x80, 0x01, 0xff, 0x47, 0x71, 0x11, + 0x7d, 0x21, 0x00, 0x48, 0x40, 0x5e, 0x7f, 0x21, 0x40, 0xa9, 0x06, 0x43, + 0xf6, 0x06, 0x73, 0x21, 0x40, 0x43, 0x52, 0x4d, 0x7c, 0x21, 0x00, 0x42, + 0x32, 0x00, 0x74, 0x21, 0xc0, 0x00, 0x48, 0x70, 0x11, 0x7e, 0x21, 0x40, + 0x44, 0xc9, 0x00, 0x77, 0x21, 0x00, 0x45, 0xb4, 0x6f, 0x7a, 0x21, 0x40, + 0x4d, 0x72, 0x0b, 0x5c, 0xfe, 0x00, 0x4b, 0xd8, 0x21, 0x5a, 0xfe, 0x00, + 0x56, 0x54, 0x09, 0x5e, 0xfe, 0x40, 0x4b, 0xe1, 0x9b, 0x6a, 0xfe, 0x00, + 0x48, 0xe0, 0x71, 0x62, 0xfe, 0x40, 0x03, 0xc5, 0x00, 0x06, 0x4c, 0x67, + 0x95, 0x64, 0xfe, 0x40, 0x4d, 0x72, 0x0b, 0x5b, 0xfe, 0x00, 0x4b, 0xd8, + 0x21, 0x59, 0xfe, 0x00, 0x56, 0x54, 0x09, 0x5d, 0xfe, 0x40, 0x49, 0x52, + 0x92, 0x0a, 0x22, 0x80, 0x12, 0x46, 0xc2, 0xc2, 0x58, 0xfe, 0x00, 0x4a, + 0x49, 0x13, 0x66, 0xfe, 0x00, 0x4f, 0xae, 0x00, 0x57, 0xfe, 0x40, 0x06, + 0x50, 0x00, 0x01, 0xff, 0x47, 0xe6, 0x7f, 0xf7, 0x22, 0x00, 0x68, 0x30, + 0x05, 0xf4, 0x22, 0x40, 0x43, 0xd7, 0x02, 0x55, 0xfe, 0x00, 0x02, 0x15, + 0x05, 0x1c, 0x07, 0x78, 0x69, 0x01, 0xff, 0x49, 0x57, 0xb6, 0x0d, 0x22, + 0x00, 0x05, 0x51, 0x00, 0x01, 0xff, 0x47, 0xe6, 0x7f, 0xfe, 0x22, 0x00, + 0x68, 0x30, 0x05, 0xfc, 0x22, 0x40, 0xe1, 0x50, 0xfe, 0x00, 0x49, 0x85, + 0xb8, 0x6b, 0xfe, 0x40, 0x47, 0x12, 0x34, 0xe9, 0xf6, 0x01, 0x48, 0x13, + 0x3e, 0x60, 0xfe, 0x00, 0x47, 0x3d, 0x0d, 0x61, 0xfe, 0x40, 0xa1, 0x6c, + 0xa5, 0x40, 0xa9, 0x27, 0xaf, 0x01, 0xff, 0xb0, 0x0d, 0xb4, 0x01, 0xff, + 0x48, 0x7f, 0x48, 0xb0, 0xf3, 0x01, 0xe8, 0xa5, 0xf9, 0x41, 0xe5, 0x33, + 0x23, 0x00, 0x0a, 0xcd, 0xab, 0x01, 0xff, 0x43, 0x1a, 0x00, 0x58, 0x2a, + 0x00, 0x42, 0x0c, 0x00, 0x57, 0x2a, 0x40, 0x4b, 0xfd, 0x99, 0x55, 0xf3, + 0x01, 0x06, 0x8b, 0x79, 0x01, 0xff, 0x4d, 0x13, 0x83, 0x41, 0xf6, 0x01, + 0x4c, 0x5b, 0x95, 0x42, 0xf6, 0x41, 0xe4, 0xf7, 0xf6, 0x01, 0x02, 0xeb, + 0x0a, 0x06, 0x4a, 0x25, 0xb3, 0x75, 0xf5, 0x41, 0x04, 0xa1, 0x01, 0x06, + 0x46, 0x85, 0xd5, 0x2a, 0xf6, 0x41, 0x4d, 0x3b, 0x80, 0xcc, 0xf6, 0x01, + 0x44, 0x0c, 0x08, 0x34, 0xf6, 0x01, 0x46, 0x16, 0x08, 0xa4, 0xf4, 0x41, + 0x05, 0x76, 0x00, 0x06, 0x4e, 0x91, 0x7e, 0x73, 0xa6, 0x40, 0x0c, 0x86, + 0x28, 0x11, 0x13, 0xb8, 0x4b, 0x01, 0xff, 0x49, 0xea, 0xbc, 0x5a, 0x2b, + 0x00, 0x4d, 0xf3, 0x87, 0x5c, 0x2b, 0x40, 0x4c, 0x87, 0x00, 0x96, 0x2a, + 0x80, 0x0d, 0x49, 0xec, 0x00, 0x95, 0x2a, 0xc0, 0x00, 0x50, 0xa6, 0x60, + 0x97, 0x2a, 0x40, 0x50, 0xa6, 0x60, 0x98, 0x2a, 0x40, 0x48, 0xc0, 0xc3, + 0xf9, 0xf6, 0x01, 0xa9, 0x16, 0xb5, 0x01, 0xff, 0x42, 0x60, 0x07, 0x80, + 0xf4, 0x81, 0x06, 0x42, 0xb3, 0x25, 0xa8, 0xf9, 0x41, 0x4f, 0xc5, 0x4a, + 0x20, 0x26, 0x40, 0x4d, 0x1d, 0x7f, 0xbf, 0xf3, 0x01, 0x42, 0x33, 0x00, + 0xf7, 0x26, 0x40, 0xa4, 0xbc, 0x31, 0x02, 0x5c, 0x03, 0xf0, 0x07, 0x51, + 0xc7, 0x5b, 0xfe, 0xf5, 0x01, 0x06, 0xf7, 0xd1, 0xbe, 0x07, 0xae, 0x30, + 0xb8, 0x01, 0xff, 0x02, 0x9b, 0x01, 0x0c, 0x4d, 0x2e, 0x80, 0x06, 0x20, + 0x00, 0x55, 0x4e, 0x3e, 0x3a, 0x27, 0x40, 0x60, 0x94, 0x0f, 0x3e, 0x27, + 0x00, 0x07, 0x34, 0x08, 0x01, 0xff, 0x4a, 0xf4, 0x2b, 0x36, 0x27, 0x00, + 0x4d, 0x28, 0x13, 0xcd, 0xf7, 0x01, 0x54, 0x04, 0x46, 0x2f, 0xf5, 0x41, + 0x46, 0x12, 0xdb, 0x3f, 0x22, 0x00, 0x03, 0x06, 0x02, 0xc1, 0x06, 0x05, + 0xd2, 0xe6, 0x01, 0xff, 0x08, 0xa3, 0x80, 0xa4, 0x05, 0xac, 0xae, 0x01, + 0x56, 0x6b, 0x36, 0xf4, 0x0d, 0x00, 0x05, 0x5a, 0x03, 0x89, 0x01, 0x0b, + 0x40, 0x77, 0x01, 0xff, 0x4a, 0x26, 0x6c, 0xcf, 0x0d, 0x00, 0x05, 0x21, + 0x6c, 0x52, 0x02, 0x24, 0x02, 0x42, 0xab, 0x01, 0xff, 0x05, 0xbb, 0xb8, + 0x29, 0x04, 0x6e, 0xd2, 0x01, 0xff, 0x45, 0xaa, 0xe1, 0xdb, 0x0d, 0x00, + 0x42, 0xf5, 0x0a, 0xd9, 0x0d, 0xc0, 0x00, 0x05, 0xb9, 0xe1, 0x01, 0xff, + 0x4a, 0x26, 0x6c, 0xdc, 0x0d, 0x00, 0x4f, 0x21, 0x6c, 0xdd, 0x0d, 0x00, + 0x4b, 0x44, 0x9c, 0xde, 0x0d, 0x40, 0x4a, 0x77, 0xa7, 0xd0, 0x0d, 0x00, + 0x48, 0x40, 0xc7, 0xd2, 0x0d, 0x00, 0x49, 0xdd, 0xbd, 0xd4, 0x0d, 0x40, + 0x4a, 0x1f, 0xaa, 0xd8, 0x0d, 0x00, 0x49, 0x46, 0x9c, 0xdf, 0x0d, 0x40, + 0x4a, 0x77, 0xa7, 0xd1, 0x0d, 0x00, 0x02, 0x24, 0x02, 0x12, 0x48, 0x40, + 0xc7, 0xd3, 0x0d, 0x00, 0x47, 0x6d, 0xd2, 0xda, 0x0d, 0x00, 0x49, 0xdd, + 0xbd, 0xd6, 0x0d, 0x40, 0x4a, 0x1f, 0xaa, 0xf2, 0x0d, 0x00, 0x49, 0x46, + 0x9c, 0xf3, 0x0d, 0x40, 0xa1, 0x0c, 0x4b, 0xd7, 0x23, 0x81, 0x0d, 0x00, + 0x49, 0x19, 0xc1, 0x83, 0x0d, 0x40, 0x48, 0x88, 0xc7, 0xca, 0x0d, 0x00, + 0x49, 0xbd, 0xbc, 0x82, 0x0d, 0x40, 0x06, 0xed, 0x05, 0x47, 0x0a, 0x1d, + 0xac, 0x01, 0xff, 0x45, 0x12, 0x0b, 0xee, 0x0d, 0x00, 0xa6, 0x2e, 0x44, + 0xcf, 0x2a, 0xef, 0x0d, 0x00, 0x43, 0x0e, 0x0b, 0xe7, 0x0d, 0x00, 0xb3, + 0x14, 0xb4, 0x06, 0x44, 0x43, 0x1e, 0xe6, 0x0d, 0x40, 0x44, 0x25, 0x01, + 0xe9, 0x0d, 0x00, 0x42, 0x15, 0x02, 0xe8, 0x0d, 0x40, 0x44, 0xc9, 0x1d, + 0xed, 0x0d, 0x00, 0x42, 0x01, 0x26, 0xec, 0x0d, 0x40, 0x43, 0xd2, 0x05, + 0xeb, 0x0d, 0x00, 0x43, 0xf6, 0x06, 0xea, 0x0d, 0x40, 0xa1, 0xb4, 0x02, + 0x08, 0x00, 0xc5, 0x9d, 0x02, 0xa5, 0x8e, 0x02, 0x47, 0x16, 0xd1, 0xc6, + 0x0d, 0x00, 0x47, 0x7f, 0xd1, 0xc4, 0x0d, 0x00, 0xa9, 0xd3, 0x01, 0x52, + 0x23, 0x53, 0x9e, 0x0d, 0x00, 0xad, 0x67, 0xaf, 0x59, 0x47, 0x30, 0xd5, + 0xbb, 0x0d, 0x00, 0x08, 0xa8, 0xca, 0x35, 0x08, 0x50, 0xcb, 0x1a, 0xb5, + 0x0c, 0x47, 0x2f, 0xd7, 0xc0, 0x0d, 0x00, 0x47, 0xd7, 0xd7, 0xba, 0x0d, + 0x40, 0x46, 0x12, 0xe1, 0x8c, 0x0d, 0x00, 0x45, 0x59, 0x69, 0x8b, 0x0d, + 0x40, 0x4a, 0x2b, 0x53, 0xa4, 0x0d, 0x00, 0x02, 0x40, 0x06, 0x01, 0xff, + 0x52, 0x0d, 0x54, 0xa5, 0x0d, 0x00, 0x45, 0x59, 0x69, 0xc1, 0x0d, 0x40, + 0xa4, 0x0c, 0x47, 0x39, 0xd1, 0x9f, 0x0d, 0x00, 0x47, 0x2e, 0xd2, 0xa6, + 0x0d, 0x40, 0x46, 0x4b, 0x9f, 0xb3, 0x0d, 0x00, 0x47, 0x44, 0xd0, 0xac, + 0x0d, 0x40, 0x46, 0x58, 0x69, 0x95, 0x0d, 0x00, 0x45, 0x59, 0x69, 0x94, + 0x0d, 0x40, 0xa1, 0x17, 0x09, 0xbf, 0xc0, 0x01, 0xff, 0x47, 0xba, 0xd2, + 0xc5, 0x0d, 0x00, 0x47, 0x70, 0xd3, 0xab, 0x0d, 0x00, 0x47, 0xae, 0xd5, + 0xc2, 0x0d, 0x40, 0x0a, 0x05, 0xab, 0x06, 0x45, 0x59, 0x69, 0xb8, 0x0d, + 0x40, 0x47, 0x4a, 0x9f, 0xb7, 0x0d, 0x00, 0x47, 0xd4, 0xcf, 0xa1, 0x0d, + 0x00, 0xa4, 0x27, 0x47, 0x39, 0xd1, 0x9d, 0x0d, 0x00, 0x47, 0x2e, 0xd2, + 0xa3, 0x0d, 0x00, 0x47, 0x51, 0xd2, 0x9b, 0x0d, 0x00, 0x47, 0x8f, 0xd4, + 0xb5, 0x0d, 0x00, 0xb4, 0x01, 0xff, 0x46, 0x4b, 0x9f, 0xae, 0x0d, 0x00, + 0x47, 0x3a, 0xd6, 0xa8, 0x0d, 0x40, 0x46, 0x4b, 0x9f, 0xb0, 0x0d, 0x00, + 0x47, 0x44, 0xd0, 0xaa, 0x0d, 0x40, 0x46, 0x4c, 0xdd, 0x8a, 0x0d, 0x00, + 0x02, 0xc7, 0x15, 0x16, 0x02, 0x3d, 0x00, 0x06, 0x45, 0x59, 0x69, 0x89, + 0x0d, 0x40, 0x46, 0x12, 0xe1, 0x8e, 0x0d, 0x00, 0x45, 0x59, 0x69, 0x8d, + 0x0d, 0x40, 0x46, 0x12, 0xe1, 0x90, 0x0d, 0x00, 0x45, 0x59, 0x69, 0x8f, + 0x0d, 0x40, 0x46, 0xa2, 0xdb, 0x92, 0x0d, 0x00, 0x45, 0x59, 0x69, 0x91, + 0x0d, 0x40, 0x47, 0xba, 0xd2, 0xbd, 0x0d, 0x00, 0x47, 0x70, 0xd3, 0xb1, + 0x0d, 0x00, 0x47, 0xae, 0xd5, 0xc3, 0x0d, 0x40, 0x46, 0x4b, 0x9f, 0x86, + 0x0d, 0x00, 0xa5, 0x5d, 0x46, 0x4c, 0xdd, 0x93, 0x0d, 0x00, 0x0a, 0x7b, + 0xad, 0x12, 0x4b, 0x46, 0x9f, 0xb9, 0x0d, 0x00, 0x46, 0x12, 0xe1, 0x96, + 0x0d, 0x00, 0x45, 0x59, 0x69, 0x85, 0x0d, 0x40, 0x47, 0x4a, 0x9f, 0xb6, + 0x0d, 0x00, 0x47, 0xd4, 0xcf, 0xa0, 0x0d, 0x00, 0xa4, 0x27, 0x47, 0x39, + 0xd1, 0x9c, 0x0d, 0x00, 0x47, 0x2e, 0xd2, 0xa2, 0x0d, 0x00, 0x47, 0x51, + 0xd2, 0x9a, 0x0d, 0x00, 0x47, 0x8f, 0xd4, 0xb4, 0x0d, 0x00, 0xb4, 0x01, + 0xff, 0x46, 0x4b, 0x9f, 0xad, 0x0d, 0x00, 0x47, 0x3a, 0xd6, 0xa7, 0x0d, + 0x40, 0x46, 0x4b, 0x9f, 0xaf, 0x0d, 0x00, 0x47, 0x44, 0xd0, 0xa9, 0x0d, + 0x40, 0x46, 0xa2, 0xdb, 0x88, 0x0d, 0x00, 0x45, 0x59, 0x69, 0x87, 0x0d, + 0x40, 0x06, 0xef, 0x06, 0x52, 0x07, 0xff, 0x39, 0x01, 0xff, 0x46, 0x30, + 0xdb, 0xf1, 0x11, 0x01, 0xa6, 0x39, 0x46, 0xac, 0x2c, 0xf2, 0x11, 0x01, + 0x04, 0x0e, 0x0b, 0x23, 0xb3, 0x15, 0xb4, 0x01, 0xff, 0x42, 0x92, 0x01, + 0xea, 0x11, 0x01, 0x45, 0x7a, 0x11, 0xec, 0x11, 0x01, 0x45, 0x7f, 0x2c, + 0xeb, 0x11, 0x41, 0x46, 0xc9, 0x1d, 0xf0, 0x11, 0x01, 0x44, 0x46, 0xdd, + 0xef, 0x11, 0x41, 0x47, 0x71, 0x11, 0xf3, 0x11, 0x01, 0x48, 0x40, 0x5e, + 0xf4, 0x11, 0x41, 0x44, 0x51, 0x4d, 0xee, 0x11, 0x01, 0x44, 0xce, 0x51, + 0xed, 0x11, 0x41, 0x45, 0x12, 0x0b, 0xe8, 0x11, 0x01, 0xa6, 0x29, 0x44, + 0xcf, 0x2a, 0xe9, 0x11, 0x01, 0x43, 0x0e, 0x0b, 0xe1, 0x11, 0x01, 0xb3, + 0x0f, 0xb4, 0x01, 0xff, 0x44, 0x25, 0x01, 0xe3, 0x11, 0x01, 0x42, 0x15, + 0x02, 0xe2, 0x11, 0x41, 0x44, 0xc9, 0x1d, 0xe7, 0x11, 0x01, 0x42, 0x01, + 0x26, 0xe6, 0x11, 0x41, 0x43, 0xd2, 0x05, 0xe5, 0x11, 0x01, 0x43, 0xf6, + 0x06, 0xe4, 0x11, 0x41, 0x80, 0x0d, 0x07, 0xd5, 0xcd, 0x01, 0xff, 0xd2, + 0x8e, 0x00, 0x00, 0xd3, 0x8f, 0x00, 0x40, 0x54, 0x04, 0x41, 0x9a, 0x00, + 0x00, 0x5e, 0x53, 0x13, 0x1b, 0x20, 0x00, 0xac, 0x17, 0x63, 0x87, 0x0b, + 0x3a, 0x20, 0x00, 0x07, 0xca, 0xd5, 0x01, 0xff, 0x44, 0x25, 0x01, 0x8f, + 0x00, 0x00, 0x42, 0x15, 0x02, 0x8e, 0x00, 0x40, 0x61, 0xea, 0x0d, 0x39, + 0x20, 0x00, 0x53, 0x04, 0x4c, 0x1a, 0x20, 0x40, 0x06, 0x5c, 0x00, 0x17, + 0x4d, 0x05, 0x86, 0x6c, 0x2a, 0x00, 0x03, 0xc8, 0x07, 0x01, 0xff, 0x4c, + 0x87, 0x00, 0x9e, 0x2a, 0x00, 0x49, 0xec, 0x00, 0x9d, 0x2a, 0x40, 0x5e, + 0x35, 0x13, 0xa0, 0x2a, 0x00, 0x5b, 0x42, 0x1c, 0x9f, 0x2a, 0x40, 0x4d, + 0x92, 0x7f, 0x18, 0xf9, 0x01, 0x08, 0xa0, 0xcc, 0x01, 0xff, 0x04, 0x41, + 0x8d, 0x96, 0x29, 0x02, 0x63, 0x09, 0xea, 0x28, 0xa3, 0xc2, 0x28, 0xa4, + 0xd7, 0x27, 0xa5, 0xf8, 0x25, 0xa6, 0xec, 0x24, 0x06, 0x2c, 0xdc, 0xd5, + 0x24, 0xa8, 0xc7, 0x14, 0xac, 0xc2, 0x13, 0x02, 0xc3, 0x07, 0x8c, 0x06, + 0xae, 0xe3, 0x05, 0x4b, 0xd8, 0x21, 0x8b, 0xda, 0x01, 0xb2, 0xdf, 0x03, + 0xb3, 0xe1, 0x02, 0xb4, 0x0c, 0x62, 0x44, 0x0d, 0x75, 0xda, 0x01, 0x5b, + 0x0d, 0x1e, 0x6f, 0xda, 0x41, 0xa5, 0x84, 0x02, 0xaf, 0x92, 0x01, 0x06, + 0x74, 0xdf, 0x01, 0xff, 0x0b, 0x7e, 0x49, 0x52, 0x0a, 0x0d, 0x1e, 0x01, + 0xff, 0x0b, 0x21, 0x99, 0x37, 0x09, 0xe2, 0xbe, 0x06, 0x47, 0xc3, 0xd5, + 0x51, 0xd9, 0x41, 0x0b, 0x7e, 0x49, 0x17, 0x0a, 0x0d, 0x1e, 0x01, 0xff, + 0x4b, 0x13, 0x5a, 0x4d, 0xd9, 0x01, 0x46, 0x3b, 0x01, 0x4c, 0xd9, 0x01, + 0x46, 0xdf, 0x09, 0x4b, 0xd9, 0x41, 0x4b, 0x13, 0x5a, 0x50, 0xd9, 0x01, + 0x46, 0x3b, 0x01, 0x4f, 0xd9, 0x01, 0x46, 0xdf, 0x09, 0x4e, 0xd9, 0x41, + 0x46, 0x3b, 0x01, 0x53, 0xd9, 0x01, 0x46, 0xdf, 0x09, 0x52, 0xd9, 0x01, + 0x46, 0x6a, 0x1d, 0x54, 0xd9, 0x41, 0x09, 0xe2, 0xbe, 0x06, 0x47, 0xc3, + 0xd5, 0x87, 0xd9, 0x41, 0x0b, 0x7e, 0x49, 0x17, 0x0a, 0x0d, 0x1e, 0x01, + 0xff, 0x4b, 0x13, 0x5a, 0x86, 0xd9, 0x01, 0x46, 0x3b, 0x01, 0x85, 0xd9, + 0x01, 0x46, 0xdf, 0x09, 0x84, 0xd9, 0x41, 0x4b, 0x13, 0x5a, 0x83, 0xd9, + 0x01, 0x46, 0x3b, 0x01, 0x82, 0xd9, 0x01, 0x46, 0xdf, 0x09, 0x81, 0xd9, + 0x41, 0x05, 0x16, 0xe9, 0x32, 0x04, 0x6d, 0xf2, 0x17, 0x04, 0xd6, 0xe8, + 0x01, 0xff, 0x47, 0xc0, 0x09, 0x07, 0xd9, 0x01, 0x48, 0x60, 0x44, 0x06, + 0xd9, 0x01, 0x46, 0xdf, 0x09, 0x05, 0xd9, 0x41, 0x53, 0x7e, 0x49, 0x74, + 0xda, 0x01, 0x0a, 0x0d, 0x1e, 0x01, 0xff, 0x4b, 0xad, 0x9a, 0x73, 0xda, + 0x01, 0x50, 0x86, 0x67, 0x72, 0xda, 0x41, 0x07, 0x73, 0x02, 0x29, 0x54, + 0x5c, 0x43, 0x5d, 0xda, 0x01, 0x4c, 0x23, 0x91, 0x5a, 0xda, 0x01, 0x53, + 0x33, 0x4b, 0x5e, 0xda, 0x01, 0x50, 0x76, 0x67, 0x59, 0xda, 0x01, 0x04, + 0x49, 0x0c, 0x01, 0xff, 0x4c, 0xaf, 0x8c, 0x5b, 0xda, 0x01, 0x55, 0x8d, + 0x3e, 0x5c, 0xda, 0x41, 0x4c, 0x96, 0x3e, 0x60, 0xda, 0x01, 0x4c, 0x76, + 0x67, 0x5f, 0xda, 0x41, 0x43, 0xda, 0x25, 0x61, 0xda, 0x81, 0x17, 0x0b, + 0x2d, 0xa0, 0x01, 0xff, 0x44, 0x48, 0x0b, 0x2d, 0xda, 0x01, 0x43, 0x13, + 0x01, 0x2f, 0xda, 0x01, 0x46, 0x7d, 0x02, 0x2e, 0xda, 0x41, 0x80, 0x01, + 0xff, 0x49, 0xb1, 0xb6, 0x67, 0xda, 0x01, 0x48, 0x12, 0x5e, 0x62, 0xda, + 0x01, 0x03, 0xb6, 0x00, 0x01, 0xff, 0x44, 0x66, 0x1b, 0x65, 0xda, 0x81, + 0x0d, 0x46, 0xb0, 0x67, 0x63, 0xda, 0xc1, 0x00, 0x49, 0x11, 0x5e, 0x64, + 0xda, 0x41, 0x49, 0x11, 0x5e, 0x66, 0xda, 0x41, 0x48, 0xda, 0x59, 0x89, + 0xda, 0x01, 0x08, 0x18, 0x1e, 0x5b, 0x07, 0x06, 0xd5, 0x27, 0x06, 0xb2, + 0xe0, 0x11, 0x07, 0xf7, 0xd6, 0x01, 0xff, 0x47, 0xc0, 0x09, 0x15, 0xd9, + 0x01, 0x47, 0x16, 0x08, 0x14, 0xd9, 0x41, 0x47, 0xc0, 0x09, 0x0d, 0xd9, + 0x01, 0x48, 0x60, 0x44, 0x0c, 0xd9, 0x01, 0x46, 0xdf, 0x09, 0x0b, 0xd9, + 0x41, 0x51, 0x0d, 0x5a, 0x20, 0xd9, 0x01, 0x06, 0x27, 0x1c, 0x1a, 0xb3, + 0x01, 0xff, 0x49, 0x54, 0x6c, 0x1a, 0xd9, 0x01, 0x05, 0x5e, 0x07, 0x01, + 0xff, 0x48, 0x60, 0x44, 0x19, 0xd9, 0x01, 0x46, 0xdf, 0x09, 0x17, 0xd9, + 0x41, 0x48, 0x60, 0x44, 0x18, 0xd9, 0x01, 0x46, 0xdf, 0x09, 0x16, 0xd9, + 0x41, 0x04, 0x5c, 0x0d, 0x06, 0x52, 0xab, 0x55, 0x71, 0xda, 0x41, 0x49, + 0x1c, 0xbe, 0x6e, 0xda, 0x01, 0x45, 0x0a, 0xeb, 0x6d, 0xda, 0x41, 0x07, + 0x1b, 0x05, 0x17, 0x03, 0x76, 0x4d, 0x01, 0xff, 0x47, 0xc0, 0x09, 0x13, + 0xd9, 0x01, 0x48, 0x60, 0x44, 0x12, 0xd9, 0x01, 0x46, 0xdf, 0x09, 0x11, + 0xd9, 0x41, 0x0a, 0x55, 0x91, 0x9d, 0x01, 0x8d, 0x01, 0xff, 0x0b, 0x7e, + 0x49, 0x4e, 0x0a, 0x0d, 0x1e, 0x01, 0xff, 0x08, 0xf1, 0x11, 0x30, 0x46, + 0x3b, 0x01, 0xa3, 0xd9, 0x81, 0x18, 0x46, 0xdf, 0x09, 0xa2, 0xd9, 0xc1, + 0x00, 0x09, 0x33, 0x26, 0x01, 0xff, 0x45, 0x53, 0x99, 0xb1, 0xd9, 0x01, + 0x4a, 0x79, 0xaa, 0xaa, 0xd9, 0x41, 0x09, 0x33, 0x26, 0x01, 0xff, 0x45, + 0x53, 0x99, 0xb2, 0xd9, 0x01, 0x4a, 0x79, 0xaa, 0xab, 0xd9, 0x41, 0xe5, + 0xa4, 0xd9, 0x01, 0x0c, 0x27, 0x90, 0x01, 0xff, 0x45, 0x53, 0x99, 0xb3, + 0xd9, 0x01, 0x4a, 0x79, 0xaa, 0xac, 0xd9, 0x41, 0x4b, 0x13, 0x5a, 0xe1, + 0xd9, 0x81, 0x30, 0x46, 0x3b, 0x01, 0xe0, 0xd9, 0x81, 0x18, 0x46, 0xdf, + 0x09, 0xdf, 0xd9, 0xc1, 0x00, 0x09, 0x33, 0x26, 0x01, 0xff, 0x47, 0x90, + 0xc4, 0xc3, 0xd9, 0x01, 0x45, 0x58, 0x24, 0xd2, 0xd9, 0x41, 0x09, 0x33, + 0x26, 0x01, 0xff, 0x47, 0x90, 0xc4, 0xc4, 0xd9, 0x01, 0x45, 0x58, 0x24, + 0xd3, 0xd9, 0x41, 0x09, 0x33, 0x26, 0x01, 0xff, 0x47, 0x90, 0xc4, 0xc5, + 0xd9, 0x01, 0x45, 0x58, 0x24, 0xd4, 0xd9, 0x41, 0x91, 0x20, 0xd2, 0xa1, + 0xda, 0x01, 0xd3, 0xa2, 0xda, 0x01, 0xd4, 0xa3, 0xda, 0x01, 0xd5, 0xa4, + 0xda, 0x01, 0xd6, 0xa5, 0xda, 0x01, 0xd7, 0xa6, 0xda, 0x01, 0xd8, 0xa7, + 0xda, 0x01, 0xd9, 0xa8, 0xda, 0x41, 0xd0, 0xa9, 0xda, 0x01, 0xd1, 0xaa, + 0xda, 0x01, 0xd2, 0xab, 0xda, 0x01, 0xd3, 0xac, 0xda, 0x01, 0xd4, 0xad, + 0xda, 0x01, 0xd5, 0xae, 0xda, 0x01, 0xd6, 0xaf, 0xda, 0x41, 0x43, 0x6f, + 0x14, 0x6a, 0xda, 0x01, 0x04, 0x16, 0x17, 0x01, 0xff, 0x47, 0x13, 0xd0, + 0x32, 0xda, 0x01, 0x47, 0x4c, 0x8e, 0x31, 0xda, 0x01, 0xb7, 0x01, 0xff, + 0x46, 0xce, 0xdc, 0x34, 0xda, 0x01, 0x47, 0x62, 0xc1, 0x33, 0xda, 0x41, + 0x04, 0xa3, 0x20, 0xe1, 0x0b, 0x07, 0x3d, 0xd7, 0x01, 0xff, 0x09, 0xe3, + 0x25, 0xdd, 0x0a, 0x0b, 0x7e, 0x49, 0xd5, 0x05, 0x06, 0x86, 0xdc, 0x99, + 0x05, 0x0a, 0x0d, 0x1e, 0x01, 0xff, 0x0b, 0x1e, 0x27, 0xee, 0x04, 0xa2, + 0xbe, 0x04, 0xa3, 0x80, 0x03, 0x07, 0x3b, 0x01, 0xe2, 0x02, 0x08, 0x4f, + 0x1b, 0xc7, 0x02, 0x05, 0x27, 0xe7, 0xa0, 0x02, 0x43, 0x30, 0x9a, 0x68, + 0xda, 0x01, 0x05, 0x3a, 0xe8, 0xec, 0x01, 0x06, 0x08, 0xdf, 0xd5, 0x01, + 0xb3, 0xa4, 0x01, 0x07, 0x6a, 0x1d, 0x86, 0x01, 0xb7, 0x17, 0x07, 0xe1, + 0x33, 0x01, 0xff, 0x45, 0x27, 0x1c, 0x47, 0xd9, 0x01, 0x46, 0x44, 0x04, + 0x46, 0xd9, 0x01, 0x45, 0x5d, 0x07, 0x45, 0xd9, 0x41, 0x04, 0x17, 0x23, + 0x11, 0x12, 0xd3, 0x54, 0x01, 0xff, 0x46, 0x3b, 0x01, 0xee, 0xd9, 0x01, + 0x46, 0xdf, 0x09, 0xed, 0xd9, 0x41, 0x06, 0x9b, 0x13, 0x27, 0x0e, 0xdb, + 0x76, 0x11, 0x08, 0x34, 0x26, 0x01, 0xff, 0x45, 0x53, 0x99, 0xb0, 0xd9, + 0x01, 0x4a, 0x79, 0xaa, 0xa9, 0xd9, 0x41, 0x45, 0x27, 0x1c, 0xb6, 0xd9, + 0x01, 0x46, 0x44, 0x04, 0xb5, 0xd9, 0x01, 0x45, 0x5d, 0x07, 0xb4, 0xd9, + 0x41, 0x07, 0x3b, 0x01, 0x17, 0x07, 0x6a, 0x1d, 0x01, 0xff, 0x45, 0x27, + 0x1c, 0x9e, 0xd9, 0x01, 0x46, 0x44, 0x04, 0x9d, 0xd9, 0x01, 0x45, 0x5d, + 0x07, 0x9c, 0xd9, 0x41, 0x45, 0x27, 0x1c, 0x9b, 0xd9, 0x01, 0x46, 0x44, + 0x04, 0x9a, 0xd9, 0x01, 0x45, 0x5d, 0x07, 0x99, 0xd9, 0x41, 0x4b, 0x13, + 0x5a, 0x36, 0xd9, 0x81, 0x0c, 0x51, 0x09, 0x5e, 0x34, 0xd9, 0x01, 0x4a, + 0x51, 0x98, 0x35, 0xd9, 0x41, 0x4b, 0x50, 0x98, 0x37, 0xd9, 0x41, 0x46, + 0xc5, 0x6d, 0xa5, 0xd9, 0x01, 0x06, 0xe0, 0x09, 0x01, 0xff, 0x09, 0x34, + 0x4d, 0x06, 0x4a, 0x51, 0x98, 0x2e, 0xd9, 0x41, 0x45, 0x27, 0x1c, 0x2c, + 0xd9, 0x81, 0x0c, 0x46, 0x44, 0x04, 0x2b, 0xd9, 0x01, 0x45, 0x5d, 0x07, + 0x2a, 0xd9, 0x41, 0x42, 0x60, 0x01, 0x2d, 0xd9, 0x41, 0x45, 0x27, 0x1c, + 0x4a, 0xd9, 0x01, 0x46, 0x44, 0x04, 0x49, 0xd9, 0x01, 0x45, 0x5d, 0x07, + 0x48, 0xd9, 0x41, 0x08, 0x34, 0x26, 0x19, 0x45, 0x27, 0x1c, 0x97, 0xd9, + 0x01, 0x46, 0x44, 0x04, 0x96, 0xd9, 0x01, 0x45, 0x5d, 0x07, 0x95, 0xd9, + 0xc1, 0x00, 0x47, 0x3a, 0x01, 0x98, 0xd9, 0x41, 0x45, 0x53, 0x99, 0xaf, + 0xd9, 0x01, 0x4a, 0x79, 0xaa, 0xa8, 0xd9, 0x41, 0x08, 0x34, 0x26, 0x12, + 0x45, 0x27, 0x1c, 0x94, 0xd9, 0x01, 0x46, 0x44, 0x04, 0x93, 0xd9, 0x01, + 0x45, 0x5d, 0x07, 0x92, 0xd9, 0x41, 0x45, 0x53, 0x99, 0xae, 0xd9, 0x01, + 0x4a, 0x79, 0xaa, 0xa7, 0xd9, 0x41, 0x07, 0x98, 0x43, 0x06, 0x46, 0x14, + 0xd0, 0x28, 0xd9, 0x41, 0x46, 0x3b, 0x01, 0xf2, 0xd9, 0x01, 0x46, 0xdf, + 0x09, 0xf1, 0xd9, 0x41, 0x4b, 0x13, 0x5a, 0x31, 0xd9, 0x81, 0x0c, 0x48, + 0x34, 0x4d, 0x2f, 0xd9, 0x01, 0x4a, 0x51, 0x98, 0x30, 0xd9, 0x41, 0x4b, + 0x50, 0x98, 0x32, 0xd9, 0x41, 0x05, 0xa4, 0xa8, 0xa4, 0x01, 0x06, 0x1e, + 0x0b, 0x87, 0x01, 0x44, 0x96, 0x10, 0x33, 0xd9, 0x01, 0x04, 0x9c, 0x13, + 0x01, 0xff, 0x80, 0x11, 0x08, 0xf0, 0xc4, 0x01, 0xff, 0x46, 0x44, 0x04, + 0xa1, 0xd9, 0x01, 0x45, 0x5d, 0x07, 0xa0, 0xd9, 0x41, 0xa8, 0x39, 0x08, + 0x04, 0x03, 0x1c, 0x02, 0x53, 0x00, 0x01, 0xff, 0x4b, 0x9f, 0x9b, 0x9f, + 0xd9, 0x01, 0x13, 0x89, 0x4c, 0x01, 0xff, 0x46, 0x44, 0x04, 0x91, 0xd9, + 0x01, 0x45, 0x5d, 0x07, 0x90, 0xd9, 0x41, 0x45, 0x27, 0x1c, 0x8a, 0xd9, + 0x81, 0x0c, 0x46, 0x44, 0x04, 0x89, 0xd9, 0x01, 0x45, 0x5d, 0x07, 0x88, + 0xd9, 0x41, 0x42, 0x60, 0x01, 0x8b, 0xd9, 0x41, 0x0b, 0xc1, 0x2c, 0x11, + 0x07, 0x35, 0x26, 0x01, 0xff, 0x45, 0x53, 0x99, 0xad, 0xd9, 0x01, 0x4a, + 0x79, 0xaa, 0xa6, 0xd9, 0x41, 0x45, 0x27, 0x1c, 0x8e, 0xd9, 0x81, 0x0c, + 0x46, 0x44, 0x04, 0x8d, 0xd9, 0x01, 0x45, 0x5d, 0x07, 0x8c, 0xd9, 0x41, + 0x42, 0x60, 0x01, 0x8f, 0xd9, 0x41, 0x45, 0x27, 0x1c, 0x3d, 0xd9, 0x01, + 0x46, 0x44, 0x04, 0x3c, 0xd9, 0x01, 0x48, 0x6d, 0x60, 0x3e, 0xd9, 0x01, + 0x45, 0x5d, 0x07, 0x3b, 0xd9, 0x41, 0x45, 0x27, 0x1c, 0x41, 0xd9, 0x01, + 0x46, 0x44, 0x04, 0x40, 0xd9, 0x01, 0x45, 0x5d, 0x07, 0x3f, 0xd9, 0x41, + 0x04, 0x40, 0x05, 0x17, 0x03, 0xbc, 0x3a, 0x01, 0xff, 0x45, 0x27, 0x1c, + 0x44, 0xd9, 0x01, 0x46, 0x44, 0x04, 0x43, 0xd9, 0x01, 0x45, 0x5d, 0x07, + 0x42, 0xd9, 0x41, 0x45, 0x27, 0x1c, 0x3a, 0xd9, 0x01, 0x46, 0x44, 0x04, + 0x39, 0xd9, 0x01, 0x45, 0x5d, 0x07, 0x38, 0xd9, 0x41, 0x07, 0x44, 0x04, + 0x11, 0x06, 0x5d, 0x07, 0x01, 0xff, 0x46, 0x3b, 0x01, 0xe5, 0xd9, 0x01, + 0x46, 0xdf, 0x09, 0xe3, 0xd9, 0x41, 0x46, 0x3b, 0x01, 0xe6, 0xd9, 0x01, + 0x46, 0xdf, 0x09, 0xe4, 0xd9, 0x41, 0x4f, 0x4e, 0x6c, 0x24, 0xd9, 0x01, + 0x55, 0x39, 0x3e, 0x27, 0xd9, 0x01, 0x03, 0x7d, 0x15, 0x01, 0xff, 0x05, + 0x9e, 0x14, 0x06, 0x4a, 0x53, 0x6c, 0x23, 0xd9, 0x41, 0x0c, 0x2b, 0x8c, + 0x0c, 0x45, 0x27, 0x1c, 0x21, 0xd9, 0x01, 0x45, 0x5d, 0x07, 0x22, 0xd9, + 0x41, 0x45, 0x27, 0x1c, 0x25, 0xd9, 0x01, 0x45, 0x5d, 0x07, 0x26, 0xd9, + 0x41, 0x18, 0x1e, 0x27, 0xcd, 0x04, 0xa2, 0xad, 0x04, 0xa3, 0xbf, 0x03, + 0x07, 0x3b, 0x01, 0xa1, 0x03, 0x08, 0x4f, 0x1b, 0x86, 0x03, 0x05, 0x27, + 0xe7, 0xb0, 0x02, 0x43, 0x30, 0x9a, 0x69, 0xda, 0x01, 0x05, 0x3a, 0xe8, + 0xd0, 0x01, 0x06, 0x08, 0xdf, 0xb9, 0x01, 0xb3, 0x88, 0x01, 0x07, 0x6a, + 0x1d, 0x68, 0xb7, 0x17, 0x07, 0xe1, 0x33, 0x01, 0xff, 0x45, 0x27, 0x1c, + 0x7d, 0xd9, 0x01, 0x46, 0x44, 0x04, 0x7c, 0xd9, 0x01, 0x45, 0x5d, 0x07, + 0x7b, 0xd9, 0x41, 0x04, 0x17, 0x23, 0x11, 0x19, 0x28, 0x26, 0x01, 0xff, + 0x46, 0x3b, 0x01, 0xf0, 0xd9, 0x01, 0x46, 0xdf, 0x09, 0xef, 0xd9, 0x41, + 0x08, 0x34, 0x26, 0x15, 0x45, 0x27, 0x1c, 0xde, 0xd9, 0x01, 0xb3, 0x01, + 0xff, 0x44, 0x5e, 0x07, 0xdd, 0xd9, 0x01, 0x44, 0x77, 0x2e, 0xdc, 0xd9, + 0x41, 0x08, 0x90, 0xc4, 0x11, 0x06, 0x58, 0x24, 0x01, 0xff, 0x45, 0x27, + 0x1c, 0xd1, 0xd9, 0x01, 0x45, 0x5d, 0x07, 0xd0, 0xd9, 0x41, 0x45, 0x27, + 0x1c, 0xc2, 0xd9, 0x01, 0x45, 0x5d, 0x07, 0xc1, 0xd9, 0x41, 0x0c, 0x2b, + 0x8c, 0x0c, 0x51, 0x09, 0x5e, 0x6f, 0xd9, 0x01, 0x4a, 0x51, 0x98, 0x70, + 0xd9, 0x41, 0x48, 0x12, 0x5e, 0x71, 0xd9, 0x01, 0x4a, 0x51, 0x98, 0x72, + 0xd9, 0x41, 0x4f, 0xc5, 0x6d, 0xe2, 0xd9, 0x01, 0x06, 0xe0, 0x09, 0x01, + 0xff, 0x09, 0x34, 0x4d, 0x06, 0x4a, 0x51, 0x98, 0x69, 0xd9, 0x41, 0x45, + 0x27, 0x1c, 0x67, 0xd9, 0x81, 0x0c, 0x46, 0x44, 0x04, 0x66, 0xd9, 0x01, + 0x45, 0x5d, 0x07, 0x65, 0xd9, 0x41, 0x42, 0x60, 0x01, 0x68, 0xd9, 0x41, + 0x45, 0x27, 0x1c, 0x80, 0xd9, 0x01, 0x46, 0x44, 0x04, 0x7f, 0xd9, 0x01, + 0x45, 0x5d, 0x07, 0x7e, 0xd9, 0x41, 0x08, 0x34, 0x26, 0x06, 0x45, 0x5d, + 0x07, 0xdb, 0xd9, 0x41, 0x08, 0x90, 0xc4, 0x26, 0x06, 0x58, 0x24, 0x01, + 0xff, 0x06, 0x27, 0x1c, 0x11, 0x06, 0x5d, 0x07, 0x01, 0xff, 0x46, 0x3b, + 0x01, 0xce, 0xd9, 0x01, 0x46, 0xdf, 0x09, 0xcc, 0xd9, 0x41, 0x46, 0x3b, + 0x01, 0xcf, 0xd9, 0x01, 0x46, 0xdf, 0x09, 0xcd, 0xd9, 0x41, 0x06, 0x27, + 0x1c, 0x11, 0x06, 0x5d, 0x07, 0x01, 0xff, 0x46, 0x3b, 0x01, 0xbf, 0xd9, + 0x01, 0x46, 0xdf, 0x09, 0xbd, 0xd9, 0x41, 0x46, 0x3b, 0x01, 0xc0, 0xd9, + 0x01, 0x46, 0xdf, 0x09, 0xbe, 0xd9, 0x41, 0x08, 0x34, 0x26, 0x06, 0x45, + 0x5d, 0x07, 0xda, 0xd9, 0x41, 0x08, 0x90, 0xc4, 0x22, 0x06, 0x58, 0x24, + 0x01, 0xff, 0x4c, 0xc3, 0x90, 0xc9, 0xd9, 0x01, 0x4c, 0x43, 0x95, 0xc8, + 0xd9, 0x01, 0x07, 0x6a, 0x1d, 0x01, 0xff, 0x4c, 0xcf, 0x90, 0xcb, 0xd9, + 0x01, 0x4c, 0x4f, 0x95, 0xca, 0xd9, 0x41, 0x06, 0x27, 0x1c, 0x11, 0x06, + 0x5d, 0x07, 0x01, 0xff, 0x46, 0x3b, 0x01, 0xb9, 0xd9, 0x01, 0x46, 0x6a, + 0x1d, 0xbb, 0xd9, 0x41, 0x46, 0x3b, 0x01, 0xba, 0xd9, 0x01, 0x46, 0x6a, + 0x1d, 0xbc, 0xd9, 0x41, 0x14, 0x98, 0x43, 0x06, 0x46, 0x14, 0xd0, 0x29, + 0xd9, 0x41, 0x46, 0x3b, 0x01, 0xf4, 0xd9, 0x01, 0x46, 0xdf, 0x09, 0xf3, + 0xd9, 0x41, 0x4b, 0x13, 0x5a, 0x6c, 0xd9, 0x81, 0x0c, 0x48, 0x34, 0x4d, + 0x6a, 0xd9, 0x01, 0x4a, 0x51, 0x98, 0x6b, 0xd9, 0x41, 0x4b, 0x50, 0x98, + 0x6d, 0xd9, 0x41, 0x44, 0x6e, 0x14, 0x77, 0xd9, 0x01, 0x06, 0x1e, 0x0b, + 0x4f, 0x44, 0x96, 0x10, 0x6e, 0xd9, 0x01, 0x05, 0x9c, 0x13, 0x01, 0xff, + 0x48, 0xc0, 0xc4, 0xd9, 0xd9, 0x01, 0x08, 0x34, 0x26, 0x19, 0x45, 0x27, + 0x1c, 0xd7, 0xd9, 0x81, 0x0c, 0x46, 0x44, 0x04, 0xd6, 0xd9, 0x01, 0x45, + 0x5d, 0x07, 0xd5, 0xd9, 0x41, 0x42, 0x60, 0x01, 0xd8, 0xd9, 0x41, 0x08, + 0x90, 0xc4, 0x11, 0x06, 0x58, 0x24, 0x01, 0xff, 0x45, 0x27, 0x1c, 0xc7, + 0xd9, 0x01, 0x45, 0x5d, 0x07, 0xc6, 0xd9, 0x41, 0x45, 0x27, 0x1c, 0xb8, + 0xd9, 0x01, 0x45, 0x5d, 0x07, 0xb7, 0xd9, 0x41, 0x45, 0x27, 0x1c, 0x76, + 0xd9, 0x01, 0x46, 0x44, 0x04, 0x75, 0xd9, 0x01, 0x45, 0x5d, 0x07, 0x74, + 0xd9, 0x41, 0x43, 0x40, 0x05, 0x73, 0xd9, 0x01, 0x03, 0xbc, 0x3a, 0x01, + 0xff, 0x45, 0x27, 0x1c, 0x7a, 0xd9, 0x01, 0x46, 0x44, 0x04, 0x79, 0xd9, + 0x01, 0x45, 0x5d, 0x07, 0x78, 0xd9, 0x41, 0x06, 0x27, 0x1c, 0x21, 0x07, + 0x44, 0x04, 0x11, 0x06, 0x5d, 0x07, 0x01, 0xff, 0x46, 0x3b, 0x01, 0xea, + 0xd9, 0x01, 0x46, 0xdf, 0x09, 0xe7, 0xd9, 0x41, 0x46, 0x3b, 0x01, 0xeb, + 0xd9, 0x01, 0x46, 0xdf, 0x09, 0xe8, 0xd9, 0x41, 0x46, 0x3b, 0x01, 0xec, + 0xd9, 0x01, 0x46, 0xdf, 0x09, 0xe9, 0xd9, 0x41, 0x05, 0x93, 0xe4, 0x5d, + 0x08, 0xc0, 0x09, 0x1e, 0x08, 0xb0, 0xcb, 0x01, 0xff, 0x45, 0x27, 0x1c, + 0x5b, 0xd9, 0x81, 0x0c, 0x46, 0x44, 0x04, 0x5a, 0xd9, 0x01, 0x45, 0x5d, + 0x07, 0x59, 0xd9, 0x41, 0x42, 0x60, 0x01, 0x5c, 0xd9, 0x41, 0x05, 0x93, + 0xe4, 0x1e, 0x08, 0xb0, 0xcb, 0x01, 0xff, 0x45, 0x27, 0x1c, 0x63, 0xd9, + 0x81, 0x0c, 0x46, 0x44, 0x04, 0x62, 0xd9, 0x01, 0x45, 0x5d, 0x07, 0x61, + 0xd9, 0x41, 0x42, 0x60, 0x01, 0x64, 0xd9, 0x41, 0x45, 0x27, 0x1c, 0x5f, + 0xd9, 0x81, 0x0c, 0x46, 0x44, 0x04, 0x5e, 0xd9, 0x01, 0x45, 0x5d, 0x07, + 0x5d, 0xd9, 0x41, 0x42, 0x60, 0x01, 0x60, 0xd9, 0x41, 0x45, 0x27, 0x1c, + 0x57, 0xd9, 0x81, 0x0c, 0x46, 0x44, 0x04, 0x56, 0xd9, 0x01, 0x45, 0x5d, + 0x07, 0x55, 0xd9, 0x41, 0x42, 0x60, 0x01, 0x58, 0xd9, 0x41, 0xa3, 0xac, + 0x01, 0x45, 0x13, 0x83, 0x41, 0xda, 0x81, 0x95, 0x01, 0x44, 0xbb, 0x73, + 0x4d, 0xda, 0x81, 0x7f, 0x05, 0xf6, 0x04, 0x3d, 0x45, 0x6e, 0xc1, 0x3e, + 0xda, 0x81, 0x27, 0x45, 0x37, 0xeb, 0x50, 0xda, 0x81, 0x11, 0x09, 0x61, + 0xc1, 0x01, 0xff, 0x46, 0x3b, 0x01, 0x58, 0xda, 0x01, 0x46, 0xdf, 0x09, + 0x57, 0xda, 0x41, 0x80, 0x01, 0xff, 0x47, 0x8d, 0x31, 0x51, 0xda, 0x01, + 0x46, 0x2e, 0xe0, 0x52, 0xda, 0x41, 0x80, 0x01, 0xff, 0x44, 0xf6, 0x04, + 0x40, 0xda, 0x01, 0x48, 0x98, 0xcc, 0x3f, 0xda, 0x41, 0x46, 0x12, 0x03, + 0x44, 0xda, 0x01, 0x47, 0x8d, 0x31, 0x45, 0xda, 0x01, 0x44, 0x99, 0x46, + 0x47, 0xda, 0x81, 0x1c, 0x49, 0x83, 0x47, 0x4a, 0xda, 0x81, 0x06, 0x48, + 0x98, 0xcc, 0x46, 0xda, 0x41, 0x80, 0x01, 0xff, 0x48, 0x98, 0xcc, 0x4b, + 0xda, 0x01, 0x44, 0x39, 0xf3, 0x4c, 0xda, 0x41, 0x80, 0x01, 0xff, 0x48, + 0x98, 0xcc, 0x48, 0xda, 0x01, 0x44, 0x39, 0xf3, 0x49, 0xda, 0x41, 0x80, + 0x01, 0xff, 0x47, 0x8d, 0x31, 0x4e, 0xda, 0x01, 0x48, 0x98, 0xcc, 0x4f, + 0xda, 0x41, 0x80, 0x01, 0xff, 0x44, 0xf6, 0x04, 0x43, 0xda, 0x01, 0x48, + 0x98, 0xcc, 0x42, 0xda, 0x41, 0x06, 0x60, 0x1b, 0x06, 0x46, 0x28, 0x19, + 0x56, 0xda, 0x41, 0x47, 0x13, 0xd0, 0x3d, 0xda, 0x01, 0x47, 0x8d, 0x31, + 0x3c, 0xda, 0x01, 0x47, 0x4c, 0x8e, 0x3b, 0xda, 0x41, 0xa9, 0x3e, 0x07, + 0x29, 0x85, 0x01, 0xff, 0x80, 0x0f, 0x8d, 0x01, 0xff, 0x50, 0x46, 0x63, + 0x80, 0xda, 0x01, 0x4f, 0xaf, 0x74, 0x7f, 0xda, 0x41, 0x45, 0x88, 0xe5, + 0x83, 0xda, 0x01, 0x02, 0xb0, 0x01, 0x12, 0x4c, 0x2f, 0x91, 0x86, 0xda, + 0x01, 0x45, 0x69, 0xeb, 0x85, 0xda, 0x01, 0x45, 0x3b, 0x50, 0x82, 0xda, + 0x41, 0x47, 0x8b, 0xce, 0x84, 0xda, 0x01, 0x44, 0xc9, 0x00, 0x81, 0xda, + 0x41, 0x03, 0x98, 0x13, 0x17, 0xb0, 0x01, 0xff, 0x80, 0x06, 0x52, 0x09, + 0x55, 0x53, 0xda, 0x41, 0x50, 0xd6, 0x64, 0x54, 0xda, 0x01, 0x50, 0x46, + 0x68, 0x55, 0xda, 0x41, 0x4b, 0x34, 0x9a, 0x76, 0xda, 0x01, 0x07, 0xcf, + 0xd2, 0x01, 0xff, 0xd1, 0x77, 0xda, 0x01, 0xd2, 0x78, 0xda, 0x01, 0xd3, + 0x79, 0xda, 0x01, 0xd4, 0x7a, 0xda, 0x01, 0xd5, 0x7b, 0xda, 0x01, 0xd6, + 0x7c, 0xda, 0x01, 0xd7, 0x7d, 0xda, 0x41, 0xa1, 0x44, 0x43, 0xe7, 0x01, + 0xff, 0xd9, 0xc1, 0x00, 0x80, 0x01, 0xff, 0x08, 0x12, 0x5e, 0x06, 0x43, + 0xeb, 0x1a, 0x00, 0xda, 0x41, 0x47, 0x11, 0x03, 0x06, 0xda, 0x01, 0x8d, + 0x01, 0xff, 0x0b, 0x7e, 0x49, 0x17, 0x0a, 0x0d, 0x1e, 0x01, 0xff, 0x45, + 0x9b, 0x13, 0x04, 0xda, 0x01, 0x48, 0x34, 0x4d, 0x01, 0xda, 0x01, 0x44, + 0x59, 0x05, 0x02, 0xda, 0x41, 0x45, 0x9b, 0x13, 0x05, 0xda, 0x01, 0x48, + 0x34, 0x4d, 0x03, 0xda, 0x41, 0x42, 0x46, 0x00, 0x6b, 0xda, 0x01, 0x03, + 0xdc, 0x18, 0x01, 0xff, 0x45, 0x04, 0x02, 0x85, 0xd8, 0x81, 0xad, 0x0e, + 0xa3, 0xe0, 0x0b, 0xa6, 0xee, 0x02, 0xa8, 0x39, 0x44, 0x99, 0x46, 0x77, + 0xd8, 0xc1, 0x00, 0x80, 0x01, 0xff, 0x53, 0x6b, 0x49, 0x56, 0xd8, 0x01, + 0x45, 0x8f, 0x13, 0x03, 0xd8, 0x01, 0x49, 0x82, 0xbb, 0x95, 0xd8, 0x01, + 0x48, 0xd0, 0xc8, 0x79, 0xd8, 0x01, 0x4b, 0xa9, 0x18, 0xb2, 0xd8, 0x01, + 0x06, 0x95, 0x13, 0x01, 0xff, 0x47, 0x8d, 0x31, 0x7a, 0xd8, 0x01, 0x44, + 0x94, 0x0a, 0x78, 0xd8, 0x41, 0x44, 0xd9, 0x09, 0x7d, 0xd8, 0x81, 0x4c, + 0x43, 0xad, 0x0e, 0x6b, 0xd8, 0xc1, 0x00, 0x80, 0x01, 0xff, 0x48, 0xd8, + 0xc4, 0x6a, 0xd8, 0x01, 0x12, 0x34, 0x43, 0x26, 0x07, 0x7d, 0x02, 0x06, + 0x4a, 0x69, 0xb0, 0xb9, 0xd8, 0x41, 0x55, 0xa9, 0x18, 0xda, 0xd8, 0x81, + 0x06, 0x45, 0x95, 0x13, 0xca, 0xd8, 0x41, 0x80, 0x01, 0xff, 0x42, 0x9e, + 0x01, 0xd9, 0xd8, 0x01, 0x43, 0x28, 0x08, 0xd8, 0xd8, 0x41, 0x42, 0x9e, + 0x01, 0xbe, 0xd8, 0x01, 0x43, 0x28, 0x08, 0xbd, 0xd8, 0x01, 0x45, 0xd3, + 0x1a, 0xbf, 0xd8, 0x41, 0x80, 0x01, 0xff, 0xa6, 0xce, 0x01, 0x45, 0x8f, + 0x13, 0x04, 0xd8, 0x81, 0x7c, 0x46, 0xae, 0x18, 0x8a, 0xd8, 0x81, 0x5f, + 0x46, 0x7d, 0x02, 0xc5, 0xd8, 0x81, 0x52, 0x48, 0xd0, 0xc8, 0x82, 0xd8, + 0x01, 0x44, 0xf6, 0x04, 0x7b, 0xd8, 0x81, 0x2b, 0x44, 0x22, 0x08, 0xa7, + 0xd8, 0x81, 0x1e, 0x45, 0x5d, 0x07, 0x7e, 0xd8, 0x01, 0x06, 0x95, 0x13, + 0x01, 0xff, 0x53, 0x87, 0x48, 0x84, 0xd8, 0x01, 0x44, 0x94, 0x0a, 0x80, + 0xd8, 0xc1, 0x00, 0x4f, 0xd8, 0x69, 0x83, 0xd8, 0x41, 0x5d, 0x9d, 0x14, + 0xac, 0xd8, 0x41, 0x80, 0x01, 0xff, 0x48, 0xd0, 0xc8, 0x81, 0xd8, 0x01, + 0x06, 0x95, 0x13, 0x01, 0xff, 0x47, 0x8d, 0x31, 0x7c, 0xd8, 0x01, 0x44, + 0x94, 0x0a, 0x7f, 0xd8, 0x41, 0x4c, 0xa8, 0x18, 0xd1, 0xd8, 0x41, 0x80, + 0x01, 0xff, 0x45, 0x8f, 0x13, 0xa2, 0xd8, 0x81, 0x06, 0x45, 0x95, 0x13, + 0x9b, 0xd8, 0x41, 0x46, 0x94, 0x13, 0x9d, 0xd8, 0x41, 0x80, 0x01, 0xff, + 0x46, 0x20, 0x68, 0xdb, 0xd8, 0x01, 0x07, 0x7d, 0x02, 0x2b, 0x4b, 0xa9, + 0x18, 0xc1, 0xd8, 0x01, 0x45, 0x95, 0x13, 0xf0, 0xd8, 0xc1, 0x00, 0x80, + 0x01, 0xff, 0x45, 0x27, 0x1c, 0xef, 0xd8, 0x01, 0x44, 0xf6, 0x04, 0xee, + 0xd8, 0x01, 0xb3, 0x01, 0xff, 0x43, 0x03, 0x00, 0xdd, 0xd8, 0x01, 0x44, + 0x5e, 0x07, 0xf1, 0xd8, 0x41, 0x46, 0xae, 0x18, 0xa6, 0xd8, 0x01, 0x44, + 0x22, 0x08, 0x88, 0xd8, 0xc1, 0x00, 0x4a, 0xb4, 0x18, 0x8d, 0xd8, 0x41, + 0x57, 0x55, 0x2f, 0x55, 0xd8, 0x01, 0x55, 0x6b, 0x1b, 0x4b, 0xd8, 0x41, + 0x43, 0x2b, 0x24, 0x03, 0xd9, 0x81, 0xc8, 0x01, 0x43, 0xd9, 0x01, 0x5a, + 0xd8, 0xc1, 0x00, 0x80, 0x01, 0xff, 0x54, 0xc8, 0x40, 0x5b, 0xd8, 0x01, + 0xa6, 0x61, 0x44, 0x2c, 0x13, 0x5c, 0xd8, 0x81, 0x3b, 0x06, 0x43, 0xd8, + 0x17, 0x06, 0x95, 0x13, 0x01, 0xff, 0x44, 0x81, 0x1b, 0x5f, 0xd8, 0x01, + 0x47, 0x8d, 0x31, 0x60, 0xd8, 0x01, 0x44, 0x94, 0x0a, 0x5d, 0xd8, 0x41, + 0x46, 0x73, 0x02, 0x62, 0xd8, 0x81, 0x0c, 0x50, 0xf6, 0x63, 0x61, 0xd8, + 0x01, 0x46, 0xae, 0x18, 0x65, 0xd8, 0x41, 0x4b, 0x82, 0x4f, 0x63, 0xd8, + 0xc1, 0x00, 0x45, 0x80, 0x1b, 0x64, 0xd8, 0x41, 0x80, 0x01, 0xff, 0x53, + 0x6b, 0x49, 0x4d, 0xd8, 0x81, 0x06, 0x4a, 0x83, 0x4f, 0x5e, 0xd8, 0x41, + 0x80, 0x01, 0xff, 0x44, 0x81, 0x1b, 0x51, 0xd8, 0x01, 0x49, 0x15, 0xb9, + 0x4f, 0xd8, 0x41, 0x52, 0x55, 0x2f, 0x4c, 0xd8, 0x81, 0x23, 0x4b, 0x6b, + 0x1b, 0x44, 0xd8, 0xc1, 0x00, 0x80, 0x01, 0xff, 0x44, 0x81, 0x1b, 0x45, + 0xd8, 0x01, 0x49, 0xb5, 0x18, 0x47, 0xd8, 0x81, 0x06, 0x46, 0x20, 0x68, + 0x46, 0xd8, 0x41, 0x46, 0x42, 0xd8, 0x48, 0xd8, 0x41, 0x80, 0x01, 0xff, + 0x44, 0x81, 0x1b, 0x50, 0xd8, 0x01, 0x49, 0x15, 0xb9, 0x4e, 0xd8, 0x01, + 0x46, 0x20, 0x68, 0x57, 0xd8, 0x81, 0x06, 0x4d, 0x87, 0x31, 0x52, 0xd8, + 0x41, 0x80, 0x01, 0xff, 0x48, 0xd0, 0xc8, 0x59, 0xd8, 0x01, 0x4a, 0x83, + 0x4f, 0x58, 0xd8, 0x41, 0x80, 0x01, 0xff, 0x5b, 0x6a, 0x1b, 0x4a, 0xd8, + 0x01, 0x44, 0x2c, 0x13, 0x04, 0xd9, 0x01, 0x45, 0x8f, 0x13, 0x00, 0xd8, + 0x81, 0x85, 0x03, 0x07, 0xae, 0x18, 0xb2, 0x02, 0x07, 0x7d, 0x02, 0xbd, + 0x01, 0x05, 0x22, 0x08, 0x7f, 0x45, 0x95, 0x13, 0xf5, 0xd8, 0xc1, 0x00, + 0x80, 0x01, 0xff, 0x08, 0xc0, 0x09, 0x58, 0x47, 0x8d, 0x31, 0xfa, 0xd8, + 0x01, 0x44, 0x2c, 0x13, 0xf6, 0xd8, 0x01, 0x05, 0x16, 0x02, 0x3c, 0x05, + 0x94, 0x0a, 0x26, 0x06, 0x4b, 0x25, 0x01, 0xff, 0x4c, 0x6a, 0x1b, 0x01, + 0xd9, 0x01, 0x4a, 0xb9, 0xab, 0x08, 0xd8, 0x01, 0x49, 0x82, 0xbb, 0x93, + 0xd8, 0x01, 0xb4, 0x01, 0xff, 0x4c, 0xbb, 0x8f, 0x00, 0xd9, 0x01, 0x4a, + 0xeb, 0xa3, 0xfe, 0xd8, 0x41, 0x44, 0x81, 0x1b, 0xf9, 0xd8, 0x01, 0x49, + 0xb5, 0x18, 0xf8, 0xd8, 0x01, 0x48, 0xe3, 0x25, 0xf7, 0xd8, 0x41, 0x54, + 0x80, 0x42, 0x02, 0xd9, 0x01, 0x4b, 0xea, 0xa3, 0xff, 0xd8, 0x41, 0x4c, + 0x03, 0x90, 0xfb, 0xd8, 0x81, 0x0c, 0x4b, 0xa2, 0x18, 0xfc, 0xd8, 0x01, + 0x4b, 0xa9, 0x18, 0xfd, 0xd8, 0x41, 0x49, 0xc0, 0x69, 0x2c, 0xd8, 0x41, + 0x44, 0xa5, 0x01, 0xab, 0xd8, 0x01, 0x45, 0x8f, 0x13, 0xb7, 0xd8, 0x01, + 0x46, 0xae, 0x18, 0xb0, 0xd8, 0x01, 0x46, 0x7d, 0x02, 0xb4, 0xd8, 0x81, + 0x12, 0x4e, 0x85, 0x42, 0xaf, 0xd8, 0x01, 0x45, 0x95, 0x13, 0xb8, 0xd8, + 0x01, 0x42, 0x50, 0x02, 0xae, 0xd8, 0x41, 0x80, 0x01, 0xff, 0x49, 0xb5, + 0x18, 0xb5, 0xd8, 0x01, 0x4f, 0x85, 0x42, 0xb6, 0xd8, 0x41, 0x4f, 0x40, + 0x6b, 0x1c, 0xd8, 0x01, 0x44, 0xa5, 0x01, 0xc4, 0xd8, 0x01, 0x46, 0xae, + 0x18, 0xcc, 0xd8, 0x01, 0xb2, 0x50, 0x06, 0x95, 0x13, 0x0d, 0x42, 0x50, + 0x02, 0xc6, 0xd8, 0xc1, 0x00, 0x4b, 0x82, 0x4f, 0xc9, 0xd8, 0x41, 0x07, + 0xdf, 0xce, 0x24, 0xa3, 0x0c, 0x4f, 0x01, 0x6e, 0x30, 0xd8, 0x01, 0x46, + 0xae, 0x18, 0xcb, 0xd8, 0x41, 0x0d, 0x72, 0x84, 0x06, 0x4e, 0x21, 0x7e, + 0x36, 0xd8, 0x41, 0x46, 0x20, 0x68, 0x39, 0xd8, 0x01, 0x42, 0x50, 0x02, + 0x38, 0xd8, 0x41, 0x48, 0x08, 0x6e, 0x42, 0xd8, 0x01, 0x0a, 0x47, 0xaf, + 0x01, 0xff, 0x47, 0x27, 0x1f, 0x41, 0xd8, 0x01, 0x42, 0x50, 0x02, 0x40, + 0xd8, 0x41, 0x4d, 0x86, 0x42, 0xc8, 0xd8, 0x01, 0x4a, 0xaa, 0x18, 0xcd, + 0xd8, 0x41, 0x44, 0x81, 0x1b, 0x98, 0xd8, 0x01, 0x44, 0xa5, 0x01, 0x8e, + 0xd8, 0x81, 0x27, 0x45, 0x8f, 0x13, 0xa0, 0xd8, 0x81, 0x1a, 0x4e, 0x85, + 0x42, 0x97, 0xd8, 0x01, 0xb4, 0x06, 0x42, 0x50, 0x02, 0x92, 0xd8, 0x41, + 0x44, 0x96, 0x13, 0x9a, 0xd8, 0x01, 0x4c, 0x7b, 0x93, 0x99, 0xd8, 0x41, + 0x46, 0x94, 0x13, 0x9c, 0xd8, 0x41, 0x80, 0x01, 0xff, 0x4e, 0xbd, 0x7a, + 0x91, 0xd8, 0x01, 0x07, 0x5a, 0xd5, 0x01, 0xff, 0x46, 0x68, 0x41, 0x90, + 0xd8, 0x01, 0x48, 0x34, 0x4d, 0x8f, 0xd8, 0x41, 0x80, 0x01, 0xff, 0x44, + 0x81, 0x1b, 0x06, 0xd8, 0x81, 0xf2, 0x03, 0x46, 0xca, 0xda, 0x0a, 0xd8, + 0x01, 0x46, 0x20, 0x68, 0x0b, 0xd8, 0x81, 0xce, 0x03, 0x46, 0x7d, 0x02, + 0x0e, 0xd8, 0x81, 0xcd, 0x01, 0xb2, 0xbe, 0x01, 0x06, 0x95, 0x13, 0x18, + 0x50, 0x16, 0x68, 0x13, 0xd8, 0xc1, 0x00, 0x07, 0x94, 0x13, 0x01, 0xff, + 0x49, 0xb5, 0x18, 0x25, 0xd8, 0x01, 0x44, 0x94, 0x0a, 0x24, 0xd8, 0x41, + 0x07, 0xdf, 0xce, 0x91, 0x01, 0xa3, 0x5f, 0x0e, 0xf3, 0x77, 0x4f, 0x44, + 0xac, 0x0e, 0xe6, 0xd8, 0x81, 0x37, 0x44, 0x94, 0x0a, 0xdc, 0xd8, 0xc1, + 0x00, 0x80, 0x01, 0xff, 0x49, 0xd5, 0xb6, 0xe2, 0xd8, 0x01, 0x06, 0x8f, + 0x13, 0x17, 0x06, 0x95, 0x13, 0x01, 0xff, 0x44, 0x81, 0x1b, 0xe0, 0xd8, + 0x01, 0x49, 0xb5, 0x18, 0xdf, 0xd8, 0x01, 0x48, 0xe3, 0x25, 0xde, 0xd8, + 0x41, 0x44, 0x81, 0x1b, 0xe1, 0xd8, 0x01, 0x45, 0x20, 0x68, 0xe3, 0xd8, + 0x41, 0x0a, 0x4b, 0x7b, 0x01, 0xff, 0x46, 0x20, 0x68, 0x43, 0xd8, 0x01, + 0x42, 0x50, 0x02, 0x31, 0xd8, 0x41, 0x44, 0x81, 0x1b, 0xe5, 0xd8, 0x01, + 0x48, 0x34, 0x4d, 0xe4, 0xd8, 0x41, 0x45, 0x13, 0x03, 0xeb, 0xd8, 0x81, + 0x23, 0xb5, 0x01, 0xff, 0x4e, 0x49, 0x7b, 0x37, 0xd8, 0x01, 0xb2, 0x01, + 0xff, 0x45, 0xdb, 0xc4, 0xe7, 0xd8, 0x01, 0x09, 0x9e, 0x13, 0x01, 0xff, + 0x46, 0xa7, 0x13, 0xe8, 0xd8, 0x01, 0x45, 0xd3, 0x1a, 0xea, 0xd8, 0x41, + 0x4b, 0x4c, 0x7b, 0x3c, 0xd8, 0x41, 0x4c, 0xf7, 0x8f, 0x3b, 0xd8, 0x01, + 0x4d, 0x4a, 0x87, 0x3a, 0xd8, 0x41, 0x4d, 0x86, 0x42, 0x09, 0xd8, 0x01, + 0x4a, 0xaa, 0x18, 0xba, 0xd8, 0x41, 0x80, 0x01, 0xff, 0x44, 0x81, 0x1b, + 0x10, 0xd8, 0x81, 0xe8, 0x01, 0xa3, 0x7d, 0x46, 0x20, 0x68, 0x12, 0xd8, + 0x81, 0x70, 0x46, 0xae, 0x18, 0xa4, 0xd8, 0x01, 0xb2, 0x4c, 0x53, 0x34, + 0x4d, 0x20, 0xd8, 0x01, 0x45, 0x95, 0x13, 0x1e, 0xd8, 0x81, 0x06, 0x57, + 0x7d, 0x31, 0x27, 0xd8, 0x41, 0x80, 0x01, 0xff, 0x46, 0x2f, 0x0c, 0x3f, + 0xd8, 0x81, 0x29, 0x44, 0x81, 0x1b, 0x22, 0xd8, 0x01, 0xa3, 0x0f, 0xa8, + 0x01, 0xff, 0x45, 0x21, 0x68, 0x2b, 0xd8, 0x01, 0x45, 0x02, 0x6e, 0x2a, + 0xd8, 0x41, 0x46, 0x46, 0x15, 0x29, 0xd8, 0x01, 0x4f, 0x49, 0x71, 0x3d, + 0xd8, 0x01, 0x45, 0x21, 0x7e, 0x28, 0xd8, 0x41, 0x44, 0x17, 0x11, 0x3e, + 0xd8, 0x41, 0x4e, 0x86, 0x42, 0x11, 0xd8, 0x01, 0x43, 0xa1, 0x01, 0x86, + 0xd8, 0xc1, 0x00, 0x80, 0x01, 0xff, 0x44, 0x81, 0x1b, 0x8b, 0xd8, 0x01, + 0x49, 0xb5, 0x18, 0x8c, 0xd8, 0x41, 0x52, 0x7b, 0x4f, 0x23, 0xd8, 0x41, + 0x48, 0xb6, 0x18, 0x15, 0xd8, 0x81, 0x18, 0x04, 0x96, 0x10, 0x01, 0xff, + 0x47, 0xad, 0x18, 0xa9, 0xd8, 0x01, 0x42, 0x05, 0x00, 0x1a, 0xd8, 0xc1, + 0x00, 0x4b, 0x82, 0x4f, 0x33, 0xd8, 0x41, 0x80, 0x01, 0xff, 0x46, 0xca, + 0xda, 0x18, 0xd8, 0x81, 0x3a, 0x46, 0x20, 0x68, 0x19, 0xd8, 0x81, 0x2d, + 0x4a, 0xb9, 0xab, 0x16, 0xd8, 0x01, 0x4b, 0x88, 0x9f, 0x17, 0xd8, 0x01, + 0x06, 0x95, 0x13, 0x01, 0xff, 0x47, 0x8d, 0x31, 0x34, 0xd8, 0x01, 0x44, + 0x94, 0x0a, 0x2d, 0xd8, 0xc1, 0x00, 0x80, 0x01, 0xff, 0x44, 0x81, 0x1b, + 0x2f, 0xd8, 0x01, 0x49, 0xb5, 0x18, 0x2e, 0xd8, 0x41, 0x4b, 0x82, 0x4f, + 0x32, 0xd8, 0x41, 0x4e, 0x86, 0x31, 0x35, 0xd8, 0x41, 0x4f, 0xba, 0x69, + 0x21, 0xd8, 0x41, 0x80, 0x01, 0xff, 0x43, 0x13, 0x01, 0x0c, 0xd8, 0x01, + 0x49, 0x4e, 0x7b, 0x14, 0xd8, 0xc1, 0x00, 0x4b, 0x82, 0x4f, 0x26, 0xd8, + 0x41, 0x4c, 0x6b, 0x8b, 0x1d, 0xd8, 0x41, 0x45, 0x13, 0x03, 0x76, 0xd8, + 0x81, 0xca, 0x01, 0x43, 0x76, 0xd4, 0x66, 0xd8, 0x81, 0x8f, 0x01, 0xb5, + 0x01, 0xff, 0xf0, 0x6d, 0xd8, 0x81, 0x1c, 0x46, 0xda, 0xc4, 0x75, 0xd8, + 0xc1, 0x00, 0x80, 0x01, 0xff, 0x54, 0x34, 0x43, 0xbc, 0xd8, 0x01, 0x55, + 0xe9, 0x3c, 0xcf, 0xd8, 0x01, 0x44, 0xf6, 0x04, 0x74, 0xd8, 0x41, 0x80, + 0x01, 0xff, 0x53, 0x6b, 0x49, 0x53, 0xd8, 0x81, 0x5b, 0x45, 0x8f, 0x13, + 0x02, 0xd8, 0x81, 0x3e, 0x52, 0xa2, 0x18, 0xd0, 0xd8, 0x01, 0x48, 0xd0, + 0xc8, 0x71, 0xd8, 0x01, 0x44, 0xf6, 0x04, 0x6c, 0xd8, 0x81, 0x11, 0x06, + 0x95, 0x13, 0x01, 0xff, 0x47, 0x8d, 0x31, 0x73, 0xd8, 0x01, 0x44, 0x94, + 0x0a, 0x6f, 0xd8, 0x41, 0x80, 0x01, 0xff, 0x48, 0xd0, 0xc8, 0x70, 0xd8, + 0x01, 0x06, 0x95, 0x13, 0x01, 0xff, 0x47, 0x8d, 0x31, 0x72, 0xd8, 0x01, + 0x44, 0x94, 0x0a, 0x6e, 0xd8, 0x41, 0x80, 0x01, 0xff, 0x4b, 0xa9, 0x18, + 0xc0, 0xd8, 0x01, 0x45, 0x95, 0x13, 0xec, 0xd8, 0xc1, 0x00, 0x45, 0xf5, + 0x04, 0xed, 0xd8, 0x41, 0x45, 0xf5, 0x04, 0x54, 0xd8, 0x41, 0x80, 0x01, + 0xff, 0x56, 0x6a, 0x1b, 0x49, 0xd8, 0x01, 0x5e, 0x8f, 0x13, 0xe9, 0xd8, + 0x01, 0x5c, 0xa2, 0x18, 0xd6, 0xd8, 0x81, 0x17, 0x48, 0xd0, 0xc8, 0x68, + 0xd8, 0x01, 0x06, 0x95, 0x13, 0x01, 0xff, 0x47, 0x8d, 0x31, 0x69, 0xd8, + 0x01, 0x44, 0x94, 0x0a, 0x67, 0xd8, 0x41, 0x45, 0x40, 0x3e, 0xd7, 0xd8, + 0x41, 0x80, 0x01, 0xff, 0x45, 0x8f, 0x13, 0x01, 0xd8, 0x81, 0x2d, 0x07, + 0xae, 0x18, 0x1d, 0x07, 0x7d, 0x02, 0x06, 0x4b, 0xa9, 0x18, 0xb1, 0xd8, + 0x41, 0x4b, 0xa9, 0x18, 0xce, 0xd8, 0x81, 0x06, 0x42, 0x50, 0x02, 0xc7, + 0xd8, 0x41, 0x45, 0x80, 0x1b, 0xd5, 0xd8, 0x41, 0x45, 0x8f, 0x13, 0xa1, + 0xd8, 0x01, 0x42, 0x50, 0x02, 0x94, 0xd8, 0x41, 0x80, 0x01, 0xff, 0x44, + 0x81, 0x1b, 0x07, 0xd8, 0x01, 0x45, 0x20, 0x68, 0x0d, 0xd8, 0x01, 0x46, + 0x7d, 0x02, 0x0f, 0xd8, 0x81, 0x06, 0x4b, 0xa9, 0x18, 0xbb, 0xd8, 0x41, + 0x80, 0x01, 0xff, 0x05, 0x95, 0x10, 0x12, 0x46, 0xae, 0x18, 0xa5, 0xd8, + 0x01, 0x44, 0x22, 0x08, 0x87, 0xd8, 0x01, 0x45, 0x95, 0x13, 0x1f, 0xd8, + 0x41, 0x47, 0xad, 0x18, 0xaa, 0xd8, 0x01, 0x42, 0x05, 0x00, 0x1b, 0xd8, + 0x41, 0x80, 0x01, 0xff, 0x45, 0x8f, 0x13, 0x05, 0xd8, 0x81, 0x45, 0x07, + 0xae, 0x18, 0x27, 0x52, 0xa2, 0x18, 0xd4, 0xd8, 0x81, 0x11, 0x05, 0x22, + 0x08, 0x01, 0xff, 0x5d, 0x85, 0x15, 0xad, 0xd8, 0x01, 0x46, 0xae, 0x18, + 0xb3, 0xd8, 0x41, 0x80, 0x01, 0xff, 0x42, 0x9e, 0x01, 0xd3, 0xd8, 0x01, + 0x43, 0x28, 0x08, 0xd2, 0xd8, 0x41, 0x45, 0x8f, 0x13, 0xa3, 0xd8, 0x81, + 0x06, 0x42, 0x50, 0x02, 0x96, 0xd8, 0x41, 0x52, 0x8d, 0x4f, 0x9f, 0xd8, + 0xc1, 0x00, 0x44, 0x17, 0x11, 0x9e, 0xd8, 0x41, 0x80, 0x01, 0xff, 0x07, + 0x7d, 0x02, 0x23, 0x4b, 0xa9, 0x18, 0xc3, 0xd8, 0x81, 0x16, 0x45, 0x95, + 0x13, 0xf4, 0xd8, 0xc1, 0x00, 0x80, 0x01, 0xff, 0x42, 0x9e, 0x01, 0xf3, + 0xd8, 0x01, 0x43, 0x28, 0x08, 0xf2, 0xd8, 0x41, 0x44, 0x17, 0x11, 0xc2, + 0xd8, 0x41, 0x46, 0xae, 0x18, 0xa8, 0xd8, 0x01, 0x44, 0x22, 0x08, 0x89, + 0xd8, 0x41, 0x47, 0xc0, 0x09, 0x0a, 0xd9, 0x01, 0x48, 0x60, 0x44, 0x09, + 0xd9, 0x01, 0x46, 0xdf, 0x09, 0x08, 0xd9, 0x41, 0x1c, 0xfe, 0x16, 0x72, + 0xa9, 0x52, 0xac, 0x1c, 0x08, 0x60, 0xc9, 0x06, 0x48, 0x82, 0x16, 0x88, + 0xda, 0x41, 0x47, 0x13, 0xd0, 0x12, 0xda, 0x01, 0x47, 0x4c, 0x8e, 0x11, + 0xda, 0x01, 0x48, 0x98, 0xcc, 0x13, 0xda, 0x41, 0x04, 0xfe, 0x07, 0x06, + 0x5a, 0x6a, 0x21, 0x70, 0xda, 0x41, 0x06, 0x27, 0x1c, 0x1a, 0xb3, 0x01, + 0xff, 0x49, 0x54, 0x6c, 0x1f, 0xd9, 0x01, 0x05, 0x5e, 0x07, 0x01, 0xff, + 0x48, 0x60, 0x44, 0x1e, 0xd9, 0x01, 0x46, 0xdf, 0x09, 0x1c, 0xd9, 0x41, + 0x48, 0x60, 0x44, 0x1d, 0xd9, 0x01, 0x46, 0xdf, 0x09, 0x1b, 0xd9, 0x41, + 0x0c, 0x53, 0x91, 0x06, 0x44, 0xda, 0x09, 0x7e, 0xda, 0x41, 0xd2, 0x9b, + 0xda, 0x01, 0xd3, 0x9c, 0xda, 0x01, 0xd4, 0x9d, 0xda, 0x01, 0xd5, 0x9e, + 0xda, 0x01, 0xd6, 0x9f, 0xda, 0x41, 0x4f, 0x20, 0x6d, 0x07, 0xda, 0x01, + 0x4a, 0xd5, 0xb2, 0x08, 0xda, 0xc1, 0x00, 0x48, 0x4e, 0x0d, 0x09, 0xda, + 0x41, 0x43, 0x74, 0x1a, 0x30, 0xda, 0x01, 0x49, 0x73, 0xc1, 0x6c, 0xda, + 0x01, 0x02, 0x4d, 0x00, 0x01, 0xff, 0x80, 0xb2, 0x01, 0x0f, 0x8b, 0x6b, + 0x9b, 0x01, 0x05, 0x96, 0xe6, 0x4e, 0x07, 0xb3, 0xd2, 0x38, 0x02, 0x31, + 0x01, 0x01, 0xff, 0x46, 0xa2, 0x0d, 0x16, 0xda, 0x01, 0x05, 0x22, 0x00, + 0x1d, 0x44, 0xf6, 0x04, 0x14, 0xda, 0x01, 0x48, 0x28, 0xcb, 0x15, 0xda, + 0x01, 0x04, 0xd5, 0x1b, 0x01, 0xff, 0x45, 0xf5, 0x04, 0x1a, 0xda, 0x01, + 0x4d, 0x6d, 0x86, 0x1c, 0xda, 0x41, 0x46, 0xa2, 0x0d, 0x1b, 0xda, 0x01, + 0x44, 0xf6, 0x04, 0x19, 0xda, 0x41, 0x44, 0xa5, 0x01, 0x1f, 0xda, 0x01, + 0x4a, 0x6b, 0x47, 0x20, 0xda, 0x01, 0x42, 0x50, 0x02, 0x1e, 0xda, 0x41, + 0x0b, 0x7e, 0x49, 0x29, 0x0a, 0x0d, 0x1e, 0x01, 0xff, 0xa3, 0x16, 0x48, + 0x34, 0x4d, 0x21, 0xda, 0xc1, 0x00, 0x80, 0x01, 0xff, 0x4b, 0x13, 0x5a, + 0x23, 0xda, 0x01, 0x46, 0x3b, 0x01, 0x22, 0xda, 0x41, 0x47, 0x2c, 0x0b, + 0x29, 0xda, 0x01, 0x45, 0xbf, 0x22, 0x27, 0xda, 0x41, 0x46, 0x68, 0x41, + 0x28, 0xda, 0x01, 0x48, 0x34, 0x4d, 0x24, 0xda, 0xc1, 0x00, 0x80, 0x01, + 0xff, 0x4b, 0x13, 0x5a, 0x26, 0xda, 0x01, 0x46, 0x3b, 0x01, 0x25, 0xda, + 0x41, 0x44, 0xa5, 0x01, 0x0c, 0xda, 0x01, 0x47, 0x4c, 0x8e, 0x0b, 0xda, + 0x01, 0x42, 0x50, 0x02, 0x0a, 0xda, 0x41, 0x06, 0x34, 0xda, 0x06, 0x44, + 0x1e, 0xa5, 0x1d, 0xda, 0x41, 0x48, 0x60, 0x44, 0x18, 0xda, 0x01, 0x46, + 0xdf, 0x09, 0x17, 0xda, 0x41, 0x0f, 0x39, 0x72, 0x48, 0x07, 0xec, 0xd7, + 0x01, 0xff, 0x0a, 0xd6, 0x3d, 0x33, 0x50, 0x16, 0x63, 0xfd, 0xd9, 0x01, + 0x44, 0xb5, 0xef, 0xf7, 0xd9, 0x01, 0x47, 0x63, 0xd1, 0xfe, 0xd9, 0x01, + 0x47, 0x69, 0x43, 0xfa, 0xd9, 0x01, 0xb3, 0x06, 0x45, 0x37, 0xeb, 0xf9, + 0xd9, 0x41, 0x4b, 0x6d, 0x9d, 0xfb, 0xd9, 0x81, 0x06, 0x43, 0x13, 0x01, + 0xf8, 0xd9, 0x41, 0x4c, 0x12, 0x5a, 0xfc, 0xd9, 0x41, 0x45, 0x27, 0x1c, + 0xf6, 0xd9, 0x01, 0x45, 0x5d, 0x07, 0xf5, 0xd9, 0x41, 0x4c, 0x47, 0x8e, + 0x0e, 0xda, 0x01, 0x08, 0x97, 0x92, 0x06, 0x4a, 0xcb, 0xb2, 0x0f, 0xda, + 0x41, 0x44, 0xa5, 0x01, 0x0d, 0xda, 0x01, 0x42, 0x50, 0x02, 0x10, 0xda, + 0x41, 0x06, 0x32, 0xa0, 0x0f, 0xaf, 0x01, 0xff, 0x43, 0xd7, 0x02, 0x8a, + 0xda, 0x01, 0x43, 0x15, 0x05, 0x87, 0xda, 0x41, 0x47, 0x4c, 0x8e, 0x2b, + 0xda, 0x01, 0x46, 0x4a, 0xdf, 0x2a, 0xda, 0x01, 0x46, 0x2e, 0xe0, 0x2c, + 0xda, 0x41, 0x05, 0xba, 0xe5, 0x17, 0x04, 0xa2, 0xea, 0x01, 0xff, 0x47, + 0xc0, 0x09, 0x10, 0xd9, 0x01, 0x48, 0x60, 0x44, 0x0f, 0xd9, 0x01, 0x46, + 0xdf, 0x09, 0x0e, 0xd9, 0x41, 0x46, 0x96, 0xdb, 0x3a, 0xda, 0x01, 0x46, + 0xf8, 0xdc, 0x39, 0xda, 0x41, 0x04, 0xc7, 0x8c, 0x11, 0x04, 0x2e, 0xe0, + 0x01, 0xff, 0x50, 0x66, 0x60, 0x38, 0xda, 0x01, 0x46, 0x05, 0x06, 0x36, + 0xda, 0x41, 0x50, 0x66, 0x60, 0x37, 0xda, 0x01, 0x47, 0x7b, 0x67, 0x35, + 0xda, 0x41, 0x05, 0x92, 0xe5, 0xb4, 0x01, 0xa5, 0x01, 0xff, 0x0c, 0xeb, + 0x95, 0x3e, 0x05, 0xf4, 0x45, 0x01, 0xff, 0x06, 0x0c, 0x03, 0x1d, 0x06, + 0xad, 0x02, 0x01, 0xff, 0x53, 0x1f, 0x49, 0x9f, 0xf5, 0x01, 0x53, 0xe7, + 0x4a, 0x98, 0xf5, 0x01, 0x54, 0x8e, 0x22, 0x99, 0xf5, 0x01, 0x51, 0xc4, + 0x5e, 0x9e, 0xf5, 0x41, 0x53, 0x1f, 0x49, 0xa1, 0xf5, 0x01, 0x53, 0xe7, + 0x4a, 0x9a, 0xf5, 0x01, 0x54, 0x8e, 0x22, 0x9b, 0xf5, 0x01, 0x51, 0xc4, + 0x5e, 0xa0, 0xf5, 0x41, 0x90, 0x49, 0x91, 0x1f, 0x92, 0x01, 0xff, 0xd0, + 0x53, 0x09, 0x01, 0xd1, 0x54, 0x09, 0x01, 0xd2, 0x55, 0x09, 0x01, 0xd3, + 0x56, 0x09, 0x01, 0xd4, 0x57, 0x09, 0x01, 0xd5, 0x58, 0x09, 0x01, 0xd6, + 0x59, 0x09, 0x41, 0xd0, 0x49, 0x09, 0x01, 0xd1, 0x4a, 0x09, 0x01, 0xd2, + 0x4b, 0x09, 0x01, 0xd3, 0x4c, 0x09, 0x01, 0xd4, 0x4d, 0x09, 0x01, 0xd5, + 0x4e, 0x09, 0x01, 0xd6, 0x4f, 0x09, 0x01, 0xd7, 0x50, 0x09, 0x01, 0xd8, + 0x51, 0x09, 0x01, 0xd9, 0x52, 0x09, 0x41, 0xd1, 0x40, 0x09, 0x01, 0xd2, + 0x41, 0x09, 0x01, 0xd3, 0x42, 0x09, 0x01, 0xd4, 0x43, 0x09, 0x01, 0xd5, + 0x44, 0x09, 0x01, 0xd6, 0x45, 0x09, 0x01, 0xd7, 0x46, 0x09, 0x01, 0xd8, + 0x47, 0x09, 0x01, 0xd9, 0x48, 0x09, 0x41, 0xa4, 0xb8, 0x04, 0x50, 0xb6, + 0x62, 0xc9, 0x15, 0x01, 0x07, 0xec, 0x05, 0x86, 0x02, 0x10, 0x66, 0x66, + 0xf5, 0x01, 0xb3, 0x43, 0x0b, 0x40, 0x77, 0x01, 0xff, 0xa1, 0x25, 0xe5, + 0xb8, 0x15, 0x01, 0xe9, 0xb0, 0x15, 0x81, 0x18, 0xef, 0xba, 0x15, 0x01, + 0xf5, 0xb2, 0x15, 0x81, 0x0b, 0x49, 0x22, 0xc1, 0xb4, 0x15, 0xc1, 0x00, + 0xf2, 0xb5, 0x15, 0x41, 0xf5, 0xb3, 0x15, 0x41, 0xe9, 0xb1, 0x15, 0x41, + 0xe1, 0xaf, 0x15, 0x01, 0xe9, 0xb9, 0x15, 0x01, 0x4a, 0x85, 0xad, 0xdc, + 0x15, 0x81, 0x04, 0xf5, 0xbb, 0x15, 0x41, 0xf5, 0xdd, 0x15, 0x41, 0xa5, + 0x2e, 0x04, 0x5b, 0x03, 0x01, 0xff, 0x48, 0x3c, 0x16, 0xbd, 0x15, 0x01, + 0x4b, 0xd7, 0x23, 0xbc, 0x15, 0x01, 0x45, 0x3f, 0x3f, 0xc0, 0x15, 0x01, + 0x47, 0xd8, 0xd5, 0xc1, 0x15, 0x01, 0x02, 0x02, 0x00, 0x01, 0xff, 0x44, + 0xe5, 0x23, 0xbf, 0x15, 0x01, 0x45, 0xec, 0x4b, 0xbe, 0x15, 0x41, 0x0b, + 0x97, 0x9a, 0x11, 0x08, 0xda, 0x20, 0x01, 0xff, 0x43, 0x16, 0x00, 0xc5, + 0x15, 0x01, 0x43, 0x23, 0x0a, 0xc4, 0x15, 0x41, 0x4b, 0x3c, 0x9b, 0xcf, + 0x15, 0x81, 0x5e, 0x05, 0x51, 0x00, 0x01, 0xff, 0x0c, 0x63, 0x8d, 0x43, + 0x50, 0x06, 0x62, 0xd1, 0x15, 0x01, 0x53, 0x3d, 0x4c, 0xd3, 0x15, 0x01, + 0x10, 0x46, 0x66, 0x21, 0x52, 0x1b, 0x55, 0xd4, 0x15, 0x01, 0x03, 0x19, + 0x01, 0x01, 0xff, 0x09, 0xa4, 0xb7, 0x06, 0x4d, 0x43, 0x4c, 0xd2, 0x15, + 0x41, 0x50, 0xf6, 0x61, 0xcb, 0x15, 0x01, 0x52, 0x05, 0x56, 0xca, 0x15, + 0x41, 0x49, 0x47, 0x4c, 0xcc, 0x15, 0x01, 0x50, 0x06, 0x62, 0xcd, 0x15, + 0x01, 0x50, 0xc6, 0x67, 0xce, 0x15, 0x41, 0x4f, 0x4d, 0x6d, 0xd7, 0x15, + 0x01, 0x44, 0x46, 0x66, 0xd5, 0x15, 0x01, 0x4e, 0xa3, 0x7d, 0xd6, 0x15, + 0x41, 0x4a, 0x71, 0x96, 0xd0, 0x15, 0x41, 0xd1, 0xc6, 0x15, 0x01, 0xd2, + 0xc7, 0x15, 0x01, 0xd3, 0xc8, 0x15, 0x41, 0xe1, 0x80, 0x15, 0x81, 0x8f, + 0x02, 0xa2, 0x82, 0x02, 0xa3, 0xf5, 0x01, 0xa4, 0xdc, 0x01, 0xe5, 0x8a, + 0x15, 0x01, 0xa7, 0xcb, 0x01, 0x42, 0x22, 0x00, 0xae, 0x15, 0x01, 0xe9, + 0x82, 0x15, 0x81, 0xbb, 0x01, 0xaa, 0xae, 0x01, 0xab, 0xa1, 0x01, 0x42, + 0x74, 0x00, 0xa9, 0x15, 0x01, 0x42, 0x6c, 0x00, 0xa6, 0x15, 0x01, 0xae, + 0x7d, 0xef, 0x8c, 0x15, 0x01, 0xb0, 0x6d, 0x42, 0x71, 0x00, 0xa8, 0x15, + 0x01, 0xb3, 0x55, 0xb4, 0x2c, 0xf5, 0x84, 0x15, 0x81, 0x23, 0xb6, 0x06, + 0x42, 0xbc, 0x22, 0xa7, 0x15, 0x41, 0xe1, 0xaa, 0x15, 0x01, 0x07, 0x23, + 0xc1, 0x01, 0xff, 0xec, 0x88, 0x15, 0x81, 0x09, 0xf2, 0x86, 0x15, 0xc1, + 0x00, 0xf2, 0x87, 0x15, 0x41, 0xec, 0x89, 0x15, 0x41, 0xf5, 0x85, 0x15, + 0x41, 0xe1, 0x9d, 0x15, 0x01, 0xa8, 0x17, 0xb4, 0x0b, 0x55, 0x20, 0x3f, + 0xd9, 0x15, 0xc1, 0x00, 0xe9, 0xda, 0x15, 0x41, 0xe1, 0x98, 0x15, 0x01, + 0x42, 0x22, 0x00, 0x99, 0x15, 0x41, 0xe1, 0x9e, 0x15, 0x01, 0x56, 0xc3, + 0x36, 0xd8, 0x15, 0x41, 0xe1, 0xad, 0x15, 0x01, 0x42, 0x22, 0x00, 0xab, + 0x15, 0x01, 0x42, 0x40, 0x06, 0xac, 0x15, 0x41, 0xe1, 0xa2, 0x15, 0x01, + 0x42, 0x22, 0x00, 0xa3, 0x15, 0x41, 0xe1, 0xa1, 0x15, 0x01, 0x42, 0x24, + 0x02, 0x92, 0x15, 0x01, 0x42, 0x2a, 0x05, 0x9c, 0x15, 0x01, 0x42, 0xbc, + 0x22, 0x97, 0x15, 0x41, 0xe1, 0x8e, 0x15, 0x01, 0x42, 0x22, 0x00, 0x8f, + 0x15, 0x41, 0xe1, 0x95, 0x15, 0x01, 0x42, 0x22, 0x00, 0x96, 0x15, 0x41, + 0xe9, 0x83, 0x15, 0x41, 0xe1, 0x90, 0x15, 0x01, 0x42, 0x22, 0x00, 0x91, + 0x15, 0x41, 0xe1, 0x9f, 0x15, 0x01, 0xa4, 0x06, 0x42, 0x22, 0x00, 0xa0, + 0x15, 0x41, 0xe1, 0x9a, 0x15, 0x01, 0x42, 0x22, 0x00, 0x9b, 0x15, 0x41, + 0xe1, 0x93, 0x15, 0x01, 0x42, 0x22, 0x00, 0x94, 0x15, 0x41, 0xe1, 0xa4, + 0x15, 0x01, 0x42, 0x22, 0x00, 0xa5, 0x15, 0x41, 0xe1, 0x81, 0x15, 0x01, + 0xe9, 0x8b, 0x15, 0x01, 0x4a, 0x85, 0xad, 0xdb, 0x15, 0x01, 0xf5, 0x8d, + 0x15, 0x41, 0x44, 0x73, 0x20, 0xc2, 0x15, 0x01, 0x4b, 0x09, 0xa1, 0xc3, + 0x15, 0x41, 0xa1, 0xf1, 0x01, 0x43, 0xf6, 0x34, 0x11, 0xf4, 0x01, 0xa9, + 0xc8, 0x01, 0xaf, 0x14, 0xb2, 0x06, 0x4d, 0x86, 0x89, 0xe2, 0x29, 0x40, + 0x43, 0xf1, 0x1b, 0x90, 0xf9, 0x01, 0x42, 0xd2, 0x0e, 0x37, 0xf9, 0x41, + 0x5d, 0x11, 0x15, 0x2f, 0xf9, 0x01, 0x4a, 0x29, 0xaf, 0x20, 0xf3, 0x01, + 0x06, 0x2a, 0x30, 0x95, 0x01, 0x02, 0x34, 0x00, 0x12, 0x50, 0xf6, 0x67, + 0x7d, 0x23, 0x00, 0x43, 0xd7, 0x00, 0x8f, 0xfa, 0x01, 0x43, 0x15, 0x01, + 0xbf, 0xf6, 0x41, 0x80, 0x26, 0x44, 0x5f, 0x2c, 0x70, 0xf3, 0x01, 0x0c, + 0x8b, 0x8f, 0x04, 0xf3, 0x73, 0xfa, 0x41, 0x52, 0xbf, 0x50, 0xa1, 0xbc, + 0x01, 0x49, 0xd1, 0xb7, 0xa2, 0xbc, 0x01, 0x4e, 0x6d, 0x79, 0xa0, 0xbc, + 0x01, 0x47, 0xe2, 0xd6, 0xa3, 0xbc, 0x41, 0xa2, 0x49, 0x49, 0xf0, 0x38, + 0xdf, 0x2a, 0x80, 0x3c, 0x04, 0xc3, 0x00, 0x2c, 0x0b, 0xb3, 0x02, 0x1c, + 0x53, 0x21, 0x4d, 0x4e, 0x2b, 0x00, 0x47, 0xe9, 0xd6, 0xe0, 0x2a, 0xc0, + 0x00, 0x80, 0x01, 0xff, 0x55, 0xe4, 0x38, 0xe9, 0x2a, 0x00, 0x4d, 0x2e, + 0x5f, 0xe8, 0x2a, 0x40, 0x5b, 0x41, 0x1a, 0x44, 0x29, 0x00, 0x64, 0x2b, + 0x09, 0xd3, 0xf8, 0x41, 0x45, 0xf4, 0x38, 0xde, 0x2a, 0x00, 0x6b, 0xc3, + 0x02, 0xd5, 0xf8, 0x41, 0x4d, 0xe0, 0x7f, 0xe7, 0x2a, 0x40, 0x56, 0xcf, + 0x32, 0x4f, 0x2b, 0x00, 0x6c, 0x92, 0x01, 0x5f, 0x2b, 0x40, 0x44, 0x04, + 0x6b, 0xcd, 0xf6, 0x01, 0x47, 0x80, 0xd6, 0xd2, 0xf6, 0x41, 0x43, 0x02, + 0x24, 0xe1, 0xf6, 0x01, 0x03, 0xc5, 0x00, 0x0a, 0x4a, 0x7f, 0xae, 0xe9, + 0x26, 0x00, 0xf0, 0xa2, 0xf6, 0x41, 0x42, 0x9e, 0x01, 0x0f, 0x00, 0x00, + 0x43, 0x28, 0x08, 0x0e, 0x00, 0x40, 0x0c, 0xa7, 0x02, 0xdc, 0x07, 0x49, + 0x74, 0xb0, 0xe8, 0xfa, 0x01, 0x50, 0xc6, 0x64, 0x58, 0xf9, 0x01, 0x45, + 0xcb, 0xe8, 0x18, 0x26, 0x00, 0xb2, 0xbb, 0x02, 0xb6, 0x01, 0xff, 0x46, + 0x24, 0xdb, 0x67, 0xf3, 0x01, 0x0b, 0x4c, 0x8d, 0x01, 0xff, 0xa1, 0xfc, + 0x01, 0x43, 0xfb, 0xf3, 0x5a, 0x04, 0x01, 0x46, 0xa0, 0xda, 0x57, 0x04, + 0x01, 0x44, 0x85, 0xef, 0x5b, 0x04, 0x01, 0xa5, 0xd1, 0x01, 0x43, 0xd3, + 0x20, 0x53, 0x04, 0x01, 0x43, 0x97, 0xaa, 0x5c, 0x04, 0x01, 0xa8, 0xb6, + 0x01, 0xa9, 0xa3, 0x01, 0x45, 0xae, 0xe7, 0x61, 0x04, 0x01, 0x44, 0xd9, + 0xf0, 0x52, 0x04, 0x01, 0x44, 0x11, 0xf1, 0x64, 0x04, 0x01, 0xad, 0x82, + 0x01, 0x43, 0xdc, 0x22, 0x6f, 0x04, 0x01, 0xaf, 0x5a, 0x44, 0x05, 0xf2, + 0x50, 0x04, 0x01, 0x44, 0x59, 0xf2, 0x6e, 0x04, 0x01, 0xb3, 0x42, 0xb4, + 0x2c, 0x42, 0x50, 0x02, 0x73, 0x04, 0x01, 0x43, 0x3c, 0x39, 0x5d, 0x04, + 0x01, 0x02, 0x15, 0x02, 0x12, 0x02, 0x4d, 0x00, 0x06, 0x43, 0xdc, 0xf4, + 0x5f, 0x04, 0x41, 0xe1, 0x58, 0x04, 0x01, 0xf7, 0x7f, 0x04, 0x41, 0xe5, + 0x62, 0x04, 0x01, 0x42, 0x61, 0x03, 0x6b, 0x04, 0x41, 0xa8, 0x06, 0x42, + 0x1b, 0x05, 0x51, 0x04, 0x41, 0x42, 0xc6, 0x1c, 0x5e, 0x04, 0x01, 0x43, + 0x3f, 0x00, 0x54, 0x04, 0x41, 0xef, 0x55, 0x04, 0x01, 0x43, 0x75, 0x18, + 0x56, 0x04, 0x41, 0x42, 0x6d, 0x00, 0x74, 0x04, 0x01, 0x42, 0x62, 0x01, + 0x76, 0x04, 0x01, 0xee, 0x6a, 0x04, 0x01, 0x43, 0x69, 0x0a, 0x75, 0x04, + 0x01, 0xf2, 0x79, 0x04, 0x01, 0x42, 0x29, 0x08, 0x6c, 0x04, 0x41, 0x46, + 0x72, 0x18, 0x60, 0x04, 0x01, 0x43, 0x29, 0x02, 0x65, 0x04, 0x41, 0x42, + 0x1a, 0x00, 0x7e, 0x04, 0x01, 0x42, 0x73, 0x02, 0x72, 0x04, 0x01, 0xe6, + 0x66, 0x04, 0x41, 0x44, 0xd9, 0xee, 0x63, 0x04, 0x01, 0x43, 0xaa, 0x45, + 0x59, 0x04, 0x41, 0xa1, 0x0c, 0x42, 0x64, 0x12, 0x67, 0x04, 0x01, 0x42, + 0xcf, 0x00, 0x7b, 0x04, 0x41, 0xf2, 0x7d, 0x04, 0x01, 0xf4, 0x70, 0x04, + 0x41, 0x42, 0x3b, 0x01, 0x69, 0x04, 0x01, 0x42, 0xdb, 0x09, 0x71, 0x04, + 0x01, 0xe8, 0x6d, 0x04, 0x01, 0x42, 0x46, 0x00, 0x7a, 0x04, 0x01, 0xb2, + 0x0c, 0x42, 0xa4, 0x02, 0x68, 0x04, 0x01, 0x42, 0x15, 0x01, 0x77, 0x04, + 0x41, 0xe5, 0x78, 0x04, 0x01, 0x43, 0x46, 0x66, 0x7c, 0x04, 0x41, 0x04, + 0xd4, 0x4d, 0x04, 0xeb, 0x88, 0xf9, 0x41, 0x51, 0xdc, 0x57, 0xc7, 0x11, + 0x01, 0x51, 0x63, 0x59, 0xdd, 0x11, 0x01, 0xa4, 0xa3, 0x04, 0xa5, 0x94, + 0x04, 0x4a, 0xbc, 0x60, 0xdc, 0x11, 0x01, 0x07, 0xec, 0x05, 0xf1, 0x01, + 0x42, 0x14, 0x05, 0xc4, 0x11, 0x01, 0xb3, 0x81, 0x01, 0x06, 0x3c, 0x39, + 0x01, 0xff, 0x4d, 0x2c, 0x86, 0xcb, 0x11, 0x01, 0x05, 0x5a, 0x03, 0x01, + 0xff, 0xa1, 0x63, 0x07, 0x36, 0x61, 0x57, 0xe5, 0xbc, 0x11, 0x01, 0xe9, + 0xb4, 0x11, 0x81, 0x4a, 0xef, 0xbe, 0x11, 0x81, 0x3b, 0x4f, 0xee, 0x71, + 0xce, 0x11, 0x01, 0x06, 0x33, 0x07, 0x29, 0xf5, 0xb6, 0x11, 0x81, 0x17, + 0x08, 0x22, 0xc1, 0x01, 0xff, 0xec, 0xba, 0x11, 0x81, 0x09, 0xf2, 0xb8, + 0x11, 0xc1, 0x00, 0xf2, 0xb9, 0x11, 0x41, 0xec, 0xbb, 0x11, 0x41, 0xe5, + 0x62, 0x1b, 0x01, 0xf5, 0xb7, 0x11, 0xc1, 0x00, 0xe5, 0x63, 0x1b, 0x41, + 0xe5, 0x64, 0x1b, 0x01, 0xef, 0x65, 0x1b, 0x41, 0xe5, 0x60, 0x1b, 0x01, + 0x42, 0x60, 0x51, 0x61, 0x1b, 0x41, 0xe9, 0xb5, 0x11, 0x41, 0xe5, 0x66, + 0x1b, 0x01, 0xef, 0x67, 0x1b, 0x41, 0xe1, 0xb3, 0x11, 0x01, 0xe9, 0xbd, + 0x11, 0x01, 0xf5, 0xbf, 0x11, 0x41, 0x4a, 0xbd, 0xa7, 0xc9, 0x11, 0x01, + 0xa5, 0x4d, 0x04, 0x5b, 0x03, 0x06, 0x49, 0xb6, 0xc0, 0xcd, 0x11, 0x41, + 0xa1, 0x35, 0x4b, 0xd7, 0x23, 0x80, 0x11, 0x01, 0x54, 0x84, 0x43, 0xcf, + 0x11, 0x01, 0x4b, 0xe6, 0x9d, 0xc2, 0x11, 0x01, 0x45, 0x3f, 0x3f, 0xca, + 0x11, 0x01, 0x47, 0xd8, 0xd5, 0xdb, 0x11, 0x01, 0x4b, 0x6e, 0xa4, 0xc3, + 0x11, 0x01, 0x02, 0x02, 0x00, 0x01, 0xff, 0x44, 0xe5, 0x23, 0xc0, 0x11, + 0x01, 0x45, 0xec, 0x4b, 0x82, 0x11, 0x41, 0x47, 0x3d, 0x16, 0x81, 0x11, + 0x01, 0x47, 0xaf, 0x88, 0xc1, 0x11, 0x41, 0x0b, 0xa2, 0x9a, 0x06, 0x47, + 0xda, 0x20, 0xc8, 0x11, 0x41, 0xd1, 0xde, 0x11, 0x01, 0xd2, 0xdf, 0x11, + 0x41, 0xe1, 0x83, 0x11, 0x81, 0x86, 0x02, 0xa2, 0xf9, 0x01, 0xa3, 0xec, + 0x01, 0xa4, 0xd3, 0x01, 0xe5, 0x8d, 0x11, 0x01, 0xa7, 0xc2, 0x01, 0x42, + 0x22, 0x00, 0xb2, 0x11, 0x01, 0xe9, 0x85, 0x11, 0x81, 0xb2, 0x01, 0xaa, + 0xa5, 0x01, 0xab, 0x98, 0x01, 0xac, 0x8b, 0x01, 0x42, 0x6c, 0x00, 0xa9, + 0x11, 0x01, 0xae, 0x6d, 0xef, 0x8f, 0x11, 0x01, 0xb0, 0x5d, 0x42, 0x71, + 0x00, 0xab, 0x11, 0x01, 0xb3, 0x45, 0xb4, 0x2c, 0xf5, 0x87, 0x11, 0x81, + 0x23, 0xb6, 0x06, 0x42, 0xbc, 0x22, 0xaa, 0x11, 0x41, 0xe1, 0xae, 0x11, + 0x01, 0x07, 0x23, 0xc1, 0x01, 0xff, 0xec, 0x8b, 0x11, 0x81, 0x09, 0xf2, + 0x89, 0x11, 0xc1, 0x00, 0xf2, 0x8a, 0x11, 0x41, 0xec, 0x8c, 0x11, 0x41, + 0xf5, 0x88, 0x11, 0x41, 0xe1, 0xa0, 0x11, 0x01, 0x42, 0x22, 0x00, 0xa1, + 0x11, 0x01, 0xb4, 0x01, 0xff, 0xe1, 0x9b, 0x11, 0x01, 0x42, 0x22, 0x00, + 0x9c, 0x11, 0x41, 0xe1, 0xb1, 0x11, 0x01, 0x42, 0x22, 0x00, 0xaf, 0x11, + 0x01, 0x42, 0x40, 0x06, 0xb0, 0x11, 0x41, 0xe1, 0xa5, 0x11, 0x01, 0x42, + 0x22, 0x00, 0xa6, 0x11, 0x41, 0xe1, 0xa4, 0x11, 0x01, 0x42, 0x24, 0x02, + 0x95, 0x11, 0x01, 0x42, 0x2a, 0x05, 0x9f, 0x11, 0x01, 0x42, 0xbc, 0x22, + 0x9a, 0x11, 0x41, 0xe1, 0xac, 0x11, 0x01, 0x42, 0x74, 0x00, 0xad, 0x11, + 0x41, 0xe1, 0x91, 0x11, 0x01, 0x42, 0x22, 0x00, 0x92, 0x11, 0x41, 0xe1, + 0x98, 0x11, 0x01, 0x42, 0x22, 0x00, 0x99, 0x11, 0x41, 0xe9, 0x86, 0x11, + 0x41, 0xe1, 0x93, 0x11, 0x01, 0x42, 0x22, 0x00, 0x94, 0x11, 0x41, 0xe1, + 0xa2, 0x11, 0x01, 0xa4, 0x06, 0x42, 0x22, 0x00, 0xa3, 0x11, 0x41, 0xe1, + 0x9d, 0x11, 0x01, 0x42, 0x22, 0x00, 0x9e, 0x11, 0x41, 0xe1, 0x96, 0x11, + 0x01, 0x42, 0x22, 0x00, 0x97, 0x11, 0x41, 0xe1, 0xa7, 0x11, 0x01, 0x42, + 0x22, 0x00, 0xa8, 0x11, 0x41, 0xe1, 0x84, 0x11, 0x01, 0xe9, 0x8e, 0x11, + 0x01, 0xf5, 0x90, 0x11, 0x41, 0x43, 0xfb, 0xba, 0xda, 0x11, 0x01, 0x55, + 0x4a, 0x3f, 0xcc, 0x11, 0x41, 0x44, 0x73, 0x20, 0xc5, 0x11, 0x01, 0x05, + 0xf0, 0x06, 0x06, 0x4b, 0x09, 0xa1, 0xc6, 0x11, 0x41, 0x45, 0x12, 0x0b, + 0xd8, 0x11, 0x01, 0xa6, 0x2e, 0x44, 0xcf, 0x2a, 0xd9, 0x11, 0x01, 0x43, + 0x0e, 0x0b, 0xd1, 0x11, 0x01, 0xb3, 0x14, 0xb4, 0x06, 0x44, 0x43, 0x1e, + 0xd0, 0x11, 0x41, 0x44, 0x25, 0x01, 0xd3, 0x11, 0x01, 0x42, 0x15, 0x02, + 0xd2, 0x11, 0x41, 0x44, 0xc9, 0x1d, 0xd7, 0x11, 0x01, 0x42, 0x01, 0x26, + 0xd6, 0x11, 0x41, 0x43, 0xd2, 0x05, 0xd5, 0x11, 0x01, 0x43, 0xf6, 0x06, + 0xd4, 0x11, 0x41, 0x46, 0x12, 0x03, 0x4d, 0x27, 0x00, 0x4b, 0x49, 0x9e, + 0x1e, 0x27, 0x00, 0x44, 0x31, 0x13, 0x30, 0x27, 0x40, 0xa1, 0xc8, 0x04, + 0xa3, 0xb0, 0x04, 0x43, 0x36, 0x9f, 0xf2, 0x2b, 0x00, 0xa5, 0x9b, 0x04, + 0x45, 0x08, 0x30, 0x13, 0x23, 0x80, 0xcc, 0x03, 0x44, 0x01, 0xf1, 0x33, + 0xf9, 0x01, 0x02, 0x7d, 0x02, 0xaf, 0x03, 0x08, 0xd0, 0xc9, 0x38, 0xb2, + 0x2a, 0xb3, 0x1c, 0x02, 0xc6, 0x00, 0x0c, 0x4b, 0x13, 0xa5, 0xa1, 0xfa, + 0x01, 0x45, 0xbe, 0xd5, 0xb9, 0x26, 0x40, 0x45, 0x91, 0x1f, 0x16, 0x22, + 0x00, 0x4e, 0x4f, 0x7d, 0x93, 0x00, 0x40, 0x47, 0xa2, 0xb8, 0x45, 0xfe, + 0x00, 0x4b, 0x98, 0xa1, 0xbc, 0x26, 0x40, 0x65, 0x07, 0x08, 0x2c, 0xf9, + 0x01, 0x49, 0xfe, 0xc0, 0x20, 0x21, 0x40, 0x06, 0x6d, 0x6b, 0x06, 0x46, + 0x16, 0x08, 0xfb, 0x2b, 0x40, 0x09, 0x49, 0xbe, 0xa1, 0x02, 0x08, 0xc8, + 0xca, 0x01, 0xff, 0xd1, 0x51, 0xce, 0x81, 0x8b, 0x01, 0xd2, 0x52, 0xce, + 0x81, 0x43, 0xd3, 0x54, 0xce, 0x81, 0x1f, 0xd4, 0x58, 0xce, 0x81, 0x0d, + 0xd5, 0x60, 0xce, 0x81, 0x04, 0xd6, 0x70, 0xce, 0x41, 0xd6, 0x80, 0xce, + 0x41, 0xd5, 0x68, 0xce, 0x81, 0x04, 0xd6, 0x78, 0xce, 0x41, 0xd6, 0x88, + 0xce, 0x41, 0xd4, 0x5c, 0xce, 0x81, 0x0d, 0xd5, 0x64, 0xce, 0x81, 0x04, + 0xd6, 0x74, 0xce, 0x41, 0xd6, 0x84, 0xce, 0x41, 0xd5, 0x6c, 0xce, 0x81, + 0x04, 0xd6, 0x7c, 0xce, 0x41, 0xd6, 0x8c, 0xce, 0x41, 0xd3, 0x56, 0xce, + 0x81, 0x1f, 0xd4, 0x5a, 0xce, 0x81, 0x0d, 0xd5, 0x62, 0xce, 0x81, 0x04, + 0xd6, 0x72, 0xce, 0x41, 0xd6, 0x82, 0xce, 0x41, 0xd5, 0x6a, 0xce, 0x81, + 0x04, 0xd6, 0x7a, 0xce, 0x41, 0xd6, 0x8a, 0xce, 0x41, 0xd4, 0x5e, 0xce, + 0x81, 0x0d, 0xd5, 0x66, 0xce, 0x81, 0x04, 0xd6, 0x76, 0xce, 0x41, 0xd6, + 0x86, 0xce, 0x41, 0xd5, 0x6e, 0xce, 0x81, 0x04, 0xd6, 0x7e, 0xce, 0x41, + 0xd6, 0x8e, 0xce, 0x41, 0xd2, 0x53, 0xce, 0x81, 0x43, 0xd3, 0x55, 0xce, + 0x81, 0x1f, 0xd4, 0x59, 0xce, 0x81, 0x0d, 0xd5, 0x61, 0xce, 0x81, 0x04, + 0xd6, 0x71, 0xce, 0x41, 0xd6, 0x81, 0xce, 0x41, 0xd5, 0x69, 0xce, 0x81, + 0x04, 0xd6, 0x79, 0xce, 0x41, 0xd6, 0x89, 0xce, 0x41, 0xd4, 0x5d, 0xce, + 0x81, 0x0d, 0xd5, 0x65, 0xce, 0x81, 0x04, 0xd6, 0x75, 0xce, 0x41, 0xd6, + 0x85, 0xce, 0x41, 0xd5, 0x6d, 0xce, 0x81, 0x04, 0xd6, 0x7d, 0xce, 0x41, + 0xd6, 0x8d, 0xce, 0x41, 0xd3, 0x57, 0xce, 0x81, 0x1f, 0xd4, 0x5b, 0xce, + 0x81, 0x0d, 0xd5, 0x63, 0xce, 0x81, 0x04, 0xd6, 0x73, 0xce, 0x41, 0xd6, + 0x83, 0xce, 0x41, 0xd5, 0x6b, 0xce, 0x81, 0x04, 0xd6, 0x7b, 0xce, 0x41, + 0xd6, 0x8b, 0xce, 0x41, 0xd4, 0x5f, 0xce, 0x81, 0x0d, 0xd5, 0x67, 0xce, + 0x81, 0x04, 0xd6, 0x77, 0xce, 0x41, 0xd6, 0x87, 0xce, 0x41, 0xd5, 0x6f, + 0xce, 0x81, 0x04, 0xd6, 0x7f, 0xce, 0x41, 0xd6, 0x8f, 0xce, 0x41, 0xd1, + 0x21, 0xcc, 0x81, 0x1f, 0xd2, 0x22, 0xcc, 0x81, 0x0d, 0xd3, 0x24, 0xcc, + 0x81, 0x04, 0xd4, 0x28, 0xcc, 0x41, 0xd4, 0x2c, 0xcc, 0x41, 0xd3, 0x26, + 0xcc, 0x81, 0x04, 0xd4, 0x2a, 0xcc, 0x41, 0xd4, 0x2e, 0xcc, 0x41, 0xd2, + 0x23, 0xcc, 0x81, 0x0d, 0xd3, 0x25, 0xcc, 0x81, 0x04, 0xd4, 0x29, 0xcc, + 0x41, 0xd4, 0x2d, 0xcc, 0x41, 0xd3, 0x27, 0xcc, 0x81, 0x04, 0xd4, 0x2b, + 0xcc, 0x41, 0xd4, 0x2f, 0xcc, 0x41, 0x45, 0x94, 0x3b, 0x3b, 0x00, 0x00, + 0x61, 0x87, 0x0d, 0x32, 0x2a, 0x00, 0x47, 0xbc, 0xd5, 0xba, 0x26, 0x40, + 0x09, 0x10, 0xb8, 0x01, 0xff, 0x45, 0x12, 0x0b, 0xf8, 0xfb, 0x01, 0xa6, + 0x2e, 0x44, 0xcf, 0x2a, 0xf9, 0xfb, 0x01, 0x43, 0x0e, 0x0b, 0xf1, 0xfb, + 0x01, 0xb3, 0x14, 0xb4, 0x06, 0x44, 0x43, 0x1e, 0xf0, 0xfb, 0x41, 0x44, + 0x25, 0x01, 0xf3, 0xfb, 0x01, 0x42, 0x15, 0x02, 0xf2, 0xfb, 0x41, 0x44, + 0xc9, 0x1d, 0xf7, 0xfb, 0x01, 0x42, 0x01, 0x26, 0xf6, 0xfb, 0x41, 0x43, + 0xd2, 0x05, 0xf5, 0xfb, 0x01, 0x43, 0xf6, 0x06, 0xf4, 0xfb, 0x41, 0x4f, + 0x32, 0x6a, 0x48, 0xf6, 0x01, 0x45, 0x9c, 0xe5, 0x31, 0xf3, 0x41, 0x4f, + 0x3a, 0x71, 0x48, 0xf9, 0x01, 0xb4, 0x01, 0xff, 0x48, 0xc1, 0x04, 0xa7, + 0x00, 0x00, 0x42, 0x0c, 0x00, 0x14, 0x23, 0x40, 0xec, 0xad, 0xf9, 0x01, + 0xf4, 0xba, 0xf4, 0x41, 0xa1, 0x8a, 0x01, 0x44, 0x34, 0xe5, 0xeb, 0xf3, + 0x81, 0x7d, 0xaf, 0x64, 0xb2, 0x01, 0xff, 0xa5, 0x53, 0x04, 0x77, 0x06, + 0x0c, 0x43, 0xe6, 0x20, 0xdc, 0xf4, 0x01, 0x44, 0x42, 0x4c, 0x08, 0x21, + 0x40, 0x08, 0xe4, 0x05, 0x1b, 0x54, 0x9c, 0x1f, 0x70, 0xf6, 0x01, 0x06, + 0x5d, 0x07, 0x01, 0xff, 0xe5, 0x2f, 0x21, 0x00, 0xe7, 0x0a, 0x21, 0x00, + 0xec, 0x13, 0x21, 0x00, 0xef, 0x34, 0x21, 0x40, 0xe2, 0x2c, 0x21, 0x00, + 0xe5, 0x30, 0x21, 0x00, 0xe6, 0x31, 0x21, 0x00, 0xe8, 0x0b, 0x21, 0x00, + 0xe9, 0x10, 0x21, 0x00, 0xec, 0x12, 0x21, 0x00, 0xed, 0x33, 0x21, 0x00, + 0xf0, 0x18, 0x21, 0x00, 0xf2, 0x1b, 0x21, 0x40, 0x42, 0x92, 0x01, 0xb5, + 0xf5, 0x01, 0x47, 0x75, 0xd7, 0x9b, 0xfa, 0x41, 0x44, 0xb8, 0xd5, 0xf4, + 0xf6, 0x01, 0x03, 0x6f, 0x48, 0x01, 0xff, 0x42, 0x10, 0x00, 0x82, 0xf9, + 0x01, 0x42, 0xef, 0x02, 0x4f, 0x26, 0x40, 0x48, 0x80, 0xc2, 0x92, 0xf3, + 0x41, 0x43, 0xec, 0x00, 0x96, 0x26, 0x00, 0x42, 0xf5, 0x1b, 0xe3, 0xf9, + 0x41, 0x05, 0xb6, 0x75, 0x88, 0x08, 0x49, 0x30, 0xb9, 0x50, 0x26, 0x00, + 0x46, 0xd4, 0xdc, 0xf5, 0x26, 0x00, 0x51, 0x61, 0x5b, 0x76, 0xf3, 0x01, + 0xac, 0xdf, 0x07, 0x08, 0xba, 0x6a, 0xd6, 0x04, 0xae, 0xa8, 0x04, 0x42, + 0x0d, 0x00, 0x7b, 0xf9, 0x01, 0xb4, 0x8c, 0x04, 0xb5, 0x06, 0x47, 0xad, + 0xd7, 0xb7, 0xf3, 0x41, 0x4d, 0xdb, 0x81, 0xc1, 0x20, 0x00, 0xb2, 0x01, + 0xff, 0x07, 0x17, 0xcf, 0x06, 0x44, 0xdd, 0xf1, 0x95, 0xf9, 0x41, 0x54, + 0x2c, 0x41, 0xb4, 0xa8, 0x00, 0xa4, 0x96, 0x03, 0x07, 0xec, 0x05, 0x6f, + 0x05, 0x5a, 0x03, 0x4e, 0x0b, 0x40, 0x77, 0x01, 0xff, 0xa1, 0x3b, 0xe5, + 0xbe, 0xa8, 0x80, 0x32, 0xe9, 0xb6, 0xa8, 0x80, 0x29, 0xef, 0xc1, 0xa8, + 0x80, 0x20, 0xf5, 0xb8, 0xa8, 0x80, 0x17, 0x08, 0x22, 0xc1, 0x01, 0xff, + 0xec, 0xbc, 0xa8, 0x80, 0x09, 0xf2, 0xba, 0xa8, 0xc0, 0x00, 0xf2, 0xbb, + 0xa8, 0x40, 0xec, 0xbd, 0xa8, 0x40, 0xf5, 0xb9, 0xa8, 0x40, 0xef, 0xc2, + 0xa8, 0x40, 0xe9, 0xb7, 0xa8, 0x40, 0xe5, 0xbf, 0xa8, 0x40, 0xe1, 0xb5, + 0xa8, 0x00, 0xe9, 0xc0, 0xa8, 0x00, 0xf5, 0xc3, 0xa8, 0x40, 0x48, 0x3c, + 0x16, 0x80, 0xa8, 0x00, 0x4b, 0xd7, 0x23, 0xc5, 0xa8, 0x00, 0x02, 0x02, + 0x00, 0x01, 0xff, 0x44, 0xe5, 0x23, 0xc4, 0xa8, 0x00, 0x45, 0xec, 0x4b, + 0x81, 0xa8, 0x40, 0xe1, 0x82, 0xa8, 0x80, 0x91, 0x02, 0xa2, 0x84, 0x02, + 0xa3, 0xf7, 0x01, 0xa4, 0xde, 0x01, 0xe5, 0x8c, 0xa8, 0x80, 0xd4, 0x01, + 0xa7, 0xc7, 0x01, 0x42, 0x22, 0x00, 0xb2, 0xa8, 0x00, 0xe9, 0x84, 0xa8, + 0x80, 0xb7, 0x01, 0xaa, 0xaa, 0x01, 0xab, 0x9d, 0x01, 0xac, 0x90, 0x01, + 0x42, 0x6c, 0x00, 0xaa, 0xa8, 0x00, 0xae, 0x72, 0xef, 0x8f, 0xa8, 0x80, + 0x69, 0xb0, 0x5d, 0x42, 0x71, 0x00, 0xac, 0xa8, 0x00, 0xb3, 0x45, 0xb4, + 0x2c, 0xf5, 0x86, 0xa8, 0x80, 0x23, 0xb6, 0x06, 0x42, 0xbc, 0x22, 0xab, + 0xa8, 0x40, 0xe1, 0xae, 0xa8, 0x00, 0x07, 0x23, 0xc1, 0x01, 0xff, 0xec, + 0x8a, 0xa8, 0x80, 0x09, 0xf2, 0x88, 0xa8, 0xc0, 0x00, 0xf2, 0x89, 0xa8, + 0x40, 0xec, 0x8b, 0xa8, 0x40, 0xf5, 0x87, 0xa8, 0x40, 0xe1, 0xa1, 0xa8, + 0x00, 0x42, 0x22, 0x00, 0xa2, 0xa8, 0x00, 0xb4, 0x01, 0xff, 0xe1, 0x9c, + 0xa8, 0x00, 0x42, 0x22, 0x00, 0x9d, 0xa8, 0x40, 0xe1, 0xb1, 0xa8, 0x00, + 0x42, 0x22, 0x00, 0xaf, 0xa8, 0x00, 0x42, 0x40, 0x06, 0xb0, 0xa8, 0x40, + 0xe1, 0xa6, 0xa8, 0x00, 0x42, 0x22, 0x00, 0xa7, 0xa8, 0x40, 0xef, 0x90, + 0xa8, 0x40, 0xe1, 0xa5, 0xa8, 0x00, 0x42, 0x24, 0x02, 0x96, 0xa8, 0x00, + 0x42, 0x2a, 0x05, 0xa0, 0xa8, 0x00, 0x42, 0xbc, 0x22, 0x9b, 0xa8, 0x40, + 0xe1, 0xad, 0xa8, 0x00, 0x42, 0x74, 0x00, 0xb3, 0xa8, 0x40, 0xe1, 0x92, + 0xa8, 0x00, 0x42, 0x22, 0x00, 0x93, 0xa8, 0x40, 0xe1, 0x99, 0xa8, 0x00, + 0x42, 0x22, 0x00, 0x9a, 0xa8, 0x40, 0xe9, 0x85, 0xa8, 0x40, 0xe1, 0x94, + 0xa8, 0x00, 0x42, 0x22, 0x00, 0x95, 0xa8, 0x40, 0xe5, 0x8d, 0xa8, 0x40, + 0xe1, 0xa3, 0xa8, 0x00, 0xa4, 0x06, 0x42, 0x22, 0x00, 0xa4, 0xa8, 0x40, + 0xe1, 0x9e, 0xa8, 0x00, 0x42, 0x22, 0x00, 0x9f, 0xa8, 0x40, 0xe1, 0x97, + 0xa8, 0x00, 0x42, 0x22, 0x00, 0x98, 0xa8, 0x40, 0xe1, 0xa8, 0xa8, 0x00, + 0x42, 0x22, 0x00, 0xa9, 0xa8, 0x40, 0xe1, 0x83, 0xa8, 0x00, 0xe9, 0x8e, + 0xa8, 0x00, 0xf5, 0x91, 0xa8, 0x40, 0x44, 0x73, 0x20, 0xce, 0xa8, 0x00, + 0x05, 0xf0, 0x06, 0x06, 0x4b, 0x09, 0xa1, 0xcf, 0xa8, 0x40, 0x45, 0x12, + 0x0b, 0xd8, 0xa8, 0x00, 0xa6, 0x2e, 0x44, 0xcf, 0x2a, 0xd9, 0xa8, 0x00, + 0x43, 0x0e, 0x0b, 0xd1, 0xa8, 0x00, 0xb3, 0x14, 0xb4, 0x06, 0x44, 0x43, + 0x1e, 0xd0, 0xa8, 0x40, 0x44, 0x25, 0x01, 0xd3, 0xa8, 0x00, 0x42, 0x15, + 0x02, 0xd2, 0xa8, 0x40, 0x44, 0xc9, 0x1d, 0xd7, 0xa8, 0x00, 0x42, 0x01, + 0x26, 0xd6, 0xa8, 0x40, 0x43, 0xd2, 0x05, 0xd5, 0xa8, 0x00, 0x43, 0xf6, + 0x06, 0xd4, 0xa8, 0x40, 0x46, 0x36, 0xdb, 0xf0, 0xf6, 0x81, 0x06, 0x43, + 0x5d, 0x01, 0x44, 0x26, 0x40, 0x48, 0xe8, 0xc1, 0xe1, 0xf4, 0x41, 0x45, + 0xab, 0xe5, 0x6a, 0xf9, 0x01, 0x08, 0x17, 0x16, 0x01, 0xff, 0x06, 0x6d, + 0x15, 0x06, 0x54, 0x1f, 0x16, 0x7a, 0xf6, 0x41, 0x07, 0x3b, 0x01, 0x06, + 0x68, 0x08, 0x05, 0x78, 0xf6, 0x41, 0x5d, 0x13, 0x05, 0x77, 0xf6, 0x01, + 0x64, 0x27, 0x0a, 0x76, 0xf6, 0x41, 0x51, 0x0b, 0x50, 0x36, 0x08, 0x00, + 0x07, 0xec, 0x05, 0xf3, 0x01, 0xad, 0xb2, 0x01, 0x0c, 0x6d, 0x16, 0x51, + 0x0b, 0x40, 0x77, 0x01, 0xff, 0xe1, 0x23, 0x08, 0x80, 0x43, 0xe5, 0x1d, + 0x08, 0x00, 0xe9, 0x2a, 0x08, 0x00, 0x05, 0xd7, 0x02, 0x22, 0xef, 0x2b, + 0x08, 0x80, 0x12, 0xb3, 0x04, 0xf5, 0x27, 0x08, 0x40, 0x46, 0xd2, 0xd5, + 0x25, 0x08, 0x00, 0x44, 0x24, 0xeb, 0x2c, 0x08, 0x40, 0x49, 0xec, 0xc0, + 0x21, 0x08, 0xc0, 0x00, 0xe1, 0x1e, 0x08, 0x40, 0xe1, 0x22, 0x08, 0x80, + 0x0c, 0xe5, 0x1c, 0x08, 0x00, 0xe9, 0x29, 0x08, 0x00, 0xf5, 0x26, 0x08, + 0x40, 0xe1, 0x1f, 0x08, 0x40, 0xe1, 0x20, 0x08, 0x40, 0xa1, 0x3b, 0x43, + 0x79, 0xb2, 0x33, 0x08, 0x00, 0x4d, 0xd1, 0x85, 0x37, 0x08, 0x00, 0x47, + 0x77, 0xd3, 0x30, 0x08, 0x00, 0x45, 0xd9, 0x85, 0x39, 0x08, 0x00, 0xb3, + 0x15, 0x44, 0xc5, 0xf2, 0x3b, 0x08, 0x00, 0xba, 0x01, 0xff, 0x43, 0xe6, + 0xf3, 0x3a, 0x08, 0x00, 0x44, 0xa5, 0xf0, 0x38, 0x08, 0x40, 0x49, 0xae, + 0xb9, 0x35, 0x08, 0x00, 0x4b, 0x85, 0xa0, 0x3d, 0x08, 0x40, 0x45, 0x7d, + 0xe6, 0x31, 0x08, 0x00, 0xae, 0x0c, 0x46, 0x9e, 0xdf, 0x3c, 0x08, 0x00, + 0x45, 0x55, 0xeb, 0x34, 0x08, 0x40, 0x43, 0x55, 0x12, 0x32, 0x08, 0x00, + 0x44, 0x55, 0xf1, 0x3e, 0x08, 0x40, 0x04, 0xba, 0x00, 0x15, 0x0f, 0x79, + 0x0c, 0x01, 0xff, 0x4e, 0x67, 0x77, 0x1a, 0x08, 0x00, 0xe9, 0x28, 0x08, + 0x00, 0x47, 0xd1, 0xd5, 0x24, 0x08, 0x40, 0x46, 0xe5, 0x6b, 0x19, 0x08, + 0x00, 0x4e, 0x67, 0x77, 0x1b, 0x08, 0x00, 0x42, 0x9e, 0x01, 0x16, 0x08, + 0x80, 0x0c, 0x47, 0x77, 0xd3, 0x2d, 0x08, 0x00, 0x49, 0xcf, 0xbc, 0x18, + 0x08, 0x40, 0x45, 0xeb, 0xe1, 0x17, 0x08, 0x40, 0x44, 0xec, 0xe1, 0x00, + 0x08, 0x00, 0xa2, 0x72, 0x45, 0x38, 0x54, 0x03, 0x08, 0x00, 0x42, 0xf3, + 0x02, 0x10, 0x08, 0x00, 0x45, 0x91, 0xe6, 0x02, 0x08, 0x00, 0xa9, 0x52, + 0x44, 0xbd, 0xf0, 0x0a, 0x08, 0x00, 0x45, 0x03, 0xe8, 0x0b, 0x08, 0x00, + 0x43, 0xad, 0x90, 0x0c, 0x08, 0x00, 0x43, 0xdc, 0x22, 0x0d, 0x08, 0x00, + 0x43, 0x97, 0xf4, 0x12, 0x08, 0x00, 0x44, 0x3f, 0x54, 0x13, 0x08, 0x00, + 0xb3, 0x20, 0xb4, 0x0c, 0x43, 0x72, 0x77, 0x09, 0x08, 0x00, 0x43, 0x4b, + 0x0a, 0x06, 0x08, 0x40, 0x43, 0x1a, 0xc3, 0x15, 0x08, 0x00, 0x42, 0x52, + 0x00, 0x08, 0x08, 0x00, 0x46, 0xce, 0xdf, 0x11, 0x08, 0x40, 0x43, 0x90, + 0x00, 0x14, 0x08, 0x00, 0x46, 0xf2, 0xdc, 0x0e, 0x08, 0x40, 0xee, 0x0f, + 0x08, 0x00, 0xf4, 0x07, 0x08, 0x00, 0xf9, 0x04, 0x08, 0x40, 0x42, 0x80, + 0x12, 0x05, 0x08, 0x00, 0x42, 0x52, 0x00, 0x01, 0x08, 0x40, 0xb4, 0x06, + 0x4a, 0xc5, 0x93, 0xe1, 0xfa, 0x41, 0x47, 0x88, 0xcd, 0xc2, 0xf9, 0x01, + 0x43, 0x88, 0x0d, 0x13, 0x26, 0x40, 0x43, 0x28, 0x13, 0xf7, 0xf9, 0x01, + 0x44, 0x6c, 0x5e, 0xba, 0xf9, 0x41, 0xa1, 0x81, 0x21, 0xa5, 0xe4, 0x1a, + 0x49, 0xa5, 0xb9, 0x8f, 0xf9, 0x01, 0xa9, 0xd4, 0x0a, 0xaf, 0x81, 0x07, + 0xb5, 0x01, 0xff, 0x48, 0x28, 0xc4, 0xbd, 0x20, 0x00, 0x4c, 0x37, 0x8f, + 0xc9, 0xf3, 0x01, 0x4a, 0x95, 0xac, 0xf4, 0x29, 0x00, 0x03, 0xb6, 0xd1, + 0xf3, 0x04, 0xae, 0x2f, 0x48, 0x67, 0x80, 0xa8, 0x20, 0x00, 0x1a, 0x20, + 0x22, 0x01, 0xff, 0x48, 0x20, 0xc4, 0xf6, 0x2b, 0x00, 0x46, 0x22, 0xc4, + 0xf4, 0x2b, 0x00, 0x48, 0x10, 0xca, 0xf5, 0x2b, 0x00, 0x48, 0xc0, 0xca, + 0xf7, 0x2b, 0x00, 0x49, 0xf9, 0xbf, 0xf8, 0x2b, 0x00, 0x49, 0x07, 0xc1, + 0xf3, 0x2b, 0x40, 0x03, 0x52, 0x03, 0x0f, 0xae, 0x01, 0xff, 0x42, 0x33, + 0x00, 0xc3, 0xf3, 0x01, 0x53, 0x62, 0x4a, 0xbd, 0xf3, 0x41, 0x4d, 0xbd, + 0x80, 0xee, 0x16, 0x00, 0x4f, 0x22, 0x6b, 0xf0, 0x16, 0x00, 0x51, 0x85, + 0x59, 0xed, 0x16, 0x00, 0x07, 0xec, 0x05, 0x12, 0x54, 0x60, 0x44, 0xec, + 0x16, 0x00, 0x52, 0x63, 0x55, 0xeb, 0x16, 0x00, 0x4f, 0xfb, 0x73, 0xef, + 0x16, 0x40, 0xa1, 0xec, 0x03, 0x58, 0x4e, 0x27, 0xd2, 0x16, 0x00, 0xe3, + 0xcd, 0x16, 0x80, 0xc8, 0x03, 0xe4, 0xd1, 0x16, 0x80, 0xab, 0x03, 0xe5, + 0xc2, 0x16, 0x80, 0x8d, 0x03, 0xa6, 0xe1, 0x02, 0xe7, 0xb5, 0x16, 0x80, + 0xc8, 0x02, 0x02, 0x22, 0x00, 0xb7, 0x02, 0xa9, 0x8f, 0x02, 0x47, 0x3c, + 0xd2, 0xc3, 0x16, 0x00, 0xeb, 0xf1, 0x16, 0x80, 0xf4, 0x01, 0xac, 0xc8, + 0x01, 0x4c, 0xcb, 0x91, 0xd7, 0x16, 0x00, 0x51, 0x71, 0x5c, 0xbe, 0x16, + 0x00, 0xef, 0xae, 0x16, 0x80, 0x98, 0x01, 0x4f, 0xd0, 0x71, 0xc8, 0x16, + 0x00, 0xf1, 0xe9, 0x16, 0x00, 0x50, 0x36, 0x66, 0xb1, 0x16, 0x00, 0xb3, + 0x34, 0xb4, 0x26, 0x49, 0xad, 0xc0, 0xa2, 0x16, 0x00, 0xf6, 0xa1, 0x16, + 0x00, 0xf7, 0xa5, 0x16, 0x80, 0x11, 0xf8, 0xea, 0x16, 0x00, 0xf9, 0xa4, + 0x16, 0x80, 0x04, 0xfa, 0xce, 0x16, 0x40, 0xf2, 0xa3, 0x16, 0x40, 0x4b, + 0x63, 0xa4, 0xb9, 0x16, 0x40, 0x53, 0x03, 0x4a, 0xa6, 0x16, 0x00, 0x4e, + 0x19, 0x79, 0xcf, 0x16, 0x40, 0xe8, 0xf2, 0x16, 0x80, 0x12, 0x56, 0x71, + 0x34, 0xcb, 0x16, 0x00, 0x47, 0x57, 0xd4, 0xca, 0x16, 0x00, 0x43, 0xf9, + 0x0a, 0xe5, 0x16, 0x40, 0x09, 0x71, 0xbd, 0x01, 0xff, 0x44, 0x17, 0x00, + 0xc6, 0x16, 0x00, 0x49, 0x5d, 0x27, 0xd3, 0x16, 0x00, 0x48, 0x88, 0xc6, + 0xbd, 0x16, 0x00, 0x46, 0xee, 0xdd, 0xd9, 0x16, 0x00, 0x46, 0x7c, 0x5c, + 0xbf, 0x16, 0x00, 0x45, 0xd6, 0x7b, 0xad, 0x16, 0x00, 0x45, 0x82, 0x34, + 0xcc, 0x16, 0x00, 0x45, 0x22, 0x79, 0xd0, 0x16, 0x00, 0x42, 0x05, 0x22, + 0xe7, 0x16, 0x40, 0xe5, 0xaf, 0x16, 0x00, 0xee, 0xb0, 0x16, 0x00, 0xef, + 0xf3, 0x16, 0x00, 0x45, 0xd9, 0xe9, 0xd5, 0x16, 0x00, 0x43, 0xf2, 0x01, + 0xa9, 0x16, 0x00, 0x4e, 0xd1, 0x7c, 0xdf, 0x16, 0x40, 0x51, 0x75, 0x58, + 0xda, 0x16, 0x00, 0x0b, 0x77, 0x34, 0x01, 0xff, 0x45, 0x5c, 0xe4, 0xc5, + 0x16, 0x00, 0x48, 0x88, 0xc6, 0xbc, 0x16, 0x00, 0x46, 0xee, 0xdd, 0xd8, + 0x16, 0x00, 0x45, 0xd6, 0x7b, 0xac, 0x16, 0x00, 0x42, 0x05, 0x22, 0xe6, + 0x16, 0x40, 0x03, 0xa9, 0x45, 0x01, 0xff, 0x42, 0x44, 0x00, 0xb4, 0x16, + 0x00, 0xe1, 0xb2, 0x16, 0x40, 0x4b, 0x08, 0x9a, 0xe8, 0x16, 0x00, 0x42, + 0x1d, 0x01, 0xdd, 0x16, 0x80, 0x12, 0x42, 0x0c, 0x00, 0xe1, 0x16, 0x00, + 0x4c, 0x07, 0x95, 0xc1, 0x16, 0x00, 0x47, 0x6e, 0xd7, 0xc7, 0x16, 0x40, + 0x43, 0x1a, 0x79, 0xdc, 0x16, 0x40, 0x45, 0xd3, 0xe5, 0xbb, 0x16, 0x00, + 0x46, 0x0e, 0xdc, 0xba, 0x16, 0x40, 0x42, 0x17, 0x00, 0xb8, 0x16, 0x00, + 0xa5, 0x01, 0xff, 0x49, 0xcc, 0xb6, 0xb7, 0x16, 0x00, 0xf2, 0xc4, 0x16, + 0x40, 0x4d, 0x84, 0x82, 0xa0, 0x16, 0x00, 0x0d, 0xbf, 0x87, 0x01, 0xff, + 0xa1, 0x12, 0x42, 0x4e, 0x00, 0xf6, 0x16, 0x00, 0x42, 0x5f, 0x03, 0xf5, + 0x16, 0x00, 0x42, 0xa4, 0x0d, 0xf4, 0x16, 0x40, 0xe3, 0xf7, 0x16, 0x00, + 0x43, 0x7a, 0x1f, 0xf8, 0x16, 0x40, 0x42, 0x17, 0x00, 0xe0, 0x16, 0x00, + 0x49, 0xd2, 0xb9, 0xd6, 0x16, 0x00, 0x42, 0x1d, 0x01, 0xb6, 0x16, 0x00, + 0x42, 0x53, 0x00, 0xa7, 0x16, 0x40, 0x4b, 0xea, 0x98, 0xde, 0x16, 0x00, + 0x06, 0x0f, 0x80, 0x01, 0xff, 0xec, 0xdb, 0x16, 0x00, 0xee, 0xc0, 0x16, + 0x00, 0xf0, 0xd4, 0x16, 0x40, 0x43, 0xbe, 0x6b, 0xe3, 0x16, 0x00, 0xa5, + 0x06, 0x46, 0x36, 0xe1, 0xe2, 0x16, 0x40, 0x43, 0xbe, 0x6b, 0xe4, 0x16, + 0x00, 0xee, 0xb3, 0x16, 0x40, 0x43, 0xc1, 0x1b, 0xaa, 0x16, 0x00, 0x43, + 0x7a, 0x1f, 0xab, 0x16, 0x00, 0x4a, 0xef, 0xac, 0xc9, 0x16, 0x00, 0x46, + 0x84, 0xde, 0xa8, 0x16, 0x40, 0x06, 0xef, 0x06, 0xb2, 0x01, 0x09, 0x1e, + 0x5a, 0x91, 0x01, 0x07, 0xff, 0x39, 0x01, 0xff, 0x05, 0x12, 0x0b, 0x7e, + 0xa6, 0x5f, 0x04, 0xcf, 0x2a, 0x4f, 0x4b, 0x6d, 0x11, 0x72, 0x0e, 0x01, + 0xb3, 0x26, 0xb4, 0x01, 0xff, 0x42, 0x92, 0x01, 0x69, 0x0e, 0x01, 0xa8, + 0x0f, 0xb7, 0x01, 0xff, 0x44, 0xcb, 0x1d, 0x6a, 0x0e, 0x01, 0x49, 0xbe, + 0x1d, 0x73, 0x0e, 0x41, 0x44, 0x7b, 0x11, 0x6b, 0x0e, 0x01, 0x4b, 0xfb, + 0x17, 0x74, 0x0e, 0x41, 0x04, 0xc9, 0x1d, 0x11, 0x02, 0x01, 0x26, 0x01, + 0xff, 0x48, 0x70, 0x11, 0x77, 0x0e, 0x01, 0x42, 0x7d, 0x11, 0x6e, 0x0e, + 0x41, 0x48, 0x70, 0x11, 0x78, 0x0e, 0x01, 0x42, 0x7d, 0x11, 0x6f, 0x0e, + 0x41, 0x48, 0x70, 0x11, 0x7a, 0x0e, 0x01, 0x42, 0x7d, 0x11, 0x71, 0x0e, + 0x41, 0xa9, 0x0f, 0xaf, 0x01, 0xff, 0x43, 0x7c, 0x11, 0x6c, 0x0e, 0x01, + 0x4a, 0xf3, 0xb2, 0x75, 0x0e, 0x41, 0x43, 0x52, 0x4d, 0x6d, 0x0e, 0x01, + 0x4a, 0x82, 0x39, 0x76, 0x0e, 0x41, 0x48, 0x70, 0x11, 0x79, 0x0e, 0x01, + 0xf9, 0x70, 0x0e, 0x41, 0x04, 0x0e, 0x0b, 0x06, 0x4a, 0x53, 0xb2, 0x7e, + 0x0e, 0x41, 0x44, 0x22, 0x00, 0x7b, 0x0e, 0x01, 0x47, 0x2a, 0x01, 0x7c, + 0x0e, 0x01, 0x45, 0xee, 0x74, 0x7d, 0x0e, 0x41, 0x45, 0x12, 0x0b, 0x67, + 0x0e, 0x01, 0xa6, 0x29, 0x44, 0xcf, 0x2a, 0x68, 0x0e, 0x01, 0x43, 0x0e, + 0x0b, 0x60, 0x0e, 0x01, 0xb3, 0x0f, 0xb4, 0x01, 0xff, 0x44, 0x25, 0x01, + 0x62, 0x0e, 0x01, 0x42, 0x15, 0x02, 0x61, 0x0e, 0x41, 0x44, 0xc9, 0x1d, + 0x66, 0x0e, 0x01, 0x42, 0x01, 0x26, 0x65, 0x0e, 0x41, 0x43, 0xd2, 0x05, + 0x64, 0x0e, 0x01, 0x43, 0xf6, 0x06, 0x63, 0x0e, 0x41, 0x52, 0x41, 0x50, + 0x60, 0xf3, 0x01, 0x48, 0x48, 0xc4, 0x16, 0xf9, 0x01, 0x42, 0x36, 0x01, + 0xa8, 0xfa, 0x81, 0xb6, 0x03, 0x02, 0x60, 0x07, 0x8c, 0x03, 0x04, 0x41, + 0x18, 0x82, 0x01, 0xaf, 0x74, 0x42, 0x46, 0x03, 0x39, 0xf3, 0x81, 0x67, + 0x06, 0x9f, 0x21, 0x45, 0x03, 0x42, 0x0b, 0x06, 0x45, 0x45, 0xec, 0xa3, + 0xf6, 0x41, 0x80, 0x2d, 0x0e, 0x2f, 0x77, 0x01, 0xff, 0x43, 0x07, 0xf4, + 0x65, 0xf2, 0x01, 0x42, 0x81, 0x16, 0x60, 0xf2, 0x01, 0x42, 0xc7, 0x15, + 0x61, 0xf2, 0x01, 0x02, 0xa4, 0x02, 0x06, 0x42, 0xe2, 0x0c, 0x63, 0xf2, + 0x41, 0x42, 0x3c, 0x01, 0x62, 0xf2, 0x01, 0x46, 0xd0, 0xe0, 0x64, 0xf2, + 0x41, 0x47, 0xf8, 0xd4, 0xcd, 0xf4, 0x01, 0x46, 0x64, 0xe0, 0x8b, 0xf7, + 0x41, 0x49, 0x14, 0xb7, 0x3a, 0x21, 0x00, 0x53, 0xa5, 0x21, 0x67, 0x27, + 0x00, 0x58, 0xfe, 0x28, 0x65, 0x27, 0x00, 0x5d, 0xf9, 0x15, 0xcd, 0x2b, + 0x00, 0x57, 0xf0, 0x31, 0xcf, 0x2b, 0x40, 0x43, 0xee, 0x05, 0xf5, 0xf3, + 0x41, 0x44, 0x3d, 0x0d, 0x13, 0xf4, 0x01, 0x4b, 0x19, 0xa3, 0xdc, 0xfa, + 0x41, 0x47, 0x10, 0xcf, 0x9a, 0x01, 0x01, 0x4e, 0x4f, 0x76, 0x9b, 0x01, + 0x01, 0xa4, 0xe4, 0x01, 0x08, 0x20, 0x5d, 0x33, 0x4e, 0x65, 0x7b, 0x97, + 0x01, 0x01, 0xb3, 0x06, 0x4a, 0xc0, 0x9f, 0x91, 0x01, 0x41, 0xa5, 0x06, + 0x4b, 0x62, 0x9d, 0x95, 0x01, 0x41, 0x4b, 0xbf, 0x9f, 0x92, 0x01, 0x01, + 0x4d, 0x04, 0x89, 0x98, 0x01, 0x01, 0x02, 0xda, 0x06, 0x01, 0xff, 0x48, + 0x60, 0xc3, 0x90, 0x01, 0x01, 0x48, 0x47, 0x4a, 0x93, 0x01, 0x41, 0xa5, + 0x9e, 0x01, 0xa6, 0x68, 0x44, 0xcf, 0x2a, 0x68, 0x21, 0x00, 0x43, 0x0e, + 0x0b, 0x60, 0x21, 0x80, 0x3e, 0x54, 0x3c, 0x45, 0x83, 0x21, 0x00, 0xb3, + 0x23, 0xb4, 0x01, 0xff, 0x42, 0x92, 0x01, 0x69, 0x21, 0x80, 0x13, 0x44, + 0x25, 0x01, 0x62, 0x21, 0x00, 0xb7, 0x01, 0xff, 0x44, 0xe7, 0x2b, 0x6b, + 0x21, 0x00, 0xef, 0x61, 0x21, 0x40, 0x49, 0x3f, 0x5e, 0x82, 0x21, 0x40, + 0x44, 0xc9, 0x1d, 0x66, 0x21, 0x00, 0x42, 0x01, 0x26, 0x65, 0x21, 0xc0, + 0x00, 0x4a, 0xdd, 0xa5, 0x85, 0x21, 0x40, 0x80, 0x01, 0xff, 0x47, 0x71, + 0x11, 0x6d, 0x21, 0x80, 0x0d, 0x48, 0x40, 0x5e, 0x6f, 0x21, 0xc0, 0x00, + 0x44, 0xbd, 0xec, 0x80, 0x21, 0x40, 0x49, 0x3f, 0x5e, 0x88, 0x21, 0x40, + 0xa9, 0x06, 0x43, 0xf6, 0x06, 0x63, 0x21, 0x40, 0x43, 0x52, 0x4d, 0x6c, + 0x21, 0x80, 0x16, 0x42, 0x32, 0x00, 0x64, 0x21, 0xc0, 0x00, 0x80, 0x01, + 0xff, 0x47, 0x71, 0x11, 0x6e, 0x21, 0x00, 0x48, 0x40, 0x5e, 0x81, 0x21, + 0x40, 0x80, 0x01, 0xff, 0x4a, 0x7f, 0xa9, 0x86, 0x21, 0x00, 0x48, 0x40, + 0x5e, 0x87, 0x21, 0x40, 0x44, 0xc9, 0x00, 0x67, 0x21, 0x00, 0x45, 0xb4, + 0x6f, 0x6a, 0x21, 0x40, 0x4c, 0x8f, 0x8e, 0x96, 0x01, 0x01, 0x53, 0x3c, + 0x4a, 0x94, 0x01, 0x01, 0x4d, 0xa0, 0x89, 0x99, 0x01, 0x41, 0x49, 0x71, + 0xb4, 0xfb, 0xf9, 0x01, 0xa5, 0x06, 0x59, 0x4d, 0x24, 0x23, 0xf9, 0x41, + 0x4e, 0xa3, 0x76, 0xde, 0xf5, 0x01, 0x02, 0x18, 0x00, 0x01, 0xff, 0x47, + 0xbb, 0x64, 0xa2, 0xf3, 0x01, 0x45, 0x00, 0xeb, 0xfc, 0xf6, 0x41, 0x42, + 0xed, 0x05, 0x80, 0xf6, 0x41, 0x47, 0x36, 0x4c, 0xfc, 0xfd, 0x00, 0x44, + 0x01, 0x86, 0x80, 0xf3, 0x81, 0xb3, 0x0f, 0x03, 0x0e, 0x08, 0xa2, 0x0f, + 0x43, 0xd5, 0x04, 0x46, 0xf9, 0x01, 0x03, 0xca, 0x00, 0x4a, 0x42, 0x1d, + 0x01, 0x8d, 0xf4, 0x81, 0x11, 0x17, 0x38, 0x31, 0x01, 0xff, 0x50, 0x26, + 0x63, 0x2b, 0x29, 0x00, 0x50, 0x7c, 0x40, 0x30, 0x29, 0x40, 0x80, 0x0c, + 0x49, 0x19, 0xb8, 0x90, 0xfa, 0x01, 0x48, 0x10, 0xc7, 0x6d, 0xf5, 0x41, + 0x45, 0x5c, 0x00, 0xda, 0x02, 0x00, 0x44, 0x51, 0xef, 0xdf, 0xf6, 0x01, + 0x48, 0xf8, 0x0c, 0x57, 0x22, 0x00, 0x4b, 0x78, 0x9d, 0x56, 0x22, 0x00, + 0x48, 0x7e, 0x1d, 0x18, 0x22, 0x00, 0x45, 0x9c, 0x01, 0x30, 0x2e, 0x40, + 0x80, 0xc6, 0x08, 0x8d, 0xe3, 0x06, 0x55, 0x99, 0x3b, 0x3d, 0x2a, 0x00, + 0x06, 0xa9, 0x01, 0x01, 0xff, 0x45, 0xce, 0x00, 0x92, 0x21, 0x80, 0xba, + 0x04, 0xa2, 0x9b, 0x04, 0x50, 0x86, 0x61, 0x3e, 0xf8, 0x01, 0xa4, 0xdb, + 0x03, 0xa6, 0xcc, 0x03, 0xa8, 0xcb, 0x02, 0x57, 0x6c, 0x2f, 0xa7, 0xf8, + 0x01, 0x51, 0xf9, 0x5c, 0xfe, 0x21, 0x00, 0xb0, 0xb0, 0x02, 0x4f, 0x0c, + 0x72, 0x46, 0x2b, 0x00, 0xb2, 0x9b, 0x02, 0xb3, 0x81, 0x02, 0xb4, 0x1f, + 0xb7, 0x01, 0xff, 0x49, 0x72, 0xb6, 0x9d, 0x21, 0x00, 0x4a, 0x4a, 0x10, + 0xe8, 0x21, 0xc0, 0x00, 0x80, 0x01, 0xff, 0x49, 0x1e, 0xb9, 0xf0, 0x21, + 0x00, 0x59, 0xc7, 0x1e, 0x96, 0xf8, 0x41, 0x55, 0x52, 0x3d, 0xa3, 0xf8, + 0x01, 0x02, 0x0d, 0x00, 0x51, 0x02, 0x15, 0x02, 0x01, 0xff, 0x4d, 0x85, + 0x7f, 0xa0, 0x21, 0x00, 0x08, 0x09, 0x02, 0x01, 0xff, 0x06, 0xce, 0x00, + 0x06, 0x51, 0x91, 0x5e, 0x10, 0x29, 0x40, 0x48, 0x57, 0xb4, 0x05, 0x29, + 0x00, 0x05, 0x51, 0x00, 0x01, 0xff, 0x56, 0x95, 0x33, 0x01, 0x29, 0x00, + 0xb4, 0x06, 0x4f, 0x9c, 0x33, 0x00, 0x29, 0x40, 0x43, 0x90, 0x17, 0x16, + 0x29, 0x80, 0x06, 0x52, 0x2f, 0x06, 0xee, 0x2b, 0x40, 0x06, 0x50, 0x00, + 0x01, 0xff, 0x56, 0x95, 0x33, 0x18, 0x29, 0x00, 0x4f, 0x9c, 0x33, 0x17, + 0x29, 0x40, 0x05, 0x04, 0x02, 0x11, 0x04, 0x6d, 0x1d, 0x01, 0xff, 0x45, + 0xce, 0x00, 0xdb, 0x21, 0x00, 0x4a, 0x98, 0x5e, 0x0f, 0x29, 0x40, 0x4a, + 0xe0, 0x01, 0x92, 0xf8, 0x01, 0x08, 0x09, 0x02, 0x01, 0xff, 0x45, 0xce, + 0x00, 0x62, 0x2b, 0x80, 0x0c, 0x4c, 0xc3, 0x8d, 0x6c, 0x2b, 0x00, 0x4d, + 0x64, 0x87, 0x86, 0x2b, 0x40, 0x80, 0x01, 0xff, 0x64, 0x97, 0x09, 0x82, + 0x2b, 0x00, 0x46, 0xd1, 0x14, 0x72, 0x2b, 0x00, 0x05, 0x51, 0x00, 0x01, + 0xff, 0x4a, 0x53, 0xa8, 0x2a, 0xf8, 0x01, 0x07, 0x3b, 0x01, 0x28, 0x4b, + 0x6b, 0x68, 0x2e, 0xf8, 0x01, 0x09, 0xaf, 0xbb, 0x12, 0x4c, 0xef, 0x91, + 0x26, 0xf8, 0x01, 0x4c, 0x5b, 0x92, 0x22, 0xf8, 0x01, 0x50, 0x66, 0x68, + 0x32, 0xf8, 0x41, 0x49, 0xa5, 0x01, 0xa7, 0x2b, 0x00, 0x47, 0x50, 0x02, + 0xa5, 0x2b, 0x40, 0x51, 0x47, 0x05, 0x7c, 0x2b, 0x00, 0x4f, 0x9c, 0x33, + 0x7c, 0x2b, 0x40, 0x4f, 0xe7, 0x66, 0x52, 0xf8, 0x01, 0x02, 0x7c, 0x00, + 0x01, 0xff, 0x4a, 0xe9, 0x93, 0x3a, 0xf8, 0x01, 0x4b, 0x80, 0x7c, 0xdd, + 0x21, 0x40, 0x57, 0x10, 0x2f, 0xa5, 0xf8, 0x01, 0x45, 0x9d, 0xae, 0x6e, + 0xf6, 0x41, 0x4c, 0x65, 0x87, 0xc9, 0x21, 0x00, 0x4b, 0x84, 0xa4, 0xf8, + 0xfa, 0x41, 0xa1, 0x11, 0x05, 0x6e, 0x15, 0x01, 0xff, 0x45, 0xce, 0x00, + 0x46, 0xf8, 0x01, 0x50, 0x86, 0x61, 0x42, 0xf8, 0x41, 0x42, 0x1b, 0x00, + 0xf1, 0xfa, 0x01, 0x06, 0xcb, 0x02, 0x01, 0xff, 0x56, 0xe7, 0x35, 0xcc, + 0x21, 0x00, 0x0a, 0x98, 0x05, 0x01, 0xff, 0x04, 0xa5, 0x01, 0x31, 0x02, + 0x50, 0x02, 0x01, 0xff, 0x80, 0x06, 0x45, 0xa9, 0x01, 0xc0, 0x21, 0x40, + 0x06, 0x5c, 0x00, 0x0c, 0x48, 0x57, 0xb4, 0x5b, 0x29, 0x00, 0x46, 0xd1, + 0x14, 0x53, 0x29, 0x40, 0xac, 0x06, 0x61, 0x85, 0x05, 0x64, 0x29, 0x40, + 0x5d, 0xa2, 0x15, 0x68, 0x29, 0x00, 0x48, 0x38, 0x6b, 0x6c, 0x29, 0x40, + 0x80, 0x06, 0x45, 0xa9, 0x01, 0xc1, 0x21, 0x40, 0x66, 0x41, 0x06, 0x69, + 0x29, 0x00, 0x4f, 0x31, 0x6b, 0x6d, 0x29, 0x00, 0x48, 0x57, 0xb4, 0x5f, + 0x29, 0x00, 0x46, 0xd1, 0x14, 0x57, 0x29, 0x40, 0x50, 0xfd, 0x59, 0x36, + 0xf8, 0x01, 0x60, 0x34, 0x10, 0xab, 0xf8, 0x41, 0x4b, 0xc4, 0x8d, 0xe2, + 0x21, 0x00, 0x06, 0x3c, 0x01, 0x01, 0xff, 0x45, 0xce, 0x00, 0xd2, 0x21, + 0x80, 0x06, 0x4a, 0x98, 0x5e, 0x0d, 0x29, 0x40, 0x80, 0x06, 0x45, 0x8e, + 0x17, 0x1c, 0x29, 0x40, 0x48, 0x57, 0xb4, 0x07, 0x29, 0x00, 0x05, 0x51, + 0x00, 0x01, 0xff, 0x46, 0x52, 0x05, 0xcf, 0x21, 0x00, 0x4f, 0x9c, 0x33, + 0x03, 0x29, 0x40, 0x5f, 0xb3, 0x10, 0xa9, 0xf8, 0x01, 0x05, 0x0d, 0x03, + 0x06, 0x58, 0x66, 0x2a, 0xa1, 0xf8, 0x41, 0x45, 0xce, 0x00, 0x95, 0x2b, + 0x00, 0x53, 0xd3, 0x48, 0x8a, 0x2b, 0x40, 0x80, 0x06, 0x45, 0x8e, 0x17, + 0x1a, 0x29, 0x40, 0xa1, 0xdf, 0x01, 0x05, 0xaa, 0x05, 0xc7, 0x01, 0x54, + 0xd8, 0x44, 0xc4, 0x21, 0x00, 0xb4, 0x99, 0x01, 0x05, 0x51, 0x00, 0x01, + 0xff, 0x50, 0xa6, 0x61, 0xb4, 0x21, 0x00, 0x02, 0x3b, 0x01, 0x7e, 0x55, + 0xd5, 0x01, 0x16, 0xf8, 0x01, 0x44, 0xac, 0x0e, 0xaa, 0x21, 0x00, 0xac, + 0x5b, 0x59, 0xe3, 0x24, 0x06, 0xf8, 0x01, 0x4c, 0xd3, 0x92, 0x9a, 0xf8, + 0x01, 0x4a, 0x83, 0xaf, 0x45, 0x29, 0x00, 0xb3, 0x31, 0xb4, 0x06, 0x4f, + 0x9c, 0x33, 0xf8, 0x21, 0x40, 0x43, 0x90, 0x17, 0xa3, 0x21, 0x80, 0x11, + 0x03, 0x4a, 0x0c, 0x01, 0xff, 0x49, 0xa5, 0x01, 0x0e, 0x2b, 0x00, 0x47, + 0x50, 0x02, 0x0f, 0x2b, 0x40, 0x06, 0x50, 0x00, 0x01, 0xff, 0x56, 0x95, + 0x33, 0x15, 0x29, 0x00, 0x4f, 0x9c, 0x33, 0x14, 0x29, 0x40, 0x05, 0x5e, + 0x07, 0x06, 0x45, 0x53, 0x05, 0x9b, 0x21, 0x40, 0x55, 0xd5, 0x01, 0x12, + 0xf8, 0x01, 0x52, 0x2e, 0x06, 0x02, 0xf8, 0x41, 0x57, 0x77, 0x29, 0x0a, + 0xf8, 0x01, 0xaf, 0x01, 0xff, 0x42, 0x1f, 0x00, 0xac, 0x21, 0x00, 0x48, + 0x69, 0xad, 0xb2, 0xf8, 0x41, 0x49, 0x14, 0xc0, 0x11, 0x29, 0x00, 0x54, + 0x97, 0x33, 0xfb, 0x21, 0x40, 0x07, 0x16, 0x2b, 0x11, 0x03, 0xd2, 0x14, + 0x01, 0xff, 0x42, 0x17, 0x00, 0xe5, 0x21, 0x00, 0x4c, 0x59, 0x57, 0x1e, + 0x29, 0x40, 0x4c, 0x87, 0x00, 0x43, 0x2b, 0x00, 0x48, 0x38, 0xcb, 0x44, + 0x2b, 0x00, 0xf8, 0x47, 0x29, 0x40, 0x43, 0x16, 0x00, 0xa6, 0x21, 0x80, + 0x06, 0x4f, 0x34, 0x0c, 0xc1, 0xf8, 0x41, 0x51, 0x54, 0x57, 0x20, 0x29, + 0x40, 0x05, 0x5d, 0x00, 0x06, 0x63, 0xfb, 0x0a, 0xb6, 0xfb, 0x41, 0x4f, + 0xaa, 0x6a, 0x75, 0x29, 0x00, 0x08, 0x66, 0x72, 0x0c, 0x55, 0x24, 0x3e, + 0x42, 0x29, 0x00, 0x4e, 0x78, 0x3e, 0x74, 0x29, 0x40, 0x4f, 0xaa, 0x6a, + 0x48, 0x2b, 0x00, 0x4e, 0x78, 0x3e, 0x4c, 0x2b, 0x40, 0x07, 0x6f, 0x2e, + 0x9c, 0x01, 0x5b, 0x85, 0x1b, 0xe5, 0x26, 0x00, 0x09, 0x9c, 0x01, 0x2b, + 0xb3, 0x1d, 0x08, 0xa8, 0xcb, 0x01, 0xff, 0x49, 0x58, 0xb8, 0x2b, 0x20, + 0x00, 0x47, 0x5f, 0x03, 0x67, 0x20, 0x00, 0x44, 0xb9, 0x00, 0x0f, 0x20, + 0x00, 0x48, 0xb0, 0xc9, 0x2e, 0x20, 0x40, 0x5c, 0xde, 0x17, 0xa9, 0x27, + 0x00, 0x57, 0xf9, 0x2e, 0x38, 0x29, 0x40, 0xa1, 0x59, 0x54, 0x68, 0x41, + 0xfd, 0x29, 0x00, 0xa4, 0x45, 0x4b, 0xaa, 0x9b, 0x7a, 0xcc, 0x01, 0x47, + 0x55, 0xd1, 0x01, 0xcc, 0x01, 0x50, 0xf6, 0x64, 0x0e, 0xf5, 0x01, 0xb2, + 0x0c, 0x4c, 0x73, 0x95, 0x03, 0xcc, 0x01, 0x44, 0x75, 0xc7, 0x9f, 0xcc, + 0x41, 0x49, 0x9a, 0xb5, 0x99, 0xcc, 0x01, 0x44, 0xc5, 0xac, 0x67, 0xcc, + 0x01, 0xaf, 0x01, 0xff, 0x05, 0x66, 0x09, 0x06, 0x50, 0xb6, 0x64, 0xa3, + 0xcc, 0x41, 0x47, 0x9c, 0xcf, 0xa1, 0xcc, 0x01, 0x44, 0x11, 0x21, 0x58, + 0xcc, 0x41, 0x44, 0x9d, 0xf0, 0x0f, 0xcc, 0x01, 0x5a, 0xb8, 0x21, 0xbb, + 0x00, 0x40, 0x4c, 0x3f, 0x0f, 0x2a, 0x23, 0x00, 0x4a, 0x03, 0xb2, 0x62, + 0xcc, 0x41, 0x56, 0xe5, 0x32, 0x8d, 0x05, 0x00, 0x48, 0xf0, 0xc3, 0x49, + 0xcc, 0x01, 0x03, 0x2a, 0x5b, 0x20, 0xb3, 0x01, 0xff, 0x0f, 0x77, 0x2e, + 0x0d, 0x4a, 0x2f, 0xb3, 0xd5, 0x0f, 0xc0, 0x00, 0x4a, 0x26, 0x59, 0xd7, + 0x0f, 0x40, 0x4c, 0x7b, 0x8d, 0x76, 0xcc, 0x01, 0x4a, 0x3c, 0x29, 0x72, + 0xcc, 0x41, 0xe8, 0x93, 0xcc, 0x81, 0x04, 0xf4, 0x1c, 0xf9, 0x41, 0x50, + 0x36, 0x29, 0x95, 0xcc, 0x41, 0xa1, 0x93, 0x05, 0x06, 0x0c, 0x03, 0x82, + 0x05, 0xa3, 0xd7, 0x04, 0x02, 0x3b, 0x01, 0xa7, 0x04, 0xa6, 0x90, 0x04, + 0x02, 0x22, 0x00, 0xa9, 0x03, 0x14, 0xc0, 0x43, 0x98, 0x03, 0x56, 0x8f, + 0x35, 0x1d, 0x2e, 0x00, 0x60, 0xd4, 0x0f, 0xca, 0x22, 0x00, 0xaf, 0xed, + 0x02, 0x4b, 0xd8, 0x21, 0x29, 0x00, 0x80, 0xd0, 0x02, 0x57, 0x80, 0x30, + 0x0d, 0x2e, 0x00, 0xb3, 0xb4, 0x01, 0xb4, 0x4b, 0x09, 0x32, 0x00, 0x33, + 0xb7, 0x01, 0xff, 0x05, 0xae, 0x02, 0x06, 0x4b, 0xf4, 0x96, 0xd9, 0x29, + 0x40, 0xa3, 0x18, 0x52, 0x6c, 0x27, 0x17, 0x30, 0x00, 0x4b, 0xd8, 0x21, + 0x86, 0x29, 0x00, 0x4e, 0xc8, 0x26, 0x1b, 0x30, 0x00, 0x56, 0x54, 0x09, + 0x19, 0x30, 0x40, 0x4d, 0x35, 0x69, 0x0f, 0x30, 0x00, 0x4c, 0x73, 0x0b, + 0x84, 0x29, 0x40, 0xa2, 0x06, 0x4d, 0x00, 0x30, 0x06, 0xcc, 0x41, 0x4d, + 0x96, 0x80, 0x21, 0x2e, 0x00, 0x47, 0x65, 0xd4, 0xb9, 0x23, 0x40, 0x43, + 0x0e, 0x03, 0xa2, 0x22, 0x00, 0xa8, 0x27, 0x55, 0x55, 0x09, 0x15, 0x30, + 0x00, 0xb2, 0x01, 0xff, 0x53, 0x15, 0x48, 0x0a, 0x2e, 0x00, 0x04, 0x1b, + 0x01, 0x01, 0xff, 0x42, 0x68, 0x00, 0xbf, 0x22, 0x80, 0x06, 0x56, 0x3a, + 0x1d, 0x6e, 0xfb, 0x41, 0x54, 0x74, 0x3f, 0xce, 0x29, 0x40, 0x04, 0x3a, + 0x89, 0x28, 0x4c, 0x87, 0x93, 0xed, 0xf5, 0x01, 0x04, 0x26, 0x01, 0x01, + 0xff, 0x4d, 0x01, 0x4d, 0x88, 0xfb, 0x01, 0x09, 0x2a, 0x01, 0x01, 0xff, + 0x45, 0x33, 0x01, 0x8a, 0xfb, 0x01, 0x57, 0x83, 0x2f, 0xa1, 0xce, 0x01, + 0x57, 0x94, 0x31, 0xaa, 0xce, 0x41, 0x48, 0x08, 0xc7, 0x0d, 0xcc, 0x01, + 0x5a, 0x88, 0x22, 0xc3, 0xfb, 0x41, 0x55, 0xcf, 0x38, 0xc6, 0x27, 0x00, + 0xa5, 0x7f, 0xa9, 0x71, 0x02, 0x6f, 0x02, 0x4f, 0x4d, 0xc9, 0x26, 0x5d, + 0x00, 0x80, 0x06, 0x53, 0xab, 0x26, 0x03, 0x2e, 0x40, 0x80, 0x01, 0xff, + 0x49, 0xc1, 0x58, 0xa5, 0x23, 0x00, 0x4c, 0x6b, 0x91, 0xa6, 0x23, 0x00, + 0x4c, 0x87, 0x96, 0xa4, 0x23, 0x00, 0x05, 0x51, 0x00, 0x01, 0xff, 0x4d, + 0x36, 0x82, 0x58, 0x2e, 0x00, 0x45, 0x9e, 0x80, 0x46, 0x20, 0x00, 0x46, + 0x52, 0x05, 0x56, 0x2e, 0x00, 0x08, 0x90, 0xcb, 0x06, 0x48, 0xe3, 0x59, + 0x8c, 0x29, 0x40, 0x4d, 0x32, 0x81, 0x8e, 0x29, 0x00, 0x4a, 0x0d, 0xb2, + 0x90, 0x29, 0x40, 0x44, 0x92, 0x27, 0x68, 0xf5, 0x81, 0x06, 0x4a, 0x72, + 0x7c, 0xe9, 0xf5, 0x41, 0x06, 0x50, 0x00, 0x01, 0xff, 0x4e, 0x4d, 0x7a, + 0x69, 0xf5, 0x01, 0x51, 0x5e, 0x5e, 0x6a, 0xf5, 0x41, 0x50, 0xd6, 0x61, + 0x27, 0x2e, 0x00, 0x53, 0x97, 0x0b, 0x19, 0x20, 0x40, 0x50, 0xe4, 0x0f, + 0xcc, 0x22, 0x00, 0x51, 0xfd, 0x4c, 0x8b, 0xfb, 0x41, 0x80, 0x01, 0xff, + 0x49, 0xc1, 0x58, 0x9f, 0x23, 0x00, 0x4a, 0x67, 0xad, 0xa0, 0x23, 0x00, + 0x4a, 0xdf, 0xb2, 0x9e, 0x23, 0x40, 0x03, 0xef, 0x07, 0x0c, 0x4f, 0xb2, + 0x71, 0xbc, 0xfb, 0x01, 0x49, 0x52, 0xaf, 0xd6, 0x27, 0x40, 0x4c, 0x12, + 0x0b, 0x95, 0x25, 0x00, 0x4d, 0x43, 0x1d, 0x87, 0xfb, 0x41, 0x4c, 0x0c, + 0x03, 0xe9, 0xfb, 0x01, 0x4c, 0x32, 0x11, 0xe1, 0xfb, 0x41, 0x03, 0x24, + 0x00, 0x06, 0x55, 0x13, 0x3d, 0x7d, 0xf5, 0x41, 0x5a, 0xfa, 0x1e, 0x00, + 0xce, 0x01, 0x02, 0x33, 0x01, 0x38, 0xa6, 0x2a, 0x65, 0xe2, 0x07, 0x11, + 0xce, 0x01, 0x57, 0x83, 0x2f, 0xa0, 0xce, 0x01, 0x4c, 0x44, 0x04, 0x8d, + 0xfb, 0x01, 0x4b, 0x69, 0xa2, 0xb3, 0xfb, 0x01, 0x56, 0x73, 0x37, 0x0e, + 0xce, 0x01, 0x57, 0x94, 0x31, 0xab, 0xce, 0x01, 0x4d, 0x97, 0x8a, 0x0c, + 0xce, 0x41, 0x4c, 0x9b, 0x91, 0xa5, 0xcc, 0x01, 0x45, 0xcc, 0x65, 0xba, + 0xfb, 0x41, 0x04, 0x0e, 0x03, 0x06, 0x43, 0x35, 0x01, 0x90, 0x25, 0x40, + 0x46, 0x12, 0x03, 0xd7, 0x25, 0x00, 0x44, 0x31, 0x13, 0xe9, 0x2b, 0x40, + 0xa9, 0x06, 0x44, 0x59, 0x24, 0x0b, 0x23, 0x40, 0x47, 0xfc, 0xb8, 0x7d, + 0x29, 0x00, 0x50, 0xab, 0x51, 0x89, 0xfb, 0x41, 0x59, 0xa5, 0x26, 0x05, + 0x2e, 0x00, 0x05, 0x3d, 0x01, 0x01, 0xff, 0xa1, 0x12, 0x4b, 0xd8, 0x21, + 0x29, 0x2e, 0x00, 0x4e, 0x19, 0x05, 0x1d, 0x20, 0x00, 0x4c, 0xf3, 0x96, + 0xdb, 0x29, 0x40, 0x4c, 0x3f, 0x0f, 0x0b, 0x30, 0x00, 0x56, 0x05, 0x37, + 0x70, 0x29, 0x40, 0x46, 0x91, 0xc4, 0x09, 0x23, 0x00, 0x4d, 0x35, 0x69, + 0x0d, 0x30, 0x00, 0x4c, 0x73, 0x0b, 0x7d, 0x00, 0xc0, 0x00, 0x80, 0x01, + 0xff, 0x4a, 0x67, 0xad, 0xad, 0x23, 0x00, 0x4c, 0x07, 0x92, 0xac, 0x23, + 0x00, 0x4a, 0xdf, 0xb2, 0xab, 0x23, 0x40, 0x52, 0x6c, 0x27, 0x11, 0x30, + 0x00, 0x56, 0x54, 0x09, 0x98, 0x29, 0x40, 0xae, 0x1a, 0xb2, 0x01, 0xff, + 0x56, 0xac, 0x17, 0x94, 0x29, 0x00, 0x09, 0x25, 0x06, 0x01, 0xff, 0x4c, + 0x57, 0x8d, 0xf4, 0x27, 0x00, 0x4c, 0x3f, 0x15, 0xf4, 0x21, 0x40, 0x02, + 0x06, 0x00, 0x43, 0xa7, 0x01, 0xff, 0x49, 0x7c, 0xb8, 0xef, 0xf5, 0x01, + 0x42, 0x68, 0x00, 0x1f, 0x22, 0xc0, 0x00, 0x80, 0x01, 0xff, 0x47, 0x63, + 0x09, 0x09, 0x30, 0x80, 0x23, 0x5a, 0xca, 0x1f, 0x01, 0x2e, 0x00, 0x53, + 0xd1, 0x1f, 0x00, 0x2e, 0x00, 0x53, 0x77, 0x4e, 0x9c, 0x29, 0x00, 0x05, + 0x51, 0x00, 0x01, 0xff, 0x43, 0xaa, 0x17, 0xbe, 0x22, 0x00, 0x56, 0xd7, + 0x33, 0x7c, 0x23, 0x40, 0x49, 0x75, 0x3b, 0x92, 0x29, 0x40, 0x56, 0x08, + 0x0b, 0x7f, 0xfb, 0x01, 0x56, 0xcb, 0x37, 0x7e, 0xfb, 0x41, 0x44, 0xcd, + 0x1c, 0x59, 0xf3, 0x01, 0x47, 0x21, 0xd0, 0x58, 0xf3, 0x41, 0x07, 0xcd, + 0x00, 0x01, 0xff, 0x05, 0x9e, 0x14, 0x31, 0x05, 0xc3, 0x00, 0x21, 0x06, + 0xc8, 0x00, 0x11, 0x03, 0x7d, 0x15, 0x01, 0xff, 0x44, 0xc3, 0x00, 0xb2, + 0x2b, 0x00, 0x45, 0xc8, 0x00, 0xb3, 0x2b, 0x40, 0x44, 0xa5, 0x01, 0xb7, + 0x2b, 0x00, 0x42, 0x50, 0x02, 0xb5, 0x2b, 0x40, 0x44, 0xa5, 0x01, 0xb6, + 0x2b, 0x00, 0x42, 0x50, 0x02, 0xb4, 0x2b, 0x40, 0x44, 0xc3, 0x00, 0xb0, + 0x2b, 0x00, 0x45, 0xc8, 0x00, 0xb1, 0x2b, 0x40, 0xa3, 0xb8, 0x05, 0x02, + 0x06, 0x00, 0xa7, 0x05, 0x4c, 0xe3, 0x8e, 0x3b, 0x20, 0x00, 0x02, 0xf1, + 0x06, 0xaa, 0x04, 0x05, 0xa4, 0xe7, 0xcb, 0x02, 0x4b, 0xe1, 0x58, 0x0c, + 0xf6, 0x01, 0x4d, 0xf8, 0x85, 0x97, 0xf3, 0x01, 0x53, 0x87, 0x20, 0xfd, + 0xff, 0x00, 0xb3, 0x99, 0x02, 0x05, 0xa0, 0xeb, 0x82, 0x02, 0xb6, 0x01, + 0xff, 0x04, 0x3f, 0x04, 0x06, 0x4d, 0xc8, 0x86, 0x9e, 0xf4, 0x41, 0x80, + 0xa9, 0x01, 0x02, 0x06, 0x00, 0x01, 0xff, 0x45, 0x04, 0x02, 0xa3, 0x29, + 0x80, 0x96, 0x01, 0x45, 0x13, 0x05, 0x41, 0x2e, 0x00, 0x07, 0x3b, 0x01, + 0x79, 0x49, 0x61, 0xb8, 0xb0, 0x29, 0x00, 0x52, 0xbb, 0x51, 0x11, 0x2e, + 0x00, 0x60, 0xb4, 0x0f, 0x95, 0xf5, 0x01, 0x48, 0x8a, 0x73, 0x10, 0x23, + 0x00, 0xb0, 0x53, 0x4d, 0xa6, 0x34, 0x2e, 0x2e, 0x00, 0xb2, 0x39, 0xb3, + 0x2b, 0xb4, 0x06, 0x4c, 0xcf, 0x96, 0x94, 0xf5, 0x41, 0x06, 0x9e, 0xdc, + 0x13, 0x44, 0x36, 0x23, 0x3d, 0x22, 0x80, 0x06, 0x4b, 0x1c, 0xa2, 0x37, + 0x20, 0x40, 0x47, 0x47, 0x13, 0xcd, 0x22, 0x40, 0x49, 0xc8, 0xb7, 0x93, + 0xf5, 0x01, 0x47, 0xdb, 0xd6, 0x92, 0xf5, 0x41, 0x53, 0x02, 0x48, 0x43, + 0x21, 0x00, 0x48, 0xda, 0x59, 0x4f, 0x20, 0x40, 0x5f, 0xd2, 0x10, 0x91, + 0xf5, 0x01, 0x4a, 0x51, 0x45, 0xfe, 0x2b, 0x00, 0x5a, 0x9e, 0x21, 0x19, + 0x26, 0x40, 0x4b, 0x57, 0x9d, 0x4b, 0x20, 0x00, 0x44, 0xeb, 0x1a, 0x35, + 0x20, 0x40, 0x45, 0xea, 0x1a, 0x36, 0x20, 0x80, 0x06, 0x4f, 0x83, 0x73, + 0xed, 0x2a, 0x40, 0x4f, 0x18, 0x05, 0x1d, 0x30, 0x40, 0x4e, 0x2d, 0x5f, + 0xa5, 0x29, 0x40, 0x4d, 0x6d, 0x14, 0x7f, 0xf6, 0x01, 0x45, 0x8f, 0x13, + 0x8d, 0x00, 0x00, 0x02, 0xc3, 0x01, 0x2d, 0x47, 0x4f, 0x31, 0x5c, 0x00, + 0x80, 0x11, 0x15, 0x78, 0x3e, 0x01, 0xff, 0x4f, 0x4d, 0x1a, 0x41, 0x2b, + 0x00, 0x50, 0xb3, 0x02, 0x47, 0x2b, 0x40, 0x80, 0x01, 0xff, 0x48, 0x7e, + 0x1d, 0xf5, 0x29, 0x00, 0x50, 0xf6, 0x65, 0xc8, 0x27, 0x00, 0x56, 0x23, + 0x38, 0xf7, 0x29, 0x40, 0x5e, 0x17, 0x13, 0xc8, 0xf7, 0x01, 0x47, 0xd0, + 0x20, 0x8d, 0x00, 0x40, 0x44, 0xc3, 0x00, 0x90, 0x2b, 0x00, 0x45, 0xc8, + 0x00, 0x91, 0x2b, 0x00, 0x46, 0x16, 0x08, 0xce, 0x23, 0x40, 0x45, 0x06, + 0xea, 0x1f, 0x21, 0x00, 0x02, 0x19, 0x01, 0x01, 0xff, 0x11, 0xd9, 0x5a, + 0x06, 0x43, 0x03, 0x54, 0xbb, 0xf6, 0x41, 0xd1, 0xe0, 0x26, 0x00, 0xd2, + 0xe1, 0x26, 0x40, 0x0f, 0x3d, 0x33, 0xc4, 0x01, 0x07, 0xec, 0x05, 0x37, + 0x4c, 0xf8, 0x26, 0x5f, 0xa9, 0x00, 0xb6, 0x01, 0xff, 0x45, 0xe4, 0x23, + 0x53, 0xa9, 0x00, 0x0a, 0x41, 0x77, 0x01, 0xff, 0xa1, 0x19, 0xe5, 0x49, + 0xa9, 0x80, 0x0c, 0xe9, 0x47, 0xa9, 0x00, 0xef, 0x4b, 0xa9, 0x00, 0xf5, + 0x48, 0xa9, 0x40, 0xe1, 0x4e, 0xa9, 0x00, 0xf5, 0x4d, 0xa9, 0x40, 0xe9, + 0x4a, 0xa9, 0x00, 0xf5, 0x4c, 0xa9, 0x40, 0xe1, 0x46, 0xa9, 0x00, 0x42, + 0x16, 0x00, 0x37, 0xa9, 0x00, 0x42, 0x37, 0x00, 0x39, 0xa9, 0x00, 0x42, + 0xf0, 0x10, 0x34, 0xa9, 0x00, 0x42, 0x24, 0x02, 0x31, 0xa9, 0x00, 0x42, + 0x22, 0x00, 0x41, 0xa9, 0x00, 0x42, 0x56, 0x19, 0x3a, 0xa9, 0x00, 0x42, + 0x1b, 0x02, 0x30, 0xa9, 0x00, 0x42, 0x74, 0x00, 0x3e, 0xa9, 0x00, 0xad, + 0x49, 0xae, 0x24, 0x42, 0xbb, 0x09, 0x36, 0xa9, 0x00, 0x42, 0x71, 0x00, + 0x3d, 0xa9, 0x00, 0x42, 0x40, 0x06, 0x3c, 0xa9, 0x00, 0x42, 0x12, 0x00, + 0x33, 0xa9, 0x00, 0x42, 0xa9, 0x01, 0x40, 0xa9, 0x00, 0x42, 0xbc, 0x22, + 0x3f, 0xa9, 0x40, 0xe1, 0x35, 0xa9, 0x00, 0x42, 0xf0, 0x10, 0x44, 0xa9, + 0x00, 0xa7, 0x0d, 0xb9, 0x01, 0xff, 0xe1, 0x3b, 0xa9, 0x00, 0x42, 0x56, + 0x19, 0x45, 0xa9, 0x40, 0xe1, 0x32, 0xa9, 0x00, 0x42, 0x24, 0x02, 0x43, + 0xa9, 0x40, 0xe1, 0x38, 0xa9, 0x00, 0x42, 0x16, 0x00, 0x42, 0xa9, 0x40, + 0xe8, 0x52, 0xa9, 0x00, 0xee, 0x50, 0xa9, 0x80, 0x04, 0xf2, 0x51, 0xa9, + 0x40, 0xe7, 0x4f, 0xa9, 0x40, 0x1d, 0x50, 0x16, 0x06, 0x4b, 0xed, 0xa2, + 0xae, 0x00, 0x40, 0xe1, 0xe6, 0xf1, 0x01, 0xe2, 0xe7, 0xf1, 0x01, 0xe3, + 0xe8, 0xf1, 0x01, 0xe4, 0xe9, 0xf1, 0x01, 0xe5, 0xea, 0xf1, 0x01, 0xe6, + 0xeb, 0xf1, 0x01, 0xe7, 0xec, 0xf1, 0x01, 0xe8, 0xed, 0xf1, 0x01, 0xe9, + 0xee, 0xf1, 0x01, 0xea, 0xef, 0xf1, 0x01, 0xeb, 0xf0, 0xf1, 0x01, 0xec, + 0xf1, 0xf1, 0x01, 0xed, 0xf2, 0xf1, 0x01, 0xee, 0xf3, 0xf1, 0x01, 0xef, + 0xf4, 0xf1, 0x01, 0xf0, 0xf5, 0xf1, 0x01, 0xf1, 0xf6, 0xf1, 0x01, 0xf2, + 0xf7, 0xf1, 0x01, 0xf3, 0xf8, 0xf1, 0x01, 0xf4, 0xf9, 0xf1, 0x01, 0xf5, + 0xfa, 0xf1, 0x01, 0xf6, 0xfb, 0xf1, 0x01, 0xf7, 0xfc, 0xf1, 0x01, 0xf8, + 0xfd, 0xf1, 0x01, 0xf9, 0xfe, 0xf1, 0x01, 0xfa, 0xff, 0xf1, 0x41, 0x45, + 0x57, 0xe4, 0x4e, 0xf3, 0x01, 0x4d, 0x54, 0x83, 0xe7, 0xf9, 0x41, 0xa5, + 0x51, 0x4d, 0x59, 0x66, 0x1e, 0x00, 0x00, 0x51, 0x81, 0x5d, 0x99, 0xf6, + 0x01, 0x03, 0x21, 0x25, 0x01, 0xff, 0x4f, 0xdf, 0x29, 0x7c, 0x26, 0x00, + 0x0f, 0xa6, 0x6e, 0x01, 0xff, 0x51, 0x40, 0x5a, 0x7a, 0x26, 0x00, 0x05, + 0x4b, 0x21, 0x01, 0xff, 0x4a, 0xcd, 0xa6, 0x73, 0x26, 0x00, 0x4a, 0xe1, + 0xa6, 0x74, 0x26, 0x00, 0x4a, 0xf5, 0xa6, 0x75, 0x26, 0x00, 0x4a, 0xff, + 0xa6, 0x76, 0x26, 0x00, 0x4a, 0x09, 0xa7, 0x77, 0x26, 0x00, 0x4a, 0x13, + 0xa7, 0x78, 0x26, 0x00, 0x4a, 0x1d, 0xa7, 0x79, 0x26, 0x40, 0x43, 0x77, + 0x06, 0xfe, 0xf9, 0x01, 0x46, 0x44, 0xdf, 0x12, 0xcc, 0x41, 0x44, 0x39, + 0xef, 0x07, 0xf4, 0x81, 0xcd, 0x01, 0xa3, 0xb3, 0x01, 0x02, 0x00, 0x00, + 0x97, 0x01, 0xa9, 0x15, 0xed, 0x0f, 0xf4, 0x01, 0xf4, 0x00, 0xf4, 0x81, + 0x06, 0x43, 0xdf, 0xf4, 0x92, 0xfa, 0x41, 0x42, 0xb5, 0x00, 0x36, 0x22, + 0x40, 0x05, 0x49, 0xe8, 0x70, 0xee, 0xc6, 0x26, 0x80, 0x65, 0x04, 0x46, + 0x03, 0x01, 0xff, 0x4c, 0x8b, 0x8c, 0x1a, 0xf9, 0x01, 0x45, 0x13, 0x05, + 0x34, 0x2e, 0x00, 0x43, 0x23, 0x0a, 0x33, 0x2e, 0x80, 0x47, 0x44, 0xea, + 0xca, 0x0a, 0x27, 0x00, 0x44, 0xc6, 0x0d, 0x0b, 0x27, 0x80, 0x29, 0x54, + 0x8a, 0x2b, 0x06, 0x2e, 0x00, 0xad, 0x0f, 0xb3, 0x01, 0xff, 0x58, 0x06, + 0x2a, 0xcc, 0xfb, 0x01, 0x45, 0xd7, 0x05, 0x0b, 0x2e, 0x40, 0x46, 0x3f, + 0x64, 0x6a, 0xf1, 0x01, 0x46, 0xb0, 0x47, 0x6b, 0xf1, 0x01, 0x46, 0x2f, + 0x0e, 0x6c, 0xf1, 0x41, 0x06, 0x50, 0x00, 0x01, 0xff, 0x4f, 0xe2, 0x10, + 0x90, 0xf5, 0x01, 0x64, 0xbb, 0x09, 0x96, 0xf5, 0x41, 0x58, 0x86, 0x2b, + 0x07, 0x2e, 0x40, 0x43, 0x3f, 0x81, 0x08, 0xf3, 0x41, 0x43, 0xc3, 0x64, + 0x83, 0xf6, 0x01, 0x45, 0x73, 0xeb, 0xe4, 0xf6, 0x41, 0x51, 0xec, 0x58, + 0xb7, 0x23, 0x00, 0xef, 0xfb, 0xf4, 0xc1, 0x00, 0x47, 0x1f, 0xcd, 0x18, + 0xf5, 0x01, 0x4b, 0xbe, 0x98, 0x22, 0x26, 0x40, 0x44, 0x65, 0xef, 0x9d, + 0xf9, 0x01, 0x04, 0xa1, 0x01, 0x01, 0xff, 0x43, 0xc3, 0x64, 0xce, 0xf3, + 0x01, 0x4a, 0x1b, 0xae, 0xcd, 0xf3, 0x41, 0x45, 0x0b, 0x08, 0x30, 0xf4, + 0x41, 0xa1, 0x24, 0x06, 0xa8, 0x34, 0x0c, 0x46, 0xe6, 0xdc, 0xbb, 0x26, + 0x00, 0x4c, 0x1b, 0x05, 0x22, 0x00, 0x40, 0x80, 0x06, 0x4b, 0x3b, 0x67, + 0x5f, 0x22, 0x40, 0x50, 0xad, 0x00, 0x48, 0x20, 0x00, 0x44, 0xb9, 0x00, + 0x3f, 0x00, 0x40, 0x02, 0x26, 0x0d, 0x12, 0x43, 0x76, 0x14, 0x7e, 0xf7, + 0x01, 0x49, 0xb2, 0x54, 0x69, 0x26, 0x00, 0x59, 0x8c, 0x26, 0x16, 0x2a, + 0x40, 0x04, 0x7e, 0x0d, 0x11, 0x05, 0x42, 0x4c, 0x01, 0xff, 0x51, 0x94, + 0x26, 0x0c, 0x2a, 0x00, 0x45, 0xea, 0x1a, 0x57, 0x20, 0x40, 0x06, 0x13, + 0x01, 0x46, 0x06, 0x6d, 0x02, 0x01, 0xff, 0x44, 0xc3, 0x00, 0x98, 0x25, + 0x80, 0x14, 0x45, 0xc8, 0x00, 0x9d, 0x25, 0xc0, 0x00, 0x4f, 0xa7, 0x39, + 0x9e, 0x25, 0xc0, 0x00, 0x50, 0x3c, 0x44, 0x9f, 0x25, 0x40, 0x05, 0x19, + 0x00, 0x01, 0xff, 0x06, 0x13, 0x01, 0x11, 0x16, 0xe1, 0x37, 0x01, 0xff, + 0x44, 0xc3, 0x00, 0x9b, 0x25, 0x00, 0x45, 0xc8, 0x00, 0x9c, 0x25, 0x40, + 0x54, 0x38, 0x44, 0x99, 0x25, 0x00, 0x45, 0xc8, 0x00, 0x9a, 0x25, 0x40, + 0x44, 0xc3, 0x00, 0x96, 0x25, 0x00, 0x45, 0xc8, 0x00, 0x97, 0x25, 0x40, + 0xa1, 0x96, 0x18, 0xa5, 0x83, 0x16, 0xa8, 0xed, 0x0e, 0xa9, 0xe6, 0x0d, + 0xac, 0xf9, 0x07, 0x4d, 0x7a, 0x86, 0x11, 0xcc, 0x01, 0xaf, 0x94, 0x06, + 0xb2, 0x84, 0x02, 0xb3, 0x33, 0xb5, 0x01, 0xff, 0x58, 0x7e, 0x27, 0xe2, + 0xf4, 0x01, 0x04, 0x09, 0x0c, 0x1a, 0xb2, 0x0c, 0x45, 0xfa, 0xd4, 0xcc, + 0xf4, 0x01, 0x5c, 0x2e, 0x19, 0xae, 0xf6, 0x41, 0x49, 0x13, 0xbe, 0x9c, + 0xf4, 0x01, 0x42, 0x46, 0x03, 0x5b, 0xf4, 0x41, 0x4b, 0x6e, 0x99, 0x08, + 0x20, 0x00, 0x4f, 0xde, 0x72, 0x4e, 0x2e, 0x40, 0x0e, 0xd1, 0x75, 0x06, + 0x44, 0x3d, 0xf3, 0xc9, 0xce, 0x41, 0x0f, 0x3e, 0x6d, 0xb4, 0x01, 0x07, + 0xec, 0x05, 0x3f, 0x07, 0xff, 0x39, 0x0c, 0x4c, 0xf8, 0x26, 0x99, 0x0b, + 0x01, 0x53, 0xdf, 0x4d, 0x9a, 0x0b, 0x41, 0x44, 0xf5, 0x06, 0xac, 0x0b, + 0x01, 0x43, 0x0e, 0x0b, 0xa9, 0x0b, 0x81, 0x1c, 0xb4, 0x01, 0xff, 0x42, + 0x92, 0x01, 0xad, 0x0b, 0x01, 0x44, 0x25, 0x01, 0xab, 0x0b, 0x01, 0xb7, + 0x01, 0xff, 0x44, 0xcb, 0x1d, 0xae, 0x0b, 0x01, 0xef, 0xaa, 0x0b, 0x41, + 0x48, 0x70, 0x11, 0xaf, 0x0b, 0x41, 0x45, 0xb2, 0xad, 0x80, 0x0b, 0x01, + 0x44, 0x41, 0xef, 0x81, 0x0b, 0x01, 0x46, 0x23, 0x4a, 0x83, 0x0b, 0x01, + 0x45, 0xdd, 0xaa, 0x82, 0x0b, 0x01, 0x42, 0xb0, 0x01, 0x84, 0x0b, 0x81, + 0x4c, 0x44, 0xcd, 0xf0, 0x89, 0x0b, 0x01, 0x46, 0x94, 0xdd, 0x8a, 0x0b, + 0x01, 0x48, 0x48, 0xc8, 0x8b, 0x0b, 0x01, 0x43, 0xdc, 0x22, 0x8c, 0x0b, + 0x01, 0x42, 0x6f, 0x02, 0x8e, 0x0b, 0x01, 0xb3, 0x18, 0x43, 0xa4, 0xc4, + 0x91, 0x0b, 0x01, 0x4d, 0x8a, 0x8a, 0x85, 0x0b, 0x01, 0x44, 0xa1, 0x52, + 0x88, 0x0b, 0x01, 0x45, 0x9b, 0x52, 0x86, 0x0b, 0x41, 0xa1, 0x06, 0x43, + 0x7a, 0x16, 0x90, 0x0b, 0x41, 0x43, 0xad, 0xea, 0x8f, 0x0b, 0x01, 0x44, + 0x49, 0xe4, 0x8d, 0x0b, 0x41, 0x42, 0x53, 0x00, 0x87, 0x0b, 0x41, 0x45, + 0x95, 0x10, 0x9b, 0x0b, 0x01, 0x43, 0x23, 0x0a, 0x9c, 0x0b, 0x41, 0x4a, + 0x21, 0xa8, 0xff, 0xf4, 0x01, 0xa5, 0x86, 0x01, 0xa9, 0x30, 0xaf, 0x01, + 0xff, 0x49, 0xa8, 0xb6, 0xaf, 0xf9, 0x01, 0x4c, 0xaf, 0x8f, 0xc7, 0xf6, + 0x01, 0x47, 0x35, 0xd2, 0x05, 0x23, 0x00, 0xb0, 0x06, 0x47, 0x6d, 0x48, + 0xd8, 0x2b, 0x40, 0x49, 0x8e, 0xb8, 0x4a, 0x21, 0x00, 0x46, 0x2e, 0x24, + 0x37, 0x22, 0xc0, 0x00, 0x45, 0xfb, 0x0c, 0x1d, 0x22, 0x40, 0x42, 0x2a, + 0x02, 0x32, 0x20, 0x00, 0xae, 0x29, 0x02, 0xf5, 0x0a, 0x01, 0xff, 0x4a, + 0x07, 0xa9, 0x9e, 0x00, 0x00, 0x06, 0x7c, 0xe0, 0x01, 0xff, 0x80, 0x0b, + 0x8d, 0x01, 0xff, 0xd1, 0x91, 0x00, 0x00, 0xd2, 0x92, 0x00, 0x40, 0x43, + 0x0e, 0x0b, 0x91, 0x00, 0x00, 0x43, 0x1f, 0x0a, 0x92, 0x00, 0x40, 0x42, + 0x73, 0x02, 0x34, 0xf9, 0x81, 0x16, 0xb4, 0x01, 0xff, 0x4e, 0xcc, 0x59, + 0x99, 0x23, 0x00, 0x42, 0x33, 0x00, 0xa8, 0xf5, 0xc1, 0x00, 0x45, 0xbe, + 0xe1, 0xb6, 0xf5, 0x41, 0x42, 0xee, 0x00, 0x78, 0xf4, 0x41, 0x45, 0xeb, + 0xc9, 0x7a, 0x22, 0x80, 0xa6, 0x02, 0x06, 0x14, 0xdc, 0x8f, 0x02, 0xb3, + 0x0c, 0x44, 0xc9, 0xf2, 0x68, 0xf9, 0x01, 0x4a, 0x57, 0xb3, 0x97, 0x23, + 0x40, 0x4d, 0x8d, 0x81, 0x1e, 0x21, 0x00, 0x1b, 0x34, 0x1b, 0x01, 0xff, + 0x02, 0x13, 0x05, 0xe5, 0x01, 0xa5, 0xd0, 0x01, 0x53, 0xc3, 0x29, 0x19, + 0xfe, 0x00, 0x0c, 0x4c, 0x20, 0xb9, 0x01, 0xac, 0x6a, 0x4d, 0xa6, 0x34, + 0x16, 0xfe, 0x00, 0x06, 0xc8, 0x00, 0x12, 0x49, 0x21, 0xbf, 0x14, 0xfe, + 0x00, 0x4e, 0x95, 0x7d, 0x30, 0xfe, 0x00, 0x4d, 0x70, 0x8a, 0x34, 0xfe, + 0x40, 0x4d, 0x3e, 0x0f, 0x40, 0xfe, 0x00, 0x58, 0x66, 0x27, 0x3c, 0xfe, + 0x00, 0xa3, 0x34, 0x54, 0xa4, 0x41, 0x3e, 0xfe, 0x00, 0x4b, 0xd8, 0x21, + 0x36, 0xfe, 0x00, 0x4e, 0xc8, 0x26, 0x48, 0xfe, 0x00, 0x56, 0x54, 0x09, + 0x3a, 0xfe, 0x00, 0x06, 0xad, 0x02, 0x01, 0xff, 0x4e, 0x34, 0x69, 0x44, + 0xfe, 0x00, 0x0e, 0x6c, 0x27, 0x01, 0xff, 0x44, 0x66, 0x09, 0x18, 0xfe, + 0x00, 0x44, 0xd1, 0xf0, 0x18, 0xfe, 0x40, 0x4d, 0x35, 0x69, 0x42, 0xfe, + 0x00, 0x4c, 0x73, 0x0b, 0x38, 0xfe, 0x40, 0x04, 0xc4, 0x00, 0x06, 0x47, + 0x76, 0x8a, 0x33, 0xfe, 0x40, 0x4d, 0x3e, 0x0f, 0x3f, 0xfe, 0x00, 0x58, + 0x66, 0x27, 0x3b, 0xfe, 0x00, 0xa3, 0x29, 0x54, 0xa4, 0x41, 0x3d, 0xfe, + 0x00, 0x4b, 0xd8, 0x21, 0x35, 0xfe, 0x00, 0x4e, 0xc8, 0x26, 0x47, 0xfe, + 0x00, 0x56, 0x54, 0x09, 0x39, 0xfe, 0x00, 0x06, 0xad, 0x02, 0x01, 0xff, + 0x4e, 0x34, 0x69, 0x43, 0xfe, 0x00, 0x52, 0x6c, 0x27, 0x17, 0xfe, 0x40, + 0x4d, 0x35, 0x69, 0x41, 0xfe, 0x00, 0x4c, 0x73, 0x0b, 0x37, 0xfe, 0x40, + 0x45, 0x13, 0x05, 0x11, 0xfe, 0x00, 0x49, 0x81, 0x16, 0x12, 0xfe, 0x40, + 0x46, 0xc2, 0xc2, 0x31, 0xfe, 0x00, 0x46, 0x18, 0xde, 0x32, 0xfe, 0x00, + 0x4f, 0xae, 0x00, 0x15, 0xfe, 0x40, 0x43, 0xd7, 0x02, 0x13, 0xfe, 0x00, + 0x43, 0x15, 0x05, 0x10, 0xfe, 0x40, 0x43, 0x41, 0x18, 0xc3, 0xfa, 0x01, + 0x46, 0x1e, 0x1d, 0xc4, 0xfa, 0x01, 0x45, 0x1a, 0x2d, 0x30, 0xf9, 0x41, + 0x80, 0x01, 0xff, 0x06, 0x5c, 0x00, 0x1c, 0x55, 0xcb, 0x39, 0xe8, 0x22, + 0x00, 0x06, 0xf3, 0x28, 0x06, 0x4e, 0xe9, 0x7d, 0xb0, 0x22, 0x40, 0x45, + 0xfb, 0x0c, 0x7c, 0x22, 0x00, 0x4a, 0xd6, 0x39, 0x7e, 0x22, 0x40, 0x4f, + 0xaa, 0x6a, 0xb7, 0x2a, 0x00, 0x4b, 0x48, 0x13, 0xb3, 0x2a, 0x00, 0x04, + 0x70, 0x23, 0x11, 0x0c, 0xf6, 0x2a, 0x01, 0xff, 0x4b, 0x48, 0x13, 0xaf, + 0x2a, 0x00, 0x4c, 0x02, 0x2b, 0xb1, 0x2a, 0x40, 0x4f, 0xaa, 0x6a, 0xb9, + 0x2a, 0x00, 0x48, 0xf8, 0x0c, 0xb5, 0x2a, 0x40, 0x4f, 0xb8, 0x6b, 0xa9, + 0xf5, 0x01, 0x05, 0xa3, 0xaf, 0xbe, 0x01, 0x44, 0xbd, 0xf1, 0x29, 0xf4, + 0x01, 0xb0, 0x9f, 0x01, 0x4d, 0x34, 0x88, 0xfe, 0xf4, 0x01, 0xb3, 0x6b, + 0xb4, 0x4f, 0xb5, 0x24, 0x04, 0x15, 0x01, 0x01, 0xff, 0x02, 0x10, 0x00, + 0x0f, 0xb3, 0x01, 0xff, 0x4b, 0x80, 0x9e, 0xfe, 0x23, 0x00, 0x45, 0x17, + 0x08, 0xfb, 0x23, 0x40, 0x47, 0x15, 0x08, 0xfd, 0x23, 0x00, 0x4b, 0x71, + 0x98, 0xfc, 0x23, 0x40, 0x42, 0x6d, 0x14, 0x5d, 0xf4, 0x01, 0x48, 0x08, + 0xc8, 0x57, 0xf3, 0x01, 0x47, 0xaf, 0x47, 0xa3, 0x00, 0x00, 0x4b, 0x11, + 0xa2, 0xd7, 0xfa, 0x01, 0x05, 0xa0, 0x01, 0x01, 0xff, 0x48, 0x62, 0x1f, + 0x3e, 0xf6, 0x01, 0x44, 0x0c, 0x08, 0x21, 0xf6, 0x41, 0x48, 0xce, 0x64, + 0x72, 0xf3, 0x01, 0xa1, 0x06, 0x49, 0xb1, 0xbf, 0xb4, 0xfa, 0x41, 0x50, + 0x18, 0x45, 0xb0, 0xf6, 0x01, 0x42, 0x1e, 0x00, 0x54, 0xf9, 0x41, 0x45, + 0xd8, 0xe5, 0xe7, 0x2b, 0x00, 0x4f, 0x27, 0x67, 0x16, 0x23, 0x00, 0xb4, + 0x01, 0xff, 0x03, 0x13, 0x00, 0x06, 0x43, 0xbb, 0x3a, 0xee, 0xf4, 0x41, + 0x44, 0x60, 0x2d, 0xef, 0xf4, 0x01, 0x44, 0xb9, 0x00, 0x12, 0x30, 0xc0, + 0x00, 0x45, 0x0b, 0x08, 0x20, 0x30, 0x40, 0x0d, 0x78, 0x7f, 0x06, 0x44, + 0x27, 0x19, 0x7f, 0xf3, 0x41, 0x4a, 0x6f, 0xaa, 0x2c, 0x20, 0x00, 0x47, + 0x5f, 0x03, 0x69, 0x20, 0x40, 0x43, 0xc3, 0x64, 0x93, 0xf6, 0x81, 0x06, + 0x47, 0xbd, 0xd3, 0x6e, 0xf4, 0x41, 0x51, 0xc5, 0x5d, 0xa8, 0xf6, 0x41, + 0xa1, 0x96, 0x01, 0xb5, 0x01, 0xff, 0x44, 0xda, 0x09, 0xa0, 0xfa, 0x01, + 0xb3, 0x29, 0x42, 0x1e, 0x00, 0x47, 0x26, 0xc0, 0x00, 0x06, 0x3c, 0x1b, + 0x01, 0xff, 0xa6, 0x0f, 0xb4, 0x01, 0xff, 0x44, 0x25, 0x01, 0xd4, 0x2b, + 0x00, 0x42, 0x15, 0x02, 0xd3, 0x2b, 0x40, 0x43, 0xd2, 0x05, 0xd6, 0x2b, + 0x00, 0x43, 0xf6, 0x06, 0xd5, 0x2b, 0x40, 0x45, 0x59, 0x03, 0x2b, 0x00, + 0x80, 0x06, 0x4b, 0x66, 0x98, 0xb1, 0x00, 0x40, 0x80, 0x01, 0xff, 0x51, + 0x42, 0x13, 0x72, 0x2a, 0x00, 0x03, 0xe1, 0x05, 0x36, 0x05, 0x51, 0x00, + 0x01, 0xff, 0x4e, 0x5e, 0x6b, 0x28, 0x2a, 0x00, 0x57, 0xe5, 0x2d, 0x23, + 0x2a, 0x00, 0x49, 0x9f, 0x12, 0x25, 0x2a, 0x00, 0xb3, 0x11, 0x06, 0x35, + 0x23, 0x01, 0xff, 0x45, 0x5c, 0x00, 0x24, 0x2a, 0x00, 0x45, 0x20, 0x07, + 0x26, 0x2a, 0x40, 0x51, 0x76, 0x55, 0x22, 0x2a, 0x00, 0x4c, 0x27, 0x96, + 0x27, 0x2a, 0x40, 0x50, 0x86, 0x64, 0x2d, 0x2a, 0x00, 0x51, 0xa3, 0x5d, + 0x2e, 0x2a, 0x00, 0x48, 0x01, 0x02, 0x39, 0x2a, 0x40, 0xa3, 0xb7, 0x04, + 0x4c, 0x73, 0x92, 0x0e, 0x21, 0x80, 0xa9, 0x04, 0xb9, 0x01, 0xff, 0x4c, + 0x5b, 0x8f, 0xdd, 0xf6, 0x01, 0x09, 0x74, 0xba, 0x01, 0xff, 0x07, 0x36, + 0x79, 0xfe, 0x03, 0xa2, 0xef, 0x03, 0x09, 0x3d, 0xb8, 0xd2, 0x03, 0xa6, + 0x8d, 0x03, 0x08, 0x50, 0xc7, 0xf0, 0x02, 0xab, 0xb4, 0x02, 0x08, 0xb8, + 0xc8, 0x97, 0x02, 0x09, 0x52, 0xbe, 0xfa, 0x01, 0x49, 0x91, 0xbe, 0xbf, + 0xf0, 0x01, 0xb3, 0xb8, 0x01, 0xb4, 0x06, 0x4b, 0x08, 0xa5, 0xdf, 0xf0, + 0x41, 0x06, 0x55, 0xbe, 0x93, 0x01, 0x08, 0xc8, 0xc6, 0x77, 0x05, 0x9c, + 0xea, 0x1d, 0x06, 0x4e, 0xe1, 0x01, 0xff, 0x45, 0x5b, 0xe5, 0xd2, 0xf0, + 0x01, 0x48, 0x10, 0xc5, 0xc2, 0xf0, 0x01, 0x46, 0xcf, 0x86, 0xb2, 0xf0, + 0x01, 0x46, 0xf8, 0xdf, 0xa2, 0xf0, 0x41, 0xd1, 0xe1, 0xf0, 0x81, 0x29, + 0xd2, 0xe2, 0xf0, 0x81, 0x1c, 0xd3, 0xe3, 0xf0, 0x01, 0xd4, 0xe4, 0xf0, + 0x01, 0xd5, 0xe5, 0xf0, 0x01, 0xd6, 0xe6, 0xf0, 0x01, 0xd7, 0xe7, 0xf0, + 0x01, 0xd8, 0xe8, 0xf0, 0x01, 0xd9, 0xe9, 0xf0, 0x41, 0xd0, 0xf4, 0xf0, + 0x01, 0xd1, 0xf5, 0xf0, 0x41, 0xd0, 0xea, 0xf0, 0x01, 0xd1, 0xeb, 0xf0, + 0x01, 0xd2, 0xec, 0xf0, 0x01, 0xd3, 0xed, 0xf0, 0x01, 0xd4, 0xee, 0xf0, + 0x01, 0xd5, 0xef, 0xf0, 0x01, 0xd6, 0xf0, 0xf0, 0x01, 0xd7, 0xf1, 0xf0, + 0x01, 0xd8, 0xf2, 0xf0, 0x01, 0xd9, 0xf3, 0xf0, 0x41, 0x45, 0x5b, 0xe5, + 0xd3, 0xf0, 0x01, 0x48, 0x10, 0xc5, 0xc3, 0xf0, 0x01, 0x46, 0xcf, 0x86, + 0xb3, 0xf0, 0x01, 0x46, 0xf8, 0xdf, 0xa3, 0xf0, 0x41, 0x45, 0x5b, 0xe5, + 0xda, 0xf0, 0x01, 0x48, 0x10, 0xc5, 0xca, 0xf0, 0x01, 0x46, 0xcf, 0x86, + 0xba, 0xf0, 0x01, 0x46, 0xf8, 0xdf, 0xaa, 0xf0, 0x41, 0x08, 0x00, 0xc6, + 0x1d, 0x06, 0x40, 0xdd, 0x01, 0xff, 0x45, 0x5b, 0xe5, 0xd6, 0xf0, 0x01, + 0x48, 0x10, 0xc5, 0xc6, 0xf0, 0x01, 0x46, 0xcf, 0x86, 0xb6, 0xf0, 0x01, + 0x46, 0xf8, 0xdf, 0xa6, 0xf0, 0x41, 0x45, 0x5b, 0xe5, 0xd7, 0xf0, 0x01, + 0x48, 0x10, 0xc5, 0xc7, 0xf0, 0x01, 0x46, 0xcf, 0x86, 0xb7, 0xf0, 0x01, + 0x46, 0xf8, 0xdf, 0xa7, 0xf0, 0x41, 0x45, 0x5b, 0xe5, 0xdd, 0xf0, 0x01, + 0x48, 0x10, 0xc5, 0xcd, 0xf0, 0x01, 0x46, 0xcf, 0x86, 0xbd, 0xf0, 0x01, + 0x46, 0xf8, 0xdf, 0xad, 0xf0, 0x41, 0x45, 0x5b, 0xe5, 0xd9, 0xf0, 0x01, + 0x48, 0x10, 0xc5, 0xc9, 0xf0, 0x01, 0x46, 0xcf, 0x86, 0xb9, 0xf0, 0x01, + 0x46, 0xf8, 0xdf, 0xa9, 0xf0, 0x41, 0x07, 0x67, 0x39, 0x1d, 0x09, 0x75, + 0xbc, 0x01, 0xff, 0x45, 0x5b, 0xe5, 0xdc, 0xf0, 0x01, 0x48, 0x10, 0xc5, + 0xcc, 0xf0, 0x01, 0x46, 0xcf, 0x86, 0xbc, 0xf0, 0x01, 0x46, 0xf8, 0xdf, + 0xac, 0xf0, 0x41, 0x45, 0x5b, 0xe5, 0xde, 0xf0, 0x01, 0x48, 0x10, 0xc5, + 0xce, 0xf0, 0x01, 0x46, 0xcf, 0x86, 0xbe, 0xf0, 0x01, 0x46, 0xf8, 0xdf, + 0xae, 0xf0, 0x41, 0x45, 0x5b, 0xe5, 0xdb, 0xf0, 0x01, 0x48, 0x10, 0xc5, + 0xcb, 0xf0, 0x01, 0x46, 0xcf, 0x86, 0xbb, 0xf0, 0x01, 0x46, 0xf8, 0xdf, + 0xab, 0xf0, 0x41, 0x07, 0x19, 0xd2, 0x26, 0xaf, 0x01, 0xff, 0x42, 0x61, + 0x03, 0xe0, 0xf0, 0x01, 0x06, 0x2e, 0xd4, 0x01, 0xff, 0x45, 0x5b, 0xe5, + 0xd4, 0xf0, 0x01, 0x48, 0x10, 0xc5, 0xc4, 0xf0, 0x01, 0x46, 0xcf, 0x86, + 0xb4, 0xf0, 0x01, 0x46, 0xf8, 0xdf, 0xa4, 0xf0, 0x41, 0x45, 0x5b, 0xe5, + 0xd5, 0xf0, 0x01, 0x48, 0x10, 0xc5, 0xc5, 0xf0, 0x01, 0x46, 0xcf, 0x86, + 0xb5, 0xf0, 0x01, 0x46, 0xf8, 0xdf, 0xa5, 0xf0, 0x41, 0x45, 0x5b, 0xe5, + 0xd8, 0xf0, 0x01, 0x48, 0x10, 0xc5, 0xc8, 0xf0, 0x01, 0x46, 0xcf, 0x86, + 0xb8, 0xf0, 0x01, 0x46, 0xf8, 0xdf, 0xa8, 0xf0, 0x41, 0x43, 0x0e, 0x03, + 0xa0, 0xf0, 0x01, 0x4a, 0x77, 0xac, 0xcf, 0xf0, 0x41, 0x45, 0x5b, 0xe5, + 0xd1, 0xf0, 0x01, 0x48, 0x10, 0xc5, 0xc1, 0xf0, 0x01, 0x46, 0xcf, 0x86, + 0xb1, 0xf0, 0x01, 0x46, 0xf8, 0xdf, 0xa1, 0xf0, 0x41, 0x4c, 0x77, 0x8b, + 0x0f, 0x21, 0x40, 0x43, 0xaa, 0x01, 0xa7, 0xfa, 0x01, 0x05, 0x24, 0x43, + 0x01, 0xff, 0x4d, 0x3e, 0x84, 0x18, 0x23, 0x00, 0x47, 0x9f, 0xd7, 0xd0, + 0xf6, 0x41, 0x42, 0x36, 0x01, 0xcf, 0x26, 0x80, 0x77, 0xe5, 0x67, 0xf9, + 0x01, 0xe7, 0x16, 0xf4, 0x81, 0x5f, 0xac, 0x4d, 0xae, 0x1b, 0xb3, 0x0d, + 0x47, 0x41, 0xd6, 0xd4, 0x22, 0xc0, 0x00, 0x4d, 0xed, 0x7f, 0xda, 0x2a, + 0x40, 0x43, 0x43, 0x7c, 0x53, 0x26, 0x00, 0x43, 0xbd, 0x3c, 0x2b, 0xf5, + 0x41, 0x43, 0xd7, 0x18, 0x85, 0xfa, 0x01, 0x02, 0x6d, 0x14, 0x1a, 0xa5, + 0x0c, 0x47, 0x08, 0x29, 0x77, 0xfa, 0x01, 0x4a, 0x2b, 0x13, 0x2f, 0x27, + 0x40, 0x4b, 0x5e, 0x97, 0x8d, 0xf3, 0x01, 0x45, 0x57, 0xe4, 0x4d, 0xf3, + 0x41, 0x4a, 0xa7, 0xa9, 0x0c, 0xf9, 0x01, 0x48, 0x24, 0x2d, 0x0f, 0xf9, + 0x41, 0x49, 0x59, 0x9d, 0xb6, 0x00, 0x00, 0x48, 0x60, 0xc5, 0xa9, 0xf4, + 0x01, 0xec, 0x8a, 0xf4, 0x41, 0x80, 0x01, 0xff, 0x44, 0x0c, 0x08, 0x37, + 0xf4, 0x01, 0x44, 0x15, 0x17, 0x3d, 0xf4, 0x41, 0x48, 0x28, 0xcc, 0xfb, + 0xf6, 0x41, 0xa1, 0xde, 0x01, 0x09, 0x47, 0xba, 0xcd, 0x01, 0xaf, 0x01, + 0xff, 0x08, 0xa0, 0xc5, 0x06, 0x43, 0x59, 0x28, 0xdb, 0x2b, 0x40, 0x07, + 0xec, 0x05, 0x33, 0x07, 0xff, 0x39, 0x06, 0x4e, 0xd7, 0x7e, 0x1f, 0x09, + 0x41, 0x43, 0x0e, 0x0b, 0x16, 0x09, 0x81, 0x1c, 0xb4, 0x01, 0xff, 0x42, + 0x92, 0x01, 0x17, 0x09, 0x01, 0x44, 0x25, 0x01, 0x1b, 0x09, 0x01, 0xb7, + 0x01, 0xff, 0x44, 0xcb, 0x1d, 0x18, 0x09, 0x01, 0xef, 0x1a, 0x09, 0x41, + 0x48, 0x70, 0x11, 0x19, 0x09, 0x41, 0xa1, 0x7b, 0x43, 0xc0, 0x09, 0x01, + 0x09, 0x01, 0x44, 0x7e, 0xe5, 0x03, 0x09, 0x01, 0x44, 0xe5, 0xef, 0x02, + 0x09, 0x01, 0x42, 0xb0, 0x01, 0x04, 0x09, 0x81, 0x5e, 0x43, 0xa7, 0x51, + 0x0a, 0x09, 0x01, 0x44, 0x17, 0xe8, 0x0b, 0x09, 0x01, 0x43, 0xb4, 0x05, + 0x0c, 0x09, 0x01, 0x43, 0xdc, 0x22, 0x0d, 0x09, 0x01, 0x42, 0x6f, 0x02, + 0x10, 0x09, 0x01, 0x43, 0x91, 0xf4, 0x12, 0x09, 0x01, 0x44, 0xab, 0xb9, + 0x13, 0x09, 0x01, 0xb3, 0x20, 0xb4, 0x12, 0x43, 0x09, 0xa4, 0x05, 0x09, + 0x01, 0x43, 0xa1, 0x52, 0x09, 0x09, 0x01, 0x43, 0x27, 0x75, 0x06, 0x09, + 0x41, 0x42, 0x5f, 0x24, 0x15, 0x09, 0x01, 0x42, 0xed, 0x05, 0x08, 0x09, + 0x41, 0x43, 0x0c, 0x02, 0x11, 0x09, 0x01, 0x43, 0xf3, 0x82, 0x0e, 0x09, + 0x01, 0x43, 0x7a, 0x16, 0x14, 0x09, 0x41, 0xf4, 0x07, 0x09, 0x41, 0x42, + 0x9e, 0x01, 0x0f, 0x09, 0x01, 0x42, 0x24, 0x00, 0x00, 0x09, 0x41, 0x52, + 0x07, 0x51, 0x36, 0x17, 0x00, 0x52, 0x63, 0x55, 0x35, 0x17, 0x40, 0x06, + 0x32, 0xdc, 0xc7, 0x02, 0x10, 0x36, 0x64, 0x01, 0xff, 0x45, 0xce, 0x00, + 0xd9, 0x01, 0x01, 0xa2, 0x9a, 0x02, 0xa3, 0xe3, 0x01, 0x02, 0x3b, 0x01, + 0xd2, 0x01, 0x45, 0xb5, 0xe5, 0xee, 0x01, 0x01, 0x45, 0x73, 0xe6, 0xf8, + 0x01, 0x01, 0xa7, 0xb7, 0x01, 0xa8, 0xa2, 0x01, 0x02, 0xc3, 0x01, 0x93, + 0x01, 0x02, 0x6c, 0x00, 0x82, 0x01, 0x47, 0x5e, 0xd4, 0xf7, 0x01, 0x01, + 0xb0, 0x5f, 0xb2, 0x51, 0xb3, 0x29, 0xb4, 0x15, 0x44, 0x10, 0xc1, 0xf3, + 0x01, 0x01, 0xb7, 0x01, 0xff, 0x48, 0xd0, 0xc3, 0xfc, 0x01, 0x01, 0x44, + 0x1b, 0x2d, 0xd5, 0x01, 0x41, 0x4c, 0x7f, 0x8c, 0xd2, 0x01, 0x01, 0x44, + 0x71, 0xf0, 0xd8, 0x01, 0x01, 0x44, 0x9d, 0x60, 0xf0, 0x01, 0x41, 0x42, + 0xb7, 0x2d, 0xdf, 0x01, 0x01, 0x02, 0x49, 0x00, 0x12, 0x44, 0x2f, 0x0b, + 0xe5, 0x01, 0x01, 0x48, 0x18, 0xc8, 0xfb, 0x01, 0x01, 0x47, 0x79, 0xd6, + 0xfa, 0x01, 0x41, 0x43, 0x02, 0x24, 0xdb, 0x01, 0x01, 0xf0, 0xe8, 0x01, + 0x41, 0x42, 0x57, 0x00, 0xed, 0x01, 0x01, 0x46, 0xf0, 0xde, 0xf5, 0x01, + 0x41, 0x46, 0xd4, 0xd9, 0xf4, 0x01, 0x01, 0x49, 0xb1, 0xa9, 0xd0, 0x01, + 0x01, 0xac, 0x01, 0xff, 0x48, 0x58, 0xc3, 0xf2, 0x01, 0x01, 0x49, 0x4a, + 0xc0, 0xd1, 0x01, 0x41, 0x46, 0x2a, 0xde, 0xdd, 0x01, 0x01, 0x45, 0x91, + 0xeb, 0xde, 0x01, 0x41, 0xe4, 0xe0, 0x01, 0x01, 0x42, 0x75, 0x0b, 0xf6, + 0x01, 0x41, 0x45, 0xf3, 0xc2, 0xd6, 0x01, 0x01, 0x43, 0x03, 0x00, 0xea, + 0x01, 0x01, 0x43, 0x28, 0x05, 0xe9, 0x01, 0x41, 0x47, 0x41, 0xcf, 0xd7, + 0x01, 0x01, 0x45, 0x9f, 0xa1, 0xf9, 0x01, 0x41, 0x44, 0x09, 0xf1, 0xe3, + 0x01, 0x01, 0x42, 0x32, 0x00, 0xef, 0x01, 0x41, 0xa1, 0x22, 0x44, 0x28, + 0x4a, 0xd4, 0x01, 0x01, 0x43, 0x20, 0x4b, 0xdc, 0x01, 0x01, 0xaf, 0x01, + 0xff, 0x44, 0x1d, 0xf1, 0xe6, 0x01, 0x01, 0x42, 0xb6, 0x05, 0xe4, 0x01, + 0xc1, 0x00, 0x54, 0x48, 0x43, 0xfd, 0x01, 0x41, 0x45, 0x4c, 0x72, 0xd3, + 0x01, 0x01, 0x4d, 0x1a, 0x88, 0xe2, 0x01, 0x01, 0xf4, 0xec, 0x01, 0x41, + 0x42, 0x27, 0x01, 0xf1, 0x01, 0x81, 0x12, 0xaf, 0x06, 0x48, 0x08, 0xcc, + 0xeb, 0x01, 0x41, 0x47, 0xd9, 0xd3, 0xe1, 0x01, 0x01, 0xf7, 0xda, 0x01, + 0x41, 0x44, 0x98, 0x84, 0xe7, 0x01, 0x41, 0x50, 0x26, 0x62, 0x75, 0xa8, + 0x00, 0x07, 0xec, 0x05, 0x38, 0x05, 0xb9, 0x00, 0x28, 0xb3, 0x01, 0xff, + 0x4f, 0xb5, 0x6e, 0x74, 0xa8, 0x00, 0xb5, 0x01, 0xff, 0x0f, 0xd7, 0x67, + 0x06, 0x52, 0x8b, 0x54, 0x72, 0xa8, 0x40, 0x42, 0x71, 0x00, 0x71, 0xa8, + 0x00, 0x42, 0xa9, 0x01, 0x67, 0xa8, 0x00, 0x42, 0xbc, 0x22, 0x68, 0xa8, + 0x40, 0x4b, 0x47, 0x9b, 0x77, 0xa8, 0x00, 0x44, 0xa4, 0x02, 0x76, 0xa8, + 0x40, 0xe1, 0x5d, 0xa8, 0x80, 0x92, 0x02, 0x42, 0x16, 0x00, 0x4e, 0xa8, + 0x00, 0xa3, 0xf8, 0x01, 0xa4, 0xe5, 0x01, 0xe5, 0x60, 0xa8, 0x80, 0xdb, + 0x01, 0x42, 0x0c, 0x08, 0x64, 0xa8, 0x00, 0xa7, 0xc8, 0x01, 0x42, 0x22, + 0x00, 0x5c, 0xa8, 0x00, 0xe9, 0x5e, 0xa8, 0x00, 0x42, 0x56, 0x19, 0x46, + 0xa8, 0x00, 0xab, 0xab, 0x01, 0x42, 0x74, 0x00, 0x59, 0xa8, 0x00, 0x42, + 0x6c, 0x00, 0x4f, 0xa8, 0x00, 0xae, 0x86, 0x01, 0xef, 0x61, 0xa8, 0x00, + 0xb0, 0x76, 0x42, 0x43, 0x14, 0x62, 0xa8, 0x00, 0x42, 0x71, 0x00, 0x58, + 0xa8, 0x00, 0xb3, 0x58, 0xb4, 0x33, 0xf5, 0x5f, 0xa8, 0x00, 0x05, 0x0a, + 0x1d, 0x1f, 0x42, 0xa9, 0x01, 0x53, 0xa8, 0x00, 0x42, 0xed, 0x26, 0x63, + 0xa8, 0x00, 0x42, 0xbc, 0x22, 0x57, 0xa8, 0x00, 0xba, 0x01, 0xff, 0xe1, + 0x55, 0xa8, 0x00, 0x42, 0x22, 0x00, 0x54, 0xa8, 0x40, 0x44, 0xd6, 0x10, + 0x6f, 0xa8, 0x00, 0x48, 0xb0, 0xc7, 0x6e, 0xa8, 0x40, 0xe1, 0x48, 0xa8, + 0x00, 0x42, 0x22, 0x00, 0x49, 0xa8, 0x00, 0xb3, 0x0d, 0xb4, 0x01, 0xff, + 0xe1, 0x69, 0xa8, 0x00, 0x42, 0x22, 0x00, 0x6a, 0xa8, 0x40, 0xe1, 0x50, + 0xa8, 0x00, 0x42, 0x22, 0x00, 0x51, 0xa8, 0x40, 0xe1, 0x5b, 0xa8, 0x00, + 0x42, 0x22, 0x00, 0x5a, 0xa8, 0x00, 0x46, 0x04, 0x0a, 0x56, 0xa8, 0x40, + 0xe1, 0x4c, 0xa8, 0x00, 0x42, 0x22, 0x00, 0x4d, 0xa8, 0x40, 0xe1, 0x4b, + 0xa8, 0x00, 0x42, 0x24, 0x02, 0x43, 0xa8, 0x00, 0x42, 0x2a, 0x05, 0x6c, + 0xa8, 0x00, 0x42, 0xbc, 0x22, 0x47, 0xa8, 0x40, 0xe1, 0x40, 0xa8, 0x00, + 0x42, 0x22, 0x00, 0x41, 0xa8, 0x40, 0xe1, 0x42, 0xa8, 0x00, 0x42, 0x24, + 0x02, 0x65, 0xa8, 0x40, 0xe5, 0x66, 0xa8, 0x40, 0xe1, 0x4a, 0xa8, 0x00, + 0x42, 0xf0, 0x10, 0x6b, 0xa8, 0x00, 0x42, 0x59, 0x00, 0x52, 0xa8, 0x40, + 0xe1, 0x44, 0xa8, 0x80, 0x06, 0x42, 0x22, 0x00, 0x45, 0xa8, 0x40, 0x49, + 0xd9, 0x23, 0x73, 0xa8, 0x40, 0x4b, 0x1a, 0x9f, 0x6d, 0xa8, 0x00, 0x4b, + 0xcc, 0xa2, 0x70, 0xa8, 0x40, 0xa1, 0xeb, 0x01, 0x48, 0xb2, 0xa9, 0xb6, + 0xf6, 0x01, 0xae, 0xc4, 0x01, 0x4c, 0x4b, 0x93, 0xc2, 0xfa, 0x01, 0xb2, + 0x14, 0xb3, 0x06, 0x48, 0xb8, 0xcb, 0xeb, 0xf9, 0x41, 0x48, 0xe8, 0xc5, + 0xa7, 0x20, 0x00, 0x46, 0x21, 0xb1, 0xb1, 0x20, 0x40, 0x80, 0x93, 0x01, + 0x49, 0xe3, 0x9b, 0x25, 0x00, 0x00, 0x4c, 0x07, 0x8f, 0xad, 0xf3, 0x01, + 0x51, 0x0b, 0x5c, 0x7e, 0x26, 0x00, 0x4a, 0xa9, 0x8e, 0xc2, 0x27, 0x80, + 0x74, 0xb3, 0x01, 0xff, 0x4c, 0xbf, 0x8e, 0x23, 0xf6, 0x01, 0x02, 0x10, + 0x00, 0x06, 0x47, 0x9d, 0xd4, 0x06, 0x23, 0x40, 0x80, 0x06, 0x4b, 0xe4, + 0x86, 0xbb, 0xf4, 0x41, 0x4d, 0x3f, 0x81, 0x47, 0xf6, 0x01, 0x48, 0xb8, + 0xc4, 0xd7, 0xf9, 0x01, 0x4f, 0x30, 0x6c, 0x38, 0xf9, 0x01, 0x48, 0x13, + 0x83, 0x4d, 0xf6, 0x01, 0x03, 0xe1, 0x05, 0x31, 0x61, 0x6e, 0x0e, 0x4c, + 0xf6, 0x01, 0x05, 0x51, 0x00, 0x01, 0xff, 0xa2, 0x18, 0x45, 0x60, 0xe5, + 0xc5, 0xfa, 0x01, 0x4c, 0xfb, 0x8e, 0x4f, 0xf6, 0x01, 0x49, 0x8a, 0xb9, + 0xd5, 0xf9, 0x01, 0x4c, 0xc3, 0x93, 0x4e, 0xf6, 0x41, 0x43, 0x5f, 0x07, + 0xf9, 0x26, 0x00, 0x49, 0xa6, 0xbb, 0x71, 0xf4, 0x41, 0x4e, 0xa5, 0x79, + 0xd8, 0xf9, 0x01, 0x4b, 0xe2, 0xa2, 0xd6, 0xf9, 0x41, 0x47, 0x69, 0x06, + 0xe1, 0x2a, 0x40, 0x4a, 0xdf, 0xad, 0x30, 0x20, 0x00, 0x44, 0x5a, 0x03, + 0x4c, 0x21, 0x00, 0x51, 0x3c, 0x5e, 0x31, 0x20, 0x40, 0x56, 0x35, 0x32, + 0x86, 0xf5, 0x01, 0x43, 0xfe, 0xbf, 0x0f, 0x27, 0x00, 0x44, 0x19, 0xf0, + 0x27, 0xf4, 0x01, 0x49, 0x3c, 0xbf, 0x14, 0xf6, 0x01, 0x46, 0x9a, 0x1b, + 0xe4, 0x26, 0x40, 0x44, 0x60, 0xa1, 0xdb, 0xfa, 0x01, 0xa3, 0x0a, 0x44, + 0x1b, 0xeb, 0x5c, 0xf9, 0x01, 0xf2, 0x50, 0xf3, 0x41, 0x48, 0x42, 0x19, + 0x2e, 0x26, 0x00, 0xe8, 0x51, 0xf3, 0x01, 0x43, 0x35, 0x01, 0x9a, 0xf9, + 0x41, 0x45, 0x47, 0xe5, 0xe6, 0xf4, 0x01, 0xa7, 0x87, 0x14, 0x0b, 0xbd, + 0x9c, 0xa3, 0x0d, 0xac, 0x94, 0x0b, 0xae, 0x85, 0x0b, 0x47, 0x62, 0x82, + 0xce, 0xf4, 0x01, 0xb2, 0x96, 0x03, 0x02, 0xee, 0x00, 0xed, 0x02, 0x0a, + 0x67, 0xb2, 0x06, 0x48, 0x60, 0xcc, 0x3e, 0xf4, 0x41, 0x4c, 0xce, 0x28, + 0xf5, 0x1a, 0x81, 0xcc, 0x02, 0xac, 0x62, 0x4e, 0xeb, 0x79, 0xef, 0x1a, + 0x81, 0x4c, 0x4b, 0xc6, 0x66, 0xe6, 0x1a, 0x81, 0x2f, 0x07, 0xa0, 0xd5, + 0x01, 0xff, 0x4c, 0xce, 0x28, 0xe7, 0x1a, 0x81, 0x1d, 0x44, 0x3b, 0x2d, + 0xec, 0x1a, 0xc1, 0x00, 0x80, 0x01, 0xff, 0x45, 0xf5, 0x2c, 0xee, 0x1a, + 0x01, 0x44, 0xd7, 0x02, 0xeb, 0x1a, 0xc1, 0x00, 0x46, 0xf4, 0x2c, 0xed, + 0x1a, 0x41, 0x46, 0xf4, 0x2c, 0xea, 0x1a, 0x41, 0x80, 0x01, 0xff, 0x45, + 0xf5, 0x2c, 0xe9, 0x1a, 0x01, 0x44, 0xd7, 0x02, 0xe5, 0x1a, 0xc1, 0x00, + 0x46, 0xf4, 0x2c, 0xe8, 0x1a, 0x41, 0x80, 0x01, 0xff, 0x45, 0xf5, 0x2c, + 0xf2, 0x1a, 0x01, 0x4a, 0x3f, 0xad, 0xf1, 0x1a, 0x41, 0x06, 0xed, 0x05, + 0x1d, 0x4f, 0x94, 0x71, 0xf4, 0x1a, 0xc1, 0x00, 0x80, 0x01, 0xff, 0x45, + 0xf5, 0x2c, 0xf7, 0x1a, 0x01, 0x44, 0xd7, 0x02, 0xf3, 0x1a, 0xc1, 0x00, + 0x46, 0xf4, 0x2c, 0xf6, 0x1a, 0x41, 0xe1, 0xd5, 0x1a, 0x01, 0x42, 0x16, + 0x00, 0xcc, 0x1a, 0x01, 0xa3, 0xb0, 0x01, 0x42, 0xf0, 0x10, 0xc4, 0x1a, + 0x01, 0xe5, 0xd6, 0x1a, 0x01, 0xa6, 0x76, 0x42, 0x24, 0x02, 0xc9, 0x1a, + 0x01, 0x42, 0x22, 0x00, 0xc8, 0x1a, 0x01, 0xe9, 0xd7, 0x1a, 0x81, 0x61, + 0xab, 0x55, 0x42, 0x74, 0x00, 0xc2, 0x1a, 0x01, 0x42, 0x6c, 0x00, 0xc3, + 0x1a, 0x01, 0xae, 0x3d, 0xef, 0xd8, 0x1a, 0x01, 0xb0, 0x2d, 0x42, 0x71, + 0x00, 0xd2, 0x1a, 0x01, 0x42, 0x40, 0x06, 0xcb, 0x1a, 0x01, 0xb4, 0x15, + 0xf5, 0xd9, 0x1a, 0x81, 0x0c, 0x42, 0xf5, 0x0a, 0xc6, 0x1a, 0x01, 0x42, + 0x59, 0x00, 0xc5, 0x1a, 0x41, 0xe1, 0xda, 0x1a, 0x41, 0xe1, 0xce, 0x1a, + 0x01, 0x42, 0x22, 0x00, 0xcf, 0x1a, 0x41, 0xe1, 0xc0, 0x1a, 0x01, 0x42, + 0x22, 0x00, 0xd1, 0x1a, 0x41, 0xe1, 0xd0, 0x1a, 0x01, 0x42, 0x24, 0x02, + 0xc7, 0x1a, 0x41, 0xe1, 0xc1, 0x1a, 0x01, 0x42, 0x22, 0x00, 0xca, 0x1a, + 0x41, 0xe1, 0xdb, 0x1a, 0x41, 0xe1, 0xd3, 0x1a, 0x01, 0x05, 0xe8, 0x27, + 0x01, 0xff, 0xeb, 0xdd, 0x1a, 0x01, 0xec, 0xe1, 0x1a, 0x01, 0xed, 0xdf, + 0x1a, 0x01, 0xee, 0xe0, 0x1a, 0x81, 0x10, 0xf0, 0xdc, 0x1a, 0x01, 0xf4, + 0xde, 0x1a, 0x01, 0xf7, 0xe2, 0x1a, 0x01, 0xf9, 0xe4, 0x1a, 0x41, 0xe7, + 0xe3, 0x1a, 0x41, 0xe1, 0xcd, 0x1a, 0x01, 0x42, 0x22, 0x00, 0xd4, 0x1a, + 0x41, 0x80, 0x01, 0xff, 0x45, 0xf5, 0x2c, 0xf8, 0x1a, 0x01, 0x47, 0x64, + 0x4e, 0xf0, 0x1a, 0x41, 0xa5, 0x16, 0x09, 0xce, 0xba, 0x06, 0x4c, 0xb7, + 0x93, 0xc2, 0xf6, 0x41, 0x52, 0x19, 0x51, 0x91, 0x23, 0x00, 0x50, 0x26, + 0x68, 0x92, 0x23, 0x40, 0x48, 0x78, 0x20, 0xfd, 0x2b, 0x00, 0x49, 0x5a, + 0xbc, 0xf3, 0xf6, 0x41, 0xa1, 0xab, 0x07, 0x0b, 0xc0, 0x9b, 0x57, 0x43, + 0xa4, 0x2c, 0x9c, 0xf9, 0x01, 0xb4, 0x01, 0xff, 0x51, 0xdd, 0x56, 0x3d, + 0x30, 0x00, 0x46, 0x6e, 0xdc, 0xc4, 0xce, 0x81, 0x3b, 0x03, 0x8b, 0x0c, + 0x0c, 0x4c, 0x8b, 0x92, 0x50, 0x32, 0x00, 0x48, 0xb8, 0xcc, 0x89, 0xf3, + 0x41, 0x80, 0x06, 0x58, 0xd6, 0x29, 0x7d, 0x26, 0x40, 0x4c, 0x55, 0x48, + 0x02, 0x22, 0x00, 0x05, 0xed, 0x07, 0x01, 0xff, 0x48, 0xe8, 0xc3, 0x8c, + 0x00, 0x00, 0x44, 0xa5, 0x01, 0x8b, 0x00, 0x00, 0x47, 0x8d, 0x31, 0x8b, + 0x00, 0x00, 0x42, 0x50, 0x02, 0x8c, 0x00, 0x40, 0x49, 0x21, 0x2e, 0x7a, + 0xf7, 0x41, 0x06, 0xef, 0x06, 0x8e, 0x06, 0x07, 0x78, 0xd1, 0xc2, 0x04, + 0x0a, 0x7d, 0xab, 0xc3, 0x02, 0x12, 0x47, 0x53, 0xb2, 0x02, 0x06, 0xde, + 0x05, 0x55, 0x07, 0xff, 0x39, 0x01, 0xff, 0xa5, 0x42, 0xa6, 0x34, 0x48, + 0xc5, 0x53, 0x86, 0x24, 0x00, 0xb3, 0x20, 0xb4, 0x01, 0xff, 0x42, 0x92, + 0x01, 0x7d, 0x24, 0x00, 0x47, 0x95, 0x5a, 0x80, 0x24, 0x00, 0x02, 0x15, + 0x01, 0x01, 0xff, 0x43, 0xe8, 0x2b, 0x7f, 0x24, 0x00, 0x43, 0xcc, 0x1d, + 0x87, 0x24, 0x40, 0x48, 0x85, 0x51, 0x84, 0x24, 0x00, 0x46, 0x01, 0x26, + 0x83, 0x24, 0x40, 0x46, 0x08, 0x18, 0x82, 0x24, 0x00, 0x47, 0x0a, 0x5d, + 0x81, 0x24, 0x40, 0x47, 0x52, 0x25, 0x85, 0x24, 0x00, 0x45, 0xb4, 0x6f, + 0x7e, 0x24, 0x40, 0x0f, 0xe4, 0x05, 0x6d, 0x0d, 0x76, 0x08, 0x01, 0xff, + 0xe1, 0x9c, 0x24, 0x00, 0xe2, 0x9d, 0x24, 0x00, 0xe3, 0x9e, 0x24, 0x00, + 0xe4, 0x9f, 0x24, 0x00, 0xe5, 0xa0, 0x24, 0x00, 0xe6, 0xa1, 0x24, 0x00, + 0xe7, 0xa2, 0x24, 0x00, 0xe8, 0xa3, 0x24, 0x00, 0xe9, 0xa4, 0x24, 0x00, + 0xea, 0xa5, 0x24, 0x00, 0xeb, 0xa6, 0x24, 0x00, 0xec, 0xa7, 0x24, 0x00, + 0xed, 0xa8, 0x24, 0x00, 0xee, 0xa9, 0x24, 0x00, 0xef, 0xaa, 0x24, 0x00, + 0xf0, 0xab, 0x24, 0x00, 0xf1, 0xac, 0x24, 0x00, 0xf2, 0xad, 0x24, 0x00, + 0xf3, 0xae, 0x24, 0x00, 0xf4, 0xaf, 0x24, 0x00, 0xf5, 0xb0, 0x24, 0x00, + 0xf6, 0xb1, 0x24, 0x00, 0xf7, 0xb2, 0x24, 0x00, 0xf8, 0xb3, 0x24, 0x00, + 0xf9, 0xb4, 0x24, 0x00, 0xfa, 0xb5, 0x24, 0x40, 0xe1, 0x10, 0xf1, 0x01, + 0xe2, 0x11, 0xf1, 0x01, 0xe3, 0x12, 0xf1, 0x01, 0xe4, 0x13, 0xf1, 0x01, + 0xe5, 0x14, 0xf1, 0x01, 0xe6, 0x15, 0xf1, 0x01, 0xe7, 0x16, 0xf1, 0x01, + 0xe8, 0x17, 0xf1, 0x01, 0xe9, 0x18, 0xf1, 0x01, 0xea, 0x19, 0xf1, 0x01, + 0xeb, 0x1a, 0xf1, 0x01, 0xec, 0x1b, 0xf1, 0x01, 0xed, 0x1c, 0xf1, 0x01, + 0xee, 0x1d, 0xf1, 0x01, 0xef, 0x1e, 0xf1, 0x01, 0xf0, 0x1f, 0xf1, 0x01, + 0xf1, 0x20, 0xf1, 0x01, 0xf2, 0x21, 0xf1, 0x01, 0xf3, 0x22, 0xf1, 0x01, + 0xf4, 0x23, 0xf1, 0x01, 0xf5, 0x24, 0xf1, 0x01, 0xf6, 0x25, 0xf1, 0x01, + 0xf7, 0x26, 0xf1, 0x01, 0xf8, 0x27, 0xf1, 0x01, 0xf9, 0x28, 0xf1, 0x01, + 0xfa, 0x29, 0xf1, 0x41, 0x43, 0x70, 0x11, 0x1e, 0x32, 0x00, 0x44, 0xad, + 0xf0, 0x1d, 0x32, 0x40, 0x48, 0x40, 0xc3, 0x3f, 0x32, 0x00, 0xa3, 0xe5, + 0x01, 0xa5, 0xd0, 0x01, 0xa6, 0xad, 0x01, 0x44, 0x1d, 0xf0, 0x32, 0x32, + 0x00, 0x45, 0x08, 0xe8, 0x38, 0x32, 0x00, 0xad, 0x92, 0x01, 0xae, 0x83, + 0x01, 0x43, 0x0e, 0x0b, 0x20, 0x32, 0x00, 0x02, 0x88, 0x00, 0x60, 0xb3, + 0x23, 0xb4, 0x0f, 0xb7, 0x01, 0xff, 0x44, 0x8a, 0x00, 0x2c, 0x32, 0x00, + 0x43, 0xb4, 0x2d, 0x2d, 0x32, 0x40, 0x42, 0x92, 0x01, 0x29, 0x32, 0x00, + 0x44, 0x25, 0x01, 0x22, 0x32, 0x00, 0x42, 0x15, 0x02, 0x21, 0x32, 0x40, + 0xa5, 0x2d, 0x42, 0x01, 0x26, 0x25, 0x32, 0x00, 0x46, 0xa8, 0xde, 0x33, + 0x32, 0x00, 0x46, 0x0e, 0xdf, 0x35, 0x32, 0x00, 0xb4, 0x0d, 0xb5, 0x01, + 0xff, 0xee, 0x30, 0x32, 0x00, 0x47, 0xb2, 0xd4, 0x3c, 0x32, 0x40, 0x43, + 0x35, 0x01, 0x31, 0x32, 0x00, 0x43, 0xa6, 0xf4, 0x3b, 0x32, 0x40, 0x42, + 0x24, 0x00, 0x42, 0x32, 0x00, 0x43, 0xca, 0x1d, 0x26, 0x32, 0x40, 0x43, + 0x8c, 0x2d, 0x43, 0x32, 0x00, 0x47, 0x8f, 0x80, 0x39, 0x32, 0x00, 0xb3, + 0x01, 0xff, 0x45, 0xc1, 0x5c, 0x3e, 0x32, 0x00, 0xf4, 0x41, 0x32, 0x40, + 0x43, 0x2b, 0x05, 0x34, 0x32, 0x00, 0x43, 0xee, 0x07, 0x28, 0x32, 0x40, + 0x44, 0x94, 0x0f, 0x2e, 0x32, 0x00, 0x43, 0xcd, 0x02, 0x2a, 0x32, 0x40, + 0x47, 0xec, 0xd0, 0x40, 0x32, 0x00, 0xa9, 0x06, 0x43, 0xf6, 0x06, 0x23, + 0x32, 0x40, 0x47, 0x69, 0xd3, 0x36, 0x32, 0x00, 0x42, 0x88, 0x00, 0x2b, + 0x32, 0x00, 0x42, 0x32, 0x00, 0x24, 0x32, 0x40, 0x44, 0x53, 0x72, 0x2f, + 0x32, 0x00, 0x44, 0xc9, 0x00, 0x27, 0x32, 0x00, 0x49, 0xa2, 0xbc, 0x3d, + 0x32, 0x40, 0x43, 0x5f, 0x07, 0x3a, 0x32, 0x00, 0x4d, 0x09, 0x87, 0x37, + 0x32, 0x40, 0xa3, 0xa5, 0x01, 0x45, 0x71, 0xa5, 0x0d, 0x32, 0x80, 0x97, + 0x01, 0x45, 0x1e, 0xcc, 0x07, 0x32, 0x80, 0x89, 0x01, 0xab, 0x6d, 0x45, + 0xa8, 0xe8, 0x04, 0x32, 0x80, 0x60, 0x45, 0x1b, 0xe9, 0x01, 0x32, 0x80, + 0x53, 0xb0, 0x37, 0x45, 0x65, 0xea, 0x03, 0x32, 0x80, 0x2a, 0x44, 0x65, + 0xbf, 0x06, 0x32, 0x80, 0x1d, 0xb4, 0x01, 0xff, 0x46, 0x57, 0xd6, 0x0b, + 0x32, 0x80, 0x0d, 0x45, 0xe5, 0xcd, 0x02, 0x32, 0xc0, 0x00, 0x42, 0x19, + 0x00, 0x10, 0x32, 0x40, 0x42, 0x19, 0x00, 0x19, 0x32, 0x40, 0x42, 0x19, + 0x00, 0x14, 0x32, 0x40, 0x42, 0x19, 0x00, 0x11, 0x32, 0x40, 0x46, 0xd2, + 0xc2, 0x0c, 0x32, 0x80, 0x0d, 0x44, 0xe3, 0x84, 0x05, 0x32, 0xc0, 0x00, + 0x42, 0x19, 0x00, 0x13, 0x32, 0x40, 0x42, 0x19, 0x00, 0x1a, 0x32, 0x40, + 0x42, 0x19, 0x00, 0x0f, 0x32, 0x40, 0x42, 0x19, 0x00, 0x12, 0x32, 0x40, + 0x46, 0xca, 0xc2, 0x0a, 0x32, 0x80, 0x0d, 0x45, 0xdd, 0xa2, 0x00, 0x32, + 0xc0, 0x00, 0x42, 0x19, 0x00, 0x0e, 0x32, 0x40, 0x42, 0x19, 0x00, 0x18, + 0x32, 0x40, 0x42, 0x19, 0x00, 0x15, 0x32, 0x40, 0x42, 0x19, 0x00, 0x1b, + 0x32, 0x40, 0x46, 0xea, 0xcf, 0x09, 0x32, 0x80, 0x12, 0x44, 0xeb, 0xcf, + 0x08, 0x32, 0xc0, 0x00, 0x80, 0x01, 0xff, 0xe1, 0x16, 0x32, 0x00, 0xf5, + 0x1c, 0x32, 0x40, 0x42, 0x19, 0x00, 0x17, 0x32, 0x40, 0x45, 0x12, 0x0b, + 0x7b, 0x24, 0x00, 0xa6, 0x29, 0x44, 0xcf, 0x2a, 0x7c, 0x24, 0x00, 0x43, + 0x0e, 0x0b, 0x74, 0x24, 0x00, 0xb3, 0x0f, 0xb4, 0x01, 0xff, 0x44, 0x25, + 0x01, 0x76, 0x24, 0x00, 0x42, 0x15, 0x02, 0x75, 0x24, 0x40, 0x44, 0xc9, + 0x1d, 0x7a, 0x24, 0x00, 0x42, 0x01, 0x26, 0x79, 0x24, 0x40, 0x43, 0xd2, + 0x05, 0x78, 0x24, 0x00, 0x43, 0xf6, 0x06, 0x77, 0x24, 0x40, 0x45, 0x3d, + 0xe5, 0x82, 0xfa, 0x01, 0x05, 0x81, 0x10, 0x1c, 0x05, 0x8c, 0x38, 0x01, + 0xff, 0x42, 0x1e, 0x00, 0x25, 0x22, 0x00, 0x05, 0x51, 0x00, 0x01, 0xff, + 0x51, 0x47, 0x05, 0xf2, 0x2a, 0x00, 0x4e, 0x78, 0x3e, 0xf3, 0x2a, 0x40, + 0x4a, 0xd7, 0x20, 0x29, 0x20, 0x00, 0x42, 0xa4, 0x0d, 0x0f, 0x2e, 0x00, + 0x47, 0xe6, 0x72, 0x4d, 0x2e, 0x40, 0x45, 0xe8, 0xe4, 0x5e, 0xf9, 0x01, + 0x47, 0x2f, 0xd0, 0x3c, 0xf4, 0x41, 0x43, 0x49, 0x0e, 0xb4, 0x26, 0x00, + 0xad, 0x01, 0xff, 0x80, 0xe8, 0x01, 0x4d, 0x5b, 0x88, 0x32, 0xf9, 0x01, + 0x06, 0x84, 0xe1, 0x01, 0xff, 0x02, 0x68, 0x00, 0x3a, 0x07, 0xff, 0x39, + 0x06, 0x56, 0xd9, 0x36, 0x78, 0x08, 0x41, 0xa6, 0x22, 0x43, 0x0e, 0x0b, + 0x79, 0x08, 0x01, 0xb4, 0x01, 0xff, 0x42, 0x92, 0x01, 0x7e, 0x08, 0x01, + 0x44, 0x25, 0x01, 0x7b, 0x08, 0x01, 0xb7, 0x01, 0xff, 0x44, 0xcb, 0x1d, + 0x7f, 0x08, 0x01, 0xef, 0x7a, 0x08, 0x41, 0x43, 0xd2, 0x05, 0x7d, 0x08, + 0x01, 0x43, 0xf6, 0x06, 0x7c, 0x08, 0x41, 0x53, 0x91, 0x49, 0x77, 0x08, + 0x01, 0x05, 0xee, 0x05, 0x01, 0xff, 0xa1, 0x85, 0x01, 0x44, 0x41, 0xef, + 0x61, 0x08, 0x01, 0x46, 0x23, 0x4a, 0x63, 0x08, 0x01, 0x49, 0xf1, 0xb8, + 0x6d, 0x08, 0x01, 0x45, 0xdd, 0xaa, 0x62, 0x08, 0x01, 0x42, 0xb0, 0x01, + 0x64, 0x08, 0x81, 0x60, 0x44, 0xcd, 0xf0, 0x6a, 0x08, 0x01, 0x46, 0x94, + 0xdd, 0x6b, 0x08, 0x01, 0x43, 0xb4, 0x05, 0x6c, 0x08, 0x01, 0x43, 0xdc, + 0x22, 0x6e, 0x08, 0x01, 0x42, 0x6f, 0x02, 0x71, 0x08, 0x01, 0x44, 0x4c, + 0xc8, 0x73, 0x08, 0x01, 0x44, 0x76, 0x66, 0x74, 0x08, 0x01, 0xb3, 0x20, + 0xb4, 0x12, 0x43, 0x8a, 0x8a, 0x65, 0x08, 0x01, 0x44, 0xa1, 0x52, 0x69, + 0x08, 0x01, 0x45, 0x9b, 0x52, 0x66, 0x08, 0x41, 0x42, 0xb7, 0x2d, 0x76, + 0x08, 0x01, 0x43, 0xda, 0x25, 0x68, 0x08, 0x41, 0xa1, 0x06, 0x43, 0x7a, + 0x16, 0x75, 0x08, 0x41, 0x43, 0xad, 0xea, 0x72, 0x08, 0x01, 0x44, 0x49, + 0xe4, 0x6f, 0x08, 0x41, 0x42, 0x53, 0x00, 0x67, 0x08, 0x41, 0x44, 0x18, + 0x3d, 0x60, 0x08, 0x01, 0x43, 0x7e, 0x1a, 0x70, 0x08, 0x41, 0x46, 0xd7, + 0x2f, 0x19, 0x2e, 0x00, 0x49, 0xbf, 0xb7, 0xf3, 0xfa, 0x01, 0x44, 0x0d, + 0x11, 0x34, 0xf3, 0x01, 0x47, 0xcd, 0xd6, 0xf4, 0xfa, 0x41, 0xa3, 0xcf, + 0x04, 0x06, 0xef, 0x06, 0x88, 0x04, 0x09, 0xe5, 0xbb, 0xd4, 0x03, 0x07, + 0xff, 0x39, 0x9c, 0x03, 0x05, 0x5a, 0x03, 0x93, 0x01, 0x07, 0x60, 0xd7, + 0x01, 0xff, 0xa1, 0x5b, 0xa5, 0x47, 0xa9, 0x33, 0xaf, 0x1f, 0xb5, 0x0b, + 0xb7, 0x01, 0xff, 0xe2, 0x18, 0x6b, 0x01, 0xf6, 0x19, 0x6b, 0x41, 0xa1, + 0x08, 0xe2, 0x06, 0x6b, 0x01, 0xf6, 0x07, 0x6b, 0x41, 0xe2, 0x10, 0x6b, + 0x01, 0xf6, 0x11, 0x6b, 0x41, 0xe2, 0x12, 0x6b, 0x01, 0xaf, 0x04, 0xf6, + 0x13, 0x6b, 0x41, 0xe2, 0x0c, 0x6b, 0x01, 0xf6, 0x0d, 0x6b, 0x41, 0xa1, + 0x08, 0xe2, 0x02, 0x6b, 0x01, 0xf6, 0x03, 0x6b, 0x41, 0xe2, 0x14, 0x6b, + 0x01, 0xf6, 0x15, 0x6b, 0x41, 0xe2, 0x08, 0x6b, 0x01, 0xa5, 0x04, 0xf6, + 0x09, 0x6b, 0x41, 0xe2, 0x00, 0x6b, 0x01, 0xf6, 0x01, 0x6b, 0x41, 0xa1, + 0x27, 0xe2, 0x16, 0x6b, 0x01, 0xa9, 0x19, 0xb5, 0x0f, 0xf6, 0x17, 0x6b, + 0x01, 0xb7, 0x01, 0xff, 0xe2, 0x0e, 0x6b, 0x01, 0xf6, 0x0f, 0x6b, 0x41, + 0xe2, 0x04, 0x6b, 0x01, 0xf6, 0x05, 0x6b, 0x41, 0xe2, 0x0a, 0x6b, 0x01, + 0xf6, 0x0b, 0x6b, 0x41, 0xe2, 0x1a, 0x6b, 0x01, 0xf6, 0x1b, 0x6b, 0x41, + 0x42, 0x2f, 0x08, 0x6c, 0x6b, 0x01, 0x04, 0xea, 0xbb, 0xc3, 0x01, 0xa8, + 0xb4, 0x01, 0x46, 0xbc, 0xdc, 0x43, 0x6b, 0x01, 0x43, 0xa3, 0x0d, 0x70, + 0x6b, 0x01, 0xad, 0x8f, 0x01, 0xae, 0x80, 0x01, 0xb4, 0x6c, 0x04, 0x0d, + 0xf3, 0x39, 0xb8, 0x06, 0x48, 0x10, 0xcd, 0x67, 0x6b, 0x41, 0x43, 0xa6, + 0x2f, 0x44, 0x6b, 0x01, 0x43, 0xb4, 0x4a, 0x6a, 0x6b, 0x01, 0xb9, 0x01, + 0xff, 0x04, 0x1d, 0x21, 0x06, 0x42, 0xcd, 0x02, 0x64, 0x6b, 0x41, 0x44, + 0xb1, 0xef, 0x3f, 0x6b, 0x01, 0x45, 0x48, 0xe9, 0x3c, 0x6b, 0x01, 0x43, + 0xef, 0x49, 0x3d, 0x6b, 0x01, 0x43, 0x96, 0x09, 0x3e, 0x6b, 0x41, 0x44, + 0xb9, 0xef, 0x3b, 0x6b, 0x01, 0x43, 0x20, 0x4b, 0x63, 0x6b, 0x01, 0x44, + 0x91, 0xf1, 0x42, 0x6b, 0x01, 0x44, 0x91, 0xf2, 0x40, 0x6b, 0x01, 0xb4, + 0x01, 0xff, 0xa8, 0x06, 0x49, 0x33, 0xbf, 0x38, 0x6b, 0x41, 0x43, 0xb4, + 0x4a, 0x3a, 0x6b, 0x01, 0x42, 0x14, 0x05, 0x37, 0x6b, 0x41, 0x42, 0x5f, + 0x24, 0x6f, 0x6b, 0x01, 0x4e, 0x47, 0x78, 0x66, 0x6b, 0x01, 0x4a, 0xc5, + 0xb3, 0x6d, 0x6b, 0x41, 0x43, 0x8e, 0xf4, 0x69, 0x6b, 0x01, 0x43, 0xa3, + 0xf4, 0x6b, 0x6b, 0x41, 0x04, 0xc7, 0xb3, 0x06, 0x42, 0xef, 0x02, 0x71, + 0x6b, 0x41, 0x44, 0xbd, 0xf2, 0x41, 0x6b, 0x01, 0x45, 0x87, 0xeb, 0x6e, + 0x6b, 0x41, 0x42, 0xc3, 0x01, 0x65, 0x6b, 0x01, 0x43, 0x65, 0x31, 0x68, + 0x6b, 0x41, 0xa3, 0x28, 0x52, 0x15, 0x52, 0x72, 0x6b, 0x01, 0x48, 0xe8, + 0xc8, 0x77, 0x6b, 0x01, 0x48, 0xf8, 0xc9, 0x76, 0x6b, 0x01, 0xb4, 0x01, + 0xff, 0x47, 0xed, 0xd5, 0x45, 0x6b, 0x01, 0x43, 0xd0, 0xf4, 0x74, 0x6b, + 0xc1, 0x00, 0x45, 0xa0, 0xe1, 0x75, 0x6b, 0x41, 0x44, 0x4a, 0x18, 0x39, + 0x6b, 0x01, 0x4a, 0x7b, 0xb2, 0x73, 0x6b, 0x41, 0x07, 0x71, 0x11, 0x25, + 0x48, 0xf5, 0x3b, 0x5e, 0x6b, 0x01, 0xb4, 0x01, 0xff, 0x02, 0x92, 0x01, + 0x06, 0x48, 0x68, 0xca, 0x61, 0x6b, 0x41, 0x80, 0x04, 0xf3, 0x5b, 0x6b, + 0x41, 0x48, 0x18, 0xc4, 0x60, 0x6b, 0x01, 0x49, 0xed, 0x7c, 0x5d, 0x6b, + 0x41, 0x49, 0xf4, 0x3b, 0x5f, 0x6b, 0x01, 0xf3, 0x5c, 0x6b, 0x41, 0x43, + 0x84, 0xcb, 0x35, 0x6b, 0x01, 0xab, 0x1b, 0xb3, 0x0f, 0xb4, 0x01, 0xff, + 0x43, 0xa2, 0xb2, 0x36, 0x6b, 0x01, 0x42, 0x3d, 0x01, 0x30, 0x6b, 0x41, + 0xef, 0x31, 0x6b, 0x01, 0x43, 0x7b, 0xb2, 0x34, 0x6b, 0x41, 0x42, 0xed, + 0x00, 0x32, 0x6b, 0x01, 0x43, 0xe8, 0x4b, 0x33, 0x6b, 0x41, 0x45, 0x12, + 0x0b, 0x58, 0x6b, 0x01, 0xa6, 0x2e, 0x44, 0xcf, 0x2a, 0x59, 0x6b, 0x01, + 0x43, 0x0e, 0x0b, 0x51, 0x6b, 0x01, 0xb3, 0x14, 0xb4, 0x06, 0x44, 0x43, + 0x1e, 0x50, 0x6b, 0x41, 0x44, 0x25, 0x01, 0x53, 0x6b, 0x01, 0x42, 0x15, + 0x02, 0x52, 0x6b, 0x41, 0x44, 0xc9, 0x1d, 0x57, 0x6b, 0x01, 0x42, 0x01, + 0x26, 0x56, 0x6b, 0x41, 0x43, 0xd2, 0x05, 0x55, 0x6b, 0x01, 0x43, 0xf6, + 0x06, 0x54, 0x6b, 0x41, 0x09, 0x43, 0xbb, 0x86, 0x01, 0x09, 0x28, 0x33, + 0x01, 0xff, 0x42, 0x5f, 0x24, 0x2d, 0x6b, 0x01, 0xa3, 0x6d, 0xa8, 0x59, + 0x43, 0x5e, 0x24, 0x1e, 0x6b, 0x01, 0x43, 0x0a, 0xe1, 0x26, 0x6b, 0x01, + 0xae, 0x24, 0x45, 0xed, 0xe9, 0x2a, 0x6b, 0x01, 0x44, 0x31, 0xf2, 0x23, + 0x6b, 0x01, 0x43, 0x74, 0x58, 0x21, 0x6b, 0x01, 0x43, 0xb5, 0xf4, 0x1c, + 0x6b, 0x01, 0x43, 0xca, 0xf4, 0x2e, 0x6b, 0x01, 0x43, 0xe3, 0x80, 0x24, + 0x6b, 0x41, 0x42, 0x5f, 0x24, 0x2c, 0x6b, 0x01, 0x44, 0x61, 0xef, 0x28, + 0x6b, 0x01, 0x43, 0x39, 0xcf, 0x22, 0x6b, 0x01, 0x43, 0x5e, 0x24, 0x20, + 0x6b, 0x01, 0xb4, 0x01, 0xff, 0x43, 0xd9, 0x7d, 0x2b, 0x6b, 0x01, 0x43, + 0xa1, 0x91, 0x1d, 0x6b, 0x41, 0x42, 0x5f, 0x24, 0x1f, 0x6b, 0x01, 0x43, + 0x5e, 0x24, 0x25, 0x6b, 0x01, 0x43, 0x71, 0x5c, 0x29, 0x6b, 0x41, 0x42, + 0x5f, 0x24, 0x2f, 0x6b, 0x01, 0x43, 0xd9, 0x7d, 0x27, 0x6b, 0x41, 0x43, + 0x40, 0xf4, 0x8b, 0x6b, 0x01, 0x02, 0x22, 0x00, 0x6e, 0xab, 0x5a, 0xac, + 0x4c, 0x44, 0x45, 0xf1, 0x84, 0x6b, 0x01, 0x44, 0x0d, 0xf2, 0x87, 0x6b, + 0x01, 0xb4, 0x23, 0xb6, 0x15, 0x45, 0x81, 0xec, 0x81, 0x6b, 0x01, 0xb9, + 0x01, 0xff, 0x42, 0x55, 0x19, 0x8c, 0x6b, 0x01, 0x43, 0x2e, 0xf4, 0x7e, + 0x6b, 0x41, 0x42, 0x55, 0x19, 0x8a, 0x6b, 0x01, 0x42, 0x11, 0xcd, 0x8f, + 0x6b, 0x41, 0x43, 0x4f, 0xf4, 0x85, 0x6b, 0x01, 0xb3, 0x01, 0xff, 0x42, + 0x5c, 0x00, 0x86, 0x6b, 0x01, 0x44, 0xc6, 0xb3, 0x7d, 0x6b, 0x01, 0x42, + 0x5b, 0x1a, 0x8d, 0x6b, 0x41, 0x43, 0xec, 0xf3, 0x80, 0x6b, 0x01, 0x42, + 0x5f, 0x03, 0x7f, 0x6b, 0x41, 0x43, 0xf3, 0x14, 0x88, 0x6b, 0x01, 0x42, + 0xcd, 0x02, 0x82, 0x6b, 0x01, 0x42, 0x2c, 0x5c, 0x8e, 0x6b, 0x41, 0xed, + 0x89, 0x6b, 0x01, 0x42, 0x11, 0xcd, 0x83, 0x6b, 0x41, 0xe5, 0xcf, 0xf5, + 0x81, 0x06, 0x43, 0xb5, 0x2d, 0xd4, 0xf6, 0x41, 0x80, 0x08, 0xf2, 0xdf, + 0xf4, 0x01, 0xf3, 0xd0, 0xf5, 0x41, 0x49, 0xcd, 0xb8, 0xc4, 0xf4, 0x01, + 0x06, 0xca, 0x04, 0x01, 0xff, 0x4b, 0xa4, 0x9d, 0xdf, 0xf5, 0x01, 0x43, + 0x73, 0x0b, 0xc3, 0xf4, 0x41, 0xa2, 0xbe, 0x2e, 0xa3, 0xda, 0x2d, 0x43, + 0xef, 0x0a, 0x62, 0xf3, 0x01, 0x4e, 0xd7, 0x77, 0xe2, 0xf3, 0x81, 0xc6, + 0x2d, 0xa7, 0xf9, 0x2b, 0x47, 0x19, 0xc9, 0x26, 0x21, 0x00, 0x47, 0xe8, + 0xd1, 0xe2, 0xf6, 0x01, 0x4b, 0x1c, 0x93, 0x4c, 0xf4, 0x01, 0xac, 0xd8, + 0x12, 0x48, 0x06, 0xbd, 0x49, 0xf5, 0x01, 0xae, 0x80, 0x12, 0xb0, 0xcf, + 0x10, 0xb2, 0xb3, 0x0b, 0xb3, 0xfd, 0x05, 0x02, 0xee, 0x05, 0xab, 0x02, + 0xb5, 0x46, 0x03, 0x32, 0x00, 0x10, 0x42, 0x95, 0x03, 0x89, 0xf9, 0x01, + 0xf8, 0x02, 0xf4, 0x01, 0x45, 0x9a, 0xec, 0xaa, 0xf9, 0x41, 0x4b, 0xc8, + 0x9c, 0x75, 0xf9, 0x01, 0xac, 0x01, 0xff, 0x42, 0xe5, 0x05, 0xd7, 0xf5, + 0x81, 0x06, 0x43, 0xee, 0x07, 0x3e, 0x20, 0x40, 0x05, 0x2b, 0x30, 0x01, + 0xff, 0x4d, 0x35, 0x58, 0xbc, 0x2b, 0x00, 0x06, 0xad, 0x02, 0x01, 0xff, + 0x51, 0x31, 0x58, 0xbb, 0x2b, 0x00, 0x47, 0x3b, 0x58, 0xba, 0x2b, 0x40, + 0x48, 0x90, 0xc8, 0x25, 0x21, 0x00, 0xb4, 0x01, 0xff, 0x48, 0x50, 0xc4, + 0xe4, 0xf4, 0x01, 0x06, 0x1b, 0x11, 0x01, 0xff, 0x4a, 0xf4, 0x2b, 0x2d, + 0x27, 0x00, 0x06, 0xef, 0x06, 0x82, 0x01, 0x4b, 0x1b, 0x61, 0x19, 0x27, + 0x00, 0x07, 0xde, 0x05, 0x06, 0x4a, 0x65, 0x2e, 0x9d, 0x26, 0x40, 0x0e, + 0xe5, 0x05, 0x06, 0x44, 0x96, 0x10, 0x1f, 0x27, 0x40, 0xe1, 0xd6, 0xcc, + 0x01, 0xe2, 0xd7, 0xcc, 0x01, 0xe3, 0xd8, 0xcc, 0x01, 0xe4, 0xd9, 0xcc, + 0x01, 0xe5, 0xda, 0xcc, 0x01, 0xe6, 0xdb, 0xcc, 0x01, 0xe7, 0xdc, 0xcc, + 0x01, 0xe8, 0xdd, 0xcc, 0x01, 0xe9, 0xde, 0xcc, 0x01, 0xea, 0xdf, 0xcc, + 0x01, 0xeb, 0xe0, 0xcc, 0x01, 0xec, 0xe1, 0xcc, 0x01, 0xed, 0xe2, 0xcc, + 0x01, 0xee, 0xe3, 0xcc, 0x01, 0xef, 0xe4, 0xcc, 0x01, 0xf0, 0xe5, 0xcc, + 0x01, 0xf1, 0xe6, 0xcc, 0x01, 0xf2, 0xe7, 0xcc, 0x01, 0xf3, 0xe8, 0xcc, + 0x01, 0xf4, 0xe9, 0xcc, 0x01, 0xf5, 0xea, 0xcc, 0x01, 0xf6, 0xeb, 0xcc, + 0x01, 0xf7, 0xec, 0xcc, 0x01, 0xf8, 0xed, 0xcc, 0x01, 0xf9, 0xee, 0xcc, + 0x01, 0xfa, 0xef, 0xcc, 0x41, 0x45, 0x12, 0x0b, 0xf8, 0xcc, 0x01, 0xa6, + 0x2e, 0x44, 0xcf, 0x2a, 0xf9, 0xcc, 0x01, 0x43, 0x0e, 0x0b, 0xf1, 0xcc, + 0x01, 0xb3, 0x14, 0xb4, 0x06, 0x44, 0x43, 0x1e, 0xf0, 0xcc, 0x41, 0x44, + 0x25, 0x01, 0xf3, 0xcc, 0x01, 0x42, 0x15, 0x02, 0xf2, 0xcc, 0x41, 0x44, + 0xc9, 0x1d, 0xf7, 0xcc, 0x01, 0x42, 0x01, 0x26, 0xf6, 0xcc, 0x41, 0x43, + 0xd2, 0x05, 0xf5, 0xcc, 0x01, 0x43, 0xf6, 0x06, 0xf4, 0xcc, 0x41, 0x42, + 0x33, 0x00, 0xa6, 0xf9, 0x01, 0x0b, 0xb1, 0xa0, 0x01, 0xff, 0x11, 0xfe, + 0x57, 0xe4, 0x02, 0x0d, 0x1e, 0x5a, 0xd3, 0x02, 0x48, 0x30, 0xc8, 0x2e, + 0xed, 0x01, 0x07, 0xff, 0x39, 0x01, 0xff, 0x45, 0x12, 0x0b, 0x08, 0xed, + 0x81, 0xa7, 0x02, 0xa6, 0xd9, 0x01, 0x44, 0xcf, 0x2a, 0x09, 0xed, 0x81, + 0xb6, 0x01, 0x43, 0x0e, 0x0b, 0x01, 0xed, 0x81, 0x9f, 0x01, 0xb3, 0x59, + 0xb4, 0x01, 0xff, 0x42, 0x92, 0x01, 0x0a, 0xed, 0x81, 0x49, 0xa8, 0x24, + 0xb7, 0x01, 0xff, 0x44, 0xcb, 0x1d, 0x0b, 0xed, 0x81, 0x14, 0xef, 0x02, + 0xed, 0xc1, 0x00, 0x80, 0x01, 0xff, 0x47, 0x71, 0x11, 0x14, 0xed, 0x01, + 0x48, 0x40, 0x5e, 0x1d, 0xed, 0x41, 0x49, 0x3f, 0x5e, 0x26, 0xed, 0x41, + 0x44, 0x7b, 0x11, 0x0c, 0xed, 0x81, 0x16, 0x43, 0x26, 0x01, 0x03, 0xed, + 0xc1, 0x00, 0x80, 0x01, 0xff, 0x47, 0x71, 0x11, 0x15, 0xed, 0x01, 0x48, + 0x40, 0x5e, 0x1e, 0xed, 0x41, 0x49, 0x3f, 0x5e, 0x27, 0xed, 0x41, 0x49, + 0x3f, 0x5e, 0x25, 0xed, 0x41, 0x44, 0xc9, 0x1d, 0x07, 0xed, 0x81, 0x22, + 0x42, 0x01, 0x26, 0x06, 0xed, 0xc1, 0x00, 0x80, 0x0d, 0x42, 0x7d, 0x11, + 0x0f, 0xed, 0xc1, 0x00, 0x49, 0x3f, 0x5e, 0x2a, 0xed, 0x41, 0x47, 0x71, + 0x11, 0x18, 0xed, 0x01, 0x48, 0x40, 0x5e, 0x21, 0xed, 0x41, 0x80, 0x0d, + 0x42, 0x7d, 0x11, 0x10, 0xed, 0xc1, 0x00, 0x49, 0x3f, 0x5e, 0x2b, 0xed, + 0x41, 0x47, 0x71, 0x11, 0x19, 0xed, 0x01, 0x48, 0x40, 0x5e, 0x22, 0xed, + 0x41, 0x80, 0x01, 0xff, 0x47, 0x71, 0x11, 0x13, 0xed, 0x01, 0x48, 0x40, + 0x5e, 0x1c, 0xed, 0x41, 0x80, 0x0d, 0x42, 0x7d, 0x11, 0x12, 0xed, 0xc1, + 0x00, 0x49, 0x3f, 0x5e, 0x2d, 0xed, 0x41, 0x47, 0x71, 0x11, 0x1b, 0xed, + 0x01, 0x48, 0x40, 0x5e, 0x24, 0xed, 0x41, 0xa9, 0x26, 0xaf, 0x01, 0xff, + 0x43, 0x7c, 0x11, 0x0d, 0xed, 0x81, 0x16, 0x42, 0x42, 0x00, 0x04, 0xed, + 0xc1, 0x00, 0x80, 0x01, 0xff, 0x47, 0x71, 0x11, 0x16, 0xed, 0x01, 0x48, + 0x40, 0x5e, 0x1f, 0xed, 0x41, 0x49, 0x3f, 0x5e, 0x28, 0xed, 0x41, 0x43, + 0x52, 0x4d, 0x0e, 0xed, 0x81, 0x16, 0x42, 0x32, 0x00, 0x05, 0xed, 0xc1, + 0x00, 0x80, 0x01, 0xff, 0x47, 0x71, 0x11, 0x17, 0xed, 0x01, 0x48, 0x40, + 0x5e, 0x20, 0xed, 0x41, 0x49, 0x3f, 0x5e, 0x29, 0xed, 0x41, 0x80, 0x0b, + 0xf9, 0x11, 0xed, 0xc1, 0x00, 0x49, 0x3f, 0x5e, 0x2c, 0xed, 0x41, 0x47, + 0x71, 0x11, 0x1a, 0xed, 0x01, 0x48, 0x40, 0x5e, 0x23, 0xed, 0x41, 0x44, + 0x22, 0x00, 0x3c, 0xed, 0x01, 0x45, 0xe6, 0xdf, 0x3d, 0xed, 0x41, 0x45, + 0x12, 0x0b, 0x35, 0xed, 0x01, 0xa6, 0x3e, 0x44, 0xcf, 0x2a, 0x36, 0xed, + 0x01, 0xb3, 0x23, 0xb4, 0x01, 0xff, 0x42, 0x92, 0x01, 0x37, 0xed, 0x81, + 0x13, 0x44, 0x25, 0x01, 0x30, 0xed, 0x01, 0x42, 0x15, 0x02, 0x2f, 0xed, + 0xc1, 0x00, 0x49, 0x3f, 0x5e, 0x3a, 0xed, 0x41, 0x49, 0x3f, 0x5e, 0x3b, + 0xed, 0x41, 0x44, 0xc9, 0x1d, 0x34, 0xed, 0x01, 0x42, 0x01, 0x26, 0x33, + 0xed, 0xc1, 0x00, 0x48, 0x70, 0x11, 0x39, 0xed, 0x41, 0x43, 0xd2, 0x05, + 0x32, 0xed, 0x01, 0x43, 0xf6, 0x06, 0x31, 0xed, 0xc1, 0x00, 0x48, 0x70, + 0x11, 0x38, 0xed, 0x41, 0x04, 0x22, 0x43, 0xfe, 0x01, 0x06, 0xfa, 0xdd, + 0x01, 0xff, 0x06, 0xef, 0x06, 0xb2, 0x01, 0x07, 0xec, 0x05, 0x01, 0xff, + 0xe1, 0x96, 0x04, 0x81, 0x9d, 0x01, 0x42, 0x16, 0x00, 0x81, 0x04, 0x01, + 0x44, 0x5d, 0xef, 0x8b, 0x04, 0x01, 0xa4, 0x82, 0x01, 0xe5, 0x97, 0x04, + 0x81, 0x79, 0x42, 0x0c, 0x08, 0x8d, 0x04, 0x01, 0x42, 0x24, 0x02, 0x8c, + 0x04, 0x01, 0x42, 0x22, 0x00, 0x94, 0x04, 0x01, 0xe9, 0x98, 0x04, 0x01, + 0x42, 0x56, 0x19, 0x83, 0x04, 0x01, 0xab, 0x4f, 0x44, 0xff, 0xee, 0x90, + 0x04, 0x01, 0x44, 0x35, 0xf1, 0x91, 0x04, 0x01, 0x44, 0xa9, 0xf1, 0x92, + 0x04, 0x01, 0xef, 0x99, 0x04, 0x81, 0x34, 0x44, 0x1a, 0xea, 0x8e, 0x04, + 0x01, 0x42, 0x71, 0x00, 0x87, 0x04, 0x01, 0xb3, 0x1c, 0x42, 0x12, 0x00, + 0x82, 0x04, 0x01, 0xf5, 0x9a, 0x04, 0x01, 0x43, 0x8a, 0x8a, 0x93, 0x04, + 0x01, 0x42, 0xed, 0x26, 0x84, 0x04, 0x01, 0x42, 0xbc, 0x22, 0x95, 0x04, + 0x41, 0xe1, 0x88, 0x04, 0x01, 0x44, 0x45, 0xf0, 0x89, 0x04, 0x41, 0xef, + 0x9d, 0x04, 0x41, 0x43, 0x1a, 0xc3, 0x8f, 0x04, 0x01, 0x42, 0x22, 0x00, + 0x85, 0x04, 0x41, 0xe5, 0x9c, 0x04, 0x41, 0x43, 0x2d, 0x13, 0x86, 0x04, + 0x01, 0x42, 0x22, 0x00, 0x8a, 0x04, 0x41, 0xe1, 0x9b, 0x04, 0x01, 0x43, + 0x68, 0x00, 0x80, 0x04, 0x41, 0x45, 0x12, 0x0b, 0xa8, 0x04, 0x01, 0xa6, + 0x2e, 0x44, 0xcf, 0x2a, 0xa9, 0x04, 0x01, 0x43, 0x0e, 0x0b, 0xa1, 0x04, + 0x01, 0xb3, 0x14, 0xb4, 0x06, 0x44, 0x43, 0x1e, 0xa0, 0x04, 0x41, 0x44, + 0x25, 0x01, 0xa3, 0x04, 0x01, 0x42, 0x15, 0x02, 0xa2, 0x04, 0x41, 0x44, + 0xc9, 0x1d, 0xa7, 0x04, 0x01, 0x42, 0x01, 0x26, 0xa6, 0x04, 0x41, 0x43, + 0xd2, 0x05, 0xa5, 0x04, 0x01, 0x43, 0xf6, 0x06, 0xa4, 0x04, 0x41, 0x0f, + 0xe4, 0x05, 0xd8, 0x01, 0x0d, 0x76, 0x08, 0x01, 0xff, 0xe1, 0xd8, 0x04, + 0x81, 0xc0, 0x01, 0x43, 0x63, 0x09, 0xdc, 0x04, 0x01, 0x43, 0x91, 0x20, + 0xdd, 0x04, 0x01, 0x43, 0xe7, 0x4b, 0xf5, 0x04, 0x01, 0xe5, 0xdf, 0x04, + 0x81, 0x81, 0x01, 0x43, 0x0e, 0x9c, 0xf9, 0x04, 0x01, 0xa8, 0x6f, 0xe9, + 0xe3, 0x04, 0x01, 0xab, 0x59, 0x42, 0x74, 0x00, 0xe7, 0x04, 0x01, 0x42, + 0x6c, 0x00, 0xe8, 0x04, 0x01, 0x42, 0x2a, 0x05, 0xe9, 0x04, 0x01, 0xef, + 0xea, 0x04, 0x81, 0x3c, 0x42, 0xbb, 0x09, 0xec, 0x04, 0x01, 0xb3, 0x2a, + 0xb4, 0x17, 0xf5, 0xf6, 0x04, 0x01, 0x42, 0xa9, 0x01, 0xf7, 0x04, 0x01, + 0xba, 0x01, 0xff, 0xe1, 0xfa, 0x04, 0x01, 0x42, 0x22, 0x00, 0xfb, 0x04, + 0x41, 0xe1, 0xf0, 0x04, 0x01, 0xb3, 0x01, 0xff, 0xe1, 0xf2, 0x04, 0x01, + 0x42, 0x22, 0x00, 0xf4, 0x04, 0x41, 0xe1, 0xee, 0x04, 0x01, 0x42, 0x22, + 0x00, 0xef, 0x04, 0x41, 0x42, 0x9e, 0x01, 0xeb, 0x04, 0x41, 0xe1, 0xe4, + 0x04, 0x01, 0x42, 0x22, 0x00, 0xf8, 0x04, 0x01, 0x42, 0xbc, 0x22, 0xe6, + 0x04, 0x41, 0xe1, 0xe1, 0x04, 0x01, 0x42, 0xbc, 0x22, 0xe2, 0x04, 0x41, + 0xa8, 0x06, 0x42, 0x9e, 0x01, 0xe0, 0x04, 0x41, 0x43, 0x91, 0x20, 0xde, + 0x04, 0x01, 0x42, 0x1b, 0x02, 0xe5, 0x04, 0x01, 0x42, 0xbb, 0x09, 0xed, + 0x04, 0x01, 0xb4, 0x01, 0xff, 0xe1, 0xf1, 0x04, 0x01, 0x42, 0x40, 0x06, + 0xf3, 0x04, 0x41, 0xe8, 0xdb, 0x04, 0x01, 0xe9, 0xd9, 0x04, 0xc1, 0x00, + 0xee, 0xda, 0x04, 0x41, 0xe1, 0xb0, 0x04, 0x81, 0xc0, 0x01, 0x43, 0x63, + 0x09, 0xb4, 0x04, 0x01, 0x43, 0x91, 0x20, 0xb5, 0x04, 0x01, 0x43, 0xe7, + 0x4b, 0xcd, 0x04, 0x01, 0xe5, 0xb7, 0x04, 0x81, 0x81, 0x01, 0x43, 0x0e, + 0x9c, 0xd1, 0x04, 0x01, 0xa8, 0x6f, 0xe9, 0xbb, 0x04, 0x01, 0xab, 0x59, + 0x42, 0x74, 0x00, 0xbf, 0x04, 0x01, 0x42, 0x6c, 0x00, 0xc0, 0x04, 0x01, + 0x42, 0x2a, 0x05, 0xc1, 0x04, 0x01, 0xef, 0xc2, 0x04, 0x81, 0x3c, 0x42, + 0xbb, 0x09, 0xc4, 0x04, 0x01, 0xb3, 0x2a, 0xb4, 0x17, 0xf5, 0xce, 0x04, + 0x01, 0x42, 0xa9, 0x01, 0xcf, 0x04, 0x01, 0xba, 0x01, 0xff, 0xe1, 0xd2, + 0x04, 0x01, 0x42, 0x22, 0x00, 0xd3, 0x04, 0x41, 0xe1, 0xc8, 0x04, 0x01, + 0xb3, 0x01, 0xff, 0xe1, 0xca, 0x04, 0x01, 0x42, 0x22, 0x00, 0xcc, 0x04, + 0x41, 0xe1, 0xc6, 0x04, 0x01, 0x42, 0x22, 0x00, 0xc7, 0x04, 0x41, 0x42, + 0x9e, 0x01, 0xc3, 0x04, 0x41, 0xe1, 0xbc, 0x04, 0x01, 0x42, 0x22, 0x00, + 0xd0, 0x04, 0x01, 0x42, 0xbc, 0x22, 0xbe, 0x04, 0x41, 0xe1, 0xb9, 0x04, + 0x01, 0x42, 0xbc, 0x22, 0xba, 0x04, 0x41, 0xa8, 0x06, 0x42, 0x9e, 0x01, + 0xb8, 0x04, 0x41, 0x43, 0x91, 0x20, 0xb6, 0x04, 0x01, 0x42, 0x1b, 0x02, + 0xbd, 0x04, 0x01, 0x42, 0xbb, 0x09, 0xc5, 0x04, 0x01, 0xb4, 0x01, 0xff, + 0xe1, 0xc9, 0x04, 0x01, 0x42, 0x40, 0x06, 0xcb, 0x04, 0x41, 0xe8, 0xb3, + 0x04, 0x01, 0xe9, 0xb1, 0x04, 0xc1, 0x00, 0xee, 0xb2, 0x04, 0x41, 0x50, + 0xa6, 0x60, 0xc7, 0x27, 0x00, 0x03, 0x1c, 0x01, 0xf8, 0x04, 0xa3, 0xeb, + 0x04, 0xa9, 0x21, 0x05, 0xf6, 0x11, 0x11, 0x03, 0x2a, 0x08, 0x01, 0xff, + 0x49, 0xda, 0xb7, 0x26, 0x26, 0x00, 0x55, 0x89, 0x21, 0x42, 0xcc, 0x41, + 0x50, 0x7f, 0x24, 0x3e, 0xfd, 0x00, 0x51, 0xd2, 0x21, 0x3f, 0xfd, 0x40, + 0x48, 0xe2, 0x2f, 0xb6, 0x22, 0x00, 0x03, 0xa1, 0x32, 0x01, 0xff, 0xa1, + 0xae, 0x04, 0x06, 0xef, 0x06, 0xe7, 0x03, 0x09, 0x1e, 0x5a, 0xb5, 0x03, + 0x46, 0x1c, 0xdd, 0x70, 0x0b, 0x00, 0x07, 0xec, 0x05, 0x79, 0x05, 0x5a, + 0x03, 0x44, 0x0b, 0x40, 0x77, 0x01, 0xff, 0xa1, 0x31, 0xe5, 0x47, 0x0b, + 0x00, 0xe9, 0x3f, 0x0b, 0x80, 0x24, 0xef, 0x4b, 0x0b, 0x00, 0xf5, 0x41, + 0x0b, 0x80, 0x17, 0x08, 0x22, 0xc1, 0x01, 0xff, 0xec, 0x62, 0x0b, 0x80, + 0x09, 0xf2, 0x43, 0x0b, 0xc0, 0x00, 0xf2, 0x44, 0x0b, 0x40, 0xec, 0x63, + 0x0b, 0x40, 0xf5, 0x42, 0x0b, 0x40, 0xe9, 0x40, 0x0b, 0x40, 0xe1, 0x3e, + 0x0b, 0x00, 0xe9, 0x48, 0x0b, 0x00, 0xf5, 0x4c, 0x0b, 0x40, 0xa1, 0x23, + 0x4b, 0xd7, 0x23, 0x01, 0x0b, 0x00, 0x45, 0x3f, 0x3f, 0x3c, 0x0b, 0x00, + 0x48, 0x82, 0x8a, 0x55, 0x0b, 0x00, 0x02, 0x02, 0x00, 0x01, 0xff, 0x44, + 0xe5, 0x23, 0x4d, 0x0b, 0x00, 0x45, 0xec, 0x4b, 0x03, 0x0b, 0x40, 0x47, + 0x3d, 0x16, 0x02, 0x0b, 0x00, 0x47, 0xaf, 0x88, 0x3d, 0x0b, 0x40, 0xe1, + 0x05, 0x0b, 0x80, 0xa0, 0x02, 0xa2, 0x93, 0x02, 0xa3, 0x86, 0x02, 0xa4, + 0xed, 0x01, 0xe5, 0x0f, 0x0b, 0x00, 0xa7, 0xdc, 0x01, 0x42, 0x22, 0x00, + 0x39, 0x0b, 0x00, 0xe9, 0x07, 0x0b, 0x80, 0xcc, 0x01, 0xaa, 0xbf, 0x01, + 0xab, 0xb2, 0x01, 0xac, 0xa5, 0x01, 0x42, 0x6c, 0x00, 0x2e, 0x0b, 0x00, + 0xae, 0x86, 0x01, 0xef, 0x13, 0x0b, 0x00, 0xb0, 0x76, 0xb2, 0x64, 0xb3, + 0x52, 0xb4, 0x39, 0xf5, 0x09, 0x0b, 0x80, 0x30, 0xb6, 0x13, 0x42, 0xa9, + 0x01, 0x71, 0x0b, 0x00, 0xb9, 0x01, 0xff, 0xe1, 0x2f, 0x0b, 0x00, 0x42, + 0xbc, 0x22, 0x5f, 0x0b, 0x40, 0xe1, 0x35, 0x0b, 0x00, 0x07, 0x23, 0xc1, + 0x01, 0xff, 0xec, 0x0c, 0x0b, 0x80, 0x09, 0xf2, 0x0b, 0x0b, 0xc0, 0x00, + 0xf2, 0x60, 0x0b, 0x40, 0xec, 0x61, 0x0b, 0x40, 0xf5, 0x0a, 0x0b, 0x40, + 0xe1, 0x24, 0x0b, 0x00, 0x42, 0x22, 0x00, 0x25, 0x0b, 0x00, 0xb4, 0x01, + 0xff, 0xe1, 0x1f, 0x0b, 0x00, 0x42, 0x22, 0x00, 0x20, 0x0b, 0x40, 0xe1, + 0x38, 0x0b, 0x00, 0x42, 0x22, 0x00, 0x36, 0x0b, 0x00, 0x42, 0x40, 0x06, + 0x37, 0x0b, 0x40, 0xe1, 0x30, 0x0b, 0x00, 0x42, 0x22, 0x00, 0x5d, 0x0b, + 0x00, 0x42, 0x71, 0x00, 0x5c, 0x0b, 0x40, 0xe1, 0x2a, 0x0b, 0x00, 0x42, + 0x22, 0x00, 0x2b, 0x0b, 0x40, 0xe1, 0x28, 0x0b, 0x00, 0x42, 0x24, 0x02, + 0x19, 0x0b, 0x00, 0x42, 0x2a, 0x05, 0x23, 0x0b, 0x00, 0x42, 0xbc, 0x22, + 0x1e, 0x0b, 0x40, 0xe1, 0x32, 0x0b, 0x00, 0x42, 0x74, 0x00, 0x33, 0x0b, + 0x40, 0xe1, 0x15, 0x0b, 0x00, 0x42, 0x22, 0x00, 0x16, 0x0b, 0x40, 0xe1, + 0x1c, 0x0b, 0x00, 0x42, 0x22, 0x00, 0x1d, 0x0b, 0x40, 0xe9, 0x08, 0x0b, + 0x40, 0xe1, 0x17, 0x0b, 0x00, 0x42, 0x22, 0x00, 0x18, 0x0b, 0x40, 0xe1, + 0x26, 0x0b, 0x00, 0xa4, 0x06, 0x42, 0x22, 0x00, 0x27, 0x0b, 0x40, 0xe1, + 0x21, 0x0b, 0x00, 0x42, 0x22, 0x00, 0x22, 0x0b, 0x40, 0xe1, 0x1a, 0x0b, + 0x00, 0x42, 0x22, 0x00, 0x1b, 0x0b, 0x40, 0xe1, 0x2c, 0x0b, 0x00, 0x42, + 0x22, 0x00, 0x2d, 0x0b, 0x40, 0xe1, 0x06, 0x0b, 0x00, 0xe9, 0x10, 0x0b, + 0x00, 0xf5, 0x14, 0x0b, 0x40, 0x04, 0x0e, 0x0b, 0x11, 0x06, 0x24, 0x01, + 0x01, 0xff, 0x48, 0x2a, 0x01, 0x74, 0x0b, 0x00, 0x4a, 0x13, 0xb1, 0x77, + 0x0b, 0x40, 0x46, 0x12, 0x0b, 0x76, 0x0b, 0x00, 0x44, 0x22, 0x00, 0x73, + 0x0b, 0x00, 0x47, 0x2a, 0x01, 0x72, 0x0b, 0x00, 0x49, 0x00, 0x26, 0x75, + 0x0b, 0x40, 0x45, 0x12, 0x0b, 0x6e, 0x0b, 0x00, 0xa6, 0x2e, 0x44, 0xcf, + 0x2a, 0x6f, 0x0b, 0x00, 0x43, 0x0e, 0x0b, 0x67, 0x0b, 0x00, 0xb3, 0x14, + 0xb4, 0x06, 0x44, 0x43, 0x1e, 0x66, 0x0b, 0x40, 0x44, 0x25, 0x01, 0x69, + 0x0b, 0x00, 0x42, 0x15, 0x02, 0x68, 0x0b, 0x40, 0x44, 0xc9, 0x1d, 0x6d, + 0x0b, 0x00, 0x42, 0x01, 0x26, 0x6c, 0x0b, 0x40, 0x43, 0xd2, 0x05, 0x6b, + 0x0b, 0x00, 0x43, 0xf6, 0x06, 0x6a, 0x0b, 0x40, 0x4d, 0xd6, 0x83, 0x56, + 0x0b, 0x00, 0x4d, 0x18, 0x76, 0x57, 0x0b, 0x40, 0xe1, 0xcd, 0xfa, 0x01, + 0x42, 0xef, 0x02, 0x7f, 0xf7, 0x41, 0x02, 0x60, 0x00, 0x06, 0x44, 0xed, + 0xf2, 0xa7, 0xf9, 0x41, 0x44, 0x45, 0xef, 0xd9, 0xf4, 0x01, 0x45, 0xac, + 0x21, 0xe1, 0xf9, 0x41, 0xa5, 0x24, 0x47, 0x9b, 0xd1, 0xce, 0x26, 0x00, + 0x48, 0x0c, 0x17, 0x0d, 0x26, 0x00, 0x02, 0x35, 0x00, 0x01, 0xff, 0x48, + 0x78, 0xc4, 0xbf, 0xf4, 0x81, 0x06, 0x46, 0xc6, 0xde, 0x25, 0x23, 0x40, + 0x45, 0xbe, 0xe1, 0xb8, 0xf5, 0x41, 0xae, 0x06, 0x55, 0x91, 0x3d, 0x9d, + 0x00, 0x40, 0x80, 0x19, 0x8d, 0x01, 0xff, 0x0f, 0xa9, 0x6b, 0x06, 0x59, + 0x79, 0x25, 0xbe, 0x27, 0x40, 0x4d, 0x7b, 0x83, 0x8f, 0x23, 0x00, 0x4d, + 0xe7, 0x84, 0x90, 0x23, 0x40, 0x02, 0x5d, 0x00, 0x57, 0x07, 0x73, 0x02, + 0x3b, 0xa6, 0x2d, 0x4a, 0x83, 0x78, 0x50, 0xf4, 0x01, 0x44, 0x34, 0x01, + 0x13, 0xf5, 0x01, 0x0d, 0x76, 0x85, 0x11, 0x02, 0x6f, 0x00, 0x01, 0xff, + 0x44, 0x9b, 0x12, 0xc3, 0x27, 0x00, 0x46, 0x29, 0x36, 0xc4, 0x27, 0x40, + 0x4c, 0x77, 0x91, 0xed, 0xf4, 0x01, 0x4b, 0xb9, 0xa1, 0xec, 0xf4, 0x41, + 0x4a, 0xaf, 0xab, 0xc2, 0xf4, 0x01, 0x45, 0xcc, 0x65, 0xc1, 0xf5, 0x41, + 0x48, 0x3c, 0x0d, 0x32, 0x27, 0x00, 0x4a, 0xf4, 0x2b, 0x2b, 0x27, 0x00, + 0x45, 0x95, 0x10, 0x1b, 0x27, 0x00, 0x58, 0x6e, 0x2b, 0x3c, 0x27, 0x40, + 0x42, 0x55, 0x05, 0xd6, 0xf4, 0x01, 0xf8, 0x23, 0x24, 0x40, 0x72, 0xa7, + 0x00, 0x1b, 0xf5, 0x01, 0x07, 0x0c, 0xd0, 0x27, 0xa5, 0x06, 0x43, 0xb5, + 0x00, 0xc5, 0xf9, 0x41, 0x80, 0x06, 0x4f, 0x41, 0x6a, 0x71, 0xfa, 0x41, + 0x4c, 0x03, 0x8d, 0xaf, 0xf5, 0x01, 0x04, 0x03, 0x0c, 0x01, 0xff, 0x46, + 0x9d, 0x7d, 0x24, 0x20, 0x00, 0x59, 0x4f, 0x15, 0x2b, 0x2e, 0x40, 0x4a, + 0x17, 0xa8, 0x98, 0xf6, 0x01, 0x43, 0x96, 0x27, 0x8d, 0xf6, 0x01, 0x4b, + 0x23, 0x9c, 0xf1, 0xf6, 0x01, 0x4a, 0xa1, 0xaf, 0x94, 0xf6, 0x01, 0x44, + 0x47, 0xcf, 0x96, 0xf6, 0x41, 0x80, 0xf5, 0x14, 0xa4, 0x06, 0x43, 0xd2, 0x05, 0xd2, 0xfa, 0x41, 0x80, 0x17, 0x03, 0x16, 0x01, 0x01, 0xff, 0x45, - 0x01, 0xe1, 0xd3, 0xf9, 0x01, 0x43, 0xd5, 0x17, 0x74, 0xf4, 0x01, 0x45, - 0x62, 0x2c, 0x75, 0xf4, 0x41, 0x08, 0x22, 0xc2, 0xc3, 0x14, 0x0a, 0x19, - 0xa9, 0x91, 0x10, 0x07, 0x38, 0xcf, 0xb2, 0x0e, 0x43, 0x81, 0x23, 0xdd, - 0xf5, 0x01, 0x0e, 0xb4, 0x78, 0xca, 0x0c, 0x03, 0x6f, 0x02, 0xa1, 0x08, - 0x02, 0x35, 0x03, 0x98, 0x04, 0x0e, 0x0a, 0x7c, 0xc3, 0x01, 0x07, 0x40, - 0xd4, 0x01, 0xff, 0x0a, 0xd6, 0x57, 0x98, 0x01, 0x07, 0xc1, 0x05, 0x22, - 0x0c, 0x01, 0x16, 0x01, 0xff, 0x43, 0x16, 0x00, 0x86, 0x0f, 0x01, 0x49, - 0x9c, 0x45, 0x89, 0x0f, 0x01, 0x04, 0xd0, 0x09, 0x01, 0xff, 0x44, 0xec, - 0x19, 0x87, 0x0f, 0x01, 0x44, 0xd4, 0x09, 0x88, 0x0f, 0x41, 0x45, 0x58, - 0xab, 0x70, 0x0f, 0x01, 0x44, 0x0a, 0xec, 0x71, 0x0f, 0x01, 0x4a, 0x1f, - 0xa8, 0x75, 0x0f, 0x01, 0x4a, 0xa1, 0xa8, 0x72, 0x0f, 0x01, 0x44, 0x8e, - 0xed, 0x77, 0x0f, 0x01, 0xac, 0x46, 0x43, 0x89, 0x05, 0x79, 0x0f, 0x01, - 0x43, 0x54, 0x22, 0x7a, 0x0f, 0x01, 0x42, 0x6f, 0x02, 0x7c, 0x0f, 0x01, - 0x44, 0xfa, 0x64, 0x7e, 0x0f, 0x01, 0xb3, 0x18, 0x43, 0x1e, 0xc2, 0x80, - 0x0f, 0x01, 0x43, 0xc0, 0x88, 0x73, 0x0f, 0x01, 0x44, 0x58, 0x51, 0x76, - 0x0f, 0x01, 0x45, 0x52, 0x51, 0x74, 0x0f, 0x41, 0xa1, 0x06, 0x43, 0x0e, - 0x16, 0x7f, 0x0f, 0x41, 0x43, 0x89, 0xe7, 0x7d, 0x0f, 0x01, 0x44, 0x39, - 0xe1, 0x7b, 0x0f, 0x41, 0x45, 0x59, 0xd9, 0x78, 0x0f, 0x01, 0x43, 0x28, - 0x59, 0x81, 0x0f, 0x41, 0x04, 0xb4, 0x0b, 0x11, 0x09, 0xa2, 0x0b, 0x01, - 0xff, 0x45, 0x5c, 0x00, 0x84, 0x0f, 0x01, 0x45, 0xf5, 0x06, 0x85, 0x0f, - 0x41, 0x45, 0x5c, 0x00, 0x82, 0x0f, 0x01, 0x45, 0xf5, 0x06, 0x83, 0x0f, - 0x41, 0x07, 0x3e, 0xd1, 0x92, 0x01, 0x08, 0x12, 0xca, 0x01, 0xff, 0xe1, + 0x0c, 0xe4, 0xd3, 0xf9, 0x01, 0x43, 0x41, 0x18, 0x74, 0xf4, 0x01, 0x45, + 0x1a, 0x2d, 0x75, 0xf4, 0x41, 0x08, 0xa8, 0xc4, 0xc3, 0x14, 0x0a, 0x55, + 0xab, 0x91, 0x10, 0x07, 0x0b, 0xd2, 0xb2, 0x0e, 0x43, 0x09, 0x24, 0xdd, + 0xf5, 0x01, 0x0e, 0x15, 0x7a, 0xca, 0x0c, 0x03, 0x6f, 0x02, 0xa1, 0x08, + 0x02, 0x60, 0x03, 0x98, 0x04, 0x0e, 0x79, 0x7d, 0xc3, 0x01, 0x07, 0x13, + 0xd7, 0x01, 0xff, 0x0a, 0x41, 0x59, 0x98, 0x01, 0x07, 0xec, 0x05, 0x22, + 0x0c, 0x6d, 0x16, 0x01, 0xff, 0x43, 0x16, 0x00, 0x86, 0x0f, 0x01, 0x49, + 0xd1, 0x46, 0x89, 0x0f, 0x01, 0x04, 0x1f, 0x0a, 0x01, 0xff, 0x44, 0x73, + 0x1a, 0x87, 0x0f, 0x01, 0x44, 0x23, 0x0a, 0x88, 0x0f, 0x41, 0x45, 0xb2, + 0xad, 0x70, 0x0f, 0x01, 0x44, 0x41, 0xef, 0x71, 0x0f, 0x01, 0x4a, 0x5b, + 0xaa, 0x75, 0x0f, 0x01, 0x4a, 0xdd, 0xaa, 0x72, 0x0f, 0x01, 0x44, 0xcd, + 0xf0, 0x77, 0x0f, 0x01, 0xac, 0x46, 0x43, 0xb4, 0x05, 0x79, 0x0f, 0x01, + 0x43, 0xdc, 0x22, 0x7a, 0x0f, 0x01, 0x42, 0x6f, 0x02, 0x7c, 0x0f, 0x01, + 0x44, 0x76, 0x66, 0x7e, 0x0f, 0x01, 0xb3, 0x18, 0x43, 0xa4, 0xc4, 0x80, + 0x0f, 0x01, 0x43, 0x8a, 0x8a, 0x73, 0x0f, 0x01, 0x44, 0xa1, 0x52, 0x76, + 0x0f, 0x01, 0x45, 0x9b, 0x52, 0x74, 0x0f, 0x41, 0xa1, 0x06, 0x43, 0x7a, + 0x16, 0x7f, 0x0f, 0x41, 0x43, 0xad, 0xea, 0x7d, 0x0f, 0x01, 0x44, 0x49, + 0xe4, 0x7b, 0x0f, 0x41, 0x45, 0x4b, 0xdc, 0x78, 0x0f, 0x01, 0x43, 0x93, + 0x5a, 0x81, 0x0f, 0x41, 0x04, 0x03, 0x0c, 0x11, 0x09, 0xf1, 0x0b, 0x01, + 0xff, 0x45, 0x5c, 0x00, 0x84, 0x0f, 0x01, 0x45, 0x20, 0x07, 0x85, 0x0f, + 0x41, 0x45, 0x5c, 0x00, 0x82, 0x0f, 0x01, 0x45, 0x20, 0x07, 0x83, 0x0f, + 0x41, 0x07, 0x11, 0xd4, 0x92, 0x01, 0x08, 0xd0, 0xcc, 0x01, 0xff, 0xe1, 0x01, 0x0c, 0x81, 0x3a, 0xe5, 0x05, 0x0c, 0x81, 0x19, 0xe9, 0x04, 0x0c, 0x81, 0x10, 0xaf, 0x01, 0xff, 0xe5, 0x08, 0x0c, 0x81, 0x04, 0xf1, 0x39, 0x0c, 0x41, 0xeb, 0x1d, 0x0c, 0x41, 0xf1, 0x37, 0x0c, 0x41, 0xe3, 0x33, @@ -6099,11 +6229,11 @@ static const unsigned char uname2c_tree[218382] = { 0x17, 0x0c, 0x41, 0xe2, 0x0c, 0x0c, 0x01, 0xe7, 0x10, 0x0c, 0x01, 0xeb, 0x1b, 0x0c, 0x01, 0xee, 0x25, 0x0c, 0x81, 0x08, 0xf4, 0x46, 0x0c, 0x01, 0xf9, 0x19, 0x0c, 0x41, 0xe7, 0x2e, 0x0c, 0x41, 0xe1, 0x00, 0x0c, 0x81, - 0x5d, 0x44, 0xfa, 0xeb, 0x48, 0x0c, 0x01, 0xa5, 0x27, 0xe9, 0x03, 0x0c, + 0x5d, 0x44, 0x31, 0xef, 0x48, 0x0c, 0x01, 0xa5, 0x27, 0xe9, 0x03, 0x0c, 0x81, 0x1a, 0xef, 0x06, 0x0c, 0xc1, 0x00, 0xe5, 0x07, 0x0c, 0x81, 0x0c, 0xf0, 0x30, 0x0c, 0x01, 0xf1, 0x38, 0x0c, 0x01, 0xf4, 0x47, 0x0c, 0x41, 0xeb, 0x1c, 0x0c, 0x41, 0xe3, 0x31, 0x0c, 0x01, 0xf1, 0x36, 0x0c, 0x41, - 0xe3, 0x32, 0x0c, 0x01, 0x42, 0x8d, 0x04, 0x21, 0x0c, 0x01, 0xed, 0x22, + 0xe3, 0x32, 0x0c, 0x01, 0x42, 0xb8, 0x04, 0x21, 0x0c, 0x01, 0xed, 0x22, 0x0c, 0x01, 0xae, 0x0e, 0xf0, 0x2f, 0x0c, 0x01, 0x42, 0xa4, 0x02, 0x41, 0x0c, 0x01, 0xfa, 0x14, 0x0c, 0x41, 0xe3, 0x28, 0x0c, 0x01, 0xe7, 0x2d, 0x0c, 0x01, 0xf4, 0x26, 0x0c, 0x01, 0xf9, 0x2a, 0x0c, 0x41, 0xe2, 0x09, @@ -6114,141 +6244,141 @@ static const unsigned char uname2c_tree[218382] = { 0x01, 0xe4, 0x13, 0x0c, 0x01, 0xe7, 0x0f, 0x0c, 0x01, 0xeb, 0x1a, 0x0c, 0x01, 0xec, 0x20, 0x0c, 0x01, 0xee, 0x24, 0x0c, 0x01, 0xf2, 0x3c, 0x0c, 0x01, 0xf3, 0x3e, 0x0c, 0x01, 0xf4, 0x45, 0x0c, 0x01, 0xf9, 0x18, 0x0c, - 0x41, 0x06, 0xf2, 0xd0, 0xea, 0x01, 0x0c, 0xb1, 0x94, 0x01, 0xff, 0x07, - 0xc1, 0x05, 0x1b, 0x03, 0x37, 0x37, 0x01, 0xff, 0x04, 0x8c, 0x05, 0x06, - 0x4e, 0x14, 0x76, 0x7f, 0x0a, 0x41, 0x45, 0x07, 0x4c, 0x7e, 0x0a, 0x01, - 0x43, 0xbf, 0x0a, 0x7d, 0x0a, 0x41, 0xa1, 0xb7, 0x01, 0x44, 0x0a, 0xec, - 0x68, 0x0a, 0x01, 0xa4, 0x97, 0x01, 0x42, 0xa0, 0x19, 0x70, 0x0a, 0x01, + 0x41, 0x06, 0xc5, 0xd3, 0xea, 0x01, 0x0c, 0x9f, 0x96, 0x01, 0xff, 0x07, + 0xec, 0x05, 0x1b, 0x03, 0x07, 0x38, 0x01, 0xff, 0x04, 0xb7, 0x05, 0x06, + 0x4e, 0x83, 0x77, 0x7f, 0x0a, 0x41, 0x45, 0x50, 0x4d, 0x7e, 0x0a, 0x01, + 0x43, 0x0e, 0x0b, 0x7d, 0x0a, 0x41, 0xa1, 0xb7, 0x01, 0x44, 0x41, 0xef, + 0x68, 0x0a, 0x01, 0xa4, 0x97, 0x01, 0x42, 0x0c, 0x1a, 0x70, 0x0a, 0x01, 0xa7, 0x82, 0x01, 0x42, 0xb0, 0x01, 0x60, 0x0a, 0x81, 0x75, 0xab, 0x67, - 0x46, 0x9c, 0xda, 0x61, 0x0a, 0x01, 0x43, 0x89, 0x05, 0x63, 0x0a, 0x01, - 0x43, 0x54, 0x22, 0x6c, 0x0a, 0x01, 0x44, 0xae, 0xc5, 0x64, 0x0a, 0x01, - 0x44, 0xfa, 0x64, 0x67, 0x0a, 0x01, 0xb3, 0x2f, 0xb4, 0x12, 0x43, 0xc0, - 0x88, 0x65, 0x0a, 0x01, 0x44, 0x58, 0x51, 0x7a, 0x0a, 0x01, 0x44, 0x06, - 0xf0, 0x78, 0x0a, 0x41, 0x42, 0x9a, 0x43, 0x69, 0x0a, 0x01, 0x43, 0x39, - 0x25, 0x77, 0x0a, 0x01, 0xa8, 0x01, 0xff, 0x42, 0x9a, 0x43, 0x7b, 0x0a, - 0x01, 0x43, 0x39, 0x25, 0x7c, 0x0a, 0x41, 0xa1, 0x06, 0x43, 0x0e, 0x16, - 0x66, 0x0a, 0x41, 0x43, 0x89, 0xe7, 0x6e, 0x0a, 0x01, 0x44, 0x39, 0xe1, - 0x6f, 0x0a, 0x01, 0xf4, 0x6a, 0x0a, 0x41, 0x43, 0x34, 0x10, 0x6b, 0x0a, - 0x01, 0x44, 0x25, 0xa8, 0x6d, 0x0a, 0x41, 0x42, 0x53, 0x00, 0x62, 0x0a, - 0x41, 0x44, 0xe2, 0xec, 0x76, 0x0a, 0x01, 0x44, 0xa2, 0xa8, 0x74, 0x0a, - 0x41, 0x45, 0xdb, 0x48, 0x75, 0x0a, 0x01, 0x02, 0x22, 0x00, 0x01, 0xff, - 0x43, 0x89, 0xe7, 0x73, 0x0a, 0x01, 0x44, 0xdc, 0x48, 0x79, 0x0a, 0x41, - 0x43, 0x68, 0x00, 0x71, 0x0a, 0x01, 0x42, 0x61, 0x1c, 0x72, 0x0a, 0x41, - 0x51, 0xb3, 0x58, 0x26, 0x0f, 0x01, 0xac, 0x44, 0x07, 0x2f, 0x39, 0x01, - 0xff, 0xa6, 0x31, 0x43, 0xbf, 0x0a, 0x1d, 0x0f, 0x81, 0x24, 0xb4, 0x01, + 0x46, 0x94, 0xdd, 0x61, 0x0a, 0x01, 0x43, 0xb4, 0x05, 0x63, 0x0a, 0x01, + 0x43, 0xdc, 0x22, 0x6c, 0x0a, 0x01, 0x44, 0x4c, 0xc8, 0x64, 0x0a, 0x01, + 0x44, 0x76, 0x66, 0x67, 0x0a, 0x01, 0xb3, 0x2f, 0xb4, 0x12, 0x43, 0x8a, + 0x8a, 0x65, 0x0a, 0x01, 0x44, 0xa1, 0x52, 0x7a, 0x0a, 0x01, 0x44, 0x59, + 0xf3, 0x78, 0x0a, 0x41, 0x42, 0xb7, 0x2d, 0x69, 0x0a, 0x01, 0x43, 0xda, + 0x25, 0x77, 0x0a, 0x01, 0xa8, 0x01, 0xff, 0x42, 0xb7, 0x2d, 0x7b, 0x0a, + 0x01, 0x43, 0xda, 0x25, 0x7c, 0x0a, 0x41, 0xa1, 0x06, 0x43, 0x7a, 0x16, + 0x66, 0x0a, 0x41, 0x43, 0xad, 0xea, 0x6e, 0x0a, 0x01, 0x44, 0x49, 0xe4, + 0x6f, 0x0a, 0x01, 0xf4, 0x6a, 0x0a, 0x41, 0x43, 0x83, 0x10, 0x6b, 0x0a, + 0x01, 0x44, 0x61, 0xaa, 0x6d, 0x0a, 0x41, 0x42, 0x53, 0x00, 0x62, 0x0a, + 0x41, 0x44, 0x21, 0xf0, 0x76, 0x0a, 0x01, 0x44, 0xde, 0xaa, 0x74, 0x0a, + 0x41, 0x45, 0x24, 0x4a, 0x75, 0x0a, 0x01, 0x02, 0x22, 0x00, 0x01, 0xff, + 0x43, 0xad, 0xea, 0x73, 0x0a, 0x01, 0x44, 0x25, 0x4a, 0x79, 0x0a, 0x41, + 0x43, 0x68, 0x00, 0x71, 0x0a, 0x01, 0x42, 0x03, 0x1d, 0x72, 0x0a, 0x41, + 0x51, 0x1e, 0x5a, 0x26, 0x0f, 0x01, 0xac, 0x44, 0x07, 0xff, 0x39, 0x01, + 0xff, 0xa6, 0x31, 0x43, 0x0e, 0x0b, 0x1d, 0x0f, 0x81, 0x24, 0xb4, 0x01, 0xff, 0x42, 0x92, 0x01, 0x22, 0x0f, 0x01, 0xa8, 0x0d, 0xb7, 0x01, 0xff, - 0x44, 0x29, 0x1d, 0x23, 0x0f, 0x01, 0xef, 0x1e, 0x0f, 0x41, 0x44, 0x2c, - 0x11, 0x24, 0x0f, 0x01, 0x43, 0x26, 0x01, 0x1f, 0x0f, 0x41, 0x48, 0x21, - 0x11, 0x25, 0x0f, 0x41, 0x43, 0xa7, 0x05, 0x21, 0x0f, 0x01, 0x43, 0xcb, - 0x06, 0x20, 0x0f, 0x41, 0x06, 0xc2, 0x05, 0x06, 0x53, 0xcd, 0x48, 0x27, - 0x0f, 0x41, 0xa1, 0xa8, 0x01, 0x44, 0x0a, 0xec, 0x02, 0x0f, 0x01, 0x06, - 0x3d, 0x2c, 0x65, 0x45, 0xa1, 0xa8, 0x04, 0x0f, 0x01, 0x42, 0xb0, 0x01, - 0x05, 0x0f, 0x81, 0x52, 0x44, 0x8e, 0xed, 0x0b, 0x0f, 0x01, 0x46, 0x9c, - 0xda, 0x0c, 0x0f, 0x01, 0x43, 0x89, 0x05, 0x0d, 0x0f, 0x01, 0x43, 0x54, - 0x22, 0x0e, 0x0f, 0x01, 0x42, 0x6f, 0x02, 0x14, 0x0f, 0x01, 0x50, 0xfa, - 0x64, 0x18, 0x0f, 0x01, 0xb3, 0x18, 0x43, 0x1e, 0xc2, 0x1a, 0x0f, 0x01, - 0x43, 0xc0, 0x88, 0x07, 0x0f, 0x01, 0x44, 0x58, 0x51, 0x0a, 0x0f, 0x01, - 0x45, 0x52, 0x51, 0x08, 0x0f, 0x41, 0xa1, 0x06, 0x43, 0x0e, 0x16, 0x19, - 0x0f, 0x41, 0x43, 0x89, 0xe7, 0x15, 0x0f, 0x01, 0x44, 0x39, 0xe1, 0x11, - 0x0f, 0x41, 0x42, 0x53, 0x00, 0x09, 0x0f, 0x41, 0x45, 0x58, 0xab, 0x01, - 0x0f, 0x01, 0x44, 0x0a, 0xec, 0x03, 0x0f, 0x01, 0x42, 0xb0, 0x01, 0x06, - 0x0f, 0x01, 0x43, 0x54, 0x22, 0x0f, 0x0f, 0x81, 0x1a, 0x45, 0x87, 0xe7, - 0x16, 0x0f, 0x81, 0x0d, 0x43, 0x1e, 0xc2, 0x1b, 0x0f, 0xc1, 0x00, 0x53, - 0x80, 0x46, 0x1c, 0x0f, 0x41, 0x53, 0x80, 0x46, 0x17, 0x0f, 0x41, 0x53, - 0x80, 0x46, 0x10, 0x0f, 0x41, 0xac, 0x06, 0x43, 0xf7, 0x19, 0x12, 0x0f, - 0x41, 0x43, 0x49, 0x3c, 0x00, 0x0f, 0x01, 0x4c, 0xe5, 0x93, 0x13, 0x0f, - 0x41, 0x0b, 0x51, 0x5a, 0xbb, 0x02, 0xb3, 0x01, 0xff, 0x04, 0x6b, 0x08, - 0x0d, 0x4d, 0x25, 0x85, 0xb3, 0xf5, 0xc1, 0x00, 0x65, 0x92, 0x07, 0xb2, - 0xce, 0x41, 0x07, 0x2f, 0x39, 0x80, 0x02, 0x05, 0x2f, 0x03, 0x06, 0x4c, - 0xb3, 0x24, 0xd0, 0x03, 0x41, 0xe1, 0xa0, 0x03, 0x81, 0xdd, 0x01, 0xa2, + 0x44, 0xcb, 0x1d, 0x23, 0x0f, 0x01, 0xef, 0x1e, 0x0f, 0x41, 0x44, 0x7b, + 0x11, 0x24, 0x0f, 0x01, 0x43, 0x26, 0x01, 0x1f, 0x0f, 0x41, 0x48, 0x70, + 0x11, 0x25, 0x0f, 0x41, 0x43, 0xd2, 0x05, 0x21, 0x0f, 0x01, 0x43, 0xf6, + 0x06, 0x20, 0x0f, 0x41, 0x06, 0xed, 0x05, 0x06, 0x53, 0x16, 0x4a, 0x27, + 0x0f, 0x41, 0xa1, 0xa8, 0x01, 0x44, 0x41, 0xef, 0x02, 0x0f, 0x01, 0x06, + 0xf5, 0x2c, 0x65, 0x45, 0xdd, 0xaa, 0x04, 0x0f, 0x01, 0x42, 0xb0, 0x01, + 0x05, 0x0f, 0x81, 0x52, 0x44, 0xcd, 0xf0, 0x0b, 0x0f, 0x01, 0x46, 0x94, + 0xdd, 0x0c, 0x0f, 0x01, 0x43, 0xb4, 0x05, 0x0d, 0x0f, 0x01, 0x43, 0xdc, + 0x22, 0x0e, 0x0f, 0x01, 0x42, 0x6f, 0x02, 0x14, 0x0f, 0x01, 0x50, 0x76, + 0x66, 0x18, 0x0f, 0x01, 0xb3, 0x18, 0x43, 0xa4, 0xc4, 0x1a, 0x0f, 0x01, + 0x43, 0x8a, 0x8a, 0x07, 0x0f, 0x01, 0x44, 0xa1, 0x52, 0x0a, 0x0f, 0x01, + 0x45, 0x9b, 0x52, 0x08, 0x0f, 0x41, 0xa1, 0x06, 0x43, 0x7a, 0x16, 0x19, + 0x0f, 0x41, 0x43, 0xad, 0xea, 0x15, 0x0f, 0x01, 0x44, 0x49, 0xe4, 0x11, + 0x0f, 0x41, 0x42, 0x53, 0x00, 0x09, 0x0f, 0x41, 0x45, 0xb2, 0xad, 0x01, + 0x0f, 0x01, 0x44, 0x41, 0xef, 0x03, 0x0f, 0x01, 0x42, 0xb0, 0x01, 0x06, + 0x0f, 0x01, 0x43, 0xdc, 0x22, 0x0f, 0x0f, 0x81, 0x1a, 0x45, 0xab, 0xea, + 0x16, 0x0f, 0x81, 0x0d, 0x43, 0xa4, 0xc4, 0x1b, 0x0f, 0xc1, 0x00, 0x53, + 0xc9, 0x47, 0x1c, 0x0f, 0x41, 0x53, 0xc9, 0x47, 0x17, 0x0f, 0x41, 0x53, + 0xc9, 0x47, 0x10, 0x0f, 0x41, 0xac, 0x06, 0x43, 0x7e, 0x1a, 0x12, 0x0f, + 0x41, 0x43, 0x19, 0x3d, 0x00, 0x0f, 0x01, 0x4c, 0xbb, 0x95, 0x13, 0x0f, + 0x41, 0x0b, 0xbc, 0x5b, 0xbb, 0x02, 0xb3, 0x01, 0xff, 0x04, 0x96, 0x08, + 0x0d, 0x4d, 0xe2, 0x86, 0xb3, 0xf5, 0xc1, 0x00, 0x65, 0xbd, 0x07, 0xb2, + 0xce, 0x41, 0x07, 0xff, 0x39, 0x80, 0x02, 0x05, 0x5a, 0x03, 0x06, 0x4c, + 0x3b, 0x25, 0xd0, 0x03, 0x41, 0xe1, 0xa0, 0x03, 0x81, 0xdd, 0x01, 0xa2, 0xc9, 0x01, 0x42, 0x37, 0x00, 0xa8, 0x03, 0x01, 0xa4, 0xa6, 0x01, 0x42, - 0xe1, 0x07, 0xb3, 0x03, 0x01, 0xa7, 0x95, 0x01, 0x42, 0x22, 0x00, 0xc3, + 0x0c, 0x08, 0xb3, 0x03, 0x01, 0xa7, 0x95, 0x01, 0x42, 0x22, 0x00, 0xc3, 0x03, 0x01, 0xe9, 0xa1, 0x03, 0x01, 0xaa, 0x80, 0x01, 0xab, 0x76, 0x42, - 0x74, 0x00, 0xbe, 0x03, 0x01, 0xad, 0x62, 0xae, 0x58, 0x42, 0x6c, 0x09, + 0x74, 0x00, 0xbe, 0x03, 0x01, 0xad, 0x62, 0xae, 0x58, 0x42, 0xbb, 0x09, 0xb1, 0x03, 0x01, 0xb2, 0x48, 0xb3, 0x36, 0xb4, 0x26, 0xf5, 0xa2, 0x03, - 0x01, 0xb6, 0x18, 0xb8, 0x0c, 0x42, 0x34, 0x22, 0xb9, 0x03, 0x01, 0x42, - 0x59, 0x00, 0xc0, 0x03, 0x41, 0xe1, 0xa7, 0x03, 0x01, 0x4b, 0x64, 0xa0, + 0x01, 0xb6, 0x18, 0xb8, 0x0c, 0x42, 0xbc, 0x22, 0xb9, 0x03, 0x01, 0x42, + 0x59, 0x00, 0xc0, 0x03, 0x41, 0xe1, 0xa7, 0x03, 0x01, 0x4b, 0x8a, 0xa2, 0xcb, 0x03, 0x41, 0xe1, 0xba, 0x03, 0x01, 0xe9, 0xbb, 0x03, 0x41, 0xe1, 0xab, 0x03, 0x01, 0x42, 0x22, 0x00, 0xb0, 0x03, 0x01, 0xf5, 0xac, 0x03, 0x41, 0xe1, 0xbf, 0x03, 0x01, 0x42, 0x22, 0x00, 0xc1, 0x03, 0x01, 0x42, - 0x15, 0x06, 0xc2, 0x03, 0x41, 0xe1, 0xbc, 0x03, 0x01, 0xf5, 0xbd, 0x03, + 0x40, 0x06, 0xc2, 0x03, 0x41, 0xe1, 0xbc, 0x03, 0x01, 0xf5, 0xbd, 0x03, 0x41, 0xe1, 0xb4, 0x03, 0x01, 0xf5, 0xb5, 0x03, 0x41, 0xe1, 0xb6, 0x03, 0x01, 0xe9, 0xb7, 0x03, 0x01, 0xf5, 0xb8, 0x03, 0x41, 0xe1, 0xa3, 0x03, 0x01, 0xf5, 0xa4, 0x03, 0x41, 0xe1, 0xa9, 0x03, 0x01, 0xe9, 0xaa, 0x03, 0x41, 0xe1, 0xa5, 0x03, 0x01, 0xf5, 0xa6, 0x03, 0x41, 0xe1, 0xad, 0x03, - 0x81, 0x08, 0xe9, 0xae, 0x03, 0x01, 0xf5, 0xaf, 0x03, 0x41, 0x47, 0xcf, - 0xce, 0xcc, 0x03, 0xc1, 0x00, 0x42, 0x34, 0xf0, 0xcd, 0x03, 0x41, 0xe1, - 0xb2, 0x03, 0x81, 0x06, 0x46, 0xfc, 0xdd, 0xcf, 0x03, 0x41, 0x42, 0x24, - 0x02, 0xce, 0x03, 0x41, 0x49, 0x02, 0xbe, 0xc8, 0x03, 0xc1, 0x00, 0x42, - 0x34, 0xf0, 0xc9, 0x03, 0x01, 0x42, 0x22, 0x00, 0xca, 0x03, 0x41, 0x47, - 0x22, 0x11, 0xd5, 0x03, 0x01, 0x43, 0xbf, 0x0a, 0xd1, 0x03, 0x01, 0xb4, + 0x81, 0x08, 0xe9, 0xae, 0x03, 0x01, 0xf5, 0xaf, 0x03, 0x41, 0x47, 0xa9, + 0xd1, 0xcc, 0x03, 0xc1, 0x00, 0x42, 0x87, 0xf3, 0xcd, 0x03, 0x41, 0xe1, + 0xb2, 0x03, 0x81, 0x06, 0x46, 0x0c, 0xe1, 0xcf, 0x03, 0x41, 0x42, 0x24, + 0x02, 0xce, 0x03, 0x41, 0x49, 0x89, 0xc0, 0xc8, 0x03, 0xc1, 0x00, 0x42, + 0x87, 0xf3, 0xc9, 0x03, 0x01, 0x42, 0x22, 0x00, 0xca, 0x03, 0x41, 0x47, + 0x71, 0x11, 0xd5, 0x03, 0x01, 0x43, 0x0e, 0x0b, 0xd1, 0x03, 0x01, 0xb4, 0x01, 0xff, 0x42, 0x92, 0x01, 0xd3, 0x03, 0x01, 0xb7, 0x01, 0xff, 0x44, - 0x29, 0x1d, 0xd4, 0x03, 0x01, 0xef, 0xd2, 0x03, 0x41, 0x42, 0x1a, 0x00, - 0x50, 0x03, 0x01, 0x43, 0x37, 0x35, 0x51, 0x03, 0x01, 0x45, 0x14, 0xe2, + 0xcb, 0x1d, 0xd4, 0x03, 0x01, 0xef, 0xd2, 0x03, 0x41, 0x42, 0x1a, 0x00, + 0x50, 0x03, 0x01, 0x43, 0x07, 0x36, 0x51, 0x03, 0x01, 0x45, 0x24, 0xe5, 0x64, 0x03, 0x01, 0xa4, 0xba, 0x01, 0xe5, 0x54, 0x03, 0x81, 0xb0, 0x01, - 0x43, 0xf1, 0x49, 0x52, 0x03, 0x01, 0x42, 0x22, 0x00, 0x6c, 0x03, 0x01, - 0xe9, 0x59, 0x03, 0x81, 0x96, 0x01, 0x44, 0xae, 0xed, 0x5a, 0x03, 0x01, - 0x43, 0x75, 0x42, 0x5b, 0x03, 0x01, 0x45, 0x75, 0xe5, 0x5c, 0x03, 0x01, - 0x45, 0xe8, 0xe5, 0x5d, 0x03, 0x01, 0xef, 0x69, 0x03, 0x81, 0x75, 0x44, - 0xba, 0xee, 0x5f, 0x03, 0x01, 0x43, 0xb8, 0x2e, 0x60, 0x03, 0x01, 0xb3, + 0x43, 0x3a, 0x4b, 0x52, 0x03, 0x01, 0x42, 0x22, 0x00, 0x6c, 0x03, 0x01, + 0xe9, 0x59, 0x03, 0x81, 0x96, 0x01, 0x44, 0xed, 0xf0, 0x5a, 0x03, 0x01, + 0x43, 0x82, 0x43, 0x5b, 0x03, 0x01, 0x45, 0x8f, 0xe8, 0x5c, 0x03, 0x01, + 0x45, 0x07, 0xe9, 0x5d, 0x03, 0x01, 0xef, 0x69, 0x03, 0x81, 0x75, 0x44, + 0x01, 0xf2, 0x5f, 0x03, 0x01, 0x43, 0x9e, 0x2f, 0x60, 0x03, 0x01, 0xb3, 0x53, 0xb4, 0x45, 0xf5, 0x63, 0x03, 0x01, 0xb6, 0x33, 0xb9, 0x0f, 0xba, - 0x01, 0xff, 0x43, 0x6b, 0x18, 0x57, 0x03, 0x01, 0x43, 0x9d, 0xd9, 0x55, + 0x01, 0xff, 0x43, 0xd7, 0x18, 0x57, 0x03, 0x01, 0x43, 0x95, 0xdc, 0x55, 0x03, 0x41, 0xe1, 0x74, 0x03, 0x81, 0x19, 0x42, 0x33, 0x00, 0x6f, 0x03, - 0x81, 0x0a, 0x42, 0x34, 0x0a, 0x67, 0x03, 0x01, 0xf5, 0x73, 0x03, 0x41, + 0x81, 0x0a, 0x42, 0x83, 0x0a, 0x67, 0x03, 0x01, 0xf5, 0x73, 0x03, 0x41, 0xe9, 0x70, 0x03, 0x01, 0xf5, 0x68, 0x03, 0x41, 0xf4, 0x71, 0x03, 0x41, - 0x42, 0x33, 0x00, 0x6e, 0x03, 0x01, 0x43, 0x25, 0xe2, 0x5e, 0x03, 0x41, - 0x42, 0x05, 0x07, 0x62, 0x03, 0x01, 0x43, 0x0b, 0xcd, 0x6d, 0x03, 0x41, - 0xa8, 0x06, 0x42, 0xb1, 0x27, 0x61, 0x03, 0x41, 0x45, 0x23, 0xe2, 0x66, - 0x03, 0x01, 0x43, 0x25, 0xe2, 0x65, 0x03, 0x41, 0xef, 0x6a, 0x03, 0x41, + 0x42, 0x33, 0x00, 0x6e, 0x03, 0x01, 0x43, 0x30, 0xe5, 0x5e, 0x03, 0x41, + 0x42, 0x56, 0x07, 0x62, 0x03, 0x01, 0x43, 0xde, 0xcf, 0x6d, 0x03, 0x41, + 0xa8, 0x06, 0x42, 0x52, 0x28, 0x61, 0x03, 0x41, 0x45, 0x2e, 0xe5, 0x66, + 0x03, 0x01, 0x43, 0x30, 0xe5, 0x65, 0x03, 0x41, 0xef, 0x6a, 0x03, 0x41, 0xe1, 0x75, 0x03, 0x01, 0xe5, 0x72, 0x03, 0x41, 0xe6, 0x6b, 0x03, 0x41, - 0x42, 0x9d, 0x01, 0x53, 0x03, 0x01, 0xba, 0x01, 0xff, 0x43, 0x9d, 0xd9, - 0x56, 0x03, 0x01, 0x43, 0xbc, 0x05, 0x58, 0x03, 0x41, 0x07, 0xc1, 0x05, - 0x1a, 0x07, 0x2f, 0x39, 0x01, 0xff, 0x43, 0xbf, 0x0a, 0x9d, 0x0a, 0x01, - 0xb4, 0x01, 0xff, 0x42, 0x92, 0x01, 0x9e, 0x0a, 0x01, 0x45, 0xde, 0x2b, - 0x9f, 0x0a, 0x41, 0xa1, 0xb0, 0x01, 0x43, 0xe5, 0x8a, 0x88, 0x0a, 0x01, - 0x02, 0xa1, 0x10, 0x9d, 0x01, 0x03, 0xb7, 0xd2, 0x8c, 0x01, 0x43, 0x85, - 0xb6, 0x90, 0x0a, 0x01, 0xa7, 0x78, 0xa8, 0x6a, 0xab, 0x5c, 0x43, 0xb0, - 0x00, 0x81, 0x0a, 0x01, 0x44, 0x7a, 0x20, 0x83, 0x0a, 0x01, 0x44, 0xc4, - 0x44, 0x8c, 0x0a, 0x01, 0x43, 0xf4, 0x13, 0x84, 0x0a, 0x01, 0x43, 0xee, - 0x50, 0x87, 0x0a, 0x01, 0x43, 0x30, 0x14, 0x8e, 0x0a, 0x01, 0xb4, 0x1b, - 0x43, 0xc0, 0x88, 0x85, 0x0a, 0x01, 0x43, 0x4d, 0x00, 0x9a, 0x0a, 0x01, + 0x42, 0x9d, 0x01, 0x53, 0x03, 0x01, 0xba, 0x01, 0xff, 0x43, 0x95, 0xdc, + 0x56, 0x03, 0x01, 0x43, 0xe7, 0x05, 0x58, 0x03, 0x41, 0x07, 0xec, 0x05, + 0x1a, 0x07, 0xff, 0x39, 0x01, 0xff, 0x43, 0x0e, 0x0b, 0x9d, 0x0a, 0x01, + 0xb4, 0x01, 0xff, 0x42, 0x92, 0x01, 0x9e, 0x0a, 0x01, 0x45, 0x7f, 0x2c, + 0x9f, 0x0a, 0x41, 0xa1, 0xb0, 0x01, 0x43, 0xa3, 0x8c, 0x88, 0x0a, 0x01, + 0x02, 0xf0, 0x10, 0x9d, 0x01, 0x03, 0x8a, 0xd5, 0x8c, 0x01, 0x43, 0xd6, + 0xb8, 0x90, 0x0a, 0x01, 0xa7, 0x78, 0xa8, 0x6a, 0xab, 0x5c, 0x43, 0xb0, + 0x00, 0x81, 0x0a, 0x01, 0x44, 0x1c, 0x21, 0x83, 0x0a, 0x01, 0x44, 0xf9, + 0x45, 0x8c, 0x0a, 0x01, 0x43, 0x43, 0x14, 0x84, 0x0a, 0x01, 0x43, 0x37, + 0x52, 0x87, 0x0a, 0x01, 0x43, 0x7f, 0x14, 0x8e, 0x0a, 0x01, 0xb4, 0x1b, + 0x43, 0x8a, 0x8a, 0x85, 0x0a, 0x01, 0x43, 0x4d, 0x00, 0x9a, 0x0a, 0x01, 0x02, 0x59, 0x00, 0x01, 0xff, 0xe8, 0x9c, 0x0a, 0x01, 0x42, 0x9e, 0x01, - 0x98, 0x0a, 0x41, 0x42, 0xc9, 0x09, 0x97, 0x0a, 0x01, 0x42, 0x4e, 0x00, + 0x98, 0x0a, 0x41, 0x42, 0x18, 0x0a, 0x97, 0x0a, 0x01, 0x42, 0x4e, 0x00, 0x89, 0x0a, 0x01, 0xa8, 0x01, 0xff, 0x42, 0x13, 0x00, 0x99, 0x0a, 0x01, - 0x42, 0x4e, 0x00, 0x9b, 0x0a, 0x41, 0x42, 0xf5, 0x13, 0x8b, 0x0a, 0x01, - 0x43, 0x84, 0x20, 0x8d, 0x0a, 0x41, 0x42, 0xc9, 0x09, 0x82, 0x0a, 0x01, - 0x42, 0x4e, 0x00, 0x80, 0x0a, 0x41, 0x43, 0xdf, 0x17, 0x94, 0x0a, 0x01, - 0x44, 0x4b, 0x9a, 0x96, 0x0a, 0x41, 0xd1, 0x8a, 0x0a, 0x01, 0xd2, 0x86, + 0x42, 0x4e, 0x00, 0x9b, 0x0a, 0x41, 0x42, 0x44, 0x14, 0x8b, 0x0a, 0x01, + 0x43, 0x26, 0x21, 0x8d, 0x0a, 0x41, 0x42, 0x18, 0x0a, 0x82, 0x0a, 0x01, + 0x42, 0x4e, 0x00, 0x80, 0x0a, 0x41, 0x43, 0x4b, 0x18, 0x94, 0x0a, 0x01, + 0x44, 0x66, 0x9c, 0x96, 0x0a, 0x41, 0xd1, 0x8a, 0x0a, 0x01, 0xd2, 0x86, 0x0a, 0x01, 0xd3, 0x8f, 0x0a, 0x41, 0xe4, 0x93, 0x0a, 0x01, 0xec, 0x95, 0x0a, 0x41, 0x42, 0x9e, 0x01, 0x92, 0x0a, 0x01, 0x43, 0x68, 0x00, 0x91, - 0x0a, 0x41, 0x07, 0xc1, 0x05, 0x21, 0x08, 0xb5, 0x5b, 0x01, 0xff, 0x02, - 0xc8, 0x02, 0x0c, 0x43, 0xbf, 0x0a, 0x20, 0x03, 0x01, 0x43, 0xb0, 0x06, - 0x22, 0x03, 0x41, 0x43, 0x09, 0x4c, 0x23, 0x03, 0x01, 0x42, 0x32, 0x00, - 0x21, 0x03, 0x41, 0xe1, 0x00, 0x03, 0x01, 0x42, 0x8c, 0x05, 0x01, 0x03, - 0x01, 0x43, 0x1e, 0x14, 0x1c, 0x03, 0x01, 0x42, 0x04, 0x00, 0x03, 0x03, + 0x0a, 0x41, 0x07, 0xec, 0x05, 0x21, 0x08, 0x20, 0x5d, 0x01, 0xff, 0x02, + 0xf3, 0x02, 0x0c, 0x43, 0x0e, 0x0b, 0x20, 0x03, 0x01, 0x43, 0xdb, 0x06, + 0x22, 0x03, 0x41, 0x43, 0x52, 0x4d, 0x23, 0x03, 0x01, 0x42, 0x32, 0x00, + 0x21, 0x03, 0x41, 0xe1, 0x00, 0x03, 0x01, 0x42, 0xb7, 0x05, 0x01, 0x03, + 0x01, 0x43, 0x6d, 0x14, 0x1c, 0x03, 0x01, 0x42, 0x04, 0x00, 0x03, 0x03, 0x01, 0xe5, 0x04, 0x03, 0x81, 0x6e, 0x42, 0xb0, 0x01, 0x07, 0x03, 0x01, - 0xe9, 0x09, 0x03, 0x81, 0x5f, 0xab, 0x4b, 0x4c, 0x09, 0x91, 0x2e, 0x03, + 0xe9, 0x09, 0x03, 0x81, 0x5f, 0xab, 0x4b, 0x4c, 0xbb, 0x92, 0x2e, 0x03, 0x01, 0xef, 0x0f, 0x03, 0x01, 0xb0, 0x35, 0xb3, 0x27, 0xb4, 0x1b, 0xf5, 0x16, 0x03, 0x81, 0x12, 0x42, 0x32, 0x00, 0x05, 0x03, 0x01, 0x42, 0x4d, - 0x00, 0x2d, 0x03, 0x01, 0x42, 0xfc, 0x09, 0x06, 0x03, 0x41, 0xf5, 0x1e, + 0x00, 0x2d, 0x03, 0x01, 0x42, 0x4b, 0x0a, 0x06, 0x03, 0x41, 0xf5, 0x1e, 0x03, 0x41, 0xe5, 0x15, 0x03, 0x01, 0x42, 0xb0, 0x01, 0x08, 0x03, 0x41, - 0x42, 0xb0, 0x01, 0x11, 0x03, 0x01, 0x4b, 0xee, 0x9e, 0x2f, 0x03, 0x41, + 0x42, 0xb0, 0x01, 0x11, 0x03, 0x01, 0x4b, 0x1f, 0xa1, 0x2f, 0x03, 0x41, 0xe5, 0x10, 0x03, 0x01, 0x42, 0xb0, 0x01, 0x18, 0x03, 0x41, 0xe1, 0x0a, 0x03, 0x01, 0xe5, 0x02, 0x03, 0x01, 0x42, 0xb0, 0x01, 0x19, 0x03, 0x01, 0xf5, 0x12, 0x03, 0x41, 0xe9, 0x1d, 0x03, 0x41, 0xe6, 0x1a, 0x03, 0x01, 0x42, 0x6e, 0x00, 0x17, 0x03, 0x01, 0xec, 0x0b, 0x03, 0x01, 0xed, 0x0c, 0x03, 0x01, 0xee, 0x0d, 0x03, 0x01, 0xf2, 0x13, 0x03, 0x81, 0x0d, 0xf3, 0x14, 0x03, 0xc1, 0x00, 0xe8, 0x0e, 0x03, 0x01, 0xf3, 0x1f, 0x03, 0x41, - 0xf3, 0x1b, 0x03, 0x41, 0x0f, 0xb9, 0x05, 0xaf, 0x02, 0x07, 0x2f, 0x39, - 0xfe, 0x01, 0x0d, 0x4b, 0x08, 0x01, 0xff, 0xe1, 0xc0, 0x0c, 0x81, 0xdf, - 0x01, 0x47, 0x2b, 0xcd, 0xca, 0x0c, 0x01, 0xe5, 0xc9, 0x0c, 0x81, 0x51, - 0xe9, 0xd0, 0x0c, 0x81, 0x48, 0x0b, 0xe6, 0x9d, 0x38, 0xef, 0xdb, 0x0c, - 0x81, 0x29, 0x0a, 0x5f, 0xae, 0x19, 0x48, 0x32, 0xc8, 0xe3, 0x0c, 0x01, - 0xf5, 0xea, 0x0c, 0xc1, 0x00, 0x42, 0x12, 0x25, 0xd5, 0x0c, 0x01, 0xf3, - 0xf2, 0x0c, 0x01, 0xf5, 0xeb, 0x0c, 0x41, 0x42, 0x17, 0x50, 0xde, 0x0c, - 0x01, 0x42, 0x87, 0x13, 0xed, 0x0c, 0x41, 0x42, 0x27, 0x01, 0xdf, 0x0c, - 0x01, 0xef, 0xdc, 0x0c, 0x41, 0x42, 0x17, 0x50, 0xdd, 0x0c, 0x01, 0x42, - 0x87, 0x13, 0xec, 0x0c, 0x41, 0xe9, 0xd1, 0x0c, 0x41, 0xe2, 0xc2, 0x0c, + 0xf3, 0x1b, 0x03, 0x41, 0x0f, 0xe4, 0x05, 0xaf, 0x02, 0x07, 0xff, 0x39, + 0xfe, 0x01, 0x0d, 0x76, 0x08, 0x01, 0xff, 0xe1, 0xc0, 0x0c, 0x81, 0xdf, + 0x01, 0x47, 0xfe, 0xcf, 0xca, 0x0c, 0x01, 0xe5, 0xc9, 0x0c, 0x81, 0x51, + 0xe9, 0xd0, 0x0c, 0x81, 0x48, 0x0b, 0x17, 0xa0, 0x38, 0xef, 0xdb, 0x0c, + 0x81, 0x29, 0x0a, 0xaf, 0xb0, 0x19, 0x48, 0xe0, 0xca, 0xe3, 0x0c, 0x01, + 0xf5, 0xea, 0x0c, 0xc1, 0x00, 0x42, 0xb3, 0x25, 0xd5, 0x0c, 0x01, 0xf3, + 0xf2, 0x0c, 0x01, 0xf5, 0xeb, 0x0c, 0x41, 0x42, 0x60, 0x51, 0xde, 0x0c, + 0x01, 0x42, 0xd6, 0x13, 0xed, 0x0c, 0x41, 0x42, 0x27, 0x01, 0xdf, 0x0c, + 0x01, 0xef, 0xdc, 0x0c, 0x41, 0x42, 0x60, 0x51, 0xdd, 0x0c, 0x01, 0x42, + 0xd6, 0x13, 0xec, 0x0c, 0x41, 0xe9, 0xd1, 0x0c, 0x41, 0xe2, 0xc2, 0x0c, 0x01, 0xe3, 0xc4, 0x0c, 0x81, 0x72, 0xe4, 0xc7, 0x0c, 0x01, 0xe5, 0xcb, 0x0c, 0x01, 0xe6, 0xcc, 0x0c, 0x01, 0xe7, 0xcd, 0x0c, 0x81, 0x5d, 0xe8, 0xcf, 0x0c, 0x01, 0xea, 0xd2, 0x0c, 0x01, 0xeb, 0xd3, 0x0c, 0x01, 0xec, @@ -6257,22 +6387,22 @@ static const unsigned char uname2c_tree[218382] = { 0x0c, 0x81, 0x16, 0xf4, 0xe6, 0x0c, 0x81, 0x0d, 0xf6, 0xee, 0x0c, 0x01, 0xfa, 0xef, 0x0c, 0xc1, 0x00, 0xf3, 0xf0, 0x0c, 0x41, 0xf9, 0xe8, 0x0c, 0x41, 0xfa, 0xe5, 0x0c, 0x41, 0xe3, 0xc5, 0x0c, 0x01, 0xf4, 0xe7, 0x0c, - 0x81, 0x04, 0xf9, 0xda, 0x0c, 0x41, 0x4c, 0x01, 0x8a, 0xf1, 0x0c, 0x41, + 0x81, 0x04, 0xf9, 0xda, 0x0c, 0x41, 0x4c, 0xcb, 0x8b, 0xf1, 0x0c, 0x41, 0xf0, 0xe1, 0x0c, 0x41, 0xf9, 0xd7, 0x0c, 0x41, 0xf9, 0xce, 0x0c, 0x41, 0xe8, 0xe9, 0x0c, 0x01, 0xf3, 0xc6, 0x0c, 0x41, 0xe1, 0xc1, 0x0c, 0x01, - 0xeb, 0xd4, 0x0c, 0x01, 0x42, 0x8b, 0x05, 0xc3, 0x0c, 0x01, 0x42, 0x1b, - 0x00, 0xc8, 0x0c, 0x41, 0x02, 0xc8, 0x02, 0x1c, 0x43, 0xbf, 0x0a, 0xfa, - 0x0c, 0x81, 0x06, 0x43, 0xb0, 0x06, 0xfc, 0x0c, 0x41, 0x80, 0x01, 0xff, - 0x47, 0x22, 0x11, 0xfe, 0x0c, 0x01, 0x48, 0xd5, 0x5c, 0xff, 0x0c, 0x41, - 0x43, 0x09, 0x4c, 0xfd, 0x0c, 0x01, 0x42, 0x32, 0x00, 0xfb, 0x0c, 0x41, - 0xe1, 0x80, 0x0c, 0x81, 0xdf, 0x01, 0x47, 0x2b, 0xcd, 0x8a, 0x0c, 0x01, - 0xe5, 0x89, 0x0c, 0x81, 0x51, 0xe9, 0x90, 0x0c, 0x81, 0x48, 0x0b, 0xe6, - 0x9d, 0x38, 0xef, 0x9b, 0x0c, 0x81, 0x29, 0x0a, 0x5f, 0xae, 0x19, 0x48, - 0x32, 0xc8, 0xa3, 0x0c, 0x01, 0xf5, 0xaa, 0x0c, 0xc1, 0x00, 0x42, 0x12, + 0xeb, 0xd4, 0x0c, 0x01, 0x42, 0xb6, 0x05, 0xc3, 0x0c, 0x01, 0x42, 0x1b, + 0x00, 0xc8, 0x0c, 0x41, 0x02, 0xf3, 0x02, 0x1c, 0x43, 0x0e, 0x0b, 0xfa, + 0x0c, 0x81, 0x06, 0x43, 0xdb, 0x06, 0xfc, 0x0c, 0x41, 0x80, 0x01, 0xff, + 0x47, 0x71, 0x11, 0xfe, 0x0c, 0x01, 0x48, 0x40, 0x5e, 0xff, 0x0c, 0x41, + 0x43, 0x52, 0x4d, 0xfd, 0x0c, 0x01, 0x42, 0x32, 0x00, 0xfb, 0x0c, 0x41, + 0xe1, 0x80, 0x0c, 0x81, 0xdf, 0x01, 0x47, 0xfe, 0xcf, 0x8a, 0x0c, 0x01, + 0xe5, 0x89, 0x0c, 0x81, 0x51, 0xe9, 0x90, 0x0c, 0x81, 0x48, 0x0b, 0x17, + 0xa0, 0x38, 0xef, 0x9b, 0x0c, 0x81, 0x29, 0x0a, 0xaf, 0xb0, 0x19, 0x48, + 0xe0, 0xca, 0xa3, 0x0c, 0x01, 0xf5, 0xaa, 0x0c, 0xc1, 0x00, 0x42, 0xb3, 0x25, 0x95, 0x0c, 0x01, 0xf3, 0xb2, 0x0c, 0x01, 0xf5, 0xab, 0x0c, 0x41, - 0x42, 0x17, 0x50, 0x9e, 0x0c, 0x01, 0x42, 0x87, 0x13, 0xad, 0x0c, 0x41, - 0x42, 0x27, 0x01, 0x9f, 0x0c, 0x01, 0xef, 0x9c, 0x0c, 0x41, 0x42, 0x17, - 0x50, 0x9d, 0x0c, 0x01, 0x42, 0x87, 0x13, 0xac, 0x0c, 0x41, 0xe9, 0x91, + 0x42, 0x60, 0x51, 0x9e, 0x0c, 0x01, 0x42, 0xd6, 0x13, 0xad, 0x0c, 0x41, + 0x42, 0x27, 0x01, 0x9f, 0x0c, 0x01, 0xef, 0x9c, 0x0c, 0x41, 0x42, 0x60, + 0x51, 0x9d, 0x0c, 0x01, 0x42, 0xd6, 0x13, 0xac, 0x0c, 0x41, 0xe9, 0x91, 0x0c, 0x41, 0xe2, 0x82, 0x0c, 0x01, 0xe3, 0x84, 0x0c, 0x81, 0x72, 0xe4, 0x87, 0x0c, 0x01, 0xe5, 0x8b, 0x0c, 0x01, 0xe6, 0x8c, 0x0c, 0x01, 0xe7, 0x8d, 0x0c, 0x81, 0x5d, 0xe8, 0x8f, 0x0c, 0x01, 0xea, 0x92, 0x0c, 0x01, @@ -6282,4093 +6412,4104 @@ static const unsigned char uname2c_tree[218382] = { 0x0d, 0xf6, 0xae, 0x0c, 0x01, 0xfa, 0xaf, 0x0c, 0xc1, 0x00, 0xf3, 0xb0, 0x0c, 0x41, 0xf9, 0xa8, 0x0c, 0x41, 0xfa, 0xa5, 0x0c, 0x41, 0xe3, 0x85, 0x0c, 0x01, 0xf4, 0xa7, 0x0c, 0x81, 0x04, 0xf9, 0x9a, 0x0c, 0x41, 0x4c, - 0x01, 0x8a, 0xb1, 0x0c, 0x41, 0xf0, 0xa1, 0x0c, 0x41, 0xf9, 0x97, 0x0c, + 0xcb, 0x8b, 0xb1, 0x0c, 0x41, 0xf0, 0xa1, 0x0c, 0x41, 0xf9, 0x97, 0x0c, 0x41, 0xf9, 0x8e, 0x0c, 0x41, 0xe8, 0xa9, 0x0c, 0x01, 0xf3, 0x86, 0x0c, - 0x41, 0xe1, 0x81, 0x0c, 0x01, 0xeb, 0x94, 0x0c, 0x01, 0x42, 0x8b, 0x05, - 0x83, 0x0c, 0x01, 0x42, 0x1b, 0x00, 0x88, 0x0c, 0x41, 0x49, 0x54, 0xb7, - 0xe2, 0x6f, 0x01, 0x4e, 0xb6, 0x1f, 0xe3, 0x6f, 0x41, 0x06, 0xa8, 0xd7, - 0xf5, 0x01, 0x05, 0xe4, 0x15, 0x01, 0xff, 0x51, 0x93, 0x56, 0xff, 0xe5, - 0x01, 0x06, 0xc4, 0x06, 0xa3, 0x01, 0x07, 0xc1, 0x05, 0x17, 0x05, 0x2f, - 0x03, 0x01, 0xff, 0x47, 0xc8, 0xce, 0xf0, 0xe5, 0x01, 0x44, 0x4a, 0xed, - 0xef, 0xe5, 0x01, 0x42, 0x57, 0x16, 0xee, 0xe5, 0x41, 0xe1, 0xd6, 0xe5, + 0x41, 0xe1, 0x81, 0x0c, 0x01, 0xeb, 0x94, 0x0c, 0x01, 0x42, 0xb6, 0x05, + 0x83, 0x0c, 0x01, 0x42, 0x1b, 0x00, 0x88, 0x0c, 0x41, 0x49, 0xb7, 0xb9, + 0xe2, 0x6f, 0x01, 0x4e, 0x58, 0x20, 0xe3, 0x6f, 0x41, 0x06, 0x8e, 0xda, + 0xf5, 0x01, 0x05, 0x50, 0x16, 0x01, 0xff, 0x51, 0xdc, 0x57, 0xff, 0xe5, + 0x01, 0x06, 0xef, 0x06, 0xa3, 0x01, 0x07, 0xec, 0x05, 0x17, 0x05, 0x5a, + 0x03, 0x01, 0xff, 0x47, 0xa2, 0xd1, 0xf0, 0xe5, 0x01, 0x44, 0x89, 0xf0, + 0xef, 0xe5, 0x01, 0x42, 0xc3, 0x16, 0xee, 0xe5, 0x41, 0xe1, 0xd6, 0xe5, 0x81, 0x6f, 0xe5, 0xe8, 0xe5, 0x81, 0x54, 0xe9, 0xdc, 0xe5, 0x81, 0x3a, 0xef, 0xd0, 0xe5, 0x81, 0x1d, 0xf5, 0xe2, 0xe5, 0xc1, 0x00, 0x42, 0x7f, 0x02, 0xe4, 0xe5, 0x01, 0xea, 0xe5, 0xe5, 0x01, 0xeb, 0xe3, 0xe5, 0x01, - 0x42, 0xf6, 0x19, 0xe6, 0xe5, 0x01, 0xf2, 0xe7, 0xe5, 0x41, 0xed, 0xd1, + 0x42, 0x7d, 0x1a, 0xe6, 0xe5, 0x01, 0xf2, 0xe7, 0xe5, 0x41, 0xed, 0xd1, 0xe5, 0x01, 0x42, 0x1d, 0x01, 0xd2, 0xe5, 0x01, 0xef, 0xd4, 0xe5, 0x01, 0x42, 0xcf, 0x00, 0xd3, 0xe5, 0x01, 0xf9, 0xd5, 0xe5, 0x41, 0xe4, 0xe0, 0xe5, 0x01, 0xee, 0xe1, 0xe5, 0x01, 0xf0, 0xde, 0xe5, 0x01, 0xf4, 0xdd, 0xe5, 0xc1, 0x00, 0xf4, 0xdf, 0xe5, 0x41, 0xe3, 0xeb, 0xe5, 0x01, 0xe7, - 0xed, 0xe5, 0x01, 0xe8, 0xea, 0xe5, 0x01, 0x42, 0xac, 0x1e, 0xec, 0xe5, + 0xed, 0xe5, 0x01, 0xe8, 0xea, 0xe5, 0x01, 0x42, 0x4e, 0x1f, 0xec, 0xe5, 0x01, 0xf3, 0xe9, 0xe5, 0x41, 0xe2, 0xd8, 0xe5, 0x01, 0xe4, 0xd7, 0xe5, 0x01, 0xe8, 0xd9, 0xe5, 0x01, 0xec, 0xda, 0xe5, 0x01, 0xf7, 0xdb, 0xe5, - 0x41, 0x45, 0xc3, 0x0a, 0xf9, 0xe5, 0x01, 0xa6, 0x2e, 0x44, 0x46, 0x2a, - 0xfa, 0xe5, 0x01, 0x43, 0xbf, 0x0a, 0xf2, 0xe5, 0x01, 0xb3, 0x14, 0xb4, - 0x06, 0x44, 0xa1, 0x1d, 0xf1, 0xe5, 0x41, 0x44, 0x25, 0x01, 0xf4, 0xe5, - 0x01, 0x42, 0x15, 0x02, 0xf3, 0xe5, 0x41, 0x44, 0x27, 0x1d, 0xf8, 0xe5, - 0x01, 0x42, 0x60, 0x25, 0xf7, 0xe5, 0x41, 0x43, 0xa7, 0x05, 0xf6, 0xe5, - 0x01, 0x43, 0xcb, 0x06, 0xf5, 0xe5, 0x41, 0x44, 0xb2, 0xeb, 0x7d, 0x1c, - 0x00, 0x06, 0xc4, 0x06, 0xcd, 0x01, 0x50, 0x50, 0x56, 0x79, 0x1c, 0x00, - 0x07, 0xc1, 0x05, 0x2f, 0x02, 0x57, 0x16, 0x1f, 0xb0, 0x06, 0x45, 0x2d, - 0xe7, 0x7b, 0x1c, 0x40, 0x47, 0x90, 0xce, 0x7c, 0x1c, 0x00, 0x0b, 0x02, - 0x16, 0x01, 0xff, 0x4d, 0x93, 0x80, 0x7f, 0x1c, 0x00, 0x46, 0x9a, 0x80, - 0x7e, 0x1c, 0x40, 0x48, 0x22, 0xc0, 0x78, 0x1c, 0x00, 0x51, 0x4f, 0x56, + 0x41, 0x45, 0x12, 0x0b, 0xf9, 0xe5, 0x01, 0xa6, 0x2e, 0x44, 0xcf, 0x2a, + 0xfa, 0xe5, 0x01, 0x43, 0x0e, 0x0b, 0xf2, 0xe5, 0x01, 0xb3, 0x14, 0xb4, + 0x06, 0x44, 0x43, 0x1e, 0xf1, 0xe5, 0x41, 0x44, 0x25, 0x01, 0xf4, 0xe5, + 0x01, 0x42, 0x15, 0x02, 0xf3, 0xe5, 0x41, 0x44, 0xc9, 0x1d, 0xf8, 0xe5, + 0x01, 0x42, 0x01, 0x26, 0xf7, 0xe5, 0x41, 0x43, 0xd2, 0x05, 0xf6, 0xe5, + 0x01, 0x43, 0xf6, 0x06, 0xf5, 0xe5, 0x41, 0x44, 0xe5, 0xee, 0x7d, 0x1c, + 0x00, 0x06, 0xef, 0x06, 0xcd, 0x01, 0x50, 0x99, 0x57, 0x79, 0x1c, 0x00, + 0x07, 0xec, 0x05, 0x2f, 0x02, 0xc3, 0x16, 0x1f, 0xb0, 0x06, 0x45, 0x51, + 0xea, 0x7b, 0x1c, 0x40, 0x47, 0x6a, 0xd1, 0x7c, 0x1c, 0x00, 0x0b, 0x6e, + 0x16, 0x01, 0xff, 0x4d, 0x29, 0x82, 0x7f, 0x1c, 0x00, 0x46, 0x30, 0x82, + 0x7e, 0x1c, 0x40, 0x48, 0xa0, 0xc2, 0x78, 0x1c, 0x00, 0x51, 0x98, 0x57, 0x7a, 0x1c, 0x40, 0xa1, 0x6e, 0xa5, 0x58, 0xa9, 0x44, 0xac, 0x29, 0xaf, 0x15, 0xb5, 0x01, 0xff, 0xe3, 0x6a, 0x1c, 0x00, 0xe4, 0x6b, 0x1c, 0x00, - 0x42, 0xac, 0x1e, 0x6c, 0x1c, 0x00, 0xf9, 0x6d, 0x1c, 0x40, 0xe2, 0x75, - 0x1c, 0x00, 0xe8, 0x77, 0x1c, 0x00, 0x42, 0xc3, 0x05, 0x74, 0x1c, 0x00, + 0x42, 0x4e, 0x1f, 0x6c, 0x1c, 0x00, 0xf9, 0x6d, 0x1c, 0x40, 0xe2, 0x75, + 0x1c, 0x00, 0xe8, 0x77, 0x1c, 0x00, 0x42, 0xee, 0x05, 0x74, 0x1c, 0x00, 0xf6, 0x76, 0x1c, 0x40, 0xe1, 0x5a, 0x1c, 0x80, 0x10, 0xe5, 0x6e, 0x1c, 0x00, 0xe9, 0x64, 0x1c, 0x00, 0xef, 0x73, 0x1c, 0x00, 0xf5, 0x69, 0x1c, - 0x40, 0xe1, 0x5f, 0x1c, 0x40, 0xe8, 0x66, 0x1c, 0x00, 0x42, 0xf6, 0x19, + 0x40, 0xe1, 0x5f, 0x1c, 0x40, 0xe8, 0x66, 0x1c, 0x00, 0x42, 0x7d, 0x1a, 0x67, 0x1c, 0x00, 0xf2, 0x68, 0x1c, 0x00, 0xf3, 0x65, 0x1c, 0x40, 0x42, 0x7f, 0x02, 0x70, 0x1c, 0x00, 0xee, 0x71, 0x1c, 0x00, 0xf0, 0x6f, 0x1c, 0x00, 0x42, 0xcf, 0x00, 0x72, 0x1c, 0x40, 0xa1, 0x12, 0xe7, 0x5c, 0x1c, 0x00, 0xec, 0x5e, 0x1c, 0x00, 0x42, 0x1d, 0x01, 0x5d, 0x1c, 0x00, 0xf4, 0x5b, 0x1c, 0x40, 0xea, 0x61, 0x1c, 0x00, 0xeb, 0x60, 0x1c, 0x00, 0xed, - 0x62, 0x1c, 0x00, 0xf7, 0x63, 0x1c, 0x40, 0x45, 0xc3, 0x0a, 0x58, 0x1c, - 0x00, 0xa6, 0x2e, 0x44, 0x46, 0x2a, 0x59, 0x1c, 0x00, 0x43, 0xbf, 0x0a, - 0x51, 0x1c, 0x00, 0xb3, 0x14, 0xb4, 0x06, 0x44, 0xa1, 0x1d, 0x50, 0x1c, + 0x62, 0x1c, 0x00, 0xf7, 0x63, 0x1c, 0x40, 0x45, 0x12, 0x0b, 0x58, 0x1c, + 0x00, 0xa6, 0x2e, 0x44, 0xcf, 0x2a, 0x59, 0x1c, 0x00, 0x43, 0x0e, 0x0b, + 0x51, 0x1c, 0x00, 0xb3, 0x14, 0xb4, 0x06, 0x44, 0x43, 0x1e, 0x50, 0x1c, 0x40, 0x44, 0x25, 0x01, 0x53, 0x1c, 0x00, 0x42, 0x15, 0x02, 0x52, 0x1c, - 0x40, 0x44, 0x27, 0x1d, 0x57, 0x1c, 0x00, 0x42, 0x60, 0x25, 0x56, 0x1c, - 0x40, 0x43, 0xa7, 0x05, 0x55, 0x1c, 0x00, 0x43, 0xcb, 0x06, 0x54, 0x1c, - 0x40, 0x04, 0xff, 0x81, 0x06, 0x44, 0xc4, 0xdb, 0xdb, 0x02, 0x40, 0x4c, - 0xf4, 0x3c, 0x9b, 0x16, 0x00, 0x07, 0xc1, 0x05, 0x0c, 0x55, 0xeb, 0x3c, - 0x9c, 0x16, 0x00, 0x4a, 0xd7, 0xae, 0x80, 0x16, 0x40, 0x44, 0xb6, 0xeb, - 0x90, 0x16, 0x00, 0x45, 0xa1, 0xe1, 0x81, 0x16, 0x00, 0xa3, 0x8f, 0x01, - 0x44, 0x42, 0xec, 0x87, 0x16, 0x00, 0x02, 0x89, 0x00, 0x73, 0x45, 0x4f, - 0xe3, 0x83, 0x16, 0x00, 0x44, 0xce, 0xec, 0x8c, 0x16, 0x00, 0xa9, 0x59, - 0x44, 0xd6, 0xed, 0x82, 0x16, 0x00, 0x44, 0x06, 0xee, 0x8b, 0x16, 0x00, - 0xae, 0x3f, 0xaf, 0x33, 0x45, 0xab, 0xe6, 0x9a, 0x16, 0x00, 0x44, 0x22, - 0xef, 0x8f, 0x16, 0x00, 0xb3, 0x19, 0x45, 0x22, 0xe8, 0x88, 0x16, 0x00, - 0xb5, 0x01, 0xff, 0x43, 0x25, 0x0f, 0x86, 0x16, 0x00, 0x47, 0x1c, 0xcf, - 0x97, 0x16, 0x00, 0xf2, 0x92, 0x16, 0x40, 0x43, 0x24, 0x17, 0x84, 0x16, - 0x00, 0x45, 0x54, 0xe8, 0x8e, 0x16, 0x40, 0x42, 0xac, 0x1e, 0x91, 0x16, - 0x00, 0xf2, 0x96, 0x16, 0x40, 0x46, 0xf8, 0xd8, 0x8d, 0x16, 0x00, 0x43, - 0xb5, 0x00, 0x85, 0x16, 0x40, 0x43, 0x89, 0x09, 0x98, 0x16, 0x00, 0x46, - 0xb6, 0xdb, 0x94, 0x16, 0x40, 0x45, 0xab, 0xe1, 0x95, 0x16, 0x00, 0x45, - 0xb7, 0xdb, 0x93, 0x16, 0x00, 0x49, 0xa6, 0xb9, 0x99, 0x16, 0x40, 0x44, - 0x6e, 0xec, 0x8a, 0x16, 0x00, 0x43, 0x44, 0x20, 0x89, 0x16, 0x40, 0x49, - 0x38, 0xb5, 0x75, 0xf7, 0x01, 0x02, 0x18, 0x00, 0x0f, 0xb4, 0x01, 0xff, - 0x4b, 0xf0, 0x96, 0xd1, 0xf6, 0x01, 0x44, 0x9e, 0xee, 0x19, 0xf4, 0x41, - 0x4f, 0x2e, 0x69, 0x47, 0x24, 0x00, 0xa2, 0x2e, 0xa3, 0x20, 0xa4, 0x12, - 0x44, 0x72, 0x50, 0x42, 0x24, 0x00, 0x44, 0x5d, 0x0e, 0x40, 0x24, 0x00, - 0x4d, 0xa8, 0x82, 0x43, 0x24, 0x40, 0x43, 0xce, 0x03, 0x48, 0x24, 0x00, - 0x4f, 0xeb, 0x6f, 0x4a, 0x24, 0x40, 0x44, 0x71, 0x6d, 0x41, 0x24, 0x00, - 0x56, 0x27, 0x37, 0x49, 0x24, 0x40, 0x4a, 0xa7, 0xa7, 0x44, 0x24, 0x00, - 0x46, 0xf8, 0xdb, 0x45, 0x24, 0x00, 0x59, 0x0a, 0x25, 0x46, 0x24, 0x40, - 0x5a, 0xde, 0x1f, 0xfc, 0xff, 0x00, 0x06, 0x43, 0x42, 0x06, 0x51, 0x6b, - 0x5c, 0xff, 0x23, 0x40, 0x0e, 0x7e, 0x74, 0x06, 0x46, 0x1a, 0x62, 0x5d, - 0x2e, 0x40, 0x44, 0xa5, 0x01, 0xa7, 0x29, 0x00, 0x42, 0x50, 0x02, 0xa6, - 0x29, 0x40, 0x05, 0xc0, 0x6e, 0xd2, 0x24, 0xa1, 0xff, 0x1c, 0xa5, 0x9a, - 0x0d, 0xa9, 0x82, 0x0d, 0x03, 0x98, 0xd4, 0xe5, 0x09, 0xaf, 0xc0, 0x04, - 0x4d, 0xc1, 0x85, 0x10, 0xcc, 0x01, 0xb5, 0xb6, 0x03, 0x16, 0x95, 0x37, - 0x01, 0xff, 0x4a, 0x71, 0xa6, 0x4f, 0xe1, 0x01, 0x06, 0xc4, 0x06, 0xe4, - 0x02, 0xac, 0x55, 0xb3, 0x21, 0x05, 0x05, 0x31, 0x01, 0xff, 0xe2, 0x30, - 0xe1, 0x01, 0xe4, 0x36, 0xe1, 0x01, 0xe7, 0x35, 0xe1, 0x01, 0xea, 0x32, - 0xe1, 0x01, 0xed, 0x31, 0xe1, 0x01, 0xf3, 0x34, 0xe1, 0x01, 0xf6, 0x33, - 0xe1, 0x41, 0x04, 0x30, 0x03, 0x06, 0x52, 0x82, 0x55, 0x3d, 0xe1, 0x41, - 0x04, 0xbb, 0x1a, 0x06, 0x45, 0x49, 0xe9, 0x3c, 0xe1, 0x41, 0x46, 0xd6, - 0xd6, 0x3a, 0xe1, 0x01, 0x4c, 0xa5, 0x8e, 0x3b, 0xe1, 0x01, 0x48, 0x78, - 0x83, 0x39, 0xe1, 0x01, 0x46, 0x7c, 0x1c, 0x37, 0xe1, 0x01, 0x45, 0x18, - 0xe8, 0x38, 0xe1, 0x41, 0x06, 0xc2, 0x05, 0x06, 0x4c, 0x39, 0x91, 0x4e, - 0xe1, 0x41, 0xe1, 0x24, 0xe1, 0x81, 0xf9, 0x01, 0x42, 0x37, 0x00, 0x08, - 0xe1, 0x01, 0xa4, 0xe6, 0x01, 0xe5, 0x2a, 0xe1, 0x81, 0xdc, 0x01, 0x42, - 0xe1, 0x07, 0x15, 0xe1, 0x01, 0x42, 0x24, 0x02, 0x22, 0xe1, 0x01, 0x42, - 0x22, 0x00, 0x04, 0xe1, 0x81, 0xc4, 0x01, 0xe9, 0x26, 0xe1, 0x01, 0x42, - 0x1b, 0x02, 0x0e, 0xe1, 0x01, 0x42, 0x74, 0x00, 0x09, 0xe1, 0x01, 0xad, - 0xa7, 0x01, 0xae, 0x65, 0xef, 0x28, 0xe1, 0x81, 0x5c, 0xb0, 0x50, 0x42, - 0xf4, 0x13, 0x17, 0xe1, 0x01, 0xb2, 0x3e, 0x42, 0x15, 0x06, 0x0a, 0xe1, - 0x01, 0xb4, 0x26, 0xf5, 0x27, 0xe1, 0x01, 0x42, 0xa6, 0x0a, 0x12, 0xe1, - 0x01, 0xf7, 0x2c, 0xe1, 0x01, 0xb8, 0x0c, 0x42, 0x34, 0x22, 0x18, 0xe1, - 0x01, 0x42, 0x59, 0x00, 0x0b, 0xe1, 0x41, 0xe1, 0x06, 0xe1, 0x01, 0x42, - 0x34, 0x22, 0x1b, 0xe1, 0x41, 0xe1, 0x03, 0xe1, 0x01, 0x42, 0x15, 0x06, - 0x01, 0xe1, 0x01, 0x42, 0x4c, 0x26, 0x14, 0xe1, 0x41, 0xe1, 0x16, 0xe1, - 0x01, 0x42, 0x71, 0x00, 0x23, 0xe1, 0x41, 0xe1, 0x1a, 0xe1, 0x01, 0x42, - 0x74, 0x00, 0x21, 0xe1, 0x41, 0xef, 0x29, 0xe1, 0x41, 0xe1, 0x05, 0xe1, - 0x01, 0x42, 0x37, 0x00, 0x0c, 0xe1, 0x01, 0x42, 0x1b, 0x02, 0x07, 0xe1, - 0x01, 0xb0, 0x24, 0x42, 0xf4, 0x13, 0x19, 0xe1, 0x01, 0x42, 0x71, 0x00, - 0x11, 0xe1, 0x01, 0xb4, 0x06, 0x42, 0x34, 0x22, 0x10, 0xe1, 0x41, 0xe1, - 0x02, 0xe1, 0x01, 0x42, 0x15, 0x06, 0x0d, 0xe1, 0x01, 0x42, 0x4c, 0x26, - 0x13, 0xe1, 0x41, 0xe1, 0x1c, 0xe1, 0x01, 0x42, 0x74, 0x00, 0x1e, 0xe1, - 0x41, 0xe1, 0x00, 0xe1, 0x01, 0x42, 0x74, 0x00, 0x20, 0xe1, 0x41, 0xe8, - 0x1f, 0xe1, 0x41, 0xe5, 0x2b, 0xe1, 0x41, 0xe1, 0x0f, 0xe1, 0x01, 0x42, - 0x74, 0x00, 0x1d, 0xe1, 0x41, 0xe1, 0x25, 0xe1, 0x41, 0x45, 0xc3, 0x0a, - 0x48, 0xe1, 0x01, 0xa6, 0x2e, 0x44, 0x46, 0x2a, 0x49, 0xe1, 0x01, 0x43, - 0xbf, 0x0a, 0x41, 0xe1, 0x01, 0xb3, 0x14, 0xb4, 0x06, 0x44, 0xa1, 0x1d, - 0x40, 0xe1, 0x41, 0x44, 0x25, 0x01, 0x43, 0xe1, 0x01, 0x42, 0x15, 0x02, - 0x42, 0xe1, 0x41, 0x44, 0x27, 0x1d, 0x47, 0xe1, 0x01, 0x42, 0x60, 0x25, - 0x46, 0xe1, 0x41, 0x43, 0xa7, 0x05, 0x45, 0xe1, 0x01, 0x43, 0xcb, 0x06, - 0x44, 0xe1, 0x41, 0x42, 0x0f, 0x07, 0x00, 0x00, 0x00, 0xad, 0x16, 0x04, - 0x2f, 0x4e, 0x06, 0x4a, 0x3b, 0xaf, 0x29, 0xf5, 0x41, 0x4a, 0x5d, 0xa6, - 0x05, 0xd8, 0x00, 0x4e, 0xb6, 0x1f, 0xe1, 0x6f, 0x41, 0x04, 0x8c, 0x05, - 0x06, 0x48, 0x59, 0xbf, 0x16, 0x21, 0x40, 0xa5, 0x4b, 0xa6, 0x3d, 0x52, - 0x7c, 0x52, 0x9a, 0x24, 0x00, 0xb3, 0x20, 0xb4, 0x01, 0xff, 0x4c, 0x42, - 0x50, 0x91, 0x24, 0x00, 0x51, 0x2a, 0x59, 0x94, 0x24, 0x00, 0x02, 0x15, - 0x01, 0x01, 0xff, 0x4d, 0xac, 0x83, 0x93, 0x24, 0x00, 0x4d, 0xca, 0x84, - 0x9b, 0x24, 0x40, 0x52, 0x3c, 0x50, 0x98, 0x24, 0x00, 0xa9, 0x01, 0xff, - 0x42, 0x31, 0x03, 0x23, 0x00, 0x00, 0x4f, 0x6f, 0x73, 0x97, 0x24, 0x40, - 0x50, 0x3a, 0x62, 0x96, 0x24, 0x00, 0x51, 0x9f, 0x5b, 0x95, 0x24, 0x40, - 0x51, 0x90, 0x59, 0x99, 0x24, 0x00, 0x4f, 0x0b, 0x6e, 0x92, 0x24, 0x40, - 0x80, 0xe4, 0x04, 0x4c, 0x80, 0x4b, 0xa0, 0x00, 0x00, 0x02, 0x7d, 0x02, - 0xcd, 0x04, 0xae, 0xb6, 0x04, 0xf2, 0xbd, 0x22, 0x80, 0xd0, 0x01, 0x42, - 0x1b, 0x03, 0x43, 0xf4, 0x01, 0xb4, 0x01, 0xff, 0x80, 0x3e, 0x05, 0x18, - 0x91, 0x20, 0xe5, 0xc8, 0xf5, 0xc1, 0x00, 0x03, 0x9f, 0x0e, 0x0d, 0x44, - 0x0e, 0xec, 0xd3, 0xf4, 0xc1, 0x00, 0x56, 0xa7, 0x31, 0xd4, 0xf4, 0x41, - 0xe4, 0xca, 0xf5, 0x01, 0x42, 0x8c, 0x09, 0xc9, 0xf5, 0x41, 0xac, 0x0c, - 0x60, 0xc5, 0x0f, 0x44, 0xf5, 0x01, 0x6b, 0x98, 0x02, 0xb1, 0x27, 0x40, - 0x5e, 0xaa, 0x12, 0x43, 0xf5, 0x01, 0x6a, 0x95, 0x03, 0xaf, 0x27, 0x40, - 0xa1, 0x63, 0x4a, 0x67, 0xa6, 0x7b, 0x23, 0x00, 0x03, 0x7b, 0x00, 0x4d, - 0x4c, 0x87, 0x00, 0x6f, 0x22, 0x00, 0x4c, 0x21, 0x8e, 0x62, 0x22, 0x00, - 0x49, 0xec, 0x00, 0x6e, 0x22, 0x00, 0x52, 0xa0, 0x52, 0xea, 0x22, 0x80, - 0x2e, 0x4b, 0x41, 0x69, 0x26, 0x22, 0x00, 0xb3, 0x0f, 0xb4, 0x01, 0xff, - 0x44, 0xae, 0x22, 0x41, 0x22, 0x00, 0x43, 0xa0, 0x3a, 0xad, 0x22, 0x40, - 0x43, 0x30, 0x03, 0xac, 0x00, 0x00, 0x06, 0x34, 0x24, 0x01, 0xff, 0x54, - 0x13, 0x42, 0xe2, 0x22, 0x00, 0x57, 0xf9, 0x2e, 0xe3, 0x22, 0x40, 0x4c, - 0x51, 0x28, 0xec, 0x22, 0x40, 0x45, 0xac, 0x0c, 0x60, 0x22, 0x00, 0x4a, - 0x06, 0x39, 0x6d, 0x22, 0x40, 0x03, 0x43, 0x06, 0x12, 0x4e, 0x11, 0x69, - 0x49, 0x22, 0x00, 0x4c, 0x9d, 0x90, 0x09, 0x22, 0x00, 0x56, 0x8d, 0x36, - 0x44, 0x22, 0x40, 0x47, 0xe3, 0x3f, 0x84, 0x22, 0x00, 0x49, 0x59, 0x35, - 0x85, 0x22, 0x40, 0x4d, 0x5f, 0x80, 0xbb, 0x20, 0x00, 0x4f, 0xa3, 0x52, - 0xb2, 0x22, 0x80, 0xcc, 0x02, 0x02, 0x53, 0x00, 0x01, 0xff, 0x80, 0x06, - 0x56, 0x33, 0x33, 0xea, 0xf6, 0x41, 0x05, 0x25, 0x23, 0xcb, 0x01, 0x06, - 0xbe, 0x06, 0x7a, 0x05, 0x37, 0x1a, 0x01, 0xff, 0xa1, 0x3b, 0x4b, 0x95, - 0x97, 0x09, 0x2b, 0x00, 0x4c, 0x71, 0x8c, 0xd6, 0x21, 0x00, 0x09, 0x9c, - 0x01, 0x19, 0x50, 0x6a, 0x65, 0x54, 0xf8, 0x01, 0x55, 0x01, 0x02, 0x66, - 0x2b, 0x80, 0x06, 0x4b, 0xfa, 0x0f, 0x01, 0x2b, 0x40, 0x47, 0x81, 0x14, - 0x76, 0x2b, 0x40, 0x43, 0xa7, 0xcd, 0x60, 0xf6, 0x01, 0x44, 0xf0, 0x4f, - 0x50, 0xf6, 0x01, 0x49, 0x89, 0xbe, 0x58, 0xf6, 0x41, 0x53, 0x80, 0x3f, - 0x21, 0x29, 0x00, 0x44, 0xcf, 0x00, 0x96, 0x21, 0xc0, 0x00, 0x80, 0x01, - 0xff, 0x54, 0x57, 0x3f, 0x27, 0x29, 0x00, 0x59, 0x16, 0x23, 0x32, 0x29, - 0x00, 0x48, 0xfd, 0xb1, 0xb8, 0xf8, 0x01, 0x03, 0x7a, 0x02, 0x06, 0x49, - 0x20, 0x24, 0x23, 0x29, 0x40, 0x46, 0xbb, 0x18, 0xf1, 0x21, 0x00, 0x48, - 0x3a, 0xc5, 0xb8, 0x21, 0x40, 0x09, 0xb3, 0x58, 0x1c, 0x50, 0x3a, 0x64, - 0x37, 0xa8, 0x00, 0x03, 0x7c, 0x00, 0x06, 0x4a, 0x69, 0xae, 0x38, 0xa8, - 0x40, 0x4a, 0x25, 0xac, 0x39, 0xa8, 0x00, 0x49, 0x7f, 0xbc, 0x36, 0xa8, - 0x40, 0x04, 0xbf, 0x0a, 0x11, 0x06, 0x24, 0x01, 0x01, 0xff, 0x48, 0x2a, - 0x01, 0x32, 0xa8, 0x00, 0x4a, 0xc3, 0xae, 0x35, 0xa8, 0x40, 0x46, 0xc3, - 0x0a, 0x34, 0xa8, 0x00, 0x44, 0x22, 0x00, 0x31, 0xa8, 0x00, 0x47, 0x2a, - 0x01, 0x30, 0xa8, 0x00, 0x49, 0x5f, 0x25, 0x33, 0xa8, 0x40, 0xa1, 0x3b, - 0x4b, 0x95, 0x97, 0x08, 0x2b, 0x00, 0x4c, 0x71, 0x8c, 0xd7, 0x21, 0x00, - 0x09, 0x9c, 0x01, 0x19, 0x50, 0x6a, 0x65, 0x55, 0xf8, 0x01, 0x55, 0x01, - 0x02, 0x67, 0x2b, 0x80, 0x06, 0x4b, 0xfa, 0x0f, 0x00, 0x2b, 0x40, 0x47, - 0x81, 0x14, 0x77, 0x2b, 0x40, 0x43, 0xa7, 0xcd, 0x62, 0xf6, 0x01, 0x44, - 0xf0, 0x4f, 0x52, 0xf6, 0x01, 0x49, 0x89, 0xbe, 0x5a, 0xf6, 0x41, 0x53, - 0x94, 0x3f, 0x22, 0x29, 0x00, 0x44, 0xcf, 0x00, 0x97, 0x21, 0xc0, 0x00, - 0x80, 0x01, 0xff, 0x54, 0x7f, 0x3f, 0x28, 0x29, 0x00, 0x09, 0x46, 0x10, - 0x0c, 0x48, 0xfd, 0xb1, 0xb9, 0xf8, 0x01, 0x49, 0x20, 0x24, 0x24, 0x29, - 0x40, 0x50, 0x6f, 0x3f, 0x31, 0x29, 0x00, 0x50, 0x83, 0x3f, 0x2e, 0x29, - 0x40, 0x4c, 0x51, 0x28, 0xb4, 0x22, 0x40, 0x8d, 0x06, 0x47, 0x58, 0xce, - 0xdd, 0x2a, 0x40, 0x4f, 0xe2, 0x69, 0x11, 0x20, 0x00, 0x54, 0xf3, 0x43, - 0xb1, 0xf6, 0x41, 0x50, 0xba, 0x63, 0x6f, 0x20, 0x00, 0x48, 0x5a, 0xc8, - 0x8e, 0x01, 0x41, 0xa2, 0x2d, 0x45, 0x79, 0x59, 0xd4, 0x26, 0x80, 0x20, - 0x4d, 0x62, 0x84, 0xf5, 0xf4, 0x01, 0x59, 0xbf, 0x24, 0x1e, 0xf5, 0x01, - 0xb0, 0x06, 0x4e, 0x00, 0x7b, 0xad, 0xf6, 0x41, 0x4a, 0x75, 0xa7, 0xb7, - 0xf6, 0x01, 0x45, 0x7b, 0xe4, 0x72, 0xf5, 0x41, 0x45, 0x2e, 0x03, 0xab, - 0xf6, 0x41, 0x47, 0x00, 0xcf, 0xb3, 0xf6, 0x01, 0x49, 0x1c, 0xbc, 0x83, - 0x00, 0x40, 0x03, 0xe8, 0x04, 0xca, 0x02, 0xa4, 0xf5, 0x01, 0x50, 0xad, - 0x00, 0xf9, 0x07, 0x00, 0x54, 0xeb, 0x41, 0xf4, 0x07, 0x00, 0xac, 0x16, - 0x07, 0xf3, 0x15, 0x06, 0x4a, 0x4f, 0xaf, 0xff, 0x07, 0x40, 0x4a, 0x79, - 0xa8, 0xf7, 0x07, 0x00, 0x49, 0xe1, 0xba, 0xf6, 0x07, 0x40, 0x49, 0x7f, - 0xb3, 0xfa, 0x07, 0x00, 0x06, 0xc2, 0x05, 0x06, 0x52, 0x1e, 0x53, 0xf5, - 0x07, 0x40, 0xe1, 0xca, 0x07, 0x00, 0x42, 0x16, 0x00, 0xd3, 0x07, 0x00, - 0x43, 0xef, 0x1f, 0xd7, 0x07, 0x00, 0x42, 0xa1, 0x10, 0xd8, 0x07, 0x80, - 0xa3, 0x01, 0xe5, 0xcd, 0x07, 0x80, 0x99, 0x01, 0x42, 0xe1, 0x07, 0xdd, - 0x07, 0x00, 0x43, 0x79, 0xa8, 0xdc, 0x07, 0x00, 0x42, 0x22, 0x00, 0xe4, - 0x07, 0x00, 0xe9, 0xcc, 0x07, 0x00, 0xaa, 0x66, 0x42, 0x1b, 0x02, 0xde, - 0x07, 0x00, 0x42, 0x74, 0x00, 0xdf, 0x07, 0x00, 0x42, 0x6c, 0x00, 0xe1, - 0x07, 0x00, 0xee, 0xd2, 0x07, 0x80, 0x37, 0xef, 0xd0, 0x07, 0x80, 0x2e, - 0x42, 0x6c, 0x09, 0xd4, 0x07, 0x00, 0xb2, 0x1c, 0x42, 0x15, 0x06, 0xdb, - 0x07, 0x00, 0x42, 0x12, 0x00, 0xd5, 0x07, 0x00, 0xf5, 0xce, 0x07, 0x00, - 0x42, 0xa9, 0x01, 0xe5, 0x07, 0x00, 0x42, 0x34, 0x22, 0xe6, 0x07, 0x40, - 0xe1, 0xd9, 0x07, 0x00, 0x42, 0x71, 0x00, 0xda, 0x07, 0x40, 0xef, 0xcf, - 0x07, 0x40, 0xe1, 0xe3, 0x07, 0x80, 0x0d, 0x42, 0x34, 0x22, 0xe2, 0x07, - 0xc0, 0x00, 0x47, 0xed, 0xca, 0xe7, 0x07, 0x40, 0x47, 0xed, 0xca, 0xe0, - 0x07, 0x40, 0xe1, 0xd6, 0x07, 0x00, 0x04, 0x8a, 0xee, 0x01, 0xff, 0x43, - 0xef, 0x1f, 0xe9, 0x07, 0x00, 0x42, 0xbd, 0x26, 0xe8, 0x07, 0x00, 0x42, - 0x71, 0x00, 0xea, 0x07, 0x40, 0xe5, 0xcb, 0x07, 0x40, 0x48, 0xca, 0xc3, - 0xd1, 0x07, 0x40, 0x49, 0xd0, 0xb3, 0xfd, 0x07, 0x00, 0x05, 0xc5, 0x06, - 0x06, 0x4a, 0xb1, 0xac, 0xfe, 0x07, 0x40, 0x45, 0xc3, 0x0a, 0xc8, 0x07, - 0x00, 0xa6, 0x2e, 0x44, 0x46, 0x2a, 0xc9, 0x07, 0x00, 0x43, 0xbf, 0x0a, - 0xc1, 0x07, 0x00, 0xb3, 0x14, 0xb4, 0x06, 0x44, 0xa1, 0x1d, 0xc0, 0x07, - 0x40, 0x44, 0x25, 0x01, 0xc3, 0x07, 0x00, 0x42, 0x15, 0x02, 0xc2, 0x07, - 0x40, 0x44, 0x27, 0x1d, 0xc7, 0x07, 0x00, 0x42, 0x60, 0x25, 0xc6, 0x07, - 0x40, 0x43, 0xa7, 0x05, 0xc5, 0x07, 0x00, 0x43, 0xcb, 0x06, 0xc4, 0x07, - 0x40, 0x07, 0xc9, 0x15, 0x06, 0x42, 0x6c, 0x00, 0xf8, 0x07, 0x40, 0x50, - 0x9a, 0x60, 0xf3, 0x07, 0x00, 0x05, 0x68, 0x33, 0x1d, 0x51, 0xf5, 0x5a, - 0xf2, 0x07, 0x00, 0x06, 0x61, 0x36, 0x01, 0xff, 0x49, 0xeb, 0x41, 0xeb, - 0x07, 0x00, 0x48, 0xc3, 0xb2, 0xec, 0x07, 0x00, 0x4b, 0x4a, 0x65, 0xed, - 0x07, 0x40, 0x4f, 0x5a, 0x6a, 0xee, 0x07, 0x00, 0x49, 0xeb, 0x41, 0xef, - 0x07, 0x00, 0x48, 0xc3, 0xb2, 0xf0, 0x07, 0x00, 0x4b, 0x4a, 0x65, 0xf1, - 0x07, 0x40, 0x4e, 0xa0, 0x76, 0x03, 0xf3, 0x01, 0xae, 0x01, 0xff, 0x54, - 0xe7, 0x40, 0xd9, 0xf7, 0x01, 0x42, 0xbd, 0x26, 0x77, 0xf9, 0x41, 0x45, - 0x41, 0xe2, 0x54, 0xf4, 0x01, 0x03, 0xa4, 0x05, 0xa9, 0x0c, 0x06, 0x3c, - 0xda, 0xd7, 0x0b, 0x45, 0xf1, 0xe6, 0x46, 0x26, 0x80, 0xc9, 0x0b, 0x47, - 0x64, 0xd2, 0x13, 0xf9, 0x01, 0xb3, 0xab, 0x0b, 0x02, 0xfe, 0x07, 0xa5, - 0x09, 0xb7, 0x11, 0x03, 0x43, 0x61, 0x01, 0xff, 0x44, 0xc2, 0x07, 0x85, - 0x00, 0x00, 0x44, 0x3d, 0xa4, 0x98, 0x23, 0x40, 0x80, 0xfa, 0x04, 0x02, - 0x5a, 0x00, 0x16, 0x05, 0xc2, 0x07, 0x06, 0x46, 0x2e, 0x75, 0xf0, 0xf4, - 0x41, 0x44, 0xc3, 0x00, 0x92, 0x2b, 0x00, 0x45, 0xc8, 0x00, 0x93, 0x2b, - 0x40, 0x51, 0x93, 0x56, 0x4f, 0x14, 0x01, 0x45, 0xe8, 0x04, 0x4d, 0x14, - 0x01, 0xa4, 0xf4, 0x03, 0x4a, 0x1e, 0x9a, 0x4e, 0x14, 0x01, 0x4e, 0x3a, - 0x77, 0x5d, 0x14, 0x01, 0x07, 0xc1, 0x05, 0xa3, 0x01, 0x42, 0xe9, 0x04, - 0x49, 0x14, 0x01, 0x50, 0x3a, 0x64, 0x5b, 0x14, 0x01, 0xb3, 0x44, 0x0b, - 0xd1, 0x75, 0x01, 0xff, 0xa1, 0x31, 0xe5, 0x3e, 0x14, 0x01, 0xe9, 0x36, - 0x14, 0x81, 0x24, 0xef, 0x40, 0x14, 0x01, 0xf5, 0x38, 0x14, 0x81, 0x17, - 0x08, 0x9b, 0xbe, 0x01, 0xff, 0xec, 0x3c, 0x14, 0x81, 0x09, 0xf2, 0x3a, - 0x14, 0xc1, 0x00, 0xf2, 0x3b, 0x14, 0x41, 0xec, 0x3d, 0x14, 0x41, 0xf5, - 0x39, 0x14, 0x41, 0xe9, 0x37, 0x14, 0x41, 0xe1, 0x35, 0x14, 0x01, 0xe9, - 0x3f, 0x14, 0x01, 0xf5, 0x41, 0x14, 0x41, 0x4a, 0x81, 0xa5, 0x5e, 0x14, - 0x01, 0xa9, 0x01, 0xff, 0x44, 0x4a, 0xec, 0x4a, 0x14, 0x01, 0x03, 0x31, - 0x03, 0x01, 0xff, 0xa1, 0x2f, 0x4b, 0x4f, 0x23, 0x43, 0x14, 0x01, 0x4e, - 0x76, 0x76, 0x48, 0x14, 0x01, 0x4b, 0xc0, 0x9b, 0x60, 0x14, 0x01, 0x45, - 0x5a, 0x3e, 0x46, 0x14, 0x01, 0x4b, 0x32, 0xa2, 0x61, 0x14, 0x01, 0x02, - 0x02, 0x00, 0x01, 0xff, 0x44, 0x5d, 0x23, 0x42, 0x14, 0x01, 0x45, 0xa3, - 0x4a, 0x45, 0x14, 0x41, 0x47, 0xd1, 0x15, 0x44, 0x14, 0x01, 0x47, 0xf2, - 0x86, 0x47, 0x14, 0x41, 0xe1, 0x00, 0x14, 0x81, 0xae, 0x02, 0xa2, 0xa1, - 0x02, 0xa3, 0x94, 0x02, 0xa4, 0xfb, 0x01, 0xe5, 0x0a, 0x14, 0x01, 0xa7, - 0xea, 0x01, 0x42, 0x22, 0x00, 0x34, 0x14, 0x01, 0xe9, 0x02, 0x14, 0x81, - 0xda, 0x01, 0xaa, 0xcd, 0x01, 0xab, 0xc0, 0x01, 0xac, 0xb3, 0x01, 0xad, - 0xa6, 0x01, 0xae, 0x7b, 0xef, 0x0c, 0x14, 0x01, 0xb0, 0x6b, 0xb2, 0x5f, - 0xb3, 0x4d, 0xb4, 0x34, 0xf5, 0x04, 0x14, 0x81, 0x2b, 0xb6, 0x0c, 0x42, - 0xa9, 0x01, 0x30, 0x14, 0x01, 0x42, 0x34, 0x22, 0x2b, 0x14, 0x41, 0x4d, - 0xd4, 0x80, 0x5f, 0x14, 0x01, 0x07, 0x9c, 0xbe, 0x01, 0xff, 0xec, 0x08, - 0x14, 0x81, 0x09, 0xf2, 0x06, 0x14, 0xc1, 0x00, 0xf2, 0x07, 0x14, 0x41, - 0xec, 0x09, 0x14, 0x41, 0xf5, 0x05, 0x14, 0x41, 0xe1, 0x1f, 0x14, 0x01, - 0x42, 0x22, 0x00, 0x20, 0x14, 0x01, 0xb4, 0x01, 0xff, 0xe1, 0x1a, 0x14, - 0x01, 0x42, 0x22, 0x00, 0x1b, 0x14, 0x41, 0xe1, 0x33, 0x14, 0x01, 0x42, - 0x22, 0x00, 0x31, 0x14, 0x01, 0x42, 0x15, 0x06, 0x32, 0x14, 0x41, 0xe1, - 0x2c, 0x14, 0x01, 0x42, 0x22, 0x00, 0x2d, 0x14, 0x41, 0xe1, 0x25, 0x14, - 0x01, 0x42, 0x22, 0x00, 0x26, 0x14, 0x41, 0xe1, 0x23, 0x14, 0x01, 0xa7, - 0x19, 0x42, 0x22, 0x00, 0x24, 0x14, 0x01, 0x42, 0xff, 0x04, 0x1e, 0x14, - 0x01, 0xb9, 0x01, 0xff, 0xe1, 0x18, 0x14, 0x01, 0x42, 0x22, 0x00, 0x19, - 0x14, 0x41, 0xe1, 0x12, 0x14, 0x01, 0x42, 0x22, 0x00, 0x13, 0x14, 0x41, - 0xe1, 0x29, 0x14, 0x01, 0x42, 0x22, 0x00, 0x2a, 0x14, 0x41, 0xe1, 0x2e, - 0x14, 0x01, 0x42, 0x22, 0x00, 0x2f, 0x14, 0x41, 0xe1, 0x0e, 0x14, 0x01, - 0x42, 0x22, 0x00, 0x0f, 0x14, 0x41, 0xe1, 0x16, 0x14, 0x01, 0x42, 0x22, - 0x00, 0x17, 0x14, 0x41, 0xe9, 0x03, 0x14, 0x41, 0xe1, 0x10, 0x14, 0x01, - 0x42, 0x22, 0x00, 0x11, 0x14, 0x41, 0xe1, 0x21, 0x14, 0x01, 0xa4, 0x06, - 0x42, 0x22, 0x00, 0x22, 0x14, 0x41, 0xe1, 0x1c, 0x14, 0x01, 0x42, 0x22, - 0x00, 0x1d, 0x14, 0x41, 0xe1, 0x14, 0x14, 0x01, 0x42, 0x22, 0x00, 0x15, - 0x14, 0x41, 0xe1, 0x27, 0x14, 0x01, 0x42, 0x22, 0x00, 0x28, 0x14, 0x41, - 0xe1, 0x01, 0x14, 0x01, 0xe9, 0x0b, 0x14, 0x01, 0xf5, 0x0d, 0x14, 0x41, - 0x44, 0xd1, 0x1f, 0x4b, 0x14, 0x01, 0x05, 0xc5, 0x06, 0x11, 0x06, 0x3c, - 0x01, 0x01, 0xff, 0x45, 0xe8, 0x04, 0x5a, 0x14, 0x01, 0x45, 0x34, 0x94, - 0x4c, 0x14, 0x41, 0x45, 0xc3, 0x0a, 0x58, 0x14, 0x01, 0xa6, 0x2e, 0x44, - 0x46, 0x2a, 0x59, 0x14, 0x01, 0x43, 0xbf, 0x0a, 0x51, 0x14, 0x01, 0xb3, - 0x14, 0xb4, 0x06, 0x44, 0xa1, 0x1d, 0x50, 0x14, 0x41, 0x44, 0x25, 0x01, - 0x53, 0x14, 0x01, 0x42, 0x15, 0x02, 0x52, 0x14, 0x41, 0x44, 0x27, 0x1d, - 0x57, 0x14, 0x01, 0x42, 0x60, 0x25, 0x56, 0x14, 0x41, 0x43, 0xa7, 0x05, - 0x55, 0x14, 0x01, 0x43, 0xcb, 0x06, 0x54, 0x14, 0x41, 0x44, 0xc2, 0x07, - 0x0a, 0x00, 0x00, 0x05, 0x28, 0x1b, 0xfe, 0x03, 0x4b, 0x6f, 0xa0, 0xaa, - 0x20, 0x00, 0x08, 0xaa, 0xc8, 0x01, 0xff, 0x06, 0xc4, 0x06, 0xac, 0x03, - 0x07, 0xc1, 0x05, 0x74, 0x48, 0x42, 0xc8, 0xde, 0x19, 0x80, 0x69, 0xb4, - 0x54, 0x0b, 0xd1, 0x75, 0x01, 0xff, 0xa1, 0x3c, 0xe5, 0xb5, 0x19, 0x00, - 0xa9, 0x2e, 0xef, 0xb7, 0x19, 0x80, 0x1c, 0xf5, 0xb3, 0x19, 0x80, 0x06, - 0x4f, 0x15, 0x73, 0xb0, 0x19, 0x40, 0xe5, 0xb9, 0x19, 0x80, 0x08, 0xf5, - 0xb4, 0x19, 0x00, 0xf9, 0xbc, 0x19, 0x40, 0xf9, 0xbf, 0x19, 0x40, 0xe1, - 0xb8, 0x19, 0x80, 0x04, 0xf9, 0xbd, 0x19, 0x40, 0xf9, 0xbe, 0x19, 0x40, - 0xe9, 0xb2, 0x19, 0x00, 0xf9, 0xc0, 0x19, 0x40, 0xe1, 0xb1, 0x19, 0x80, - 0x08, 0xe5, 0xb6, 0x19, 0x00, 0xf9, 0xba, 0x19, 0x40, 0xf9, 0xbb, 0x19, - 0x40, 0x4d, 0xff, 0x81, 0xda, 0x19, 0x00, 0x09, 0xbd, 0xba, 0x01, 0xff, - 0xd1, 0xc8, 0x19, 0x00, 0xd2, 0xc9, 0x19, 0x40, 0xf6, 0xdf, 0x19, 0x40, - 0x06, 0x3d, 0x2c, 0x92, 0x02, 0x05, 0xf9, 0x0a, 0x89, 0x01, 0x04, 0xdd, - 0x04, 0x01, 0xff, 0x42, 0x16, 0x00, 0xa5, 0x19, 0x00, 0x42, 0xa1, 0x10, - 0xa4, 0x19, 0x00, 0x42, 0xe1, 0x07, 0x9d, 0x19, 0x00, 0x42, 0x22, 0x00, - 0xa3, 0x19, 0x00, 0xab, 0x60, 0x42, 0x74, 0x00, 0x9f, 0x19, 0x00, 0x42, - 0x6c, 0x00, 0x99, 0x19, 0x00, 0xae, 0x48, 0xb0, 0x3c, 0x42, 0xf4, 0x13, - 0x81, 0x19, 0x00, 0xb3, 0x2a, 0xb4, 0x18, 0x42, 0xa6, 0x0a, 0x9e, 0x19, - 0x00, 0xb8, 0x06, 0x42, 0x34, 0x22, 0x8d, 0x19, 0x40, 0xe1, 0x86, 0x19, - 0x00, 0x42, 0xa6, 0x0a, 0xa9, 0x19, 0x40, 0xe1, 0x91, 0x19, 0x00, 0x42, - 0x22, 0x00, 0x92, 0x19, 0x00, 0x42, 0x15, 0x06, 0x8b, 0x19, 0x40, 0xe1, - 0x8c, 0x19, 0x00, 0x42, 0x7d, 0x00, 0xab, 0x19, 0x40, 0xe1, 0x97, 0x19, - 0x00, 0x42, 0x22, 0x00, 0x98, 0x19, 0x40, 0xe1, 0x93, 0x19, 0x00, 0x42, - 0x24, 0x02, 0x87, 0x19, 0x40, 0xe1, 0x85, 0x19, 0x00, 0x42, 0xa6, 0x0a, - 0xa8, 0x19, 0x40, 0x42, 0x16, 0x00, 0xa2, 0x19, 0x00, 0x42, 0xa1, 0x10, - 0xa1, 0x19, 0x00, 0x42, 0xe1, 0x07, 0x9a, 0x19, 0x00, 0x42, 0x22, 0x00, - 0xa0, 0x19, 0x00, 0xab, 0x60, 0x42, 0x74, 0x00, 0x9c, 0x19, 0x00, 0x42, - 0x6c, 0x00, 0x96, 0x19, 0x00, 0xae, 0x48, 0xb0, 0x3c, 0x42, 0xf4, 0x13, - 0x80, 0x19, 0x00, 0xb3, 0x2a, 0xb4, 0x18, 0x42, 0xa6, 0x0a, 0x9b, 0x19, - 0x00, 0xb8, 0x06, 0x42, 0x34, 0x22, 0x8a, 0x19, 0x40, 0xe1, 0x83, 0x19, - 0x00, 0x42, 0xa6, 0x0a, 0xa7, 0x19, 0x40, 0xe1, 0x8e, 0x19, 0x00, 0x42, - 0x22, 0x00, 0x8f, 0x19, 0x00, 0x42, 0x15, 0x06, 0x88, 0x19, 0x40, 0xe1, - 0x89, 0x19, 0x00, 0x42, 0x7d, 0x00, 0xaa, 0x19, 0x40, 0xe1, 0x94, 0x19, - 0x00, 0x42, 0x22, 0x00, 0x95, 0x19, 0x40, 0xe1, 0x90, 0x19, 0x00, 0x42, - 0x24, 0x02, 0x84, 0x19, 0x40, 0xe1, 0x82, 0x19, 0x00, 0x42, 0xa6, 0x0a, - 0xa6, 0x19, 0x40, 0xe2, 0xc7, 0x19, 0x00, 0xe4, 0xc6, 0x19, 0x00, 0xeb, - 0xc5, 0x19, 0x00, 0xed, 0xc4, 0x19, 0x00, 0xee, 0xc3, 0x19, 0x80, 0x04, - 0xf6, 0xc1, 0x19, 0x40, 0xe7, 0xc2, 0x19, 0x40, 0x45, 0xc3, 0x0a, 0xd8, - 0x19, 0x00, 0xa6, 0x2e, 0x44, 0x46, 0x2a, 0xd9, 0x19, 0x00, 0x43, 0xbf, - 0x0a, 0xd1, 0x19, 0x00, 0xb3, 0x14, 0xb4, 0x06, 0x44, 0xa1, 0x1d, 0xd0, - 0x19, 0x40, 0x44, 0x25, 0x01, 0xd3, 0x19, 0x00, 0x42, 0x15, 0x02, 0xd2, - 0x19, 0x40, 0x44, 0x27, 0x1d, 0xd7, 0x19, 0x00, 0x42, 0x60, 0x25, 0xd6, - 0x19, 0x40, 0x43, 0xa7, 0x05, 0xd5, 0x19, 0x00, 0x43, 0xcb, 0x06, 0xd4, - 0x19, 0x40, 0x46, 0xeb, 0x07, 0x11, 0xf3, 0x01, 0x49, 0xc8, 0xbe, 0x1a, - 0xf3, 0x41, 0x42, 0x33, 0x00, 0xb2, 0x26, 0x00, 0x04, 0xdd, 0x01, 0x01, - 0xff, 0x06, 0xa2, 0xd7, 0x06, 0x44, 0xe1, 0x07, 0x10, 0xf6, 0x41, 0x46, - 0x48, 0xd7, 0x03, 0xfa, 0x81, 0xd3, 0x01, 0x4a, 0xd9, 0xa7, 0x4a, 0xfa, - 0x81, 0xc5, 0x01, 0xab, 0x73, 0x44, 0xb6, 0xee, 0x05, 0xfa, 0x81, 0x5b, - 0x45, 0xe6, 0xbb, 0x01, 0xfa, 0x81, 0x43, 0x44, 0x0a, 0xef, 0x02, 0xfa, - 0x81, 0x2b, 0x07, 0xd8, 0x09, 0x01, 0xff, 0x46, 0x48, 0xd7, 0x2d, 0xfa, - 0x01, 0xab, 0x12, 0x44, 0xb6, 0xee, 0x2f, 0xfa, 0x01, 0x45, 0xe6, 0xbb, - 0x2b, 0xfa, 0x01, 0x44, 0x0a, 0xef, 0x2c, 0xfa, 0x41, 0x43, 0xa1, 0x01, - 0x2a, 0xfa, 0x01, 0x45, 0xd5, 0x71, 0x2e, 0xfa, 0x41, 0x09, 0x02, 0x2c, - 0x01, 0xff, 0x4e, 0x0b, 0x2c, 0x17, 0xfa, 0x01, 0x5b, 0x1a, 0x1d, 0x41, - 0xfa, 0x41, 0x09, 0x02, 0x2c, 0x01, 0xff, 0x4e, 0x0b, 0x2c, 0x16, 0xfa, - 0x01, 0x5b, 0x1a, 0x1d, 0x40, 0xfa, 0x41, 0x09, 0x02, 0x2c, 0x01, 0xff, - 0x4e, 0x0b, 0x2c, 0x1a, 0xfa, 0x01, 0x5b, 0x1a, 0x1d, 0x44, 0xfa, 0x41, - 0x43, 0xa1, 0x01, 0x00, 0xfa, 0x81, 0x38, 0x45, 0xd5, 0x71, 0x04, 0xfa, - 0xc1, 0x00, 0x09, 0x02, 0x2c, 0x01, 0xff, 0x52, 0x84, 0x50, 0x08, 0xfa, - 0x01, 0x4e, 0x0b, 0x2c, 0x19, 0xfa, 0x01, 0x5f, 0x1e, 0x11, 0x1d, 0xfa, - 0x01, 0xb4, 0x01, 0xff, 0x5c, 0x8e, 0x17, 0x47, 0xfa, 0x01, 0x0b, 0x1b, - 0x1d, 0x01, 0xff, 0x4f, 0x26, 0x1d, 0x43, 0xfa, 0x01, 0x53, 0xa9, 0x4c, - 0x32, 0xfa, 0x41, 0x09, 0x02, 0x2c, 0x01, 0xff, 0x4e, 0x0b, 0x2c, 0x15, - 0xfa, 0x01, 0x5b, 0x1a, 0x1d, 0x3f, 0xfa, 0x41, 0x57, 0x02, 0x2c, 0x4d, - 0xfa, 0x41, 0x09, 0x02, 0x2c, 0x01, 0xff, 0x4e, 0x0b, 0x2c, 0x18, 0xfa, - 0x01, 0x5b, 0x1a, 0x1d, 0x42, 0xfa, 0x41, 0x43, 0x31, 0xd4, 0xdc, 0x2b, - 0x00, 0xb4, 0x01, 0xff, 0x4a, 0x23, 0xa4, 0xba, 0xfa, 0x01, 0x49, 0x11, - 0xb8, 0x86, 0xfa, 0x41, 0x49, 0x52, 0x2d, 0xc9, 0x2b, 0x40, 0xa1, 0x35, - 0x11, 0xe6, 0x58, 0x1b, 0x0e, 0xfe, 0x77, 0x01, 0xff, 0x03, 0x7b, 0x00, - 0x06, 0x4c, 0x87, 0x00, 0x78, 0x22, 0x40, 0x45, 0xac, 0x0c, 0x70, 0x22, - 0x00, 0x4a, 0x06, 0x39, 0x74, 0x22, 0x40, 0x03, 0x7b, 0x00, 0x06, 0x49, - 0xec, 0x00, 0x79, 0x22, 0x40, 0x45, 0xac, 0x0c, 0x71, 0x22, 0x00, 0x4a, - 0x06, 0x39, 0x75, 0x22, 0x40, 0x03, 0x43, 0x06, 0x06, 0x62, 0x8f, 0x0c, - 0x47, 0x22, 0x40, 0x54, 0xe3, 0x3f, 0x88, 0x22, 0x00, 0x56, 0x59, 0x35, - 0x89, 0x22, 0x40, 0x6d, 0x38, 0x01, 0xaf, 0x22, 0x00, 0x04, 0xa7, 0x05, - 0x01, 0xff, 0x4b, 0x9d, 0x50, 0x15, 0x00, 0x00, 0x08, 0x6d, 0x22, 0xcc, - 0x01, 0x09, 0x42, 0x25, 0xb5, 0x01, 0x08, 0xab, 0x05, 0x01, 0xff, 0x42, - 0x5c, 0x00, 0x8e, 0xf1, 0x01, 0x4a, 0xad, 0xa6, 0x4e, 0x27, 0x00, 0x4f, - 0xe5, 0x0b, 0xb7, 0xf8, 0x01, 0x42, 0x36, 0x00, 0x8b, 0xf1, 0x01, 0xac, - 0x24, 0x42, 0x6c, 0x09, 0x8c, 0xf1, 0x01, 0x4d, 0xd6, 0x33, 0xc4, 0xfb, - 0x01, 0x50, 0xb3, 0x02, 0xb6, 0xf8, 0x01, 0x42, 0x15, 0x06, 0x8d, 0xf1, - 0x01, 0x4d, 0x1f, 0x20, 0xb5, 0xf8, 0x01, 0x42, 0x40, 0x1a, 0x8f, 0xf1, - 0x41, 0x14, 0xb4, 0x05, 0x06, 0x4e, 0x38, 0x07, 0xb4, 0xf8, 0x41, 0xe1, - 0x70, 0xf1, 0x01, 0xe2, 0x71, 0xf1, 0x01, 0xe3, 0x72, 0xf1, 0x01, 0xe4, - 0x73, 0xf1, 0x01, 0xe5, 0x74, 0xf1, 0x01, 0xe6, 0x75, 0xf1, 0x01, 0xe7, - 0x76, 0xf1, 0x01, 0xe8, 0x77, 0xf1, 0x01, 0xe9, 0x78, 0xf1, 0x01, 0xea, - 0x79, 0xf1, 0x01, 0xeb, 0x7a, 0xf1, 0x01, 0xec, 0x7b, 0xf1, 0x01, 0xed, - 0x7c, 0xf1, 0x01, 0xee, 0x7d, 0xf1, 0x01, 0xef, 0x7e, 0xf1, 0x01, 0xf0, - 0x7f, 0xf1, 0x01, 0xf1, 0x80, 0xf1, 0x01, 0xf2, 0x81, 0xf1, 0x01, 0xf3, - 0x82, 0xf1, 0x01, 0xf4, 0x83, 0xf1, 0x01, 0xf5, 0x84, 0xf1, 0x01, 0xf6, - 0x85, 0xf1, 0x01, 0xf7, 0x86, 0xf1, 0x01, 0xf8, 0x87, 0xf1, 0x01, 0xf9, - 0x88, 0xf1, 0x01, 0xfa, 0x89, 0xf1, 0x41, 0x45, 0x46, 0x10, 0xbd, 0xfb, - 0x01, 0x47, 0x88, 0x43, 0xbf, 0xfb, 0x01, 0x5c, 0x09, 0x0f, 0xbe, 0xfb, - 0x41, 0x4a, 0x11, 0xa7, 0xff, 0x24, 0x00, 0x15, 0xb3, 0x05, 0x5a, 0x07, - 0x2f, 0x39, 0x0c, 0x46, 0xab, 0x05, 0xd8, 0xf7, 0x01, 0x48, 0x01, 0x02, - 0xd6, 0xf7, 0x41, 0xa5, 0x3c, 0xa6, 0x2e, 0x48, 0x7c, 0x52, 0xf3, 0x24, - 0x00, 0xb3, 0x1a, 0xb4, 0x01, 0xff, 0x47, 0x2a, 0x59, 0xed, 0x24, 0x00, - 0x02, 0x15, 0x01, 0x01, 0xff, 0x43, 0x47, 0x2b, 0xec, 0x24, 0x00, 0x43, - 0x2a, 0x1d, 0xf4, 0x24, 0x40, 0x48, 0x3c, 0x50, 0xf1, 0x24, 0x00, 0x46, - 0x60, 0x25, 0xf0, 0x24, 0x40, 0x46, 0x9c, 0x17, 0xef, 0x24, 0x00, 0x47, - 0x9f, 0x5b, 0xee, 0x24, 0x40, 0x47, 0xca, 0x24, 0xf2, 0x24, 0x00, 0x45, - 0x0b, 0x6e, 0xeb, 0x24, 0x40, 0xe1, 0x50, 0xf1, 0x01, 0xe2, 0x51, 0xf1, - 0x01, 0xe3, 0x52, 0xf1, 0x01, 0xe4, 0x53, 0xf1, 0x01, 0xe5, 0x54, 0xf1, - 0x01, 0xe6, 0x55, 0xf1, 0x01, 0xe7, 0x56, 0xf1, 0x01, 0xe8, 0x57, 0xf1, - 0x01, 0xe9, 0x58, 0xf1, 0x01, 0xea, 0x59, 0xf1, 0x01, 0xeb, 0x5a, 0xf1, - 0x01, 0xec, 0x5b, 0xf1, 0x01, 0xed, 0x5c, 0xf1, 0x01, 0xee, 0x5d, 0xf1, - 0x01, 0xef, 0x5e, 0xf1, 0x01, 0xf0, 0x5f, 0xf1, 0x01, 0xf1, 0x60, 0xf1, - 0x01, 0xf2, 0x61, 0xf1, 0x01, 0xf3, 0x62, 0xf1, 0x01, 0xf4, 0x63, 0xf1, - 0x01, 0xf5, 0x64, 0xf1, 0x01, 0xf6, 0x65, 0xf1, 0x01, 0xf7, 0x66, 0xf1, - 0x01, 0xf8, 0x67, 0xf1, 0x01, 0xf9, 0x68, 0xf1, 0x01, 0xfa, 0x69, 0xf1, - 0x41, 0xa2, 0xb5, 0x05, 0x0a, 0x51, 0xa8, 0xc6, 0x03, 0xa9, 0xb7, 0x03, - 0x48, 0x9a, 0xc5, 0xdb, 0xf4, 0x01, 0x42, 0x1b, 0x00, 0xbc, 0x22, 0x80, - 0x22, 0x53, 0x79, 0x4b, 0x2f, 0x20, 0x00, 0x07, 0x0f, 0x3a, 0x0c, 0x4c, - 0xa5, 0x94, 0x22, 0xf9, 0x01, 0x4a, 0xa7, 0xb1, 0xff, 0xf9, 0x41, 0x4c, - 0xbe, 0x63, 0x6e, 0x20, 0x00, 0x44, 0x85, 0xb2, 0xde, 0xf3, 0x41, 0x08, - 0x62, 0xc4, 0x01, 0xff, 0x4a, 0x40, 0x5f, 0xe3, 0x19, 0x01, 0x07, 0xc1, - 0x05, 0x67, 0x05, 0x2f, 0x03, 0x3e, 0x0b, 0xd1, 0x75, 0x01, 0xff, 0xa1, - 0x2b, 0xe5, 0xda, 0x19, 0x01, 0xe9, 0xd2, 0x19, 0x81, 0x1e, 0xef, 0xdc, - 0x19, 0x01, 0x4f, 0x54, 0x70, 0xe4, 0x19, 0x01, 0xf5, 0xd4, 0x19, 0x81, - 0x0b, 0x49, 0x9b, 0xbe, 0xd6, 0x19, 0xc1, 0x00, 0xf2, 0xd7, 0x19, 0x41, - 0xf5, 0xd5, 0x19, 0x41, 0xe9, 0xd3, 0x19, 0x41, 0xe1, 0xd1, 0x19, 0x01, - 0xe9, 0xdb, 0x19, 0x01, 0xf5, 0xdd, 0x19, 0x41, 0xa1, 0x17, 0x47, 0x0c, - 0xd3, 0xe2, 0x19, 0x01, 0x02, 0x02, 0x00, 0x01, 0xff, 0x44, 0x5d, 0x23, - 0xe0, 0x19, 0x01, 0x45, 0xa3, 0x4a, 0xdf, 0x19, 0x41, 0x47, 0xd1, 0x15, - 0xde, 0x19, 0x01, 0x47, 0xf2, 0x86, 0xe1, 0x19, 0x41, 0xe1, 0xa0, 0x19, - 0x81, 0x80, 0x02, 0xa2, 0xf3, 0x01, 0xa3, 0xe6, 0x01, 0xa4, 0xcd, 0x01, - 0xe5, 0xaa, 0x19, 0x01, 0xa7, 0xbc, 0x01, 0x42, 0x22, 0x00, 0xce, 0x19, - 0x01, 0xe9, 0xa2, 0x19, 0x81, 0xac, 0x01, 0xaa, 0x9f, 0x01, 0xab, 0x92, - 0x01, 0xac, 0x85, 0x01, 0x42, 0x6c, 0x00, 0xc6, 0x19, 0x01, 0xae, 0x67, - 0xef, 0xac, 0x19, 0x01, 0xb0, 0x57, 0xb2, 0x4b, 0xb3, 0x39, 0xb4, 0x20, - 0xf5, 0xa4, 0x19, 0x81, 0x17, 0xb6, 0x06, 0x42, 0x34, 0x22, 0xc7, 0x19, - 0x41, 0xe1, 0xca, 0x19, 0x01, 0x48, 0x9c, 0xbe, 0xa6, 0x19, 0xc1, 0x00, - 0xf2, 0xa7, 0x19, 0x41, 0xf5, 0xa5, 0x19, 0x41, 0xe1, 0xbd, 0x19, 0x01, - 0x42, 0x22, 0x00, 0xbe, 0x19, 0x01, 0xb4, 0x01, 0xff, 0xe1, 0xb8, 0x19, - 0x01, 0x42, 0x22, 0x00, 0xb9, 0x19, 0x41, 0xe1, 0xcd, 0x19, 0x01, 0x42, - 0x22, 0x00, 0xcb, 0x19, 0x01, 0x42, 0x15, 0x06, 0xcc, 0x19, 0x41, 0xe1, - 0xc8, 0x19, 0x01, 0x42, 0x71, 0x00, 0xd0, 0x19, 0x41, 0xe1, 0xc2, 0x19, - 0x01, 0x42, 0x22, 0x00, 0xc3, 0x19, 0x41, 0xe1, 0xc1, 0x19, 0x01, 0x42, - 0x24, 0x02, 0xb2, 0x19, 0x01, 0x42, 0xff, 0x04, 0xbc, 0x19, 0x01, 0x42, - 0x34, 0x22, 0xb7, 0x19, 0x41, 0xe1, 0xc9, 0x19, 0x01, 0x42, 0x74, 0x00, - 0xcf, 0x19, 0x41, 0xe1, 0xae, 0x19, 0x01, 0x42, 0x22, 0x00, 0xaf, 0x19, - 0x41, 0xe1, 0xb5, 0x19, 0x01, 0x42, 0x22, 0x00, 0xb6, 0x19, 0x41, 0xe9, - 0xa3, 0x19, 0x41, 0xe1, 0xb0, 0x19, 0x01, 0x42, 0x22, 0x00, 0xb1, 0x19, - 0x41, 0xe1, 0xbf, 0x19, 0x01, 0xa4, 0x06, 0x42, 0x22, 0x00, 0xc0, 0x19, - 0x41, 0xe1, 0xba, 0x19, 0x01, 0x42, 0x22, 0x00, 0xbb, 0x19, 0x41, 0xe1, - 0xb3, 0x19, 0x01, 0x42, 0x22, 0x00, 0xb4, 0x19, 0x41, 0xe1, 0xc4, 0x19, - 0x01, 0x42, 0x22, 0x00, 0xc5, 0x19, 0x41, 0xe1, 0xa1, 0x19, 0x01, 0xe9, - 0xab, 0x19, 0x01, 0xf5, 0xad, 0x19, 0x41, 0x48, 0xe2, 0xc4, 0x85, 0xf4, - 0x01, 0x47, 0xe2, 0x82, 0xa6, 0x20, 0x40, 0x06, 0xc4, 0x06, 0xa3, 0x01, - 0x07, 0xc1, 0x05, 0x23, 0x05, 0x2f, 0x03, 0x01, 0xff, 0x44, 0x4a, 0xed, - 0xee, 0xe4, 0x01, 0x45, 0xbb, 0xe5, 0xec, 0xe4, 0x01, 0x44, 0x86, 0xee, - 0xeb, 0xe4, 0x01, 0x45, 0x09, 0xe8, 0xef, 0xe4, 0x01, 0x45, 0x4a, 0xe8, - 0xed, 0xe4, 0x41, 0xe1, 0xd5, 0xe4, 0x81, 0x65, 0xe5, 0xe4, 0xe4, 0x81, - 0x43, 0xe9, 0xda, 0xe4, 0x81, 0x2c, 0xef, 0xd0, 0xe4, 0x81, 0x15, 0xf5, - 0xdf, 0xe4, 0xc1, 0x00, 0xe3, 0xe0, 0xe4, 0x01, 0xe4, 0xe1, 0xe4, 0x01, - 0xeb, 0xe2, 0xe4, 0x01, 0xf2, 0xe3, 0xe4, 0x41, 0xec, 0xd2, 0xe4, 0x01, - 0x42, 0x1d, 0x01, 0xd4, 0xe4, 0x01, 0xf0, 0xd1, 0xe4, 0x01, 0xf9, 0xd3, - 0xe4, 0x41, 0x42, 0x7f, 0x02, 0xdc, 0xe4, 0x01, 0xe8, 0xde, 0xe4, 0x01, - 0xf3, 0xdb, 0xe4, 0x01, 0xf4, 0xdd, 0xe4, 0x41, 0xe7, 0xe6, 0xe4, 0x01, - 0x42, 0x0f, 0x07, 0xea, 0xe4, 0x01, 0xed, 0xe7, 0xe4, 0x01, 0xee, 0xe8, - 0xe4, 0x81, 0x06, 0x42, 0xc3, 0x05, 0xe9, 0xe4, 0x41, 0xee, 0xe5, 0xe4, - 0x41, 0xe2, 0xd7, 0xe4, 0x01, 0xe8, 0xd9, 0xe4, 0x01, 0xea, 0xd6, 0xe4, - 0x01, 0x42, 0xf6, 0x19, 0xd8, 0xe4, 0x41, 0x45, 0xc3, 0x0a, 0xf8, 0xe4, - 0x01, 0xa6, 0x2e, 0x44, 0x46, 0x2a, 0xf9, 0xe4, 0x01, 0x43, 0xbf, 0x0a, - 0xf1, 0xe4, 0x01, 0xb3, 0x14, 0xb4, 0x06, 0x44, 0xa1, 0x1d, 0xf0, 0xe4, - 0x41, 0x44, 0x25, 0x01, 0xf3, 0xe4, 0x01, 0x42, 0x15, 0x02, 0xf2, 0xe4, - 0x41, 0x44, 0x27, 0x1d, 0xf7, 0xe4, 0x01, 0x42, 0x60, 0x25, 0xf6, 0xe4, - 0x41, 0x43, 0xa7, 0x05, 0xf5, 0xe4, 0x01, 0x43, 0xcb, 0x06, 0xf4, 0xe4, - 0x41, 0x07, 0x60, 0xcc, 0x06, 0x42, 0x74, 0x00, 0x07, 0x22, 0x40, 0x55, - 0x25, 0x39, 0xab, 0x08, 0x01, 0x07, 0xc1, 0x05, 0x3c, 0x07, 0x2f, 0x39, - 0x01, 0xff, 0xa6, 0x29, 0x43, 0xbf, 0x0a, 0xa7, 0x08, 0x81, 0x1c, 0xb4, - 0x01, 0xff, 0x42, 0x92, 0x01, 0xad, 0x08, 0x01, 0x44, 0x25, 0x01, 0xa9, - 0x08, 0x01, 0xb7, 0x01, 0xff, 0x44, 0x29, 0x1d, 0xae, 0x08, 0x01, 0xef, - 0xa8, 0x08, 0x41, 0x48, 0x21, 0x11, 0xaf, 0x08, 0x41, 0x43, 0xa7, 0x05, - 0xac, 0x08, 0x01, 0x43, 0xcb, 0x06, 0xaa, 0x08, 0x41, 0xa1, 0xb9, 0x01, - 0x44, 0x0a, 0xec, 0x83, 0x08, 0x01, 0x46, 0xda, 0x48, 0x85, 0x08, 0x01, - 0x06, 0x3d, 0x2c, 0x73, 0x45, 0xa1, 0xa8, 0x84, 0x08, 0x01, 0x42, 0xb0, - 0x01, 0x87, 0x08, 0x81, 0x60, 0x44, 0x8e, 0xed, 0x8f, 0x08, 0x01, 0x46, - 0x9c, 0xda, 0x91, 0x08, 0x01, 0x43, 0x89, 0x05, 0x93, 0x08, 0x01, 0x43, - 0x54, 0x22, 0x95, 0x08, 0x01, 0x42, 0x6f, 0x02, 0x98, 0x08, 0x01, 0x44, - 0xae, 0xc5, 0x9a, 0x08, 0x01, 0x44, 0xfa, 0x64, 0x9b, 0x08, 0x01, 0xb3, - 0x20, 0xb4, 0x12, 0x43, 0xc0, 0x88, 0x88, 0x08, 0x01, 0x44, 0x58, 0x51, - 0x8d, 0x08, 0x01, 0x45, 0x52, 0x51, 0x89, 0x08, 0x41, 0x42, 0x9a, 0x43, - 0x9e, 0x08, 0x01, 0x43, 0x39, 0x25, 0x8b, 0x08, 0x41, 0xa1, 0x06, 0x43, - 0x0e, 0x16, 0x9d, 0x08, 0x41, 0x43, 0x89, 0xe7, 0x99, 0x08, 0x01, 0x44, - 0x39, 0xe1, 0x96, 0x08, 0x41, 0x42, 0x53, 0x00, 0x8a, 0x08, 0x41, 0x45, - 0x58, 0xab, 0x80, 0x08, 0x01, 0x44, 0x0a, 0xec, 0x82, 0x08, 0x01, 0x42, - 0xb0, 0x01, 0x86, 0x08, 0x01, 0x44, 0x8e, 0xed, 0x8e, 0x08, 0x01, 0x46, - 0x9c, 0xda, 0x90, 0x08, 0x01, 0x43, 0x89, 0x05, 0x92, 0x08, 0x01, 0x43, - 0x54, 0x22, 0x94, 0x08, 0x01, 0x44, 0x2a, 0x49, 0x9c, 0x08, 0x01, 0x44, - 0x58, 0x51, 0x8c, 0x08, 0x41, 0x44, 0x48, 0x3c, 0x81, 0x08, 0x01, 0x43, - 0xf7, 0x19, 0x97, 0x08, 0x41, 0xa3, 0x58, 0x4c, 0x5a, 0x0a, 0xc2, 0x22, - 0x00, 0x08, 0xa3, 0x21, 0x42, 0x47, 0x3f, 0x0d, 0x0f, 0x22, 0x00, 0xb3, - 0x24, 0x4e, 0xb6, 0x7b, 0x09, 0x2a, 0x00, 0x45, 0xe1, 0x16, 0xc3, 0x22, - 0x80, 0x06, 0x52, 0x4c, 0x55, 0xff, 0x2a, 0x40, 0x0f, 0xe4, 0x67, 0x01, - 0xff, 0x43, 0xd4, 0x09, 0x03, 0x2a, 0x00, 0x44, 0xb7, 0x27, 0x04, 0x2a, - 0x40, 0x06, 0x34, 0x24, 0x06, 0x48, 0xc6, 0x6e, 0x11, 0x22, 0x40, 0x55, - 0x47, 0x3b, 0x05, 0x2a, 0x00, 0x4e, 0x88, 0x7c, 0x06, 0x2a, 0x40, 0x43, - 0x1a, 0x00, 0xc0, 0x22, 0x00, 0x42, 0x0c, 0x00, 0xc1, 0x22, 0x40, 0x07, - 0x6e, 0x22, 0x06, 0x48, 0x56, 0x2c, 0x10, 0x22, 0x40, 0x4c, 0x59, 0x8c, - 0x00, 0x2a, 0x00, 0x4d, 0xb4, 0x85, 0x01, 0x2a, 0x00, 0x4e, 0xb6, 0x7b, - 0x02, 0x2a, 0x40, 0xa1, 0xc3, 0x65, 0xa5, 0x96, 0x48, 0xa9, 0xc5, 0x3f, - 0xaf, 0xa9, 0x20, 0x03, 0xa3, 0x1d, 0x97, 0x1e, 0xb5, 0xf6, 0x0c, 0x07, - 0xf6, 0xd4, 0x01, 0xff, 0x0f, 0x6d, 0x32, 0xb1, 0x0c, 0x06, 0xc4, 0x06, - 0xea, 0x0b, 0x18, 0xcd, 0x27, 0xa3, 0x0b, 0xac, 0xa2, 0x05, 0x10, 0x29, - 0x0c, 0x91, 0x05, 0x0a, 0x15, 0xad, 0xca, 0x04, 0xb3, 0x8d, 0x02, 0xb4, - 0xb3, 0x01, 0x0b, 0xd1, 0x75, 0x01, 0xff, 0xa1, 0x97, 0x01, 0xe5, 0x31, - 0x10, 0x80, 0x8b, 0x01, 0x4c, 0x91, 0x8d, 0x71, 0x10, 0x00, 0xe9, 0x2d, - 0x10, 0x80, 0x7c, 0x06, 0x5a, 0xda, 0x68, 0x04, 0xc2, 0xc5, 0x5a, 0xb3, - 0x36, 0x47, 0x60, 0xd3, 0x2b, 0x10, 0x00, 0xf5, 0x2f, 0x10, 0x80, 0x27, - 0x08, 0x9b, 0xbe, 0x11, 0x12, 0xf3, 0x30, 0x01, 0xff, 0x42, 0x97, 0x02, - 0x67, 0x10, 0x00, 0x42, 0x87, 0x13, 0x68, 0x10, 0x40, 0xec, 0x58, 0x10, - 0x80, 0x09, 0xf2, 0x56, 0x10, 0xc0, 0x00, 0xf2, 0x57, 0x10, 0x40, 0xec, - 0x59, 0x10, 0x40, 0xf5, 0x30, 0x10, 0x40, 0x4c, 0x79, 0x8d, 0x62, 0x10, - 0x00, 0x04, 0x90, 0x00, 0x01, 0xff, 0x42, 0x31, 0x12, 0x83, 0x10, 0x00, - 0xe5, 0x84, 0x10, 0x80, 0x06, 0x47, 0x4a, 0xce, 0x86, 0x10, 0x40, 0x46, - 0x5b, 0x00, 0x85, 0x10, 0x40, 0x42, 0xb1, 0x27, 0x33, 0x10, 0x00, 0xef, - 0x34, 0x10, 0x40, 0x42, 0x27, 0x01, 0x74, 0x10, 0x00, 0x42, 0x17, 0x50, - 0x72, 0x10, 0x00, 0xf5, 0x73, 0x10, 0x40, 0xe9, 0x2e, 0x10, 0x40, 0x46, - 0x5b, 0x00, 0x35, 0x10, 0x40, 0xe1, 0x2c, 0x10, 0x00, 0xe9, 0x32, 0x10, - 0xc0, 0x00, 0x45, 0x36, 0xe8, 0x9c, 0x10, 0xc0, 0x00, 0xe9, 0x9d, 0x10, - 0x40, 0x0f, 0xe3, 0x68, 0x11, 0x14, 0x8f, 0x43, 0x01, 0xff, 0x45, 0xdb, - 0xe3, 0x63, 0x10, 0x00, 0x46, 0x60, 0xda, 0x64, 0x10, 0x40, 0x45, 0xc3, - 0x0a, 0xf8, 0xa9, 0x00, 0xa6, 0x2e, 0x44, 0x46, 0x2a, 0xf9, 0xa9, 0x00, - 0x43, 0xbf, 0x0a, 0xf1, 0xa9, 0x00, 0xb3, 0x14, 0xb4, 0x06, 0x44, 0xa1, - 0x1d, 0xf0, 0xa9, 0x40, 0x44, 0x25, 0x01, 0xf3, 0xa9, 0x00, 0x42, 0x15, - 0x02, 0xf2, 0xa9, 0x40, 0x44, 0x27, 0x1d, 0xf7, 0xa9, 0x00, 0x42, 0x60, - 0x25, 0xf6, 0xa9, 0x40, 0x43, 0xa7, 0x05, 0xf5, 0xa9, 0x00, 0x43, 0xcb, - 0x06, 0xf4, 0xa9, 0x40, 0x0a, 0xdd, 0xa8, 0xf3, 0x01, 0x04, 0x30, 0x03, - 0x47, 0x06, 0xf4, 0x15, 0x01, 0xff, 0xa1, 0x23, 0x49, 0x02, 0xb5, 0x4d, - 0x10, 0x00, 0x48, 0xd2, 0xc3, 0x4f, 0x10, 0x00, 0x48, 0x32, 0xc5, 0x4c, - 0x10, 0x00, 0x05, 0xf6, 0x53, 0x01, 0xff, 0x4b, 0xad, 0x00, 0x9f, 0x10, - 0x00, 0x43, 0xbf, 0x0a, 0x9e, 0x10, 0x40, 0x4d, 0x70, 0x81, 0x4e, 0x10, - 0x00, 0x05, 0x3f, 0xcf, 0x01, 0xff, 0x4b, 0xad, 0x00, 0x77, 0xaa, 0x00, - 0x43, 0xbf, 0x0a, 0x78, 0xaa, 0x00, 0x43, 0xd0, 0x09, 0x79, 0xaa, 0x40, - 0xa1, 0x99, 0x01, 0x49, 0x50, 0x12, 0x37, 0x10, 0x00, 0x0c, 0xed, 0x8e, - 0x86, 0x01, 0x4e, 0x36, 0x78, 0x4a, 0x10, 0x00, 0x4e, 0x94, 0x79, 0x7b, - 0xaa, 0x00, 0x54, 0x6b, 0x44, 0x8f, 0x10, 0x00, 0xb3, 0x35, 0x0f, 0x07, - 0x72, 0x29, 0x02, 0x02, 0x00, 0x19, 0x17, 0xf3, 0x30, 0x01, 0xff, 0xd1, - 0x69, 0x10, 0x00, 0xd2, 0x6a, 0x10, 0x00, 0xd3, 0x6b, 0x10, 0x00, 0xd4, - 0x6c, 0x10, 0x00, 0xd5, 0x6d, 0x10, 0x40, 0x44, 0x5d, 0x23, 0x39, 0x10, - 0x00, 0x45, 0xa3, 0x4a, 0x38, 0x10, 0x40, 0xd2, 0x7c, 0xaa, 0x00, 0xd5, - 0x7d, 0xaa, 0x40, 0x46, 0x60, 0x0a, 0x4b, 0x10, 0x00, 0x04, 0x90, 0x00, - 0x01, 0xff, 0x08, 0x42, 0xc2, 0x1b, 0x43, 0x5e, 0x51, 0xe5, 0xa9, 0x00, - 0x05, 0x05, 0x31, 0x01, 0xff, 0xd2, 0x87, 0x10, 0x00, 0xd3, 0x88, 0x10, - 0x00, 0xd5, 0x89, 0x10, 0x00, 0xd6, 0x8a, 0x10, 0x40, 0x4d, 0xfb, 0x80, - 0x8d, 0x10, 0x00, 0x05, 0x05, 0x31, 0x01, 0xff, 0xd2, 0x8b, 0x10, 0x00, - 0xd3, 0x8c, 0x10, 0x40, 0xd1, 0x9a, 0x10, 0x00, 0xd3, 0x9b, 0x10, 0x40, - 0x47, 0xd1, 0x15, 0x36, 0x10, 0x00, 0x43, 0xd0, 0x2c, 0x3a, 0x10, 0x40, - 0x45, 0xc3, 0x0a, 0x98, 0x10, 0x00, 0xa6, 0x2e, 0x44, 0x46, 0x2a, 0x99, - 0x10, 0x00, 0x43, 0xbf, 0x0a, 0x91, 0x10, 0x00, 0xb3, 0x14, 0xb4, 0x06, - 0x44, 0xa1, 0x1d, 0x90, 0x10, 0x40, 0x44, 0x25, 0x01, 0x93, 0x10, 0x00, - 0x42, 0x15, 0x02, 0x92, 0x10, 0x40, 0x44, 0x27, 0x1d, 0x97, 0x10, 0x00, - 0x42, 0x60, 0x25, 0x96, 0x10, 0x40, 0x43, 0xa7, 0x05, 0x95, 0x10, 0x00, - 0x43, 0xcb, 0x06, 0x94, 0x10, 0x40, 0x45, 0xc3, 0x0a, 0xd8, 0x16, 0x01, - 0xa6, 0x2e, 0x44, 0x46, 0x2a, 0xd9, 0x16, 0x01, 0x43, 0xbf, 0x0a, 0xd1, - 0x16, 0x01, 0xb3, 0x14, 0xb4, 0x06, 0x44, 0xa1, 0x1d, 0xd0, 0x16, 0x41, - 0x44, 0x25, 0x01, 0xd3, 0x16, 0x01, 0x42, 0x15, 0x02, 0xd2, 0x16, 0x41, - 0x44, 0x27, 0x1d, 0xd7, 0x16, 0x01, 0x42, 0x60, 0x25, 0xd6, 0x16, 0x41, - 0x43, 0xa7, 0x05, 0xd5, 0x16, 0x01, 0x43, 0xcb, 0x06, 0xd4, 0x16, 0x41, - 0x54, 0xc7, 0x42, 0x70, 0xaa, 0x00, 0x52, 0xf6, 0x53, 0xe6, 0xa9, 0x40, - 0x06, 0xc2, 0x05, 0x17, 0x0f, 0x73, 0x6f, 0x01, 0xff, 0x42, 0x93, 0x0a, - 0x76, 0xaa, 0x00, 0x43, 0x2c, 0xf1, 0x74, 0xaa, 0x00, 0x42, 0xa3, 0xcf, - 0x75, 0xaa, 0x40, 0xe1, 0x21, 0x10, 0x80, 0xd3, 0x05, 0xa2, 0xc6, 0x05, - 0xa3, 0xb9, 0x05, 0xa4, 0xa0, 0x05, 0xe5, 0x27, 0x10, 0x80, 0x83, 0x05, - 0xa7, 0xf0, 0x04, 0x42, 0x22, 0x00, 0x1f, 0x10, 0x00, 0xe9, 0x23, 0x10, - 0x80, 0xe0, 0x04, 0xaa, 0xd3, 0x04, 0xab, 0xc4, 0x03, 0xac, 0xb7, 0x03, - 0xad, 0x8f, 0x03, 0xae, 0xf0, 0x02, 0xef, 0x29, 0x10, 0x00, 0xb0, 0xdf, - 0x02, 0xb2, 0xd2, 0x02, 0xb3, 0xb2, 0x01, 0xb4, 0x3c, 0xf5, 0x25, 0x10, - 0x80, 0x33, 0x08, 0x9b, 0xbe, 0x1d, 0xb7, 0x06, 0x42, 0x34, 0x22, 0x1a, - 0x10, 0x40, 0xe1, 0x1d, 0x10, 0x00, 0x11, 0xf4, 0x30, 0x01, 0xff, 0x43, - 0x51, 0x02, 0x66, 0x10, 0x00, 0x43, 0x8f, 0x00, 0x65, 0x10, 0x40, 0xec, - 0x54, 0x10, 0x80, 0x09, 0xf2, 0x52, 0x10, 0xc0, 0x00, 0xf2, 0x53, 0x10, - 0x40, 0xec, 0x55, 0x10, 0x40, 0xf5, 0x26, 0x10, 0x40, 0xe1, 0x10, 0x10, - 0x80, 0x13, 0x42, 0x22, 0x00, 0x11, 0x10, 0x00, 0xb4, 0x01, 0xff, 0xe1, - 0x0b, 0x10, 0x00, 0x42, 0x22, 0x00, 0x0c, 0x10, 0x40, 0x08, 0xe4, 0x68, - 0x01, 0xff, 0xa2, 0x4b, 0xa4, 0x33, 0x42, 0xe1, 0x07, 0xe8, 0xa9, 0x00, - 0xa7, 0x21, 0xaa, 0x15, 0x43, 0xdd, 0x0d, 0xfa, 0xa9, 0x00, 0xae, 0x01, - 0xff, 0x42, 0xff, 0x04, 0xef, 0xa9, 0x00, 0x42, 0x34, 0x22, 0xe7, 0xa9, - 0x40, 0xe1, 0xeb, 0xa9, 0x00, 0x42, 0x22, 0x00, 0xec, 0xa9, 0x40, 0xe1, - 0xe9, 0xa9, 0x00, 0x42, 0x22, 0x00, 0xea, 0xa9, 0x40, 0xe1, 0xfb, 0xa9, - 0x00, 0xa4, 0x06, 0x42, 0x22, 0x00, 0xfc, 0xa9, 0x40, 0xe1, 0xed, 0xa9, - 0x00, 0x42, 0x22, 0x00, 0xee, 0xa9, 0x40, 0xe1, 0xfd, 0xa9, 0x00, 0x42, - 0x22, 0x00, 0xfe, 0xa9, 0x40, 0xe1, 0x1e, 0x10, 0x00, 0x4d, 0xb1, 0x81, - 0x61, 0x10, 0x00, 0xa8, 0x06, 0x42, 0x15, 0x06, 0x51, 0x10, 0x40, 0xe1, - 0x50, 0x10, 0x80, 0x11, 0x0b, 0xc1, 0xa2, 0x01, 0xff, 0x43, 0xef, 0x1f, - 0x7e, 0xaa, 0x00, 0x43, 0xa4, 0x02, 0x7f, 0xaa, 0x40, 0x02, 0x92, 0x00, - 0x01, 0xff, 0xe1, 0x22, 0x10, 0x00, 0xa2, 0x60, 0xa3, 0x54, 0x42, 0xa1, - 0x10, 0x7b, 0x10, 0x00, 0x42, 0xe1, 0x07, 0x7e, 0x10, 0x00, 0xa7, 0x3c, - 0x42, 0x22, 0x00, 0x81, 0x10, 0x00, 0x43, 0x11, 0xf1, 0xe2, 0xa9, 0x00, - 0xab, 0x24, 0xae, 0x12, 0x43, 0x5d, 0x1c, 0x7d, 0x10, 0x00, 0x43, 0x8f, - 0x00, 0x80, 0x10, 0x00, 0x42, 0x59, 0x00, 0x79, 0x10, 0x40, 0xe1, 0x7c, - 0x10, 0x00, 0x42, 0xff, 0x04, 0xe3, 0xa9, 0x00, 0x42, 0x34, 0x22, 0x7a, - 0x10, 0x40, 0xe1, 0x75, 0x10, 0x00, 0x42, 0x22, 0x00, 0x76, 0x10, 0x40, - 0xe1, 0x77, 0x10, 0x00, 0x42, 0x22, 0x00, 0xe0, 0xa9, 0x40, 0xe1, 0x78, - 0x10, 0x00, 0x42, 0x22, 0x00, 0xe1, 0xa9, 0x40, 0xe1, 0x7f, 0x10, 0x00, - 0x42, 0x22, 0x00, 0xe4, 0xa9, 0x40, 0xe1, 0x1b, 0x10, 0x00, 0x4f, 0xca, - 0x72, 0x8e, 0x10, 0x40, 0xe1, 0x15, 0x10, 0x00, 0x42, 0x22, 0x00, 0x16, - 0x10, 0x40, 0xe1, 0x14, 0x10, 0x00, 0x42, 0x24, 0x02, 0x04, 0x10, 0x00, - 0xae, 0x06, 0x42, 0x34, 0x22, 0x09, 0x10, 0x40, 0xe1, 0x0f, 0x10, 0x00, - 0x42, 0x34, 0x22, 0x0a, 0x10, 0x40, 0xe1, 0x19, 0x10, 0x00, 0x03, 0xb6, - 0x00, 0x01, 0xff, 0x02, 0xc4, 0x26, 0x10, 0xe5, 0x28, 0x10, 0x00, 0x43, - 0x11, 0xf1, 0x5b, 0x10, 0x00, 0x43, 0x03, 0x47, 0x5a, 0x10, 0x40, 0xe1, - 0x5c, 0x10, 0x00, 0xe5, 0x5d, 0x10, 0x40, 0xe1, 0x1c, 0x10, 0x00, 0x42, - 0x74, 0x00, 0x20, 0x10, 0x40, 0xe1, 0x00, 0x10, 0x00, 0x42, 0x22, 0x00, - 0x01, 0x10, 0xc0, 0x00, 0x04, 0xca, 0x42, 0x01, 0xff, 0xa3, 0x70, 0xa4, - 0x5c, 0x42, 0xe1, 0x07, 0x6f, 0xaa, 0x00, 0x42, 0x24, 0x02, 0x60, 0xaa, - 0x00, 0xa8, 0x44, 0xaa, 0x38, 0x43, 0xdd, 0x0d, 0x6e, 0xaa, 0x00, 0xae, - 0x26, 0x42, 0x71, 0x00, 0x73, 0xaa, 0x00, 0x42, 0x15, 0x06, 0x6c, 0xaa, - 0x00, 0x02, 0xc3, 0x05, 0x0c, 0x42, 0x4c, 0x26, 0x71, 0xaa, 0x00, 0x42, - 0x59, 0x00, 0x72, 0xaa, 0x40, 0xe1, 0x66, 0xaa, 0x00, 0x42, 0x22, 0x00, - 0x67, 0xaa, 0x40, 0xe1, 0x6b, 0xaa, 0x00, 0x42, 0x34, 0x22, 0x65, 0xaa, - 0x40, 0xe1, 0x63, 0xaa, 0x00, 0x42, 0x22, 0x00, 0x64, 0xaa, 0x40, 0xe1, - 0x6d, 0xaa, 0x00, 0x42, 0x22, 0x00, 0x6e, 0xaa, 0x40, 0xa4, 0x06, 0x42, - 0x22, 0x00, 0x6a, 0xaa, 0x40, 0xe1, 0x68, 0xaa, 0x00, 0x42, 0x22, 0x00, - 0x69, 0xaa, 0x40, 0xe1, 0x61, 0xaa, 0x00, 0x42, 0x22, 0x00, 0x62, 0xaa, - 0x40, 0xe1, 0x07, 0x10, 0x00, 0x42, 0x22, 0x00, 0x08, 0x10, 0x40, 0xe9, - 0x24, 0x10, 0x40, 0xe1, 0x02, 0x10, 0x00, 0x42, 0x22, 0x00, 0x03, 0x10, - 0x00, 0x47, 0xf3, 0xc3, 0x3f, 0x10, 0x40, 0x11, 0xce, 0x27, 0x01, 0xff, - 0x44, 0xb6, 0xec, 0x70, 0x10, 0x00, 0x43, 0xcc, 0x44, 0x6e, 0x10, 0x00, - 0x43, 0xfe, 0xef, 0x6f, 0x10, 0x40, 0xe1, 0x12, 0x10, 0x00, 0xa4, 0x06, - 0x42, 0x22, 0x00, 0x13, 0x10, 0x40, 0xe1, 0x0d, 0x10, 0x00, 0x42, 0x22, - 0x00, 0x0e, 0x10, 0x40, 0xe1, 0x05, 0x10, 0x00, 0x42, 0x22, 0x00, 0x06, - 0x10, 0x40, 0xe1, 0x17, 0x10, 0x00, 0x42, 0x22, 0x00, 0x18, 0x10, 0x40, - 0x47, 0x3f, 0xcf, 0x7a, 0xaa, 0x00, 0xf5, 0x2a, 0x10, 0x40, 0x45, 0xc3, - 0x0a, 0xe2, 0x16, 0x01, 0xa6, 0x2e, 0x44, 0x46, 0x2a, 0xe3, 0x16, 0x01, - 0x43, 0xbf, 0x0a, 0xdb, 0x16, 0x01, 0xb3, 0x14, 0xb4, 0x06, 0x44, 0xa1, - 0x1d, 0xda, 0x16, 0x41, 0x44, 0x25, 0x01, 0xdd, 0x16, 0x01, 0x42, 0x15, - 0x02, 0xdc, 0x16, 0x41, 0x44, 0x27, 0x1d, 0xe1, 0x16, 0x01, 0x42, 0x60, - 0x25, 0xe0, 0x16, 0x41, 0x43, 0xa7, 0x05, 0xdf, 0x16, 0x01, 0x43, 0xcb, - 0x06, 0xde, 0x16, 0x41, 0x45, 0xc3, 0x0a, 0x48, 0x10, 0x00, 0xa6, 0x2e, - 0x44, 0x46, 0x2a, 0x49, 0x10, 0x00, 0x43, 0xbf, 0x0a, 0x41, 0x10, 0x00, - 0xb3, 0x14, 0xb4, 0x06, 0x44, 0xa1, 0x1d, 0x40, 0x10, 0x40, 0x44, 0x25, - 0x01, 0x43, 0x10, 0x00, 0x42, 0x15, 0x02, 0x42, 0x10, 0x40, 0x44, 0x27, - 0x1d, 0x47, 0x10, 0x00, 0x42, 0x60, 0x25, 0x46, 0x10, 0x40, 0x43, 0xa7, - 0x05, 0x45, 0x10, 0x00, 0x43, 0xcb, 0x06, 0x44, 0x10, 0x40, 0xad, 0x06, - 0x4e, 0xac, 0x7a, 0x82, 0x10, 0x40, 0x06, 0x7d, 0x32, 0x17, 0x0a, 0x7f, - 0xac, 0x01, 0xff, 0x42, 0x74, 0x00, 0x60, 0x10, 0x00, 0x42, 0x6c, 0x00, - 0x5f, 0x10, 0x00, 0x42, 0xff, 0x04, 0x5e, 0x10, 0x40, 0x42, 0x22, 0x00, - 0x3e, 0x10, 0x00, 0x42, 0x71, 0x00, 0x3c, 0x10, 0x00, 0x42, 0xa9, 0x01, - 0x3d, 0x10, 0x00, 0x42, 0x34, 0x22, 0x3b, 0x10, 0x40, 0x03, 0x0f, 0x21, - 0x8d, 0x11, 0x02, 0x8d, 0x04, 0xb6, 0x0e, 0xb3, 0x01, 0xff, 0x45, 0x12, - 0xe4, 0x44, 0xf3, 0x81, 0xa5, 0x0e, 0x02, 0x36, 0x00, 0x01, 0xff, 0x80, - 0x8b, 0x0e, 0x03, 0x13, 0x00, 0x01, 0xff, 0x48, 0xd7, 0xa6, 0xb9, 0xf3, - 0x81, 0xf8, 0x0d, 0x44, 0x68, 0x27, 0xb5, 0xf3, 0x01, 0xb3, 0x01, 0xff, - 0x44, 0x32, 0xec, 0xbc, 0xf3, 0x01, 0x06, 0xf4, 0x15, 0x01, 0xff, 0x0b, - 0x32, 0x97, 0xd3, 0x0d, 0xa2, 0x86, 0x0d, 0xa3, 0xe0, 0x0a, 0xa4, 0x8b, - 0x0a, 0xa5, 0xd5, 0x09, 0xa6, 0xd2, 0x08, 0xa7, 0x83, 0x08, 0x02, 0x22, - 0x00, 0xe2, 0x07, 0x4d, 0xb5, 0x82, 0x98, 0xd1, 0x01, 0xab, 0x81, 0x07, - 0xac, 0xe2, 0x06, 0xad, 0x9c, 0x06, 0xae, 0xf7, 0x05, 0xaf, 0x98, 0x05, - 0xb0, 0xd5, 0x04, 0x02, 0x7c, 0x00, 0x9e, 0x04, 0xb2, 0xe9, 0x03, 0xb3, - 0xa4, 0x02, 0xb4, 0x30, 0xb6, 0x22, 0xb7, 0x0a, 0x4a, 0xb0, 0x62, 0x43, - 0xd1, 0x01, 0xfa, 0x8e, 0xd1, 0x41, 0x05, 0x30, 0xb1, 0x06, 0x4f, 0x57, - 0x6d, 0xb3, 0xd1, 0x41, 0x44, 0x68, 0x27, 0x5d, 0xd1, 0x01, 0x44, 0xa4, - 0x32, 0x3b, 0xd1, 0x41, 0x44, 0x53, 0x07, 0xd3, 0xd1, 0x01, 0x4c, 0x51, - 0x91, 0x57, 0xd1, 0x41, 0x06, 0x56, 0xd8, 0xb3, 0x01, 0xa8, 0x9a, 0x01, - 0x47, 0x30, 0xd1, 0xd8, 0xd1, 0x81, 0x8c, 0x01, 0xf2, 0x96, 0xd1, 0x81, - 0x1c, 0x43, 0x5d, 0x01, 0x97, 0xd1, 0x81, 0x06, 0x4d, 0xf4, 0x88, 0x17, - 0xd1, 0x41, 0x80, 0x01, 0xff, 0x45, 0xf9, 0x0d, 0x99, 0xd1, 0x01, 0x42, - 0x50, 0x02, 0x9a, 0xd1, 0x41, 0x06, 0x03, 0x02, 0x01, 0xff, 0x0a, 0xf0, - 0x37, 0x11, 0x15, 0xea, 0x37, 0x01, 0xff, 0x45, 0xe1, 0x02, 0x55, 0xd1, - 0x01, 0x45, 0xad, 0x02, 0x54, 0xd1, 0x41, 0x05, 0x4f, 0x14, 0x41, 0x05, - 0xc3, 0x00, 0x31, 0x06, 0xc8, 0x00, 0x21, 0x03, 0x11, 0x15, 0x01, 0xff, - 0x45, 0xe1, 0x02, 0x49, 0xd1, 0x01, 0x06, 0xc8, 0x00, 0x06, 0x45, 0xad, - 0x02, 0x48, 0xd1, 0x41, 0x45, 0xe1, 0x02, 0x51, 0xd1, 0x01, 0x45, 0xad, - 0x02, 0x50, 0xd1, 0x41, 0x45, 0xe1, 0x02, 0x4d, 0xd1, 0x01, 0x45, 0xad, - 0x02, 0x4c, 0xd1, 0x41, 0x45, 0xe1, 0x02, 0x4b, 0xd1, 0x01, 0x45, 0xad, - 0x02, 0x4a, 0xd1, 0x41, 0x45, 0xe1, 0x02, 0x4f, 0xd1, 0x01, 0x45, 0xad, - 0x02, 0x4e, 0xd1, 0x41, 0x4a, 0xd3, 0xa3, 0xdc, 0xd1, 0x41, 0x0c, 0xbd, - 0x8e, 0x06, 0x4e, 0x2e, 0x7a, 0x18, 0xd1, 0x41, 0x44, 0x68, 0x27, 0x62, - 0xd1, 0x01, 0x44, 0xa4, 0x32, 0x40, 0xd1, 0x41, 0x1b, 0x6a, 0x1b, 0x18, - 0x19, 0x6c, 0x1b, 0x01, 0xff, 0x4a, 0xdf, 0x6c, 0xc8, 0xd1, 0x01, 0x48, - 0xe1, 0x6c, 0xc7, 0xd1, 0xc1, 0x00, 0x4d, 0xfc, 0x7d, 0xc9, 0xd1, 0x41, - 0x4a, 0xdf, 0x6c, 0xcb, 0xd1, 0x81, 0x06, 0x48, 0xe1, 0x6c, 0xca, 0xd1, - 0x41, 0x0c, 0xfc, 0x7d, 0x01, 0xff, 0xd1, 0xcc, 0xd1, 0x01, 0xd2, 0xcd, - 0xd1, 0x01, 0xd3, 0xce, 0xd1, 0x41, 0x48, 0xfa, 0xc1, 0xd6, 0xd1, 0x81, - 0xb4, 0x01, 0xa5, 0x7a, 0xa8, 0x62, 0xa9, 0x25, 0x43, 0x0c, 0x00, 0xe9, - 0xd1, 0x01, 0x06, 0x34, 0x24, 0x06, 0x45, 0x8b, 0xe8, 0x8d, 0xd1, 0x41, - 0xe2, 0xd2, 0xd1, 0x01, 0x09, 0xf1, 0x37, 0x01, 0xff, 0x45, 0xe1, 0x02, - 0x47, 0xd1, 0x01, 0x45, 0xad, 0x02, 0x46, 0xd1, 0x41, 0x4c, 0xf1, 0x90, - 0x00, 0xd1, 0x01, 0xb8, 0x01, 0xff, 0x8d, 0x24, 0xb4, 0x01, 0xff, 0x06, - 0x63, 0x25, 0x11, 0x09, 0x07, 0xbf, 0x01, 0xff, 0x44, 0x68, 0x27, 0x63, - 0xd1, 0x01, 0x44, 0xa4, 0x32, 0x41, 0xd1, 0x41, 0x44, 0x68, 0x27, 0x61, - 0xd1, 0x01, 0x44, 0xa4, 0x32, 0x3f, 0xd1, 0x41, 0x4a, 0x32, 0x7a, 0x1b, - 0xd1, 0x01, 0x50, 0x1a, 0x66, 0x1c, 0xd1, 0x41, 0x04, 0xa7, 0xae, 0x06, - 0x4b, 0xc2, 0x9e, 0x05, 0xd1, 0x41, 0x44, 0xa5, 0x01, 0x31, 0xd1, 0x01, - 0x42, 0x50, 0x02, 0x30, 0xd1, 0x41, 0x43, 0xc6, 0x20, 0x0b, 0xd1, 0x01, - 0x02, 0x7d, 0x02, 0x01, 0xff, 0x07, 0xde, 0xcc, 0x17, 0x07, 0x7a, 0xd0, - 0x01, 0xff, 0x45, 0xe1, 0x02, 0xbe, 0xd1, 0x01, 0x44, 0xa4, 0x32, 0xc6, - 0xd1, 0x01, 0x45, 0xad, 0x02, 0xbd, 0xd1, 0x41, 0x45, 0xe1, 0x02, 0xba, - 0xd1, 0x01, 0x44, 0xa4, 0x32, 0xc4, 0xd1, 0x01, 0x45, 0xad, 0x02, 0xb9, - 0xd1, 0x41, 0x47, 0x6f, 0xca, 0xdb, 0xd1, 0x41, 0xa5, 0x0f, 0xa9, 0x01, - 0xff, 0x4f, 0xfe, 0x6b, 0x07, 0xd1, 0x01, 0x49, 0xdc, 0xb9, 0x8c, 0xd1, - 0x41, 0x04, 0x59, 0x69, 0x06, 0x53, 0x7a, 0x4d, 0x03, 0xd1, 0x41, 0x45, - 0xd3, 0x09, 0x08, 0xd1, 0x01, 0x0a, 0x61, 0xa7, 0x01, 0xff, 0xd1, 0x0d, - 0xd1, 0x01, 0xd2, 0x0e, 0xd1, 0x01, 0xd3, 0x0f, 0xd1, 0x41, 0x06, 0xdb, - 0x02, 0x11, 0x0b, 0x68, 0x9b, 0x01, 0xff, 0x44, 0xc2, 0xeb, 0x38, 0xd1, - 0x01, 0x45, 0x97, 0xe1, 0x39, 0xd1, 0x41, 0x44, 0x68, 0x27, 0x5f, 0xd1, - 0x01, 0x44, 0xa4, 0x32, 0x3d, 0xd1, 0x01, 0x05, 0x83, 0x2c, 0x01, 0xff, - 0x44, 0x60, 0x3a, 0x33, 0xd1, 0x01, 0x45, 0xa5, 0xae, 0x32, 0xd1, 0x41, - 0x53, 0x05, 0x47, 0x56, 0xd1, 0x01, 0xa5, 0x22, 0x44, 0x2e, 0xed, 0x8f, - 0xd1, 0x01, 0x4c, 0xdd, 0x8f, 0x44, 0xd1, 0x01, 0xaf, 0x01, 0xff, 0x45, - 0x69, 0xe2, 0xd4, 0xd1, 0x01, 0x47, 0xa3, 0xd2, 0xd9, 0xd1, 0xc1, 0x00, - 0x47, 0x6f, 0xca, 0xda, 0xd1, 0x41, 0x04, 0x2b, 0xad, 0x06, 0x4c, 0x31, - 0x93, 0xdd, 0xd1, 0x41, 0x44, 0xb9, 0x00, 0xae, 0xd1, 0x01, 0x47, 0x01, - 0xd4, 0xaf, 0xd1, 0x41, 0x02, 0xa2, 0x05, 0x42, 0x0f, 0x35, 0x71, 0x11, - 0x06, 0xbc, 0xbf, 0x01, 0xff, 0x44, 0xc2, 0xeb, 0x36, 0xd1, 0x01, 0x45, - 0x97, 0xe1, 0x37, 0xd1, 0x41, 0xd1, 0x9b, 0xd1, 0x81, 0x20, 0xd2, 0x9c, - 0xd1, 0x01, 0xd3, 0x9d, 0xd1, 0x01, 0xd4, 0x9e, 0xd1, 0x01, 0xd5, 0x9f, - 0xd1, 0x01, 0xd6, 0xa0, 0xd1, 0x01, 0xd7, 0xa1, 0xd1, 0x01, 0xd8, 0xa2, - 0xd1, 0x01, 0xd9, 0xa3, 0xd1, 0x41, 0xd0, 0xa4, 0xd1, 0x01, 0xd1, 0xa5, - 0xd1, 0x41, 0x17, 0xd4, 0x2b, 0x06, 0x4b, 0x31, 0x7a, 0x16, 0xd1, 0x41, - 0x44, 0x68, 0x27, 0x64, 0xd1, 0x01, 0x44, 0xa4, 0x32, 0x42, 0xd1, 0x41, - 0x07, 0xb6, 0x90, 0x12, 0x4a, 0x57, 0xa7, 0xa7, 0xd1, 0x01, 0x4d, 0x73, - 0x85, 0x58, 0xd1, 0x01, 0x4c, 0x69, 0x94, 0x59, 0xd1, 0x41, 0x44, 0xa5, - 0x01, 0x2f, 0xd1, 0x01, 0x42, 0x50, 0x02, 0x2e, 0xd1, 0x41, 0x45, 0x83, - 0xcc, 0xb6, 0xd1, 0x01, 0x44, 0x76, 0xec, 0x90, 0xd1, 0x01, 0x45, 0x7b, - 0xd0, 0xbb, 0xd1, 0x81, 0x21, 0x0d, 0x59, 0x85, 0x11, 0x04, 0x8c, 0x04, - 0x01, 0xff, 0x45, 0x55, 0x64, 0x3a, 0xd1, 0x01, 0x50, 0x4a, 0x64, 0x29, - 0xd1, 0x41, 0x45, 0xe1, 0x02, 0x53, 0xd1, 0x01, 0x45, 0xad, 0x02, 0x52, - 0xd1, 0x41, 0x80, 0x01, 0xff, 0x45, 0xe1, 0x02, 0xbc, 0xd1, 0x01, 0x44, - 0xa4, 0x32, 0xc5, 0xd1, 0x41, 0x4f, 0xff, 0x6a, 0x06, 0xd1, 0x01, 0x44, - 0x59, 0x48, 0xb7, 0xd1, 0xc1, 0x00, 0x80, 0x01, 0xff, 0x4f, 0xdf, 0x6c, - 0xc2, 0xd1, 0x01, 0x4d, 0xe1, 0x6c, 0xc1, 0xd1, 0x41, 0x06, 0xd0, 0xd9, - 0x06, 0x44, 0x25, 0x1c, 0xea, 0xd1, 0x41, 0x46, 0x6c, 0xd7, 0xde, 0xd1, - 0x01, 0xa5, 0x30, 0xa6, 0x22, 0x49, 0xfa, 0xb6, 0xe3, 0xd1, 0x01, 0x12, - 0x66, 0x53, 0x0c, 0x4f, 0xbd, 0x70, 0xe1, 0xd1, 0x01, 0x4a, 0x2f, 0xb1, - 0xe2, 0xd1, 0x41, 0x44, 0xa5, 0x01, 0xe4, 0xd1, 0x01, 0x42, 0x50, 0x02, - 0xe5, 0xd1, 0x41, 0x49, 0xf6, 0xb7, 0xe0, 0xd1, 0x01, 0x48, 0xb3, 0xb6, - 0xe8, 0xd1, 0x41, 0x10, 0x4a, 0x62, 0x06, 0x4b, 0xd0, 0x9d, 0xdf, 0xd1, - 0x41, 0x44, 0xa5, 0x01, 0xe6, 0xd1, 0x01, 0x42, 0x50, 0x02, 0xe7, 0xd1, - 0x41, 0x03, 0x24, 0x00, 0x06, 0x49, 0xe7, 0xbd, 0xa6, 0xd1, 0x41, 0x44, - 0x68, 0x27, 0x5e, 0xd1, 0x01, 0x4a, 0x29, 0xad, 0xb0, 0xd1, 0x01, 0x44, - 0xa4, 0x32, 0x3c, 0xd1, 0x41, 0x45, 0x94, 0xbc, 0x1e, 0xd1, 0x81, 0x34, - 0x09, 0x16, 0xb9, 0x24, 0xb2, 0x01, 0xff, 0x09, 0x37, 0xb3, 0x11, 0x08, - 0xf2, 0xc2, 0x01, 0xff, 0x46, 0x6c, 0xd7, 0xd0, 0xd1, 0x01, 0x46, 0xbc, - 0xd8, 0xd1, 0xd1, 0x41, 0x48, 0x2a, 0xc6, 0x95, 0xd1, 0x01, 0x45, 0xf9, - 0x0d, 0x94, 0xd1, 0x41, 0x44, 0xa5, 0x01, 0xb2, 0xd1, 0x01, 0x42, 0x50, - 0x02, 0xb1, 0xd1, 0x41, 0x08, 0xba, 0xbf, 0x01, 0xff, 0x44, 0xc2, 0xeb, - 0x1f, 0xd1, 0x01, 0x45, 0x97, 0xe1, 0x20, 0xd1, 0x41, 0x45, 0x94, 0xbc, - 0x22, 0xd1, 0x81, 0x68, 0x46, 0x74, 0xd8, 0x10, 0xd1, 0x81, 0x5b, 0xa9, - 0x3a, 0x04, 0xb3, 0xb6, 0x2a, 0xaf, 0x11, 0x04, 0x96, 0xef, 0x01, 0xff, - 0x45, 0xe1, 0x02, 0xc0, 0xd1, 0x01, 0x45, 0xad, 0x02, 0xbf, 0xd1, 0x41, - 0x43, 0x2d, 0x01, 0x91, 0xd1, 0x01, 0x03, 0xf9, 0xbd, 0x01, 0xff, 0x4a, - 0x32, 0x7a, 0x19, 0xd1, 0x01, 0x50, 0x1a, 0x66, 0x1d, 0xd1, 0x41, 0x44, - 0xa5, 0x01, 0x2d, 0xd1, 0x01, 0x42, 0x50, 0x02, 0x2c, 0xd1, 0x41, 0xae, - 0x06, 0x4d, 0x31, 0x88, 0x1a, 0xd1, 0x41, 0x4a, 0x83, 0x4d, 0x02, 0xd1, - 0x01, 0x0e, 0x92, 0x76, 0x01, 0xff, 0xd1, 0x6a, 0xd1, 0x01, 0xd2, 0x6b, - 0xd1, 0x01, 0xd3, 0x6c, 0xd1, 0x41, 0x46, 0xf4, 0x06, 0x11, 0xd1, 0x41, - 0x08, 0xba, 0xbf, 0x01, 0xff, 0x44, 0xc2, 0xeb, 0x23, 0xd1, 0x01, 0x45, - 0x97, 0xe1, 0x24, 0xd1, 0x41, 0x06, 0xc4, 0x0a, 0x23, 0x03, 0x1b, 0x00, - 0x01, 0xff, 0x44, 0x2d, 0xbb, 0x74, 0xd1, 0x01, 0x49, 0x7e, 0xba, 0xa8, - 0xd1, 0x01, 0x46, 0xc7, 0x34, 0x7a, 0xd1, 0x01, 0x44, 0x5e, 0xef, 0x78, - 0xd1, 0x01, 0x43, 0x37, 0x25, 0x76, 0xd1, 0x41, 0x44, 0x68, 0x27, 0x60, - 0xd1, 0x01, 0x44, 0xa4, 0x32, 0x3e, 0xd1, 0x41, 0xa1, 0x31, 0xa5, 0x23, - 0x06, 0x3c, 0x01, 0x0d, 0x09, 0x91, 0xbc, 0x01, 0xff, 0xd1, 0x25, 0xd1, - 0x01, 0xd2, 0x26, 0xd1, 0x41, 0x47, 0x86, 0x4d, 0x01, 0xd1, 0x01, 0x44, - 0x60, 0x3a, 0x2b, 0xd1, 0x01, 0x45, 0xa5, 0xae, 0x2a, 0xd1, 0x41, 0x49, - 0x1d, 0xb5, 0x93, 0xd1, 0x01, 0x4a, 0xb5, 0xa8, 0xa9, 0xd1, 0x41, 0x45, - 0x8b, 0xde, 0x0a, 0xd1, 0x01, 0x47, 0xc4, 0xcf, 0x09, 0xd1, 0x01, 0x42, - 0x6b, 0x1b, 0xb4, 0xd1, 0x81, 0x06, 0x4c, 0x61, 0x93, 0x04, 0xd1, 0x41, - 0x44, 0x6b, 0x6a, 0xb5, 0xd1, 0x41, 0x45, 0x94, 0xbc, 0x21, 0xd1, 0x01, - 0x46, 0x9a, 0xd6, 0x13, 0xd1, 0x01, 0x50, 0xaa, 0x62, 0x45, 0xd1, 0x01, - 0xac, 0xef, 0x01, 0xaf, 0x14, 0xb2, 0x06, 0x47, 0x39, 0xd4, 0x35, 0xd1, - 0x41, 0x47, 0x1f, 0xb5, 0x92, 0xd1, 0x01, 0x43, 0x2f, 0xf1, 0xcf, 0xd1, - 0x41, 0x42, 0xa1, 0x10, 0x0c, 0xd1, 0x01, 0xad, 0x01, 0xff, 0x07, 0xc9, - 0x15, 0x06, 0x48, 0xc2, 0xc5, 0x34, 0xd1, 0x41, 0xa1, 0xb0, 0x01, 0x44, - 0xa4, 0x98, 0x89, 0xd1, 0x01, 0x02, 0x3b, 0x01, 0x93, 0x01, 0x02, 0xaa, - 0x04, 0x71, 0x48, 0x1a, 0xc4, 0xac, 0xd1, 0x01, 0x45, 0x2a, 0xe5, 0x82, - 0xd1, 0x01, 0x47, 0x50, 0xd0, 0x7f, 0xd1, 0x81, 0x58, 0x43, 0x4b, 0x06, - 0x86, 0xd1, 0x01, 0xb3, 0x27, 0xb4, 0x06, 0x46, 0xea, 0xdd, 0xab, 0xd1, - 0x41, 0x45, 0xcf, 0x7b, 0x7d, 0xd1, 0x01, 0xb2, 0x01, 0xff, 0x06, 0x9a, - 0x76, 0x06, 0x4b, 0x73, 0x9b, 0x8b, 0xd1, 0x41, 0xd1, 0x67, 0xd1, 0x01, - 0xd2, 0x68, 0xd1, 0x01, 0xd3, 0x69, 0xd1, 0x41, 0x44, 0x42, 0xa7, 0x88, - 0xd1, 0x01, 0x4d, 0x89, 0x84, 0xad, 0xd1, 0x01, 0x50, 0x7a, 0x64, 0x66, - 0xd1, 0x01, 0xb4, 0x01, 0xff, 0x05, 0xd7, 0xb2, 0x06, 0x42, 0x8a, 0x05, - 0x65, 0xd1, 0x41, 0x46, 0x30, 0xda, 0x7e, 0xd1, 0x01, 0xef, 0x7c, 0xd1, - 0x41, 0x49, 0xd4, 0xb2, 0x80, 0xd1, 0x41, 0x03, 0x5e, 0x56, 0x06, 0x42, - 0x8f, 0x04, 0x87, 0xd1, 0x41, 0xd1, 0x6e, 0xd1, 0x01, 0xd2, 0x6f, 0xd1, - 0x01, 0xd3, 0x70, 0xd1, 0x01, 0xd4, 0x71, 0xd1, 0x01, 0xd5, 0x72, 0xd1, - 0x41, 0x42, 0x52, 0x00, 0x85, 0xd1, 0x01, 0x4b, 0xda, 0xa1, 0x8a, 0xd1, - 0x01, 0x46, 0x32, 0xde, 0xaa, 0xd1, 0x41, 0x45, 0xb0, 0x04, 0x7b, 0xd1, - 0x81, 0x06, 0x4f, 0xac, 0x72, 0x6d, 0xd1, 0x41, 0x49, 0xd4, 0xb2, 0x81, - 0xd1, 0x41, 0xa9, 0x11, 0x0f, 0xe8, 0x72, 0x01, 0xff, 0x45, 0xe1, 0x02, - 0x5b, 0xd1, 0x01, 0x45, 0xad, 0x02, 0x5a, 0xd1, 0x41, 0x45, 0x48, 0xe5, - 0xd7, 0xd1, 0x01, 0x43, 0xf4, 0x31, 0xd5, 0xd1, 0x41, 0x05, 0xb9, 0x3e, - 0x2e, 0xb2, 0x01, 0xff, 0x02, 0xe3, 0x02, 0x1d, 0xa5, 0x01, 0xff, 0x48, - 0x42, 0xc1, 0x12, 0xd1, 0x01, 0xb6, 0x01, 0xff, 0xe5, 0x5c, 0xd1, 0x01, - 0x42, 0x34, 0x03, 0xb8, 0xd1, 0xc1, 0x00, 0x45, 0x55, 0x64, 0xc3, 0xd1, - 0x41, 0xe5, 0x14, 0xd1, 0x01, 0x43, 0x18, 0x09, 0x15, 0xd1, 0x41, 0x44, - 0x2d, 0xbb, 0x73, 0xd1, 0x01, 0x46, 0xc7, 0x34, 0x79, 0xd1, 0x01, 0x44, - 0x5e, 0xef, 0x77, 0xd1, 0x01, 0x43, 0x37, 0x25, 0x75, 0xd1, 0x41, 0x44, - 0xa5, 0x01, 0x84, 0xd1, 0x01, 0x42, 0x50, 0x02, 0x83, 0xd1, 0x41, 0x4b, - 0x1f, 0x96, 0x98, 0xf3, 0x41, 0x49, 0xb2, 0xb6, 0x6d, 0x26, 0x00, 0x4c, - 0xb5, 0x90, 0x6e, 0x26, 0x00, 0x4a, 0xa5, 0xae, 0x6f, 0x26, 0x40, 0x46, - 0xa8, 0x67, 0x64, 0xcc, 0x41, 0x04, 0xf5, 0x99, 0x69, 0xa9, 0x01, 0xff, - 0x43, 0x55, 0x6a, 0xb8, 0x22, 0x00, 0x02, 0x90, 0x04, 0x16, 0x43, 0x4d, - 0x12, 0x8c, 0x22, 0xc0, 0x00, 0x80, 0x01, 0xff, 0x4e, 0x74, 0x24, 0x8d, - 0x22, 0x00, 0x45, 0xe1, 0x16, 0x8e, 0x22, 0x40, 0x4f, 0xe1, 0x6a, 0xb6, - 0xf3, 0x01, 0x08, 0x92, 0x04, 0x01, 0xff, 0x44, 0x2f, 0x03, 0xd7, 0x00, - 0x80, 0x04, 0xf8, 0x15, 0x27, 0x40, 0x80, 0x01, 0xff, 0x03, 0xb6, 0x05, - 0x11, 0x05, 0x51, 0x00, 0x01, 0xff, 0x49, 0x98, 0x1d, 0x30, 0x2a, 0x00, - 0x48, 0x78, 0x58, 0x31, 0x2a, 0x40, 0x4d, 0x79, 0x80, 0x37, 0x2a, 0x00, - 0x50, 0x0a, 0x63, 0x34, 0x2a, 0x00, 0x51, 0x38, 0x5c, 0x35, 0x2a, 0x00, - 0x48, 0x01, 0x02, 0x3b, 0x2a, 0x40, 0x07, 0xc1, 0x05, 0x06, 0x4c, 0x57, - 0x26, 0xa9, 0x12, 0x41, 0xe1, 0x80, 0x12, 0x01, 0xa2, 0xca, 0x01, 0xa3, - 0xbd, 0x01, 0xa4, 0x9e, 0x01, 0xe5, 0x83, 0x12, 0x01, 0xa7, 0x8d, 0x01, - 0x42, 0x22, 0x00, 0xa6, 0x12, 0x01, 0xe9, 0x81, 0x12, 0x01, 0xaa, 0x77, - 0xab, 0x6b, 0x42, 0x74, 0x00, 0xa3, 0x12, 0x01, 0x42, 0x6c, 0x00, 0xa0, - 0x12, 0x01, 0xae, 0x4d, 0xb0, 0x41, 0xb2, 0x2f, 0x42, 0x15, 0x06, 0xa5, - 0x12, 0x01, 0xb4, 0x10, 0xf5, 0x82, 0x12, 0x01, 0x42, 0xa6, 0x0a, 0xa4, - 0x12, 0x01, 0x42, 0x34, 0x22, 0xa1, 0x12, 0x41, 0xe1, 0x96, 0x12, 0x01, - 0x42, 0x22, 0x00, 0x97, 0x12, 0x01, 0xb4, 0x01, 0xff, 0xe1, 0x90, 0x12, - 0x01, 0x42, 0x22, 0x00, 0x91, 0x12, 0x41, 0xe1, 0xa2, 0x12, 0x01, 0x42, - 0x22, 0x00, 0xa8, 0x12, 0x01, 0x42, 0x71, 0x00, 0xa7, 0x12, 0x41, 0xe1, - 0x9b, 0x12, 0x01, 0x42, 0x22, 0x00, 0x9c, 0x12, 0x41, 0xe1, 0x9a, 0x12, - 0x01, 0x42, 0xff, 0x04, 0x95, 0x12, 0x01, 0x42, 0x34, 0x22, 0x8f, 0x12, - 0x41, 0xe1, 0x84, 0x12, 0x01, 0x42, 0x22, 0x00, 0x85, 0x12, 0x41, 0xe1, - 0x8c, 0x12, 0x01, 0x42, 0xbd, 0x26, 0x8d, 0x12, 0x41, 0xe1, 0x86, 0x12, - 0x01, 0x42, 0x22, 0x00, 0x88, 0x12, 0x41, 0xe1, 0x98, 0x12, 0x01, 0xa4, - 0x06, 0x42, 0x22, 0x00, 0x99, 0x12, 0x41, 0xe1, 0x92, 0x12, 0x01, 0x42, - 0xa1, 0x10, 0x93, 0x12, 0x01, 0x42, 0x22, 0x00, 0x94, 0x12, 0x41, 0xe1, - 0x8a, 0x12, 0x01, 0x42, 0x22, 0x00, 0x8b, 0x12, 0x41, 0xe1, 0x9d, 0x12, - 0x01, 0x42, 0x22, 0x00, 0x9f, 0x12, 0x41, 0x4c, 0x87, 0x00, 0x6b, 0x22, - 0x00, 0x49, 0xec, 0x00, 0x6a, 0x22, 0x40, 0xa4, 0xb8, 0x01, 0x07, 0xc1, - 0x05, 0x01, 0xff, 0xe1, 0x46, 0x6a, 0x01, 0x42, 0x16, 0x00, 0x44, 0x6a, - 0x01, 0x43, 0xa0, 0x37, 0x4b, 0x6a, 0x01, 0x42, 0xa1, 0x10, 0x45, 0x6a, - 0x81, 0x97, 0x01, 0xe5, 0x58, 0x6a, 0x81, 0x8d, 0x01, 0x02, 0x22, 0x00, - 0x80, 0x01, 0xab, 0x6e, 0x42, 0x74, 0x00, 0x5b, 0x6a, 0x81, 0x63, 0xad, - 0x55, 0xae, 0x47, 0xef, 0x52, 0x6a, 0x81, 0x3a, 0xb0, 0x2e, 0xb2, 0x24, - 0x43, 0x54, 0x0c, 0x54, 0x6a, 0x01, 0xb4, 0x0c, 0x42, 0xa9, 0x01, 0x57, - 0x6a, 0x01, 0x42, 0x60, 0x46, 0x42, 0x6a, 0x41, 0xe1, 0x40, 0x6a, 0x01, - 0x42, 0x69, 0x18, 0x5e, 0x6a, 0x01, 0x43, 0xe6, 0x01, 0x55, 0x6a, 0x41, - 0xe9, 0x5d, 0x6a, 0x01, 0xef, 0x53, 0x6a, 0x41, 0xe1, 0x50, 0x6a, 0x01, - 0x42, 0x49, 0x00, 0x47, 0x6a, 0x41, 0xec, 0x4d, 0x6a, 0x01, 0xef, 0x51, - 0x6a, 0x41, 0x42, 0xc6, 0x06, 0x41, 0x6a, 0x01, 0x42, 0x9e, 0x01, 0x4f, - 0x6a, 0x41, 0x43, 0xa4, 0x85, 0x4e, 0x6a, 0x01, 0x42, 0x29, 0x02, 0x43, - 0x6a, 0x41, 0xee, 0x5a, 0x6a, 0x41, 0x44, 0x5e, 0xec, 0x4c, 0x6a, 0x01, - 0x43, 0xcc, 0x50, 0x48, 0x6a, 0x01, 0xef, 0x59, 0x6a, 0x41, 0xe9, 0x5c, - 0x6a, 0x01, 0xef, 0x49, 0x6a, 0x41, 0xe1, 0x56, 0x6a, 0x41, 0xe9, 0x4a, - 0x6a, 0x41, 0x44, 0xd1, 0x1f, 0x6e, 0x6a, 0x01, 0x05, 0xc5, 0x06, 0x06, - 0x4b, 0xd8, 0x9e, 0x6f, 0x6a, 0x41, 0x45, 0xc3, 0x0a, 0x68, 0x6a, 0x01, - 0xa6, 0x2e, 0x44, 0x46, 0x2a, 0x69, 0x6a, 0x01, 0x43, 0xbf, 0x0a, 0x61, - 0x6a, 0x01, 0xb3, 0x14, 0xb4, 0x06, 0x44, 0xa1, 0x1d, 0x60, 0x6a, 0x41, - 0x44, 0x25, 0x01, 0x63, 0x6a, 0x01, 0x42, 0x15, 0x02, 0x62, 0x6a, 0x41, - 0x44, 0x27, 0x1d, 0x67, 0x6a, 0x01, 0x42, 0x60, 0x25, 0x66, 0x6a, 0x41, - 0x43, 0xa7, 0x05, 0x65, 0x6a, 0x01, 0x43, 0xcb, 0x06, 0x64, 0x6a, 0x41, - 0x4a, 0x06, 0x4a, 0xf1, 0xf4, 0x81, 0x82, 0x1f, 0xa4, 0xcb, 0x0a, 0xae, - 0xaa, 0x01, 0xaf, 0x85, 0x01, 0x03, 0xab, 0x05, 0x77, 0xb4, 0x50, 0xb5, - 0x0c, 0x4a, 0xfd, 0xb0, 0xa5, 0xf3, 0x01, 0x43, 0x0e, 0x77, 0xff, 0xf5, - 0x41, 0x02, 0x11, 0x00, 0x1c, 0x42, 0x1b, 0x03, 0x01, 0xf4, 0x81, 0x06, - 0x42, 0x53, 0x00, 0x44, 0xf4, 0x41, 0x80, 0x01, 0xff, 0x44, 0xe1, 0x07, - 0x2d, 0xf4, 0x01, 0x44, 0xa2, 0xdd, 0xa4, 0xfa, 0x41, 0x45, 0x9f, 0xde, - 0xfb, 0xf5, 0x01, 0x43, 0x05, 0x07, 0xf0, 0x26, 0xc0, 0x00, 0x80, 0x01, - 0xff, 0x49, 0x4e, 0xb4, 0xb5, 0xf6, 0x01, 0x48, 0xea, 0xc1, 0xa0, 0xf6, - 0x01, 0x47, 0x2f, 0x70, 0x9e, 0xf6, 0x41, 0x4d, 0x7f, 0x7b, 0x36, 0xf9, - 0x01, 0x02, 0x0c, 0x00, 0x01, 0xff, 0x80, 0x0c, 0x4f, 0x66, 0x6d, 0xbc, - 0xf9, 0x01, 0x43, 0x62, 0x1f, 0xe3, 0xf6, 0x41, 0x44, 0xde, 0xd9, 0xe5, - 0xf6, 0x01, 0x47, 0xe2, 0xd2, 0xf5, 0xf6, 0x41, 0xe5, 0x4c, 0xf5, 0x01, - 0x43, 0x9b, 0x07, 0x9f, 0xf9, 0x41, 0x48, 0x62, 0xc2, 0xf0, 0xf5, 0x01, - 0x02, 0x92, 0x00, 0x06, 0x42, 0x1b, 0x03, 0xce, 0xfa, 0x41, 0x44, 0xbe, - 0x2b, 0x6e, 0xf9, 0x01, 0x46, 0xa2, 0xda, 0xf5, 0xcd, 0x01, 0x50, 0xfa, - 0x66, 0x91, 0xf3, 0x41, 0x02, 0x3f, 0x1c, 0x85, 0x09, 0x07, 0x82, 0xce, - 0x35, 0x43, 0x81, 0x23, 0x12, 0xf4, 0x81, 0x28, 0xaf, 0x01, 0xff, 0x09, - 0x24, 0x94, 0x0c, 0x44, 0x1a, 0x4b, 0x9d, 0xf6, 0x01, 0x4d, 0x2d, 0x87, - 0x8d, 0x23, 0x40, 0x45, 0xb8, 0x70, 0x00, 0xd3, 0x01, 0xb9, 0x01, 0xff, - 0x43, 0x1c, 0x01, 0x8a, 0x26, 0x00, 0x42, 0x9e, 0x01, 0x8b, 0x26, 0x40, - 0x45, 0xe0, 0x07, 0x35, 0xf4, 0x41, 0x45, 0x52, 0x07, 0x00, 0x18, 0x80, - 0xb3, 0x08, 0x02, 0xe8, 0x04, 0xa2, 0x08, 0xa4, 0xd3, 0x07, 0x48, 0x45, - 0x29, 0x01, 0x18, 0x00, 0xa6, 0x9f, 0x07, 0x4e, 0x48, 0x77, 0x67, 0x16, - 0x81, 0x91, 0x07, 0x07, 0xc1, 0x05, 0x68, 0x07, 0x49, 0xd0, 0x58, 0x46, - 0x56, 0xdb, 0x0a, 0x18, 0x00, 0x4d, 0x50, 0x86, 0x61, 0x16, 0x81, 0x3a, - 0xb3, 0x1a, 0xb4, 0x06, 0x4f, 0x06, 0x73, 0x0e, 0x18, 0x40, 0x4f, 0x64, - 0x6f, 0x06, 0x18, 0x00, 0x59, 0x6e, 0x25, 0x63, 0x16, 0x01, 0x66, 0x46, - 0x07, 0x6c, 0x16, 0x41, 0x5c, 0xaa, 0x17, 0x07, 0x18, 0x00, 0x4a, 0x4d, - 0x07, 0x69, 0x16, 0xc1, 0x00, 0x06, 0x50, 0x00, 0x01, 0xff, 0x4f, 0x5d, - 0x07, 0x6b, 0x16, 0x01, 0x48, 0xfd, 0x04, 0x6a, 0x16, 0x41, 0x06, 0x50, - 0x00, 0x01, 0xff, 0x4f, 0x5d, 0x07, 0x66, 0x16, 0x01, 0x48, 0xfd, 0x04, - 0x65, 0x16, 0x41, 0x45, 0xe8, 0x04, 0x08, 0x18, 0x00, 0x49, 0x15, 0x16, - 0x09, 0x18, 0x40, 0xe1, 0x20, 0x18, 0x80, 0xef, 0x04, 0x42, 0x16, 0x00, - 0x2a, 0x18, 0x00, 0x02, 0x1e, 0x14, 0xd5, 0x04, 0x42, 0xa1, 0x10, 0x33, - 0x18, 0x00, 0xe5, 0x21, 0x18, 0x80, 0xc5, 0x04, 0x42, 0xe1, 0x07, 0x39, - 0x18, 0x00, 0x42, 0x24, 0x02, 0x2d, 0x18, 0x00, 0x43, 0x42, 0x40, 0x3e, - 0x18, 0x00, 0xe9, 0x22, 0x18, 0x00, 0x42, 0xbd, 0x26, 0x35, 0x18, 0x00, - 0xab, 0x9c, 0x04, 0xac, 0x8f, 0x04, 0x42, 0x6c, 0x00, 0x2e, 0x18, 0x80, - 0x8b, 0x03, 0x42, 0xff, 0x04, 0x28, 0x18, 0x00, 0xef, 0x23, 0x18, 0x80, - 0xfb, 0x02, 0x42, 0x6c, 0x09, 0x2b, 0x18, 0x00, 0x42, 0xf4, 0x13, 0x2c, - 0x18, 0x00, 0x42, 0x71, 0x00, 0x37, 0x18, 0x00, 0xb3, 0xdc, 0x01, 0xb4, - 0x28, 0xf5, 0x24, 0x18, 0x80, 0x1f, 0x42, 0xa9, 0x01, 0x38, 0x18, 0x00, - 0x42, 0x34, 0x22, 0x36, 0x18, 0x00, 0xba, 0x01, 0xff, 0xe1, 0x3d, 0x18, - 0x00, 0x42, 0x49, 0x00, 0x41, 0x18, 0x00, 0x42, 0x71, 0x00, 0x3f, 0x18, - 0x40, 0xe5, 0x26, 0x18, 0x40, 0xe1, 0x32, 0x18, 0x00, 0x04, 0x64, 0x6f, - 0x06, 0x42, 0x15, 0x06, 0x3c, 0x18, 0x40, 0xa1, 0x8b, 0x01, 0x42, 0x16, - 0x00, 0x4b, 0x18, 0x00, 0x43, 0xef, 0x1f, 0x52, 0x18, 0x00, 0xa4, 0x73, - 0xe5, 0x44, 0x18, 0x00, 0x42, 0x24, 0x02, 0x4e, 0x18, 0x80, 0x64, 0x43, - 0x42, 0x40, 0x59, 0x18, 0x00, 0xe9, 0x45, 0x18, 0x00, 0xaa, 0x4e, 0x42, - 0x1b, 0x02, 0x57, 0x18, 0x00, 0x4f, 0x47, 0x6e, 0x43, 0x18, 0x00, 0x42, - 0x6c, 0x00, 0x4f, 0x18, 0x00, 0x43, 0x6a, 0x08, 0x5b, 0x18, 0x00, 0xef, - 0x46, 0x18, 0x80, 0x2d, 0x42, 0x6c, 0x09, 0x4c, 0x18, 0x00, 0x42, 0xf4, - 0x13, 0x4d, 0x18, 0x00, 0xb4, 0x15, 0xf5, 0x47, 0x18, 0x80, 0x0c, 0x42, - 0xa9, 0x01, 0x56, 0x18, 0x00, 0x42, 0x34, 0x22, 0x55, 0x18, 0x40, 0xe5, - 0x49, 0x18, 0x40, 0xe1, 0x50, 0x18, 0x00, 0x42, 0x15, 0x06, 0x54, 0x18, - 0x40, 0xe5, 0x48, 0x18, 0x40, 0xe1, 0x53, 0x18, 0x00, 0x42, 0x1b, 0x01, - 0x5a, 0x18, 0x40, 0xe1, 0x58, 0x18, 0x40, 0xe1, 0x51, 0x18, 0x00, 0x42, - 0x59, 0x00, 0x5c, 0x18, 0x40, 0x08, 0x9b, 0xb3, 0x06, 0x42, 0x1d, 0x01, - 0x4a, 0x18, 0x40, 0x42, 0x12, 0x00, 0x98, 0x18, 0x00, 0x43, 0x44, 0xbe, - 0x99, 0x18, 0x40, 0xe1, 0x30, 0x18, 0x00, 0x42, 0x22, 0x00, 0x31, 0x18, - 0x00, 0x04, 0xaa, 0x17, 0x01, 0xff, 0x43, 0x1c, 0x01, 0x62, 0x18, 0x00, - 0x43, 0xef, 0x1f, 0x71, 0x18, 0x00, 0x42, 0xa1, 0x10, 0x69, 0x18, 0x00, - 0xe5, 0x5d, 0x18, 0x00, 0x42, 0xe1, 0x07, 0x6b, 0x18, 0x00, 0x42, 0x24, - 0x02, 0x64, 0x18, 0x80, 0x54, 0x42, 0x22, 0x00, 0x65, 0x18, 0x80, 0x49, - 0xe9, 0x5e, 0x18, 0x80, 0x40, 0x42, 0xbd, 0x26, 0x6a, 0x18, 0x00, 0x42, - 0x1b, 0x02, 0x63, 0x18, 0x00, 0x42, 0x6c, 0x09, 0x66, 0x18, 0x00, 0x43, - 0xcd, 0xa8, 0x70, 0x18, 0x00, 0x43, 0xa4, 0x02, 0x67, 0x18, 0x00, 0xb4, - 0x16, 0xf5, 0x61, 0x18, 0x80, 0x0d, 0xba, 0x01, 0xff, 0xe1, 0x6f, 0x18, - 0x00, 0x42, 0x22, 0x00, 0x72, 0x18, 0x40, 0xe5, 0x60, 0x18, 0x40, 0xe1, - 0x68, 0x18, 0x00, 0x42, 0x15, 0x06, 0x6e, 0x18, 0x40, 0xf9, 0x5f, 0x18, - 0x40, 0xe1, 0x6d, 0x18, 0x40, 0xe1, 0x6c, 0x18, 0x40, 0xe5, 0x25, 0x18, - 0x40, 0x05, 0x4b, 0xd0, 0x01, 0xff, 0x09, 0x9a, 0xb3, 0x1c, 0x42, 0xe1, - 0x07, 0x76, 0x18, 0x00, 0xe9, 0x73, 0x18, 0x00, 0x42, 0x1b, 0x02, 0x74, - 0x18, 0x00, 0x42, 0x71, 0x00, 0x75, 0x18, 0x00, 0x43, 0x44, 0xbe, 0x77, - 0x18, 0x40, 0x43, 0x50, 0x2a, 0xa8, 0x18, 0x00, 0xa3, 0x45, 0xa4, 0x37, - 0x43, 0xf3, 0x99, 0x9a, 0x18, 0x00, 0x43, 0x11, 0xf1, 0x9d, 0x18, 0x00, - 0x43, 0x80, 0x48, 0xaa, 0x18, 0x00, 0x43, 0x03, 0x47, 0x9b, 0x18, 0x00, - 0x43, 0x59, 0x20, 0xa2, 0x18, 0x00, 0xb4, 0x0d, 0xba, 0x01, 0xff, 0xe1, - 0xa5, 0x18, 0x00, 0x42, 0x22, 0x00, 0xa4, 0x18, 0x40, 0xe1, 0xa0, 0x18, - 0x00, 0x42, 0x12, 0x00, 0x9e, 0x18, 0x40, 0x43, 0x9e, 0x4a, 0x9f, 0x18, - 0x00, 0x42, 0x22, 0x00, 0xa1, 0x18, 0x40, 0xe1, 0x9c, 0x18, 0x00, 0x42, - 0x34, 0x22, 0xa3, 0x18, 0x40, 0xe1, 0x2f, 0x18, 0x00, 0x42, 0x22, 0x00, - 0x40, 0x18, 0x40, 0xe1, 0x3a, 0x18, 0x00, 0x42, 0x22, 0x00, 0x3b, 0x18, - 0x40, 0xe5, 0x27, 0x18, 0x40, 0xe1, 0x34, 0x18, 0x80, 0x04, 0xe9, 0x42, - 0x18, 0x40, 0x4e, 0x70, 0x19, 0x78, 0x18, 0x40, 0x08, 0x9b, 0xb3, 0x06, - 0x42, 0x1d, 0x01, 0x29, 0x18, 0x40, 0xe1, 0x87, 0x18, 0x80, 0x96, 0x01, - 0x46, 0xff, 0x9a, 0x85, 0x18, 0x00, 0x42, 0x37, 0x00, 0x8b, 0x18, 0x00, - 0xa4, 0x71, 0x05, 0x22, 0x00, 0x63, 0xe9, 0x88, 0x18, 0x80, 0x58, 0x42, - 0x1b, 0x02, 0x89, 0x18, 0x00, 0xae, 0x44, 0xb0, 0x38, 0x43, 0x59, 0x20, - 0x94, 0x18, 0x00, 0xb4, 0x19, 0x47, 0x4e, 0x6f, 0x83, 0x18, 0x00, 0x4b, - 0xa0, 0xa2, 0x81, 0x18, 0x00, 0xba, 0x01, 0xff, 0xe1, 0x96, 0x18, 0x00, - 0x42, 0x22, 0x00, 0x95, 0x18, 0x40, 0xe1, 0x90, 0x18, 0x00, 0x4b, 0xfa, - 0x9a, 0x86, 0x18, 0x00, 0xb4, 0x01, 0xff, 0xe1, 0x8c, 0x18, 0x00, 0x42, - 0x22, 0x00, 0x8d, 0x18, 0x40, 0xe1, 0x92, 0x18, 0x00, 0x42, 0x22, 0x00, - 0x93, 0x18, 0x40, 0x42, 0x24, 0x02, 0x8a, 0x18, 0x00, 0x42, 0xff, 0x04, - 0x8f, 0x18, 0x40, 0x4f, 0x46, 0x6f, 0x84, 0x18, 0x40, 0xf5, 0xa6, 0x18, - 0x00, 0x42, 0x34, 0x22, 0xa7, 0x18, 0x40, 0xe1, 0x91, 0x18, 0x80, 0x06, - 0x42, 0xa1, 0x10, 0x8e, 0x18, 0x40, 0x45, 0x72, 0xe3, 0xa9, 0x18, 0x00, - 0x44, 0xde, 0xed, 0x82, 0x18, 0x40, 0xe8, 0x97, 0x18, 0x00, 0x4b, 0x33, - 0x9e, 0x80, 0x18, 0x40, 0x55, 0x57, 0x07, 0x68, 0x16, 0x41, 0x48, 0x9d, - 0x45, 0x05, 0x18, 0x00, 0x17, 0xb1, 0x2f, 0x06, 0x48, 0x16, 0x16, 0x03, - 0x18, 0x40, 0x44, 0xca, 0x06, 0x0f, 0x18, 0x00, 0x43, 0xbf, 0x0a, 0x0b, - 0x18, 0x00, 0xb4, 0x01, 0xff, 0x44, 0x25, 0x01, 0x0d, 0x18, 0x00, 0x42, - 0x15, 0x02, 0x0c, 0x18, 0x40, 0x05, 0xc5, 0x06, 0x06, 0x59, 0xd8, 0x24, - 0x62, 0x16, 0x41, 0x45, 0xc3, 0x0a, 0x18, 0x18, 0x00, 0xa6, 0x2e, 0x44, - 0x46, 0x2a, 0x19, 0x18, 0x00, 0x43, 0xbf, 0x0a, 0x11, 0x18, 0x00, 0xb3, - 0x14, 0xb4, 0x06, 0x44, 0xa1, 0x1d, 0x10, 0x18, 0x40, 0x44, 0x25, 0x01, - 0x13, 0x18, 0x00, 0x42, 0x15, 0x02, 0x12, 0x18, 0x40, 0x44, 0x27, 0x1d, - 0x17, 0x18, 0x00, 0x42, 0x60, 0x25, 0x16, 0x18, 0x40, 0x43, 0xa7, 0x05, - 0x15, 0x18, 0x00, 0x43, 0xcb, 0x06, 0x14, 0x18, 0x40, 0x43, 0x03, 0x12, - 0x04, 0x18, 0x00, 0x43, 0xea, 0x04, 0x02, 0x18, 0x40, 0x06, 0x50, 0x00, - 0x01, 0xff, 0x4f, 0x5d, 0x07, 0x64, 0x16, 0x01, 0x48, 0xfd, 0x04, 0x60, - 0x16, 0x41, 0x80, 0x06, 0x4b, 0x9f, 0x62, 0x11, 0xf9, 0x41, 0x43, 0x07, - 0x38, 0xb0, 0xf4, 0x01, 0x4a, 0x57, 0xb1, 0xb8, 0xf4, 0x41, 0xa5, 0xa5, - 0x14, 0xa9, 0x06, 0x4b, 0x06, 0xa2, 0x0a, 0x2a, 0x40, 0x80, 0xb6, 0x10, - 0x05, 0x2d, 0x0c, 0x01, 0xff, 0x59, 0xcb, 0x22, 0x5b, 0xab, 0x00, 0x07, - 0xc1, 0x05, 0x01, 0xff, 0xa1, 0x91, 0x10, 0xa2, 0xf8, 0x0f, 0xa3, 0xa6, - 0x0c, 0xa4, 0xe3, 0x0b, 0xa5, 0x8a, 0x0b, 0xa7, 0xee, 0x0a, 0xa8, 0xc4, - 0x0a, 0xac, 0x9e, 0x09, 0xad, 0xd1, 0x08, 0x4a, 0xa7, 0xac, 0xfe, 0x02, - 0x00, 0xb0, 0xbc, 0x08, 0xb2, 0xda, 0x07, 0xb3, 0x47, 0xb4, 0x39, 0xb5, - 0x1d, 0xb6, 0x0f, 0xb9, 0x01, 0xff, 0x57, 0x75, 0x2c, 0xeb, 0x02, 0x00, - 0x56, 0xb7, 0x33, 0xea, 0x02, 0x40, 0x4c, 0x7f, 0x0b, 0xc8, 0x02, 0x00, - 0x46, 0x87, 0xd4, 0xec, 0x02, 0x40, 0x4a, 0xe9, 0xab, 0xed, 0x02, 0x00, - 0x02, 0x20, 0x00, 0x04, 0xf3, 0x70, 0xa7, 0x40, 0x49, 0xe1, 0x01, 0xc4, - 0x02, 0x00, 0x44, 0x25, 0x38, 0xd4, 0x02, 0x40, 0x4f, 0xba, 0x3a, 0xd0, - 0x02, 0x00, 0x4b, 0xd9, 0x09, 0xbb, 0x02, 0x40, 0xa8, 0x82, 0x07, 0x05, - 0x0d, 0x07, 0x21, 0x0a, 0xd1, 0xaf, 0x11, 0x0b, 0x45, 0x06, 0x01, 0xff, - 0x55, 0xb4, 0x3a, 0x82, 0x07, 0x01, 0x50, 0xb9, 0x3a, 0x81, 0x07, 0x41, - 0x49, 0xeb, 0x41, 0x20, 0xa7, 0x00, 0x48, 0xc3, 0xb2, 0x21, 0xa7, 0x40, - 0xe1, 0x43, 0x1d, 0x80, 0xc7, 0x06, 0xe2, 0x47, 0x1d, 0x80, 0xa9, 0x06, - 0xe3, 0x9c, 0x1d, 0x80, 0xb7, 0x05, 0xe4, 0x48, 0x1d, 0x80, 0xe7, 0x04, - 0xe5, 0x49, 0x1d, 0x80, 0xc9, 0x04, 0xe6, 0xa0, 0x1d, 0x80, 0xbd, 0x04, - 0xe7, 0x4d, 0x1d, 0x80, 0x9a, 0x04, 0xe8, 0xb0, 0x02, 0x80, 0xf7, 0x03, - 0xa9, 0xe8, 0x03, 0xea, 0xb2, 0x02, 0x80, 0xdc, 0x03, 0xeb, 0x4f, 0x1d, - 0x00, 0xec, 0xe1, 0x02, 0x80, 0x8a, 0x03, 0xed, 0x50, 0x1d, 0x80, 0xfe, - 0x02, 0x07, 0x9d, 0x04, 0xed, 0x02, 0xef, 0x52, 0x1d, 0x80, 0xd4, 0x02, - 0xf0, 0x56, 0x1d, 0x80, 0xc8, 0x02, 0xf1, 0xa5, 0x07, 0x01, 0xf2, 0xb3, - 0x02, 0x80, 0x93, 0x02, 0xf3, 0xe2, 0x02, 0x80, 0xe9, 0x01, 0xf4, 0x57, - 0x1d, 0x80, 0x51, 0xf5, 0x58, 0x1d, 0x80, 0x38, 0xf6, 0x5b, 0x1d, 0x80, - 0x22, 0xf7, 0xb7, 0x02, 0x00, 0xf8, 0xe3, 0x02, 0x00, 0xf9, 0xb8, 0x02, - 0x00, 0xfa, 0xbb, 0x1d, 0xc0, 0x00, 0x06, 0x50, 0x00, 0x01, 0xff, 0x44, - 0x23, 0x0b, 0xbd, 0x1d, 0x00, 0x4e, 0x53, 0x0e, 0xbc, 0x1d, 0x40, 0x06, - 0x50, 0x00, 0x01, 0xff, 0x44, 0x5d, 0x0e, 0xb9, 0x1d, 0x00, 0x4a, 0xfb, - 0xad, 0xb0, 0x07, 0x41, 0x80, 0x06, 0x46, 0x63, 0x15, 0xb7, 0x1d, 0x40, - 0x43, 0x16, 0x00, 0xb6, 0x1d, 0x00, 0x4e, 0x5a, 0x7d, 0x5f, 0xab, 0x40, - 0x06, 0x50, 0x00, 0x82, 0x01, 0x53, 0x64, 0x47, 0xab, 0x07, 0x01, 0x4b, - 0xd1, 0x99, 0xae, 0x07, 0x01, 0x44, 0xf2, 0x93, 0xbf, 0x1d, 0x00, 0x49, - 0xea, 0xba, 0x54, 0x1d, 0x00, 0x49, 0xa3, 0xbc, 0xac, 0x07, 0x81, 0x5d, - 0x06, 0x46, 0x07, 0x01, 0xff, 0xe1, 0x44, 0x1d, 0x80, 0x49, 0xe8, 0xa3, - 0x1d, 0x00, 0xe9, 0x4e, 0x1d, 0x00, 0xed, 0x5a, 0x1d, 0x80, 0x36, 0x46, - 0x7d, 0x28, 0x4c, 0x1d, 0x00, 0xf2, 0xb4, 0x02, 0x80, 0x13, 0xf6, 0xba, - 0x1d, 0x00, 0xf7, 0x69, 0xab, 0x00, 0xf9, 0xa0, 0x07, 0xc1, 0x00, 0x4a, - 0x19, 0xa4, 0xa1, 0x07, 0x41, 0x06, 0x50, 0x00, 0x01, 0xff, 0x44, 0x5d, - 0x0e, 0xb5, 0x02, 0x00, 0x48, 0x06, 0x74, 0xa6, 0x07, 0xc1, 0x00, 0x53, - 0x0e, 0x46, 0xa7, 0x07, 0x41, 0x4e, 0x00, 0x74, 0xad, 0x1d, 0x40, 0xe5, - 0x46, 0x1d, 0x00, 0x44, 0x2f, 0xe1, 0x9b, 0x1d, 0x40, 0x54, 0x4d, 0x0e, - 0xad, 0x07, 0x41, 0x4c, 0xaa, 0x55, 0xb5, 0x1d, 0x00, 0x4e, 0x53, 0x0e, - 0xaf, 0x07, 0x41, 0x06, 0x50, 0x00, 0x14, 0xa3, 0x06, 0x49, 0xa5, 0xb7, - 0x59, 0x1d, 0x40, 0x43, 0x55, 0x7a, 0x4a, 0x1d, 0x00, 0x46, 0x04, 0xc8, - 0xa2, 0x1d, 0x40, 0x44, 0x23, 0x0b, 0xba, 0x07, 0x01, 0x44, 0x5d, 0x0e, - 0xb3, 0x1d, 0x40, 0x06, 0x50, 0x00, 0x1b, 0x48, 0xc2, 0xc0, 0x91, 0x07, - 0x01, 0x08, 0x8f, 0x14, 0x01, 0xff, 0xe5, 0x8e, 0x07, 0x01, 0x4c, 0x2d, - 0x28, 0xe4, 0x02, 0x00, 0x46, 0x7d, 0x28, 0x9f, 0x1d, 0x40, 0x48, 0x97, - 0x70, 0xa9, 0x07, 0x01, 0x44, 0x23, 0x17, 0xa8, 0x07, 0x41, 0x42, 0x49, - 0x00, 0xb2, 0x1d, 0x40, 0x4c, 0x39, 0x28, 0xa2, 0x07, 0x01, 0x04, 0xcc, - 0x04, 0x01, 0xff, 0xe5, 0x4b, 0x1d, 0x00, 0xef, 0x53, 0x1d, 0x40, 0x49, - 0x68, 0x56, 0xae, 0x1d, 0x00, 0x4e, 0x53, 0x0e, 0xaf, 0x1d, 0x40, 0x4a, - 0x1f, 0x24, 0xac, 0x1d, 0x40, 0x06, 0x50, 0x00, 0x1f, 0x43, 0xe4, 0xf0, - 0x9e, 0x07, 0x81, 0x12, 0x4a, 0x5f, 0xa9, 0xf9, 0xa7, 0x00, 0x49, 0xa3, - 0xbc, 0x99, 0x07, 0x01, 0x49, 0x34, 0xbf, 0x9a, 0x07, 0x41, 0x54, 0x4d, - 0x0e, 0x9f, 0x07, 0x41, 0x44, 0x1f, 0xa4, 0x9b, 0x07, 0x01, 0x4f, 0x2a, - 0x6d, 0x5d, 0xab, 0x00, 0x4c, 0xa6, 0x22, 0x5e, 0xab, 0x00, 0x4c, 0xaa, - 0x55, 0xaa, 0x1d, 0x00, 0x4e, 0x53, 0x0e, 0xa9, 0x1d, 0xc0, 0x00, 0x49, - 0xcf, 0xb1, 0x9d, 0x07, 0x41, 0x52, 0x7a, 0x4e, 0xa8, 0x1d, 0x40, 0x4c, - 0x39, 0x28, 0xa4, 0x1d, 0x00, 0x43, 0xf0, 0x04, 0xa5, 0x1d, 0x40, 0x06, - 0x50, 0x00, 0x0d, 0x43, 0xfd, 0x09, 0x5c, 0xab, 0xc0, 0x00, 0x4a, 0x1f, - 0x24, 0x97, 0x07, 0x41, 0x44, 0x5d, 0x0e, 0xb1, 0x02, 0x00, 0x46, 0x27, - 0x05, 0x95, 0x07, 0x41, 0x4a, 0x1f, 0x24, 0x93, 0x07, 0x01, 0x44, 0x5e, - 0x20, 0xe0, 0x02, 0x00, 0x05, 0xb8, 0x2d, 0x01, 0xff, 0x45, 0xd2, 0x56, - 0x5e, 0x1d, 0x00, 0x43, 0xb1, 0x1f, 0x60, 0x1d, 0x40, 0x4b, 0x9a, 0x99, - 0x90, 0x07, 0x41, 0x42, 0x1d, 0x01, 0x51, 0x1d, 0x00, 0x42, 0xa4, 0x02, - 0xb4, 0x1d, 0x00, 0x42, 0x53, 0x00, 0x9e, 0x1d, 0x00, 0x42, 0xb3, 0x27, - 0xbe, 0x1d, 0x40, 0x06, 0x50, 0x00, 0x33, 0xa5, 0x25, 0x54, 0xa3, 0x43, - 0xa1, 0x1d, 0x80, 0x18, 0x49, 0x34, 0xbf, 0x87, 0x07, 0xc1, 0x00, 0x06, - 0x50, 0x00, 0x01, 0xff, 0x44, 0x23, 0x0b, 0x89, 0x07, 0x01, 0x4e, 0x53, - 0x0e, 0x88, 0x07, 0x41, 0x49, 0x38, 0x23, 0x98, 0x07, 0x41, 0x43, 0xef, - 0x94, 0x5f, 0x1d, 0x00, 0x4a, 0xbb, 0xb1, 0x8a, 0x07, 0x41, 0x44, 0x5d, - 0x0e, 0x8c, 0x07, 0x81, 0x06, 0x44, 0x23, 0x17, 0x8b, 0x07, 0x41, 0x49, - 0xe1, 0xb1, 0x8d, 0x07, 0x41, 0x4a, 0x6d, 0x47, 0x9d, 0x1d, 0x00, 0x07, - 0xba, 0x05, 0x17, 0x42, 0x49, 0x00, 0x61, 0x1d, 0x00, 0x06, 0xd9, 0x1a, - 0x01, 0xff, 0x45, 0xe8, 0xac, 0xa4, 0x07, 0x01, 0x4f, 0xdb, 0x70, 0x8f, - 0x07, 0x41, 0x42, 0x31, 0x12, 0x80, 0x07, 0x01, 0xe2, 0x84, 0x07, 0x01, - 0xe7, 0x92, 0x07, 0x81, 0x36, 0xe8, 0x96, 0x07, 0x01, 0xe9, 0xa6, 0x1d, - 0x80, 0x21, 0xec, 0xab, 0x1d, 0x80, 0x16, 0xee, 0xb0, 0x1d, 0x00, 0x42, - 0x17, 0x50, 0xa3, 0x07, 0x01, 0xf2, 0xaa, 0x07, 0x01, 0xf5, 0xb8, 0x1d, - 0x00, 0xf9, 0xb2, 0x07, 0x41, 0x4a, 0x19, 0xa4, 0x9c, 0x07, 0x41, 0x4c, - 0x39, 0x28, 0xa7, 0x1d, 0x00, 0x49, 0x63, 0xba, 0xb6, 0x02, 0x40, 0x4a, - 0x1f, 0x24, 0x94, 0x07, 0x41, 0x4a, 0x1f, 0x24, 0x85, 0x07, 0x01, 0x47, - 0x44, 0xcc, 0xb1, 0x1d, 0x00, 0x43, 0x45, 0x0f, 0x5d, 0x1d, 0x00, 0x4c, - 0xbd, 0x91, 0x55, 0x1d, 0x40, 0xe5, 0x83, 0x07, 0x01, 0x42, 0x9e, 0x01, - 0x5c, 0x1d, 0x00, 0x44, 0x2f, 0xe1, 0x45, 0x1d, 0x40, 0x43, 0x22, 0x78, - 0xfd, 0x02, 0x00, 0x4f, 0xdc, 0x6f, 0x8a, 0xa7, 0x40, 0x06, 0x83, 0x10, - 0x3d, 0xa5, 0x1d, 0x4a, 0x05, 0xa9, 0xde, 0x02, 0x00, 0x05, 0xc9, 0x00, - 0x01, 0xff, 0x49, 0xe1, 0x01, 0xc3, 0x02, 0x00, 0x49, 0xaf, 0x13, 0xbe, - 0x02, 0x00, 0x44, 0x25, 0x38, 0x6b, 0xab, 0x40, 0x61, 0x40, 0x0e, 0xb9, - 0x07, 0x01, 0x07, 0x90, 0x14, 0x01, 0xff, 0x45, 0xe8, 0x04, 0xbd, 0x02, - 0x00, 0x4c, 0x2d, 0x28, 0xc1, 0x02, 0xc0, 0x00, 0x4c, 0x39, 0x28, 0xb4, - 0x07, 0x41, 0x45, 0xc4, 0x3a, 0xf8, 0x02, 0x00, 0x4a, 0xbf, 0x40, 0x1c, - 0xa7, 0x00, 0x50, 0xad, 0x00, 0x1d, 0xa7, 0x00, 0x59, 0xde, 0x23, 0x1e, - 0xa7, 0x00, 0x48, 0xe0, 0x54, 0x1b, 0xa7, 0x40, 0x48, 0x46, 0x70, 0xd6, - 0x02, 0x00, 0x44, 0x64, 0x1a, 0xb9, 0x02, 0x40, 0x45, 0x05, 0x6f, 0xc9, - 0x02, 0x00, 0xa9, 0x01, 0xff, 0xa4, 0x06, 0x48, 0x0d, 0x6d, 0xd7, 0x02, - 0x40, 0x80, 0x1b, 0x04, 0x80, 0x02, 0x01, 0xff, 0x07, 0x3b, 0x01, 0x06, - 0x4c, 0x8d, 0x22, 0xf4, 0x02, 0x40, 0x4c, 0x3d, 0x8a, 0xf6, 0x02, 0x00, - 0x4c, 0x8d, 0x22, 0xf5, 0x02, 0x40, 0x07, 0x0e, 0x1f, 0x0c, 0x52, 0x22, - 0x52, 0x14, 0xa7, 0x00, 0x48, 0x2c, 0x52, 0xe7, 0x02, 0x40, 0x52, 0x22, - 0x52, 0x0f, 0xa7, 0x00, 0x48, 0x2c, 0x52, 0x0a, 0xa7, 0x40, 0x4c, 0x45, - 0x83, 0xb7, 0x07, 0x01, 0x04, 0xc4, 0x00, 0x86, 0x01, 0x02, 0xd1, 0x00, - 0x01, 0xff, 0x80, 0x06, 0x55, 0x36, 0x3a, 0x1a, 0xa7, 0x40, 0x4c, 0x3d, - 0x8a, 0xcf, 0x02, 0x00, 0x51, 0xa4, 0x04, 0x88, 0xa7, 0x00, 0x02, 0x3b, - 0x01, 0x53, 0x4c, 0x8d, 0x22, 0xce, 0x02, 0x00, 0x59, 0xde, 0x23, 0x1f, - 0xa7, 0x00, 0x04, 0xc3, 0x00, 0x30, 0x46, 0x04, 0x6f, 0xcd, 0x02, 0x00, - 0x02, 0x0d, 0x00, 0x1a, 0xb4, 0x0c, 0x4c, 0xe0, 0x54, 0xf0, 0x02, 0x00, - 0x4d, 0x7e, 0x0b, 0xcc, 0x02, 0x40, 0x44, 0xae, 0x22, 0xf7, 0x02, 0x00, - 0x47, 0x2d, 0x52, 0xe8, 0x02, 0x40, 0x4d, 0x68, 0x31, 0xf2, 0x02, 0x00, - 0x42, 0x1d, 0x01, 0xf3, 0x02, 0x40, 0x46, 0xcd, 0x00, 0xff, 0x02, 0x80, - 0x06, 0x4e, 0x26, 0x52, 0x15, 0xa7, 0x40, 0x44, 0xe6, 0x01, 0xf1, 0x02, - 0x40, 0x05, 0x10, 0x1f, 0x06, 0x4c, 0xc1, 0x40, 0xef, 0x02, 0x40, 0x52, - 0x22, 0x52, 0x10, 0xa7, 0x00, 0x48, 0x2c, 0x52, 0x0b, 0xa7, 0x40, 0x49, - 0xe1, 0x01, 0xc2, 0x02, 0x00, 0x49, 0xaf, 0x13, 0xbf, 0x02, 0x00, 0x44, - 0x25, 0x38, 0x6a, 0xab, 0x40, 0x54, 0xb5, 0x3a, 0xd1, 0x02, 0x00, 0x04, - 0xfa, 0x0a, 0x01, 0xff, 0x07, 0x0e, 0x1f, 0x0c, 0x52, 0x22, 0x52, 0x13, - 0xa7, 0x00, 0x48, 0x2c, 0x52, 0xe6, 0x02, 0x40, 0x52, 0x22, 0x52, 0x0e, - 0xa7, 0x00, 0x48, 0x2c, 0x52, 0x09, 0xa7, 0x40, 0x4b, 0xb0, 0x99, 0xfc, - 0x10, 0x00, 0x4b, 0x2e, 0x28, 0xc0, 0x02, 0x80, 0x06, 0x4b, 0x8e, 0x22, - 0xcb, 0x02, 0x40, 0x4c, 0x39, 0x28, 0xb3, 0x07, 0x41, 0x03, 0x1b, 0x00, - 0x46, 0x05, 0x44, 0xe9, 0x01, 0xff, 0x05, 0xf9, 0x0a, 0x21, 0x04, 0xdd, - 0x04, 0x01, 0xff, 0x07, 0x0e, 0x1f, 0x0c, 0x52, 0x22, 0x52, 0x16, 0xa7, - 0x00, 0x48, 0x2c, 0x52, 0xe9, 0x02, 0x40, 0x52, 0x22, 0x52, 0x11, 0xa7, - 0x00, 0x48, 0x2c, 0x52, 0x0c, 0xa7, 0x40, 0x07, 0x0e, 0x1f, 0x0c, 0x52, - 0x22, 0x52, 0x12, 0xa7, 0x00, 0x48, 0x2c, 0x52, 0xe5, 0x02, 0x40, 0x52, - 0x22, 0x52, 0x0d, 0xa7, 0x00, 0x48, 0x2c, 0x52, 0x08, 0xa7, 0x40, 0x49, - 0xeb, 0x41, 0xfa, 0x02, 0x00, 0x48, 0xc3, 0xb2, 0xfc, 0x02, 0x40, 0x4b, - 0x1e, 0x8c, 0xb6, 0x07, 0x01, 0xaf, 0x01, 0xff, 0x02, 0xc6, 0x00, 0x21, - 0x05, 0x3d, 0x01, 0x11, 0x03, 0x51, 0x14, 0x01, 0xff, 0x49, 0xe1, 0x01, - 0xc5, 0x02, 0x00, 0x44, 0x25, 0x38, 0xd5, 0x02, 0x40, 0x4a, 0x91, 0x35, - 0xee, 0x02, 0x00, 0x45, 0x63, 0x1a, 0xba, 0x02, 0x40, 0x4e, 0x0b, 0x00, - 0x19, 0xa7, 0x00, 0x45, 0xf9, 0x0d, 0x18, 0xa7, 0x00, 0x4c, 0x32, 0x00, - 0x17, 0xa7, 0x40, 0x07, 0xba, 0x05, 0xcc, 0x02, 0x07, 0x40, 0x67, 0xbb, - 0x02, 0x0d, 0x26, 0x82, 0xfd, 0x01, 0x50, 0xa5, 0x04, 0xc6, 0x02, 0x00, - 0x44, 0x02, 0x12, 0x89, 0xa7, 0x00, 0x4b, 0x2d, 0xa0, 0xdf, 0x02, 0x00, - 0x08, 0x3a, 0xca, 0x01, 0xff, 0x42, 0x92, 0x01, 0x78, 0x1d, 0x00, 0x49, - 0x1e, 0xb7, 0x9c, 0xa6, 0x00, 0xb3, 0x01, 0xff, 0x05, 0x0d, 0x07, 0x06, - 0x48, 0xd5, 0x8c, 0x9d, 0xa6, 0x40, 0xe1, 0x30, 0xe0, 0x01, 0xa2, 0xb6, - 0x01, 0x43, 0x1e, 0x14, 0x45, 0xe0, 0x01, 0xa4, 0xa3, 0x01, 0xe5, 0x48, - 0xe0, 0x81, 0x82, 0x01, 0x43, 0xdd, 0x50, 0x33, 0xe0, 0x01, 0x42, 0x22, - 0x00, 0x43, 0xe0, 0x01, 0xe9, 0x38, 0xe0, 0x81, 0x6d, 0x42, 0xde, 0x1f, - 0x4d, 0xe0, 0x01, 0x42, 0x1b, 0x02, 0x39, 0xe0, 0x01, 0xef, 0x3c, 0xe0, - 0x01, 0xb0, 0x51, 0xb3, 0x36, 0xb4, 0x2a, 0xf5, 0x41, 0xe0, 0x01, 0x42, - 0x32, 0x00, 0x32, 0xe0, 0x01, 0xb9, 0x0d, 0xba, 0x01, 0xff, 0xe5, 0x37, - 0xe0, 0x01, 0x42, 0xb0, 0x01, 0x36, 0xe0, 0x41, 0x43, 0xfb, 0x2a, 0x47, - 0xe0, 0x81, 0x04, 0xf5, 0x49, 0xe0, 0x41, 0x4e, 0xf2, 0x73, 0x6c, 0xe0, - 0x41, 0xe5, 0x40, 0xe0, 0x01, 0x42, 0x1b, 0x03, 0x44, 0xe0, 0x41, 0x44, - 0x54, 0x7a, 0x4b, 0xe0, 0x01, 0x42, 0x22, 0x00, 0x46, 0xe0, 0x01, 0x49, - 0x72, 0xbd, 0x4f, 0xe0, 0xc1, 0x00, 0x4c, 0x39, 0x28, 0x6d, 0xe0, 0x41, - 0x47, 0x23, 0xc7, 0x50, 0xe0, 0x01, 0xe5, 0x3d, 0xe0, 0x41, 0xe5, 0x35, - 0xe0, 0x41, 0xe6, 0x42, 0xe0, 0x01, 0xec, 0x3a, 0xe0, 0x01, 0xed, 0x3b, - 0xe0, 0x01, 0xf2, 0x3e, 0xe0, 0x01, 0xf3, 0x3f, 0xe0, 0xc1, 0x00, 0x4f, - 0x6b, 0x68, 0x6b, 0xe0, 0x41, 0xe5, 0x34, 0xe0, 0x01, 0x43, 0x9b, 0xf1, - 0x4a, 0xe0, 0x41, 0x47, 0x44, 0xcc, 0x4e, 0xe0, 0x01, 0xe5, 0x31, 0xe0, - 0x01, 0x57, 0x59, 0x08, 0x4c, 0xe0, 0x41, 0x04, 0xbb, 0x15, 0x1d, 0x03, - 0xb6, 0x05, 0x01, 0xff, 0x44, 0x45, 0x2f, 0x00, 0xa7, 0x00, 0x42, 0x7c, - 0x00, 0x04, 0xa7, 0x00, 0x42, 0x3d, 0x00, 0x06, 0xa7, 0x00, 0x45, 0xaf, - 0xe7, 0x02, 0xa7, 0x40, 0x44, 0x45, 0x2f, 0x01, 0xa7, 0x00, 0x42, 0x7c, - 0x00, 0x05, 0xa7, 0x00, 0x42, 0x3d, 0x00, 0x07, 0xa7, 0x00, 0x45, 0xaf, - 0xe7, 0x03, 0xa7, 0x40, 0x4e, 0xaa, 0x13, 0xd3, 0x02, 0x00, 0x4f, 0xea, - 0x70, 0xd2, 0x02, 0x40, 0xe1, 0x2c, 0x1d, 0x80, 0x75, 0xe2, 0x2e, 0x1d, - 0x80, 0x6a, 0xe3, 0xf2, 0xa7, 0x00, 0xe4, 0x30, 0x1d, 0x00, 0xe5, 0x31, - 0x1d, 0x00, 0xe6, 0xf3, 0xa7, 0x00, 0xe7, 0x33, 0x1d, 0x00, 0xe8, 0x34, - 0x1d, 0x80, 0x4b, 0xe9, 0x35, 0x1d, 0x00, 0xea, 0x36, 0x1d, 0x00, 0xeb, - 0x37, 0x1d, 0x00, 0xec, 0x38, 0x1d, 0x00, 0xed, 0x39, 0x1d, 0x00, 0xee, - 0x3a, 0x1d, 0x00, 0xef, 0x3c, 0x1d, 0x80, 0x2a, 0xf0, 0x3e, 0x1d, 0x00, - 0xf1, 0xf4, 0xa7, 0x00, 0xf2, 0x3f, 0x1d, 0x80, 0x10, 0xf4, 0x40, 0x1d, - 0x00, 0xf5, 0x41, 0x1d, 0x00, 0xf6, 0x7d, 0x2c, 0x00, 0xf7, 0x42, 0x1d, - 0x40, 0x08, 0x8f, 0x14, 0x01, 0xff, 0xe5, 0x32, 0x1d, 0x00, 0xee, 0x3b, - 0x1d, 0x40, 0xf5, 0x3d, 0x1d, 0x40, 0x4c, 0x39, 0x28, 0xf8, 0xa7, 0x40, - 0x47, 0x3d, 0xcc, 0x2f, 0x1d, 0x40, 0xe5, 0x2d, 0x1d, 0x40, 0x05, 0xb9, - 0x3e, 0x06, 0x4d, 0x74, 0x82, 0xb5, 0x07, 0x41, 0x49, 0xeb, 0x41, 0xf9, - 0x02, 0x00, 0x48, 0xc3, 0xb2, 0xfb, 0x02, 0x40, 0x4b, 0x3e, 0x8a, 0xca, - 0x02, 0x00, 0x4d, 0xb9, 0x83, 0xb8, 0x07, 0x01, 0x49, 0x92, 0x35, 0xbc, - 0x02, 0x40, 0x51, 0x93, 0x56, 0x43, 0x16, 0x01, 0xa4, 0x89, 0x03, 0x07, - 0xc1, 0x05, 0x6d, 0x05, 0x2f, 0x03, 0x44, 0x0b, 0xd1, 0x75, 0x01, 0xff, - 0xa1, 0x31, 0xe5, 0x39, 0x16, 0x01, 0xe9, 0x31, 0x16, 0x81, 0x24, 0xef, - 0x3b, 0x16, 0x01, 0xf5, 0x33, 0x16, 0x81, 0x17, 0x08, 0x9b, 0xbe, 0x01, - 0xff, 0xec, 0x37, 0x16, 0x81, 0x09, 0xf2, 0x35, 0x16, 0xc1, 0x00, 0xf2, - 0x36, 0x16, 0x41, 0xec, 0x38, 0x16, 0x41, 0xf5, 0x34, 0x16, 0x41, 0xe9, - 0x32, 0x16, 0x41, 0xe1, 0x30, 0x16, 0x01, 0xe9, 0x3a, 0x16, 0x01, 0xf5, - 0x3c, 0x16, 0x41, 0xa1, 0x17, 0x44, 0x26, 0xed, 0x44, 0x16, 0x01, 0x02, - 0x02, 0x00, 0x01, 0xff, 0x44, 0x5d, 0x23, 0x3f, 0x16, 0x01, 0x45, 0xa3, - 0x4a, 0x3e, 0x16, 0x41, 0x47, 0xd1, 0x15, 0x3d, 0x16, 0x01, 0x4a, 0xab, - 0xad, 0x40, 0x16, 0x41, 0xe1, 0x00, 0x16, 0x81, 0x86, 0x02, 0xa2, 0xf9, - 0x01, 0xa3, 0xec, 0x01, 0xa4, 0xd3, 0x01, 0xe5, 0x0a, 0x16, 0x01, 0xa7, - 0xc2, 0x01, 0x42, 0x22, 0x00, 0x2e, 0x16, 0x01, 0xe9, 0x02, 0x16, 0x81, - 0xb2, 0x01, 0xaa, 0xa5, 0x01, 0xab, 0x98, 0x01, 0xac, 0x8b, 0x01, 0x42, - 0x6c, 0x00, 0x26, 0x16, 0x01, 0xae, 0x6d, 0xef, 0x0c, 0x16, 0x01, 0xb0, - 0x5d, 0x42, 0x71, 0x00, 0x28, 0x16, 0x01, 0xb3, 0x45, 0xb4, 0x2c, 0xf5, - 0x04, 0x16, 0x81, 0x23, 0xb6, 0x06, 0x42, 0x34, 0x22, 0x27, 0x16, 0x41, - 0xe1, 0x2a, 0x16, 0x01, 0x07, 0x9c, 0xbe, 0x01, 0xff, 0xec, 0x08, 0x16, - 0x81, 0x09, 0xf2, 0x06, 0x16, 0xc1, 0x00, 0xf2, 0x07, 0x16, 0x41, 0xec, - 0x09, 0x16, 0x41, 0xf5, 0x05, 0x16, 0x41, 0xe1, 0x1d, 0x16, 0x01, 0x42, - 0x22, 0x00, 0x1e, 0x16, 0x01, 0xb4, 0x01, 0xff, 0xe1, 0x18, 0x16, 0x01, - 0x42, 0x22, 0x00, 0x19, 0x16, 0x41, 0xe1, 0x2d, 0x16, 0x01, 0x42, 0x22, - 0x00, 0x2b, 0x16, 0x01, 0x42, 0x15, 0x06, 0x2c, 0x16, 0x41, 0xe1, 0x22, - 0x16, 0x01, 0x42, 0x22, 0x00, 0x23, 0x16, 0x41, 0xe1, 0x21, 0x16, 0x01, - 0x42, 0x24, 0x02, 0x12, 0x16, 0x01, 0x42, 0xff, 0x04, 0x1c, 0x16, 0x01, - 0x42, 0x34, 0x22, 0x17, 0x16, 0x41, 0xe1, 0x29, 0x16, 0x01, 0x42, 0x74, - 0x00, 0x2f, 0x16, 0x41, 0xe1, 0x0e, 0x16, 0x01, 0x42, 0x22, 0x00, 0x0f, - 0x16, 0x41, 0xe1, 0x15, 0x16, 0x01, 0x42, 0x22, 0x00, 0x16, 0x16, 0x41, - 0xe9, 0x03, 0x16, 0x41, 0xe1, 0x10, 0x16, 0x01, 0x42, 0x22, 0x00, 0x11, - 0x16, 0x41, 0xe1, 0x1f, 0x16, 0x01, 0xa4, 0x06, 0x42, 0x22, 0x00, 0x20, - 0x16, 0x41, 0xe1, 0x1a, 0x16, 0x01, 0x42, 0x22, 0x00, 0x1b, 0x16, 0x41, - 0xe1, 0x13, 0x16, 0x01, 0x42, 0x22, 0x00, 0x14, 0x16, 0x41, 0xe1, 0x24, - 0x16, 0x01, 0x42, 0x22, 0x00, 0x25, 0x16, 0x41, 0xe1, 0x01, 0x16, 0x01, - 0xe9, 0x0b, 0x16, 0x01, 0xf5, 0x0d, 0x16, 0x41, 0x44, 0xd1, 0x1f, 0x41, - 0x16, 0x01, 0x05, 0xc5, 0x06, 0x06, 0x4b, 0xd8, 0x9e, 0x42, 0x16, 0x41, - 0x45, 0xc3, 0x0a, 0x58, 0x16, 0x01, 0xa6, 0x2e, 0x44, 0x46, 0x2a, 0x59, - 0x16, 0x01, 0x43, 0xbf, 0x0a, 0x51, 0x16, 0x01, 0xb3, 0x14, 0xb4, 0x06, - 0x44, 0xa1, 0x1d, 0x50, 0x16, 0x41, 0x44, 0x25, 0x01, 0x53, 0x16, 0x01, - 0x42, 0x15, 0x02, 0x52, 0x16, 0x41, 0x44, 0x27, 0x1d, 0x57, 0x16, 0x01, - 0x42, 0x60, 0x25, 0x56, 0x16, 0x41, 0x43, 0xa7, 0x05, 0x55, 0x16, 0x01, - 0x43, 0xcb, 0x06, 0x54, 0x16, 0x41, 0x42, 0xf0, 0x07, 0xa7, 0x22, 0x00, - 0x4d, 0x43, 0x86, 0x3b, 0xf9, 0x41, 0x80, 0x01, 0xff, 0x43, 0xa6, 0x7e, - 0xf4, 0xf4, 0x01, 0x5d, 0x75, 0x16, 0xf2, 0xf4, 0x41, 0x03, 0x95, 0x79, - 0xe2, 0x01, 0x02, 0x4a, 0x06, 0xb4, 0x01, 0xa4, 0x84, 0x01, 0xac, 0x66, - 0xae, 0x0d, 0x44, 0x93, 0x51, 0x9e, 0xfa, 0xc1, 0x00, 0x45, 0x45, 0x1c, - 0xa9, 0xfa, 0x41, 0xa9, 0x43, 0x02, 0xc4, 0x02, 0x04, 0xf9, 0xff, 0x29, - 0x40, 0x80, 0x06, 0x4d, 0xb2, 0x7e, 0x13, 0x22, 0x40, 0x44, 0x2f, 0x03, - 0x12, 0x22, 0x80, 0x06, 0x45, 0xad, 0x22, 0x42, 0x22, 0x40, 0x80, 0x01, - 0xff, 0x4b, 0x29, 0x1e, 0x3a, 0x2a, 0x00, 0x05, 0x51, 0x00, 0x01, 0xff, - 0x4b, 0x70, 0x5d, 0x29, 0x2a, 0x00, 0x49, 0x50, 0x12, 0x2a, 0x2a, 0x00, - 0x4c, 0x19, 0x8d, 0x2b, 0x2a, 0x00, 0x4b, 0xf6, 0x9f, 0x2c, 0x2a, 0x40, - 0x43, 0xf5, 0x26, 0x90, 0xf6, 0x01, 0x44, 0xc0, 0x62, 0xbd, 0xf4, 0x01, - 0x44, 0x58, 0xde, 0xd5, 0xf5, 0x41, 0x06, 0xe7, 0x5a, 0x0c, 0x46, 0x8a, - 0xda, 0x0c, 0xf3, 0x01, 0x46, 0xee, 0x4a, 0xa5, 0x20, 0x40, 0x46, 0x6c, - 0xc0, 0x96, 0xfa, 0x01, 0x45, 0xaa, 0x6f, 0x96, 0xf3, 0x41, 0x04, 0x80, - 0x02, 0x06, 0x58, 0x35, 0x29, 0xef, 0x22, 0x40, 0x43, 0xd4, 0x09, 0xb7, - 0x00, 0x00, 0x56, 0x67, 0x34, 0xe6, 0xfb, 0x01, 0x57, 0xf6, 0x2f, 0xe7, - 0xfb, 0x01, 0x06, 0x6e, 0x87, 0x01, 0xff, 0x48, 0x6a, 0xc4, 0x0c, 0xcc, - 0x01, 0x5a, 0x00, 0x22, 0xc2, 0xfb, 0x41, 0x80, 0x1b, 0xaf, 0x01, 0xff, - 0x45, 0x2e, 0x03, 0xb5, 0x00, 0x00, 0x42, 0x8c, 0x05, 0xa0, 0xf9, 0x01, - 0x45, 0x4a, 0x3c, 0xa4, 0xf3, 0x01, 0x45, 0xd5, 0xc8, 0x2c, 0xf5, 0x41, - 0x4b, 0xb3, 0x98, 0x49, 0x24, 0x00, 0x4c, 0x75, 0x91, 0x48, 0x24, 0x40, - 0x07, 0xc1, 0x05, 0xbc, 0x02, 0x05, 0x2f, 0x03, 0x9a, 0x02, 0x05, 0x83, - 0x2c, 0xfd, 0x01, 0x0b, 0xd1, 0x75, 0x01, 0xff, 0xe1, 0x54, 0x6f, 0x81, - 0xce, 0x01, 0xe5, 0x5d, 0x6f, 0x81, 0xae, 0x01, 0xe9, 0x61, 0x6f, 0x81, - 0x7a, 0xee, 0x7d, 0x6f, 0x81, 0x71, 0xef, 0x59, 0x6f, 0x81, 0x56, 0x4a, - 0x4b, 0xae, 0x78, 0x6f, 0x81, 0x4b, 0xf5, 0x6a, 0x6f, 0x81, 0x1e, 0x42, - 0xd4, 0xf1, 0x83, 0x6f, 0x01, 0xf7, 0x5c, 0x6f, 0x81, 0x0f, 0xf9, 0x71, - 0x6f, 0xc1, 0x00, 0xe9, 0x72, 0x6f, 0x01, 0x42, 0x3e, 0x00, 0x80, 0x6f, - 0x41, 0xef, 0x5b, 0x6f, 0x41, 0xe1, 0x6b, 0x6f, 0x81, 0x1a, 0x42, 0xc3, - 0x0a, 0x6f, 0x6f, 0x01, 0xe9, 0x87, 0x6f, 0x01, 0x42, 0x1d, 0x01, 0x70, - 0x6f, 0x01, 0x42, 0x55, 0x18, 0x7f, 0x6f, 0x01, 0xf5, 0x6e, 0x6f, 0x41, - 0xee, 0x6c, 0x6f, 0xc1, 0x00, 0xe7, 0x6d, 0x6f, 0x41, 0xf2, 0x76, 0x6f, - 0x41, 0xa5, 0x0c, 0xe7, 0x81, 0x6f, 0x01, 0xef, 0x5a, 0x6f, 0x01, 0xf5, - 0x7c, 0x6f, 0x41, 0xf2, 0x82, 0x6f, 0x01, 0xf9, 0x60, 0x6f, 0x41, 0xe7, - 0x7e, 0x6f, 0x41, 0xe1, 0x62, 0x6f, 0x81, 0x21, 0xe5, 0x66, 0x6f, 0x01, - 0xe7, 0x84, 0x6f, 0x01, 0xe9, 0x67, 0x6f, 0x01, 0x42, 0x1d, 0x01, 0x69, - 0x6f, 0x01, 0xef, 0x65, 0x6f, 0x81, 0x04, 0xf5, 0x68, 0x6f, 0x41, 0x42, - 0x1d, 0x01, 0x86, 0x6f, 0x41, 0xee, 0x63, 0x6f, 0xc1, 0x00, 0xe7, 0x64, - 0x6f, 0x41, 0xe1, 0x85, 0x6f, 0x01, 0xe9, 0x7a, 0x6f, 0x01, 0xee, 0x5e, - 0x6f, 0x81, 0x09, 0xf2, 0x77, 0x6f, 0xc1, 0x00, 0xf2, 0x75, 0x6f, 0x41, - 0xe7, 0x5f, 0x6f, 0x41, 0xe1, 0x55, 0x6f, 0x01, 0xe5, 0x73, 0x6f, 0x81, - 0x17, 0x42, 0x93, 0x48, 0x56, 0x6f, 0x01, 0xe9, 0x79, 0x6f, 0x01, 0xee, - 0x57, 0x6f, 0x81, 0x04, 0xf5, 0x7b, 0x6f, 0x41, 0xe7, 0x58, 0x6f, 0x41, - 0xe5, 0x74, 0x6f, 0x41, 0x45, 0x5c, 0x00, 0x91, 0x6f, 0x01, 0x45, 0xf5, - 0x06, 0x92, 0x6f, 0x01, 0x45, 0xc8, 0x00, 0x8f, 0x6f, 0x01, 0x49, 0x52, - 0x72, 0x90, 0x6f, 0x41, 0x4a, 0xa9, 0xa5, 0x51, 0x6f, 0x01, 0x56, 0x57, - 0x32, 0x4f, 0x6f, 0x01, 0x09, 0x37, 0xbc, 0x01, 0xff, 0x4a, 0xa9, 0xa5, - 0x53, 0x6f, 0x01, 0x47, 0x86, 0xd4, 0x52, 0x6f, 0x41, 0xa1, 0x82, 0x04, - 0xa2, 0xf5, 0x03, 0xa4, 0xc1, 0x03, 0x42, 0xe1, 0x07, 0x07, 0x6f, 0x01, - 0xa7, 0xa7, 0x03, 0xa8, 0x9a, 0x03, 0x42, 0x1b, 0x02, 0x1e, 0x6f, 0x01, - 0xac, 0xfb, 0x02, 0xad, 0xee, 0x02, 0xae, 0xb5, 0x02, 0xb0, 0xa8, 0x02, - 0xb1, 0x9b, 0x02, 0xb2, 0xec, 0x01, 0xb3, 0xd3, 0x01, 0xb4, 0x7f, 0xb6, - 0x73, 0x42, 0xa9, 0x01, 0x42, 0x6f, 0x01, 0x42, 0x4c, 0x26, 0x27, 0x6f, - 0x01, 0x03, 0xc3, 0x78, 0x32, 0xba, 0x01, 0xff, 0xe1, 0x3b, 0x6f, 0x01, - 0x42, 0x22, 0x00, 0x35, 0x6f, 0x01, 0xb3, 0x19, 0xba, 0x01, 0xff, 0xe1, - 0x3d, 0x6f, 0x01, 0xb3, 0x06, 0x42, 0x34, 0x22, 0x40, 0x6f, 0x41, 0xe1, - 0x3e, 0x6f, 0x01, 0x42, 0x34, 0x22, 0x41, 0x6f, 0x41, 0xe1, 0x3c, 0x6f, - 0x01, 0x42, 0x22, 0x00, 0x36, 0x6f, 0x41, 0x44, 0x5a, 0xec, 0x31, 0x6f, - 0x01, 0x42, 0x1b, 0x02, 0x20, 0x6f, 0x01, 0x43, 0xcc, 0x44, 0x12, 0x6f, - 0x01, 0x42, 0x6c, 0x09, 0x02, 0x6f, 0x01, 0xb4, 0x01, 0xff, 0xe1, 0x0d, - 0x6f, 0x01, 0xb3, 0x06, 0x42, 0x12, 0x00, 0x0c, 0x6f, 0x41, 0xe1, 0x39, - 0x6f, 0x01, 0x42, 0x22, 0x00, 0x30, 0x6f, 0x41, 0xe1, 0x08, 0x6f, 0x01, - 0x42, 0xe1, 0x07, 0x09, 0x6f, 0x41, 0xe1, 0x0a, 0x6f, 0x01, 0xe5, 0x48, - 0x6f, 0x01, 0x02, 0xf1, 0x33, 0x3c, 0x04, 0x5e, 0x1f, 0x1c, 0xb3, 0x06, - 0x42, 0x12, 0x00, 0x0e, 0x6f, 0x41, 0xe1, 0x37, 0x6f, 0x01, 0xe5, 0x49, - 0x6f, 0x01, 0x42, 0x22, 0x00, 0x2e, 0x6f, 0x01, 0x42, 0x15, 0x06, 0x2a, - 0x6f, 0x41, 0xd2, 0x93, 0x6f, 0x01, 0xd3, 0x94, 0x6f, 0x01, 0xd4, 0x95, - 0x6f, 0x01, 0xd5, 0x96, 0x6f, 0x01, 0xd6, 0x97, 0x6f, 0x01, 0xd7, 0x98, - 0x6f, 0x01, 0xd8, 0x99, 0x6f, 0x41, 0xe1, 0x1a, 0x6f, 0x01, 0x42, 0x34, - 0x22, 0x1c, 0x6f, 0x41, 0xe1, 0x3a, 0x6f, 0x01, 0x42, 0x22, 0x00, 0x33, - 0x6f, 0x01, 0x42, 0x15, 0x06, 0x34, 0x6f, 0x01, 0x42, 0xf7, 0x19, 0x46, - 0x6f, 0x41, 0x09, 0xe3, 0xb5, 0x06, 0x42, 0x77, 0x00, 0x4a, 0x6f, 0x41, - 0x04, 0x5e, 0x1f, 0x06, 0x43, 0xa4, 0x02, 0x32, 0x6f, 0x41, 0xd1, 0x9a, - 0x6f, 0x01, 0xd2, 0x9b, 0x6f, 0x01, 0xd4, 0x9c, 0x6f, 0x01, 0xd5, 0x9d, - 0x6f, 0x01, 0xd6, 0x9e, 0x6f, 0x01, 0xd8, 0x9f, 0x6f, 0x41, 0xe1, 0x21, - 0x6f, 0x01, 0x42, 0x24, 0x02, 0x22, 0x6f, 0x41, 0xe1, 0x00, 0x6f, 0x01, - 0x42, 0x74, 0x00, 0x03, 0x6f, 0x41, 0xe1, 0x10, 0x6f, 0x81, 0x2b, 0xa7, - 0x1f, 0x42, 0x22, 0x00, 0x11, 0x6f, 0x01, 0xae, 0x0d, 0xb9, 0x01, 0xff, - 0xe1, 0x2c, 0x6f, 0x01, 0x42, 0x22, 0x00, 0x2d, 0x6f, 0x41, 0xe1, 0x14, - 0x6f, 0x01, 0x42, 0x22, 0x00, 0x15, 0x6f, 0x41, 0xe1, 0x23, 0x6f, 0x01, - 0x42, 0x22, 0x00, 0x24, 0x6f, 0x41, 0x4a, 0xf7, 0x5a, 0x50, 0x6f, 0x41, - 0xe1, 0x04, 0x6f, 0x01, 0x42, 0x22, 0x00, 0x05, 0x6f, 0x41, 0xe1, 0x16, - 0x6f, 0x01, 0xa8, 0x06, 0x42, 0x34, 0x22, 0x17, 0x6f, 0x41, 0xe1, 0x18, - 0x6f, 0x01, 0x42, 0x34, 0x22, 0x19, 0x6f, 0x41, 0xe1, 0x26, 0x6f, 0x01, - 0x42, 0x22, 0x00, 0x44, 0x6f, 0x41, 0xe1, 0x1f, 0x6f, 0x01, 0xa8, 0x01, - 0xff, 0xe1, 0x28, 0x6f, 0x01, 0x42, 0x22, 0x00, 0x29, 0x6f, 0x41, 0xe1, - 0x0b, 0x6f, 0x01, 0x42, 0xa1, 0x10, 0x0f, 0x6f, 0x01, 0x02, 0xf1, 0x33, - 0x19, 0xba, 0x01, 0xff, 0xe1, 0x38, 0x6f, 0x01, 0x42, 0x22, 0x00, 0x2f, - 0x6f, 0x01, 0x42, 0xf7, 0x19, 0x47, 0x6f, 0x01, 0x42, 0x59, 0x00, 0x2b, - 0x6f, 0x41, 0xe1, 0x1b, 0x6f, 0x01, 0x42, 0x34, 0x22, 0x1d, 0x6f, 0x41, - 0xe1, 0x01, 0x6f, 0x01, 0x42, 0x0d, 0x00, 0x45, 0x6f, 0x41, 0xe8, 0x43, - 0x6f, 0x01, 0x07, 0x28, 0x7f, 0x01, 0xff, 0x42, 0x6c, 0x00, 0x06, 0x6f, - 0x01, 0xae, 0x06, 0x43, 0xf5, 0x97, 0x3f, 0x6f, 0x41, 0xe1, 0x13, 0x6f, - 0x01, 0x42, 0x24, 0x02, 0x25, 0x6f, 0x41, 0xa1, 0xbb, 0x1c, 0x09, 0xd5, - 0xb4, 0xaa, 0x1c, 0xa4, 0xc4, 0x16, 0x0b, 0xdc, 0x99, 0xad, 0x12, 0xac, - 0x9e, 0x12, 0x42, 0x98, 0x07, 0xdd, 0xf4, 0x01, 0xae, 0xa1, 0x07, 0xb2, - 0x55, 0x4d, 0x20, 0x87, 0x95, 0x00, 0x00, 0x02, 0x19, 0x01, 0x01, 0xff, - 0x05, 0x36, 0x00, 0x04, 0xef, 0x87, 0xf6, 0x41, 0x45, 0xcb, 0x22, 0xd1, - 0x23, 0x00, 0x0a, 0xf9, 0xaa, 0x2c, 0x49, 0x95, 0xbb, 0xd9, 0x23, 0x00, - 0x4f, 0x80, 0x71, 0xd3, 0x23, 0x00, 0xb4, 0x01, 0xff, 0x48, 0x62, 0xc3, - 0xd8, 0x23, 0x00, 0x46, 0x94, 0xdc, 0xd7, 0x23, 0x00, 0x0a, 0x61, 0xb1, - 0x01, 0xff, 0x46, 0x4e, 0x0a, 0xd6, 0x23, 0x00, 0x49, 0x86, 0x71, 0xd5, - 0x23, 0x40, 0x45, 0x61, 0x36, 0xd2, 0x23, 0x00, 0x4a, 0xf9, 0xaf, 0xd4, - 0x23, 0x40, 0x44, 0x7c, 0x61, 0x3f, 0x26, 0x00, 0x06, 0xc8, 0xdb, 0x06, - 0x46, 0x7c, 0x1c, 0xdc, 0xf9, 0x41, 0x08, 0x5a, 0xc2, 0xc2, 0x01, 0x0d, - 0x19, 0x82, 0x01, 0xff, 0x07, 0xc1, 0x05, 0x0d, 0x4b, 0xdd, 0xa0, 0x9e, - 0x09, 0xc1, 0x00, 0x42, 0x34, 0xf0, 0x9f, 0x09, 0x41, 0xe1, 0x80, 0x09, - 0x01, 0x42, 0x16, 0x00, 0x86, 0x09, 0x81, 0x9a, 0x01, 0x42, 0xa1, 0x10, - 0x9d, 0x09, 0x01, 0xe5, 0x81, 0x09, 0x01, 0x43, 0xcb, 0x50, 0x92, 0x09, - 0x01, 0xe9, 0x82, 0x09, 0x01, 0xab, 0x7a, 0x42, 0x74, 0x00, 0x90, 0x09, - 0x01, 0x42, 0x6c, 0x00, 0x89, 0x09, 0x01, 0xae, 0x56, 0xef, 0x83, 0x09, - 0x01, 0x42, 0x6c, 0x09, 0x88, 0x09, 0x01, 0x42, 0xf4, 0x13, 0x97, 0x09, - 0x01, 0x42, 0x71, 0x00, 0x8e, 0x09, 0x81, 0x39, 0xb3, 0x28, 0xb4, 0x0c, - 0x42, 0xa9, 0x01, 0x85, 0x09, 0x01, 0x42, 0x34, 0x22, 0x84, 0x09, 0x41, - 0xe1, 0x98, 0x09, 0x81, 0x0f, 0xe5, 0x9a, 0x09, 0x81, 0x04, 0xef, 0x9c, - 0x09, 0x41, 0x42, 0x34, 0xf0, 0x9b, 0x09, 0x41, 0x42, 0x34, 0xf0, 0x99, - 0x09, 0x41, 0xe1, 0x93, 0x09, 0x81, 0x04, 0xe5, 0x95, 0x09, 0x41, 0x42, - 0x34, 0xf0, 0x94, 0x09, 0x41, 0x42, 0x34, 0xf0, 0x8f, 0x09, 0x41, 0xe1, - 0x8a, 0x09, 0x81, 0x0b, 0xe5, 0x8c, 0x09, 0xc1, 0x00, 0x42, 0x34, 0xf0, - 0x8d, 0x09, 0x41, 0x42, 0x34, 0xf0, 0x8b, 0x09, 0x41, 0xe1, 0x96, 0x09, - 0x01, 0x42, 0x22, 0x00, 0x91, 0x09, 0x41, 0x42, 0x34, 0xf0, 0x87, 0x09, - 0x41, 0x09, 0xb3, 0x58, 0x99, 0x04, 0xac, 0x80, 0x03, 0x07, 0x2f, 0x39, - 0x01, 0xff, 0x45, 0xc3, 0x0a, 0xc7, 0x09, 0x81, 0xd8, 0x02, 0xa6, 0xfc, - 0x01, 0x44, 0x46, 0x2a, 0xc8, 0x09, 0x81, 0xd9, 0x01, 0x43, 0xbf, 0x0a, - 0xc0, 0x09, 0x81, 0xbb, 0x01, 0xb3, 0x67, 0xb4, 0x01, 0xff, 0x42, 0x92, - 0x01, 0xc9, 0x09, 0x81, 0x57, 0xa8, 0x2b, 0xb7, 0x01, 0xff, 0x44, 0x29, - 0x1d, 0xca, 0x09, 0x81, 0x1b, 0xef, 0xc1, 0x09, 0xc1, 0x00, 0x80, 0x01, - 0xff, 0x47, 0x22, 0x11, 0xd3, 0x09, 0x81, 0x06, 0x48, 0xd5, 0x5c, 0xdc, - 0x09, 0x41, 0x49, 0xd4, 0x5c, 0xee, 0x09, 0x41, 0x49, 0xd4, 0x5c, 0xe5, - 0x09, 0x41, 0x44, 0x2c, 0x11, 0xcb, 0x09, 0x81, 0x1d, 0x43, 0x26, 0x01, - 0xc2, 0x09, 0xc1, 0x00, 0x80, 0x01, 0xff, 0x47, 0x22, 0x11, 0xd4, 0x09, - 0x81, 0x06, 0x48, 0xd5, 0x5c, 0xdd, 0x09, 0x41, 0x49, 0xd4, 0x5c, 0xef, - 0x09, 0x41, 0x49, 0xd4, 0x5c, 0xe6, 0x09, 0x41, 0x49, 0xd4, 0x5c, 0xe4, - 0x09, 0x41, 0x44, 0x27, 0x1d, 0xc6, 0x09, 0x81, 0x29, 0x42, 0x60, 0x25, - 0xc5, 0x09, 0xc1, 0x00, 0x80, 0x0d, 0x42, 0x2e, 0x11, 0xce, 0x09, 0xc1, - 0x00, 0x49, 0xd4, 0x5c, 0xe9, 0x09, 0x41, 0x47, 0x22, 0x11, 0xd7, 0x09, - 0x81, 0x06, 0x48, 0xd5, 0x5c, 0xe0, 0x09, 0x41, 0x49, 0xd4, 0x5c, 0xf2, - 0x09, 0x41, 0x80, 0x0d, 0x42, 0x2e, 0x11, 0xcf, 0x09, 0xc1, 0x00, 0x49, - 0xd4, 0x5c, 0xea, 0x09, 0x41, 0x47, 0x22, 0x11, 0xd8, 0x09, 0x81, 0x06, - 0x48, 0xd5, 0x5c, 0xe1, 0x09, 0x41, 0x49, 0xd4, 0x5c, 0xf3, 0x09, 0x41, - 0x80, 0x01, 0xff, 0x47, 0x22, 0x11, 0xd2, 0x09, 0x81, 0x06, 0x48, 0xd5, - 0x5c, 0xdb, 0x09, 0x41, 0x49, 0xd4, 0x5c, 0xed, 0x09, 0x41, 0x80, 0x06, - 0x4b, 0xc4, 0xa1, 0xec, 0x09, 0x41, 0x47, 0x22, 0x11, 0xda, 0x09, 0x81, - 0x06, 0x48, 0xd5, 0x5c, 0xe3, 0x09, 0x41, 0x49, 0xd4, 0x5c, 0xf5, 0x09, - 0x41, 0xa9, 0x2d, 0xaf, 0x01, 0xff, 0x43, 0x2d, 0x11, 0xcc, 0x09, 0x81, - 0x1d, 0x42, 0x42, 0x00, 0xc3, 0x09, 0xc1, 0x00, 0x80, 0x01, 0xff, 0x47, - 0x22, 0x11, 0xd5, 0x09, 0x81, 0x06, 0x48, 0xd5, 0x5c, 0xde, 0x09, 0x41, - 0x49, 0xd4, 0x5c, 0xf0, 0x09, 0x41, 0x49, 0xd4, 0x5c, 0xe7, 0x09, 0x41, - 0x43, 0x09, 0x4c, 0xcd, 0x09, 0x81, 0x1d, 0x42, 0x32, 0x00, 0xc4, 0x09, - 0xc1, 0x00, 0x80, 0x01, 0xff, 0x47, 0x22, 0x11, 0xd6, 0x09, 0x81, 0x06, - 0x48, 0xd5, 0x5c, 0xdf, 0x09, 0x41, 0x49, 0xd4, 0x5c, 0xf1, 0x09, 0x41, - 0x49, 0xd4, 0x5c, 0xe8, 0x09, 0x41, 0x80, 0x06, 0x4a, 0xc5, 0xa1, 0xeb, - 0x09, 0x41, 0x47, 0x22, 0x11, 0xd9, 0x09, 0x81, 0x06, 0x48, 0xd5, 0x5c, - 0xe2, 0x09, 0x41, 0x49, 0xd4, 0x5c, 0xf4, 0x09, 0x41, 0x06, 0xc2, 0x05, - 0x11, 0x08, 0xbf, 0x3e, 0x01, 0xff, 0x43, 0x05, 0xf1, 0xbf, 0x09, 0x01, - 0x43, 0xbe, 0x5c, 0xbe, 0x09, 0x41, 0xe1, 0xa0, 0x09, 0x81, 0x76, 0x42, - 0x16, 0x00, 0xa6, 0x09, 0x01, 0x42, 0xa1, 0x10, 0xb7, 0x09, 0x01, 0xe5, - 0xa1, 0x09, 0x01, 0x43, 0xcb, 0x50, 0xae, 0x09, 0x01, 0xe9, 0xa2, 0x09, - 0x01, 0xab, 0x50, 0x42, 0x74, 0x00, 0xac, 0x09, 0x01, 0x42, 0x6c, 0x00, - 0xa8, 0x09, 0x01, 0xae, 0x3a, 0xef, 0xa3, 0x09, 0x01, 0x42, 0x6c, 0x09, - 0xa7, 0x09, 0x01, 0x42, 0xf4, 0x13, 0xb3, 0x09, 0x01, 0x42, 0x71, 0x00, - 0xab, 0x09, 0x01, 0xb3, 0x1a, 0xb4, 0x0c, 0x42, 0xa9, 0x01, 0xa5, 0x09, - 0x01, 0x42, 0x34, 0x22, 0xa4, 0x09, 0x41, 0xe1, 0xb4, 0x09, 0x01, 0xe5, - 0xb5, 0x09, 0x01, 0xef, 0xb6, 0x09, 0x41, 0xe1, 0xaf, 0x09, 0x01, 0xe5, - 0xb1, 0x09, 0x41, 0xe1, 0xa9, 0x09, 0x01, 0xe5, 0xaa, 0x09, 0x41, 0xe1, - 0xb2, 0x09, 0x01, 0x42, 0x22, 0x00, 0xad, 0x09, 0x41, 0x49, 0x71, 0x92, - 0xb0, 0x09, 0x41, 0xa5, 0x47, 0xa6, 0x39, 0x4d, 0xa3, 0x84, 0xfe, 0x09, - 0x01, 0x04, 0xbf, 0x0a, 0x23, 0xb3, 0x15, 0xb4, 0x01, 0xff, 0x4b, 0x1d, - 0x78, 0xff, 0x09, 0x01, 0x4d, 0x33, 0x82, 0xf8, 0x09, 0x01, 0x4b, 0xf8, - 0xa2, 0xf7, 0x09, 0x41, 0x4d, 0x1b, 0x78, 0xfc, 0x09, 0x01, 0x4b, 0xaa, - 0x9b, 0xfb, 0x09, 0x41, 0x44, 0x22, 0x00, 0xbd, 0x09, 0x01, 0x47, 0x20, - 0x78, 0xf6, 0x09, 0x41, 0x4c, 0xc9, 0x8e, 0xfa, 0x09, 0x01, 0x4c, 0xe1, - 0x91, 0xf9, 0x09, 0x41, 0x4d, 0x67, 0x82, 0xfd, 0x09, 0x01, 0x4e, 0x1a, - 0x78, 0xbc, 0x09, 0x41, 0x0b, 0xbe, 0x98, 0x0c, 0x57, 0xe2, 0x2e, 0x4e, - 0xf5, 0x01, 0x48, 0x2e, 0x4a, 0xb9, 0xf6, 0x41, 0x11, 0xd6, 0x57, 0xad, - 0x0a, 0x06, 0xc4, 0x06, 0xeb, 0x09, 0x0a, 0x31, 0xaf, 0x01, 0xff, 0x90, - 0xf5, 0x04, 0x91, 0x01, 0xff, 0x90, 0xb3, 0x04, 0x91, 0xf4, 0x03, 0x92, - 0xb5, 0x03, 0x93, 0xf6, 0x02, 0x94, 0xb7, 0x02, 0x95, 0xf8, 0x01, 0x96, - 0xb9, 0x01, 0x97, 0x71, 0x98, 0x33, 0x99, 0x01, 0xff, 0x45, 0x03, 0xdf, - 0x86, 0xe8, 0x01, 0x46, 0xbc, 0xd5, 0xb1, 0xe8, 0x01, 0x45, 0x80, 0xdf, - 0xb6, 0xe8, 0x01, 0x45, 0xa8, 0xdf, 0x75, 0xe8, 0x01, 0x45, 0x02, 0xe0, - 0x0f, 0xe8, 0x01, 0x44, 0xa2, 0xea, 0x2c, 0xe8, 0x01, 0x45, 0x2f, 0xe0, - 0x35, 0xe8, 0x01, 0x45, 0x48, 0xe0, 0x61, 0xe8, 0x41, 0x45, 0xf4, 0xde, - 0x42, 0xe8, 0x01, 0x44, 0xd6, 0xe9, 0x43, 0xe8, 0x01, 0x44, 0x36, 0xea, - 0xb9, 0xe8, 0x01, 0x4b, 0x8d, 0x96, 0x82, 0xe8, 0x01, 0x46, 0xfe, 0xd5, - 0x89, 0xe8, 0x01, 0x44, 0xde, 0xea, 0xba, 0xe8, 0x01, 0x44, 0x22, 0xd6, - 0x6a, 0xe8, 0x01, 0x46, 0x46, 0xd6, 0x9b, 0xe8, 0x01, 0x46, 0x5e, 0xd6, - 0x97, 0xe8, 0x01, 0x46, 0x70, 0xd6, 0x1a, 0xe8, 0x41, 0x46, 0x9e, 0xd5, - 0xc2, 0xe8, 0x01, 0x44, 0xfa, 0xe9, 0xad, 0xe8, 0x01, 0x45, 0x71, 0xdf, - 0x99, 0xe8, 0x81, 0x2f, 0x45, 0xb7, 0xdf, 0xbc, 0xe8, 0x01, 0x45, 0xe4, - 0xdf, 0x9a, 0xe8, 0x81, 0x1e, 0x49, 0x1c, 0xb3, 0x52, 0xe8, 0x01, 0x44, - 0xfa, 0xea, 0x68, 0xe8, 0x01, 0x47, 0x9c, 0xcb, 0x8b, 0xe8, 0x01, 0x44, - 0x5a, 0xeb, 0x2d, 0xe8, 0x01, 0x45, 0xa7, 0xe0, 0x07, 0xe8, 0x41, 0xef, - 0x9a, 0xe8, 0x41, 0xef, 0x99, 0xe8, 0x41, 0x45, 0x12, 0xdf, 0x50, 0xe8, - 0x01, 0x4a, 0x87, 0xa4, 0x9c, 0xe8, 0x01, 0x45, 0x8f, 0xdf, 0x31, 0xe8, - 0x01, 0x44, 0x42, 0xea, 0x25, 0xe8, 0x01, 0x46, 0x0a, 0xd6, 0xc0, 0xe8, - 0x01, 0x44, 0xd2, 0xea, 0x27, 0xe8, 0x01, 0x46, 0x1c, 0xd6, 0x87, 0xe8, - 0x01, 0x46, 0x34, 0xd6, 0x88, 0xe8, 0x01, 0x44, 0x62, 0xeb, 0x85, 0xe8, - 0x01, 0x45, 0xc0, 0xe0, 0x67, 0xe8, 0x41, 0x45, 0xef, 0xde, 0x1e, 0xe8, - 0x01, 0x44, 0x0a, 0xea, 0xbb, 0xe8, 0x01, 0x45, 0x7b, 0xdf, 0xb5, 0xe8, - 0x01, 0x44, 0x8d, 0x96, 0x3c, 0xe8, 0x01, 0x46, 0xf8, 0xd5, 0x19, 0xe8, - 0x01, 0x44, 0xba, 0xea, 0x83, 0xe8, 0x01, 0x47, 0x8e, 0xcb, 0x7c, 0xe8, - 0x01, 0x45, 0x57, 0xe0, 0x4e, 0xe8, 0x01, 0x45, 0x84, 0xe0, 0xa5, 0xe8, - 0x01, 0x47, 0xaa, 0xcb, 0x7e, 0xe8, 0x41, 0x44, 0xa6, 0xe9, 0x6e, 0xe8, - 0x01, 0x45, 0x44, 0xdf, 0x58, 0xe8, 0x01, 0x4a, 0x9b, 0xa4, 0x9e, 0xe8, - 0x01, 0x45, 0xbc, 0xdf, 0x10, 0xe8, 0x01, 0x45, 0xf8, 0xdf, 0xbe, 0xe8, - 0x01, 0x45, 0x11, 0xe0, 0x93, 0xe8, 0x01, 0x46, 0x28, 0xd6, 0x7b, 0xe8, - 0x01, 0x43, 0x7b, 0xf0, 0x28, 0xe8, 0x01, 0x45, 0x7a, 0xe0, 0xa8, 0xe8, - 0x01, 0x46, 0x76, 0xd6, 0xb7, 0xe8, 0x41, 0x45, 0x08, 0xdf, 0x72, 0xe8, - 0x01, 0x44, 0xe6, 0xe9, 0x2a, 0xe8, 0x01, 0x45, 0x62, 0xdf, 0x9f, 0xe8, - 0x01, 0x45, 0x9e, 0xdf, 0x5f, 0xe8, 0x01, 0x46, 0x04, 0xd6, 0xb8, 0xe8, - 0x01, 0x44, 0xbe, 0xea, 0x2b, 0xe8, 0x01, 0x45, 0x34, 0xe0, 0x33, 0xe8, - 0x01, 0x44, 0x32, 0xeb, 0x29, 0xe8, 0x01, 0x44, 0x52, 0xeb, 0x21, 0xe8, - 0x01, 0x45, 0xd4, 0xe0, 0x13, 0xe8, 0x41, 0x46, 0x92, 0xd5, 0x7d, 0xe8, - 0x01, 0x44, 0x44, 0xdf, 0x59, 0xe8, 0x01, 0x45, 0x76, 0xdf, 0x95, 0xe8, - 0x01, 0x45, 0xad, 0xdf, 0xae, 0xe8, 0x01, 0x45, 0xd0, 0xdf, 0xa6, 0xe8, - 0x01, 0x45, 0x16, 0xe0, 0xb0, 0xe8, 0x01, 0x45, 0x3e, 0xe0, 0x0b, 0xe8, - 0x01, 0x47, 0x95, 0xcb, 0x7f, 0xe8, 0x01, 0x46, 0x58, 0xd6, 0x70, 0xe8, - 0x01, 0x45, 0xb6, 0xe0, 0xaf, 0xe8, 0x41, 0x49, 0xdd, 0xb2, 0x3d, 0xe8, - 0x01, 0x44, 0xde, 0xe9, 0x84, 0xe8, 0x01, 0x46, 0xc8, 0xd5, 0xa4, 0xe8, - 0x01, 0x44, 0x46, 0xea, 0x4f, 0xe8, 0x01, 0x45, 0xfd, 0xdf, 0x0d, 0xe8, - 0x01, 0x47, 0x87, 0xcb, 0x7a, 0xe8, 0x01, 0x44, 0x1e, 0xeb, 0x32, 0xe8, - 0x01, 0x45, 0x61, 0xe0, 0x66, 0xe8, 0x01, 0x44, 0x7a, 0xeb, 0x0c, 0xe8, - 0x01, 0x45, 0xbb, 0xe0, 0xb2, 0xe8, 0x41, 0x43, 0x1e, 0xf0, 0x26, 0xe8, - 0x01, 0x45, 0x2b, 0xdf, 0x62, 0xe8, 0x01, 0x45, 0x85, 0xdf, 0x91, 0xe8, - 0x01, 0x45, 0x99, 0xdf, 0x20, 0xe8, 0x01, 0x45, 0xf3, 0xdf, 0x49, 0xe8, - 0x01, 0x4b, 0x98, 0x96, 0x9d, 0xe8, 0x01, 0x4c, 0x19, 0x8a, 0x81, 0xe8, - 0x01, 0x45, 0x4d, 0xe0, 0xaa, 0xe8, 0x01, 0x45, 0x7f, 0xe0, 0xa3, 0xe8, - 0x01, 0x45, 0xd9, 0xe0, 0x56, 0xe8, 0x41, 0x90, 0xb5, 0x04, 0x91, 0xf6, - 0x03, 0x92, 0xb7, 0x03, 0x93, 0xf8, 0x02, 0x94, 0xb9, 0x02, 0x95, 0xfa, - 0x01, 0x96, 0xbb, 0x01, 0x97, 0x7d, 0x98, 0x3f, 0x99, 0x01, 0xff, 0x46, - 0x8c, 0xd5, 0x77, 0xe8, 0x01, 0x45, 0x35, 0xdf, 0x47, 0xe8, 0x01, 0x45, - 0x5d, 0xdf, 0xa0, 0xe8, 0x01, 0x46, 0xd4, 0xd5, 0xa9, 0xe8, 0x01, 0x45, - 0xe9, 0xdf, 0x18, 0xe8, 0x01, 0x44, 0x0c, 0xe0, 0x04, 0xe8, 0x01, 0x44, - 0xf6, 0xea, 0x6c, 0xe8, 0x01, 0x44, 0x26, 0xeb, 0x1f, 0xe8, 0x01, 0x46, - 0x6a, 0xd6, 0xc3, 0xe8, 0x01, 0x44, 0x82, 0xeb, 0x8d, 0xe8, 0x41, 0x44, - 0xc6, 0xe9, 0x57, 0xe8, 0x01, 0x45, 0x30, 0xdf, 0x8f, 0xe8, 0x01, 0x46, - 0xce, 0xd5, 0x79, 0xe8, 0x01, 0x46, 0xda, 0xd5, 0x6f, 0xe8, 0x01, 0x45, - 0xda, 0xdf, 0x39, 0xe8, 0x01, 0x44, 0xe2, 0xea, 0xbd, 0xe8, 0x01, 0x4b, - 0xa3, 0x96, 0x80, 0xe8, 0x01, 0x45, 0x52, 0xe0, 0x73, 0xe8, 0x01, 0x44, - 0x5e, 0xeb, 0x60, 0xe8, 0x01, 0x45, 0xa2, 0xe0, 0x41, 0xe8, 0x41, 0x45, - 0xfe, 0xde, 0xac, 0xe8, 0x01, 0x46, 0xaa, 0xd5, 0xab, 0xe8, 0x01, 0x45, - 0x6c, 0xdf, 0x98, 0xe8, 0x01, 0x44, 0x56, 0xea, 0x3a, 0xe8, 0x01, 0x45, - 0xd5, 0xdf, 0xa1, 0xe8, 0x01, 0x44, 0xb6, 0xea, 0x5e, 0xe8, 0x01, 0x45, - 0x25, 0xe0, 0x05, 0xe8, 0x01, 0x44, 0x4a, 0xeb, 0xbf, 0xe8, 0x01, 0x45, - 0x75, 0xe0, 0x5d, 0xe8, 0x01, 0x44, 0x92, 0xeb, 0x34, 0xe8, 0x41, 0x46, - 0x98, 0xd5, 0xc4, 0xe8, 0x01, 0x45, 0x3f, 0xdf, 0x11, 0xe8, 0x01, 0x45, - 0x67, 0xdf, 0x94, 0xe8, 0x01, 0x44, 0x4a, 0xea, 0x51, 0xe8, 0x01, 0x45, - 0xee, 0xdf, 0xb4, 0xe8, 0x01, 0x45, 0x0c, 0xe0, 0x03, 0xe8, 0x01, 0x44, - 0x12, 0xeb, 0x92, 0xe8, 0x01, 0x46, 0x4c, 0xd6, 0xb3, 0xe8, 0x01, 0x44, - 0x6e, 0xeb, 0x8c, 0xe8, 0x01, 0x44, 0x9a, 0xeb, 0x4a, 0xe8, 0x41, 0x44, - 0xb6, 0xe9, 0x8e, 0xe8, 0x01, 0x44, 0x30, 0xdf, 0x90, 0xe8, 0x01, 0x45, - 0x53, 0xdf, 0x74, 0xe8, 0x01, 0x45, 0xa3, 0xdf, 0x71, 0xe8, 0x01, 0x45, - 0xdf, 0xdf, 0x3b, 0xe8, 0x01, 0x44, 0xd6, 0xea, 0x48, 0xe8, 0x01, 0x45, - 0x20, 0xe0, 0xa7, 0xe8, 0x01, 0x46, 0x52, 0xd6, 0x8a, 0xe8, 0x01, 0x46, - 0x64, 0xd6, 0xc1, 0xe8, 0x01, 0x45, 0xac, 0xe0, 0x17, 0xe8, 0x41, 0x45, - 0x0d, 0xdf, 0x6b, 0xe8, 0x01, 0x44, 0xe2, 0xe9, 0x69, 0xe8, 0x01, 0x45, - 0x58, 0xdf, 0x6d, 0xe8, 0x01, 0x46, 0xe0, 0xd5, 0x78, 0xe8, 0x01, 0x46, - 0xf2, 0xd5, 0xa2, 0xe8, 0x01, 0x44, 0x16, 0xd6, 0x0e, 0xe8, 0x01, 0x46, - 0x22, 0xd6, 0x76, 0xe8, 0x01, 0x46, 0x40, 0xd6, 0x96, 0xe8, 0x01, 0x44, - 0x6a, 0xeb, 0x06, 0xe8, 0x01, 0x45, 0xcf, 0xe0, 0x12, 0xe8, 0x41, 0x44, - 0xaa, 0xe9, 0x4d, 0xe8, 0x01, 0x44, 0x0e, 0xea, 0x53, 0xe8, 0x01, 0x44, - 0x3a, 0xea, 0x54, 0xe8, 0x01, 0x44, 0x72, 0xea, 0x55, 0xe8, 0x01, 0x44, - 0x7a, 0xea, 0x5a, 0xe8, 0x01, 0x44, 0xb2, 0xea, 0x5b, 0xe8, 0x01, 0x44, - 0xf2, 0xea, 0x5c, 0xe8, 0x01, 0x45, 0x66, 0xe0, 0x63, 0xe8, 0x01, 0x45, - 0x8e, 0xe0, 0x64, 0xe8, 0x01, 0x45, 0xc5, 0xe0, 0x65, 0xe8, 0x41, 0x44, - 0xbe, 0xe9, 0x2f, 0xe8, 0x01, 0x44, 0x06, 0xea, 0x30, 0xe8, 0x01, 0x44, - 0xc6, 0x41, 0x44, 0xe8, 0x01, 0x44, 0x6e, 0xea, 0x45, 0xe8, 0x01, 0x44, - 0x8e, 0xea, 0x46, 0xe8, 0x01, 0x44, 0xc6, 0xea, 0x36, 0xe8, 0x01, 0x44, - 0x0a, 0xeb, 0x37, 0xe8, 0x01, 0x44, 0x3e, 0xeb, 0x38, 0xe8, 0x01, 0x44, - 0x66, 0xeb, 0x4b, 0xe8, 0x01, 0x44, 0x7e, 0xeb, 0x4c, 0xe8, 0x41, 0x44, - 0xa2, 0xe9, 0x1b, 0xe8, 0x01, 0x44, 0x62, 0xc0, 0x1c, 0xe8, 0x01, 0x44, - 0x16, 0xea, 0x1d, 0xe8, 0x01, 0x43, 0x51, 0xf0, 0x22, 0xe8, 0x01, 0x43, - 0xcb, 0xdf, 0x23, 0xe8, 0x01, 0x43, 0x63, 0xf0, 0x24, 0xe8, 0x01, 0x44, - 0xee, 0xea, 0x3e, 0xe8, 0x01, 0x44, 0x2a, 0xeb, 0x3f, 0xe8, 0x01, 0x44, - 0x56, 0xeb, 0x40, 0xe8, 0x01, 0x44, 0x8e, 0xeb, 0x2e, 0xe8, 0x41, 0x44, - 0xea, 0xe9, 0x00, 0xe8, 0x01, 0x44, 0x1a, 0xea, 0x01, 0xe8, 0x01, 0x44, - 0x4e, 0xea, 0x02, 0xe8, 0x01, 0x44, 0x96, 0xea, 0x08, 0xe8, 0x01, 0x44, - 0xe6, 0xea, 0x09, 0xe8, 0x01, 0x44, 0x22, 0xeb, 0x0a, 0xe8, 0x01, 0x45, - 0x5c, 0xe0, 0x14, 0xe8, 0x01, 0x45, 0x89, 0xe0, 0x15, 0xe8, 0x01, 0x45, - 0xb1, 0xe0, 0x16, 0xe8, 0x41, 0x45, 0xc3, 0x0a, 0xce, 0xe8, 0x01, 0xa6, - 0x29, 0x44, 0x46, 0x2a, 0xcf, 0xe8, 0x01, 0x43, 0xbf, 0x0a, 0xc7, 0xe8, - 0x01, 0xb3, 0x0f, 0xb4, 0x01, 0xff, 0x44, 0x25, 0x01, 0xc9, 0xe8, 0x01, - 0x42, 0x15, 0x02, 0xc8, 0xe8, 0x41, 0x44, 0x27, 0x1d, 0xcd, 0xe8, 0x01, - 0x42, 0x60, 0x25, 0xcc, 0xe8, 0x41, 0x43, 0xa7, 0x05, 0xcb, 0xe8, 0x01, - 0x43, 0xcb, 0x06, 0xca, 0xe8, 0x41, 0x07, 0x22, 0x11, 0x24, 0x48, 0x25, - 0x3b, 0xd6, 0xe8, 0x01, 0xb4, 0x01, 0xff, 0xa5, 0x06, 0x48, 0x26, 0x51, - 0xd3, 0xe8, 0x41, 0x43, 0x59, 0x57, 0xd0, 0xe8, 0x01, 0xae, 0x01, 0xff, - 0x4a, 0xf1, 0xa3, 0xd4, 0xe8, 0x01, 0xf3, 0xd1, 0xe8, 0x41, 0x4a, 0xf1, - 0xa3, 0xd5, 0xe8, 0x01, 0xf3, 0xd2, 0xe8, 0x41, 0x42, 0x10, 0x00, 0x48, - 0xf3, 0x01, 0x49, 0x8c, 0x28, 0xe0, 0xfa, 0x41, 0xa1, 0xfd, 0x03, 0x06, - 0x96, 0xd7, 0xec, 0x03, 0x06, 0xc4, 0x06, 0xa5, 0x03, 0xac, 0x6b, 0x58, - 0x9d, 0x2a, 0xf3, 0xaa, 0x00, 0xb6, 0x06, 0x54, 0xbf, 0x45, 0xf4, 0xaa, - 0x40, 0x45, 0x5c, 0x23, 0xf6, 0xaa, 0x00, 0x0a, 0xd2, 0x75, 0x01, 0xff, - 0xa1, 0x3c, 0x47, 0x0f, 0xcd, 0xe9, 0xab, 0x00, 0xa9, 0x2a, 0x44, 0x62, - 0xee, 0xea, 0xab, 0x00, 0x44, 0x88, 0x84, 0xe3, 0xab, 0x00, 0x46, 0xe8, - 0xdc, 0xe7, 0xab, 0x00, 0xb5, 0x0c, 0x47, 0xa1, 0x4a, 0xf5, 0xaa, 0x00, - 0x45, 0x5d, 0xe9, 0xe6, 0xab, 0x40, 0x43, 0x89, 0x84, 0xe8, 0xab, 0x00, - 0xf5, 0xec, 0xaa, 0x40, 0xe9, 0xeb, 0xaa, 0x00, 0x43, 0x89, 0x84, 0xe4, - 0xab, 0x40, 0xa1, 0x0a, 0x43, 0x89, 0x84, 0xe5, 0xab, 0x00, 0xf5, 0xee, - 0xaa, 0x40, 0xe9, 0xed, 0xaa, 0x00, 0xf5, 0xef, 0xaa, 0x40, 0x06, 0xc2, - 0x05, 0x06, 0x47, 0xec, 0xd3, 0xec, 0xab, 0x40, 0x45, 0x6f, 0xe1, 0xd1, - 0xab, 0x00, 0xa2, 0x9b, 0x02, 0x02, 0x1e, 0x14, 0x8c, 0x02, 0xa4, 0xf1, - 0x01, 0xe5, 0xe0, 0xaa, 0x00, 0xa7, 0xde, 0x01, 0x43, 0x71, 0xdb, 0xcd, - 0xab, 0x00, 0xe9, 0xcf, 0xab, 0x80, 0xcc, 0x01, 0xaa, 0xbd, 0x01, 0xab, - 0xa7, 0x01, 0x43, 0xf0, 0x0d, 0xc2, 0xab, 0x80, 0x99, 0x01, 0x43, 0xcb, - 0x2e, 0xc3, 0xab, 0x80, 0x8b, 0x01, 0xae, 0x65, 0xef, 0xe1, 0xaa, 0x00, - 0xb0, 0x4e, 0x43, 0xa7, 0x07, 0xd4, 0xab, 0x00, 0xb3, 0x34, 0xb4, 0x12, - 0x42, 0xf3, 0x0a, 0xce, 0xab, 0x00, 0x43, 0x82, 0x10, 0xcb, 0xab, 0x00, - 0x44, 0x86, 0xbb, 0xcc, 0xab, 0x40, 0x43, 0x76, 0x1d, 0xca, 0xab, 0x00, - 0x42, 0x62, 0x01, 0xc7, 0xab, 0x80, 0x0d, 0xb4, 0x01, 0xff, 0xe1, 0xe4, - 0xaa, 0x00, 0x42, 0x22, 0x00, 0xe5, 0xaa, 0x40, 0x47, 0x84, 0xca, 0xe0, - 0xab, 0x40, 0x42, 0x57, 0x00, 0xc1, 0xab, 0x00, 0x42, 0x22, 0x00, 0xe9, - 0xaa, 0x00, 0x42, 0x15, 0x06, 0xea, 0xaa, 0x40, 0xe1, 0xc4, 0xab, 0x80, - 0x06, 0x43, 0x56, 0x00, 0xd0, 0xab, 0x40, 0x47, 0x84, 0xca, 0xde, 0xab, - 0x40, 0xe1, 0xc5, 0xab, 0x80, 0x19, 0x43, 0xb5, 0xb0, 0xc9, 0xab, 0x80, - 0x0c, 0x42, 0xff, 0x04, 0xe8, 0xaa, 0x00, 0x42, 0x34, 0x22, 0xe3, 0xaa, - 0x40, 0x47, 0x84, 0xca, 0xe1, 0xab, 0x40, 0x47, 0x84, 0xca, 0xdf, 0xab, - 0x40, 0x47, 0x84, 0xca, 0xdd, 0xab, 0x40, 0x47, 0x84, 0xca, 0xdc, 0xab, - 0x40, 0x43, 0x76, 0x1d, 0xc8, 0xab, 0x00, 0x42, 0x2a, 0x05, 0xc0, 0xab, - 0xc0, 0x00, 0x47, 0x84, 0xca, 0xdb, 0xab, 0x40, 0x43, 0x56, 0x00, 0xd3, - 0xab, 0x00, 0x42, 0x62, 0x01, 0xd6, 0xab, 0x40, 0x47, 0x84, 0xca, 0xe2, - 0xab, 0x40, 0x43, 0x76, 0x1d, 0xd8, 0xab, 0x00, 0x42, 0x2a, 0x05, 0xd2, - 0xab, 0x40, 0xa4, 0x0c, 0x43, 0x76, 0x1d, 0xd9, 0xab, 0x00, 0x42, 0x62, - 0x01, 0xd7, 0xab, 0x40, 0xe1, 0xe6, 0xaa, 0x00, 0x42, 0x22, 0x00, 0xe7, - 0xaa, 0x40, 0xe1, 0xe2, 0xaa, 0x00, 0x42, 0x62, 0x01, 0xc6, 0xab, 0x40, - 0xe1, 0xd5, 0xab, 0x00, 0x43, 0x56, 0x00, 0xda, 0xab, 0x40, 0x45, 0xc3, - 0x0a, 0xf8, 0xab, 0x00, 0xa6, 0x2e, 0x44, 0x46, 0x2a, 0xf9, 0xab, 0x00, - 0x43, 0xbf, 0x0a, 0xf1, 0xab, 0x00, 0xb3, 0x14, 0xb4, 0x06, 0x44, 0xa1, - 0x1d, 0xf0, 0xab, 0x40, 0x44, 0x25, 0x01, 0xf3, 0xab, 0x00, 0x42, 0x15, - 0x02, 0xf2, 0xab, 0x40, 0x44, 0x27, 0x1d, 0xf7, 0xab, 0x00, 0x42, 0x60, - 0x25, 0xf6, 0xab, 0x40, 0x43, 0xa7, 0x05, 0xf5, 0xab, 0x00, 0x43, 0xcb, - 0x06, 0xf4, 0xab, 0x40, 0x42, 0x1a, 0x00, 0xf0, 0xaa, 0x00, 0x42, 0xc3, - 0x0a, 0xeb, 0xab, 0x40, 0x4b, 0x8c, 0x9a, 0xf1, 0xaa, 0x00, 0x43, 0x9d, - 0x85, 0xf2, 0xaa, 0x00, 0x48, 0x5a, 0xc7, 0xed, 0xab, 0x40, 0x09, 0xda, - 0xb5, 0xf0, 0x01, 0xa9, 0x01, 0xff, 0x05, 0x5a, 0x45, 0xd6, 0x01, 0x03, - 0x1d, 0x04, 0x01, 0xff, 0xa2, 0xc2, 0x01, 0x06, 0xe2, 0x13, 0xb1, 0x01, - 0xa6, 0x87, 0x01, 0x4b, 0x9f, 0x5f, 0xa3, 0xf7, 0x01, 0x04, 0xc3, 0x00, - 0x69, 0x52, 0x58, 0x52, 0x5f, 0x20, 0x00, 0x05, 0xc8, 0x00, 0x4b, 0xb3, - 0x27, 0x0e, 0xa8, 0x7b, 0x17, 0x4c, 0x32, 0x00, 0x59, 0x27, 0x00, 0x06, - 0xad, 0x02, 0x01, 0xff, 0x46, 0xe7, 0x02, 0xaa, 0x26, 0x00, 0x46, 0xab, - 0x05, 0x8f, 0xf7, 0x41, 0x4a, 0x53, 0x2b, 0xc1, 0xf7, 0x01, 0x4d, 0xd9, - 0x12, 0xc3, 0xf7, 0x41, 0x46, 0xa7, 0x18, 0xaa, 0xf7, 0x01, 0x44, 0x21, - 0x04, 0x92, 0x25, 0x00, 0x03, 0xb6, 0x51, 0x06, 0x51, 0x8f, 0x5a, 0xac, - 0x26, 0x40, 0x52, 0x4b, 0x2b, 0xcb, 0xf7, 0x01, 0x4f, 0x4e, 0x1c, 0xb6, - 0xf7, 0x41, 0x80, 0x06, 0x60, 0xe5, 0x0e, 0x6d, 0x27, 0x40, 0x56, 0x83, - 0x32, 0x75, 0x27, 0x00, 0x54, 0x50, 0x21, 0x69, 0x27, 0x40, 0x80, 0x06, - 0x60, 0xe5, 0x0e, 0x6c, 0x27, 0x40, 0x56, 0x83, 0x32, 0x74, 0x27, 0x00, - 0x54, 0x50, 0x21, 0x68, 0x27, 0x40, 0x53, 0x4c, 0x41, 0xb0, 0xf7, 0x01, - 0x09, 0x61, 0x3a, 0x11, 0x0c, 0xcd, 0x12, 0x01, 0xff, 0x4a, 0x53, 0x2b, - 0xc5, 0xf7, 0x01, 0x4d, 0xd9, 0x12, 0xc7, 0xf7, 0x41, 0x59, 0xf7, 0x23, - 0x6a, 0x27, 0x00, 0x5a, 0x4a, 0x21, 0x6b, 0x27, 0x40, 0x52, 0x4b, 0x2b, - 0xce, 0xf7, 0x01, 0x4f, 0x4e, 0x1c, 0xbc, 0xf7, 0x41, 0x4b, 0xe2, 0x02, - 0xab, 0x26, 0x00, 0x50, 0x0a, 0x64, 0x85, 0xf7, 0x41, 0x45, 0xe8, 0x04, - 0x4c, 0x2e, 0x00, 0x50, 0xad, 0x00, 0x53, 0x2e, 0x00, 0x4d, 0xd6, 0x33, - 0x54, 0x2e, 0x40, 0xa3, 0xd0, 0x02, 0x06, 0xc4, 0x06, 0xf4, 0x01, 0x4e, - 0x30, 0x76, 0x9a, 0x6e, 0x01, 0x49, 0x15, 0x16, 0x98, 0x6e, 0x01, 0x07, - 0x2f, 0x39, 0x9e, 0x01, 0xb3, 0x01, 0xff, 0x0c, 0x4c, 0x08, 0x06, 0x4a, - 0x93, 0xb1, 0x99, 0x6e, 0x41, 0xe1, 0x6d, 0x6e, 0x81, 0x81, 0x01, 0xe2, - 0x70, 0x6e, 0x01, 0xe3, 0x71, 0x6e, 0x01, 0xe4, 0x79, 0x6e, 0x01, 0xe5, - 0x6f, 0x6e, 0x01, 0xe6, 0x6a, 0x6e, 0x01, 0xe7, 0x69, 0x6e, 0x01, 0xe8, - 0x76, 0x6e, 0x81, 0x60, 0xe9, 0x6b, 0x6e, 0x01, 0xea, 0x6e, 0x6e, 0x01, - 0xeb, 0x6c, 0x6e, 0x81, 0x4f, 0xec, 0x74, 0x6e, 0x01, 0xed, 0x60, 0x6e, - 0x01, 0xee, 0x7b, 0x6e, 0x81, 0x3a, 0xef, 0x7d, 0x6e, 0x81, 0x31, 0xf0, - 0x67, 0x6e, 0x01, 0xf1, 0x75, 0x6e, 0x01, 0xf2, 0x7c, 0x6e, 0x01, 0xf3, - 0x61, 0x6e, 0x01, 0xf4, 0x68, 0x6e, 0x01, 0xf5, 0x72, 0x6e, 0x01, 0xf6, - 0x62, 0x6e, 0x01, 0xf7, 0x63, 0x6e, 0x01, 0xf8, 0x78, 0x6e, 0x01, 0xf9, - 0x7f, 0x6e, 0x81, 0x04, 0xfa, 0x65, 0x6e, 0x41, 0xf5, 0x73, 0x6e, 0x41, - 0xe5, 0x7a, 0x6e, 0x41, 0xe7, 0x77, 0x6e, 0x01, 0xf9, 0x77, 0x6e, 0x41, - 0xf0, 0x66, 0x6e, 0x41, 0xf0, 0x76, 0x6e, 0x41, 0xe9, 0x7e, 0x6e, 0x01, - 0x43, 0x3e, 0x87, 0x64, 0x6e, 0x41, 0xa5, 0x37, 0xa6, 0x29, 0x48, 0x7c, - 0x52, 0x93, 0x6e, 0x01, 0xb3, 0x15, 0xb4, 0x01, 0xff, 0x42, 0x92, 0x01, - 0x8a, 0x6e, 0x01, 0x47, 0x2a, 0x59, 0x8d, 0x6e, 0x01, 0x45, 0x45, 0x2b, - 0x8c, 0x6e, 0x41, 0x48, 0x3c, 0x50, 0x91, 0x6e, 0x01, 0x46, 0x60, 0x25, - 0x90, 0x6e, 0x41, 0x46, 0x9c, 0x17, 0x8f, 0x6e, 0x01, 0x47, 0x9f, 0x5b, - 0x8e, 0x6e, 0x41, 0x47, 0xca, 0x24, 0x92, 0x6e, 0x01, 0x45, 0x0b, 0x6e, - 0x8b, 0x6e, 0x41, 0x45, 0xc3, 0x0a, 0x88, 0x6e, 0x01, 0xa6, 0x43, 0x44, - 0x46, 0x2a, 0x89, 0x6e, 0x01, 0x43, 0xbf, 0x0a, 0x81, 0x6e, 0x81, 0x30, - 0xb3, 0x22, 0xb4, 0x06, 0x44, 0xa1, 0x1d, 0x80, 0x6e, 0x41, 0x44, 0x25, - 0x01, 0x83, 0x6e, 0x81, 0x0d, 0x42, 0x15, 0x02, 0x82, 0x6e, 0xc1, 0x00, - 0x4f, 0x8a, 0x67, 0x95, 0x6e, 0x41, 0x4f, 0x8a, 0x67, 0x96, 0x6e, 0x41, - 0x44, 0x27, 0x1d, 0x87, 0x6e, 0x01, 0x42, 0x60, 0x25, 0x86, 0x6e, 0x41, - 0x4f, 0x8a, 0x67, 0x94, 0x6e, 0x41, 0x43, 0xa7, 0x05, 0x85, 0x6e, 0x01, - 0x43, 0xcb, 0x06, 0x84, 0x6e, 0x41, 0x0e, 0xba, 0x05, 0x06, 0x44, 0xe9, - 0x04, 0x97, 0x6e, 0x41, 0xe1, 0x4d, 0x6e, 0x81, 0x81, 0x01, 0xe2, 0x50, - 0x6e, 0x01, 0xe3, 0x51, 0x6e, 0x01, 0xe4, 0x59, 0x6e, 0x01, 0xe5, 0x4f, - 0x6e, 0x01, 0xe6, 0x4a, 0x6e, 0x01, 0xe7, 0x49, 0x6e, 0x01, 0xe8, 0x56, - 0x6e, 0x81, 0x60, 0xe9, 0x4b, 0x6e, 0x01, 0xea, 0x4e, 0x6e, 0x01, 0xeb, - 0x4c, 0x6e, 0x81, 0x4f, 0xec, 0x54, 0x6e, 0x01, 0xed, 0x40, 0x6e, 0x01, - 0xee, 0x5b, 0x6e, 0x81, 0x3a, 0xef, 0x5d, 0x6e, 0x81, 0x31, 0xf0, 0x47, - 0x6e, 0x01, 0xf1, 0x55, 0x6e, 0x01, 0xf2, 0x5c, 0x6e, 0x01, 0xf3, 0x41, - 0x6e, 0x01, 0xf4, 0x48, 0x6e, 0x01, 0xf5, 0x52, 0x6e, 0x01, 0xf6, 0x42, - 0x6e, 0x01, 0xf7, 0x43, 0x6e, 0x01, 0xf8, 0x58, 0x6e, 0x01, 0xf9, 0x5f, - 0x6e, 0x81, 0x04, 0xfa, 0x45, 0x6e, 0x41, 0xf5, 0x53, 0x6e, 0x41, 0xe5, - 0x5a, 0x6e, 0x41, 0xe7, 0x57, 0x6e, 0x01, 0xf9, 0x57, 0x6e, 0x41, 0xf0, - 0x46, 0x6e, 0x41, 0xf0, 0x56, 0x6e, 0x41, 0xe9, 0x5e, 0x6e, 0x01, 0x43, - 0x3e, 0x87, 0x44, 0x6e, 0x41, 0x43, 0xd3, 0x05, 0xbe, 0xf9, 0x01, 0x43, - 0xd2, 0x37, 0xbf, 0xf9, 0x41, 0x06, 0x30, 0xdd, 0x06, 0x49, 0x18, 0xbd, - 0x56, 0xf3, 0x41, 0x45, 0x04, 0x02, 0x21, 0x22, 0x80, 0x0c, 0x42, 0x08, - 0x00, 0x5e, 0x22, 0x00, 0x54, 0x2f, 0x44, 0x9d, 0x29, 0x40, 0x80, 0x01, - 0xff, 0x4c, 0x8d, 0x91, 0x9b, 0x29, 0x00, 0x27, 0xc9, 0x05, 0x01, 0xff, - 0x09, 0xc3, 0x47, 0x31, 0x09, 0x2b, 0x43, 0x21, 0x0a, 0x09, 0x01, 0x11, - 0x07, 0x48, 0x5d, 0x01, 0xff, 0x44, 0xc3, 0x00, 0xa9, 0x29, 0x00, 0x45, - 0xc8, 0x00, 0xa8, 0x29, 0x40, 0x44, 0xa5, 0x01, 0xae, 0x29, 0x00, 0x42, - 0x50, 0x02, 0xac, 0x29, 0x40, 0x44, 0xa5, 0x01, 0xaf, 0x29, 0x00, 0x42, - 0x50, 0x02, 0xad, 0x29, 0x40, 0x44, 0xc3, 0x00, 0xab, 0x29, 0x00, 0x45, - 0xc8, 0x00, 0xaa, 0x29, 0x40, 0x44, 0x06, 0x6f, 0xaf, 0x00, 0x00, 0xa7, - 0xf6, 0x42, 0xa8, 0x99, 0x3e, 0xab, 0xf7, 0x3c, 0xac, 0xe2, 0x36, 0x45, - 0xa2, 0xe5, 0xa3, 0xf9, 0x01, 0xee, 0x68, 0xf4, 0x81, 0x81, 0x32, 0xb0, - 0xf2, 0x31, 0xb2, 0xaf, 0x2e, 0xb3, 0xcd, 0x2a, 0xb4, 0x95, 0x01, 0x46, - 0x56, 0xde, 0xd6, 0xf5, 0x01, 0x0c, 0x29, 0x95, 0x01, 0xff, 0xa5, 0x75, - 0xa6, 0x58, 0x44, 0x46, 0x2a, 0xe9, 0xd2, 0x81, 0x4b, 0x43, 0xbf, 0x0a, - 0xe1, 0xd2, 0x01, 0xb3, 0x29, 0xb4, 0x06, 0x44, 0xa1, 0x1d, 0xe0, 0xd2, - 0x41, 0x42, 0x92, 0x01, 0xea, 0xd2, 0x01, 0xa8, 0x0d, 0xb7, 0x01, 0xff, - 0x44, 0x46, 0x2b, 0xec, 0xd2, 0x01, 0xef, 0xe2, 0xd2, 0x41, 0x46, 0x2b, - 0x59, 0xed, 0xd2, 0x01, 0x43, 0x26, 0x01, 0xe3, 0xd2, 0x41, 0x44, 0x27, - 0x1d, 0xe7, 0xd2, 0x81, 0x0d, 0x42, 0x60, 0x25, 0xe6, 0xd2, 0xc1, 0x00, - 0x44, 0x9e, 0x17, 0xf0, 0xd2, 0x41, 0x44, 0x9e, 0x17, 0xf1, 0xd2, 0x41, - 0x44, 0x9e, 0x17, 0xf3, 0xd2, 0x41, 0xa9, 0x0d, 0x43, 0xcb, 0x06, 0xe4, - 0xd2, 0xc1, 0x00, 0x44, 0x9e, 0x17, 0xee, 0xd2, 0x41, 0x45, 0x9d, 0x17, - 0xef, 0xd2, 0x01, 0x42, 0x32, 0x00, 0xe5, 0xd2, 0x41, 0x44, 0xc9, 0x00, - 0xe8, 0xd2, 0x81, 0x06, 0x45, 0x0b, 0x6e, 0xeb, 0xd2, 0x41, 0x43, 0x75, - 0x09, 0xf2, 0xd2, 0x41, 0x47, 0xb7, 0xcd, 0xc9, 0xf9, 0x01, 0x0a, 0x5b, - 0x52, 0x01, 0xff, 0x05, 0x9a, 0x5f, 0xb6, 0x1b, 0x0e, 0xa4, 0x75, 0xad, - 0x19, 0xa6, 0xda, 0x17, 0x07, 0x38, 0xcf, 0xe0, 0x12, 0x05, 0xc3, 0x00, - 0xb8, 0x12, 0x0a, 0xad, 0xab, 0x93, 0x10, 0x02, 0x0d, 0x00, 0xe1, 0x0f, - 0xb3, 0x01, 0xff, 0x0a, 0xcc, 0x46, 0xb2, 0x01, 0x06, 0x4a, 0x06, 0x01, - 0xff, 0x08, 0xb9, 0x05, 0x61, 0x06, 0x0c, 0x07, 0x01, 0xff, 0xe1, 0xb6, - 0xd4, 0x01, 0xe2, 0xb7, 0xd4, 0x01, 0xe3, 0xb8, 0xd4, 0x01, 0xe4, 0xb9, - 0xd4, 0x01, 0xe6, 0xbb, 0xd4, 0x01, 0xe8, 0xbd, 0xd4, 0x01, 0xe9, 0xbe, - 0xd4, 0x01, 0xea, 0xbf, 0xd4, 0x01, 0xeb, 0xc0, 0xd4, 0x01, 0xec, 0xc1, - 0xd4, 0x01, 0xed, 0xc2, 0xd4, 0x01, 0xee, 0xc3, 0xd4, 0x01, 0xf0, 0xc5, - 0xd4, 0x01, 0xf1, 0xc6, 0xd4, 0x01, 0xf2, 0xc7, 0xd4, 0x01, 0xf3, 0xc8, - 0xd4, 0x01, 0xf4, 0xc9, 0xd4, 0x01, 0xf5, 0xca, 0xd4, 0x01, 0xf6, 0xcb, - 0xd4, 0x01, 0xf7, 0xcc, 0xd4, 0x01, 0xf8, 0xcd, 0xd4, 0x01, 0xf9, 0xce, - 0xd4, 0x01, 0xfa, 0xcf, 0xd4, 0x41, 0xe1, 0x9c, 0xd4, 0x01, 0xe3, 0x9e, - 0xd4, 0x01, 0xe4, 0x9f, 0xd4, 0x01, 0xe7, 0xa2, 0xd4, 0x01, 0xea, 0xa5, - 0xd4, 0x01, 0xeb, 0xa6, 0xd4, 0x01, 0xee, 0xa9, 0xd4, 0x01, 0xef, 0xaa, - 0xd4, 0x01, 0xf0, 0xab, 0xd4, 0x01, 0xf1, 0xac, 0xd4, 0x01, 0xf3, 0xae, - 0xd4, 0x01, 0xf4, 0xaf, 0xd4, 0x01, 0xf5, 0xb0, 0xd4, 0x01, 0xf6, 0xb1, - 0xd4, 0x01, 0xf7, 0xb2, 0xd4, 0x01, 0xf8, 0xb3, 0xd4, 0x01, 0xf9, 0xb4, - 0xd4, 0x01, 0xfa, 0xb5, 0xd4, 0x41, 0x05, 0x9a, 0x5f, 0xfe, 0x03, 0x08, - 0xb9, 0x05, 0x91, 0x03, 0x06, 0xc4, 0x06, 0xca, 0x02, 0x07, 0x38, 0xcf, - 0x6d, 0x06, 0x0c, 0x07, 0x01, 0xff, 0xe1, 0xba, 0xd5, 0x01, 0xe2, 0xbb, - 0xd5, 0x01, 0xe3, 0xbc, 0xd5, 0x01, 0xe4, 0xbd, 0xd5, 0x01, 0xe5, 0xbe, - 0xd5, 0x01, 0xe6, 0xbf, 0xd5, 0x01, 0xe7, 0xc0, 0xd5, 0x01, 0xe8, 0xc1, - 0xd5, 0x01, 0xe9, 0xc2, 0xd5, 0x01, 0xea, 0xc3, 0xd5, 0x01, 0xeb, 0xc4, - 0xd5, 0x01, 0xec, 0xc5, 0xd5, 0x01, 0xed, 0xc6, 0xd5, 0x01, 0xee, 0xc7, - 0xd5, 0x01, 0xef, 0xc8, 0xd5, 0x01, 0xf0, 0xc9, 0xd5, 0x01, 0xf1, 0xca, - 0xd5, 0x01, 0xf2, 0xcb, 0xd5, 0x01, 0xf3, 0xcc, 0xd5, 0x01, 0xf4, 0xcd, - 0xd5, 0x01, 0xf5, 0xce, 0xd5, 0x01, 0xf6, 0xcf, 0xd5, 0x01, 0xf7, 0xd0, - 0xd5, 0x01, 0xf8, 0xd1, 0xd5, 0x01, 0xf9, 0xd2, 0xd5, 0x01, 0xfa, 0xd3, - 0xd5, 0x41, 0x08, 0xb9, 0x05, 0x6d, 0x06, 0x0c, 0x07, 0x01, 0xff, 0xe1, - 0x22, 0xd6, 0x01, 0xe2, 0x23, 0xd6, 0x01, 0xe3, 0x24, 0xd6, 0x01, 0xe4, - 0x25, 0xd6, 0x01, 0xe5, 0x26, 0xd6, 0x01, 0xe6, 0x27, 0xd6, 0x01, 0xe7, - 0x28, 0xd6, 0x01, 0xe8, 0x29, 0xd6, 0x01, 0xe9, 0x2a, 0xd6, 0x01, 0xea, - 0x2b, 0xd6, 0x01, 0xeb, 0x2c, 0xd6, 0x01, 0xec, 0x2d, 0xd6, 0x01, 0xed, - 0x2e, 0xd6, 0x01, 0xee, 0x2f, 0xd6, 0x01, 0xef, 0x30, 0xd6, 0x01, 0xf0, - 0x31, 0xd6, 0x01, 0xf1, 0x32, 0xd6, 0x01, 0xf2, 0x33, 0xd6, 0x01, 0xf3, - 0x34, 0xd6, 0x01, 0xf4, 0x35, 0xd6, 0x01, 0xf5, 0x36, 0xd6, 0x01, 0xf6, - 0x37, 0xd6, 0x01, 0xf7, 0x38, 0xd6, 0x01, 0xf8, 0x39, 0xd6, 0x01, 0xf9, - 0x3a, 0xd6, 0x01, 0xfa, 0x3b, 0xd6, 0x41, 0xe1, 0x08, 0xd6, 0x01, 0xe2, - 0x09, 0xd6, 0x01, 0xe3, 0x0a, 0xd6, 0x01, 0xe4, 0x0b, 0xd6, 0x01, 0xe5, - 0x0c, 0xd6, 0x01, 0xe6, 0x0d, 0xd6, 0x01, 0xe7, 0x0e, 0xd6, 0x01, 0xe8, - 0x0f, 0xd6, 0x01, 0xe9, 0x10, 0xd6, 0x01, 0xea, 0x11, 0xd6, 0x01, 0xeb, - 0x12, 0xd6, 0x01, 0xec, 0x13, 0xd6, 0x01, 0xed, 0x14, 0xd6, 0x01, 0xee, - 0x15, 0xd6, 0x01, 0xef, 0x16, 0xd6, 0x01, 0xf0, 0x17, 0xd6, 0x01, 0xf1, - 0x18, 0xd6, 0x01, 0xf2, 0x19, 0xd6, 0x01, 0xf3, 0x1a, 0xd6, 0x01, 0xf4, - 0x1b, 0xd6, 0x01, 0xf5, 0x1c, 0xd6, 0x01, 0xf6, 0x1d, 0xd6, 0x01, 0xf7, - 0x1e, 0xd6, 0x01, 0xf8, 0x1f, 0xd6, 0x01, 0xf9, 0x20, 0xd6, 0x01, 0xfa, - 0x21, 0xd6, 0x41, 0x45, 0xc3, 0x0a, 0xea, 0xd7, 0x01, 0xa6, 0x2e, 0x44, - 0x46, 0x2a, 0xeb, 0xd7, 0x01, 0x43, 0xbf, 0x0a, 0xe3, 0xd7, 0x01, 0xb3, - 0x14, 0xb4, 0x06, 0x44, 0xa1, 0x1d, 0xe2, 0xd7, 0x41, 0x44, 0x25, 0x01, - 0xe5, 0xd7, 0x01, 0x42, 0x15, 0x02, 0xe4, 0xd7, 0x41, 0x44, 0x27, 0x1d, - 0xe9, 0xd7, 0x01, 0x42, 0x60, 0x25, 0xe8, 0xd7, 0x41, 0x43, 0xa7, 0x05, - 0xe7, 0xd7, 0x01, 0x43, 0xcb, 0x06, 0xe6, 0xd7, 0x41, 0xe1, 0xa0, 0xd5, - 0x01, 0xe2, 0xa1, 0xd5, 0x01, 0xe3, 0xa2, 0xd5, 0x01, 0xe4, 0xa3, 0xd5, - 0x01, 0xe5, 0xa4, 0xd5, 0x01, 0xe6, 0xa5, 0xd5, 0x01, 0xe7, 0xa6, 0xd5, - 0x01, 0xe8, 0xa7, 0xd5, 0x01, 0xe9, 0xa8, 0xd5, 0x01, 0xea, 0xa9, 0xd5, - 0x01, 0xeb, 0xaa, 0xd5, 0x01, 0xec, 0xab, 0xd5, 0x01, 0xed, 0xac, 0xd5, - 0x01, 0xee, 0xad, 0xd5, 0x01, 0xef, 0xae, 0xd5, 0x01, 0xf0, 0xaf, 0xd5, - 0x01, 0xf1, 0xb0, 0xd5, 0x01, 0xf2, 0xb1, 0xd5, 0x01, 0xf3, 0xb2, 0xd5, - 0x01, 0xf4, 0xb3, 0xd5, 0x01, 0xf5, 0xb4, 0xd5, 0x01, 0xf6, 0xb5, 0xd5, - 0x01, 0xf7, 0xb6, 0xd5, 0x01, 0xf8, 0xb7, 0xd5, 0x01, 0xf9, 0xb8, 0xd5, - 0x01, 0xfa, 0xb9, 0xd5, 0x41, 0x08, 0xb9, 0x05, 0x87, 0x08, 0x06, 0xc4, - 0x06, 0xc0, 0x07, 0x4e, 0x62, 0x15, 0x8a, 0xd7, 0x01, 0x07, 0x38, 0xcf, - 0xc9, 0x02, 0x4c, 0xe1, 0x8e, 0x8c, 0xd7, 0x01, 0x45, 0xca, 0xe5, 0x6f, - 0xd7, 0x01, 0xb0, 0xa8, 0x02, 0x4a, 0xf1, 0xad, 0x8e, 0xd7, 0x01, 0x06, - 0x0c, 0x07, 0x06, 0x4c, 0xf1, 0x93, 0x8b, 0xd7, 0x41, 0xe1, 0xee, 0xd5, - 0x81, 0x8c, 0x02, 0xe2, 0xef, 0xd5, 0x81, 0x80, 0x02, 0xe3, 0xf0, 0xd5, - 0x81, 0xf4, 0x01, 0xe4, 0xf1, 0xd5, 0x81, 0xe8, 0x01, 0xe5, 0xf2, 0xd5, - 0x81, 0xd6, 0x01, 0xe6, 0xf3, 0xd5, 0x81, 0xca, 0x01, 0xe7, 0xf4, 0xd5, - 0x81, 0xbe, 0x01, 0xe8, 0xf5, 0xd5, 0x01, 0xe9, 0xf6, 0xd5, 0x81, 0xae, - 0x01, 0xea, 0xf7, 0xd5, 0x01, 0xeb, 0xf8, 0xd5, 0x81, 0x9e, 0x01, 0xec, - 0xf9, 0xd5, 0x81, 0x92, 0x01, 0xed, 0xfa, 0xd5, 0x81, 0x88, 0x01, 0xee, - 0xfb, 0xd5, 0x81, 0x7f, 0xef, 0xfc, 0xd5, 0x81, 0x6b, 0xf0, 0xfd, 0xd5, - 0x81, 0x56, 0xf1, 0xfe, 0xd5, 0x01, 0xf2, 0xff, 0xd5, 0x81, 0x47, 0xf3, - 0x00, 0xd6, 0x81, 0x3c, 0xf4, 0x01, 0xd6, 0x81, 0x2b, 0xf5, 0x02, 0xd6, - 0x81, 0x20, 0xf6, 0x03, 0xd6, 0x01, 0xf7, 0x04, 0xd6, 0x01, 0xf8, 0x05, - 0xd6, 0x81, 0x0f, 0xf9, 0x06, 0xd6, 0x01, 0xfa, 0x07, 0xd6, 0xc1, 0x00, - 0x43, 0x45, 0x0f, 0x75, 0xd7, 0x41, 0xe9, 0x7d, 0xd7, 0x41, 0x46, 0x63, - 0x15, 0x84, 0xd7, 0x41, 0x42, 0xd7, 0x23, 0x83, 0xd7, 0x01, 0x44, 0xf2, - 0x93, 0x77, 0xd7, 0x41, 0x44, 0x1d, 0x1f, 0x82, 0xd7, 0x41, 0x42, 0x0b, - 0x00, 0x80, 0xd7, 0x41, 0x42, 0x49, 0x00, 0x85, 0xd7, 0x01, 0xe9, 0x7f, - 0xd7, 0x01, 0x42, 0x2f, 0x03, 0x87, 0xd7, 0x41, 0xad, 0x01, 0xff, 0x43, - 0xa3, 0x05, 0x88, 0xd7, 0x01, 0x45, 0x3a, 0xe4, 0x7e, 0xd7, 0x41, 0xf5, - 0x7c, 0xd7, 0x41, 0xf5, 0x7b, 0xd7, 0x41, 0x44, 0xfe, 0xe4, 0x7a, 0xd7, - 0x41, 0x44, 0xe2, 0x8e, 0x79, 0xd7, 0x41, 0x43, 0xf0, 0x04, 0x78, 0xd7, - 0x41, 0x44, 0x5e, 0x20, 0x72, 0xd7, 0x41, 0x4a, 0xfe, 0x99, 0x81, 0xd7, - 0x41, 0x46, 0x63, 0x15, 0x74, 0xd7, 0x01, 0x42, 0x12, 0x00, 0x76, 0xd7, - 0x41, 0x44, 0x6c, 0xd3, 0x73, 0xd7, 0x41, 0x42, 0x49, 0x00, 0x86, 0xd7, - 0x41, 0x43, 0x45, 0x0f, 0x71, 0xd7, 0x41, 0x44, 0x2f, 0xe1, 0x70, 0xd7, - 0x41, 0x53, 0x18, 0x47, 0x89, 0xd7, 0x01, 0x49, 0x30, 0xb7, 0x8d, 0xd7, - 0x01, 0x48, 0x0b, 0xaa, 0x8f, 0xd7, 0x41, 0x08, 0xb9, 0x05, 0xcf, 0x02, - 0x4e, 0x62, 0x15, 0xc4, 0xd7, 0x01, 0x4c, 0xe1, 0x8e, 0xc6, 0xd7, 0x01, - 0x45, 0xca, 0xe5, 0xa9, 0xd7, 0x01, 0xb0, 0xa8, 0x02, 0x4a, 0xf1, 0xad, - 0xc8, 0xd7, 0x01, 0x06, 0x0c, 0x07, 0x06, 0x4c, 0xf1, 0x93, 0xc5, 0xd7, - 0x41, 0xe1, 0x56, 0xd6, 0x81, 0x8c, 0x02, 0xe2, 0x57, 0xd6, 0x81, 0x80, - 0x02, 0xe3, 0x58, 0xd6, 0x81, 0xf4, 0x01, 0xe4, 0x59, 0xd6, 0x81, 0xe8, - 0x01, 0xe5, 0x5a, 0xd6, 0x81, 0xd6, 0x01, 0xe6, 0x5b, 0xd6, 0x81, 0xca, - 0x01, 0xe7, 0x5c, 0xd6, 0x81, 0xbe, 0x01, 0xe8, 0x5d, 0xd6, 0x01, 0xe9, - 0x5e, 0xd6, 0x81, 0xae, 0x01, 0xea, 0x5f, 0xd6, 0x01, 0xeb, 0x60, 0xd6, - 0x81, 0x9e, 0x01, 0xec, 0x61, 0xd6, 0x81, 0x92, 0x01, 0xed, 0x62, 0xd6, - 0x81, 0x88, 0x01, 0xee, 0x63, 0xd6, 0x81, 0x7f, 0xef, 0x64, 0xd6, 0x81, - 0x6b, 0xf0, 0x65, 0xd6, 0x81, 0x56, 0xf1, 0x66, 0xd6, 0x01, 0xf2, 0x67, - 0xd6, 0x81, 0x47, 0xf3, 0x68, 0xd6, 0x81, 0x3c, 0xf4, 0x69, 0xd6, 0x81, - 0x2b, 0xf5, 0x6a, 0xd6, 0x81, 0x20, 0xf6, 0x6b, 0xd6, 0x01, 0xf7, 0x6c, - 0xd6, 0x01, 0xf8, 0x6d, 0xd6, 0x81, 0x0f, 0xf9, 0x6e, 0xd6, 0x01, 0xfa, - 0x6f, 0xd6, 0xc1, 0x00, 0x43, 0x45, 0x0f, 0xaf, 0xd7, 0x41, 0xe9, 0xb7, - 0xd7, 0x41, 0x46, 0x63, 0x15, 0xbe, 0xd7, 0x41, 0x42, 0xd7, 0x23, 0xbd, - 0xd7, 0x01, 0x44, 0xf2, 0x93, 0xb1, 0xd7, 0x41, 0x44, 0x1d, 0x1f, 0xbc, - 0xd7, 0x41, 0x42, 0x0b, 0x00, 0xba, 0xd7, 0x41, 0x42, 0x49, 0x00, 0xbf, - 0xd7, 0x01, 0xe9, 0xb9, 0xd7, 0x01, 0x42, 0x2f, 0x03, 0xc1, 0xd7, 0x41, - 0xad, 0x01, 0xff, 0x43, 0xa3, 0x05, 0xc2, 0xd7, 0x01, 0x45, 0x3a, 0xe4, - 0xb8, 0xd7, 0x41, 0xf5, 0xb6, 0xd7, 0x41, 0xf5, 0xb5, 0xd7, 0x41, 0x44, - 0xfe, 0xe4, 0xb4, 0xd7, 0x41, 0x44, 0xe2, 0x8e, 0xb3, 0xd7, 0x41, 0x43, - 0xf0, 0x04, 0xb2, 0xd7, 0x41, 0x44, 0x5e, 0x20, 0xac, 0xd7, 0x41, 0x4a, - 0xfe, 0x99, 0xbb, 0xd7, 0x41, 0x46, 0x63, 0x15, 0xae, 0xd7, 0x01, 0x42, - 0x12, 0x00, 0xb0, 0xd7, 0x41, 0x44, 0x6c, 0xd3, 0xad, 0xd7, 0x41, 0x42, - 0x49, 0x00, 0xc0, 0xd7, 0x41, 0x43, 0x45, 0x0f, 0xab, 0xd7, 0x41, 0x44, - 0x2f, 0xe1, 0xaa, 0xd7, 0x41, 0x53, 0x18, 0x47, 0xc3, 0xd7, 0x01, 0x49, - 0x30, 0xb7, 0xc7, 0xd7, 0x01, 0x48, 0x0b, 0xaa, 0xc9, 0xd7, 0x41, 0xe1, - 0x3c, 0xd6, 0x81, 0x8c, 0x02, 0xe2, 0x3d, 0xd6, 0x81, 0x80, 0x02, 0xe3, - 0x3e, 0xd6, 0x81, 0xf4, 0x01, 0xe4, 0x3f, 0xd6, 0x81, 0xe8, 0x01, 0xe5, - 0x40, 0xd6, 0x81, 0xd6, 0x01, 0xe6, 0x41, 0xd6, 0x01, 0xe7, 0x42, 0xd6, - 0x81, 0xc6, 0x01, 0xe8, 0x43, 0xd6, 0x01, 0xe9, 0x44, 0xd6, 0x81, 0xb6, - 0x01, 0xea, 0x45, 0xd6, 0x01, 0xeb, 0x46, 0xd6, 0x81, 0xa6, 0x01, 0xec, - 0x47, 0xd6, 0x81, 0x9a, 0x01, 0xed, 0x48, 0xd6, 0x81, 0x90, 0x01, 0xee, - 0x49, 0xd6, 0x81, 0x86, 0x01, 0xef, 0x4a, 0xd6, 0x81, 0x72, 0xf0, 0x4b, - 0xd6, 0x81, 0x5d, 0xf1, 0x4c, 0xd6, 0x01, 0xf2, 0x4d, 0xd6, 0x81, 0x4e, - 0xf3, 0x4e, 0xd6, 0x81, 0x43, 0xf4, 0x4f, 0xd6, 0x81, 0x2b, 0xf5, 0x50, - 0xd6, 0x81, 0x20, 0xf6, 0x51, 0xd6, 0x01, 0xf7, 0x52, 0xd6, 0x01, 0xf8, - 0x53, 0xd6, 0x81, 0x0f, 0xf9, 0x54, 0xd6, 0x01, 0xfa, 0x55, 0xd6, 0xc1, - 0x00, 0x43, 0x45, 0x0f, 0x95, 0xd7, 0x41, 0xe9, 0x9d, 0xd7, 0x41, 0x46, - 0x63, 0x15, 0xa4, 0xd7, 0x41, 0x42, 0xd7, 0x23, 0xa3, 0xd7, 0x01, 0x44, - 0xf2, 0x93, 0x97, 0xd7, 0xc1, 0x00, 0x47, 0xea, 0x07, 0xa1, 0xd7, 0x41, - 0x44, 0x1d, 0x1f, 0xa2, 0xd7, 0x41, 0x42, 0x0b, 0x00, 0xa0, 0xd7, 0x41, - 0x42, 0x49, 0x00, 0xa5, 0xd7, 0x01, 0xe9, 0x9f, 0xd7, 0x01, 0x42, 0x2f, - 0x03, 0xa7, 0xd7, 0x41, 0xad, 0x01, 0xff, 0x43, 0xa3, 0x05, 0xa8, 0xd7, - 0x01, 0x45, 0x3a, 0xe4, 0x9e, 0xd7, 0x41, 0xf5, 0x9c, 0xd7, 0x41, 0xf5, - 0x9b, 0xd7, 0x41, 0x44, 0xfe, 0xe4, 0x9a, 0xd7, 0x41, 0x44, 0xe2, 0x8e, - 0x99, 0xd7, 0x41, 0x43, 0xf0, 0x04, 0x98, 0xd7, 0x41, 0x44, 0x5e, 0x20, - 0x92, 0xd7, 0x41, 0x46, 0x63, 0x15, 0x94, 0xd7, 0x01, 0x42, 0x12, 0x00, - 0x96, 0xd7, 0x41, 0x44, 0x6c, 0xd3, 0x93, 0xd7, 0x41, 0x42, 0x49, 0x00, - 0xa6, 0xd7, 0x41, 0x43, 0x45, 0x0f, 0x91, 0xd7, 0x41, 0x44, 0x2f, 0xe1, - 0x90, 0xd7, 0x41, 0x45, 0xc3, 0x0a, 0xf4, 0xd7, 0x01, 0xa6, 0x2e, 0x44, - 0x46, 0x2a, 0xf5, 0xd7, 0x01, 0x43, 0xbf, 0x0a, 0xed, 0xd7, 0x01, 0xb3, - 0x14, 0xb4, 0x06, 0x44, 0xa1, 0x1d, 0xec, 0xd7, 0x41, 0x44, 0x25, 0x01, - 0xef, 0xd7, 0x01, 0x42, 0x15, 0x02, 0xee, 0xd7, 0x41, 0x44, 0x27, 0x1d, - 0xf3, 0xd7, 0x01, 0x42, 0x60, 0x25, 0xf2, 0xd7, 0x41, 0x43, 0xa7, 0x05, - 0xf1, 0xd7, 0x01, 0x43, 0xcb, 0x06, 0xf0, 0xd7, 0x41, 0xe1, 0xd4, 0xd5, - 0x81, 0x8c, 0x02, 0xe2, 0xd5, 0xd5, 0x81, 0x80, 0x02, 0xe3, 0xd6, 0xd5, - 0x81, 0xf4, 0x01, 0xe4, 0xd7, 0xd5, 0x81, 0xe8, 0x01, 0xe5, 0xd8, 0xd5, - 0x81, 0xd6, 0x01, 0xe6, 0xd9, 0xd5, 0x01, 0xe7, 0xda, 0xd5, 0x81, 0xc6, - 0x01, 0xe8, 0xdb, 0xd5, 0x01, 0xe9, 0xdc, 0xd5, 0x81, 0xb6, 0x01, 0xea, - 0xdd, 0xd5, 0x01, 0xeb, 0xde, 0xd5, 0x81, 0xa6, 0x01, 0xec, 0xdf, 0xd5, - 0x81, 0x9a, 0x01, 0xed, 0xe0, 0xd5, 0x81, 0x90, 0x01, 0xee, 0xe1, 0xd5, - 0x81, 0x86, 0x01, 0xef, 0xe2, 0xd5, 0x81, 0x72, 0xf0, 0xe3, 0xd5, 0x81, - 0x5d, 0xf1, 0xe4, 0xd5, 0x01, 0xf2, 0xe5, 0xd5, 0x81, 0x4e, 0xf3, 0xe6, - 0xd5, 0x81, 0x43, 0xf4, 0xe7, 0xd5, 0x81, 0x2b, 0xf5, 0xe8, 0xd5, 0x81, - 0x20, 0xf6, 0xe9, 0xd5, 0x01, 0xf7, 0xea, 0xd5, 0x01, 0xf8, 0xeb, 0xd5, - 0x81, 0x0f, 0xf9, 0xec, 0xd5, 0x01, 0xfa, 0xed, 0xd5, 0xc1, 0x00, 0x43, - 0x45, 0x0f, 0x5b, 0xd7, 0x41, 0xe9, 0x63, 0xd7, 0x41, 0x46, 0x63, 0x15, - 0x6a, 0xd7, 0x41, 0x42, 0xd7, 0x23, 0x69, 0xd7, 0x01, 0x44, 0xf2, 0x93, - 0x5d, 0xd7, 0xc1, 0x00, 0x47, 0xea, 0x07, 0x67, 0xd7, 0x41, 0x44, 0x1d, - 0x1f, 0x68, 0xd7, 0x41, 0x42, 0x0b, 0x00, 0x66, 0xd7, 0x41, 0x42, 0x49, - 0x00, 0x6b, 0xd7, 0x01, 0xe9, 0x65, 0xd7, 0x01, 0x42, 0x2f, 0x03, 0x6d, - 0xd7, 0x41, 0xad, 0x01, 0xff, 0x43, 0xa3, 0x05, 0x6e, 0xd7, 0x01, 0x45, - 0x3a, 0xe4, 0x64, 0xd7, 0x41, 0xf5, 0x62, 0xd7, 0x41, 0xf5, 0x61, 0xd7, - 0x41, 0x44, 0xfe, 0xe4, 0x60, 0xd7, 0x41, 0x44, 0xe2, 0x8e, 0x5f, 0xd7, - 0x41, 0x43, 0xf0, 0x04, 0x5e, 0xd7, 0x41, 0x44, 0x5e, 0x20, 0x58, 0xd7, - 0x41, 0x46, 0x63, 0x15, 0x5a, 0xd7, 0x01, 0x42, 0x12, 0x00, 0x5c, 0xd7, - 0x41, 0x44, 0x6c, 0xd3, 0x59, 0xd7, 0x41, 0x42, 0x49, 0x00, 0x6c, 0xd7, - 0x41, 0x43, 0x45, 0x0f, 0x57, 0xd7, 0x41, 0x44, 0x2f, 0xe1, 0x56, 0xd7, - 0x41, 0x04, 0xca, 0x00, 0x06, 0x4d, 0x52, 0x30, 0xcb, 0x27, 0x40, 0x4d, - 0xef, 0x0e, 0xe9, 0x27, 0x00, 0x54, 0x97, 0x40, 0xeb, 0x27, 0x00, 0x55, - 0x60, 0x3a, 0xef, 0x27, 0x00, 0x06, 0xad, 0x02, 0x01, 0xff, 0x4e, 0x27, - 0x26, 0xe7, 0x27, 0x00, 0x56, 0x05, 0x09, 0xed, 0x27, 0x40, 0x08, 0xb9, - 0x05, 0xb3, 0x01, 0x06, 0xc4, 0x06, 0x6d, 0x06, 0x0c, 0x07, 0x01, 0xff, - 0xe1, 0x8a, 0xd6, 0x01, 0xe2, 0x8b, 0xd6, 0x01, 0xe3, 0x8c, 0xd6, 0x01, - 0xe4, 0x8d, 0xd6, 0x01, 0xe5, 0x8e, 0xd6, 0x01, 0xe6, 0x8f, 0xd6, 0x01, - 0xe7, 0x90, 0xd6, 0x01, 0xe8, 0x91, 0xd6, 0x01, 0xe9, 0x92, 0xd6, 0x01, - 0xea, 0x93, 0xd6, 0x01, 0xeb, 0x94, 0xd6, 0x01, 0xec, 0x95, 0xd6, 0x01, - 0xed, 0x96, 0xd6, 0x01, 0xee, 0x97, 0xd6, 0x01, 0xef, 0x98, 0xd6, 0x01, - 0xf0, 0x99, 0xd6, 0x01, 0xf1, 0x9a, 0xd6, 0x01, 0xf2, 0x9b, 0xd6, 0x01, - 0xf3, 0x9c, 0xd6, 0x01, 0xf4, 0x9d, 0xd6, 0x01, 0xf5, 0x9e, 0xd6, 0x01, - 0xf6, 0x9f, 0xd6, 0x01, 0xf7, 0xa0, 0xd6, 0x01, 0xf8, 0xa1, 0xd6, 0x01, - 0xf9, 0xa2, 0xd6, 0x01, 0xfa, 0xa3, 0xd6, 0x41, 0x45, 0xc3, 0x0a, 0xfe, - 0xd7, 0x01, 0xa6, 0x2e, 0x44, 0x46, 0x2a, 0xff, 0xd7, 0x01, 0x43, 0xbf, - 0x0a, 0xf7, 0xd7, 0x01, 0xb3, 0x14, 0xb4, 0x06, 0x44, 0xa1, 0x1d, 0xf6, - 0xd7, 0x41, 0x44, 0x25, 0x01, 0xf9, 0xd7, 0x01, 0x42, 0x15, 0x02, 0xf8, - 0xd7, 0x41, 0x44, 0x27, 0x1d, 0xfd, 0xd7, 0x01, 0x42, 0x60, 0x25, 0xfc, - 0xd7, 0x41, 0x43, 0xa7, 0x05, 0xfb, 0xd7, 0x01, 0x43, 0xcb, 0x06, 0xfa, - 0xd7, 0x41, 0xe1, 0x70, 0xd6, 0x01, 0xe2, 0x71, 0xd6, 0x01, 0xe3, 0x72, - 0xd6, 0x01, 0xe4, 0x73, 0xd6, 0x01, 0xe5, 0x74, 0xd6, 0x01, 0xe6, 0x75, - 0xd6, 0x01, 0xe7, 0x76, 0xd6, 0x01, 0xe8, 0x77, 0xd6, 0x01, 0xe9, 0x78, - 0xd6, 0x01, 0xea, 0x79, 0xd6, 0x01, 0xeb, 0x7a, 0xd6, 0x01, 0xec, 0x7b, - 0xd6, 0x01, 0xed, 0x7c, 0xd6, 0x01, 0xee, 0x7d, 0xd6, 0x01, 0xef, 0x7e, - 0xd6, 0x01, 0xf0, 0x7f, 0xd6, 0x01, 0xf1, 0x80, 0xd6, 0x01, 0xf2, 0x81, - 0xd6, 0x01, 0xf3, 0x82, 0xd6, 0x01, 0xf4, 0x83, 0xd6, 0x01, 0xf5, 0x84, - 0xd6, 0x01, 0xf6, 0x85, 0xd6, 0x01, 0xf7, 0x86, 0xd6, 0x01, 0xf8, 0x87, - 0xd6, 0x01, 0xf9, 0x88, 0xd6, 0x01, 0xfa, 0x89, 0xd6, 0x41, 0x4d, 0xef, - 0x0e, 0xe8, 0x27, 0x00, 0x54, 0x97, 0x40, 0xea, 0x27, 0x00, 0x55, 0x60, - 0x3a, 0xee, 0x27, 0x00, 0x06, 0xad, 0x02, 0x01, 0xff, 0x4e, 0x27, 0x26, - 0xe6, 0x27, 0x00, 0x56, 0x05, 0x09, 0xec, 0x27, 0x40, 0x08, 0xb9, 0x05, - 0xd8, 0x02, 0x4e, 0x62, 0x15, 0x16, 0xd7, 0x01, 0x4c, 0xe1, 0x8e, 0x18, - 0xd7, 0x01, 0x45, 0xca, 0xe5, 0xfb, 0xd6, 0x01, 0xb0, 0xb1, 0x02, 0x4a, - 0xf1, 0xad, 0x1a, 0xd7, 0x01, 0x06, 0x0c, 0x07, 0x06, 0x4c, 0xf1, 0x93, - 0x17, 0xd7, 0x41, 0xe1, 0x4e, 0xd4, 0x81, 0x95, 0x02, 0xe2, 0x4f, 0xd4, - 0x81, 0x89, 0x02, 0xe3, 0x50, 0xd4, 0x81, 0xfd, 0x01, 0xe4, 0x51, 0xd4, - 0x81, 0xe4, 0x01, 0xe5, 0x52, 0xd4, 0x81, 0xd2, 0x01, 0xe6, 0x53, 0xd4, - 0x81, 0xc6, 0x01, 0xe7, 0x54, 0xd4, 0x81, 0xba, 0x01, 0xe9, 0x56, 0xd4, - 0x81, 0xae, 0x01, 0xea, 0x57, 0xd4, 0x01, 0xeb, 0x58, 0xd4, 0x81, 0x9e, - 0x01, 0xec, 0x59, 0xd4, 0x81, 0x92, 0x01, 0xed, 0x5a, 0xd4, 0x81, 0x88, - 0x01, 0xee, 0x5b, 0xd4, 0x81, 0x7f, 0xef, 0x5c, 0xd4, 0x81, 0x6b, 0xf0, - 0x5d, 0xd4, 0x81, 0x56, 0xf1, 0x5e, 0xd4, 0x01, 0xf2, 0x5f, 0xd4, 0x81, - 0x47, 0xf3, 0x60, 0xd4, 0x81, 0x3c, 0xf4, 0x61, 0xd4, 0x81, 0x2b, 0xf5, - 0x62, 0xd4, 0x81, 0x20, 0xf6, 0x63, 0xd4, 0x01, 0xf7, 0x64, 0xd4, 0x01, - 0xf8, 0x65, 0xd4, 0x81, 0x0f, 0xf9, 0x66, 0xd4, 0x01, 0xfa, 0x67, 0xd4, - 0xc1, 0x00, 0x43, 0x45, 0x0f, 0x01, 0xd7, 0x41, 0xe9, 0x09, 0xd7, 0x41, - 0x46, 0x63, 0x15, 0x10, 0xd7, 0x41, 0x42, 0xd7, 0x23, 0x0f, 0xd7, 0x01, - 0x44, 0xf2, 0x93, 0x03, 0xd7, 0x41, 0x44, 0x1d, 0x1f, 0x0e, 0xd7, 0x41, - 0x42, 0x0b, 0x00, 0x0c, 0xd7, 0x41, 0x42, 0x49, 0x00, 0x11, 0xd7, 0x01, - 0xe9, 0x0b, 0xd7, 0x01, 0x42, 0x2f, 0x03, 0x13, 0xd7, 0x41, 0xad, 0x01, - 0xff, 0x43, 0xa3, 0x05, 0x14, 0xd7, 0x01, 0x45, 0x3a, 0xe4, 0x0a, 0xd7, - 0x41, 0xf5, 0x08, 0xd7, 0x41, 0xf5, 0x07, 0xd7, 0x41, 0x44, 0xfe, 0xe4, - 0x06, 0xd7, 0x41, 0x44, 0xe2, 0x8e, 0x05, 0xd7, 0x41, 0x43, 0xf0, 0x04, - 0x04, 0xd7, 0x41, 0x44, 0x5e, 0x20, 0xfe, 0xd6, 0x41, 0x4a, 0xfe, 0x99, - 0x0d, 0xd7, 0x41, 0x46, 0x63, 0x15, 0x00, 0xd7, 0x01, 0x42, 0x12, 0x00, - 0x02, 0xd7, 0x41, 0x44, 0x6c, 0xd3, 0xff, 0xd6, 0x01, 0x07, 0x84, 0x40, - 0x01, 0xff, 0xe9, 0xa4, 0xd6, 0x01, 0xea, 0xa5, 0xd6, 0x41, 0x42, 0x49, - 0x00, 0x12, 0xd7, 0x41, 0x43, 0x45, 0x0f, 0xfd, 0xd6, 0x41, 0x44, 0x2f, - 0xe1, 0xfc, 0xd6, 0x41, 0x53, 0x18, 0x47, 0x15, 0xd7, 0x01, 0x49, 0x30, - 0xb7, 0x19, 0xd7, 0x01, 0x48, 0x0b, 0xaa, 0x1b, 0xd7, 0x41, 0xe1, 0x34, - 0xd4, 0x81, 0x8c, 0x02, 0xe2, 0x35, 0xd4, 0x81, 0x80, 0x02, 0xe3, 0x36, - 0xd4, 0x81, 0xf4, 0x01, 0xe4, 0x37, 0xd4, 0x81, 0xe8, 0x01, 0xe5, 0x38, - 0xd4, 0x81, 0xd6, 0x01, 0xe6, 0x39, 0xd4, 0x01, 0xe7, 0x3a, 0xd4, 0x81, - 0xc6, 0x01, 0xe8, 0x3b, 0xd4, 0x01, 0xe9, 0x3c, 0xd4, 0x81, 0xb6, 0x01, - 0xea, 0x3d, 0xd4, 0x01, 0xeb, 0x3e, 0xd4, 0x81, 0xa6, 0x01, 0xec, 0x3f, - 0xd4, 0x81, 0x9a, 0x01, 0xed, 0x40, 0xd4, 0x81, 0x90, 0x01, 0xee, 0x41, - 0xd4, 0x81, 0x86, 0x01, 0xef, 0x42, 0xd4, 0x81, 0x72, 0xf0, 0x43, 0xd4, - 0x81, 0x5d, 0xf1, 0x44, 0xd4, 0x01, 0xf2, 0x45, 0xd4, 0x81, 0x4e, 0xf3, - 0x46, 0xd4, 0x81, 0x43, 0xf4, 0x47, 0xd4, 0x81, 0x2b, 0xf5, 0x48, 0xd4, - 0x81, 0x20, 0xf6, 0x49, 0xd4, 0x01, 0xf7, 0x4a, 0xd4, 0x01, 0xf8, 0x4b, - 0xd4, 0x81, 0x0f, 0xf9, 0x4c, 0xd4, 0x01, 0xfa, 0x4d, 0xd4, 0xc1, 0x00, - 0x43, 0x45, 0x0f, 0xe7, 0xd6, 0x41, 0xe9, 0xef, 0xd6, 0x41, 0x46, 0x63, - 0x15, 0xf6, 0xd6, 0x41, 0x42, 0xd7, 0x23, 0xf5, 0xd6, 0x01, 0x44, 0xf2, - 0x93, 0xe9, 0xd6, 0xc1, 0x00, 0x47, 0xea, 0x07, 0xf3, 0xd6, 0x41, 0x44, - 0x1d, 0x1f, 0xf4, 0xd6, 0x41, 0x42, 0x0b, 0x00, 0xf2, 0xd6, 0x41, 0x42, - 0x49, 0x00, 0xf7, 0xd6, 0x01, 0xe9, 0xf1, 0xd6, 0x01, 0x42, 0x2f, 0x03, - 0xf9, 0xd6, 0x41, 0xad, 0x01, 0xff, 0x43, 0xa3, 0x05, 0xfa, 0xd6, 0x01, - 0x45, 0x3a, 0xe4, 0xf0, 0xd6, 0x41, 0xf5, 0xee, 0xd6, 0x41, 0xf5, 0xed, - 0xd6, 0x41, 0x44, 0xfe, 0xe4, 0xec, 0xd6, 0x41, 0x44, 0xe2, 0x8e, 0xeb, - 0xd6, 0x41, 0x43, 0xf0, 0x04, 0xea, 0xd6, 0x41, 0x44, 0x5e, 0x20, 0xe4, - 0xd6, 0x41, 0x46, 0x63, 0x15, 0xe6, 0xd6, 0x01, 0x42, 0x12, 0x00, 0xe8, - 0xd6, 0x41, 0x44, 0x6c, 0xd3, 0xe5, 0xd6, 0x41, 0x42, 0x49, 0x00, 0xf8, - 0xd6, 0x41, 0x43, 0x45, 0x0f, 0xe3, 0xd6, 0x41, 0x44, 0x2f, 0xe1, 0xe2, - 0xd6, 0x41, 0x4f, 0x53, 0x38, 0xcd, 0x27, 0x00, 0x07, 0xb3, 0xc3, 0x01, - 0xff, 0x08, 0xb9, 0x05, 0x6d, 0x06, 0x0c, 0x07, 0x01, 0xff, 0xe1, 0x1e, - 0xd5, 0x01, 0xe2, 0x1f, 0xd5, 0x01, 0xe3, 0x20, 0xd5, 0x01, 0xe4, 0x21, - 0xd5, 0x01, 0xe5, 0x22, 0xd5, 0x01, 0xe6, 0x23, 0xd5, 0x01, 0xe7, 0x24, - 0xd5, 0x01, 0xe8, 0x25, 0xd5, 0x01, 0xe9, 0x26, 0xd5, 0x01, 0xea, 0x27, - 0xd5, 0x01, 0xeb, 0x28, 0xd5, 0x01, 0xec, 0x29, 0xd5, 0x01, 0xed, 0x2a, - 0xd5, 0x01, 0xee, 0x2b, 0xd5, 0x01, 0xef, 0x2c, 0xd5, 0x01, 0xf0, 0x2d, - 0xd5, 0x01, 0xf1, 0x2e, 0xd5, 0x01, 0xf2, 0x2f, 0xd5, 0x01, 0xf3, 0x30, - 0xd5, 0x01, 0xf4, 0x31, 0xd5, 0x01, 0xf5, 0x32, 0xd5, 0x01, 0xf6, 0x33, - 0xd5, 0x01, 0xf7, 0x34, 0xd5, 0x01, 0xf8, 0x35, 0xd5, 0x01, 0xf9, 0x36, - 0xd5, 0x01, 0xfa, 0x37, 0xd5, 0x41, 0xe1, 0x04, 0xd5, 0x01, 0xe2, 0x05, - 0xd5, 0x01, 0xe4, 0x07, 0xd5, 0x01, 0xe5, 0x08, 0xd5, 0x01, 0xe6, 0x09, - 0xd5, 0x01, 0xe7, 0x0a, 0xd5, 0x01, 0xea, 0x0d, 0xd5, 0x01, 0xeb, 0x0e, - 0xd5, 0x01, 0xec, 0x0f, 0xd5, 0x01, 0xed, 0x10, 0xd5, 0x01, 0xee, 0x11, - 0xd5, 0x01, 0xef, 0x12, 0xd5, 0x01, 0xf0, 0x13, 0xd5, 0x01, 0xf1, 0x14, - 0xd5, 0x01, 0xf3, 0x16, 0xd5, 0x01, 0xf4, 0x17, 0xd5, 0x01, 0xf5, 0x18, - 0xd5, 0x01, 0xf6, 0x19, 0xd5, 0x01, 0xf7, 0x1a, 0xd5, 0x01, 0xf8, 0x1b, - 0xd5, 0x01, 0xf9, 0x1c, 0xd5, 0x41, 0x08, 0xb9, 0x05, 0xb3, 0x01, 0x06, - 0xc4, 0x06, 0x6d, 0x06, 0x0c, 0x07, 0x01, 0xff, 0xe1, 0x52, 0xd5, 0x01, - 0xe2, 0x53, 0xd5, 0x01, 0xe3, 0x54, 0xd5, 0x01, 0xe4, 0x55, 0xd5, 0x01, - 0xe5, 0x56, 0xd5, 0x01, 0xe6, 0x57, 0xd5, 0x01, 0xe7, 0x58, 0xd5, 0x01, - 0xe8, 0x59, 0xd5, 0x01, 0xe9, 0x5a, 0xd5, 0x01, 0xea, 0x5b, 0xd5, 0x01, - 0xeb, 0x5c, 0xd5, 0x01, 0xec, 0x5d, 0xd5, 0x01, 0xed, 0x5e, 0xd5, 0x01, - 0xee, 0x5f, 0xd5, 0x01, 0xef, 0x60, 0xd5, 0x01, 0xf0, 0x61, 0xd5, 0x01, - 0xf1, 0x62, 0xd5, 0x01, 0xf2, 0x63, 0xd5, 0x01, 0xf3, 0x64, 0xd5, 0x01, - 0xf4, 0x65, 0xd5, 0x01, 0xf5, 0x66, 0xd5, 0x01, 0xf6, 0x67, 0xd5, 0x01, - 0xf7, 0x68, 0xd5, 0x01, 0xf8, 0x69, 0xd5, 0x01, 0xf9, 0x6a, 0xd5, 0x01, - 0xfa, 0x6b, 0xd5, 0x41, 0x45, 0xc3, 0x0a, 0xe0, 0xd7, 0x01, 0xa6, 0x2e, - 0x44, 0x46, 0x2a, 0xe1, 0xd7, 0x01, 0x43, 0xbf, 0x0a, 0xd9, 0xd7, 0x01, - 0xb3, 0x14, 0xb4, 0x06, 0x44, 0xa1, 0x1d, 0xd8, 0xd7, 0x41, 0x44, 0x25, - 0x01, 0xdb, 0xd7, 0x01, 0x42, 0x15, 0x02, 0xda, 0xd7, 0x41, 0x44, 0x27, - 0x1d, 0xdf, 0xd7, 0x01, 0x42, 0x60, 0x25, 0xde, 0xd7, 0x41, 0x43, 0xa7, - 0x05, 0xdd, 0xd7, 0x01, 0x43, 0xcb, 0x06, 0xdc, 0xd7, 0x41, 0xe1, 0x38, - 0xd5, 0x01, 0xe2, 0x39, 0xd5, 0x01, 0xe4, 0x3b, 0xd5, 0x01, 0xe5, 0x3c, - 0xd5, 0x01, 0xe6, 0x3d, 0xd5, 0x01, 0xe7, 0x3e, 0xd5, 0x01, 0xe9, 0x40, - 0xd5, 0x01, 0xea, 0x41, 0xd5, 0x01, 0xeb, 0x42, 0xd5, 0x01, 0xec, 0x43, - 0xd5, 0x01, 0xed, 0x44, 0xd5, 0x01, 0xef, 0x46, 0xd5, 0x01, 0xf3, 0x4a, - 0xd5, 0x01, 0xf4, 0x4b, 0xd5, 0x01, 0xf5, 0x4c, 0xd5, 0x01, 0xf6, 0x4d, - 0xd5, 0x01, 0xf7, 0x4e, 0xd5, 0x01, 0xf8, 0x4f, 0xd5, 0x01, 0xf9, 0x50, - 0xd5, 0x41, 0x08, 0xb9, 0x05, 0xcc, 0x0b, 0x06, 0xc4, 0x06, 0x85, 0x0b, - 0x4e, 0x62, 0x15, 0xdc, 0xd6, 0x01, 0x08, 0xb2, 0xc3, 0xa1, 0x09, 0x07, - 0x38, 0xcf, 0xb0, 0x04, 0x4c, 0xe1, 0x8e, 0xde, 0xd6, 0x01, 0x45, 0xca, - 0xe5, 0xc1, 0xd6, 0x01, 0xb0, 0x8f, 0x04, 0x4a, 0xf1, 0xad, 0xe0, 0xd6, - 0x01, 0xb3, 0x06, 0x4c, 0xf1, 0x93, 0xdd, 0xd6, 0x41, 0x06, 0x4a, 0x06, - 0xa3, 0x02, 0x05, 0x0d, 0x07, 0x01, 0xff, 0xe1, 0x1a, 0xd4, 0x81, 0x92, - 0x02, 0xe2, 0x1b, 0xd4, 0x81, 0x86, 0x02, 0xe3, 0x1c, 0xd4, 0x81, 0xfa, - 0x01, 0xe4, 0x1d, 0xd4, 0x81, 0xe8, 0x01, 0xe5, 0x1e, 0xd4, 0x81, 0xd6, - 0x01, 0xe6, 0x1f, 0xd4, 0x81, 0xca, 0x01, 0xe7, 0x20, 0xd4, 0x81, 0xbe, - 0x01, 0xe8, 0x21, 0xd4, 0x01, 0xe9, 0x22, 0xd4, 0x81, 0xae, 0x01, 0xea, - 0x23, 0xd4, 0x01, 0xeb, 0x24, 0xd4, 0x81, 0x9e, 0x01, 0xec, 0x25, 0xd4, - 0x81, 0x92, 0x01, 0xed, 0x26, 0xd4, 0x81, 0x88, 0x01, 0xee, 0x27, 0xd4, - 0x81, 0x7f, 0xef, 0x28, 0xd4, 0x81, 0x6b, 0xf0, 0x29, 0xd4, 0x81, 0x56, - 0xf1, 0x2a, 0xd4, 0x01, 0xf2, 0x2b, 0xd4, 0x81, 0x47, 0xf3, 0x2c, 0xd4, - 0x81, 0x3c, 0xf4, 0x2d, 0xd4, 0x81, 0x2b, 0xf5, 0x2e, 0xd4, 0x81, 0x20, - 0xf6, 0x2f, 0xd4, 0x01, 0xf7, 0x30, 0xd4, 0x01, 0xf8, 0x31, 0xd4, 0x81, - 0x0f, 0xf9, 0x32, 0xd4, 0x01, 0xfa, 0x33, 0xd4, 0xc1, 0x00, 0x43, 0x45, - 0x0f, 0xc7, 0xd6, 0x41, 0xe9, 0xcf, 0xd6, 0x41, 0x46, 0x63, 0x15, 0xd6, - 0xd6, 0x41, 0x42, 0xd7, 0x23, 0xd5, 0xd6, 0x01, 0x44, 0xf2, 0x93, 0xc9, - 0xd6, 0x41, 0x44, 0x1d, 0x1f, 0xd4, 0xd6, 0x41, 0x42, 0x0b, 0x00, 0xd2, - 0xd6, 0x41, 0x42, 0x49, 0x00, 0xd7, 0xd6, 0x01, 0xe9, 0xd1, 0xd6, 0x01, - 0x42, 0x2f, 0x03, 0xd9, 0xd6, 0x41, 0xad, 0x01, 0xff, 0x43, 0xa3, 0x05, - 0xda, 0xd6, 0x01, 0x45, 0x3a, 0xe4, 0xd0, 0xd6, 0x41, 0xf5, 0xce, 0xd6, - 0x41, 0xf5, 0xcd, 0xd6, 0x41, 0x44, 0xfe, 0xe4, 0xcc, 0xd6, 0x41, 0x44, - 0xe2, 0x8e, 0xcb, 0xd6, 0x41, 0x43, 0xf0, 0x04, 0xca, 0xd6, 0x41, 0x44, - 0x5e, 0x20, 0xc4, 0xd6, 0x41, 0x4a, 0xfe, 0x99, 0xd3, 0xd6, 0x41, 0x46, - 0x63, 0x15, 0xc6, 0xd6, 0x01, 0x42, 0x12, 0x00, 0xc8, 0xd6, 0x41, 0x44, - 0x6c, 0xd3, 0xc5, 0xd6, 0x01, 0x46, 0xd1, 0x56, 0xcb, 0xd7, 0x41, 0x42, - 0x49, 0x00, 0xd8, 0xd6, 0x41, 0x43, 0x45, 0x0f, 0xc3, 0xd6, 0x41, 0x44, - 0x2f, 0xe1, 0xc2, 0xd6, 0x41, 0x08, 0xb9, 0x05, 0x6d, 0x06, 0x0c, 0x07, - 0x01, 0xff, 0xe1, 0xea, 0xd4, 0x01, 0xe2, 0xeb, 0xd4, 0x01, 0xe3, 0xec, - 0xd4, 0x01, 0xe4, 0xed, 0xd4, 0x01, 0xe5, 0xee, 0xd4, 0x01, 0xe6, 0xef, - 0xd4, 0x01, 0xe7, 0xf0, 0xd4, 0x01, 0xe8, 0xf1, 0xd4, 0x01, 0xe9, 0xf2, - 0xd4, 0x01, 0xea, 0xf3, 0xd4, 0x01, 0xeb, 0xf4, 0xd4, 0x01, 0xec, 0xf5, - 0xd4, 0x01, 0xed, 0xf6, 0xd4, 0x01, 0xee, 0xf7, 0xd4, 0x01, 0xef, 0xf8, - 0xd4, 0x01, 0xf0, 0xf9, 0xd4, 0x01, 0xf1, 0xfa, 0xd4, 0x01, 0xf2, 0xfb, - 0xd4, 0x01, 0xf3, 0xfc, 0xd4, 0x01, 0xf4, 0xfd, 0xd4, 0x01, 0xf5, 0xfe, - 0xd4, 0x01, 0xf6, 0xff, 0xd4, 0x01, 0xf7, 0x00, 0xd5, 0x01, 0xf8, 0x01, - 0xd5, 0x01, 0xf9, 0x02, 0xd5, 0x01, 0xfa, 0x03, 0xd5, 0x41, 0xe1, 0xd0, - 0xd4, 0x01, 0xe2, 0xd1, 0xd4, 0x01, 0xe3, 0xd2, 0xd4, 0x01, 0xe4, 0xd3, - 0xd4, 0x01, 0xe5, 0xd4, 0xd4, 0x01, 0xe6, 0xd5, 0xd4, 0x01, 0xe7, 0xd6, - 0xd4, 0x01, 0xe8, 0xd7, 0xd4, 0x01, 0xe9, 0xd8, 0xd4, 0x01, 0xea, 0xd9, - 0xd4, 0x01, 0xeb, 0xda, 0xd4, 0x01, 0xec, 0xdb, 0xd4, 0x01, 0xed, 0xdc, - 0xd4, 0x01, 0xee, 0xdd, 0xd4, 0x01, 0xef, 0xde, 0xd4, 0x01, 0xf0, 0xdf, - 0xd4, 0x01, 0xf1, 0xe0, 0xd4, 0x01, 0xf2, 0xe1, 0xd4, 0x01, 0xf3, 0xe2, - 0xd4, 0x01, 0xf4, 0xe3, 0xd4, 0x01, 0xf5, 0xe4, 0xd4, 0x01, 0xf6, 0xe5, - 0xd4, 0x01, 0xf7, 0xe6, 0xd4, 0x01, 0xf8, 0xe7, 0xd4, 0x01, 0xf9, 0xe8, - 0xd4, 0x01, 0xfa, 0xe9, 0xd4, 0x41, 0x53, 0x18, 0x47, 0xdb, 0xd6, 0x01, - 0x49, 0x30, 0xb7, 0xdf, 0xd6, 0x01, 0x48, 0x0b, 0xaa, 0xe1, 0xd6, 0x41, - 0x08, 0xb9, 0x05, 0xcf, 0x02, 0x4e, 0x62, 0x15, 0x50, 0xd7, 0x01, 0x4c, - 0xe1, 0x8e, 0x52, 0xd7, 0x01, 0x45, 0xca, 0xe5, 0x35, 0xd7, 0x01, 0xb0, - 0xa8, 0x02, 0x4a, 0xf1, 0xad, 0x54, 0xd7, 0x01, 0x06, 0x0c, 0x07, 0x06, - 0x4c, 0xf1, 0x93, 0x51, 0xd7, 0x41, 0xe1, 0x82, 0xd4, 0x81, 0x8c, 0x02, - 0xe2, 0x83, 0xd4, 0x81, 0x80, 0x02, 0xe3, 0x84, 0xd4, 0x81, 0xf4, 0x01, - 0xe4, 0x85, 0xd4, 0x81, 0xe8, 0x01, 0xe5, 0x86, 0xd4, 0x81, 0xd6, 0x01, - 0xe6, 0x87, 0xd4, 0x81, 0xca, 0x01, 0xe7, 0x88, 0xd4, 0x81, 0xbe, 0x01, - 0xe8, 0x89, 0xd4, 0x01, 0xe9, 0x8a, 0xd4, 0x81, 0xae, 0x01, 0xea, 0x8b, - 0xd4, 0x01, 0xeb, 0x8c, 0xd4, 0x81, 0x9e, 0x01, 0xec, 0x8d, 0xd4, 0x81, - 0x92, 0x01, 0xed, 0x8e, 0xd4, 0x81, 0x88, 0x01, 0xee, 0x8f, 0xd4, 0x81, - 0x7f, 0xef, 0x90, 0xd4, 0x81, 0x6b, 0xf0, 0x91, 0xd4, 0x81, 0x56, 0xf1, - 0x92, 0xd4, 0x01, 0xf2, 0x93, 0xd4, 0x81, 0x47, 0xf3, 0x94, 0xd4, 0x81, - 0x3c, 0xf4, 0x95, 0xd4, 0x81, 0x2b, 0xf5, 0x96, 0xd4, 0x81, 0x20, 0xf6, - 0x97, 0xd4, 0x01, 0xf7, 0x98, 0xd4, 0x01, 0xf8, 0x99, 0xd4, 0x81, 0x0f, - 0xf9, 0x9a, 0xd4, 0x01, 0xfa, 0x9b, 0xd4, 0xc1, 0x00, 0x43, 0x45, 0x0f, - 0x3b, 0xd7, 0x41, 0xe9, 0x43, 0xd7, 0x41, 0x46, 0x63, 0x15, 0x4a, 0xd7, - 0x41, 0x42, 0xd7, 0x23, 0x49, 0xd7, 0x01, 0x44, 0xf2, 0x93, 0x3d, 0xd7, - 0x41, 0x44, 0x1d, 0x1f, 0x48, 0xd7, 0x41, 0x42, 0x0b, 0x00, 0x46, 0xd7, - 0x41, 0x42, 0x49, 0x00, 0x4b, 0xd7, 0x01, 0xe9, 0x45, 0xd7, 0x01, 0x42, - 0x2f, 0x03, 0x4d, 0xd7, 0x41, 0xad, 0x01, 0xff, 0x43, 0xa3, 0x05, 0x4e, - 0xd7, 0x01, 0x45, 0x3a, 0xe4, 0x44, 0xd7, 0x41, 0xf5, 0x42, 0xd7, 0x41, - 0xf5, 0x41, 0xd7, 0x41, 0x44, 0xfe, 0xe4, 0x40, 0xd7, 0x41, 0x44, 0xe2, - 0x8e, 0x3f, 0xd7, 0x41, 0x43, 0xf0, 0x04, 0x3e, 0xd7, 0x41, 0x44, 0x5e, - 0x20, 0x38, 0xd7, 0x41, 0x4a, 0xfe, 0x99, 0x47, 0xd7, 0x41, 0x46, 0x63, - 0x15, 0x3a, 0xd7, 0x01, 0x42, 0x12, 0x00, 0x3c, 0xd7, 0x41, 0x44, 0x6c, - 0xd3, 0x39, 0xd7, 0x41, 0x42, 0x49, 0x00, 0x4c, 0xd7, 0x41, 0x43, 0x45, - 0x0f, 0x37, 0xd7, 0x41, 0x44, 0x2f, 0xe1, 0x36, 0xd7, 0x41, 0x53, 0x18, - 0x47, 0x4f, 0xd7, 0x01, 0x49, 0x30, 0xb7, 0x53, 0xd7, 0x01, 0x48, 0x0b, - 0xaa, 0x55, 0xd7, 0x41, 0xe1, 0x68, 0xd4, 0x81, 0x8c, 0x02, 0xe2, 0x69, - 0xd4, 0x81, 0x80, 0x02, 0xe3, 0x6a, 0xd4, 0x81, 0xf4, 0x01, 0xe4, 0x6b, - 0xd4, 0x81, 0xe8, 0x01, 0xe5, 0x6c, 0xd4, 0x81, 0xd6, 0x01, 0xe6, 0x6d, - 0xd4, 0x01, 0xe7, 0x6e, 0xd4, 0x81, 0xc6, 0x01, 0xe8, 0x6f, 0xd4, 0x01, - 0xe9, 0x70, 0xd4, 0x81, 0xb6, 0x01, 0xea, 0x71, 0xd4, 0x01, 0xeb, 0x72, - 0xd4, 0x81, 0xa6, 0x01, 0xec, 0x73, 0xd4, 0x81, 0x9a, 0x01, 0xed, 0x74, - 0xd4, 0x81, 0x90, 0x01, 0xee, 0x75, 0xd4, 0x81, 0x86, 0x01, 0xef, 0x76, - 0xd4, 0x81, 0x72, 0xf0, 0x77, 0xd4, 0x81, 0x5d, 0xf1, 0x78, 0xd4, 0x01, - 0xf2, 0x79, 0xd4, 0x81, 0x4e, 0xf3, 0x7a, 0xd4, 0x81, 0x43, 0xf4, 0x7b, - 0xd4, 0x81, 0x2b, 0xf5, 0x7c, 0xd4, 0x81, 0x20, 0xf6, 0x7d, 0xd4, 0x01, - 0xf7, 0x7e, 0xd4, 0x01, 0xf8, 0x7f, 0xd4, 0x81, 0x0f, 0xf9, 0x80, 0xd4, - 0x01, 0xfa, 0x81, 0xd4, 0xc1, 0x00, 0x43, 0x45, 0x0f, 0x21, 0xd7, 0x41, - 0xe9, 0x29, 0xd7, 0x41, 0x46, 0x63, 0x15, 0x30, 0xd7, 0x41, 0x42, 0xd7, - 0x23, 0x2f, 0xd7, 0x01, 0x44, 0xf2, 0x93, 0x23, 0xd7, 0xc1, 0x00, 0x47, - 0xea, 0x07, 0x2d, 0xd7, 0x41, 0x44, 0x1d, 0x1f, 0x2e, 0xd7, 0x41, 0x42, - 0x0b, 0x00, 0x2c, 0xd7, 0x41, 0x42, 0x49, 0x00, 0x31, 0xd7, 0x01, 0xe9, - 0x2b, 0xd7, 0x01, 0x42, 0x2f, 0x03, 0x33, 0xd7, 0x41, 0xad, 0x01, 0xff, - 0x43, 0xa3, 0x05, 0x34, 0xd7, 0x01, 0x45, 0x3a, 0xe4, 0x2a, 0xd7, 0x41, - 0xf5, 0x28, 0xd7, 0x41, 0xf5, 0x27, 0xd7, 0x41, 0x44, 0xfe, 0xe4, 0x26, - 0xd7, 0x41, 0x44, 0xe2, 0x8e, 0x25, 0xd7, 0x41, 0x43, 0xf0, 0x04, 0x24, - 0xd7, 0x41, 0x44, 0x5e, 0x20, 0x1e, 0xd7, 0x41, 0x46, 0x63, 0x15, 0x20, - 0xd7, 0x01, 0x42, 0x12, 0x00, 0x22, 0xd7, 0x41, 0x44, 0x6c, 0xd3, 0x1f, - 0xd7, 0x41, 0x42, 0x49, 0x00, 0x32, 0xd7, 0x41, 0x43, 0x45, 0x0f, 0x1d, - 0xd7, 0x41, 0x44, 0x2f, 0xe1, 0x1c, 0xd7, 0x41, 0x08, 0xb9, 0x05, 0x6d, - 0x06, 0x0c, 0x07, 0x01, 0xff, 0xe1, 0x86, 0xd5, 0x01, 0xe2, 0x87, 0xd5, - 0x01, 0xe3, 0x88, 0xd5, 0x01, 0xe4, 0x89, 0xd5, 0x01, 0xe5, 0x8a, 0xd5, - 0x01, 0xe6, 0x8b, 0xd5, 0x01, 0xe7, 0x8c, 0xd5, 0x01, 0xe8, 0x8d, 0xd5, - 0x01, 0xe9, 0x8e, 0xd5, 0x01, 0xea, 0x8f, 0xd5, 0x01, 0xeb, 0x90, 0xd5, - 0x01, 0xec, 0x91, 0xd5, 0x01, 0xed, 0x92, 0xd5, 0x01, 0xee, 0x93, 0xd5, - 0x01, 0xef, 0x94, 0xd5, 0x01, 0xf0, 0x95, 0xd5, 0x01, 0xf1, 0x96, 0xd5, - 0x01, 0xf2, 0x97, 0xd5, 0x01, 0xf3, 0x98, 0xd5, 0x01, 0xf4, 0x99, 0xd5, - 0x01, 0xf5, 0x9a, 0xd5, 0x01, 0xf6, 0x9b, 0xd5, 0x01, 0xf7, 0x9c, 0xd5, - 0x01, 0xf8, 0x9d, 0xd5, 0x01, 0xf9, 0x9e, 0xd5, 0x01, 0xfa, 0x9f, 0xd5, - 0x41, 0xe1, 0x6c, 0xd5, 0x01, 0xe2, 0x6d, 0xd5, 0x01, 0xe3, 0x6e, 0xd5, - 0x01, 0xe4, 0x6f, 0xd5, 0x01, 0xe5, 0x70, 0xd5, 0x01, 0xe6, 0x71, 0xd5, - 0x01, 0xe7, 0x72, 0xd5, 0x01, 0xe8, 0x73, 0xd5, 0x01, 0xe9, 0x74, 0xd5, - 0x01, 0xea, 0x75, 0xd5, 0x01, 0xeb, 0x76, 0xd5, 0x01, 0xec, 0x77, 0xd5, - 0x01, 0xed, 0x78, 0xd5, 0x01, 0xee, 0x79, 0xd5, 0x01, 0xef, 0x7a, 0xd5, - 0x01, 0xf0, 0x7b, 0xd5, 0x01, 0xf1, 0x7c, 0xd5, 0x01, 0xf2, 0x7d, 0xd5, - 0x01, 0xf3, 0x7e, 0xd5, 0x01, 0xf4, 0x7f, 0xd5, 0x01, 0xf5, 0x80, 0xd5, - 0x01, 0xf6, 0x81, 0xd5, 0x01, 0xf7, 0x82, 0xd5, 0x01, 0xf8, 0x83, 0xd5, - 0x01, 0xf9, 0x84, 0xd5, 0x01, 0xfa, 0x85, 0xd5, 0x41, 0x45, 0xc3, 0x0a, - 0xd6, 0xd7, 0x01, 0xa6, 0x2e, 0x44, 0x46, 0x2a, 0xd7, 0xd7, 0x01, 0x43, - 0xbf, 0x0a, 0xcf, 0xd7, 0x01, 0xb3, 0x14, 0xb4, 0x06, 0x44, 0xa1, 0x1d, - 0xce, 0xd7, 0x41, 0x44, 0x25, 0x01, 0xd1, 0xd7, 0x01, 0x42, 0x15, 0x02, - 0xd0, 0xd7, 0x41, 0x44, 0x27, 0x1d, 0xd5, 0xd7, 0x01, 0x42, 0x60, 0x25, - 0xd4, 0xd7, 0x41, 0x43, 0xa7, 0x05, 0xd3, 0xd7, 0x01, 0x43, 0xcb, 0x06, - 0xd2, 0xd7, 0x41, 0xe1, 0x00, 0xd4, 0x81, 0x92, 0x02, 0xe2, 0x01, 0xd4, - 0x81, 0x86, 0x02, 0xe3, 0x02, 0xd4, 0x81, 0xfa, 0x01, 0xe4, 0x03, 0xd4, - 0x81, 0xe8, 0x01, 0xe5, 0x04, 0xd4, 0x81, 0xd6, 0x01, 0xe6, 0x05, 0xd4, - 0x01, 0xe7, 0x06, 0xd4, 0x81, 0xc6, 0x01, 0xe8, 0x07, 0xd4, 0x01, 0xe9, - 0x08, 0xd4, 0x81, 0xb6, 0x01, 0xea, 0x09, 0xd4, 0x01, 0xeb, 0x0a, 0xd4, - 0x81, 0xa6, 0x01, 0xec, 0x0b, 0xd4, 0x81, 0x9a, 0x01, 0xed, 0x0c, 0xd4, - 0x81, 0x90, 0x01, 0xee, 0x0d, 0xd4, 0x81, 0x86, 0x01, 0xef, 0x0e, 0xd4, - 0x81, 0x72, 0xf0, 0x0f, 0xd4, 0x81, 0x5d, 0xf1, 0x10, 0xd4, 0x01, 0xf2, - 0x11, 0xd4, 0x81, 0x4e, 0xf3, 0x12, 0xd4, 0x81, 0x43, 0xf4, 0x13, 0xd4, - 0x81, 0x2b, 0xf5, 0x14, 0xd4, 0x81, 0x20, 0xf6, 0x15, 0xd4, 0x01, 0xf7, - 0x16, 0xd4, 0x01, 0xf8, 0x17, 0xd4, 0x81, 0x0f, 0xf9, 0x18, 0xd4, 0x01, - 0xfa, 0x19, 0xd4, 0xc1, 0x00, 0x43, 0x45, 0x0f, 0xad, 0xd6, 0x41, 0xe9, - 0xb5, 0xd6, 0x41, 0x46, 0x63, 0x15, 0xbc, 0xd6, 0x41, 0x42, 0xd7, 0x23, - 0xbb, 0xd6, 0x01, 0x44, 0xf2, 0x93, 0xaf, 0xd6, 0xc1, 0x00, 0x47, 0xea, - 0x07, 0xb9, 0xd6, 0x41, 0x44, 0x1d, 0x1f, 0xba, 0xd6, 0x41, 0x42, 0x0b, - 0x00, 0xb8, 0xd6, 0x41, 0x42, 0x49, 0x00, 0xbd, 0xd6, 0x01, 0xe9, 0xb7, - 0xd6, 0x01, 0x42, 0x2f, 0x03, 0xbf, 0xd6, 0x41, 0xad, 0x01, 0xff, 0x43, - 0xa3, 0x05, 0xc0, 0xd6, 0x01, 0x45, 0x3a, 0xe4, 0xb6, 0xd6, 0x41, 0xf5, - 0xb4, 0xd6, 0x41, 0xf5, 0xb3, 0xd6, 0x41, 0x44, 0xfe, 0xe4, 0xb2, 0xd6, - 0x41, 0x44, 0xe2, 0x8e, 0xb1, 0xd6, 0x41, 0x43, 0xf0, 0x04, 0xb0, 0xd6, - 0x41, 0x44, 0x5e, 0x20, 0xaa, 0xd6, 0x41, 0x46, 0x63, 0x15, 0xac, 0xd6, - 0x01, 0x42, 0x12, 0x00, 0xae, 0xd6, 0x41, 0x44, 0x6c, 0xd3, 0xab, 0xd6, - 0x01, 0x46, 0xd1, 0x56, 0xca, 0xd7, 0x41, 0x42, 0x49, 0x00, 0xbe, 0xd6, - 0x41, 0x43, 0x45, 0x0f, 0xa9, 0xd6, 0x41, 0x44, 0x2f, 0xe1, 0xa8, 0xd6, - 0x41, 0x0b, 0x11, 0x97, 0x12, 0x58, 0x3d, 0x27, 0xba, 0x00, 0x00, 0x4d, - 0x1d, 0x83, 0xad, 0xf1, 0x01, 0x46, 0x6f, 0xcc, 0x3c, 0x30, 0x40, 0x06, - 0xc4, 0x06, 0x82, 0x03, 0x07, 0xc1, 0x05, 0x6c, 0xb2, 0x5e, 0x05, 0x2f, - 0x03, 0x3c, 0xb6, 0x01, 0xff, 0x45, 0x5c, 0x23, 0x45, 0x1d, 0x01, 0x0a, - 0xd2, 0x75, 0x01, 0xff, 0xa1, 0x20, 0xe5, 0x3a, 0x1d, 0x01, 0xe9, 0x32, - 0x1d, 0x81, 0x13, 0xef, 0x3d, 0x1d, 0x01, 0xf5, 0x34, 0x1d, 0x81, 0x06, - 0x49, 0x9b, 0xbe, 0x36, 0x1d, 0x41, 0xf5, 0x35, 0x1d, 0x41, 0xe9, 0x33, - 0x1d, 0x41, 0xe1, 0x31, 0x1d, 0x01, 0xe9, 0x3c, 0x1d, 0x01, 0xf5, 0x3f, - 0x1d, 0x41, 0x48, 0xd0, 0x15, 0x40, 0x1d, 0x01, 0x46, 0x4f, 0x23, 0x43, - 0x1d, 0x01, 0x47, 0x97, 0xce, 0x44, 0x1d, 0x01, 0x45, 0x5a, 0x3e, 0x42, - 0x1d, 0x01, 0x47, 0xa1, 0x4a, 0x41, 0x1d, 0x41, 0x46, 0x82, 0xd6, 0x47, - 0x1d, 0x01, 0x44, 0x04, 0xc3, 0x46, 0x1d, 0x41, 0xe1, 0x00, 0x1d, 0x81, - 0x80, 0x02, 0xa2, 0xf3, 0x01, 0xa3, 0xe6, 0x01, 0xa4, 0xcd, 0x01, 0xe5, - 0x06, 0x1d, 0x01, 0xa7, 0xbc, 0x01, 0x42, 0x22, 0x00, 0x2c, 0x1d, 0x01, - 0xe9, 0x02, 0x1d, 0x81, 0xac, 0x01, 0xaa, 0x99, 0x01, 0xab, 0x86, 0x01, - 0xac, 0x7a, 0x42, 0x6c, 0x00, 0x24, 0x1d, 0x01, 0xae, 0x5c, 0xef, 0x09, - 0x1d, 0x01, 0xb0, 0x4c, 0x42, 0x71, 0x00, 0x26, 0x1d, 0x01, 0xb3, 0x34, - 0xb4, 0x15, 0xf5, 0x04, 0x1d, 0x81, 0x0c, 0x42, 0xa6, 0x0a, 0x28, 0x1d, - 0x01, 0x42, 0x34, 0x22, 0x25, 0x1d, 0x41, 0xf5, 0x05, 0x1d, 0x41, 0xe1, - 0x1b, 0x1d, 0x01, 0x42, 0x22, 0x00, 0x1c, 0x1d, 0x01, 0x42, 0x71, 0x00, - 0x30, 0x1d, 0x01, 0xb4, 0x01, 0xff, 0xe1, 0x16, 0x1d, 0x01, 0x42, 0x22, - 0x00, 0x17, 0x1d, 0x41, 0xe1, 0x2b, 0x1d, 0x01, 0x42, 0x22, 0x00, 0x29, - 0x1d, 0x01, 0x42, 0x15, 0x06, 0x2a, 0x1d, 0x41, 0xe1, 0x20, 0x1d, 0x01, - 0x42, 0x22, 0x00, 0x21, 0x1d, 0x41, 0xe1, 0x1f, 0x1d, 0x01, 0x42, 0x24, - 0x02, 0x10, 0x1d, 0x01, 0x42, 0xff, 0x04, 0x1a, 0x1d, 0x01, 0x42, 0x34, - 0x22, 0x15, 0x1d, 0x41, 0xe1, 0x27, 0x1d, 0x01, 0x42, 0x74, 0x00, 0x2d, - 0x1d, 0x41, 0xe1, 0x0c, 0x1d, 0x01, 0x42, 0x22, 0x00, 0x0d, 0x1d, 0x01, - 0x43, 0x59, 0x20, 0x2e, 0x1d, 0x41, 0xe1, 0x13, 0x1d, 0x01, 0x42, 0x22, - 0x00, 0x14, 0x1d, 0x01, 0x43, 0xd6, 0x34, 0x2f, 0x1d, 0x41, 0xe9, 0x03, - 0x1d, 0x41, 0xe1, 0x0e, 0x1d, 0x01, 0x42, 0x22, 0x00, 0x0f, 0x1d, 0x41, - 0xe1, 0x1d, 0x1d, 0x01, 0xa4, 0x06, 0x42, 0x22, 0x00, 0x1e, 0x1d, 0x41, - 0xe1, 0x18, 0x1d, 0x01, 0x42, 0x22, 0x00, 0x19, 0x1d, 0x41, 0xe1, 0x11, - 0x1d, 0x01, 0x42, 0x22, 0x00, 0x12, 0x1d, 0x41, 0xe1, 0x22, 0x1d, 0x01, - 0x42, 0x22, 0x00, 0x23, 0x1d, 0x41, 0xe1, 0x01, 0x1d, 0x01, 0xe9, 0x08, - 0x1d, 0x01, 0xf5, 0x0b, 0x1d, 0x41, 0x45, 0xc3, 0x0a, 0x58, 0x1d, 0x01, - 0xa6, 0x2e, 0x44, 0x46, 0x2a, 0x59, 0x1d, 0x01, 0x43, 0xbf, 0x0a, 0x51, - 0x1d, 0x01, 0xb3, 0x14, 0xb4, 0x06, 0x44, 0xa1, 0x1d, 0x50, 0x1d, 0x41, - 0x44, 0x25, 0x01, 0x53, 0x1d, 0x01, 0x42, 0x15, 0x02, 0x52, 0x1d, 0x41, - 0x44, 0x27, 0x1d, 0x57, 0x1d, 0x01, 0x42, 0x60, 0x25, 0x56, 0x1d, 0x41, - 0x43, 0xa7, 0x05, 0x55, 0x1d, 0x01, 0x43, 0xcb, 0x06, 0x54, 0x1d, 0x41, - 0x44, 0xc9, 0x5f, 0x87, 0xfa, 0x01, 0x05, 0x09, 0x49, 0x0c, 0x4c, 0xa1, - 0x92, 0xad, 0x26, 0x00, 0x51, 0x04, 0x5d, 0x4b, 0xf9, 0x41, 0x49, 0x19, - 0x1b, 0x70, 0x1c, 0x01, 0x07, 0xc1, 0x05, 0xe9, 0x01, 0x49, 0x8b, 0xb9, - 0x71, 0x1c, 0x01, 0xb3, 0x1b, 0x0b, 0xd1, 0x75, 0x01, 0xff, 0x42, 0x31, - 0x12, 0xb0, 0x1c, 0x01, 0xe5, 0xb3, 0x1c, 0x01, 0xe9, 0xb1, 0x1c, 0x01, - 0xef, 0xb4, 0x1c, 0x01, 0xf5, 0xb2, 0x1c, 0x41, 0x04, 0x30, 0x03, 0xb5, - 0x01, 0x10, 0x5a, 0x66, 0x01, 0xff, 0xe1, 0xaf, 0x1c, 0x01, 0x42, 0x16, - 0x00, 0xa0, 0x1c, 0x01, 0xa3, 0x99, 0x01, 0xa4, 0x8c, 0x01, 0x42, 0x24, - 0x02, 0x94, 0x1c, 0x01, 0x42, 0x22, 0x00, 0xae, 0x1c, 0x01, 0x42, 0xbd, - 0x26, 0x98, 0x1c, 0x01, 0xab, 0x6e, 0x42, 0x74, 0x00, 0xab, 0x1c, 0x01, - 0x42, 0x6c, 0x00, 0xa1, 0x1c, 0x01, 0xae, 0x50, 0xb0, 0x44, 0x42, 0x71, - 0x00, 0xaa, 0x1c, 0x01, 0xb3, 0x32, 0xb4, 0x19, 0x42, 0xa9, 0x01, 0xa5, - 0x1c, 0x01, 0x42, 0x34, 0x22, 0xa9, 0x1c, 0x01, 0xba, 0x01, 0xff, 0xe1, - 0xa7, 0x1c, 0x01, 0x42, 0x22, 0x00, 0xa6, 0x1c, 0x41, 0xe1, 0x9a, 0x1c, - 0x01, 0x42, 0x22, 0x00, 0x9b, 0x1c, 0x01, 0xb3, 0x01, 0xff, 0xe1, 0xa2, - 0x1c, 0x01, 0x42, 0x22, 0x00, 0xa3, 0x1c, 0x41, 0xe1, 0xad, 0x1c, 0x01, - 0x42, 0x22, 0x00, 0xac, 0x1c, 0x41, 0xe1, 0x9e, 0x1c, 0x01, 0x42, 0x22, - 0x00, 0x9f, 0x1c, 0x41, 0xe1, 0x9d, 0x1c, 0x01, 0x42, 0x24, 0x02, 0x95, - 0x1c, 0x01, 0x42, 0x34, 0x22, 0x99, 0x1c, 0x41, 0xe1, 0x92, 0x1c, 0x01, - 0x42, 0x22, 0x00, 0x93, 0x1c, 0x41, 0xe1, 0x9c, 0x1c, 0x01, 0x42, 0x59, - 0x00, 0xa4, 0x1c, 0x41, 0xe1, 0x96, 0x1c, 0x01, 0x42, 0x22, 0x00, 0x97, - 0x1c, 0x41, 0x48, 0xd0, 0x15, 0xb5, 0x1c, 0x01, 0x4b, 0x4f, 0x23, 0xb6, - 0x1c, 0x41, 0x42, 0x2e, 0x25, 0x88, 0x1c, 0x01, 0xe1, 0x8f, 0x1c, 0x01, - 0x42, 0x16, 0x00, 0x80, 0x1c, 0x01, 0xa3, 0x99, 0x01, 0xa4, 0x8c, 0x01, - 0x42, 0x24, 0x02, 0x74, 0x1c, 0x01, 0x42, 0x22, 0x00, 0x8e, 0x1c, 0x01, - 0x42, 0xbd, 0x26, 0x78, 0x1c, 0x01, 0xab, 0x6e, 0x42, 0x74, 0x00, 0x8b, - 0x1c, 0x01, 0x42, 0x6c, 0x00, 0x81, 0x1c, 0x01, 0xae, 0x50, 0xb0, 0x44, - 0x42, 0x71, 0x00, 0x8a, 0x1c, 0x01, 0xb3, 0x32, 0xb4, 0x19, 0x42, 0xa9, - 0x01, 0x85, 0x1c, 0x01, 0x42, 0x34, 0x22, 0x89, 0x1c, 0x01, 0xba, 0x01, - 0xff, 0xe1, 0x87, 0x1c, 0x01, 0x42, 0x22, 0x00, 0x86, 0x1c, 0x41, 0xe1, - 0x7a, 0x1c, 0x01, 0x42, 0x22, 0x00, 0x7b, 0x1c, 0x01, 0xb3, 0x01, 0xff, - 0xe1, 0x82, 0x1c, 0x01, 0x42, 0x22, 0x00, 0x83, 0x1c, 0x41, 0xe1, 0x8d, - 0x1c, 0x01, 0x42, 0x22, 0x00, 0x8c, 0x1c, 0x41, 0xe1, 0x7e, 0x1c, 0x01, - 0x42, 0x22, 0x00, 0x7f, 0x1c, 0x41, 0xe1, 0x7d, 0x1c, 0x01, 0x42, 0x24, - 0x02, 0x75, 0x1c, 0x01, 0x42, 0x34, 0x22, 0x79, 0x1c, 0x41, 0xe1, 0x72, - 0x1c, 0x01, 0x42, 0x22, 0x00, 0x73, 0x1c, 0x41, 0xe1, 0x7c, 0x1c, 0x01, - 0x42, 0x59, 0x00, 0x84, 0x1c, 0x41, 0xe1, 0x76, 0x1c, 0x01, 0x42, 0x22, - 0x00, 0x77, 0x1c, 0x41, 0x56, 0x7b, 0x31, 0xef, 0x26, 0x00, 0x47, 0xee, - 0xcf, 0x41, 0xf3, 0x41, 0x80, 0xa5, 0x04, 0x47, 0x07, 0x6b, 0xbc, 0x20, - 0x00, 0x05, 0x64, 0xe2, 0x87, 0x03, 0x42, 0xb7, 0x13, 0x6d, 0xf9, 0x01, - 0x08, 0x42, 0xc4, 0x12, 0x46, 0xb8, 0xdc, 0x5e, 0xf4, 0x01, 0x4e, 0x38, - 0x7b, 0x70, 0xf5, 0x01, 0x4e, 0x50, 0x7c, 0xbd, 0xf9, 0x41, 0x12, 0xb0, - 0x4e, 0xda, 0x02, 0x07, 0xc1, 0x05, 0x5d, 0x07, 0x2f, 0x39, 0x37, 0x0c, - 0x01, 0x16, 0x06, 0x47, 0x13, 0xd3, 0xc8, 0x0a, 0x41, 0x02, 0x3b, 0x01, - 0x18, 0x47, 0x18, 0x36, 0xf1, 0x0a, 0x01, 0x4b, 0x9c, 0x9c, 0xf6, 0x0a, - 0x01, 0x44, 0xe2, 0x12, 0xf0, 0x0a, 0x01, 0x48, 0xd0, 0x09, 0xf5, 0x0a, - 0x41, 0xf4, 0xf4, 0x0a, 0x81, 0x06, 0x53, 0xbc, 0x4c, 0xf2, 0x0a, 0x41, - 0x4b, 0xc4, 0x4c, 0xf3, 0x0a, 0x41, 0x44, 0x31, 0x11, 0xec, 0x0a, 0x01, - 0x43, 0xbf, 0x0a, 0xeb, 0x0a, 0x81, 0x0f, 0xb4, 0x01, 0xff, 0x42, 0x92, - 0x01, 0xed, 0x0a, 0x01, 0x45, 0xde, 0x2b, 0xee, 0x0a, 0x41, 0x48, 0x21, - 0x11, 0xef, 0x0a, 0x41, 0xa1, 0xe4, 0x01, 0xa2, 0xd5, 0x01, 0xa4, 0xc6, - 0x01, 0x42, 0xa0, 0x19, 0xdc, 0x0a, 0x01, 0xa7, 0xb1, 0x01, 0x42, 0xb0, - 0x01, 0xc6, 0x0a, 0x81, 0xa3, 0x01, 0xaa, 0x94, 0x01, 0xab, 0x85, 0x01, - 0x46, 0x9c, 0xda, 0xd3, 0x0a, 0x01, 0x43, 0x89, 0x05, 0xd6, 0x0a, 0x01, - 0x43, 0x54, 0x22, 0xd7, 0x0a, 0x01, 0x42, 0x6f, 0x02, 0xdb, 0x0a, 0x01, - 0xb1, 0x5f, 0x44, 0xfa, 0x64, 0xe1, 0x0a, 0x01, 0xb3, 0x3d, 0xb4, 0x29, - 0x43, 0xc0, 0x88, 0xc7, 0x0a, 0x01, 0xb8, 0x15, 0x44, 0x58, 0x51, 0xcf, - 0x0a, 0x01, 0xba, 0x01, 0xff, 0x44, 0xd5, 0x48, 0xc9, 0x0a, 0x01, 0x45, - 0xe0, 0xe3, 0xca, 0x0a, 0x41, 0x43, 0x34, 0x10, 0xd1, 0x0a, 0x01, 0x43, - 0x97, 0x35, 0xdf, 0x0a, 0x41, 0x42, 0x9a, 0x43, 0xe4, 0x0a, 0x01, 0x43, - 0x39, 0x25, 0xce, 0x0a, 0x01, 0x46, 0x58, 0xd9, 0xd5, 0x0a, 0x41, 0xa1, - 0x0c, 0x43, 0x0e, 0x16, 0xe2, 0x0a, 0x01, 0x44, 0x2a, 0x49, 0xe3, 0x0a, - 0x41, 0x43, 0x89, 0xe7, 0xdd, 0x0a, 0x01, 0x44, 0x39, 0xe1, 0xd8, 0x0a, - 0x41, 0x44, 0x12, 0xed, 0xe0, 0x0a, 0x01, 0x43, 0x97, 0x35, 0xde, 0x0a, - 0x41, 0x43, 0x34, 0x10, 0xd0, 0x0a, 0x01, 0x44, 0xc2, 0xe4, 0xd2, 0x0a, - 0x41, 0x44, 0xd5, 0x48, 0xcb, 0x0a, 0x01, 0x45, 0xe0, 0xe3, 0xcc, 0x0a, - 0x41, 0x42, 0x53, 0x00, 0xcd, 0x0a, 0x41, 0x45, 0xef, 0xe3, 0xc4, 0x0a, - 0x01, 0x44, 0xa2, 0xa8, 0xc3, 0x0a, 0x41, 0x45, 0xdb, 0x48, 0xc5, 0x0a, - 0x01, 0x46, 0x58, 0xd9, 0xd4, 0x0a, 0x41, 0x43, 0x39, 0x25, 0xc1, 0x0a, - 0x01, 0x44, 0x25, 0xa8, 0xc2, 0x0a, 0x41, 0x44, 0xd5, 0x48, 0xda, 0x0a, - 0x01, 0x44, 0x48, 0x3c, 0xc0, 0x0a, 0x01, 0x43, 0xf7, 0x19, 0xd9, 0x0a, - 0x41, 0x45, 0x5c, 0x00, 0xe5, 0x0a, 0x01, 0x45, 0xf5, 0x06, 0xe6, 0x0a, - 0x41, 0x50, 0x5a, 0x5f, 0x59, 0x08, 0x00, 0x4f, 0xe0, 0x6b, 0x5b, 0x08, - 0x00, 0x07, 0xc1, 0x05, 0x0c, 0x4b, 0xb8, 0x0b, 0x5e, 0x08, 0x00, 0x51, - 0xe1, 0x5d, 0x5a, 0x08, 0x40, 0xa1, 0x22, 0x48, 0xba, 0xc2, 0x56, 0x08, - 0x00, 0x45, 0xc7, 0xe3, 0x40, 0x08, 0x00, 0xa9, 0x0c, 0x43, 0xbb, 0xa3, - 0x57, 0x08, 0x00, 0x47, 0xbb, 0xc2, 0x45, 0x08, 0x40, 0xee, 0x4f, 0x08, - 0x00, 0xf4, 0x47, 0x08, 0x40, 0xe2, 0x41, 0x08, 0x00, 0xe4, 0x43, 0x08, - 0x00, 0xe7, 0x42, 0x08, 0x00, 0xe8, 0x44, 0x08, 0x00, 0x42, 0x9e, 0x01, - 0x58, 0x08, 0x00, 0xeb, 0x4a, 0x08, 0x80, 0x32, 0xec, 0x4b, 0x08, 0x00, - 0xed, 0x4c, 0x08, 0x00, 0xee, 0x4d, 0x08, 0x00, 0xf0, 0x50, 0x08, 0x00, - 0xf1, 0x52, 0x08, 0x00, 0xf2, 0x53, 0x08, 0x00, 0xf3, 0x4e, 0x08, 0x80, - 0x0d, 0xf4, 0x55, 0x08, 0x80, 0x04, 0xfa, 0x46, 0x08, 0x40, 0xf4, 0x48, - 0x08, 0x40, 0xe8, 0x54, 0x08, 0x00, 0xfa, 0x51, 0x08, 0x40, 0x42, 0x15, - 0x06, 0x49, 0x08, 0x40, 0x57, 0x5e, 0x2c, 0x6b, 0xf4, 0x01, 0x47, 0x63, - 0xcd, 0x7a, 0xf5, 0x01, 0x03, 0xb6, 0x05, 0x11, 0x05, 0x51, 0x00, 0x01, - 0xff, 0x4a, 0xbf, 0xa8, 0x72, 0xf4, 0x01, 0x46, 0xae, 0xdd, 0x73, 0xf4, - 0x41, 0x58, 0xf5, 0x26, 0x74, 0xf5, 0x01, 0x46, 0xb4, 0xdd, 0x35, 0xf9, - 0x41, 0x07, 0x93, 0xb3, 0x27, 0x02, 0x60, 0x00, 0x06, 0x4a, 0x77, 0xaf, - 0x20, 0x27, 0x40, 0x4f, 0x6e, 0x26, 0xa5, 0x26, 0x00, 0x44, 0x2f, 0x03, - 0x42, 0x26, 0x00, 0x0c, 0x09, 0x3c, 0x01, 0xff, 0x58, 0x65, 0x26, 0xa7, - 0x26, 0x00, 0x44, 0x2f, 0x03, 0xa6, 0x26, 0x40, 0x4e, 0x9a, 0x74, 0x57, - 0x0d, 0x00, 0xa4, 0x91, 0x05, 0x09, 0xb3, 0x58, 0xb0, 0x04, 0x07, 0xc1, - 0x05, 0xad, 0x01, 0x07, 0x2f, 0x39, 0x92, 0x01, 0x05, 0x2f, 0x03, 0x4e, - 0x0b, 0xd1, 0x75, 0x01, 0xff, 0xa1, 0x3b, 0xe5, 0x46, 0x0d, 0x80, 0x32, - 0xe9, 0x3f, 0x0d, 0x80, 0x29, 0xef, 0x4a, 0x0d, 0x80, 0x20, 0xf5, 0x41, - 0x0d, 0x80, 0x17, 0x08, 0x9b, 0xbe, 0x01, 0xff, 0xec, 0x62, 0x0d, 0x80, - 0x09, 0xf2, 0x43, 0x0d, 0xc0, 0x00, 0xf2, 0x44, 0x0d, 0x40, 0xec, 0x63, - 0x0d, 0x40, 0xf5, 0x42, 0x0d, 0x40, 0xef, 0x4b, 0x0d, 0x40, 0xe9, 0x40, - 0x0d, 0x40, 0xe5, 0x47, 0x0d, 0x40, 0xe1, 0x3e, 0x0d, 0x00, 0xe9, 0x48, - 0x0d, 0x00, 0xf5, 0x4c, 0x0d, 0x40, 0xa1, 0x32, 0xa3, 0x1e, 0x44, 0x2e, - 0x10, 0x4f, 0x0d, 0x00, 0xb6, 0x01, 0xff, 0x52, 0x2a, 0x50, 0x3b, 0x0d, - 0x00, 0xa9, 0x01, 0xff, 0x44, 0x5d, 0x23, 0x4d, 0x0d, 0x00, 0x45, 0xa3, - 0x4a, 0x03, 0x0d, 0x40, 0x4a, 0x50, 0x23, 0x01, 0x0d, 0x00, 0x4e, 0x64, - 0x77, 0x3c, 0x0d, 0x00, 0x57, 0xc7, 0x15, 0x00, 0x0d, 0x40, 0x47, 0xd1, - 0x15, 0x02, 0x0d, 0x00, 0x47, 0xf2, 0x86, 0x3d, 0x0d, 0x40, 0x04, 0xbf, - 0x0a, 0x06, 0x43, 0xb0, 0x06, 0x70, 0x0d, 0x40, 0x47, 0x22, 0x11, 0x71, - 0x0d, 0x00, 0x48, 0xd5, 0x5c, 0x72, 0x0d, 0x40, 0xe1, 0x05, 0x0d, 0x80, - 0xe6, 0x02, 0xa2, 0xd9, 0x02, 0xa3, 0x9d, 0x02, 0xa4, 0xfe, 0x01, 0xe5, - 0x0e, 0x0d, 0x80, 0xf4, 0x01, 0xa7, 0xe7, 0x01, 0x42, 0x22, 0x00, 0x39, - 0x0d, 0x00, 0xe9, 0x07, 0x0d, 0x80, 0xd7, 0x01, 0xaa, 0xca, 0x01, 0xab, - 0xbd, 0x01, 0xac, 0xa9, 0x01, 0x42, 0x6c, 0x00, 0x2e, 0x0d, 0x00, 0xae, - 0x84, 0x01, 0xef, 0x12, 0x0d, 0x80, 0x7b, 0xb0, 0x6f, 0xb2, 0x63, 0xb3, - 0x51, 0xb4, 0x32, 0xf5, 0x09, 0x0d, 0x80, 0x29, 0xb6, 0x06, 0x42, 0x34, - 0x22, 0x2f, 0x0d, 0x40, 0xe1, 0x35, 0x0d, 0x00, 0x4d, 0xd4, 0x80, 0x04, - 0x0d, 0x00, 0x07, 0x9c, 0xbe, 0x01, 0xff, 0xec, 0x0c, 0x0d, 0x80, 0x09, - 0xf2, 0x0b, 0x0d, 0xc0, 0x00, 0xf2, 0x60, 0x0d, 0x40, 0xec, 0x61, 0x0d, - 0x40, 0xf5, 0x0a, 0x0d, 0x40, 0xe1, 0x24, 0x0d, 0x00, 0x42, 0x22, 0x00, - 0x25, 0x0d, 0x00, 0xb4, 0x01, 0xff, 0xe1, 0x1f, 0x0d, 0x00, 0x42, 0x22, - 0x00, 0x20, 0x0d, 0x00, 0x42, 0x12, 0x00, 0x3a, 0x0d, 0x40, 0xe1, 0x38, - 0x0d, 0x00, 0x42, 0x22, 0x00, 0x36, 0x0d, 0x00, 0x42, 0x15, 0x06, 0x37, - 0x0d, 0x40, 0xe1, 0x30, 0x0d, 0x00, 0x42, 0x71, 0x00, 0x31, 0x0d, 0x40, - 0xe1, 0x2a, 0x0d, 0x00, 0x42, 0x22, 0x00, 0x2b, 0x0d, 0x40, 0xef, 0x13, - 0x0d, 0x40, 0xe1, 0x28, 0x0d, 0x00, 0x42, 0x24, 0x02, 0x19, 0x0d, 0x00, - 0xae, 0x06, 0x42, 0x34, 0x22, 0x1e, 0x0d, 0x40, 0xe1, 0x23, 0x0d, 0x00, - 0x42, 0xff, 0x04, 0x29, 0x0d, 0x40, 0xe1, 0x32, 0x0d, 0x00, 0xac, 0x01, - 0xff, 0xe1, 0x33, 0x0d, 0x00, 0x42, 0x74, 0x00, 0x34, 0x0d, 0x40, 0xe1, - 0x15, 0x0d, 0x00, 0x42, 0x22, 0x00, 0x16, 0x0d, 0x40, 0xe1, 0x1c, 0x0d, - 0x00, 0x42, 0x22, 0x00, 0x1d, 0x0d, 0x40, 0xe9, 0x08, 0x0d, 0x40, 0xe1, - 0x17, 0x0d, 0x00, 0x42, 0x22, 0x00, 0x18, 0x0d, 0x40, 0xe5, 0x0f, 0x0d, - 0x40, 0xe1, 0x26, 0x0d, 0x00, 0xa4, 0x0c, 0x42, 0x22, 0x00, 0x27, 0x0d, - 0x00, 0x47, 0x53, 0xd1, 0x4e, 0x0d, 0x40, 0xe1, 0x21, 0x0d, 0x00, 0x42, - 0x22, 0x00, 0x22, 0x0d, 0x40, 0xe1, 0x1a, 0x0d, 0x00, 0xa8, 0x01, 0xff, - 0xe1, 0x1b, 0x0d, 0x00, 0x05, 0xa6, 0xbf, 0x01, 0xff, 0xeb, 0x7f, 0x0d, - 0x00, 0xec, 0x7d, 0x0d, 0x80, 0x17, 0xed, 0x54, 0x0d, 0x00, 0xee, 0x7b, - 0x0d, 0x80, 0x0a, 0x42, 0xcf, 0x00, 0x7c, 0x0d, 0x00, 0xf9, 0x55, 0x0d, - 0x40, 0xee, 0x7a, 0x0d, 0x40, 0xec, 0x7e, 0x0d, 0xc0, 0x00, 0xec, 0x56, - 0x0d, 0x40, 0xe1, 0x2c, 0x0d, 0x00, 0x42, 0x22, 0x00, 0x2d, 0x0d, 0x40, - 0xe1, 0x06, 0x0d, 0x00, 0xe9, 0x10, 0x0d, 0x00, 0x49, 0x01, 0xbc, 0x5f, - 0x0d, 0x00, 0xf5, 0x14, 0x0d, 0x40, 0x04, 0xbf, 0x0a, 0x1d, 0x06, 0x24, - 0x01, 0x01, 0xff, 0x4a, 0x9d, 0xa7, 0x5a, 0x0d, 0x00, 0x48, 0x2a, 0x01, - 0x75, 0x0d, 0x00, 0x4a, 0xc3, 0xae, 0x78, 0x0d, 0x00, 0x4a, 0xef, 0xaf, - 0x5d, 0x0d, 0x40, 0x46, 0xc3, 0x0a, 0x77, 0x0d, 0x00, 0xa6, 0x27, 0x44, - 0x22, 0x00, 0x74, 0x0d, 0x00, 0x58, 0xad, 0x29, 0x58, 0x0d, 0x00, 0x47, - 0x2a, 0x01, 0x73, 0x0d, 0x00, 0x49, 0x5f, 0x25, 0x76, 0x0d, 0x00, 0xb4, - 0x01, 0xff, 0x44, 0xfb, 0x1a, 0x5c, 0x0d, 0x00, 0x48, 0x34, 0x25, 0x5b, - 0x0d, 0x40, 0x44, 0xf2, 0xac, 0x5e, 0x0d, 0x00, 0x47, 0x45, 0xd1, 0x59, - 0x0d, 0x40, 0x48, 0x32, 0xc1, 0x79, 0x0d, 0x00, 0x05, 0xc5, 0x06, 0x01, - 0xff, 0x45, 0xc3, 0x0a, 0x6e, 0x0d, 0x00, 0xa6, 0x2e, 0x44, 0x46, 0x2a, - 0x6f, 0x0d, 0x00, 0x43, 0xbf, 0x0a, 0x67, 0x0d, 0x00, 0xb3, 0x14, 0xb4, - 0x06, 0x44, 0xa1, 0x1d, 0x66, 0x0d, 0x40, 0x44, 0x25, 0x01, 0x69, 0x0d, - 0x00, 0x42, 0x15, 0x02, 0x68, 0x0d, 0x40, 0x44, 0x27, 0x1d, 0x6d, 0x0d, - 0x00, 0x42, 0x60, 0x25, 0x6c, 0x0d, 0x40, 0x43, 0xa7, 0x05, 0x6b, 0x0d, - 0x00, 0x43, 0xcb, 0x06, 0x6a, 0x0d, 0x40, 0x05, 0x5b, 0xe1, 0x06, 0x45, - 0xdc, 0xe2, 0x7c, 0xf7, 0x41, 0x45, 0xd0, 0xd6, 0xf2, 0x1e, 0x01, 0x4e, - 0xdc, 0x75, 0xf8, 0x1e, 0x01, 0x07, 0xc1, 0x05, 0x1b, 0x4a, 0x1f, 0xad, - 0xf7, 0x1e, 0x01, 0x0b, 0xd1, 0x75, 0x01, 0xff, 0xe5, 0xf5, 0x1e, 0x01, - 0xe9, 0xf3, 0x1e, 0x01, 0xef, 0xf6, 0x1e, 0x01, 0xf5, 0xf4, 0x1e, 0x41, - 0xe1, 0xf1, 0x1e, 0x01, 0x42, 0x16, 0x00, 0xe4, 0x1e, 0x01, 0x42, 0x37, - 0x00, 0xe9, 0x1e, 0x01, 0x42, 0xa1, 0x10, 0xe7, 0x1e, 0x01, 0x42, 0x24, - 0x02, 0xe1, 0x1e, 0x01, 0x42, 0xbd, 0x26, 0xea, 0x1e, 0x01, 0x42, 0x1b, - 0x02, 0xe0, 0x1e, 0x01, 0x42, 0x74, 0x00, 0xee, 0x1e, 0x01, 0x42, 0x6c, - 0x00, 0xe5, 0x1e, 0x01, 0xae, 0x24, 0x42, 0x6c, 0x09, 0xe3, 0x1e, 0x01, - 0x42, 0x71, 0x00, 0xed, 0x1e, 0x01, 0x42, 0x15, 0x06, 0xf0, 0x1e, 0x01, - 0x42, 0x12, 0x00, 0xe6, 0x1e, 0x01, 0x42, 0xa6, 0x0a, 0xef, 0x1e, 0x01, - 0x42, 0x34, 0x22, 0xec, 0x1e, 0x41, 0xe1, 0xe8, 0x1e, 0x01, 0x42, 0x24, - 0x02, 0xe2, 0x1e, 0x01, 0x42, 0x34, 0x22, 0xeb, 0x1e, 0x41, 0x06, 0xb8, - 0xd6, 0xe7, 0x02, 0x0a, 0xeb, 0xa9, 0x01, 0xff, 0x46, 0x1e, 0xd7, 0x28, - 0xf0, 0x01, 0x02, 0x16, 0x00, 0xcb, 0x02, 0x4d, 0xdd, 0x7f, 0x25, 0xf0, - 0x01, 0xa5, 0xa2, 0x02, 0xa6, 0xec, 0x01, 0x4c, 0x9d, 0x8d, 0x05, 0xf0, - 0x01, 0x45, 0xd2, 0xa2, 0x2a, 0xf0, 0x01, 0xae, 0xbe, 0x01, 0xaf, 0x9c, - 0x01, 0x44, 0xd2, 0xee, 0x22, 0xf0, 0x01, 0x4a, 0xbf, 0xad, 0x04, 0xf0, - 0x01, 0xb3, 0x4a, 0xb4, 0x15, 0xb7, 0x01, 0xff, 0x48, 0x4a, 0xc3, 0x02, - 0xf0, 0x01, 0x4b, 0xce, 0x9a, 0x06, 0xf0, 0x01, 0x45, 0x5a, 0x0a, 0x29, - 0xf0, 0x41, 0x08, 0x32, 0xc4, 0x1a, 0x06, 0x3e, 0xde, 0x01, 0xff, 0x47, - 0x98, 0xcc, 0x11, 0xf0, 0x01, 0xa3, 0x01, 0xff, 0x49, 0x15, 0xb7, 0x08, - 0xf0, 0x01, 0x46, 0x8b, 0x42, 0x1a, 0xf0, 0x41, 0x47, 0x98, 0xcc, 0x12, - 0xf0, 0x01, 0xa3, 0x01, 0xff, 0x49, 0x15, 0xb7, 0x09, 0xf0, 0x01, 0x46, - 0x8b, 0x42, 0x1b, 0xf0, 0x41, 0x08, 0x72, 0xc3, 0x2b, 0x06, 0x48, 0xda, - 0x12, 0x49, 0x3b, 0xbb, 0x01, 0xf0, 0x01, 0x45, 0x5b, 0x11, 0x26, 0xf0, - 0x01, 0x45, 0xa9, 0xe8, 0x27, 0xf0, 0x41, 0x47, 0x98, 0xcc, 0x15, 0xf0, - 0x01, 0xa3, 0x01, 0xff, 0x49, 0x15, 0xb7, 0x0c, 0xf0, 0x01, 0x46, 0x8b, - 0x42, 0x1e, 0xf0, 0x41, 0x47, 0x98, 0xcc, 0x16, 0xf0, 0x01, 0xa3, 0x01, - 0xff, 0x49, 0x15, 0xb7, 0x0d, 0xf0, 0x01, 0x46, 0x8b, 0x42, 0x1f, 0xf0, - 0x41, 0x06, 0x1c, 0xc6, 0x06, 0x45, 0x14, 0xe7, 0x23, 0xf0, 0x41, 0x47, - 0x98, 0xcc, 0x10, 0xf0, 0x01, 0xa3, 0x01, 0xff, 0x49, 0x15, 0xb7, 0x07, - 0xf0, 0x01, 0x46, 0x8b, 0x42, 0x19, 0xf0, 0x41, 0x07, 0x1b, 0xc6, 0x06, - 0x49, 0x0e, 0xbb, 0x03, 0xf0, 0x41, 0x47, 0x98, 0xcc, 0x18, 0xf0, 0x01, - 0xa3, 0x01, 0xff, 0x49, 0x15, 0xb7, 0x0f, 0xf0, 0x01, 0x46, 0x8b, 0x42, - 0x21, 0xf0, 0x41, 0x07, 0x46, 0xcf, 0x1a, 0x07, 0x5a, 0xd1, 0x01, 0xff, - 0x47, 0x98, 0xcc, 0x13, 0xf0, 0x01, 0xa3, 0x01, 0xff, 0x49, 0x15, 0xb7, - 0x0a, 0xf0, 0x01, 0x46, 0x8b, 0x42, 0x1c, 0xf0, 0x41, 0x47, 0x98, 0xcc, - 0x14, 0xf0, 0x01, 0xa3, 0x01, 0xff, 0x49, 0x15, 0xb7, 0x0b, 0xf0, 0x01, - 0x46, 0x8b, 0x42, 0x1d, 0xf0, 0x41, 0x48, 0x1a, 0xc1, 0x00, 0xf0, 0x01, - 0x08, 0xed, 0xb5, 0x01, 0xff, 0x47, 0x98, 0xcc, 0x17, 0xf0, 0x01, 0xa3, - 0x01, 0xff, 0x49, 0x15, 0xb7, 0x0e, 0xf0, 0x01, 0x46, 0x8b, 0x42, 0x20, - 0xf0, 0x41, 0x42, 0x36, 0x01, 0x2b, 0xf0, 0x01, 0x44, 0x9f, 0x96, 0x24, - 0xf0, 0x41, 0x51, 0x93, 0x56, 0x74, 0x11, 0x01, 0xac, 0x0f, 0xb3, 0x01, - 0xff, 0x4b, 0x58, 0x26, 0x75, 0x11, 0x01, 0x49, 0xc0, 0xb7, 0x73, 0x11, - 0x41, 0x06, 0xc2, 0x05, 0x06, 0x4c, 0x2d, 0x8e, 0x76, 0x11, 0x41, 0xe1, - 0x50, 0x11, 0x01, 0xa2, 0xbc, 0x01, 0xa3, 0xaf, 0x01, 0xa4, 0x96, 0x01, - 0xe5, 0x53, 0x11, 0x01, 0xa7, 0x85, 0x01, 0x42, 0x22, 0x00, 0x71, 0x11, - 0x01, 0xe9, 0x51, 0x11, 0x01, 0xaa, 0x6f, 0xab, 0x63, 0x42, 0x74, 0x00, - 0x6e, 0x11, 0x01, 0x42, 0x6c, 0x00, 0x6c, 0x11, 0x01, 0xae, 0x45, 0xef, - 0x54, 0x11, 0x01, 0xb0, 0x35, 0xb2, 0x29, 0x42, 0x15, 0x06, 0x70, 0x11, - 0x01, 0xb4, 0x0a, 0xf5, 0x52, 0x11, 0x01, 0x42, 0xa6, 0x0a, 0x6f, 0x11, - 0x41, 0xe1, 0x63, 0x11, 0x01, 0x42, 0x22, 0x00, 0x64, 0x11, 0x01, 0xb4, - 0x01, 0xff, 0xe1, 0x5e, 0x11, 0x01, 0x42, 0x22, 0x00, 0x5f, 0x11, 0x41, - 0xe1, 0x6d, 0x11, 0x01, 0x42, 0x71, 0x00, 0x72, 0x11, 0x41, 0xe1, 0x68, - 0x11, 0x01, 0x42, 0x22, 0x00, 0x69, 0x11, 0x41, 0xe1, 0x67, 0x11, 0x01, - 0x42, 0xff, 0x04, 0x62, 0x11, 0x01, 0x42, 0x34, 0x22, 0x5d, 0x11, 0x41, - 0xe1, 0x55, 0x11, 0x01, 0x42, 0x22, 0x00, 0x56, 0x11, 0x41, 0xe1, 0x5b, - 0x11, 0x01, 0x42, 0x22, 0x00, 0x5c, 0x11, 0x41, 0xe1, 0x57, 0x11, 0x01, - 0x42, 0x22, 0x00, 0x58, 0x11, 0x41, 0xe1, 0x65, 0x11, 0x01, 0xa4, 0x06, - 0x42, 0x22, 0x00, 0x66, 0x11, 0x41, 0xe1, 0x60, 0x11, 0x01, 0x42, 0x22, - 0x00, 0x61, 0x11, 0x41, 0xe1, 0x59, 0x11, 0x01, 0x42, 0x22, 0x00, 0x5a, - 0x11, 0x41, 0xe1, 0x6a, 0x11, 0x01, 0x42, 0x22, 0x00, 0x6b, 0x11, 0x41, - 0xe5, 0xd9, 0xf9, 0x01, 0x47, 0xf2, 0xce, 0x84, 0xfa, 0x01, 0x43, 0x0d, - 0x2c, 0xf2, 0xf9, 0x41, 0x4d, 0xc8, 0x7d, 0x14, 0x21, 0x00, 0xa1, 0xc4, - 0x40, 0xa5, 0xf0, 0x2a, 0xa9, 0xb3, 0x0c, 0x44, 0xb0, 0x00, 0x99, 0xf9, - 0x01, 0xaf, 0x9d, 0x02, 0xb5, 0x85, 0x02, 0xb9, 0x01, 0xff, 0x0c, 0x8d, - 0x8b, 0x82, 0x01, 0x05, 0x4b, 0x5f, 0x06, 0x48, 0x8d, 0x28, 0x25, 0xf9, - 0x41, 0x07, 0xc1, 0x05, 0x06, 0x4f, 0x61, 0x72, 0x3f, 0x09, 0x41, 0xe1, - 0x20, 0x09, 0x81, 0x65, 0xe2, 0x21, 0x09, 0x01, 0xe3, 0x39, 0x09, 0x01, - 0xe4, 0x23, 0x09, 0x01, 0xe5, 0x24, 0x09, 0x81, 0x50, 0xe6, 0x31, 0x09, - 0x01, 0xe7, 0x22, 0x09, 0x01, 0xe9, 0x26, 0x09, 0x01, 0xeb, 0x28, 0x09, - 0x01, 0xec, 0x29, 0x09, 0x81, 0x37, 0xed, 0x2a, 0x09, 0x01, 0xee, 0x2b, - 0x09, 0x81, 0x2a, 0xef, 0x2c, 0x09, 0x01, 0xf1, 0x32, 0x09, 0x01, 0xf2, - 0x2d, 0x09, 0x01, 0xf3, 0x33, 0x09, 0x81, 0x15, 0xf4, 0x2f, 0x09, 0x81, - 0x0c, 0xf5, 0x30, 0x09, 0x01, 0xf6, 0x25, 0x09, 0x01, 0xf9, 0x27, 0x09, - 0x41, 0xf4, 0x34, 0x09, 0x41, 0xf3, 0x2e, 0x09, 0x41, 0xee, 0x38, 0x09, - 0x41, 0xf9, 0x37, 0x09, 0x41, 0xee, 0x36, 0x09, 0x41, 0xee, 0x35, 0x09, - 0x41, 0xe1, 0x80, 0x02, 0x81, 0x72, 0xe2, 0x82, 0x02, 0x81, 0x69, 0xe4, - 0x85, 0x02, 0x01, 0xe5, 0x81, 0x02, 0x81, 0x5c, 0xe7, 0x84, 0x02, 0x01, - 0xe8, 0x9b, 0x02, 0x01, 0xe9, 0x86, 0x02, 0x01, 0xea, 0x8a, 0x02, 0x01, - 0xeb, 0x8b, 0x02, 0x81, 0x43, 0xec, 0x8d, 0x02, 0x01, 0xed, 0x8e, 0x02, - 0x81, 0x36, 0xee, 0x8f, 0x02, 0x81, 0x2d, 0xf0, 0x93, 0x02, 0x01, 0xf1, - 0x8c, 0x02, 0x01, 0xf2, 0x95, 0x02, 0x01, 0xf3, 0x96, 0x02, 0x01, 0xf4, - 0x97, 0x02, 0x81, 0x10, 0xf5, 0x92, 0x02, 0x01, 0xf7, 0x87, 0x02, 0x01, - 0xf8, 0x9c, 0x02, 0x01, 0xfa, 0x88, 0x02, 0x41, 0xe8, 0x89, 0x02, 0x01, - 0xf4, 0x98, 0x02, 0x41, 0xee, 0x91, 0x02, 0x41, 0xed, 0x90, 0x02, 0x41, - 0xeb, 0x94, 0x02, 0x41, 0xee, 0x9a, 0x02, 0x41, 0xe8, 0x83, 0x02, 0x41, - 0xee, 0x99, 0x02, 0x41, 0x45, 0xdf, 0xdd, 0xf3, 0xf9, 0x01, 0xae, 0x01, - 0xff, 0x4a, 0x9f, 0xa5, 0x76, 0xf7, 0x01, 0x42, 0x6d, 0x11, 0xc1, 0xfa, - 0x41, 0x45, 0xce, 0xe1, 0x9e, 0xf9, 0x01, 0x42, 0x36, 0x01, 0x12, 0xf5, - 0x81, 0xe8, 0x09, 0x03, 0xa5, 0x21, 0xbc, 0x08, 0x46, 0xd2, 0xda, 0x6d, - 0xf3, 0x01, 0x03, 0xa2, 0x01, 0xac, 0x07, 0xb4, 0x97, 0x07, 0x50, 0x6a, - 0x66, 0x2d, 0xf6, 0x01, 0x03, 0x5f, 0x00, 0x80, 0x07, 0xb7, 0x0d, 0x45, - 0xfc, 0x09, 0xca, 0x25, 0xc0, 0x00, 0x5b, 0x84, 0x19, 0xe0, 0x27, 0x40, - 0x80, 0xc1, 0x06, 0x03, 0x16, 0x01, 0x01, 0xff, 0x4e, 0xc4, 0x74, 0x03, - 0x27, 0x00, 0x07, 0x73, 0x02, 0x8a, 0x06, 0x52, 0x60, 0x50, 0x85, 0x25, - 0x00, 0xa8, 0xc1, 0x05, 0x05, 0xc3, 0x00, 0xa0, 0x03, 0x07, 0x7d, 0x02, - 0xea, 0x02, 0x04, 0xbf, 0x0a, 0xd9, 0x02, 0x06, 0xc8, 0x00, 0x30, 0x53, - 0xb2, 0x4b, 0x87, 0x25, 0x00, 0xb4, 0x01, 0xff, 0x05, 0x25, 0x01, 0x06, - 0x5b, 0x93, 0x1c, 0x6f, 0xfb, 0x41, 0x4d, 0xb8, 0x4b, 0x83, 0x25, 0x00, - 0x09, 0x2a, 0x01, 0x01, 0xff, 0x45, 0x33, 0x01, 0x86, 0x25, 0x00, 0x56, - 0x67, 0x34, 0xa5, 0xce, 0x01, 0x57, 0xf6, 0x2f, 0xae, 0xce, 0x41, 0x0f, - 0xd3, 0x69, 0xbe, 0x01, 0x4f, 0x3c, 0x6a, 0xd3, 0x27, 0x00, 0x5a, 0x42, - 0x1f, 0x4f, 0x27, 0x00, 0x53, 0x5b, 0x25, 0x9f, 0xce, 0x01, 0x46, 0x16, - 0xdc, 0x0e, 0x27, 0x00, 0x03, 0x7c, 0x00, 0x38, 0x4d, 0x1a, 0x2f, 0x07, - 0xcc, 0x01, 0xb3, 0x19, 0xb4, 0x01, 0xff, 0x05, 0x1a, 0x01, 0x06, 0x4d, - 0x19, 0x7c, 0x3f, 0xcc, 0x41, 0x42, 0x68, 0x00, 0xff, 0x25, 0x00, 0x51, - 0x37, 0x5d, 0x9e, 0xfb, 0x41, 0x5b, 0x92, 0x1a, 0x3e, 0x29, 0x00, 0x0e, - 0xa5, 0x02, 0x01, 0xff, 0x46, 0xe7, 0x02, 0x3e, 0xf5, 0x01, 0x46, 0xab, - 0x05, 0x51, 0x27, 0x40, 0x06, 0x2d, 0x0d, 0x06, 0x4b, 0x47, 0x4b, 0x3a, - 0xcc, 0x41, 0xa3, 0x2e, 0xa6, 0x20, 0x4d, 0x2e, 0x84, 0xb9, 0xcc, 0x01, - 0x4c, 0xe5, 0x90, 0xad, 0xcc, 0x01, 0xb3, 0x06, 0x4a, 0x59, 0xaf, 0xb5, - 0xcc, 0x41, 0x4b, 0x92, 0x93, 0xab, 0xcc, 0x01, 0x4e, 0xcc, 0x71, 0xd5, - 0xcc, 0x41, 0x53, 0x92, 0x28, 0xaf, 0xcc, 0x01, 0x4c, 0x7e, 0x81, 0xb1, - 0xcc, 0x41, 0x05, 0x8e, 0x86, 0x06, 0x4b, 0x89, 0x9b, 0xde, 0x25, 0x40, - 0x46, 0x48, 0xd7, 0xc9, 0xcc, 0x01, 0xab, 0x12, 0x44, 0xb6, 0xee, 0xd1, - 0xcc, 0x01, 0x45, 0xe6, 0xbb, 0xc1, 0xcc, 0x01, 0x44, 0x0a, 0xef, 0xc5, - 0xcc, 0x41, 0x43, 0xa1, 0x01, 0xbd, 0xcc, 0x01, 0x45, 0xd5, 0x71, 0xcd, - 0xcc, 0x41, 0x06, 0x13, 0x01, 0x11, 0x1b, 0x50, 0x1d, 0x01, 0xff, 0x46, - 0x73, 0x02, 0x41, 0xfb, 0x01, 0x45, 0xc8, 0x00, 0x42, 0xfb, 0x41, 0x0a, - 0x73, 0x02, 0x32, 0x08, 0x84, 0x02, 0x17, 0x15, 0x56, 0x1d, 0x01, 0xff, - 0x46, 0x73, 0x02, 0x43, 0xfb, 0x01, 0x4c, 0x09, 0x0f, 0x46, 0xfb, 0x01, - 0x45, 0xc8, 0x00, 0x44, 0xfb, 0x41, 0x52, 0x46, 0x52, 0x48, 0xfb, 0x01, - 0x06, 0x6d, 0x02, 0x01, 0xff, 0x46, 0x73, 0x02, 0x45, 0xfb, 0x01, 0x4c, - 0x09, 0x0f, 0x4a, 0xfb, 0x41, 0x52, 0x46, 0x52, 0x47, 0xfb, 0x01, 0x06, - 0x6d, 0x02, 0x01, 0xff, 0x4c, 0x09, 0x0f, 0x49, 0xfb, 0x01, 0x45, 0xc8, - 0x00, 0x4b, 0xfb, 0x41, 0x4c, 0xc3, 0x0a, 0x81, 0x25, 0x00, 0x4d, 0xa1, - 0x1c, 0x82, 0x25, 0x40, 0x07, 0x73, 0x02, 0x21, 0x05, 0xc3, 0x00, 0x11, - 0x06, 0xc8, 0x00, 0x01, 0xff, 0x53, 0x5b, 0x25, 0x9b, 0xce, 0x01, 0x4e, - 0x18, 0x7c, 0x3b, 0xcc, 0x41, 0x53, 0x5b, 0x25, 0x98, 0xce, 0x01, 0x4e, - 0x18, 0x7c, 0x38, 0xcc, 0x41, 0x58, 0x05, 0x29, 0x99, 0xce, 0x01, 0x59, - 0x55, 0x25, 0x9a, 0xce, 0x41, 0xa2, 0xae, 0x01, 0x46, 0xd2, 0xd7, 0x8d, - 0xf5, 0x01, 0x4c, 0x61, 0x8d, 0x8b, 0xf5, 0x01, 0x53, 0x5b, 0x25, 0x9c, - 0xce, 0x01, 0xb0, 0x8d, 0x01, 0x03, 0x7c, 0x00, 0x1f, 0x60, 0x05, 0x10, - 0x3f, 0x29, 0x00, 0xb4, 0x01, 0xff, 0x05, 0x1a, 0x01, 0x06, 0x4d, 0x19, - 0x7c, 0x3c, 0xcc, 0x41, 0x42, 0x68, 0x00, 0xfa, 0x25, 0x00, 0x51, 0x37, - 0x5d, 0x9f, 0xfb, 0x41, 0x06, 0x2d, 0x0d, 0x06, 0x4b, 0x47, 0x4b, 0x39, - 0xcc, 0x41, 0xa3, 0x2e, 0xa6, 0x20, 0x4d, 0x2e, 0x84, 0xb8, 0xcc, 0x01, - 0x4c, 0xe5, 0x90, 0xac, 0xcc, 0x01, 0xb3, 0x06, 0x4a, 0x59, 0xaf, 0xb4, - 0xcc, 0x41, 0x4b, 0x92, 0x93, 0xaa, 0xcc, 0x01, 0x4e, 0xcc, 0x71, 0xd4, - 0xcc, 0x41, 0x53, 0x92, 0x28, 0xae, 0xcc, 0x01, 0x4c, 0x7e, 0x81, 0xb0, - 0xcc, 0x41, 0x05, 0x8e, 0x86, 0x06, 0x4b, 0x89, 0x9b, 0xdf, 0x25, 0x40, - 0x46, 0x48, 0xd7, 0xc8, 0xcc, 0x01, 0xab, 0x12, 0x44, 0xb6, 0xee, 0xd0, - 0xcc, 0x01, 0x45, 0xe6, 0xbb, 0xc0, 0xcc, 0x01, 0x44, 0x0a, 0xef, 0xc4, - 0xcc, 0x41, 0x43, 0xa1, 0x01, 0xbc, 0xcc, 0x01, 0x45, 0xd5, 0x71, 0xcc, - 0xcc, 0x41, 0x49, 0x6d, 0xb3, 0x8c, 0xf5, 0x01, 0x45, 0x17, 0xdc, 0x89, - 0xf5, 0x41, 0x4c, 0x55, 0x8a, 0x8a, 0xf5, 0x01, 0x0e, 0xd4, 0x69, 0x01, - 0xff, 0x1b, 0xf1, 0x1b, 0x50, 0x06, 0x6d, 0x02, 0x01, 0xff, 0x0a, 0x73, - 0x02, 0x31, 0x08, 0x84, 0x02, 0x17, 0x15, 0x7d, 0x02, 0x01, 0xff, 0x46, - 0x73, 0x02, 0x3e, 0xfb, 0x01, 0x4c, 0x09, 0x0f, 0x51, 0xfb, 0x01, 0x45, - 0xc8, 0x00, 0x3f, 0xfb, 0x41, 0x06, 0x13, 0x01, 0x06, 0x52, 0xf2, 0x54, - 0x4d, 0xfb, 0x41, 0x46, 0x73, 0x02, 0x40, 0xfb, 0x01, 0x4c, 0x09, 0x0f, - 0x4f, 0xfb, 0x41, 0x06, 0x13, 0x01, 0x06, 0x52, 0xf2, 0x54, 0x4c, 0xfb, - 0x41, 0x4c, 0x09, 0x0f, 0x4e, 0xfb, 0x01, 0x45, 0xc8, 0x00, 0x50, 0xfb, - 0x41, 0x46, 0x73, 0x02, 0x3c, 0xfb, 0x01, 0x45, 0xc8, 0x00, 0x3d, 0xfb, - 0x41, 0x04, 0x23, 0x00, 0x06, 0x57, 0x10, 0x2f, 0x05, 0xcc, 0x41, 0x5b, - 0xba, 0x19, 0x01, 0xce, 0x01, 0x45, 0x33, 0x01, 0x84, 0x25, 0x00, 0x46, - 0xe7, 0x02, 0xe1, 0x25, 0x00, 0x52, 0xde, 0x50, 0x04, 0xce, 0x01, 0x54, - 0x63, 0x42, 0xdb, 0x25, 0x00, 0x56, 0x67, 0x34, 0xa4, 0xce, 0x01, 0x4c, - 0x19, 0x04, 0x8f, 0xfb, 0x01, 0x57, 0xf6, 0x2f, 0xaf, 0xce, 0x01, 0x63, - 0x7e, 0x0b, 0x13, 0xce, 0x41, 0x05, 0xc3, 0x00, 0x17, 0x51, 0x9d, 0x1c, - 0xe5, 0xfb, 0x01, 0x06, 0xc8, 0x00, 0x01, 0xff, 0x53, 0x5b, 0x25, 0x9e, - 0xce, 0x01, 0x4e, 0x18, 0x7c, 0x3e, 0xcc, 0x41, 0x53, 0x5b, 0x25, 0x9d, - 0xce, 0x01, 0x4e, 0x18, 0x7c, 0x3d, 0xcc, 0x41, 0x48, 0xed, 0x0c, 0x4e, - 0x20, 0x00, 0xa2, 0x19, 0x5b, 0x5c, 0x1a, 0x1f, 0x30, 0x00, 0x46, 0xa4, - 0x4e, 0x47, 0x2e, 0x80, 0x06, 0x44, 0xc2, 0x07, 0x5f, 0x00, 0x40, 0x49, - 0xa5, 0x3a, 0x48, 0x2e, 0x40, 0x46, 0x12, 0xd7, 0xab, 0xfa, 0x01, 0x50, - 0x60, 0x57, 0x05, 0xf5, 0x41, 0x45, 0x0d, 0xe4, 0xe9, 0xf3, 0x01, 0x46, - 0xc1, 0x05, 0x8c, 0xf4, 0x41, 0x4b, 0x85, 0x95, 0x74, 0xf7, 0x01, 0x4a, - 0xb9, 0xa9, 0xf4, 0xf9, 0x01, 0x42, 0xc4, 0x02, 0xb7, 0xfa, 0x41, 0xa4, - 0x71, 0x04, 0xc3, 0x00, 0x30, 0x05, 0xc8, 0x00, 0x01, 0xff, 0x45, 0x24, - 0x38, 0xdd, 0x27, 0x00, 0x06, 0xa9, 0x01, 0x01, 0xff, 0x45, 0xce, 0x00, - 0xf6, 0x27, 0x80, 0x13, 0x4c, 0x71, 0x8c, 0xf9, 0x27, 0x80, 0x06, 0x4e, - 0x1c, 0x7b, 0xff, 0x27, 0x40, 0x49, 0xfc, 0xb1, 0xfe, 0x27, 0x40, 0x49, - 0xfc, 0xb1, 0xfc, 0x27, 0x40, 0x80, 0x25, 0x06, 0xa9, 0x01, 0x01, 0xff, - 0x45, 0xce, 0x00, 0xf5, 0x27, 0x80, 0x13, 0x4c, 0x71, 0x8c, 0xf8, 0x27, - 0x80, 0x06, 0x4e, 0x1c, 0x7b, 0x33, 0x2b, 0x40, 0x49, 0xfc, 0xb1, 0xfd, - 0x27, 0x40, 0x49, 0xfc, 0xb1, 0xfb, 0x27, 0x40, 0x06, 0xc8, 0x00, 0x06, - 0x44, 0x25, 0x38, 0xde, 0x27, 0x40, 0x45, 0xce, 0x00, 0xf7, 0x27, 0x00, - 0x4c, 0x71, 0x8c, 0xfa, 0x27, 0x40, 0x67, 0x7b, 0x05, 0xe6, 0x2a, 0x00, - 0x47, 0xf3, 0x31, 0xcc, 0x27, 0x00, 0x43, 0xe6, 0x1c, 0x98, 0xfa, 0x41, - 0x06, 0x3e, 0xd5, 0x7a, 0x03, 0x13, 0x00, 0x01, 0xff, 0x43, 0x1a, 0x00, - 0x27, 0x22, 0x80, 0x3c, 0x42, 0x0c, 0x00, 0x28, 0x22, 0xc0, 0x00, 0x80, - 0x01, 0xff, 0x57, 0x3e, 0x2f, 0x59, 0x2a, 0x00, 0x05, 0x51, 0x00, 0x01, - 0xff, 0x02, 0x3b, 0x01, 0x0c, 0x4f, 0x67, 0x6c, 0x5d, 0x2a, 0x00, 0x4b, - 0x78, 0x9d, 0x5b, 0x2a, 0x40, 0x47, 0x9a, 0x1d, 0x52, 0x2a, 0x00, 0x05, - 0x3d, 0x01, 0x01, 0xff, 0x47, 0x77, 0x7e, 0x62, 0x2a, 0x00, 0x48, 0x78, - 0x58, 0x63, 0x2a, 0x40, 0x06, 0x50, 0x00, 0x01, 0xff, 0x02, 0x3b, 0x01, - 0x12, 0x4f, 0x67, 0x6c, 0x5c, 0x2a, 0x00, 0x4b, 0x78, 0x9d, 0x5a, 0x2a, - 0x00, 0x48, 0x78, 0x58, 0x5f, 0x2a, 0x40, 0x47, 0x9a, 0x1d, 0x51, 0x2a, - 0x00, 0x05, 0x3d, 0x01, 0x01, 0xff, 0x47, 0x77, 0x7e, 0x5e, 0x2a, 0x00, - 0x48, 0x78, 0x58, 0x60, 0x2a, 0x40, 0x43, 0x1a, 0x00, 0x16, 0xcc, 0x01, - 0x46, 0x60, 0xd7, 0x19, 0xcc, 0x81, 0x16, 0x09, 0xd6, 0x22, 0x06, 0x42, - 0x0c, 0x00, 0x15, 0xcc, 0x41, 0x46, 0x0c, 0xda, 0x17, 0xcc, 0x01, 0x46, - 0xd5, 0x4f, 0x18, 0xcc, 0x41, 0x54, 0x07, 0x3f, 0x1a, 0xcc, 0x41, 0x4d, - 0x57, 0x7e, 0x0f, 0xf5, 0x01, 0x0a, 0x9b, 0xa9, 0x01, 0xff, 0x43, 0xbf, - 0x0a, 0x0e, 0x00, 0x00, 0x44, 0xa1, 0x1d, 0x0f, 0x00, 0x40, 0x43, 0x14, - 0x09, 0x4e, 0x26, 0x00, 0xa7, 0x93, 0x1d, 0xad, 0xd3, 0x19, 0xae, 0xdd, - 0x02, 0x47, 0x0d, 0xd1, 0x81, 0xf9, 0x01, 0x42, 0x63, 0x15, 0xe2, 0xf5, - 0x81, 0xc9, 0x02, 0x47, 0xe2, 0x82, 0xa4, 0x20, 0x00, 0x03, 0xcb, 0x21, - 0x0c, 0x51, 0xf2, 0x5d, 0xb6, 0x20, 0x00, 0x44, 0x48, 0x91, 0x8e, 0xf9, - 0x41, 0x07, 0xc1, 0x05, 0x11, 0x0c, 0x01, 0x16, 0x01, 0xff, 0x45, 0xe8, - 0x04, 0xfe, 0xa4, 0x00, 0x49, 0x15, 0x16, 0xff, 0xa4, 0x40, 0xe1, 0xee, - 0xa4, 0x80, 0x94, 0x02, 0x42, 0x16, 0x00, 0xd0, 0xa4, 0x00, 0xa3, 0x81, - 0x02, 0xa4, 0xf4, 0x01, 0xe5, 0xf0, 0xa4, 0x80, 0xea, 0x01, 0x42, 0xe1, - 0x07, 0xe9, 0xa4, 0x00, 0xa7, 0xd7, 0x01, 0xa8, 0xca, 0x01, 0xe9, 0xf2, - 0xa4, 0x00, 0x42, 0xbd, 0x26, 0xd9, 0xa4, 0x00, 0xab, 0xb3, 0x01, 0x42, - 0x74, 0x00, 0xe1, 0xa4, 0x00, 0x42, 0x6c, 0x00, 0xdf, 0xa4, 0x00, 0xae, - 0x9a, 0x01, 0xef, 0xf3, 0xa4, 0x80, 0x90, 0x01, 0xb0, 0x83, 0x01, 0xb3, - 0x77, 0xb4, 0x32, 0xf5, 0xf4, 0xa4, 0x80, 0x25, 0x42, 0xa9, 0x01, 0xea, - 0xa4, 0x00, 0x42, 0x4c, 0x26, 0xe7, 0xa4, 0x00, 0xb9, 0x0d, 0xba, 0x01, - 0xff, 0xe1, 0xe4, 0xa4, 0x00, 0x42, 0x22, 0x00, 0xe3, 0xa4, 0x40, 0xe1, - 0xec, 0xa4, 0x00, 0x42, 0x22, 0x00, 0xb0, 0x1f, 0x41, 0xe5, 0xf5, 0xa4, - 0x00, 0xe8, 0xf6, 0xa4, 0x40, 0xe1, 0xd4, 0xa4, 0x00, 0x42, 0x22, 0x00, - 0xd5, 0xa4, 0x00, 0x04, 0xbf, 0x0a, 0x0d, 0xb3, 0x01, 0xff, 0xe1, 0xdd, - 0xa4, 0x00, 0x42, 0x22, 0x00, 0xde, 0xa4, 0x40, 0x04, 0xed, 0x60, 0x06, - 0x45, 0xc5, 0xe5, 0xf9, 0xa4, 0x40, 0x42, 0x5d, 0x00, 0xfb, 0xa4, 0x00, - 0x43, 0xbd, 0xf0, 0xfa, 0xa4, 0x00, 0x43, 0x0e, 0xf1, 0xfd, 0xa4, 0x00, - 0x42, 0xff, 0x04, 0xfc, 0xa4, 0x00, 0x42, 0x35, 0x00, 0xf8, 0xa4, 0x40, - 0xe1, 0xe2, 0xa4, 0x00, 0x42, 0x22, 0x00, 0xeb, 0xa4, 0x40, 0xe1, 0xd1, - 0xa4, 0x00, 0x42, 0x22, 0x00, 0xd2, 0xa4, 0x40, 0xe5, 0xf7, 0xa4, 0x40, - 0xe1, 0xe0, 0xa4, 0x00, 0x42, 0x24, 0x02, 0xe5, 0xa4, 0x40, 0xe1, 0xd7, - 0xa4, 0x00, 0x42, 0x22, 0x00, 0xd8, 0xa4, 0x40, 0xe1, 0xe6, 0xa4, 0x00, - 0x42, 0x22, 0x00, 0xe8, 0xa4, 0x40, 0xe1, 0xd6, 0xa4, 0x00, 0x42, 0x22, - 0x00, 0xed, 0xa4, 0x40, 0xf5, 0xf1, 0xa4, 0x40, 0xe1, 0xd3, 0xa4, 0x00, - 0x42, 0x59, 0x00, 0xdc, 0xa4, 0x40, 0xe1, 0xda, 0xa4, 0x00, 0x42, 0x22, - 0x00, 0xdb, 0xa4, 0x40, 0xe5, 0xef, 0xa4, 0x40, 0x44, 0xd2, 0x07, 0x84, - 0xf4, 0x41, 0xa5, 0x0f, 0xab, 0x01, 0xff, 0x47, 0xea, 0x07, 0x17, 0xf5, - 0x01, 0x4d, 0xc7, 0x80, 0x87, 0xf5, 0x41, 0x80, 0xab, 0x16, 0x03, 0x17, - 0x00, 0x01, 0xff, 0x08, 0x8a, 0xc0, 0xd5, 0x09, 0x02, 0x26, 0x02, 0x01, - 0xff, 0x09, 0x9c, 0xb7, 0xdd, 0x04, 0x0a, 0xa3, 0xab, 0xae, 0x04, 0x02, - 0xeb, 0x07, 0x01, 0xff, 0x09, 0x31, 0xb9, 0x4e, 0x07, 0x5e, 0xd0, 0x01, - 0xff, 0x91, 0x3f, 0x42, 0x21, 0xea, 0x52, 0x00, 0x01, 0x42, 0xa6, 0xf1, - 0x53, 0x00, 0x01, 0x94, 0x29, 0x42, 0x7a, 0xc0, 0x56, 0x00, 0x01, 0x96, - 0x19, 0x42, 0x1b, 0x3f, 0x59, 0x00, 0x01, 0x98, 0x01, 0xff, 0xd2, 0x5a, - 0x00, 0x01, 0xd3, 0x5b, 0x00, 0x01, 0xd6, 0x5c, 0x00, 0x01, 0xd9, 0x5d, - 0x00, 0x41, 0xd3, 0x57, 0x00, 0x01, 0xd4, 0x58, 0x00, 0x41, 0xd7, 0x54, - 0x00, 0x01, 0xd9, 0x55, 0x00, 0x41, 0xd8, 0x50, 0x00, 0x01, 0xd9, 0x51, - 0x00, 0x41, 0x90, 0x9e, 0x03, 0x91, 0xeb, 0x02, 0x92, 0xb2, 0x02, 0x93, - 0xff, 0x01, 0x94, 0xcc, 0x01, 0x95, 0x93, 0x01, 0x96, 0x61, 0x97, 0x29, - 0x98, 0x0f, 0x99, 0x01, 0xff, 0x45, 0xf9, 0xde, 0x44, 0x00, 0x01, 0x45, - 0x3a, 0xdf, 0x4d, 0x00, 0x41, 0x44, 0x17, 0xdf, 0x14, 0x00, 0x01, 0x44, - 0xee, 0xe9, 0x13, 0x00, 0x01, 0x44, 0xa6, 0xea, 0x42, 0x00, 0x01, 0x45, - 0x6b, 0xe0, 0x4c, 0x00, 0x41, 0x44, 0xae, 0xe9, 0x12, 0x00, 0x01, 0x45, - 0x26, 0xdf, 0x43, 0x00, 0x01, 0x44, 0x26, 0xea, 0x1f, 0x00, 0x01, 0x44, - 0x5e, 0xea, 0x16, 0x00, 0x01, 0x44, 0x9a, 0xea, 0x3d, 0x00, 0x01, 0x44, - 0xea, 0xea, 0x38, 0x00, 0x01, 0x45, 0x2a, 0xe0, 0x48, 0x00, 0x01, 0x44, - 0x3a, 0xd6, 0x0f, 0x00, 0x01, 0x44, 0x72, 0xeb, 0x24, 0x00, 0x41, 0x44, - 0xba, 0xe9, 0x28, 0x00, 0x01, 0x43, 0x1c, 0x74, 0x03, 0x00, 0x01, 0x45, - 0x8a, 0xdf, 0x47, 0x00, 0x01, 0x44, 0xc2, 0xea, 0x0e, 0x00, 0x01, 0x45, - 0x39, 0xe0, 0x4b, 0x00, 0x01, 0x44, 0x3a, 0xeb, 0x11, 0x00, 0x01, 0x45, - 0x98, 0xe0, 0x4a, 0x00, 0x01, 0x44, 0x9e, 0xeb, 0x36, 0x00, 0x41, 0x44, - 0xb6, 0xe9, 0x22, 0x00, 0x01, 0x44, 0xda, 0xe9, 0x09, 0x00, 0x01, 0x44, - 0x22, 0xea, 0x1c, 0x00, 0x01, 0x44, 0x6a, 0xea, 0x2a, 0x00, 0x01, 0x44, - 0x92, 0xea, 0x37, 0x00, 0x01, 0x44, 0xce, 0xea, 0x1d, 0x00, 0x01, 0x44, - 0x36, 0xeb, 0x0a, 0x00, 0x01, 0x44, 0x76, 0xeb, 0x31, 0x00, 0x01, 0x44, - 0x96, 0xeb, 0x32, 0x00, 0x41, 0x44, 0xc2, 0xe9, 0x39, 0x00, 0x01, 0x44, - 0x02, 0xea, 0x2f, 0x00, 0x01, 0x44, 0x48, 0xcb, 0x3a, 0x00, 0x01, 0x44, - 0x3e, 0xea, 0x41, 0x00, 0x01, 0x44, 0x7e, 0xea, 0x10, 0x00, 0x01, 0x44, - 0xae, 0xea, 0x06, 0x00, 0x01, 0x44, 0xfe, 0xea, 0x0b, 0x00, 0x01, 0x45, - 0x93, 0xe0, 0x45, 0x00, 0x41, 0x44, 0xb2, 0xe9, 0x1b, 0x00, 0x01, 0x44, - 0xfe, 0xe9, 0x2d, 0x00, 0x01, 0x44, 0x2a, 0xea, 0x26, 0x00, 0x01, 0x45, - 0xb2, 0xdf, 0x49, 0x00, 0x01, 0x44, 0x02, 0xeb, 0x0d, 0x00, 0x01, 0x44, - 0x46, 0xeb, 0x34, 0x00, 0x01, 0x43, 0x5a, 0xeb, 0x01, 0x00, 0x01, 0x44, - 0x86, 0xeb, 0x20, 0x00, 0x41, 0x44, 0xca, 0xe9, 0x3f, 0x00, 0x01, 0x44, - 0xf6, 0xe9, 0x25, 0x00, 0x01, 0x44, 0x62, 0xea, 0x18, 0x00, 0x01, 0x44, - 0x86, 0xea, 0x1a, 0x00, 0x01, 0x44, 0x9e, 0xea, 0x40, 0x00, 0x01, 0x44, - 0x1a, 0xeb, 0x2c, 0x00, 0x01, 0x44, 0x42, 0xeb, 0x29, 0x00, 0x01, 0x43, - 0x84, 0xf0, 0x02, 0x00, 0x01, 0x45, 0xca, 0xe0, 0x46, 0x00, 0x41, 0x43, - 0x21, 0xf0, 0x04, 0x00, 0x01, 0x44, 0xf2, 0xe9, 0x21, 0x00, 0x01, 0x44, - 0x32, 0xea, 0x30, 0x00, 0x01, 0x44, 0x5a, 0xea, 0x15, 0x00, 0x01, 0x44, - 0x76, 0xea, 0x08, 0x00, 0x01, 0x44, 0xca, 0xea, 0x17, 0x00, 0x01, 0x44, - 0x16, 0xeb, 0x23, 0x00, 0x01, 0x44, 0x4e, 0xeb, 0x3c, 0x00, 0x41, 0x44, - 0xd2, 0xe9, 0x05, 0x00, 0x01, 0x44, 0x2e, 0xea, 0x2b, 0x00, 0x01, 0x44, - 0x66, 0xea, 0x1e, 0x00, 0x01, 0x44, 0x8a, 0xea, 0x33, 0x00, 0x01, 0x44, - 0xda, 0xea, 0x35, 0x00, 0x01, 0x44, 0x0e, 0xeb, 0x19, 0x00, 0x01, 0x44, - 0xfa, 0xb2, 0x07, 0x00, 0x01, 0x43, 0x81, 0xf0, 0x00, 0x00, 0x01, 0x44, - 0x8a, 0xeb, 0x2e, 0x00, 0x41, 0x91, 0x06, 0x49, 0xf8, 0xb2, 0xd2, 0x00, - 0x41, 0x92, 0x14, 0x93, 0x06, 0x48, 0x7a, 0xc0, 0xa4, 0x00, 0x41, 0x47, - 0x56, 0xcb, 0x98, 0x00, 0x01, 0x46, 0x10, 0xd6, 0x99, 0x00, 0x41, 0x46, - 0x3a, 0xd6, 0x93, 0x00, 0x01, 0x48, 0x82, 0xc0, 0x94, 0x00, 0x41, 0xa2, - 0x87, 0x01, 0x08, 0x92, 0xc9, 0x01, 0xff, 0x43, 0x3c, 0xf0, 0xde, 0x00, - 0x01, 0x92, 0x06, 0x43, 0x57, 0xf0, 0xfa, 0x00, 0x41, 0x90, 0x4a, 0x91, - 0x20, 0x92, 0x06, 0x42, 0xd7, 0xcf, 0xf9, 0x00, 0x41, 0xd1, 0xf3, 0x00, - 0x01, 0xd2, 0xf4, 0x00, 0x01, 0xd6, 0xf5, 0x00, 0x01, 0xd7, 0xf6, 0x00, - 0x01, 0xd8, 0xf7, 0x00, 0x01, 0xd9, 0xf8, 0x00, 0x41, 0xd0, 0xe9, 0x00, - 0x01, 0xd1, 0xea, 0x00, 0x01, 0xd2, 0xeb, 0x00, 0x01, 0xd3, 0xec, 0x00, - 0x01, 0xd4, 0xed, 0x00, 0x01, 0xd5, 0xee, 0x00, 0x01, 0xd6, 0xef, 0x00, - 0x01, 0xd7, 0xf0, 0x00, 0x01, 0xd8, 0xf1, 0x00, 0x01, 0xd9, 0xf2, 0x00, - 0x41, 0xd0, 0xdf, 0x00, 0x01, 0xd1, 0xe0, 0x00, 0x01, 0xd2, 0xe1, 0x00, - 0x01, 0xd3, 0xe2, 0x00, 0x01, 0xd4, 0xe3, 0x00, 0x01, 0xd5, 0xe4, 0x00, - 0x01, 0xd6, 0xe5, 0x00, 0x01, 0xd7, 0xe6, 0x00, 0x01, 0xd8, 0xe7, 0x00, - 0x01, 0xd9, 0xe8, 0x00, 0x41, 0x91, 0x84, 0x01, 0x92, 0x01, 0xff, 0x92, - 0x73, 0x93, 0x53, 0x94, 0x29, 0x95, 0x01, 0xff, 0xd1, 0xd5, 0x00, 0x01, - 0xd2, 0xd6, 0x00, 0x01, 0xd3, 0xd7, 0x00, 0x01, 0x46, 0xe6, 0xd5, 0xd8, - 0x00, 0x01, 0xd5, 0xd9, 0x00, 0x01, 0xd6, 0xda, 0x00, 0x01, 0xd7, 0xdb, - 0x00, 0x01, 0xd8, 0xdc, 0x00, 0x01, 0xd9, 0xdd, 0x00, 0x41, 0x51, 0x71, - 0x56, 0xcc, 0x00, 0x01, 0x49, 0xe6, 0xb2, 0xcd, 0x00, 0x01, 0x4f, 0xc5, - 0x68, 0xce, 0x00, 0x01, 0x47, 0x80, 0xcb, 0xcf, 0x00, 0x01, 0xd5, 0xd0, - 0x00, 0x01, 0xd6, 0xd1, 0x00, 0x01, 0xd8, 0xd3, 0x00, 0x01, 0xd9, 0xd4, - 0x00, 0x41, 0x47, 0x2c, 0xcb, 0xc6, 0x00, 0x01, 0x47, 0x3a, 0xcb, 0xc7, - 0x00, 0x01, 0xd2, 0xc8, 0x00, 0x01, 0x47, 0x79, 0xcb, 0xc9, 0x00, 0x01, - 0xd4, 0xca, 0x00, 0x01, 0xd6, 0xcb, 0x00, 0x41, 0x4b, 0x82, 0x96, 0xc4, - 0x00, 0x01, 0x49, 0x0a, 0xb3, 0xc5, 0x00, 0x41, 0x90, 0xfb, 0x01, 0x92, - 0xda, 0x01, 0x93, 0xc7, 0x01, 0x94, 0xaa, 0x01, 0x95, 0x83, 0x01, 0x96, - 0x55, 0x97, 0x2b, 0x98, 0x0d, 0x99, 0x01, 0xff, 0xd0, 0xc2, 0x00, 0x01, - 0x48, 0x6a, 0xc0, 0xc3, 0x00, 0x41, 0xd0, 0xbb, 0x00, 0x01, 0xd1, 0xbc, - 0x00, 0x01, 0xd2, 0xbd, 0x00, 0x01, 0xd3, 0xbe, 0x00, 0x01, 0xd4, 0xbf, - 0x00, 0x01, 0xd5, 0xc0, 0x00, 0x01, 0xd9, 0xc1, 0x00, 0x41, 0xd0, 0xb2, - 0x00, 0x01, 0xd1, 0xb3, 0x00, 0x01, 0xd2, 0xb4, 0x00, 0x01, 0x47, 0x64, - 0xcb, 0xb5, 0x00, 0x01, 0xd4, 0xb6, 0x00, 0x01, 0x46, 0x2e, 0xd6, 0xb7, - 0x00, 0x01, 0xd7, 0xb8, 0x00, 0x01, 0xd8, 0xb9, 0x00, 0x01, 0xd9, 0xba, - 0x00, 0x41, 0xd0, 0xa8, 0x00, 0x01, 0xd1, 0xa9, 0x00, 0x01, 0x49, 0xef, - 0xb2, 0xaa, 0x00, 0x01, 0x48, 0x72, 0xc0, 0xab, 0x00, 0x01, 0xd4, 0xac, - 0x00, 0x01, 0xd5, 0xad, 0x00, 0x01, 0xd6, 0xae, 0x00, 0x01, 0xd7, 0xaf, - 0x00, 0x01, 0xd8, 0xb0, 0x00, 0x01, 0xd9, 0xb1, 0x00, 0x41, 0xd0, 0x9f, - 0x00, 0x01, 0x46, 0xb6, 0xd5, 0xa0, 0x00, 0x01, 0xd2, 0xa1, 0x00, 0x01, - 0xd3, 0xa2, 0x00, 0x01, 0xd4, 0xa3, 0x00, 0x01, 0xd7, 0xa5, 0x00, 0x01, - 0xd8, 0xa6, 0x00, 0x01, 0x47, 0xa3, 0xcb, 0xa7, 0x00, 0x41, 0x48, 0x5a, - 0xc0, 0x9a, 0x00, 0x01, 0x46, 0xb0, 0xd5, 0x9b, 0x00, 0x01, 0xd2, 0x9c, - 0x00, 0x01, 0x46, 0x16, 0xd6, 0x9d, 0x00, 0x01, 0xd6, 0x9e, 0x00, 0x41, - 0x45, 0x1c, 0xdf, 0x95, 0x00, 0x01, 0x46, 0xc2, 0xd5, 0x96, 0x00, 0x01, - 0xd2, 0x97, 0x00, 0x41, 0x47, 0x33, 0xcb, 0x8e, 0x00, 0x01, 0x48, 0x62, - 0xc0, 0x8f, 0x00, 0x01, 0x47, 0x41, 0xcb, 0x90, 0x00, 0x01, 0x47, 0x72, - 0xcb, 0x91, 0x00, 0x01, 0x49, 0x13, 0xb3, 0x92, 0x00, 0x41, 0x45, 0x17, - 0xdf, 0x80, 0x00, 0x01, 0x47, 0x48, 0xcb, 0x81, 0x00, 0x01, 0x46, 0xec, - 0xd5, 0x82, 0x00, 0x01, 0x95, 0x39, 0x96, 0x2b, 0x97, 0x1d, 0x98, 0x0f, - 0x99, 0x01, 0xff, 0x45, 0x36, 0xe3, 0x8c, 0x00, 0x01, 0x46, 0xea, 0xda, - 0x8d, 0x00, 0x41, 0x45, 0x40, 0xe3, 0x8a, 0x00, 0x01, 0x46, 0xe4, 0xda, - 0x8b, 0x00, 0x41, 0x4a, 0x01, 0xa8, 0x88, 0x00, 0x01, 0x49, 0x67, 0xb9, - 0x89, 0x00, 0x41, 0x45, 0x3b, 0xe3, 0x86, 0x00, 0x01, 0x45, 0x39, 0xe5, - 0x87, 0x00, 0x41, 0x46, 0x32, 0xd5, 0x83, 0x00, 0x01, 0x46, 0xc2, 0xd8, - 0x84, 0x00, 0x01, 0x4a, 0x3f, 0xab, 0x85, 0x00, 0x41, 0x44, 0xce, 0xe9, - 0x1b, 0x06, 0x01, 0x91, 0xb1, 0x0c, 0x93, 0xe8, 0x09, 0x94, 0xee, 0x08, - 0x95, 0x90, 0x06, 0x96, 0xac, 0x04, 0x97, 0x9b, 0x03, 0x02, 0xd9, 0xf0, - 0xf6, 0x02, 0xa2, 0x01, 0xff, 0x90, 0x3f, 0x91, 0x01, 0xff, 0x42, 0x4e, - 0xdf, 0x48, 0x06, 0x01, 0x92, 0x28, 0x02, 0x37, 0xe9, 0x1c, 0x42, 0xb8, - 0xf1, 0x50, 0x06, 0x01, 0x42, 0xa1, 0xf1, 0x51, 0x06, 0x01, 0x98, 0x06, - 0x42, 0x2c, 0xf0, 0x54, 0x06, 0x41, 0xd0, 0x52, 0x06, 0x01, 0xd8, 0x53, - 0x06, 0x41, 0xe1, 0x4d, 0x06, 0x01, 0xe2, 0x4e, 0x06, 0x41, 0xd0, 0x49, - 0x06, 0x01, 0xd2, 0x4b, 0x06, 0x01, 0xd3, 0x4c, 0x06, 0x41, 0x90, 0x8b, - 0x02, 0x91, 0xf4, 0x01, 0x92, 0xb6, 0x01, 0x93, 0x9b, 0x01, 0x94, 0x79, - 0x95, 0x53, 0x96, 0x39, 0x97, 0x1b, 0x98, 0x01, 0xff, 0xd0, 0x41, 0x06, - 0x01, 0xd1, 0x42, 0x06, 0x01, 0xd2, 0x43, 0x06, 0x01, 0xd5, 0x44, 0x06, - 0x01, 0xd6, 0x45, 0x06, 0x01, 0xd7, 0x46, 0x06, 0x41, 0xd0, 0x3a, 0x06, - 0x01, 0xd3, 0x3b, 0x06, 0x01, 0xd4, 0x3c, 0x06, 0x01, 0xd6, 0x3d, 0x06, - 0x01, 0xd7, 0x3e, 0x06, 0x01, 0xd8, 0x3f, 0x06, 0x01, 0xd9, 0x40, 0x06, - 0x41, 0xd0, 0x34, 0x06, 0x01, 0xd1, 0x35, 0x06, 0x01, 0xd5, 0x36, 0x06, - 0x01, 0xd6, 0x37, 0x06, 0x01, 0xd7, 0x38, 0x06, 0x01, 0xd9, 0x39, 0x06, - 0x41, 0xd0, 0x2b, 0x06, 0x01, 0xd1, 0x2c, 0x06, 0x01, 0xd3, 0x2d, 0x06, - 0x01, 0xd4, 0x2e, 0x06, 0x01, 0xd5, 0x2f, 0x06, 0x01, 0xd6, 0x30, 0x06, - 0x01, 0xd7, 0x31, 0x06, 0x01, 0xd8, 0x32, 0x06, 0x01, 0xd9, 0x33, 0x06, - 0x41, 0xd0, 0x23, 0x06, 0x01, 0xd1, 0x24, 0x06, 0x01, 0xd4, 0x25, 0x06, - 0x01, 0xd5, 0x26, 0x06, 0x01, 0xd6, 0x27, 0x06, 0x01, 0xd7, 0x28, 0x06, - 0x01, 0xd8, 0x29, 0x06, 0x01, 0xd9, 0x2a, 0x06, 0x41, 0xd0, 0x1d, 0x06, - 0x01, 0xd1, 0x1e, 0x06, 0x01, 0xd4, 0x1f, 0x06, 0x01, 0xd7, 0x20, 0x06, - 0x01, 0xd8, 0x21, 0x06, 0x01, 0xd9, 0x22, 0x06, 0x41, 0xd0, 0x0e, 0x06, - 0x01, 0xd1, 0x0f, 0x06, 0x81, 0x2a, 0xd2, 0x12, 0x06, 0x81, 0x1d, 0xd3, - 0x15, 0x06, 0x81, 0x14, 0xd4, 0x17, 0x06, 0x01, 0xd6, 0x18, 0x06, 0x01, - 0xd7, 0x19, 0x06, 0x01, 0xd8, 0x1a, 0x06, 0x01, 0xd9, 0x1c, 0x06, 0x41, - 0xed, 0x16, 0x06, 0x41, 0xe6, 0x13, 0x06, 0x01, 0xed, 0x14, 0x06, 0x41, - 0xe6, 0x10, 0x06, 0x01, 0xed, 0x11, 0x06, 0x41, 0xd0, 0x09, 0x06, 0x01, - 0xd1, 0x0a, 0x06, 0x01, 0xd3, 0x0b, 0x06, 0x01, 0xd6, 0x0c, 0x06, 0x01, - 0xd7, 0x0d, 0x06, 0x41, 0xd1, 0x00, 0x06, 0x01, 0xd2, 0x01, 0x06, 0x01, - 0xd3, 0x02, 0x06, 0x01, 0xd4, 0x03, 0x06, 0x01, 0xd5, 0x04, 0x06, 0x01, - 0xd6, 0x05, 0x06, 0x01, 0xd7, 0x06, 0x06, 0x01, 0xd8, 0x07, 0x06, 0x01, - 0xd9, 0x08, 0x06, 0x41, 0xd0, 0x60, 0x07, 0x01, 0xd1, 0x61, 0x07, 0x01, - 0xd2, 0x62, 0x07, 0x01, 0xd3, 0x63, 0x07, 0x01, 0xd4, 0x64, 0x07, 0x01, - 0xd5, 0x65, 0x07, 0x01, 0xd6, 0x66, 0x07, 0x01, 0xd7, 0x67, 0x07, 0x41, - 0x90, 0x38, 0x91, 0x0c, 0x47, 0x4f, 0xcb, 0x54, 0x07, 0x01, 0x45, 0xc6, - 0xdf, 0x55, 0x07, 0x41, 0x43, 0x71, 0x56, 0x4d, 0x07, 0x01, 0x43, 0x2d, - 0xf0, 0x4e, 0x07, 0x01, 0x43, 0x3a, 0xea, 0x4f, 0x07, 0x01, 0x47, 0x6b, - 0xcb, 0x50, 0x07, 0x01, 0x45, 0xcb, 0xdf, 0x51, 0x07, 0x01, 0x44, 0xaa, - 0xea, 0x52, 0x07, 0x01, 0x44, 0x2e, 0xeb, 0x53, 0x07, 0x41, 0x43, 0x3a, - 0xcb, 0x40, 0x07, 0x01, 0x43, 0x16, 0xea, 0x41, 0x07, 0x01, 0x43, 0x4e, - 0xf0, 0x42, 0x07, 0x01, 0x43, 0x5d, 0xf0, 0x43, 0x07, 0x01, 0x43, 0xb2, - 0xea, 0x44, 0x07, 0x01, 0x43, 0x22, 0xd6, 0x45, 0x07, 0x01, 0x43, 0x57, - 0xe0, 0x46, 0x07, 0x01, 0x43, 0x82, 0xc0, 0x47, 0x07, 0x01, 0x99, 0x01, - 0xff, 0x42, 0x73, 0x00, 0x48, 0x07, 0x01, 0x8d, 0x01, 0xff, 0x44, 0x1e, - 0xea, 0x49, 0x07, 0x01, 0x44, 0x52, 0xea, 0x4a, 0x07, 0x01, 0x44, 0x82, - 0xea, 0x4b, 0x07, 0x01, 0x44, 0x06, 0xeb, 0x4c, 0x07, 0x41, 0x90, 0xbe, - 0x01, 0x91, 0x93, 0x01, 0x92, 0x6d, 0x93, 0x5f, 0x94, 0x3d, 0x95, 0x17, - 0x96, 0x01, 0xff, 0xd0, 0x32, 0x07, 0x01, 0xd1, 0x33, 0x07, 0x01, 0xd2, - 0x34, 0x07, 0x01, 0xd3, 0x35, 0x07, 0x01, 0xd4, 0x36, 0x07, 0x41, 0xd1, - 0x29, 0x07, 0x01, 0xd2, 0x2a, 0x07, 0x01, 0xd3, 0x2b, 0x07, 0x01, 0xd4, - 0x2c, 0x07, 0x01, 0xd5, 0x2d, 0x07, 0x01, 0xd6, 0x2e, 0x07, 0x01, 0xd7, - 0x2f, 0x07, 0x01, 0xd8, 0x30, 0x07, 0x01, 0xd9, 0x31, 0x07, 0x41, 0xd0, - 0x21, 0x07, 0x01, 0xd2, 0x22, 0x07, 0x01, 0xd3, 0x23, 0x07, 0x01, 0xd4, - 0x24, 0x07, 0x01, 0xd5, 0x25, 0x07, 0x01, 0xd6, 0x26, 0x07, 0x01, 0xd8, - 0x27, 0x07, 0x01, 0xd9, 0x28, 0x07, 0x41, 0xd4, 0x1e, 0x07, 0x01, 0xd7, - 0x1f, 0x07, 0x01, 0xd8, 0x20, 0x07, 0x41, 0xd0, 0x15, 0x07, 0x01, 0xd1, - 0x16, 0x07, 0x01, 0xd2, 0x17, 0x07, 0x01, 0xd3, 0x18, 0x07, 0x01, 0xd4, - 0x19, 0x07, 0x01, 0xd6, 0x1a, 0x07, 0x01, 0xd7, 0x1b, 0x07, 0x01, 0xd8, - 0x1c, 0x07, 0x01, 0xd9, 0x1d, 0x07, 0x41, 0xd0, 0x0b, 0x07, 0x01, 0xd1, - 0x0c, 0x07, 0x01, 0xd2, 0x0d, 0x07, 0x01, 0xd3, 0x0e, 0x07, 0x01, 0xd4, - 0x0f, 0x07, 0x01, 0xd5, 0x10, 0x07, 0x01, 0xd6, 0x11, 0x07, 0x01, 0xd7, - 0x12, 0x07, 0x01, 0xd8, 0x13, 0x07, 0x01, 0xd9, 0x14, 0x07, 0x41, 0xd0, - 0x03, 0x07, 0x01, 0xd1, 0x04, 0x07, 0x01, 0xd2, 0x05, 0x07, 0x01, 0xd3, - 0x06, 0x07, 0x01, 0xd4, 0x07, 0x07, 0x01, 0xd6, 0x08, 0x07, 0x01, 0xd8, - 0x09, 0x07, 0x01, 0xd9, 0x0a, 0x07, 0x41, 0x90, 0xb8, 0x02, 0x91, 0x9d, - 0x02, 0x92, 0xf6, 0x01, 0x93, 0xcf, 0x01, 0x94, 0xb0, 0x01, 0x95, 0x89, - 0x01, 0x96, 0x6f, 0x97, 0x45, 0x98, 0x1b, 0x99, 0x01, 0xff, 0xd1, 0xfd, - 0x06, 0x01, 0xd2, 0xfe, 0x06, 0x01, 0xd4, 0xff, 0x06, 0x01, 0xd5, 0x00, - 0x07, 0x01, 0xd6, 0x01, 0x07, 0x01, 0xd8, 0x02, 0x07, 0x41, 0xd0, 0xf3, - 0x06, 0x01, 0xd1, 0xf4, 0x06, 0x01, 0xd2, 0xf5, 0x06, 0x01, 0xd3, 0xf6, - 0x06, 0x01, 0xd4, 0xf7, 0x06, 0x01, 0xd5, 0xf8, 0x06, 0x01, 0xd6, 0xf9, - 0x06, 0x01, 0xd7, 0xfa, 0x06, 0x01, 0xd8, 0xfb, 0x06, 0x01, 0xd9, 0xfc, - 0x06, 0x41, 0xd0, 0xe9, 0x06, 0x01, 0xd1, 0xea, 0x06, 0x01, 0xd2, 0xeb, - 0x06, 0x01, 0xd3, 0xec, 0x06, 0x01, 0xd4, 0xed, 0x06, 0x01, 0xd5, 0xee, - 0x06, 0x01, 0xd6, 0xef, 0x06, 0x01, 0xd7, 0xf0, 0x06, 0x01, 0xd8, 0xf1, - 0x06, 0x01, 0xd9, 0xf2, 0x06, 0x41, 0xd3, 0xe3, 0x06, 0x01, 0xd4, 0xe4, - 0x06, 0x01, 0xd5, 0xe5, 0x06, 0x01, 0xd6, 0xe6, 0x06, 0x01, 0xd8, 0xe7, - 0x06, 0x01, 0xd9, 0xe8, 0x06, 0x41, 0xd0, 0xda, 0x06, 0x01, 0xd1, 0xdb, - 0x06, 0x01, 0xd2, 0xdc, 0x06, 0x01, 0xd3, 0xdd, 0x06, 0x01, 0xd4, 0xde, - 0x06, 0x01, 0xd5, 0xdf, 0x06, 0x01, 0xd6, 0xe0, 0x06, 0x01, 0xd7, 0xe1, - 0x06, 0x01, 0xd9, 0xe2, 0x06, 0x41, 0xd0, 0xd3, 0x06, 0x01, 0xd1, 0xd4, - 0x06, 0x01, 0xd2, 0xd5, 0x06, 0x01, 0xd5, 0xd6, 0x06, 0x01, 0xd7, 0xd7, - 0x06, 0x01, 0xd8, 0xd8, 0x06, 0x01, 0xd9, 0xd9, 0x06, 0x41, 0xd0, 0xca, - 0x06, 0x01, 0xd1, 0xcb, 0x06, 0x01, 0xd2, 0xcc, 0x06, 0x01, 0xd4, 0xcd, - 0x06, 0x01, 0xd5, 0xce, 0x06, 0x01, 0xd6, 0xcf, 0x06, 0x01, 0xd7, 0xd0, - 0x06, 0x01, 0xd8, 0xd1, 0x06, 0x01, 0xd9, 0xd2, 0x06, 0x41, 0xd0, 0xc1, - 0x06, 0x01, 0xd1, 0xc2, 0x06, 0x01, 0xd3, 0xc3, 0x06, 0x01, 0xd4, 0xc4, - 0x06, 0x01, 0xd5, 0xc5, 0x06, 0x01, 0xd6, 0xc6, 0x06, 0x01, 0xd7, 0xc7, - 0x06, 0x01, 0xd8, 0xc8, 0x06, 0x01, 0xd9, 0xc9, 0x06, 0x41, 0xd0, 0xbb, - 0x06, 0x01, 0xd1, 0xbc, 0x06, 0x01, 0xd2, 0xbd, 0x06, 0x01, 0xd3, 0xbe, - 0x06, 0x01, 0xd5, 0xbf, 0x06, 0x01, 0xd6, 0xc0, 0x06, 0x41, 0xd1, 0xb3, - 0x06, 0x01, 0xd2, 0xb4, 0x06, 0x01, 0xd3, 0xb5, 0x06, 0x01, 0xd4, 0xb6, - 0x06, 0x01, 0xd5, 0xb7, 0x06, 0x01, 0xd6, 0xb8, 0x06, 0x01, 0xd8, 0xb9, - 0x06, 0x01, 0xd9, 0xba, 0x06, 0x41, 0x90, 0x39, 0x91, 0x01, 0xff, 0x45, - 0x21, 0xdf, 0xaa, 0x06, 0x01, 0x45, 0x49, 0xdf, 0xab, 0x06, 0x01, 0x45, - 0x94, 0xdf, 0xac, 0x06, 0x01, 0x45, 0xc1, 0xdf, 0xad, 0x06, 0x01, 0x45, - 0x07, 0xe0, 0xae, 0x06, 0x01, 0x45, 0x1b, 0xe0, 0xaf, 0x06, 0x01, 0x45, - 0x43, 0xe0, 0xb0, 0x06, 0x01, 0x45, 0x70, 0xe0, 0xb1, 0x06, 0x01, 0x45, - 0x9d, 0xe0, 0xb2, 0x06, 0x41, 0x45, 0x21, 0xdf, 0xa0, 0x06, 0x01, 0x45, - 0x49, 0xdf, 0xa1, 0x06, 0x01, 0x45, 0x94, 0xdf, 0xa2, 0x06, 0x01, 0x45, - 0xc1, 0xdf, 0xa3, 0x06, 0x01, 0x45, 0x07, 0xe0, 0xa4, 0x06, 0x01, 0x45, - 0x1b, 0xe0, 0xa5, 0x06, 0x01, 0x45, 0x43, 0xe0, 0xa6, 0x06, 0x01, 0x45, - 0x70, 0xe0, 0xa7, 0x06, 0x01, 0x45, 0x9d, 0xe0, 0xa8, 0x06, 0x01, 0x45, - 0xde, 0xe0, 0xa9, 0x06, 0x41, 0x90, 0x94, 0x02, 0x91, 0xdf, 0x01, 0x92, - 0xb4, 0x01, 0x93, 0x89, 0x01, 0x94, 0x5f, 0x95, 0x35, 0x96, 0x0b, 0x97, - 0x01, 0xff, 0xd0, 0x9e, 0x06, 0x01, 0xd1, 0x9f, 0x06, 0x41, 0xd0, 0x94, - 0x06, 0x01, 0xd1, 0x95, 0x06, 0x01, 0xd2, 0x96, 0x06, 0x01, 0xd3, 0x97, - 0x06, 0x01, 0xd4, 0x98, 0x06, 0x01, 0xd5, 0x99, 0x06, 0x01, 0xd6, 0x9a, - 0x06, 0x01, 0xd7, 0x9b, 0x06, 0x01, 0xd8, 0x9c, 0x06, 0x01, 0xd9, 0x9d, - 0x06, 0x41, 0xd0, 0x8a, 0x06, 0x01, 0xd1, 0x8b, 0x06, 0x01, 0xd2, 0x8c, - 0x06, 0x01, 0xd3, 0x8d, 0x06, 0x01, 0xd4, 0x8e, 0x06, 0x01, 0xd5, 0x8f, - 0x06, 0x01, 0xd6, 0x90, 0x06, 0x01, 0xd7, 0x91, 0x06, 0x01, 0xd8, 0x92, - 0x06, 0x01, 0xd9, 0x93, 0x06, 0x41, 0xd0, 0x80, 0x06, 0x01, 0xd1, 0x81, - 0x06, 0x01, 0xd2, 0x82, 0x06, 0x01, 0xd3, 0x83, 0x06, 0x01, 0xd4, 0x84, - 0x06, 0x01, 0xd5, 0x85, 0x06, 0x01, 0xd6, 0x86, 0x06, 0x01, 0xd7, 0x87, - 0x06, 0x01, 0xd8, 0x88, 0x06, 0x01, 0xd9, 0x89, 0x06, 0x41, 0xd0, 0x76, - 0x06, 0x01, 0xd1, 0x77, 0x06, 0x01, 0xd2, 0x78, 0x06, 0x01, 0xd3, 0x79, - 0x06, 0x01, 0xd4, 0x7a, 0x06, 0x01, 0xd5, 0x7b, 0x06, 0x01, 0xd6, 0x7c, - 0x06, 0x01, 0xd7, 0x7d, 0x06, 0x01, 0xd8, 0x7e, 0x06, 0x01, 0xd9, 0x7f, - 0x06, 0x41, 0xd0, 0x6c, 0x06, 0x01, 0xd1, 0x6d, 0x06, 0x01, 0xd2, 0x6e, - 0x06, 0x01, 0xd3, 0x6f, 0x06, 0x01, 0xd4, 0x70, 0x06, 0x01, 0xd5, 0x71, - 0x06, 0x01, 0xd6, 0x72, 0x06, 0x01, 0xd7, 0x73, 0x06, 0x01, 0xd8, 0x74, - 0x06, 0x01, 0xd9, 0x75, 0x06, 0x41, 0xd0, 0x60, 0x06, 0x01, 0xd1, 0x61, - 0x06, 0x01, 0xd2, 0x62, 0x06, 0x01, 0x93, 0x18, 0xd4, 0x66, 0x06, 0x01, - 0xd5, 0x67, 0x06, 0x01, 0xd6, 0x68, 0x06, 0x01, 0xd7, 0x69, 0x06, 0x01, - 0xd8, 0x6a, 0x06, 0x01, 0xd9, 0x6b, 0x06, 0x41, 0xe1, 0x63, 0x06, 0x01, - 0xe2, 0x64, 0x06, 0x01, 0xe3, 0x65, 0x06, 0x41, 0xd1, 0x55, 0x06, 0x01, - 0xd2, 0x56, 0x06, 0x01, 0xd3, 0x57, 0x06, 0x01, 0xd4, 0x58, 0x06, 0x01, - 0xd5, 0x59, 0x06, 0x01, 0xd6, 0x5a, 0x06, 0x01, 0xd7, 0x5b, 0x06, 0x01, - 0xd8, 0x5c, 0x06, 0x01, 0x99, 0x01, 0xff, 0xe1, 0x5d, 0x06, 0x01, 0xe2, - 0x5e, 0x06, 0x01, 0xe3, 0x5f, 0x06, 0x41, 0x46, 0xa4, 0xd5, 0x47, 0x06, - 0x01, 0x43, 0x45, 0xf0, 0x4a, 0x06, 0x01, 0x43, 0x5a, 0xf0, 0x4f, 0x06, - 0x41, 0x44, 0x31, 0x20, 0x0a, 0x00, 0x00, 0x0c, 0x8d, 0x8e, 0x13, 0x49, - 0x36, 0x20, 0x28, 0x20, 0x00, 0x4a, 0x13, 0x3b, 0x0b, 0x00, 0xc0, 0x00, - 0x44, 0x15, 0xb6, 0x8a, 0x00, 0x40, 0x56, 0x01, 0x35, 0x14, 0x2a, 0x00, - 0x05, 0x51, 0x00, 0x01, 0xff, 0x5c, 0x8a, 0x18, 0x12, 0x2a, 0x00, 0x5d, - 0x1e, 0x16, 0x13, 0x2a, 0x40, 0x03, 0xdf, 0xc6, 0x06, 0x53, 0x65, 0x49, - 0xcf, 0x32, 0x40, 0x06, 0xc4, 0x06, 0xec, 0x02, 0x50, 0xad, 0x00, 0x44, - 0x19, 0x00, 0x07, 0xc1, 0x05, 0xab, 0x01, 0x4d, 0xd6, 0x33, 0x45, 0x19, - 0x00, 0xb3, 0x36, 0x05, 0x6c, 0x38, 0x01, 0xff, 0x06, 0x2e, 0x03, 0x06, - 0x4f, 0x98, 0x68, 0x00, 0x19, 0x40, 0xe1, 0x20, 0x19, 0x80, 0x1a, 0xe5, - 0x27, 0x19, 0x80, 0x11, 0xe9, 0x21, 0x19, 0x00, 0xef, 0x28, 0x19, 0x80, - 0x04, 0xf5, 0x22, 0x19, 0x40, 0xef, 0x25, 0x19, 0x40, 0xe5, 0x23, 0x19, - 0x40, 0xe9, 0x24, 0x19, 0x00, 0xf5, 0x26, 0x19, 0x40, 0x04, 0x30, 0x03, - 0x51, 0x0c, 0x4c, 0x08, 0x17, 0x10, 0x5a, 0x66, 0x01, 0xff, 0x42, 0x71, - 0x00, 0x2a, 0x19, 0x00, 0x42, 0xa9, 0x01, 0x2b, 0x19, 0x00, 0x42, 0x34, - 0x22, 0x29, 0x19, 0x40, 0x48, 0xd0, 0x15, 0x32, 0x19, 0x00, 0x42, 0x1b, - 0x02, 0x30, 0x19, 0x00, 0x42, 0x74, 0x00, 0x38, 0x19, 0x00, 0x42, 0x6c, - 0x00, 0x36, 0x19, 0x00, 0xae, 0x12, 0x42, 0x6c, 0x09, 0x35, 0x19, 0x00, - 0x42, 0x71, 0x00, 0x37, 0x19, 0x00, 0x42, 0x12, 0x00, 0x33, 0x19, 0x40, - 0xe1, 0x34, 0x19, 0x00, 0x42, 0x24, 0x02, 0x31, 0x19, 0x40, 0x49, 0x98, - 0xb8, 0x3a, 0x19, 0x00, 0x43, 0x49, 0x1c, 0x40, 0x19, 0x00, 0x49, 0xb8, - 0xb9, 0x39, 0x19, 0x00, 0x44, 0x32, 0xef, 0x3b, 0x19, 0x40, 0xa2, 0xa9, - 0x01, 0xa3, 0x9c, 0x01, 0xa4, 0x8f, 0x01, 0xa7, 0x7d, 0x42, 0x22, 0x00, - 0x1c, 0x19, 0x00, 0xaa, 0x6b, 0xab, 0x5f, 0x42, 0x74, 0x00, 0x17, 0x19, - 0x00, 0x42, 0x6c, 0x00, 0x14, 0x19, 0x00, 0xae, 0x47, 0xb0, 0x3b, 0x42, - 0x71, 0x00, 0x16, 0x19, 0x00, 0xb3, 0x23, 0xb4, 0x11, 0x42, 0xa9, 0x01, - 0x18, 0x19, 0x00, 0x42, 0x34, 0x22, 0x15, 0x19, 0xc0, 0x00, 0xee, 0x0a, - 0x19, 0x40, 0xe1, 0x0b, 0x19, 0x00, 0x42, 0x22, 0x00, 0x0c, 0x19, 0x00, - 0x42, 0x71, 0x00, 0x1e, 0x19, 0x40, 0xe1, 0x1b, 0x19, 0x00, 0x42, 0x22, - 0x00, 0x19, 0x19, 0x00, 0x42, 0x15, 0x06, 0x1a, 0x19, 0x40, 0xe1, 0x10, - 0x19, 0x00, 0x42, 0x22, 0x00, 0x11, 0x19, 0x40, 0xe1, 0x0f, 0x19, 0x00, - 0x42, 0x24, 0x02, 0x05, 0x19, 0x40, 0xe1, 0x01, 0x19, 0x00, 0x42, 0x22, - 0x00, 0x02, 0x19, 0x40, 0xe1, 0x08, 0x19, 0x00, 0x42, 0x22, 0x00, 0x09, - 0x19, 0x40, 0xe1, 0x03, 0x19, 0x00, 0x42, 0x22, 0x00, 0x04, 0x19, 0x00, - 0x43, 0xe8, 0x34, 0x1d, 0x19, 0x40, 0xe1, 0x0d, 0x19, 0x00, 0x42, 0x22, - 0x00, 0x0e, 0x19, 0x40, 0xe1, 0x06, 0x19, 0x00, 0x42, 0x22, 0x00, 0x07, - 0x19, 0x40, 0xe1, 0x12, 0x19, 0x00, 0x42, 0x22, 0x00, 0x13, 0x19, 0x40, - 0x45, 0xc3, 0x0a, 0x4e, 0x19, 0x00, 0xa6, 0x2e, 0x44, 0x46, 0x2a, 0x4f, - 0x19, 0x00, 0x43, 0xbf, 0x0a, 0x47, 0x19, 0x00, 0xb3, 0x14, 0xb4, 0x06, - 0x44, 0xa1, 0x1d, 0x46, 0x19, 0x40, 0x44, 0x25, 0x01, 0x49, 0x19, 0x00, - 0x42, 0x15, 0x02, 0x48, 0x19, 0x40, 0x44, 0x27, 0x1d, 0x4d, 0x19, 0x00, - 0x42, 0x60, 0x25, 0x4c, 0x19, 0x40, 0x43, 0xa7, 0x05, 0x4b, 0x19, 0x00, - 0x43, 0xcb, 0x06, 0x4a, 0x19, 0x40, 0x56, 0x77, 0x28, 0x72, 0xf6, 0x01, - 0x02, 0xcb, 0x00, 0x01, 0xff, 0x80, 0x14, 0x44, 0x07, 0x07, 0x07, 0x26, - 0xc0, 0x00, 0x45, 0xc7, 0xde, 0xf2, 0xf5, 0xc1, 0x00, 0x47, 0x14, 0x7b, - 0xf1, 0xf5, 0x41, 0x4a, 0x0d, 0xa6, 0x75, 0xfa, 0x01, 0x4a, 0x67, 0xa6, - 0xf8, 0xf5, 0x01, 0x55, 0xf7, 0x39, 0xbb, 0xf7, 0x01, 0xa6, 0x48, 0x4b, - 0x9f, 0x5f, 0xa2, 0xf7, 0x01, 0x64, 0x24, 0x09, 0x72, 0x27, 0x00, 0xb2, - 0x2e, 0xb3, 0x1a, 0xb4, 0x0c, 0x4c, 0x32, 0x00, 0x58, 0x27, 0x00, 0x4c, - 0x50, 0x1f, 0x8e, 0xf7, 0x41, 0x57, 0xe5, 0x2d, 0xc0, 0xf7, 0x01, 0x58, - 0x45, 0x2b, 0xd2, 0xf7, 0x41, 0x46, 0xa7, 0x18, 0xa9, 0xf7, 0x01, 0x44, - 0x21, 0x04, 0x91, 0x25, 0x00, 0x52, 0xb6, 0x51, 0xb5, 0xf7, 0x41, 0x43, - 0x24, 0x17, 0x88, 0xf6, 0x01, 0x64, 0x00, 0x09, 0x73, 0x27, 0x40, 0x04, - 0xa7, 0x05, 0x11, 0x12, 0x94, 0x15, 0x01, 0xff, 0x44, 0xa6, 0x15, 0xcc, - 0x2b, 0x00, 0x44, 0xe2, 0x12, 0xc4, 0xf7, 0x41, 0x52, 0x4b, 0x2b, 0xc9, - 0xf7, 0x01, 0x4f, 0x4e, 0x1c, 0xaf, 0xf7, 0x41, 0x02, 0xf5, 0x13, 0xba, - 0x15, 0x44, 0x52, 0xec, 0xd2, 0xf4, 0x01, 0x02, 0xc5, 0x00, 0xc6, 0x05, - 0xe7, 0xb5, 0xf9, 0x01, 0x43, 0x98, 0x07, 0x4b, 0xf3, 0x01, 0xef, 0x4c, - 0x26, 0x80, 0xb0, 0x05, 0x05, 0xa1, 0xe6, 0xd4, 0x01, 0x08, 0xee, 0x00, - 0x06, 0x4a, 0xe9, 0xb0, 0x9a, 0xf3, 0x41, 0xa1, 0x87, 0x01, 0x0b, 0xfb, - 0x38, 0x77, 0x4f, 0x2d, 0x6a, 0xa6, 0x2a, 0x80, 0x6a, 0x58, 0xe5, 0x27, - 0xda, 0x22, 0x00, 0xaf, 0x1d, 0x44, 0x2f, 0x03, 0x3c, 0x00, 0x00, 0x05, - 0x51, 0x00, 0x01, 0xff, 0x4d, 0xea, 0x7f, 0x79, 0x2a, 0x00, 0x43, 0xd4, - 0x09, 0xd6, 0x22, 0x00, 0x53, 0x07, 0x4b, 0x7b, 0x2a, 0x40, 0x02, 0x18, - 0x00, 0x06, 0x4c, 0xd5, 0x94, 0x66, 0x22, 0x40, 0x4b, 0x0e, 0x1e, 0x85, - 0x2a, 0x00, 0x03, 0x7b, 0x00, 0x25, 0x4c, 0x87, 0x00, 0x76, 0x22, 0x00, - 0x50, 0xba, 0x65, 0x7d, 0x2a, 0xc0, 0x00, 0x0a, 0xa5, 0x3a, 0x01, 0xff, - 0x45, 0x5c, 0x00, 0x81, 0x2a, 0x80, 0x06, 0x46, 0x58, 0x13, 0x7f, 0x2a, - 0x40, 0x46, 0xc7, 0x00, 0x83, 0x2a, 0x40, 0x45, 0xac, 0x0c, 0x64, 0x22, - 0x00, 0x4a, 0x06, 0x39, 0x72, 0x22, 0x40, 0x54, 0x93, 0x00, 0xa8, 0x2a, - 0x40, 0x45, 0xac, 0x0c, 0x68, 0x22, 0x00, 0x4a, 0x06, 0x39, 0xe6, 0x22, - 0x40, 0x05, 0x5d, 0x00, 0x11, 0x03, 0x1b, 0x00, 0x01, 0xff, 0x4f, 0x37, - 0x6f, 0x89, 0x2a, 0x00, 0x58, 0x6d, 0x2a, 0x87, 0x2a, 0x40, 0x64, 0xb8, - 0x08, 0x8b, 0x2a, 0x00, 0x64, 0xdc, 0x08, 0x91, 0x2a, 0x00, 0x4f, 0x37, - 0x07, 0x76, 0x29, 0x00, 0xb3, 0x01, 0xff, 0x07, 0x23, 0xcf, 0x06, 0x73, - 0x74, 0x00, 0x93, 0x2a, 0x40, 0x52, 0x81, 0x00, 0x8f, 0x2a, 0x00, 0x48, - 0x52, 0x28, 0x8d, 0x2a, 0x40, 0x0f, 0x6d, 0x32, 0xa8, 0x03, 0x06, 0xc4, - 0x06, 0xe1, 0x02, 0x07, 0xc1, 0x05, 0x6e, 0x0c, 0x01, 0x16, 0x48, 0xb3, - 0x25, 0x0b, 0xd1, 0x75, 0x01, 0xff, 0x42, 0x31, 0x12, 0x26, 0x1c, 0x00, - 0xe5, 0x2c, 0x1c, 0x00, 0xe9, 0x27, 0x1c, 0x00, 0xef, 0x28, 0x1c, 0x80, - 0x09, 0xf5, 0x2a, 0x1c, 0xc0, 0x00, 0xf5, 0x2b, 0x1c, 0x40, 0xef, 0x29, - 0x1c, 0x40, 0x04, 0x30, 0x03, 0x11, 0x10, 0x5a, 0x66, 0x01, 0xff, 0x42, - 0x71, 0x00, 0x25, 0x1c, 0x00, 0x42, 0x34, 0x22, 0x24, 0x1c, 0x40, 0x45, - 0x5a, 0x3e, 0x37, 0x1c, 0x00, 0x43, 0x24, 0x03, 0x36, 0x1c, 0x40, 0x46, - 0x69, 0xca, 0x3d, 0x1c, 0x00, 0x52, 0xb2, 0x52, 0x3c, 0x1c, 0x00, 0xb4, - 0x01, 0xff, 0x45, 0xbf, 0x52, 0x3b, 0x1c, 0x00, 0x45, 0xc8, 0xe7, 0x3f, - 0x1c, 0xc0, 0x00, 0x47, 0x68, 0xca, 0x3e, 0x1c, 0x40, 0xe1, 0x23, 0x1c, - 0x00, 0xa2, 0xde, 0x01, 0xa3, 0xd1, 0x01, 0xa4, 0xbe, 0x01, 0xa6, 0xb1, - 0x01, 0xa7, 0xa4, 0x01, 0xa8, 0x97, 0x01, 0x42, 0xbd, 0x26, 0x08, 0x1c, - 0x00, 0xab, 0x7f, 0x42, 0x74, 0x00, 0x1c, 0x1c, 0x00, 0xad, 0x6d, 0xae, - 0x5b, 0xb0, 0x49, 0x42, 0x71, 0x00, 0x1b, 0x1c, 0x00, 0xb3, 0x37, 0xb4, - 0x12, 0x42, 0xa6, 0x0a, 0x1f, 0x1c, 0x00, 0x42, 0xa9, 0x01, 0x22, 0x1c, - 0x00, 0x42, 0x34, 0x22, 0x1a, 0x1c, 0x40, 0xe1, 0x0a, 0x1c, 0x00, 0x42, - 0x22, 0x00, 0x0b, 0x1c, 0x00, 0xb3, 0x0d, 0xb4, 0x01, 0xff, 0xe1, 0x4d, - 0x1c, 0x00, 0x42, 0x22, 0x00, 0x4e, 0x1c, 0x40, 0xe1, 0x17, 0x1c, 0x00, - 0x42, 0x22, 0x00, 0x18, 0x1c, 0x40, 0xe1, 0x20, 0x1c, 0x00, 0x42, 0x22, - 0x00, 0x21, 0x1c, 0x40, 0xe1, 0x0e, 0x1c, 0x00, 0x42, 0x22, 0x00, 0x10, - 0x1c, 0x00, 0x42, 0x74, 0x00, 0x0f, 0x1c, 0x40, 0xe1, 0x0d, 0x1c, 0x00, - 0x42, 0x24, 0x02, 0x05, 0x1c, 0x00, 0x42, 0x34, 0x22, 0x09, 0x1c, 0x40, - 0xe1, 0x15, 0x1c, 0x00, 0x42, 0x74, 0x00, 0x16, 0x1c, 0x40, 0xe1, 0x00, - 0x1c, 0x00, 0x42, 0x22, 0x00, 0x02, 0x1c, 0x00, 0x42, 0x74, 0x00, 0x01, - 0x1c, 0x40, 0xe1, 0x1d, 0x1c, 0x00, 0x42, 0x74, 0x00, 0x1e, 0x1c, 0x40, - 0xe1, 0x03, 0x1c, 0x00, 0x42, 0x74, 0x00, 0x04, 0x1c, 0x40, 0xe1, 0x11, - 0x1c, 0x00, 0x42, 0x74, 0x00, 0x12, 0x1c, 0x40, 0xe1, 0x0c, 0x1c, 0x00, - 0x42, 0xa1, 0x10, 0x4f, 0x1c, 0x00, 0x42, 0x59, 0x00, 0x19, 0x1c, 0x40, - 0xe1, 0x06, 0x1c, 0x00, 0x42, 0x22, 0x00, 0x07, 0x1c, 0x40, 0xe1, 0x13, - 0x1c, 0x00, 0x42, 0x74, 0x00, 0x14, 0x1c, 0x40, 0x45, 0xc3, 0x0a, 0x48, - 0x1c, 0x00, 0xa6, 0x2e, 0x44, 0x46, 0x2a, 0x49, 0x1c, 0x00, 0x43, 0xbf, - 0x0a, 0x41, 0x1c, 0x00, 0xb3, 0x14, 0xb4, 0x06, 0x44, 0xa1, 0x1d, 0x40, - 0x1c, 0x40, 0x44, 0x25, 0x01, 0x43, 0x1c, 0x00, 0x42, 0x15, 0x02, 0x42, - 0x1c, 0x40, 0x44, 0x27, 0x1d, 0x47, 0x1c, 0x00, 0x42, 0x60, 0x25, 0x46, - 0x1c, 0x40, 0x43, 0xa7, 0x05, 0x45, 0x1c, 0x00, 0x43, 0xcb, 0x06, 0x44, - 0x1c, 0x40, 0xeb, 0x2d, 0x1c, 0x80, 0x1f, 0xec, 0x2f, 0x1c, 0x00, 0xed, - 0x2e, 0x1c, 0x00, 0xee, 0x30, 0x1c, 0x80, 0x0c, 0xf0, 0x31, 0x1c, 0x00, - 0xf2, 0x32, 0x1c, 0x00, 0xf4, 0x33, 0x1c, 0x40, 0x46, 0x68, 0xde, 0x34, - 0x1c, 0x40, 0x43, 0x1c, 0x01, 0x35, 0x1c, 0x40, 0x44, 0xb2, 0xee, 0x06, - 0xf4, 0x41, 0x80, 0xaf, 0x08, 0x8d, 0xcc, 0x06, 0x06, 0xa9, 0x01, 0x01, - 0xff, 0x45, 0xce, 0x00, 0x90, 0x21, 0x80, 0xb1, 0x04, 0xa2, 0x92, 0x04, - 0x50, 0x0a, 0x60, 0x3c, 0xf8, 0x01, 0xa4, 0xd2, 0x03, 0xa6, 0xc3, 0x03, - 0xa8, 0xc2, 0x02, 0x57, 0x86, 0x2e, 0xa4, 0xf8, 0x01, 0x51, 0x8e, 0x5b, - 0xfd, 0x21, 0x00, 0xb0, 0xa7, 0x02, 0x4f, 0x72, 0x70, 0x45, 0x2b, 0x00, - 0xb2, 0x92, 0x02, 0xb3, 0xf8, 0x01, 0xb4, 0x16, 0xb7, 0x01, 0xff, 0x49, - 0x21, 0xb4, 0x9c, 0x21, 0x00, 0x4a, 0xfb, 0x0f, 0xe6, 0x21, 0xc0, 0x00, - 0x5a, 0x24, 0x1e, 0x94, 0xf8, 0x41, 0x55, 0x82, 0x3c, 0xa2, 0xf8, 0x01, - 0x02, 0x0d, 0x00, 0x51, 0x02, 0x15, 0x02, 0x01, 0xff, 0x4d, 0x16, 0x7e, - 0x9e, 0x21, 0x00, 0x08, 0x09, 0x02, 0x01, 0xff, 0x06, 0xce, 0x00, 0x06, - 0x51, 0x26, 0x5d, 0x37, 0x2b, 0x40, 0x48, 0xfd, 0xb1, 0x36, 0x2b, 0x00, - 0x05, 0x51, 0x00, 0x01, 0xff, 0x56, 0xc5, 0x32, 0x35, 0x2b, 0x00, 0xb4, - 0x06, 0x4f, 0xcc, 0x32, 0x34, 0x2b, 0x40, 0x43, 0x24, 0x17, 0x3b, 0x2b, - 0x80, 0x06, 0x52, 0x04, 0x06, 0xec, 0x2b, 0x40, 0x06, 0x50, 0x00, 0x01, - 0xff, 0x56, 0xc5, 0x32, 0x3d, 0x2b, 0x00, 0x4f, 0xcc, 0x32, 0x3c, 0x2b, - 0x40, 0x05, 0x04, 0x02, 0x11, 0x04, 0xcb, 0x1c, 0x01, 0xff, 0x45, 0xce, - 0x00, 0xda, 0x21, 0x00, 0x4a, 0x2d, 0x5d, 0x0e, 0x29, 0x40, 0x4a, 0xe0, - 0x01, 0x90, 0xf8, 0x01, 0x08, 0x09, 0x02, 0x01, 0xff, 0x45, 0xce, 0x00, - 0x60, 0x2b, 0x80, 0x0c, 0x4c, 0x05, 0x8c, 0x6a, 0x2b, 0x00, 0x4d, 0xa7, - 0x85, 0x84, 0x2b, 0x40, 0x80, 0x01, 0xff, 0x65, 0x26, 0x08, 0x80, 0x2b, - 0x00, 0x46, 0x82, 0x14, 0x70, 0x2b, 0x00, 0x05, 0x51, 0x00, 0x01, 0xff, - 0x4a, 0x17, 0xa6, 0x28, 0xf8, 0x01, 0x07, 0x3b, 0x01, 0x28, 0x4b, 0xef, - 0x66, 0x2c, 0xf8, 0x01, 0x09, 0x4c, 0xb9, 0x12, 0x4c, 0x3d, 0x90, 0x24, - 0xf8, 0x01, 0x4c, 0xa9, 0x90, 0x20, 0xf8, 0x01, 0x50, 0xea, 0x66, 0x30, - 0xf8, 0x41, 0x49, 0xa5, 0x01, 0xa6, 0x2b, 0x00, 0x47, 0x50, 0x02, 0xa4, - 0x2b, 0x40, 0x51, 0x1c, 0x05, 0x7a, 0x2b, 0x00, 0x4f, 0xcc, 0x32, 0x7a, - 0x2b, 0x40, 0x4f, 0x6b, 0x65, 0x50, 0xf8, 0x01, 0x02, 0x7c, 0x00, 0x01, - 0xff, 0x4a, 0x2b, 0x92, 0x38, 0xf8, 0x01, 0x4b, 0x1f, 0x7b, 0xdc, 0x21, - 0x40, 0x57, 0x2a, 0x2e, 0xa6, 0xf8, 0x01, 0x45, 0x4d, 0xac, 0x6c, 0xf6, - 0x41, 0x4c, 0xa8, 0x85, 0xc7, 0x21, 0x00, 0x4b, 0x48, 0xa2, 0xf7, 0xfa, - 0x41, 0xa1, 0x11, 0x05, 0x02, 0x15, 0x01, 0xff, 0x45, 0xce, 0x00, 0x44, - 0xf8, 0x01, 0x50, 0x0a, 0x60, 0x40, 0xf8, 0x41, 0x42, 0x1b, 0x00, 0xf2, - 0xfa, 0x01, 0x06, 0x67, 0x05, 0x01, 0xff, 0x57, 0x27, 0x2f, 0xcb, 0x21, - 0x00, 0x0a, 0x6d, 0x05, 0x01, 0xff, 0x04, 0xa5, 0x01, 0x31, 0x02, 0x50, - 0x02, 0x01, 0xff, 0x80, 0x06, 0x45, 0xa9, 0x01, 0xbc, 0x21, 0x40, 0x06, - 0x5c, 0x00, 0x0c, 0x48, 0xfd, 0xb1, 0x5a, 0x29, 0x00, 0x46, 0x82, 0x14, - 0x52, 0x29, 0x40, 0xac, 0x06, 0x5f, 0x3d, 0x11, 0x66, 0x29, 0x40, 0x5f, - 0x1d, 0x06, 0x62, 0x29, 0x00, 0x48, 0x9e, 0x69, 0x6a, 0x29, 0x40, 0x80, - 0x06, 0x45, 0xa9, 0x01, 0xbd, 0x21, 0x40, 0x67, 0x54, 0x05, 0x67, 0x29, - 0x00, 0x4f, 0x97, 0x69, 0x6b, 0x29, 0x00, 0x48, 0xfd, 0xb1, 0x5e, 0x29, - 0x00, 0x46, 0x82, 0x14, 0x56, 0x29, 0x40, 0x50, 0x92, 0x58, 0x34, 0xf8, - 0x01, 0x60, 0xe5, 0x0f, 0xaa, 0xf8, 0x41, 0x4b, 0x06, 0x8c, 0xe0, 0x21, - 0x00, 0x06, 0x3c, 0x01, 0x01, 0xff, 0x45, 0xce, 0x00, 0xd0, 0x21, 0x80, - 0x06, 0x4a, 0x2d, 0x5d, 0x0c, 0x29, 0x40, 0x80, 0x06, 0x45, 0x22, 0x17, - 0x1b, 0x29, 0x40, 0x48, 0xfd, 0xb1, 0x06, 0x29, 0x00, 0x05, 0x51, 0x00, - 0x01, 0xff, 0x46, 0x27, 0x05, 0xcd, 0x21, 0x00, 0x4f, 0xcc, 0x32, 0x02, - 0x29, 0x40, 0x5f, 0x64, 0x10, 0xa8, 0xf8, 0x01, 0x05, 0xe2, 0x02, 0x06, - 0x58, 0xf5, 0x29, 0xa0, 0xf8, 0x41, 0x45, 0xce, 0x00, 0x05, 0x2b, 0x00, - 0x53, 0x8a, 0x47, 0x88, 0x2b, 0x40, 0x80, 0x06, 0x45, 0x22, 0x17, 0x19, - 0x29, 0x40, 0xa1, 0xd7, 0x01, 0x05, 0x7f, 0x05, 0xbf, 0x01, 0x55, 0x6c, - 0x14, 0xc6, 0x21, 0x00, 0xb4, 0x8a, 0x01, 0x05, 0x51, 0x00, 0x01, 0xff, - 0x02, 0x3b, 0x01, 0x75, 0x55, 0xd5, 0x01, 0x14, 0xf8, 0x01, 0x44, 0x5d, - 0x0e, 0xa9, 0x21, 0x00, 0xac, 0x5b, 0x59, 0x5b, 0x24, 0x04, 0xf8, 0x01, - 0x4c, 0x21, 0x91, 0x98, 0xf8, 0x01, 0x4a, 0x33, 0xad, 0x46, 0x29, 0x00, - 0xb3, 0x31, 0xb4, 0x06, 0x4f, 0xcc, 0x32, 0xf7, 0x21, 0x40, 0x43, 0x24, - 0x17, 0xa2, 0x21, 0x80, 0x11, 0x03, 0xfb, 0x0b, 0x01, 0xff, 0x49, 0xa5, - 0x01, 0x10, 0x2b, 0x00, 0x47, 0x50, 0x02, 0x11, 0x2b, 0x40, 0x06, 0x50, - 0x00, 0x01, 0xff, 0x56, 0xc5, 0x32, 0x3a, 0x2b, 0x00, 0x4f, 0xcc, 0x32, - 0x39, 0x2b, 0x40, 0x05, 0x0d, 0x07, 0x06, 0x45, 0x28, 0x05, 0x9a, 0x21, - 0x40, 0x55, 0xd5, 0x01, 0x10, 0xf8, 0x01, 0x52, 0x03, 0x06, 0x00, 0xf8, - 0x41, 0x57, 0xd6, 0x28, 0x08, 0xf8, 0x01, 0x43, 0x81, 0x4a, 0xab, 0x21, - 0x40, 0x49, 0x8d, 0xbd, 0x38, 0x2b, 0x00, 0x54, 0xc7, 0x32, 0xfa, 0x21, - 0x40, 0x07, 0x8d, 0x2a, 0x18, 0x03, 0x83, 0x14, 0x01, 0xff, 0x42, 0x17, - 0x00, 0xe4, 0x21, 0x80, 0x06, 0x4c, 0x10, 0x56, 0x1d, 0x29, 0x40, 0x5d, - 0x6b, 0x14, 0xb9, 0x21, 0x40, 0x49, 0xec, 0x00, 0x77, 0x29, 0x00, 0x46, - 0x4a, 0x12, 0x7a, 0x29, 0x00, 0xf8, 0x3e, 0x2b, 0x40, 0x43, 0x16, 0x00, - 0xa4, 0x21, 0x80, 0x06, 0x4f, 0xe5, 0x0b, 0xc0, 0xf8, 0x41, 0x51, 0x0b, - 0x56, 0x1f, 0x29, 0x40, 0x05, 0x5d, 0x00, 0x06, 0x63, 0xac, 0x0a, 0xb5, - 0xfb, 0x41, 0x4f, 0x10, 0x69, 0x4a, 0x2b, 0x00, 0x08, 0xcc, 0x70, 0x0c, - 0x56, 0x61, 0x36, 0x43, 0x29, 0x00, 0x4e, 0x93, 0x3d, 0x73, 0x29, 0x40, - 0x4f, 0x10, 0x69, 0x42, 0x2b, 0x00, 0x4e, 0x93, 0x3d, 0x4b, 0x2b, 0x40, - 0x07, 0xa0, 0x2d, 0x9c, 0x01, 0x5b, 0xfe, 0x1a, 0xe6, 0x26, 0x00, 0x09, - 0x9c, 0x01, 0x2b, 0xb3, 0x1d, 0x09, 0x44, 0x43, 0x01, 0xff, 0x49, 0x07, - 0xb6, 0x2a, 0x20, 0x00, 0x47, 0x34, 0x03, 0x66, 0x20, 0x00, 0x44, 0xb9, - 0x00, 0x0e, 0x20, 0x00, 0x48, 0x0a, 0xc7, 0x2d, 0x20, 0x40, 0x5c, 0x72, - 0x17, 0xaa, 0x27, 0x00, 0x5b, 0x34, 0x1b, 0x39, 0x29, 0x40, 0xa1, 0x53, - 0x54, 0x6f, 0x40, 0xfc, 0x29, 0x00, 0xa4, 0x3f, 0x4b, 0x8f, 0x99, 0x78, - 0xcc, 0x01, 0x50, 0x7a, 0x63, 0x0d, 0xf5, 0x01, 0xb2, 0x0c, 0x4c, 0xa9, - 0x93, 0x02, 0xcc, 0x01, 0x44, 0xd7, 0xc4, 0x9e, 0xcc, 0x41, 0x49, 0x40, - 0xb3, 0x97, 0xcc, 0x01, 0x44, 0x75, 0xaa, 0x65, 0xcc, 0x01, 0xaf, 0x01, - 0xff, 0x05, 0x17, 0x09, 0x06, 0x50, 0x3a, 0x63, 0xa2, 0xcc, 0x41, 0x47, - 0xc9, 0xcc, 0xa0, 0xcc, 0x01, 0x44, 0x6f, 0x20, 0x56, 0xcc, 0x41, 0x44, - 0x5e, 0xed, 0x0e, 0xcc, 0x01, 0x5a, 0x30, 0x21, 0xab, 0x00, 0x40, 0x47, - 0x42, 0x33, 0xf9, 0xcd, 0x01, 0x4c, 0xf0, 0x0e, 0x29, 0x23, 0x00, 0x4a, - 0xb3, 0xaf, 0x60, 0xcc, 0x41, 0x56, 0x15, 0x32, 0x8e, 0x05, 0x00, 0x48, - 0x6a, 0xc1, 0x48, 0xcc, 0x01, 0x03, 0xbf, 0x59, 0x20, 0xb3, 0x01, 0xff, - 0x0f, 0xa8, 0x2d, 0x0d, 0x4a, 0xdf, 0xb0, 0xd6, 0x0f, 0xc0, 0x00, 0x4a, - 0xbb, 0x57, 0xd8, 0x0f, 0x40, 0x4c, 0xbd, 0x8b, 0x74, 0xcc, 0x01, 0x4a, - 0x9b, 0x28, 0x70, 0xcc, 0x41, 0xe8, 0x92, 0xcc, 0x81, 0x04, 0xf4, 0x1b, - 0xf9, 0x41, 0x50, 0x95, 0x28, 0x94, 0xcc, 0x41, 0xa1, 0xbd, 0x06, 0xa2, - 0x84, 0x06, 0xa3, 0xd3, 0x05, 0x02, 0x3b, 0x01, 0xab, 0x05, 0xa6, 0x94, - 0x05, 0x02, 0x22, 0x00, 0x86, 0x04, 0x15, 0x9b, 0x3b, 0xf5, 0x03, 0xac, - 0xe6, 0x03, 0x48, 0xf0, 0x75, 0xdc, 0x27, 0x00, 0x60, 0x85, 0x0f, 0xc9, - 0x22, 0x00, 0xaf, 0xbb, 0x03, 0x4b, 0x50, 0x21, 0x28, 0x00, 0x80, 0x9e, - 0x03, 0xb2, 0xaa, 0x02, 0xb3, 0xb0, 0x01, 0xb4, 0x49, 0x0a, 0x32, 0x00, - 0x39, 0xb7, 0x01, 0xff, 0x05, 0xae, 0x02, 0x0c, 0x4b, 0x06, 0x95, 0xd8, - 0x29, 0x00, 0x4b, 0x01, 0xa0, 0x8e, 0xf5, 0x41, 0xa3, 0x18, 0x52, 0xcb, - 0x26, 0x16, 0x30, 0x00, 0x4b, 0x50, 0x21, 0x85, 0x29, 0x00, 0x4e, 0x27, - 0x26, 0x1a, 0x30, 0x00, 0x56, 0x05, 0x09, 0x18, 0x30, 0x40, 0x4d, 0xb9, - 0x67, 0x0e, 0x30, 0x00, 0x4c, 0x24, 0x0b, 0x83, 0x29, 0x40, 0x4d, 0x1a, - 0x7f, 0x20, 0x2e, 0x00, 0x47, 0x92, 0xd1, 0xb8, 0x23, 0x40, 0x43, 0xe3, - 0x02, 0xa3, 0x22, 0x00, 0xa8, 0x25, 0x55, 0x06, 0x09, 0x14, 0x30, 0x00, - 0xb2, 0x06, 0x4f, 0x60, 0x73, 0xce, 0xfb, 0x41, 0x53, 0xdf, 0x46, 0x09, - 0x2e, 0x00, 0x04, 0x1b, 0x01, 0x01, 0xff, 0x56, 0x51, 0x34, 0xcf, 0x29, - 0x00, 0x56, 0x98, 0x1c, 0x6c, 0xfb, 0x41, 0x04, 0x70, 0x87, 0x28, 0x4c, - 0xd5, 0x91, 0xec, 0xf5, 0x01, 0x04, 0x26, 0x01, 0x01, 0xff, 0x4d, 0xb8, - 0x4b, 0x8d, 0x25, 0x00, 0x09, 0x2a, 0x01, 0x01, 0xff, 0x45, 0x33, 0x01, - 0x8a, 0x25, 0x00, 0x57, 0x9d, 0x2e, 0xa2, 0xce, 0x01, 0x57, 0xae, 0x30, - 0xa9, 0xce, 0x41, 0x48, 0x6a, 0xc4, 0x0b, 0xcc, 0x01, 0x5a, 0x00, 0x22, - 0xc1, 0xfb, 0x41, 0x55, 0xff, 0x37, 0xc5, 0x27, 0x00, 0xa5, 0x63, 0xa9, - 0x55, 0x4c, 0x0f, 0x7b, 0xe8, 0xf5, 0x01, 0x4d, 0x28, 0x26, 0x5b, 0x00, - 0x80, 0x06, 0x53, 0x0a, 0x26, 0x02, 0x2e, 0x40, 0x80, 0x01, 0xff, 0x49, - 0x56, 0x57, 0xa2, 0x23, 0x00, 0x4c, 0xb9, 0x8f, 0xa3, 0x23, 0x00, 0x4c, - 0x99, 0x94, 0xa1, 0x23, 0x00, 0x05, 0x51, 0x00, 0x01, 0xff, 0x4d, 0xa0, - 0x80, 0x57, 0x2e, 0x00, 0x45, 0x22, 0x7f, 0x45, 0x20, 0x00, 0x46, 0x27, - 0x05, 0x55, 0x2e, 0x00, 0x08, 0xda, 0xc8, 0x06, 0x48, 0x78, 0x58, 0x8b, - 0x29, 0x40, 0x4d, 0xb6, 0x7f, 0x8f, 0x29, 0x00, 0x4a, 0xbd, 0xaf, 0x8d, - 0x29, 0x40, 0x50, 0x5a, 0x60, 0x26, 0x2e, 0x00, 0x53, 0x48, 0x0b, 0x18, - 0x20, 0x40, 0x50, 0x95, 0x0f, 0xcb, 0x22, 0x00, 0x51, 0xb4, 0x4b, 0x89, - 0x25, 0x40, 0x56, 0x9b, 0x2f, 0x0c, 0x2e, 0x00, 0x05, 0xc9, 0x00, 0x01, - 0xff, 0x45, 0xce, 0x00, 0x94, 0x21, 0x80, 0x3f, 0x4b, 0x95, 0x97, 0x0c, - 0x2b, 0x00, 0x4c, 0x71, 0x8c, 0xd4, 0x21, 0x80, 0x21, 0x51, 0x8e, 0x5b, - 0xff, 0x21, 0x00, 0x50, 0x6a, 0x65, 0x58, 0xf8, 0x01, 0x55, 0x01, 0x02, - 0x64, 0x2b, 0x00, 0xb7, 0x01, 0xff, 0x49, 0x21, 0xb4, 0xad, 0x21, 0x00, - 0x4a, 0xfb, 0x0f, 0x04, 0x2b, 0x40, 0x06, 0x50, 0x00, 0x01, 0xff, 0x46, - 0x27, 0x05, 0xce, 0x21, 0x00, 0x4f, 0xcc, 0x32, 0x04, 0x29, 0x40, 0x80, - 0x01, 0xff, 0x54, 0xe3, 0x44, 0x48, 0x29, 0x00, 0x05, 0x51, 0x00, 0x01, - 0xff, 0x56, 0xc5, 0x32, 0xfc, 0x21, 0x00, 0x46, 0x27, 0x05, 0xae, 0x21, - 0x00, 0x4f, 0xcc, 0x32, 0xf9, 0x21, 0x40, 0x80, 0x01, 0xff, 0x49, 0x56, - 0x57, 0x9c, 0x23, 0x00, 0x4a, 0x0d, 0xab, 0x9d, 0x23, 0x00, 0x4a, 0x8f, - 0xb0, 0x9b, 0x23, 0x40, 0x03, 0xc4, 0x07, 0x06, 0x49, 0x02, 0xad, 0xd5, - 0x27, 0x40, 0x4c, 0xc3, 0x0a, 0x8f, 0x25, 0x00, 0x4d, 0xa1, 0x1c, 0x8e, - 0x25, 0x00, 0x4b, 0x35, 0xa1, 0xcf, 0xfb, 0x41, 0x55, 0xc0, 0x34, 0x1c, - 0x2e, 0x00, 0x46, 0xde, 0xdd, 0xc5, 0xf6, 0x41, 0x4c, 0xe1, 0x02, 0xeb, - 0xfb, 0x01, 0x4c, 0xe3, 0x10, 0xe3, 0xfb, 0x41, 0x03, 0x24, 0x00, 0x06, - 0x55, 0x43, 0x3c, 0x7b, 0xf5, 0x41, 0x02, 0x33, 0x01, 0x65, 0x46, 0xe7, - 0x02, 0x07, 0xf9, 0x81, 0x3e, 0xa6, 0x30, 0x65, 0xb7, 0x07, 0x10, 0xce, - 0x01, 0x69, 0x11, 0x04, 0x94, 0xfb, 0x01, 0x57, 0x9d, 0x2e, 0xa3, 0xce, - 0x01, 0x4c, 0x19, 0x04, 0x8c, 0xfb, 0x01, 0x4b, 0x43, 0xa0, 0xb2, 0xfb, - 0x01, 0x56, 0xa3, 0x36, 0x0d, 0xce, 0x01, 0x57, 0xae, 0x30, 0xa8, 0xce, - 0x01, 0x4d, 0xcd, 0x88, 0x0b, 0xce, 0x41, 0x4c, 0xe9, 0x8f, 0xa4, 0xcc, - 0x01, 0x45, 0x40, 0x64, 0xb9, 0xfb, 0x41, 0x06, 0x50, 0x00, 0x01, 0xff, - 0x43, 0xd4, 0x09, 0x06, 0xf9, 0x01, 0x49, 0x9c, 0x45, 0x03, 0xf9, 0x01, - 0xb4, 0x01, 0xff, 0x49, 0xdc, 0x0f, 0x04, 0xf9, 0x01, 0x47, 0xd1, 0x09, - 0x05, 0xf9, 0x41, 0x04, 0xe3, 0x02, 0x06, 0x43, 0x35, 0x01, 0x8c, 0x25, - 0x40, 0x46, 0xe7, 0x02, 0xd6, 0x25, 0x00, 0x44, 0xe2, 0x12, 0xe8, 0x2b, - 0x40, 0xa9, 0x06, 0x44, 0xd1, 0x23, 0x0a, 0x23, 0x40, 0x47, 0xab, 0xb6, - 0x7c, 0x29, 0x00, 0x50, 0x62, 0x50, 0x8b, 0x25, 0x40, 0x59, 0x04, 0x26, - 0x04, 0x2e, 0x00, 0x05, 0x3d, 0x01, 0x01, 0xff, 0x4d, 0xef, 0x0e, 0x0a, - 0x30, 0x00, 0x4b, 0x50, 0x21, 0x28, 0x2e, 0x00, 0x4e, 0xee, 0x04, 0x1c, - 0x20, 0x00, 0x4c, 0x05, 0x95, 0xda, 0x29, 0x40, 0x46, 0x0b, 0xc2, 0x08, - 0x23, 0x00, 0x4b, 0xb2, 0x9c, 0xdc, 0x26, 0x00, 0x4d, 0xb9, 0x67, 0x0c, - 0x30, 0x00, 0x4c, 0x24, 0x0b, 0x7b, 0x00, 0xc0, 0x00, 0x80, 0x01, 0xff, - 0x4a, 0x0d, 0xab, 0xa9, 0x23, 0x00, 0x4c, 0x55, 0x90, 0xa8, 0x23, 0x00, - 0x4a, 0x8f, 0xb0, 0xa7, 0x23, 0x40, 0x04, 0x73, 0x05, 0x11, 0x05, 0xe2, - 0x02, 0x01, 0xff, 0x52, 0xcb, 0x26, 0x10, 0x30, 0x00, 0x56, 0x05, 0x09, - 0x97, 0x29, 0x40, 0x10, 0xda, 0x60, 0x11, 0x0e, 0xa4, 0x7c, 0x01, 0xff, - 0x4c, 0x7d, 0x8c, 0x4a, 0x29, 0x00, 0x4a, 0x71, 0xb0, 0x4e, 0x29, 0x40, - 0x4c, 0x7d, 0x8c, 0x50, 0x29, 0x00, 0x4a, 0x71, 0xb0, 0x4b, 0x29, 0x40, - 0xae, 0x1a, 0xb2, 0x01, 0xff, 0x53, 0xb6, 0x1c, 0x93, 0x29, 0x00, 0x09, - 0xfa, 0x05, 0x01, 0xff, 0x4c, 0x99, 0x8b, 0x32, 0x2b, 0x00, 0x4c, 0xd3, - 0x14, 0x30, 0x2b, 0x40, 0x02, 0x06, 0x00, 0x16, 0xa7, 0x01, 0xff, 0x49, - 0x2b, 0xb6, 0xee, 0xf5, 0x01, 0x4a, 0xf2, 0x0e, 0x08, 0x30, 0xc0, 0x00, - 0x49, 0xa5, 0x3a, 0x91, 0x29, 0x40, 0x06, 0x13, 0x01, 0x31, 0x06, 0xc8, - 0x00, 0x18, 0x06, 0x6d, 0x02, 0x01, 0xff, 0x69, 0xe8, 0x03, 0x6b, 0xfb, - 0x01, 0x50, 0xbf, 0x0a, 0x7d, 0xfb, 0xc1, 0x00, 0x5e, 0xd8, 0x11, 0x8e, - 0xcc, 0x41, 0x50, 0xba, 0x60, 0xda, 0x27, 0x00, 0xb4, 0x01, 0xff, 0x43, - 0xe3, 0x02, 0xdb, 0x27, 0x00, 0x54, 0xbe, 0x3d, 0x9b, 0xfb, 0x41, 0x69, - 0xe8, 0x03, 0x69, 0xfb, 0x01, 0x50, 0xbf, 0x0a, 0x7c, 0xfb, 0x41, 0x53, - 0x21, 0x46, 0x43, 0xf3, 0x01, 0x49, 0xfb, 0xb8, 0xbe, 0xfa, 0x01, 0x47, - 0xda, 0xd4, 0x6c, 0xf9, 0x41, 0xa2, 0xb8, 0x4b, 0x55, 0x10, 0x39, 0x4d, - 0xf9, 0x01, 0xa4, 0xa3, 0x4b, 0x4a, 0x11, 0xac, 0x01, 0x00, 0x0e, 0x02, - 0x7b, 0x02, 0xc1, 0x46, 0xb2, 0xbe, 0x41, 0x4f, 0xad, 0x71, 0x3e, 0x26, - 0x80, 0xa7, 0x41, 0x04, 0xb5, 0x05, 0x01, 0xff, 0xa3, 0xcc, 0x28, 0x12, - 0x18, 0x50, 0xa1, 0x28, 0x07, 0xc1, 0x05, 0x80, 0x25, 0xb3, 0x01, 0xff, - 0x05, 0x0d, 0x07, 0x50, 0x16, 0xe5, 0x36, 0x01, 0xff, 0xe1, 0x90, 0x20, - 0x00, 0xe5, 0x91, 0x20, 0x00, 0xe8, 0x95, 0x20, 0x00, 0xe9, 0x62, 0x1d, - 0x00, 0xea, 0x7c, 0x2c, 0x00, 0xeb, 0x96, 0x20, 0x00, 0xec, 0x97, 0x20, - 0x00, 0xed, 0x98, 0x20, 0x00, 0xee, 0x99, 0x20, 0x00, 0xef, 0x92, 0x20, - 0x00, 0xf0, 0x9a, 0x20, 0x00, 0xf2, 0x63, 0x1d, 0x00, 0xf3, 0x9b, 0x20, - 0x80, 0x10, 0xf4, 0x9c, 0x20, 0x00, 0xf5, 0x64, 0x1d, 0x00, 0xf6, 0x65, - 0x1d, 0x00, 0xf8, 0x93, 0x20, 0x40, 0x44, 0x54, 0x7a, 0x94, 0x20, 0x40, - 0x0f, 0xb9, 0x05, 0x98, 0x24, 0xac, 0x01, 0xff, 0x06, 0xc2, 0x05, 0x34, - 0x08, 0xfb, 0x1e, 0x01, 0xff, 0xa6, 0x18, 0x42, 0xc1, 0xc4, 0x33, 0x01, - 0x00, 0x48, 0x42, 0xc5, 0x05, 0xfb, 0x00, 0x42, 0x17, 0x50, 0x53, 0x01, - 0x00, 0x42, 0x60, 0x01, 0x06, 0xfb, 0x40, 0xe6, 0x00, 0xfb, 0x80, 0x08, - 0xe9, 0x01, 0xfb, 0x00, 0xec, 0x02, 0xfb, 0x40, 0xe9, 0x03, 0xfb, 0x00, - 0xec, 0x04, 0xfb, 0x40, 0xe1, 0x61, 0x00, 0x80, 0xa0, 0x21, 0xe2, 0x62, - 0x00, 0x80, 0x9d, 0x20, 0xe3, 0x63, 0x00, 0x80, 0xff, 0x1e, 0xe4, 0x64, - 0x00, 0x80, 0xfa, 0x1c, 0xe5, 0x65, 0x00, 0x80, 0x94, 0x1a, 0xe6, 0x66, - 0x00, 0x80, 0xdf, 0x19, 0xe7, 0x67, 0x00, 0x80, 0xee, 0x18, 0xe8, 0x68, - 0x00, 0x80, 0xfc, 0x17, 0xe9, 0x69, 0x00, 0x80, 0xb4, 0x16, 0xea, 0x6a, - 0x00, 0x80, 0x8f, 0x16, 0xeb, 0x6b, 0x00, 0x80, 0xb2, 0x15, 0xec, 0x6c, - 0x00, 0x80, 0xa6, 0x13, 0xed, 0x6d, 0x00, 0x80, 0xcf, 0x12, 0xee, 0x6e, - 0x00, 0x80, 0xb1, 0x11, 0xef, 0x6f, 0x00, 0x80, 0xc1, 0x0e, 0xf0, 0x70, - 0x00, 0x80, 0xf7, 0x0d, 0xf1, 0x71, 0x00, 0x80, 0xce, 0x0d, 0xf2, 0x72, - 0x00, 0x80, 0xc9, 0x0b, 0xf3, 0x73, 0x00, 0x80, 0xb7, 0x09, 0xf4, 0x74, - 0x00, 0x80, 0xe2, 0x05, 0xf5, 0x75, 0x00, 0x80, 0xb4, 0x03, 0xf6, 0x76, - 0x00, 0x80, 0xd8, 0x02, 0xf7, 0x77, 0x00, 0x80, 0x96, 0x02, 0xf8, 0x78, - 0x00, 0x80, 0xd7, 0x01, 0xf9, 0x79, 0x00, 0x80, 0x6a, 0xfa, 0x7a, 0x00, - 0xc0, 0x00, 0x06, 0x50, 0x00, 0x01, 0xff, 0x45, 0x29, 0x38, 0x7a, 0x01, - 0x00, 0xa3, 0x46, 0xa4, 0x2d, 0x44, 0x5d, 0x0e, 0x25, 0x02, 0x00, 0x4a, - 0xf4, 0x6b, 0x95, 0x1e, 0x00, 0x4c, 0xa6, 0x22, 0x76, 0x1d, 0x00, 0x4c, - 0xaa, 0x55, 0x8e, 0x1d, 0x00, 0x4e, 0x53, 0x0e, 0x90, 0x02, 0x00, 0xb3, - 0x01, 0xff, 0x45, 0x28, 0x05, 0xb6, 0x01, 0x00, 0x49, 0xb6, 0xbe, 0x40, - 0x02, 0x40, 0x48, 0x95, 0x2a, 0x6c, 0x2c, 0x00, 0x03, 0xb5, 0x0b, 0x01, - 0xff, 0x45, 0x5c, 0x00, 0x7c, 0x01, 0x00, 0x45, 0xf5, 0x06, 0x93, 0x1e, - 0x40, 0x44, 0x4d, 0x6b, 0x7e, 0x01, 0x00, 0x49, 0xa5, 0x04, 0x91, 0x1e, - 0x00, 0x43, 0x24, 0x0b, 0x91, 0x02, 0x40, 0x06, 0x50, 0x00, 0x06, 0x43, - 0xdc, 0x50, 0x1d, 0x02, 0x40, 0x45, 0x29, 0x38, 0xfd, 0x00, 0x00, 0x4a, - 0xa4, 0x04, 0x77, 0x01, 0x00, 0xa4, 0x39, 0x45, 0x8d, 0x22, 0xf3, 0x1e, - 0x00, 0x44, 0x5d, 0x0e, 0xb4, 0x01, 0x80, 0x26, 0x44, 0x92, 0x83, 0xff, - 0x1e, 0x00, 0x46, 0x04, 0x6f, 0x33, 0x02, 0x00, 0x4a, 0x0f, 0xae, 0x99, - 0x1e, 0x00, 0xb3, 0x06, 0x45, 0xad, 0x22, 0xf9, 0x1e, 0x40, 0x4e, 0xc7, - 0x37, 0x5a, 0xab, 0x00, 0x45, 0x28, 0x05, 0x4f, 0x02, 0x40, 0x46, 0x5b, - 0x00, 0xf7, 0x1e, 0x40, 0x48, 0x30, 0x23, 0xff, 0x00, 0x00, 0x03, 0xb5, - 0x0b, 0x01, 0xff, 0x45, 0x5c, 0x00, 0x8f, 0x1e, 0x00, 0x45, 0xf5, 0x06, - 0xf5, 0x1e, 0x40, 0x06, 0x50, 0x00, 0x01, 0xff, 0xa4, 0x26, 0x02, 0x13, - 0x01, 0x06, 0x4c, 0xaa, 0x55, 0x8d, 0x1d, 0x40, 0x4b, 0xdb, 0x9d, 0x57, - 0xab, 0x80, 0x06, 0x4c, 0xc8, 0x4e, 0x56, 0xab, 0x40, 0x80, 0x01, 0xff, - 0x52, 0xc2, 0x4e, 0x58, 0xab, 0x00, 0x4a, 0xb2, 0x28, 0x59, 0xab, 0x40, - 0x48, 0x30, 0x23, 0x8d, 0x1e, 0x00, 0x48, 0x99, 0x1d, 0x8b, 0x1e, 0x40, - 0x06, 0x50, 0x00, 0x01, 0xff, 0x45, 0x29, 0x38, 0x83, 0x1e, 0x00, 0x4a, - 0xa4, 0x04, 0x75, 0x01, 0x00, 0xa4, 0x12, 0x45, 0x8d, 0x22, 0x81, 0x1e, - 0x00, 0x44, 0x5d, 0x0e, 0x73, 0x2c, 0x00, 0x4a, 0x0f, 0xae, 0x98, 0x1e, - 0x40, 0x48, 0x30, 0x23, 0x85, 0x1e, 0x00, 0x03, 0xb5, 0x0b, 0x01, 0xff, - 0x45, 0x5c, 0x00, 0x87, 0x1e, 0x00, 0x45, 0xf5, 0x06, 0x89, 0x1e, 0x40, - 0x06, 0x50, 0x00, 0x26, 0x43, 0x15, 0x05, 0x69, 0xa7, 0x00, 0x4b, 0x94, - 0x9b, 0x63, 0xa7, 0x00, 0x07, 0xff, 0xd0, 0x04, 0xf9, 0x61, 0xa7, 0x40, - 0x42, 0x44, 0x0f, 0x9b, 0xa7, 0x00, 0x42, 0x17, 0x50, 0x9d, 0xa7, 0x00, - 0x42, 0x87, 0x13, 0x9f, 0xa7, 0x40, 0x44, 0x23, 0x0b, 0x74, 0x2c, 0x00, - 0xa4, 0x18, 0x44, 0x5d, 0x0e, 0x8b, 0x02, 0x00, 0x4c, 0xaa, 0x55, 0x8c, - 0x1d, 0x00, 0x4a, 0xfb, 0xad, 0x71, 0x2c, 0x00, 0x45, 0xad, 0x22, 0x7d, - 0x1e, 0x40, 0x4e, 0xa9, 0x3e, 0x5f, 0xa7, 0x00, 0x48, 0x51, 0x12, 0x7f, - 0x1e, 0x40, 0x80, 0x1d, 0xe5, 0x6b, 0x1d, 0x00, 0xe9, 0x50, 0xab, 0x00, - 0xed, 0x78, 0xa7, 0x00, 0xef, 0x63, 0xab, 0x00, 0x46, 0x63, 0x15, 0x8a, - 0x02, 0xc0, 0x00, 0x4c, 0x39, 0x28, 0x7f, 0x1d, 0x40, 0x43, 0x16, 0x00, - 0x89, 0x02, 0x80, 0xfb, 0x01, 0x05, 0x51, 0x00, 0x01, 0xff, 0x45, 0x29, - 0x38, 0xfa, 0x00, 0x00, 0x45, 0xcb, 0x22, 0x6d, 0x01, 0x00, 0xa3, 0xd4, - 0x01, 0xa4, 0x8b, 0x01, 0x45, 0x8d, 0x22, 0xf9, 0x00, 0x00, 0x02, 0x0b, - 0x00, 0x51, 0x4e, 0xd6, 0x22, 0x17, 0x02, 0x00, 0x49, 0x68, 0x56, 0x52, - 0xab, 0x00, 0x46, 0x04, 0x6f, 0x6b, 0x01, 0x80, 0x38, 0x46, 0xc2, 0xdb, - 0x73, 0x01, 0x00, 0xb2, 0x24, 0xb3, 0x16, 0x45, 0xad, 0x22, 0x69, 0x01, - 0xc0, 0x00, 0x80, 0x01, 0xff, 0x49, 0x5c, 0xa3, 0x79, 0x1e, 0x00, 0x45, - 0xf5, 0x06, 0x75, 0x1e, 0x40, 0x4e, 0xc7, 0x37, 0x4e, 0xab, 0x00, 0x45, - 0x28, 0x05, 0xb9, 0xa7, 0x40, 0x4d, 0x54, 0x0e, 0x99, 0x1d, 0x00, 0x49, - 0x10, 0xae, 0x6f, 0x01, 0x40, 0x4e, 0xba, 0x73, 0x7b, 0x1e, 0x40, 0x48, - 0xfd, 0xa8, 0xe7, 0x1e, 0x00, 0x42, 0x5e, 0x01, 0xb0, 0x01, 0xc0, 0x00, - 0x05, 0x19, 0x00, 0x01, 0xff, 0x45, 0x29, 0x38, 0xe9, 0x1e, 0x00, 0x49, - 0x50, 0x12, 0xf1, 0x1e, 0x00, 0x45, 0x8d, 0x22, 0xeb, 0x1e, 0x00, 0x4a, - 0xfb, 0xa8, 0xed, 0x1e, 0x00, 0x45, 0xad, 0x22, 0xef, 0x1e, 0x40, 0x48, - 0x30, 0x23, 0xfc, 0x00, 0x80, 0x1a, 0xaf, 0x01, 0xff, 0x47, 0x52, 0x12, - 0xe5, 0x1e, 0x00, 0x05, 0x3d, 0x01, 0x01, 0xff, 0x45, 0x29, 0x38, 0x71, - 0x01, 0x00, 0x45, 0x8d, 0x22, 0x15, 0x02, 0x40, 0x80, 0x01, 0xff, 0x04, - 0x1a, 0x00, 0x06, 0x45, 0xf5, 0x06, 0x73, 0x1e, 0x40, 0x45, 0x29, 0x38, - 0xd8, 0x01, 0x00, 0x45, 0xf9, 0x95, 0xda, 0x01, 0x00, 0x45, 0x8d, 0x22, - 0xdc, 0x01, 0x00, 0x46, 0x04, 0x6f, 0xd6, 0x01, 0x40, 0x44, 0x4d, 0x6b, - 0xd4, 0x01, 0x00, 0x49, 0xa5, 0x04, 0xfb, 0x00, 0xc0, 0x00, 0x46, 0xf4, - 0x06, 0x77, 0x1e, 0x40, 0x55, 0xc0, 0x37, 0x4f, 0xab, 0x40, 0x06, 0x50, - 0x00, 0xd2, 0x02, 0x4b, 0xfb, 0x96, 0x77, 0x2c, 0x00, 0x53, 0x64, 0x47, - 0xa8, 0x02, 0x00, 0x4b, 0xd1, 0x99, 0xa7, 0x02, 0x80, 0xad, 0x02, 0xa8, - 0x90, 0x02, 0xaf, 0xf1, 0x01, 0x47, 0x80, 0xd2, 0x2b, 0xa7, 0x00, 0x49, - 0xa3, 0xbc, 0xa6, 0x02, 0x80, 0xdd, 0x01, 0xb5, 0x04, 0xfa, 0x29, 0xa7, - 0x40, 0xed, 0x77, 0xa7, 0x00, 0x05, 0x47, 0x07, 0x01, 0xff, 0xe1, 0x50, - 0x02, 0x80, 0xbe, 0x01, 0x45, 0x73, 0xe2, 0x8d, 0x01, 0x00, 0xe5, 0xdd, - 0x01, 0x00, 0xe7, 0x77, 0x1d, 0x00, 0xe8, 0x65, 0x02, 0x80, 0x9d, 0x01, - 0xe9, 0x09, 0x1d, 0x80, 0x91, 0x01, 0xeb, 0x9e, 0x02, 0x00, 0xec, 0x81, - 0xa7, 0x00, 0xed, 0x6f, 0x02, 0x80, 0x7e, 0xaf, 0x53, 0xf2, 0x79, 0x02, - 0x80, 0x24, 0xf4, 0x87, 0x02, 0x80, 0x19, 0x42, 0x3e, 0x00, 0x51, 0xab, - 0x00, 0xf6, 0x8c, 0x02, 0x00, 0xf7, 0x8d, 0x02, 0x00, 0xf9, 0x8e, 0x02, - 0xc0, 0x00, 0x4a, 0x19, 0xa4, 0x06, 0xdf, 0x41, 0x4a, 0x6d, 0x47, 0x0d, - 0xdf, 0x41, 0x06, 0x50, 0x00, 0x01, 0xff, 0x44, 0x5d, 0x0e, 0x7b, 0x02, - 0x00, 0x48, 0x06, 0x74, 0x7a, 0x02, 0x80, 0x12, 0x4c, 0xa6, 0x22, 0x68, - 0xab, 0x00, 0x4c, 0xaa, 0x55, 0x15, 0xdf, 0x01, 0x44, 0x23, 0x17, 0x79, - 0x2c, 0x40, 0x53, 0x0e, 0x46, 0x08, 0xdf, 0x41, 0x47, 0xb5, 0xca, 0x43, - 0xab, 0x80, 0x1c, 0xe5, 0x14, 0x1d, 0x80, 0x06, 0x45, 0x7e, 0x28, 0x08, - 0x1d, 0x40, 0x06, 0x50, 0x00, 0x01, 0xff, 0x51, 0x1c, 0x05, 0x42, 0xab, - 0x00, 0x46, 0x27, 0x05, 0x41, 0xab, 0x40, 0x4c, 0x39, 0x28, 0x44, 0xab, - 0x40, 0x4e, 0x00, 0x74, 0x70, 0x02, 0x40, 0x48, 0x6c, 0x6e, 0x7f, 0xa7, - 0x40, 0x4e, 0x91, 0x70, 0xae, 0x02, 0xc0, 0x00, 0x49, 0xe1, 0xb1, 0xaf, - 0x02, 0x40, 0xe5, 0x02, 0x1d, 0x00, 0x44, 0x2f, 0xe1, 0x52, 0x02, 0x40, - 0x54, 0x4d, 0x0e, 0x67, 0xab, 0x40, 0x03, 0xc4, 0x07, 0x06, 0x48, 0xeb, - 0xba, 0x16, 0x1d, 0x40, 0x44, 0x31, 0x11, 0xbd, 0x01, 0x00, 0x43, 0x5f, - 0x25, 0x85, 0x01, 0x00, 0x43, 0xd0, 0x09, 0xa8, 0x01, 0x40, 0x53, 0x6d, - 0x46, 0x7a, 0x1d, 0x00, 0x43, 0xfd, 0x04, 0xfe, 0x00, 0xc0, 0x00, 0x4c, - 0x39, 0x28, 0x65, 0xa7, 0xc0, 0x00, 0x52, 0x8b, 0x2a, 0x67, 0xa7, 0x40, - 0x06, 0x50, 0x00, 0x01, 0xff, 0x4c, 0xaa, 0x55, 0x17, 0xdf, 0x01, 0x4e, - 0x53, 0x0e, 0x1c, 0xdf, 0x41, 0xa3, 0x58, 0xa4, 0x35, 0x44, 0x5d, 0x0e, - 0xad, 0x01, 0x80, 0x28, 0x4a, 0xf4, 0x6b, 0x6f, 0x1e, 0x00, 0x03, 0x7d, - 0x02, 0x12, 0x4c, 0xaa, 0x55, 0xab, 0x01, 0x00, 0x4e, 0x53, 0x0e, 0x88, - 0x02, 0x00, 0x46, 0x27, 0x05, 0x67, 0x01, 0x40, 0x51, 0x60, 0x56, 0x2a, - 0xdf, 0x01, 0x49, 0xa9, 0x22, 0x75, 0x1d, 0x40, 0x53, 0x0e, 0x46, 0x09, - 0xdf, 0x41, 0x02, 0x1b, 0x01, 0x11, 0x03, 0xb5, 0x0b, 0x01, 0xff, 0x45, - 0x5c, 0x00, 0x6b, 0x1e, 0x00, 0x45, 0xf5, 0x06, 0x6d, 0x1e, 0x40, 0x46, - 0x32, 0x23, 0x97, 0x1e, 0x00, 0x4c, 0xab, 0x3e, 0x66, 0x2c, 0x40, 0x44, - 0x4d, 0x6b, 0x65, 0x01, 0x00, 0x46, 0x7c, 0xbf, 0x63, 0x01, 0x00, 0x4f, - 0x48, 0x6d, 0x71, 0x1e, 0x00, 0x4a, 0x75, 0xac, 0x1b, 0x02, 0x00, 0x43, - 0x24, 0x0b, 0x36, 0x02, 0x40, 0x06, 0x50, 0x00, 0x82, 0x01, 0xa1, 0x74, - 0xa3, 0x3f, 0x46, 0xa6, 0xae, 0xdf, 0x00, 0x00, 0xa9, 0x0c, 0x51, 0x05, - 0x5c, 0x85, 0x02, 0x00, 0x48, 0xe2, 0xc8, 0x45, 0xab, 0x40, 0x07, 0xbd, - 0x44, 0x06, 0x47, 0x53, 0xc4, 0xd9, 0xa7, 0x40, 0x4d, 0x52, 0x80, 0x1e, - 0x1d, 0x00, 0xef, 0x11, 0x1d, 0x80, 0x0a, 0x48, 0x22, 0xc9, 0x1f, 0x1d, - 0x00, 0xf5, 0x1d, 0x1d, 0x40, 0x4c, 0x39, 0x28, 0x13, 0x1d, 0x00, 0x45, - 0xb0, 0xe6, 0x12, 0x1d, 0x40, 0x43, 0x55, 0x7a, 0x59, 0x02, 0x80, 0x1b, - 0x05, 0x4b, 0x06, 0x01, 0xff, 0xe7, 0x61, 0x02, 0x80, 0x0b, 0xf2, 0x4b, - 0xab, 0xc0, 0x00, 0x4a, 0x55, 0xa4, 0x4c, 0xab, 0x40, 0x52, 0x7a, 0x4e, - 0x36, 0xab, 0x40, 0x06, 0x50, 0x00, 0x01, 0xff, 0x44, 0x5d, 0x0e, 0x5a, - 0x02, 0x00, 0x4e, 0x53, 0x0e, 0x95, 0x1d, 0x40, 0x47, 0x8c, 0xcf, 0x60, - 0xab, 0x00, 0x46, 0xf1, 0xcb, 0x8c, 0xa7, 0x40, 0x45, 0x29, 0x38, 0x5b, - 0x01, 0x80, 0x78, 0xa3, 0x51, 0xa4, 0x31, 0x44, 0x5d, 0x0e, 0x82, 0x02, - 0x00, 0x03, 0x7d, 0x02, 0x1b, 0x4e, 0x41, 0x42, 0xa9, 0xa7, 0x00, 0x4c, - 0xaa, 0x55, 0x8a, 0x1d, 0x00, 0xb3, 0x01, 0xff, 0x53, 0xa7, 0x48, 0xca, - 0xa7, 0x00, 0x49, 0xb6, 0xbe, 0x3f, 0x02, 0x40, 0x51, 0x60, 0x56, 0x29, - 0xdf, 0x01, 0x49, 0xa9, 0x22, 0x74, 0x1d, 0x40, 0x4e, 0xa9, 0x3e, 0xcd, - 0xa7, 0x00, 0x03, 0xb5, 0x0b, 0x01, 0xff, 0x45, 0x5c, 0x00, 0x61, 0x1e, - 0x00, 0x45, 0xf5, 0x06, 0x63, 0x1e, 0xc0, 0x00, 0x4e, 0x93, 0x1d, 0x69, - 0x1e, 0x40, 0x44, 0x4d, 0x6b, 0x61, 0x01, 0x80, 0x18, 0x46, 0x7c, 0xbf, - 0x5f, 0x01, 0x00, 0x49, 0xa5, 0x04, 0x5d, 0x01, 0x00, 0x4a, 0x75, 0xac, - 0x19, 0x02, 0x00, 0x43, 0x24, 0x0b, 0x1e, 0xdf, 0x41, 0x4e, 0x93, 0x1d, - 0x67, 0x1e, 0x40, 0x4e, 0x93, 0x1d, 0x65, 0x1e, 0x40, 0x80, 0x5b, 0x48, - 0xc2, 0xc0, 0x64, 0x02, 0x00, 0x08, 0x8f, 0x14, 0x0d, 0x42, 0x1d, 0x04, - 0x75, 0xa7, 0xc0, 0x00, 0x48, 0x4b, 0xb0, 0x5d, 0xa7, 0x40, 0xe3, 0x84, - 0x21, 0x80, 0x39, 0xe5, 0x58, 0x02, 0x80, 0x2e, 0x46, 0x4c, 0xd9, 0xf6, - 0xa7, 0x00, 0xeb, 0x03, 0xdf, 0x01, 0x46, 0x7d, 0x28, 0x5c, 0x02, 0x80, - 0x0c, 0x4f, 0x90, 0x70, 0x7f, 0x02, 0x00, 0x48, 0x02, 0xc8, 0x01, 0xdf, - 0x41, 0x06, 0x50, 0x00, 0x01, 0xff, 0x44, 0x5d, 0x0e, 0x5d, 0x02, 0x00, - 0x4e, 0x53, 0x0e, 0x94, 0x1d, 0x40, 0x42, 0x1d, 0x01, 0x07, 0xdf, 0x41, - 0x49, 0xa5, 0x3a, 0x3f, 0xa7, 0x40, 0x47, 0x4c, 0xb0, 0x5b, 0xa7, 0x00, - 0x04, 0x51, 0x00, 0x01, 0xff, 0x80, 0x06, 0x4a, 0xb4, 0x4f, 0x47, 0xab, - 0x40, 0x45, 0x29, 0x38, 0x55, 0x01, 0x00, 0xa3, 0x75, 0x02, 0x3b, 0x01, - 0x54, 0x48, 0x97, 0x70, 0x7e, 0x02, 0x80, 0x3c, 0x4e, 0xd6, 0x22, 0x13, - 0x02, 0x00, 0xac, 0x28, 0x03, 0x7d, 0x02, 0x18, 0x4e, 0x41, 0x42, 0xa7, - 0xa7, 0x00, 0x4c, 0xaa, 0x55, 0x89, 0x1d, 0x00, 0x46, 0x27, 0x05, 0x4d, - 0x02, 0x00, 0x44, 0x23, 0x17, 0x7d, 0x02, 0x40, 0x51, 0x60, 0x56, 0x28, - 0xdf, 0x01, 0x49, 0xa9, 0x22, 0x72, 0x1d, 0x40, 0x49, 0xf5, 0x6b, 0x5f, - 0x1e, 0x00, 0x47, 0x07, 0x74, 0x7c, 0x02, 0x40, 0x05, 0x19, 0x00, 0x01, - 0xff, 0x4c, 0xa6, 0x22, 0x73, 0x1d, 0x00, 0x4c, 0xaa, 0x55, 0x16, 0xdf, - 0x41, 0x02, 0xc6, 0x00, 0x06, 0x4a, 0x88, 0x22, 0x11, 0x02, 0x40, 0x45, - 0x5c, 0x00, 0x59, 0x1e, 0x00, 0x45, 0xf5, 0x06, 0x5b, 0x1e, 0xc0, 0x00, - 0x4b, 0x59, 0x95, 0x5d, 0x1e, 0x40, 0x44, 0x4d, 0x6b, 0x59, 0x01, 0x00, - 0x46, 0x7c, 0xbf, 0x57, 0x01, 0x00, 0x4b, 0x81, 0x4e, 0x49, 0xab, 0x40, - 0x06, 0x50, 0x00, 0x06, 0x49, 0x5f, 0xbb, 0x39, 0x02, 0x40, 0x4f, 0xa8, - 0x3e, 0x59, 0xa7, 0x00, 0x44, 0x5d, 0x0e, 0xa0, 0x02, 0x80, 0x06, 0x58, - 0x85, 0x2a, 0x57, 0xa7, 0x40, 0x45, 0x8e, 0x46, 0x4b, 0x02, 0x40, 0x06, - 0x50, 0x00, 0x06, 0x42, 0x49, 0x00, 0x78, 0x02, 0x40, 0x45, 0x29, 0x38, - 0x55, 0x1e, 0x00, 0x49, 0x98, 0x1d, 0x57, 0x1e, 0x00, 0x48, 0xa2, 0xc3, - 0x53, 0xa7, 0x00, 0x44, 0x5d, 0x0e, 0xa5, 0x01, 0x00, 0x4c, 0xa6, 0x22, - 0x71, 0x1d, 0x00, 0x4c, 0xaa, 0x55, 0x88, 0x1d, 0x00, 0xb3, 0x01, 0xff, - 0x4c, 0x41, 0x92, 0x55, 0xa7, 0x00, 0x45, 0x28, 0x05, 0x7d, 0x1d, 0xc0, - 0x00, 0x52, 0x8b, 0x2a, 0x51, 0xa7, 0x40, 0x06, 0x50, 0x00, 0x40, 0xe9, - 0xa3, 0x01, 0x00, 0x4b, 0x39, 0x9c, 0xc1, 0xa7, 0x00, 0x44, 0x6b, 0x7a, - 0xb7, 0xa7, 0x00, 0xef, 0x4f, 0xa7, 0x00, 0x04, 0xcc, 0x04, 0x04, 0xf5, - 0x23, 0x02, 0x40, 0xe5, 0x5b, 0x02, 0x80, 0x19, 0xef, 0x54, 0x02, 0xc0, - 0x00, 0x06, 0x50, 0x00, 0x04, 0xe5, 0x62, 0xab, 0x40, 0x4e, 0x53, 0x0e, - 0x97, 0x1d, 0x00, 0x46, 0x27, 0x05, 0x3f, 0xab, 0x40, 0x54, 0x4d, 0x0e, - 0x93, 0x1d, 0x40, 0x45, 0x29, 0x38, 0xf3, 0x00, 0x00, 0x45, 0xcb, 0x22, - 0x4f, 0x01, 0x00, 0xa3, 0xe7, 0x01, 0xa4, 0xac, 0x01, 0x45, 0x8d, 0x22, - 0xf2, 0x00, 0x00, 0x02, 0x0b, 0x00, 0x72, 0x4e, 0xd6, 0x22, 0x0f, 0x02, - 0x00, 0x02, 0x13, 0x01, 0x56, 0x46, 0x04, 0x6f, 0x4d, 0x01, 0x80, 0x3e, - 0x46, 0xc2, 0xdb, 0xeb, 0x01, 0x80, 0x31, 0x4e, 0x53, 0x0e, 0x1b, 0xdf, - 0x01, 0x46, 0x27, 0x05, 0xf8, 0x00, 0x80, 0x1e, 0x45, 0xad, 0x22, 0xf5, - 0x00, 0xc0, 0x00, 0x05, 0x19, 0x00, 0x01, 0xff, 0x45, 0x29, 0x38, 0x4d, - 0x1e, 0x00, 0x49, 0x2f, 0x23, 0x4f, 0x1e, 0x00, 0x46, 0x04, 0x6f, 0x2d, - 0x02, 0x40, 0x4a, 0x5b, 0xa3, 0xff, 0x01, 0x40, 0x4b, 0x59, 0x95, 0xed, - 0x01, 0x40, 0x05, 0x19, 0x00, 0x01, 0xff, 0x45, 0x29, 0x38, 0x53, 0x1e, - 0x00, 0x45, 0x8d, 0x22, 0x51, 0x1e, 0x40, 0x51, 0x5b, 0x5b, 0x4b, 0xa7, - 0x00, 0x42, 0x1f, 0x00, 0x4d, 0xa7, 0x00, 0x4d, 0x99, 0x88, 0x7a, 0x2c, - 0x40, 0x48, 0xfd, 0xa8, 0xcf, 0x1e, 0x00, 0x42, 0x5e, 0x01, 0xa1, 0x01, - 0xc0, 0x00, 0x05, 0x19, 0x00, 0x01, 0xff, 0x45, 0x29, 0x38, 0xdb, 0x1e, - 0x00, 0x49, 0x50, 0x12, 0xe3, 0x1e, 0x00, 0x45, 0x8d, 0x22, 0xdd, 0x1e, - 0x00, 0x4a, 0xfb, 0xa8, 0xdf, 0x1e, 0x00, 0x45, 0xad, 0x22, 0xe1, 0x1e, - 0x40, 0x48, 0x30, 0x23, 0xf6, 0x00, 0x80, 0x2b, 0xaf, 0x01, 0xff, 0x02, - 0xc6, 0x00, 0x11, 0x05, 0x3d, 0x01, 0x01, 0xff, 0x45, 0x29, 0x38, 0x51, - 0x01, 0x00, 0x45, 0x8d, 0x22, 0x0d, 0x02, 0x40, 0x45, 0x5c, 0x00, 0x2f, - 0x02, 0x80, 0x06, 0x45, 0xf5, 0x06, 0xcd, 0x1e, 0x40, 0x4b, 0x59, 0x95, - 0x31, 0x02, 0x40, 0x4b, 0x59, 0x95, 0x2b, 0x02, 0x40, 0x44, 0x4d, 0x6b, - 0xd2, 0x01, 0x00, 0x49, 0xa5, 0x04, 0xf4, 0x00, 0xc0, 0x00, 0x05, 0x19, - 0x00, 0x01, 0xff, 0x45, 0x29, 0x38, 0xd1, 0x1e, 0x00, 0x49, 0x50, 0x12, - 0xd9, 0x1e, 0x00, 0x45, 0x8d, 0x22, 0xd3, 0x1e, 0x00, 0x4a, 0xfb, 0xa8, - 0xd5, 0x1e, 0x00, 0x45, 0xad, 0x22, 0xd7, 0x1e, 0x40, 0x80, 0x0a, 0xea, - 0xcc, 0x01, 0x00, 0x42, 0x1d, 0x04, 0x74, 0xa7, 0x40, 0x56, 0x85, 0x35, - 0x49, 0x01, 0x00, 0x05, 0x51, 0x00, 0x01, 0xff, 0x45, 0x29, 0x38, 0x44, - 0x01, 0x00, 0xa3, 0x5b, 0xa4, 0x42, 0x45, 0x8d, 0x22, 0xf9, 0x01, 0x00, - 0xac, 0x28, 0x03, 0x7d, 0x02, 0x18, 0x4e, 0x41, 0x42, 0xa5, 0xa7, 0x00, - 0x4c, 0xaa, 0x55, 0x87, 0x1d, 0x00, 0x4e, 0x53, 0x0e, 0x73, 0x02, 0x00, - 0x45, 0xad, 0x22, 0xf1, 0x00, 0x40, 0x51, 0x60, 0x56, 0x27, 0xdf, 0x01, - 0x49, 0xa9, 0x22, 0x70, 0x1d, 0x40, 0x48, 0x69, 0x56, 0x72, 0x02, 0x00, - 0x49, 0xf5, 0x6b, 0x49, 0x1e, 0x00, 0x4d, 0x32, 0x85, 0x9e, 0x01, 0x40, - 0x48, 0x95, 0x2a, 0x91, 0xa7, 0x00, 0x03, 0xb5, 0x0b, 0x01, 0xff, 0x45, - 0x5c, 0x00, 0x45, 0x1e, 0x00, 0x45, 0xf5, 0x06, 0x47, 0x1e, 0x40, 0x44, - 0x4d, 0x6b, 0x48, 0x01, 0x00, 0x46, 0x7c, 0xbf, 0x46, 0x01, 0x00, 0x4f, - 0x48, 0x6d, 0x4b, 0x1e, 0x00, 0x4b, 0x81, 0x4e, 0x3b, 0xab, 0x00, 0x43, - 0x24, 0x0b, 0x35, 0x02, 0x40, 0x06, 0x50, 0x00, 0x1f, 0x05, 0x7e, 0x02, - 0x06, 0x42, 0x1d, 0x04, 0x73, 0xa7, 0x40, 0x48, 0x0a, 0xc0, 0xd7, 0xa7, - 0x00, 0x07, 0x25, 0xcb, 0x01, 0xff, 0x42, 0x0f, 0x07, 0xfb, 0x1e, 0x00, - 0xf6, 0xfd, 0x1e, 0x40, 0x45, 0x29, 0x38, 0x3f, 0x1e, 0x00, 0x4c, 0x80, - 0x4e, 0x3a, 0xab, 0x00, 0x04, 0xb4, 0x0b, 0x12, 0x44, 0x5d, 0x0e, 0x71, - 0x02, 0x00, 0x4c, 0xa6, 0x22, 0x6f, 0x1d, 0x00, 0x4c, 0xaa, 0x55, 0x86, - 0x1d, 0x40, 0x45, 0x5c, 0x00, 0x41, 0x1e, 0x00, 0x45, 0xf5, 0x06, 0x43, - 0x1e, 0x40, 0x06, 0x50, 0x00, 0x58, 0x45, 0x33, 0xe1, 0xdb, 0xa7, 0x80, - 0x4b, 0xa5, 0x36, 0xea, 0xc9, 0x01, 0x00, 0x45, 0xe4, 0xb9, 0x7f, 0x01, - 0x80, 0x12, 0x49, 0xa3, 0xbc, 0xaa, 0x02, 0x00, 0x42, 0x1d, 0x04, 0x72, - 0xa7, 0x00, 0x49, 0x34, 0xbf, 0xab, 0x02, 0x40, 0x06, 0x50, 0x00, 0x01, - 0xff, 0xa4, 0x06, 0x4b, 0xc3, 0x9a, 0x9d, 0x1e, 0x40, 0x4e, 0xa9, 0x3e, - 0x9c, 0x1e, 0x00, 0x48, 0x99, 0x1d, 0x9b, 0x1e, 0x40, 0x45, 0x06, 0xe6, - 0x35, 0xab, 0x00, 0x42, 0xb3, 0x27, 0x6e, 0x02, 0xc0, 0x00, 0x54, 0x4d, - 0x0e, 0x05, 0xdf, 0x41, 0x4c, 0x39, 0x28, 0x9b, 0x01, 0x40, 0x45, 0x29, - 0x38, 0x3a, 0x01, 0x00, 0xa2, 0x8e, 0x01, 0xa3, 0x74, 0x02, 0x3b, 0x01, - 0x52, 0x48, 0x97, 0x70, 0x11, 0xdf, 0x01, 0x4b, 0xc3, 0x9a, 0x49, 0xa7, - 0x00, 0x4f, 0x2a, 0x6d, 0x37, 0xab, 0x00, 0x4a, 0xf4, 0x6b, 0x3b, 0x1e, - 0x00, 0x03, 0x7d, 0x02, 0x19, 0x4c, 0xaa, 0x55, 0x85, 0x1d, 0x00, 0x4e, - 0x53, 0x0e, 0x6d, 0x02, 0x80, 0x06, 0x46, 0x27, 0x05, 0x42, 0x01, 0x40, - 0x49, 0xcf, 0xb1, 0x8e, 0xa7, 0x40, 0x51, 0x60, 0x56, 0x26, 0xdf, 0x01, - 0x04, 0x80, 0x02, 0x01, 0xff, 0x43, 0xd4, 0x09, 0x40, 0x01, 0x00, 0x44, - 0xf7, 0x07, 0x39, 0xab, 0x00, 0x45, 0xad, 0x22, 0x6b, 0x02, 0x40, 0x47, - 0x52, 0x12, 0x37, 0x1e, 0x80, 0x11, 0x05, 0x3d, 0x01, 0x01, 0xff, 0x43, - 0x16, 0x00, 0x61, 0x2c, 0x00, 0x4c, 0xa6, 0x22, 0x38, 0xab, 0x40, 0x4b, - 0x59, 0x95, 0x39, 0x1e, 0x40, 0x44, 0x4d, 0x6b, 0x3e, 0x01, 0x00, 0x46, - 0x7c, 0xbf, 0x3c, 0x01, 0x00, 0x4f, 0x48, 0x6d, 0x3d, 0x1e, 0x00, 0x43, - 0x24, 0x0b, 0x34, 0x02, 0x40, 0x42, 0x17, 0x00, 0x9a, 0x01, 0x00, 0x43, - 0xa1, 0xa1, 0x6c, 0x02, 0xc0, 0x00, 0x51, 0xa5, 0x55, 0x13, 0xdf, 0x41, - 0x06, 0x50, 0x00, 0x06, 0x42, 0x71, 0x00, 0x38, 0x01, 0x40, 0x45, 0x29, - 0x38, 0x31, 0x1e, 0x00, 0xa3, 0x39, 0xa4, 0x25, 0x44, 0x5d, 0x0e, 0x99, - 0x01, 0x00, 0x4a, 0xf4, 0x6b, 0x35, 0x1e, 0x00, 0x4e, 0x41, 0x42, 0xa3, - 0xa7, 0x00, 0x4c, 0xaa, 0x55, 0x84, 0x1d, 0x00, 0x46, 0x27, 0x05, 0x41, - 0xa7, 0xc0, 0x00, 0x54, 0xa3, 0x3e, 0x45, 0xa7, 0x40, 0x48, 0x95, 0x2a, - 0x6a, 0x2c, 0x00, 0x4e, 0xa9, 0x3e, 0x43, 0xa7, 0x00, 0x48, 0x51, 0x12, - 0x33, 0x1e, 0x40, 0x44, 0x4d, 0x6b, 0xe9, 0x01, 0x00, 0x46, 0x7c, 0xbf, - 0x37, 0x01, 0x40, 0x06, 0x50, 0x00, 0x01, 0xff, 0xa3, 0x06, 0x46, 0x27, - 0x05, 0x49, 0x02, 0x40, 0x44, 0x4d, 0x6b, 0xf0, 0x01, 0x00, 0x49, 0xa5, - 0x04, 0x35, 0x01, 0x00, 0x4b, 0x81, 0x4e, 0x9d, 0x02, 0x40, 0x06, 0x50, - 0x00, 0x48, 0xae, 0x19, 0x02, 0xf0, 0x04, 0x04, 0xf3, 0x6d, 0xa7, 0x40, - 0xe1, 0x69, 0x02, 0x80, 0x06, 0x47, 0x07, 0xcf, 0x61, 0xab, 0x40, 0x4c, - 0x39, 0x28, 0x7c, 0x1d, 0x40, 0x06, 0x6d, 0x6e, 0x11, 0x07, 0xd8, 0x22, - 0x01, 0xff, 0x45, 0x2e, 0xe1, 0x64, 0xab, 0x00, 0x42, 0x17, 0x50, 0x40, - 0xab, 0x40, 0xe4, 0x7a, 0xa7, 0x00, 0xe6, 0x7c, 0xa7, 0x00, 0xe7, 0x79, - 0x1d, 0x00, 0xf2, 0x83, 0xa7, 0x00, 0xf3, 0x85, 0xa7, 0x00, 0xf4, 0x87, - 0xa7, 0x40, 0x45, 0x29, 0x38, 0xed, 0x00, 0x00, 0x45, 0xcb, 0x22, 0x2d, - 0x01, 0x00, 0xa3, 0x5c, 0xa4, 0x3e, 0x45, 0x8d, 0x22, 0xec, 0x00, 0x00, - 0x4a, 0xfb, 0xa8, 0xc9, 0x1e, 0x00, 0x4e, 0xd6, 0x22, 0x0b, 0x02, 0x00, - 0x46, 0x04, 0x6f, 0x2b, 0x01, 0x00, 0x46, 0xc2, 0xdb, 0x2f, 0x01, 0x00, - 0x4e, 0x53, 0x0e, 0x96, 0x1d, 0x00, 0x46, 0x27, 0x05, 0x68, 0x02, 0x80, - 0x0d, 0x45, 0xad, 0x22, 0x29, 0x01, 0xc0, 0x00, 0x46, 0xf4, 0x06, 0x2d, - 0x1e, 0x40, 0x53, 0x0e, 0x46, 0x1a, 0xdf, 0x41, 0x48, 0x30, 0x23, 0xef, - 0x00, 0x80, 0x0f, 0xaf, 0x01, 0xff, 0x47, 0x52, 0x12, 0xcb, 0x1e, 0x00, - 0x4a, 0x88, 0x22, 0x09, 0x02, 0x40, 0x4a, 0x5b, 0xa3, 0x2f, 0x1e, 0x40, - 0x44, 0x4d, 0x6b, 0xd0, 0x01, 0x00, 0x49, 0xa5, 0x04, 0xee, 0x00, 0x40, - 0x06, 0x50, 0x00, 0x17, 0x45, 0x4d, 0xd9, 0x76, 0x2c, 0x00, 0x43, 0xfd, - 0x09, 0x27, 0xa7, 0x80, 0x04, 0xf6, 0x95, 0x01, 0x40, 0x4a, 0x1f, 0x24, - 0x67, 0x02, 0x40, 0x4b, 0xab, 0x97, 0x2b, 0x1e, 0x00, 0xa3, 0x37, 0xa4, - 0x18, 0x44, 0x5d, 0x0e, 0x66, 0x02, 0x00, 0x4a, 0xf4, 0x6b, 0x96, 0x1e, - 0x00, 0x4c, 0xaa, 0x55, 0x95, 0xa7, 0x00, 0x46, 0x27, 0x05, 0x27, 0x01, - 0x40, 0x48, 0x95, 0x2a, 0x68, 0x2c, 0x00, 0x48, 0x30, 0x23, 0x27, 0x1e, - 0x00, 0x03, 0xb5, 0x0b, 0x01, 0xff, 0x45, 0x5c, 0x00, 0x23, 0x1e, 0x00, - 0x45, 0xf5, 0x06, 0x25, 0x1e, 0x40, 0x44, 0x4d, 0x6b, 0x1f, 0x02, 0x00, - 0x46, 0x7c, 0xbf, 0x29, 0x1e, 0x00, 0x49, 0xa5, 0x04, 0x25, 0x01, 0x40, - 0x06, 0x50, 0x00, 0x23, 0x44, 0x5e, 0x20, 0x63, 0x02, 0x00, 0x42, 0x22, - 0x00, 0xa3, 0x01, 0x00, 0x07, 0x2e, 0x28, 0x01, 0xff, 0xe1, 0xbb, 0xa7, - 0x00, 0xe9, 0xbd, 0xa7, 0x00, 0x44, 0x2a, 0x03, 0x42, 0x02, 0x00, 0xf5, - 0xbf, 0xa7, 0x40, 0x45, 0x29, 0x38, 0xf5, 0x01, 0x00, 0x45, 0xcb, 0x22, - 0x1f, 0x01, 0x00, 0xa3, 0x24, 0x49, 0x98, 0x1d, 0x21, 0x01, 0x00, 0x44, - 0x5d, 0x0e, 0x60, 0x02, 0x00, 0x46, 0x04, 0x6f, 0x21, 0x1e, 0x00, 0x4e, - 0x41, 0x42, 0xa1, 0xa7, 0x00, 0x4c, 0xaa, 0x55, 0x83, 0x1d, 0x00, 0x46, - 0x27, 0x05, 0xe5, 0x01, 0x40, 0x44, 0x4d, 0x6b, 0xe7, 0x01, 0x00, 0x46, - 0x7c, 0xbf, 0x23, 0x01, 0x00, 0x49, 0xa5, 0x04, 0x1d, 0x01, 0x40, 0x06, - 0x50, 0x00, 0x0d, 0x4b, 0x9a, 0x99, 0xa9, 0x02, 0xc0, 0x00, 0x4b, 0x4b, - 0x96, 0x00, 0xdf, 0x41, 0x49, 0x98, 0x1d, 0x1f, 0x1e, 0x00, 0x44, 0x5d, - 0x0e, 0x92, 0x01, 0x00, 0x4c, 0xa6, 0x22, 0x6e, 0x1d, 0x00, 0x4c, 0xaa, - 0x55, 0x82, 0x1d, 0x00, 0x46, 0x27, 0x05, 0x99, 0xa7, 0x40, 0x06, 0x50, - 0x00, 0x92, 0x01, 0x0e, 0xbc, 0x76, 0x81, 0x01, 0x42, 0x1d, 0x01, 0x4b, - 0x01, 0x80, 0x69, 0x42, 0xa4, 0x02, 0x83, 0x02, 0x80, 0x3e, 0xf4, 0x6b, - 0xa7, 0x80, 0x35, 0x42, 0xb3, 0x27, 0x92, 0x02, 0xc0, 0x00, 0x80, 0x01, - 0xff, 0x48, 0x09, 0x13, 0xb9, 0x01, 0x00, 0x05, 0x51, 0x00, 0x01, 0xff, - 0xa3, 0x12, 0x4c, 0xaa, 0x55, 0x18, 0xdf, 0x01, 0x4e, 0x53, 0x0e, 0x9a, - 0x1d, 0x00, 0x44, 0x23, 0x17, 0xba, 0x01, 0x40, 0x44, 0x4d, 0x6b, 0xef, - 0x01, 0x00, 0x43, 0x24, 0x0b, 0x93, 0x02, 0x40, 0xe8, 0xf0, 0x00, 0x40, - 0x06, 0x50, 0x00, 0x01, 0xff, 0x44, 0x23, 0x0b, 0x86, 0x02, 0x00, 0x4a, - 0x25, 0xa7, 0x0b, 0xdf, 0x81, 0x0c, 0x4c, 0xaa, 0x55, 0x8b, 0x1d, 0x00, - 0x4e, 0x53, 0x0e, 0x98, 0x1d, 0x40, 0x49, 0xd8, 0xb1, 0x0c, 0xdf, 0x41, - 0x06, 0x50, 0x00, 0x01, 0xff, 0x4c, 0x80, 0x4e, 0x3c, 0xab, 0x00, 0x4c, - 0xaa, 0x55, 0x14, 0xdf, 0x41, 0x42, 0x9e, 0x01, 0x25, 0xa7, 0x00, 0x43, - 0x68, 0x00, 0x23, 0xa7, 0x40, 0x45, 0x29, 0x38, 0xe9, 0x00, 0x00, 0x45, - 0xcb, 0x22, 0x15, 0x01, 0x00, 0xa3, 0x76, 0xa4, 0x55, 0x48, 0xa2, 0xc3, - 0x34, 0xab, 0x00, 0x45, 0x8d, 0x22, 0xe8, 0x00, 0x00, 0x4a, 0xfb, 0xa8, - 0xbb, 0x1e, 0x00, 0x4e, 0xd6, 0x22, 0x07, 0x02, 0x00, 0x46, 0x04, 0x6f, - 0x13, 0x01, 0x80, 0x25, 0x45, 0xd8, 0x29, 0x78, 0x2c, 0x00, 0x46, 0xc2, - 0xdb, 0x19, 0x01, 0x00, 0x4e, 0x53, 0x0e, 0x92, 0x1d, 0x00, 0x46, 0x27, - 0x05, 0x47, 0x02, 0x00, 0x45, 0xad, 0x22, 0xbd, 0x1e, 0xc0, 0x00, 0x46, - 0xf4, 0x06, 0x1b, 0x1e, 0x40, 0x05, 0x19, 0x00, 0x01, 0xff, 0x45, 0x29, - 0x38, 0x17, 0x1e, 0x00, 0x45, 0x8d, 0x22, 0x15, 0x1e, 0x40, 0x48, 0x30, - 0x23, 0xeb, 0x00, 0x00, 0xaf, 0x01, 0xff, 0x02, 0xc6, 0x00, 0x06, 0x4a, - 0x88, 0x22, 0x05, 0x02, 0x40, 0x45, 0x5c, 0x00, 0x17, 0x01, 0x00, 0x45, - 0xf5, 0x06, 0xb9, 0x1e, 0x40, 0x44, 0x4d, 0x6b, 0x1b, 0x01, 0x00, 0x46, - 0x7c, 0xbf, 0x29, 0x02, 0x80, 0x32, 0x49, 0xa5, 0x04, 0xea, 0x00, 0xc0, - 0x00, 0x80, 0x01, 0xff, 0x04, 0x1a, 0x00, 0x06, 0x45, 0xf5, 0x06, 0x19, - 0x1e, 0x40, 0x45, 0x29, 0x38, 0xbf, 0x1e, 0x00, 0x49, 0x50, 0x12, 0xc7, - 0x1e, 0x00, 0x45, 0x8d, 0x22, 0xc1, 0x1e, 0x00, 0x4a, 0xfb, 0xa8, 0xc3, - 0x1e, 0x00, 0x45, 0xad, 0x22, 0xc5, 0x1e, 0x40, 0x4a, 0x6f, 0xa3, 0x1d, - 0x1e, 0x40, 0x06, 0x50, 0x00, 0x8a, 0x01, 0x49, 0x2a, 0xb4, 0x38, 0x02, - 0x00, 0xa5, 0x64, 0xaf, 0x2c, 0x42, 0x1d, 0x04, 0x71, 0xa7, 0x00, 0xfa, - 0xf3, 0x01, 0xc0, 0x00, 0x80, 0x01, 0xff, 0x47, 0x66, 0x47, 0xa3, 0x02, - 0x80, 0x06, 0x4a, 0xf4, 0x95, 0xc6, 0x01, 0x40, 0x06, 0x50, 0x00, 0x01, - 0xff, 0x44, 0x23, 0x0b, 0xa5, 0x02, 0x00, 0x4e, 0x53, 0x0e, 0x66, 0xab, - 0x40, 0x06, 0x85, 0x40, 0x1c, 0x05, 0x3d, 0x01, 0x01, 0xff, 0xf2, 0x48, - 0xab, 0x80, 0x0c, 0x45, 0xc8, 0x48, 0xd3, 0xa7, 0x00, 0x44, 0x2c, 0xa2, - 0xd5, 0xa7, 0x40, 0x52, 0x7a, 0x4e, 0x4a, 0xab, 0x40, 0xe9, 0x31, 0x01, - 0x00, 0xea, 0x37, 0x02, 0xc0, 0x00, 0x4c, 0x39, 0x28, 0x5f, 0x02, 0xc0, - 0x00, 0x49, 0x38, 0x23, 0x84, 0x02, 0x40, 0x43, 0xef, 0x94, 0x9f, 0x1e, - 0x00, 0x4a, 0xbb, 0xb1, 0xa4, 0x02, 0xc0, 0x00, 0x06, 0x50, 0x00, 0x01, - 0xff, 0x4c, 0xaa, 0x55, 0x12, 0xdf, 0x01, 0x4e, 0x53, 0x0e, 0x19, 0xdf, - 0x41, 0xa3, 0x56, 0x04, 0xb4, 0x0b, 0x46, 0x44, 0x5d, 0x0e, 0x57, 0x02, - 0x80, 0x39, 0x4a, 0xf4, 0x6b, 0x0f, 0x1e, 0x00, 0x03, 0x7d, 0x02, 0x23, - 0x4c, 0xaa, 0x55, 0x81, 0x1d, 0x00, 0xb3, 0x0f, 0xb4, 0x01, 0xff, 0x43, - 0x24, 0x17, 0x56, 0x02, 0x00, 0x45, 0x9d, 0xdd, 0x8c, 0x01, 0x40, 0x53, - 0xa7, 0x48, 0xc8, 0xa7, 0x00, 0x45, 0x28, 0x05, 0x11, 0x01, 0x40, 0x51, - 0x60, 0x56, 0x25, 0xdf, 0x01, 0x49, 0xa9, 0x22, 0x6d, 0x1d, 0x40, 0x49, - 0xe1, 0xb1, 0x91, 0x1d, 0x40, 0x45, 0x5c, 0x00, 0x0b, 0x1e, 0x00, 0x45, - 0xf5, 0x06, 0x0d, 0x1e, 0x40, 0x44, 0x4d, 0x6b, 0x0f, 0x01, 0x00, 0x46, - 0x7c, 0xbf, 0x11, 0x1e, 0x00, 0x4f, 0x48, 0x6d, 0x13, 0x1e, 0x00, 0x43, - 0x24, 0x0b, 0x21, 0x02, 0x40, 0x06, 0x50, 0x00, 0x49, 0x42, 0x49, 0x00, - 0x53, 0xab, 0x80, 0x31, 0x06, 0xd9, 0x1a, 0x13, 0x42, 0x10, 0x00, 0x6f, - 0xa7, 0x00, 0x48, 0x32, 0xc9, 0x2d, 0xa7, 0xc0, 0x00, 0x4b, 0xfe, 0x95, - 0x2f, 0xa7, 0x40, 0x49, 0x6b, 0x6e, 0xd1, 0xa7, 0x00, 0xaf, 0x06, 0x4f, - 0xdb, 0x70, 0x5e, 0x02, 0x40, 0x44, 0x6b, 0x7a, 0x77, 0x02, 0x00, 0x45, - 0x7e, 0x28, 0x9a, 0x02, 0x40, 0x0a, 0x2d, 0xa4, 0x01, 0xff, 0x4a, 0x6d, - 0xaa, 0x55, 0xab, 0x00, 0x4a, 0xca, 0x4e, 0x54, 0xab, 0x40, 0x45, 0x29, - 0x38, 0x07, 0x01, 0x00, 0x43, 0x16, 0x00, 0x93, 0xa7, 0x00, 0xa3, 0x1e, - 0x49, 0x98, 0x1d, 0x0b, 0x01, 0x00, 0x44, 0x5d, 0x0e, 0x88, 0x01, 0x00, - 0x4c, 0xaa, 0x55, 0x94, 0xa7, 0x00, 0x4e, 0x53, 0x0e, 0x1d, 0xdf, 0x01, - 0x46, 0x27, 0x05, 0x3c, 0x02, 0x40, 0x44, 0x4d, 0x6b, 0x0d, 0x01, 0x00, - 0x46, 0x7c, 0xbf, 0xe7, 0x00, 0x80, 0x0c, 0x49, 0xa5, 0x04, 0x09, 0x01, - 0x00, 0x43, 0x24, 0x0b, 0x55, 0x02, 0x40, 0x4a, 0x5b, 0xa3, 0x09, 0x1e, - 0x40, 0x06, 0x50, 0x00, 0x3f, 0xa1, 0x25, 0x43, 0x45, 0x0f, 0xb5, 0xa7, - 0x00, 0x0b, 0x18, 0x9c, 0x0c, 0x4c, 0xbd, 0x91, 0x17, 0x1d, 0x00, 0x47, - 0x9c, 0xd2, 0x47, 0xa7, 0x40, 0xe5, 0x32, 0xab, 0x00, 0xef, 0x3d, 0xab, - 0xc0, 0x00, 0x4c, 0x39, 0x28, 0x3e, 0xab, 0x40, 0x05, 0x4f, 0x7f, 0x06, - 0x4a, 0x91, 0xae, 0x4d, 0xab, 0x40, 0x45, 0x2e, 0xe1, 0x30, 0xab, 0x00, - 0xe5, 0x33, 0xab, 0x00, 0xef, 0x75, 0x02, 0x40, 0x04, 0xb4, 0x0b, 0x2a, - 0x48, 0xa2, 0xc3, 0x97, 0xa7, 0x00, 0x44, 0x5d, 0x0e, 0x53, 0x02, 0x00, - 0x4a, 0xf4, 0x6b, 0x07, 0x1e, 0x00, 0x4c, 0xa6, 0x22, 0x6c, 0x1d, 0x00, - 0x4c, 0xaa, 0x55, 0x80, 0x1d, 0x00, 0x46, 0x27, 0x05, 0x80, 0x01, 0x00, - 0x46, 0x9c, 0xdd, 0x83, 0x01, 0x40, 0x45, 0x5c, 0x00, 0x03, 0x1e, 0x00, - 0x45, 0xf5, 0x06, 0x05, 0x1e, 0x40, 0x80, 0x44, 0xe1, 0x33, 0xa7, 0x00, - 0xe5, 0xe6, 0x00, 0x80, 0x2a, 0x44, 0x2f, 0xe1, 0x51, 0x02, 0x80, 0x1d, - 0x4a, 0x07, 0xac, 0xc3, 0xa7, 0x00, 0xef, 0x35, 0xa7, 0x00, 0xf5, 0x37, - 0xa7, 0x00, 0xf6, 0x39, 0xa7, 0x80, 0x04, 0xf9, 0x3d, 0xa7, 0x40, 0x54, - 0xf3, 0x3e, 0x3b, 0xa7, 0x40, 0x54, 0x4d, 0x0e, 0x90, 0x1d, 0x40, 0x06, - 0x50, 0x00, 0x01, 0xff, 0x45, 0x29, 0x38, 0xfd, 0x01, 0x00, 0x46, 0x04, - 0x6f, 0xe3, 0x01, 0x40, 0x4e, 0x4a, 0x7a, 0x31, 0xab, 0x00, 0x05, 0x51, - 0x00, 0x01, 0xff, 0x45, 0x29, 0x38, 0xe1, 0x00, 0x00, 0x45, 0xcb, 0x22, - 0x03, 0x01, 0x80, 0xb5, 0x01, 0xa3, 0x82, 0x01, 0xa4, 0x53, 0x45, 0x8d, - 0x22, 0xe0, 0x00, 0x00, 0x4a, 0xfb, 0xa8, 0xa3, 0x1e, 0x00, 0x4e, 0xd6, - 0x22, 0x03, 0x02, 0x00, 0x46, 0x04, 0x6f, 0x01, 0x01, 0x00, 0x46, 0xc2, - 0xdb, 0x05, 0x01, 0x00, 0xb2, 0x0c, 0x46, 0x27, 0x05, 0x65, 0x2c, 0x00, - 0x45, 0xad, 0x22, 0xe3, 0x00, 0x40, 0x4d, 0x54, 0x0e, 0x8f, 0x1d, 0x00, - 0xa9, 0x01, 0xff, 0x4d, 0xec, 0x70, 0x9a, 0x1e, 0x00, 0x03, 0xa2, 0x01, - 0x01, 0xff, 0x45, 0x5c, 0x00, 0xe5, 0x00, 0x80, 0x06, 0x45, 0xf5, 0x06, - 0x01, 0x1e, 0x40, 0x4a, 0x5b, 0xa3, 0xfb, 0x01, 0x40, 0x48, 0x30, 0x23, - 0xe4, 0x00, 0x80, 0x20, 0xaf, 0x01, 0xff, 0x02, 0xc6, 0x00, 0x06, 0x4a, - 0x88, 0x22, 0x01, 0x02, 0x40, 0x45, 0x5c, 0x00, 0x27, 0x02, 0x80, 0x06, - 0x45, 0xf5, 0x06, 0xa1, 0x1e, 0x40, 0x4b, 0x59, 0x95, 0xe1, 0x01, 0x40, - 0x4b, 0x59, 0x95, 0xdf, 0x01, 0x40, 0x44, 0x4d, 0x6b, 0xce, 0x01, 0x00, - 0x49, 0xa5, 0x04, 0xe2, 0x00, 0xc0, 0x00, 0x05, 0x19, 0x00, 0x01, 0xff, - 0x45, 0x29, 0x38, 0xa5, 0x1e, 0x00, 0x49, 0x50, 0x12, 0xad, 0x1e, 0x00, - 0x45, 0x8d, 0x22, 0xa7, 0x1e, 0x00, 0x4a, 0xfb, 0xa8, 0xa9, 0x1e, 0x00, - 0x45, 0xad, 0x22, 0xab, 0x1e, 0x40, 0x05, 0x19, 0x00, 0x01, 0xff, 0x45, - 0x29, 0x38, 0xaf, 0x1e, 0x00, 0x49, 0x50, 0x12, 0xb7, 0x1e, 0x00, 0x45, - 0x8d, 0x22, 0xb1, 0x1e, 0x00, 0x4a, 0xfb, 0xa8, 0xb3, 0x1e, 0x00, 0x45, - 0xad, 0x22, 0xb5, 0x1e, 0x40, 0x4d, 0x40, 0x82, 0x7b, 0x1d, 0x00, 0x4d, - 0xa2, 0x87, 0x7e, 0x1d, 0x40, 0xa1, 0x8d, 0x03, 0x02, 0xba, 0x06, 0xf1, - 0x02, 0x4c, 0x1d, 0x8c, 0xc0, 0x01, 0x00, 0x4c, 0x2d, 0x28, 0x94, 0x02, - 0x80, 0xdd, 0x02, 0x55, 0x71, 0x3b, 0x96, 0x02, 0x80, 0xc4, 0x02, 0x4d, - 0x44, 0x83, 0xc1, 0x01, 0x00, 0x5b, 0x5d, 0x1c, 0x95, 0x02, 0x00, 0x02, - 0x88, 0x00, 0x95, 0x02, 0xb3, 0x18, 0x4f, 0x7f, 0x72, 0xbb, 0x01, 0x00, - 0x58, 0x2d, 0x2b, 0x24, 0x1d, 0x00, 0x44, 0x2c, 0xa2, 0xbf, 0x01, 0x00, - 0x42, 0x7d, 0x21, 0xa6, 0x01, 0x40, 0x4e, 0x2c, 0x77, 0x8f, 0xa7, 0x00, - 0x0d, 0xf7, 0x3b, 0x0d, 0x4a, 0xdb, 0xaf, 0x97, 0x02, 0xc0, 0x00, 0x4a, - 0x6d, 0x47, 0x0f, 0xdf, 0x41, 0xe1, 0x00, 0x1d, 0x80, 0xda, 0x01, 0xe2, - 0x99, 0x02, 0x80, 0xce, 0x01, 0xe3, 0x04, 0x1d, 0x00, 0xe4, 0x05, 0x1d, - 0x00, 0xe5, 0x07, 0x1d, 0x80, 0xb4, 0x01, 0xe6, 0x30, 0xa7, 0x00, 0xe7, - 0x62, 0x02, 0x80, 0xa4, 0x01, 0xe8, 0x9c, 0x02, 0x00, 0xe9, 0x6a, 0x02, - 0x80, 0x94, 0x01, 0xea, 0x0a, 0x1d, 0x00, 0xeb, 0x0b, 0x1d, 0x00, 0xec, - 0x9f, 0x02, 0x80, 0x76, 0xed, 0x0d, 0x1d, 0x00, 0xee, 0x74, 0x02, 0x00, - 0xef, 0x0f, 0x1d, 0x80, 0x5b, 0xf0, 0x18, 0x1d, 0x00, 0xf1, 0xaf, 0xa7, - 0x00, 0xf2, 0x80, 0x02, 0x80, 0x36, 0xf3, 0x31, 0xa7, 0x00, 0xf4, 0x1b, - 0x1d, 0x80, 0x14, 0xf5, 0x1c, 0x1d, 0x00, 0xf6, 0x20, 0x1d, 0x00, 0xf7, - 0x21, 0x1d, 0x00, 0xf9, 0x8f, 0x02, 0x00, 0xfa, 0x22, 0x1d, 0x40, 0x06, - 0x46, 0x07, 0x01, 0xff, 0xe5, 0x7b, 0x2c, 0x00, 0xe7, 0x02, 0xdf, 0x01, - 0xeb, 0x10, 0xdf, 0x01, 0xed, 0xfa, 0xa7, 0x00, 0xf2, 0x1a, 0x1d, 0x40, - 0x4f, 0x89, 0x68, 0x46, 0xab, 0x00, 0x08, 0x8f, 0x14, 0x06, 0x42, 0x1d, - 0x04, 0x76, 0xa7, 0x40, 0xee, 0x0e, 0x1d, 0x00, 0xf2, 0x19, 0x1d, 0x40, - 0xe5, 0x76, 0x02, 0x00, 0x45, 0xb0, 0xe6, 0x10, 0x1d, 0x00, 0xf5, 0x15, - 0x1d, 0x40, 0x06, 0x50, 0x00, 0x01, 0xff, 0x44, 0x1f, 0xa4, 0x04, 0xdf, - 0x01, 0x46, 0x27, 0x05, 0x0c, 0x1d, 0x40, 0x49, 0x63, 0xba, 0x81, 0x02, - 0x40, 0x4a, 0x1f, 0x24, 0x9b, 0x02, 0x40, 0x42, 0x53, 0x00, 0x06, 0x1d, - 0x00, 0x42, 0xb3, 0x27, 0x23, 0x1d, 0x40, 0x47, 0x3d, 0xcc, 0x03, 0x1d, - 0x40, 0xe5, 0x01, 0x1d, 0x40, 0x4d, 0x40, 0x0e, 0xc3, 0x01, 0x80, 0x11, - 0x07, 0x90, 0x14, 0x01, 0xff, 0x48, 0x42, 0xc3, 0xaa, 0x01, 0x00, 0x58, - 0x2d, 0x28, 0xa2, 0x02, 0x40, 0x54, 0x4d, 0x0e, 0x0a, 0xdf, 0x41, 0x06, - 0x50, 0x00, 0x01, 0xff, 0x44, 0x23, 0x0b, 0x0e, 0xdf, 0x01, 0x46, 0x27, - 0x05, 0xbe, 0x01, 0x40, 0x4c, 0x39, 0x28, 0xa1, 0x02, 0x40, 0x51, 0x4d, - 0x58, 0xad, 0x02, 0x00, 0x07, 0x75, 0x82, 0x01, 0xff, 0x45, 0x48, 0x0e, - 0x98, 0x02, 0x00, 0x4a, 0x54, 0x58, 0xac, 0x02, 0x40, 0x42, 0x9e, 0x01, - 0x25, 0x1d, 0x00, 0x4d, 0xb9, 0x83, 0xc2, 0x01, 0x40, 0x49, 0xeb, 0xb3, - 0xff, 0xa7, 0x00, 0xa9, 0x12, 0x09, 0x8e, 0x14, 0x06, 0x4a, 0xb9, 0xae, - 0xf7, 0xa7, 0x40, 0xe6, 0xfb, 0xa7, 0x00, 0xf0, 0xfc, 0xa7, 0x40, 0x46, - 0x50, 0xd5, 0xfe, 0xa7, 0x00, 0x49, 0xd5, 0x59, 0xfd, 0xa7, 0x40, 0x08, - 0xba, 0x05, 0x06, 0x44, 0x47, 0x10, 0x1d, 0x27, 0x40, 0x06, 0xc2, 0x05, - 0x11, 0x08, 0xfb, 0x1e, 0x01, 0xff, 0x42, 0xc1, 0xc4, 0x32, 0x01, 0x00, - 0x42, 0x17, 0x50, 0x52, 0x01, 0x40, 0xe1, 0x41, 0x00, 0x80, 0x94, 0x16, - 0xe2, 0x42, 0x00, 0x80, 0xd0, 0x15, 0xe3, 0x43, 0x00, 0x80, 0xe8, 0x14, - 0xe4, 0x44, 0x00, 0x80, 0x82, 0x14, 0xe5, 0x45, 0x00, 0x80, 0x86, 0x12, - 0xe6, 0x46, 0x00, 0x80, 0xe9, 0x11, 0xe7, 0x47, 0x00, 0x80, 0xfe, 0x10, - 0xe8, 0x48, 0x00, 0x80, 0x9d, 0x10, 0xe9, 0x49, 0x00, 0x80, 0xfa, 0x0e, - 0xea, 0x4a, 0x00, 0x80, 0xdb, 0x0e, 0xeb, 0x4b, 0x00, 0x80, 0x89, 0x0e, - 0xec, 0x4c, 0x00, 0x80, 0x84, 0x0d, 0xed, 0x4d, 0x00, 0x80, 0xc4, 0x0c, - 0xee, 0x4e, 0x00, 0x80, 0xd7, 0x0b, 0xef, 0x4f, 0x00, 0x80, 0x87, 0x09, - 0xf0, 0x50, 0x00, 0x80, 0xce, 0x08, 0xf1, 0x51, 0x00, 0x80, 0xb7, 0x08, - 0xf2, 0x52, 0x00, 0x80, 0xab, 0x07, 0xf3, 0x53, 0x00, 0x80, 0x87, 0x06, - 0xf4, 0x54, 0x00, 0x80, 0xd1, 0x04, 0xf5, 0x55, 0x00, 0x80, 0xd9, 0x02, - 0xf6, 0x56, 0x00, 0x80, 0x8f, 0x02, 0xf7, 0x57, 0x00, 0x80, 0xce, 0x01, - 0xf8, 0x58, 0x00, 0x80, 0xb7, 0x01, 0xf9, 0x59, 0x00, 0x80, 0x58, 0xfa, - 0x5a, 0x00, 0xc0, 0x00, 0x06, 0x50, 0x00, 0x01, 0xff, 0x45, 0x29, 0x38, - 0x79, 0x01, 0x00, 0xa3, 0x3a, 0xa4, 0x21, 0x44, 0x5d, 0x0e, 0x24, 0x02, - 0x00, 0x4a, 0xf4, 0x6b, 0x94, 0x1e, 0x00, 0x4c, 0xaa, 0x55, 0xc6, 0xa7, - 0x00, 0xb3, 0x01, 0xff, 0x45, 0x28, 0x05, 0xb5, 0x01, 0x00, 0x49, 0xb6, - 0xbe, 0x7f, 0x2c, 0x40, 0x48, 0x95, 0x2a, 0x6b, 0x2c, 0x00, 0x03, 0xb5, - 0x0b, 0x01, 0xff, 0x45, 0x5c, 0x00, 0x7b, 0x01, 0x00, 0x45, 0xf5, 0x06, - 0x92, 0x1e, 0x40, 0x44, 0x4d, 0x6b, 0x7d, 0x01, 0x00, 0x49, 0xa5, 0x04, - 0x90, 0x1e, 0x40, 0x06, 0x50, 0x00, 0x06, 0x43, 0xdc, 0x50, 0x1c, 0x02, - 0x40, 0x45, 0x29, 0x38, 0xdd, 0x00, 0x00, 0x4a, 0xa4, 0x04, 0x76, 0x01, - 0x00, 0xa4, 0x2b, 0x45, 0x8d, 0x22, 0xf2, 0x1e, 0x00, 0x44, 0x5d, 0x0e, - 0xb3, 0x01, 0x80, 0x18, 0x44, 0x92, 0x83, 0xfe, 0x1e, 0x00, 0x46, 0x04, - 0x6f, 0x32, 0x02, 0x00, 0x46, 0x27, 0x05, 0x4e, 0x02, 0x00, 0x45, 0xad, - 0x22, 0xf8, 0x1e, 0x40, 0x46, 0x5b, 0x00, 0xf6, 0x1e, 0x40, 0x48, 0x30, - 0x23, 0x78, 0x01, 0x00, 0x03, 0xb5, 0x0b, 0x01, 0xff, 0x45, 0x5c, 0x00, - 0x8e, 0x1e, 0x00, 0x45, 0xf5, 0x06, 0xf4, 0x1e, 0x40, 0x07, 0x57, 0x07, - 0x01, 0xff, 0x48, 0x30, 0x23, 0x8c, 0x1e, 0x00, 0x48, 0x99, 0x1d, 0x8a, - 0x1e, 0x40, 0x06, 0x50, 0x00, 0x06, 0x43, 0x2d, 0xa2, 0xf7, 0x01, 0x40, - 0x45, 0x29, 0x38, 0x82, 0x1e, 0x00, 0x4a, 0xa4, 0x04, 0x74, 0x01, 0x00, - 0xa4, 0x0c, 0x45, 0x8d, 0x22, 0x80, 0x1e, 0x00, 0x44, 0x5d, 0x0e, 0x72, - 0x2c, 0x40, 0x48, 0x30, 0x23, 0x84, 0x1e, 0x00, 0x03, 0xb5, 0x0b, 0x01, - 0xff, 0x45, 0x5c, 0x00, 0x86, 0x1e, 0x00, 0x45, 0xf5, 0x06, 0x88, 0x1e, - 0x40, 0x06, 0x50, 0x00, 0x26, 0x43, 0x15, 0x05, 0x68, 0xa7, 0x00, 0x4b, - 0x94, 0x9b, 0x62, 0xa7, 0x00, 0x07, 0xff, 0xd0, 0x04, 0xf9, 0x60, 0xa7, - 0x40, 0x42, 0x44, 0x0f, 0x9a, 0xa7, 0x00, 0x42, 0x17, 0x50, 0x9c, 0xa7, - 0x00, 0x42, 0x87, 0x13, 0x9e, 0xa7, 0x40, 0xa4, 0x0c, 0x44, 0x5d, 0x0e, - 0xb2, 0x01, 0x00, 0x45, 0xad, 0x22, 0x7c, 0x1e, 0x40, 0x4e, 0xa9, 0x3e, - 0x5e, 0xa7, 0x00, 0x48, 0x51, 0x12, 0x7e, 0x1e, 0x40, 0x80, 0x06, 0x46, - 0x63, 0x15, 0xb1, 0x01, 0x40, 0x43, 0x16, 0x00, 0x44, 0x02, 0x00, 0x05, - 0x51, 0x00, 0x01, 0xff, 0x45, 0x29, 0x38, 0xda, 0x00, 0x00, 0x45, 0xcb, - 0x22, 0x6c, 0x01, 0x00, 0xa3, 0xbd, 0x01, 0xa4, 0x75, 0x45, 0x8d, 0x22, - 0xd9, 0x00, 0x00, 0x02, 0x0b, 0x00, 0x3b, 0x4e, 0xd6, 0x22, 0x16, 0x02, - 0x00, 0x46, 0x04, 0x6f, 0x6a, 0x01, 0x80, 0x28, 0x46, 0xc2, 0xdb, 0x72, - 0x01, 0x00, 0x4a, 0x0f, 0xae, 0x6e, 0x01, 0x00, 0x46, 0x27, 0x05, 0xb8, - 0xa7, 0x00, 0x45, 0xad, 0x22, 0x68, 0x01, 0xc0, 0x00, 0x80, 0x01, 0xff, - 0x49, 0x5c, 0xa3, 0x78, 0x1e, 0x00, 0x45, 0xf5, 0x06, 0x74, 0x1e, 0x40, - 0x4e, 0xba, 0x73, 0x7a, 0x1e, 0x40, 0x48, 0xfd, 0xa8, 0xe6, 0x1e, 0x00, - 0x42, 0x5e, 0x01, 0xaf, 0x01, 0xc0, 0x00, 0x05, 0x19, 0x00, 0x01, 0xff, - 0x45, 0x29, 0x38, 0xe8, 0x1e, 0x00, 0x49, 0x50, 0x12, 0xf0, 0x1e, 0x00, - 0x45, 0x8d, 0x22, 0xea, 0x1e, 0x00, 0x4a, 0xfb, 0xa8, 0xec, 0x1e, 0x00, - 0x45, 0xad, 0x22, 0xee, 0x1e, 0x40, 0x48, 0x30, 0x23, 0xdc, 0x00, 0x80, - 0x1a, 0xaf, 0x01, 0xff, 0x47, 0x52, 0x12, 0xe4, 0x1e, 0x00, 0x05, 0x3d, - 0x01, 0x01, 0xff, 0x45, 0x29, 0x38, 0x70, 0x01, 0x00, 0x45, 0x8d, 0x22, - 0x14, 0x02, 0x40, 0x80, 0x01, 0xff, 0x04, 0x1a, 0x00, 0x06, 0x45, 0xf5, - 0x06, 0x72, 0x1e, 0x40, 0x45, 0x29, 0x38, 0xd7, 0x01, 0x00, 0x45, 0xf9, - 0x95, 0xd9, 0x01, 0x00, 0x45, 0x8d, 0x22, 0xdb, 0x01, 0x00, 0x46, 0x04, - 0x6f, 0xd5, 0x01, 0x40, 0x44, 0x4d, 0x6b, 0xd3, 0x01, 0x00, 0x49, 0xa5, - 0x04, 0xdb, 0x00, 0xc0, 0x00, 0x46, 0xf4, 0x06, 0x76, 0x1e, 0x40, 0x06, - 0x50, 0x00, 0x61, 0x44, 0xa8, 0x2c, 0xde, 0x00, 0x80, 0x4d, 0x04, 0xbf, - 0x0a, 0x37, 0x47, 0x80, 0xd2, 0x2a, 0xa7, 0x00, 0x06, 0x46, 0x07, 0x04, - 0xfa, 0x28, 0xa7, 0x40, 0xe1, 0x6f, 0x2c, 0x80, 0x1e, 0xe8, 0x8d, 0xa7, - 0x00, 0x49, 0x6b, 0x6e, 0x7e, 0xa7, 0x00, 0xeb, 0xb0, 0xa7, 0x00, 0xec, - 0x80, 0xa7, 0x00, 0xed, 0x9c, 0x01, 0x00, 0xf4, 0xb1, 0xa7, 0x00, 0xf6, - 0x45, 0x02, 0x40, 0x44, 0x2f, 0xe1, 0x70, 0x2c, 0x40, 0x44, 0x31, 0x11, - 0xbc, 0x01, 0x00, 0x43, 0x5f, 0x25, 0x84, 0x01, 0x00, 0x43, 0xd0, 0x09, - 0xa7, 0x01, 0x40, 0x4c, 0x39, 0x28, 0x64, 0xa7, 0xc0, 0x00, 0x52, 0x8b, - 0x2a, 0x66, 0xa7, 0x40, 0xa3, 0x31, 0xa4, 0x18, 0x44, 0x5d, 0x0e, 0xac, - 0x01, 0x00, 0x4a, 0xf4, 0x6b, 0x6e, 0x1e, 0x00, 0x4e, 0x53, 0x0e, 0xae, - 0x01, 0x00, 0x46, 0x27, 0x05, 0x66, 0x01, 0x40, 0x4e, 0xa9, 0x3e, 0x3e, - 0x02, 0x00, 0x03, 0xb5, 0x0b, 0x01, 0xff, 0x45, 0x5c, 0x00, 0x6a, 0x1e, - 0x00, 0x45, 0xf5, 0x06, 0x6c, 0x1e, 0x40, 0x44, 0x4d, 0x6b, 0x64, 0x01, - 0x00, 0x46, 0x7c, 0xbf, 0x62, 0x01, 0x00, 0x4f, 0x48, 0x6d, 0x70, 0x1e, - 0x00, 0x4a, 0x75, 0xac, 0x1a, 0x02, 0x40, 0x06, 0x50, 0x00, 0x31, 0x47, - 0xf0, 0xcb, 0x8b, 0xa7, 0x00, 0xa3, 0x1d, 0x46, 0xa6, 0xae, 0x9e, 0x1e, - 0x00, 0x48, 0x52, 0xc4, 0xd8, 0xa7, 0x00, 0x05, 0x0d, 0x07, 0x01, 0xff, - 0x49, 0xba, 0xb4, 0xae, 0xa7, 0x00, 0x50, 0x8a, 0x64, 0x4a, 0x02, 0x40, - 0x43, 0x55, 0x7a, 0x8f, 0x01, 0x00, 0x46, 0x04, 0xc8, 0xac, 0xa7, 0x40, - 0x45, 0x29, 0x38, 0x5a, 0x01, 0x80, 0x5c, 0xa3, 0x3b, 0xa4, 0x1b, 0x44, - 0x5d, 0x0e, 0xc5, 0xa7, 0x00, 0x4e, 0x41, 0x42, 0xa8, 0xa7, 0x00, 0xb3, - 0x01, 0xff, 0x53, 0xa7, 0x48, 0xc9, 0xa7, 0x00, 0x49, 0xb6, 0xbe, 0x7e, - 0x2c, 0x40, 0x4e, 0xa9, 0x3e, 0xcc, 0xa7, 0x00, 0x03, 0xb5, 0x0b, 0x01, - 0xff, 0x45, 0x5c, 0x00, 0x60, 0x1e, 0x00, 0x45, 0xf5, 0x06, 0x62, 0x1e, - 0xc0, 0x00, 0x4e, 0x93, 0x1d, 0x68, 0x1e, 0x40, 0x44, 0x4d, 0x6b, 0x60, - 0x01, 0x80, 0x12, 0x46, 0x7c, 0xbf, 0x5e, 0x01, 0x00, 0x49, 0xa5, 0x04, - 0x5c, 0x01, 0x00, 0x4a, 0x75, 0xac, 0x18, 0x02, 0x40, 0x4e, 0x93, 0x1d, - 0x66, 0x1e, 0x40, 0x4e, 0x93, 0x1d, 0x64, 0x1e, 0x40, 0x80, 0x26, 0x48, - 0xc2, 0xc0, 0xcb, 0xa7, 0x00, 0x08, 0x8f, 0x14, 0x06, 0x4a, 0x49, 0xb0, - 0x5c, 0xa7, 0x40, 0x4a, 0x35, 0xa6, 0x3e, 0xa7, 0x00, 0xe5, 0x8e, 0x01, - 0x00, 0x46, 0x4c, 0xd9, 0xf5, 0xa7, 0x00, 0x46, 0x7d, 0x28, 0xab, 0xa7, - 0x40, 0x47, 0x4c, 0xb0, 0x5a, 0xa7, 0x00, 0x05, 0x51, 0x00, 0x01, 0xff, - 0x45, 0x29, 0x38, 0x54, 0x01, 0x00, 0xa3, 0x3f, 0x02, 0x3b, 0x01, 0x1e, - 0x4e, 0xd6, 0x22, 0x12, 0x02, 0x00, 0x4a, 0xf4, 0x6b, 0x5e, 0x1e, 0x00, - 0x4e, 0x41, 0x42, 0xa6, 0xa7, 0x00, 0x46, 0x27, 0x05, 0x4c, 0x02, 0x00, - 0x44, 0x23, 0x17, 0x64, 0x2c, 0x40, 0x02, 0xc6, 0x00, 0x06, 0x4a, 0x88, - 0x22, 0x10, 0x02, 0x40, 0x45, 0x5c, 0x00, 0x58, 0x1e, 0x00, 0x45, 0xf5, - 0x06, 0x5a, 0x1e, 0xc0, 0x00, 0x4b, 0x59, 0x95, 0x5c, 0x1e, 0x40, 0x44, - 0x4d, 0x6b, 0x58, 0x01, 0x00, 0x46, 0x7c, 0xbf, 0x56, 0x01, 0x40, 0x06, - 0x50, 0x00, 0x01, 0xff, 0x4f, 0xa8, 0x3e, 0x58, 0xa7, 0x00, 0x58, 0x85, - 0x2a, 0x56, 0xa7, 0x40, 0x06, 0x50, 0x00, 0x01, 0xff, 0x45, 0x29, 0x38, - 0x54, 0x1e, 0x00, 0x49, 0x98, 0x1d, 0x56, 0x1e, 0x00, 0x48, 0xa2, 0xc3, - 0x52, 0xa7, 0x00, 0x44, 0x5d, 0x0e, 0xa4, 0x01, 0x00, 0xb3, 0x01, 0xff, - 0x4c, 0x41, 0x92, 0x54, 0xa7, 0x00, 0x45, 0x28, 0x05, 0x63, 0x2c, 0xc0, - 0x00, 0x52, 0x8b, 0x2a, 0x50, 0xa7, 0x40, 0x06, 0x50, 0x00, 0x24, 0xe9, - 0xa2, 0x01, 0x00, 0x4b, 0x39, 0x9c, 0xc0, 0xa7, 0x00, 0x44, 0x6b, 0x7a, - 0xb6, 0xa7, 0x00, 0xef, 0x4e, 0xa7, 0x00, 0x04, 0xcc, 0x04, 0x04, 0xf5, - 0x22, 0x02, 0x40, 0xe5, 0x90, 0x01, 0x00, 0xef, 0x86, 0x01, 0x40, 0x45, - 0x29, 0x38, 0xd3, 0x00, 0x00, 0x45, 0xcb, 0x22, 0x4e, 0x01, 0x00, 0xa3, - 0xe3, 0x01, 0xa4, 0xa8, 0x01, 0x45, 0x8d, 0x22, 0xd2, 0x00, 0x00, 0x02, - 0x0b, 0x00, 0x6e, 0x4e, 0xd6, 0x22, 0x0e, 0x02, 0x00, 0x02, 0x13, 0x01, - 0x58, 0xad, 0x38, 0x46, 0xc2, 0xdb, 0xea, 0x01, 0x80, 0x2b, 0x46, 0x27, - 0x05, 0xd8, 0x00, 0x80, 0x1e, 0x45, 0xad, 0x22, 0xd5, 0x00, 0xc0, 0x00, - 0x05, 0x19, 0x00, 0x01, 0xff, 0x45, 0x29, 0x38, 0x4c, 0x1e, 0x00, 0x49, - 0x2f, 0x23, 0x4e, 0x1e, 0x00, 0x46, 0x04, 0x6f, 0x2c, 0x02, 0x40, 0x4a, - 0x5b, 0xa3, 0xfe, 0x01, 0x40, 0x4b, 0x59, 0x95, 0xec, 0x01, 0x40, 0x45, - 0x05, 0x6f, 0x4c, 0x01, 0x80, 0x06, 0x4b, 0xa7, 0x22, 0x9f, 0x01, 0x40, - 0x05, 0x19, 0x00, 0x01, 0xff, 0x45, 0x29, 0x38, 0x52, 0x1e, 0x00, 0x45, - 0x8d, 0x22, 0x50, 0x1e, 0x40, 0x51, 0x5b, 0x5b, 0x4a, 0xa7, 0x00, 0x42, - 0x1f, 0x00, 0x4c, 0xa7, 0x40, 0x48, 0xfd, 0xa8, 0xce, 0x1e, 0x00, 0x42, - 0x5e, 0x01, 0xa0, 0x01, 0xc0, 0x00, 0x05, 0x19, 0x00, 0x01, 0xff, 0x45, - 0x29, 0x38, 0xda, 0x1e, 0x00, 0x49, 0x50, 0x12, 0xe2, 0x1e, 0x00, 0x45, - 0x8d, 0x22, 0xdc, 0x1e, 0x00, 0x4a, 0xfb, 0xa8, 0xde, 0x1e, 0x00, 0x45, - 0xad, 0x22, 0xe0, 0x1e, 0x40, 0x48, 0x30, 0x23, 0xd6, 0x00, 0x80, 0x2b, - 0xaf, 0x01, 0xff, 0x02, 0xc6, 0x00, 0x11, 0x05, 0x3d, 0x01, 0x01, 0xff, - 0x45, 0x29, 0x38, 0x50, 0x01, 0x00, 0x45, 0x8d, 0x22, 0x0c, 0x02, 0x40, - 0x45, 0x5c, 0x00, 0x2e, 0x02, 0x80, 0x06, 0x45, 0xf5, 0x06, 0xcc, 0x1e, - 0x40, 0x4b, 0x59, 0x95, 0x30, 0x02, 0x40, 0x4b, 0x59, 0x95, 0x2a, 0x02, - 0x40, 0x44, 0x4d, 0x6b, 0xd1, 0x01, 0x00, 0x49, 0xa5, 0x04, 0xd4, 0x00, - 0xc0, 0x00, 0x05, 0x19, 0x00, 0x01, 0xff, 0x45, 0x29, 0x38, 0xd0, 0x1e, - 0x00, 0x49, 0x50, 0x12, 0xd8, 0x1e, 0x00, 0x45, 0x8d, 0x22, 0xd2, 0x1e, - 0x00, 0x4a, 0xfb, 0xa8, 0xd4, 0x1e, 0x00, 0x45, 0xad, 0x22, 0xd6, 0x1e, - 0x40, 0x06, 0x50, 0x00, 0x04, 0xea, 0xca, 0x01, 0x40, 0x45, 0x29, 0x38, - 0x43, 0x01, 0x00, 0xa3, 0x45, 0xa4, 0x2c, 0x45, 0x8d, 0x22, 0xf8, 0x01, - 0x00, 0xac, 0x12, 0x4e, 0x41, 0x42, 0xa4, 0xa7, 0x00, 0x4e, 0xf2, 0x7a, - 0xcb, 0x01, 0x00, 0x45, 0xad, 0x22, 0xd1, 0x00, 0x40, 0x48, 0x69, 0x56, - 0x9d, 0x01, 0x00, 0x49, 0xf5, 0x6b, 0x48, 0x1e, 0x00, 0x4d, 0x32, 0x85, - 0x20, 0x02, 0x40, 0x48, 0x95, 0x2a, 0x90, 0xa7, 0x00, 0x03, 0xb5, 0x0b, - 0x01, 0xff, 0x45, 0x5c, 0x00, 0x44, 0x1e, 0x00, 0x45, 0xf5, 0x06, 0x46, - 0x1e, 0x40, 0x44, 0x4d, 0x6b, 0x47, 0x01, 0x00, 0x46, 0x7c, 0xbf, 0x45, - 0x01, 0x00, 0x4f, 0x48, 0x6d, 0x4a, 0x1e, 0x40, 0x06, 0x50, 0x00, 0x1a, - 0x05, 0x7e, 0x02, 0x01, 0xff, 0x48, 0x0a, 0xc0, 0xd6, 0xa7, 0x00, 0x07, - 0x25, 0xcb, 0x01, 0xff, 0x42, 0x0f, 0x07, 0xfa, 0x1e, 0x00, 0xf6, 0xfc, - 0x1e, 0x40, 0x45, 0x29, 0x38, 0x3e, 0x1e, 0x00, 0x04, 0xb4, 0x0b, 0x06, - 0x44, 0x5d, 0x0e, 0x6e, 0x2c, 0x40, 0x45, 0x5c, 0x00, 0x40, 0x1e, 0x00, - 0x45, 0xf5, 0x06, 0x42, 0x1e, 0x40, 0x06, 0x50, 0x00, 0x11, 0x45, 0x33, - 0xe1, 0xda, 0xa7, 0x80, 0x04, 0xea, 0xc7, 0x01, 0x40, 0x4c, 0x39, 0x28, - 0xdc, 0xa7, 0x40, 0x45, 0x29, 0x38, 0x39, 0x01, 0x00, 0xa2, 0x56, 0xa3, - 0x42, 0x02, 0x3b, 0x01, 0x2b, 0x4b, 0xc3, 0x9a, 0x48, 0xa7, 0x00, 0x4a, - 0xf4, 0x6b, 0x3a, 0x1e, 0x00, 0x07, 0x7d, 0x02, 0x0f, 0xb3, 0x01, 0xff, - 0x4d, 0xf3, 0x7a, 0xc8, 0x01, 0x00, 0x45, 0x28, 0x05, 0x41, 0x01, 0x40, - 0x43, 0xd4, 0x09, 0x3f, 0x01, 0x00, 0x45, 0xad, 0x22, 0x62, 0x2c, 0x40, - 0x47, 0x52, 0x12, 0x36, 0x1e, 0x80, 0x06, 0x48, 0x27, 0xa7, 0x60, 0x2c, - 0x40, 0x4b, 0x59, 0x95, 0x38, 0x1e, 0x40, 0x44, 0x4d, 0x6b, 0x3d, 0x01, - 0x00, 0x46, 0x7c, 0xbf, 0x3b, 0x01, 0x00, 0x4f, 0x48, 0x6d, 0x3c, 0x1e, - 0x40, 0x42, 0x17, 0x00, 0x3d, 0x02, 0x00, 0x43, 0xa1, 0xa1, 0xad, 0xa7, - 0x40, 0x06, 0x50, 0x00, 0x01, 0xff, 0x45, 0x29, 0x38, 0x30, 0x1e, 0x00, - 0xa3, 0x33, 0xa4, 0x1f, 0x44, 0x5d, 0x0e, 0x98, 0x01, 0x00, 0x4a, 0xf4, - 0x6b, 0x34, 0x1e, 0x00, 0x4e, 0x41, 0x42, 0xa2, 0xa7, 0x00, 0x46, 0x27, - 0x05, 0x40, 0xa7, 0xc0, 0x00, 0x54, 0xa3, 0x3e, 0x44, 0xa7, 0x40, 0x48, - 0x95, 0x2a, 0x69, 0x2c, 0x00, 0x4e, 0xa9, 0x3e, 0x42, 0xa7, 0x00, 0x48, - 0x51, 0x12, 0x32, 0x1e, 0x40, 0x44, 0x4d, 0x6b, 0xe8, 0x01, 0x00, 0x46, - 0x7c, 0xbf, 0x36, 0x01, 0x40, 0x06, 0x50, 0x00, 0x01, 0xff, 0xa3, 0x06, - 0x46, 0x27, 0x05, 0x48, 0x02, 0x40, 0x49, 0xa5, 0x04, 0x34, 0x01, 0x00, - 0x4b, 0x81, 0x4e, 0xb2, 0xa7, 0x40, 0x06, 0x50, 0x00, 0x26, 0x07, 0x6c, - 0x6e, 0x0a, 0x43, 0xf0, 0x04, 0x96, 0x01, 0x00, 0xf3, 0x6c, 0xa7, 0x40, - 0xe4, 0x79, 0xa7, 0x00, 0xe6, 0x7b, 0xa7, 0x00, 0xe7, 0x7d, 0xa7, 0x00, - 0xf2, 0x82, 0xa7, 0x00, 0xf3, 0x84, 0xa7, 0x00, 0xf4, 0x86, 0xa7, 0x40, - 0x45, 0x29, 0x38, 0xcd, 0x00, 0x00, 0x45, 0xcb, 0x22, 0x2c, 0x01, 0x00, - 0xa3, 0x59, 0xa4, 0x31, 0x45, 0x8d, 0x22, 0xcc, 0x00, 0x00, 0x4a, 0xfb, - 0xa8, 0xc8, 0x1e, 0x00, 0x4e, 0xd6, 0x22, 0x0a, 0x02, 0x00, 0x46, 0x04, - 0x6f, 0x2a, 0x01, 0x00, 0x46, 0xc2, 0xdb, 0x2e, 0x01, 0x00, 0x46, 0x27, - 0x05, 0x97, 0x01, 0x00, 0x45, 0xad, 0x22, 0x28, 0x01, 0xc0, 0x00, 0x46, - 0xf4, 0x06, 0x2c, 0x1e, 0x40, 0x48, 0x30, 0x23, 0xcf, 0x00, 0x80, 0x19, - 0xaf, 0x01, 0xff, 0x02, 0xc6, 0x00, 0x06, 0x4a, 0x88, 0x22, 0x08, 0x02, - 0x40, 0x45, 0x5c, 0x00, 0x30, 0x01, 0x00, 0x45, 0xf5, 0x06, 0xca, 0x1e, - 0x40, 0x4a, 0x5b, 0xa3, 0x2e, 0x1e, 0x40, 0x44, 0x4d, 0x6b, 0xcf, 0x01, - 0x00, 0x49, 0xa5, 0x04, 0xce, 0x00, 0x40, 0x06, 0x50, 0x00, 0x12, 0x45, - 0x4d, 0xd9, 0x75, 0x2c, 0x00, 0x43, 0xfd, 0x09, 0x26, 0xa7, 0x00, 0x44, - 0xd2, 0xef, 0xf6, 0x01, 0x40, 0x4b, 0xab, 0x97, 0x2a, 0x1e, 0x00, 0xa3, - 0x2b, 0xa4, 0x0c, 0x44, 0x5d, 0x0e, 0xaa, 0xa7, 0x00, 0x46, 0x27, 0x05, - 0x26, 0x01, 0x40, 0x48, 0x95, 0x2a, 0x67, 0x2c, 0x00, 0x48, 0x30, 0x23, - 0x26, 0x1e, 0x00, 0x03, 0xb5, 0x0b, 0x01, 0xff, 0x45, 0x5c, 0x00, 0x22, - 0x1e, 0x00, 0x45, 0xf5, 0x06, 0x24, 0x1e, 0x40, 0x44, 0x4d, 0x6b, 0x1e, - 0x02, 0x00, 0x46, 0x7c, 0xbf, 0x28, 0x1e, 0x00, 0x49, 0xa5, 0x04, 0x24, - 0x01, 0x40, 0x06, 0x50, 0x00, 0x23, 0x44, 0x5e, 0x20, 0x94, 0x01, 0x00, - 0x42, 0x22, 0x00, 0xa2, 0x01, 0x00, 0x07, 0x2e, 0x28, 0x01, 0xff, 0xe1, - 0xba, 0xa7, 0x00, 0xe9, 0xbc, 0xa7, 0x00, 0x44, 0x2a, 0x03, 0x41, 0x02, - 0x00, 0xf5, 0xbe, 0xa7, 0x40, 0x45, 0x29, 0x38, 0xf4, 0x01, 0x00, 0x45, - 0xcb, 0x22, 0x1e, 0x01, 0x00, 0xa3, 0x1e, 0x49, 0x98, 0x1d, 0x20, 0x01, - 0x00, 0x44, 0x5d, 0x0e, 0x93, 0x01, 0x00, 0x46, 0x04, 0x6f, 0x20, 0x1e, - 0x00, 0x4e, 0x41, 0x42, 0xa0, 0xa7, 0x00, 0x46, 0x27, 0x05, 0xe4, 0x01, - 0x40, 0x44, 0x4d, 0x6b, 0xe6, 0x01, 0x00, 0x46, 0x7c, 0xbf, 0x22, 0x01, - 0x00, 0x49, 0xa5, 0x04, 0x1c, 0x01, 0x40, 0x06, 0x50, 0x00, 0x01, 0xff, - 0x49, 0x98, 0x1d, 0x1e, 0x1e, 0x00, 0x44, 0x5d, 0x0e, 0x91, 0x01, 0x00, - 0x46, 0x27, 0x05, 0x98, 0xa7, 0x40, 0x06, 0x50, 0x00, 0x3b, 0x0e, 0xbc, - 0x76, 0x2b, 0x42, 0x1d, 0x01, 0x4a, 0x01, 0x00, 0x42, 0xa4, 0x02, 0xa9, - 0x01, 0x00, 0xf4, 0x6a, 0xa7, 0x80, 0x16, 0x42, 0xb3, 0x27, 0xb7, 0x01, - 0xc0, 0x00, 0x80, 0x01, 0xff, 0x48, 0x09, 0x13, 0xb8, 0x01, 0x00, 0x4a, - 0xf4, 0x95, 0xee, 0x01, 0x40, 0xe8, 0xd0, 0x00, 0x40, 0x42, 0x9e, 0x01, - 0x24, 0xa7, 0x00, 0x43, 0x68, 0x00, 0x22, 0xa7, 0x40, 0x45, 0x29, 0x38, - 0xc9, 0x00, 0x00, 0x45, 0xcb, 0x22, 0x14, 0x01, 0x00, 0xa3, 0x64, 0xa4, - 0x43, 0x45, 0x8d, 0x22, 0xc8, 0x00, 0x00, 0x4a, 0xfb, 0xa8, 0xba, 0x1e, - 0x00, 0x4e, 0xd6, 0x22, 0x06, 0x02, 0x00, 0x46, 0x04, 0x6f, 0x12, 0x01, - 0x80, 0x19, 0x46, 0xc2, 0xdb, 0x18, 0x01, 0x00, 0x46, 0x27, 0x05, 0x46, - 0x02, 0x00, 0x45, 0xad, 0x22, 0xbc, 0x1e, 0xc0, 0x00, 0x46, 0xf4, 0x06, - 0x1a, 0x1e, 0x40, 0x05, 0x19, 0x00, 0x01, 0xff, 0x45, 0x29, 0x38, 0x16, - 0x1e, 0x00, 0x45, 0x8d, 0x22, 0x14, 0x1e, 0x40, 0x48, 0x30, 0x23, 0xcb, - 0x00, 0x00, 0xaf, 0x01, 0xff, 0x02, 0xc6, 0x00, 0x06, 0x4a, 0x88, 0x22, - 0x04, 0x02, 0x40, 0x45, 0x5c, 0x00, 0x16, 0x01, 0x00, 0x45, 0xf5, 0x06, - 0xb8, 0x1e, 0x40, 0x44, 0x4d, 0x6b, 0x1a, 0x01, 0x00, 0x46, 0x7c, 0xbf, - 0x28, 0x02, 0x80, 0x32, 0x49, 0xa5, 0x04, 0xca, 0x00, 0xc0, 0x00, 0x80, - 0x01, 0xff, 0x04, 0x1a, 0x00, 0x06, 0x45, 0xf5, 0x06, 0x18, 0x1e, 0x40, - 0x45, 0x29, 0x38, 0xbe, 0x1e, 0x00, 0x49, 0x50, 0x12, 0xc6, 0x1e, 0x00, - 0x45, 0x8d, 0x22, 0xc0, 0x1e, 0x00, 0x4a, 0xfb, 0xa8, 0xc2, 0x1e, 0x00, - 0x45, 0xad, 0x22, 0xc4, 0x1e, 0x40, 0x4a, 0x6f, 0xa3, 0x1c, 0x1e, 0x40, - 0x06, 0x50, 0x00, 0x0b, 0xfa, 0xf1, 0x01, 0xc0, 0x00, 0x4b, 0xf3, 0x95, - 0xc4, 0x01, 0x40, 0xa3, 0x3d, 0x04, 0xb4, 0x0b, 0x2d, 0x44, 0x5d, 0x0e, - 0x8a, 0x01, 0x00, 0x4a, 0xf4, 0x6b, 0x0e, 0x1e, 0x00, 0xb3, 0x06, 0x46, - 0x9c, 0xdd, 0x8b, 0x01, 0x40, 0x53, 0xa7, 0x48, 0xc7, 0xa7, 0x00, 0x4d, - 0xd3, 0x83, 0xf2, 0x01, 0x80, 0x06, 0x45, 0x28, 0x05, 0x10, 0x01, 0x40, - 0x4b, 0xf3, 0x95, 0xc5, 0x01, 0x40, 0x45, 0x5c, 0x00, 0x0a, 0x1e, 0x00, - 0x45, 0xf5, 0x06, 0x0c, 0x1e, 0x40, 0x44, 0x4d, 0x6b, 0x0e, 0x01, 0x00, - 0x46, 0x7c, 0xbf, 0x10, 0x1e, 0x00, 0x4f, 0x48, 0x6d, 0x12, 0x1e, 0x40, - 0x06, 0x50, 0x00, 0x1f, 0x42, 0x49, 0x00, 0xb3, 0xa7, 0x00, 0x4f, 0x65, - 0x6e, 0xd0, 0xa7, 0x00, 0x42, 0x10, 0x00, 0x6e, 0xa7, 0x00, 0x48, 0x32, - 0xc9, 0x2c, 0xa7, 0xc0, 0x00, 0x4b, 0xfe, 0x95, 0x2e, 0xa7, 0x40, 0x45, - 0x29, 0x38, 0x06, 0x01, 0x00, 0x43, 0x16, 0x00, 0x92, 0xa7, 0x00, 0xa3, - 0x18, 0x49, 0x98, 0x1d, 0x0a, 0x01, 0x00, 0x44, 0x5d, 0x0e, 0x87, 0x01, - 0x00, 0x4c, 0xaa, 0x55, 0xc4, 0xa7, 0x00, 0x46, 0x27, 0x05, 0x3b, 0x02, - 0x40, 0x44, 0x4d, 0x6b, 0x0c, 0x01, 0x00, 0x46, 0x7c, 0xbf, 0xc7, 0x00, - 0x80, 0x06, 0x49, 0xa5, 0x04, 0x08, 0x01, 0x40, 0x4a, 0x5b, 0xa3, 0x08, - 0x1e, 0x40, 0x06, 0x50, 0x00, 0x0c, 0x43, 0x45, 0x0f, 0xb4, 0xa7, 0x00, - 0x47, 0x9c, 0xd2, 0x46, 0xa7, 0x40, 0x04, 0xb4, 0x0b, 0x1e, 0x48, 0xa2, - 0xc3, 0x96, 0xa7, 0x00, 0x44, 0x5d, 0x0e, 0x81, 0x01, 0x00, 0x4a, 0xf4, - 0x6b, 0x06, 0x1e, 0x00, 0x46, 0x27, 0x05, 0x43, 0x02, 0x00, 0x46, 0x9c, - 0xdd, 0x82, 0x01, 0x40, 0x45, 0x5c, 0x00, 0x02, 0x1e, 0x00, 0x45, 0xf5, - 0x06, 0x04, 0x1e, 0x40, 0x06, 0x50, 0x00, 0x43, 0xe1, 0x32, 0xa7, 0x00, - 0xe5, 0xc6, 0x00, 0x80, 0x29, 0x48, 0xba, 0xc3, 0x89, 0x01, 0x00, 0x44, - 0x2f, 0xe1, 0x6d, 0x2c, 0x00, 0x4a, 0x07, 0xac, 0xc2, 0xa7, 0x00, 0xef, + 0x40, 0x44, 0xc9, 0x1d, 0x57, 0x1c, 0x00, 0x42, 0x01, 0x26, 0x56, 0x1c, + 0x40, 0x43, 0xd2, 0x05, 0x55, 0x1c, 0x00, 0x43, 0xf6, 0x06, 0x54, 0x1c, + 0x40, 0x04, 0x95, 0x83, 0x06, 0x44, 0xbc, 0xde, 0xdb, 0x02, 0x40, 0x4c, + 0xc4, 0x3d, 0x9b, 0x16, 0x00, 0x07, 0xec, 0x05, 0x0c, 0x55, 0xbb, 0x3d, + 0x9c, 0x16, 0x00, 0x4a, 0x27, 0xb1, 0x80, 0x16, 0x40, 0x44, 0xe9, 0xee, + 0x90, 0x16, 0x00, 0x45, 0xb6, 0xe4, 0x81, 0x16, 0x00, 0xa3, 0x8f, 0x01, + 0x44, 0x79, 0xef, 0x87, 0x16, 0x00, 0x02, 0x89, 0x00, 0x73, 0x45, 0x5f, + 0xe6, 0x83, 0x16, 0x00, 0x44, 0x0d, 0xf0, 0x8c, 0x16, 0x00, 0xa9, 0x59, + 0x44, 0x19, 0xf1, 0x82, 0x16, 0x00, 0x44, 0x49, 0xf1, 0x8b, 0x16, 0x00, + 0xae, 0x3f, 0xaf, 0x33, 0x45, 0xcf, 0xe9, 0x9a, 0x16, 0x00, 0x44, 0x75, + 0xf2, 0x8f, 0x16, 0x00, 0xb3, 0x19, 0x45, 0x46, 0xeb, 0x88, 0x16, 0x00, + 0xb5, 0x01, 0xff, 0x43, 0x74, 0x0f, 0x86, 0x16, 0x00, 0x47, 0xef, 0xd1, + 0x97, 0x16, 0x00, 0xf2, 0x92, 0x16, 0x40, 0x43, 0x90, 0x17, 0x84, 0x16, + 0x00, 0x45, 0x78, 0xeb, 0x8e, 0x16, 0x40, 0x42, 0x4e, 0x1f, 0x91, 0x16, + 0x00, 0xf2, 0x96, 0x16, 0x40, 0x46, 0xea, 0xdb, 0x8d, 0x16, 0x00, 0x43, + 0xb5, 0x00, 0x85, 0x16, 0x40, 0x43, 0xd8, 0x09, 0x98, 0x16, 0x00, 0x46, + 0xae, 0xde, 0x94, 0x16, 0x40, 0x45, 0xc0, 0xe4, 0x95, 0x16, 0x00, 0x45, + 0xaf, 0xde, 0x93, 0x16, 0x00, 0x49, 0x09, 0xbc, 0x99, 0x16, 0x40, 0x44, + 0xa5, 0xef, 0x8a, 0x16, 0x00, 0x43, 0xe6, 0x20, 0x89, 0x16, 0x40, 0x47, + 0x15, 0x08, 0xbb, 0xce, 0x41, 0x49, 0x92, 0xb7, 0x75, 0xf7, 0x01, 0x02, + 0x18, 0x00, 0x0f, 0xb4, 0x01, 0xff, 0x4b, 0xf5, 0x98, 0xd1, 0xf6, 0x01, + 0x44, 0xe1, 0xf1, 0x19, 0xf4, 0x41, 0x4f, 0xc8, 0x6a, 0x47, 0x24, 0x00, + 0xa2, 0x2e, 0xa3, 0x20, 0xa4, 0x12, 0x44, 0xbb, 0x51, 0x42, 0x24, 0x00, + 0x44, 0xac, 0x0e, 0x40, 0x24, 0x00, 0x4d, 0x4b, 0x84, 0x43, 0x24, 0x40, + 0x43, 0xf9, 0x03, 0x48, 0x24, 0x00, 0x4f, 0x85, 0x71, 0x4a, 0x24, 0x40, + 0x44, 0x1a, 0x6f, 0x41, 0x24, 0x00, 0x56, 0xf7, 0x37, 0x49, 0x24, 0x40, + 0x4a, 0xe3, 0xa9, 0x44, 0x24, 0x00, 0x46, 0xf6, 0xde, 0x45, 0x24, 0x00, + 0x59, 0xab, 0x25, 0x46, 0x24, 0x40, 0x5a, 0x80, 0x20, 0xfc, 0xff, 0x00, + 0x06, 0x50, 0x43, 0x06, 0x51, 0xd6, 0x5d, 0xff, 0x23, 0x40, 0x0e, 0xfb, + 0x75, 0x06, 0x46, 0x96, 0x63, 0x5d, 0x2e, 0x40, 0x44, 0xa5, 0x01, 0xa7, + 0x29, 0x00, 0x42, 0x50, 0x02, 0xa6, 0x29, 0x40, 0x05, 0x69, 0x70, 0xda, + 0x24, 0xa1, 0x87, 0x1d, 0xa5, 0xa2, 0x0d, 0xa9, 0x8a, 0x0d, 0x03, 0x6b, + 0xd7, 0xed, 0x09, 0xaf, 0xc0, 0x04, 0x4d, 0x7e, 0x87, 0x10, 0xcc, 0x01, + 0xb5, 0xb6, 0x03, 0x16, 0x65, 0x38, 0x01, 0xff, 0x4a, 0xad, 0xa8, 0x4f, + 0xe1, 0x01, 0x06, 0xef, 0x06, 0xe4, 0x02, 0xac, 0x55, 0xb3, 0x21, 0x05, + 0xeb, 0x31, 0x01, 0xff, 0xe2, 0x30, 0xe1, 0x01, 0xe4, 0x36, 0xe1, 0x01, + 0xe7, 0x35, 0xe1, 0x01, 0xea, 0x32, 0xe1, 0x01, 0xed, 0x31, 0xe1, 0x01, + 0xf3, 0x34, 0xe1, 0x01, 0xf6, 0x33, 0xe1, 0x41, 0x04, 0x5b, 0x03, 0x06, + 0x52, 0xcb, 0x56, 0x3d, 0xe1, 0x41, 0x04, 0x42, 0x1b, 0x06, 0x45, 0x7c, + 0xec, 0x3c, 0xe1, 0x41, 0x46, 0xbc, 0xd9, 0x3a, 0xe1, 0x01, 0x4c, 0x57, + 0x90, 0x3b, 0xe1, 0x01, 0x48, 0x28, 0x85, 0x39, 0xe1, 0x01, 0x46, 0x1e, + 0x1d, 0x37, 0xe1, 0x01, 0x45, 0x3c, 0xeb, 0x38, 0xe1, 0x41, 0x06, 0xed, + 0x05, 0x06, 0x4c, 0xeb, 0x92, 0x4e, 0xe1, 0x41, 0xe1, 0x24, 0xe1, 0x81, + 0xf9, 0x01, 0x42, 0x37, 0x00, 0x08, 0xe1, 0x01, 0xa4, 0xe6, 0x01, 0xe5, + 0x2a, 0xe1, 0x81, 0xdc, 0x01, 0x42, 0x0c, 0x08, 0x15, 0xe1, 0x01, 0x42, + 0x24, 0x02, 0x22, 0xe1, 0x01, 0x42, 0x22, 0x00, 0x04, 0xe1, 0x81, 0xc4, + 0x01, 0xe9, 0x26, 0xe1, 0x01, 0x42, 0x1b, 0x02, 0x0e, 0xe1, 0x01, 0x42, + 0x74, 0x00, 0x09, 0xe1, 0x01, 0xad, 0xa7, 0x01, 0xae, 0x65, 0xef, 0x28, + 0xe1, 0x81, 0x5c, 0xb0, 0x50, 0x42, 0x43, 0x14, 0x17, 0xe1, 0x01, 0xb2, + 0x3e, 0x42, 0x40, 0x06, 0x0a, 0xe1, 0x01, 0xb4, 0x26, 0xf5, 0x27, 0xe1, + 0x01, 0x42, 0xf5, 0x0a, 0x12, 0xe1, 0x01, 0xf7, 0x2c, 0xe1, 0x01, 0xb8, + 0x0c, 0x42, 0xbc, 0x22, 0x18, 0xe1, 0x01, 0x42, 0x59, 0x00, 0x0b, 0xe1, + 0x41, 0xe1, 0x06, 0xe1, 0x01, 0x42, 0xbc, 0x22, 0x1b, 0xe1, 0x41, 0xe1, + 0x03, 0xe1, 0x01, 0x42, 0x40, 0x06, 0x01, 0xe1, 0x01, 0x42, 0xed, 0x26, + 0x14, 0xe1, 0x41, 0xe1, 0x16, 0xe1, 0x01, 0x42, 0x71, 0x00, 0x23, 0xe1, + 0x41, 0xe1, 0x1a, 0xe1, 0x01, 0x42, 0x74, 0x00, 0x21, 0xe1, 0x41, 0xef, + 0x29, 0xe1, 0x41, 0xe1, 0x05, 0xe1, 0x01, 0x42, 0x37, 0x00, 0x0c, 0xe1, + 0x01, 0x42, 0x1b, 0x02, 0x07, 0xe1, 0x01, 0xb0, 0x24, 0x42, 0x43, 0x14, + 0x19, 0xe1, 0x01, 0x42, 0x71, 0x00, 0x11, 0xe1, 0x01, 0xb4, 0x06, 0x42, + 0xbc, 0x22, 0x10, 0xe1, 0x41, 0xe1, 0x02, 0xe1, 0x01, 0x42, 0x40, 0x06, + 0x0d, 0xe1, 0x01, 0x42, 0xed, 0x26, 0x13, 0xe1, 0x41, 0xe1, 0x1c, 0xe1, + 0x01, 0x42, 0x74, 0x00, 0x1e, 0xe1, 0x41, 0xe1, 0x00, 0xe1, 0x01, 0x42, + 0x74, 0x00, 0x20, 0xe1, 0x41, 0xe8, 0x1f, 0xe1, 0x41, 0xe5, 0x2b, 0xe1, + 0x41, 0xe1, 0x0f, 0xe1, 0x01, 0x42, 0x74, 0x00, 0x1d, 0xe1, 0x41, 0xe1, + 0x25, 0xe1, 0x41, 0x45, 0x12, 0x0b, 0x48, 0xe1, 0x01, 0xa6, 0x2e, 0x44, + 0xcf, 0x2a, 0x49, 0xe1, 0x01, 0x43, 0x0e, 0x0b, 0x41, 0xe1, 0x01, 0xb3, + 0x14, 0xb4, 0x06, 0x44, 0x43, 0x1e, 0x40, 0xe1, 0x41, 0x44, 0x25, 0x01, + 0x43, 0xe1, 0x01, 0x42, 0x15, 0x02, 0x42, 0xe1, 0x41, 0x44, 0xc9, 0x1d, + 0x47, 0xe1, 0x01, 0x42, 0x01, 0x26, 0x46, 0xe1, 0x41, 0x43, 0xd2, 0x05, + 0x45, 0xe1, 0x01, 0x43, 0xf6, 0x06, 0x44, 0xe1, 0x41, 0x42, 0x60, 0x07, + 0x00, 0x00, 0x00, 0xad, 0x16, 0x04, 0x78, 0x4f, 0x06, 0x4a, 0x8b, 0xb1, + 0x29, 0xf5, 0x41, 0x4a, 0x99, 0xa8, 0x05, 0xd8, 0x00, 0x4e, 0x58, 0x20, + 0xe1, 0x6f, 0x41, 0x04, 0xb7, 0x05, 0x06, 0x48, 0xd7, 0xc1, 0x16, 0x21, + 0x40, 0xa5, 0x4b, 0xa6, 0x3d, 0x52, 0xc5, 0x53, 0x9a, 0x24, 0x00, 0xb3, + 0x20, 0xb4, 0x01, 0xff, 0x4c, 0x8b, 0x51, 0x91, 0x24, 0x00, 0x51, 0x95, + 0x5a, 0x94, 0x24, 0x00, 0x02, 0x15, 0x01, 0x01, 0xff, 0x4d, 0x5c, 0x85, + 0x93, 0x24, 0x00, 0x4d, 0x87, 0x86, 0x9b, 0x24, 0x40, 0x52, 0x85, 0x51, + 0x98, 0x24, 0x00, 0xa9, 0x01, 0xff, 0x42, 0x5c, 0x03, 0x23, 0x00, 0x00, + 0x4f, 0xfa, 0x74, 0x97, 0x24, 0x40, 0x50, 0xb6, 0x63, 0x96, 0x24, 0x00, + 0x51, 0x0a, 0x5d, 0x95, 0x24, 0x40, 0x51, 0xfb, 0x5a, 0x99, 0x24, 0x00, + 0x4f, 0xb4, 0x6f, 0x92, 0x24, 0x40, 0x80, 0xec, 0x04, 0x4c, 0xc9, 0x4c, + 0xa0, 0x00, 0x00, 0x02, 0x7d, 0x02, 0xd5, 0x04, 0xae, 0xbe, 0x04, 0xf2, + 0xbd, 0x22, 0x80, 0xd8, 0x01, 0x42, 0x46, 0x03, 0x43, 0xf4, 0x81, 0xca, + 0x01, 0xb4, 0x01, 0xff, 0x80, 0x3e, 0x05, 0xca, 0x92, 0x20, 0xe5, 0xc8, + 0xf5, 0xc1, 0x00, 0x03, 0xee, 0x0e, 0x0d, 0x44, 0x45, 0xef, 0xd3, 0xf4, + 0xc1, 0x00, 0x56, 0x77, 0x32, 0xd4, 0xf4, 0x41, 0xe4, 0xca, 0xf5, 0x01, + 0x42, 0xdb, 0x09, 0xc9, 0xf5, 0x41, 0xac, 0x0c, 0x60, 0x14, 0x10, 0x44, + 0xf5, 0x01, 0x6b, 0x98, 0x02, 0xb1, 0x27, 0x40, 0x5e, 0xf9, 0x12, 0x43, + 0xf5, 0x01, 0x6a, 0xc0, 0x03, 0xaf, 0x27, 0x40, 0xa1, 0x63, 0x4a, 0xa3, + 0xa8, 0x7b, 0x23, 0x00, 0x03, 0x7b, 0x00, 0x4d, 0x4c, 0x87, 0x00, 0x6f, + 0x22, 0x00, 0x4c, 0xd3, 0x8f, 0x62, 0x22, 0x00, 0x49, 0xec, 0x00, 0x6e, + 0x22, 0x00, 0x52, 0xe9, 0x53, 0xea, 0x22, 0x80, 0x2e, 0x4b, 0xdb, 0x6a, + 0x26, 0x22, 0x00, 0xb3, 0x0f, 0xb4, 0x01, 0xff, 0x44, 0x36, 0x23, 0x41, + 0x22, 0x00, 0x43, 0x70, 0x3b, 0xad, 0x22, 0x40, 0x43, 0x5b, 0x03, 0xac, + 0x00, 0x00, 0x06, 0xbc, 0x24, 0x01, 0xff, 0x54, 0x20, 0x43, 0xe2, 0x22, + 0x00, 0x57, 0xdf, 0x2f, 0xe3, 0x22, 0x40, 0x4c, 0xf2, 0x28, 0xec, 0x22, + 0x40, 0x45, 0xfb, 0x0c, 0x60, 0x22, 0x00, 0x4a, 0xd6, 0x39, 0x6d, 0x22, + 0x40, 0x03, 0x6e, 0x06, 0x12, 0x4e, 0xab, 0x6a, 0x49, 0x22, 0x00, 0x4c, + 0x4f, 0x92, 0x09, 0x22, 0x00, 0x56, 0x5d, 0x37, 0x44, 0x22, 0x40, 0x47, + 0xdc, 0x40, 0x84, 0x22, 0x00, 0x49, 0x29, 0x36, 0x85, 0x22, 0x40, 0x47, + 0x15, 0x08, 0xfc, 0xcc, 0x41, 0x4d, 0xf5, 0x81, 0xbb, 0x20, 0x00, 0x4f, + 0xec, 0x53, 0xb2, 0x22, 0x80, 0xcc, 0x02, 0x02, 0x53, 0x00, 0x01, 0xff, + 0x80, 0x06, 0x56, 0x03, 0x34, 0xea, 0xf6, 0x41, 0x05, 0xad, 0x23, 0xcb, + 0x01, 0x06, 0xe9, 0x06, 0x7a, 0x05, 0xbe, 0x1a, 0x01, 0xff, 0xa1, 0x3b, + 0x4b, 0xa5, 0x99, 0x09, 0x2b, 0x00, 0x4c, 0x2f, 0x8e, 0xd6, 0x21, 0x00, + 0x09, 0x9c, 0x01, 0x19, 0x50, 0xe6, 0x66, 0x54, 0xf8, 0x01, 0x55, 0x01, + 0x02, 0x66, 0x2b, 0x80, 0x06, 0x4b, 0x49, 0x10, 0x01, 0x2b, 0x40, 0x47, + 0xd0, 0x14, 0x76, 0x2b, 0x40, 0x43, 0x7a, 0xd0, 0x60, 0xf6, 0x01, 0x44, + 0x39, 0x51, 0x50, 0xf6, 0x01, 0x49, 0x10, 0xc1, 0x58, 0xf6, 0x41, 0x53, + 0x79, 0x40, 0x21, 0x29, 0x00, 0x44, 0xcf, 0x00, 0x96, 0x21, 0xc0, 0x00, + 0x80, 0x01, 0xff, 0x54, 0x50, 0x40, 0x27, 0x29, 0x00, 0x59, 0x9e, 0x23, + 0x32, 0x29, 0x00, 0x48, 0x57, 0xb4, 0xb8, 0xf8, 0x01, 0x03, 0x7a, 0x02, + 0x06, 0x49, 0xa8, 0x24, 0x23, 0x29, 0x40, 0x46, 0x27, 0x19, 0xf1, 0x21, + 0x00, 0x48, 0xe0, 0xc7, 0xb8, 0x21, 0x40, 0x09, 0x1e, 0x5a, 0x1c, 0x50, + 0xc6, 0x65, 0x37, 0xa8, 0x00, 0x03, 0x7c, 0x00, 0x06, 0x4a, 0xb9, 0xb0, + 0x38, 0xa8, 0x40, 0x4a, 0x75, 0xae, 0x39, 0xa8, 0x00, 0x49, 0xf4, 0xbe, + 0x36, 0xa8, 0x40, 0x04, 0x0e, 0x0b, 0x11, 0x06, 0x24, 0x01, 0x01, 0xff, + 0x48, 0x2a, 0x01, 0x32, 0xa8, 0x00, 0x4a, 0x13, 0xb1, 0x35, 0xa8, 0x40, + 0x46, 0x12, 0x0b, 0x34, 0xa8, 0x00, 0x44, 0x22, 0x00, 0x31, 0xa8, 0x00, + 0x47, 0x2a, 0x01, 0x30, 0xa8, 0x00, 0x49, 0x00, 0x26, 0x33, 0xa8, 0x40, + 0xa1, 0x3b, 0x4b, 0xa5, 0x99, 0x08, 0x2b, 0x00, 0x4c, 0x2f, 0x8e, 0xd7, + 0x21, 0x00, 0x09, 0x9c, 0x01, 0x19, 0x50, 0xe6, 0x66, 0x55, 0xf8, 0x01, + 0x55, 0x01, 0x02, 0x67, 0x2b, 0x80, 0x06, 0x4b, 0x49, 0x10, 0x00, 0x2b, + 0x40, 0x47, 0xd0, 0x14, 0x77, 0x2b, 0x40, 0x43, 0x7a, 0xd0, 0x62, 0xf6, + 0x01, 0x44, 0x39, 0x51, 0x52, 0xf6, 0x01, 0x49, 0x10, 0xc1, 0x5a, 0xf6, + 0x41, 0x53, 0x8d, 0x40, 0x22, 0x29, 0x00, 0x44, 0xcf, 0x00, 0x97, 0x21, + 0xc0, 0x00, 0x80, 0x01, 0xff, 0x54, 0x78, 0x40, 0x28, 0x29, 0x00, 0x09, + 0x95, 0x10, 0x0c, 0x48, 0x57, 0xb4, 0xb9, 0xf8, 0x01, 0x49, 0xa8, 0x24, + 0x24, 0x29, 0x40, 0x50, 0x68, 0x40, 0x31, 0x29, 0x00, 0x50, 0x7c, 0x40, + 0x2e, 0x29, 0x40, 0x4c, 0xf2, 0x28, 0xb4, 0x22, 0x40, 0x8d, 0x06, 0x47, + 0x32, 0xd1, 0xdd, 0x2a, 0x40, 0x4f, 0x7c, 0x6b, 0x11, 0x20, 0x00, 0x54, + 0x14, 0x45, 0xb1, 0xf6, 0x41, 0x50, 0x36, 0x65, 0x6f, 0x20, 0x00, 0x48, + 0x08, 0xcb, 0x8e, 0x01, 0x41, 0xa2, 0x2d, 0x45, 0xe4, 0x5a, 0xd4, 0x26, + 0x80, 0x20, 0x4d, 0x1f, 0x86, 0xf5, 0xf4, 0x01, 0x59, 0x47, 0x25, 0x1e, + 0xf5, 0x01, 0xb0, 0x06, 0x4e, 0x61, 0x7c, 0xad, 0xf6, 0x41, 0x4a, 0xb1, + 0xa9, 0xb7, 0xf6, 0x01, 0x45, 0x90, 0xe7, 0x72, 0xf5, 0x41, 0x45, 0x59, + 0x03, 0xab, 0xf6, 0x41, 0x47, 0xda, 0xd1, 0xb3, 0xf6, 0x01, 0x49, 0x88, + 0xbe, 0x83, 0x00, 0x40, 0x03, 0x13, 0x05, 0xca, 0x02, 0xa4, 0xf5, 0x01, + 0x50, 0xad, 0x00, 0xf9, 0x07, 0x00, 0x54, 0xe4, 0x42, 0xf4, 0x07, 0x00, + 0xac, 0x16, 0x07, 0x5f, 0x16, 0x06, 0x4a, 0x9f, 0xb1, 0xff, 0x07, 0x40, + 0x4a, 0xb5, 0xaa, 0xf7, 0x07, 0x00, 0x49, 0x4d, 0xbd, 0xf6, 0x07, 0x40, + 0x49, 0xd9, 0xb5, 0xfa, 0x07, 0x00, 0x06, 0xed, 0x05, 0x06, 0x52, 0x67, + 0x54, 0xf5, 0x07, 0x40, 0xe1, 0xca, 0x07, 0x00, 0x42, 0x16, 0x00, 0xd3, + 0x07, 0x00, 0x43, 0x91, 0x20, 0xd7, 0x07, 0x00, 0x42, 0xf0, 0x10, 0xd8, + 0x07, 0x80, 0xa3, 0x01, 0xe5, 0xcd, 0x07, 0x80, 0x99, 0x01, 0x42, 0x0c, + 0x08, 0xdd, 0x07, 0x00, 0x43, 0xb5, 0xaa, 0xdc, 0x07, 0x00, 0x42, 0x22, + 0x00, 0xe4, 0x07, 0x00, 0xe9, 0xcc, 0x07, 0x00, 0xaa, 0x66, 0x42, 0x1b, + 0x02, 0xde, 0x07, 0x00, 0x42, 0x74, 0x00, 0xdf, 0x07, 0x00, 0x42, 0x6c, + 0x00, 0xe1, 0x07, 0x00, 0xee, 0xd2, 0x07, 0x80, 0x37, 0xef, 0xd0, 0x07, + 0x80, 0x2e, 0x42, 0xbb, 0x09, 0xd4, 0x07, 0x00, 0xb2, 0x1c, 0x42, 0x40, + 0x06, 0xdb, 0x07, 0x00, 0x42, 0x12, 0x00, 0xd5, 0x07, 0x00, 0xf5, 0xce, + 0x07, 0x00, 0x42, 0xa9, 0x01, 0xe5, 0x07, 0x00, 0x42, 0xbc, 0x22, 0xe6, + 0x07, 0x40, 0xe1, 0xd9, 0x07, 0x00, 0x42, 0x71, 0x00, 0xda, 0x07, 0x40, + 0xef, 0xcf, 0x07, 0x40, 0xe1, 0xe3, 0x07, 0x80, 0x0d, 0x42, 0xbc, 0x22, + 0xe2, 0x07, 0xc0, 0x00, 0x47, 0xb2, 0xcd, 0xe7, 0x07, 0x40, 0x47, 0xb2, + 0xcd, 0xe0, 0x07, 0x40, 0xe1, 0xd6, 0x07, 0x00, 0x04, 0xcd, 0xf1, 0x01, + 0xff, 0x43, 0x91, 0x20, 0xe9, 0x07, 0x00, 0x42, 0x56, 0x19, 0xe8, 0x07, + 0x00, 0x42, 0x71, 0x00, 0xea, 0x07, 0x40, 0xe5, 0xcb, 0x07, 0x40, 0x48, + 0x58, 0xc6, 0xd1, 0x07, 0x40, 0x49, 0x2a, 0xb6, 0xfd, 0x07, 0x00, 0x05, + 0xf0, 0x06, 0x06, 0x4a, 0x01, 0xaf, 0xfe, 0x07, 0x40, 0x45, 0x12, 0x0b, + 0xc8, 0x07, 0x00, 0xa6, 0x2e, 0x44, 0xcf, 0x2a, 0xc9, 0x07, 0x00, 0x43, + 0x0e, 0x0b, 0xc1, 0x07, 0x00, 0xb3, 0x14, 0xb4, 0x06, 0x44, 0x43, 0x1e, + 0xc0, 0x07, 0x40, 0x44, 0x25, 0x01, 0xc3, 0x07, 0x00, 0x42, 0x15, 0x02, + 0xc2, 0x07, 0x40, 0x44, 0xc9, 0x1d, 0xc7, 0x07, 0x00, 0x42, 0x01, 0x26, + 0xc6, 0x07, 0x40, 0x43, 0xd2, 0x05, 0xc5, 0x07, 0x00, 0x43, 0xf6, 0x06, + 0xc4, 0x07, 0x40, 0x07, 0x35, 0x16, 0x06, 0x42, 0x6c, 0x00, 0xf8, 0x07, + 0x40, 0x50, 0x16, 0x62, 0xf3, 0x07, 0x00, 0x05, 0xd7, 0x02, 0x1d, 0x51, + 0x60, 0x5c, 0xf2, 0x07, 0x00, 0x06, 0x33, 0x07, 0x01, 0xff, 0x49, 0xe4, + 0x42, 0xeb, 0x07, 0x00, 0x48, 0x1d, 0xb5, 0xec, 0x07, 0x00, 0x4b, 0xc6, + 0x66, 0xed, 0x07, 0x40, 0x4f, 0xf4, 0x6b, 0xee, 0x07, 0x00, 0x49, 0xe4, + 0x42, 0xef, 0x07, 0x00, 0x48, 0x1d, 0xb5, 0xf0, 0x07, 0x00, 0x4b, 0xc6, + 0x66, 0xf1, 0x07, 0x40, 0x4e, 0x0f, 0x78, 0x03, 0xf3, 0x01, 0xae, 0x01, + 0xff, 0x54, 0xf4, 0x41, 0xd9, 0xf7, 0x01, 0x42, 0x56, 0x19, 0x77, 0xf9, + 0x41, 0x45, 0x4c, 0xe5, 0x54, 0xf4, 0x01, 0x03, 0xcf, 0x05, 0xa9, 0x0c, + 0x06, 0x2e, 0xdd, 0xd7, 0x0b, 0x45, 0x15, 0xea, 0x46, 0x26, 0x80, 0xc9, + 0x0b, 0x47, 0x37, 0xd5, 0x13, 0xf9, 0x01, 0xb3, 0xab, 0x0b, 0x02, 0x29, + 0x08, 0xa5, 0x09, 0xb7, 0x11, 0x03, 0xbf, 0x62, 0x01, 0xff, 0x44, 0xed, + 0x07, 0x85, 0x00, 0x00, 0x44, 0x79, 0xa6, 0x98, 0x23, 0x40, 0x80, 0xfa, + 0x04, 0x02, 0x5a, 0x00, 0x16, 0x05, 0xed, 0x07, 0x06, 0x46, 0xab, 0x76, + 0xf0, 0xf4, 0x41, 0x44, 0xc3, 0x00, 0x92, 0x2b, 0x00, 0x45, 0xc8, 0x00, + 0x93, 0x2b, 0x40, 0x51, 0xdc, 0x57, 0x4f, 0x14, 0x01, 0x45, 0x13, 0x05, + 0x4d, 0x14, 0x01, 0xa4, 0xf4, 0x03, 0x4a, 0x39, 0x9c, 0x4e, 0x14, 0x01, + 0x4e, 0x9b, 0x78, 0x5d, 0x14, 0x01, 0x07, 0xec, 0x05, 0xa3, 0x01, 0x42, + 0x14, 0x05, 0x49, 0x14, 0x01, 0x50, 0xc6, 0x65, 0x5b, 0x14, 0x01, 0xb3, + 0x44, 0x0b, 0x40, 0x77, 0x01, 0xff, 0xa1, 0x31, 0xe5, 0x3e, 0x14, 0x01, + 0xe9, 0x36, 0x14, 0x81, 0x24, 0xef, 0x40, 0x14, 0x01, 0xf5, 0x38, 0x14, + 0x81, 0x17, 0x08, 0x22, 0xc1, 0x01, 0xff, 0xec, 0x3c, 0x14, 0x81, 0x09, + 0xf2, 0x3a, 0x14, 0xc1, 0x00, 0xf2, 0x3b, 0x14, 0x41, 0xec, 0x3d, 0x14, + 0x41, 0xf5, 0x39, 0x14, 0x41, 0xe9, 0x37, 0x14, 0x41, 0xe1, 0x35, 0x14, + 0x01, 0xe9, 0x3f, 0x14, 0x01, 0xf5, 0x41, 0x14, 0x41, 0x4a, 0xbd, 0xa7, + 0x5e, 0x14, 0x01, 0xa9, 0x01, 0xff, 0x44, 0x81, 0xef, 0x4a, 0x14, 0x01, + 0x03, 0x5c, 0x03, 0x01, 0xff, 0xa1, 0x2f, 0x4b, 0xd7, 0x23, 0x43, 0x14, + 0x01, 0x4e, 0xe5, 0x77, 0x48, 0x14, 0x01, 0x4b, 0xe6, 0x9d, 0x60, 0x14, + 0x01, 0x45, 0x3f, 0x3f, 0x46, 0x14, 0x01, 0x4b, 0x6e, 0xa4, 0x61, 0x14, + 0x01, 0x02, 0x02, 0x00, 0x01, 0xff, 0x44, 0xe5, 0x23, 0x42, 0x14, 0x01, + 0x45, 0xec, 0x4b, 0x45, 0x14, 0x41, 0x47, 0x3d, 0x16, 0x44, 0x14, 0x01, + 0x47, 0xaf, 0x88, 0x47, 0x14, 0x41, 0xe1, 0x00, 0x14, 0x81, 0xae, 0x02, + 0xa2, 0xa1, 0x02, 0xa3, 0x94, 0x02, 0xa4, 0xfb, 0x01, 0xe5, 0x0a, 0x14, + 0x01, 0xa7, 0xea, 0x01, 0x42, 0x22, 0x00, 0x34, 0x14, 0x01, 0xe9, 0x02, + 0x14, 0x81, 0xda, 0x01, 0xaa, 0xcd, 0x01, 0xab, 0xc0, 0x01, 0xac, 0xb3, + 0x01, 0xad, 0xa6, 0x01, 0xae, 0x7b, 0xef, 0x0c, 0x14, 0x01, 0xb0, 0x6b, + 0xb2, 0x5f, 0xb3, 0x4d, 0xb4, 0x34, 0xf5, 0x04, 0x14, 0x81, 0x2b, 0xb6, + 0x0c, 0x42, 0xa9, 0x01, 0x30, 0x14, 0x01, 0x42, 0xbc, 0x22, 0x2b, 0x14, + 0x41, 0x4d, 0x6a, 0x82, 0x5f, 0x14, 0x01, 0x07, 0x23, 0xc1, 0x01, 0xff, + 0xec, 0x08, 0x14, 0x81, 0x09, 0xf2, 0x06, 0x14, 0xc1, 0x00, 0xf2, 0x07, + 0x14, 0x41, 0xec, 0x09, 0x14, 0x41, 0xf5, 0x05, 0x14, 0x41, 0xe1, 0x1f, + 0x14, 0x01, 0x42, 0x22, 0x00, 0x20, 0x14, 0x01, 0xb4, 0x01, 0xff, 0xe1, + 0x1a, 0x14, 0x01, 0x42, 0x22, 0x00, 0x1b, 0x14, 0x41, 0xe1, 0x33, 0x14, + 0x01, 0x42, 0x22, 0x00, 0x31, 0x14, 0x01, 0x42, 0x40, 0x06, 0x32, 0x14, + 0x41, 0xe1, 0x2c, 0x14, 0x01, 0x42, 0x22, 0x00, 0x2d, 0x14, 0x41, 0xe1, + 0x25, 0x14, 0x01, 0x42, 0x22, 0x00, 0x26, 0x14, 0x41, 0xe1, 0x23, 0x14, + 0x01, 0xa7, 0x19, 0x42, 0x22, 0x00, 0x24, 0x14, 0x01, 0x42, 0x2a, 0x05, + 0x1e, 0x14, 0x01, 0xb9, 0x01, 0xff, 0xe1, 0x18, 0x14, 0x01, 0x42, 0x22, + 0x00, 0x19, 0x14, 0x41, 0xe1, 0x12, 0x14, 0x01, 0x42, 0x22, 0x00, 0x13, + 0x14, 0x41, 0xe1, 0x29, 0x14, 0x01, 0x42, 0x22, 0x00, 0x2a, 0x14, 0x41, + 0xe1, 0x2e, 0x14, 0x01, 0x42, 0x22, 0x00, 0x2f, 0x14, 0x41, 0xe1, 0x0e, + 0x14, 0x01, 0x42, 0x22, 0x00, 0x0f, 0x14, 0x41, 0xe1, 0x16, 0x14, 0x01, + 0x42, 0x22, 0x00, 0x17, 0x14, 0x41, 0xe9, 0x03, 0x14, 0x41, 0xe1, 0x10, + 0x14, 0x01, 0x42, 0x22, 0x00, 0x11, 0x14, 0x41, 0xe1, 0x21, 0x14, 0x01, + 0xa4, 0x06, 0x42, 0x22, 0x00, 0x22, 0x14, 0x41, 0xe1, 0x1c, 0x14, 0x01, + 0x42, 0x22, 0x00, 0x1d, 0x14, 0x41, 0xe1, 0x14, 0x14, 0x01, 0x42, 0x22, + 0x00, 0x15, 0x14, 0x41, 0xe1, 0x27, 0x14, 0x01, 0x42, 0x22, 0x00, 0x28, + 0x14, 0x41, 0xe1, 0x01, 0x14, 0x01, 0xe9, 0x0b, 0x14, 0x01, 0xf5, 0x0d, + 0x14, 0x41, 0x44, 0x73, 0x20, 0x4b, 0x14, 0x01, 0x05, 0xf0, 0x06, 0x11, + 0x06, 0x3c, 0x01, 0x01, 0xff, 0x45, 0x13, 0x05, 0x5a, 0x14, 0x01, 0x45, + 0x16, 0x96, 0x4c, 0x14, 0x41, 0x45, 0x12, 0x0b, 0x58, 0x14, 0x01, 0xa6, + 0x2e, 0x44, 0xcf, 0x2a, 0x59, 0x14, 0x01, 0x43, 0x0e, 0x0b, 0x51, 0x14, + 0x01, 0xb3, 0x14, 0xb4, 0x06, 0x44, 0x43, 0x1e, 0x50, 0x14, 0x41, 0x44, + 0x25, 0x01, 0x53, 0x14, 0x01, 0x42, 0x15, 0x02, 0x52, 0x14, 0x41, 0x44, + 0xc9, 0x1d, 0x57, 0x14, 0x01, 0x42, 0x01, 0x26, 0x56, 0x14, 0x41, 0x43, + 0xd2, 0x05, 0x55, 0x14, 0x01, 0x43, 0xf6, 0x06, 0x54, 0x14, 0x41, 0x44, + 0xed, 0x07, 0x0a, 0x00, 0x00, 0x05, 0xaf, 0x1b, 0xfe, 0x03, 0x4b, 0x95, + 0xa2, 0xaa, 0x20, 0x00, 0x08, 0x58, 0xcb, 0x01, 0xff, 0x06, 0xef, 0x06, + 0xac, 0x03, 0x07, 0xec, 0x05, 0x74, 0x48, 0xf0, 0xca, 0xde, 0x19, 0x80, + 0x69, 0xb4, 0x54, 0x0b, 0x40, 0x77, 0x01, 0xff, 0xa1, 0x3c, 0xe5, 0xb5, + 0x19, 0x00, 0xa9, 0x2e, 0xef, 0xb7, 0x19, 0x80, 0x1c, 0xf5, 0xb3, 0x19, + 0x80, 0x06, 0x4f, 0xa0, 0x74, 0xb0, 0x19, 0x40, 0xe5, 0xb9, 0x19, 0x80, + 0x08, 0xf5, 0xb4, 0x19, 0x00, 0xf9, 0xbc, 0x19, 0x40, 0xf9, 0xbf, 0x19, + 0x40, 0xe1, 0xb8, 0x19, 0x80, 0x04, 0xf9, 0xbd, 0x19, 0x40, 0xf9, 0xbe, + 0x19, 0x40, 0xe9, 0xb2, 0x19, 0x00, 0xf9, 0xc0, 0x19, 0x40, 0xe1, 0xb1, + 0x19, 0x80, 0x08, 0xe5, 0xb6, 0x19, 0x00, 0xf9, 0xba, 0x19, 0x40, 0xf9, + 0xbb, 0x19, 0x40, 0x4d, 0x95, 0x83, 0xda, 0x19, 0x00, 0x09, 0x20, 0xbd, + 0x01, 0xff, 0xd1, 0xc8, 0x19, 0x00, 0xd2, 0xc9, 0x19, 0x40, 0xf6, 0xdf, + 0x19, 0x40, 0x06, 0xf5, 0x2c, 0x92, 0x02, 0x05, 0x48, 0x0b, 0x89, 0x01, + 0x04, 0x08, 0x05, 0x01, 0xff, 0x42, 0x16, 0x00, 0xa5, 0x19, 0x00, 0x42, + 0xf0, 0x10, 0xa4, 0x19, 0x00, 0x42, 0x0c, 0x08, 0x9d, 0x19, 0x00, 0x42, + 0x22, 0x00, 0xa3, 0x19, 0x00, 0xab, 0x60, 0x42, 0x74, 0x00, 0x9f, 0x19, + 0x00, 0x42, 0x6c, 0x00, 0x99, 0x19, 0x00, 0xae, 0x48, 0xb0, 0x3c, 0x42, + 0x43, 0x14, 0x81, 0x19, 0x00, 0xb3, 0x2a, 0xb4, 0x18, 0x42, 0xf5, 0x0a, + 0x9e, 0x19, 0x00, 0xb8, 0x06, 0x42, 0xbc, 0x22, 0x8d, 0x19, 0x40, 0xe1, + 0x86, 0x19, 0x00, 0x42, 0xf5, 0x0a, 0xa9, 0x19, 0x40, 0xe1, 0x91, 0x19, + 0x00, 0x42, 0x22, 0x00, 0x92, 0x19, 0x00, 0x42, 0x40, 0x06, 0x8b, 0x19, + 0x40, 0xe1, 0x8c, 0x19, 0x00, 0x42, 0x7d, 0x00, 0xab, 0x19, 0x40, 0xe1, + 0x97, 0x19, 0x00, 0x42, 0x22, 0x00, 0x98, 0x19, 0x40, 0xe1, 0x93, 0x19, + 0x00, 0x42, 0x24, 0x02, 0x87, 0x19, 0x40, 0xe1, 0x85, 0x19, 0x00, 0x42, + 0xf5, 0x0a, 0xa8, 0x19, 0x40, 0x42, 0x16, 0x00, 0xa2, 0x19, 0x00, 0x42, + 0xf0, 0x10, 0xa1, 0x19, 0x00, 0x42, 0x0c, 0x08, 0x9a, 0x19, 0x00, 0x42, + 0x22, 0x00, 0xa0, 0x19, 0x00, 0xab, 0x60, 0x42, 0x74, 0x00, 0x9c, 0x19, + 0x00, 0x42, 0x6c, 0x00, 0x96, 0x19, 0x00, 0xae, 0x48, 0xb0, 0x3c, 0x42, + 0x43, 0x14, 0x80, 0x19, 0x00, 0xb3, 0x2a, 0xb4, 0x18, 0x42, 0xf5, 0x0a, + 0x9b, 0x19, 0x00, 0xb8, 0x06, 0x42, 0xbc, 0x22, 0x8a, 0x19, 0x40, 0xe1, + 0x83, 0x19, 0x00, 0x42, 0xf5, 0x0a, 0xa7, 0x19, 0x40, 0xe1, 0x8e, 0x19, + 0x00, 0x42, 0x22, 0x00, 0x8f, 0x19, 0x00, 0x42, 0x40, 0x06, 0x88, 0x19, + 0x40, 0xe1, 0x89, 0x19, 0x00, 0x42, 0x7d, 0x00, 0xaa, 0x19, 0x40, 0xe1, + 0x94, 0x19, 0x00, 0x42, 0x22, 0x00, 0x95, 0x19, 0x40, 0xe1, 0x90, 0x19, + 0x00, 0x42, 0x24, 0x02, 0x84, 0x19, 0x40, 0xe1, 0x82, 0x19, 0x00, 0x42, + 0xf5, 0x0a, 0xa6, 0x19, 0x40, 0xe2, 0xc7, 0x19, 0x00, 0xe4, 0xc6, 0x19, + 0x00, 0xeb, 0xc5, 0x19, 0x00, 0xed, 0xc4, 0x19, 0x00, 0xee, 0xc3, 0x19, + 0x80, 0x04, 0xf6, 0xc1, 0x19, 0x40, 0xe7, 0xc2, 0x19, 0x40, 0x45, 0x12, + 0x0b, 0xd8, 0x19, 0x00, 0xa6, 0x2e, 0x44, 0xcf, 0x2a, 0xd9, 0x19, 0x00, + 0x43, 0x0e, 0x0b, 0xd1, 0x19, 0x00, 0xb3, 0x14, 0xb4, 0x06, 0x44, 0x43, + 0x1e, 0xd0, 0x19, 0x40, 0x44, 0x25, 0x01, 0xd3, 0x19, 0x00, 0x42, 0x15, + 0x02, 0xd2, 0x19, 0x40, 0x44, 0xc9, 0x1d, 0xd7, 0x19, 0x00, 0x42, 0x01, + 0x26, 0xd6, 0x19, 0x40, 0x43, 0xd2, 0x05, 0xd5, 0x19, 0x00, 0x43, 0xf6, + 0x06, 0xd4, 0x19, 0x40, 0x46, 0x16, 0x08, 0x11, 0xf3, 0x01, 0x49, 0x4f, + 0xc1, 0x1a, 0xf3, 0x41, 0x42, 0x33, 0x00, 0xb2, 0x26, 0x00, 0x04, 0xdd, + 0x01, 0x01, 0xff, 0x06, 0x88, 0xda, 0x06, 0x44, 0x0c, 0x08, 0x10, 0xf6, + 0x41, 0x46, 0x2e, 0xda, 0x03, 0xfa, 0x81, 0xd3, 0x01, 0x4a, 0x15, 0xaa, + 0x4a, 0xfa, 0x81, 0xc5, 0x01, 0xab, 0x73, 0x44, 0xfd, 0xf1, 0x05, 0xfa, + 0x81, 0x5b, 0x45, 0x52, 0xbe, 0x01, 0xfa, 0x81, 0x43, 0x44, 0x5d, 0xf2, + 0x02, 0xfa, 0x81, 0x2b, 0x07, 0x27, 0x0a, 0x01, 0xff, 0x46, 0x2e, 0xda, + 0x2d, 0xfa, 0x01, 0xab, 0x12, 0x44, 0xfd, 0xf1, 0x2f, 0xfa, 0x01, 0x45, + 0x52, 0xbe, 0x2b, 0xfa, 0x01, 0x44, 0x5d, 0xf2, 0x2c, 0xfa, 0x41, 0x43, + 0xa1, 0x01, 0x2a, 0xfa, 0x01, 0x45, 0x4e, 0x09, 0x2e, 0xfa, 0x41, 0x09, + 0xa3, 0x2c, 0x01, 0xff, 0x4e, 0xac, 0x2c, 0x17, 0xfa, 0x01, 0x5b, 0xbc, + 0x1d, 0x41, 0xfa, 0x41, 0x09, 0xa3, 0x2c, 0x01, 0xff, 0x4e, 0xac, 0x2c, + 0x16, 0xfa, 0x01, 0x5b, 0xbc, 0x1d, 0x40, 0xfa, 0x41, 0x09, 0xa3, 0x2c, + 0x01, 0xff, 0x4e, 0xac, 0x2c, 0x1a, 0xfa, 0x01, 0x5b, 0xbc, 0x1d, 0x44, + 0xfa, 0x41, 0x43, 0xa1, 0x01, 0x00, 0xfa, 0x81, 0x38, 0x45, 0x4e, 0x09, + 0x04, 0xfa, 0xc1, 0x00, 0x09, 0xa3, 0x2c, 0x01, 0xff, 0x52, 0xcd, 0x51, + 0x08, 0xfa, 0x01, 0x4e, 0xac, 0x2c, 0x19, 0xfa, 0x01, 0x5f, 0x6d, 0x11, + 0x1d, 0xfa, 0x01, 0xb4, 0x01, 0xff, 0x5c, 0xfa, 0x17, 0x47, 0xfa, 0x01, + 0x0b, 0xbd, 0x1d, 0x01, 0xff, 0x4f, 0xc8, 0x1d, 0x43, 0xfa, 0x01, 0x53, + 0xf2, 0x4d, 0x32, 0xfa, 0x41, 0x09, 0xa3, 0x2c, 0x01, 0xff, 0x4e, 0xac, + 0x2c, 0x15, 0xfa, 0x01, 0x5b, 0xbc, 0x1d, 0x3f, 0xfa, 0x41, 0x57, 0xa3, + 0x2c, 0x4d, 0xfa, 0x41, 0x09, 0xa3, 0x2c, 0x01, 0xff, 0x4e, 0xac, 0x2c, + 0x18, 0xfa, 0x01, 0x5b, 0xbc, 0x1d, 0x42, 0xfa, 0x41, 0x43, 0x04, 0xd7, + 0xdc, 0x2b, 0x00, 0xb4, 0x01, 0xff, 0x4a, 0x5f, 0xa6, 0xba, 0xfa, 0x01, + 0x49, 0x7d, 0xba, 0x86, 0xfa, 0x41, 0x49, 0x21, 0x2e, 0xc9, 0x2b, 0x40, + 0xa1, 0x35, 0x11, 0x51, 0x5a, 0x1b, 0x0e, 0x5f, 0x79, 0x01, 0xff, 0x03, + 0x7b, 0x00, 0x06, 0x4c, 0x87, 0x00, 0x78, 0x22, 0x40, 0x45, 0xfb, 0x0c, + 0x70, 0x22, 0x00, 0x4a, 0xd6, 0x39, 0x74, 0x22, 0x40, 0x03, 0x7b, 0x00, + 0x06, 0x49, 0xec, 0x00, 0x79, 0x22, 0x40, 0x45, 0xfb, 0x0c, 0x71, 0x22, + 0x00, 0x4a, 0xd6, 0x39, 0x75, 0x22, 0x40, 0x03, 0x6e, 0x06, 0x06, 0x62, + 0xde, 0x0c, 0x47, 0x22, 0x40, 0x54, 0xdc, 0x40, 0x88, 0x22, 0x00, 0x56, + 0x29, 0x36, 0x89, 0x22, 0x40, 0x6d, 0x38, 0x01, 0xaf, 0x22, 0x00, 0x04, + 0xd2, 0x05, 0x01, 0xff, 0x4b, 0xe6, 0x51, 0x15, 0x00, 0x00, 0x08, 0xf5, + 0x22, 0xcc, 0x01, 0x09, 0xe3, 0x25, 0xb5, 0x01, 0x08, 0xd6, 0x05, 0x01, + 0xff, 0x42, 0x5c, 0x00, 0x8e, 0xf1, 0x01, 0x4a, 0xe9, 0xa8, 0x4e, 0x27, + 0x00, 0x4f, 0x34, 0x0c, 0xb7, 0xf8, 0x01, 0x42, 0x36, 0x00, 0x8b, 0xf1, + 0x01, 0xac, 0x24, 0x42, 0xbb, 0x09, 0x8c, 0xf1, 0x01, 0x4d, 0xa6, 0x34, + 0xc4, 0xfb, 0x01, 0x50, 0xb3, 0x02, 0xb6, 0xf8, 0x01, 0x42, 0x40, 0x06, + 0x8d, 0xf1, 0x01, 0x4d, 0xc1, 0x20, 0xb5, 0xf8, 0x01, 0x42, 0xc7, 0x1a, + 0x8f, 0xf1, 0x41, 0x14, 0xdf, 0x05, 0x06, 0x4e, 0x4e, 0x1a, 0xb4, 0xf8, + 0x41, 0xe1, 0x70, 0xf1, 0x01, 0xe2, 0x71, 0xf1, 0x01, 0xe3, 0x72, 0xf1, + 0x01, 0xe4, 0x73, 0xf1, 0x01, 0xe5, 0x74, 0xf1, 0x01, 0xe6, 0x75, 0xf1, + 0x01, 0xe7, 0x76, 0xf1, 0x01, 0xe8, 0x77, 0xf1, 0x01, 0xe9, 0x78, 0xf1, + 0x01, 0xea, 0x79, 0xf1, 0x01, 0xeb, 0x7a, 0xf1, 0x01, 0xec, 0x7b, 0xf1, + 0x01, 0xed, 0x7c, 0xf1, 0x01, 0xee, 0x7d, 0xf1, 0x01, 0xef, 0x7e, 0xf1, + 0x01, 0xf0, 0x7f, 0xf1, 0x01, 0xf1, 0x80, 0xf1, 0x01, 0xf2, 0x81, 0xf1, + 0x01, 0xf3, 0x82, 0xf1, 0x01, 0xf4, 0x83, 0xf1, 0x01, 0xf5, 0x84, 0xf1, + 0x01, 0xf6, 0x85, 0xf1, 0x01, 0xf7, 0x86, 0xf1, 0x01, 0xf8, 0x87, 0xf1, + 0x01, 0xf9, 0x88, 0xf1, 0x01, 0xfa, 0x89, 0xf1, 0x41, 0x45, 0x95, 0x10, + 0xbd, 0xfb, 0x01, 0x47, 0x95, 0x44, 0xbf, 0xfb, 0x01, 0x5c, 0x58, 0x0f, + 0xbe, 0xfb, 0x41, 0x4a, 0x4d, 0xa9, 0xff, 0x24, 0x00, 0x15, 0xde, 0x05, + 0x5a, 0x07, 0xff, 0x39, 0x0c, 0x46, 0xd6, 0x05, 0xd8, 0xf7, 0x01, 0x48, + 0x01, 0x02, 0xd6, 0xf7, 0x41, 0xa5, 0x3c, 0xa6, 0x2e, 0x48, 0xc5, 0x53, + 0xf3, 0x24, 0x00, 0xb3, 0x1a, 0xb4, 0x01, 0xff, 0x47, 0x95, 0x5a, 0xed, + 0x24, 0x00, 0x02, 0x15, 0x01, 0x01, 0xff, 0x43, 0xe8, 0x2b, 0xec, 0x24, + 0x00, 0x43, 0xcc, 0x1d, 0xf4, 0x24, 0x40, 0x48, 0x85, 0x51, 0xf1, 0x24, + 0x00, 0x46, 0x01, 0x26, 0xf0, 0x24, 0x40, 0x46, 0x08, 0x18, 0xef, 0x24, + 0x00, 0x47, 0x0a, 0x5d, 0xee, 0x24, 0x40, 0x47, 0x52, 0x25, 0xf2, 0x24, + 0x00, 0x45, 0xb4, 0x6f, 0xeb, 0x24, 0x40, 0xe1, 0x50, 0xf1, 0x01, 0xe2, + 0x51, 0xf1, 0x01, 0xe3, 0x52, 0xf1, 0x01, 0xe4, 0x53, 0xf1, 0x01, 0xe5, + 0x54, 0xf1, 0x01, 0xe6, 0x55, 0xf1, 0x01, 0xe7, 0x56, 0xf1, 0x01, 0xe8, + 0x57, 0xf1, 0x01, 0xe9, 0x58, 0xf1, 0x01, 0xea, 0x59, 0xf1, 0x01, 0xeb, + 0x5a, 0xf1, 0x01, 0xec, 0x5b, 0xf1, 0x01, 0xed, 0x5c, 0xf1, 0x01, 0xee, + 0x5d, 0xf1, 0x01, 0xef, 0x5e, 0xf1, 0x01, 0xf0, 0x5f, 0xf1, 0x01, 0xf1, + 0x60, 0xf1, 0x01, 0xf2, 0x61, 0xf1, 0x01, 0xf3, 0x62, 0xf1, 0x01, 0xf4, + 0x63, 0xf1, 0x01, 0xf5, 0x64, 0xf1, 0x01, 0xf6, 0x65, 0xf1, 0x01, 0xf7, + 0x66, 0xf1, 0x01, 0xf8, 0x67, 0xf1, 0x01, 0xf9, 0x68, 0xf1, 0x01, 0xfa, + 0x69, 0xf1, 0x41, 0xa2, 0xb5, 0x05, 0x0a, 0x8d, 0xaa, 0xc6, 0x03, 0xa9, + 0xb7, 0x03, 0x48, 0x38, 0xc8, 0xdb, 0xf4, 0x01, 0x42, 0x1b, 0x00, 0xbc, + 0x22, 0x80, 0x22, 0x53, 0xc2, 0x4c, 0x2f, 0x20, 0x00, 0x07, 0xdf, 0x3a, + 0x0c, 0x4c, 0x93, 0x96, 0x22, 0xf9, 0x01, 0x4a, 0x01, 0xb4, 0xff, 0xf9, + 0x41, 0x4c, 0x3a, 0x65, 0x6e, 0x20, 0x00, 0x44, 0xdf, 0xb4, 0xde, 0xf3, + 0x41, 0x08, 0x00, 0xc7, 0x01, 0xff, 0x4a, 0xbc, 0x60, 0xe3, 0x19, 0x01, + 0x07, 0xec, 0x05, 0x67, 0x05, 0x5a, 0x03, 0x3e, 0x0b, 0x40, 0x77, 0x01, + 0xff, 0xa1, 0x2b, 0xe5, 0xda, 0x19, 0x01, 0xe9, 0xd2, 0x19, 0x81, 0x1e, + 0xef, 0xdc, 0x19, 0x01, 0x4f, 0xee, 0x71, 0xe4, 0x19, 0x01, 0xf5, 0xd4, + 0x19, 0x81, 0x0b, 0x49, 0x22, 0xc1, 0xd6, 0x19, 0xc1, 0x00, 0xf2, 0xd7, + 0x19, 0x41, 0xf5, 0xd5, 0x19, 0x41, 0xe9, 0xd3, 0x19, 0x41, 0xe1, 0xd1, + 0x19, 0x01, 0xe9, 0xdb, 0x19, 0x01, 0xf5, 0xdd, 0x19, 0x41, 0xa1, 0x17, + 0x47, 0xd8, 0xd5, 0xe2, 0x19, 0x01, 0x02, 0x02, 0x00, 0x01, 0xff, 0x44, + 0xe5, 0x23, 0xe0, 0x19, 0x01, 0x45, 0xec, 0x4b, 0xdf, 0x19, 0x41, 0x47, + 0x3d, 0x16, 0xde, 0x19, 0x01, 0x47, 0xaf, 0x88, 0xe1, 0x19, 0x41, 0xe1, + 0xa0, 0x19, 0x81, 0x80, 0x02, 0xa2, 0xf3, 0x01, 0xa3, 0xe6, 0x01, 0xa4, + 0xcd, 0x01, 0xe5, 0xaa, 0x19, 0x01, 0xa7, 0xbc, 0x01, 0x42, 0x22, 0x00, + 0xce, 0x19, 0x01, 0xe9, 0xa2, 0x19, 0x81, 0xac, 0x01, 0xaa, 0x9f, 0x01, + 0xab, 0x92, 0x01, 0xac, 0x85, 0x01, 0x42, 0x6c, 0x00, 0xc6, 0x19, 0x01, + 0xae, 0x67, 0xef, 0xac, 0x19, 0x01, 0xb0, 0x57, 0xb2, 0x4b, 0xb3, 0x39, + 0xb4, 0x20, 0xf5, 0xa4, 0x19, 0x81, 0x17, 0xb6, 0x06, 0x42, 0xbc, 0x22, + 0xc7, 0x19, 0x41, 0xe1, 0xca, 0x19, 0x01, 0x48, 0x23, 0xc1, 0xa6, 0x19, + 0xc1, 0x00, 0xf2, 0xa7, 0x19, 0x41, 0xf5, 0xa5, 0x19, 0x41, 0xe1, 0xbd, + 0x19, 0x01, 0x42, 0x22, 0x00, 0xbe, 0x19, 0x01, 0xb4, 0x01, 0xff, 0xe1, + 0xb8, 0x19, 0x01, 0x42, 0x22, 0x00, 0xb9, 0x19, 0x41, 0xe1, 0xcd, 0x19, + 0x01, 0x42, 0x22, 0x00, 0xcb, 0x19, 0x01, 0x42, 0x40, 0x06, 0xcc, 0x19, + 0x41, 0xe1, 0xc8, 0x19, 0x01, 0x42, 0x71, 0x00, 0xd0, 0x19, 0x41, 0xe1, + 0xc2, 0x19, 0x01, 0x42, 0x22, 0x00, 0xc3, 0x19, 0x41, 0xe1, 0xc1, 0x19, + 0x01, 0x42, 0x24, 0x02, 0xb2, 0x19, 0x01, 0x42, 0x2a, 0x05, 0xbc, 0x19, + 0x01, 0x42, 0xbc, 0x22, 0xb7, 0x19, 0x41, 0xe1, 0xc9, 0x19, 0x01, 0x42, + 0x74, 0x00, 0xcf, 0x19, 0x41, 0xe1, 0xae, 0x19, 0x01, 0x42, 0x22, 0x00, + 0xaf, 0x19, 0x41, 0xe1, 0xb5, 0x19, 0x01, 0x42, 0x22, 0x00, 0xb6, 0x19, + 0x41, 0xe9, 0xa3, 0x19, 0x41, 0xe1, 0xb0, 0x19, 0x01, 0x42, 0x22, 0x00, + 0xb1, 0x19, 0x41, 0xe1, 0xbf, 0x19, 0x01, 0xa4, 0x06, 0x42, 0x22, 0x00, + 0xc0, 0x19, 0x41, 0xe1, 0xba, 0x19, 0x01, 0x42, 0x22, 0x00, 0xbb, 0x19, + 0x41, 0xe1, 0xb3, 0x19, 0x01, 0x42, 0x22, 0x00, 0xb4, 0x19, 0x41, 0xe1, + 0xc4, 0x19, 0x01, 0x42, 0x22, 0x00, 0xc5, 0x19, 0x41, 0xe1, 0xa1, 0x19, + 0x01, 0xe9, 0xab, 0x19, 0x01, 0xf5, 0xad, 0x19, 0x41, 0x48, 0x80, 0xc7, + 0x85, 0xf4, 0x01, 0x47, 0x85, 0x84, 0xa6, 0x20, 0x40, 0x06, 0xef, 0x06, + 0xa3, 0x01, 0x07, 0xec, 0x05, 0x23, 0x05, 0x5a, 0x03, 0x01, 0xff, 0x44, + 0x89, 0xf0, 0xee, 0xe4, 0x01, 0x45, 0xda, 0xe8, 0xec, 0xe4, 0x01, 0x44, + 0xc9, 0xf1, 0xeb, 0xe4, 0x01, 0x45, 0x2d, 0xeb, 0xef, 0xe4, 0x01, 0x45, + 0x6e, 0xeb, 0xed, 0xe4, 0x41, 0xe1, 0xd5, 0xe4, 0x81, 0x65, 0xe5, 0xe4, + 0xe4, 0x81, 0x43, 0xe9, 0xda, 0xe4, 0x81, 0x2c, 0xef, 0xd0, 0xe4, 0x81, + 0x15, 0xf5, 0xdf, 0xe4, 0xc1, 0x00, 0xe3, 0xe0, 0xe4, 0x01, 0xe4, 0xe1, + 0xe4, 0x01, 0xeb, 0xe2, 0xe4, 0x01, 0xf2, 0xe3, 0xe4, 0x41, 0xec, 0xd2, + 0xe4, 0x01, 0x42, 0x1d, 0x01, 0xd4, 0xe4, 0x01, 0xf0, 0xd1, 0xe4, 0x01, + 0xf9, 0xd3, 0xe4, 0x41, 0x42, 0x7f, 0x02, 0xdc, 0xe4, 0x01, 0xe8, 0xde, + 0xe4, 0x01, 0xf3, 0xdb, 0xe4, 0x01, 0xf4, 0xdd, 0xe4, 0x41, 0xe7, 0xe6, + 0xe4, 0x01, 0x42, 0x60, 0x07, 0xea, 0xe4, 0x01, 0xed, 0xe7, 0xe4, 0x01, + 0xee, 0xe8, 0xe4, 0x81, 0x06, 0x42, 0xee, 0x05, 0xe9, 0xe4, 0x41, 0xee, + 0xe5, 0xe4, 0x41, 0xe2, 0xd7, 0xe4, 0x01, 0xe8, 0xd9, 0xe4, 0x01, 0xea, + 0xd6, 0xe4, 0x01, 0x42, 0x7d, 0x1a, 0xd8, 0xe4, 0x41, 0x45, 0x12, 0x0b, + 0xf8, 0xe4, 0x01, 0xa6, 0x2e, 0x44, 0xcf, 0x2a, 0xf9, 0xe4, 0x01, 0x43, + 0x0e, 0x0b, 0xf1, 0xe4, 0x01, 0xb3, 0x14, 0xb4, 0x06, 0x44, 0x43, 0x1e, + 0xf0, 0xe4, 0x41, 0x44, 0x25, 0x01, 0xf3, 0xe4, 0x01, 0x42, 0x15, 0x02, + 0xf2, 0xe4, 0x41, 0x44, 0xc9, 0x1d, 0xf7, 0xe4, 0x01, 0x42, 0x01, 0x26, + 0xf6, 0xe4, 0x41, 0x43, 0xd2, 0x05, 0xf5, 0xe4, 0x01, 0x43, 0xf6, 0x06, + 0xf4, 0xe4, 0x41, 0x07, 0x25, 0xcf, 0x06, 0x42, 0x74, 0x00, 0x07, 0x22, + 0x40, 0x55, 0xf5, 0x39, 0xab, 0x08, 0x01, 0x07, 0xec, 0x05, 0x3c, 0x07, + 0xff, 0x39, 0x01, 0xff, 0xa6, 0x29, 0x43, 0x0e, 0x0b, 0xa7, 0x08, 0x81, + 0x1c, 0xb4, 0x01, 0xff, 0x42, 0x92, 0x01, 0xad, 0x08, 0x01, 0x44, 0x25, + 0x01, 0xa9, 0x08, 0x01, 0xb7, 0x01, 0xff, 0x44, 0xcb, 0x1d, 0xae, 0x08, + 0x01, 0xef, 0xa8, 0x08, 0x41, 0x48, 0x70, 0x11, 0xaf, 0x08, 0x41, 0x43, + 0xd2, 0x05, 0xac, 0x08, 0x01, 0x43, 0xf6, 0x06, 0xaa, 0x08, 0x41, 0xa1, + 0xb9, 0x01, 0x44, 0x41, 0xef, 0x83, 0x08, 0x01, 0x46, 0x23, 0x4a, 0x85, + 0x08, 0x01, 0x06, 0xf5, 0x2c, 0x73, 0x45, 0xdd, 0xaa, 0x84, 0x08, 0x01, + 0x42, 0xb0, 0x01, 0x87, 0x08, 0x81, 0x60, 0x44, 0xcd, 0xf0, 0x8f, 0x08, + 0x01, 0x46, 0x94, 0xdd, 0x91, 0x08, 0x01, 0x43, 0xb4, 0x05, 0x93, 0x08, + 0x01, 0x43, 0xdc, 0x22, 0x95, 0x08, 0x01, 0x42, 0x6f, 0x02, 0x98, 0x08, + 0x01, 0x44, 0x4c, 0xc8, 0x9a, 0x08, 0x01, 0x44, 0x76, 0x66, 0x9b, 0x08, + 0x01, 0xb3, 0x20, 0xb4, 0x12, 0x43, 0x8a, 0x8a, 0x88, 0x08, 0x01, 0x44, + 0xa1, 0x52, 0x8d, 0x08, 0x01, 0x45, 0x9b, 0x52, 0x89, 0x08, 0x41, 0x42, + 0xb7, 0x2d, 0x9e, 0x08, 0x01, 0x43, 0xda, 0x25, 0x8b, 0x08, 0x41, 0xa1, + 0x06, 0x43, 0x7a, 0x16, 0x9d, 0x08, 0x41, 0x43, 0xad, 0xea, 0x99, 0x08, + 0x01, 0x44, 0x49, 0xe4, 0x96, 0x08, 0x41, 0x42, 0x53, 0x00, 0x8a, 0x08, + 0x41, 0x45, 0xb2, 0xad, 0x80, 0x08, 0x01, 0x44, 0x41, 0xef, 0x82, 0x08, + 0x01, 0x42, 0xb0, 0x01, 0x86, 0x08, 0x01, 0x44, 0xcd, 0xf0, 0x8e, 0x08, + 0x01, 0x46, 0x94, 0xdd, 0x90, 0x08, 0x01, 0x43, 0xb4, 0x05, 0x92, 0x08, + 0x01, 0x43, 0xdc, 0x22, 0x94, 0x08, 0x01, 0x44, 0x73, 0x4a, 0x9c, 0x08, + 0x01, 0x44, 0xa1, 0x52, 0x8c, 0x08, 0x41, 0x44, 0x18, 0x3d, 0x81, 0x08, + 0x01, 0x43, 0x7e, 0x1a, 0x97, 0x08, 0x41, 0xa3, 0x58, 0x4c, 0xa9, 0x0a, + 0xc2, 0x22, 0x00, 0x08, 0x2b, 0x22, 0x42, 0x47, 0x8e, 0x0d, 0x0f, 0x22, + 0x00, 0xb3, 0x24, 0x4e, 0x17, 0x7d, 0x09, 0x2a, 0x00, 0x45, 0x4d, 0x17, + 0xc3, 0x22, 0x80, 0x06, 0x52, 0x95, 0x56, 0xff, 0x2a, 0x40, 0x0f, 0x60, + 0x69, 0x01, 0xff, 0x43, 0x23, 0x0a, 0x03, 0x2a, 0x00, 0x44, 0x58, 0x28, + 0x04, 0x2a, 0x40, 0x06, 0xbc, 0x24, 0x06, 0x48, 0x6f, 0x70, 0x11, 0x22, + 0x40, 0x55, 0x17, 0x3c, 0x05, 0x2a, 0x00, 0x4e, 0xf7, 0x7d, 0x06, 0x2a, + 0x40, 0x43, 0x1a, 0x00, 0xc0, 0x22, 0x00, 0x42, 0x0c, 0x00, 0xc1, 0x22, + 0x40, 0x07, 0xf6, 0x22, 0x06, 0x48, 0x0e, 0x2d, 0x10, 0x22, 0x40, 0x4c, + 0x17, 0x8e, 0x00, 0x2a, 0x00, 0x4d, 0x71, 0x87, 0x01, 0x2a, 0x00, 0x4e, + 0x17, 0x7d, 0x02, 0x2a, 0x40, 0xa1, 0xdb, 0x65, 0xa5, 0x9a, 0x48, 0xa9, + 0xc9, 0x3f, 0xaf, 0xa9, 0x20, 0x03, 0x45, 0x1e, 0x97, 0x1e, 0xb5, 0xf6, + 0x0c, 0x07, 0xd0, 0xd7, 0x01, 0xff, 0x0f, 0x3d, 0x33, 0xb1, 0x0c, 0x06, + 0xef, 0x06, 0xea, 0x0b, 0x18, 0x6e, 0x28, 0xa3, 0x0b, 0xac, 0xa2, 0x05, + 0x10, 0x78, 0x0c, 0x91, 0x05, 0x0a, 0x65, 0xaf, 0xca, 0x04, 0xb3, 0x8d, + 0x02, 0xb4, 0xb3, 0x01, 0x0b, 0x40, 0x77, 0x01, 0xff, 0xa1, 0x97, 0x01, + 0xe5, 0x31, 0x10, 0x80, 0x8b, 0x01, 0x4c, 0x43, 0x8f, 0x71, 0x10, 0x00, + 0xe9, 0x2d, 0x10, 0x80, 0x7c, 0x06, 0x52, 0xdd, 0x68, 0x04, 0x60, 0xc8, + 0x5a, 0xb3, 0x36, 0x47, 0x2c, 0xd6, 0x2b, 0x10, 0x00, 0xf5, 0x2f, 0x10, + 0x80, 0x27, 0x08, 0x22, 0xc1, 0x11, 0x12, 0xd9, 0x31, 0x01, 0xff, 0x42, + 0x97, 0x02, 0x67, 0x10, 0x00, 0x42, 0xd6, 0x13, 0x68, 0x10, 0x40, 0xec, + 0x58, 0x10, 0x80, 0x09, 0xf2, 0x56, 0x10, 0xc0, 0x00, 0xf2, 0x57, 0x10, + 0x40, 0xec, 0x59, 0x10, 0x40, 0xf5, 0x30, 0x10, 0x40, 0x4c, 0x2b, 0x8f, + 0x62, 0x10, 0x00, 0x04, 0x90, 0x00, 0x01, 0xff, 0x42, 0x80, 0x12, 0x83, + 0x10, 0x00, 0xe5, 0x84, 0x10, 0x80, 0x06, 0x47, 0x24, 0xd1, 0x86, 0x10, + 0x40, 0x46, 0x5b, 0x00, 0x85, 0x10, 0x40, 0x42, 0x52, 0x28, 0x33, 0x10, + 0x00, 0xef, 0x34, 0x10, 0x40, 0x42, 0x27, 0x01, 0x74, 0x10, 0x00, 0x42, + 0x60, 0x51, 0x72, 0x10, 0x00, 0xf5, 0x73, 0x10, 0x40, 0xe9, 0x2e, 0x10, + 0x40, 0x46, 0x5b, 0x00, 0x35, 0x10, 0x40, 0xe1, 0x2c, 0x10, 0x00, 0xe9, + 0x32, 0x10, 0xc0, 0x00, 0x45, 0x5a, 0xeb, 0x9c, 0x10, 0xc0, 0x00, 0xe9, + 0x9d, 0x10, 0x40, 0x0f, 0x6e, 0x6a, 0x11, 0x14, 0x9c, 0x44, 0x01, 0xff, + 0x45, 0xeb, 0xe6, 0x63, 0x10, 0x00, 0x46, 0x58, 0xdd, 0x64, 0x10, 0x40, + 0x45, 0x12, 0x0b, 0xf8, 0xa9, 0x00, 0xa6, 0x2e, 0x44, 0xcf, 0x2a, 0xf9, + 0xa9, 0x00, 0x43, 0x0e, 0x0b, 0xf1, 0xa9, 0x00, 0xb3, 0x14, 0xb4, 0x06, + 0x44, 0x43, 0x1e, 0xf0, 0xa9, 0x40, 0x44, 0x25, 0x01, 0xf3, 0xa9, 0x00, + 0x42, 0x15, 0x02, 0xf2, 0xa9, 0x40, 0x44, 0xc9, 0x1d, 0xf7, 0xa9, 0x00, + 0x42, 0x01, 0x26, 0xf6, 0xa9, 0x40, 0x43, 0xd2, 0x05, 0xf5, 0xa9, 0x00, + 0x43, 0xf6, 0x06, 0xf4, 0xa9, 0x40, 0x0a, 0x19, 0xab, 0xf3, 0x01, 0x04, + 0x5b, 0x03, 0x47, 0x06, 0x60, 0x16, 0x01, 0xff, 0xa1, 0x23, 0x49, 0x53, + 0xb7, 0x4d, 0x10, 0x00, 0x48, 0x60, 0xc6, 0x4f, 0x10, 0x00, 0x48, 0xd8, + 0xc7, 0x4c, 0x10, 0x00, 0x05, 0x3f, 0x55, 0x01, 0xff, 0x4b, 0xad, 0x00, + 0x9f, 0x10, 0x00, 0x43, 0x0e, 0x0b, 0x9e, 0x10, 0x40, 0x4d, 0x06, 0x83, + 0x4e, 0x10, 0x00, 0x05, 0x12, 0xd2, 0x01, 0xff, 0x4b, 0xad, 0x00, 0x77, + 0xaa, 0x00, 0x43, 0x0e, 0x0b, 0x78, 0xaa, 0x00, 0x43, 0x1f, 0x0a, 0x79, + 0xaa, 0x40, 0xa1, 0x99, 0x01, 0x49, 0x9f, 0x12, 0x37, 0x10, 0x00, 0x0c, + 0x9f, 0x90, 0x86, 0x01, 0x4e, 0x97, 0x79, 0x4a, 0x10, 0x00, 0x4e, 0xf5, + 0x7a, 0x7b, 0xaa, 0x00, 0x54, 0xa0, 0x45, 0x8f, 0x10, 0x00, 0xb3, 0x35, + 0x0f, 0x92, 0x73, 0x29, 0x02, 0x02, 0x00, 0x19, 0x17, 0xd9, 0x31, 0x01, + 0xff, 0xd1, 0x69, 0x10, 0x00, 0xd2, 0x6a, 0x10, 0x00, 0xd3, 0x6b, 0x10, + 0x00, 0xd4, 0x6c, 0x10, 0x00, 0xd5, 0x6d, 0x10, 0x40, 0x44, 0xe5, 0x23, + 0x39, 0x10, 0x00, 0x45, 0xec, 0x4b, 0x38, 0x10, 0x40, 0xd2, 0x7c, 0xaa, + 0x00, 0xd5, 0x7d, 0xaa, 0x40, 0x46, 0xaf, 0x0a, 0x4b, 0x10, 0x00, 0x04, + 0x90, 0x00, 0x01, 0xff, 0x08, 0xc8, 0xc4, 0x1b, 0x43, 0xa7, 0x52, 0xe5, + 0xa9, 0x00, 0x05, 0xeb, 0x31, 0x01, 0xff, 0xd2, 0x87, 0x10, 0x00, 0xd3, + 0x88, 0x10, 0x00, 0xd5, 0x89, 0x10, 0x00, 0xd6, 0x8a, 0x10, 0x40, 0x4d, + 0x91, 0x82, 0x8d, 0x10, 0x00, 0x05, 0xeb, 0x31, 0x01, 0xff, 0xd2, 0x8b, + 0x10, 0x00, 0xd3, 0x8c, 0x10, 0x40, 0xd1, 0x9a, 0x10, 0x00, 0xd3, 0x9b, + 0x10, 0x40, 0x47, 0x3d, 0x16, 0x36, 0x10, 0x00, 0x43, 0x88, 0x2d, 0x3a, + 0x10, 0x40, 0x45, 0x12, 0x0b, 0x98, 0x10, 0x00, 0xa6, 0x2e, 0x44, 0xcf, + 0x2a, 0x99, 0x10, 0x00, 0x43, 0x0e, 0x0b, 0x91, 0x10, 0x00, 0xb3, 0x14, + 0xb4, 0x06, 0x44, 0x43, 0x1e, 0x90, 0x10, 0x40, 0x44, 0x25, 0x01, 0x93, + 0x10, 0x00, 0x42, 0x15, 0x02, 0x92, 0x10, 0x40, 0x44, 0xc9, 0x1d, 0x97, + 0x10, 0x00, 0x42, 0x01, 0x26, 0x96, 0x10, 0x40, 0x43, 0xd2, 0x05, 0x95, + 0x10, 0x00, 0x43, 0xf6, 0x06, 0x94, 0x10, 0x40, 0x45, 0x12, 0x0b, 0xd8, + 0x16, 0x01, 0xa6, 0x2e, 0x44, 0xcf, 0x2a, 0xd9, 0x16, 0x01, 0x43, 0x0e, + 0x0b, 0xd1, 0x16, 0x01, 0xb3, 0x14, 0xb4, 0x06, 0x44, 0x43, 0x1e, 0xd0, + 0x16, 0x41, 0x44, 0x25, 0x01, 0xd3, 0x16, 0x01, 0x42, 0x15, 0x02, 0xd2, + 0x16, 0x41, 0x44, 0xc9, 0x1d, 0xd7, 0x16, 0x01, 0x42, 0x01, 0x26, 0xd6, + 0x16, 0x41, 0x43, 0xd2, 0x05, 0xd5, 0x16, 0x01, 0x43, 0xf6, 0x06, 0xd4, + 0x16, 0x41, 0x54, 0xd4, 0x43, 0x70, 0xaa, 0x00, 0x52, 0x3f, 0x55, 0xe6, + 0xa9, 0x40, 0x06, 0xed, 0x05, 0x17, 0x0f, 0x0d, 0x71, 0x01, 0xff, 0x42, + 0xe2, 0x0a, 0x76, 0xaa, 0x00, 0x43, 0x79, 0xf4, 0x74, 0xaa, 0x00, 0x42, + 0x76, 0xd2, 0x75, 0xaa, 0x40, 0xe1, 0x21, 0x10, 0x80, 0xd3, 0x05, 0xa2, + 0xc6, 0x05, 0xa3, 0xb9, 0x05, 0xa4, 0xa0, 0x05, 0xe5, 0x27, 0x10, 0x80, + 0x83, 0x05, 0xa7, 0xf0, 0x04, 0x42, 0x22, 0x00, 0x1f, 0x10, 0x00, 0xe9, + 0x23, 0x10, 0x80, 0xe0, 0x04, 0xaa, 0xd3, 0x04, 0xab, 0xc4, 0x03, 0xac, + 0xb7, 0x03, 0xad, 0x8f, 0x03, 0xae, 0xf0, 0x02, 0xef, 0x29, 0x10, 0x00, + 0xb0, 0xdf, 0x02, 0xb2, 0xd2, 0x02, 0xb3, 0xb2, 0x01, 0xb4, 0x3c, 0xf5, + 0x25, 0x10, 0x80, 0x33, 0x08, 0x22, 0xc1, 0x1d, 0xb7, 0x06, 0x42, 0xbc, + 0x22, 0x1a, 0x10, 0x40, 0xe1, 0x1d, 0x10, 0x00, 0x11, 0xda, 0x31, 0x01, + 0xff, 0x43, 0x51, 0x02, 0x66, 0x10, 0x00, 0x43, 0x8f, 0x00, 0x65, 0x10, + 0x40, 0xec, 0x54, 0x10, 0x80, 0x09, 0xf2, 0x52, 0x10, 0xc0, 0x00, 0xf2, + 0x53, 0x10, 0x40, 0xec, 0x55, 0x10, 0x40, 0xf5, 0x26, 0x10, 0x40, 0xe1, + 0x10, 0x10, 0x80, 0x13, 0x42, 0x22, 0x00, 0x11, 0x10, 0x00, 0xb4, 0x01, + 0xff, 0xe1, 0x0b, 0x10, 0x00, 0x42, 0x22, 0x00, 0x0c, 0x10, 0x40, 0x08, + 0x6f, 0x6a, 0x01, 0xff, 0xa2, 0x4b, 0xa4, 0x33, 0x42, 0x0c, 0x08, 0xe8, + 0xa9, 0x00, 0xa7, 0x21, 0xaa, 0x15, 0x43, 0x2c, 0x0e, 0xfa, 0xa9, 0x00, + 0xae, 0x01, 0xff, 0x42, 0x2a, 0x05, 0xef, 0xa9, 0x00, 0x42, 0xbc, 0x22, + 0xe7, 0xa9, 0x40, 0xe1, 0xeb, 0xa9, 0x00, 0x42, 0x22, 0x00, 0xec, 0xa9, + 0x40, 0xe1, 0xe9, 0xa9, 0x00, 0x42, 0x22, 0x00, 0xea, 0xa9, 0x40, 0xe1, + 0xfb, 0xa9, 0x00, 0xa4, 0x06, 0x42, 0x22, 0x00, 0xfc, 0xa9, 0x40, 0xe1, + 0xed, 0xa9, 0x00, 0x42, 0x22, 0x00, 0xee, 0xa9, 0x40, 0xe1, 0xfd, 0xa9, + 0x00, 0x42, 0x22, 0x00, 0xfe, 0xa9, 0x40, 0xe1, 0x1e, 0x10, 0x00, 0x4d, + 0x47, 0x83, 0x61, 0x10, 0x00, 0xa8, 0x06, 0x42, 0x40, 0x06, 0x51, 0x10, + 0x40, 0xe1, 0x50, 0x10, 0x80, 0x11, 0x0b, 0xfd, 0xa4, 0x01, 0xff, 0x43, + 0x91, 0x20, 0x7e, 0xaa, 0x00, 0x43, 0xa4, 0x02, 0x7f, 0xaa, 0x40, 0x02, + 0x92, 0x00, 0x01, 0xff, 0xe1, 0x22, 0x10, 0x00, 0xa2, 0x60, 0xa3, 0x54, + 0x42, 0xf0, 0x10, 0x7b, 0x10, 0x00, 0x42, 0x0c, 0x08, 0x7e, 0x10, 0x00, + 0xa7, 0x3c, 0x42, 0x22, 0x00, 0x81, 0x10, 0x00, 0x43, 0x9c, 0x45, 0xe2, + 0xa9, 0x00, 0xab, 0x24, 0xae, 0x12, 0x43, 0xff, 0x1c, 0x7d, 0x10, 0x00, + 0x43, 0x8f, 0x00, 0x80, 0x10, 0x00, 0x42, 0x59, 0x00, 0x79, 0x10, 0x40, + 0xe1, 0x7c, 0x10, 0x00, 0x42, 0x2a, 0x05, 0xe3, 0xa9, 0x00, 0x42, 0xbc, + 0x22, 0x7a, 0x10, 0x40, 0xe1, 0x75, 0x10, 0x00, 0x42, 0x22, 0x00, 0x76, + 0x10, 0x40, 0xe1, 0x77, 0x10, 0x00, 0x42, 0x22, 0x00, 0xe0, 0xa9, 0x40, + 0xe1, 0x78, 0x10, 0x00, 0x42, 0x22, 0x00, 0xe1, 0xa9, 0x40, 0xe1, 0x7f, + 0x10, 0x00, 0x42, 0x22, 0x00, 0xe4, 0xa9, 0x40, 0xe1, 0x1b, 0x10, 0x00, + 0x4f, 0x55, 0x74, 0x8e, 0x10, 0x40, 0xe1, 0x15, 0x10, 0x00, 0x42, 0x22, + 0x00, 0x16, 0x10, 0x40, 0xe1, 0x14, 0x10, 0x00, 0x42, 0x24, 0x02, 0x04, + 0x10, 0x00, 0xae, 0x06, 0x42, 0xbc, 0x22, 0x09, 0x10, 0x40, 0xe1, 0x0f, + 0x10, 0x00, 0x42, 0xbc, 0x22, 0x0a, 0x10, 0x40, 0xe1, 0x19, 0x10, 0x00, + 0x03, 0xb6, 0x00, 0x01, 0xff, 0x02, 0x65, 0x27, 0x10, 0xe5, 0x28, 0x10, + 0x00, 0x43, 0x9c, 0x45, 0x5b, 0x10, 0x00, 0x43, 0x39, 0x48, 0x5a, 0x10, + 0x40, 0xe1, 0x5c, 0x10, 0x00, 0xe5, 0x5d, 0x10, 0x40, 0xe1, 0x1c, 0x10, + 0x00, 0x42, 0x74, 0x00, 0x20, 0x10, 0x40, 0xe1, 0x00, 0x10, 0x00, 0x42, + 0x22, 0x00, 0x01, 0x10, 0xc0, 0x00, 0x04, 0xd7, 0x43, 0x01, 0xff, 0xa3, + 0x70, 0xa4, 0x5c, 0x42, 0x0c, 0x08, 0x6f, 0xaa, 0x00, 0x42, 0x24, 0x02, + 0x60, 0xaa, 0x00, 0xa8, 0x44, 0xaa, 0x38, 0x43, 0x2c, 0x0e, 0x6e, 0xaa, + 0x00, 0xae, 0x26, 0x42, 0x71, 0x00, 0x73, 0xaa, 0x00, 0x42, 0x40, 0x06, + 0x6c, 0xaa, 0x00, 0x02, 0xee, 0x05, 0x0c, 0x42, 0xed, 0x26, 0x71, 0xaa, + 0x00, 0x42, 0x59, 0x00, 0x72, 0xaa, 0x40, 0xe1, 0x66, 0xaa, 0x00, 0x42, + 0x22, 0x00, 0x67, 0xaa, 0x40, 0xe1, 0x6b, 0xaa, 0x00, 0x42, 0xbc, 0x22, + 0x65, 0xaa, 0x40, 0xe1, 0x63, 0xaa, 0x00, 0x42, 0x22, 0x00, 0x64, 0xaa, + 0x40, 0xe1, 0x6d, 0xaa, 0x00, 0x42, 0x22, 0x00, 0x6e, 0xaa, 0x40, 0xa4, + 0x06, 0x42, 0x22, 0x00, 0x6a, 0xaa, 0x40, 0xe1, 0x68, 0xaa, 0x00, 0x42, + 0x22, 0x00, 0x69, 0xaa, 0x40, 0xe1, 0x61, 0xaa, 0x00, 0x42, 0x22, 0x00, + 0x62, 0xaa, 0x40, 0xe1, 0x07, 0x10, 0x00, 0x42, 0x22, 0x00, 0x08, 0x10, + 0x40, 0xe9, 0x24, 0x10, 0x40, 0xe1, 0x02, 0x10, 0x00, 0x42, 0x22, 0x00, + 0x03, 0x10, 0x00, 0x47, 0x81, 0xc6, 0x3f, 0x10, 0x40, 0x11, 0x6f, 0x28, + 0x01, 0xff, 0x44, 0xf5, 0xef, 0x70, 0x10, 0x00, 0x43, 0x01, 0x46, 0x6e, + 0x10, 0x00, 0x43, 0x51, 0xf3, 0x6f, 0x10, 0x40, 0xe1, 0x12, 0x10, 0x00, + 0xa4, 0x06, 0x42, 0x22, 0x00, 0x13, 0x10, 0x40, 0xe1, 0x0d, 0x10, 0x00, + 0x42, 0x22, 0x00, 0x0e, 0x10, 0x40, 0xe1, 0x05, 0x10, 0x00, 0x42, 0x22, + 0x00, 0x06, 0x10, 0x40, 0xe1, 0x17, 0x10, 0x00, 0x42, 0x22, 0x00, 0x18, + 0x10, 0x40, 0x47, 0x12, 0xd2, 0x7a, 0xaa, 0x00, 0xf5, 0x2a, 0x10, 0x40, + 0x45, 0x12, 0x0b, 0xe2, 0x16, 0x01, 0xa6, 0x2e, 0x44, 0xcf, 0x2a, 0xe3, + 0x16, 0x01, 0x43, 0x0e, 0x0b, 0xdb, 0x16, 0x01, 0xb3, 0x14, 0xb4, 0x06, + 0x44, 0x43, 0x1e, 0xda, 0x16, 0x41, 0x44, 0x25, 0x01, 0xdd, 0x16, 0x01, + 0x42, 0x15, 0x02, 0xdc, 0x16, 0x41, 0x44, 0xc9, 0x1d, 0xe1, 0x16, 0x01, + 0x42, 0x01, 0x26, 0xe0, 0x16, 0x41, 0x43, 0xd2, 0x05, 0xdf, 0x16, 0x01, + 0x43, 0xf6, 0x06, 0xde, 0x16, 0x41, 0x45, 0x12, 0x0b, 0x48, 0x10, 0x00, + 0xa6, 0x2e, 0x44, 0xcf, 0x2a, 0x49, 0x10, 0x00, 0x43, 0x0e, 0x0b, 0x41, + 0x10, 0x00, 0xb3, 0x14, 0xb4, 0x06, 0x44, 0x43, 0x1e, 0x40, 0x10, 0x40, + 0x44, 0x25, 0x01, 0x43, 0x10, 0x00, 0x42, 0x15, 0x02, 0x42, 0x10, 0x40, + 0x44, 0xc9, 0x1d, 0x47, 0x10, 0x00, 0x42, 0x01, 0x26, 0x46, 0x10, 0x40, + 0x43, 0xd2, 0x05, 0x45, 0x10, 0x00, 0x43, 0xf6, 0x06, 0x44, 0x10, 0x40, + 0xad, 0x06, 0x4e, 0x0d, 0x7c, 0x82, 0x10, 0x40, 0x06, 0x4d, 0x33, 0x17, + 0x0a, 0xcf, 0xae, 0x01, 0xff, 0x42, 0x74, 0x00, 0x60, 0x10, 0x00, 0x42, + 0x6c, 0x00, 0x5f, 0x10, 0x00, 0x42, 0x2a, 0x05, 0x5e, 0x10, 0x40, 0x42, + 0x22, 0x00, 0x3e, 0x10, 0x00, 0x42, 0x71, 0x00, 0x3c, 0x10, 0x00, 0x42, + 0xa9, 0x01, 0x3d, 0x10, 0x00, 0x42, 0xbc, 0x22, 0x3b, 0x10, 0x40, 0x03, + 0x97, 0x21, 0x8d, 0x11, 0x02, 0xb8, 0x04, 0xb6, 0x0e, 0xb3, 0x01, 0xff, + 0x45, 0x22, 0xe7, 0x44, 0xf3, 0x81, 0xa5, 0x0e, 0x02, 0x36, 0x00, 0x01, + 0xff, 0x80, 0x8b, 0x0e, 0x03, 0x13, 0x00, 0x01, 0xff, 0x48, 0x13, 0xa9, + 0xb9, 0xf3, 0x81, 0xf8, 0x0d, 0x44, 0x09, 0x28, 0xb5, 0xf3, 0x01, 0xb3, + 0x01, 0xff, 0x44, 0x69, 0xef, 0xbc, 0xf3, 0x01, 0x06, 0x60, 0x16, 0x01, + 0xff, 0x0b, 0x37, 0x99, 0xd3, 0x0d, 0xa2, 0x86, 0x0d, 0xa3, 0xe0, 0x0a, + 0xa4, 0x8b, 0x0a, 0xa5, 0xd5, 0x09, 0xa6, 0xd2, 0x08, 0xa7, 0x83, 0x08, + 0x02, 0x22, 0x00, 0xe2, 0x07, 0x4d, 0x58, 0x84, 0x98, 0xd1, 0x01, 0xab, + 0x81, 0x07, 0xac, 0xe2, 0x06, 0xad, 0x9c, 0x06, 0xae, 0xf7, 0x05, 0xaf, + 0x98, 0x05, 0xb0, 0xd5, 0x04, 0x02, 0x7c, 0x00, 0x9e, 0x04, 0xb2, 0xe9, + 0x03, 0xb3, 0xa4, 0x02, 0xb4, 0x30, 0xb6, 0x22, 0xb7, 0x0a, 0x4a, 0x2c, + 0x64, 0x43, 0xd1, 0x01, 0xfa, 0x8e, 0xd1, 0x41, 0x05, 0x80, 0xb3, 0x06, + 0x4f, 0x00, 0x6f, 0xb3, 0xd1, 0x41, 0x44, 0x09, 0x28, 0x5d, 0xd1, 0x01, + 0x44, 0x74, 0x33, 0x3b, 0xd1, 0x41, 0x44, 0x7e, 0x07, 0xd3, 0xd1, 0x01, + 0x4c, 0x03, 0x93, 0x57, 0xd1, 0x41, 0x06, 0x42, 0xdb, 0xb3, 0x01, 0xa8, + 0x9a, 0x01, 0x47, 0x03, 0xd4, 0xd8, 0xd1, 0x81, 0x8c, 0x01, 0xf2, 0x96, + 0xd1, 0x81, 0x1c, 0x43, 0x5d, 0x01, 0x97, 0xd1, 0x81, 0x06, 0x4d, 0xbe, + 0x8a, 0x17, 0xd1, 0x41, 0x80, 0x01, 0xff, 0x45, 0x48, 0x0e, 0x99, 0xd1, + 0x01, 0x42, 0x50, 0x02, 0x9a, 0xd1, 0x41, 0x06, 0x03, 0x02, 0x01, 0xff, + 0x0a, 0xc0, 0x38, 0x11, 0x15, 0xba, 0x38, 0x01, 0xff, 0x45, 0x0c, 0x03, + 0x55, 0xd1, 0x01, 0x45, 0xad, 0x02, 0x54, 0xd1, 0x41, 0x05, 0x9e, 0x14, + 0x41, 0x05, 0xc3, 0x00, 0x31, 0x06, 0xc8, 0x00, 0x21, 0x03, 0x7d, 0x15, + 0x01, 0xff, 0x45, 0x0c, 0x03, 0x49, 0xd1, 0x01, 0x06, 0xc8, 0x00, 0x06, + 0x45, 0xad, 0x02, 0x48, 0xd1, 0x41, 0x45, 0x0c, 0x03, 0x51, 0xd1, 0x01, + 0x45, 0xad, 0x02, 0x50, 0xd1, 0x41, 0x45, 0x0c, 0x03, 0x4d, 0xd1, 0x01, + 0x45, 0xad, 0x02, 0x4c, 0xd1, 0x41, 0x45, 0x0c, 0x03, 0x4b, 0xd1, 0x01, + 0x45, 0xad, 0x02, 0x4a, 0xd1, 0x41, 0x45, 0x0c, 0x03, 0x4f, 0xd1, 0x01, + 0x45, 0xad, 0x02, 0x4e, 0xd1, 0x41, 0x4a, 0x0f, 0xa6, 0xdc, 0xd1, 0x41, + 0x0c, 0x6f, 0x90, 0x06, 0x4e, 0x8f, 0x7b, 0x18, 0xd1, 0x41, 0x44, 0x09, + 0x28, 0x62, 0xd1, 0x01, 0x44, 0x74, 0x33, 0x40, 0xd1, 0x41, 0x1b, 0xf1, + 0x1b, 0x18, 0x19, 0xf3, 0x1b, 0x01, 0xff, 0x4a, 0x97, 0x6e, 0xc8, 0xd1, + 0x01, 0x48, 0x99, 0x6e, 0xc7, 0xd1, 0xc1, 0x00, 0x4d, 0x6b, 0x7f, 0xc9, + 0xd1, 0x41, 0x4a, 0x97, 0x6e, 0xcb, 0xd1, 0x81, 0x06, 0x48, 0x99, 0x6e, + 0xca, 0xd1, 0x41, 0x0c, 0x6b, 0x7f, 0x01, 0xff, 0xd1, 0xcc, 0xd1, 0x01, + 0xd2, 0xcd, 0xd1, 0x01, 0xd3, 0xce, 0xd1, 0x41, 0x48, 0x80, 0xc4, 0xd6, + 0xd1, 0x81, 0xb4, 0x01, 0xa5, 0x7a, 0xa8, 0x62, 0xa9, 0x25, 0x43, 0x0c, + 0x00, 0xe9, 0xd1, 0x01, 0x06, 0xbc, 0x24, 0x06, 0x45, 0xaf, 0xeb, 0x8d, + 0xd1, 0x41, 0xe2, 0xd2, 0xd1, 0x01, 0x09, 0xc1, 0x38, 0x01, 0xff, 0x45, + 0x0c, 0x03, 0x47, 0xd1, 0x01, 0x45, 0xad, 0x02, 0x46, 0xd1, 0x41, 0x4c, + 0xa3, 0x92, 0x00, 0xd1, 0x01, 0xb8, 0x01, 0xff, 0x8d, 0x24, 0xb4, 0x01, + 0xff, 0x06, 0x04, 0x26, 0x11, 0x09, 0x85, 0xc1, 0x01, 0xff, 0x44, 0x09, + 0x28, 0x63, 0xd1, 0x01, 0x44, 0x74, 0x33, 0x41, 0xd1, 0x41, 0x44, 0x09, + 0x28, 0x61, 0xd1, 0x01, 0x44, 0x74, 0x33, 0x3f, 0xd1, 0x41, 0x4a, 0x93, + 0x7b, 0x1b, 0xd1, 0x01, 0x50, 0x96, 0x67, 0x1c, 0xd1, 0x41, 0x04, 0xf7, + 0xb0, 0x06, 0x4b, 0xf3, 0xa0, 0x05, 0xd1, 0x41, 0x44, 0xa5, 0x01, 0x31, + 0xd1, 0x01, 0x42, 0x50, 0x02, 0x30, 0xd1, 0x41, 0x43, 0x68, 0x21, 0x0b, + 0xd1, 0x01, 0x02, 0x7d, 0x02, 0x01, 0xff, 0x07, 0xb1, 0xcf, 0x17, 0x07, + 0x4d, 0xd3, 0x01, 0xff, 0x45, 0x0c, 0x03, 0xbe, 0xd1, 0x01, 0x44, 0x74, + 0x33, 0xc6, 0xd1, 0x01, 0x45, 0xad, 0x02, 0xbd, 0xd1, 0x41, 0x45, 0x0c, + 0x03, 0xba, 0xd1, 0x01, 0x44, 0x74, 0x33, 0xc4, 0xd1, 0x01, 0x45, 0xad, + 0x02, 0xb9, 0xd1, 0x41, 0x47, 0x2d, 0xcd, 0xdb, 0xd1, 0x41, 0xa5, 0x0f, + 0xa9, 0x01, 0xff, 0x4f, 0xa7, 0x6d, 0x07, 0xd1, 0x01, 0x49, 0x3f, 0xbc, + 0x8c, 0xd1, 0x41, 0x04, 0xf3, 0x6a, 0x06, 0x53, 0xc3, 0x4e, 0x03, 0xd1, + 0x41, 0x45, 0x22, 0x0a, 0x08, 0xd1, 0x01, 0x0a, 0x9d, 0xa9, 0x01, 0xff, + 0xd1, 0x0d, 0xd1, 0x01, 0xd2, 0x0e, 0xd1, 0x01, 0xd3, 0x0f, 0xd1, 0x41, + 0x06, 0x06, 0x03, 0x11, 0x0b, 0x8e, 0x9d, 0x01, 0xff, 0x44, 0xf9, 0xee, + 0x38, 0xd1, 0x01, 0x45, 0xac, 0xe4, 0x39, 0xd1, 0x41, 0x44, 0x09, 0x28, + 0x5f, 0xd1, 0x01, 0x44, 0x74, 0x33, 0x3d, 0xd1, 0x01, 0x05, 0x3b, 0x2d, + 0x01, 0xff, 0x44, 0x30, 0x3b, 0x33, 0xd1, 0x01, 0x45, 0xf5, 0xb0, 0x32, + 0xd1, 0x41, 0x53, 0x3b, 0x48, 0x56, 0xd1, 0x01, 0xa5, 0x22, 0x44, 0x6d, + 0xf0, 0x8f, 0xd1, 0x01, 0x4c, 0x8f, 0x91, 0x44, 0xd1, 0x01, 0xaf, 0x01, + 0xff, 0x45, 0x74, 0xe5, 0xd4, 0xd1, 0x01, 0x47, 0x76, 0xd5, 0xd9, 0xd1, + 0xc1, 0x00, 0x47, 0x2d, 0xcd, 0xda, 0xd1, 0x41, 0x04, 0x7b, 0xaf, 0x06, + 0x4c, 0xfb, 0x94, 0xdd, 0xd1, 0x41, 0x44, 0xb9, 0x00, 0xae, 0xd1, 0x01, + 0x47, 0xd4, 0xd6, 0xaf, 0xd1, 0x41, 0x02, 0xcd, 0x05, 0x42, 0x0f, 0xcf, + 0x72, 0x11, 0x06, 0x3a, 0xc2, 0x01, 0xff, 0x44, 0xf9, 0xee, 0x36, 0xd1, + 0x01, 0x45, 0xac, 0xe4, 0x37, 0xd1, 0x41, 0xd1, 0x9b, 0xd1, 0x81, 0x20, + 0xd2, 0x9c, 0xd1, 0x01, 0xd3, 0x9d, 0xd1, 0x01, 0xd4, 0x9e, 0xd1, 0x01, + 0xd5, 0x9f, 0xd1, 0x01, 0xd6, 0xa0, 0xd1, 0x01, 0xd7, 0xa1, 0xd1, 0x01, + 0xd8, 0xa2, 0xd1, 0x01, 0xd9, 0xa3, 0xd1, 0x41, 0xd0, 0xa4, 0xd1, 0x01, + 0xd1, 0xa5, 0xd1, 0x41, 0x17, 0x75, 0x2c, 0x06, 0x4b, 0x92, 0x7b, 0x16, + 0xd1, 0x41, 0x44, 0x09, 0x28, 0x64, 0xd1, 0x01, 0x44, 0x74, 0x33, 0x42, + 0xd1, 0x41, 0x07, 0x68, 0x92, 0x12, 0x4a, 0x93, 0xa9, 0xa7, 0xd1, 0x01, + 0x4d, 0x30, 0x87, 0x58, 0xd1, 0x01, 0x4c, 0x57, 0x96, 0x59, 0xd1, 0x41, + 0x44, 0xa5, 0x01, 0x2f, 0xd1, 0x01, 0x42, 0x50, 0x02, 0x2e, 0xd1, 0x41, + 0x45, 0x48, 0xcf, 0xb6, 0xd1, 0x01, 0x44, 0xad, 0xef, 0x90, 0xd1, 0x01, + 0x45, 0x4e, 0xd3, 0xbb, 0xd1, 0x81, 0x21, 0x0d, 0x16, 0x87, 0x11, 0x04, + 0xb7, 0x04, 0x01, 0xff, 0x45, 0xe1, 0x65, 0x3a, 0xd1, 0x01, 0x50, 0xd6, + 0x65, 0x29, 0xd1, 0x41, 0x45, 0x0c, 0x03, 0x53, 0xd1, 0x01, 0x45, 0xad, + 0x02, 0x52, 0xd1, 0x41, 0x80, 0x01, 0xff, 0x45, 0x0c, 0x03, 0xbc, 0xd1, + 0x01, 0x44, 0x74, 0x33, 0xc5, 0xd1, 0x41, 0x4f, 0x99, 0x6c, 0x06, 0xd1, + 0x01, 0x44, 0xa2, 0x49, 0xb7, 0xd1, 0xc1, 0x00, 0x80, 0x01, 0xff, 0x4f, + 0x97, 0x6e, 0xc2, 0xd1, 0x01, 0x4d, 0x99, 0x6e, 0xc1, 0xd1, 0x41, 0x06, + 0xc8, 0xdc, 0x06, 0x44, 0xac, 0x1c, 0xea, 0xd1, 0x41, 0x46, 0x52, 0xda, + 0xde, 0xd1, 0x01, 0xa5, 0x30, 0xa6, 0x22, 0x49, 0x5d, 0xb9, 0xe3, 0xd1, + 0x01, 0x12, 0xaf, 0x54, 0x0c, 0x4f, 0x57, 0x72, 0xe1, 0xd1, 0x01, 0x4a, + 0x7f, 0xb3, 0xe2, 0xd1, 0x41, 0x44, 0xa5, 0x01, 0xe4, 0xd1, 0x01, 0x42, + 0x50, 0x02, 0xe5, 0xd1, 0x41, 0x49, 0x59, 0xba, 0xe0, 0xd1, 0x01, 0x48, + 0x04, 0xb9, 0xe8, 0xd1, 0x41, 0x10, 0xc6, 0x63, 0x06, 0x4b, 0xf6, 0x9f, + 0xdf, 0xd1, 0x41, 0x44, 0xa5, 0x01, 0xe6, 0xd1, 0x01, 0x42, 0x50, 0x02, + 0xe7, 0xd1, 0x41, 0x03, 0x24, 0x00, 0x06, 0x49, 0x6e, 0xc0, 0xa6, 0xd1, + 0x41, 0x44, 0x09, 0x28, 0x5e, 0xd1, 0x01, 0x4a, 0x79, 0xaf, 0xb0, 0xd1, + 0x01, 0x44, 0x74, 0x33, 0x3c, 0xd1, 0x41, 0x45, 0x09, 0xbf, 0x1e, 0xd1, + 0x81, 0x34, 0x09, 0x79, 0xbb, 0x24, 0xb2, 0x01, 0xff, 0x09, 0x91, 0xb5, + 0x11, 0x08, 0x80, 0xc5, 0x01, 0xff, 0x46, 0x52, 0xda, 0xd0, 0xd1, 0x01, + 0x46, 0xa8, 0xdb, 0xd1, 0xd1, 0x41, 0x48, 0xc8, 0xc8, 0x95, 0xd1, 0x01, + 0x45, 0x48, 0x0e, 0x94, 0xd1, 0x41, 0x44, 0xa5, 0x01, 0xb2, 0xd1, 0x01, + 0x42, 0x50, 0x02, 0xb1, 0xd1, 0x41, 0x08, 0x38, 0xc2, 0x01, 0xff, 0x44, + 0xf9, 0xee, 0x1f, 0xd1, 0x01, 0x45, 0xac, 0xe4, 0x20, 0xd1, 0x41, 0x45, + 0x09, 0xbf, 0x22, 0xd1, 0x81, 0x68, 0x46, 0x60, 0xdb, 0x10, 0xd1, 0x81, + 0x5b, 0xa9, 0x3a, 0x04, 0x04, 0xb9, 0x2a, 0xaf, 0x11, 0x04, 0xe5, 0xf2, + 0x01, 0xff, 0x45, 0x0c, 0x03, 0xc0, 0xd1, 0x01, 0x45, 0xad, 0x02, 0xbf, + 0xd1, 0x41, 0x43, 0x2d, 0x01, 0x91, 0xd1, 0x01, 0x03, 0x80, 0xc0, 0x01, + 0xff, 0x4a, 0x93, 0x7b, 0x19, 0xd1, 0x01, 0x50, 0x96, 0x67, 0x1d, 0xd1, + 0x41, 0x44, 0xa5, 0x01, 0x2d, 0xd1, 0x01, 0x42, 0x50, 0x02, 0x2c, 0xd1, + 0x41, 0xae, 0x06, 0x4d, 0xee, 0x89, 0x1a, 0xd1, 0x41, 0x4a, 0xcc, 0x4e, + 0x02, 0xd1, 0x01, 0x0e, 0x01, 0x78, 0x01, 0xff, 0xd1, 0x6a, 0xd1, 0x01, + 0xd2, 0x6b, 0xd1, 0x01, 0xd3, 0x6c, 0xd1, 0x41, 0x46, 0x1f, 0x07, 0x11, + 0xd1, 0x41, 0x08, 0x38, 0xc2, 0x01, 0xff, 0x44, 0xf9, 0xee, 0x23, 0xd1, + 0x01, 0x45, 0xac, 0xe4, 0x24, 0xd1, 0x41, 0x06, 0x13, 0x0b, 0x23, 0x03, + 0x1b, 0x00, 0x01, 0xff, 0x44, 0x99, 0xbd, 0x74, 0xd1, 0x01, 0x49, 0xe1, + 0xbc, 0xa8, 0xd1, 0x01, 0x46, 0x97, 0x35, 0x7a, 0xd1, 0x01, 0x44, 0xb1, + 0xf2, 0x78, 0xd1, 0x01, 0x43, 0xd8, 0x25, 0x76, 0xd1, 0x41, 0x44, 0x09, + 0x28, 0x60, 0xd1, 0x01, 0x44, 0x74, 0x33, 0x3e, 0xd1, 0x41, 0xa1, 0x31, + 0xa5, 0x23, 0x06, 0x3c, 0x01, 0x0d, 0x09, 0x06, 0xbf, 0x01, 0xff, 0xd1, + 0x25, 0xd1, 0x01, 0xd2, 0x26, 0xd1, 0x41, 0x47, 0xcf, 0x4e, 0x01, 0xd1, + 0x01, 0x44, 0x30, 0x3b, 0x2b, 0xd1, 0x01, 0x45, 0xf5, 0xb0, 0x2a, 0xd1, + 0x41, 0x49, 0x77, 0xb7, 0x93, 0xd1, 0x01, 0x4a, 0xf1, 0xaa, 0xa9, 0xd1, + 0x41, 0x45, 0x9b, 0xe1, 0x0a, 0xd1, 0x01, 0x47, 0x97, 0xd2, 0x09, 0xd1, + 0x01, 0x42, 0xf2, 0x1b, 0xb4, 0xd1, 0x81, 0x06, 0x4c, 0x2b, 0x95, 0x04, + 0xd1, 0x41, 0x44, 0xbd, 0x2d, 0xb5, 0xd1, 0x41, 0x45, 0x09, 0xbf, 0x21, + 0xd1, 0x01, 0x46, 0x80, 0xd9, 0x13, 0xd1, 0x01, 0x50, 0x26, 0x64, 0x45, + 0xd1, 0x01, 0xac, 0xef, 0x01, 0xaf, 0x14, 0xb2, 0x06, 0x47, 0x0c, 0xd7, + 0x35, 0xd1, 0x41, 0x47, 0x79, 0xb7, 0x92, 0xd1, 0x01, 0x43, 0x7c, 0xf4, + 0xcf, 0xd1, 0x41, 0x42, 0xf0, 0x10, 0x0c, 0xd1, 0x01, 0xad, 0x01, 0xff, + 0x07, 0x35, 0x16, 0x06, 0x48, 0x60, 0xc8, 0x34, 0xd1, 0x41, 0xa1, 0xb0, + 0x01, 0x44, 0xb4, 0x9a, 0x89, 0xd1, 0x01, 0x02, 0x3b, 0x01, 0x93, 0x01, + 0x02, 0xd5, 0x04, 0x71, 0x48, 0xa8, 0xc6, 0xac, 0xd1, 0x01, 0x45, 0x3f, + 0xe8, 0x82, 0xd1, 0x01, 0x47, 0x23, 0xd3, 0x7f, 0xd1, 0x81, 0x58, 0x43, + 0x76, 0x06, 0x86, 0xd1, 0x01, 0xb3, 0x27, 0xb4, 0x06, 0x46, 0xf4, 0xe0, + 0xab, 0xd1, 0x41, 0x45, 0x30, 0x7d, 0x7d, 0xd1, 0x01, 0xb2, 0x01, 0xff, + 0x06, 0x09, 0x78, 0x06, 0x4b, 0x99, 0x9d, 0x8b, 0xd1, 0x41, 0xd1, 0x67, + 0xd1, 0x01, 0xd2, 0x68, 0xd1, 0x01, 0xd3, 0x69, 0xd1, 0x41, 0x44, 0x7e, + 0xa9, 0x88, 0xd1, 0x01, 0x4d, 0x46, 0x86, 0xad, 0xd1, 0x01, 0x50, 0x06, + 0x66, 0x66, 0xd1, 0x01, 0xb4, 0x01, 0xff, 0x05, 0x31, 0xb5, 0x06, 0x42, + 0xb5, 0x05, 0x65, 0xd1, 0x41, 0x46, 0x22, 0xdd, 0x7e, 0xd1, 0x01, 0xef, + 0x7c, 0xd1, 0x41, 0x49, 0x2e, 0xb5, 0x80, 0xd1, 0x41, 0x03, 0xa7, 0x57, + 0x06, 0x42, 0xba, 0x04, 0x87, 0xd1, 0x41, 0xd1, 0x6e, 0xd1, 0x01, 0xd2, + 0x6f, 0xd1, 0x01, 0xd3, 0x70, 0xd1, 0x01, 0xd4, 0x71, 0xd1, 0x01, 0xd5, + 0x72, 0xd1, 0x41, 0x42, 0x52, 0x00, 0x85, 0xd1, 0x01, 0x4b, 0x16, 0xa4, + 0x8a, 0xd1, 0x01, 0x46, 0x42, 0xe1, 0xaa, 0xd1, 0x41, 0x45, 0xdb, 0x04, + 0x7b, 0xd1, 0x81, 0x06, 0x4f, 0x37, 0x74, 0x6d, 0xd1, 0x41, 0x49, 0x2e, + 0xb5, 0x81, 0xd1, 0x41, 0xa9, 0x11, 0x0f, 0x73, 0x74, 0x01, 0xff, 0x45, + 0x0c, 0x03, 0x5b, 0xd1, 0x01, 0x45, 0xad, 0x02, 0x5a, 0xd1, 0x41, 0x45, + 0x5d, 0xe8, 0xd7, 0xd1, 0x01, 0x43, 0xc4, 0x32, 0xd5, 0xd1, 0x41, 0x05, + 0x9e, 0x3f, 0x2e, 0xb2, 0x01, 0xff, 0x02, 0x0e, 0x03, 0x1d, 0xa5, 0x01, + 0xff, 0x48, 0xc8, 0xc3, 0x12, 0xd1, 0x01, 0xb6, 0x01, 0xff, 0xe5, 0x5c, + 0xd1, 0x01, 0x42, 0x5f, 0x03, 0xb8, 0xd1, 0xc1, 0x00, 0x45, 0xe1, 0x65, + 0xc3, 0xd1, 0x41, 0xe5, 0x14, 0xd1, 0x01, 0x43, 0x67, 0x09, 0x15, 0xd1, + 0x41, 0x44, 0x99, 0xbd, 0x73, 0xd1, 0x01, 0x46, 0x97, 0x35, 0x79, 0xd1, + 0x01, 0x44, 0xb1, 0xf2, 0x77, 0xd1, 0x01, 0x43, 0xd8, 0x25, 0x75, 0xd1, + 0x41, 0x44, 0xa5, 0x01, 0x84, 0xd1, 0x01, 0x42, 0x50, 0x02, 0x83, 0xd1, + 0x41, 0x4b, 0x0e, 0x98, 0x98, 0xf3, 0x41, 0x49, 0x03, 0xb9, 0x6d, 0x26, + 0x00, 0x4c, 0x67, 0x92, 0x6e, 0x26, 0x00, 0x4a, 0xf5, 0xb0, 0x6f, 0x26, + 0x40, 0x46, 0x24, 0x69, 0x64, 0xcc, 0x41, 0x04, 0x10, 0x9c, 0x69, 0xa9, + 0x01, 0xff, 0x43, 0xef, 0x6b, 0xb8, 0x22, 0x00, 0x02, 0xbb, 0x04, 0x16, + 0x43, 0x9c, 0x12, 0x8c, 0x22, 0xc0, 0x00, 0x80, 0x01, 0xff, 0x4e, 0xfc, + 0x24, 0x8d, 0x22, 0x00, 0x45, 0x4d, 0x17, 0x8e, 0x22, 0x40, 0x4f, 0x7b, + 0x6c, 0xb6, 0xf3, 0x01, 0x08, 0xbd, 0x04, 0x01, 0xff, 0x44, 0x5a, 0x03, + 0xd7, 0x00, 0x80, 0x04, 0xf8, 0x15, 0x27, 0x40, 0x80, 0x01, 0xff, 0x03, + 0xe1, 0x05, 0x11, 0x05, 0x51, 0x00, 0x01, 0xff, 0x49, 0x3a, 0x1e, 0x30, + 0x2a, 0x00, 0x48, 0xe3, 0x59, 0x31, 0x2a, 0x40, 0x4d, 0x0f, 0x82, 0x37, + 0x2a, 0x00, 0x50, 0x86, 0x64, 0x34, 0x2a, 0x00, 0x51, 0xa3, 0x5d, 0x35, + 0x2a, 0x00, 0x48, 0x01, 0x02, 0x3b, 0x2a, 0x40, 0x07, 0xec, 0x05, 0x06, + 0x4c, 0xf8, 0x26, 0xa9, 0x12, 0x41, 0xe1, 0x80, 0x12, 0x01, 0xa2, 0xca, + 0x01, 0xa3, 0xbd, 0x01, 0xa4, 0x9e, 0x01, 0xe5, 0x83, 0x12, 0x01, 0xa7, + 0x8d, 0x01, 0x42, 0x22, 0x00, 0xa6, 0x12, 0x01, 0xe9, 0x81, 0x12, 0x01, + 0xaa, 0x77, 0xab, 0x6b, 0x42, 0x74, 0x00, 0xa3, 0x12, 0x01, 0x42, 0x6c, + 0x00, 0xa0, 0x12, 0x01, 0xae, 0x4d, 0xb0, 0x41, 0xb2, 0x2f, 0x42, 0x40, + 0x06, 0xa5, 0x12, 0x01, 0xb4, 0x10, 0xf5, 0x82, 0x12, 0x01, 0x42, 0xf5, + 0x0a, 0xa4, 0x12, 0x01, 0x42, 0xbc, 0x22, 0xa1, 0x12, 0x41, 0xe1, 0x96, + 0x12, 0x01, 0x42, 0x22, 0x00, 0x97, 0x12, 0x01, 0xb4, 0x01, 0xff, 0xe1, + 0x90, 0x12, 0x01, 0x42, 0x22, 0x00, 0x91, 0x12, 0x41, 0xe1, 0xa2, 0x12, + 0x01, 0x42, 0x22, 0x00, 0xa8, 0x12, 0x01, 0x42, 0x71, 0x00, 0xa7, 0x12, + 0x41, 0xe1, 0x9b, 0x12, 0x01, 0x42, 0x22, 0x00, 0x9c, 0x12, 0x41, 0xe1, + 0x9a, 0x12, 0x01, 0x42, 0x2a, 0x05, 0x95, 0x12, 0x01, 0x42, 0xbc, 0x22, + 0x8f, 0x12, 0x41, 0xe1, 0x84, 0x12, 0x01, 0x42, 0x22, 0x00, 0x85, 0x12, + 0x41, 0xe1, 0x8c, 0x12, 0x01, 0x42, 0x56, 0x19, 0x8d, 0x12, 0x41, 0xe1, + 0x86, 0x12, 0x01, 0x42, 0x22, 0x00, 0x88, 0x12, 0x41, 0xe1, 0x98, 0x12, + 0x01, 0xa4, 0x06, 0x42, 0x22, 0x00, 0x99, 0x12, 0x41, 0xe1, 0x92, 0x12, + 0x01, 0x42, 0xf0, 0x10, 0x93, 0x12, 0x01, 0x42, 0x22, 0x00, 0x94, 0x12, + 0x41, 0xe1, 0x8a, 0x12, 0x01, 0x42, 0x22, 0x00, 0x8b, 0x12, 0x41, 0xe1, + 0x9d, 0x12, 0x01, 0x42, 0x22, 0x00, 0x9f, 0x12, 0x41, 0x4c, 0x87, 0x00, + 0x6b, 0x22, 0x00, 0x49, 0xec, 0x00, 0x6a, 0x22, 0x40, 0xa4, 0xb8, 0x01, + 0x07, 0xec, 0x05, 0x01, 0xff, 0xe1, 0x46, 0x6a, 0x01, 0x42, 0x16, 0x00, + 0x44, 0x6a, 0x01, 0x43, 0x70, 0x38, 0x4b, 0x6a, 0x01, 0x42, 0xf0, 0x10, + 0x45, 0x6a, 0x81, 0x97, 0x01, 0xe5, 0x58, 0x6a, 0x81, 0x8d, 0x01, 0x02, + 0x22, 0x00, 0x80, 0x01, 0xab, 0x6e, 0x42, 0x74, 0x00, 0x5b, 0x6a, 0x81, + 0x63, 0xad, 0x55, 0xae, 0x47, 0xef, 0x52, 0x6a, 0x81, 0x3a, 0xb0, 0x2e, + 0xb2, 0x24, 0x43, 0xa3, 0x0c, 0x54, 0x6a, 0x01, 0xb4, 0x0c, 0x42, 0xa9, + 0x01, 0x57, 0x6a, 0x01, 0x42, 0xa9, 0x47, 0x42, 0x6a, 0x41, 0xe1, 0x40, + 0x6a, 0x01, 0x42, 0xd5, 0x18, 0x5e, 0x6a, 0x01, 0x43, 0xe6, 0x01, 0x55, + 0x6a, 0x41, 0xe9, 0x5d, 0x6a, 0x01, 0xef, 0x53, 0x6a, 0x41, 0xe1, 0x50, + 0x6a, 0x01, 0x42, 0x49, 0x00, 0x47, 0x6a, 0x41, 0xec, 0x4d, 0x6a, 0x01, + 0xef, 0x51, 0x6a, 0x41, 0x42, 0xf1, 0x06, 0x41, 0x6a, 0x01, 0x42, 0x9e, + 0x01, 0x4f, 0x6a, 0x41, 0x43, 0x61, 0x87, 0x4e, 0x6a, 0x01, 0x42, 0x29, + 0x02, 0x43, 0x6a, 0x41, 0xee, 0x5a, 0x6a, 0x41, 0x44, 0x95, 0xef, 0x4c, + 0x6a, 0x01, 0x43, 0x15, 0x52, 0x48, 0x6a, 0x01, 0xef, 0x59, 0x6a, 0x41, + 0xe9, 0x5c, 0x6a, 0x01, 0xef, 0x49, 0x6a, 0x41, 0xe1, 0x56, 0x6a, 0x41, + 0xe9, 0x4a, 0x6a, 0x41, 0x44, 0x73, 0x20, 0x6e, 0x6a, 0x01, 0x05, 0xf0, + 0x06, 0x06, 0x4b, 0x09, 0xa1, 0x6f, 0x6a, 0x41, 0x45, 0x12, 0x0b, 0x68, + 0x6a, 0x01, 0xa6, 0x2e, 0x44, 0xcf, 0x2a, 0x69, 0x6a, 0x01, 0x43, 0x0e, + 0x0b, 0x61, 0x6a, 0x01, 0xb3, 0x14, 0xb4, 0x06, 0x44, 0x43, 0x1e, 0x60, + 0x6a, 0x41, 0x44, 0x25, 0x01, 0x63, 0x6a, 0x01, 0x42, 0x15, 0x02, 0x62, + 0x6a, 0x41, 0x44, 0xc9, 0x1d, 0x67, 0x6a, 0x01, 0x42, 0x01, 0x26, 0x66, + 0x6a, 0x41, 0x43, 0xd2, 0x05, 0x65, 0x6a, 0x01, 0x43, 0xf6, 0x06, 0x64, + 0x6a, 0x41, 0x4a, 0x4f, 0x4b, 0xf1, 0xf4, 0x81, 0x86, 0x1f, 0xa4, 0xcb, + 0x0a, 0xae, 0xaa, 0x01, 0xaf, 0x85, 0x01, 0x03, 0xd6, 0x05, 0x77, 0xb4, + 0x50, 0xb5, 0x0c, 0x4a, 0x4d, 0xb3, 0xa5, 0xf3, 0x01, 0x43, 0x7d, 0x78, + 0xff, 0xf5, 0x41, 0x02, 0x11, 0x00, 0x1c, 0x42, 0x46, 0x03, 0x01, 0xf4, + 0x81, 0x06, 0x42, 0x53, 0x00, 0x44, 0xf4, 0x41, 0x80, 0x01, 0xff, 0x44, + 0x0c, 0x08, 0x2d, 0xf4, 0x01, 0x44, 0xac, 0xe0, 0xa4, 0xfa, 0x41, 0x45, + 0xaf, 0xe1, 0xfb, 0xf5, 0x01, 0x43, 0x56, 0x07, 0xf0, 0x26, 0xc0, 0x00, + 0x80, 0x01, 0xff, 0x49, 0x9f, 0xb6, 0xb5, 0xf6, 0x01, 0x48, 0x70, 0xc4, + 0xa0, 0xf6, 0x01, 0x47, 0xc9, 0x71, 0x9e, 0xf6, 0x41, 0x4d, 0xe0, 0x7c, + 0x36, 0xf9, 0x01, 0x02, 0x0c, 0x00, 0x01, 0xff, 0x80, 0x0c, 0x4f, 0x0f, + 0x6f, 0xbc, 0xf9, 0x01, 0x43, 0x04, 0x20, 0xe3, 0xf6, 0x41, 0x44, 0xd6, + 0xdc, 0xe5, 0xf6, 0x01, 0x47, 0xb5, 0xd5, 0xf5, 0xf6, 0x41, 0xe5, 0x4c, + 0xf5, 0x01, 0x43, 0xc6, 0x07, 0x9f, 0xf9, 0x41, 0x48, 0xe8, 0xc4, 0xf0, + 0xf5, 0x01, 0x02, 0x92, 0x00, 0x06, 0x42, 0x46, 0x03, 0xce, 0xfa, 0x41, + 0x44, 0x5f, 0x2c, 0x6e, 0xf9, 0x01, 0x46, 0x9a, 0xdd, 0xf5, 0xcd, 0x01, + 0x50, 0x76, 0x68, 0x91, 0xf3, 0x41, 0x02, 0xc6, 0x1c, 0x85, 0x09, 0x07, + 0x5c, 0xd1, 0x35, 0x43, 0x09, 0x24, 0x12, 0xf4, 0x81, 0x28, 0xaf, 0x01, + 0xff, 0x09, 0x06, 0x96, 0x0c, 0x44, 0x63, 0x4c, 0x9d, 0xf6, 0x01, 0x4d, + 0xf7, 0x88, 0x8d, 0x23, 0x40, 0x45, 0x52, 0x72, 0x00, 0xd3, 0x01, 0xb9, + 0x01, 0xff, 0x43, 0x1c, 0x01, 0x8a, 0x26, 0x00, 0x42, 0x9e, 0x01, 0x8b, + 0x26, 0x40, 0x45, 0x0b, 0x08, 0x35, 0xf4, 0x41, 0x45, 0x7d, 0x07, 0x00, + 0x18, 0x80, 0xb3, 0x08, 0x02, 0x13, 0x05, 0xa2, 0x08, 0xa4, 0xd3, 0x07, + 0x48, 0xce, 0x29, 0x01, 0x18, 0x00, 0xa6, 0x9f, 0x07, 0x4e, 0xa9, 0x78, + 0x67, 0x16, 0x81, 0x91, 0x07, 0x07, 0xec, 0x05, 0x68, 0x07, 0x1c, 0xd3, + 0x58, 0x46, 0x4e, 0xde, 0x0a, 0x18, 0x00, 0x4d, 0x0d, 0x88, 0x61, 0x16, + 0x81, 0x3a, 0xb3, 0x1a, 0xb4, 0x06, 0x4f, 0x91, 0x74, 0x0e, 0x18, 0x40, + 0x4f, 0xfe, 0x70, 0x06, 0x18, 0x00, 0x59, 0x0f, 0x26, 0x63, 0x16, 0x01, + 0x66, 0x71, 0x07, 0x6c, 0x16, 0x41, 0x5c, 0x16, 0x18, 0x07, 0x18, 0x00, + 0x4a, 0x78, 0x07, 0x69, 0x16, 0xc1, 0x00, 0x06, 0x50, 0x00, 0x01, 0xff, + 0x4f, 0x88, 0x07, 0x6b, 0x16, 0x01, 0x48, 0x28, 0x05, 0x6a, 0x16, 0x41, + 0x06, 0x50, 0x00, 0x01, 0xff, 0x4f, 0x88, 0x07, 0x66, 0x16, 0x01, 0x48, + 0x28, 0x05, 0x65, 0x16, 0x41, 0x45, 0x13, 0x05, 0x08, 0x18, 0x00, 0x49, + 0x81, 0x16, 0x09, 0x18, 0x40, 0xe1, 0x20, 0x18, 0x80, 0xef, 0x04, 0x42, + 0x16, 0x00, 0x2a, 0x18, 0x00, 0x02, 0x6d, 0x14, 0xd5, 0x04, 0x42, 0xf0, + 0x10, 0x33, 0x18, 0x00, 0xe5, 0x21, 0x18, 0x80, 0xc5, 0x04, 0x42, 0x0c, + 0x08, 0x39, 0x18, 0x00, 0x42, 0x24, 0x02, 0x2d, 0x18, 0x00, 0x43, 0x3b, + 0x41, 0x3e, 0x18, 0x00, 0xe9, 0x22, 0x18, 0x00, 0x42, 0x56, 0x19, 0x35, + 0x18, 0x00, 0xab, 0x9c, 0x04, 0xac, 0x8f, 0x04, 0x42, 0x6c, 0x00, 0x2e, + 0x18, 0x80, 0x8b, 0x03, 0x42, 0x2a, 0x05, 0x28, 0x18, 0x00, 0xef, 0x23, + 0x18, 0x80, 0xfb, 0x02, 0x42, 0xbb, 0x09, 0x2b, 0x18, 0x00, 0x42, 0x43, + 0x14, 0x2c, 0x18, 0x00, 0x42, 0x71, 0x00, 0x37, 0x18, 0x00, 0xb3, 0xdc, + 0x01, 0xb4, 0x28, 0xf5, 0x24, 0x18, 0x80, 0x1f, 0x42, 0xa9, 0x01, 0x38, + 0x18, 0x00, 0x42, 0xbc, 0x22, 0x36, 0x18, 0x00, 0xba, 0x01, 0xff, 0xe1, + 0x3d, 0x18, 0x00, 0x42, 0x49, 0x00, 0x41, 0x18, 0x00, 0x42, 0x71, 0x00, + 0x3f, 0x18, 0x40, 0xe5, 0x26, 0x18, 0x40, 0xe1, 0x32, 0x18, 0x00, 0x04, + 0xfe, 0x70, 0x06, 0x42, 0x40, 0x06, 0x3c, 0x18, 0x40, 0xa1, 0x8b, 0x01, + 0x42, 0x16, 0x00, 0x4b, 0x18, 0x00, 0x43, 0x91, 0x20, 0x52, 0x18, 0x00, + 0xa4, 0x73, 0xe5, 0x44, 0x18, 0x00, 0x42, 0x24, 0x02, 0x4e, 0x18, 0x80, + 0x64, 0x43, 0x3b, 0x41, 0x59, 0x18, 0x00, 0xe9, 0x45, 0x18, 0x00, 0xaa, + 0x4e, 0x42, 0x1b, 0x02, 0x57, 0x18, 0x00, 0x4f, 0xf0, 0x6f, 0x43, 0x18, + 0x00, 0x42, 0x6c, 0x00, 0x4f, 0x18, 0x00, 0x43, 0x4a, 0x07, 0x5b, 0x18, + 0x00, 0xef, 0x46, 0x18, 0x80, 0x2d, 0x42, 0xbb, 0x09, 0x4c, 0x18, 0x00, + 0x42, 0x43, 0x14, 0x4d, 0x18, 0x00, 0xb4, 0x15, 0xf5, 0x47, 0x18, 0x80, + 0x0c, 0x42, 0xa9, 0x01, 0x56, 0x18, 0x00, 0x42, 0xbc, 0x22, 0x55, 0x18, + 0x40, 0xe5, 0x49, 0x18, 0x40, 0xe1, 0x50, 0x18, 0x00, 0x42, 0x40, 0x06, + 0x54, 0x18, 0x40, 0xe5, 0x48, 0x18, 0x40, 0xe1, 0x53, 0x18, 0x00, 0x42, + 0x1b, 0x01, 0x5a, 0x18, 0x40, 0xe1, 0x58, 0x18, 0x40, 0xe1, 0x51, 0x18, + 0x00, 0x42, 0x59, 0x00, 0x5c, 0x18, 0x40, 0x08, 0xf5, 0xb5, 0x06, 0x42, + 0x1d, 0x01, 0x4a, 0x18, 0x40, 0x42, 0x12, 0x00, 0x98, 0x18, 0x00, 0x43, + 0xcb, 0xc0, 0x99, 0x18, 0x40, 0xe1, 0x30, 0x18, 0x00, 0x42, 0x22, 0x00, + 0x31, 0x18, 0x00, 0x04, 0x16, 0x18, 0x01, 0xff, 0x43, 0x1c, 0x01, 0x62, + 0x18, 0x00, 0x43, 0x91, 0x20, 0x71, 0x18, 0x00, 0x42, 0xf0, 0x10, 0x69, + 0x18, 0x00, 0xe5, 0x5d, 0x18, 0x00, 0x42, 0x0c, 0x08, 0x6b, 0x18, 0x00, + 0x42, 0x24, 0x02, 0x64, 0x18, 0x80, 0x54, 0x42, 0x22, 0x00, 0x65, 0x18, + 0x80, 0x49, 0xe9, 0x5e, 0x18, 0x80, 0x40, 0x42, 0x56, 0x19, 0x6a, 0x18, + 0x00, 0x42, 0x1b, 0x02, 0x63, 0x18, 0x00, 0x42, 0xbb, 0x09, 0x66, 0x18, + 0x00, 0x43, 0x8f, 0x95, 0x70, 0x18, 0x00, 0x43, 0xa4, 0x02, 0x67, 0x18, + 0x00, 0xb4, 0x16, 0xf5, 0x61, 0x18, 0x80, 0x0d, 0xba, 0x01, 0xff, 0xe1, + 0x6f, 0x18, 0x00, 0x42, 0x22, 0x00, 0x72, 0x18, 0x40, 0xe5, 0x60, 0x18, + 0x40, 0xe1, 0x68, 0x18, 0x00, 0x42, 0x40, 0x06, 0x6e, 0x18, 0x40, 0xf9, + 0x5f, 0x18, 0x40, 0xe1, 0x6d, 0x18, 0x40, 0xe1, 0x6c, 0x18, 0x40, 0xe5, + 0x25, 0x18, 0x40, 0x05, 0x1e, 0xd3, 0x01, 0xff, 0x09, 0xf4, 0xb5, 0x1c, + 0x42, 0x0c, 0x08, 0x76, 0x18, 0x00, 0xe9, 0x73, 0x18, 0x00, 0x42, 0x1b, + 0x02, 0x74, 0x18, 0x00, 0x42, 0x71, 0x00, 0x75, 0x18, 0x00, 0x43, 0xcb, + 0xc0, 0x77, 0x18, 0x40, 0x43, 0xd9, 0x2a, 0xa8, 0x18, 0x00, 0xa3, 0x45, + 0xa4, 0x37, 0x43, 0x0e, 0x9c, 0x9a, 0x18, 0x00, 0x43, 0x9c, 0x45, 0x9d, + 0x18, 0x00, 0x43, 0x2a, 0x09, 0xaa, 0x18, 0x00, 0x43, 0x39, 0x48, 0x9b, + 0x18, 0x00, 0x43, 0xfb, 0x20, 0xa2, 0x18, 0x00, 0xb4, 0x0d, 0xba, 0x01, + 0xff, 0xe1, 0xa5, 0x18, 0x00, 0x42, 0x22, 0x00, 0xa4, 0x18, 0x40, 0xe1, + 0xa0, 0x18, 0x00, 0x42, 0x12, 0x00, 0x9e, 0x18, 0x40, 0x43, 0xe7, 0x4b, + 0x9f, 0x18, 0x00, 0x42, 0x22, 0x00, 0xa1, 0x18, 0x40, 0xe1, 0x9c, 0x18, + 0x00, 0x42, 0xbc, 0x22, 0xa3, 0x18, 0x40, 0xe1, 0x2f, 0x18, 0x00, 0x42, + 0x22, 0x00, 0x40, 0x18, 0x40, 0xe1, 0x3a, 0x18, 0x00, 0x42, 0x22, 0x00, + 0x3b, 0x18, 0x40, 0xe5, 0x27, 0x18, 0x40, 0xe1, 0x34, 0x18, 0x80, 0x04, + 0xe9, 0x42, 0x18, 0x40, 0x4e, 0xdc, 0x19, 0x78, 0x18, 0x40, 0x08, 0xf5, + 0xb5, 0x06, 0x42, 0x1d, 0x01, 0x29, 0x18, 0x40, 0xe1, 0x87, 0x18, 0x80, + 0x96, 0x01, 0x46, 0x25, 0x9d, 0x85, 0x18, 0x00, 0x42, 0x37, 0x00, 0x8b, + 0x18, 0x00, 0xa4, 0x71, 0x05, 0x22, 0x00, 0x63, 0xe9, 0x88, 0x18, 0x80, + 0x58, 0x42, 0x1b, 0x02, 0x89, 0x18, 0x00, 0xae, 0x44, 0xb0, 0x38, 0x43, + 0xfb, 0x20, 0x94, 0x18, 0x00, 0xb4, 0x19, 0x47, 0xe8, 0x70, 0x83, 0x18, + 0x00, 0x4b, 0xdc, 0xa4, 0x81, 0x18, 0x00, 0xba, 0x01, 0xff, 0xe1, 0x96, + 0x18, 0x00, 0x42, 0x22, 0x00, 0x95, 0x18, 0x40, 0xe1, 0x90, 0x18, 0x00, + 0x4b, 0x20, 0x9d, 0x86, 0x18, 0x00, 0xb4, 0x01, 0xff, 0xe1, 0x8c, 0x18, + 0x00, 0x42, 0x22, 0x00, 0x8d, 0x18, 0x40, 0xe1, 0x92, 0x18, 0x00, 0x42, + 0x22, 0x00, 0x93, 0x18, 0x40, 0x42, 0x24, 0x02, 0x8a, 0x18, 0x00, 0x42, + 0x2a, 0x05, 0x8f, 0x18, 0x40, 0x4f, 0xe0, 0x70, 0x84, 0x18, 0x40, 0xf5, + 0xa6, 0x18, 0x00, 0x42, 0xbc, 0x22, 0xa7, 0x18, 0x40, 0xe1, 0x91, 0x18, + 0x80, 0x06, 0x42, 0xf0, 0x10, 0x8e, 0x18, 0x40, 0x45, 0x87, 0xe6, 0xa9, + 0x18, 0x00, 0x44, 0x21, 0xf1, 0x82, 0x18, 0x40, 0xe8, 0x97, 0x18, 0x00, + 0x4b, 0x64, 0xa0, 0x80, 0x18, 0x40, 0x55, 0x82, 0x07, 0x68, 0x16, 0x41, + 0x48, 0xd2, 0x46, 0x05, 0x18, 0x00, 0x17, 0x97, 0x30, 0x06, 0x48, 0x82, + 0x16, 0x03, 0x18, 0x40, 0x44, 0xf5, 0x06, 0x0f, 0x18, 0x00, 0x43, 0x0e, + 0x0b, 0x0b, 0x18, 0x00, 0xb4, 0x01, 0xff, 0x44, 0x25, 0x01, 0x0d, 0x18, + 0x00, 0x42, 0x15, 0x02, 0x0c, 0x18, 0x40, 0x05, 0xf0, 0x06, 0x06, 0x59, + 0x60, 0x25, 0x62, 0x16, 0x41, 0x45, 0x12, 0x0b, 0x18, 0x18, 0x00, 0xa6, + 0x2e, 0x44, 0xcf, 0x2a, 0x19, 0x18, 0x00, 0x43, 0x0e, 0x0b, 0x11, 0x18, + 0x00, 0xb3, 0x14, 0xb4, 0x06, 0x44, 0x43, 0x1e, 0x10, 0x18, 0x40, 0x44, + 0x25, 0x01, 0x13, 0x18, 0x00, 0x42, 0x15, 0x02, 0x12, 0x18, 0x40, 0x44, + 0xc9, 0x1d, 0x17, 0x18, 0x00, 0x42, 0x01, 0x26, 0x16, 0x18, 0x40, 0x43, + 0xd2, 0x05, 0x15, 0x18, 0x00, 0x43, 0xf6, 0x06, 0x14, 0x18, 0x40, 0x43, + 0xd7, 0x02, 0x04, 0x18, 0x00, 0x43, 0x15, 0x05, 0x02, 0x18, 0x40, 0x06, + 0x50, 0x00, 0x01, 0xff, 0x4f, 0x88, 0x07, 0x64, 0x16, 0x01, 0x48, 0x28, + 0x05, 0x60, 0x16, 0x41, 0x80, 0x06, 0x4b, 0x1b, 0x64, 0x11, 0xf9, 0x41, + 0x43, 0xd7, 0x38, 0xb0, 0xf4, 0x01, 0x4a, 0xa7, 0xb3, 0xb8, 0xf4, 0x41, + 0xa5, 0xa9, 0x14, 0xa9, 0x06, 0x4b, 0x42, 0xa4, 0x0a, 0x2a, 0x40, 0x80, + 0xba, 0x10, 0x05, 0x7c, 0x0c, 0x01, 0xff, 0x59, 0x53, 0x23, 0x5b, 0xab, + 0x00, 0x07, 0xec, 0x05, 0x01, 0xff, 0xa1, 0x95, 0x10, 0xa2, 0xfc, 0x0f, + 0xa3, 0xa6, 0x0c, 0xa4, 0xe3, 0x0b, 0xa5, 0x8a, 0x0b, 0xa7, 0xee, 0x0a, + 0xa8, 0xc4, 0x0a, 0xac, 0x9e, 0x09, 0xad, 0xd1, 0x08, 0x4a, 0xf7, 0xae, + 0xfe, 0x02, 0x00, 0xb0, 0xbc, 0x08, 0xb2, 0xda, 0x07, 0xb3, 0x47, 0xb4, + 0x39, 0xb5, 0x1d, 0xb6, 0x0f, 0xb9, 0x01, 0xff, 0x57, 0x2d, 0x2d, 0xeb, + 0x02, 0x00, 0x56, 0x87, 0x34, 0xea, 0x02, 0x40, 0x4c, 0xce, 0x0b, 0xc8, + 0x02, 0x00, 0x46, 0x5a, 0xd7, 0xec, 0x02, 0x40, 0x4a, 0x43, 0xae, 0xed, + 0x02, 0x00, 0x02, 0x20, 0x00, 0x04, 0xf3, 0x70, 0xa7, 0x40, 0x49, 0xe1, + 0x01, 0xc4, 0x02, 0x00, 0x44, 0xf5, 0x38, 0xd4, 0x02, 0x40, 0x4f, 0x8a, + 0x3b, 0xd0, 0x02, 0x00, 0x4b, 0x28, 0x0a, 0xbb, 0x02, 0x40, 0xa8, 0x82, + 0x07, 0x05, 0x5e, 0x07, 0x21, 0x0a, 0x21, 0xb2, 0x11, 0x0b, 0x70, 0x06, + 0x01, 0xff, 0x55, 0x84, 0x3b, 0x82, 0x07, 0x01, 0x50, 0x89, 0x3b, 0x81, + 0x07, 0x41, 0x49, 0xe4, 0x42, 0x20, 0xa7, 0x00, 0x48, 0x1d, 0xb5, 0x21, + 0xa7, 0x40, 0xe1, 0x43, 0x1d, 0x80, 0xc7, 0x06, 0xe2, 0x47, 0x1d, 0x80, + 0xa9, 0x06, 0xe3, 0x9c, 0x1d, 0x80, 0xb7, 0x05, 0xe4, 0x48, 0x1d, 0x80, + 0xe7, 0x04, 0xe5, 0x49, 0x1d, 0x80, 0xc9, 0x04, 0xe6, 0xa0, 0x1d, 0x80, + 0xbd, 0x04, 0xe7, 0x4d, 0x1d, 0x80, 0x9a, 0x04, 0xe8, 0xb0, 0x02, 0x80, + 0xf7, 0x03, 0xa9, 0xe8, 0x03, 0xea, 0xb2, 0x02, 0x80, 0xdc, 0x03, 0xeb, + 0x4f, 0x1d, 0x00, 0xec, 0xe1, 0x02, 0x80, 0x8a, 0x03, 0xed, 0x50, 0x1d, + 0x80, 0xfe, 0x02, 0x07, 0xc8, 0x04, 0xed, 0x02, 0xef, 0x52, 0x1d, 0x80, + 0xd4, 0x02, 0xf0, 0x56, 0x1d, 0x80, 0xc8, 0x02, 0xf1, 0xa5, 0x07, 0x01, + 0xf2, 0xb3, 0x02, 0x80, 0x93, 0x02, 0xf3, 0xe2, 0x02, 0x80, 0xe9, 0x01, + 0xf4, 0x57, 0x1d, 0x80, 0x51, 0xf5, 0x58, 0x1d, 0x80, 0x38, 0xf6, 0x5b, + 0x1d, 0x80, 0x22, 0xf7, 0xb7, 0x02, 0x00, 0xf8, 0xe3, 0x02, 0x00, 0xf9, + 0xb8, 0x02, 0x00, 0xfa, 0xbb, 0x1d, 0xc0, 0x00, 0x06, 0x50, 0x00, 0x01, + 0xff, 0x44, 0x72, 0x0b, 0xbd, 0x1d, 0x00, 0x4e, 0xa2, 0x0e, 0xbc, 0x1d, + 0x40, 0x06, 0x50, 0x00, 0x01, 0xff, 0x44, 0xac, 0x0e, 0xb9, 0x1d, 0x00, + 0x4a, 0x4b, 0xb0, 0xb0, 0x07, 0x41, 0x80, 0x06, 0x46, 0xcf, 0x15, 0xb7, + 0x1d, 0x40, 0x43, 0x16, 0x00, 0xb6, 0x1d, 0x00, 0x4e, 0xc9, 0x7e, 0x5f, + 0xab, 0x40, 0x06, 0x50, 0x00, 0x82, 0x01, 0x53, 0xad, 0x48, 0xab, 0x07, + 0x01, 0x4b, 0xec, 0x9b, 0xae, 0x07, 0x01, 0x44, 0xc8, 0x95, 0xbf, 0x1d, + 0x00, 0x49, 0x56, 0xbd, 0x54, 0x1d, 0x00, 0x49, 0x18, 0xbf, 0xac, 0x07, + 0x81, 0x5d, 0x06, 0x71, 0x07, 0x01, 0xff, 0xe1, 0x44, 0x1d, 0x80, 0x49, + 0xe8, 0xa3, 0x1d, 0x00, 0xe9, 0x4e, 0x1d, 0x00, 0xed, 0x5a, 0x1d, 0x80, + 0x36, 0x46, 0x1e, 0x29, 0x4c, 0x1d, 0x00, 0xf2, 0xb4, 0x02, 0x80, 0x13, + 0xf6, 0xba, 0x1d, 0x00, 0xf7, 0x69, 0xab, 0x00, 0xf9, 0xa0, 0x07, 0xc1, + 0x00, 0x4a, 0x55, 0xa6, 0xa1, 0x07, 0x41, 0x06, 0x50, 0x00, 0x01, 0xff, + 0x44, 0xac, 0x0e, 0xb5, 0x02, 0x00, 0x48, 0x91, 0x75, 0xa6, 0x07, 0xc1, + 0x00, 0x53, 0x57, 0x47, 0xa7, 0x07, 0x41, 0x4e, 0x8b, 0x75, 0xad, 0x1d, + 0x40, 0xe5, 0x46, 0x1d, 0x00, 0x44, 0x3f, 0xe4, 0x9b, 0x1d, 0x40, 0x54, + 0x9c, 0x0e, 0xad, 0x07, 0x41, 0x4c, 0xf3, 0x56, 0xb5, 0x1d, 0x00, 0x4e, + 0xa2, 0x0e, 0xaf, 0x07, 0x41, 0x06, 0x50, 0x00, 0x14, 0xa3, 0x06, 0x49, + 0x08, 0xba, 0x59, 0x1d, 0x40, 0x43, 0xb6, 0x7b, 0x4a, 0x1d, 0x00, 0x46, + 0xb2, 0xca, 0xa2, 0x1d, 0x40, 0x44, 0x72, 0x0b, 0xba, 0x07, 0x01, 0x44, + 0xac, 0x0e, 0xb3, 0x1d, 0x40, 0x06, 0x50, 0x00, 0x1b, 0x48, 0x48, 0xc3, + 0x91, 0x07, 0x01, 0x08, 0xde, 0x14, 0x01, 0xff, 0xe5, 0x8e, 0x07, 0x01, + 0x4c, 0xce, 0x28, 0xe4, 0x02, 0x00, 0x46, 0x1e, 0x29, 0x9f, 0x1d, 0x40, + 0x48, 0x31, 0x72, 0xa9, 0x07, 0x01, 0x44, 0x8f, 0x17, 0xa8, 0x07, 0x41, + 0x42, 0x49, 0x00, 0xb2, 0x1d, 0x40, 0x4c, 0xda, 0x28, 0xa2, 0x07, 0x01, + 0x04, 0xf7, 0x04, 0x01, 0xff, 0xe5, 0x4b, 0x1d, 0x00, 0xef, 0x53, 0x1d, + 0x40, 0x49, 0xb1, 0x57, 0xae, 0x1d, 0x00, 0x4e, 0xa2, 0x0e, 0xaf, 0x1d, + 0x40, 0x4a, 0xa7, 0x24, 0xac, 0x1d, 0x40, 0x06, 0x50, 0x00, 0x1f, 0x43, + 0x37, 0xf4, 0x9e, 0x07, 0x81, 0x12, 0x4a, 0x9b, 0xab, 0xf9, 0xa7, 0x00, + 0x49, 0x18, 0xbf, 0x99, 0x07, 0x01, 0x49, 0xb2, 0xc1, 0x9a, 0x07, 0x41, + 0x54, 0x9c, 0x0e, 0x9f, 0x07, 0x41, 0x44, 0x5b, 0xa6, 0x9b, 0x07, 0x01, + 0x4f, 0xd3, 0x6e, 0x5d, 0xab, 0x00, 0x4c, 0x2e, 0x23, 0x5e, 0xab, 0x00, + 0x4c, 0xf3, 0x56, 0xaa, 0x1d, 0x00, 0x4e, 0xa2, 0x0e, 0xa9, 0x1d, 0xc0, + 0x00, 0x49, 0x29, 0xb4, 0x9d, 0x07, 0x41, 0x52, 0xc3, 0x4f, 0xa8, 0x1d, + 0x40, 0x4c, 0xda, 0x28, 0xa4, 0x1d, 0x00, 0x43, 0x1b, 0x05, 0xa5, 0x1d, + 0x40, 0x06, 0x50, 0x00, 0x0d, 0x43, 0x4c, 0x0a, 0x5c, 0xab, 0xc0, 0x00, + 0x4a, 0xa7, 0x24, 0x97, 0x07, 0x41, 0x44, 0xac, 0x0e, 0xb1, 0x02, 0x00, + 0x46, 0x52, 0x05, 0x95, 0x07, 0x41, 0x4a, 0xa7, 0x24, 0x93, 0x07, 0x01, + 0x44, 0x00, 0x21, 0xe0, 0x02, 0x00, 0x05, 0x87, 0x2e, 0x01, 0xff, 0x45, + 0x2c, 0x58, 0x5e, 0x1d, 0x00, 0x43, 0x53, 0x20, 0x60, 0x1d, 0x40, 0x4b, + 0xb5, 0x9b, 0x90, 0x07, 0x41, 0x42, 0x1d, 0x01, 0x51, 0x1d, 0x00, 0x42, + 0xa4, 0x02, 0xb4, 0x1d, 0x00, 0x42, 0x53, 0x00, 0x9e, 0x1d, 0x00, 0x42, + 0x54, 0x28, 0xbe, 0x1d, 0x40, 0x06, 0x50, 0x00, 0x33, 0xa5, 0x25, 0x54, + 0xc4, 0x44, 0xa1, 0x1d, 0x80, 0x18, 0x49, 0xb2, 0xc1, 0x87, 0x07, 0xc1, + 0x00, 0x06, 0x50, 0x00, 0x01, 0xff, 0x44, 0x72, 0x0b, 0x89, 0x07, 0x01, + 0x4e, 0xa2, 0x0e, 0x88, 0x07, 0x41, 0x49, 0xc0, 0x23, 0x98, 0x07, 0x41, + 0x43, 0x49, 0x19, 0x5f, 0x1d, 0x00, 0x4a, 0x15, 0xb4, 0x8a, 0x07, 0x41, + 0x44, 0xac, 0x0e, 0x8c, 0x07, 0x81, 0x06, 0x44, 0x8f, 0x17, 0x8b, 0x07, + 0x41, 0x49, 0x3b, 0xb4, 0x8d, 0x07, 0x41, 0x4a, 0xb6, 0x48, 0x9d, 0x1d, + 0x00, 0x07, 0xe5, 0x05, 0x17, 0x42, 0x49, 0x00, 0x61, 0x1d, 0x00, 0x06, + 0x60, 0x1b, 0x01, 0xff, 0x45, 0x38, 0xaf, 0xa4, 0x07, 0x01, 0x4f, 0x75, + 0x72, 0x8f, 0x07, 0x41, 0x42, 0x80, 0x12, 0x80, 0x07, 0x01, 0xe2, 0x84, + 0x07, 0x01, 0xe7, 0x92, 0x07, 0x81, 0x36, 0xe8, 0x96, 0x07, 0x01, 0xe9, + 0xa6, 0x1d, 0x80, 0x21, 0xec, 0xab, 0x1d, 0x80, 0x16, 0xee, 0xb0, 0x1d, + 0x00, 0x42, 0x60, 0x51, 0xa3, 0x07, 0x01, 0xf2, 0xaa, 0x07, 0x01, 0xf5, + 0xb8, 0x1d, 0x00, 0xf9, 0xb2, 0x07, 0x41, 0x4a, 0x55, 0xa6, 0x9c, 0x07, + 0x41, 0x4c, 0xda, 0x28, 0xa7, 0x1d, 0x00, 0x49, 0xc6, 0xbc, 0xb6, 0x02, + 0x40, 0x4a, 0xa7, 0x24, 0x94, 0x07, 0x41, 0x4a, 0xa7, 0x24, 0x85, 0x07, + 0x01, 0x47, 0x09, 0xcf, 0xb1, 0x1d, 0x00, 0x43, 0x94, 0x0f, 0x5d, 0x1d, + 0x00, 0x4c, 0x6f, 0x93, 0x55, 0x1d, 0x40, 0xe5, 0x83, 0x07, 0x01, 0x42, + 0x9e, 0x01, 0x5c, 0x1d, 0x00, 0x44, 0x3f, 0xe4, 0x45, 0x1d, 0x40, 0x43, + 0x83, 0x79, 0xfd, 0x02, 0x00, 0x4f, 0x76, 0x71, 0x8a, 0xa7, 0x40, 0x06, + 0xd2, 0x10, 0x3d, 0xa5, 0x1d, 0x4a, 0x41, 0xab, 0xde, 0x02, 0x00, 0x05, + 0xc9, 0x00, 0x01, 0xff, 0x49, 0xe1, 0x01, 0xc3, 0x02, 0x00, 0x49, 0xfe, + 0x13, 0xbe, 0x02, 0x00, 0x44, 0xf5, 0x38, 0x6b, 0xab, 0x40, 0x61, 0x8f, + 0x0e, 0xb9, 0x07, 0x01, 0x07, 0xdf, 0x14, 0x01, 0xff, 0x45, 0x13, 0x05, + 0xbd, 0x02, 0x00, 0x4c, 0xce, 0x28, 0xc1, 0x02, 0xc0, 0x00, 0x4c, 0xda, + 0x28, 0xb4, 0x07, 0x41, 0x45, 0x94, 0x3b, 0xf8, 0x02, 0x00, 0x4a, 0xcc, + 0x41, 0x1c, 0xa7, 0x00, 0x50, 0xad, 0x00, 0x1d, 0xa7, 0x00, 0x59, 0x66, + 0x24, 0x1e, 0xa7, 0x00, 0x48, 0x29, 0x56, 0x1b, 0xa7, 0x40, 0x48, 0xe0, + 0x71, 0xd6, 0x02, 0x00, 0x44, 0xeb, 0x1a, 0xb9, 0x02, 0x40, 0x45, 0xae, + 0x70, 0xc9, 0x02, 0x00, 0xa9, 0x01, 0xff, 0xa4, 0x06, 0x48, 0x69, 0x98, + 0xd7, 0x02, 0x40, 0x80, 0x1b, 0x04, 0x80, 0x02, 0x01, 0xff, 0x07, 0x3b, + 0x01, 0x06, 0x4c, 0x15, 0x23, 0xf4, 0x02, 0x40, 0x4c, 0xfb, 0x8b, 0xf6, + 0x02, 0x00, 0x4c, 0x15, 0x23, 0xf5, 0x02, 0x40, 0x07, 0xb0, 0x1f, 0x0c, + 0x52, 0x6b, 0x53, 0x14, 0xa7, 0x00, 0x48, 0x75, 0x53, 0xe7, 0x02, 0x40, + 0x52, 0x6b, 0x53, 0x0f, 0xa7, 0x00, 0x48, 0x75, 0x53, 0x0a, 0xa7, 0x40, + 0x4c, 0xf5, 0x84, 0xb7, 0x07, 0x01, 0x04, 0xc4, 0x00, 0x86, 0x01, 0x02, + 0xd1, 0x00, 0x01, 0xff, 0x80, 0x06, 0x55, 0x06, 0x3b, 0x1a, 0xa7, 0x40, + 0x4c, 0xfb, 0x8b, 0xcf, 0x02, 0x00, 0x51, 0xcf, 0x04, 0x88, 0xa7, 0x00, + 0x02, 0x3b, 0x01, 0x53, 0x4c, 0x15, 0x23, 0xce, 0x02, 0x00, 0x59, 0x66, + 0x24, 0x1f, 0xa7, 0x00, 0x04, 0xc3, 0x00, 0x30, 0x46, 0xad, 0x70, 0xcd, + 0x02, 0x00, 0x02, 0x0d, 0x00, 0x1a, 0xb4, 0x0c, 0x4c, 0x29, 0x56, 0xf0, + 0x02, 0x00, 0x4d, 0xcd, 0x0b, 0xcc, 0x02, 0x40, 0x44, 0x36, 0x23, 0xf7, + 0x02, 0x00, 0x47, 0x76, 0x53, 0xe8, 0x02, 0x40, 0x4d, 0xd2, 0x3d, 0xf2, + 0x02, 0x00, 0x42, 0x1d, 0x01, 0xf3, 0x02, 0x40, 0x46, 0xcd, 0x00, 0xff, + 0x02, 0x80, 0x06, 0x4e, 0x6f, 0x53, 0x15, 0xa7, 0x40, 0x44, 0xe6, 0x01, + 0xf1, 0x02, 0x40, 0x05, 0xb2, 0x1f, 0x06, 0x4c, 0xce, 0x41, 0xef, 0x02, + 0x40, 0x52, 0x6b, 0x53, 0x10, 0xa7, 0x00, 0x48, 0x75, 0x53, 0x0b, 0xa7, + 0x40, 0x49, 0xe1, 0x01, 0xc2, 0x02, 0x00, 0x49, 0xfe, 0x13, 0xbf, 0x02, + 0x00, 0x44, 0xf5, 0x38, 0x6a, 0xab, 0x40, 0x54, 0x85, 0x3b, 0xd1, 0x02, + 0x00, 0x04, 0x49, 0x0b, 0x01, 0xff, 0x07, 0xb0, 0x1f, 0x0c, 0x52, 0x6b, + 0x53, 0x13, 0xa7, 0x00, 0x48, 0x75, 0x53, 0xe6, 0x02, 0x40, 0x52, 0x6b, + 0x53, 0x0e, 0xa7, 0x00, 0x48, 0x75, 0x53, 0x09, 0xa7, 0x40, 0x4b, 0xcb, + 0x9b, 0xfc, 0x10, 0x00, 0x4b, 0xcf, 0x28, 0xc0, 0x02, 0x80, 0x06, 0x4b, + 0x16, 0x23, 0xcb, 0x02, 0x40, 0x4c, 0xda, 0x28, 0xb3, 0x07, 0x41, 0x03, + 0x1b, 0x00, 0x46, 0x05, 0x77, 0xec, 0x01, 0xff, 0x05, 0x48, 0x0b, 0x21, + 0x04, 0x08, 0x05, 0x01, 0xff, 0x07, 0xb0, 0x1f, 0x0c, 0x52, 0x6b, 0x53, + 0x16, 0xa7, 0x00, 0x48, 0x75, 0x53, 0xe9, 0x02, 0x40, 0x52, 0x6b, 0x53, + 0x11, 0xa7, 0x00, 0x48, 0x75, 0x53, 0x0c, 0xa7, 0x40, 0x07, 0xb0, 0x1f, + 0x0c, 0x52, 0x6b, 0x53, 0x12, 0xa7, 0x00, 0x48, 0x75, 0x53, 0xe5, 0x02, + 0x40, 0x52, 0x6b, 0x53, 0x0d, 0xa7, 0x00, 0x48, 0x75, 0x53, 0x08, 0xa7, + 0x40, 0x49, 0xe4, 0x42, 0xfa, 0x02, 0x00, 0x48, 0x1d, 0xb5, 0xfc, 0x02, + 0x40, 0x4b, 0xdc, 0x8d, 0xb6, 0x07, 0x01, 0xaf, 0x01, 0xff, 0x02, 0xc6, + 0x00, 0x21, 0x05, 0x3d, 0x01, 0x11, 0x03, 0xa0, 0x14, 0x01, 0xff, 0x49, + 0xe1, 0x01, 0xc5, 0x02, 0x00, 0x44, 0xf5, 0x38, 0xd5, 0x02, 0x40, 0x4a, + 0x61, 0x36, 0xee, 0x02, 0x00, 0x45, 0xea, 0x1a, 0xba, 0x02, 0x40, 0x4e, + 0x0b, 0x00, 0x19, 0xa7, 0x00, 0x45, 0x48, 0x0e, 0x18, 0xa7, 0x00, 0x4c, + 0x32, 0x00, 0x17, 0xa7, 0x40, 0x07, 0xe5, 0x05, 0xcc, 0x02, 0x07, 0xbc, + 0x68, 0xbb, 0x02, 0x0d, 0xbc, 0x83, 0xfd, 0x01, 0x50, 0xd0, 0x04, 0xc6, + 0x02, 0x00, 0x44, 0x51, 0x12, 0x89, 0xa7, 0x00, 0x4b, 0x5e, 0xa2, 0xdf, + 0x02, 0x00, 0x08, 0xf8, 0xcc, 0x01, 0xff, 0x42, 0x92, 0x01, 0x78, 0x1d, + 0x00, 0x49, 0x81, 0xb9, 0x9c, 0xa6, 0x00, 0xb3, 0x01, 0xff, 0x05, 0x5e, + 0x07, 0x06, 0x48, 0x87, 0x8e, 0x9d, 0xa6, 0x40, 0xe1, 0x30, 0xe0, 0x01, + 0xa2, 0xb6, 0x01, 0x43, 0x6d, 0x14, 0x45, 0xe0, 0x01, 0xa4, 0xa3, 0x01, + 0xe5, 0x48, 0xe0, 0x81, 0x82, 0x01, 0x43, 0x26, 0x52, 0x33, 0xe0, 0x01, + 0x42, 0x22, 0x00, 0x43, 0xe0, 0x01, 0xe9, 0x38, 0xe0, 0x81, 0x6d, 0x42, + 0x80, 0x20, 0x4d, 0xe0, 0x01, 0x42, 0x1b, 0x02, 0x39, 0xe0, 0x01, 0xef, + 0x3c, 0xe0, 0x01, 0xb0, 0x51, 0xb3, 0x36, 0xb4, 0x2a, 0xf5, 0x41, 0xe0, + 0x01, 0x42, 0x32, 0x00, 0x32, 0xe0, 0x01, 0xb9, 0x0d, 0xba, 0x01, 0xff, + 0xe5, 0x37, 0xe0, 0x01, 0x42, 0xb0, 0x01, 0x36, 0xe0, 0x41, 0x43, 0x9c, + 0x2b, 0x47, 0xe0, 0x81, 0x04, 0xf5, 0x49, 0xe0, 0x41, 0x4e, 0x7d, 0x75, + 0x6c, 0xe0, 0x41, 0xe5, 0x40, 0xe0, 0x01, 0x42, 0x46, 0x03, 0x44, 0xe0, + 0x41, 0x44, 0xb5, 0x7b, 0x4b, 0xe0, 0x01, 0x42, 0x22, 0x00, 0x46, 0xe0, + 0x01, 0x49, 0xf0, 0xbf, 0x4f, 0xe0, 0xc1, 0x00, 0x4c, 0xda, 0x28, 0x6d, + 0xe0, 0x41, 0x47, 0xc9, 0xc9, 0x50, 0xe0, 0x01, 0xe5, 0x3d, 0xe0, 0x41, + 0xe5, 0x35, 0xe0, 0x41, 0xe6, 0x42, 0xe0, 0x01, 0xec, 0x3a, 0xe0, 0x01, + 0xed, 0x3b, 0xe0, 0x01, 0xf2, 0x3e, 0xe0, 0x01, 0xf3, 0x3f, 0xe0, 0xc1, + 0x00, 0x4f, 0xe7, 0x69, 0x6b, 0xe0, 0x41, 0xe5, 0x34, 0xe0, 0x01, 0x43, + 0xe5, 0xf4, 0x4a, 0xe0, 0x41, 0x47, 0x09, 0xcf, 0x4e, 0xe0, 0x01, 0xe5, + 0x31, 0xe0, 0x01, 0x57, 0x84, 0x08, 0x4c, 0xe0, 0x41, 0x04, 0x27, 0x16, + 0x1d, 0x03, 0xe1, 0x05, 0x01, 0xff, 0x44, 0x2b, 0x30, 0x00, 0xa7, 0x00, + 0x42, 0x7c, 0x00, 0x04, 0xa7, 0x00, 0x42, 0x3d, 0x00, 0x06, 0xa7, 0x00, + 0x45, 0xd3, 0xea, 0x02, 0xa7, 0x40, 0x44, 0x2b, 0x30, 0x01, 0xa7, 0x00, + 0x42, 0x7c, 0x00, 0x05, 0xa7, 0x00, 0x42, 0x3d, 0x00, 0x07, 0xa7, 0x00, + 0x45, 0xd3, 0xea, 0x03, 0xa7, 0x40, 0x4e, 0xf9, 0x13, 0xd3, 0x02, 0x00, + 0x4f, 0x84, 0x72, 0xd2, 0x02, 0x40, 0xe1, 0x2c, 0x1d, 0x80, 0x79, 0xe2, + 0x2e, 0x1d, 0x80, 0x6e, 0xe3, 0xf2, 0xa7, 0x00, 0xe4, 0x30, 0x1d, 0x00, + 0xe5, 0x31, 0x1d, 0x00, 0xe6, 0xf3, 0xa7, 0x00, 0xe7, 0x33, 0x1d, 0x00, + 0xe8, 0x34, 0x1d, 0x80, 0x4f, 0xe9, 0x35, 0x1d, 0x00, 0xea, 0x36, 0x1d, + 0x00, 0xeb, 0x37, 0x1d, 0x00, 0xec, 0x38, 0x1d, 0x00, 0xed, 0x39, 0x1d, + 0x00, 0xee, 0x3a, 0x1d, 0x00, 0xef, 0x3c, 0x1d, 0x80, 0x2e, 0xf0, 0x3e, + 0x1d, 0x00, 0xf1, 0xf4, 0xa7, 0x00, 0xf2, 0x3f, 0x1d, 0x80, 0x14, 0xf3, + 0xf1, 0xa7, 0x00, 0xf4, 0x40, 0x1d, 0x00, 0xf5, 0x41, 0x1d, 0x00, 0xf6, + 0x7d, 0x2c, 0x00, 0xf7, 0x42, 0x1d, 0x40, 0x08, 0xde, 0x14, 0x01, 0xff, + 0xe5, 0x32, 0x1d, 0x00, 0xee, 0x3b, 0x1d, 0x40, 0xf5, 0x3d, 0x1d, 0x40, + 0x4c, 0xda, 0x28, 0xf8, 0xa7, 0x40, 0x47, 0x02, 0xcf, 0x2f, 0x1d, 0x40, + 0xe5, 0x2d, 0x1d, 0x40, 0x05, 0x9e, 0x3f, 0x06, 0x4d, 0x17, 0x84, 0xb5, + 0x07, 0x41, 0x49, 0xe4, 0x42, 0xf9, 0x02, 0x00, 0x48, 0x1d, 0xb5, 0xfb, + 0x02, 0x40, 0x4b, 0xfc, 0x8b, 0xca, 0x02, 0x00, 0x4d, 0x69, 0x85, 0xb8, + 0x07, 0x01, 0x49, 0x62, 0x36, 0xbc, 0x02, 0x40, 0x51, 0xdc, 0x57, 0x43, + 0x16, 0x01, 0xa4, 0x89, 0x03, 0x07, 0xec, 0x05, 0x6d, 0x05, 0x5a, 0x03, + 0x44, 0x0b, 0x40, 0x77, 0x01, 0xff, 0xa1, 0x31, 0xe5, 0x39, 0x16, 0x01, + 0xe9, 0x31, 0x16, 0x81, 0x24, 0xef, 0x3b, 0x16, 0x01, 0xf5, 0x33, 0x16, + 0x81, 0x17, 0x08, 0x22, 0xc1, 0x01, 0xff, 0xec, 0x37, 0x16, 0x81, 0x09, + 0xf2, 0x35, 0x16, 0xc1, 0x00, 0xf2, 0x36, 0x16, 0x41, 0xec, 0x38, 0x16, + 0x41, 0xf5, 0x34, 0x16, 0x41, 0xe9, 0x32, 0x16, 0x41, 0xe1, 0x30, 0x16, + 0x01, 0xe9, 0x3a, 0x16, 0x01, 0xf5, 0x3c, 0x16, 0x41, 0xa1, 0x17, 0x44, + 0x65, 0xf0, 0x44, 0x16, 0x01, 0x02, 0x02, 0x00, 0x01, 0xff, 0x44, 0xe5, + 0x23, 0x3f, 0x16, 0x01, 0x45, 0xec, 0x4b, 0x3e, 0x16, 0x41, 0x47, 0x3d, + 0x16, 0x3d, 0x16, 0x01, 0x4a, 0xfb, 0xaf, 0x40, 0x16, 0x41, 0xe1, 0x00, + 0x16, 0x81, 0x86, 0x02, 0xa2, 0xf9, 0x01, 0xa3, 0xec, 0x01, 0xa4, 0xd3, + 0x01, 0xe5, 0x0a, 0x16, 0x01, 0xa7, 0xc2, 0x01, 0x42, 0x22, 0x00, 0x2e, + 0x16, 0x01, 0xe9, 0x02, 0x16, 0x81, 0xb2, 0x01, 0xaa, 0xa5, 0x01, 0xab, + 0x98, 0x01, 0xac, 0x8b, 0x01, 0x42, 0x6c, 0x00, 0x26, 0x16, 0x01, 0xae, + 0x6d, 0xef, 0x0c, 0x16, 0x01, 0xb0, 0x5d, 0x42, 0x71, 0x00, 0x28, 0x16, + 0x01, 0xb3, 0x45, 0xb4, 0x2c, 0xf5, 0x04, 0x16, 0x81, 0x23, 0xb6, 0x06, + 0x42, 0xbc, 0x22, 0x27, 0x16, 0x41, 0xe1, 0x2a, 0x16, 0x01, 0x07, 0x23, + 0xc1, 0x01, 0xff, 0xec, 0x08, 0x16, 0x81, 0x09, 0xf2, 0x06, 0x16, 0xc1, + 0x00, 0xf2, 0x07, 0x16, 0x41, 0xec, 0x09, 0x16, 0x41, 0xf5, 0x05, 0x16, + 0x41, 0xe1, 0x1d, 0x16, 0x01, 0x42, 0x22, 0x00, 0x1e, 0x16, 0x01, 0xb4, + 0x01, 0xff, 0xe1, 0x18, 0x16, 0x01, 0x42, 0x22, 0x00, 0x19, 0x16, 0x41, + 0xe1, 0x2d, 0x16, 0x01, 0x42, 0x22, 0x00, 0x2b, 0x16, 0x01, 0x42, 0x40, + 0x06, 0x2c, 0x16, 0x41, 0xe1, 0x22, 0x16, 0x01, 0x42, 0x22, 0x00, 0x23, + 0x16, 0x41, 0xe1, 0x21, 0x16, 0x01, 0x42, 0x24, 0x02, 0x12, 0x16, 0x01, + 0x42, 0x2a, 0x05, 0x1c, 0x16, 0x01, 0x42, 0xbc, 0x22, 0x17, 0x16, 0x41, + 0xe1, 0x29, 0x16, 0x01, 0x42, 0x74, 0x00, 0x2f, 0x16, 0x41, 0xe1, 0x0e, + 0x16, 0x01, 0x42, 0x22, 0x00, 0x0f, 0x16, 0x41, 0xe1, 0x15, 0x16, 0x01, + 0x42, 0x22, 0x00, 0x16, 0x16, 0x41, 0xe9, 0x03, 0x16, 0x41, 0xe1, 0x10, + 0x16, 0x01, 0x42, 0x22, 0x00, 0x11, 0x16, 0x41, 0xe1, 0x1f, 0x16, 0x01, + 0xa4, 0x06, 0x42, 0x22, 0x00, 0x20, 0x16, 0x41, 0xe1, 0x1a, 0x16, 0x01, + 0x42, 0x22, 0x00, 0x1b, 0x16, 0x41, 0xe1, 0x13, 0x16, 0x01, 0x42, 0x22, + 0x00, 0x14, 0x16, 0x41, 0xe1, 0x24, 0x16, 0x01, 0x42, 0x22, 0x00, 0x25, + 0x16, 0x41, 0xe1, 0x01, 0x16, 0x01, 0xe9, 0x0b, 0x16, 0x01, 0xf5, 0x0d, + 0x16, 0x41, 0x44, 0x73, 0x20, 0x41, 0x16, 0x01, 0x05, 0xf0, 0x06, 0x06, + 0x4b, 0x09, 0xa1, 0x42, 0x16, 0x41, 0x45, 0x12, 0x0b, 0x58, 0x16, 0x01, + 0xa6, 0x2e, 0x44, 0xcf, 0x2a, 0x59, 0x16, 0x01, 0x43, 0x0e, 0x0b, 0x51, + 0x16, 0x01, 0xb3, 0x14, 0xb4, 0x06, 0x44, 0x43, 0x1e, 0x50, 0x16, 0x41, + 0x44, 0x25, 0x01, 0x53, 0x16, 0x01, 0x42, 0x15, 0x02, 0x52, 0x16, 0x41, + 0x44, 0xc9, 0x1d, 0x57, 0x16, 0x01, 0x42, 0x01, 0x26, 0x56, 0x16, 0x41, + 0x43, 0xd2, 0x05, 0x55, 0x16, 0x01, 0x43, 0xf6, 0x06, 0x54, 0x16, 0x41, + 0x42, 0x1b, 0x08, 0xa7, 0x22, 0x00, 0x4d, 0x00, 0x88, 0x3b, 0xf9, 0x41, + 0x80, 0x01, 0xff, 0x43, 0x15, 0x80, 0xf4, 0xf4, 0x01, 0x5d, 0xe1, 0x16, + 0xf2, 0xf4, 0x41, 0x03, 0xf6, 0x7a, 0xe2, 0x01, 0x02, 0x75, 0x06, 0xb4, + 0x01, 0xa4, 0x84, 0x01, 0xac, 0x66, 0xae, 0x0d, 0x44, 0xdc, 0x52, 0x9e, + 0xfa, 0xc1, 0x00, 0x45, 0xcc, 0x1c, 0xa9, 0xfa, 0x41, 0xa9, 0x43, 0x02, + 0xef, 0x02, 0x04, 0xf9, 0xff, 0x29, 0x40, 0x80, 0x06, 0x4d, 0x21, 0x80, + 0x13, 0x22, 0x40, 0x44, 0x5a, 0x03, 0x12, 0x22, 0x80, 0x06, 0x45, 0x35, + 0x23, 0x42, 0x22, 0x40, 0x80, 0x01, 0xff, 0x4b, 0xcb, 0x1e, 0x3a, 0x2a, + 0x00, 0x05, 0x51, 0x00, 0x01, 0xff, 0x4b, 0xdb, 0x5e, 0x29, 0x2a, 0x00, + 0x49, 0x9f, 0x12, 0x2a, 0x2a, 0x00, 0x4c, 0xcb, 0x8e, 0x2b, 0x2a, 0x00, + 0x4b, 0x27, 0xa2, 0x2c, 0x2a, 0x40, 0x43, 0x96, 0x27, 0x90, 0xf6, 0x01, + 0x44, 0x3c, 0x64, 0xbd, 0xf4, 0x01, 0x44, 0x68, 0xe1, 0xd5, 0xf5, 0x41, + 0x06, 0x52, 0x5c, 0x0c, 0x46, 0x82, 0xdd, 0x0c, 0xf3, 0x01, 0x46, 0x37, + 0x4c, 0xa5, 0x20, 0x40, 0x46, 0xf2, 0xc2, 0x96, 0xfa, 0x01, 0x45, 0x44, + 0x71, 0x96, 0xf3, 0x41, 0x04, 0x80, 0x02, 0x06, 0x58, 0xbe, 0x29, 0xef, + 0x22, 0x40, 0x43, 0x23, 0x0a, 0xb7, 0x00, 0x00, 0x56, 0x37, 0x35, 0xe6, + 0xfb, 0x01, 0x57, 0xdc, 0x30, 0xe7, 0xfb, 0x01, 0x06, 0x38, 0x89, 0x01, + 0xff, 0x48, 0x08, 0xc7, 0x0c, 0xcc, 0x01, 0x5a, 0x88, 0x22, 0xc2, 0xfb, + 0x41, 0x80, 0x1b, 0xaf, 0x01, 0xff, 0x45, 0x59, 0x03, 0xb5, 0x00, 0x00, + 0x42, 0xb7, 0x05, 0xa0, 0xf9, 0x01, 0x45, 0x1a, 0x3d, 0xa4, 0xf3, 0x01, + 0x45, 0x8b, 0xcb, 0x2c, 0xf5, 0x41, 0x4b, 0xc3, 0x9a, 0x49, 0x24, 0x00, + 0x4c, 0x27, 0x93, 0x48, 0x24, 0x40, 0x07, 0xec, 0x05, 0xbc, 0x02, 0x05, + 0x5a, 0x03, 0x9a, 0x02, 0x05, 0x3b, 0x2d, 0xfd, 0x01, 0x0b, 0x40, 0x77, + 0x01, 0xff, 0xe1, 0x54, 0x6f, 0x81, 0xce, 0x01, 0xe5, 0x5d, 0x6f, 0x81, + 0xae, 0x01, 0xe9, 0x61, 0x6f, 0x81, 0x7a, 0xee, 0x7d, 0x6f, 0x81, 0x71, + 0xef, 0x59, 0x6f, 0x81, 0x56, 0x4a, 0x9b, 0xb0, 0x78, 0x6f, 0x81, 0x4b, + 0xf5, 0x6a, 0x6f, 0x81, 0x1e, 0x42, 0x1e, 0xf5, 0x83, 0x6f, 0x01, 0xf7, + 0x5c, 0x6f, 0x81, 0x0f, 0xf9, 0x71, 0x6f, 0xc1, 0x00, 0xe9, 0x72, 0x6f, + 0x01, 0x42, 0x3e, 0x00, 0x80, 0x6f, 0x41, 0xef, 0x5b, 0x6f, 0x41, 0xe1, + 0x6b, 0x6f, 0x81, 0x1a, 0x42, 0x12, 0x0b, 0x6f, 0x6f, 0x01, 0xe9, 0x87, + 0x6f, 0x01, 0x42, 0x1d, 0x01, 0x70, 0x6f, 0x01, 0x42, 0xc1, 0x18, 0x7f, + 0x6f, 0x01, 0xf5, 0x6e, 0x6f, 0x41, 0xee, 0x6c, 0x6f, 0xc1, 0x00, 0xe7, + 0x6d, 0x6f, 0x41, 0xf2, 0x76, 0x6f, 0x41, 0xa5, 0x0c, 0xe7, 0x81, 0x6f, + 0x01, 0xef, 0x5a, 0x6f, 0x01, 0xf5, 0x7c, 0x6f, 0x41, 0xf2, 0x82, 0x6f, + 0x01, 0xf9, 0x60, 0x6f, 0x41, 0xe7, 0x7e, 0x6f, 0x41, 0xe1, 0x62, 0x6f, + 0x81, 0x21, 0xe5, 0x66, 0x6f, 0x01, 0xe7, 0x84, 0x6f, 0x01, 0xe9, 0x67, + 0x6f, 0x01, 0x42, 0x1d, 0x01, 0x69, 0x6f, 0x01, 0xef, 0x65, 0x6f, 0x81, + 0x04, 0xf5, 0x68, 0x6f, 0x41, 0x42, 0x1d, 0x01, 0x86, 0x6f, 0x41, 0xee, + 0x63, 0x6f, 0xc1, 0x00, 0xe7, 0x64, 0x6f, 0x41, 0xe1, 0x85, 0x6f, 0x01, + 0xe9, 0x7a, 0x6f, 0x01, 0xee, 0x5e, 0x6f, 0x81, 0x09, 0xf2, 0x77, 0x6f, + 0xc1, 0x00, 0xf2, 0x75, 0x6f, 0x41, 0xe7, 0x5f, 0x6f, 0x41, 0xe1, 0x55, + 0x6f, 0x01, 0xe5, 0x73, 0x6f, 0x81, 0x17, 0x42, 0xdc, 0x49, 0x56, 0x6f, + 0x01, 0xe9, 0x79, 0x6f, 0x01, 0xee, 0x57, 0x6f, 0x81, 0x04, 0xf5, 0x7b, + 0x6f, 0x41, 0xe7, 0x58, 0x6f, 0x41, 0xe5, 0x74, 0x6f, 0x41, 0x45, 0x5c, + 0x00, 0x91, 0x6f, 0x01, 0x45, 0x20, 0x07, 0x92, 0x6f, 0x01, 0x45, 0xc8, + 0x00, 0x8f, 0x6f, 0x01, 0x49, 0xdd, 0x73, 0x90, 0x6f, 0x41, 0x4a, 0xe5, + 0xa7, 0x51, 0x6f, 0x01, 0x56, 0x27, 0x33, 0x4f, 0x6f, 0x01, 0x09, 0xa3, + 0xbe, 0x01, 0xff, 0x4a, 0xe5, 0xa7, 0x53, 0x6f, 0x01, 0x47, 0x59, 0xd7, + 0x52, 0x6f, 0x41, 0xa1, 0x82, 0x04, 0xa2, 0xf5, 0x03, 0xa4, 0xc1, 0x03, + 0x42, 0x0c, 0x08, 0x07, 0x6f, 0x01, 0xa7, 0xa7, 0x03, 0xa8, 0x9a, 0x03, + 0x42, 0x1b, 0x02, 0x1e, 0x6f, 0x01, 0xac, 0xfb, 0x02, 0xad, 0xee, 0x02, + 0xae, 0xb5, 0x02, 0xb0, 0xa8, 0x02, 0xb1, 0x9b, 0x02, 0xb2, 0xec, 0x01, + 0xb3, 0xd3, 0x01, 0xb4, 0x7f, 0xb6, 0x73, 0x42, 0xa9, 0x01, 0x42, 0x6f, + 0x01, 0x42, 0xed, 0x26, 0x27, 0x6f, 0x01, 0x03, 0x24, 0x7a, 0x32, 0xba, + 0x01, 0xff, 0xe1, 0x3b, 0x6f, 0x01, 0x42, 0x22, 0x00, 0x35, 0x6f, 0x01, + 0xb3, 0x19, 0xba, 0x01, 0xff, 0xe1, 0x3d, 0x6f, 0x01, 0xb3, 0x06, 0x42, + 0xbc, 0x22, 0x40, 0x6f, 0x41, 0xe1, 0x3e, 0x6f, 0x01, 0x42, 0xbc, 0x22, + 0x41, 0x6f, 0x41, 0xe1, 0x3c, 0x6f, 0x01, 0x42, 0x22, 0x00, 0x36, 0x6f, + 0x41, 0x44, 0x91, 0xef, 0x31, 0x6f, 0x01, 0x42, 0x1b, 0x02, 0x20, 0x6f, + 0x01, 0x43, 0x01, 0x46, 0x12, 0x6f, 0x01, 0x42, 0xbb, 0x09, 0x02, 0x6f, + 0x01, 0xb4, 0x01, 0xff, 0xe1, 0x0d, 0x6f, 0x01, 0xb3, 0x06, 0x42, 0x12, + 0x00, 0x0c, 0x6f, 0x41, 0xe1, 0x39, 0x6f, 0x01, 0x42, 0x22, 0x00, 0x30, + 0x6f, 0x41, 0xe1, 0x08, 0x6f, 0x01, 0x42, 0x0c, 0x08, 0x09, 0x6f, 0x41, + 0xe1, 0x0a, 0x6f, 0x01, 0xe5, 0x48, 0x6f, 0x01, 0x02, 0x2a, 0x09, 0x3c, + 0x04, 0x00, 0x20, 0x1c, 0xb3, 0x06, 0x42, 0x12, 0x00, 0x0e, 0x6f, 0x41, + 0xe1, 0x37, 0x6f, 0x01, 0xe5, 0x49, 0x6f, 0x01, 0x42, 0x22, 0x00, 0x2e, + 0x6f, 0x01, 0x42, 0x40, 0x06, 0x2a, 0x6f, 0x41, 0xd2, 0x93, 0x6f, 0x01, + 0xd3, 0x94, 0x6f, 0x01, 0xd4, 0x95, 0x6f, 0x01, 0xd5, 0x96, 0x6f, 0x01, + 0xd6, 0x97, 0x6f, 0x01, 0xd7, 0x98, 0x6f, 0x01, 0xd8, 0x99, 0x6f, 0x41, + 0xe1, 0x1a, 0x6f, 0x01, 0x42, 0xbc, 0x22, 0x1c, 0x6f, 0x41, 0xe1, 0x3a, + 0x6f, 0x01, 0x42, 0x22, 0x00, 0x33, 0x6f, 0x01, 0x42, 0x40, 0x06, 0x34, + 0x6f, 0x01, 0x42, 0x7e, 0x1a, 0x46, 0x6f, 0x41, 0x09, 0x34, 0xb8, 0x06, + 0x42, 0x77, 0x00, 0x4a, 0x6f, 0x41, 0x04, 0x00, 0x20, 0x06, 0x43, 0xa4, + 0x02, 0x32, 0x6f, 0x41, 0xd1, 0x9a, 0x6f, 0x01, 0xd2, 0x9b, 0x6f, 0x01, + 0xd4, 0x9c, 0x6f, 0x01, 0xd5, 0x9d, 0x6f, 0x01, 0xd6, 0x9e, 0x6f, 0x01, + 0xd8, 0x9f, 0x6f, 0x41, 0xe1, 0x21, 0x6f, 0x01, 0x42, 0x24, 0x02, 0x22, + 0x6f, 0x41, 0xe1, 0x00, 0x6f, 0x01, 0x42, 0x74, 0x00, 0x03, 0x6f, 0x41, + 0xe1, 0x10, 0x6f, 0x81, 0x2b, 0xa7, 0x1f, 0x42, 0x22, 0x00, 0x11, 0x6f, + 0x01, 0xae, 0x0d, 0xb9, 0x01, 0xff, 0xe1, 0x2c, 0x6f, 0x01, 0x42, 0x22, + 0x00, 0x2d, 0x6f, 0x41, 0xe1, 0x14, 0x6f, 0x01, 0x42, 0x22, 0x00, 0x15, + 0x6f, 0x41, 0xe1, 0x23, 0x6f, 0x01, 0x42, 0x22, 0x00, 0x24, 0x6f, 0x41, + 0x4a, 0x62, 0x5c, 0x50, 0x6f, 0x41, 0xe1, 0x04, 0x6f, 0x01, 0x42, 0x22, + 0x00, 0x05, 0x6f, 0x41, 0xe1, 0x16, 0x6f, 0x01, 0xa8, 0x06, 0x42, 0xbc, + 0x22, 0x17, 0x6f, 0x41, 0xe1, 0x18, 0x6f, 0x01, 0x42, 0xbc, 0x22, 0x19, + 0x6f, 0x41, 0xe1, 0x26, 0x6f, 0x01, 0x42, 0x22, 0x00, 0x44, 0x6f, 0x41, + 0xe1, 0x1f, 0x6f, 0x01, 0xa8, 0x01, 0xff, 0xe1, 0x28, 0x6f, 0x01, 0x42, + 0x22, 0x00, 0x29, 0x6f, 0x41, 0xe1, 0x0b, 0x6f, 0x01, 0x42, 0xf0, 0x10, + 0x0f, 0x6f, 0x01, 0x02, 0x2a, 0x09, 0x19, 0xba, 0x01, 0xff, 0xe1, 0x38, + 0x6f, 0x01, 0x42, 0x22, 0x00, 0x2f, 0x6f, 0x01, 0x42, 0x7e, 0x1a, 0x47, + 0x6f, 0x01, 0x42, 0x59, 0x00, 0x2b, 0x6f, 0x41, 0xe1, 0x1b, 0x6f, 0x01, + 0x42, 0xbc, 0x22, 0x1d, 0x6f, 0x41, 0xe1, 0x01, 0x6f, 0x01, 0x42, 0x0d, + 0x00, 0x45, 0x6f, 0x41, 0xe8, 0x43, 0x6f, 0x01, 0x07, 0xa4, 0x80, 0x01, + 0xff, 0x42, 0x6c, 0x00, 0x06, 0x6f, 0x01, 0xae, 0x06, 0x43, 0x05, 0x9a, + 0x3f, 0x6f, 0x41, 0xe1, 0x13, 0x6f, 0x01, 0x42, 0x24, 0x02, 0x25, 0x6f, + 0x41, 0xa1, 0xcf, 0x1c, 0x09, 0x26, 0xb7, 0xbe, 0x1c, 0xa4, 0xd1, 0x16, + 0x0b, 0xf7, 0x9b, 0xba, 0x12, 0xac, 0xa5, 0x12, 0x42, 0xc3, 0x07, 0xdd, + 0xf4, 0x01, 0xae, 0xa8, 0x07, 0xb2, 0x5c, 0x4d, 0xea, 0x88, 0x95, 0x00, + 0x00, 0xb4, 0x01, 0xff, 0x42, 0x5f, 0x03, 0xc3, 0xce, 0x01, 0xb2, 0x01, + 0xff, 0x05, 0x36, 0x00, 0x04, 0xef, 0x87, 0xf6, 0x41, 0x45, 0x53, 0x23, + 0xd1, 0x23, 0x00, 0x0a, 0x49, 0xad, 0x2c, 0x49, 0x01, 0xbe, 0xd9, 0x23, + 0x00, 0x4f, 0x0b, 0x73, 0xd3, 0x23, 0x00, 0xb4, 0x01, 0xff, 0x48, 0xf0, + 0xc5, 0xd8, 0x23, 0x00, 0x46, 0x98, 0xdf, 0xd7, 0x23, 0x00, 0x0a, 0xb1, + 0xb3, 0x01, 0xff, 0x46, 0x9d, 0x0a, 0xd6, 0x23, 0x00, 0x49, 0xe4, 0x1c, + 0xd5, 0x23, 0x40, 0x45, 0x33, 0x07, 0xd2, 0x23, 0x00, 0x4a, 0x49, 0xb2, + 0xd4, 0x23, 0x40, 0x44, 0xf8, 0x62, 0x3f, 0x26, 0x00, 0x06, 0xc0, 0xde, + 0x06, 0x46, 0x1e, 0x1d, 0xdc, 0xf9, 0x41, 0x08, 0xe0, 0xc4, 0xc2, 0x01, + 0x0d, 0xaf, 0x83, 0x01, 0xff, 0x07, 0xec, 0x05, 0x0d, 0x4b, 0x03, 0xa3, + 0x9e, 0x09, 0xc1, 0x00, 0x42, 0x87, 0xf3, 0x9f, 0x09, 0x41, 0xe1, 0x80, + 0x09, 0x01, 0x42, 0x16, 0x00, 0x86, 0x09, 0x81, 0x9a, 0x01, 0x42, 0xf0, + 0x10, 0x9d, 0x09, 0x01, 0xe5, 0x81, 0x09, 0x01, 0x43, 0x14, 0x52, 0x92, + 0x09, 0x01, 0xe9, 0x82, 0x09, 0x01, 0xab, 0x7a, 0x42, 0x74, 0x00, 0x90, + 0x09, 0x01, 0x42, 0x6c, 0x00, 0x89, 0x09, 0x01, 0xae, 0x56, 0xef, 0x83, + 0x09, 0x01, 0x42, 0xbb, 0x09, 0x88, 0x09, 0x01, 0x42, 0x43, 0x14, 0x97, + 0x09, 0x01, 0x42, 0x71, 0x00, 0x8e, 0x09, 0x81, 0x39, 0xb3, 0x28, 0xb4, + 0x0c, 0x42, 0xa9, 0x01, 0x85, 0x09, 0x01, 0x42, 0xbc, 0x22, 0x84, 0x09, + 0x41, 0xe1, 0x98, 0x09, 0x81, 0x0f, 0xe5, 0x9a, 0x09, 0x81, 0x04, 0xef, + 0x9c, 0x09, 0x41, 0x42, 0x87, 0xf3, 0x9b, 0x09, 0x41, 0x42, 0x87, 0xf3, + 0x99, 0x09, 0x41, 0xe1, 0x93, 0x09, 0x81, 0x04, 0xe5, 0x95, 0x09, 0x41, + 0x42, 0x87, 0xf3, 0x94, 0x09, 0x41, 0x42, 0x87, 0xf3, 0x8f, 0x09, 0x41, + 0xe1, 0x8a, 0x09, 0x81, 0x0b, 0xe5, 0x8c, 0x09, 0xc1, 0x00, 0x42, 0x87, + 0xf3, 0x8d, 0x09, 0x41, 0x42, 0x87, 0xf3, 0x8b, 0x09, 0x41, 0xe1, 0x96, + 0x09, 0x01, 0x42, 0x22, 0x00, 0x91, 0x09, 0x41, 0x42, 0x87, 0xf3, 0x87, + 0x09, 0x41, 0x09, 0x1e, 0x5a, 0x99, 0x04, 0xac, 0x80, 0x03, 0x07, 0xff, + 0x39, 0x01, 0xff, 0x45, 0x12, 0x0b, 0xc7, 0x09, 0x81, 0xd8, 0x02, 0xa6, + 0xfc, 0x01, 0x44, 0xcf, 0x2a, 0xc8, 0x09, 0x81, 0xd9, 0x01, 0x43, 0x0e, + 0x0b, 0xc0, 0x09, 0x81, 0xbb, 0x01, 0xb3, 0x67, 0xb4, 0x01, 0xff, 0x42, + 0x92, 0x01, 0xc9, 0x09, 0x81, 0x57, 0xa8, 0x2b, 0xb7, 0x01, 0xff, 0x44, + 0xcb, 0x1d, 0xca, 0x09, 0x81, 0x1b, 0xef, 0xc1, 0x09, 0xc1, 0x00, 0x80, + 0x01, 0xff, 0x47, 0x71, 0x11, 0xd3, 0x09, 0x81, 0x06, 0x48, 0x40, 0x5e, + 0xdc, 0x09, 0x41, 0x49, 0x3f, 0x5e, 0xee, 0x09, 0x41, 0x49, 0x3f, 0x5e, + 0xe5, 0x09, 0x41, 0x44, 0x7b, 0x11, 0xcb, 0x09, 0x81, 0x1d, 0x43, 0x26, + 0x01, 0xc2, 0x09, 0xc1, 0x00, 0x80, 0x01, 0xff, 0x47, 0x71, 0x11, 0xd4, + 0x09, 0x81, 0x06, 0x48, 0x40, 0x5e, 0xdd, 0x09, 0x41, 0x49, 0x3f, 0x5e, + 0xef, 0x09, 0x41, 0x49, 0x3f, 0x5e, 0xe6, 0x09, 0x41, 0x49, 0x3f, 0x5e, + 0xe4, 0x09, 0x41, 0x44, 0xc9, 0x1d, 0xc6, 0x09, 0x81, 0x29, 0x42, 0x01, + 0x26, 0xc5, 0x09, 0xc1, 0x00, 0x80, 0x0d, 0x42, 0x7d, 0x11, 0xce, 0x09, + 0xc1, 0x00, 0x49, 0x3f, 0x5e, 0xe9, 0x09, 0x41, 0x47, 0x71, 0x11, 0xd7, + 0x09, 0x81, 0x06, 0x48, 0x40, 0x5e, 0xe0, 0x09, 0x41, 0x49, 0x3f, 0x5e, + 0xf2, 0x09, 0x41, 0x80, 0x0d, 0x42, 0x7d, 0x11, 0xcf, 0x09, 0xc1, 0x00, + 0x49, 0x3f, 0x5e, 0xea, 0x09, 0x41, 0x47, 0x71, 0x11, 0xd8, 0x09, 0x81, + 0x06, 0x48, 0x40, 0x5e, 0xe1, 0x09, 0x41, 0x49, 0x3f, 0x5e, 0xf3, 0x09, + 0x41, 0x80, 0x01, 0xff, 0x47, 0x71, 0x11, 0xd2, 0x09, 0x81, 0x06, 0x48, + 0x40, 0x5e, 0xdb, 0x09, 0x41, 0x49, 0x3f, 0x5e, 0xed, 0x09, 0x41, 0x80, + 0x06, 0x4b, 0xf5, 0xa3, 0xec, 0x09, 0x41, 0x47, 0x71, 0x11, 0xda, 0x09, + 0x81, 0x06, 0x48, 0x40, 0x5e, 0xe3, 0x09, 0x41, 0x49, 0x3f, 0x5e, 0xf5, + 0x09, 0x41, 0xa9, 0x2d, 0xaf, 0x01, 0xff, 0x43, 0x7c, 0x11, 0xcc, 0x09, + 0x81, 0x1d, 0x42, 0x42, 0x00, 0xc3, 0x09, 0xc1, 0x00, 0x80, 0x01, 0xff, + 0x47, 0x71, 0x11, 0xd5, 0x09, 0x81, 0x06, 0x48, 0x40, 0x5e, 0xde, 0x09, + 0x41, 0x49, 0x3f, 0x5e, 0xf0, 0x09, 0x41, 0x49, 0x3f, 0x5e, 0xe7, 0x09, + 0x41, 0x43, 0x52, 0x4d, 0xcd, 0x09, 0x81, 0x1d, 0x42, 0x32, 0x00, 0xc4, + 0x09, 0xc1, 0x00, 0x80, 0x01, 0xff, 0x47, 0x71, 0x11, 0xd6, 0x09, 0x81, + 0x06, 0x48, 0x40, 0x5e, 0xdf, 0x09, 0x41, 0x49, 0x3f, 0x5e, 0xf1, 0x09, + 0x41, 0x49, 0x3f, 0x5e, 0xe8, 0x09, 0x41, 0x80, 0x06, 0x4a, 0xf6, 0xa3, + 0xeb, 0x09, 0x41, 0x47, 0x71, 0x11, 0xd9, 0x09, 0x81, 0x06, 0x48, 0x40, + 0x5e, 0xe2, 0x09, 0x41, 0x49, 0x3f, 0x5e, 0xf4, 0x09, 0x41, 0x06, 0xed, + 0x05, 0x11, 0x08, 0xa4, 0x3f, 0x01, 0xff, 0x43, 0x58, 0xf4, 0xbf, 0x09, + 0x01, 0x43, 0x29, 0x5e, 0xbe, 0x09, 0x41, 0xe1, 0xa0, 0x09, 0x81, 0x76, + 0x42, 0x16, 0x00, 0xa6, 0x09, 0x01, 0x42, 0xf0, 0x10, 0xb7, 0x09, 0x01, + 0xe5, 0xa1, 0x09, 0x01, 0x43, 0x14, 0x52, 0xae, 0x09, 0x01, 0xe9, 0xa2, + 0x09, 0x01, 0xab, 0x50, 0x42, 0x74, 0x00, 0xac, 0x09, 0x01, 0x42, 0x6c, + 0x00, 0xa8, 0x09, 0x01, 0xae, 0x3a, 0xef, 0xa3, 0x09, 0x01, 0x42, 0xbb, + 0x09, 0xa7, 0x09, 0x01, 0x42, 0x43, 0x14, 0xb3, 0x09, 0x01, 0x42, 0x71, + 0x00, 0xab, 0x09, 0x01, 0xb3, 0x1a, 0xb4, 0x0c, 0x42, 0xa9, 0x01, 0xa5, + 0x09, 0x01, 0x42, 0xbc, 0x22, 0xa4, 0x09, 0x41, 0xe1, 0xb4, 0x09, 0x01, + 0xe5, 0xb5, 0x09, 0x01, 0xef, 0xb6, 0x09, 0x41, 0xe1, 0xaf, 0x09, 0x01, + 0xe5, 0xb1, 0x09, 0x41, 0xe1, 0xa9, 0x09, 0x01, 0xe5, 0xaa, 0x09, 0x41, + 0xe1, 0xb2, 0x09, 0x01, 0x42, 0x22, 0x00, 0xad, 0x09, 0x41, 0x49, 0x2f, + 0x94, 0xb0, 0x09, 0x41, 0xa5, 0x47, 0xa6, 0x39, 0x4d, 0x60, 0x86, 0xfe, + 0x09, 0x01, 0x04, 0x0e, 0x0b, 0x23, 0xb3, 0x15, 0xb4, 0x01, 0xff, 0x4b, + 0x7e, 0x79, 0xff, 0x09, 0x01, 0x4d, 0xc9, 0x83, 0xf8, 0x09, 0x01, 0x4b, + 0x34, 0xa5, 0xf7, 0x09, 0x41, 0x4d, 0x7c, 0x79, 0xfc, 0x09, 0x01, 0x4b, + 0xd0, 0x9d, 0xfb, 0x09, 0x41, 0x44, 0x22, 0x00, 0xbd, 0x09, 0x01, 0x47, + 0x81, 0x79, 0xf6, 0x09, 0x41, 0x4c, 0x7b, 0x90, 0xfa, 0x09, 0x01, 0x4c, + 0x93, 0x93, 0xf9, 0x09, 0x41, 0x4d, 0x0a, 0x84, 0xfd, 0x09, 0x01, 0x4e, + 0x7b, 0x79, 0xbc, 0x09, 0x41, 0x0b, 0xce, 0x9a, 0x0c, 0x57, 0xc8, 0x2f, + 0x4e, 0xf5, 0x01, 0x48, 0x77, 0x4b, 0xb9, 0xf6, 0x41, 0x11, 0x41, 0x59, + 0xad, 0x0a, 0x06, 0xef, 0x06, 0xeb, 0x09, 0x0a, 0x81, 0xb1, 0x01, 0xff, + 0x90, 0xf5, 0x04, 0x91, 0x01, 0xff, 0x90, 0xb3, 0x04, 0x91, 0xf4, 0x03, + 0x92, 0xb5, 0x03, 0x93, 0xf6, 0x02, 0x94, 0xb7, 0x02, 0x95, 0xf8, 0x01, + 0x96, 0xb9, 0x01, 0x97, 0x71, 0x98, 0x33, 0x99, 0x01, 0xff, 0x45, 0x0e, + 0xe2, 0x86, 0xe8, 0x01, 0x46, 0xa2, 0xd8, 0xb1, 0xe8, 0x01, 0x45, 0x8b, + 0xe2, 0xb6, 0xe8, 0x01, 0x45, 0xb3, 0xe2, 0x75, 0xe8, 0x01, 0x45, 0x0d, + 0xe3, 0x0f, 0xe8, 0x01, 0x44, 0xd5, 0xed, 0x2c, 0xe8, 0x01, 0x45, 0x3a, + 0xe3, 0x35, 0xe8, 0x01, 0x45, 0x53, 0xe3, 0x61, 0xe8, 0x41, 0x45, 0xff, + 0xe1, 0x42, 0xe8, 0x01, 0x44, 0x09, 0xed, 0x43, 0xe8, 0x01, 0x44, 0x69, + 0xed, 0xb9, 0xe8, 0x01, 0x4b, 0x87, 0x98, 0x82, 0xe8, 0x01, 0x46, 0xe4, + 0xd8, 0x89, 0xe8, 0x01, 0x44, 0x11, 0xee, 0xba, 0xe8, 0x01, 0x44, 0x08, + 0xd9, 0x6a, 0xe8, 0x01, 0x46, 0x2c, 0xd9, 0x9b, 0xe8, 0x01, 0x46, 0x44, + 0xd9, 0x97, 0xe8, 0x01, 0x46, 0x56, 0xd9, 0x1a, 0xe8, 0x41, 0x46, 0x84, + 0xd8, 0xc2, 0xe8, 0x01, 0x44, 0x2d, 0xed, 0xad, 0xe8, 0x01, 0x45, 0x7c, + 0xe2, 0x99, 0xe8, 0x81, 0x2f, 0x45, 0xc2, 0xe2, 0xbc, 0xe8, 0x01, 0x45, + 0xef, 0xe2, 0x9a, 0xe8, 0x81, 0x1e, 0x49, 0x76, 0xb5, 0x52, 0xe8, 0x01, + 0x44, 0x2d, 0xee, 0x68, 0xe8, 0x01, 0x47, 0x61, 0xce, 0x8b, 0xe8, 0x01, + 0x44, 0x8d, 0xee, 0x2d, 0xe8, 0x01, 0x45, 0xb2, 0xe3, 0x07, 0xe8, 0x41, + 0xef, 0x9a, 0xe8, 0x41, 0xef, 0x99, 0xe8, 0x41, 0x45, 0x1d, 0xe2, 0x50, + 0xe8, 0x01, 0x4a, 0xc3, 0xa6, 0x9c, 0xe8, 0x01, 0x45, 0x9a, 0xe2, 0x31, + 0xe8, 0x01, 0x44, 0x75, 0xed, 0x25, 0xe8, 0x01, 0x46, 0xf0, 0xd8, 0xc0, + 0xe8, 0x01, 0x44, 0x05, 0xee, 0x27, 0xe8, 0x01, 0x46, 0x02, 0xd9, 0x87, + 0xe8, 0x01, 0x46, 0x1a, 0xd9, 0x88, 0xe8, 0x01, 0x44, 0x95, 0xee, 0x85, + 0xe8, 0x01, 0x45, 0xcb, 0xe3, 0x67, 0xe8, 0x41, 0x45, 0xfa, 0xe1, 0x1e, + 0xe8, 0x01, 0x44, 0x3d, 0xed, 0xbb, 0xe8, 0x01, 0x45, 0x86, 0xe2, 0xb5, + 0xe8, 0x01, 0x44, 0x87, 0x98, 0x3c, 0xe8, 0x01, 0x46, 0xde, 0xd8, 0x19, + 0xe8, 0x01, 0x44, 0xed, 0xed, 0x83, 0xe8, 0x01, 0x47, 0x53, 0xce, 0x7c, + 0xe8, 0x01, 0x45, 0x62, 0xe3, 0x4e, 0xe8, 0x01, 0x45, 0x8f, 0xe3, 0xa5, + 0xe8, 0x01, 0x47, 0x6f, 0xce, 0x7e, 0xe8, 0x41, 0x44, 0xd9, 0xec, 0x6e, + 0xe8, 0x01, 0x45, 0x4f, 0xe2, 0x58, 0xe8, 0x01, 0x4a, 0xd7, 0xa6, 0x9e, + 0xe8, 0x01, 0x45, 0xc7, 0xe2, 0x10, 0xe8, 0x01, 0x45, 0x03, 0xe3, 0xbe, + 0xe8, 0x01, 0x45, 0x1c, 0xe3, 0x93, 0xe8, 0x01, 0x46, 0x0e, 0xd9, 0x7b, + 0xe8, 0x01, 0x43, 0xce, 0xf3, 0x28, 0xe8, 0x01, 0x45, 0x85, 0xe3, 0xa8, + 0xe8, 0x01, 0x46, 0x5c, 0xd9, 0xb7, 0xe8, 0x41, 0x45, 0x13, 0xe2, 0x72, + 0xe8, 0x01, 0x44, 0x19, 0xed, 0x2a, 0xe8, 0x01, 0x45, 0x6d, 0xe2, 0x9f, + 0xe8, 0x01, 0x45, 0xa9, 0xe2, 0x5f, 0xe8, 0x01, 0x46, 0xea, 0xd8, 0xb8, + 0xe8, 0x01, 0x44, 0xf1, 0xed, 0x2b, 0xe8, 0x01, 0x45, 0x3f, 0xe3, 0x33, + 0xe8, 0x01, 0x44, 0x65, 0xee, 0x29, 0xe8, 0x01, 0x44, 0x85, 0xee, 0x21, + 0xe8, 0x01, 0x45, 0xdf, 0xe3, 0x13, 0xe8, 0x41, 0x46, 0x78, 0xd8, 0x7d, + 0xe8, 0x01, 0x44, 0x4f, 0xe2, 0x59, 0xe8, 0x01, 0x45, 0x81, 0xe2, 0x95, + 0xe8, 0x01, 0x45, 0xb8, 0xe2, 0xae, 0xe8, 0x01, 0x45, 0xdb, 0xe2, 0xa6, + 0xe8, 0x01, 0x45, 0x21, 0xe3, 0xb0, 0xe8, 0x01, 0x45, 0x49, 0xe3, 0x0b, + 0xe8, 0x01, 0x47, 0x5a, 0xce, 0x7f, 0xe8, 0x01, 0x46, 0x3e, 0xd9, 0x70, + 0xe8, 0x01, 0x45, 0xc1, 0xe3, 0xaf, 0xe8, 0x41, 0x49, 0x37, 0xb5, 0x3d, + 0xe8, 0x01, 0x44, 0x11, 0xed, 0x84, 0xe8, 0x01, 0x46, 0xae, 0xd8, 0xa4, + 0xe8, 0x01, 0x44, 0x79, 0xed, 0x4f, 0xe8, 0x01, 0x45, 0x08, 0xe3, 0x0d, + 0xe8, 0x01, 0x47, 0x4c, 0xce, 0x7a, 0xe8, 0x01, 0x44, 0x51, 0xee, 0x32, + 0xe8, 0x01, 0x45, 0x6c, 0xe3, 0x66, 0xe8, 0x01, 0x44, 0xad, 0xee, 0x0c, + 0xe8, 0x01, 0x45, 0xc6, 0xe3, 0xb2, 0xe8, 0x41, 0x43, 0x71, 0xf3, 0x26, + 0xe8, 0x01, 0x45, 0x36, 0xe2, 0x62, 0xe8, 0x01, 0x45, 0x90, 0xe2, 0x91, + 0xe8, 0x01, 0x45, 0xa4, 0xe2, 0x20, 0xe8, 0x01, 0x45, 0xfe, 0xe2, 0x49, + 0xe8, 0x01, 0x4b, 0x92, 0x98, 0x9d, 0xe8, 0x01, 0x4c, 0xe3, 0x8b, 0x81, + 0xe8, 0x01, 0x45, 0x58, 0xe3, 0xaa, 0xe8, 0x01, 0x45, 0x8a, 0xe3, 0xa3, + 0xe8, 0x01, 0x45, 0xe4, 0xe3, 0x56, 0xe8, 0x41, 0x90, 0xb5, 0x04, 0x91, + 0xf6, 0x03, 0x92, 0xb7, 0x03, 0x93, 0xf8, 0x02, 0x94, 0xb9, 0x02, 0x95, + 0xfa, 0x01, 0x96, 0xbb, 0x01, 0x97, 0x7d, 0x98, 0x3f, 0x99, 0x01, 0xff, + 0x46, 0x72, 0xd8, 0x77, 0xe8, 0x01, 0x45, 0x40, 0xe2, 0x47, 0xe8, 0x01, + 0x45, 0x68, 0xe2, 0xa0, 0xe8, 0x01, 0x46, 0xba, 0xd8, 0xa9, 0xe8, 0x01, + 0x45, 0xf4, 0xe2, 0x18, 0xe8, 0x01, 0x44, 0x17, 0xe3, 0x04, 0xe8, 0x01, + 0x44, 0x29, 0xee, 0x6c, 0xe8, 0x01, 0x44, 0x59, 0xee, 0x1f, 0xe8, 0x01, + 0x46, 0x50, 0xd9, 0xc3, 0xe8, 0x01, 0x44, 0xb5, 0xee, 0x8d, 0xe8, 0x41, + 0x44, 0xf9, 0xec, 0x57, 0xe8, 0x01, 0x45, 0x3b, 0xe2, 0x8f, 0xe8, 0x01, + 0x46, 0xb4, 0xd8, 0x79, 0xe8, 0x01, 0x46, 0xc0, 0xd8, 0x6f, 0xe8, 0x01, + 0x45, 0xe5, 0xe2, 0x39, 0xe8, 0x01, 0x44, 0x15, 0xee, 0xbd, 0xe8, 0x01, + 0x4b, 0x9d, 0x98, 0x80, 0xe8, 0x01, 0x45, 0x5d, 0xe3, 0x73, 0xe8, 0x01, + 0x44, 0x91, 0xee, 0x60, 0xe8, 0x01, 0x45, 0xad, 0xe3, 0x41, 0xe8, 0x41, + 0x45, 0x09, 0xe2, 0xac, 0xe8, 0x01, 0x46, 0x90, 0xd8, 0xab, 0xe8, 0x01, + 0x45, 0x77, 0xe2, 0x98, 0xe8, 0x01, 0x44, 0x89, 0xed, 0x3a, 0xe8, 0x01, + 0x45, 0xe0, 0xe2, 0xa1, 0xe8, 0x01, 0x44, 0xe9, 0xed, 0x5e, 0xe8, 0x01, + 0x45, 0x30, 0xe3, 0x05, 0xe8, 0x01, 0x44, 0x7d, 0xee, 0xbf, 0xe8, 0x01, + 0x45, 0x80, 0xe3, 0x5d, 0xe8, 0x01, 0x44, 0xc5, 0xee, 0x34, 0xe8, 0x41, + 0x46, 0x7e, 0xd8, 0xc4, 0xe8, 0x01, 0x45, 0x4a, 0xe2, 0x11, 0xe8, 0x01, + 0x45, 0x72, 0xe2, 0x94, 0xe8, 0x01, 0x44, 0x7d, 0xed, 0x51, 0xe8, 0x01, + 0x45, 0xf9, 0xe2, 0xb4, 0xe8, 0x01, 0x45, 0x17, 0xe3, 0x03, 0xe8, 0x01, + 0x44, 0x45, 0xee, 0x92, 0xe8, 0x01, 0x46, 0x32, 0xd9, 0xb3, 0xe8, 0x01, + 0x44, 0xa1, 0xee, 0x8c, 0xe8, 0x01, 0x44, 0xcd, 0xee, 0x4a, 0xe8, 0x41, + 0x44, 0xe9, 0xec, 0x8e, 0xe8, 0x01, 0x44, 0x3b, 0xe2, 0x90, 0xe8, 0x01, + 0x45, 0x5e, 0xe2, 0x74, 0xe8, 0x01, 0x45, 0xae, 0xe2, 0x71, 0xe8, 0x01, + 0x45, 0xea, 0xe2, 0x3b, 0xe8, 0x01, 0x44, 0x09, 0xee, 0x48, 0xe8, 0x01, + 0x45, 0x2b, 0xe3, 0xa7, 0xe8, 0x01, 0x46, 0x38, 0xd9, 0x8a, 0xe8, 0x01, + 0x46, 0x4a, 0xd9, 0xc1, 0xe8, 0x01, 0x45, 0xb7, 0xe3, 0x17, 0xe8, 0x41, + 0x45, 0x18, 0xe2, 0x6b, 0xe8, 0x01, 0x44, 0x15, 0xed, 0x69, 0xe8, 0x01, + 0x45, 0x63, 0xe2, 0x6d, 0xe8, 0x01, 0x46, 0xc6, 0xd8, 0x78, 0xe8, 0x01, + 0x46, 0xd8, 0xd8, 0xa2, 0xe8, 0x01, 0x44, 0xfc, 0xd8, 0x0e, 0xe8, 0x01, + 0x46, 0x08, 0xd9, 0x76, 0xe8, 0x01, 0x46, 0x26, 0xd9, 0x96, 0xe8, 0x01, + 0x44, 0x9d, 0xee, 0x06, 0xe8, 0x01, 0x45, 0xda, 0xe3, 0x12, 0xe8, 0x41, + 0x44, 0xdd, 0xec, 0x4d, 0xe8, 0x01, 0x44, 0x41, 0xed, 0x53, 0xe8, 0x01, + 0x44, 0x6d, 0xed, 0x54, 0xe8, 0x01, 0x44, 0xa5, 0xed, 0x55, 0xe8, 0x01, + 0x44, 0xad, 0xed, 0x5a, 0xe8, 0x01, 0x44, 0xe5, 0xed, 0x5b, 0xe8, 0x01, + 0x44, 0x25, 0xee, 0x5c, 0xe8, 0x01, 0x45, 0x71, 0xe3, 0x63, 0xe8, 0x01, + 0x45, 0x99, 0xe3, 0x64, 0xe8, 0x01, 0x45, 0xd0, 0xe3, 0x65, 0xe8, 0x41, + 0x44, 0xf1, 0xec, 0x2f, 0xe8, 0x01, 0x44, 0x39, 0xed, 0x30, 0xe8, 0x01, + 0x44, 0xbf, 0x42, 0x44, 0xe8, 0x01, 0x44, 0xa1, 0xed, 0x45, 0xe8, 0x01, + 0x44, 0xc1, 0xed, 0x46, 0xe8, 0x01, 0x44, 0xf9, 0xed, 0x36, 0xe8, 0x01, + 0x44, 0x3d, 0xee, 0x37, 0xe8, 0x01, 0x44, 0x71, 0xee, 0x38, 0xe8, 0x01, + 0x44, 0x99, 0xee, 0x4b, 0xe8, 0x01, 0x44, 0xb1, 0xee, 0x4c, 0xe8, 0x41, + 0x44, 0xd5, 0xec, 0x1b, 0xe8, 0x01, 0x44, 0xe8, 0xc2, 0x1c, 0xe8, 0x01, + 0x44, 0x49, 0xed, 0x1d, 0xe8, 0x01, 0x43, 0xa4, 0xf3, 0x22, 0xe8, 0x01, + 0x43, 0xd6, 0xe2, 0x23, 0xe8, 0x01, 0x43, 0xb6, 0xf3, 0x24, 0xe8, 0x01, + 0x44, 0x21, 0xee, 0x3e, 0xe8, 0x01, 0x44, 0x5d, 0xee, 0x3f, 0xe8, 0x01, + 0x44, 0x89, 0xee, 0x40, 0xe8, 0x01, 0x44, 0xc1, 0xee, 0x2e, 0xe8, 0x41, + 0x44, 0x1d, 0xed, 0x00, 0xe8, 0x01, 0x44, 0x4d, 0xed, 0x01, 0xe8, 0x01, + 0x44, 0x81, 0xed, 0x02, 0xe8, 0x01, 0x44, 0xc9, 0xed, 0x08, 0xe8, 0x01, + 0x44, 0x19, 0xee, 0x09, 0xe8, 0x01, 0x44, 0x55, 0xee, 0x0a, 0xe8, 0x01, + 0x45, 0x67, 0xe3, 0x14, 0xe8, 0x01, 0x45, 0x94, 0xe3, 0x15, 0xe8, 0x01, + 0x45, 0xbc, 0xe3, 0x16, 0xe8, 0x41, 0x45, 0x12, 0x0b, 0xce, 0xe8, 0x01, + 0xa6, 0x29, 0x44, 0xcf, 0x2a, 0xcf, 0xe8, 0x01, 0x43, 0x0e, 0x0b, 0xc7, + 0xe8, 0x01, 0xb3, 0x0f, 0xb4, 0x01, 0xff, 0x44, 0x25, 0x01, 0xc9, 0xe8, + 0x01, 0x42, 0x15, 0x02, 0xc8, 0xe8, 0x41, 0x44, 0xc9, 0x1d, 0xcd, 0xe8, + 0x01, 0x42, 0x01, 0x26, 0xcc, 0xe8, 0x41, 0x43, 0xd2, 0x05, 0xcb, 0xe8, + 0x01, 0x43, 0xf6, 0x06, 0xca, 0xe8, 0x41, 0x07, 0x71, 0x11, 0x24, 0x48, + 0xf5, 0x3b, 0xd6, 0xe8, 0x01, 0xb4, 0x01, 0xff, 0xa5, 0x06, 0x48, 0x6f, + 0x52, 0xd3, 0xe8, 0x41, 0x43, 0xc4, 0x58, 0xd0, 0xe8, 0x01, 0xae, 0x01, + 0xff, 0x4a, 0x2d, 0xa6, 0xd4, 0xe8, 0x01, 0xf3, 0xd1, 0xe8, 0x41, 0x4a, + 0x2d, 0xa6, 0xd5, 0xe8, 0x01, 0xf3, 0xd2, 0xe8, 0x41, 0x42, 0x10, 0x00, + 0x48, 0xf3, 0x01, 0x46, 0x38, 0xdf, 0xcb, 0xce, 0x01, 0x49, 0x2d, 0x29, + 0xe0, 0xfa, 0x41, 0xa1, 0xfd, 0x03, 0x06, 0x7c, 0xda, 0xec, 0x03, 0x06, + 0xef, 0x06, 0xa5, 0x03, 0xac, 0x6b, 0x58, 0x26, 0x2b, 0xf3, 0xaa, 0x00, + 0xb6, 0x06, 0x54, 0x08, 0x47, 0xf4, 0xaa, 0x40, 0x45, 0xe4, 0x23, 0xf6, + 0xaa, 0x00, 0x0a, 0x41, 0x77, 0x01, 0xff, 0xa1, 0x3c, 0x47, 0xe2, 0xcf, + 0xe9, 0xab, 0x00, 0xa9, 0x2a, 0x44, 0xa5, 0xf1, 0xea, 0xab, 0x00, 0x44, + 0x45, 0x86, 0xe3, 0xab, 0x00, 0x46, 0xf2, 0xdf, 0xe7, 0xab, 0x00, 0xb5, + 0x0c, 0x47, 0xea, 0x4b, 0xf5, 0xaa, 0x00, 0x45, 0x90, 0xec, 0xe6, 0xab, + 0x40, 0x43, 0x46, 0x86, 0xe8, 0xab, 0x00, 0xf5, 0xec, 0xaa, 0x40, 0xe9, + 0xeb, 0xaa, 0x00, 0x43, 0x46, 0x86, 0xe4, 0xab, 0x40, 0xa1, 0x0a, 0x43, + 0x46, 0x86, 0xe5, 0xab, 0x00, 0xf5, 0xee, 0xaa, 0x40, 0xe9, 0xed, 0xaa, + 0x00, 0xf5, 0xef, 0xaa, 0x40, 0x06, 0xed, 0x05, 0x06, 0x47, 0xbf, 0xd6, + 0xec, 0xab, 0x40, 0x45, 0x84, 0xe4, 0xd1, 0xab, 0x00, 0xa2, 0x9b, 0x02, + 0x02, 0x6d, 0x14, 0x8c, 0x02, 0xa4, 0xf1, 0x01, 0xe5, 0xe0, 0xaa, 0x00, + 0xa7, 0xde, 0x01, 0x43, 0x69, 0xde, 0xcd, 0xab, 0x00, 0xe9, 0xcf, 0xab, + 0x80, 0xcc, 0x01, 0xaa, 0xbd, 0x01, 0xab, 0xa7, 0x01, 0x43, 0x3f, 0x0e, + 0xc2, 0xab, 0x80, 0x99, 0x01, 0x43, 0xb1, 0x2f, 0xc3, 0xab, 0x80, 0x8b, + 0x01, 0xae, 0x65, 0xef, 0xe1, 0xaa, 0x00, 0xb0, 0x4e, 0x43, 0xd2, 0x07, + 0xd4, 0xab, 0x00, 0xb3, 0x34, 0xb4, 0x12, 0x42, 0x42, 0x0b, 0xce, 0xab, + 0x00, 0x43, 0xd1, 0x10, 0xcb, 0xab, 0x00, 0x44, 0xf2, 0xbd, 0xcc, 0xab, + 0x40, 0x43, 0x18, 0x1e, 0xca, 0xab, 0x00, 0x42, 0x62, 0x01, 0xc7, 0xab, + 0x80, 0x0d, 0xb4, 0x01, 0xff, 0xe1, 0xe4, 0xaa, 0x00, 0x42, 0x22, 0x00, + 0xe5, 0xaa, 0x40, 0x47, 0x42, 0xcd, 0xe0, 0xab, 0x40, 0x42, 0x57, 0x00, + 0xc1, 0xab, 0x00, 0x42, 0x22, 0x00, 0xe9, 0xaa, 0x00, 0x42, 0x40, 0x06, + 0xea, 0xaa, 0x40, 0xe1, 0xc4, 0xab, 0x80, 0x06, 0x43, 0x56, 0x00, 0xd0, + 0xab, 0x40, 0x47, 0x42, 0xcd, 0xde, 0xab, 0x40, 0xe1, 0xc5, 0xab, 0x80, + 0x19, 0x43, 0x05, 0xb3, 0xc9, 0xab, 0x80, 0x0c, 0x42, 0x2a, 0x05, 0xe8, + 0xaa, 0x00, 0x42, 0xbc, 0x22, 0xe3, 0xaa, 0x40, 0x47, 0x42, 0xcd, 0xe1, + 0xab, 0x40, 0x47, 0x42, 0xcd, 0xdf, 0xab, 0x40, 0x47, 0x42, 0xcd, 0xdd, + 0xab, 0x40, 0x47, 0x42, 0xcd, 0xdc, 0xab, 0x40, 0x43, 0x18, 0x1e, 0xc8, + 0xab, 0x00, 0x42, 0x55, 0x05, 0xc0, 0xab, 0xc0, 0x00, 0x47, 0x42, 0xcd, + 0xdb, 0xab, 0x40, 0x43, 0x56, 0x00, 0xd3, 0xab, 0x00, 0x42, 0x62, 0x01, + 0xd6, 0xab, 0x40, 0x47, 0x42, 0xcd, 0xe2, 0xab, 0x40, 0x43, 0x18, 0x1e, + 0xd8, 0xab, 0x00, 0x42, 0x55, 0x05, 0xd2, 0xab, 0x40, 0xa4, 0x0c, 0x43, + 0x18, 0x1e, 0xd9, 0xab, 0x00, 0x42, 0x62, 0x01, 0xd7, 0xab, 0x40, 0xe1, + 0xe6, 0xaa, 0x00, 0x42, 0x22, 0x00, 0xe7, 0xaa, 0x40, 0xe1, 0xe2, 0xaa, + 0x00, 0x42, 0x62, 0x01, 0xc6, 0xab, 0x40, 0xe1, 0xd5, 0xab, 0x00, 0x43, + 0x56, 0x00, 0xda, 0xab, 0x40, 0x45, 0x12, 0x0b, 0xf8, 0xab, 0x00, 0xa6, + 0x2e, 0x44, 0xcf, 0x2a, 0xf9, 0xab, 0x00, 0x43, 0x0e, 0x0b, 0xf1, 0xab, + 0x00, 0xb3, 0x14, 0xb4, 0x06, 0x44, 0x43, 0x1e, 0xf0, 0xab, 0x40, 0x44, + 0x25, 0x01, 0xf3, 0xab, 0x00, 0x42, 0x15, 0x02, 0xf2, 0xab, 0x40, 0x44, + 0xc9, 0x1d, 0xf7, 0xab, 0x00, 0x42, 0x01, 0x26, 0xf6, 0xab, 0x40, 0x43, + 0xd2, 0x05, 0xf5, 0xab, 0x00, 0x43, 0xf6, 0x06, 0xf4, 0xab, 0x40, 0x42, + 0x1a, 0x00, 0xf0, 0xaa, 0x00, 0x42, 0x12, 0x0b, 0xeb, 0xab, 0x40, 0x4b, + 0xb2, 0x9c, 0xf1, 0xaa, 0x00, 0x43, 0x5a, 0x87, 0xf2, 0xaa, 0x00, 0x48, + 0x00, 0xca, 0xed, 0xab, 0x40, 0x09, 0x2b, 0xb8, 0xf7, 0x01, 0xa9, 0x01, + 0xff, 0x05, 0x8f, 0x46, 0xdd, 0x01, 0x03, 0x48, 0x04, 0x01, 0xff, 0xa2, + 0xc9, 0x01, 0x06, 0x31, 0x14, 0xb8, 0x01, 0xa6, 0x8e, 0x01, 0x4b, 0x1b, + 0x61, 0xa3, 0xf7, 0x01, 0x04, 0xc3, 0x00, 0x70, 0x52, 0xa1, 0x53, 0x5f, + 0x20, 0x00, 0x05, 0xc8, 0x00, 0x52, 0xb3, 0x27, 0x0e, 0x09, 0x7d, 0x17, + 0x4c, 0x32, 0x00, 0x59, 0x27, 0x00, 0x06, 0xad, 0x02, 0x01, 0xff, 0x46, + 0x12, 0x03, 0xaa, 0x26, 0x00, 0x46, 0xd6, 0x05, 0x8f, 0xf7, 0x41, 0x4a, + 0xf4, 0x2b, 0xc1, 0xf7, 0x01, 0x4d, 0x28, 0x13, 0xc3, 0xf7, 0x41, 0x46, + 0x13, 0x19, 0xaa, 0xf7, 0x01, 0x44, 0x4c, 0x04, 0x92, 0x25, 0x00, 0x03, + 0xff, 0x52, 0x0d, 0x51, 0xfa, 0x5b, 0xac, 0x26, 0xc0, 0x00, 0x54, 0xec, + 0x3f, 0xf0, 0xce, 0x41, 0x52, 0xec, 0x2b, 0xcb, 0xf7, 0x01, 0x4f, 0xd5, + 0x1c, 0xb6, 0xf7, 0x41, 0x80, 0x06, 0x60, 0x34, 0x0f, 0x6d, 0x27, 0x40, + 0x56, 0x53, 0x33, 0x75, 0x27, 0x00, 0x54, 0xd8, 0x21, 0x69, 0x27, 0x40, + 0x80, 0x06, 0x60, 0x34, 0x0f, 0x6c, 0x27, 0x40, 0x56, 0x53, 0x33, 0x74, + 0x27, 0x00, 0x54, 0xd8, 0x21, 0x68, 0x27, 0x40, 0x53, 0x59, 0x42, 0xb0, + 0xf7, 0x01, 0x09, 0x31, 0x3b, 0x11, 0x0c, 0x1c, 0x13, 0x01, 0xff, 0x4a, + 0xf4, 0x2b, 0xc5, 0xf7, 0x01, 0x4d, 0x28, 0x13, 0xc7, 0xf7, 0x41, 0x59, + 0x7f, 0x24, 0x6a, 0x27, 0x00, 0x5a, 0xd2, 0x21, 0x6b, 0x27, 0x40, 0x52, + 0xec, 0x2b, 0xce, 0xf7, 0x01, 0x4f, 0xd5, 0x1c, 0xbc, 0xf7, 0x41, 0x4b, + 0x0d, 0x03, 0xab, 0x26, 0x00, 0x50, 0x96, 0x65, 0x85, 0xf7, 0x41, 0x45, + 0x13, 0x05, 0x4c, 0x2e, 0x00, 0x50, 0xad, 0x00, 0x53, 0x2e, 0x00, 0x4d, + 0xa6, 0x34, 0x54, 0x2e, 0x40, 0xa3, 0xd0, 0x02, 0x06, 0xef, 0x06, 0xf4, + 0x01, 0x4e, 0x9f, 0x77, 0x9a, 0x6e, 0x01, 0x49, 0x81, 0x16, 0x98, 0x6e, + 0x01, 0x07, 0xff, 0x39, 0x9e, 0x01, 0xb3, 0x01, 0xff, 0x0c, 0x77, 0x08, + 0x06, 0x4a, 0xed, 0xb3, 0x99, 0x6e, 0x41, 0xe1, 0x6d, 0x6e, 0x81, 0x81, + 0x01, 0xe2, 0x70, 0x6e, 0x01, 0xe3, 0x71, 0x6e, 0x01, 0xe4, 0x79, 0x6e, + 0x01, 0xe5, 0x6f, 0x6e, 0x01, 0xe6, 0x6a, 0x6e, 0x01, 0xe7, 0x69, 0x6e, + 0x01, 0xe8, 0x76, 0x6e, 0x81, 0x60, 0xe9, 0x6b, 0x6e, 0x01, 0xea, 0x6e, + 0x6e, 0x01, 0xeb, 0x6c, 0x6e, 0x81, 0x4f, 0xec, 0x74, 0x6e, 0x01, 0xed, + 0x60, 0x6e, 0x01, 0xee, 0x7b, 0x6e, 0x81, 0x3a, 0xef, 0x7d, 0x6e, 0x81, + 0x31, 0xf0, 0x67, 0x6e, 0x01, 0xf1, 0x75, 0x6e, 0x01, 0xf2, 0x7c, 0x6e, + 0x01, 0xf3, 0x61, 0x6e, 0x01, 0xf4, 0x68, 0x6e, 0x01, 0xf5, 0x72, 0x6e, + 0x01, 0xf6, 0x62, 0x6e, 0x01, 0xf7, 0x63, 0x6e, 0x01, 0xf8, 0x78, 0x6e, + 0x01, 0xf9, 0x7f, 0x6e, 0x81, 0x04, 0xfa, 0x65, 0x6e, 0x41, 0xf5, 0x73, + 0x6e, 0x41, 0xe5, 0x7a, 0x6e, 0x41, 0xe7, 0x77, 0x6e, 0x01, 0xf9, 0x77, + 0x6e, 0x41, 0xf0, 0x66, 0x6e, 0x41, 0xf0, 0x76, 0x6e, 0x41, 0xe9, 0x7e, + 0x6e, 0x01, 0x43, 0x08, 0x89, 0x64, 0x6e, 0x41, 0xa5, 0x37, 0xa6, 0x29, + 0x48, 0xc5, 0x53, 0x93, 0x6e, 0x01, 0xb3, 0x15, 0xb4, 0x01, 0xff, 0x42, + 0x92, 0x01, 0x8a, 0x6e, 0x01, 0x47, 0x95, 0x5a, 0x8d, 0x6e, 0x01, 0x45, + 0xe6, 0x2b, 0x8c, 0x6e, 0x41, 0x48, 0x85, 0x51, 0x91, 0x6e, 0x01, 0x46, + 0x01, 0x26, 0x90, 0x6e, 0x41, 0x46, 0x08, 0x18, 0x8f, 0x6e, 0x01, 0x47, + 0x0a, 0x5d, 0x8e, 0x6e, 0x41, 0x47, 0x52, 0x25, 0x92, 0x6e, 0x01, 0x45, + 0xb4, 0x6f, 0x8b, 0x6e, 0x41, 0x45, 0x12, 0x0b, 0x88, 0x6e, 0x01, 0xa6, + 0x43, 0x44, 0xcf, 0x2a, 0x89, 0x6e, 0x01, 0x43, 0x0e, 0x0b, 0x81, 0x6e, + 0x81, 0x30, 0xb3, 0x22, 0xb4, 0x06, 0x44, 0x43, 0x1e, 0x80, 0x6e, 0x41, + 0x44, 0x25, 0x01, 0x83, 0x6e, 0x81, 0x0d, 0x42, 0x15, 0x02, 0x82, 0x6e, + 0xc1, 0x00, 0x4f, 0x06, 0x69, 0x95, 0x6e, 0x41, 0x4f, 0x06, 0x69, 0x96, + 0x6e, 0x41, 0x44, 0xc9, 0x1d, 0x87, 0x6e, 0x01, 0x42, 0x01, 0x26, 0x86, + 0x6e, 0x41, 0x4f, 0x06, 0x69, 0x94, 0x6e, 0x41, 0x43, 0xd2, 0x05, 0x85, + 0x6e, 0x01, 0x43, 0xf6, 0x06, 0x84, 0x6e, 0x41, 0x0e, 0xe5, 0x05, 0x06, + 0x44, 0x14, 0x05, 0x97, 0x6e, 0x41, 0xe1, 0x4d, 0x6e, 0x81, 0x81, 0x01, + 0xe2, 0x50, 0x6e, 0x01, 0xe3, 0x51, 0x6e, 0x01, 0xe4, 0x59, 0x6e, 0x01, + 0xe5, 0x4f, 0x6e, 0x01, 0xe6, 0x4a, 0x6e, 0x01, 0xe7, 0x49, 0x6e, 0x01, + 0xe8, 0x56, 0x6e, 0x81, 0x60, 0xe9, 0x4b, 0x6e, 0x01, 0xea, 0x4e, 0x6e, + 0x01, 0xeb, 0x4c, 0x6e, 0x81, 0x4f, 0xec, 0x54, 0x6e, 0x01, 0xed, 0x40, + 0x6e, 0x01, 0xee, 0x5b, 0x6e, 0x81, 0x3a, 0xef, 0x5d, 0x6e, 0x81, 0x31, + 0xf0, 0x47, 0x6e, 0x01, 0xf1, 0x55, 0x6e, 0x01, 0xf2, 0x5c, 0x6e, 0x01, + 0xf3, 0x41, 0x6e, 0x01, 0xf4, 0x48, 0x6e, 0x01, 0xf5, 0x52, 0x6e, 0x01, + 0xf6, 0x42, 0x6e, 0x01, 0xf7, 0x43, 0x6e, 0x01, 0xf8, 0x58, 0x6e, 0x01, + 0xf9, 0x5f, 0x6e, 0x81, 0x04, 0xfa, 0x45, 0x6e, 0x41, 0xf5, 0x53, 0x6e, + 0x41, 0xe5, 0x5a, 0x6e, 0x41, 0xe7, 0x57, 0x6e, 0x01, 0xf9, 0x57, 0x6e, + 0x41, 0xf0, 0x46, 0x6e, 0x41, 0xf0, 0x56, 0x6e, 0x41, 0xe9, 0x5e, 0x6e, + 0x01, 0x43, 0x08, 0x89, 0x44, 0x6e, 0x41, 0x43, 0xfe, 0x05, 0xbe, 0xf9, + 0x01, 0x43, 0xa2, 0x38, 0xbf, 0xf9, 0x41, 0x06, 0x3a, 0xe0, 0x06, 0x49, + 0x8d, 0xbf, 0x56, 0xf3, 0x41, 0x45, 0x04, 0x02, 0x21, 0x22, 0x80, 0x0c, + 0x42, 0x08, 0x00, 0x5e, 0x22, 0x00, 0x54, 0x50, 0x45, 0x9d, 0x29, 0x40, + 0x80, 0x01, 0xff, 0x4c, 0x3f, 0x93, 0x9b, 0x29, 0x00, 0x27, 0xf4, 0x05, + 0x01, 0xff, 0x09, 0x0c, 0x49, 0x31, 0x09, 0x38, 0x44, 0x21, 0x0a, 0x09, + 0x01, 0x11, 0x07, 0xb3, 0x5e, 0x01, 0xff, 0x44, 0xc3, 0x00, 0xa9, 0x29, + 0x00, 0x45, 0xc8, 0x00, 0xa8, 0x29, 0x40, 0x44, 0xa5, 0x01, 0xae, 0x29, + 0x00, 0x42, 0x50, 0x02, 0xac, 0x29, 0x40, 0x44, 0xa5, 0x01, 0xaf, 0x29, + 0x00, 0x42, 0x50, 0x02, 0xad, 0x29, 0x40, 0x44, 0xc3, 0x00, 0xab, 0x29, + 0x00, 0x45, 0xc8, 0x00, 0xaa, 0x29, 0x40, 0x44, 0xaf, 0x70, 0xaf, 0x00, + 0x00, 0xa7, 0xf6, 0x42, 0xa8, 0x99, 0x3e, 0xab, 0xf7, 0x3c, 0xac, 0xe2, + 0x36, 0x45, 0xbc, 0xe8, 0xa3, 0xf9, 0x01, 0xee, 0x68, 0xf4, 0x81, 0x81, + 0x32, 0xb0, 0xf2, 0x31, 0xb2, 0xaf, 0x2e, 0xb3, 0xcd, 0x2a, 0xb4, 0x95, + 0x01, 0x46, 0x66, 0xe1, 0xd6, 0xf5, 0x01, 0x0c, 0x17, 0x97, 0x01, 0xff, + 0xa5, 0x75, 0xa6, 0x58, 0x44, 0xcf, 0x2a, 0xe9, 0xd2, 0x81, 0x4b, 0x43, + 0x0e, 0x0b, 0xe1, 0xd2, 0x01, 0xb3, 0x29, 0xb4, 0x06, 0x44, 0x43, 0x1e, + 0xe0, 0xd2, 0x41, 0x42, 0x92, 0x01, 0xea, 0xd2, 0x01, 0xa8, 0x0d, 0xb7, + 0x01, 0xff, 0x44, 0xe7, 0x2b, 0xec, 0xd2, 0x01, 0xef, 0xe2, 0xd2, 0x41, + 0x46, 0x96, 0x5a, 0xed, 0xd2, 0x01, 0x43, 0x26, 0x01, 0xe3, 0xd2, 0x41, + 0x44, 0xc9, 0x1d, 0xe7, 0xd2, 0x81, 0x0d, 0x42, 0x01, 0x26, 0xe6, 0xd2, + 0xc1, 0x00, 0x44, 0x0a, 0x18, 0xf0, 0xd2, 0x41, 0x44, 0x0a, 0x18, 0xf1, + 0xd2, 0x41, 0x44, 0x0a, 0x18, 0xf3, 0xd2, 0x41, 0xa9, 0x0d, 0x43, 0xf6, + 0x06, 0xe4, 0xd2, 0xc1, 0x00, 0x44, 0x0a, 0x18, 0xee, 0xd2, 0x41, 0x45, + 0x09, 0x18, 0xef, 0xd2, 0x01, 0x42, 0x32, 0x00, 0xe5, 0xd2, 0x41, 0x44, + 0xc9, 0x00, 0xe8, 0xd2, 0x81, 0x06, 0x45, 0xb4, 0x6f, 0xeb, 0xd2, 0x41, + 0x43, 0xc4, 0x09, 0xf2, 0xd2, 0x41, 0x47, 0x8a, 0xd0, 0xc9, 0xf9, 0x01, + 0x0a, 0xa4, 0x53, 0x01, 0xff, 0x05, 0x16, 0x61, 0xb6, 0x1b, 0x0e, 0x13, + 0x77, 0xad, 0x19, 0xa6, 0xda, 0x17, 0x07, 0x0b, 0xd2, 0xe0, 0x12, 0x05, + 0xc3, 0x00, 0xb8, 0x12, 0x0a, 0x07, 0xae, 0x93, 0x10, 0x02, 0x0d, 0x00, + 0xe1, 0x0f, 0xb3, 0x01, 0xff, 0x0a, 0x02, 0x48, 0xb2, 0x01, 0x06, 0x75, + 0x06, 0x01, 0xff, 0x08, 0xe4, 0x05, 0x61, 0x06, 0x5d, 0x07, 0x01, 0xff, + 0xe1, 0xb6, 0xd4, 0x01, 0xe2, 0xb7, 0xd4, 0x01, 0xe3, 0xb8, 0xd4, 0x01, + 0xe4, 0xb9, 0xd4, 0x01, 0xe6, 0xbb, 0xd4, 0x01, 0xe8, 0xbd, 0xd4, 0x01, + 0xe9, 0xbe, 0xd4, 0x01, 0xea, 0xbf, 0xd4, 0x01, 0xeb, 0xc0, 0xd4, 0x01, + 0xec, 0xc1, 0xd4, 0x01, 0xed, 0xc2, 0xd4, 0x01, 0xee, 0xc3, 0xd4, 0x01, + 0xf0, 0xc5, 0xd4, 0x01, 0xf1, 0xc6, 0xd4, 0x01, 0xf2, 0xc7, 0xd4, 0x01, + 0xf3, 0xc8, 0xd4, 0x01, 0xf4, 0xc9, 0xd4, 0x01, 0xf5, 0xca, 0xd4, 0x01, + 0xf6, 0xcb, 0xd4, 0x01, 0xf7, 0xcc, 0xd4, 0x01, 0xf8, 0xcd, 0xd4, 0x01, + 0xf9, 0xce, 0xd4, 0x01, 0xfa, 0xcf, 0xd4, 0x41, 0xe1, 0x9c, 0xd4, 0x01, + 0xe3, 0x9e, 0xd4, 0x01, 0xe4, 0x9f, 0xd4, 0x01, 0xe7, 0xa2, 0xd4, 0x01, + 0xea, 0xa5, 0xd4, 0x01, 0xeb, 0xa6, 0xd4, 0x01, 0xee, 0xa9, 0xd4, 0x01, + 0xef, 0xaa, 0xd4, 0x01, 0xf0, 0xab, 0xd4, 0x01, 0xf1, 0xac, 0xd4, 0x01, + 0xf3, 0xae, 0xd4, 0x01, 0xf4, 0xaf, 0xd4, 0x01, 0xf5, 0xb0, 0xd4, 0x01, + 0xf6, 0xb1, 0xd4, 0x01, 0xf7, 0xb2, 0xd4, 0x01, 0xf8, 0xb3, 0xd4, 0x01, + 0xf9, 0xb4, 0xd4, 0x01, 0xfa, 0xb5, 0xd4, 0x41, 0x05, 0x16, 0x61, 0xfe, + 0x03, 0x08, 0xe4, 0x05, 0x91, 0x03, 0x06, 0xef, 0x06, 0xca, 0x02, 0x07, + 0x0b, 0xd2, 0x6d, 0x06, 0x5d, 0x07, 0x01, 0xff, 0xe1, 0xba, 0xd5, 0x01, + 0xe2, 0xbb, 0xd5, 0x01, 0xe3, 0xbc, 0xd5, 0x01, 0xe4, 0xbd, 0xd5, 0x01, + 0xe5, 0xbe, 0xd5, 0x01, 0xe6, 0xbf, 0xd5, 0x01, 0xe7, 0xc0, 0xd5, 0x01, + 0xe8, 0xc1, 0xd5, 0x01, 0xe9, 0xc2, 0xd5, 0x01, 0xea, 0xc3, 0xd5, 0x01, + 0xeb, 0xc4, 0xd5, 0x01, 0xec, 0xc5, 0xd5, 0x01, 0xed, 0xc6, 0xd5, 0x01, + 0xee, 0xc7, 0xd5, 0x01, 0xef, 0xc8, 0xd5, 0x01, 0xf0, 0xc9, 0xd5, 0x01, + 0xf1, 0xca, 0xd5, 0x01, 0xf2, 0xcb, 0xd5, 0x01, 0xf3, 0xcc, 0xd5, 0x01, + 0xf4, 0xcd, 0xd5, 0x01, 0xf5, 0xce, 0xd5, 0x01, 0xf6, 0xcf, 0xd5, 0x01, + 0xf7, 0xd0, 0xd5, 0x01, 0xf8, 0xd1, 0xd5, 0x01, 0xf9, 0xd2, 0xd5, 0x01, + 0xfa, 0xd3, 0xd5, 0x41, 0x08, 0xe4, 0x05, 0x6d, 0x06, 0x5d, 0x07, 0x01, + 0xff, 0xe1, 0x22, 0xd6, 0x01, 0xe2, 0x23, 0xd6, 0x01, 0xe3, 0x24, 0xd6, + 0x01, 0xe4, 0x25, 0xd6, 0x01, 0xe5, 0x26, 0xd6, 0x01, 0xe6, 0x27, 0xd6, + 0x01, 0xe7, 0x28, 0xd6, 0x01, 0xe8, 0x29, 0xd6, 0x01, 0xe9, 0x2a, 0xd6, + 0x01, 0xea, 0x2b, 0xd6, 0x01, 0xeb, 0x2c, 0xd6, 0x01, 0xec, 0x2d, 0xd6, + 0x01, 0xed, 0x2e, 0xd6, 0x01, 0xee, 0x2f, 0xd6, 0x01, 0xef, 0x30, 0xd6, + 0x01, 0xf0, 0x31, 0xd6, 0x01, 0xf1, 0x32, 0xd6, 0x01, 0xf2, 0x33, 0xd6, + 0x01, 0xf3, 0x34, 0xd6, 0x01, 0xf4, 0x35, 0xd6, 0x01, 0xf5, 0x36, 0xd6, + 0x01, 0xf6, 0x37, 0xd6, 0x01, 0xf7, 0x38, 0xd6, 0x01, 0xf8, 0x39, 0xd6, + 0x01, 0xf9, 0x3a, 0xd6, 0x01, 0xfa, 0x3b, 0xd6, 0x41, 0xe1, 0x08, 0xd6, + 0x01, 0xe2, 0x09, 0xd6, 0x01, 0xe3, 0x0a, 0xd6, 0x01, 0xe4, 0x0b, 0xd6, + 0x01, 0xe5, 0x0c, 0xd6, 0x01, 0xe6, 0x0d, 0xd6, 0x01, 0xe7, 0x0e, 0xd6, + 0x01, 0xe8, 0x0f, 0xd6, 0x01, 0xe9, 0x10, 0xd6, 0x01, 0xea, 0x11, 0xd6, + 0x01, 0xeb, 0x12, 0xd6, 0x01, 0xec, 0x13, 0xd6, 0x01, 0xed, 0x14, 0xd6, + 0x01, 0xee, 0x15, 0xd6, 0x01, 0xef, 0x16, 0xd6, 0x01, 0xf0, 0x17, 0xd6, + 0x01, 0xf1, 0x18, 0xd6, 0x01, 0xf2, 0x19, 0xd6, 0x01, 0xf3, 0x1a, 0xd6, + 0x01, 0xf4, 0x1b, 0xd6, 0x01, 0xf5, 0x1c, 0xd6, 0x01, 0xf6, 0x1d, 0xd6, + 0x01, 0xf7, 0x1e, 0xd6, 0x01, 0xf8, 0x1f, 0xd6, 0x01, 0xf9, 0x20, 0xd6, + 0x01, 0xfa, 0x21, 0xd6, 0x41, 0x45, 0x12, 0x0b, 0xea, 0xd7, 0x01, 0xa6, + 0x2e, 0x44, 0xcf, 0x2a, 0xeb, 0xd7, 0x01, 0x43, 0x0e, 0x0b, 0xe3, 0xd7, + 0x01, 0xb3, 0x14, 0xb4, 0x06, 0x44, 0x43, 0x1e, 0xe2, 0xd7, 0x41, 0x44, + 0x25, 0x01, 0xe5, 0xd7, 0x01, 0x42, 0x15, 0x02, 0xe4, 0xd7, 0x41, 0x44, + 0xc9, 0x1d, 0xe9, 0xd7, 0x01, 0x42, 0x01, 0x26, 0xe8, 0xd7, 0x41, 0x43, + 0xd2, 0x05, 0xe7, 0xd7, 0x01, 0x43, 0xf6, 0x06, 0xe6, 0xd7, 0x41, 0xe1, + 0xa0, 0xd5, 0x01, 0xe2, 0xa1, 0xd5, 0x01, 0xe3, 0xa2, 0xd5, 0x01, 0xe4, + 0xa3, 0xd5, 0x01, 0xe5, 0xa4, 0xd5, 0x01, 0xe6, 0xa5, 0xd5, 0x01, 0xe7, + 0xa6, 0xd5, 0x01, 0xe8, 0xa7, 0xd5, 0x01, 0xe9, 0xa8, 0xd5, 0x01, 0xea, + 0xa9, 0xd5, 0x01, 0xeb, 0xaa, 0xd5, 0x01, 0xec, 0xab, 0xd5, 0x01, 0xed, + 0xac, 0xd5, 0x01, 0xee, 0xad, 0xd5, 0x01, 0xef, 0xae, 0xd5, 0x01, 0xf0, + 0xaf, 0xd5, 0x01, 0xf1, 0xb0, 0xd5, 0x01, 0xf2, 0xb1, 0xd5, 0x01, 0xf3, + 0xb2, 0xd5, 0x01, 0xf4, 0xb3, 0xd5, 0x01, 0xf5, 0xb4, 0xd5, 0x01, 0xf6, + 0xb5, 0xd5, 0x01, 0xf7, 0xb6, 0xd5, 0x01, 0xf8, 0xb7, 0xd5, 0x01, 0xf9, + 0xb8, 0xd5, 0x01, 0xfa, 0xb9, 0xd5, 0x41, 0x08, 0xe4, 0x05, 0x87, 0x08, + 0x06, 0xef, 0x06, 0xc0, 0x07, 0x4e, 0xce, 0x15, 0x8a, 0xd7, 0x01, 0x07, + 0x0b, 0xd2, 0xc9, 0x02, 0x4c, 0x93, 0x90, 0x8c, 0xd7, 0x01, 0x45, 0xe9, + 0xe8, 0x6f, 0xd7, 0x01, 0xb0, 0xa8, 0x02, 0x4a, 0x41, 0xb0, 0x8e, 0xd7, + 0x01, 0x06, 0x5d, 0x07, 0x06, 0x4c, 0xc7, 0x95, 0x8b, 0xd7, 0x41, 0xe1, + 0xee, 0xd5, 0x81, 0x8c, 0x02, 0xe2, 0xef, 0xd5, 0x81, 0x80, 0x02, 0xe3, + 0xf0, 0xd5, 0x81, 0xf4, 0x01, 0xe4, 0xf1, 0xd5, 0x81, 0xe8, 0x01, 0xe5, + 0xf2, 0xd5, 0x81, 0xd6, 0x01, 0xe6, 0xf3, 0xd5, 0x81, 0xca, 0x01, 0xe7, + 0xf4, 0xd5, 0x81, 0xbe, 0x01, 0xe8, 0xf5, 0xd5, 0x01, 0xe9, 0xf6, 0xd5, + 0x81, 0xae, 0x01, 0xea, 0xf7, 0xd5, 0x01, 0xeb, 0xf8, 0xd5, 0x81, 0x9e, + 0x01, 0xec, 0xf9, 0xd5, 0x81, 0x92, 0x01, 0xed, 0xfa, 0xd5, 0x81, 0x88, + 0x01, 0xee, 0xfb, 0xd5, 0x81, 0x7f, 0xef, 0xfc, 0xd5, 0x81, 0x6b, 0xf0, + 0xfd, 0xd5, 0x81, 0x56, 0xf1, 0xfe, 0xd5, 0x01, 0xf2, 0xff, 0xd5, 0x81, + 0x47, 0xf3, 0x00, 0xd6, 0x81, 0x3c, 0xf4, 0x01, 0xd6, 0x81, 0x2b, 0xf5, + 0x02, 0xd6, 0x81, 0x20, 0xf6, 0x03, 0xd6, 0x01, 0xf7, 0x04, 0xd6, 0x01, + 0xf8, 0x05, 0xd6, 0x81, 0x0f, 0xf9, 0x06, 0xd6, 0x01, 0xfa, 0x07, 0xd6, + 0xc1, 0x00, 0x43, 0x94, 0x0f, 0x75, 0xd7, 0x41, 0xe9, 0x7d, 0xd7, 0x41, + 0x46, 0xcf, 0x15, 0x84, 0xd7, 0x41, 0x42, 0x5f, 0x24, 0x83, 0xd7, 0x01, + 0x44, 0xc8, 0x95, 0x77, 0xd7, 0x41, 0x44, 0xbf, 0x1f, 0x82, 0xd7, 0x41, + 0x42, 0x0b, 0x00, 0x80, 0xd7, 0x41, 0x42, 0x49, 0x00, 0x85, 0xd7, 0x01, + 0xe9, 0x7f, 0xd7, 0x01, 0x42, 0x5a, 0x03, 0x87, 0xd7, 0x41, 0xad, 0x01, + 0xff, 0x43, 0xce, 0x05, 0x88, 0xd7, 0x01, 0x45, 0x4a, 0xe7, 0x7e, 0xd7, + 0x41, 0xf5, 0x7c, 0xd7, 0x41, 0xf5, 0x7b, 0xd7, 0x41, 0x44, 0x18, 0xe8, + 0x7a, 0xd7, 0x41, 0x44, 0x94, 0x90, 0x79, 0xd7, 0x41, 0x43, 0x1b, 0x05, + 0x78, 0xd7, 0x41, 0x44, 0x00, 0x21, 0x72, 0xd7, 0x41, 0x4a, 0x19, 0x9c, + 0x81, 0xd7, 0x41, 0x46, 0xcf, 0x15, 0x74, 0xd7, 0x01, 0x42, 0x12, 0x00, + 0x76, 0xd7, 0x41, 0x44, 0x38, 0xd6, 0x73, 0xd7, 0x41, 0x42, 0x49, 0x00, + 0x86, 0xd7, 0x41, 0x43, 0x94, 0x0f, 0x71, 0xd7, 0x41, 0x44, 0x3f, 0xe4, + 0x70, 0xd7, 0x41, 0x53, 0x4e, 0x48, 0x89, 0xd7, 0x01, 0x49, 0x93, 0xb9, + 0x8d, 0xd7, 0x01, 0x48, 0x5b, 0xac, 0x8f, 0xd7, 0x41, 0x08, 0xe4, 0x05, + 0xcf, 0x02, 0x4e, 0xce, 0x15, 0xc4, 0xd7, 0x01, 0x4c, 0x93, 0x90, 0xc6, + 0xd7, 0x01, 0x45, 0xe9, 0xe8, 0xa9, 0xd7, 0x01, 0xb0, 0xa8, 0x02, 0x4a, + 0x41, 0xb0, 0xc8, 0xd7, 0x01, 0x06, 0x5d, 0x07, 0x06, 0x4c, 0xc7, 0x95, + 0xc5, 0xd7, 0x41, 0xe1, 0x56, 0xd6, 0x81, 0x8c, 0x02, 0xe2, 0x57, 0xd6, + 0x81, 0x80, 0x02, 0xe3, 0x58, 0xd6, 0x81, 0xf4, 0x01, 0xe4, 0x59, 0xd6, + 0x81, 0xe8, 0x01, 0xe5, 0x5a, 0xd6, 0x81, 0xd6, 0x01, 0xe6, 0x5b, 0xd6, + 0x81, 0xca, 0x01, 0xe7, 0x5c, 0xd6, 0x81, 0xbe, 0x01, 0xe8, 0x5d, 0xd6, + 0x01, 0xe9, 0x5e, 0xd6, 0x81, 0xae, 0x01, 0xea, 0x5f, 0xd6, 0x01, 0xeb, + 0x60, 0xd6, 0x81, 0x9e, 0x01, 0xec, 0x61, 0xd6, 0x81, 0x92, 0x01, 0xed, + 0x62, 0xd6, 0x81, 0x88, 0x01, 0xee, 0x63, 0xd6, 0x81, 0x7f, 0xef, 0x64, + 0xd6, 0x81, 0x6b, 0xf0, 0x65, 0xd6, 0x81, 0x56, 0xf1, 0x66, 0xd6, 0x01, + 0xf2, 0x67, 0xd6, 0x81, 0x47, 0xf3, 0x68, 0xd6, 0x81, 0x3c, 0xf4, 0x69, + 0xd6, 0x81, 0x2b, 0xf5, 0x6a, 0xd6, 0x81, 0x20, 0xf6, 0x6b, 0xd6, 0x01, + 0xf7, 0x6c, 0xd6, 0x01, 0xf8, 0x6d, 0xd6, 0x81, 0x0f, 0xf9, 0x6e, 0xd6, + 0x01, 0xfa, 0x6f, 0xd6, 0xc1, 0x00, 0x43, 0x94, 0x0f, 0xaf, 0xd7, 0x41, + 0xe9, 0xb7, 0xd7, 0x41, 0x46, 0xcf, 0x15, 0xbe, 0xd7, 0x41, 0x42, 0x5f, + 0x24, 0xbd, 0xd7, 0x01, 0x44, 0xc8, 0x95, 0xb1, 0xd7, 0x41, 0x44, 0xbf, + 0x1f, 0xbc, 0xd7, 0x41, 0x42, 0x0b, 0x00, 0xba, 0xd7, 0x41, 0x42, 0x49, + 0x00, 0xbf, 0xd7, 0x01, 0xe9, 0xb9, 0xd7, 0x01, 0x42, 0x5a, 0x03, 0xc1, + 0xd7, 0x41, 0xad, 0x01, 0xff, 0x43, 0xce, 0x05, 0xc2, 0xd7, 0x01, 0x45, + 0x4a, 0xe7, 0xb8, 0xd7, 0x41, 0xf5, 0xb6, 0xd7, 0x41, 0xf5, 0xb5, 0xd7, + 0x41, 0x44, 0x18, 0xe8, 0xb4, 0xd7, 0x41, 0x44, 0x94, 0x90, 0xb3, 0xd7, + 0x41, 0x43, 0x1b, 0x05, 0xb2, 0xd7, 0x41, 0x44, 0x00, 0x21, 0xac, 0xd7, + 0x41, 0x4a, 0x19, 0x9c, 0xbb, 0xd7, 0x41, 0x46, 0xcf, 0x15, 0xae, 0xd7, + 0x01, 0x42, 0x12, 0x00, 0xb0, 0xd7, 0x41, 0x44, 0x38, 0xd6, 0xad, 0xd7, + 0x41, 0x42, 0x49, 0x00, 0xc0, 0xd7, 0x41, 0x43, 0x94, 0x0f, 0xab, 0xd7, + 0x41, 0x44, 0x3f, 0xe4, 0xaa, 0xd7, 0x41, 0x53, 0x4e, 0x48, 0xc3, 0xd7, + 0x01, 0x49, 0x93, 0xb9, 0xc7, 0xd7, 0x01, 0x48, 0x5b, 0xac, 0xc9, 0xd7, + 0x41, 0xe1, 0x3c, 0xd6, 0x81, 0x8c, 0x02, 0xe2, 0x3d, 0xd6, 0x81, 0x80, + 0x02, 0xe3, 0x3e, 0xd6, 0x81, 0xf4, 0x01, 0xe4, 0x3f, 0xd6, 0x81, 0xe8, + 0x01, 0xe5, 0x40, 0xd6, 0x81, 0xd6, 0x01, 0xe6, 0x41, 0xd6, 0x01, 0xe7, + 0x42, 0xd6, 0x81, 0xc6, 0x01, 0xe8, 0x43, 0xd6, 0x01, 0xe9, 0x44, 0xd6, + 0x81, 0xb6, 0x01, 0xea, 0x45, 0xd6, 0x01, 0xeb, 0x46, 0xd6, 0x81, 0xa6, + 0x01, 0xec, 0x47, 0xd6, 0x81, 0x9a, 0x01, 0xed, 0x48, 0xd6, 0x81, 0x90, + 0x01, 0xee, 0x49, 0xd6, 0x81, 0x86, 0x01, 0xef, 0x4a, 0xd6, 0x81, 0x72, + 0xf0, 0x4b, 0xd6, 0x81, 0x5d, 0xf1, 0x4c, 0xd6, 0x01, 0xf2, 0x4d, 0xd6, + 0x81, 0x4e, 0xf3, 0x4e, 0xd6, 0x81, 0x43, 0xf4, 0x4f, 0xd6, 0x81, 0x2b, + 0xf5, 0x50, 0xd6, 0x81, 0x20, 0xf6, 0x51, 0xd6, 0x01, 0xf7, 0x52, 0xd6, + 0x01, 0xf8, 0x53, 0xd6, 0x81, 0x0f, 0xf9, 0x54, 0xd6, 0x01, 0xfa, 0x55, + 0xd6, 0xc1, 0x00, 0x43, 0x94, 0x0f, 0x95, 0xd7, 0x41, 0xe9, 0x9d, 0xd7, + 0x41, 0x46, 0xcf, 0x15, 0xa4, 0xd7, 0x41, 0x42, 0x5f, 0x24, 0xa3, 0xd7, + 0x01, 0x44, 0xc8, 0x95, 0x97, 0xd7, 0xc1, 0x00, 0x47, 0x15, 0x08, 0xa1, + 0xd7, 0x41, 0x44, 0xbf, 0x1f, 0xa2, 0xd7, 0x41, 0x42, 0x0b, 0x00, 0xa0, + 0xd7, 0x41, 0x42, 0x49, 0x00, 0xa5, 0xd7, 0x01, 0xe9, 0x9f, 0xd7, 0x01, + 0x42, 0x5a, 0x03, 0xa7, 0xd7, 0x41, 0xad, 0x01, 0xff, 0x43, 0xce, 0x05, + 0xa8, 0xd7, 0x01, 0x45, 0x4a, 0xe7, 0x9e, 0xd7, 0x41, 0xf5, 0x9c, 0xd7, + 0x41, 0xf5, 0x9b, 0xd7, 0x41, 0x44, 0x18, 0xe8, 0x9a, 0xd7, 0x41, 0x44, + 0x94, 0x90, 0x99, 0xd7, 0x41, 0x43, 0x1b, 0x05, 0x98, 0xd7, 0x41, 0x44, + 0x00, 0x21, 0x92, 0xd7, 0x41, 0x46, 0xcf, 0x15, 0x94, 0xd7, 0x01, 0x42, + 0x12, 0x00, 0x96, 0xd7, 0x41, 0x44, 0x38, 0xd6, 0x93, 0xd7, 0x41, 0x42, + 0x49, 0x00, 0xa6, 0xd7, 0x41, 0x43, 0x94, 0x0f, 0x91, 0xd7, 0x41, 0x44, + 0x3f, 0xe4, 0x90, 0xd7, 0x41, 0x45, 0x12, 0x0b, 0xf4, 0xd7, 0x01, 0xa6, + 0x2e, 0x44, 0xcf, 0x2a, 0xf5, 0xd7, 0x01, 0x43, 0x0e, 0x0b, 0xed, 0xd7, + 0x01, 0xb3, 0x14, 0xb4, 0x06, 0x44, 0x43, 0x1e, 0xec, 0xd7, 0x41, 0x44, + 0x25, 0x01, 0xef, 0xd7, 0x01, 0x42, 0x15, 0x02, 0xee, 0xd7, 0x41, 0x44, + 0xc9, 0x1d, 0xf3, 0xd7, 0x01, 0x42, 0x01, 0x26, 0xf2, 0xd7, 0x41, 0x43, + 0xd2, 0x05, 0xf1, 0xd7, 0x01, 0x43, 0xf6, 0x06, 0xf0, 0xd7, 0x41, 0xe1, + 0xd4, 0xd5, 0x81, 0x8c, 0x02, 0xe2, 0xd5, 0xd5, 0x81, 0x80, 0x02, 0xe3, + 0xd6, 0xd5, 0x81, 0xf4, 0x01, 0xe4, 0xd7, 0xd5, 0x81, 0xe8, 0x01, 0xe5, + 0xd8, 0xd5, 0x81, 0xd6, 0x01, 0xe6, 0xd9, 0xd5, 0x01, 0xe7, 0xda, 0xd5, + 0x81, 0xc6, 0x01, 0xe8, 0xdb, 0xd5, 0x01, 0xe9, 0xdc, 0xd5, 0x81, 0xb6, + 0x01, 0xea, 0xdd, 0xd5, 0x01, 0xeb, 0xde, 0xd5, 0x81, 0xa6, 0x01, 0xec, + 0xdf, 0xd5, 0x81, 0x9a, 0x01, 0xed, 0xe0, 0xd5, 0x81, 0x90, 0x01, 0xee, + 0xe1, 0xd5, 0x81, 0x86, 0x01, 0xef, 0xe2, 0xd5, 0x81, 0x72, 0xf0, 0xe3, + 0xd5, 0x81, 0x5d, 0xf1, 0xe4, 0xd5, 0x01, 0xf2, 0xe5, 0xd5, 0x81, 0x4e, + 0xf3, 0xe6, 0xd5, 0x81, 0x43, 0xf4, 0xe7, 0xd5, 0x81, 0x2b, 0xf5, 0xe8, + 0xd5, 0x81, 0x20, 0xf6, 0xe9, 0xd5, 0x01, 0xf7, 0xea, 0xd5, 0x01, 0xf8, + 0xeb, 0xd5, 0x81, 0x0f, 0xf9, 0xec, 0xd5, 0x01, 0xfa, 0xed, 0xd5, 0xc1, + 0x00, 0x43, 0x94, 0x0f, 0x5b, 0xd7, 0x41, 0xe9, 0x63, 0xd7, 0x41, 0x46, + 0xcf, 0x15, 0x6a, 0xd7, 0x41, 0x42, 0x5f, 0x24, 0x69, 0xd7, 0x01, 0x44, + 0xc8, 0x95, 0x5d, 0xd7, 0xc1, 0x00, 0x47, 0x15, 0x08, 0x67, 0xd7, 0x41, + 0x44, 0xbf, 0x1f, 0x68, 0xd7, 0x41, 0x42, 0x0b, 0x00, 0x66, 0xd7, 0x41, + 0x42, 0x49, 0x00, 0x6b, 0xd7, 0x01, 0xe9, 0x65, 0xd7, 0x01, 0x42, 0x5a, + 0x03, 0x6d, 0xd7, 0x41, 0xad, 0x01, 0xff, 0x43, 0xce, 0x05, 0x6e, 0xd7, + 0x01, 0x45, 0x4a, 0xe7, 0x64, 0xd7, 0x41, 0xf5, 0x62, 0xd7, 0x41, 0xf5, + 0x61, 0xd7, 0x41, 0x44, 0x18, 0xe8, 0x60, 0xd7, 0x41, 0x44, 0x94, 0x90, + 0x5f, 0xd7, 0x41, 0x43, 0x1b, 0x05, 0x5e, 0xd7, 0x41, 0x44, 0x00, 0x21, + 0x58, 0xd7, 0x41, 0x46, 0xcf, 0x15, 0x5a, 0xd7, 0x01, 0x42, 0x12, 0x00, + 0x5c, 0xd7, 0x41, 0x44, 0x38, 0xd6, 0x59, 0xd7, 0x41, 0x42, 0x49, 0x00, + 0x6c, 0xd7, 0x41, 0x43, 0x94, 0x0f, 0x57, 0xd7, 0x41, 0x44, 0x3f, 0xe4, + 0x56, 0xd7, 0x41, 0x04, 0xca, 0x00, 0x06, 0x4d, 0x38, 0x31, 0xcb, 0x27, + 0x40, 0x4d, 0x3e, 0x0f, 0xe9, 0x27, 0x00, 0x54, 0xa4, 0x41, 0xeb, 0x27, + 0x00, 0x55, 0x30, 0x3b, 0xef, 0x27, 0x00, 0x06, 0xad, 0x02, 0x01, 0xff, + 0x4e, 0xc8, 0x26, 0xe7, 0x27, 0x00, 0x56, 0x54, 0x09, 0xed, 0x27, 0x40, + 0x08, 0xe4, 0x05, 0xb3, 0x01, 0x06, 0xef, 0x06, 0x6d, 0x06, 0x5d, 0x07, + 0x01, 0xff, 0xe1, 0x8a, 0xd6, 0x01, 0xe2, 0x8b, 0xd6, 0x01, 0xe3, 0x8c, + 0xd6, 0x01, 0xe4, 0x8d, 0xd6, 0x01, 0xe5, 0x8e, 0xd6, 0x01, 0xe6, 0x8f, + 0xd6, 0x01, 0xe7, 0x90, 0xd6, 0x01, 0xe8, 0x91, 0xd6, 0x01, 0xe9, 0x92, + 0xd6, 0x01, 0xea, 0x93, 0xd6, 0x01, 0xeb, 0x94, 0xd6, 0x01, 0xec, 0x95, + 0xd6, 0x01, 0xed, 0x96, 0xd6, 0x01, 0xee, 0x97, 0xd6, 0x01, 0xef, 0x98, + 0xd6, 0x01, 0xf0, 0x99, 0xd6, 0x01, 0xf1, 0x9a, 0xd6, 0x01, 0xf2, 0x9b, + 0xd6, 0x01, 0xf3, 0x9c, 0xd6, 0x01, 0xf4, 0x9d, 0xd6, 0x01, 0xf5, 0x9e, + 0xd6, 0x01, 0xf6, 0x9f, 0xd6, 0x01, 0xf7, 0xa0, 0xd6, 0x01, 0xf8, 0xa1, + 0xd6, 0x01, 0xf9, 0xa2, 0xd6, 0x01, 0xfa, 0xa3, 0xd6, 0x41, 0x45, 0x12, + 0x0b, 0xfe, 0xd7, 0x01, 0xa6, 0x2e, 0x44, 0xcf, 0x2a, 0xff, 0xd7, 0x01, + 0x43, 0x0e, 0x0b, 0xf7, 0xd7, 0x01, 0xb3, 0x14, 0xb4, 0x06, 0x44, 0x43, + 0x1e, 0xf6, 0xd7, 0x41, 0x44, 0x25, 0x01, 0xf9, 0xd7, 0x01, 0x42, 0x15, + 0x02, 0xf8, 0xd7, 0x41, 0x44, 0xc9, 0x1d, 0xfd, 0xd7, 0x01, 0x42, 0x01, + 0x26, 0xfc, 0xd7, 0x41, 0x43, 0xd2, 0x05, 0xfb, 0xd7, 0x01, 0x43, 0xf6, + 0x06, 0xfa, 0xd7, 0x41, 0xe1, 0x70, 0xd6, 0x01, 0xe2, 0x71, 0xd6, 0x01, + 0xe3, 0x72, 0xd6, 0x01, 0xe4, 0x73, 0xd6, 0x01, 0xe5, 0x74, 0xd6, 0x01, + 0xe6, 0x75, 0xd6, 0x01, 0xe7, 0x76, 0xd6, 0x01, 0xe8, 0x77, 0xd6, 0x01, + 0xe9, 0x78, 0xd6, 0x01, 0xea, 0x79, 0xd6, 0x01, 0xeb, 0x7a, 0xd6, 0x01, + 0xec, 0x7b, 0xd6, 0x01, 0xed, 0x7c, 0xd6, 0x01, 0xee, 0x7d, 0xd6, 0x01, + 0xef, 0x7e, 0xd6, 0x01, 0xf0, 0x7f, 0xd6, 0x01, 0xf1, 0x80, 0xd6, 0x01, + 0xf2, 0x81, 0xd6, 0x01, 0xf3, 0x82, 0xd6, 0x01, 0xf4, 0x83, 0xd6, 0x01, + 0xf5, 0x84, 0xd6, 0x01, 0xf6, 0x85, 0xd6, 0x01, 0xf7, 0x86, 0xd6, 0x01, + 0xf8, 0x87, 0xd6, 0x01, 0xf9, 0x88, 0xd6, 0x01, 0xfa, 0x89, 0xd6, 0x41, + 0x4d, 0x3e, 0x0f, 0xe8, 0x27, 0x00, 0x54, 0xa4, 0x41, 0xea, 0x27, 0x00, + 0x55, 0x30, 0x3b, 0xee, 0x27, 0x00, 0x06, 0xad, 0x02, 0x01, 0xff, 0x4e, + 0xc8, 0x26, 0xe6, 0x27, 0x00, 0x56, 0x54, 0x09, 0xec, 0x27, 0x40, 0x08, + 0xe4, 0x05, 0xd8, 0x02, 0x4e, 0xce, 0x15, 0x16, 0xd7, 0x01, 0x4c, 0x93, + 0x90, 0x18, 0xd7, 0x01, 0x45, 0xe9, 0xe8, 0xfb, 0xd6, 0x01, 0xb0, 0xb1, + 0x02, 0x4a, 0x41, 0xb0, 0x1a, 0xd7, 0x01, 0x06, 0x5d, 0x07, 0x06, 0x4c, + 0xc7, 0x95, 0x17, 0xd7, 0x41, 0xe1, 0x4e, 0xd4, 0x81, 0x95, 0x02, 0xe2, + 0x4f, 0xd4, 0x81, 0x89, 0x02, 0xe3, 0x50, 0xd4, 0x81, 0xfd, 0x01, 0xe4, + 0x51, 0xd4, 0x81, 0xe4, 0x01, 0xe5, 0x52, 0xd4, 0x81, 0xd2, 0x01, 0xe6, + 0x53, 0xd4, 0x81, 0xc6, 0x01, 0xe7, 0x54, 0xd4, 0x81, 0xba, 0x01, 0xe9, + 0x56, 0xd4, 0x81, 0xae, 0x01, 0xea, 0x57, 0xd4, 0x01, 0xeb, 0x58, 0xd4, + 0x81, 0x9e, 0x01, 0xec, 0x59, 0xd4, 0x81, 0x92, 0x01, 0xed, 0x5a, 0xd4, + 0x81, 0x88, 0x01, 0xee, 0x5b, 0xd4, 0x81, 0x7f, 0xef, 0x5c, 0xd4, 0x81, + 0x6b, 0xf0, 0x5d, 0xd4, 0x81, 0x56, 0xf1, 0x5e, 0xd4, 0x01, 0xf2, 0x5f, + 0xd4, 0x81, 0x47, 0xf3, 0x60, 0xd4, 0x81, 0x3c, 0xf4, 0x61, 0xd4, 0x81, + 0x2b, 0xf5, 0x62, 0xd4, 0x81, 0x20, 0xf6, 0x63, 0xd4, 0x01, 0xf7, 0x64, + 0xd4, 0x01, 0xf8, 0x65, 0xd4, 0x81, 0x0f, 0xf9, 0x66, 0xd4, 0x01, 0xfa, + 0x67, 0xd4, 0xc1, 0x00, 0x43, 0x94, 0x0f, 0x01, 0xd7, 0x41, 0xe9, 0x09, + 0xd7, 0x41, 0x46, 0xcf, 0x15, 0x10, 0xd7, 0x41, 0x42, 0x5f, 0x24, 0x0f, + 0xd7, 0x01, 0x44, 0xc8, 0x95, 0x03, 0xd7, 0x41, 0x44, 0xbf, 0x1f, 0x0e, + 0xd7, 0x41, 0x42, 0x0b, 0x00, 0x0c, 0xd7, 0x41, 0x42, 0x49, 0x00, 0x11, + 0xd7, 0x01, 0xe9, 0x0b, 0xd7, 0x01, 0x42, 0x5a, 0x03, 0x13, 0xd7, 0x41, + 0xad, 0x01, 0xff, 0x43, 0xce, 0x05, 0x14, 0xd7, 0x01, 0x45, 0x4a, 0xe7, + 0x0a, 0xd7, 0x41, 0xf5, 0x08, 0xd7, 0x41, 0xf5, 0x07, 0xd7, 0x41, 0x44, + 0x18, 0xe8, 0x06, 0xd7, 0x41, 0x44, 0x94, 0x90, 0x05, 0xd7, 0x41, 0x43, + 0x1b, 0x05, 0x04, 0xd7, 0x41, 0x44, 0x00, 0x21, 0xfe, 0xd6, 0x41, 0x4a, + 0x19, 0x9c, 0x0d, 0xd7, 0x41, 0x46, 0xcf, 0x15, 0x00, 0xd7, 0x01, 0x42, + 0x12, 0x00, 0x02, 0xd7, 0x41, 0x44, 0x38, 0xd6, 0xff, 0xd6, 0x01, 0x07, + 0x91, 0x41, 0x01, 0xff, 0xe9, 0xa4, 0xd6, 0x01, 0xea, 0xa5, 0xd6, 0x41, + 0x42, 0x49, 0x00, 0x12, 0xd7, 0x41, 0x43, 0x94, 0x0f, 0xfd, 0xd6, 0x41, + 0x44, 0x3f, 0xe4, 0xfc, 0xd6, 0x41, 0x53, 0x4e, 0x48, 0x15, 0xd7, 0x01, + 0x49, 0x93, 0xb9, 0x19, 0xd7, 0x01, 0x48, 0x5b, 0xac, 0x1b, 0xd7, 0x41, + 0xe1, 0x34, 0xd4, 0x81, 0x8c, 0x02, 0xe2, 0x35, 0xd4, 0x81, 0x80, 0x02, + 0xe3, 0x36, 0xd4, 0x81, 0xf4, 0x01, 0xe4, 0x37, 0xd4, 0x81, 0xe8, 0x01, + 0xe5, 0x38, 0xd4, 0x81, 0xd6, 0x01, 0xe6, 0x39, 0xd4, 0x01, 0xe7, 0x3a, + 0xd4, 0x81, 0xc6, 0x01, 0xe8, 0x3b, 0xd4, 0x01, 0xe9, 0x3c, 0xd4, 0x81, + 0xb6, 0x01, 0xea, 0x3d, 0xd4, 0x01, 0xeb, 0x3e, 0xd4, 0x81, 0xa6, 0x01, + 0xec, 0x3f, 0xd4, 0x81, 0x9a, 0x01, 0xed, 0x40, 0xd4, 0x81, 0x90, 0x01, + 0xee, 0x41, 0xd4, 0x81, 0x86, 0x01, 0xef, 0x42, 0xd4, 0x81, 0x72, 0xf0, + 0x43, 0xd4, 0x81, 0x5d, 0xf1, 0x44, 0xd4, 0x01, 0xf2, 0x45, 0xd4, 0x81, + 0x4e, 0xf3, 0x46, 0xd4, 0x81, 0x43, 0xf4, 0x47, 0xd4, 0x81, 0x2b, 0xf5, + 0x48, 0xd4, 0x81, 0x20, 0xf6, 0x49, 0xd4, 0x01, 0xf7, 0x4a, 0xd4, 0x01, + 0xf8, 0x4b, 0xd4, 0x81, 0x0f, 0xf9, 0x4c, 0xd4, 0x01, 0xfa, 0x4d, 0xd4, + 0xc1, 0x00, 0x43, 0x94, 0x0f, 0xe7, 0xd6, 0x41, 0xe9, 0xef, 0xd6, 0x41, + 0x46, 0xcf, 0x15, 0xf6, 0xd6, 0x41, 0x42, 0x5f, 0x24, 0xf5, 0xd6, 0x01, + 0x44, 0xc8, 0x95, 0xe9, 0xd6, 0xc1, 0x00, 0x47, 0x15, 0x08, 0xf3, 0xd6, + 0x41, 0x44, 0xbf, 0x1f, 0xf4, 0xd6, 0x41, 0x42, 0x0b, 0x00, 0xf2, 0xd6, + 0x41, 0x42, 0x49, 0x00, 0xf7, 0xd6, 0x01, 0xe9, 0xf1, 0xd6, 0x01, 0x42, + 0x5a, 0x03, 0xf9, 0xd6, 0x41, 0xad, 0x01, 0xff, 0x43, 0xce, 0x05, 0xfa, + 0xd6, 0x01, 0x45, 0x4a, 0xe7, 0xf0, 0xd6, 0x41, 0xf5, 0xee, 0xd6, 0x41, + 0xf5, 0xed, 0xd6, 0x41, 0x44, 0x18, 0xe8, 0xec, 0xd6, 0x41, 0x44, 0x94, + 0x90, 0xeb, 0xd6, 0x41, 0x43, 0x1b, 0x05, 0xea, 0xd6, 0x41, 0x44, 0x00, + 0x21, 0xe4, 0xd6, 0x41, 0x46, 0xcf, 0x15, 0xe6, 0xd6, 0x01, 0x42, 0x12, + 0x00, 0xe8, 0xd6, 0x41, 0x44, 0x38, 0xd6, 0xe5, 0xd6, 0x41, 0x42, 0x49, + 0x00, 0xf8, 0xd6, 0x41, 0x43, 0x94, 0x0f, 0xe3, 0xd6, 0x41, 0x44, 0x3f, + 0xe4, 0xe2, 0xd6, 0x41, 0x4f, 0x23, 0x39, 0xcd, 0x27, 0x00, 0x07, 0x41, + 0xc6, 0x01, 0xff, 0x08, 0xe4, 0x05, 0x6d, 0x06, 0x5d, 0x07, 0x01, 0xff, + 0xe1, 0x1e, 0xd5, 0x01, 0xe2, 0x1f, 0xd5, 0x01, 0xe3, 0x20, 0xd5, 0x01, + 0xe4, 0x21, 0xd5, 0x01, 0xe5, 0x22, 0xd5, 0x01, 0xe6, 0x23, 0xd5, 0x01, + 0xe7, 0x24, 0xd5, 0x01, 0xe8, 0x25, 0xd5, 0x01, 0xe9, 0x26, 0xd5, 0x01, + 0xea, 0x27, 0xd5, 0x01, 0xeb, 0x28, 0xd5, 0x01, 0xec, 0x29, 0xd5, 0x01, + 0xed, 0x2a, 0xd5, 0x01, 0xee, 0x2b, 0xd5, 0x01, 0xef, 0x2c, 0xd5, 0x01, + 0xf0, 0x2d, 0xd5, 0x01, 0xf1, 0x2e, 0xd5, 0x01, 0xf2, 0x2f, 0xd5, 0x01, + 0xf3, 0x30, 0xd5, 0x01, 0xf4, 0x31, 0xd5, 0x01, 0xf5, 0x32, 0xd5, 0x01, + 0xf6, 0x33, 0xd5, 0x01, 0xf7, 0x34, 0xd5, 0x01, 0xf8, 0x35, 0xd5, 0x01, + 0xf9, 0x36, 0xd5, 0x01, 0xfa, 0x37, 0xd5, 0x41, 0xe1, 0x04, 0xd5, 0x01, + 0xe2, 0x05, 0xd5, 0x01, 0xe4, 0x07, 0xd5, 0x01, 0xe5, 0x08, 0xd5, 0x01, + 0xe6, 0x09, 0xd5, 0x01, 0xe7, 0x0a, 0xd5, 0x01, 0xea, 0x0d, 0xd5, 0x01, + 0xeb, 0x0e, 0xd5, 0x01, 0xec, 0x0f, 0xd5, 0x01, 0xed, 0x10, 0xd5, 0x01, + 0xee, 0x11, 0xd5, 0x01, 0xef, 0x12, 0xd5, 0x01, 0xf0, 0x13, 0xd5, 0x01, + 0xf1, 0x14, 0xd5, 0x01, 0xf3, 0x16, 0xd5, 0x01, 0xf4, 0x17, 0xd5, 0x01, + 0xf5, 0x18, 0xd5, 0x01, 0xf6, 0x19, 0xd5, 0x01, 0xf7, 0x1a, 0xd5, 0x01, + 0xf8, 0x1b, 0xd5, 0x01, 0xf9, 0x1c, 0xd5, 0x41, 0x08, 0xe4, 0x05, 0xb3, + 0x01, 0x06, 0xef, 0x06, 0x6d, 0x06, 0x5d, 0x07, 0x01, 0xff, 0xe1, 0x52, + 0xd5, 0x01, 0xe2, 0x53, 0xd5, 0x01, 0xe3, 0x54, 0xd5, 0x01, 0xe4, 0x55, + 0xd5, 0x01, 0xe5, 0x56, 0xd5, 0x01, 0xe6, 0x57, 0xd5, 0x01, 0xe7, 0x58, + 0xd5, 0x01, 0xe8, 0x59, 0xd5, 0x01, 0xe9, 0x5a, 0xd5, 0x01, 0xea, 0x5b, + 0xd5, 0x01, 0xeb, 0x5c, 0xd5, 0x01, 0xec, 0x5d, 0xd5, 0x01, 0xed, 0x5e, + 0xd5, 0x01, 0xee, 0x5f, 0xd5, 0x01, 0xef, 0x60, 0xd5, 0x01, 0xf0, 0x61, + 0xd5, 0x01, 0xf1, 0x62, 0xd5, 0x01, 0xf2, 0x63, 0xd5, 0x01, 0xf3, 0x64, + 0xd5, 0x01, 0xf4, 0x65, 0xd5, 0x01, 0xf5, 0x66, 0xd5, 0x01, 0xf6, 0x67, + 0xd5, 0x01, 0xf7, 0x68, 0xd5, 0x01, 0xf8, 0x69, 0xd5, 0x01, 0xf9, 0x6a, + 0xd5, 0x01, 0xfa, 0x6b, 0xd5, 0x41, 0x45, 0x12, 0x0b, 0xe0, 0xd7, 0x01, + 0xa6, 0x2e, 0x44, 0xcf, 0x2a, 0xe1, 0xd7, 0x01, 0x43, 0x0e, 0x0b, 0xd9, + 0xd7, 0x01, 0xb3, 0x14, 0xb4, 0x06, 0x44, 0x43, 0x1e, 0xd8, 0xd7, 0x41, + 0x44, 0x25, 0x01, 0xdb, 0xd7, 0x01, 0x42, 0x15, 0x02, 0xda, 0xd7, 0x41, + 0x44, 0xc9, 0x1d, 0xdf, 0xd7, 0x01, 0x42, 0x01, 0x26, 0xde, 0xd7, 0x41, + 0x43, 0xd2, 0x05, 0xdd, 0xd7, 0x01, 0x43, 0xf6, 0x06, 0xdc, 0xd7, 0x41, + 0xe1, 0x38, 0xd5, 0x01, 0xe2, 0x39, 0xd5, 0x01, 0xe4, 0x3b, 0xd5, 0x01, + 0xe5, 0x3c, 0xd5, 0x01, 0xe6, 0x3d, 0xd5, 0x01, 0xe7, 0x3e, 0xd5, 0x01, + 0xe9, 0x40, 0xd5, 0x01, 0xea, 0x41, 0xd5, 0x01, 0xeb, 0x42, 0xd5, 0x01, + 0xec, 0x43, 0xd5, 0x01, 0xed, 0x44, 0xd5, 0x01, 0xef, 0x46, 0xd5, 0x01, + 0xf3, 0x4a, 0xd5, 0x01, 0xf4, 0x4b, 0xd5, 0x01, 0xf5, 0x4c, 0xd5, 0x01, + 0xf6, 0x4d, 0xd5, 0x01, 0xf7, 0x4e, 0xd5, 0x01, 0xf8, 0x4f, 0xd5, 0x01, + 0xf9, 0x50, 0xd5, 0x41, 0x08, 0xe4, 0x05, 0xcc, 0x0b, 0x06, 0xef, 0x06, + 0x85, 0x0b, 0x4e, 0xce, 0x15, 0xdc, 0xd6, 0x01, 0x08, 0x40, 0xc6, 0xa1, + 0x09, 0x07, 0x0b, 0xd2, 0xb0, 0x04, 0x4c, 0x93, 0x90, 0xde, 0xd6, 0x01, + 0x45, 0xe9, 0xe8, 0xc1, 0xd6, 0x01, 0xb0, 0x8f, 0x04, 0x4a, 0x41, 0xb0, + 0xe0, 0xd6, 0x01, 0xb3, 0x06, 0x4c, 0xc7, 0x95, 0xdd, 0xd6, 0x41, 0x06, + 0x75, 0x06, 0xa3, 0x02, 0x05, 0x5e, 0x07, 0x01, 0xff, 0xe1, 0x1a, 0xd4, + 0x81, 0x92, 0x02, 0xe2, 0x1b, 0xd4, 0x81, 0x86, 0x02, 0xe3, 0x1c, 0xd4, + 0x81, 0xfa, 0x01, 0xe4, 0x1d, 0xd4, 0x81, 0xe8, 0x01, 0xe5, 0x1e, 0xd4, + 0x81, 0xd6, 0x01, 0xe6, 0x1f, 0xd4, 0x81, 0xca, 0x01, 0xe7, 0x20, 0xd4, + 0x81, 0xbe, 0x01, 0xe8, 0x21, 0xd4, 0x01, 0xe9, 0x22, 0xd4, 0x81, 0xae, + 0x01, 0xea, 0x23, 0xd4, 0x01, 0xeb, 0x24, 0xd4, 0x81, 0x9e, 0x01, 0xec, + 0x25, 0xd4, 0x81, 0x92, 0x01, 0xed, 0x26, 0xd4, 0x81, 0x88, 0x01, 0xee, + 0x27, 0xd4, 0x81, 0x7f, 0xef, 0x28, 0xd4, 0x81, 0x6b, 0xf0, 0x29, 0xd4, + 0x81, 0x56, 0xf1, 0x2a, 0xd4, 0x01, 0xf2, 0x2b, 0xd4, 0x81, 0x47, 0xf3, + 0x2c, 0xd4, 0x81, 0x3c, 0xf4, 0x2d, 0xd4, 0x81, 0x2b, 0xf5, 0x2e, 0xd4, + 0x81, 0x20, 0xf6, 0x2f, 0xd4, 0x01, 0xf7, 0x30, 0xd4, 0x01, 0xf8, 0x31, + 0xd4, 0x81, 0x0f, 0xf9, 0x32, 0xd4, 0x01, 0xfa, 0x33, 0xd4, 0xc1, 0x00, + 0x43, 0x94, 0x0f, 0xc7, 0xd6, 0x41, 0xe9, 0xcf, 0xd6, 0x41, 0x46, 0xcf, + 0x15, 0xd6, 0xd6, 0x41, 0x42, 0x5f, 0x24, 0xd5, 0xd6, 0x01, 0x44, 0xc8, + 0x95, 0xc9, 0xd6, 0x41, 0x44, 0xbf, 0x1f, 0xd4, 0xd6, 0x41, 0x42, 0x0b, + 0x00, 0xd2, 0xd6, 0x41, 0x42, 0x49, 0x00, 0xd7, 0xd6, 0x01, 0xe9, 0xd1, + 0xd6, 0x01, 0x42, 0x5a, 0x03, 0xd9, 0xd6, 0x41, 0xad, 0x01, 0xff, 0x43, + 0xce, 0x05, 0xda, 0xd6, 0x01, 0x45, 0x4a, 0xe7, 0xd0, 0xd6, 0x41, 0xf5, + 0xce, 0xd6, 0x41, 0xf5, 0xcd, 0xd6, 0x41, 0x44, 0x18, 0xe8, 0xcc, 0xd6, + 0x41, 0x44, 0x94, 0x90, 0xcb, 0xd6, 0x41, 0x43, 0x1b, 0x05, 0xca, 0xd6, + 0x41, 0x44, 0x00, 0x21, 0xc4, 0xd6, 0x41, 0x4a, 0x19, 0x9c, 0xd3, 0xd6, + 0x41, 0x46, 0xcf, 0x15, 0xc6, 0xd6, 0x01, 0x42, 0x12, 0x00, 0xc8, 0xd6, + 0x41, 0x44, 0x38, 0xd6, 0xc5, 0xd6, 0x01, 0x46, 0x2b, 0x58, 0xcb, 0xd7, + 0x41, 0x42, 0x49, 0x00, 0xd8, 0xd6, 0x41, 0x43, 0x94, 0x0f, 0xc3, 0xd6, + 0x41, 0x44, 0x3f, 0xe4, 0xc2, 0xd6, 0x41, 0x08, 0xe4, 0x05, 0x6d, 0x06, + 0x5d, 0x07, 0x01, 0xff, 0xe1, 0xea, 0xd4, 0x01, 0xe2, 0xeb, 0xd4, 0x01, + 0xe3, 0xec, 0xd4, 0x01, 0xe4, 0xed, 0xd4, 0x01, 0xe5, 0xee, 0xd4, 0x01, + 0xe6, 0xef, 0xd4, 0x01, 0xe7, 0xf0, 0xd4, 0x01, 0xe8, 0xf1, 0xd4, 0x01, + 0xe9, 0xf2, 0xd4, 0x01, 0xea, 0xf3, 0xd4, 0x01, 0xeb, 0xf4, 0xd4, 0x01, + 0xec, 0xf5, 0xd4, 0x01, 0xed, 0xf6, 0xd4, 0x01, 0xee, 0xf7, 0xd4, 0x01, + 0xef, 0xf8, 0xd4, 0x01, 0xf0, 0xf9, 0xd4, 0x01, 0xf1, 0xfa, 0xd4, 0x01, + 0xf2, 0xfb, 0xd4, 0x01, 0xf3, 0xfc, 0xd4, 0x01, 0xf4, 0xfd, 0xd4, 0x01, + 0xf5, 0xfe, 0xd4, 0x01, 0xf6, 0xff, 0xd4, 0x01, 0xf7, 0x00, 0xd5, 0x01, + 0xf8, 0x01, 0xd5, 0x01, 0xf9, 0x02, 0xd5, 0x01, 0xfa, 0x03, 0xd5, 0x41, + 0xe1, 0xd0, 0xd4, 0x01, 0xe2, 0xd1, 0xd4, 0x01, 0xe3, 0xd2, 0xd4, 0x01, + 0xe4, 0xd3, 0xd4, 0x01, 0xe5, 0xd4, 0xd4, 0x01, 0xe6, 0xd5, 0xd4, 0x01, + 0xe7, 0xd6, 0xd4, 0x01, 0xe8, 0xd7, 0xd4, 0x01, 0xe9, 0xd8, 0xd4, 0x01, + 0xea, 0xd9, 0xd4, 0x01, 0xeb, 0xda, 0xd4, 0x01, 0xec, 0xdb, 0xd4, 0x01, + 0xed, 0xdc, 0xd4, 0x01, 0xee, 0xdd, 0xd4, 0x01, 0xef, 0xde, 0xd4, 0x01, + 0xf0, 0xdf, 0xd4, 0x01, 0xf1, 0xe0, 0xd4, 0x01, 0xf2, 0xe1, 0xd4, 0x01, + 0xf3, 0xe2, 0xd4, 0x01, 0xf4, 0xe3, 0xd4, 0x01, 0xf5, 0xe4, 0xd4, 0x01, + 0xf6, 0xe5, 0xd4, 0x01, 0xf7, 0xe6, 0xd4, 0x01, 0xf8, 0xe7, 0xd4, 0x01, + 0xf9, 0xe8, 0xd4, 0x01, 0xfa, 0xe9, 0xd4, 0x41, 0x53, 0x4e, 0x48, 0xdb, + 0xd6, 0x01, 0x49, 0x93, 0xb9, 0xdf, 0xd6, 0x01, 0x48, 0x5b, 0xac, 0xe1, + 0xd6, 0x41, 0x08, 0xe4, 0x05, 0xcf, 0x02, 0x4e, 0xce, 0x15, 0x50, 0xd7, + 0x01, 0x4c, 0x93, 0x90, 0x52, 0xd7, 0x01, 0x45, 0xe9, 0xe8, 0x35, 0xd7, + 0x01, 0xb0, 0xa8, 0x02, 0x4a, 0x41, 0xb0, 0x54, 0xd7, 0x01, 0x06, 0x5d, + 0x07, 0x06, 0x4c, 0xc7, 0x95, 0x51, 0xd7, 0x41, 0xe1, 0x82, 0xd4, 0x81, + 0x8c, 0x02, 0xe2, 0x83, 0xd4, 0x81, 0x80, 0x02, 0xe3, 0x84, 0xd4, 0x81, + 0xf4, 0x01, 0xe4, 0x85, 0xd4, 0x81, 0xe8, 0x01, 0xe5, 0x86, 0xd4, 0x81, + 0xd6, 0x01, 0xe6, 0x87, 0xd4, 0x81, 0xca, 0x01, 0xe7, 0x88, 0xd4, 0x81, + 0xbe, 0x01, 0xe8, 0x89, 0xd4, 0x01, 0xe9, 0x8a, 0xd4, 0x81, 0xae, 0x01, + 0xea, 0x8b, 0xd4, 0x01, 0xeb, 0x8c, 0xd4, 0x81, 0x9e, 0x01, 0xec, 0x8d, + 0xd4, 0x81, 0x92, 0x01, 0xed, 0x8e, 0xd4, 0x81, 0x88, 0x01, 0xee, 0x8f, + 0xd4, 0x81, 0x7f, 0xef, 0x90, 0xd4, 0x81, 0x6b, 0xf0, 0x91, 0xd4, 0x81, + 0x56, 0xf1, 0x92, 0xd4, 0x01, 0xf2, 0x93, 0xd4, 0x81, 0x47, 0xf3, 0x94, + 0xd4, 0x81, 0x3c, 0xf4, 0x95, 0xd4, 0x81, 0x2b, 0xf5, 0x96, 0xd4, 0x81, + 0x20, 0xf6, 0x97, 0xd4, 0x01, 0xf7, 0x98, 0xd4, 0x01, 0xf8, 0x99, 0xd4, + 0x81, 0x0f, 0xf9, 0x9a, 0xd4, 0x01, 0xfa, 0x9b, 0xd4, 0xc1, 0x00, 0x43, + 0x94, 0x0f, 0x3b, 0xd7, 0x41, 0xe9, 0x43, 0xd7, 0x41, 0x46, 0xcf, 0x15, + 0x4a, 0xd7, 0x41, 0x42, 0x5f, 0x24, 0x49, 0xd7, 0x01, 0x44, 0xc8, 0x95, + 0x3d, 0xd7, 0x41, 0x44, 0xbf, 0x1f, 0x48, 0xd7, 0x41, 0x42, 0x0b, 0x00, + 0x46, 0xd7, 0x41, 0x42, 0x49, 0x00, 0x4b, 0xd7, 0x01, 0xe9, 0x45, 0xd7, + 0x01, 0x42, 0x5a, 0x03, 0x4d, 0xd7, 0x41, 0xad, 0x01, 0xff, 0x43, 0xce, + 0x05, 0x4e, 0xd7, 0x01, 0x45, 0x4a, 0xe7, 0x44, 0xd7, 0x41, 0xf5, 0x42, + 0xd7, 0x41, 0xf5, 0x41, 0xd7, 0x41, 0x44, 0x18, 0xe8, 0x40, 0xd7, 0x41, + 0x44, 0x94, 0x90, 0x3f, 0xd7, 0x41, 0x43, 0x1b, 0x05, 0x3e, 0xd7, 0x41, + 0x44, 0x00, 0x21, 0x38, 0xd7, 0x41, 0x4a, 0x19, 0x9c, 0x47, 0xd7, 0x41, + 0x46, 0xcf, 0x15, 0x3a, 0xd7, 0x01, 0x42, 0x12, 0x00, 0x3c, 0xd7, 0x41, + 0x44, 0x38, 0xd6, 0x39, 0xd7, 0x41, 0x42, 0x49, 0x00, 0x4c, 0xd7, 0x41, + 0x43, 0x94, 0x0f, 0x37, 0xd7, 0x41, 0x44, 0x3f, 0xe4, 0x36, 0xd7, 0x41, + 0x53, 0x4e, 0x48, 0x4f, 0xd7, 0x01, 0x49, 0x93, 0xb9, 0x53, 0xd7, 0x01, + 0x48, 0x5b, 0xac, 0x55, 0xd7, 0x41, 0xe1, 0x68, 0xd4, 0x81, 0x8c, 0x02, + 0xe2, 0x69, 0xd4, 0x81, 0x80, 0x02, 0xe3, 0x6a, 0xd4, 0x81, 0xf4, 0x01, + 0xe4, 0x6b, 0xd4, 0x81, 0xe8, 0x01, 0xe5, 0x6c, 0xd4, 0x81, 0xd6, 0x01, + 0xe6, 0x6d, 0xd4, 0x01, 0xe7, 0x6e, 0xd4, 0x81, 0xc6, 0x01, 0xe8, 0x6f, + 0xd4, 0x01, 0xe9, 0x70, 0xd4, 0x81, 0xb6, 0x01, 0xea, 0x71, 0xd4, 0x01, + 0xeb, 0x72, 0xd4, 0x81, 0xa6, 0x01, 0xec, 0x73, 0xd4, 0x81, 0x9a, 0x01, + 0xed, 0x74, 0xd4, 0x81, 0x90, 0x01, 0xee, 0x75, 0xd4, 0x81, 0x86, 0x01, + 0xef, 0x76, 0xd4, 0x81, 0x72, 0xf0, 0x77, 0xd4, 0x81, 0x5d, 0xf1, 0x78, + 0xd4, 0x01, 0xf2, 0x79, 0xd4, 0x81, 0x4e, 0xf3, 0x7a, 0xd4, 0x81, 0x43, + 0xf4, 0x7b, 0xd4, 0x81, 0x2b, 0xf5, 0x7c, 0xd4, 0x81, 0x20, 0xf6, 0x7d, + 0xd4, 0x01, 0xf7, 0x7e, 0xd4, 0x01, 0xf8, 0x7f, 0xd4, 0x81, 0x0f, 0xf9, + 0x80, 0xd4, 0x01, 0xfa, 0x81, 0xd4, 0xc1, 0x00, 0x43, 0x94, 0x0f, 0x21, + 0xd7, 0x41, 0xe9, 0x29, 0xd7, 0x41, 0x46, 0xcf, 0x15, 0x30, 0xd7, 0x41, + 0x42, 0x5f, 0x24, 0x2f, 0xd7, 0x01, 0x44, 0xc8, 0x95, 0x23, 0xd7, 0xc1, + 0x00, 0x47, 0x15, 0x08, 0x2d, 0xd7, 0x41, 0x44, 0xbf, 0x1f, 0x2e, 0xd7, + 0x41, 0x42, 0x0b, 0x00, 0x2c, 0xd7, 0x41, 0x42, 0x49, 0x00, 0x31, 0xd7, + 0x01, 0xe9, 0x2b, 0xd7, 0x01, 0x42, 0x5a, 0x03, 0x33, 0xd7, 0x41, 0xad, + 0x01, 0xff, 0x43, 0xce, 0x05, 0x34, 0xd7, 0x01, 0x45, 0x4a, 0xe7, 0x2a, + 0xd7, 0x41, 0xf5, 0x28, 0xd7, 0x41, 0xf5, 0x27, 0xd7, 0x41, 0x44, 0x18, + 0xe8, 0x26, 0xd7, 0x41, 0x44, 0x94, 0x90, 0x25, 0xd7, 0x41, 0x43, 0x1b, + 0x05, 0x24, 0xd7, 0x41, 0x44, 0x00, 0x21, 0x1e, 0xd7, 0x41, 0x46, 0xcf, + 0x15, 0x20, 0xd7, 0x01, 0x42, 0x12, 0x00, 0x22, 0xd7, 0x41, 0x44, 0x38, + 0xd6, 0x1f, 0xd7, 0x41, 0x42, 0x49, 0x00, 0x32, 0xd7, 0x41, 0x43, 0x94, + 0x0f, 0x1d, 0xd7, 0x41, 0x44, 0x3f, 0xe4, 0x1c, 0xd7, 0x41, 0x08, 0xe4, + 0x05, 0x6d, 0x06, 0x5d, 0x07, 0x01, 0xff, 0xe1, 0x86, 0xd5, 0x01, 0xe2, + 0x87, 0xd5, 0x01, 0xe3, 0x88, 0xd5, 0x01, 0xe4, 0x89, 0xd5, 0x01, 0xe5, + 0x8a, 0xd5, 0x01, 0xe6, 0x8b, 0xd5, 0x01, 0xe7, 0x8c, 0xd5, 0x01, 0xe8, + 0x8d, 0xd5, 0x01, 0xe9, 0x8e, 0xd5, 0x01, 0xea, 0x8f, 0xd5, 0x01, 0xeb, + 0x90, 0xd5, 0x01, 0xec, 0x91, 0xd5, 0x01, 0xed, 0x92, 0xd5, 0x01, 0xee, + 0x93, 0xd5, 0x01, 0xef, 0x94, 0xd5, 0x01, 0xf0, 0x95, 0xd5, 0x01, 0xf1, + 0x96, 0xd5, 0x01, 0xf2, 0x97, 0xd5, 0x01, 0xf3, 0x98, 0xd5, 0x01, 0xf4, + 0x99, 0xd5, 0x01, 0xf5, 0x9a, 0xd5, 0x01, 0xf6, 0x9b, 0xd5, 0x01, 0xf7, + 0x9c, 0xd5, 0x01, 0xf8, 0x9d, 0xd5, 0x01, 0xf9, 0x9e, 0xd5, 0x01, 0xfa, + 0x9f, 0xd5, 0x41, 0xe1, 0x6c, 0xd5, 0x01, 0xe2, 0x6d, 0xd5, 0x01, 0xe3, + 0x6e, 0xd5, 0x01, 0xe4, 0x6f, 0xd5, 0x01, 0xe5, 0x70, 0xd5, 0x01, 0xe6, + 0x71, 0xd5, 0x01, 0xe7, 0x72, 0xd5, 0x01, 0xe8, 0x73, 0xd5, 0x01, 0xe9, + 0x74, 0xd5, 0x01, 0xea, 0x75, 0xd5, 0x01, 0xeb, 0x76, 0xd5, 0x01, 0xec, + 0x77, 0xd5, 0x01, 0xed, 0x78, 0xd5, 0x01, 0xee, 0x79, 0xd5, 0x01, 0xef, + 0x7a, 0xd5, 0x01, 0xf0, 0x7b, 0xd5, 0x01, 0xf1, 0x7c, 0xd5, 0x01, 0xf2, + 0x7d, 0xd5, 0x01, 0xf3, 0x7e, 0xd5, 0x01, 0xf4, 0x7f, 0xd5, 0x01, 0xf5, + 0x80, 0xd5, 0x01, 0xf6, 0x81, 0xd5, 0x01, 0xf7, 0x82, 0xd5, 0x01, 0xf8, + 0x83, 0xd5, 0x01, 0xf9, 0x84, 0xd5, 0x01, 0xfa, 0x85, 0xd5, 0x41, 0x45, + 0x12, 0x0b, 0xd6, 0xd7, 0x01, 0xa6, 0x2e, 0x44, 0xcf, 0x2a, 0xd7, 0xd7, + 0x01, 0x43, 0x0e, 0x0b, 0xcf, 0xd7, 0x01, 0xb3, 0x14, 0xb4, 0x06, 0x44, + 0x43, 0x1e, 0xce, 0xd7, 0x41, 0x44, 0x25, 0x01, 0xd1, 0xd7, 0x01, 0x42, + 0x15, 0x02, 0xd0, 0xd7, 0x41, 0x44, 0xc9, 0x1d, 0xd5, 0xd7, 0x01, 0x42, + 0x01, 0x26, 0xd4, 0xd7, 0x41, 0x43, 0xd2, 0x05, 0xd3, 0xd7, 0x01, 0x43, + 0xf6, 0x06, 0xd2, 0xd7, 0x41, 0xe1, 0x00, 0xd4, 0x81, 0x92, 0x02, 0xe2, + 0x01, 0xd4, 0x81, 0x86, 0x02, 0xe3, 0x02, 0xd4, 0x81, 0xfa, 0x01, 0xe4, + 0x03, 0xd4, 0x81, 0xe8, 0x01, 0xe5, 0x04, 0xd4, 0x81, 0xd6, 0x01, 0xe6, + 0x05, 0xd4, 0x01, 0xe7, 0x06, 0xd4, 0x81, 0xc6, 0x01, 0xe8, 0x07, 0xd4, + 0x01, 0xe9, 0x08, 0xd4, 0x81, 0xb6, 0x01, 0xea, 0x09, 0xd4, 0x01, 0xeb, + 0x0a, 0xd4, 0x81, 0xa6, 0x01, 0xec, 0x0b, 0xd4, 0x81, 0x9a, 0x01, 0xed, + 0x0c, 0xd4, 0x81, 0x90, 0x01, 0xee, 0x0d, 0xd4, 0x81, 0x86, 0x01, 0xef, + 0x0e, 0xd4, 0x81, 0x72, 0xf0, 0x0f, 0xd4, 0x81, 0x5d, 0xf1, 0x10, 0xd4, + 0x01, 0xf2, 0x11, 0xd4, 0x81, 0x4e, 0xf3, 0x12, 0xd4, 0x81, 0x43, 0xf4, + 0x13, 0xd4, 0x81, 0x2b, 0xf5, 0x14, 0xd4, 0x81, 0x20, 0xf6, 0x15, 0xd4, + 0x01, 0xf7, 0x16, 0xd4, 0x01, 0xf8, 0x17, 0xd4, 0x81, 0x0f, 0xf9, 0x18, + 0xd4, 0x01, 0xfa, 0x19, 0xd4, 0xc1, 0x00, 0x43, 0x94, 0x0f, 0xad, 0xd6, + 0x41, 0xe9, 0xb5, 0xd6, 0x41, 0x46, 0xcf, 0x15, 0xbc, 0xd6, 0x41, 0x42, + 0x5f, 0x24, 0xbb, 0xd6, 0x01, 0x44, 0xc8, 0x95, 0xaf, 0xd6, 0xc1, 0x00, + 0x47, 0x15, 0x08, 0xb9, 0xd6, 0x41, 0x44, 0xbf, 0x1f, 0xba, 0xd6, 0x41, + 0x42, 0x0b, 0x00, 0xb8, 0xd6, 0x41, 0x42, 0x49, 0x00, 0xbd, 0xd6, 0x01, + 0xe9, 0xb7, 0xd6, 0x01, 0x42, 0x5a, 0x03, 0xbf, 0xd6, 0x41, 0xad, 0x01, + 0xff, 0x43, 0xce, 0x05, 0xc0, 0xd6, 0x01, 0x45, 0x4a, 0xe7, 0xb6, 0xd6, + 0x41, 0xf5, 0xb4, 0xd6, 0x41, 0xf5, 0xb3, 0xd6, 0x41, 0x44, 0x18, 0xe8, + 0xb2, 0xd6, 0x41, 0x44, 0x94, 0x90, 0xb1, 0xd6, 0x41, 0x43, 0x1b, 0x05, + 0xb0, 0xd6, 0x41, 0x44, 0x00, 0x21, 0xaa, 0xd6, 0x41, 0x46, 0xcf, 0x15, + 0xac, 0xd6, 0x01, 0x42, 0x12, 0x00, 0xae, 0xd6, 0x41, 0x44, 0x38, 0xd6, + 0xab, 0xd6, 0x01, 0x46, 0x2b, 0x58, 0xca, 0xd7, 0x41, 0x42, 0x49, 0x00, + 0xbe, 0xd6, 0x41, 0x43, 0x94, 0x0f, 0xa9, 0xd6, 0x41, 0x44, 0x3f, 0xe4, + 0xa8, 0xd6, 0x41, 0x0b, 0x16, 0x99, 0x12, 0x58, 0xde, 0x27, 0xba, 0x00, + 0x00, 0x4d, 0xcd, 0x84, 0xad, 0xf1, 0x01, 0x46, 0x34, 0xcf, 0x3c, 0x30, + 0x40, 0x06, 0xef, 0x06, 0x82, 0x03, 0x07, 0xec, 0x05, 0x6c, 0xb2, 0x5e, + 0x05, 0x5a, 0x03, 0x3c, 0xb6, 0x01, 0xff, 0x45, 0xe4, 0x23, 0x45, 0x1d, + 0x01, 0x0a, 0x41, 0x77, 0x01, 0xff, 0xa1, 0x20, 0xe5, 0x3a, 0x1d, 0x01, + 0xe9, 0x32, 0x1d, 0x81, 0x13, 0xef, 0x3d, 0x1d, 0x01, 0xf5, 0x34, 0x1d, + 0x81, 0x06, 0x49, 0x22, 0xc1, 0x36, 0x1d, 0x41, 0xf5, 0x35, 0x1d, 0x41, + 0xe9, 0x33, 0x1d, 0x41, 0xe1, 0x31, 0x1d, 0x01, 0xe9, 0x3c, 0x1d, 0x01, + 0xf5, 0x3f, 0x1d, 0x41, 0x48, 0x3c, 0x16, 0x40, 0x1d, 0x01, 0x46, 0xd7, + 0x23, 0x43, 0x1d, 0x01, 0x47, 0x71, 0xd1, 0x44, 0x1d, 0x01, 0x45, 0x3f, + 0x3f, 0x42, 0x1d, 0x01, 0x47, 0xea, 0x4b, 0x41, 0x1d, 0x41, 0x46, 0x68, + 0xd9, 0x47, 0x1d, 0x01, 0x44, 0x92, 0xc5, 0x46, 0x1d, 0x41, 0xe1, 0x00, + 0x1d, 0x81, 0x80, 0x02, 0xa2, 0xf3, 0x01, 0xa3, 0xe6, 0x01, 0xa4, 0xcd, + 0x01, 0xe5, 0x06, 0x1d, 0x01, 0xa7, 0xbc, 0x01, 0x42, 0x22, 0x00, 0x2c, + 0x1d, 0x01, 0xe9, 0x02, 0x1d, 0x81, 0xac, 0x01, 0xaa, 0x99, 0x01, 0xab, + 0x86, 0x01, 0xac, 0x7a, 0x42, 0x6c, 0x00, 0x24, 0x1d, 0x01, 0xae, 0x5c, + 0xef, 0x09, 0x1d, 0x01, 0xb0, 0x4c, 0x42, 0x71, 0x00, 0x26, 0x1d, 0x01, + 0xb3, 0x34, 0xb4, 0x15, 0xf5, 0x04, 0x1d, 0x81, 0x0c, 0x42, 0xf5, 0x0a, + 0x28, 0x1d, 0x01, 0x42, 0xbc, 0x22, 0x25, 0x1d, 0x41, 0xf5, 0x05, 0x1d, + 0x41, 0xe1, 0x1b, 0x1d, 0x01, 0x42, 0x22, 0x00, 0x1c, 0x1d, 0x01, 0x42, + 0x71, 0x00, 0x30, 0x1d, 0x01, 0xb4, 0x01, 0xff, 0xe1, 0x16, 0x1d, 0x01, + 0x42, 0x22, 0x00, 0x17, 0x1d, 0x41, 0xe1, 0x2b, 0x1d, 0x01, 0x42, 0x22, + 0x00, 0x29, 0x1d, 0x01, 0x42, 0x40, 0x06, 0x2a, 0x1d, 0x41, 0xe1, 0x20, + 0x1d, 0x01, 0x42, 0x22, 0x00, 0x21, 0x1d, 0x41, 0xe1, 0x1f, 0x1d, 0x01, + 0x42, 0x24, 0x02, 0x10, 0x1d, 0x01, 0x42, 0x2a, 0x05, 0x1a, 0x1d, 0x01, + 0x42, 0xbc, 0x22, 0x15, 0x1d, 0x41, 0xe1, 0x27, 0x1d, 0x01, 0x42, 0x74, + 0x00, 0x2d, 0x1d, 0x41, 0xe1, 0x0c, 0x1d, 0x01, 0x42, 0x22, 0x00, 0x0d, + 0x1d, 0x01, 0x43, 0xfb, 0x20, 0x2e, 0x1d, 0x41, 0xe1, 0x13, 0x1d, 0x01, + 0x42, 0x22, 0x00, 0x14, 0x1d, 0x01, 0x43, 0xa6, 0x35, 0x2f, 0x1d, 0x41, + 0xe9, 0x03, 0x1d, 0x41, 0xe1, 0x0e, 0x1d, 0x01, 0x42, 0x22, 0x00, 0x0f, + 0x1d, 0x41, 0xe1, 0x1d, 0x1d, 0x01, 0xa4, 0x06, 0x42, 0x22, 0x00, 0x1e, + 0x1d, 0x41, 0xe1, 0x18, 0x1d, 0x01, 0x42, 0x22, 0x00, 0x19, 0x1d, 0x41, + 0xe1, 0x11, 0x1d, 0x01, 0x42, 0x22, 0x00, 0x12, 0x1d, 0x41, 0xe1, 0x22, + 0x1d, 0x01, 0x42, 0x22, 0x00, 0x23, 0x1d, 0x41, 0xe1, 0x01, 0x1d, 0x01, + 0xe9, 0x08, 0x1d, 0x01, 0xf5, 0x0b, 0x1d, 0x41, 0x45, 0x12, 0x0b, 0x58, + 0x1d, 0x01, 0xa6, 0x2e, 0x44, 0xcf, 0x2a, 0x59, 0x1d, 0x01, 0x43, 0x0e, + 0x0b, 0x51, 0x1d, 0x01, 0xb3, 0x14, 0xb4, 0x06, 0x44, 0x43, 0x1e, 0x50, + 0x1d, 0x41, 0x44, 0x25, 0x01, 0x53, 0x1d, 0x01, 0x42, 0x15, 0x02, 0x52, + 0x1d, 0x41, 0x44, 0xc9, 0x1d, 0x57, 0x1d, 0x01, 0x42, 0x01, 0x26, 0x56, + 0x1d, 0x41, 0x43, 0xd2, 0x05, 0x55, 0x1d, 0x01, 0x43, 0xf6, 0x06, 0x54, + 0x1d, 0x41, 0x44, 0x45, 0x61, 0x87, 0xfa, 0x01, 0x05, 0x52, 0x4a, 0x0c, + 0x4c, 0x6b, 0x94, 0xad, 0x26, 0x00, 0x51, 0x6f, 0x5e, 0x4b, 0xf9, 0x41, + 0x49, 0xa0, 0x1b, 0x70, 0x1c, 0x01, 0x07, 0xec, 0x05, 0xe9, 0x01, 0x49, + 0xee, 0xbb, 0x71, 0x1c, 0x01, 0xb3, 0x1b, 0x0b, 0x40, 0x77, 0x01, 0xff, + 0x42, 0x80, 0x12, 0xb0, 0x1c, 0x01, 0xe5, 0xb3, 0x1c, 0x01, 0xe9, 0xb1, + 0x1c, 0x01, 0xef, 0xb4, 0x1c, 0x01, 0xf5, 0xb2, 0x1c, 0x41, 0x04, 0x5b, + 0x03, 0xb5, 0x01, 0x10, 0xd6, 0x67, 0x01, 0xff, 0xe1, 0xaf, 0x1c, 0x01, + 0x42, 0x16, 0x00, 0xa0, 0x1c, 0x01, 0xa3, 0x99, 0x01, 0xa4, 0x8c, 0x01, + 0x42, 0x24, 0x02, 0x94, 0x1c, 0x01, 0x42, 0x22, 0x00, 0xae, 0x1c, 0x01, + 0x42, 0x56, 0x19, 0x98, 0x1c, 0x01, 0xab, 0x6e, 0x42, 0x74, 0x00, 0xab, + 0x1c, 0x01, 0x42, 0x6c, 0x00, 0xa1, 0x1c, 0x01, 0xae, 0x50, 0xb0, 0x44, + 0x42, 0x71, 0x00, 0xaa, 0x1c, 0x01, 0xb3, 0x32, 0xb4, 0x19, 0x42, 0xa9, + 0x01, 0xa5, 0x1c, 0x01, 0x42, 0xbc, 0x22, 0xa9, 0x1c, 0x01, 0xba, 0x01, + 0xff, 0xe1, 0xa7, 0x1c, 0x01, 0x42, 0x22, 0x00, 0xa6, 0x1c, 0x41, 0xe1, + 0x9a, 0x1c, 0x01, 0x42, 0x22, 0x00, 0x9b, 0x1c, 0x01, 0xb3, 0x01, 0xff, + 0xe1, 0xa2, 0x1c, 0x01, 0x42, 0x22, 0x00, 0xa3, 0x1c, 0x41, 0xe1, 0xad, + 0x1c, 0x01, 0x42, 0x22, 0x00, 0xac, 0x1c, 0x41, 0xe1, 0x9e, 0x1c, 0x01, + 0x42, 0x22, 0x00, 0x9f, 0x1c, 0x41, 0xe1, 0x9d, 0x1c, 0x01, 0x42, 0x24, + 0x02, 0x95, 0x1c, 0x01, 0x42, 0xbc, 0x22, 0x99, 0x1c, 0x41, 0xe1, 0x92, + 0x1c, 0x01, 0x42, 0x22, 0x00, 0x93, 0x1c, 0x41, 0xe1, 0x9c, 0x1c, 0x01, + 0x42, 0x59, 0x00, 0xa4, 0x1c, 0x41, 0xe1, 0x96, 0x1c, 0x01, 0x42, 0x22, + 0x00, 0x97, 0x1c, 0x41, 0x48, 0x3c, 0x16, 0xb5, 0x1c, 0x01, 0x4b, 0xd7, + 0x23, 0xb6, 0x1c, 0x41, 0x42, 0xcf, 0x25, 0x88, 0x1c, 0x01, 0xe1, 0x8f, + 0x1c, 0x01, 0x42, 0x16, 0x00, 0x80, 0x1c, 0x01, 0xa3, 0x99, 0x01, 0xa4, + 0x8c, 0x01, 0x42, 0x24, 0x02, 0x74, 0x1c, 0x01, 0x42, 0x22, 0x00, 0x8e, + 0x1c, 0x01, 0x42, 0x56, 0x19, 0x78, 0x1c, 0x01, 0xab, 0x6e, 0x42, 0x74, + 0x00, 0x8b, 0x1c, 0x01, 0x42, 0x6c, 0x00, 0x81, 0x1c, 0x01, 0xae, 0x50, + 0xb0, 0x44, 0x42, 0x71, 0x00, 0x8a, 0x1c, 0x01, 0xb3, 0x32, 0xb4, 0x19, + 0x42, 0xa9, 0x01, 0x85, 0x1c, 0x01, 0x42, 0xbc, 0x22, 0x89, 0x1c, 0x01, + 0xba, 0x01, 0xff, 0xe1, 0x87, 0x1c, 0x01, 0x42, 0x22, 0x00, 0x86, 0x1c, + 0x41, 0xe1, 0x7a, 0x1c, 0x01, 0x42, 0x22, 0x00, 0x7b, 0x1c, 0x01, 0xb3, + 0x01, 0xff, 0xe1, 0x82, 0x1c, 0x01, 0x42, 0x22, 0x00, 0x83, 0x1c, 0x41, + 0xe1, 0x8d, 0x1c, 0x01, 0x42, 0x22, 0x00, 0x8c, 0x1c, 0x41, 0xe1, 0x7e, + 0x1c, 0x01, 0x42, 0x22, 0x00, 0x7f, 0x1c, 0x41, 0xe1, 0x7d, 0x1c, 0x01, + 0x42, 0x24, 0x02, 0x75, 0x1c, 0x01, 0x42, 0xbc, 0x22, 0x79, 0x1c, 0x41, + 0xe1, 0x72, 0x1c, 0x01, 0x42, 0x22, 0x00, 0x73, 0x1c, 0x41, 0xe1, 0x7c, + 0x1c, 0x01, 0x42, 0x59, 0x00, 0x84, 0x1c, 0x41, 0xe1, 0x76, 0x1c, 0x01, + 0x42, 0x22, 0x00, 0x77, 0x1c, 0x41, 0x56, 0x4b, 0x32, 0xef, 0x26, 0x00, + 0x47, 0xc1, 0xd2, 0x41, 0xf3, 0x41, 0x80, 0xa5, 0x04, 0x47, 0xa1, 0x6c, + 0xbc, 0x20, 0x00, 0x05, 0x6f, 0xe5, 0x87, 0x03, 0x42, 0x06, 0x14, 0x6d, + 0xf9, 0x01, 0x08, 0xe0, 0xc6, 0x12, 0x46, 0xc2, 0xdf, 0x5e, 0xf4, 0x01, + 0x4e, 0x99, 0x7c, 0x70, 0xf5, 0x01, 0x4e, 0xbf, 0x7d, 0xbd, 0xf9, 0x41, + 0x12, 0x0b, 0x50, 0xda, 0x02, 0x07, 0xec, 0x05, 0x5d, 0x07, 0xff, 0x39, + 0x37, 0x0c, 0x6d, 0x16, 0x06, 0x47, 0xdf, 0xd5, 0xc8, 0x0a, 0x41, 0x02, + 0x3b, 0x01, 0x18, 0x47, 0xe8, 0x36, 0xf1, 0x0a, 0x01, 0x4b, 0xc2, 0x9e, + 0xf6, 0x0a, 0x01, 0x44, 0x31, 0x13, 0xf0, 0x0a, 0x01, 0x48, 0x1f, 0x0a, + 0xf5, 0x0a, 0x41, 0xf4, 0xf4, 0x0a, 0x81, 0x06, 0x53, 0x05, 0x4e, 0xf2, + 0x0a, 0x41, 0x4b, 0x0d, 0x4e, 0xf3, 0x0a, 0x41, 0x44, 0x80, 0x11, 0xec, + 0x0a, 0x01, 0x43, 0x0e, 0x0b, 0xeb, 0x0a, 0x81, 0x0f, 0xb4, 0x01, 0xff, + 0x42, 0x92, 0x01, 0xed, 0x0a, 0x01, 0x45, 0x7f, 0x2c, 0xee, 0x0a, 0x41, + 0x48, 0x70, 0x11, 0xef, 0x0a, 0x41, 0xa1, 0xe4, 0x01, 0xa2, 0xd5, 0x01, + 0xa4, 0xc6, 0x01, 0x42, 0x0c, 0x1a, 0xdc, 0x0a, 0x01, 0xa7, 0xb1, 0x01, + 0x42, 0xb0, 0x01, 0xc6, 0x0a, 0x81, 0xa3, 0x01, 0xaa, 0x94, 0x01, 0xab, + 0x85, 0x01, 0x46, 0x94, 0xdd, 0xd3, 0x0a, 0x01, 0x43, 0xb4, 0x05, 0xd6, + 0x0a, 0x01, 0x43, 0xdc, 0x22, 0xd7, 0x0a, 0x01, 0x42, 0x6f, 0x02, 0xdb, + 0x0a, 0x01, 0xb1, 0x5f, 0x44, 0x76, 0x66, 0xe1, 0x0a, 0x01, 0xb3, 0x3d, + 0xb4, 0x29, 0x43, 0x8a, 0x8a, 0xc7, 0x0a, 0x01, 0xb8, 0x15, 0x44, 0xa1, + 0x52, 0xcf, 0x0a, 0x01, 0xba, 0x01, 0xff, 0x44, 0x1e, 0x4a, 0xc9, 0x0a, + 0x01, 0x45, 0xf0, 0xe6, 0xca, 0x0a, 0x41, 0x43, 0x83, 0x10, 0xd1, 0x0a, + 0x01, 0x43, 0x67, 0x36, 0xdf, 0x0a, 0x41, 0x42, 0xb7, 0x2d, 0xe4, 0x0a, + 0x01, 0x43, 0xda, 0x25, 0xce, 0x0a, 0x01, 0x46, 0x4a, 0xdc, 0xd5, 0x0a, + 0x41, 0xa1, 0x0c, 0x43, 0x7a, 0x16, 0xe2, 0x0a, 0x01, 0x44, 0x73, 0x4a, + 0xe3, 0x0a, 0x41, 0x43, 0xad, 0xea, 0xdd, 0x0a, 0x01, 0x44, 0x49, 0xe4, + 0xd8, 0x0a, 0x41, 0x44, 0x51, 0xf0, 0xe0, 0x0a, 0x01, 0x43, 0x67, 0x36, + 0xde, 0x0a, 0x41, 0x43, 0x83, 0x10, 0xd0, 0x0a, 0x01, 0x44, 0xd7, 0xe7, + 0xd2, 0x0a, 0x41, 0x44, 0x1e, 0x4a, 0xcb, 0x0a, 0x01, 0x45, 0xf0, 0xe6, + 0xcc, 0x0a, 0x41, 0x42, 0x53, 0x00, 0xcd, 0x0a, 0x41, 0x45, 0xff, 0xe6, + 0xc4, 0x0a, 0x01, 0x44, 0xde, 0xaa, 0xc3, 0x0a, 0x41, 0x45, 0x24, 0x4a, + 0xc5, 0x0a, 0x01, 0x46, 0x4a, 0xdc, 0xd4, 0x0a, 0x41, 0x43, 0xda, 0x25, + 0xc1, 0x0a, 0x01, 0x44, 0x61, 0xaa, 0xc2, 0x0a, 0x41, 0x44, 0x1e, 0x4a, + 0xda, 0x0a, 0x01, 0x44, 0x18, 0x3d, 0xc0, 0x0a, 0x01, 0x43, 0x7e, 0x1a, + 0xd9, 0x0a, 0x41, 0x45, 0x5c, 0x00, 0xe5, 0x0a, 0x01, 0x45, 0x20, 0x07, + 0xe6, 0x0a, 0x41, 0x50, 0xd6, 0x60, 0x59, 0x08, 0x00, 0x4f, 0x89, 0x6d, + 0x5b, 0x08, 0x00, 0x07, 0xec, 0x05, 0x0c, 0x4b, 0x07, 0x0c, 0x5e, 0x08, + 0x00, 0x51, 0x4c, 0x5f, 0x5a, 0x08, 0x40, 0xa1, 0x22, 0x48, 0x40, 0xc5, + 0x56, 0x08, 0x00, 0x45, 0xd7, 0xe6, 0x40, 0x08, 0x00, 0xa9, 0x0c, 0x43, + 0xf7, 0xa5, 0x57, 0x08, 0x00, 0x47, 0x41, 0xc5, 0x45, 0x08, 0x40, 0xee, + 0x4f, 0x08, 0x00, 0xf4, 0x47, 0x08, 0x40, 0xe2, 0x41, 0x08, 0x00, 0xe4, + 0x43, 0x08, 0x00, 0xe7, 0x42, 0x08, 0x00, 0xe8, 0x44, 0x08, 0x00, 0x42, + 0x9e, 0x01, 0x58, 0x08, 0x00, 0xeb, 0x4a, 0x08, 0x80, 0x32, 0xec, 0x4b, + 0x08, 0x00, 0xed, 0x4c, 0x08, 0x00, 0xee, 0x4d, 0x08, 0x00, 0xf0, 0x50, + 0x08, 0x00, 0xf1, 0x52, 0x08, 0x00, 0xf2, 0x53, 0x08, 0x00, 0xf3, 0x4e, + 0x08, 0x80, 0x0d, 0xf4, 0x55, 0x08, 0x80, 0x04, 0xfa, 0x46, 0x08, 0x40, + 0xf4, 0x48, 0x08, 0x40, 0xe8, 0x54, 0x08, 0x00, 0xfa, 0x51, 0x08, 0x40, + 0x42, 0x40, 0x06, 0x49, 0x08, 0x40, 0x57, 0x16, 0x2d, 0x6b, 0xf4, 0x01, + 0x47, 0x36, 0xd0, 0x7a, 0xf5, 0x01, 0x03, 0xe1, 0x05, 0x11, 0x05, 0x51, + 0x00, 0x01, 0xff, 0x4a, 0xfb, 0xaa, 0x72, 0xf4, 0x01, 0x46, 0xb8, 0xe0, + 0x73, 0xf4, 0x41, 0x58, 0x96, 0x27, 0x74, 0xf5, 0x01, 0x46, 0xbe, 0xe0, + 0x35, 0xf9, 0x41, 0x07, 0xed, 0xb5, 0x27, 0x02, 0x60, 0x00, 0x06, 0x4a, + 0xc7, 0xb1, 0x20, 0x27, 0x40, 0x4f, 0x0f, 0x27, 0xa5, 0x26, 0x00, 0x44, + 0x5a, 0x03, 0x42, 0x26, 0x00, 0x0c, 0xd9, 0x3c, 0x01, 0xff, 0x58, 0x06, + 0x27, 0xa7, 0x26, 0x00, 0x44, 0x5a, 0x03, 0xa6, 0x26, 0x40, 0x4e, 0x17, + 0x76, 0x57, 0x0d, 0x00, 0xa4, 0x91, 0x05, 0x09, 0x1e, 0x5a, 0xb0, 0x04, + 0x07, 0xec, 0x05, 0xad, 0x01, 0x07, 0xff, 0x39, 0x92, 0x01, 0x05, 0x5a, + 0x03, 0x4e, 0x0b, 0x40, 0x77, 0x01, 0xff, 0xa1, 0x3b, 0xe5, 0x46, 0x0d, + 0x80, 0x32, 0xe9, 0x3f, 0x0d, 0x80, 0x29, 0xef, 0x4a, 0x0d, 0x80, 0x20, + 0xf5, 0x41, 0x0d, 0x80, 0x17, 0x08, 0x22, 0xc1, 0x01, 0xff, 0xec, 0x62, + 0x0d, 0x80, 0x09, 0xf2, 0x43, 0x0d, 0xc0, 0x00, 0xf2, 0x44, 0x0d, 0x40, + 0xec, 0x63, 0x0d, 0x40, 0xf5, 0x42, 0x0d, 0x40, 0xef, 0x4b, 0x0d, 0x40, + 0xe9, 0x40, 0x0d, 0x40, 0xe5, 0x47, 0x0d, 0x40, 0xe1, 0x3e, 0x0d, 0x00, + 0xe9, 0x48, 0x0d, 0x00, 0xf5, 0x4c, 0x0d, 0x40, 0xa1, 0x32, 0xa3, 0x1e, + 0x44, 0x7d, 0x10, 0x4f, 0x0d, 0x00, 0xb6, 0x01, 0xff, 0x52, 0x73, 0x51, + 0x3b, 0x0d, 0x00, 0xa9, 0x01, 0xff, 0x44, 0xe5, 0x23, 0x4d, 0x0d, 0x00, + 0x45, 0xec, 0x4b, 0x03, 0x0d, 0x40, 0x4a, 0xd8, 0x23, 0x01, 0x0d, 0x00, + 0x4e, 0xc5, 0x78, 0x3c, 0x0d, 0x00, 0x57, 0x33, 0x16, 0x00, 0x0d, 0x40, + 0x47, 0x3d, 0x16, 0x02, 0x0d, 0x00, 0x47, 0xaf, 0x88, 0x3d, 0x0d, 0x40, + 0x04, 0x0e, 0x0b, 0x06, 0x43, 0xdb, 0x06, 0x70, 0x0d, 0x40, 0x47, 0x71, + 0x11, 0x71, 0x0d, 0x00, 0x48, 0x40, 0x5e, 0x72, 0x0d, 0x40, 0xe1, 0x05, + 0x0d, 0x80, 0xe6, 0x02, 0xa2, 0xd9, 0x02, 0xa3, 0x9d, 0x02, 0xa4, 0xfe, + 0x01, 0xe5, 0x0e, 0x0d, 0x80, 0xf4, 0x01, 0xa7, 0xe7, 0x01, 0x42, 0x22, + 0x00, 0x39, 0x0d, 0x00, 0xe9, 0x07, 0x0d, 0x80, 0xd7, 0x01, 0xaa, 0xca, + 0x01, 0xab, 0xbd, 0x01, 0xac, 0xa9, 0x01, 0x42, 0x6c, 0x00, 0x2e, 0x0d, + 0x00, 0xae, 0x84, 0x01, 0xef, 0x12, 0x0d, 0x80, 0x7b, 0xb0, 0x6f, 0xb2, + 0x63, 0xb3, 0x51, 0xb4, 0x32, 0xf5, 0x09, 0x0d, 0x80, 0x29, 0xb6, 0x06, + 0x42, 0xbc, 0x22, 0x2f, 0x0d, 0x40, 0xe1, 0x35, 0x0d, 0x00, 0x4d, 0x6a, + 0x82, 0x04, 0x0d, 0x00, 0x07, 0x23, 0xc1, 0x01, 0xff, 0xec, 0x0c, 0x0d, + 0x80, 0x09, 0xf2, 0x0b, 0x0d, 0xc0, 0x00, 0xf2, 0x60, 0x0d, 0x40, 0xec, + 0x61, 0x0d, 0x40, 0xf5, 0x0a, 0x0d, 0x40, 0xe1, 0x24, 0x0d, 0x00, 0x42, + 0x22, 0x00, 0x25, 0x0d, 0x00, 0xb4, 0x01, 0xff, 0xe1, 0x1f, 0x0d, 0x00, + 0x42, 0x22, 0x00, 0x20, 0x0d, 0x00, 0x42, 0x12, 0x00, 0x3a, 0x0d, 0x40, + 0xe1, 0x38, 0x0d, 0x00, 0x42, 0x22, 0x00, 0x36, 0x0d, 0x00, 0x42, 0x40, + 0x06, 0x37, 0x0d, 0x40, 0xe1, 0x30, 0x0d, 0x00, 0x42, 0x71, 0x00, 0x31, + 0x0d, 0x40, 0xe1, 0x2a, 0x0d, 0x00, 0x42, 0x22, 0x00, 0x2b, 0x0d, 0x40, + 0xef, 0x13, 0x0d, 0x40, 0xe1, 0x28, 0x0d, 0x00, 0x42, 0x24, 0x02, 0x19, + 0x0d, 0x00, 0xae, 0x06, 0x42, 0xbc, 0x22, 0x1e, 0x0d, 0x40, 0xe1, 0x23, + 0x0d, 0x00, 0x42, 0x2a, 0x05, 0x29, 0x0d, 0x40, 0xe1, 0x32, 0x0d, 0x00, + 0xac, 0x01, 0xff, 0xe1, 0x33, 0x0d, 0x00, 0x42, 0x74, 0x00, 0x34, 0x0d, + 0x40, 0xe1, 0x15, 0x0d, 0x00, 0x42, 0x22, 0x00, 0x16, 0x0d, 0x40, 0xe1, + 0x1c, 0x0d, 0x00, 0x42, 0x22, 0x00, 0x1d, 0x0d, 0x40, 0xe9, 0x08, 0x0d, + 0x40, 0xe1, 0x17, 0x0d, 0x00, 0x42, 0x22, 0x00, 0x18, 0x0d, 0x40, 0xe5, + 0x0f, 0x0d, 0x40, 0xe1, 0x26, 0x0d, 0x00, 0xa4, 0x0c, 0x42, 0x22, 0x00, + 0x27, 0x0d, 0x00, 0x47, 0x26, 0xd4, 0x4e, 0x0d, 0x40, 0xe1, 0x21, 0x0d, + 0x00, 0x42, 0x22, 0x00, 0x22, 0x0d, 0x40, 0xe1, 0x1a, 0x0d, 0x00, 0xa8, + 0x01, 0xff, 0xe1, 0x1b, 0x0d, 0x00, 0x05, 0x24, 0xc2, 0x01, 0xff, 0xeb, + 0x7f, 0x0d, 0x00, 0xec, 0x7d, 0x0d, 0x80, 0x17, 0xed, 0x54, 0x0d, 0x00, + 0xee, 0x7b, 0x0d, 0x80, 0x0a, 0x42, 0xcf, 0x00, 0x7c, 0x0d, 0x00, 0xf9, + 0x55, 0x0d, 0x40, 0xee, 0x7a, 0x0d, 0x40, 0xec, 0x7e, 0x0d, 0xc0, 0x00, + 0xec, 0x56, 0x0d, 0x40, 0xe1, 0x2c, 0x0d, 0x00, 0x42, 0x22, 0x00, 0x2d, + 0x0d, 0x40, 0xe1, 0x06, 0x0d, 0x00, 0xe9, 0x10, 0x0d, 0x00, 0x49, 0x6d, + 0xbe, 0x5f, 0x0d, 0x00, 0xf5, 0x14, 0x0d, 0x40, 0x04, 0x0e, 0x0b, 0x1d, + 0x06, 0x24, 0x01, 0x01, 0xff, 0x4a, 0xd9, 0xa9, 0x5a, 0x0d, 0x00, 0x48, + 0x2a, 0x01, 0x75, 0x0d, 0x00, 0x4a, 0x13, 0xb1, 0x78, 0x0d, 0x00, 0x4a, + 0x3f, 0xb2, 0x5d, 0x0d, 0x40, 0x46, 0x12, 0x0b, 0x77, 0x0d, 0x00, 0xa6, + 0x27, 0x44, 0x22, 0x00, 0x74, 0x0d, 0x00, 0x58, 0x36, 0x2a, 0x58, 0x0d, + 0x00, 0x47, 0x2a, 0x01, 0x73, 0x0d, 0x00, 0x49, 0x00, 0x26, 0x76, 0x0d, + 0x00, 0xb4, 0x01, 0xff, 0x44, 0x82, 0x1b, 0x5c, 0x0d, 0x00, 0x48, 0xd5, + 0x25, 0x5b, 0x0d, 0x40, 0x44, 0x42, 0xaf, 0x5e, 0x0d, 0x00, 0x47, 0x18, + 0xd4, 0x59, 0x0d, 0x40, 0x48, 0xb8, 0xc3, 0x79, 0x0d, 0x00, 0x05, 0xf0, + 0x06, 0x01, 0xff, 0x45, 0x12, 0x0b, 0x6e, 0x0d, 0x00, 0xa6, 0x2e, 0x44, + 0xcf, 0x2a, 0x6f, 0x0d, 0x00, 0x43, 0x0e, 0x0b, 0x67, 0x0d, 0x00, 0xb3, + 0x14, 0xb4, 0x06, 0x44, 0x43, 0x1e, 0x66, 0x0d, 0x40, 0x44, 0x25, 0x01, + 0x69, 0x0d, 0x00, 0x42, 0x15, 0x02, 0x68, 0x0d, 0x40, 0x44, 0xc9, 0x1d, + 0x6d, 0x0d, 0x00, 0x42, 0x01, 0x26, 0x6c, 0x0d, 0x40, 0x43, 0xd2, 0x05, + 0x6b, 0x0d, 0x00, 0x43, 0xf6, 0x06, 0x6a, 0x0d, 0x40, 0x05, 0x70, 0xe4, + 0x06, 0x45, 0xe7, 0xe5, 0x7c, 0xf7, 0x41, 0x45, 0xb6, 0xd9, 0xf2, 0x1e, + 0x01, 0x4e, 0x4b, 0x77, 0xf8, 0x1e, 0x01, 0x07, 0xec, 0x05, 0x1b, 0x4a, + 0x6f, 0xaf, 0xf7, 0x1e, 0x01, 0x0b, 0x40, 0x77, 0x01, 0xff, 0xe5, 0xf5, + 0x1e, 0x01, 0xe9, 0xf3, 0x1e, 0x01, 0xef, 0xf6, 0x1e, 0x01, 0xf5, 0xf4, + 0x1e, 0x41, 0xe1, 0xf1, 0x1e, 0x01, 0x42, 0x16, 0x00, 0xe4, 0x1e, 0x01, + 0x42, 0x37, 0x00, 0xe9, 0x1e, 0x01, 0x42, 0xf0, 0x10, 0xe7, 0x1e, 0x01, + 0x42, 0x24, 0x02, 0xe1, 0x1e, 0x01, 0x42, 0x56, 0x19, 0xea, 0x1e, 0x01, + 0x42, 0x1b, 0x02, 0xe0, 0x1e, 0x01, 0x42, 0x74, 0x00, 0xee, 0x1e, 0x01, + 0x42, 0x6c, 0x00, 0xe5, 0x1e, 0x01, 0xae, 0x24, 0x42, 0xbb, 0x09, 0xe3, + 0x1e, 0x01, 0x42, 0x71, 0x00, 0xed, 0x1e, 0x01, 0x42, 0x40, 0x06, 0xf0, + 0x1e, 0x01, 0x42, 0x12, 0x00, 0xe6, 0x1e, 0x01, 0x42, 0xf5, 0x0a, 0xef, + 0x1e, 0x01, 0x42, 0xbc, 0x22, 0xec, 0x1e, 0x41, 0xe1, 0xe8, 0x1e, 0x01, + 0x42, 0x24, 0x02, 0xe2, 0x1e, 0x01, 0x42, 0xbc, 0x22, 0xeb, 0x1e, 0x41, + 0x06, 0x9e, 0xd9, 0xe7, 0x02, 0x0a, 0x3b, 0xac, 0x01, 0xff, 0x46, 0x04, + 0xda, 0x28, 0xf0, 0x01, 0x02, 0x16, 0x00, 0xcb, 0x02, 0x4d, 0x66, 0x81, + 0x25, 0xf0, 0x01, 0xa5, 0xa2, 0x02, 0xa6, 0xec, 0x01, 0x4c, 0x4f, 0x8f, + 0x05, 0xf0, 0x01, 0x45, 0x0e, 0xa5, 0x2a, 0xf0, 0x01, 0xae, 0xbe, 0x01, + 0xaf, 0x9c, 0x01, 0x44, 0x19, 0xf2, 0x22, 0xf0, 0x01, 0x4a, 0x0f, 0xb0, + 0x04, 0xf0, 0x01, 0xb3, 0x4a, 0xb4, 0x15, 0xb7, 0x01, 0xff, 0x48, 0xd8, + 0xc5, 0x02, 0xf0, 0x01, 0x4b, 0xf4, 0x9c, 0x06, 0xf0, 0x01, 0x45, 0xa9, + 0x0a, 0x29, 0xf0, 0x41, 0x08, 0xc8, 0xc6, 0x1a, 0x06, 0x4e, 0xe1, 0x01, + 0xff, 0x47, 0x5d, 0xcf, 0x11, 0xf0, 0x01, 0xa3, 0x01, 0xff, 0x49, 0x78, + 0xb9, 0x08, 0xf0, 0x01, 0x46, 0x98, 0x43, 0x1a, 0xf0, 0x41, 0x47, 0x5d, + 0xcf, 0x12, 0xf0, 0x01, 0xa3, 0x01, 0xff, 0x49, 0x78, 0xb9, 0x09, 0xf0, + 0x01, 0x46, 0x98, 0x43, 0x1b, 0xf0, 0x41, 0x08, 0x00, 0xc6, 0x2b, 0x06, + 0x40, 0xdd, 0x12, 0x49, 0xa7, 0xbd, 0x01, 0xf0, 0x01, 0x45, 0xaa, 0x11, + 0x26, 0xf0, 0x01, 0x45, 0xcd, 0xeb, 0x27, 0xf0, 0x41, 0x47, 0x5d, 0xcf, + 0x15, 0xf0, 0x01, 0xa3, 0x01, 0xff, 0x49, 0x78, 0xb9, 0x0c, 0xf0, 0x01, + 0x46, 0x98, 0x43, 0x1e, 0xf0, 0x41, 0x47, 0x5d, 0xcf, 0x16, 0xf0, 0x01, + 0xa3, 0x01, 0xff, 0x49, 0x78, 0xb9, 0x0d, 0xf0, 0x01, 0x46, 0x98, 0x43, + 0x1f, 0xf0, 0x41, 0x06, 0xba, 0xc8, 0x06, 0x45, 0x38, 0xea, 0x23, 0xf0, + 0x41, 0x47, 0x5d, 0xcf, 0x10, 0xf0, 0x01, 0xa3, 0x01, 0xff, 0x49, 0x78, + 0xb9, 0x07, 0xf0, 0x01, 0x46, 0x98, 0x43, 0x19, 0xf0, 0x41, 0x07, 0xb9, + 0xc8, 0x06, 0x49, 0x7a, 0xbd, 0x03, 0xf0, 0x41, 0x47, 0x5d, 0xcf, 0x18, + 0xf0, 0x01, 0xa3, 0x01, 0xff, 0x49, 0x78, 0xb9, 0x0f, 0xf0, 0x01, 0x46, + 0x98, 0x43, 0x21, 0xf0, 0x41, 0x07, 0x19, 0xd2, 0x1a, 0x07, 0x2d, 0xd4, + 0x01, 0xff, 0x47, 0x5d, 0xcf, 0x13, 0xf0, 0x01, 0xa3, 0x01, 0xff, 0x49, + 0x78, 0xb9, 0x0a, 0xf0, 0x01, 0x46, 0x98, 0x43, 0x1c, 0xf0, 0x41, 0x47, + 0x5d, 0xcf, 0x14, 0xf0, 0x01, 0xa3, 0x01, 0xff, 0x49, 0x78, 0xb9, 0x0b, + 0xf0, 0x01, 0x46, 0x98, 0x43, 0x1d, 0xf0, 0x41, 0x48, 0xa0, 0xc3, 0x00, + 0xf0, 0x01, 0x08, 0x3e, 0xb8, 0x01, 0xff, 0x47, 0x5d, 0xcf, 0x17, 0xf0, + 0x01, 0xa3, 0x01, 0xff, 0x49, 0x78, 0xb9, 0x0e, 0xf0, 0x01, 0x46, 0x98, + 0x43, 0x20, 0xf0, 0x41, 0x42, 0x36, 0x01, 0x2b, 0xf0, 0x01, 0x44, 0x99, + 0x98, 0x24, 0xf0, 0x41, 0x51, 0xdc, 0x57, 0x74, 0x11, 0x01, 0xac, 0x0f, + 0xb3, 0x01, 0xff, 0x4b, 0xf9, 0x26, 0x75, 0x11, 0x01, 0x49, 0x23, 0xba, + 0x73, 0x11, 0x41, 0x06, 0xed, 0x05, 0x06, 0x4c, 0xdf, 0x8f, 0x76, 0x11, + 0x41, 0xe1, 0x50, 0x11, 0x01, 0xa2, 0xbc, 0x01, 0xa3, 0xaf, 0x01, 0xa4, + 0x96, 0x01, 0xe5, 0x53, 0x11, 0x01, 0xa7, 0x85, 0x01, 0x42, 0x22, 0x00, + 0x71, 0x11, 0x01, 0xe9, 0x51, 0x11, 0x01, 0xaa, 0x6f, 0xab, 0x63, 0x42, + 0x74, 0x00, 0x6e, 0x11, 0x01, 0x42, 0x6c, 0x00, 0x6c, 0x11, 0x01, 0xae, + 0x45, 0xef, 0x54, 0x11, 0x01, 0xb0, 0x35, 0xb2, 0x29, 0x42, 0x40, 0x06, + 0x70, 0x11, 0x01, 0xb4, 0x0a, 0xf5, 0x52, 0x11, 0x01, 0x42, 0xf5, 0x0a, + 0x6f, 0x11, 0x41, 0xe1, 0x63, 0x11, 0x01, 0x42, 0x22, 0x00, 0x64, 0x11, + 0x01, 0xb4, 0x01, 0xff, 0xe1, 0x5e, 0x11, 0x01, 0x42, 0x22, 0x00, 0x5f, + 0x11, 0x41, 0xe1, 0x6d, 0x11, 0x01, 0x42, 0x71, 0x00, 0x72, 0x11, 0x41, + 0xe1, 0x68, 0x11, 0x01, 0x42, 0x22, 0x00, 0x69, 0x11, 0x41, 0xe1, 0x67, + 0x11, 0x01, 0x42, 0x2a, 0x05, 0x62, 0x11, 0x01, 0x42, 0xbc, 0x22, 0x5d, + 0x11, 0x41, 0xe1, 0x55, 0x11, 0x01, 0x42, 0x22, 0x00, 0x56, 0x11, 0x41, + 0xe1, 0x5b, 0x11, 0x01, 0x42, 0x22, 0x00, 0x5c, 0x11, 0x41, 0xe1, 0x57, + 0x11, 0x01, 0x42, 0x22, 0x00, 0x58, 0x11, 0x41, 0xe1, 0x65, 0x11, 0x01, + 0xa4, 0x06, 0x42, 0x22, 0x00, 0x66, 0x11, 0x41, 0xe1, 0x60, 0x11, 0x01, + 0x42, 0x22, 0x00, 0x61, 0x11, 0x41, 0xe1, 0x59, 0x11, 0x01, 0x42, 0x22, + 0x00, 0x5a, 0x11, 0x41, 0xe1, 0x6a, 0x11, 0x01, 0x42, 0x22, 0x00, 0x6b, + 0x11, 0x41, 0xe5, 0xd9, 0xf9, 0x01, 0x47, 0xcc, 0xd1, 0x84, 0xfa, 0x01, + 0x43, 0xae, 0x2c, 0xf2, 0xf9, 0x41, 0x4d, 0x37, 0x7f, 0x14, 0x21, 0x00, + 0xa1, 0xfd, 0x40, 0xa5, 0xa3, 0x2b, 0xa9, 0xe6, 0x0c, 0x44, 0xb0, 0x00, + 0x99, 0xf9, 0x01, 0xaf, 0x9d, 0x02, 0xb5, 0x85, 0x02, 0xb9, 0x01, 0xff, + 0x0c, 0x4b, 0x8d, 0x82, 0x01, 0x05, 0xc7, 0x60, 0x06, 0x48, 0x2e, 0x29, + 0x25, 0xf9, 0x41, 0x07, 0xec, 0x05, 0x06, 0x4f, 0xec, 0x73, 0x3f, 0x09, + 0x41, 0xe1, 0x20, 0x09, 0x81, 0x65, 0xe2, 0x21, 0x09, 0x01, 0xe3, 0x39, + 0x09, 0x01, 0xe4, 0x23, 0x09, 0x01, 0xe5, 0x24, 0x09, 0x81, 0x50, 0xe6, + 0x31, 0x09, 0x01, 0xe7, 0x22, 0x09, 0x01, 0xe9, 0x26, 0x09, 0x01, 0xeb, + 0x28, 0x09, 0x01, 0xec, 0x29, 0x09, 0x81, 0x37, 0xed, 0x2a, 0x09, 0x01, + 0xee, 0x2b, 0x09, 0x81, 0x2a, 0xef, 0x2c, 0x09, 0x01, 0xf1, 0x32, 0x09, + 0x01, 0xf2, 0x2d, 0x09, 0x01, 0xf3, 0x33, 0x09, 0x81, 0x15, 0xf4, 0x2f, + 0x09, 0x81, 0x0c, 0xf5, 0x30, 0x09, 0x01, 0xf6, 0x25, 0x09, 0x01, 0xf9, + 0x27, 0x09, 0x41, 0xf4, 0x34, 0x09, 0x41, 0xf3, 0x2e, 0x09, 0x41, 0xee, + 0x38, 0x09, 0x41, 0xf9, 0x37, 0x09, 0x41, 0xee, 0x36, 0x09, 0x41, 0xee, + 0x35, 0x09, 0x41, 0xe1, 0x80, 0x02, 0x81, 0x72, 0xe2, 0x82, 0x02, 0x81, + 0x69, 0xe4, 0x85, 0x02, 0x01, 0xe5, 0x81, 0x02, 0x81, 0x5c, 0xe7, 0x84, + 0x02, 0x01, 0xe8, 0x9b, 0x02, 0x01, 0xe9, 0x86, 0x02, 0x01, 0xea, 0x8a, + 0x02, 0x01, 0xeb, 0x8b, 0x02, 0x81, 0x43, 0xec, 0x8d, 0x02, 0x01, 0xed, + 0x8e, 0x02, 0x81, 0x36, 0xee, 0x8f, 0x02, 0x81, 0x2d, 0xf0, 0x93, 0x02, + 0x01, 0xf1, 0x8c, 0x02, 0x01, 0xf2, 0x95, 0x02, 0x01, 0xf3, 0x96, 0x02, + 0x01, 0xf4, 0x97, 0x02, 0x81, 0x10, 0xf5, 0x92, 0x02, 0x01, 0xf7, 0x87, + 0x02, 0x01, 0xf8, 0x9c, 0x02, 0x01, 0xfa, 0x88, 0x02, 0x41, 0xe8, 0x89, + 0x02, 0x01, 0xf4, 0x98, 0x02, 0x41, 0xee, 0x91, 0x02, 0x41, 0xed, 0x90, + 0x02, 0x41, 0xeb, 0x94, 0x02, 0x41, 0xee, 0x9a, 0x02, 0x41, 0xe8, 0x83, + 0x02, 0x41, 0xee, 0x99, 0x02, 0x41, 0x45, 0xef, 0xe0, 0xf3, 0xf9, 0x01, + 0xae, 0x01, 0xff, 0x4a, 0xdb, 0xa7, 0x76, 0xf7, 0x01, 0x42, 0xbc, 0x11, + 0xc1, 0xfa, 0x41, 0x45, 0xde, 0xe4, 0x9e, 0xf9, 0x01, 0x42, 0x36, 0x01, + 0x12, 0xf5, 0x81, 0x9b, 0x0a, 0x03, 0x2d, 0x22, 0xef, 0x08, 0x46, 0xca, + 0xdd, 0x6d, 0xf3, 0x01, 0x03, 0xa2, 0x01, 0xac, 0x07, 0xb4, 0x97, 0x07, + 0x50, 0xe6, 0x67, 0x2d, 0xf6, 0x01, 0x03, 0x5f, 0x00, 0x80, 0x07, 0xb7, + 0x0d, 0x45, 0x4b, 0x0a, 0xca, 0x25, 0xc0, 0x00, 0x5b, 0xf0, 0x19, 0xe0, + 0x27, 0x40, 0x80, 0xc1, 0x06, 0x03, 0x16, 0x01, 0x01, 0xff, 0x4e, 0x41, + 0x76, 0x03, 0x27, 0x00, 0x07, 0x73, 0x02, 0x8a, 0x06, 0x52, 0xa9, 0x51, + 0x85, 0x25, 0x00, 0xa8, 0xc1, 0x05, 0x05, 0xc3, 0x00, 0xa0, 0x03, 0x07, + 0x7d, 0x02, 0xea, 0x02, 0x04, 0x0e, 0x0b, 0xd9, 0x02, 0x06, 0xc8, 0x00, + 0x30, 0x53, 0xfb, 0x4c, 0x87, 0x25, 0x00, 0xb4, 0x01, 0xff, 0x05, 0x25, + 0x01, 0x06, 0x5b, 0x35, 0x1d, 0x6f, 0xfb, 0x41, 0x4d, 0x01, 0x4d, 0x83, + 0x25, 0x00, 0x09, 0x2a, 0x01, 0x01, 0xff, 0x45, 0x33, 0x01, 0x86, 0x25, + 0x00, 0x56, 0x37, 0x35, 0xa5, 0xce, 0x01, 0x57, 0xdc, 0x30, 0xae, 0xce, + 0x41, 0x0f, 0x6d, 0x6b, 0xbe, 0x01, 0x4f, 0xd6, 0x6b, 0xd3, 0x27, 0x00, + 0x5a, 0xe4, 0x1f, 0x4f, 0x27, 0x00, 0x53, 0xfc, 0x25, 0x9f, 0xce, 0x01, + 0x46, 0x14, 0xdf, 0x0e, 0x27, 0x00, 0x03, 0x7c, 0x00, 0x38, 0x4d, 0x00, + 0x30, 0x07, 0xcc, 0x01, 0xb3, 0x19, 0xb4, 0x01, 0xff, 0x05, 0x1a, 0x01, + 0x06, 0x4d, 0x88, 0x7d, 0x3f, 0xcc, 0x41, 0x42, 0x68, 0x00, 0xff, 0x25, + 0x00, 0x51, 0xa2, 0x5e, 0x9e, 0xfb, 0x41, 0x5b, 0x19, 0x1b, 0x3e, 0x29, + 0x00, 0x0e, 0xa5, 0x02, 0x01, 0xff, 0x46, 0x12, 0x03, 0x3e, 0xf5, 0x01, + 0x46, 0xd6, 0x05, 0x51, 0x27, 0x40, 0x06, 0x7c, 0x0d, 0x06, 0x4b, 0x90, + 0x4c, 0x3a, 0xcc, 0x41, 0xa3, 0x2e, 0xa6, 0x20, 0x4d, 0xeb, 0x85, 0xb9, + 0xcc, 0x01, 0x4c, 0x97, 0x92, 0xad, 0xcc, 0x01, 0xb3, 0x06, 0x4a, 0xa9, + 0xb1, 0xb5, 0xcc, 0x41, 0x4b, 0x5c, 0x95, 0xab, 0xcc, 0x01, 0x4e, 0x57, + 0x73, 0xd5, 0xcc, 0x41, 0x53, 0x33, 0x29, 0xaf, 0xcc, 0x01, 0x4c, 0x14, + 0x83, 0xb1, 0xcc, 0x41, 0x05, 0x4b, 0x88, 0x06, 0x4b, 0xaf, 0x9d, 0xde, + 0x25, 0x40, 0x46, 0x2e, 0xda, 0xc9, 0xcc, 0x01, 0xab, 0x12, 0x44, 0xfd, + 0xf1, 0xd1, 0xcc, 0x01, 0x45, 0x52, 0xbe, 0xc1, 0xcc, 0x01, 0x44, 0x5d, + 0xf2, 0xc5, 0xcc, 0x41, 0x43, 0xa1, 0x01, 0xbd, 0xcc, 0x01, 0x45, 0x4e, + 0x09, 0xcd, 0xcc, 0x41, 0x06, 0x13, 0x01, 0x11, 0x1b, 0xf2, 0x1d, 0x01, + 0xff, 0x46, 0x73, 0x02, 0x41, 0xfb, 0x01, 0x45, 0xc8, 0x00, 0x42, 0xfb, + 0x41, 0x0a, 0x73, 0x02, 0x32, 0x08, 0x84, 0x02, 0x17, 0x15, 0xf8, 0x1d, + 0x01, 0xff, 0x46, 0x73, 0x02, 0x43, 0xfb, 0x01, 0x4c, 0x58, 0x0f, 0x46, + 0xfb, 0x01, 0x45, 0xc8, 0x00, 0x44, 0xfb, 0x41, 0x52, 0x8f, 0x53, 0x48, + 0xfb, 0x01, 0x06, 0x6d, 0x02, 0x01, 0xff, 0x46, 0x73, 0x02, 0x45, 0xfb, + 0x01, 0x4c, 0x58, 0x0f, 0x4a, 0xfb, 0x41, 0x52, 0x8f, 0x53, 0x47, 0xfb, + 0x01, 0x06, 0x6d, 0x02, 0x01, 0xff, 0x4c, 0x58, 0x0f, 0x49, 0xfb, 0x01, + 0x45, 0xc8, 0x00, 0x4b, 0xfb, 0x41, 0x4c, 0x12, 0x0b, 0x81, 0x25, 0x00, + 0x4d, 0x43, 0x1d, 0x82, 0x25, 0x40, 0x07, 0x73, 0x02, 0x21, 0x05, 0xc3, + 0x00, 0x11, 0x06, 0xc8, 0x00, 0x01, 0xff, 0x53, 0xfc, 0x25, 0x9b, 0xce, + 0x01, 0x4e, 0x87, 0x7d, 0x3b, 0xcc, 0x41, 0x53, 0xfc, 0x25, 0x98, 0xce, + 0x01, 0x4e, 0x87, 0x7d, 0x38, 0xcc, 0x41, 0x58, 0xa6, 0x29, 0x99, 0xce, + 0x01, 0x59, 0xf6, 0x25, 0x9a, 0xce, 0x41, 0xa2, 0xae, 0x01, 0x46, 0xb8, + 0xda, 0x8d, 0xf5, 0x01, 0x4c, 0x13, 0x8f, 0x8b, 0xf5, 0x01, 0x53, 0xfc, + 0x25, 0x9c, 0xce, 0x01, 0xb0, 0x8d, 0x01, 0x03, 0x7c, 0x00, 0x1f, 0x60, + 0x54, 0x10, 0x3f, 0x29, 0x00, 0xb4, 0x01, 0xff, 0x05, 0x1a, 0x01, 0x06, + 0x4d, 0x88, 0x7d, 0x3c, 0xcc, 0x41, 0x42, 0x68, 0x00, 0xfa, 0x25, 0x00, + 0x51, 0xa2, 0x5e, 0x9f, 0xfb, 0x41, 0x06, 0x7c, 0x0d, 0x06, 0x4b, 0x90, + 0x4c, 0x39, 0xcc, 0x41, 0xa3, 0x2e, 0xa6, 0x20, 0x4d, 0xeb, 0x85, 0xb8, + 0xcc, 0x01, 0x4c, 0x97, 0x92, 0xac, 0xcc, 0x01, 0xb3, 0x06, 0x4a, 0xa9, + 0xb1, 0xb4, 0xcc, 0x41, 0x4b, 0x5c, 0x95, 0xaa, 0xcc, 0x01, 0x4e, 0x57, + 0x73, 0xd4, 0xcc, 0x41, 0x53, 0x33, 0x29, 0xae, 0xcc, 0x01, 0x4c, 0x14, + 0x83, 0xb0, 0xcc, 0x41, 0x05, 0x4b, 0x88, 0x06, 0x4b, 0xaf, 0x9d, 0xdf, + 0x25, 0x40, 0x46, 0x2e, 0xda, 0xc8, 0xcc, 0x01, 0xab, 0x12, 0x44, 0xfd, + 0xf1, 0xd0, 0xcc, 0x01, 0x45, 0x52, 0xbe, 0xc0, 0xcc, 0x01, 0x44, 0x5d, + 0xf2, 0xc4, 0xcc, 0x41, 0x43, 0xa1, 0x01, 0xbc, 0xcc, 0x01, 0x45, 0x4e, + 0x09, 0xcc, 0xcc, 0x41, 0x49, 0xc7, 0xb5, 0x8c, 0xf5, 0x01, 0x45, 0x15, + 0xdf, 0x89, 0xf5, 0x41, 0x4c, 0x13, 0x8c, 0x8a, 0xf5, 0x01, 0x0e, 0x6e, + 0x6b, 0x01, 0xff, 0x1b, 0x78, 0x1c, 0x50, 0x06, 0x6d, 0x02, 0x01, 0xff, + 0x0a, 0x73, 0x02, 0x31, 0x08, 0x84, 0x02, 0x17, 0x15, 0x7d, 0x02, 0x01, + 0xff, 0x46, 0x73, 0x02, 0x3e, 0xfb, 0x01, 0x4c, 0x58, 0x0f, 0x51, 0xfb, + 0x01, 0x45, 0xc8, 0x00, 0x3f, 0xfb, 0x41, 0x06, 0x13, 0x01, 0x06, 0x52, + 0x3b, 0x56, 0x4d, 0xfb, 0x41, 0x46, 0x73, 0x02, 0x40, 0xfb, 0x01, 0x4c, + 0x58, 0x0f, 0x4f, 0xfb, 0x41, 0x06, 0x13, 0x01, 0x06, 0x52, 0x3b, 0x56, + 0x4c, 0xfb, 0x41, 0x4c, 0x58, 0x0f, 0x4e, 0xfb, 0x01, 0x45, 0xc8, 0x00, + 0x50, 0xfb, 0x41, 0x46, 0x73, 0x02, 0x3c, 0xfb, 0x01, 0x45, 0xc8, 0x00, + 0x3d, 0xfb, 0x41, 0x04, 0x23, 0x00, 0x06, 0x57, 0xf6, 0x2f, 0x05, 0xcc, + 0x41, 0x5b, 0x26, 0x1a, 0x01, 0xce, 0x01, 0x45, 0x33, 0x01, 0x84, 0x25, + 0x00, 0x46, 0x12, 0x03, 0xe1, 0x25, 0x00, 0x52, 0x27, 0x52, 0x04, 0xce, + 0x01, 0x54, 0x70, 0x43, 0xdb, 0x25, 0x00, 0x56, 0x37, 0x35, 0xa4, 0xce, + 0x01, 0x4c, 0x44, 0x04, 0x8f, 0xfb, 0x01, 0x57, 0xdc, 0x30, 0xaf, 0xce, + 0x01, 0x63, 0xcd, 0x0b, 0x13, 0xce, 0x41, 0x05, 0xc3, 0x00, 0x17, 0x51, + 0x3f, 0x1d, 0xe5, 0xfb, 0x01, 0x06, 0xc8, 0x00, 0x01, 0xff, 0x53, 0xfc, + 0x25, 0x9e, 0xce, 0x01, 0x4e, 0x87, 0x7d, 0x3e, 0xcc, 0x41, 0x53, 0xfc, + 0x25, 0x9d, 0xce, 0x01, 0x4e, 0x87, 0x7d, 0x3d, 0xcc, 0x41, 0x48, 0x3c, + 0x0d, 0x4e, 0x20, 0x00, 0xa2, 0x19, 0x5b, 0xe3, 0x1a, 0x1f, 0x30, 0x00, + 0x46, 0xed, 0x4f, 0x47, 0x2e, 0x80, 0x06, 0x44, 0xed, 0x07, 0x5f, 0x00, + 0x40, 0x49, 0x75, 0x3b, 0x48, 0x2e, 0x40, 0x46, 0xf8, 0xd9, 0xab, 0xfa, + 0x01, 0x50, 0xcb, 0x58, 0x05, 0xf5, 0x41, 0x45, 0x1d, 0xe7, 0xe9, 0xf3, + 0x01, 0x46, 0xec, 0x05, 0x8c, 0xf4, 0x41, 0x4b, 0x7f, 0x97, 0x74, 0xf7, + 0x01, 0x4a, 0xff, 0xab, 0xf4, 0xf9, 0x01, 0x42, 0xef, 0x02, 0xb7, 0xfa, + 0x41, 0xa4, 0xa3, 0x01, 0x04, 0xc3, 0x00, 0x55, 0x05, 0xc8, 0x00, 0x01, + 0xff, 0x45, 0xf4, 0x38, 0xdd, 0x27, 0x00, 0x06, 0xa9, 0x01, 0x01, 0xff, + 0x45, 0xce, 0x00, 0xf6, 0x27, 0x80, 0x23, 0x4c, 0x2f, 0x8e, 0xf9, 0x27, + 0x80, 0x16, 0x08, 0xc9, 0x02, 0x06, 0x4e, 0x7d, 0x7c, 0xff, 0x27, 0x40, + 0x5d, 0xf4, 0x14, 0xd2, 0xf8, 0x01, 0x5b, 0xe4, 0x1c, 0xd1, 0xf8, 0x41, + 0x49, 0x56, 0xb4, 0xfe, 0x27, 0x40, 0x80, 0x01, 0xff, 0x48, 0x57, 0xb4, + 0xfc, 0x27, 0x00, 0x59, 0x92, 0x25, 0xd0, 0xf8, 0x01, 0x49, 0xc3, 0xbf, + 0xd6, 0xf8, 0x01, 0x51, 0x90, 0x5f, 0xd7, 0xf8, 0x41, 0x80, 0x2b, 0x06, + 0xa9, 0x01, 0x01, 0xff, 0x45, 0xce, 0x00, 0xf5, 0x27, 0x80, 0x19, 0x4c, + 0x2f, 0x8e, 0xf8, 0x27, 0x80, 0x0c, 0x66, 0x25, 0x07, 0xd4, 0xf8, 0x01, + 0x4e, 0x7d, 0x7c, 0x33, 0x2b, 0x40, 0x49, 0x56, 0xb4, 0xfd, 0x27, 0x40, + 0x49, 0x56, 0xb4, 0xfb, 0x27, 0x40, 0x06, 0xc8, 0x00, 0x06, 0x44, 0xf5, + 0x38, 0xde, 0x27, 0x40, 0x45, 0xce, 0x00, 0xf7, 0x27, 0x80, 0x06, 0x4c, + 0x2f, 0x8e, 0xfa, 0x27, 0x40, 0x54, 0xd8, 0x3f, 0xd8, 0xf8, 0x41, 0x67, + 0xa6, 0x05, 0xe6, 0x2a, 0x00, 0x47, 0xc3, 0x32, 0xcc, 0x27, 0x00, 0x43, + 0x88, 0x1d, 0x98, 0xfa, 0x41, 0x06, 0x18, 0xd8, 0x7a, 0x03, 0x13, 0x00, + 0x01, 0xff, 0x43, 0x1a, 0x00, 0x27, 0x22, 0x80, 0x3c, 0x42, 0x0c, 0x00, + 0x28, 0x22, 0xc0, 0x00, 0x80, 0x01, 0xff, 0x57, 0x24, 0x30, 0x59, 0x2a, + 0x00, 0x05, 0x51, 0x00, 0x01, 0xff, 0x02, 0x3b, 0x01, 0x0c, 0x4f, 0x10, + 0x6e, 0x5d, 0x2a, 0x00, 0x4b, 0x9e, 0x9f, 0x5b, 0x2a, 0x40, 0x47, 0x3c, + 0x1e, 0x52, 0x2a, 0x00, 0x05, 0x3d, 0x01, 0x01, 0xff, 0x47, 0xe6, 0x7f, + 0x62, 0x2a, 0x00, 0x48, 0xe3, 0x59, 0x63, 0x2a, 0x40, 0x06, 0x50, 0x00, + 0x01, 0xff, 0x02, 0x3b, 0x01, 0x12, 0x4f, 0x10, 0x6e, 0x5c, 0x2a, 0x00, + 0x4b, 0x9e, 0x9f, 0x5a, 0x2a, 0x00, 0x48, 0xe3, 0x59, 0x5f, 0x2a, 0x40, + 0x47, 0x3c, 0x1e, 0x51, 0x2a, 0x00, 0x05, 0x3d, 0x01, 0x01, 0xff, 0x47, + 0xe6, 0x7f, 0x5e, 0x2a, 0x00, 0x48, 0xe3, 0x59, 0x60, 0x2a, 0x40, 0x43, + 0x1a, 0x00, 0x16, 0xcc, 0x01, 0x46, 0x46, 0xda, 0x19, 0xcc, 0x81, 0x16, + 0x09, 0x5e, 0x23, 0x06, 0x42, 0x0c, 0x00, 0x15, 0xcc, 0x41, 0x46, 0xfe, + 0xdc, 0x17, 0xcc, 0x01, 0x46, 0x1e, 0x51, 0x18, 0xcc, 0x41, 0x54, 0x00, + 0x40, 0x1a, 0xcc, 0x41, 0x4d, 0xc6, 0x7f, 0x0f, 0xf5, 0x01, 0x0a, 0xd7, + 0xab, 0x01, 0xff, 0x43, 0x0e, 0x0b, 0x0e, 0x00, 0x00, 0x44, 0x43, 0x1e, + 0x0f, 0x00, 0x40, 0x43, 0x63, 0x09, 0x4e, 0x26, 0x00, 0xa7, 0x93, 0x1d, + 0xad, 0xd3, 0x19, 0xae, 0xdd, 0x02, 0x47, 0xe0, 0xd3, 0x81, 0xf9, 0x01, + 0x42, 0xcf, 0x15, 0xe2, 0xf5, 0x81, 0xc9, 0x02, 0x47, 0x85, 0x84, 0xa4, + 0x20, 0x00, 0x03, 0x53, 0x22, 0x0c, 0x51, 0x5d, 0x5f, 0xb6, 0x20, 0x00, + 0x44, 0xfa, 0x92, 0x8e, 0xf9, 0x41, 0x07, 0xec, 0x05, 0x11, 0x0c, 0x6d, + 0x16, 0x01, 0xff, 0x45, 0x13, 0x05, 0xfe, 0xa4, 0x00, 0x49, 0x81, 0x16, + 0xff, 0xa4, 0x40, 0xe1, 0xee, 0xa4, 0x80, 0x94, 0x02, 0x42, 0x16, 0x00, + 0xd0, 0xa4, 0x00, 0xa3, 0x81, 0x02, 0xa4, 0xf4, 0x01, 0xe5, 0xf0, 0xa4, + 0x80, 0xea, 0x01, 0x42, 0x0c, 0x08, 0xe9, 0xa4, 0x00, 0xa7, 0xd7, 0x01, + 0xa8, 0xca, 0x01, 0xe9, 0xf2, 0xa4, 0x00, 0x42, 0x56, 0x19, 0xd9, 0xa4, + 0x00, 0xab, 0xb3, 0x01, 0x42, 0x74, 0x00, 0xe1, 0xa4, 0x00, 0x42, 0x6c, + 0x00, 0xdf, 0xa4, 0x00, 0xae, 0x9a, 0x01, 0xef, 0xf3, 0xa4, 0x80, 0x90, + 0x01, 0xb0, 0x83, 0x01, 0xb3, 0x77, 0xb4, 0x32, 0xf5, 0xf4, 0xa4, 0x80, + 0x25, 0x42, 0xa9, 0x01, 0xea, 0xa4, 0x00, 0x42, 0xed, 0x26, 0xe7, 0xa4, + 0x00, 0xb9, 0x0d, 0xba, 0x01, 0xff, 0xe1, 0xe4, 0xa4, 0x00, 0x42, 0x22, + 0x00, 0xe3, 0xa4, 0x40, 0xe1, 0xec, 0xa4, 0x00, 0x42, 0x22, 0x00, 0xb0, + 0x1f, 0x41, 0xe5, 0xf5, 0xa4, 0x00, 0xe8, 0xf6, 0xa4, 0x40, 0xe1, 0xd4, + 0xa4, 0x00, 0x42, 0x22, 0x00, 0xd5, 0xa4, 0x00, 0x04, 0x0e, 0x0b, 0x0d, + 0xb3, 0x01, 0xff, 0xe1, 0xdd, 0xa4, 0x00, 0x42, 0x22, 0x00, 0xde, 0xa4, + 0x40, 0x04, 0x69, 0x62, 0x06, 0x45, 0xe4, 0xe8, 0xf9, 0xa4, 0x40, 0x42, + 0x5d, 0x00, 0xfb, 0xa4, 0x00, 0x43, 0x10, 0xf4, 0xfa, 0xa4, 0x00, 0x43, + 0x5e, 0xf4, 0xfd, 0xa4, 0x00, 0x42, 0x2a, 0x05, 0xfc, 0xa4, 0x00, 0x42, + 0x35, 0x00, 0xf8, 0xa4, 0x40, 0xe1, 0xe2, 0xa4, 0x00, 0x42, 0x22, 0x00, + 0xeb, 0xa4, 0x40, 0xe1, 0xd1, 0xa4, 0x00, 0x42, 0x22, 0x00, 0xd2, 0xa4, + 0x40, 0xe5, 0xf7, 0xa4, 0x40, 0xe1, 0xe0, 0xa4, 0x00, 0x42, 0x24, 0x02, + 0xe5, 0xa4, 0x40, 0xe1, 0xd7, 0xa4, 0x00, 0x42, 0x22, 0x00, 0xd8, 0xa4, + 0x40, 0xe1, 0xe6, 0xa4, 0x00, 0x42, 0x22, 0x00, 0xe8, 0xa4, 0x40, 0xe1, + 0xd6, 0xa4, 0x00, 0x42, 0x22, 0x00, 0xed, 0xa4, 0x40, 0xf5, 0xf1, 0xa4, + 0x40, 0xe1, 0xd3, 0xa4, 0x00, 0x42, 0x59, 0x00, 0xdc, 0xa4, 0x40, 0xe1, + 0xda, 0xa4, 0x00, 0x42, 0x22, 0x00, 0xdb, 0xa4, 0x40, 0xe5, 0xef, 0xa4, + 0x40, 0x44, 0xfd, 0x07, 0x84, 0xf4, 0x41, 0xa5, 0x0f, 0xab, 0x01, 0xff, + 0x47, 0x15, 0x08, 0x17, 0xf5, 0x01, 0x4d, 0x5d, 0x82, 0x87, 0xf5, 0x41, + 0x80, 0xab, 0x16, 0x03, 0x17, 0x00, 0x01, 0xff, 0x08, 0x10, 0xc3, 0xd5, + 0x09, 0x02, 0x26, 0x02, 0x01, 0xff, 0x09, 0xff, 0xb9, 0xdd, 0x04, 0x0a, + 0xfd, 0xad, 0xae, 0x04, 0x02, 0x16, 0x08, 0x01, 0xff, 0x09, 0x94, 0xbb, + 0x4e, 0x07, 0x31, 0xd3, 0x01, 0xff, 0x91, 0x3f, 0x42, 0x54, 0xed, 0x52, + 0x00, 0x01, 0x42, 0xf0, 0xf4, 0x53, 0x00, 0x01, 0x94, 0x29, 0x42, 0x00, + 0xc3, 0x56, 0x00, 0x01, 0x96, 0x19, 0x42, 0x14, 0x40, 0x59, 0x00, 0x01, + 0x98, 0x01, 0xff, 0xd2, 0x5a, 0x00, 0x01, 0xd3, 0x5b, 0x00, 0x01, 0xd6, + 0x5c, 0x00, 0x01, 0xd9, 0x5d, 0x00, 0x41, 0xd3, 0x57, 0x00, 0x01, 0xd4, + 0x58, 0x00, 0x41, 0xd7, 0x54, 0x00, 0x01, 0xd9, 0x55, 0x00, 0x41, 0xd8, + 0x50, 0x00, 0x01, 0xd9, 0x51, 0x00, 0x41, 0x90, 0x9e, 0x03, 0x91, 0xeb, + 0x02, 0x92, 0xb2, 0x02, 0x93, 0xff, 0x01, 0x94, 0xcc, 0x01, 0x95, 0x93, + 0x01, 0x96, 0x61, 0x97, 0x29, 0x98, 0x0f, 0x99, 0x01, 0xff, 0x45, 0x04, + 0xe2, 0x44, 0x00, 0x01, 0x45, 0x45, 0xe2, 0x4d, 0x00, 0x41, 0x44, 0x22, + 0xe2, 0x14, 0x00, 0x01, 0x44, 0x21, 0xed, 0x13, 0x00, 0x01, 0x44, 0xd9, + 0xed, 0x42, 0x00, 0x01, 0x45, 0x76, 0xe3, 0x4c, 0x00, 0x41, 0x44, 0xe1, + 0xec, 0x12, 0x00, 0x01, 0x45, 0x31, 0xe2, 0x43, 0x00, 0x01, 0x44, 0x59, + 0xed, 0x1f, 0x00, 0x01, 0x44, 0x91, 0xed, 0x16, 0x00, 0x01, 0x44, 0xcd, + 0xed, 0x3d, 0x00, 0x01, 0x44, 0x1d, 0xee, 0x38, 0x00, 0x01, 0x45, 0x35, + 0xe3, 0x48, 0x00, 0x01, 0x44, 0x20, 0xd9, 0x0f, 0x00, 0x01, 0x44, 0xa5, + 0xee, 0x24, 0x00, 0x41, 0x44, 0xed, 0xec, 0x28, 0x00, 0x01, 0x43, 0xa7, + 0x75, 0x03, 0x00, 0x01, 0x45, 0x95, 0xe2, 0x47, 0x00, 0x01, 0x44, 0xf5, + 0xed, 0x0e, 0x00, 0x01, 0x45, 0x44, 0xe3, 0x4b, 0x00, 0x01, 0x44, 0x6d, + 0xee, 0x11, 0x00, 0x01, 0x45, 0xa3, 0xe3, 0x4a, 0x00, 0x01, 0x44, 0xd1, + 0xee, 0x36, 0x00, 0x41, 0x44, 0xe9, 0xec, 0x22, 0x00, 0x01, 0x44, 0x0d, + 0xed, 0x09, 0x00, 0x01, 0x44, 0x55, 0xed, 0x1c, 0x00, 0x01, 0x44, 0x9d, + 0xed, 0x2a, 0x00, 0x01, 0x44, 0xc5, 0xed, 0x37, 0x00, 0x01, 0x44, 0x01, + 0xee, 0x1d, 0x00, 0x01, 0x44, 0x69, 0xee, 0x0a, 0x00, 0x01, 0x44, 0xa9, + 0xee, 0x31, 0x00, 0x01, 0x44, 0xc9, 0xee, 0x32, 0x00, 0x41, 0x44, 0xf5, + 0xec, 0x39, 0x00, 0x01, 0x44, 0x35, 0xed, 0x2f, 0x00, 0x01, 0x44, 0x0d, + 0xce, 0x3a, 0x00, 0x01, 0x44, 0x71, 0xed, 0x41, 0x00, 0x01, 0x44, 0xb1, + 0xed, 0x10, 0x00, 0x01, 0x44, 0xe1, 0xed, 0x06, 0x00, 0x01, 0x44, 0x31, + 0xee, 0x0b, 0x00, 0x01, 0x45, 0x9e, 0xe3, 0x45, 0x00, 0x41, 0x44, 0xe5, + 0xec, 0x1b, 0x00, 0x01, 0x44, 0x31, 0xed, 0x2d, 0x00, 0x01, 0x44, 0x5d, + 0xed, 0x26, 0x00, 0x01, 0x45, 0xbd, 0xe2, 0x49, 0x00, 0x01, 0x44, 0x35, + 0xee, 0x0d, 0x00, 0x01, 0x44, 0x79, 0xee, 0x34, 0x00, 0x01, 0x43, 0x8d, + 0xee, 0x01, 0x00, 0x01, 0x44, 0xb9, 0xee, 0x20, 0x00, 0x41, 0x44, 0xfd, + 0xec, 0x3f, 0x00, 0x01, 0x44, 0x29, 0xed, 0x25, 0x00, 0x01, 0x44, 0x95, + 0xed, 0x18, 0x00, 0x01, 0x44, 0xb9, 0xed, 0x1a, 0x00, 0x01, 0x44, 0xd1, + 0xed, 0x40, 0x00, 0x01, 0x44, 0x4d, 0xee, 0x2c, 0x00, 0x01, 0x44, 0x75, + 0xee, 0x29, 0x00, 0x01, 0x43, 0xd7, 0xf3, 0x02, 0x00, 0x01, 0x45, 0xd5, + 0xe3, 0x46, 0x00, 0x41, 0x43, 0x74, 0xf3, 0x04, 0x00, 0x01, 0x44, 0x25, + 0xed, 0x21, 0x00, 0x01, 0x44, 0x65, 0xed, 0x30, 0x00, 0x01, 0x44, 0x8d, + 0xed, 0x15, 0x00, 0x01, 0x44, 0xa9, 0xed, 0x08, 0x00, 0x01, 0x44, 0xfd, + 0xed, 0x17, 0x00, 0x01, 0x44, 0x49, 0xee, 0x23, 0x00, 0x01, 0x44, 0x81, + 0xee, 0x3c, 0x00, 0x41, 0x44, 0x05, 0xed, 0x05, 0x00, 0x01, 0x44, 0x61, + 0xed, 0x2b, 0x00, 0x01, 0x44, 0x99, 0xed, 0x1e, 0x00, 0x01, 0x44, 0xbd, + 0xed, 0x33, 0x00, 0x01, 0x44, 0x0d, 0xee, 0x35, 0x00, 0x01, 0x44, 0x41, + 0xee, 0x19, 0x00, 0x01, 0x44, 0x54, 0xb5, 0x07, 0x00, 0x01, 0x43, 0xd4, + 0xf3, 0x00, 0x00, 0x01, 0x44, 0xbd, 0xee, 0x2e, 0x00, 0x41, 0x91, 0x06, + 0x49, 0x52, 0xb5, 0xd2, 0x00, 0x41, 0x92, 0x14, 0x93, 0x06, 0x48, 0x00, + 0xc3, 0xa4, 0x00, 0x41, 0x47, 0x1b, 0xce, 0x98, 0x00, 0x01, 0x46, 0xf6, + 0xd8, 0x99, 0x00, 0x41, 0x46, 0x20, 0xd9, 0x93, 0x00, 0x01, 0x48, 0x08, + 0xc3, 0x94, 0x00, 0x41, 0xa2, 0x87, 0x01, 0x08, 0x48, 0xcc, 0x01, 0xff, + 0x43, 0x8f, 0xf3, 0xde, 0x00, 0x01, 0x92, 0x06, 0x43, 0xaa, 0xf3, 0xfa, + 0x00, 0x41, 0x90, 0x4a, 0x91, 0x20, 0x92, 0x06, 0x42, 0xaa, 0xd2, 0xf9, + 0x00, 0x41, 0xd1, 0xf3, 0x00, 0x01, 0xd2, 0xf4, 0x00, 0x01, 0xd6, 0xf5, + 0x00, 0x01, 0xd7, 0xf6, 0x00, 0x01, 0xd8, 0xf7, 0x00, 0x01, 0xd9, 0xf8, + 0x00, 0x41, 0xd0, 0xe9, 0x00, 0x01, 0xd1, 0xea, 0x00, 0x01, 0xd2, 0xeb, + 0x00, 0x01, 0xd3, 0xec, 0x00, 0x01, 0xd4, 0xed, 0x00, 0x01, 0xd5, 0xee, + 0x00, 0x01, 0xd6, 0xef, 0x00, 0x01, 0xd7, 0xf0, 0x00, 0x01, 0xd8, 0xf1, + 0x00, 0x01, 0xd9, 0xf2, 0x00, 0x41, 0xd0, 0xdf, 0x00, 0x01, 0xd1, 0xe0, + 0x00, 0x01, 0xd2, 0xe1, 0x00, 0x01, 0xd3, 0xe2, 0x00, 0x01, 0xd4, 0xe3, + 0x00, 0x01, 0xd5, 0xe4, 0x00, 0x01, 0xd6, 0xe5, 0x00, 0x01, 0xd7, 0xe6, + 0x00, 0x01, 0xd8, 0xe7, 0x00, 0x01, 0xd9, 0xe8, 0x00, 0x41, 0x91, 0x84, + 0x01, 0x92, 0x01, 0xff, 0x92, 0x73, 0x93, 0x53, 0x94, 0x29, 0x95, 0x01, + 0xff, 0xd1, 0xd5, 0x00, 0x01, 0xd2, 0xd6, 0x00, 0x01, 0xd3, 0xd7, 0x00, + 0x01, 0x46, 0xcc, 0xd8, 0xd8, 0x00, 0x01, 0xd5, 0xd9, 0x00, 0x01, 0xd6, + 0xda, 0x00, 0x01, 0xd7, 0xdb, 0x00, 0x01, 0xd8, 0xdc, 0x00, 0x01, 0xd9, + 0xdd, 0x00, 0x41, 0x51, 0xba, 0x57, 0xcc, 0x00, 0x01, 0x49, 0x40, 0xb5, + 0xcd, 0x00, 0x01, 0x4f, 0x50, 0x6a, 0xce, 0x00, 0x01, 0x47, 0x45, 0xce, + 0xcf, 0x00, 0x01, 0xd5, 0xd0, 0x00, 0x01, 0xd6, 0xd1, 0x00, 0x01, 0xd8, + 0xd3, 0x00, 0x01, 0xd9, 0xd4, 0x00, 0x41, 0x47, 0xf1, 0xcd, 0xc6, 0x00, + 0x01, 0x47, 0xff, 0xcd, 0xc7, 0x00, 0x01, 0xd2, 0xc8, 0x00, 0x01, 0x47, + 0x3e, 0xce, 0xc9, 0x00, 0x01, 0xd4, 0xca, 0x00, 0x01, 0xd6, 0xcb, 0x00, + 0x41, 0x4b, 0x7c, 0x98, 0xc4, 0x00, 0x01, 0x49, 0x64, 0xb5, 0xc5, 0x00, + 0x41, 0x90, 0xfb, 0x01, 0x92, 0xda, 0x01, 0x93, 0xc7, 0x01, 0x94, 0xaa, + 0x01, 0x95, 0x83, 0x01, 0x96, 0x55, 0x97, 0x2b, 0x98, 0x0d, 0x99, 0x01, + 0xff, 0xd0, 0xc2, 0x00, 0x01, 0x48, 0xf0, 0xc2, 0xc3, 0x00, 0x41, 0xd0, + 0xbb, 0x00, 0x01, 0xd1, 0xbc, 0x00, 0x01, 0xd2, 0xbd, 0x00, 0x01, 0xd3, + 0xbe, 0x00, 0x01, 0xd4, 0xbf, 0x00, 0x01, 0xd5, 0xc0, 0x00, 0x01, 0xd9, + 0xc1, 0x00, 0x41, 0xd0, 0xb2, 0x00, 0x01, 0xd1, 0xb3, 0x00, 0x01, 0xd2, + 0xb4, 0x00, 0x01, 0x47, 0x29, 0xce, 0xb5, 0x00, 0x01, 0xd4, 0xb6, 0x00, + 0x01, 0x46, 0x14, 0xd9, 0xb7, 0x00, 0x01, 0xd7, 0xb8, 0x00, 0x01, 0xd8, + 0xb9, 0x00, 0x01, 0xd9, 0xba, 0x00, 0x41, 0xd0, 0xa8, 0x00, 0x01, 0xd1, + 0xa9, 0x00, 0x01, 0x49, 0x49, 0xb5, 0xaa, 0x00, 0x01, 0x48, 0xf8, 0xc2, + 0xab, 0x00, 0x01, 0xd4, 0xac, 0x00, 0x01, 0xd5, 0xad, 0x00, 0x01, 0xd6, + 0xae, 0x00, 0x01, 0xd7, 0xaf, 0x00, 0x01, 0xd8, 0xb0, 0x00, 0x01, 0xd9, + 0xb1, 0x00, 0x41, 0xd0, 0x9f, 0x00, 0x01, 0x46, 0x9c, 0xd8, 0xa0, 0x00, + 0x01, 0xd2, 0xa1, 0x00, 0x01, 0xd3, 0xa2, 0x00, 0x01, 0xd4, 0xa3, 0x00, + 0x01, 0xd7, 0xa5, 0x00, 0x01, 0xd8, 0xa6, 0x00, 0x01, 0x47, 0x68, 0xce, + 0xa7, 0x00, 0x41, 0x48, 0xe0, 0xc2, 0x9a, 0x00, 0x01, 0x46, 0x96, 0xd8, + 0x9b, 0x00, 0x01, 0xd2, 0x9c, 0x00, 0x01, 0x46, 0xfc, 0xd8, 0x9d, 0x00, + 0x01, 0xd6, 0x9e, 0x00, 0x41, 0x45, 0x27, 0xe2, 0x95, 0x00, 0x01, 0x46, + 0xa8, 0xd8, 0x96, 0x00, 0x01, 0xd2, 0x97, 0x00, 0x41, 0x47, 0xf8, 0xcd, + 0x8e, 0x00, 0x01, 0x48, 0xe8, 0xc2, 0x8f, 0x00, 0x01, 0x47, 0x06, 0xce, + 0x90, 0x00, 0x01, 0x47, 0x37, 0xce, 0x91, 0x00, 0x01, 0x49, 0x6d, 0xb5, + 0x92, 0x00, 0x41, 0x45, 0x22, 0xe2, 0x80, 0x00, 0x01, 0x47, 0x0d, 0xce, + 0x81, 0x00, 0x01, 0x46, 0xd2, 0xd8, 0x82, 0x00, 0x01, 0x95, 0x39, 0x96, + 0x2b, 0x97, 0x1d, 0x98, 0x0f, 0x99, 0x01, 0xff, 0x45, 0x46, 0xe6, 0x8c, + 0x00, 0x01, 0x46, 0xe2, 0xdd, 0x8d, 0x00, 0x41, 0x45, 0x50, 0xe6, 0x8a, + 0x00, 0x01, 0x46, 0xdc, 0xdd, 0x8b, 0x00, 0x41, 0x4a, 0x3d, 0xaa, 0x88, + 0x00, 0x01, 0x49, 0xca, 0xbb, 0x89, 0x00, 0x41, 0x45, 0x4b, 0xe6, 0x86, + 0x00, 0x01, 0x45, 0x4e, 0xe8, 0x87, 0x00, 0x41, 0x46, 0x0c, 0xd8, 0x83, + 0x00, 0x01, 0x46, 0xae, 0xdb, 0x84, 0x00, 0x01, 0x4a, 0x99, 0xad, 0x85, + 0x00, 0x41, 0x44, 0x01, 0xed, 0x1b, 0x06, 0x01, 0x91, 0xb1, 0x0c, 0x93, + 0xe8, 0x09, 0x94, 0xee, 0x08, 0x95, 0x90, 0x06, 0x96, 0xac, 0x04, 0x97, + 0x9b, 0x03, 0x02, 0x2c, 0xf4, 0xf6, 0x02, 0xa2, 0x01, 0xff, 0x90, 0x3f, + 0x91, 0x01, 0xff, 0x42, 0x59, 0xe2, 0x48, 0x06, 0x01, 0x92, 0x28, 0x02, + 0x6a, 0xec, 0x1c, 0x42, 0x02, 0xf5, 0x50, 0x06, 0x01, 0x42, 0xeb, 0xf4, + 0x51, 0x06, 0x01, 0x98, 0x06, 0x42, 0x7f, 0xf3, 0x54, 0x06, 0x41, 0xd0, + 0x52, 0x06, 0x01, 0xd8, 0x53, 0x06, 0x41, 0xe1, 0x4d, 0x06, 0x01, 0xe2, + 0x4e, 0x06, 0x41, 0xd0, 0x49, 0x06, 0x01, 0xd2, 0x4b, 0x06, 0x01, 0xd3, + 0x4c, 0x06, 0x41, 0x90, 0x8b, 0x02, 0x91, 0xf4, 0x01, 0x92, 0xb6, 0x01, + 0x93, 0x9b, 0x01, 0x94, 0x79, 0x95, 0x53, 0x96, 0x39, 0x97, 0x1b, 0x98, + 0x01, 0xff, 0xd0, 0x41, 0x06, 0x01, 0xd1, 0x42, 0x06, 0x01, 0xd2, 0x43, + 0x06, 0x01, 0xd5, 0x44, 0x06, 0x01, 0xd6, 0x45, 0x06, 0x01, 0xd7, 0x46, + 0x06, 0x41, 0xd0, 0x3a, 0x06, 0x01, 0xd3, 0x3b, 0x06, 0x01, 0xd4, 0x3c, + 0x06, 0x01, 0xd6, 0x3d, 0x06, 0x01, 0xd7, 0x3e, 0x06, 0x01, 0xd8, 0x3f, + 0x06, 0x01, 0xd9, 0x40, 0x06, 0x41, 0xd0, 0x34, 0x06, 0x01, 0xd1, 0x35, + 0x06, 0x01, 0xd5, 0x36, 0x06, 0x01, 0xd6, 0x37, 0x06, 0x01, 0xd7, 0x38, + 0x06, 0x01, 0xd9, 0x39, 0x06, 0x41, 0xd0, 0x2b, 0x06, 0x01, 0xd1, 0x2c, + 0x06, 0x01, 0xd3, 0x2d, 0x06, 0x01, 0xd4, 0x2e, 0x06, 0x01, 0xd5, 0x2f, + 0x06, 0x01, 0xd6, 0x30, 0x06, 0x01, 0xd7, 0x31, 0x06, 0x01, 0xd8, 0x32, + 0x06, 0x01, 0xd9, 0x33, 0x06, 0x41, 0xd0, 0x23, 0x06, 0x01, 0xd1, 0x24, + 0x06, 0x01, 0xd4, 0x25, 0x06, 0x01, 0xd5, 0x26, 0x06, 0x01, 0xd6, 0x27, + 0x06, 0x01, 0xd7, 0x28, 0x06, 0x01, 0xd8, 0x29, 0x06, 0x01, 0xd9, 0x2a, + 0x06, 0x41, 0xd0, 0x1d, 0x06, 0x01, 0xd1, 0x1e, 0x06, 0x01, 0xd4, 0x1f, + 0x06, 0x01, 0xd7, 0x20, 0x06, 0x01, 0xd8, 0x21, 0x06, 0x01, 0xd9, 0x22, + 0x06, 0x41, 0xd0, 0x0e, 0x06, 0x01, 0xd1, 0x0f, 0x06, 0x81, 0x2a, 0xd2, + 0x12, 0x06, 0x81, 0x1d, 0xd3, 0x15, 0x06, 0x81, 0x14, 0xd4, 0x17, 0x06, + 0x01, 0xd6, 0x18, 0x06, 0x01, 0xd7, 0x19, 0x06, 0x01, 0xd8, 0x1a, 0x06, + 0x01, 0xd9, 0x1c, 0x06, 0x41, 0xed, 0x16, 0x06, 0x41, 0xe6, 0x13, 0x06, + 0x01, 0xed, 0x14, 0x06, 0x41, 0xe6, 0x10, 0x06, 0x01, 0xed, 0x11, 0x06, + 0x41, 0xd0, 0x09, 0x06, 0x01, 0xd1, 0x0a, 0x06, 0x01, 0xd3, 0x0b, 0x06, + 0x01, 0xd6, 0x0c, 0x06, 0x01, 0xd7, 0x0d, 0x06, 0x41, 0xd1, 0x00, 0x06, + 0x01, 0xd2, 0x01, 0x06, 0x01, 0xd3, 0x02, 0x06, 0x01, 0xd4, 0x03, 0x06, + 0x01, 0xd5, 0x04, 0x06, 0x01, 0xd6, 0x05, 0x06, 0x01, 0xd7, 0x06, 0x06, + 0x01, 0xd8, 0x07, 0x06, 0x01, 0xd9, 0x08, 0x06, 0x41, 0xd0, 0x60, 0x07, + 0x01, 0xd1, 0x61, 0x07, 0x01, 0xd2, 0x62, 0x07, 0x01, 0xd3, 0x63, 0x07, + 0x01, 0xd4, 0x64, 0x07, 0x01, 0xd5, 0x65, 0x07, 0x01, 0xd6, 0x66, 0x07, + 0x01, 0xd7, 0x67, 0x07, 0x41, 0x90, 0x38, 0x91, 0x0c, 0x47, 0x14, 0xce, + 0x54, 0x07, 0x01, 0x45, 0xd1, 0xe2, 0x55, 0x07, 0x41, 0x43, 0xba, 0x57, + 0x4d, 0x07, 0x01, 0x43, 0x80, 0xf3, 0x4e, 0x07, 0x01, 0x43, 0x6d, 0xed, + 0x4f, 0x07, 0x01, 0x47, 0x30, 0xce, 0x50, 0x07, 0x01, 0x45, 0xd6, 0xe2, + 0x51, 0x07, 0x01, 0x44, 0xdd, 0xed, 0x52, 0x07, 0x01, 0x44, 0x61, 0xee, + 0x53, 0x07, 0x41, 0x43, 0xff, 0xcd, 0x40, 0x07, 0x01, 0x43, 0x49, 0xed, + 0x41, 0x07, 0x01, 0x43, 0xa1, 0xf3, 0x42, 0x07, 0x01, 0x43, 0xb0, 0xf3, + 0x43, 0x07, 0x01, 0x43, 0xe5, 0xed, 0x44, 0x07, 0x01, 0x43, 0x08, 0xd9, + 0x45, 0x07, 0x01, 0x43, 0x62, 0xe3, 0x46, 0x07, 0x01, 0x43, 0x08, 0xc3, + 0x47, 0x07, 0x01, 0x99, 0x01, 0xff, 0x42, 0x73, 0x00, 0x48, 0x07, 0x01, + 0x8d, 0x01, 0xff, 0x44, 0x51, 0xed, 0x49, 0x07, 0x01, 0x44, 0x85, 0xed, + 0x4a, 0x07, 0x01, 0x44, 0xb5, 0xed, 0x4b, 0x07, 0x01, 0x44, 0x39, 0xee, + 0x4c, 0x07, 0x41, 0x90, 0xbe, 0x01, 0x91, 0x93, 0x01, 0x92, 0x6d, 0x93, + 0x5f, 0x94, 0x3d, 0x95, 0x17, 0x96, 0x01, 0xff, 0xd0, 0x32, 0x07, 0x01, + 0xd1, 0x33, 0x07, 0x01, 0xd2, 0x34, 0x07, 0x01, 0xd3, 0x35, 0x07, 0x01, + 0xd4, 0x36, 0x07, 0x41, 0xd1, 0x29, 0x07, 0x01, 0xd2, 0x2a, 0x07, 0x01, + 0xd3, 0x2b, 0x07, 0x01, 0xd4, 0x2c, 0x07, 0x01, 0xd5, 0x2d, 0x07, 0x01, + 0xd6, 0x2e, 0x07, 0x01, 0xd7, 0x2f, 0x07, 0x01, 0xd8, 0x30, 0x07, 0x01, + 0xd9, 0x31, 0x07, 0x41, 0xd0, 0x21, 0x07, 0x01, 0xd2, 0x22, 0x07, 0x01, + 0xd3, 0x23, 0x07, 0x01, 0xd4, 0x24, 0x07, 0x01, 0xd5, 0x25, 0x07, 0x01, + 0xd6, 0x26, 0x07, 0x01, 0xd8, 0x27, 0x07, 0x01, 0xd9, 0x28, 0x07, 0x41, + 0xd4, 0x1e, 0x07, 0x01, 0xd7, 0x1f, 0x07, 0x01, 0xd8, 0x20, 0x07, 0x41, + 0xd0, 0x15, 0x07, 0x01, 0xd1, 0x16, 0x07, 0x01, 0xd2, 0x17, 0x07, 0x01, + 0xd3, 0x18, 0x07, 0x01, 0xd4, 0x19, 0x07, 0x01, 0xd6, 0x1a, 0x07, 0x01, + 0xd7, 0x1b, 0x07, 0x01, 0xd8, 0x1c, 0x07, 0x01, 0xd9, 0x1d, 0x07, 0x41, + 0xd0, 0x0b, 0x07, 0x01, 0xd1, 0x0c, 0x07, 0x01, 0xd2, 0x0d, 0x07, 0x01, + 0xd3, 0x0e, 0x07, 0x01, 0xd4, 0x0f, 0x07, 0x01, 0xd5, 0x10, 0x07, 0x01, + 0xd6, 0x11, 0x07, 0x01, 0xd7, 0x12, 0x07, 0x01, 0xd8, 0x13, 0x07, 0x01, + 0xd9, 0x14, 0x07, 0x41, 0xd0, 0x03, 0x07, 0x01, 0xd1, 0x04, 0x07, 0x01, + 0xd2, 0x05, 0x07, 0x01, 0xd3, 0x06, 0x07, 0x01, 0xd4, 0x07, 0x07, 0x01, + 0xd6, 0x08, 0x07, 0x01, 0xd8, 0x09, 0x07, 0x01, 0xd9, 0x0a, 0x07, 0x41, + 0x90, 0xb8, 0x02, 0x91, 0x9d, 0x02, 0x92, 0xf6, 0x01, 0x93, 0xcf, 0x01, + 0x94, 0xb0, 0x01, 0x95, 0x89, 0x01, 0x96, 0x6f, 0x97, 0x45, 0x98, 0x1b, + 0x99, 0x01, 0xff, 0xd1, 0xfd, 0x06, 0x01, 0xd2, 0xfe, 0x06, 0x01, 0xd4, + 0xff, 0x06, 0x01, 0xd5, 0x00, 0x07, 0x01, 0xd6, 0x01, 0x07, 0x01, 0xd8, + 0x02, 0x07, 0x41, 0xd0, 0xf3, 0x06, 0x01, 0xd1, 0xf4, 0x06, 0x01, 0xd2, + 0xf5, 0x06, 0x01, 0xd3, 0xf6, 0x06, 0x01, 0xd4, 0xf7, 0x06, 0x01, 0xd5, + 0xf8, 0x06, 0x01, 0xd6, 0xf9, 0x06, 0x01, 0xd7, 0xfa, 0x06, 0x01, 0xd8, + 0xfb, 0x06, 0x01, 0xd9, 0xfc, 0x06, 0x41, 0xd0, 0xe9, 0x06, 0x01, 0xd1, + 0xea, 0x06, 0x01, 0xd2, 0xeb, 0x06, 0x01, 0xd3, 0xec, 0x06, 0x01, 0xd4, + 0xed, 0x06, 0x01, 0xd5, 0xee, 0x06, 0x01, 0xd6, 0xef, 0x06, 0x01, 0xd7, + 0xf0, 0x06, 0x01, 0xd8, 0xf1, 0x06, 0x01, 0xd9, 0xf2, 0x06, 0x41, 0xd3, + 0xe3, 0x06, 0x01, 0xd4, 0xe4, 0x06, 0x01, 0xd5, 0xe5, 0x06, 0x01, 0xd6, + 0xe6, 0x06, 0x01, 0xd8, 0xe7, 0x06, 0x01, 0xd9, 0xe8, 0x06, 0x41, 0xd0, + 0xda, 0x06, 0x01, 0xd1, 0xdb, 0x06, 0x01, 0xd2, 0xdc, 0x06, 0x01, 0xd3, + 0xdd, 0x06, 0x01, 0xd4, 0xde, 0x06, 0x01, 0xd5, 0xdf, 0x06, 0x01, 0xd6, + 0xe0, 0x06, 0x01, 0xd7, 0xe1, 0x06, 0x01, 0xd9, 0xe2, 0x06, 0x41, 0xd0, + 0xd3, 0x06, 0x01, 0xd1, 0xd4, 0x06, 0x01, 0xd2, 0xd5, 0x06, 0x01, 0xd5, + 0xd6, 0x06, 0x01, 0xd7, 0xd7, 0x06, 0x01, 0xd8, 0xd8, 0x06, 0x01, 0xd9, + 0xd9, 0x06, 0x41, 0xd0, 0xca, 0x06, 0x01, 0xd1, 0xcb, 0x06, 0x01, 0xd2, + 0xcc, 0x06, 0x01, 0xd4, 0xcd, 0x06, 0x01, 0xd5, 0xce, 0x06, 0x01, 0xd6, + 0xcf, 0x06, 0x01, 0xd7, 0xd0, 0x06, 0x01, 0xd8, 0xd1, 0x06, 0x01, 0xd9, + 0xd2, 0x06, 0x41, 0xd0, 0xc1, 0x06, 0x01, 0xd1, 0xc2, 0x06, 0x01, 0xd3, + 0xc3, 0x06, 0x01, 0xd4, 0xc4, 0x06, 0x01, 0xd5, 0xc5, 0x06, 0x01, 0xd6, + 0xc6, 0x06, 0x01, 0xd7, 0xc7, 0x06, 0x01, 0xd8, 0xc8, 0x06, 0x01, 0xd9, + 0xc9, 0x06, 0x41, 0xd0, 0xbb, 0x06, 0x01, 0xd1, 0xbc, 0x06, 0x01, 0xd2, + 0xbd, 0x06, 0x01, 0xd3, 0xbe, 0x06, 0x01, 0xd5, 0xbf, 0x06, 0x01, 0xd6, + 0xc0, 0x06, 0x41, 0xd1, 0xb3, 0x06, 0x01, 0xd2, 0xb4, 0x06, 0x01, 0xd3, + 0xb5, 0x06, 0x01, 0xd4, 0xb6, 0x06, 0x01, 0xd5, 0xb7, 0x06, 0x01, 0xd6, + 0xb8, 0x06, 0x01, 0xd8, 0xb9, 0x06, 0x01, 0xd9, 0xba, 0x06, 0x41, 0x90, + 0x39, 0x91, 0x01, 0xff, 0x45, 0x2c, 0xe2, 0xaa, 0x06, 0x01, 0x45, 0x54, + 0xe2, 0xab, 0x06, 0x01, 0x45, 0x9f, 0xe2, 0xac, 0x06, 0x01, 0x45, 0xcc, + 0xe2, 0xad, 0x06, 0x01, 0x45, 0x12, 0xe3, 0xae, 0x06, 0x01, 0x45, 0x26, + 0xe3, 0xaf, 0x06, 0x01, 0x45, 0x4e, 0xe3, 0xb0, 0x06, 0x01, 0x45, 0x7b, + 0xe3, 0xb1, 0x06, 0x01, 0x45, 0xa8, 0xe3, 0xb2, 0x06, 0x41, 0x45, 0x2c, + 0xe2, 0xa0, 0x06, 0x01, 0x45, 0x54, 0xe2, 0xa1, 0x06, 0x01, 0x45, 0x9f, + 0xe2, 0xa2, 0x06, 0x01, 0x45, 0xcc, 0xe2, 0xa3, 0x06, 0x01, 0x45, 0x12, + 0xe3, 0xa4, 0x06, 0x01, 0x45, 0x26, 0xe3, 0xa5, 0x06, 0x01, 0x45, 0x4e, + 0xe3, 0xa6, 0x06, 0x01, 0x45, 0x7b, 0xe3, 0xa7, 0x06, 0x01, 0x45, 0xa8, + 0xe3, 0xa8, 0x06, 0x01, 0x45, 0xe9, 0xe3, 0xa9, 0x06, 0x41, 0x90, 0x94, + 0x02, 0x91, 0xdf, 0x01, 0x92, 0xb4, 0x01, 0x93, 0x89, 0x01, 0x94, 0x5f, + 0x95, 0x35, 0x96, 0x0b, 0x97, 0x01, 0xff, 0xd0, 0x9e, 0x06, 0x01, 0xd1, + 0x9f, 0x06, 0x41, 0xd0, 0x94, 0x06, 0x01, 0xd1, 0x95, 0x06, 0x01, 0xd2, + 0x96, 0x06, 0x01, 0xd3, 0x97, 0x06, 0x01, 0xd4, 0x98, 0x06, 0x01, 0xd5, + 0x99, 0x06, 0x01, 0xd6, 0x9a, 0x06, 0x01, 0xd7, 0x9b, 0x06, 0x01, 0xd8, + 0x9c, 0x06, 0x01, 0xd9, 0x9d, 0x06, 0x41, 0xd0, 0x8a, 0x06, 0x01, 0xd1, + 0x8b, 0x06, 0x01, 0xd2, 0x8c, 0x06, 0x01, 0xd3, 0x8d, 0x06, 0x01, 0xd4, + 0x8e, 0x06, 0x01, 0xd5, 0x8f, 0x06, 0x01, 0xd6, 0x90, 0x06, 0x01, 0xd7, + 0x91, 0x06, 0x01, 0xd8, 0x92, 0x06, 0x01, 0xd9, 0x93, 0x06, 0x41, 0xd0, + 0x80, 0x06, 0x01, 0xd1, 0x81, 0x06, 0x01, 0xd2, 0x82, 0x06, 0x01, 0xd3, + 0x83, 0x06, 0x01, 0xd4, 0x84, 0x06, 0x01, 0xd5, 0x85, 0x06, 0x01, 0xd6, + 0x86, 0x06, 0x01, 0xd7, 0x87, 0x06, 0x01, 0xd8, 0x88, 0x06, 0x01, 0xd9, + 0x89, 0x06, 0x41, 0xd0, 0x76, 0x06, 0x01, 0xd1, 0x77, 0x06, 0x01, 0xd2, + 0x78, 0x06, 0x01, 0xd3, 0x79, 0x06, 0x01, 0xd4, 0x7a, 0x06, 0x01, 0xd5, + 0x7b, 0x06, 0x01, 0xd6, 0x7c, 0x06, 0x01, 0xd7, 0x7d, 0x06, 0x01, 0xd8, + 0x7e, 0x06, 0x01, 0xd9, 0x7f, 0x06, 0x41, 0xd0, 0x6c, 0x06, 0x01, 0xd1, + 0x6d, 0x06, 0x01, 0xd2, 0x6e, 0x06, 0x01, 0xd3, 0x6f, 0x06, 0x01, 0xd4, + 0x70, 0x06, 0x01, 0xd5, 0x71, 0x06, 0x01, 0xd6, 0x72, 0x06, 0x01, 0xd7, + 0x73, 0x06, 0x01, 0xd8, 0x74, 0x06, 0x01, 0xd9, 0x75, 0x06, 0x41, 0xd0, + 0x60, 0x06, 0x01, 0xd1, 0x61, 0x06, 0x01, 0xd2, 0x62, 0x06, 0x01, 0x93, + 0x18, 0xd4, 0x66, 0x06, 0x01, 0xd5, 0x67, 0x06, 0x01, 0xd6, 0x68, 0x06, + 0x01, 0xd7, 0x69, 0x06, 0x01, 0xd8, 0x6a, 0x06, 0x01, 0xd9, 0x6b, 0x06, + 0x41, 0xe1, 0x63, 0x06, 0x01, 0xe2, 0x64, 0x06, 0x01, 0xe3, 0x65, 0x06, + 0x41, 0xd1, 0x55, 0x06, 0x01, 0xd2, 0x56, 0x06, 0x01, 0xd3, 0x57, 0x06, + 0x01, 0xd4, 0x58, 0x06, 0x01, 0xd5, 0x59, 0x06, 0x01, 0xd6, 0x5a, 0x06, + 0x01, 0xd7, 0x5b, 0x06, 0x01, 0xd8, 0x5c, 0x06, 0x01, 0x99, 0x01, 0xff, + 0xe1, 0x5d, 0x06, 0x01, 0xe2, 0x5e, 0x06, 0x01, 0xe3, 0x5f, 0x06, 0x41, + 0x46, 0x8a, 0xd8, 0x47, 0x06, 0x01, 0x43, 0x98, 0xf3, 0x4a, 0x06, 0x01, + 0x43, 0xad, 0xf3, 0x4f, 0x06, 0x41, 0x44, 0xd3, 0x20, 0x0a, 0x00, 0x00, + 0x0c, 0x3f, 0x90, 0x13, 0x49, 0xd8, 0x20, 0x28, 0x20, 0x00, 0x4a, 0xe3, + 0x3b, 0x0b, 0x00, 0xc0, 0x00, 0x44, 0x66, 0xb8, 0x8a, 0x00, 0x40, 0x56, + 0xd1, 0x35, 0x14, 0x2a, 0x00, 0x05, 0x51, 0x00, 0x01, 0xff, 0x5c, 0xf6, + 0x18, 0x12, 0x2a, 0x00, 0x5d, 0x8a, 0x16, 0x13, 0x2a, 0x40, 0x03, 0x85, + 0xc9, 0x06, 0x53, 0xae, 0x4a, 0xcf, 0x32, 0x40, 0x06, 0xef, 0x06, 0xec, + 0x02, 0x50, 0xad, 0x00, 0x44, 0x19, 0x00, 0x07, 0xec, 0x05, 0xab, 0x01, + 0x4d, 0xa6, 0x34, 0x45, 0x19, 0x00, 0xb3, 0x36, 0x05, 0x3c, 0x39, 0x01, + 0xff, 0x06, 0x59, 0x03, 0x06, 0x4f, 0x23, 0x6a, 0x00, 0x19, 0x40, 0xe1, + 0x20, 0x19, 0x80, 0x1a, 0xe5, 0x27, 0x19, 0x80, 0x11, 0xe9, 0x21, 0x19, + 0x00, 0xef, 0x28, 0x19, 0x80, 0x04, 0xf5, 0x22, 0x19, 0x40, 0xef, 0x25, + 0x19, 0x40, 0xe5, 0x23, 0x19, 0x40, 0xe9, 0x24, 0x19, 0x00, 0xf5, 0x26, + 0x19, 0x40, 0x04, 0x5b, 0x03, 0x51, 0x0c, 0x77, 0x08, 0x17, 0x10, 0xd6, + 0x67, 0x01, 0xff, 0x42, 0x71, 0x00, 0x2a, 0x19, 0x00, 0x42, 0xa9, 0x01, + 0x2b, 0x19, 0x00, 0x42, 0xbc, 0x22, 0x29, 0x19, 0x40, 0x48, 0x3c, 0x16, + 0x32, 0x19, 0x00, 0x42, 0x1b, 0x02, 0x30, 0x19, 0x00, 0x42, 0x74, 0x00, + 0x38, 0x19, 0x00, 0x42, 0x6c, 0x00, 0x36, 0x19, 0x00, 0xae, 0x12, 0x42, + 0xbb, 0x09, 0x35, 0x19, 0x00, 0x42, 0x71, 0x00, 0x37, 0x19, 0x00, 0x42, + 0x12, 0x00, 0x33, 0x19, 0x40, 0xe1, 0x34, 0x19, 0x00, 0x42, 0x24, 0x02, + 0x31, 0x19, 0x40, 0x49, 0x04, 0xbb, 0x3a, 0x19, 0x00, 0x43, 0xd0, 0x1c, + 0x40, 0x19, 0x00, 0x49, 0x1b, 0xbc, 0x39, 0x19, 0x00, 0x44, 0x85, 0xf2, + 0x3b, 0x19, 0x40, 0xa2, 0xa9, 0x01, 0xa3, 0x9c, 0x01, 0xa4, 0x8f, 0x01, + 0xa7, 0x7d, 0x42, 0x22, 0x00, 0x1c, 0x19, 0x00, 0xaa, 0x6b, 0xab, 0x5f, + 0x42, 0x74, 0x00, 0x17, 0x19, 0x00, 0x42, 0x6c, 0x00, 0x14, 0x19, 0x00, + 0xae, 0x47, 0xb0, 0x3b, 0x42, 0x71, 0x00, 0x16, 0x19, 0x00, 0xb3, 0x23, + 0xb4, 0x11, 0x42, 0xa9, 0x01, 0x18, 0x19, 0x00, 0x42, 0xbc, 0x22, 0x15, + 0x19, 0xc0, 0x00, 0xee, 0x0a, 0x19, 0x40, 0xe1, 0x0b, 0x19, 0x00, 0x42, + 0x22, 0x00, 0x0c, 0x19, 0x00, 0x42, 0x71, 0x00, 0x1e, 0x19, 0x40, 0xe1, + 0x1b, 0x19, 0x00, 0x42, 0x22, 0x00, 0x19, 0x19, 0x00, 0x42, 0x40, 0x06, + 0x1a, 0x19, 0x40, 0xe1, 0x10, 0x19, 0x00, 0x42, 0x22, 0x00, 0x11, 0x19, + 0x40, 0xe1, 0x0f, 0x19, 0x00, 0x42, 0x24, 0x02, 0x05, 0x19, 0x40, 0xe1, + 0x01, 0x19, 0x00, 0x42, 0x22, 0x00, 0x02, 0x19, 0x40, 0xe1, 0x08, 0x19, + 0x00, 0x42, 0x22, 0x00, 0x09, 0x19, 0x40, 0xe1, 0x03, 0x19, 0x00, 0x42, + 0x22, 0x00, 0x04, 0x19, 0x00, 0x43, 0xb8, 0x35, 0x1d, 0x19, 0x40, 0xe1, + 0x0d, 0x19, 0x00, 0x42, 0x22, 0x00, 0x0e, 0x19, 0x40, 0xe1, 0x06, 0x19, + 0x00, 0x42, 0x22, 0x00, 0x07, 0x19, 0x40, 0xe1, 0x12, 0x19, 0x00, 0x42, + 0x22, 0x00, 0x13, 0x19, 0x40, 0x45, 0x12, 0x0b, 0x4e, 0x19, 0x00, 0xa6, + 0x2e, 0x44, 0xcf, 0x2a, 0x4f, 0x19, 0x00, 0x43, 0x0e, 0x0b, 0x47, 0x19, + 0x00, 0xb3, 0x14, 0xb4, 0x06, 0x44, 0x43, 0x1e, 0x46, 0x19, 0x40, 0x44, + 0x25, 0x01, 0x49, 0x19, 0x00, 0x42, 0x15, 0x02, 0x48, 0x19, 0x40, 0x44, + 0xc9, 0x1d, 0x4d, 0x19, 0x00, 0x42, 0x01, 0x26, 0x4c, 0x19, 0x40, 0x43, + 0xd2, 0x05, 0x4b, 0x19, 0x00, 0x43, 0xf6, 0x06, 0x4a, 0x19, 0x40, 0x56, + 0x18, 0x29, 0x72, 0xf6, 0x01, 0x02, 0xcb, 0x00, 0x01, 0xff, 0x80, 0x14, + 0x44, 0x58, 0x07, 0x07, 0x26, 0xc0, 0x00, 0x45, 0xd7, 0xe1, 0xf2, 0xf5, + 0xc1, 0x00, 0x47, 0x75, 0x7c, 0xf1, 0xf5, 0x41, 0x4a, 0x49, 0xa8, 0x75, + 0xfa, 0x01, 0x4a, 0xa3, 0xa8, 0xf8, 0xf5, 0x01, 0x55, 0xc7, 0x3a, 0xbb, + 0xf7, 0x01, 0xa6, 0x48, 0x4b, 0x1b, 0x61, 0xa2, 0xf7, 0x01, 0x64, 0x73, + 0x09, 0x72, 0x27, 0x00, 0xb2, 0x2e, 0xb3, 0x1a, 0xb4, 0x0c, 0x4c, 0x32, + 0x00, 0x58, 0x27, 0x00, 0x4c, 0xf2, 0x1f, 0x8e, 0xf7, 0x41, 0x57, 0xb4, + 0x2e, 0xc0, 0xf7, 0x01, 0x58, 0xe6, 0x2b, 0xd2, 0xf7, 0x41, 0x46, 0x13, + 0x19, 0xa9, 0xf7, 0x01, 0x44, 0x4c, 0x04, 0x91, 0x25, 0x00, 0x52, 0xff, + 0x52, 0xb5, 0xf7, 0x41, 0x43, 0x90, 0x17, 0x88, 0xf6, 0x01, 0x64, 0x4f, + 0x09, 0x73, 0x27, 0x40, 0x04, 0xd2, 0x05, 0x11, 0x12, 0x00, 0x16, 0x01, + 0xff, 0x44, 0x12, 0x16, 0xcc, 0x2b, 0x00, 0x44, 0x31, 0x13, 0xc4, 0xf7, + 0x41, 0x52, 0xec, 0x2b, 0xc9, 0xf7, 0x01, 0x4f, 0xd5, 0x1c, 0xaf, 0xf7, + 0x41, 0x02, 0x44, 0x14, 0xc0, 0x15, 0x44, 0x89, 0xef, 0xd2, 0xf4, 0x01, + 0x02, 0xc5, 0x00, 0xcc, 0x05, 0xe7, 0xb5, 0xf9, 0x01, 0x43, 0xc3, 0x07, + 0x4b, 0xf3, 0x01, 0xef, 0x4c, 0x26, 0x80, 0xb6, 0x05, 0x05, 0xc5, 0xe9, + 0xda, 0x01, 0x08, 0xee, 0x00, 0x0c, 0x47, 0xb8, 0xd6, 0xd0, 0xce, 0x01, + 0x4a, 0x39, 0xb3, 0x9a, 0xf3, 0x41, 0xa1, 0x87, 0x01, 0x0b, 0xcb, 0x39, + 0x77, 0x4f, 0xc7, 0x6b, 0xa6, 0x2a, 0x80, 0x6a, 0x58, 0x86, 0x28, 0xda, + 0x22, 0x00, 0xaf, 0x1d, 0x44, 0x5a, 0x03, 0x3c, 0x00, 0x00, 0x05, 0x51, + 0x00, 0x01, 0xff, 0x4d, 0x73, 0x81, 0x79, 0x2a, 0x00, 0x43, 0x23, 0x0a, + 0xd6, 0x22, 0x00, 0x53, 0x50, 0x4c, 0x7b, 0x2a, 0x40, 0x02, 0x18, 0x00, + 0x06, 0x4c, 0xc3, 0x96, 0x66, 0x22, 0x40, 0x4b, 0xb0, 0x1e, 0x85, 0x2a, + 0x00, 0x03, 0x7b, 0x00, 0x25, 0x4c, 0x87, 0x00, 0x76, 0x22, 0x00, 0x50, + 0x36, 0x67, 0x7d, 0x2a, 0xc0, 0x00, 0x0a, 0x75, 0x3b, 0x01, 0xff, 0x45, + 0x5c, 0x00, 0x81, 0x2a, 0x80, 0x06, 0x46, 0xa7, 0x13, 0x7f, 0x2a, 0x40, + 0x46, 0xc7, 0x00, 0x83, 0x2a, 0x40, 0x45, 0xfb, 0x0c, 0x64, 0x22, 0x00, + 0x4a, 0xd6, 0x39, 0x72, 0x22, 0x40, 0x54, 0x93, 0x00, 0xa8, 0x2a, 0x40, + 0x45, 0xfb, 0x0c, 0x68, 0x22, 0x00, 0x4a, 0xd6, 0x39, 0xe6, 0x22, 0x40, + 0x05, 0x5d, 0x00, 0x11, 0x03, 0x1b, 0x00, 0x01, 0xff, 0x4f, 0xd1, 0x70, + 0x89, 0x2a, 0x00, 0x58, 0xf6, 0x2a, 0x87, 0x2a, 0x40, 0x64, 0xe3, 0x08, + 0x8b, 0x2a, 0x00, 0x64, 0x07, 0x09, 0x91, 0x2a, 0x00, 0x4f, 0x4d, 0x1a, + 0x76, 0x29, 0x00, 0xb3, 0x01, 0xff, 0x07, 0xf6, 0xd1, 0x06, 0x73, 0x74, + 0x00, 0x93, 0x2a, 0x40, 0x52, 0x81, 0x00, 0x8f, 0x2a, 0x00, 0x48, 0xf3, + 0x28, 0x8d, 0x2a, 0x40, 0x0f, 0x3d, 0x33, 0xa8, 0x03, 0x06, 0xef, 0x06, + 0xe1, 0x02, 0x07, 0xec, 0x05, 0x6e, 0x0c, 0x6d, 0x16, 0x48, 0xb3, 0x25, + 0x0b, 0x40, 0x77, 0x01, 0xff, 0x42, 0x80, 0x12, 0x26, 0x1c, 0x00, 0xe5, + 0x2c, 0x1c, 0x00, 0xe9, 0x27, 0x1c, 0x00, 0xef, 0x28, 0x1c, 0x80, 0x09, + 0xf5, 0x2a, 0x1c, 0xc0, 0x00, 0xf5, 0x2b, 0x1c, 0x40, 0xef, 0x29, 0x1c, + 0x40, 0x04, 0x5b, 0x03, 0x11, 0x10, 0xd6, 0x67, 0x01, 0xff, 0x42, 0x71, + 0x00, 0x25, 0x1c, 0x00, 0x42, 0xbc, 0x22, 0x24, 0x1c, 0x40, 0x45, 0x3f, + 0x3f, 0x37, 0x1c, 0x00, 0x43, 0x4f, 0x03, 0x36, 0x1c, 0x40, 0x46, 0x27, + 0xcd, 0x3d, 0x1c, 0x00, 0x52, 0xfb, 0x53, 0x3c, 0x1c, 0x00, 0xb4, 0x01, + 0xff, 0x45, 0x08, 0x54, 0x3b, 0x1c, 0x00, 0x45, 0xec, 0xea, 0x3f, 0x1c, + 0xc0, 0x00, 0x47, 0x26, 0xcd, 0x3e, 0x1c, 0x40, 0xe1, 0x23, 0x1c, 0x00, + 0xa2, 0xde, 0x01, 0xa3, 0xd1, 0x01, 0xa4, 0xbe, 0x01, 0xa6, 0xb1, 0x01, + 0xa7, 0xa4, 0x01, 0xa8, 0x97, 0x01, 0x42, 0x56, 0x19, 0x08, 0x1c, 0x00, + 0xab, 0x7f, 0x42, 0x74, 0x00, 0x1c, 0x1c, 0x00, 0xad, 0x6d, 0xae, 0x5b, + 0xb0, 0x49, 0x42, 0x71, 0x00, 0x1b, 0x1c, 0x00, 0xb3, 0x37, 0xb4, 0x12, + 0x42, 0xf5, 0x0a, 0x1f, 0x1c, 0x00, 0x42, 0xa9, 0x01, 0x22, 0x1c, 0x00, + 0x42, 0xbc, 0x22, 0x1a, 0x1c, 0x40, 0xe1, 0x0a, 0x1c, 0x00, 0x42, 0x22, + 0x00, 0x0b, 0x1c, 0x00, 0xb3, 0x0d, 0xb4, 0x01, 0xff, 0xe1, 0x4d, 0x1c, + 0x00, 0x42, 0x22, 0x00, 0x4e, 0x1c, 0x40, 0xe1, 0x17, 0x1c, 0x00, 0x42, + 0x22, 0x00, 0x18, 0x1c, 0x40, 0xe1, 0x20, 0x1c, 0x00, 0x42, 0x22, 0x00, + 0x21, 0x1c, 0x40, 0xe1, 0x0e, 0x1c, 0x00, 0x42, 0x22, 0x00, 0x10, 0x1c, + 0x00, 0x42, 0x74, 0x00, 0x0f, 0x1c, 0x40, 0xe1, 0x0d, 0x1c, 0x00, 0x42, + 0x24, 0x02, 0x05, 0x1c, 0x00, 0x42, 0xbc, 0x22, 0x09, 0x1c, 0x40, 0xe1, + 0x15, 0x1c, 0x00, 0x42, 0x74, 0x00, 0x16, 0x1c, 0x40, 0xe1, 0x00, 0x1c, + 0x00, 0x42, 0x22, 0x00, 0x02, 0x1c, 0x00, 0x42, 0x74, 0x00, 0x01, 0x1c, + 0x40, 0xe1, 0x1d, 0x1c, 0x00, 0x42, 0x74, 0x00, 0x1e, 0x1c, 0x40, 0xe1, + 0x03, 0x1c, 0x00, 0x42, 0x74, 0x00, 0x04, 0x1c, 0x40, 0xe1, 0x11, 0x1c, + 0x00, 0x42, 0x74, 0x00, 0x12, 0x1c, 0x40, 0xe1, 0x0c, 0x1c, 0x00, 0x42, + 0xf0, 0x10, 0x4f, 0x1c, 0x00, 0x42, 0x59, 0x00, 0x19, 0x1c, 0x40, 0xe1, + 0x06, 0x1c, 0x00, 0x42, 0x22, 0x00, 0x07, 0x1c, 0x40, 0xe1, 0x13, 0x1c, + 0x00, 0x42, 0x74, 0x00, 0x14, 0x1c, 0x40, 0x45, 0x12, 0x0b, 0x48, 0x1c, + 0x00, 0xa6, 0x2e, 0x44, 0xcf, 0x2a, 0x49, 0x1c, 0x00, 0x43, 0x0e, 0x0b, + 0x41, 0x1c, 0x00, 0xb3, 0x14, 0xb4, 0x06, 0x44, 0x43, 0x1e, 0x40, 0x1c, + 0x40, 0x44, 0x25, 0x01, 0x43, 0x1c, 0x00, 0x42, 0x15, 0x02, 0x42, 0x1c, + 0x40, 0x44, 0xc9, 0x1d, 0x47, 0x1c, 0x00, 0x42, 0x01, 0x26, 0x46, 0x1c, + 0x40, 0x43, 0xd2, 0x05, 0x45, 0x1c, 0x00, 0x43, 0xf6, 0x06, 0x44, 0x1c, + 0x40, 0xeb, 0x2d, 0x1c, 0x80, 0x1f, 0xec, 0x2f, 0x1c, 0x00, 0xed, 0x2e, + 0x1c, 0x00, 0xee, 0x30, 0x1c, 0x80, 0x0c, 0xf0, 0x31, 0x1c, 0x00, 0xf2, + 0x32, 0x1c, 0x00, 0xf4, 0x33, 0x1c, 0x40, 0x46, 0x78, 0xe1, 0x34, 0x1c, + 0x40, 0x43, 0x1c, 0x01, 0x35, 0x1c, 0x40, 0x44, 0xf9, 0xf1, 0x06, 0xf4, + 0x41, 0x80, 0xaf, 0x08, 0x8d, 0xcc, 0x06, 0x06, 0xa9, 0x01, 0x01, 0xff, + 0x45, 0xce, 0x00, 0x90, 0x21, 0x80, 0xb1, 0x04, 0xa2, 0x92, 0x04, 0x50, + 0x86, 0x61, 0x3c, 0xf8, 0x01, 0xa4, 0xd2, 0x03, 0xa6, 0xc3, 0x03, 0xa8, + 0xc2, 0x02, 0x57, 0x6c, 0x2f, 0xa4, 0xf8, 0x01, 0x51, 0xf9, 0x5c, 0xfd, + 0x21, 0x00, 0xb0, 0xa7, 0x02, 0x4f, 0x0c, 0x72, 0x45, 0x2b, 0x00, 0xb2, + 0x92, 0x02, 0xb3, 0xf8, 0x01, 0xb4, 0x16, 0xb7, 0x01, 0xff, 0x49, 0x72, + 0xb6, 0x9c, 0x21, 0x00, 0x4a, 0x4a, 0x10, 0xe6, 0x21, 0xc0, 0x00, 0x5a, + 0xc6, 0x1e, 0x94, 0xf8, 0x41, 0x55, 0x52, 0x3d, 0xa2, 0xf8, 0x01, 0x02, + 0x0d, 0x00, 0x51, 0x02, 0x15, 0x02, 0x01, 0xff, 0x4d, 0x85, 0x7f, 0x9e, + 0x21, 0x00, 0x08, 0x09, 0x02, 0x01, 0xff, 0x06, 0xce, 0x00, 0x06, 0x51, + 0x91, 0x5e, 0x37, 0x2b, 0x40, 0x48, 0x57, 0xb4, 0x36, 0x2b, 0x00, 0x05, + 0x51, 0x00, 0x01, 0xff, 0x56, 0x95, 0x33, 0x35, 0x2b, 0x00, 0xb4, 0x06, + 0x4f, 0x9c, 0x33, 0x34, 0x2b, 0x40, 0x43, 0x90, 0x17, 0x3b, 0x2b, 0x80, + 0x06, 0x52, 0x2f, 0x06, 0xec, 0x2b, 0x40, 0x06, 0x50, 0x00, 0x01, 0xff, + 0x56, 0x95, 0x33, 0x3d, 0x2b, 0x00, 0x4f, 0x9c, 0x33, 0x3c, 0x2b, 0x40, + 0x05, 0x04, 0x02, 0x11, 0x04, 0x6d, 0x1d, 0x01, 0xff, 0x45, 0xce, 0x00, + 0xda, 0x21, 0x00, 0x4a, 0x98, 0x5e, 0x0e, 0x29, 0x40, 0x4a, 0xe0, 0x01, + 0x90, 0xf8, 0x01, 0x08, 0x09, 0x02, 0x01, 0xff, 0x45, 0xce, 0x00, 0x60, + 0x2b, 0x80, 0x0c, 0x4c, 0xc3, 0x8d, 0x6a, 0x2b, 0x00, 0x4d, 0x64, 0x87, + 0x84, 0x2b, 0x40, 0x80, 0x01, 0xff, 0x65, 0x51, 0x08, 0x80, 0x2b, 0x00, + 0x46, 0xd1, 0x14, 0x70, 0x2b, 0x00, 0x05, 0x51, 0x00, 0x01, 0xff, 0x4a, + 0x53, 0xa8, 0x28, 0xf8, 0x01, 0x07, 0x3b, 0x01, 0x28, 0x4b, 0x6b, 0x68, + 0x2c, 0xf8, 0x01, 0x09, 0xaf, 0xbb, 0x12, 0x4c, 0xef, 0x91, 0x24, 0xf8, + 0x01, 0x4c, 0x5b, 0x92, 0x20, 0xf8, 0x01, 0x50, 0x66, 0x68, 0x30, 0xf8, + 0x41, 0x49, 0xa5, 0x01, 0xa6, 0x2b, 0x00, 0x47, 0x50, 0x02, 0xa4, 0x2b, + 0x40, 0x51, 0x47, 0x05, 0x7a, 0x2b, 0x00, 0x4f, 0x9c, 0x33, 0x7a, 0x2b, + 0x40, 0x4f, 0xe7, 0x66, 0x50, 0xf8, 0x01, 0x02, 0x7c, 0x00, 0x01, 0xff, + 0x4a, 0xe9, 0x93, 0x38, 0xf8, 0x01, 0x4b, 0x80, 0x7c, 0xdc, 0x21, 0x40, + 0x57, 0x10, 0x2f, 0xa6, 0xf8, 0x01, 0x45, 0x9d, 0xae, 0x6c, 0xf6, 0x41, + 0x4c, 0x65, 0x87, 0xc7, 0x21, 0x00, 0x4b, 0x84, 0xa4, 0xf7, 0xfa, 0x41, + 0xa1, 0x11, 0x05, 0x6e, 0x15, 0x01, 0xff, 0x45, 0xce, 0x00, 0x44, 0xf8, + 0x01, 0x50, 0x86, 0x61, 0x40, 0xf8, 0x41, 0x42, 0x1b, 0x00, 0xf2, 0xfa, + 0x01, 0x06, 0xcb, 0x02, 0x01, 0xff, 0x57, 0x0d, 0x30, 0xcb, 0x21, 0x00, + 0x0a, 0x98, 0x05, 0x01, 0xff, 0x04, 0xa5, 0x01, 0x31, 0x02, 0x50, 0x02, + 0x01, 0xff, 0x80, 0x06, 0x45, 0xa9, 0x01, 0xbc, 0x21, 0x40, 0x06, 0x5c, + 0x00, 0x0c, 0x48, 0x57, 0xb4, 0x5a, 0x29, 0x00, 0x46, 0xd1, 0x14, 0x52, + 0x29, 0x40, 0xac, 0x06, 0x5f, 0x8c, 0x11, 0x66, 0x29, 0x40, 0x5f, 0x48, + 0x06, 0x62, 0x29, 0x00, 0x48, 0x38, 0x6b, 0x6a, 0x29, 0x40, 0x80, 0x06, + 0x45, 0xa9, 0x01, 0xbd, 0x21, 0x40, 0x67, 0x7f, 0x05, 0x67, 0x29, 0x00, + 0x4f, 0x31, 0x6b, 0x6b, 0x29, 0x00, 0x48, 0x57, 0xb4, 0x5e, 0x29, 0x00, + 0x46, 0xd1, 0x14, 0x56, 0x29, 0x40, 0x50, 0xfd, 0x59, 0x34, 0xf8, 0x01, + 0x60, 0x34, 0x10, 0xaa, 0xf8, 0x41, 0x4b, 0xc4, 0x8d, 0xe0, 0x21, 0x00, + 0x06, 0x3c, 0x01, 0x01, 0xff, 0x45, 0xce, 0x00, 0xd0, 0x21, 0x80, 0x06, + 0x4a, 0x98, 0x5e, 0x0c, 0x29, 0x40, 0x80, 0x06, 0x45, 0x8e, 0x17, 0x1b, + 0x29, 0x40, 0x48, 0x57, 0xb4, 0x06, 0x29, 0x00, 0x05, 0x51, 0x00, 0x01, + 0xff, 0x46, 0x52, 0x05, 0xcd, 0x21, 0x00, 0x4f, 0x9c, 0x33, 0x02, 0x29, + 0x40, 0x5f, 0xb3, 0x10, 0xa8, 0xf8, 0x01, 0x05, 0x0d, 0x03, 0x06, 0x58, + 0x7e, 0x2a, 0xa0, 0xf8, 0x41, 0x45, 0xce, 0x00, 0x05, 0x2b, 0x00, 0x53, + 0xd3, 0x48, 0x88, 0x2b, 0x40, 0x80, 0x06, 0x45, 0x8e, 0x17, 0x19, 0x29, + 0x40, 0xa1, 0xd7, 0x01, 0x05, 0xaa, 0x05, 0xbf, 0x01, 0x55, 0xbb, 0x14, + 0xc6, 0x21, 0x00, 0xb4, 0x8a, 0x01, 0x05, 0x51, 0x00, 0x01, 0xff, 0x02, + 0x3b, 0x01, 0x75, 0x55, 0xd5, 0x01, 0x14, 0xf8, 0x01, 0x44, 0xac, 0x0e, + 0xa9, 0x21, 0x00, 0xac, 0x5b, 0x59, 0xe3, 0x24, 0x04, 0xf8, 0x01, 0x4c, + 0xd3, 0x92, 0x98, 0xf8, 0x01, 0x4a, 0x83, 0xaf, 0x46, 0x29, 0x00, 0xb3, + 0x31, 0xb4, 0x06, 0x4f, 0x9c, 0x33, 0xf7, 0x21, 0x40, 0x43, 0x90, 0x17, + 0xa2, 0x21, 0x80, 0x11, 0x03, 0x4a, 0x0c, 0x01, 0xff, 0x49, 0xa5, 0x01, + 0x10, 0x2b, 0x00, 0x47, 0x50, 0x02, 0x11, 0x2b, 0x40, 0x06, 0x50, 0x00, + 0x01, 0xff, 0x56, 0x95, 0x33, 0x3a, 0x2b, 0x00, 0x4f, 0x9c, 0x33, 0x39, + 0x2b, 0x40, 0x05, 0x5e, 0x07, 0x06, 0x45, 0x53, 0x05, 0x9a, 0x21, 0x40, + 0x55, 0xd5, 0x01, 0x10, 0xf8, 0x01, 0x52, 0x2e, 0x06, 0x00, 0xf8, 0x41, + 0x57, 0x77, 0x29, 0x08, 0xf8, 0x01, 0x43, 0xca, 0x4b, 0xab, 0x21, 0x40, + 0x49, 0x14, 0xc0, 0x38, 0x2b, 0x00, 0x54, 0x97, 0x33, 0xfa, 0x21, 0x40, + 0x07, 0x16, 0x2b, 0x18, 0x03, 0xd2, 0x14, 0x01, 0xff, 0x42, 0x17, 0x00, + 0xe4, 0x21, 0x80, 0x06, 0x4c, 0x59, 0x57, 0x1d, 0x29, 0x40, 0x5d, 0xba, + 0x14, 0xb9, 0x21, 0x40, 0x49, 0xec, 0x00, 0x77, 0x29, 0x00, 0x46, 0x99, + 0x12, 0x7a, 0x29, 0x00, 0xf8, 0x3e, 0x2b, 0x40, 0x43, 0x16, 0x00, 0xa4, + 0x21, 0x80, 0x06, 0x4f, 0x34, 0x0c, 0xc0, 0xf8, 0x41, 0x51, 0x54, 0x57, + 0x1f, 0x29, 0x40, 0x05, 0x5d, 0x00, 0x06, 0x63, 0xfb, 0x0a, 0xb5, 0xfb, + 0x41, 0x4f, 0xaa, 0x6a, 0x4a, 0x2b, 0x00, 0x08, 0x66, 0x72, 0x0c, 0x56, + 0x31, 0x37, 0x43, 0x29, 0x00, 0x4e, 0x78, 0x3e, 0x73, 0x29, 0x40, 0x4f, + 0xaa, 0x6a, 0x42, 0x2b, 0x00, 0x4e, 0x78, 0x3e, 0x4b, 0x2b, 0x40, 0x07, + 0x6f, 0x2e, 0x9c, 0x01, 0x5b, 0x85, 0x1b, 0xe6, 0x26, 0x00, 0x09, 0x9c, + 0x01, 0x2b, 0xb3, 0x1d, 0x09, 0x51, 0x44, 0x01, 0xff, 0x49, 0x58, 0xb8, + 0x2a, 0x20, 0x00, 0x47, 0x5f, 0x03, 0x66, 0x20, 0x00, 0x44, 0xb9, 0x00, + 0x0e, 0x20, 0x00, 0x48, 0xb0, 0xc9, 0x2d, 0x20, 0x40, 0x5c, 0xde, 0x17, + 0xaa, 0x27, 0x00, 0x5b, 0xbb, 0x1b, 0x39, 0x29, 0x40, 0xa1, 0x53, 0x54, + 0x68, 0x41, 0xfc, 0x29, 0x00, 0xa4, 0x3f, 0x4b, 0xaa, 0x9b, 0x78, 0xcc, + 0x01, 0x50, 0xf6, 0x64, 0x0d, 0xf5, 0x01, 0xb2, 0x0c, 0x4c, 0x73, 0x95, + 0x02, 0xcc, 0x01, 0x44, 0x75, 0xc7, 0x9e, 0xcc, 0x41, 0x49, 0x9a, 0xb5, + 0x97, 0xcc, 0x01, 0x44, 0xc5, 0xac, 0x65, 0xcc, 0x01, 0xaf, 0x01, 0xff, + 0x05, 0x66, 0x09, 0x06, 0x50, 0xb6, 0x64, 0xa2, 0xcc, 0x41, 0x47, 0x9c, + 0xcf, 0xa0, 0xcc, 0x01, 0x44, 0x11, 0x21, 0x56, 0xcc, 0x41, 0x44, 0x9d, + 0xf0, 0x0e, 0xcc, 0x01, 0x5a, 0xb8, 0x21, 0xab, 0x00, 0x40, 0x47, 0x12, + 0x34, 0xf9, 0xcd, 0x01, 0x4c, 0x3f, 0x0f, 0x29, 0x23, 0x00, 0x4a, 0x03, + 0xb2, 0x60, 0xcc, 0x41, 0x56, 0xe5, 0x32, 0x8e, 0x05, 0x00, 0x48, 0xf0, + 0xc3, 0x48, 0xcc, 0x01, 0x03, 0x2a, 0x5b, 0x20, 0xb3, 0x01, 0xff, 0x0f, + 0x77, 0x2e, 0x0d, 0x4a, 0x2f, 0xb3, 0xd6, 0x0f, 0xc0, 0x00, 0x4a, 0x26, + 0x59, 0xd8, 0x0f, 0x40, 0x4c, 0x7b, 0x8d, 0x74, 0xcc, 0x01, 0x4a, 0x3c, + 0x29, 0x70, 0xcc, 0x41, 0xe8, 0x92, 0xcc, 0x81, 0x04, 0xf4, 0x1b, 0xf9, + 0x41, 0x50, 0x36, 0x29, 0x94, 0xcc, 0x41, 0xa1, 0xbd, 0x06, 0xa2, 0x84, + 0x06, 0xa3, 0xd3, 0x05, 0x02, 0x3b, 0x01, 0xab, 0x05, 0xa6, 0x94, 0x05, + 0x02, 0x22, 0x00, 0x86, 0x04, 0x15, 0x6b, 0x3c, 0xf5, 0x03, 0xac, 0xe6, + 0x03, 0x48, 0x5f, 0x77, 0xdc, 0x27, 0x00, 0x60, 0xd4, 0x0f, 0xc9, 0x22, + 0x00, 0xaf, 0xbb, 0x03, 0x4b, 0xd8, 0x21, 0x28, 0x00, 0x80, 0x9e, 0x03, + 0xb2, 0xaa, 0x02, 0xb3, 0xb0, 0x01, 0xb4, 0x49, 0x0a, 0x32, 0x00, 0x39, + 0xb7, 0x01, 0xff, 0x05, 0xae, 0x02, 0x0c, 0x4b, 0xf4, 0x96, 0xd8, 0x29, + 0x00, 0x4b, 0x32, 0xa2, 0x8e, 0xf5, 0x41, 0xa3, 0x18, 0x52, 0x6c, 0x27, + 0x16, 0x30, 0x00, 0x4b, 0xd8, 0x21, 0x85, 0x29, 0x00, 0x4e, 0xc8, 0x26, + 0x1a, 0x30, 0x00, 0x56, 0x54, 0x09, 0x18, 0x30, 0x40, 0x4d, 0x35, 0x69, + 0x0e, 0x30, 0x00, 0x4c, 0x73, 0x0b, 0x83, 0x29, 0x40, 0x4d, 0x96, 0x80, + 0x20, 0x2e, 0x00, 0x47, 0x65, 0xd4, 0xb8, 0x23, 0x40, 0x43, 0x0e, 0x03, + 0xa3, 0x22, 0x00, 0xa8, 0x25, 0x55, 0x55, 0x09, 0x14, 0x30, 0x00, 0xb2, + 0x06, 0x4f, 0xeb, 0x74, 0xce, 0xfb, 0x41, 0x53, 0x15, 0x48, 0x09, 0x2e, + 0x00, 0x04, 0x1b, 0x01, 0x01, 0xff, 0x56, 0x21, 0x35, 0xcf, 0x29, 0x00, + 0x56, 0x3a, 0x1d, 0x6c, 0xfb, 0x41, 0x04, 0x3a, 0x89, 0x28, 0x4c, 0x87, + 0x93, 0xec, 0xf5, 0x01, 0x04, 0x26, 0x01, 0x01, 0xff, 0x4d, 0x01, 0x4d, + 0x8d, 0x25, 0x00, 0x09, 0x2a, 0x01, 0x01, 0xff, 0x45, 0x33, 0x01, 0x8a, + 0x25, 0x00, 0x57, 0x83, 0x2f, 0xa2, 0xce, 0x01, 0x57, 0x94, 0x31, 0xa9, + 0xce, 0x41, 0x48, 0x08, 0xc7, 0x0b, 0xcc, 0x01, 0x5a, 0x88, 0x22, 0xc1, + 0xfb, 0x41, 0x55, 0xcf, 0x38, 0xc5, 0x27, 0x00, 0xa5, 0x63, 0xa9, 0x55, + 0x4c, 0x70, 0x7c, 0xe8, 0xf5, 0x01, 0x4d, 0xc9, 0x26, 0x5b, 0x00, 0x80, + 0x06, 0x53, 0xab, 0x26, 0x02, 0x2e, 0x40, 0x80, 0x01, 0xff, 0x49, 0xc1, + 0x58, 0xa2, 0x23, 0x00, 0x4c, 0x6b, 0x91, 0xa3, 0x23, 0x00, 0x4c, 0x87, + 0x96, 0xa1, 0x23, 0x00, 0x05, 0x51, 0x00, 0x01, 0xff, 0x4d, 0x36, 0x82, + 0x57, 0x2e, 0x00, 0x45, 0x9e, 0x80, 0x45, 0x20, 0x00, 0x46, 0x52, 0x05, + 0x55, 0x2e, 0x00, 0x08, 0x90, 0xcb, 0x06, 0x48, 0xe3, 0x59, 0x8b, 0x29, + 0x40, 0x4d, 0x32, 0x81, 0x8f, 0x29, 0x00, 0x4a, 0x0d, 0xb2, 0x8d, 0x29, + 0x40, 0x50, 0xd6, 0x61, 0x26, 0x2e, 0x00, 0x53, 0x97, 0x0b, 0x18, 0x20, + 0x40, 0x50, 0xe4, 0x0f, 0xcb, 0x22, 0x00, 0x51, 0xfd, 0x4c, 0x89, 0x25, + 0x40, 0x56, 0x81, 0x30, 0x0c, 0x2e, 0x00, 0x05, 0xc9, 0x00, 0x01, 0xff, + 0x45, 0xce, 0x00, 0x94, 0x21, 0x80, 0x3f, 0x4b, 0xa5, 0x99, 0x0c, 0x2b, + 0x00, 0x4c, 0x2f, 0x8e, 0xd4, 0x21, 0x80, 0x21, 0x51, 0xf9, 0x5c, 0xff, + 0x21, 0x00, 0x50, 0xe6, 0x66, 0x58, 0xf8, 0x01, 0x55, 0x01, 0x02, 0x64, + 0x2b, 0x00, 0xb7, 0x01, 0xff, 0x49, 0x72, 0xb6, 0xad, 0x21, 0x00, 0x4a, + 0x4a, 0x10, 0x04, 0x2b, 0x40, 0x06, 0x50, 0x00, 0x01, 0xff, 0x46, 0x52, + 0x05, 0xce, 0x21, 0x00, 0x4f, 0x9c, 0x33, 0x04, 0x29, 0x40, 0x80, 0x01, + 0xff, 0x54, 0x18, 0x46, 0x48, 0x29, 0x00, 0x05, 0x51, 0x00, 0x01, 0xff, + 0x56, 0x95, 0x33, 0xfc, 0x21, 0x00, 0x46, 0x52, 0x05, 0xae, 0x21, 0x00, + 0x4f, 0x9c, 0x33, 0xf9, 0x21, 0x40, 0x80, 0x01, 0xff, 0x49, 0xc1, 0x58, + 0x9c, 0x23, 0x00, 0x4a, 0x67, 0xad, 0x9d, 0x23, 0x00, 0x4a, 0xdf, 0xb2, + 0x9b, 0x23, 0x40, 0x03, 0xef, 0x07, 0x06, 0x49, 0x52, 0xaf, 0xd5, 0x27, + 0x40, 0x4c, 0x12, 0x0b, 0x8f, 0x25, 0x00, 0x4d, 0x43, 0x1d, 0x8e, 0x25, + 0x00, 0x4b, 0x66, 0xa3, 0xcf, 0xfb, 0x41, 0x55, 0x90, 0x35, 0x1c, 0x2e, + 0x00, 0x46, 0xee, 0xe0, 0xc5, 0xf6, 0x41, 0x4c, 0x0c, 0x03, 0xeb, 0xfb, + 0x01, 0x4c, 0x32, 0x11, 0xe3, 0xfb, 0x41, 0x03, 0x24, 0x00, 0x06, 0x55, + 0x13, 0x3d, 0x7b, 0xf5, 0x41, 0x02, 0x33, 0x01, 0x65, 0x46, 0x12, 0x03, + 0x07, 0xf9, 0x81, 0x3e, 0xa6, 0x30, 0x65, 0xe2, 0x07, 0x10, 0xce, 0x01, + 0x69, 0x3c, 0x04, 0x94, 0xfb, 0x01, 0x57, 0x83, 0x2f, 0xa3, 0xce, 0x01, + 0x4c, 0x44, 0x04, 0x8c, 0xfb, 0x01, 0x4b, 0x69, 0xa2, 0xb2, 0xfb, 0x01, + 0x56, 0x73, 0x37, 0x0d, 0xce, 0x01, 0x57, 0x94, 0x31, 0xa8, 0xce, 0x01, + 0x4d, 0x97, 0x8a, 0x0b, 0xce, 0x41, 0x4c, 0x9b, 0x91, 0xa4, 0xcc, 0x01, + 0x45, 0xcc, 0x65, 0xb9, 0xfb, 0x41, 0x06, 0x50, 0x00, 0x01, 0xff, 0x43, + 0x23, 0x0a, 0x06, 0xf9, 0x01, 0x49, 0xd1, 0x46, 0x03, 0xf9, 0x01, 0xb4, + 0x01, 0xff, 0x49, 0x2b, 0x10, 0x04, 0xf9, 0x01, 0x47, 0x20, 0x0a, 0x05, + 0xf9, 0x41, 0x04, 0x0e, 0x03, 0x06, 0x43, 0x35, 0x01, 0x8c, 0x25, 0x40, + 0x46, 0x12, 0x03, 0xd6, 0x25, 0x00, 0x44, 0x31, 0x13, 0xe8, 0x2b, 0x40, + 0xa9, 0x06, 0x44, 0x59, 0x24, 0x0a, 0x23, 0x40, 0x47, 0xfc, 0xb8, 0x7c, + 0x29, 0x00, 0x50, 0xab, 0x51, 0x8b, 0x25, 0x40, 0x59, 0xa5, 0x26, 0x04, + 0x2e, 0x00, 0x05, 0x3d, 0x01, 0x01, 0xff, 0x4d, 0x3e, 0x0f, 0x0a, 0x30, + 0x00, 0x4b, 0xd8, 0x21, 0x28, 0x2e, 0x00, 0x4e, 0x19, 0x05, 0x1c, 0x20, + 0x00, 0x4c, 0xf3, 0x96, 0xda, 0x29, 0x40, 0x46, 0x91, 0xc4, 0x08, 0x23, + 0x00, 0x4b, 0xd8, 0x9e, 0xdc, 0x26, 0x00, 0x4d, 0x35, 0x69, 0x0c, 0x30, + 0x00, 0x4c, 0x73, 0x0b, 0x7b, 0x00, 0xc0, 0x00, 0x80, 0x01, 0xff, 0x4a, + 0x67, 0xad, 0xa9, 0x23, 0x00, 0x4c, 0x07, 0x92, 0xa8, 0x23, 0x00, 0x4a, + 0xdf, 0xb2, 0xa7, 0x23, 0x40, 0x04, 0x9e, 0x05, 0x11, 0x05, 0x0d, 0x03, + 0x01, 0xff, 0x52, 0x6c, 0x27, 0x10, 0x30, 0x00, 0x56, 0x54, 0x09, 0x97, + 0x29, 0x40, 0x10, 0x56, 0x62, 0x11, 0x0e, 0x13, 0x7e, 0x01, 0xff, 0x4c, + 0x3b, 0x8e, 0x4a, 0x29, 0x00, 0x4a, 0xc1, 0xb2, 0x4e, 0x29, 0x40, 0x4c, + 0x3b, 0x8e, 0x50, 0x29, 0x00, 0x4a, 0xc1, 0xb2, 0x4b, 0x29, 0x40, 0xae, + 0x1a, 0xb2, 0x01, 0xff, 0x53, 0x58, 0x1d, 0x93, 0x29, 0x00, 0x09, 0x25, + 0x06, 0x01, 0xff, 0x4c, 0x57, 0x8d, 0x32, 0x2b, 0x00, 0x4c, 0x3f, 0x15, + 0x30, 0x2b, 0x40, 0x02, 0x06, 0x00, 0x16, 0xa7, 0x01, 0xff, 0x49, 0x7c, + 0xb8, 0xee, 0xf5, 0x01, 0x4a, 0x41, 0x0f, 0x08, 0x30, 0xc0, 0x00, 0x49, + 0x75, 0x3b, 0x91, 0x29, 0x40, 0x06, 0x13, 0x01, 0x31, 0x06, 0xc8, 0x00, + 0x18, 0x06, 0x6d, 0x02, 0x01, 0xff, 0x69, 0x13, 0x04, 0x6b, 0xfb, 0x01, + 0x50, 0x0e, 0x0b, 0x7d, 0xfb, 0xc1, 0x00, 0x5e, 0x27, 0x12, 0x8e, 0xcc, + 0x41, 0x50, 0x36, 0x62, 0xda, 0x27, 0x00, 0xb4, 0x01, 0xff, 0x43, 0x0e, + 0x03, 0xdb, 0x27, 0x00, 0x54, 0xa3, 0x3e, 0x9b, 0xfb, 0x41, 0x69, 0x13, + 0x04, 0x69, 0xfb, 0x01, 0x50, 0x0e, 0x0b, 0x7c, 0xfb, 0x41, 0x53, 0x6a, + 0x47, 0x43, 0xf3, 0x01, 0x49, 0x5e, 0xbb, 0xbe, 0xfa, 0x01, 0x47, 0xb4, + 0xd7, 0x6c, 0xf9, 0x41, 0xa2, 0xdd, 0x4b, 0x55, 0xe0, 0x39, 0x4d, 0xf9, + 0x01, 0xa4, 0xc8, 0x4b, 0xae, 0xb9, 0x4b, 0x02, 0x7b, 0x02, 0xdd, 0x46, + 0xb2, 0xda, 0x41, 0x4f, 0x38, 0x73, 0x3e, 0x26, 0x80, 0xc3, 0x41, 0x04, + 0xe0, 0x05, 0x01, 0xff, 0xa3, 0xd3, 0x28, 0x12, 0x61, 0x51, 0xa8, 0x28, + 0x07, 0xec, 0x05, 0x87, 0x25, 0xb3, 0x01, 0xff, 0x05, 0x5e, 0x07, 0x50, + 0x16, 0xb5, 0x37, 0x01, 0xff, 0xe1, 0x90, 0x20, 0x00, 0xe5, 0x91, 0x20, + 0x00, 0xe8, 0x95, 0x20, 0x00, 0xe9, 0x62, 0x1d, 0x00, 0xea, 0x7c, 0x2c, + 0x00, 0xeb, 0x96, 0x20, 0x00, 0xec, 0x97, 0x20, 0x00, 0xed, 0x98, 0x20, + 0x00, 0xee, 0x99, 0x20, 0x00, 0xef, 0x92, 0x20, 0x00, 0xf0, 0x9a, 0x20, + 0x00, 0xf2, 0x63, 0x1d, 0x00, 0xf3, 0x9b, 0x20, 0x80, 0x10, 0xf4, 0x9c, + 0x20, 0x00, 0xf5, 0x64, 0x1d, 0x00, 0xf6, 0x65, 0x1d, 0x00, 0xf8, 0x93, + 0x20, 0x40, 0x44, 0xb5, 0x7b, 0x94, 0x20, 0x40, 0x0f, 0xe4, 0x05, 0x9f, + 0x24, 0xac, 0x01, 0xff, 0x06, 0xed, 0x05, 0x34, 0x08, 0x9d, 0x1f, 0x01, + 0xff, 0xa6, 0x18, 0x42, 0x5f, 0xc7, 0x33, 0x01, 0x00, 0x48, 0xe8, 0xc7, + 0x05, 0xfb, 0x00, 0x42, 0x60, 0x51, 0x53, 0x01, 0x00, 0x42, 0x60, 0x01, + 0x06, 0xfb, 0x40, 0xe6, 0x00, 0xfb, 0x80, 0x08, 0xe9, 0x01, 0xfb, 0x00, + 0xec, 0x02, 0xfb, 0x40, 0xe9, 0x03, 0xfb, 0x00, 0xec, 0x04, 0xfb, 0x40, + 0xe1, 0x61, 0x00, 0x80, 0xa7, 0x21, 0xe2, 0x62, 0x00, 0x80, 0xa4, 0x20, + 0xe3, 0x63, 0x00, 0x80, 0x86, 0x1f, 0xe4, 0x64, 0x00, 0x80, 0x81, 0x1d, + 0xe5, 0x65, 0x00, 0x80, 0x9b, 0x1a, 0xe6, 0x66, 0x00, 0x80, 0xe6, 0x19, + 0xe7, 0x67, 0x00, 0x80, 0xf5, 0x18, 0xe8, 0x68, 0x00, 0x80, 0x83, 0x18, + 0xe9, 0x69, 0x00, 0x80, 0xbb, 0x16, 0xea, 0x6a, 0x00, 0x80, 0x96, 0x16, + 0xeb, 0x6b, 0x00, 0x80, 0xb9, 0x15, 0xec, 0x6c, 0x00, 0x80, 0xad, 0x13, + 0xed, 0x6d, 0x00, 0x80, 0xd6, 0x12, 0xee, 0x6e, 0x00, 0x80, 0xb8, 0x11, + 0xef, 0x6f, 0x00, 0x80, 0xc8, 0x0e, 0xf0, 0x70, 0x00, 0x80, 0xf7, 0x0d, + 0xf1, 0x71, 0x00, 0x80, 0xce, 0x0d, 0xf2, 0x72, 0x00, 0x80, 0xc9, 0x0b, + 0xf3, 0x73, 0x00, 0x80, 0xb7, 0x09, 0xf4, 0x74, 0x00, 0x80, 0xe2, 0x05, + 0xf5, 0x75, 0x00, 0x80, 0xb4, 0x03, 0xf6, 0x76, 0x00, 0x80, 0xd8, 0x02, + 0xf7, 0x77, 0x00, 0x80, 0x96, 0x02, 0xf8, 0x78, 0x00, 0x80, 0xd7, 0x01, + 0xf9, 0x79, 0x00, 0x80, 0x6a, 0xfa, 0x7a, 0x00, 0xc0, 0x00, 0x06, 0x50, + 0x00, 0x01, 0xff, 0x45, 0xf9, 0x38, 0x7a, 0x01, 0x00, 0xa3, 0x46, 0xa4, + 0x2d, 0x44, 0xac, 0x0e, 0x25, 0x02, 0x00, 0x4a, 0x9d, 0x6d, 0x95, 0x1e, + 0x00, 0x4c, 0x2e, 0x23, 0x76, 0x1d, 0x00, 0x4c, 0xf3, 0x56, 0x8e, 0x1d, + 0x00, 0x4e, 0xa2, 0x0e, 0x90, 0x02, 0x00, 0xb3, 0x01, 0xff, 0x45, 0x53, + 0x05, 0xb6, 0x01, 0x00, 0x49, 0x3d, 0xc1, 0x40, 0x02, 0x40, 0x48, 0x1e, + 0x2b, 0x6c, 0x2c, 0x00, 0x03, 0x04, 0x0c, 0x01, 0xff, 0x45, 0x5c, 0x00, + 0x7c, 0x01, 0x00, 0x45, 0x20, 0x07, 0x93, 0x1e, 0x40, 0x44, 0xe7, 0x6c, + 0x7e, 0x01, 0x00, 0x49, 0xd0, 0x04, 0x91, 0x1e, 0x00, 0x43, 0x73, 0x0b, + 0x91, 0x02, 0x40, 0x06, 0x50, 0x00, 0x06, 0x43, 0x25, 0x52, 0x1d, 0x02, + 0x40, 0x45, 0xf9, 0x38, 0xfd, 0x00, 0x00, 0x4a, 0xcf, 0x04, 0x77, 0x01, + 0x00, 0xa4, 0x39, 0x45, 0x15, 0x23, 0xf3, 0x1e, 0x00, 0x44, 0xac, 0x0e, + 0xb4, 0x01, 0x80, 0x26, 0x44, 0x42, 0x85, 0xff, 0x1e, 0x00, 0x46, 0xad, + 0x70, 0x33, 0x02, 0x00, 0x4a, 0x5f, 0xb0, 0x99, 0x1e, 0x00, 0xb3, 0x06, + 0x45, 0x35, 0x23, 0xf9, 0x1e, 0x40, 0x4e, 0x97, 0x38, 0x5a, 0xab, 0x00, + 0x45, 0x53, 0x05, 0x4f, 0x02, 0x40, 0x46, 0x5b, 0x00, 0xf7, 0x1e, 0x40, + 0x48, 0xb8, 0x23, 0xff, 0x00, 0x00, 0x03, 0x04, 0x0c, 0x01, 0xff, 0x45, + 0x5c, 0x00, 0x8f, 0x1e, 0x00, 0x45, 0x20, 0x07, 0xf5, 0x1e, 0x40, 0x06, + 0x50, 0x00, 0x01, 0xff, 0xa4, 0x26, 0x02, 0x13, 0x01, 0x06, 0x4c, 0xf3, + 0x56, 0x8d, 0x1d, 0x40, 0x4b, 0x0c, 0xa0, 0x57, 0xab, 0x80, 0x06, 0x4c, + 0x23, 0x50, 0x56, 0xab, 0x40, 0x80, 0x01, 0xff, 0x52, 0x1d, 0x50, 0x58, + 0xab, 0x00, 0x4a, 0x53, 0x29, 0x59, 0xab, 0x40, 0x48, 0xb8, 0x23, 0x8d, + 0x1e, 0x00, 0x48, 0x3b, 0x1e, 0x8b, 0x1e, 0x40, 0x06, 0x50, 0x00, 0x01, + 0xff, 0x45, 0xf9, 0x38, 0x83, 0x1e, 0x00, 0x4a, 0xcf, 0x04, 0x75, 0x01, + 0x00, 0xa4, 0x12, 0x45, 0x15, 0x23, 0x81, 0x1e, 0x00, 0x44, 0xac, 0x0e, + 0x73, 0x2c, 0x00, 0x4a, 0x5f, 0xb0, 0x98, 0x1e, 0x40, 0x48, 0xb8, 0x23, + 0x85, 0x1e, 0x00, 0x03, 0x04, 0x0c, 0x01, 0xff, 0x45, 0x5c, 0x00, 0x87, + 0x1e, 0x00, 0x45, 0x20, 0x07, 0x89, 0x1e, 0x40, 0x06, 0x50, 0x00, 0x26, + 0x43, 0x40, 0x05, 0x69, 0xa7, 0x00, 0x4b, 0xba, 0x9d, 0x63, 0xa7, 0x00, + 0x07, 0xd2, 0xd3, 0x04, 0xf9, 0x61, 0xa7, 0x40, 0x42, 0x93, 0x0f, 0x9b, + 0xa7, 0x00, 0x42, 0x60, 0x51, 0x9d, 0xa7, 0x00, 0x42, 0xd6, 0x13, 0x9f, + 0xa7, 0x40, 0x44, 0x72, 0x0b, 0x74, 0x2c, 0x00, 0xa4, 0x18, 0x44, 0xac, + 0x0e, 0x8b, 0x02, 0x00, 0x4c, 0xf3, 0x56, 0x8c, 0x1d, 0x00, 0x4a, 0x4b, + 0xb0, 0x71, 0x2c, 0x00, 0x45, 0x35, 0x23, 0x7d, 0x1e, 0x40, 0x4e, 0x8e, + 0x3f, 0x5f, 0xa7, 0x00, 0x48, 0xa0, 0x12, 0x7f, 0x1e, 0x40, 0x80, 0x1d, + 0xe5, 0x6b, 0x1d, 0x00, 0xe9, 0x50, 0xab, 0x00, 0xed, 0x78, 0xa7, 0x00, + 0xef, 0x63, 0xab, 0x00, 0x46, 0xcf, 0x15, 0x8a, 0x02, 0xc0, 0x00, 0x4c, + 0xda, 0x28, 0x7f, 0x1d, 0x40, 0x43, 0x16, 0x00, 0x89, 0x02, 0x80, 0xfb, + 0x01, 0x05, 0x51, 0x00, 0x01, 0xff, 0x45, 0xf9, 0x38, 0xfa, 0x00, 0x00, + 0x45, 0x53, 0x23, 0x6d, 0x01, 0x00, 0xa3, 0xd4, 0x01, 0xa4, 0x8b, 0x01, + 0x45, 0x15, 0x23, 0xf9, 0x00, 0x00, 0x02, 0x0b, 0x00, 0x51, 0x4e, 0x5e, + 0x23, 0x17, 0x02, 0x00, 0x49, 0xb1, 0x57, 0x52, 0xab, 0x00, 0x46, 0xad, + 0x70, 0x6b, 0x01, 0x80, 0x38, 0x46, 0xba, 0xde, 0x73, 0x01, 0x00, 0xb2, + 0x24, 0xb3, 0x16, 0x45, 0x35, 0x23, 0x69, 0x01, 0xc0, 0x00, 0x80, 0x01, + 0xff, 0x49, 0x98, 0xa5, 0x79, 0x1e, 0x00, 0x45, 0x20, 0x07, 0x75, 0x1e, + 0x40, 0x4e, 0x97, 0x38, 0x4e, 0xab, 0x00, 0x45, 0x53, 0x05, 0xb9, 0xa7, + 0x40, 0x4d, 0xa3, 0x0e, 0x99, 0x1d, 0x00, 0x49, 0x60, 0xb0, 0x6f, 0x01, + 0x40, 0x4e, 0x45, 0x75, 0x7b, 0x1e, 0x40, 0x48, 0x39, 0xab, 0xe7, 0x1e, + 0x00, 0x42, 0x5e, 0x01, 0xb0, 0x01, 0xc0, 0x00, 0x05, 0x19, 0x00, 0x01, + 0xff, 0x45, 0xf9, 0x38, 0xe9, 0x1e, 0x00, 0x49, 0x9f, 0x12, 0xf1, 0x1e, + 0x00, 0x45, 0x15, 0x23, 0xeb, 0x1e, 0x00, 0x4a, 0x37, 0xab, 0xed, 0x1e, + 0x00, 0x45, 0x35, 0x23, 0xef, 0x1e, 0x40, 0x48, 0xb8, 0x23, 0xfc, 0x00, + 0x80, 0x1a, 0xaf, 0x01, 0xff, 0x47, 0xa1, 0x12, 0xe5, 0x1e, 0x00, 0x05, + 0x3d, 0x01, 0x01, 0xff, 0x45, 0xf9, 0x38, 0x71, 0x01, 0x00, 0x45, 0x15, + 0x23, 0x15, 0x02, 0x40, 0x80, 0x01, 0xff, 0x04, 0x1a, 0x00, 0x06, 0x45, + 0x20, 0x07, 0x73, 0x1e, 0x40, 0x45, 0xf9, 0x38, 0xd8, 0x01, 0x00, 0x45, + 0xe8, 0x97, 0xda, 0x01, 0x00, 0x45, 0x15, 0x23, 0xdc, 0x01, 0x00, 0x46, + 0xad, 0x70, 0xd6, 0x01, 0x40, 0x44, 0xe7, 0x6c, 0xd4, 0x01, 0x00, 0x49, + 0xd0, 0x04, 0xfb, 0x00, 0xc0, 0x00, 0x46, 0x1f, 0x07, 0x77, 0x1e, 0x40, + 0x55, 0x90, 0x38, 0x4f, 0xab, 0x40, 0x06, 0x50, 0x00, 0xd2, 0x02, 0x4b, + 0x00, 0x99, 0x77, 0x2c, 0x00, 0x53, 0xad, 0x48, 0xa8, 0x02, 0x00, 0x4b, + 0xec, 0x9b, 0xa7, 0x02, 0x80, 0xad, 0x02, 0xa8, 0x90, 0x02, 0xaf, 0xf1, + 0x01, 0x47, 0x53, 0xd5, 0x2b, 0xa7, 0x00, 0x49, 0x18, 0xbf, 0xa6, 0x02, + 0x80, 0xdd, 0x01, 0xb5, 0x04, 0xfa, 0x29, 0xa7, 0x40, 0xed, 0x77, 0xa7, + 0x00, 0x05, 0x72, 0x07, 0x01, 0xff, 0xe1, 0x50, 0x02, 0x80, 0xbe, 0x01, + 0x45, 0x7e, 0xe5, 0x8d, 0x01, 0x00, 0xe5, 0xdd, 0x01, 0x00, 0xe7, 0x77, + 0x1d, 0x00, 0xe8, 0x65, 0x02, 0x80, 0x9d, 0x01, 0xe9, 0x09, 0x1d, 0x80, + 0x91, 0x01, 0xeb, 0x9e, 0x02, 0x00, 0xec, 0x81, 0xa7, 0x00, 0xed, 0x6f, + 0x02, 0x80, 0x7e, 0xaf, 0x53, 0xf2, 0x79, 0x02, 0x80, 0x24, 0xf4, 0x87, + 0x02, 0x80, 0x19, 0x42, 0x3e, 0x00, 0x51, 0xab, 0x00, 0xf6, 0x8c, 0x02, + 0x00, 0xf7, 0x8d, 0x02, 0x00, 0xf9, 0x8e, 0x02, 0xc0, 0x00, 0x4a, 0x55, + 0xa6, 0x06, 0xdf, 0x41, 0x4a, 0xb6, 0x48, 0x0d, 0xdf, 0x41, 0x06, 0x50, + 0x00, 0x01, 0xff, 0x44, 0xac, 0x0e, 0x7b, 0x02, 0x00, 0x48, 0x91, 0x75, + 0x7a, 0x02, 0x80, 0x12, 0x4c, 0x2e, 0x23, 0x68, 0xab, 0x00, 0x4c, 0xf3, + 0x56, 0x15, 0xdf, 0x01, 0x44, 0x8f, 0x17, 0x79, 0x2c, 0x40, 0x53, 0x57, + 0x47, 0x08, 0xdf, 0x41, 0x47, 0x73, 0xcd, 0x43, 0xab, 0x80, 0x1c, 0xe5, + 0x14, 0x1d, 0x80, 0x06, 0x45, 0x1f, 0x29, 0x08, 0x1d, 0x40, 0x06, 0x50, + 0x00, 0x01, 0xff, 0x51, 0x47, 0x05, 0x42, 0xab, 0x00, 0x46, 0x52, 0x05, + 0x41, 0xab, 0x40, 0x4c, 0xda, 0x28, 0x44, 0xab, 0x40, 0x4e, 0x8b, 0x75, + 0x70, 0x02, 0x40, 0x48, 0x15, 0x70, 0x7f, 0xa7, 0x40, 0x4e, 0x2b, 0x72, + 0xae, 0x02, 0xc0, 0x00, 0x49, 0x3b, 0xb4, 0xaf, 0x02, 0x40, 0xe5, 0x02, + 0x1d, 0x00, 0x44, 0x3f, 0xe4, 0x52, 0x02, 0x40, 0x54, 0x9c, 0x0e, 0x67, + 0xab, 0x40, 0x03, 0xef, 0x07, 0x06, 0x48, 0x57, 0xbd, 0x16, 0x1d, 0x40, + 0x44, 0x80, 0x11, 0xbd, 0x01, 0x00, 0x43, 0x00, 0x26, 0x85, 0x01, 0x00, + 0x43, 0x1f, 0x0a, 0xa8, 0x01, 0x40, 0x53, 0xb6, 0x47, 0x7a, 0x1d, 0x00, + 0x43, 0x28, 0x05, 0xfe, 0x00, 0xc0, 0x00, 0x4c, 0xda, 0x28, 0x65, 0xa7, + 0xc0, 0x00, 0x52, 0x14, 0x2b, 0x67, 0xa7, 0x40, 0x06, 0x50, 0x00, 0x01, + 0xff, 0x4c, 0xf3, 0x56, 0x17, 0xdf, 0x01, 0x4e, 0xa2, 0x0e, 0x1c, 0xdf, + 0x41, 0xa3, 0x58, 0xa4, 0x35, 0x44, 0xac, 0x0e, 0xad, 0x01, 0x80, 0x28, + 0x4a, 0x9d, 0x6d, 0x6f, 0x1e, 0x00, 0x03, 0x7d, 0x02, 0x12, 0x4c, 0xf3, + 0x56, 0xab, 0x01, 0x00, 0x4e, 0xa2, 0x0e, 0x88, 0x02, 0x00, 0x46, 0x52, + 0x05, 0x67, 0x01, 0x40, 0x51, 0xa9, 0x57, 0x2a, 0xdf, 0x01, 0x49, 0x31, + 0x23, 0x75, 0x1d, 0x40, 0x53, 0x57, 0x47, 0x09, 0xdf, 0x41, 0x02, 0x1b, + 0x01, 0x11, 0x03, 0x04, 0x0c, 0x01, 0xff, 0x45, 0x5c, 0x00, 0x6b, 0x1e, + 0x00, 0x45, 0x20, 0x07, 0x6d, 0x1e, 0x40, 0x46, 0xba, 0x23, 0x97, 0x1e, + 0x00, 0x4c, 0x90, 0x3f, 0x66, 0x2c, 0x40, 0x44, 0xe7, 0x6c, 0x65, 0x01, + 0x00, 0x46, 0xfa, 0xc1, 0x63, 0x01, 0x00, 0x4f, 0xf1, 0x6e, 0x71, 0x1e, + 0x00, 0x4a, 0xc5, 0xae, 0x1b, 0x02, 0x00, 0x43, 0x73, 0x0b, 0x36, 0x02, + 0x40, 0x06, 0x50, 0x00, 0x82, 0x01, 0xa1, 0x74, 0xa3, 0x3f, 0x46, 0xf6, + 0xb0, 0xdf, 0x00, 0x00, 0xa9, 0x0c, 0x51, 0x70, 0x5d, 0x85, 0x02, 0x00, + 0x48, 0x98, 0xcb, 0x45, 0xab, 0x40, 0x07, 0xf2, 0x45, 0x06, 0x47, 0xf1, + 0xc6, 0xd9, 0xa7, 0x40, 0x4d, 0xe8, 0x81, 0x1e, 0x1d, 0x00, 0xef, 0x11, + 0x1d, 0x80, 0x0a, 0x48, 0xd8, 0xcb, 0x1f, 0x1d, 0x00, 0xf5, 0x1d, 0x1d, + 0x40, 0x4c, 0xda, 0x28, 0x13, 0x1d, 0x00, 0x45, 0xd4, 0xe9, 0x12, 0x1d, + 0x40, 0x43, 0xb6, 0x7b, 0x59, 0x02, 0x80, 0x1b, 0x05, 0x76, 0x06, 0x01, + 0xff, 0xe7, 0x61, 0x02, 0x80, 0x0b, 0xf2, 0x4b, 0xab, 0xc0, 0x00, 0x4a, + 0x91, 0xa6, 0x4c, 0xab, 0x40, 0x52, 0xc3, 0x4f, 0x36, 0xab, 0x40, 0x06, + 0x50, 0x00, 0x01, 0xff, 0x44, 0xac, 0x0e, 0x5a, 0x02, 0x00, 0x4e, 0xa2, + 0x0e, 0x95, 0x1d, 0x40, 0x47, 0x5f, 0xd2, 0x60, 0xab, 0x00, 0x46, 0xb6, + 0xce, 0x8c, 0xa7, 0x40, 0x45, 0xf9, 0x38, 0x5b, 0x01, 0x80, 0x78, 0xa3, + 0x51, 0xa4, 0x31, 0x44, 0xac, 0x0e, 0x82, 0x02, 0x00, 0x03, 0x7d, 0x02, + 0x1b, 0x4e, 0x4e, 0x43, 0xa9, 0xa7, 0x00, 0x4c, 0xf3, 0x56, 0x8a, 0x1d, + 0x00, 0xb3, 0x01, 0xff, 0x53, 0xf0, 0x49, 0xca, 0xa7, 0x00, 0x49, 0x3d, + 0xc1, 0x3f, 0x02, 0x40, 0x51, 0xa9, 0x57, 0x29, 0xdf, 0x01, 0x49, 0x31, + 0x23, 0x74, 0x1d, 0x40, 0x4e, 0x8e, 0x3f, 0xcd, 0xa7, 0x00, 0x03, 0x04, + 0x0c, 0x01, 0xff, 0x45, 0x5c, 0x00, 0x61, 0x1e, 0x00, 0x45, 0x20, 0x07, + 0x63, 0x1e, 0xc0, 0x00, 0x4e, 0x35, 0x1e, 0x69, 0x1e, 0x40, 0x44, 0xe7, + 0x6c, 0x61, 0x01, 0x80, 0x18, 0x46, 0xfa, 0xc1, 0x5f, 0x01, 0x00, 0x49, + 0xd0, 0x04, 0x5d, 0x01, 0x00, 0x4a, 0xc5, 0xae, 0x19, 0x02, 0x00, 0x43, + 0x73, 0x0b, 0x1e, 0xdf, 0x41, 0x4e, 0x35, 0x1e, 0x67, 0x1e, 0x40, 0x4e, + 0x35, 0x1e, 0x65, 0x1e, 0x40, 0x80, 0x5b, 0x48, 0x48, 0xc3, 0x64, 0x02, + 0x00, 0x08, 0xde, 0x14, 0x0d, 0x42, 0x48, 0x04, 0x75, 0xa7, 0xc0, 0x00, + 0x48, 0x9b, 0xb2, 0x5d, 0xa7, 0x40, 0xe3, 0x84, 0x21, 0x80, 0x39, 0xe5, + 0x58, 0x02, 0x80, 0x2e, 0x46, 0x3e, 0xdc, 0xf6, 0xa7, 0x00, 0xeb, 0x03, + 0xdf, 0x01, 0x46, 0x1e, 0x29, 0x5c, 0x02, 0x80, 0x0c, 0x4f, 0x2a, 0x72, + 0x7f, 0x02, 0x00, 0x48, 0xb0, 0xca, 0x01, 0xdf, 0x41, 0x06, 0x50, 0x00, + 0x01, 0xff, 0x44, 0xac, 0x0e, 0x5d, 0x02, 0x00, 0x4e, 0xa2, 0x0e, 0x94, + 0x1d, 0x40, 0x42, 0x1d, 0x01, 0x07, 0xdf, 0x41, 0x49, 0x75, 0x3b, 0x3f, + 0xa7, 0x40, 0x47, 0x9c, 0xb2, 0x5b, 0xa7, 0x00, 0x04, 0x51, 0x00, 0x01, + 0xff, 0x80, 0x06, 0x4a, 0xfd, 0x50, 0x47, 0xab, 0x40, 0x45, 0xf9, 0x38, + 0x55, 0x01, 0x00, 0xa3, 0x75, 0x02, 0x3b, 0x01, 0x54, 0x48, 0x31, 0x72, + 0x7e, 0x02, 0x80, 0x3c, 0x4e, 0x5e, 0x23, 0x13, 0x02, 0x00, 0xac, 0x28, + 0x03, 0x7d, 0x02, 0x18, 0x4e, 0x4e, 0x43, 0xa7, 0xa7, 0x00, 0x4c, 0xf3, + 0x56, 0x89, 0x1d, 0x00, 0x46, 0x52, 0x05, 0x4d, 0x02, 0x00, 0x44, 0x8f, + 0x17, 0x7d, 0x02, 0x40, 0x51, 0xa9, 0x57, 0x28, 0xdf, 0x01, 0x49, 0x31, + 0x23, 0x72, 0x1d, 0x40, 0x49, 0x9e, 0x6d, 0x5f, 0x1e, 0x00, 0x47, 0x92, + 0x75, 0x7c, 0x02, 0x40, 0x05, 0x19, 0x00, 0x01, 0xff, 0x4c, 0x2e, 0x23, + 0x73, 0x1d, 0x00, 0x4c, 0xf3, 0x56, 0x16, 0xdf, 0x41, 0x02, 0xc6, 0x00, + 0x06, 0x4a, 0x10, 0x23, 0x11, 0x02, 0x40, 0x45, 0x5c, 0x00, 0x59, 0x1e, + 0x00, 0x45, 0x20, 0x07, 0x5b, 0x1e, 0xc0, 0x00, 0x4b, 0x53, 0x97, 0x5d, + 0x1e, 0x40, 0x44, 0xe7, 0x6c, 0x59, 0x01, 0x00, 0x46, 0xfa, 0xc1, 0x57, + 0x01, 0x00, 0x4b, 0xca, 0x4f, 0x49, 0xab, 0x40, 0x06, 0x50, 0x00, 0x06, + 0x49, 0xcb, 0xbd, 0x39, 0x02, 0x40, 0x4f, 0x8d, 0x3f, 0x59, 0xa7, 0x00, + 0x44, 0xac, 0x0e, 0xa0, 0x02, 0x80, 0x06, 0x58, 0x0e, 0x2b, 0x57, 0xa7, + 0x40, 0x45, 0xd7, 0x47, 0x4b, 0x02, 0x40, 0x06, 0x50, 0x00, 0x0d, 0xa8, + 0x01, 0xff, 0x59, 0x01, 0x1d, 0xcf, 0xa7, 0x00, 0xe9, 0x78, 0x02, 0x40, + 0x45, 0xf9, 0x38, 0x55, 0x1e, 0x00, 0x49, 0x3a, 0x1e, 0x57, 0x1e, 0x00, + 0x48, 0x30, 0xc6, 0x53, 0xa7, 0x00, 0x44, 0xac, 0x0e, 0xa5, 0x01, 0x00, + 0x4c, 0x2e, 0x23, 0x71, 0x1d, 0x00, 0x4c, 0xf3, 0x56, 0x88, 0x1d, 0x00, + 0xb3, 0x01, 0xff, 0x4c, 0xff, 0x93, 0x55, 0xa7, 0x00, 0x45, 0x53, 0x05, + 0x7d, 0x1d, 0xc0, 0x00, 0x52, 0x14, 0x2b, 0x51, 0xa7, 0x40, 0x06, 0x50, + 0x00, 0x40, 0xe9, 0xa3, 0x01, 0x00, 0x4b, 0x5f, 0x9e, 0xc1, 0xa7, 0x00, + 0x44, 0xcc, 0x7b, 0xb7, 0xa7, 0x00, 0xef, 0x4f, 0xa7, 0x00, 0x04, 0xf7, + 0x04, 0x04, 0xf5, 0x23, 0x02, 0x40, 0xe5, 0x5b, 0x02, 0x80, 0x19, 0xef, + 0x54, 0x02, 0xc0, 0x00, 0x06, 0x50, 0x00, 0x04, 0xe5, 0x62, 0xab, 0x40, + 0x4e, 0xa2, 0x0e, 0x97, 0x1d, 0x00, 0x46, 0x52, 0x05, 0x3f, 0xab, 0x40, + 0x54, 0x9c, 0x0e, 0x93, 0x1d, 0x40, 0x45, 0xf9, 0x38, 0xf3, 0x00, 0x00, + 0x45, 0x53, 0x23, 0x4f, 0x01, 0x00, 0xa3, 0xe7, 0x01, 0xa4, 0xac, 0x01, + 0x45, 0x15, 0x23, 0xf2, 0x00, 0x00, 0x02, 0x0b, 0x00, 0x72, 0x4e, 0x5e, + 0x23, 0x0f, 0x02, 0x00, 0x02, 0x13, 0x01, 0x56, 0x46, 0xad, 0x70, 0x4d, + 0x01, 0x80, 0x3e, 0x46, 0xba, 0xde, 0xeb, 0x01, 0x80, 0x31, 0x4e, 0xa2, + 0x0e, 0x1b, 0xdf, 0x01, 0x46, 0x52, 0x05, 0xf8, 0x00, 0x80, 0x1e, 0x45, + 0x35, 0x23, 0xf5, 0x00, 0xc0, 0x00, 0x05, 0x19, 0x00, 0x01, 0xff, 0x45, + 0xf9, 0x38, 0x4d, 0x1e, 0x00, 0x49, 0xb7, 0x23, 0x4f, 0x1e, 0x00, 0x46, + 0xad, 0x70, 0x2d, 0x02, 0x40, 0x4a, 0x97, 0xa5, 0xff, 0x01, 0x40, 0x4b, + 0x53, 0x97, 0xed, 0x01, 0x40, 0x05, 0x19, 0x00, 0x01, 0xff, 0x45, 0xf9, + 0x38, 0x53, 0x1e, 0x00, 0x45, 0x15, 0x23, 0x51, 0x1e, 0x40, 0x51, 0xc6, + 0x5c, 0x4b, 0xa7, 0x00, 0x42, 0x1f, 0x00, 0x4d, 0xa7, 0x00, 0x4d, 0x63, + 0x8a, 0x7a, 0x2c, 0x40, 0x48, 0x39, 0xab, 0xcf, 0x1e, 0x00, 0x42, 0x5e, + 0x01, 0xa1, 0x01, 0xc0, 0x00, 0x05, 0x19, 0x00, 0x01, 0xff, 0x45, 0xf9, + 0x38, 0xdb, 0x1e, 0x00, 0x49, 0x9f, 0x12, 0xe3, 0x1e, 0x00, 0x45, 0x15, + 0x23, 0xdd, 0x1e, 0x00, 0x4a, 0x37, 0xab, 0xdf, 0x1e, 0x00, 0x45, 0x35, + 0x23, 0xe1, 0x1e, 0x40, 0x48, 0xb8, 0x23, 0xf6, 0x00, 0x80, 0x2b, 0xaf, + 0x01, 0xff, 0x02, 0xc6, 0x00, 0x11, 0x05, 0x3d, 0x01, 0x01, 0xff, 0x45, + 0xf9, 0x38, 0x51, 0x01, 0x00, 0x45, 0x15, 0x23, 0x0d, 0x02, 0x40, 0x45, + 0x5c, 0x00, 0x2f, 0x02, 0x80, 0x06, 0x45, 0x20, 0x07, 0xcd, 0x1e, 0x40, + 0x4b, 0x53, 0x97, 0x31, 0x02, 0x40, 0x4b, 0x53, 0x97, 0x2b, 0x02, 0x40, + 0x44, 0xe7, 0x6c, 0xd2, 0x01, 0x00, 0x49, 0xd0, 0x04, 0xf4, 0x00, 0xc0, + 0x00, 0x05, 0x19, 0x00, 0x01, 0xff, 0x45, 0xf9, 0x38, 0xd1, 0x1e, 0x00, + 0x49, 0x9f, 0x12, 0xd9, 0x1e, 0x00, 0x45, 0x15, 0x23, 0xd3, 0x1e, 0x00, + 0x4a, 0x37, 0xab, 0xd5, 0x1e, 0x00, 0x45, 0x35, 0x23, 0xd7, 0x1e, 0x40, + 0x80, 0x0a, 0xea, 0xcc, 0x01, 0x00, 0x42, 0x48, 0x04, 0x74, 0xa7, 0x40, + 0x56, 0x55, 0x36, 0x49, 0x01, 0x00, 0x05, 0x51, 0x00, 0x01, 0xff, 0x45, + 0xf9, 0x38, 0x44, 0x01, 0x00, 0xa3, 0x5b, 0xa4, 0x42, 0x45, 0x15, 0x23, + 0xf9, 0x01, 0x00, 0xac, 0x28, 0x03, 0x7d, 0x02, 0x18, 0x4e, 0x4e, 0x43, + 0xa5, 0xa7, 0x00, 0x4c, 0xf3, 0x56, 0x87, 0x1d, 0x00, 0x4e, 0xa2, 0x0e, + 0x73, 0x02, 0x00, 0x45, 0x35, 0x23, 0xf1, 0x00, 0x40, 0x51, 0xa9, 0x57, + 0x27, 0xdf, 0x01, 0x49, 0x31, 0x23, 0x70, 0x1d, 0x40, 0x48, 0xb2, 0x57, + 0x72, 0x02, 0x00, 0x49, 0x9e, 0x6d, 0x49, 0x1e, 0x00, 0x4d, 0xef, 0x86, + 0x9e, 0x01, 0x40, 0x48, 0x1e, 0x2b, 0x91, 0xa7, 0x00, 0x03, 0x04, 0x0c, + 0x01, 0xff, 0x45, 0x5c, 0x00, 0x45, 0x1e, 0x00, 0x45, 0x20, 0x07, 0x47, + 0x1e, 0x40, 0x44, 0xe7, 0x6c, 0x48, 0x01, 0x00, 0x46, 0xfa, 0xc1, 0x46, + 0x01, 0x00, 0x4f, 0xf1, 0x6e, 0x4b, 0x1e, 0x00, 0x4b, 0xca, 0x4f, 0x3b, + 0xab, 0x00, 0x43, 0x73, 0x0b, 0x35, 0x02, 0x40, 0x06, 0x50, 0x00, 0x1f, + 0x05, 0x7e, 0x02, 0x06, 0x42, 0x48, 0x04, 0x73, 0xa7, 0x40, 0x48, 0x88, + 0xc2, 0xd7, 0xa7, 0x00, 0x07, 0xea, 0xcd, 0x01, 0xff, 0x42, 0x60, 0x07, + 0xfb, 0x1e, 0x00, 0xf6, 0xfd, 0x1e, 0x40, 0x45, 0xf9, 0x38, 0x3f, 0x1e, + 0x00, 0x4c, 0xc9, 0x4f, 0x3a, 0xab, 0x00, 0x04, 0x03, 0x0c, 0x12, 0x44, + 0xac, 0x0e, 0x71, 0x02, 0x00, 0x4c, 0x2e, 0x23, 0x6f, 0x1d, 0x00, 0x4c, + 0xf3, 0x56, 0x86, 0x1d, 0x40, 0x45, 0x5c, 0x00, 0x41, 0x1e, 0x00, 0x45, + 0x20, 0x07, 0x43, 0x1e, 0x40, 0x06, 0x50, 0x00, 0x58, 0x45, 0x43, 0xe4, + 0xdb, 0xa7, 0x80, 0x4b, 0xa5, 0x36, 0xea, 0xc9, 0x01, 0x00, 0x45, 0x54, + 0xad, 0x7f, 0x01, 0x80, 0x12, 0x49, 0x18, 0xbf, 0xaa, 0x02, 0x00, 0x42, + 0x48, 0x04, 0x72, 0xa7, 0x00, 0x49, 0xb2, 0xc1, 0xab, 0x02, 0x40, 0x06, + 0x50, 0x00, 0x01, 0xff, 0xa4, 0x06, 0x4b, 0xe9, 0x9c, 0x9d, 0x1e, 0x40, + 0x4e, 0x8e, 0x3f, 0x9c, 0x1e, 0x00, 0x48, 0x3b, 0x1e, 0x9b, 0x1e, 0x40, + 0x45, 0x25, 0xe9, 0x35, 0xab, 0x00, 0x42, 0x54, 0x28, 0x6e, 0x02, 0xc0, + 0x00, 0x54, 0x9c, 0x0e, 0x05, 0xdf, 0x41, 0x4c, 0xda, 0x28, 0x9b, 0x01, + 0x40, 0x45, 0xf9, 0x38, 0x3a, 0x01, 0x00, 0xa2, 0x8e, 0x01, 0xa3, 0x74, + 0x02, 0x3b, 0x01, 0x52, 0x48, 0x31, 0x72, 0x11, 0xdf, 0x01, 0x4b, 0xe9, + 0x9c, 0x49, 0xa7, 0x00, 0x4f, 0xd3, 0x6e, 0x37, 0xab, 0x00, 0x4a, 0x9d, + 0x6d, 0x3b, 0x1e, 0x00, 0x03, 0x7d, 0x02, 0x19, 0x4c, 0xf3, 0x56, 0x85, + 0x1d, 0x00, 0x4e, 0xa2, 0x0e, 0x6d, 0x02, 0x80, 0x06, 0x46, 0x52, 0x05, + 0x42, 0x01, 0x40, 0x49, 0x29, 0xb4, 0x8e, 0xa7, 0x40, 0x51, 0xa9, 0x57, + 0x26, 0xdf, 0x01, 0x04, 0x80, 0x02, 0x01, 0xff, 0x43, 0x23, 0x0a, 0x40, + 0x01, 0x00, 0x44, 0x22, 0x08, 0x39, 0xab, 0x00, 0x45, 0x35, 0x23, 0x6b, + 0x02, 0x40, 0x47, 0xa1, 0x12, 0x37, 0x1e, 0x80, 0x11, 0x05, 0x3d, 0x01, + 0x01, 0xff, 0x43, 0x16, 0x00, 0x61, 0x2c, 0x00, 0x4c, 0x2e, 0x23, 0x38, + 0xab, 0x40, 0x4b, 0x53, 0x97, 0x39, 0x1e, 0x40, 0x44, 0xe7, 0x6c, 0x3e, + 0x01, 0x00, 0x46, 0xfa, 0xc1, 0x3c, 0x01, 0x00, 0x4f, 0xf1, 0x6e, 0x3d, + 0x1e, 0x00, 0x43, 0x73, 0x0b, 0x34, 0x02, 0x40, 0x42, 0x17, 0x00, 0x9a, + 0x01, 0x00, 0x43, 0xdd, 0xa3, 0x6c, 0x02, 0xc0, 0x00, 0x51, 0xee, 0x56, + 0x13, 0xdf, 0x41, 0x06, 0x50, 0x00, 0x06, 0x42, 0x71, 0x00, 0x38, 0x01, + 0x40, 0x45, 0xf9, 0x38, 0x31, 0x1e, 0x00, 0xa3, 0x39, 0xa4, 0x25, 0x44, + 0xac, 0x0e, 0x99, 0x01, 0x00, 0x4a, 0x9d, 0x6d, 0x35, 0x1e, 0x00, 0x4e, + 0x4e, 0x43, 0xa3, 0xa7, 0x00, 0x4c, 0xf3, 0x56, 0x84, 0x1d, 0x00, 0x46, + 0x52, 0x05, 0x41, 0xa7, 0xc0, 0x00, 0x54, 0x88, 0x3f, 0x45, 0xa7, 0x40, + 0x48, 0x1e, 0x2b, 0x6a, 0x2c, 0x00, 0x4e, 0x8e, 0x3f, 0x43, 0xa7, 0x00, + 0x48, 0xa0, 0x12, 0x33, 0x1e, 0x40, 0x44, 0xe7, 0x6c, 0xe9, 0x01, 0x00, + 0x46, 0xfa, 0xc1, 0x37, 0x01, 0x40, 0x06, 0x50, 0x00, 0x01, 0xff, 0xa3, + 0x06, 0x46, 0x52, 0x05, 0x49, 0x02, 0x40, 0x44, 0xe7, 0x6c, 0xf0, 0x01, + 0x00, 0x49, 0xd0, 0x04, 0x35, 0x01, 0x00, 0x4b, 0xca, 0x4f, 0x9d, 0x02, + 0x40, 0x06, 0x50, 0x00, 0x48, 0xae, 0x19, 0x02, 0x1b, 0x05, 0x04, 0xf3, + 0x6d, 0xa7, 0x40, 0xe1, 0x69, 0x02, 0x80, 0x06, 0x47, 0xd5, 0x88, 0x61, + 0xab, 0x40, 0x4c, 0xda, 0x28, 0x7c, 0x1d, 0x40, 0x06, 0x16, 0x70, 0x11, + 0x07, 0x60, 0x23, 0x01, 0xff, 0x45, 0x3e, 0xe4, 0x64, 0xab, 0x00, 0x42, + 0x60, 0x51, 0x40, 0xab, 0x40, 0xe4, 0x7a, 0xa7, 0x00, 0xe6, 0x7c, 0xa7, + 0x00, 0xe7, 0x79, 0x1d, 0x00, 0xf2, 0x83, 0xa7, 0x00, 0xf3, 0x85, 0xa7, + 0x00, 0xf4, 0x87, 0xa7, 0x40, 0x45, 0xf9, 0x38, 0xed, 0x00, 0x00, 0x45, + 0x53, 0x23, 0x2d, 0x01, 0x00, 0xa3, 0x5c, 0xa4, 0x3e, 0x45, 0x15, 0x23, + 0xec, 0x00, 0x00, 0x4a, 0x37, 0xab, 0xc9, 0x1e, 0x00, 0x4e, 0x5e, 0x23, + 0x0b, 0x02, 0x00, 0x46, 0xad, 0x70, 0x2b, 0x01, 0x00, 0x46, 0xba, 0xde, + 0x2f, 0x01, 0x00, 0x4e, 0xa2, 0x0e, 0x96, 0x1d, 0x00, 0x46, 0x52, 0x05, + 0x68, 0x02, 0x80, 0x0d, 0x45, 0x35, 0x23, 0x29, 0x01, 0xc0, 0x00, 0x46, + 0x1f, 0x07, 0x2d, 0x1e, 0x40, 0x53, 0x57, 0x47, 0x1a, 0xdf, 0x41, 0x48, + 0xb8, 0x23, 0xef, 0x00, 0x80, 0x0f, 0xaf, 0x01, 0xff, 0x47, 0xa1, 0x12, + 0xcb, 0x1e, 0x00, 0x4a, 0x10, 0x23, 0x09, 0x02, 0x40, 0x4a, 0x97, 0xa5, + 0x2f, 0x1e, 0x40, 0x44, 0xe7, 0x6c, 0xd0, 0x01, 0x00, 0x49, 0xd0, 0x04, + 0xee, 0x00, 0x40, 0x06, 0x50, 0x00, 0x17, 0x45, 0x3f, 0xdc, 0x76, 0x2c, + 0x00, 0x43, 0x4c, 0x0a, 0x27, 0xa7, 0x80, 0x04, 0xf6, 0x95, 0x01, 0x40, + 0x4a, 0xa7, 0x24, 0x67, 0x02, 0x40, 0x4b, 0xbb, 0x99, 0x2b, 0x1e, 0x00, + 0xa3, 0x37, 0xa4, 0x18, 0x44, 0xac, 0x0e, 0x66, 0x02, 0x00, 0x4a, 0x9d, + 0x6d, 0x96, 0x1e, 0x00, 0x4c, 0xf3, 0x56, 0x95, 0xa7, 0x00, 0x46, 0x52, + 0x05, 0x27, 0x01, 0x40, 0x48, 0x1e, 0x2b, 0x68, 0x2c, 0x00, 0x48, 0xb8, + 0x23, 0x27, 0x1e, 0x00, 0x03, 0x04, 0x0c, 0x01, 0xff, 0x45, 0x5c, 0x00, + 0x23, 0x1e, 0x00, 0x45, 0x20, 0x07, 0x25, 0x1e, 0x40, 0x44, 0xe7, 0x6c, + 0x1f, 0x02, 0x00, 0x46, 0xfa, 0xc1, 0x29, 0x1e, 0x00, 0x49, 0xd0, 0x04, + 0x25, 0x01, 0x40, 0x06, 0x50, 0x00, 0x23, 0x44, 0x00, 0x21, 0x63, 0x02, + 0x00, 0x42, 0x22, 0x00, 0xa3, 0x01, 0x00, 0x07, 0xcf, 0x28, 0x01, 0xff, + 0xe1, 0xbb, 0xa7, 0x00, 0xe9, 0xbd, 0xa7, 0x00, 0x44, 0x55, 0x03, 0x42, + 0x02, 0x00, 0xf5, 0xbf, 0xa7, 0x40, 0x45, 0xf9, 0x38, 0xf5, 0x01, 0x00, + 0x45, 0x53, 0x23, 0x1f, 0x01, 0x00, 0xa3, 0x24, 0x49, 0x3a, 0x1e, 0x21, + 0x01, 0x00, 0x44, 0xac, 0x0e, 0x60, 0x02, 0x00, 0x46, 0xad, 0x70, 0x21, + 0x1e, 0x00, 0x4e, 0x4e, 0x43, 0xa1, 0xa7, 0x00, 0x4c, 0xf3, 0x56, 0x83, + 0x1d, 0x00, 0x46, 0x52, 0x05, 0xe5, 0x01, 0x40, 0x44, 0xe7, 0x6c, 0xe7, + 0x01, 0x00, 0x46, 0xfa, 0xc1, 0x23, 0x01, 0x00, 0x49, 0xd0, 0x04, 0x1d, + 0x01, 0x40, 0x06, 0x50, 0x00, 0x0d, 0x4b, 0xb5, 0x9b, 0xa9, 0x02, 0xc0, + 0x00, 0x4b, 0x45, 0x98, 0x00, 0xdf, 0x41, 0x49, 0x3a, 0x1e, 0x1f, 0x1e, + 0x00, 0x44, 0xac, 0x0e, 0x92, 0x01, 0x00, 0x4c, 0x2e, 0x23, 0x6e, 0x1d, + 0x00, 0x4c, 0xf3, 0x56, 0x82, 0x1d, 0x00, 0x46, 0x52, 0x05, 0x99, 0xa7, + 0x40, 0x06, 0x50, 0x00, 0x92, 0x01, 0x0e, 0x2b, 0x78, 0x81, 0x01, 0x42, + 0x1d, 0x01, 0x4b, 0x01, 0x80, 0x69, 0x42, 0xa4, 0x02, 0x83, 0x02, 0x80, + 0x3e, 0xf4, 0x6b, 0xa7, 0x80, 0x35, 0x42, 0x54, 0x28, 0x92, 0x02, 0xc0, + 0x00, 0x80, 0x01, 0xff, 0x48, 0x58, 0x13, 0xb9, 0x01, 0x00, 0x05, 0x51, + 0x00, 0x01, 0xff, 0xa3, 0x12, 0x4c, 0xf3, 0x56, 0x18, 0xdf, 0x01, 0x4e, + 0xa2, 0x0e, 0x9a, 0x1d, 0x00, 0x44, 0x8f, 0x17, 0xba, 0x01, 0x40, 0x44, + 0xe7, 0x6c, 0xef, 0x01, 0x00, 0x43, 0x73, 0x0b, 0x93, 0x02, 0x40, 0xe8, + 0xf0, 0x00, 0x40, 0x06, 0x50, 0x00, 0x01, 0xff, 0x44, 0x72, 0x0b, 0x86, + 0x02, 0x00, 0x4a, 0x61, 0xa9, 0x0b, 0xdf, 0x81, 0x0c, 0x4c, 0xf3, 0x56, + 0x8b, 0x1d, 0x00, 0x4e, 0xa2, 0x0e, 0x98, 0x1d, 0x40, 0x49, 0x32, 0xb4, + 0x0c, 0xdf, 0x41, 0x06, 0x50, 0x00, 0x01, 0xff, 0x4c, 0xc9, 0x4f, 0x3c, + 0xab, 0x00, 0x4c, 0xf3, 0x56, 0x14, 0xdf, 0x41, 0x42, 0x9e, 0x01, 0x25, + 0xa7, 0x00, 0x43, 0x68, 0x00, 0x23, 0xa7, 0x40, 0x45, 0xf9, 0x38, 0xe9, + 0x00, 0x00, 0x45, 0x53, 0x23, 0x15, 0x01, 0x00, 0xa3, 0x76, 0xa4, 0x55, + 0x48, 0x30, 0xc6, 0x34, 0xab, 0x00, 0x45, 0x15, 0x23, 0xe8, 0x00, 0x00, + 0x4a, 0x37, 0xab, 0xbb, 0x1e, 0x00, 0x4e, 0x5e, 0x23, 0x07, 0x02, 0x00, + 0x46, 0xad, 0x70, 0x13, 0x01, 0x80, 0x25, 0x45, 0x61, 0x2a, 0x78, 0x2c, + 0x00, 0x46, 0xba, 0xde, 0x19, 0x01, 0x00, 0x4e, 0xa2, 0x0e, 0x92, 0x1d, + 0x00, 0x46, 0x52, 0x05, 0x47, 0x02, 0x00, 0x45, 0x35, 0x23, 0xbd, 0x1e, + 0xc0, 0x00, 0x46, 0x1f, 0x07, 0x1b, 0x1e, 0x40, 0x05, 0x19, 0x00, 0x01, + 0xff, 0x45, 0xf9, 0x38, 0x17, 0x1e, 0x00, 0x45, 0x15, 0x23, 0x15, 0x1e, + 0x40, 0x48, 0xb8, 0x23, 0xeb, 0x00, 0x00, 0xaf, 0x01, 0xff, 0x02, 0xc6, + 0x00, 0x06, 0x4a, 0x10, 0x23, 0x05, 0x02, 0x40, 0x45, 0x5c, 0x00, 0x17, + 0x01, 0x00, 0x45, 0x20, 0x07, 0xb9, 0x1e, 0x40, 0x44, 0xe7, 0x6c, 0x1b, + 0x01, 0x00, 0x46, 0xfa, 0xc1, 0x29, 0x02, 0x80, 0x32, 0x49, 0xd0, 0x04, + 0xea, 0x00, 0xc0, 0x00, 0x80, 0x01, 0xff, 0x04, 0x1a, 0x00, 0x06, 0x45, + 0x20, 0x07, 0x19, 0x1e, 0x40, 0x45, 0xf9, 0x38, 0xbf, 0x1e, 0x00, 0x49, + 0x9f, 0x12, 0xc7, 0x1e, 0x00, 0x45, 0x15, 0x23, 0xc1, 0x1e, 0x00, 0x4a, + 0x37, 0xab, 0xc3, 0x1e, 0x00, 0x45, 0x35, 0x23, 0xc5, 0x1e, 0x40, 0x4a, + 0xab, 0xa5, 0x1d, 0x1e, 0x40, 0x06, 0x50, 0x00, 0x8a, 0x01, 0x49, 0x7b, + 0xb6, 0x38, 0x02, 0x00, 0xa5, 0x64, 0xaf, 0x2c, 0x42, 0x48, 0x04, 0x71, + 0xa7, 0x00, 0xfa, 0xf3, 0x01, 0xc0, 0x00, 0x80, 0x01, 0xff, 0x47, 0xaf, + 0x48, 0xa3, 0x02, 0x80, 0x06, 0x4a, 0xe3, 0x97, 0xc6, 0x01, 0x40, 0x06, + 0x50, 0x00, 0x01, 0xff, 0x44, 0x72, 0x0b, 0xa5, 0x02, 0x00, 0x4e, 0xa2, + 0x0e, 0x66, 0xab, 0x40, 0x06, 0x92, 0x41, 0x1c, 0x05, 0x3d, 0x01, 0x01, + 0xff, 0xf2, 0x48, 0xab, 0x80, 0x0c, 0x45, 0x11, 0x4a, 0xd3, 0xa7, 0x00, + 0x44, 0x68, 0xa4, 0xd5, 0xa7, 0x40, 0x52, 0xc3, 0x4f, 0x4a, 0xab, 0x40, + 0xe9, 0x31, 0x01, 0x00, 0xea, 0x37, 0x02, 0xc0, 0x00, 0x4c, 0xda, 0x28, + 0x5f, 0x02, 0xc0, 0x00, 0x49, 0xc0, 0x23, 0x84, 0x02, 0x40, 0x43, 0x49, + 0x19, 0x9f, 0x1e, 0x00, 0x4a, 0x15, 0xb4, 0xa4, 0x02, 0xc0, 0x00, 0x06, + 0x50, 0x00, 0x01, 0xff, 0x4c, 0xf3, 0x56, 0x12, 0xdf, 0x01, 0x4e, 0xa2, + 0x0e, 0x19, 0xdf, 0x41, 0xa3, 0x56, 0x04, 0x03, 0x0c, 0x46, 0x44, 0xac, + 0x0e, 0x57, 0x02, 0x80, 0x39, 0x4a, 0x9d, 0x6d, 0x0f, 0x1e, 0x00, 0x03, + 0x7d, 0x02, 0x23, 0x4c, 0xf3, 0x56, 0x81, 0x1d, 0x00, 0xb3, 0x0f, 0xb4, + 0x01, 0xff, 0x43, 0x90, 0x17, 0x56, 0x02, 0x00, 0x45, 0xa7, 0xe0, 0x8c, + 0x01, 0x40, 0x53, 0xf0, 0x49, 0xc8, 0xa7, 0x00, 0x45, 0x53, 0x05, 0x11, + 0x01, 0x40, 0x51, 0xa9, 0x57, 0x25, 0xdf, 0x01, 0x49, 0x31, 0x23, 0x6d, + 0x1d, 0x40, 0x49, 0x3b, 0xb4, 0x91, 0x1d, 0x40, 0x45, 0x5c, 0x00, 0x0b, + 0x1e, 0x00, 0x45, 0x20, 0x07, 0x0d, 0x1e, 0x40, 0x44, 0xe7, 0x6c, 0x0f, + 0x01, 0x00, 0x46, 0xfa, 0xc1, 0x11, 0x1e, 0x00, 0x4f, 0xf1, 0x6e, 0x13, + 0x1e, 0x00, 0x43, 0x73, 0x0b, 0x21, 0x02, 0x40, 0x06, 0x50, 0x00, 0x49, + 0x42, 0x49, 0x00, 0x53, 0xab, 0x80, 0x31, 0x06, 0x60, 0x1b, 0x13, 0x42, + 0x10, 0x00, 0x6f, 0xa7, 0x00, 0x48, 0xe8, 0xcb, 0x2d, 0xa7, 0xc0, 0x00, + 0x4b, 0xed, 0x97, 0x2f, 0xa7, 0x40, 0x49, 0x14, 0x70, 0xd1, 0xa7, 0x00, + 0xaf, 0x06, 0x4f, 0x75, 0x72, 0x5e, 0x02, 0x40, 0x44, 0xcc, 0x7b, 0x77, + 0x02, 0x00, 0x45, 0x1f, 0x29, 0x9a, 0x02, 0x40, 0x0a, 0x69, 0xa6, 0x01, + 0xff, 0x4a, 0xbd, 0xac, 0x55, 0xab, 0x00, 0x4a, 0x25, 0x50, 0x54, 0xab, + 0x40, 0x45, 0xf9, 0x38, 0x07, 0x01, 0x00, 0x43, 0x16, 0x00, 0x93, 0xa7, + 0x00, 0xa3, 0x1e, 0x49, 0x3a, 0x1e, 0x0b, 0x01, 0x00, 0x44, 0xac, 0x0e, + 0x88, 0x01, 0x00, 0x4c, 0xf3, 0x56, 0x94, 0xa7, 0x00, 0x4e, 0xa2, 0x0e, + 0x1d, 0xdf, 0x01, 0x46, 0x52, 0x05, 0x3c, 0x02, 0x40, 0x44, 0xe7, 0x6c, + 0x0d, 0x01, 0x00, 0x46, 0xfa, 0xc1, 0xe7, 0x00, 0x80, 0x0c, 0x49, 0xd0, + 0x04, 0x09, 0x01, 0x00, 0x43, 0x73, 0x0b, 0x55, 0x02, 0x40, 0x4a, 0x97, + 0xa5, 0x09, 0x1e, 0x40, 0x06, 0x50, 0x00, 0x3f, 0xa1, 0x25, 0x43, 0x94, + 0x0f, 0xb5, 0xa7, 0x00, 0x0b, 0x3e, 0x9e, 0x0c, 0x4c, 0x6f, 0x93, 0x17, + 0x1d, 0x00, 0x47, 0x6f, 0xd5, 0x47, 0xa7, 0x40, 0xe5, 0x32, 0xab, 0x00, + 0xef, 0x3d, 0xab, 0xc0, 0x00, 0x4c, 0xda, 0x28, 0x3e, 0xab, 0x40, 0x05, + 0xcb, 0x80, 0x06, 0x4a, 0xe1, 0xb0, 0x4d, 0xab, 0x40, 0x45, 0x3e, 0xe4, + 0x30, 0xab, 0x00, 0xe5, 0x33, 0xab, 0x00, 0xef, 0x75, 0x02, 0x40, 0x04, + 0x03, 0x0c, 0x2a, 0x48, 0x30, 0xc6, 0x97, 0xa7, 0x00, 0x44, 0xac, 0x0e, + 0x53, 0x02, 0x00, 0x4a, 0x9d, 0x6d, 0x07, 0x1e, 0x00, 0x4c, 0x2e, 0x23, + 0x6c, 0x1d, 0x00, 0x4c, 0xf3, 0x56, 0x80, 0x1d, 0x00, 0x46, 0x52, 0x05, + 0x80, 0x01, 0x00, 0x46, 0xa6, 0xe0, 0x83, 0x01, 0x40, 0x45, 0x5c, 0x00, + 0x03, 0x1e, 0x00, 0x45, 0x20, 0x07, 0x05, 0x1e, 0x40, 0x80, 0x44, 0xe1, + 0x33, 0xa7, 0x00, 0xe5, 0xe6, 0x00, 0x80, 0x2a, 0x44, 0x3f, 0xe4, 0x51, + 0x02, 0x80, 0x1d, 0x4a, 0x61, 0xae, 0xc3, 0xa7, 0x00, 0xef, 0x35, 0xa7, + 0x00, 0xf5, 0x37, 0xa7, 0x00, 0xf6, 0x39, 0xa7, 0x80, 0x04, 0xf9, 0x3d, + 0xa7, 0x40, 0x54, 0xec, 0x3f, 0x3b, 0xa7, 0x40, 0x54, 0x9c, 0x0e, 0x90, + 0x1d, 0x40, 0x06, 0x50, 0x00, 0x01, 0xff, 0x45, 0xf9, 0x38, 0xfd, 0x01, + 0x00, 0x46, 0xad, 0x70, 0xe3, 0x01, 0x40, 0x4e, 0xab, 0x7b, 0x31, 0xab, + 0x00, 0x05, 0x51, 0x00, 0x01, 0xff, 0x45, 0xf9, 0x38, 0xe1, 0x00, 0x00, + 0x45, 0x53, 0x23, 0x03, 0x01, 0x80, 0xb5, 0x01, 0xa3, 0x82, 0x01, 0xa4, + 0x53, 0x45, 0x15, 0x23, 0xe0, 0x00, 0x00, 0x4a, 0x37, 0xab, 0xa3, 0x1e, + 0x00, 0x4e, 0x5e, 0x23, 0x03, 0x02, 0x00, 0x46, 0xad, 0x70, 0x01, 0x01, + 0x00, 0x46, 0xba, 0xde, 0x05, 0x01, 0x00, 0xb2, 0x0c, 0x46, 0x52, 0x05, + 0x65, 0x2c, 0x00, 0x45, 0x35, 0x23, 0xe3, 0x00, 0x40, 0x4d, 0xa3, 0x0e, + 0x8f, 0x1d, 0x00, 0xa9, 0x01, 0xff, 0x4d, 0x86, 0x72, 0x9a, 0x1e, 0x00, + 0x03, 0xa2, 0x01, 0x01, 0xff, 0x45, 0x5c, 0x00, 0xe5, 0x00, 0x80, 0x06, + 0x45, 0x20, 0x07, 0x01, 0x1e, 0x40, 0x4a, 0x97, 0xa5, 0xfb, 0x01, 0x40, + 0x48, 0xb8, 0x23, 0xe4, 0x00, 0x80, 0x20, 0xaf, 0x01, 0xff, 0x02, 0xc6, + 0x00, 0x06, 0x4a, 0x10, 0x23, 0x01, 0x02, 0x40, 0x45, 0x5c, 0x00, 0x27, + 0x02, 0x80, 0x06, 0x45, 0x20, 0x07, 0xa1, 0x1e, 0x40, 0x4b, 0x53, 0x97, + 0xe1, 0x01, 0x40, 0x4b, 0x53, 0x97, 0xdf, 0x01, 0x40, 0x44, 0xe7, 0x6c, + 0xce, 0x01, 0x00, 0x49, 0xd0, 0x04, 0xe2, 0x00, 0xc0, 0x00, 0x05, 0x19, + 0x00, 0x01, 0xff, 0x45, 0xf9, 0x38, 0xa5, 0x1e, 0x00, 0x49, 0x9f, 0x12, + 0xad, 0x1e, 0x00, 0x45, 0x15, 0x23, 0xa7, 0x1e, 0x00, 0x4a, 0x37, 0xab, + 0xa9, 0x1e, 0x00, 0x45, 0x35, 0x23, 0xab, 0x1e, 0x40, 0x05, 0x19, 0x00, + 0x01, 0xff, 0x45, 0xf9, 0x38, 0xaf, 0x1e, 0x00, 0x49, 0x9f, 0x12, 0xb7, + 0x1e, 0x00, 0x45, 0x15, 0x23, 0xb1, 0x1e, 0x00, 0x4a, 0x37, 0xab, 0xb3, + 0x1e, 0x00, 0x45, 0x35, 0x23, 0xb5, 0x1e, 0x40, 0x4d, 0xe3, 0x83, 0x7b, + 0x1d, 0x00, 0x4d, 0x6c, 0x89, 0x7e, 0x1d, 0x40, 0xa1, 0x8d, 0x03, 0x02, + 0xe5, 0x06, 0xf1, 0x02, 0x4c, 0xdb, 0x8d, 0xc0, 0x01, 0x00, 0x4c, 0xce, + 0x28, 0x94, 0x02, 0x80, 0xdd, 0x02, 0x55, 0x41, 0x3c, 0x96, 0x02, 0x80, + 0xc4, 0x02, 0x4d, 0xf4, 0x84, 0xc1, 0x01, 0x00, 0x5b, 0xff, 0x1c, 0x95, + 0x02, 0x00, 0x02, 0x88, 0x00, 0x95, 0x02, 0xb3, 0x18, 0x4f, 0x0a, 0x74, + 0xbb, 0x01, 0x00, 0x58, 0xce, 0x2b, 0x24, 0x1d, 0x00, 0x44, 0x68, 0xa4, + 0xbf, 0x01, 0x00, 0x42, 0x05, 0x22, 0xa6, 0x01, 0x40, 0x4e, 0x8d, 0x78, + 0x8f, 0xa7, 0x00, 0x0d, 0xc7, 0x3c, 0x0d, 0x4a, 0x2b, 0xb2, 0x97, 0x02, + 0xc0, 0x00, 0x4a, 0xb6, 0x48, 0x0f, 0xdf, 0x41, 0xe1, 0x00, 0x1d, 0x80, + 0xda, 0x01, 0xe2, 0x99, 0x02, 0x80, 0xce, 0x01, 0xe3, 0x04, 0x1d, 0x00, + 0xe4, 0x05, 0x1d, 0x00, 0xe5, 0x07, 0x1d, 0x80, 0xb4, 0x01, 0xe6, 0x30, + 0xa7, 0x00, 0xe7, 0x62, 0x02, 0x80, 0xa4, 0x01, 0xe8, 0x9c, 0x02, 0x00, + 0xe9, 0x6a, 0x02, 0x80, 0x94, 0x01, 0xea, 0x0a, 0x1d, 0x00, 0xeb, 0x0b, + 0x1d, 0x00, 0xec, 0x9f, 0x02, 0x80, 0x76, 0xed, 0x0d, 0x1d, 0x00, 0xee, + 0x74, 0x02, 0x00, 0xef, 0x0f, 0x1d, 0x80, 0x5b, 0xf0, 0x18, 0x1d, 0x00, + 0xf1, 0xaf, 0xa7, 0x00, 0xf2, 0x80, 0x02, 0x80, 0x36, 0xf3, 0x31, 0xa7, + 0x00, 0xf4, 0x1b, 0x1d, 0x80, 0x14, 0xf5, 0x1c, 0x1d, 0x00, 0xf6, 0x20, + 0x1d, 0x00, 0xf7, 0x21, 0x1d, 0x00, 0xf9, 0x8f, 0x02, 0x00, 0xfa, 0x22, + 0x1d, 0x40, 0x06, 0x71, 0x07, 0x01, 0xff, 0xe5, 0x7b, 0x2c, 0x00, 0xe7, + 0x02, 0xdf, 0x01, 0xeb, 0x10, 0xdf, 0x01, 0xed, 0xfa, 0xa7, 0x00, 0xf2, + 0x1a, 0x1d, 0x40, 0x4f, 0x05, 0x6a, 0x46, 0xab, 0x00, 0x08, 0xde, 0x14, + 0x06, 0x42, 0x48, 0x04, 0x76, 0xa7, 0x40, 0xee, 0x0e, 0x1d, 0x00, 0xf2, + 0x19, 0x1d, 0x40, 0xe5, 0x76, 0x02, 0x00, 0x45, 0xd4, 0xe9, 0x10, 0x1d, + 0x00, 0xf5, 0x15, 0x1d, 0x40, 0x06, 0x50, 0x00, 0x01, 0xff, 0x44, 0x5b, + 0xa6, 0x04, 0xdf, 0x01, 0x46, 0x52, 0x05, 0x0c, 0x1d, 0x40, 0x49, 0xc6, + 0xbc, 0x81, 0x02, 0x40, 0x4a, 0xa7, 0x24, 0x9b, 0x02, 0x40, 0x42, 0x53, + 0x00, 0x06, 0x1d, 0x00, 0x42, 0x54, 0x28, 0x23, 0x1d, 0x40, 0x47, 0x02, + 0xcf, 0x03, 0x1d, 0x40, 0xe5, 0x01, 0x1d, 0x40, 0x4d, 0x8f, 0x0e, 0xc3, + 0x01, 0x80, 0x11, 0x07, 0xdf, 0x14, 0x01, 0xff, 0x48, 0xd0, 0xc5, 0xaa, + 0x01, 0x00, 0x58, 0xce, 0x28, 0xa2, 0x02, 0x40, 0x54, 0x9c, 0x0e, 0x0a, + 0xdf, 0x41, 0x06, 0x50, 0x00, 0x01, 0xff, 0x44, 0x72, 0x0b, 0x0e, 0xdf, + 0x01, 0x46, 0x52, 0x05, 0xbe, 0x01, 0x40, 0x4c, 0xda, 0x28, 0xa1, 0x02, + 0x40, 0x51, 0xb8, 0x59, 0xad, 0x02, 0x00, 0x07, 0x18, 0x84, 0x01, 0xff, + 0x45, 0x97, 0x0e, 0x98, 0x02, 0x00, 0x4a, 0xbf, 0x59, 0xac, 0x02, 0x40, + 0x42, 0x9e, 0x01, 0x25, 0x1d, 0x00, 0x4d, 0x69, 0x85, 0xc2, 0x01, 0x40, + 0x49, 0x45, 0xb6, 0xff, 0xa7, 0x00, 0xa9, 0x12, 0x09, 0xdd, 0x14, 0x06, + 0x4a, 0x09, 0xb1, 0xf7, 0xa7, 0x40, 0xe6, 0xfb, 0xa7, 0x00, 0xf0, 0xfc, + 0xa7, 0x40, 0x46, 0x2a, 0xd8, 0xfe, 0xa7, 0x00, 0x49, 0x40, 0x5b, 0xfd, + 0xa7, 0x40, 0x08, 0xe5, 0x05, 0x06, 0x44, 0x96, 0x10, 0x1d, 0x27, 0x40, + 0x06, 0xed, 0x05, 0x11, 0x08, 0x9d, 0x1f, 0x01, 0xff, 0x42, 0x5f, 0xc7, + 0x32, 0x01, 0x00, 0x42, 0x60, 0x51, 0x52, 0x01, 0x40, 0xe1, 0x41, 0x00, + 0x80, 0xa9, 0x16, 0xe2, 0x42, 0x00, 0x80, 0xe5, 0x15, 0xe3, 0x43, 0x00, + 0x80, 0xfd, 0x14, 0xe4, 0x44, 0x00, 0x80, 0x87, 0x14, 0xe5, 0x45, 0x00, + 0x80, 0x8b, 0x12, 0xe6, 0x46, 0x00, 0x80, 0xee, 0x11, 0xe7, 0x47, 0x00, + 0x80, 0x83, 0x11, 0xe8, 0x48, 0x00, 0x80, 0xa2, 0x10, 0xe9, 0x49, 0x00, + 0x80, 0xff, 0x0e, 0xea, 0x4a, 0x00, 0x80, 0xe0, 0x0e, 0xeb, 0x4b, 0x00, + 0x80, 0x8e, 0x0e, 0xec, 0x4c, 0x00, 0x80, 0x89, 0x0d, 0xed, 0x4d, 0x00, + 0x80, 0xc9, 0x0c, 0xee, 0x4e, 0x00, 0x80, 0xdc, 0x0b, 0xef, 0x4f, 0x00, + 0x80, 0x8c, 0x09, 0xf0, 0x50, 0x00, 0x80, 0xce, 0x08, 0xf1, 0x51, 0x00, + 0x80, 0xb7, 0x08, 0xf2, 0x52, 0x00, 0x80, 0xab, 0x07, 0xf3, 0x53, 0x00, + 0x80, 0x87, 0x06, 0xf4, 0x54, 0x00, 0x80, 0xd1, 0x04, 0xf5, 0x55, 0x00, + 0x80, 0xd9, 0x02, 0xf6, 0x56, 0x00, 0x80, 0x8f, 0x02, 0xf7, 0x57, 0x00, + 0x80, 0xce, 0x01, 0xf8, 0x58, 0x00, 0x80, 0xb7, 0x01, 0xf9, 0x59, 0x00, + 0x80, 0x58, 0xfa, 0x5a, 0x00, 0xc0, 0x00, 0x06, 0x50, 0x00, 0x01, 0xff, + 0x45, 0xf9, 0x38, 0x79, 0x01, 0x00, 0xa3, 0x3a, 0xa4, 0x21, 0x44, 0xac, + 0x0e, 0x24, 0x02, 0x00, 0x4a, 0x9d, 0x6d, 0x94, 0x1e, 0x00, 0x4c, 0xf3, + 0x56, 0xc6, 0xa7, 0x00, 0xb3, 0x01, 0xff, 0x45, 0x53, 0x05, 0xb5, 0x01, + 0x00, 0x49, 0x3d, 0xc1, 0x7f, 0x2c, 0x40, 0x48, 0x1e, 0x2b, 0x6b, 0x2c, + 0x00, 0x03, 0x04, 0x0c, 0x01, 0xff, 0x45, 0x5c, 0x00, 0x7b, 0x01, 0x00, + 0x45, 0x20, 0x07, 0x92, 0x1e, 0x40, 0x44, 0xe7, 0x6c, 0x7d, 0x01, 0x00, + 0x49, 0xd0, 0x04, 0x90, 0x1e, 0x40, 0x06, 0x50, 0x00, 0x06, 0x43, 0x25, + 0x52, 0x1c, 0x02, 0x40, 0x45, 0xf9, 0x38, 0xdd, 0x00, 0x00, 0x4a, 0xcf, + 0x04, 0x76, 0x01, 0x00, 0xa4, 0x2b, 0x45, 0x15, 0x23, 0xf2, 0x1e, 0x00, + 0x44, 0xac, 0x0e, 0xb3, 0x01, 0x80, 0x18, 0x44, 0x42, 0x85, 0xfe, 0x1e, + 0x00, 0x46, 0xad, 0x70, 0x32, 0x02, 0x00, 0x46, 0x52, 0x05, 0x4e, 0x02, + 0x00, 0x45, 0x35, 0x23, 0xf8, 0x1e, 0x40, 0x46, 0x5b, 0x00, 0xf6, 0x1e, + 0x40, 0x48, 0xb8, 0x23, 0x78, 0x01, 0x00, 0x03, 0x04, 0x0c, 0x01, 0xff, + 0x45, 0x5c, 0x00, 0x8e, 0x1e, 0x00, 0x45, 0x20, 0x07, 0xf4, 0x1e, 0x40, + 0x07, 0x82, 0x07, 0x01, 0xff, 0x48, 0xb8, 0x23, 0x8c, 0x1e, 0x00, 0x48, + 0x3b, 0x1e, 0x8a, 0x1e, 0x40, 0x06, 0x50, 0x00, 0x06, 0x43, 0x69, 0xa4, + 0xf7, 0x01, 0x40, 0x45, 0xf9, 0x38, 0x82, 0x1e, 0x00, 0x4a, 0xcf, 0x04, + 0x74, 0x01, 0x00, 0xa4, 0x0c, 0x45, 0x15, 0x23, 0x80, 0x1e, 0x00, 0x44, + 0xac, 0x0e, 0x72, 0x2c, 0x40, 0x48, 0xb8, 0x23, 0x84, 0x1e, 0x00, 0x03, + 0x04, 0x0c, 0x01, 0xff, 0x45, 0x5c, 0x00, 0x86, 0x1e, 0x00, 0x45, 0x20, + 0x07, 0x88, 0x1e, 0x40, 0x06, 0x50, 0x00, 0x26, 0x43, 0x40, 0x05, 0x68, + 0xa7, 0x00, 0x4b, 0xba, 0x9d, 0x62, 0xa7, 0x00, 0x07, 0xd2, 0xd3, 0x04, + 0xf9, 0x60, 0xa7, 0x40, 0x42, 0x93, 0x0f, 0x9a, 0xa7, 0x00, 0x42, 0x60, + 0x51, 0x9c, 0xa7, 0x00, 0x42, 0xd6, 0x13, 0x9e, 0xa7, 0x40, 0xa4, 0x0c, + 0x44, 0xac, 0x0e, 0xb2, 0x01, 0x00, 0x45, 0x35, 0x23, 0x7c, 0x1e, 0x40, + 0x4e, 0x8e, 0x3f, 0x5e, 0xa7, 0x00, 0x48, 0xa0, 0x12, 0x7e, 0x1e, 0x40, + 0x80, 0x06, 0x46, 0xcf, 0x15, 0xb1, 0x01, 0x40, 0x43, 0x16, 0x00, 0x44, + 0x02, 0x00, 0x05, 0x51, 0x00, 0x01, 0xff, 0x45, 0xf9, 0x38, 0xda, 0x00, + 0x00, 0x45, 0x53, 0x23, 0x6c, 0x01, 0x00, 0xa3, 0xbd, 0x01, 0xa4, 0x75, + 0x45, 0x15, 0x23, 0xd9, 0x00, 0x00, 0x02, 0x0b, 0x00, 0x3b, 0x4e, 0x5e, + 0x23, 0x16, 0x02, 0x00, 0x46, 0xad, 0x70, 0x6a, 0x01, 0x80, 0x28, 0x46, + 0xba, 0xde, 0x72, 0x01, 0x00, 0x4a, 0x5f, 0xb0, 0x6e, 0x01, 0x00, 0x46, + 0x52, 0x05, 0xb8, 0xa7, 0x00, 0x45, 0x35, 0x23, 0x68, 0x01, 0xc0, 0x00, + 0x80, 0x01, 0xff, 0x49, 0x98, 0xa5, 0x78, 0x1e, 0x00, 0x45, 0x20, 0x07, + 0x74, 0x1e, 0x40, 0x4e, 0x45, 0x75, 0x7a, 0x1e, 0x40, 0x48, 0x39, 0xab, + 0xe6, 0x1e, 0x00, 0x42, 0x5e, 0x01, 0xaf, 0x01, 0xc0, 0x00, 0x05, 0x19, + 0x00, 0x01, 0xff, 0x45, 0xf9, 0x38, 0xe8, 0x1e, 0x00, 0x49, 0x9f, 0x12, + 0xf0, 0x1e, 0x00, 0x45, 0x15, 0x23, 0xea, 0x1e, 0x00, 0x4a, 0x37, 0xab, + 0xec, 0x1e, 0x00, 0x45, 0x35, 0x23, 0xee, 0x1e, 0x40, 0x48, 0xb8, 0x23, + 0xdc, 0x00, 0x80, 0x1a, 0xaf, 0x01, 0xff, 0x47, 0xa1, 0x12, 0xe4, 0x1e, + 0x00, 0x05, 0x3d, 0x01, 0x01, 0xff, 0x45, 0xf9, 0x38, 0x70, 0x01, 0x00, + 0x45, 0x15, 0x23, 0x14, 0x02, 0x40, 0x80, 0x01, 0xff, 0x04, 0x1a, 0x00, + 0x06, 0x45, 0x20, 0x07, 0x72, 0x1e, 0x40, 0x45, 0xf9, 0x38, 0xd7, 0x01, + 0x00, 0x45, 0xe8, 0x97, 0xd9, 0x01, 0x00, 0x45, 0x15, 0x23, 0xdb, 0x01, + 0x00, 0x46, 0xad, 0x70, 0xd5, 0x01, 0x40, 0x44, 0xe7, 0x6c, 0xd3, 0x01, + 0x00, 0x49, 0xd0, 0x04, 0xdb, 0x00, 0xc0, 0x00, 0x46, 0x1f, 0x07, 0x76, + 0x1e, 0x40, 0x06, 0x50, 0x00, 0x61, 0x44, 0x60, 0x2d, 0xde, 0x00, 0x80, + 0x4d, 0x04, 0x0e, 0x0b, 0x37, 0x47, 0x53, 0xd5, 0x2a, 0xa7, 0x00, 0x06, + 0x71, 0x07, 0x04, 0xfa, 0x28, 0xa7, 0x40, 0xe1, 0x6f, 0x2c, 0x80, 0x1e, + 0xe8, 0x8d, 0xa7, 0x00, 0x49, 0x14, 0x70, 0x7e, 0xa7, 0x00, 0xeb, 0xb0, + 0xa7, 0x00, 0xec, 0x80, 0xa7, 0x00, 0xed, 0x9c, 0x01, 0x00, 0xf4, 0xb1, + 0xa7, 0x00, 0xf6, 0x45, 0x02, 0x40, 0x44, 0x3f, 0xe4, 0x70, 0x2c, 0x40, + 0x44, 0x80, 0x11, 0xbc, 0x01, 0x00, 0x43, 0x00, 0x26, 0x84, 0x01, 0x00, + 0x43, 0x1f, 0x0a, 0xa7, 0x01, 0x40, 0x4c, 0xda, 0x28, 0x64, 0xa7, 0xc0, + 0x00, 0x52, 0x14, 0x2b, 0x66, 0xa7, 0x40, 0xa3, 0x31, 0xa4, 0x18, 0x44, + 0xac, 0x0e, 0xac, 0x01, 0x00, 0x4a, 0x9d, 0x6d, 0x6e, 0x1e, 0x00, 0x4e, + 0xa2, 0x0e, 0xae, 0x01, 0x00, 0x46, 0x52, 0x05, 0x66, 0x01, 0x40, 0x4e, + 0x8e, 0x3f, 0x3e, 0x02, 0x00, 0x03, 0x04, 0x0c, 0x01, 0xff, 0x45, 0x5c, + 0x00, 0x6a, 0x1e, 0x00, 0x45, 0x20, 0x07, 0x6c, 0x1e, 0x40, 0x44, 0xe7, + 0x6c, 0x64, 0x01, 0x00, 0x46, 0xfa, 0xc1, 0x62, 0x01, 0x00, 0x4f, 0xf1, + 0x6e, 0x70, 0x1e, 0x00, 0x4a, 0xc5, 0xae, 0x1a, 0x02, 0x40, 0x06, 0x50, + 0x00, 0x31, 0x47, 0xb5, 0xce, 0x8b, 0xa7, 0x00, 0xa3, 0x1d, 0x46, 0xf6, + 0xb0, 0x9e, 0x1e, 0x00, 0x48, 0xf0, 0xc6, 0xd8, 0xa7, 0x00, 0x05, 0x5e, + 0x07, 0x01, 0xff, 0x49, 0x0b, 0xb7, 0xae, 0xa7, 0x00, 0x50, 0x16, 0x66, + 0x4a, 0x02, 0x40, 0x43, 0xb6, 0x7b, 0x8f, 0x01, 0x00, 0x46, 0xb2, 0xca, + 0xac, 0xa7, 0x40, 0x45, 0xf9, 0x38, 0x5a, 0x01, 0x80, 0x5c, 0xa3, 0x3b, + 0xa4, 0x1b, 0x44, 0xac, 0x0e, 0xc5, 0xa7, 0x00, 0x4e, 0x4e, 0x43, 0xa8, + 0xa7, 0x00, 0xb3, 0x01, 0xff, 0x53, 0xf0, 0x49, 0xc9, 0xa7, 0x00, 0x49, + 0x3d, 0xc1, 0x7e, 0x2c, 0x40, 0x4e, 0x8e, 0x3f, 0xcc, 0xa7, 0x00, 0x03, + 0x04, 0x0c, 0x01, 0xff, 0x45, 0x5c, 0x00, 0x60, 0x1e, 0x00, 0x45, 0x20, + 0x07, 0x62, 0x1e, 0xc0, 0x00, 0x4e, 0x35, 0x1e, 0x68, 0x1e, 0x40, 0x44, + 0xe7, 0x6c, 0x60, 0x01, 0x80, 0x12, 0x46, 0xfa, 0xc1, 0x5e, 0x01, 0x00, + 0x49, 0xd0, 0x04, 0x5c, 0x01, 0x00, 0x4a, 0xc5, 0xae, 0x18, 0x02, 0x40, + 0x4e, 0x35, 0x1e, 0x66, 0x1e, 0x40, 0x4e, 0x35, 0x1e, 0x64, 0x1e, 0x40, + 0x80, 0x26, 0x48, 0x48, 0xc3, 0xcb, 0xa7, 0x00, 0x08, 0xde, 0x14, 0x06, + 0x4a, 0x99, 0xb2, 0x5c, 0xa7, 0x40, 0x4a, 0x71, 0xa8, 0x3e, 0xa7, 0x00, + 0xe5, 0x8e, 0x01, 0x00, 0x46, 0x3e, 0xdc, 0xf5, 0xa7, 0x00, 0x46, 0x1e, + 0x29, 0xab, 0xa7, 0x40, 0x47, 0x9c, 0xb2, 0x5a, 0xa7, 0x00, 0x05, 0x51, + 0x00, 0x01, 0xff, 0x45, 0xf9, 0x38, 0x54, 0x01, 0x00, 0xa3, 0x3f, 0x02, + 0x3b, 0x01, 0x1e, 0x4e, 0x5e, 0x23, 0x12, 0x02, 0x00, 0x4a, 0x9d, 0x6d, + 0x5e, 0x1e, 0x00, 0x4e, 0x4e, 0x43, 0xa6, 0xa7, 0x00, 0x46, 0x52, 0x05, + 0x4c, 0x02, 0x00, 0x44, 0x8f, 0x17, 0x64, 0x2c, 0x40, 0x02, 0xc6, 0x00, + 0x06, 0x4a, 0x10, 0x23, 0x10, 0x02, 0x40, 0x45, 0x5c, 0x00, 0x58, 0x1e, + 0x00, 0x45, 0x20, 0x07, 0x5a, 0x1e, 0xc0, 0x00, 0x4b, 0x53, 0x97, 0x5c, + 0x1e, 0x40, 0x44, 0xe7, 0x6c, 0x58, 0x01, 0x00, 0x46, 0xfa, 0xc1, 0x56, + 0x01, 0x40, 0x06, 0x50, 0x00, 0x01, 0xff, 0x4f, 0x8d, 0x3f, 0x58, 0xa7, + 0x00, 0x58, 0x0e, 0x2b, 0x56, 0xa7, 0x40, 0x06, 0x50, 0x00, 0x06, 0x5a, + 0x00, 0x1d, 0xce, 0xa7, 0x40, 0x45, 0xf9, 0x38, 0x54, 0x1e, 0x00, 0x49, + 0x3a, 0x1e, 0x56, 0x1e, 0x00, 0x48, 0x30, 0xc6, 0x52, 0xa7, 0x00, 0x44, + 0xac, 0x0e, 0xa4, 0x01, 0x00, 0xb3, 0x01, 0xff, 0x4c, 0xff, 0x93, 0x54, + 0xa7, 0x00, 0x45, 0x53, 0x05, 0x63, 0x2c, 0xc0, 0x00, 0x52, 0x14, 0x2b, + 0x50, 0xa7, 0x40, 0x06, 0x50, 0x00, 0x24, 0xe9, 0xa2, 0x01, 0x00, 0x4b, + 0x5f, 0x9e, 0xc0, 0xa7, 0x00, 0x44, 0xcc, 0x7b, 0xb6, 0xa7, 0x00, 0xef, + 0x4e, 0xa7, 0x00, 0x04, 0xf7, 0x04, 0x04, 0xf5, 0x22, 0x02, 0x40, 0xe5, + 0x90, 0x01, 0x00, 0xef, 0x86, 0x01, 0x40, 0x45, 0xf9, 0x38, 0xd3, 0x00, + 0x00, 0x45, 0x53, 0x23, 0x4e, 0x01, 0x00, 0xa3, 0xe3, 0x01, 0xa4, 0xa8, + 0x01, 0x45, 0x15, 0x23, 0xd2, 0x00, 0x00, 0x02, 0x0b, 0x00, 0x6e, 0x4e, + 0x5e, 0x23, 0x0e, 0x02, 0x00, 0x02, 0x13, 0x01, 0x58, 0xad, 0x38, 0x46, + 0xba, 0xde, 0xea, 0x01, 0x80, 0x2b, 0x46, 0x52, 0x05, 0xd8, 0x00, 0x80, + 0x1e, 0x45, 0x35, 0x23, 0xd5, 0x00, 0xc0, 0x00, 0x05, 0x19, 0x00, 0x01, + 0xff, 0x45, 0xf9, 0x38, 0x4c, 0x1e, 0x00, 0x49, 0xb7, 0x23, 0x4e, 0x1e, + 0x00, 0x46, 0xad, 0x70, 0x2c, 0x02, 0x40, 0x4a, 0x97, 0xa5, 0xfe, 0x01, + 0x40, 0x4b, 0x53, 0x97, 0xec, 0x01, 0x40, 0x45, 0xae, 0x70, 0x4c, 0x01, + 0x80, 0x06, 0x4b, 0x2f, 0x23, 0x9f, 0x01, 0x40, 0x05, 0x19, 0x00, 0x01, + 0xff, 0x45, 0xf9, 0x38, 0x52, 0x1e, 0x00, 0x45, 0x15, 0x23, 0x50, 0x1e, + 0x40, 0x51, 0xc6, 0x5c, 0x4a, 0xa7, 0x00, 0x42, 0x1f, 0x00, 0x4c, 0xa7, + 0x40, 0x48, 0x39, 0xab, 0xce, 0x1e, 0x00, 0x42, 0x5e, 0x01, 0xa0, 0x01, + 0xc0, 0x00, 0x05, 0x19, 0x00, 0x01, 0xff, 0x45, 0xf9, 0x38, 0xda, 0x1e, + 0x00, 0x49, 0x9f, 0x12, 0xe2, 0x1e, 0x00, 0x45, 0x15, 0x23, 0xdc, 0x1e, + 0x00, 0x4a, 0x37, 0xab, 0xde, 0x1e, 0x00, 0x45, 0x35, 0x23, 0xe0, 0x1e, + 0x40, 0x48, 0xb8, 0x23, 0xd6, 0x00, 0x80, 0x2b, 0xaf, 0x01, 0xff, 0x02, + 0xc6, 0x00, 0x11, 0x05, 0x3d, 0x01, 0x01, 0xff, 0x45, 0xf9, 0x38, 0x50, + 0x01, 0x00, 0x45, 0x15, 0x23, 0x0c, 0x02, 0x40, 0x45, 0x5c, 0x00, 0x2e, + 0x02, 0x80, 0x06, 0x45, 0x20, 0x07, 0xcc, 0x1e, 0x40, 0x4b, 0x53, 0x97, + 0x30, 0x02, 0x40, 0x4b, 0x53, 0x97, 0x2a, 0x02, 0x40, 0x44, 0xe7, 0x6c, + 0xd1, 0x01, 0x00, 0x49, 0xd0, 0x04, 0xd4, 0x00, 0xc0, 0x00, 0x05, 0x19, + 0x00, 0x01, 0xff, 0x45, 0xf9, 0x38, 0xd0, 0x1e, 0x00, 0x49, 0x9f, 0x12, + 0xd8, 0x1e, 0x00, 0x45, 0x15, 0x23, 0xd2, 0x1e, 0x00, 0x4a, 0x37, 0xab, + 0xd4, 0x1e, 0x00, 0x45, 0x35, 0x23, 0xd6, 0x1e, 0x40, 0x06, 0x50, 0x00, + 0x04, 0xea, 0xca, 0x01, 0x40, 0x45, 0xf9, 0x38, 0x43, 0x01, 0x00, 0xa3, + 0x45, 0xa4, 0x2c, 0x45, 0x15, 0x23, 0xf8, 0x01, 0x00, 0xac, 0x12, 0x4e, + 0x4e, 0x43, 0xa4, 0xa7, 0x00, 0x4e, 0x53, 0x7c, 0xcb, 0x01, 0x00, 0x45, + 0x35, 0x23, 0xd1, 0x00, 0x40, 0x48, 0xb2, 0x57, 0x9d, 0x01, 0x00, 0x49, + 0x9e, 0x6d, 0x48, 0x1e, 0x00, 0x4d, 0xef, 0x86, 0x20, 0x02, 0x40, 0x48, + 0x1e, 0x2b, 0x90, 0xa7, 0x00, 0x03, 0x04, 0x0c, 0x01, 0xff, 0x45, 0x5c, + 0x00, 0x44, 0x1e, 0x00, 0x45, 0x20, 0x07, 0x46, 0x1e, 0x40, 0x44, 0xe7, + 0x6c, 0x47, 0x01, 0x00, 0x46, 0xfa, 0xc1, 0x45, 0x01, 0x00, 0x4f, 0xf1, + 0x6e, 0x4a, 0x1e, 0x40, 0x06, 0x50, 0x00, 0x1a, 0x05, 0x7e, 0x02, 0x01, + 0xff, 0x48, 0x88, 0xc2, 0xd6, 0xa7, 0x00, 0x07, 0xea, 0xcd, 0x01, 0xff, + 0x42, 0x60, 0x07, 0xfa, 0x1e, 0x00, 0xf6, 0xfc, 0x1e, 0x40, 0x45, 0xf9, + 0x38, 0x3e, 0x1e, 0x00, 0x04, 0x03, 0x0c, 0x06, 0x44, 0xac, 0x0e, 0x6e, + 0x2c, 0x40, 0x45, 0x5c, 0x00, 0x40, 0x1e, 0x00, 0x45, 0x20, 0x07, 0x42, + 0x1e, 0x40, 0x06, 0x50, 0x00, 0x11, 0x45, 0x43, 0xe4, 0xda, 0xa7, 0x80, + 0x04, 0xea, 0xc7, 0x01, 0x40, 0x4c, 0xda, 0x28, 0xdc, 0xa7, 0x40, 0x45, + 0xf9, 0x38, 0x39, 0x01, 0x00, 0xa2, 0x56, 0xa3, 0x42, 0x02, 0x3b, 0x01, + 0x2b, 0x4b, 0xe9, 0x9c, 0x48, 0xa7, 0x00, 0x4a, 0x9d, 0x6d, 0x3a, 0x1e, + 0x00, 0x07, 0x7d, 0x02, 0x0f, 0xb3, 0x01, 0xff, 0x4d, 0x54, 0x7c, 0xc8, + 0x01, 0x00, 0x45, 0x53, 0x05, 0x41, 0x01, 0x40, 0x43, 0x23, 0x0a, 0x3f, + 0x01, 0x00, 0x45, 0x35, 0x23, 0x62, 0x2c, 0x40, 0x47, 0xa1, 0x12, 0x36, + 0x1e, 0x80, 0x06, 0x48, 0x63, 0xa9, 0x60, 0x2c, 0x40, 0x4b, 0x53, 0x97, + 0x38, 0x1e, 0x40, 0x44, 0xe7, 0x6c, 0x3d, 0x01, 0x00, 0x46, 0xfa, 0xc1, + 0x3b, 0x01, 0x00, 0x4f, 0xf1, 0x6e, 0x3c, 0x1e, 0x40, 0x42, 0x17, 0x00, + 0x3d, 0x02, 0x00, 0x43, 0xdd, 0xa3, 0xad, 0xa7, 0x40, 0x06, 0x50, 0x00, + 0x01, 0xff, 0x45, 0xf9, 0x38, 0x30, 0x1e, 0x00, 0xa3, 0x33, 0xa4, 0x1f, + 0x44, 0xac, 0x0e, 0x98, 0x01, 0x00, 0x4a, 0x9d, 0x6d, 0x34, 0x1e, 0x00, + 0x4e, 0x4e, 0x43, 0xa2, 0xa7, 0x00, 0x46, 0x52, 0x05, 0x40, 0xa7, 0xc0, + 0x00, 0x54, 0x88, 0x3f, 0x44, 0xa7, 0x40, 0x48, 0x1e, 0x2b, 0x69, 0x2c, + 0x00, 0x4e, 0x8e, 0x3f, 0x42, 0xa7, 0x00, 0x48, 0xa0, 0x12, 0x32, 0x1e, + 0x40, 0x44, 0xe7, 0x6c, 0xe8, 0x01, 0x00, 0x46, 0xfa, 0xc1, 0x36, 0x01, + 0x40, 0x06, 0x50, 0x00, 0x01, 0xff, 0xa3, 0x06, 0x46, 0x52, 0x05, 0x48, + 0x02, 0x40, 0x49, 0xd0, 0x04, 0x34, 0x01, 0x00, 0x4b, 0xca, 0x4f, 0xb2, + 0xa7, 0x40, 0x06, 0x50, 0x00, 0x26, 0x07, 0x15, 0x70, 0x0a, 0x43, 0x1b, + 0x05, 0x96, 0x01, 0x00, 0xf3, 0x6c, 0xa7, 0x40, 0xe4, 0x79, 0xa7, 0x00, + 0xe6, 0x7b, 0xa7, 0x00, 0xe7, 0x7d, 0xa7, 0x00, 0xf2, 0x82, 0xa7, 0x00, + 0xf3, 0x84, 0xa7, 0x00, 0xf4, 0x86, 0xa7, 0x40, 0x45, 0xf9, 0x38, 0xcd, + 0x00, 0x00, 0x45, 0x53, 0x23, 0x2c, 0x01, 0x00, 0xa3, 0x59, 0xa4, 0x31, + 0x45, 0x15, 0x23, 0xcc, 0x00, 0x00, 0x4a, 0x37, 0xab, 0xc8, 0x1e, 0x00, + 0x4e, 0x5e, 0x23, 0x0a, 0x02, 0x00, 0x46, 0xad, 0x70, 0x2a, 0x01, 0x00, + 0x46, 0xba, 0xde, 0x2e, 0x01, 0x00, 0x46, 0x52, 0x05, 0x97, 0x01, 0x00, + 0x45, 0x35, 0x23, 0x28, 0x01, 0xc0, 0x00, 0x46, 0x1f, 0x07, 0x2c, 0x1e, + 0x40, 0x48, 0xb8, 0x23, 0xcf, 0x00, 0x80, 0x19, 0xaf, 0x01, 0xff, 0x02, + 0xc6, 0x00, 0x06, 0x4a, 0x10, 0x23, 0x08, 0x02, 0x40, 0x45, 0x5c, 0x00, + 0x30, 0x01, 0x00, 0x45, 0x20, 0x07, 0xca, 0x1e, 0x40, 0x4a, 0x97, 0xa5, + 0x2e, 0x1e, 0x40, 0x44, 0xe7, 0x6c, 0xcf, 0x01, 0x00, 0x49, 0xd0, 0x04, + 0xce, 0x00, 0x40, 0x06, 0x50, 0x00, 0x12, 0x45, 0x3f, 0xdc, 0x75, 0x2c, + 0x00, 0x43, 0x4c, 0x0a, 0x26, 0xa7, 0x00, 0x44, 0x21, 0xf3, 0xf6, 0x01, + 0x40, 0x4b, 0xbb, 0x99, 0x2a, 0x1e, 0x00, 0xa3, 0x2b, 0xa4, 0x0c, 0x44, + 0xac, 0x0e, 0xaa, 0xa7, 0x00, 0x46, 0x52, 0x05, 0x26, 0x01, 0x40, 0x48, + 0x1e, 0x2b, 0x67, 0x2c, 0x00, 0x48, 0xb8, 0x23, 0x26, 0x1e, 0x00, 0x03, + 0x04, 0x0c, 0x01, 0xff, 0x45, 0x5c, 0x00, 0x22, 0x1e, 0x00, 0x45, 0x20, + 0x07, 0x24, 0x1e, 0x40, 0x44, 0xe7, 0x6c, 0x1e, 0x02, 0x00, 0x46, 0xfa, + 0xc1, 0x28, 0x1e, 0x00, 0x49, 0xd0, 0x04, 0x24, 0x01, 0x40, 0x06, 0x50, + 0x00, 0x23, 0x44, 0x00, 0x21, 0x94, 0x01, 0x00, 0x42, 0x22, 0x00, 0xa2, + 0x01, 0x00, 0x07, 0xcf, 0x28, 0x01, 0xff, 0xe1, 0xba, 0xa7, 0x00, 0xe9, + 0xbc, 0xa7, 0x00, 0x44, 0x55, 0x03, 0x41, 0x02, 0x00, 0xf5, 0xbe, 0xa7, + 0x40, 0x45, 0xf9, 0x38, 0xf4, 0x01, 0x00, 0x45, 0x53, 0x23, 0x1e, 0x01, + 0x00, 0xa3, 0x1e, 0x49, 0x3a, 0x1e, 0x20, 0x01, 0x00, 0x44, 0xac, 0x0e, + 0x93, 0x01, 0x00, 0x46, 0xad, 0x70, 0x20, 0x1e, 0x00, 0x4e, 0x4e, 0x43, + 0xa0, 0xa7, 0x00, 0x46, 0x52, 0x05, 0xe4, 0x01, 0x40, 0x44, 0xe7, 0x6c, + 0xe6, 0x01, 0x00, 0x46, 0xfa, 0xc1, 0x22, 0x01, 0x00, 0x49, 0xd0, 0x04, + 0x1c, 0x01, 0x40, 0x06, 0x50, 0x00, 0x01, 0xff, 0x49, 0x3a, 0x1e, 0x1e, + 0x1e, 0x00, 0x44, 0xac, 0x0e, 0x91, 0x01, 0x00, 0x46, 0x52, 0x05, 0x98, + 0xa7, 0x40, 0x06, 0x50, 0x00, 0x3b, 0x0e, 0x2b, 0x78, 0x2b, 0x42, 0x1d, + 0x01, 0x4a, 0x01, 0x00, 0x42, 0xa4, 0x02, 0xa9, 0x01, 0x00, 0xf4, 0x6a, + 0xa7, 0x80, 0x16, 0x42, 0x54, 0x28, 0xb7, 0x01, 0xc0, 0x00, 0x80, 0x01, + 0xff, 0x48, 0x58, 0x13, 0xb8, 0x01, 0x00, 0x4a, 0xe3, 0x97, 0xee, 0x01, + 0x40, 0xe8, 0xd0, 0x00, 0x40, 0x42, 0x9e, 0x01, 0x24, 0xa7, 0x00, 0x43, + 0x68, 0x00, 0x22, 0xa7, 0x40, 0x45, 0xf9, 0x38, 0xc9, 0x00, 0x00, 0x45, + 0x53, 0x23, 0x14, 0x01, 0x00, 0xa3, 0x64, 0xa4, 0x43, 0x45, 0x15, 0x23, + 0xc8, 0x00, 0x00, 0x4a, 0x37, 0xab, 0xba, 0x1e, 0x00, 0x4e, 0x5e, 0x23, + 0x06, 0x02, 0x00, 0x46, 0xad, 0x70, 0x12, 0x01, 0x80, 0x19, 0x46, 0xba, + 0xde, 0x18, 0x01, 0x00, 0x46, 0x52, 0x05, 0x46, 0x02, 0x00, 0x45, 0x35, + 0x23, 0xbc, 0x1e, 0xc0, 0x00, 0x46, 0x1f, 0x07, 0x1a, 0x1e, 0x40, 0x05, + 0x19, 0x00, 0x01, 0xff, 0x45, 0xf9, 0x38, 0x16, 0x1e, 0x00, 0x45, 0x15, + 0x23, 0x14, 0x1e, 0x40, 0x48, 0xb8, 0x23, 0xcb, 0x00, 0x00, 0xaf, 0x01, + 0xff, 0x02, 0xc6, 0x00, 0x06, 0x4a, 0x10, 0x23, 0x04, 0x02, 0x40, 0x45, + 0x5c, 0x00, 0x16, 0x01, 0x00, 0x45, 0x20, 0x07, 0xb8, 0x1e, 0x40, 0x44, + 0xe7, 0x6c, 0x1a, 0x01, 0x00, 0x46, 0xfa, 0xc1, 0x28, 0x02, 0x80, 0x32, + 0x49, 0xd0, 0x04, 0xca, 0x00, 0xc0, 0x00, 0x80, 0x01, 0xff, 0x04, 0x1a, + 0x00, 0x06, 0x45, 0x20, 0x07, 0x18, 0x1e, 0x40, 0x45, 0xf9, 0x38, 0xbe, + 0x1e, 0x00, 0x49, 0x9f, 0x12, 0xc6, 0x1e, 0x00, 0x45, 0x15, 0x23, 0xc0, + 0x1e, 0x00, 0x4a, 0x37, 0xab, 0xc2, 0x1e, 0x00, 0x45, 0x35, 0x23, 0xc4, + 0x1e, 0x40, 0x4a, 0xab, 0xa5, 0x1c, 0x1e, 0x40, 0x06, 0x50, 0x00, 0x1b, + 0x06, 0x3c, 0x01, 0x0b, 0xfa, 0xf1, 0x01, 0xc0, 0x00, 0x4b, 0xe2, 0x97, + 0xc4, 0x01, 0x40, 0x45, 0x11, 0x4a, 0xd2, 0xa7, 0x00, 0x44, 0x68, 0xa4, + 0xd4, 0xa7, 0x40, 0xa3, 0x3d, 0x04, 0x03, 0x0c, 0x2d, 0x44, 0xac, 0x0e, + 0x8a, 0x01, 0x00, 0x4a, 0x9d, 0x6d, 0x0e, 0x1e, 0x00, 0xb3, 0x06, 0x46, + 0xa6, 0xe0, 0x8b, 0x01, 0x40, 0x53, 0xf0, 0x49, 0xc7, 0xa7, 0x00, 0x4d, + 0x83, 0x85, 0xf2, 0x01, 0x80, 0x06, 0x45, 0x53, 0x05, 0x10, 0x01, 0x40, + 0x4b, 0xe2, 0x97, 0xc5, 0x01, 0x40, 0x45, 0x5c, 0x00, 0x0a, 0x1e, 0x00, + 0x45, 0x20, 0x07, 0x0c, 0x1e, 0x40, 0x44, 0xe7, 0x6c, 0x0e, 0x01, 0x00, + 0x46, 0xfa, 0xc1, 0x10, 0x1e, 0x00, 0x4f, 0xf1, 0x6e, 0x12, 0x1e, 0x40, + 0x06, 0x50, 0x00, 0x1f, 0x42, 0x49, 0x00, 0xb3, 0xa7, 0x00, 0x4f, 0x0e, + 0x70, 0xd0, 0xa7, 0x00, 0x42, 0x10, 0x00, 0x6e, 0xa7, 0x00, 0x48, 0xe8, + 0xcb, 0x2c, 0xa7, 0xc0, 0x00, 0x4b, 0xed, 0x97, 0x2e, 0xa7, 0x40, 0x45, + 0xf9, 0x38, 0x06, 0x01, 0x00, 0x43, 0x16, 0x00, 0x92, 0xa7, 0x00, 0xa3, + 0x18, 0x49, 0x3a, 0x1e, 0x0a, 0x01, 0x00, 0x44, 0xac, 0x0e, 0x87, 0x01, + 0x00, 0x4c, 0xf3, 0x56, 0xc4, 0xa7, 0x00, 0x46, 0x52, 0x05, 0x3b, 0x02, + 0x40, 0x44, 0xe7, 0x6c, 0x0c, 0x01, 0x00, 0x46, 0xfa, 0xc1, 0xc7, 0x00, + 0x80, 0x06, 0x49, 0xd0, 0x04, 0x08, 0x01, 0x40, 0x4a, 0x97, 0xa5, 0x08, + 0x1e, 0x40, 0x06, 0x50, 0x00, 0x0c, 0x43, 0x94, 0x0f, 0xb4, 0xa7, 0x00, + 0x47, 0x6f, 0xd5, 0x46, 0xa7, 0x40, 0x04, 0x03, 0x0c, 0x1e, 0x48, 0x30, + 0xc6, 0x96, 0xa7, 0x00, 0x44, 0xac, 0x0e, 0x81, 0x01, 0x00, 0x4a, 0x9d, + 0x6d, 0x06, 0x1e, 0x00, 0x46, 0x52, 0x05, 0x43, 0x02, 0x00, 0x46, 0xa6, + 0xe0, 0x82, 0x01, 0x40, 0x45, 0x5c, 0x00, 0x02, 0x1e, 0x00, 0x45, 0x20, + 0x07, 0x04, 0x1e, 0x40, 0x06, 0x50, 0x00, 0x43, 0xe1, 0x32, 0xa7, 0x00, + 0xe5, 0xc6, 0x00, 0x80, 0x29, 0x48, 0x48, 0xc6, 0x89, 0x01, 0x00, 0x44, + 0x3f, 0xe4, 0x6d, 0x2c, 0x00, 0x4a, 0x61, 0xae, 0xc2, 0xa7, 0x00, 0xef, 0x34, 0xa7, 0x00, 0xf5, 0x36, 0xa7, 0x00, 0xf6, 0x38, 0xa7, 0x80, 0x04, - 0xf9, 0x3c, 0xa7, 0x40, 0x54, 0xf3, 0x3e, 0x3a, 0xa7, 0x40, 0x06, 0x50, - 0x00, 0x01, 0xff, 0x45, 0x29, 0x38, 0xfc, 0x01, 0x00, 0x46, 0x04, 0x6f, - 0xe2, 0x01, 0x40, 0x45, 0x29, 0x38, 0xc1, 0x00, 0x00, 0x45, 0xcb, 0x22, - 0x02, 0x01, 0x80, 0xa2, 0x01, 0xa3, 0x70, 0xa4, 0x41, 0x45, 0x8d, 0x22, - 0xc0, 0x00, 0x00, 0x4a, 0xfb, 0xa8, 0xa2, 0x1e, 0x00, 0x4e, 0xd6, 0x22, - 0x02, 0x02, 0x00, 0x46, 0x04, 0x6f, 0x00, 0x01, 0x00, 0x46, 0xc2, 0xdb, - 0x04, 0x01, 0x00, 0x05, 0xf7, 0x07, 0x0c, 0x46, 0x27, 0x05, 0x3a, 0x02, - 0x00, 0x45, 0xad, 0x22, 0xc3, 0x00, 0x40, 0x45, 0x5c, 0x00, 0xc5, 0x00, - 0x80, 0x06, 0x45, 0xf5, 0x06, 0x00, 0x1e, 0x40, 0x4a, 0x5b, 0xa3, 0xfa, - 0x01, 0x40, 0x48, 0x30, 0x23, 0xc4, 0x00, 0x80, 0x20, 0xaf, 0x01, 0xff, - 0x02, 0xc6, 0x00, 0x06, 0x4a, 0x88, 0x22, 0x00, 0x02, 0x40, 0x45, 0x5c, - 0x00, 0x26, 0x02, 0x80, 0x06, 0x45, 0xf5, 0x06, 0xa0, 0x1e, 0x40, 0x4b, - 0x59, 0x95, 0xe0, 0x01, 0x40, 0x4b, 0x59, 0x95, 0xde, 0x01, 0x40, 0x44, - 0x4d, 0x6b, 0xcd, 0x01, 0x00, 0x49, 0xa5, 0x04, 0xc2, 0x00, 0xc0, 0x00, - 0x05, 0x19, 0x00, 0x01, 0xff, 0x45, 0x29, 0x38, 0xa4, 0x1e, 0x00, 0x49, - 0x50, 0x12, 0xac, 0x1e, 0x00, 0x45, 0x8d, 0x22, 0xa6, 0x1e, 0x00, 0x4a, - 0xfb, 0xa8, 0xa8, 0x1e, 0x00, 0x45, 0xad, 0x22, 0xaa, 0x1e, 0x40, 0x05, - 0x19, 0x00, 0x01, 0xff, 0x45, 0x29, 0x38, 0xae, 0x1e, 0x00, 0x49, 0x50, - 0x12, 0xb6, 0x1e, 0x00, 0x45, 0x8d, 0x22, 0xb0, 0x1e, 0x00, 0x4a, 0xfb, - 0xa8, 0xb2, 0x1e, 0x00, 0x45, 0xad, 0x22, 0xb4, 0x1e, 0x40, 0x80, 0x01, - 0xff, 0x46, 0xeb, 0x07, 0x17, 0xf3, 0x01, 0x49, 0xc8, 0xbe, 0x1c, 0xf3, - 0x41, 0x02, 0x8c, 0x09, 0x06, 0x46, 0xf7, 0x99, 0xbe, 0x20, 0x40, 0x80, - 0x0d, 0x46, 0x05, 0xce, 0xab, 0x2a, 0xc0, 0x00, 0x4c, 0x51, 0x28, 0xad, - 0x2a, 0x40, 0xa2, 0xbd, 0x04, 0x46, 0xe7, 0x02, 0xef, 0x25, 0x00, 0x49, - 0x20, 0x38, 0xd9, 0x27, 0x00, 0x06, 0x4e, 0x88, 0xa0, 0x04, 0x56, 0x7d, - 0x34, 0x1e, 0x2a, 0x00, 0xaf, 0xf0, 0x03, 0x07, 0x1e, 0xd2, 0xdf, 0x03, - 0x04, 0xaf, 0x05, 0xce, 0x03, 0xb4, 0x17, 0x47, 0x16, 0xd4, 0xd8, 0x27, - 0x00, 0x07, 0x04, 0xd5, 0x01, 0xff, 0x46, 0xe7, 0x02, 0xe1, 0xf7, 0x01, - 0x46, 0xab, 0x05, 0xe8, 0xf7, 0x41, 0x5b, 0xc9, 0x1c, 0xfc, 0x2a, 0x00, - 0x03, 0xd1, 0x09, 0x9e, 0x03, 0x0a, 0x9d, 0xb1, 0x01, 0xff, 0xa3, 0xe8, - 0x02, 0x09, 0x42, 0x25, 0xb4, 0x02, 0xac, 0xcb, 0x01, 0xb2, 0xbc, 0x01, - 0xb3, 0x4e, 0x06, 0x6d, 0x02, 0x06, 0x4b, 0x95, 0xa2, 0x41, 0xce, 0x41, - 0x0f, 0x3a, 0x6c, 0x38, 0x05, 0xc3, 0x00, 0x1f, 0x06, 0xc8, 0x00, 0x06, - 0x48, 0x66, 0x78, 0x1c, 0xce, 0x41, 0x43, 0x3e, 0x17, 0x24, 0xce, 0x01, - 0xa3, 0x01, 0xff, 0x45, 0xcf, 0x0a, 0x27, 0xce, 0x01, 0x45, 0x5a, 0xe7, - 0x26, 0xce, 0x41, 0x43, 0x3e, 0x17, 0x1a, 0xce, 0x01, 0xa3, 0x01, 0xff, - 0x45, 0xcf, 0x0a, 0x1b, 0xce, 0x01, 0x45, 0x5a, 0xe7, 0x1d, 0xce, 0x41, - 0xed, 0x21, 0xce, 0x01, 0xf7, 0x31, 0xce, 0x41, 0x05, 0x75, 0x33, 0x5c, - 0x43, 0x2a, 0x10, 0x29, 0xce, 0xc1, 0x00, 0x06, 0x50, 0x00, 0x35, 0x8d, - 0x01, 0xff, 0x42, 0x36, 0xf0, 0x50, 0xce, 0x81, 0x25, 0xd2, 0x4f, 0xce, + 0xf9, 0x3c, 0xa7, 0x40, 0x54, 0xec, 0x3f, 0x3a, 0xa7, 0x40, 0x06, 0x50, + 0x00, 0x01, 0xff, 0x45, 0xf9, 0x38, 0xfc, 0x01, 0x00, 0x46, 0xad, 0x70, + 0xe2, 0x01, 0x40, 0x45, 0xf9, 0x38, 0xc1, 0x00, 0x00, 0x45, 0x53, 0x23, + 0x02, 0x01, 0x80, 0xa2, 0x01, 0xa3, 0x70, 0xa4, 0x41, 0x45, 0x15, 0x23, + 0xc0, 0x00, 0x00, 0x4a, 0x37, 0xab, 0xa2, 0x1e, 0x00, 0x4e, 0x5e, 0x23, + 0x02, 0x02, 0x00, 0x46, 0xad, 0x70, 0x00, 0x01, 0x00, 0x46, 0xba, 0xde, + 0x04, 0x01, 0x00, 0x05, 0x22, 0x08, 0x0c, 0x46, 0x52, 0x05, 0x3a, 0x02, + 0x00, 0x45, 0x35, 0x23, 0xc3, 0x00, 0x40, 0x45, 0x5c, 0x00, 0xc5, 0x00, + 0x80, 0x06, 0x45, 0x20, 0x07, 0x00, 0x1e, 0x40, 0x4a, 0x97, 0xa5, 0xfa, + 0x01, 0x40, 0x48, 0xb8, 0x23, 0xc4, 0x00, 0x80, 0x20, 0xaf, 0x01, 0xff, + 0x02, 0xc6, 0x00, 0x06, 0x4a, 0x10, 0x23, 0x00, 0x02, 0x40, 0x45, 0x5c, + 0x00, 0x26, 0x02, 0x80, 0x06, 0x45, 0x20, 0x07, 0xa0, 0x1e, 0x40, 0x4b, + 0x53, 0x97, 0xe0, 0x01, 0x40, 0x4b, 0x53, 0x97, 0xde, 0x01, 0x40, 0x44, + 0xe7, 0x6c, 0xcd, 0x01, 0x00, 0x49, 0xd0, 0x04, 0xc2, 0x00, 0xc0, 0x00, + 0x05, 0x19, 0x00, 0x01, 0xff, 0x45, 0xf9, 0x38, 0xa4, 0x1e, 0x00, 0x49, + 0x9f, 0x12, 0xac, 0x1e, 0x00, 0x45, 0x15, 0x23, 0xa6, 0x1e, 0x00, 0x4a, + 0x37, 0xab, 0xa8, 0x1e, 0x00, 0x45, 0x35, 0x23, 0xaa, 0x1e, 0x40, 0x05, + 0x19, 0x00, 0x01, 0xff, 0x45, 0xf9, 0x38, 0xae, 0x1e, 0x00, 0x49, 0x9f, + 0x12, 0xb6, 0x1e, 0x00, 0x45, 0x15, 0x23, 0xb0, 0x1e, 0x00, 0x4a, 0x37, + 0xab, 0xb2, 0x1e, 0x00, 0x45, 0x35, 0x23, 0xb4, 0x1e, 0x40, 0x80, 0x01, + 0xff, 0x46, 0x16, 0x08, 0x17, 0xf3, 0x01, 0x49, 0x4f, 0xc1, 0x1c, 0xf3, + 0x41, 0x02, 0xdb, 0x09, 0x06, 0x46, 0x12, 0x9c, 0xbe, 0x20, 0x40, 0x80, + 0x0d, 0x46, 0xdf, 0xd0, 0xab, 0x2a, 0xc0, 0x00, 0x4c, 0xf2, 0x28, 0xad, + 0x2a, 0x40, 0xa2, 0xbd, 0x04, 0x46, 0x12, 0x03, 0xef, 0x25, 0x00, 0x49, + 0xf0, 0x38, 0xd9, 0x27, 0x00, 0x06, 0x0b, 0x8a, 0xa0, 0x04, 0x56, 0x4d, + 0x35, 0x1e, 0x2a, 0x00, 0xaf, 0xf0, 0x03, 0x07, 0xf1, 0xd4, 0xdf, 0x03, + 0x04, 0xda, 0x05, 0xce, 0x03, 0xb4, 0x17, 0x47, 0xe9, 0xd6, 0xd8, 0x27, + 0x00, 0x07, 0xde, 0xd7, 0x01, 0xff, 0x46, 0x12, 0x03, 0xe1, 0xf7, 0x01, + 0x46, 0xd6, 0x05, 0xe8, 0xf7, 0x41, 0x5b, 0x6b, 0x1d, 0xfc, 0x2a, 0x00, + 0x03, 0x20, 0x0a, 0x9e, 0x03, 0x0a, 0xf7, 0xb3, 0x01, 0xff, 0xa3, 0xe8, + 0x02, 0x09, 0xe3, 0x25, 0xb4, 0x02, 0xac, 0xcb, 0x01, 0xb2, 0xbc, 0x01, + 0xb3, 0x4e, 0x06, 0x6d, 0x02, 0x06, 0x4b, 0xd1, 0xa4, 0x41, 0xce, 0x41, + 0x0f, 0xe3, 0x6d, 0x38, 0x05, 0xc3, 0x00, 0x1f, 0x06, 0xc8, 0x00, 0x06, + 0x48, 0xc7, 0x79, 0x1c, 0xce, 0x41, 0x43, 0xaa, 0x17, 0x24, 0xce, 0x01, + 0xa3, 0x01, 0xff, 0x45, 0x1e, 0x0b, 0x27, 0xce, 0x01, 0x45, 0x7e, 0xea, + 0x26, 0xce, 0x41, 0x43, 0xaa, 0x17, 0x1a, 0xce, 0x01, 0xa3, 0x01, 0xff, + 0x45, 0x1e, 0x0b, 0x1b, 0xce, 0x01, 0x45, 0x7e, 0xea, 0x1d, 0xce, 0x41, + 0xed, 0x21, 0xce, 0x01, 0xf7, 0x31, 0xce, 0x41, 0x05, 0x34, 0x07, 0x5c, + 0x43, 0x79, 0x10, 0x29, 0xce, 0xc1, 0x00, 0x06, 0x50, 0x00, 0x35, 0x8d, + 0x01, 0xff, 0x42, 0x89, 0xf3, 0x50, 0xce, 0x81, 0x25, 0xd2, 0x4f, 0xce, 0x81, 0x12, 0xd3, 0x4d, 0xce, 0x81, 0x09, 0xd4, 0x49, 0xce, 0xc1, 0x00, 0xd5, 0x47, 0xce, 0x41, 0xd4, 0x4a, 0xce, 0x41, 0xd3, 0x4e, 0xce, 0xc1, - 0x00, 0xd4, 0x4b, 0xce, 0xc1, 0x00, 0xd5, 0x48, 0xce, 0x41, 0x42, 0xa6, - 0xf1, 0x4c, 0xce, 0x41, 0x48, 0x94, 0x73, 0x3a, 0xce, 0x01, 0x05, 0xc3, - 0x00, 0x06, 0x4e, 0x58, 0x7a, 0x28, 0xce, 0x41, 0x48, 0x94, 0x73, 0x36, - 0xce, 0x01, 0x45, 0x11, 0x0d, 0x39, 0xce, 0x41, 0x4e, 0x60, 0x78, 0x2d, - 0xce, 0x01, 0x4e, 0xc0, 0x7c, 0x23, 0xce, 0x41, 0x54, 0x43, 0x3f, 0x35, - 0xce, 0x01, 0x48, 0x4a, 0xc4, 0x25, 0xce, 0x41, 0x47, 0xe1, 0xcd, 0x1e, - 0xce, 0x01, 0x05, 0x14, 0x01, 0x01, 0xff, 0x0f, 0x3a, 0x6c, 0x4f, 0x05, - 0xc3, 0x00, 0x2e, 0x06, 0xc8, 0x00, 0x06, 0x48, 0x66, 0x78, 0x3c, 0xce, - 0x41, 0xa1, 0x0f, 0xa3, 0x01, 0xff, 0x45, 0xcf, 0x0a, 0x44, 0xce, 0x01, - 0x45, 0x5a, 0xe7, 0x46, 0xce, 0x41, 0x52, 0x6a, 0x52, 0x37, 0xce, 0x01, - 0x42, 0xe9, 0x02, 0x43, 0xce, 0xc1, 0x00, 0x4a, 0x5f, 0xa4, 0x45, 0xce, - 0x41, 0xa1, 0x0f, 0xa3, 0x01, 0xff, 0x45, 0xcf, 0x0a, 0x3d, 0xce, 0x01, - 0x45, 0x5a, 0xe7, 0x3f, 0xce, 0x41, 0x51, 0x17, 0x5b, 0x2e, 0xce, 0x01, - 0x42, 0xe9, 0x02, 0x3e, 0xce, 0x41, 0xed, 0x30, 0xce, 0x01, 0xf7, 0x42, + 0x00, 0xd4, 0x4b, 0xce, 0xc1, 0x00, 0xd5, 0x48, 0xce, 0x41, 0x42, 0xf0, + 0xf4, 0x4c, 0xce, 0x41, 0x48, 0x1f, 0x75, 0x3a, 0xce, 0x01, 0x05, 0xc3, + 0x00, 0x06, 0x4e, 0xb9, 0x7b, 0x28, 0xce, 0x41, 0x48, 0x1f, 0x75, 0x36, + 0xce, 0x01, 0x45, 0x60, 0x0d, 0x39, 0xce, 0x41, 0x4e, 0xc1, 0x79, 0x2d, + 0xce, 0x01, 0x4e, 0x2f, 0x7e, 0x23, 0xce, 0x41, 0x54, 0x3c, 0x40, 0x35, + 0xce, 0x01, 0x48, 0xe8, 0xc6, 0x25, 0xce, 0x41, 0x47, 0xbb, 0xd0, 0x1e, + 0xce, 0x01, 0x05, 0x14, 0x01, 0x01, 0xff, 0x0f, 0xe3, 0x6d, 0x4f, 0x05, + 0xc3, 0x00, 0x2e, 0x06, 0xc8, 0x00, 0x06, 0x48, 0xc7, 0x79, 0x3c, 0xce, + 0x41, 0xa1, 0x0f, 0xa3, 0x01, 0xff, 0x45, 0x1e, 0x0b, 0x44, 0xce, 0x01, + 0x45, 0x7e, 0xea, 0x46, 0xce, 0x41, 0x52, 0xb3, 0x53, 0x37, 0xce, 0x01, + 0x42, 0x14, 0x03, 0x43, 0xce, 0xc1, 0x00, 0x4a, 0x9b, 0xa6, 0x45, 0xce, + 0x41, 0xa1, 0x0f, 0xa3, 0x01, 0xff, 0x45, 0x1e, 0x0b, 0x3d, 0xce, 0x01, + 0x45, 0x7e, 0xea, 0x3f, 0xce, 0x41, 0x51, 0x82, 0x5c, 0x2e, 0xce, 0x01, + 0x42, 0x14, 0x03, 0x3e, 0xce, 0x41, 0xed, 0x30, 0xce, 0x01, 0xf7, 0x42, 0xce, 0x41, 0x06, 0x13, 0x01, 0x1f, 0x06, 0x6d, 0x02, 0x01, 0xff, 0x44, 0xc3, 0x00, 0x3b, 0xce, 0x81, 0x0d, 0x45, 0xc8, 0x00, 0x2b, 0xce, 0xc1, - 0x00, 0x50, 0x2f, 0x43, 0x2a, 0xce, 0x41, 0x4f, 0xd7, 0x38, 0x38, 0xce, + 0x00, 0x50, 0x3c, 0x44, 0x2a, 0xce, 0x41, 0x4f, 0xa7, 0x39, 0x38, 0xce, 0x41, 0x44, 0xc3, 0x00, 0x22, 0xce, 0x01, 0x45, 0xc8, 0x00, 0x2c, 0xce, - 0x41, 0x09, 0x19, 0xb6, 0x18, 0x47, 0x95, 0x73, 0x1f, 0xce, 0xc1, 0x00, - 0x06, 0x50, 0x00, 0x01, 0xff, 0x4a, 0x17, 0xab, 0x20, 0xce, 0x01, 0x4a, - 0x99, 0xb0, 0x40, 0xce, 0x41, 0xeb, 0x2f, 0xce, 0x01, 0xf8, 0x32, 0xce, - 0x01, 0xf9, 0x33, 0xce, 0x01, 0x4f, 0x8d, 0x73, 0x34, 0xce, 0x41, 0x5d, - 0xa6, 0x0b, 0x3c, 0x0b, 0x01, 0x5f, 0x7b, 0x11, 0x3e, 0x0b, 0x41, 0x46, - 0xe7, 0x02, 0x34, 0xf5, 0x01, 0x46, 0xab, 0x05, 0xe5, 0xf7, 0x41, 0x46, - 0xe7, 0x02, 0xe3, 0xf7, 0x01, 0x46, 0xab, 0x05, 0xea, 0xf7, 0x41, 0x03, - 0xc4, 0x07, 0x17, 0x06, 0x18, 0x1c, 0x01, 0xff, 0x46, 0xe7, 0x02, 0xe0, - 0xf7, 0x01, 0x47, 0x88, 0x43, 0x36, 0xf5, 0x01, 0x46, 0xab, 0x05, 0xe7, - 0xf7, 0x41, 0x5d, 0xdf, 0x14, 0x3d, 0x0b, 0x01, 0x5f, 0x5c, 0x11, 0x3f, - 0x0b, 0x41, 0x46, 0xe7, 0x02, 0xe2, 0xf7, 0x01, 0x46, 0xab, 0x05, 0xe9, - 0xf7, 0x41, 0x04, 0x16, 0x8b, 0x11, 0x05, 0x5f, 0xe7, 0x01, 0xff, 0x46, - 0xe7, 0x02, 0xe4, 0xf7, 0x01, 0x46, 0xab, 0x05, 0xeb, 0xf7, 0x41, 0x46, - 0xe7, 0x02, 0x35, 0xf5, 0x01, 0x47, 0x88, 0x43, 0x37, 0xf5, 0x01, 0x46, - 0xab, 0x05, 0xe6, 0xf7, 0x41, 0x51, 0x92, 0x57, 0xcc, 0x0e, 0x00, 0x06, - 0xc4, 0x06, 0x8a, 0x04, 0x48, 0x45, 0x29, 0xaf, 0x0e, 0x00, 0x03, 0x3a, - 0x70, 0xf3, 0x03, 0x45, 0xcb, 0xe4, 0xc6, 0x0e, 0x00, 0x07, 0xc1, 0x05, - 0x92, 0x01, 0x49, 0x09, 0xba, 0xcd, 0x0e, 0x00, 0xb3, 0x74, 0x09, 0x69, - 0xbd, 0x57, 0x0b, 0xd1, 0x75, 0x06, 0x48, 0x02, 0xca, 0xce, 0x0e, 0x40, + 0x41, 0x09, 0x6a, 0xb8, 0x18, 0x47, 0x20, 0x75, 0x1f, 0xce, 0xc1, 0x00, + 0x06, 0x50, 0x00, 0x01, 0xff, 0x4a, 0x71, 0xad, 0x20, 0xce, 0x01, 0x4a, + 0xe9, 0xb2, 0x40, 0xce, 0x41, 0xeb, 0x2f, 0xce, 0x01, 0xf8, 0x32, 0xce, + 0x01, 0xf9, 0x33, 0xce, 0x01, 0x4f, 0x18, 0x75, 0x34, 0xce, 0x41, 0x5d, + 0xf5, 0x0b, 0x3c, 0x0b, 0x01, 0x5f, 0xca, 0x11, 0x3e, 0x0b, 0x41, 0x46, + 0x12, 0x03, 0x34, 0xf5, 0x01, 0x46, 0xd6, 0x05, 0xe5, 0xf7, 0x41, 0x46, + 0x12, 0x03, 0xe3, 0xf7, 0x01, 0x46, 0xd6, 0x05, 0xea, 0xf7, 0x41, 0x03, + 0xef, 0x07, 0x17, 0x06, 0x9f, 0x1c, 0x01, 0xff, 0x46, 0x12, 0x03, 0xe0, + 0xf7, 0x01, 0x47, 0x95, 0x44, 0x36, 0xf5, 0x01, 0x46, 0xd6, 0x05, 0xe7, + 0xf7, 0x41, 0x5d, 0x4b, 0x15, 0x3d, 0x0b, 0x01, 0x5f, 0xab, 0x11, 0x3f, + 0x0b, 0x41, 0x46, 0x12, 0x03, 0xe2, 0xf7, 0x01, 0x46, 0xd6, 0x05, 0xe9, + 0xf7, 0x41, 0x04, 0xd4, 0x8c, 0x11, 0x05, 0x83, 0xea, 0x01, 0xff, 0x46, + 0x12, 0x03, 0xe4, 0xf7, 0x01, 0x46, 0xd6, 0x05, 0xeb, 0xf7, 0x41, 0x46, + 0x12, 0x03, 0x35, 0xf5, 0x01, 0x47, 0x95, 0x44, 0x37, 0xf5, 0x01, 0x46, + 0xd6, 0x05, 0xe6, 0xf7, 0x41, 0x51, 0xfd, 0x58, 0xcc, 0x0e, 0x00, 0x06, + 0xef, 0x06, 0x8a, 0x04, 0x48, 0xce, 0x29, 0xaf, 0x0e, 0x00, 0x03, 0xd4, + 0x71, 0xf3, 0x03, 0x45, 0xe0, 0xe7, 0xc6, 0x0e, 0x00, 0x07, 0xec, 0x05, + 0x92, 0x01, 0x49, 0x6c, 0xbc, 0xcd, 0x0e, 0x00, 0xb3, 0x74, 0x09, 0xe7, + 0xbf, 0x57, 0x0b, 0x40, 0x77, 0x06, 0x48, 0xc0, 0xcc, 0xce, 0x0e, 0x40, 0xe1, 0xb0, 0x0e, 0x80, 0x38, 0xe5, 0xc0, 0x0e, 0x80, 0x2f, 0xe9, 0xb4, - 0x0e, 0x80, 0x26, 0x05, 0x52, 0xe5, 0x16, 0xef, 0xc2, 0x0e, 0x00, 0xf5, + 0x0e, 0x80, 0x26, 0x05, 0x67, 0xe8, 0x16, 0xef, 0xc2, 0x0e, 0x00, 0xf5, 0xb8, 0x0e, 0x80, 0x09, 0xf9, 0xb6, 0x0e, 0xc0, 0x00, 0xf9, 0xb7, 0x0e, 0x40, 0xf5, 0xb9, 0x0e, 0x40, 0x42, 0x1a, 0x00, 0xb1, 0x0e, 0x00, 0x42, 0x10, 0x00, 0xbb, 0x0e, 0x40, 0xe9, 0xb5, 0x0e, 0x40, 0xe9, 0xc1, 0x0e, 0x40, 0xe1, 0xb2, 0x0e, 0x00, 0xe9, 0xc4, 0x0e, 0x00, 0xed, 0xb3, 0x0e, - 0x00, 0xf9, 0xc3, 0x0e, 0x40, 0x46, 0x7e, 0xd7, 0xcb, 0x0e, 0x00, 0x42, - 0x69, 0x18, 0xc8, 0x0e, 0x00, 0xb4, 0x01, 0xff, 0x42, 0x0b, 0x00, 0xc9, - 0x0e, 0x00, 0xe9, 0xca, 0x0e, 0x40, 0x0e, 0xce, 0x75, 0x06, 0x4f, 0xc1, - 0x6c, 0xba, 0x0e, 0x40, 0x42, 0x13, 0x01, 0xbc, 0x0e, 0x00, 0x43, 0xc4, - 0x52, 0xbd, 0x0e, 0x40, 0x42, 0x5d, 0x00, 0x9a, 0x0e, 0x00, 0x42, 0xe8, - 0x04, 0x88, 0x0e, 0x00, 0x42, 0x3b, 0x01, 0x94, 0x0e, 0x00, 0x03, 0xf8, - 0xd1, 0xa5, 0x02, 0x03, 0x3a, 0x70, 0x94, 0x02, 0xab, 0xea, 0x01, 0x42, - 0x13, 0x01, 0xa5, 0x0e, 0x80, 0xd1, 0x01, 0x42, 0x98, 0x07, 0xa1, 0x0e, + 0x00, 0xf9, 0xc3, 0x0e, 0x40, 0x46, 0x64, 0xda, 0xcb, 0x0e, 0x00, 0x42, + 0xd5, 0x18, 0xc8, 0x0e, 0x00, 0xb4, 0x01, 0xff, 0x42, 0x0b, 0x00, 0xc9, + 0x0e, 0x00, 0xe9, 0xca, 0x0e, 0x40, 0x0e, 0x3d, 0x77, 0x06, 0x4f, 0x79, + 0x6e, 0xba, 0x0e, 0x40, 0x42, 0x13, 0x01, 0xbc, 0x0e, 0x00, 0x43, 0x0d, + 0x54, 0xbd, 0x0e, 0x40, 0x42, 0x5d, 0x00, 0x9a, 0x0e, 0x00, 0x42, 0x13, + 0x05, 0x88, 0x0e, 0x00, 0x42, 0x3b, 0x01, 0x94, 0x0e, 0x00, 0x03, 0xcb, + 0xd4, 0xa5, 0x02, 0x03, 0xd4, 0x71, 0x94, 0x02, 0xab, 0xea, 0x01, 0x42, + 0x13, 0x01, 0xa5, 0x0e, 0x80, 0xd1, 0x01, 0x42, 0xc3, 0x07, 0xa1, 0x0e, 0x00, 0xae, 0xb8, 0x01, 0xef, 0xad, 0x0e, 0x00, 0xb0, 0x4b, 0x42, 0xd0, 0x00, 0xa3, 0x0e, 0x00, 0xb3, 0x22, 0xb4, 0x0c, 0x42, 0x15, 0x02, 0xa7, - 0x0e, 0x00, 0x42, 0x60, 0x46, 0xa2, 0x0e, 0x40, 0x03, 0x3a, 0x70, 0x04, - 0xef, 0x95, 0x0e, 0x40, 0x44, 0xd4, 0xbd, 0x96, 0x0e, 0x00, 0x43, 0x56, - 0x31, 0x97, 0x0e, 0x40, 0x09, 0xc7, 0xb3, 0x11, 0x02, 0x7b, 0x02, 0x01, - 0xff, 0x44, 0xd4, 0xbd, 0xaa, 0x0e, 0x00, 0x43, 0x56, 0x31, 0x8a, 0x0e, - 0x40, 0x42, 0x22, 0x00, 0xa8, 0x0e, 0x00, 0x42, 0x15, 0x06, 0xa9, 0x0e, - 0x40, 0x04, 0xc6, 0x6c, 0x14, 0x03, 0x3a, 0x70, 0x04, 0xef, 0x9b, 0x0e, - 0x40, 0x44, 0xd4, 0xbd, 0x9c, 0x0e, 0x00, 0x43, 0x56, 0x31, 0x9e, 0x0e, - 0x40, 0x43, 0x50, 0x2a, 0xa0, 0x0e, 0x00, 0x43, 0xef, 0x1f, 0x89, 0x0e, - 0x00, 0xa4, 0x2f, 0x43, 0xf3, 0x99, 0x86, 0x0e, 0x00, 0x43, 0x11, 0xf1, - 0x8c, 0x0e, 0x00, 0x43, 0xdd, 0x0d, 0xac, 0x0e, 0x00, 0xae, 0x0f, 0x02, - 0xc3, 0x05, 0x01, 0xff, 0xe1, 0x8f, 0x0e, 0x00, 0x42, 0x22, 0x00, 0x90, - 0x0e, 0x40, 0x42, 0xff, 0x04, 0x93, 0x0e, 0x00, 0x42, 0x34, 0x22, 0x8e, + 0x0e, 0x00, 0x42, 0xa9, 0x47, 0xa2, 0x0e, 0x40, 0x03, 0xd4, 0x71, 0x04, + 0xef, 0x95, 0x0e, 0x40, 0x44, 0x5b, 0xc0, 0x96, 0x0e, 0x00, 0x43, 0x3c, + 0x32, 0x97, 0x0e, 0x40, 0x09, 0x21, 0xb6, 0x11, 0x02, 0x7b, 0x02, 0x01, + 0xff, 0x44, 0x5b, 0xc0, 0xaa, 0x0e, 0x00, 0x43, 0x3c, 0x32, 0x8a, 0x0e, + 0x40, 0x42, 0x22, 0x00, 0xa8, 0x0e, 0x00, 0x42, 0x40, 0x06, 0xa9, 0x0e, + 0x40, 0x04, 0x7e, 0x6e, 0x14, 0x03, 0xd4, 0x71, 0x04, 0xef, 0x9b, 0x0e, + 0x40, 0x44, 0x5b, 0xc0, 0x9c, 0x0e, 0x00, 0x43, 0x3c, 0x32, 0x9e, 0x0e, + 0x40, 0x43, 0xd9, 0x2a, 0xa0, 0x0e, 0x00, 0x43, 0x91, 0x20, 0x89, 0x0e, + 0x00, 0xa4, 0x2f, 0x43, 0x0e, 0x9c, 0x86, 0x0e, 0x00, 0x43, 0x9c, 0x45, + 0x8c, 0x0e, 0x00, 0x43, 0x2c, 0x0e, 0xac, 0x0e, 0x00, 0xae, 0x0f, 0x02, + 0xee, 0x05, 0x01, 0xff, 0xe1, 0x8f, 0x0e, 0x00, 0x42, 0x22, 0x00, 0x90, + 0x0e, 0x40, 0x42, 0x2a, 0x05, 0x93, 0x0e, 0x00, 0x42, 0xbc, 0x22, 0x8e, 0x0e, 0x40, 0xa4, 0x06, 0x42, 0x22, 0x00, 0x98, 0x0e, 0x40, 0xe1, 0x91, - 0x0e, 0x00, 0x42, 0x22, 0x00, 0x92, 0x0e, 0x40, 0x42, 0xb7, 0x13, 0x87, - 0x0e, 0x00, 0xef, 0x99, 0x0e, 0x00, 0x42, 0x60, 0x46, 0x8d, 0x0e, 0x40, + 0x0e, 0x00, 0x42, 0x22, 0x00, 0x92, 0x0e, 0x40, 0x42, 0x06, 0x14, 0x87, + 0x0e, 0x00, 0xef, 0x99, 0x0e, 0x00, 0x42, 0xa9, 0x47, 0x8d, 0x0e, 0x40, 0x02, 0x73, 0x00, 0x01, 0xff, 0x43, 0xa1, 0x01, 0xa3, 0x0e, 0x00, 0x43, - 0x25, 0x6b, 0xa5, 0x0e, 0x40, 0xa8, 0x04, 0xef, 0x81, 0x0e, 0x40, 0x03, - 0xa1, 0x87, 0x11, 0x02, 0x7b, 0x02, 0x01, 0xff, 0x44, 0xd4, 0xbd, 0x82, - 0x0e, 0x00, 0x43, 0x56, 0x31, 0x84, 0x0e, 0x40, 0x42, 0xb7, 0x13, 0xde, - 0x0e, 0x00, 0x43, 0xc4, 0x52, 0xdf, 0x0e, 0x40, 0x44, 0xd4, 0xbd, 0xab, - 0x0e, 0x00, 0x43, 0x56, 0x31, 0xae, 0x0e, 0x40, 0xa6, 0x0c, 0x44, 0xd4, - 0xbd, 0x9f, 0x0e, 0x00, 0x43, 0x56, 0x31, 0x9d, 0x0e, 0x40, 0x42, 0x9e, - 0x10, 0x9f, 0x0e, 0x00, 0x42, 0x10, 0x00, 0x9d, 0x0e, 0x40, 0x42, 0x98, - 0x07, 0xdd, 0x0e, 0x00, 0x42, 0xb4, 0x01, 0xdc, 0x0e, 0x40, 0x45, 0xc3, - 0x0a, 0xd8, 0x0e, 0x00, 0xa6, 0x2e, 0x44, 0x46, 0x2a, 0xd9, 0x0e, 0x00, - 0x43, 0xbf, 0x0a, 0xd1, 0x0e, 0x00, 0xb3, 0x14, 0xb4, 0x06, 0x44, 0xa1, - 0x1d, 0xd0, 0x0e, 0x40, 0x44, 0x25, 0x01, 0xd3, 0x0e, 0x00, 0x42, 0x15, - 0x02, 0xd2, 0x0e, 0x40, 0x44, 0x27, 0x1d, 0xd7, 0x0e, 0x00, 0x42, 0x60, - 0x25, 0xd6, 0x0e, 0x40, 0x43, 0xa7, 0x05, 0xd5, 0x0e, 0x00, 0x43, 0xcb, - 0x06, 0xd4, 0x0e, 0x40, 0x43, 0x4e, 0x1a, 0x9c, 0xfa, 0x01, 0x48, 0xf2, - 0xc9, 0x1e, 0xf4, 0x41, 0x45, 0x95, 0xde, 0x7c, 0xf9, 0x01, 0x42, 0xd8, + 0xbf, 0x6c, 0xa5, 0x0e, 0x40, 0xa8, 0x04, 0xef, 0x81, 0x0e, 0x40, 0x03, + 0x6b, 0x89, 0x11, 0x02, 0x7b, 0x02, 0x01, 0xff, 0x44, 0x5b, 0xc0, 0x82, + 0x0e, 0x00, 0x43, 0x3c, 0x32, 0x84, 0x0e, 0x40, 0x42, 0x06, 0x14, 0xde, + 0x0e, 0x00, 0x43, 0x0d, 0x54, 0xdf, 0x0e, 0x40, 0x44, 0x5b, 0xc0, 0xab, + 0x0e, 0x00, 0x43, 0x3c, 0x32, 0xae, 0x0e, 0x40, 0xa6, 0x0c, 0x44, 0x5b, + 0xc0, 0x9f, 0x0e, 0x00, 0x43, 0x3c, 0x32, 0x9d, 0x0e, 0x40, 0x42, 0xed, + 0x10, 0x9f, 0x0e, 0x00, 0x42, 0x10, 0x00, 0x9d, 0x0e, 0x40, 0x42, 0xc3, + 0x07, 0xdd, 0x0e, 0x00, 0x42, 0xb4, 0x01, 0xdc, 0x0e, 0x40, 0x45, 0x12, + 0x0b, 0xd8, 0x0e, 0x00, 0xa6, 0x2e, 0x44, 0xcf, 0x2a, 0xd9, 0x0e, 0x00, + 0x43, 0x0e, 0x0b, 0xd1, 0x0e, 0x00, 0xb3, 0x14, 0xb4, 0x06, 0x44, 0x43, + 0x1e, 0xd0, 0x0e, 0x40, 0x44, 0x25, 0x01, 0xd3, 0x0e, 0x00, 0x42, 0x15, + 0x02, 0xd2, 0x0e, 0x40, 0x44, 0xc9, 0x1d, 0xd7, 0x0e, 0x00, 0x42, 0x01, + 0x26, 0xd6, 0x0e, 0x40, 0x43, 0xd2, 0x05, 0xd5, 0x0e, 0x00, 0x43, 0xf6, + 0x06, 0xd4, 0x0e, 0x40, 0x46, 0x00, 0xdb, 0xd8, 0xf6, 0x01, 0x49, 0x4b, + 0xb9, 0x01, 0x00, 0x4e, 0x43, 0xd5, 0x1a, 0x9c, 0xfa, 0x01, 0x48, 0xb0, + 0xcc, 0x1e, 0xf4, 0x41, 0x45, 0xa5, 0xe1, 0x7c, 0xf9, 0x01, 0x42, 0xd8, 0x00, 0xf7, 0xf3, 0x41, 0xa1, 0x8f, 0x16, 0xa5, 0xe8, 0x15, 0xa8, 0xdf, - 0x03, 0xa9, 0x22, 0xae, 0x14, 0xaf, 0x06, 0x45, 0x55, 0xe7, 0xe3, 0x2b, - 0x40, 0x43, 0xe0, 0x18, 0x28, 0xf4, 0x01, 0x54, 0x07, 0x44, 0x7f, 0x32, - 0x40, 0x4d, 0xe1, 0x80, 0xce, 0xf9, 0x01, 0x42, 0xf0, 0x04, 0xa2, 0xfa, - 0x41, 0x44, 0x52, 0x18, 0x58, 0xf4, 0x01, 0x46, 0x2d, 0x03, 0xad, 0x20, - 0x00, 0x08, 0x82, 0xc7, 0x3c, 0x42, 0xee, 0x00, 0x8f, 0xf4, 0x81, 0x0c, - 0x42, 0x77, 0x00, 0x81, 0xfa, 0x01, 0x47, 0xa9, 0xd4, 0x5d, 0xf9, 0x41, + 0x03, 0xa9, 0x22, 0xae, 0x14, 0xaf, 0x06, 0x45, 0x79, 0xea, 0xe3, 0x2b, + 0x40, 0x43, 0x4d, 0x19, 0x28, 0xf4, 0x01, 0x54, 0x28, 0x45, 0x7f, 0x32, + 0x40, 0x4d, 0x77, 0x82, 0xce, 0xf9, 0x01, 0x42, 0x1b, 0x05, 0xa2, 0xfa, + 0x41, 0x44, 0xbe, 0x18, 0x58, 0xf4, 0x01, 0x46, 0x58, 0x03, 0xad, 0x20, + 0x00, 0x08, 0x30, 0xca, 0x3c, 0x42, 0xee, 0x00, 0x8f, 0xf4, 0x81, 0x0c, + 0x42, 0x77, 0x00, 0x81, 0xfa, 0x01, 0x47, 0x7c, 0xd7, 0x5d, 0xf9, 0x41, 0x45, 0xb8, 0x00, 0x8b, 0xf4, 0x01, 0x04, 0xa1, 0x01, 0x01, 0xff, 0x59, - 0xfd, 0x22, 0x3d, 0xf6, 0x01, 0x44, 0xe1, 0x07, 0x17, 0xf6, 0xc1, 0x00, - 0x06, 0x50, 0x00, 0x01, 0xff, 0x4b, 0x0b, 0x23, 0x1a, 0xf6, 0x01, 0x4c, - 0xce, 0x1e, 0x19, 0xf6, 0x41, 0xa4, 0x9a, 0x02, 0x07, 0xc1, 0x05, 0x54, - 0x05, 0x2f, 0x03, 0x28, 0x0b, 0xd1, 0x75, 0x01, 0xff, 0xa1, 0x15, 0xe5, + 0x85, 0x23, 0x3d, 0xf6, 0x01, 0x44, 0x0c, 0x08, 0x17, 0xf6, 0xc1, 0x00, + 0x06, 0x50, 0x00, 0x01, 0xff, 0x4b, 0x93, 0x23, 0x1a, 0xf6, 0x01, 0x4c, + 0x70, 0x1f, 0x19, 0xf6, 0x41, 0xa4, 0x9a, 0x02, 0x07, 0xec, 0x05, 0x54, + 0x05, 0x5a, 0x03, 0x28, 0x0b, 0x40, 0x77, 0x01, 0xff, 0xa1, 0x15, 0xe5, 0x67, 0x6d, 0x01, 0xe9, 0x64, 0x6d, 0x01, 0xef, 0x69, 0x6d, 0x01, 0xf5, 0x65, 0x6d, 0xc1, 0x00, 0xe5, 0x66, 0x6d, 0x41, 0xe1, 0x63, 0x6d, 0x01, - 0xe9, 0x68, 0x6d, 0x01, 0xf5, 0x6a, 0x6d, 0x41, 0x48, 0xd0, 0x15, 0x40, - 0x6d, 0x01, 0x44, 0x36, 0xef, 0x6c, 0x6d, 0x01, 0x45, 0x3b, 0xe8, 0x41, - 0x6d, 0x01, 0x02, 0x02, 0x00, 0x06, 0x44, 0xfa, 0xef, 0x6d, 0x6d, 0x41, - 0x44, 0x5d, 0x23, 0x6b, 0x6d, 0x01, 0x45, 0xa3, 0x4a, 0x42, 0x6d, 0x41, + 0xe9, 0x68, 0x6d, 0x01, 0xf5, 0x6a, 0x6d, 0x41, 0x48, 0x3c, 0x16, 0x40, + 0x6d, 0x01, 0x44, 0x89, 0xf2, 0x6c, 0x6d, 0x01, 0x45, 0x5f, 0xeb, 0x41, + 0x6d, 0x01, 0x02, 0x02, 0x00, 0x06, 0x44, 0x4d, 0xf3, 0x6d, 0x6d, 0x41, + 0x44, 0xe5, 0x23, 0x6b, 0x6d, 0x01, 0x45, 0xec, 0x4b, 0x42, 0x6d, 0x41, 0xe1, 0x43, 0x6d, 0x01, 0xa2, 0xb1, 0x01, 0xa3, 0xa4, 0x01, 0xa4, 0x8b, 0x01, 0xa7, 0x7f, 0x42, 0x22, 0x00, 0x62, 0x6d, 0x01, 0xaa, 0x6d, 0xab, 0x61, 0x42, 0x74, 0x00, 0x5e, 0x6d, 0x01, 0x42, 0x6c, 0x00, 0x5b, 0x6d, 0x01, 0xae, 0x43, 0xb0, 0x37, 0x42, 0x71, 0x00, 0x5d, 0x6d, 0x01, 0xb3, - 0x25, 0xb4, 0x0c, 0x42, 0xa6, 0x0a, 0x5f, 0x6d, 0x01, 0x42, 0x34, 0x22, + 0x25, 0xb4, 0x0c, 0x42, 0xf5, 0x0a, 0x5f, 0x6d, 0x01, 0x42, 0xbc, 0x22, 0x5c, 0x6d, 0x41, 0xe1, 0x52, 0x6d, 0x01, 0x42, 0x22, 0x00, 0x53, 0x6d, 0x01, 0xb4, 0x01, 0xff, 0xe1, 0x4e, 0x6d, 0x01, 0x42, 0x22, 0x00, 0x4f, 0x6d, 0x41, 0xe1, 0x60, 0x6d, 0x01, 0x42, 0x22, 0x00, 0x61, 0x6d, 0x41, 0xe1, 0x57, 0x6d, 0x01, 0x42, 0x22, 0x00, 0x58, 0x6d, 0x41, 0xe1, 0x56, - 0x6d, 0x01, 0x42, 0x24, 0x02, 0x48, 0x6d, 0x01, 0x42, 0x34, 0x22, 0x4d, + 0x6d, 0x01, 0x42, 0x24, 0x02, 0x48, 0x6d, 0x01, 0x42, 0xbc, 0x22, 0x4d, 0x6d, 0x41, 0xe1, 0x44, 0x6d, 0x01, 0x42, 0x22, 0x00, 0x45, 0x6d, 0x41, 0xe1, 0x4b, 0x6d, 0x01, 0x42, 0x22, 0x00, 0x4c, 0x6d, 0x41, 0xe1, 0x46, 0x6d, 0x01, 0x42, 0x22, 0x00, 0x47, 0x6d, 0x41, 0xe1, 0x54, 0x6d, 0x01, 0xa4, 0x06, 0x42, 0x22, 0x00, 0x55, 0x6d, 0x41, 0xe1, 0x50, 0x6d, 0x01, 0x42, 0x22, 0x00, 0x51, 0x6d, 0x41, 0xe1, 0x49, 0x6d, 0x01, 0x42, 0x22, 0x00, 0x4a, 0x6d, 0x41, 0xe1, 0x59, 0x6d, 0x01, 0x42, 0x22, 0x00, 0x5a, - 0x6d, 0x41, 0x44, 0xd1, 0x1f, 0x6e, 0x6d, 0x01, 0x05, 0xc5, 0x06, 0x06, - 0x4b, 0xd8, 0x9e, 0x6f, 0x6d, 0x41, 0x45, 0xc3, 0x0a, 0x78, 0x6d, 0x01, - 0xa6, 0x2e, 0x44, 0x46, 0x2a, 0x79, 0x6d, 0x01, 0x43, 0xbf, 0x0a, 0x71, - 0x6d, 0x01, 0xb3, 0x14, 0xb4, 0x06, 0x44, 0xa1, 0x1d, 0x70, 0x6d, 0x41, + 0x6d, 0x41, 0x44, 0x73, 0x20, 0x6e, 0x6d, 0x01, 0x05, 0xf0, 0x06, 0x06, + 0x4b, 0x09, 0xa1, 0x6f, 0x6d, 0x41, 0x45, 0x12, 0x0b, 0x78, 0x6d, 0x01, + 0xa6, 0x2e, 0x44, 0xcf, 0x2a, 0x79, 0x6d, 0x01, 0x43, 0x0e, 0x0b, 0x71, + 0x6d, 0x01, 0xb3, 0x14, 0xb4, 0x06, 0x44, 0x43, 0x1e, 0x70, 0x6d, 0x41, 0x44, 0x25, 0x01, 0x73, 0x6d, 0x01, 0x42, 0x15, 0x02, 0x72, 0x6d, 0x41, - 0x44, 0x27, 0x1d, 0x77, 0x6d, 0x01, 0x42, 0x60, 0x25, 0x76, 0x6d, 0x41, - 0x43, 0xa7, 0x05, 0x75, 0x6d, 0x01, 0x43, 0xcb, 0x06, 0x74, 0x6d, 0x41, - 0xa1, 0xaa, 0x0e, 0x12, 0xa4, 0x51, 0x92, 0x0e, 0x04, 0x2b, 0x37, 0xb3, - 0x06, 0x05, 0x56, 0xe6, 0xa4, 0x03, 0x08, 0x42, 0xc9, 0x01, 0xff, 0x06, - 0xc4, 0x06, 0xd8, 0x02, 0x07, 0xc1, 0x05, 0x43, 0x05, 0x2f, 0x03, 0x2d, - 0x0b, 0xd1, 0x75, 0x01, 0xff, 0xa1, 0x1a, 0xe5, 0xe5, 0x12, 0x01, 0xe9, + 0x44, 0xc9, 0x1d, 0x77, 0x6d, 0x01, 0x42, 0x01, 0x26, 0x76, 0x6d, 0x41, + 0x43, 0xd2, 0x05, 0x75, 0x6d, 0x01, 0x43, 0xf6, 0x06, 0x74, 0x6d, 0x41, + 0xa1, 0xaa, 0x0e, 0x12, 0xed, 0x52, 0x92, 0x0e, 0x04, 0xfb, 0x37, 0xb3, + 0x06, 0x05, 0x7a, 0xe9, 0xa4, 0x03, 0x08, 0xf8, 0xcb, 0x01, 0xff, 0x06, + 0xef, 0x06, 0xd8, 0x02, 0x07, 0xec, 0x05, 0x43, 0x05, 0x5a, 0x03, 0x2d, + 0x0b, 0x40, 0x77, 0x01, 0xff, 0xa1, 0x1a, 0xe5, 0xe5, 0x12, 0x01, 0xe9, 0xe1, 0x12, 0x81, 0x0d, 0xef, 0xe7, 0x12, 0x01, 0xf5, 0xe3, 0x12, 0xc1, 0x00, 0xf5, 0xe4, 0x12, 0x41, 0xe9, 0xe2, 0x12, 0x41, 0xe1, 0xe0, 0x12, - 0x01, 0xe9, 0xe6, 0x12, 0x01, 0xf5, 0xe8, 0x12, 0x41, 0x48, 0xd0, 0x15, - 0xdf, 0x12, 0x01, 0x45, 0x5a, 0x3e, 0xe9, 0x12, 0x01, 0x46, 0x5b, 0x23, + 0x01, 0xe9, 0xe6, 0x12, 0x01, 0xf5, 0xe8, 0x12, 0x41, 0x48, 0x3c, 0x16, + 0xdf, 0x12, 0x01, 0x45, 0x3f, 0x3f, 0xe9, 0x12, 0x01, 0x46, 0xe3, 0x23, 0xea, 0x12, 0x41, 0xe1, 0xb0, 0x12, 0x81, 0xff, 0x01, 0xa2, 0xec, 0x01, 0xa3, 0xdf, 0x01, 0xa4, 0xc0, 0x01, 0xe5, 0xb6, 0x12, 0x01, 0xa7, 0xa9, 0x01, 0x42, 0x22, 0x00, 0xde, 0x12, 0x01, 0xe9, 0xb2, 0x12, 0x81, 0x99, 0x01, 0xaa, 0x86, 0x01, 0xab, 0x7a, 0x42, 0x74, 0x00, 0xda, 0x12, 0x01, 0x42, 0x6c, 0x00, 0xd7, 0x12, 0x01, 0xae, 0x56, 0xef, 0xb8, 0x12, 0x01, 0xb0, 0x46, 0xb2, 0x3a, 0xb3, 0x2e, 0xb4, 0x15, 0xf5, 0xb4, 0x12, 0x81, - 0x0c, 0x42, 0xa6, 0x0a, 0xdb, 0x12, 0x01, 0x42, 0x34, 0x22, 0xd8, 0x12, + 0x0c, 0x42, 0xf5, 0x0a, 0xdb, 0x12, 0x01, 0x42, 0xbc, 0x22, 0xd8, 0x12, 0x41, 0xf5, 0xb5, 0x12, 0x41, 0xe1, 0xcd, 0x12, 0x01, 0x42, 0x22, 0x00, 0xce, 0x12, 0x01, 0xb4, 0x01, 0xff, 0xe1, 0xc6, 0x12, 0x01, 0x42, 0x22, 0x00, 0xc7, 0x12, 0x41, 0xe1, 0xdd, 0x12, 0x01, 0x42, 0x22, 0x00, 0xdc, 0x12, 0x41, 0xe1, 0xd9, 0x12, 0x01, 0x42, 0x71, 0x00, 0xca, 0x12, 0x41, 0xe1, 0xd2, 0x12, 0x01, 0x42, 0x22, 0x00, 0xd3, 0x12, 0x41, 0xe1, 0xd1, - 0x12, 0x01, 0x42, 0x24, 0x02, 0xbf, 0x12, 0x01, 0x42, 0xff, 0x04, 0xcc, - 0x12, 0x01, 0x42, 0x34, 0x22, 0xc5, 0x12, 0x41, 0xe1, 0xba, 0x12, 0x01, + 0x12, 0x01, 0x42, 0x24, 0x02, 0xbf, 0x12, 0x01, 0x42, 0x2a, 0x05, 0xcc, + 0x12, 0x01, 0x42, 0xbc, 0x22, 0xc5, 0x12, 0x41, 0xe1, 0xba, 0x12, 0x01, 0x42, 0x22, 0x00, 0xbb, 0x12, 0x41, 0xe1, 0xc2, 0x12, 0x01, 0x42, 0x22, - 0x00, 0xc4, 0x12, 0x01, 0x42, 0xbd, 0x26, 0xc3, 0x12, 0x41, 0xe9, 0xb3, + 0x00, 0xc4, 0x12, 0x01, 0x42, 0x56, 0x19, 0xc3, 0x12, 0x41, 0xe9, 0xb3, 0x12, 0x41, 0xe1, 0xbc, 0x12, 0x01, 0x42, 0x24, 0x02, 0xbd, 0x12, 0x01, 0x42, 0x22, 0x00, 0xbe, 0x12, 0x41, 0xe1, 0xcf, 0x12, 0x01, 0xa4, 0x06, - 0x42, 0x22, 0x00, 0xd0, 0x12, 0x41, 0xe1, 0xc8, 0x12, 0x01, 0x42, 0xa1, + 0x42, 0x22, 0x00, 0xd0, 0x12, 0x41, 0xe1, 0xc8, 0x12, 0x01, 0x42, 0xf0, 0x10, 0xc9, 0x12, 0x01, 0x42, 0x22, 0x00, 0xcb, 0x12, 0x41, 0xe1, 0xc0, 0x12, 0x01, 0x42, 0x22, 0x00, 0xc1, 0x12, 0x41, 0xe1, 0xd4, 0x12, 0x01, 0x42, 0x16, 0x00, 0xd5, 0x12, 0x01, 0x42, 0x22, 0x00, 0xd6, 0x12, 0x41, 0xe1, 0xb1, 0x12, 0x01, 0xe9, 0xb7, 0x12, 0x01, 0xf5, 0xb9, 0x12, 0x41, - 0x45, 0xc3, 0x0a, 0xf8, 0x12, 0x01, 0xa6, 0x2e, 0x44, 0x46, 0x2a, 0xf9, - 0x12, 0x01, 0x43, 0xbf, 0x0a, 0xf1, 0x12, 0x01, 0xb3, 0x14, 0xb4, 0x06, - 0x44, 0xa1, 0x1d, 0xf0, 0x12, 0x41, 0x44, 0x25, 0x01, 0xf3, 0x12, 0x01, - 0x42, 0x15, 0x02, 0xf2, 0x12, 0x41, 0x44, 0x27, 0x1d, 0xf7, 0x12, 0x01, - 0x42, 0x60, 0x25, 0xf6, 0x12, 0x41, 0x43, 0xa7, 0x05, 0xf5, 0x12, 0x01, - 0x43, 0xcb, 0x06, 0xf4, 0x12, 0x41, 0x51, 0x93, 0x56, 0x3d, 0x12, 0x01, - 0xa4, 0xea, 0x02, 0x07, 0xc1, 0x05, 0x60, 0xb3, 0x33, 0x0b, 0xd1, 0x75, - 0x06, 0x4e, 0x68, 0x7d, 0x3a, 0x12, 0x41, 0xa1, 0x1b, 0xe5, 0x30, 0x12, + 0x45, 0x12, 0x0b, 0xf8, 0x12, 0x01, 0xa6, 0x2e, 0x44, 0xcf, 0x2a, 0xf9, + 0x12, 0x01, 0x43, 0x0e, 0x0b, 0xf1, 0x12, 0x01, 0xb3, 0x14, 0xb4, 0x06, + 0x44, 0x43, 0x1e, 0xf0, 0x12, 0x41, 0x44, 0x25, 0x01, 0xf3, 0x12, 0x01, + 0x42, 0x15, 0x02, 0xf2, 0x12, 0x41, 0x44, 0xc9, 0x1d, 0xf7, 0x12, 0x01, + 0x42, 0x01, 0x26, 0xf6, 0x12, 0x41, 0x43, 0xd2, 0x05, 0xf5, 0x12, 0x01, + 0x43, 0xf6, 0x06, 0xf4, 0x12, 0x41, 0x51, 0xdc, 0x57, 0x3d, 0x12, 0x01, + 0xa4, 0xea, 0x02, 0x07, 0xec, 0x05, 0x60, 0xb3, 0x33, 0x0b, 0x40, 0x77, + 0x06, 0x4e, 0xd7, 0x7e, 0x3a, 0x12, 0x41, 0xa1, 0x1b, 0xe5, 0x30, 0x12, 0x01, 0xe9, 0x2d, 0x12, 0x81, 0x0e, 0xef, 0x32, 0x12, 0x01, 0xf5, 0x2f, - 0x12, 0x01, 0x49, 0x9b, 0xbe, 0x41, 0x12, 0x41, 0xe9, 0x2e, 0x12, 0x41, + 0x12, 0x01, 0x49, 0x22, 0xc1, 0x41, 0x12, 0x41, 0xe9, 0x2e, 0x12, 0x41, 0xe1, 0x2c, 0x12, 0x01, 0xe9, 0x31, 0x12, 0x01, 0xf5, 0x33, 0x12, 0x41, - 0x4b, 0x58, 0x26, 0x3b, 0x12, 0x01, 0x04, 0x30, 0x03, 0x01, 0xff, 0x48, - 0xd0, 0x15, 0x34, 0x12, 0x01, 0x45, 0x5a, 0x3e, 0x36, 0x12, 0x01, 0xb3, - 0x06, 0x46, 0x5b, 0x23, 0x35, 0x12, 0x41, 0x45, 0xb8, 0xe3, 0x37, 0x12, - 0x01, 0x44, 0x00, 0xe8, 0x3e, 0x12, 0x41, 0xe1, 0x00, 0x12, 0x81, 0xf4, + 0x4b, 0xf9, 0x26, 0x3b, 0x12, 0x01, 0x04, 0x5b, 0x03, 0x01, 0xff, 0x48, + 0x3c, 0x16, 0x34, 0x12, 0x01, 0x45, 0x3f, 0x3f, 0x36, 0x12, 0x01, 0xb3, + 0x06, 0x46, 0xe3, 0x23, 0x35, 0x12, 0x41, 0x45, 0xc8, 0xe6, 0x37, 0x12, + 0x01, 0x44, 0x24, 0xeb, 0x3e, 0x12, 0x41, 0xe1, 0x00, 0x12, 0x81, 0xf4, 0x01, 0xa2, 0xe1, 0x01, 0xa3, 0xd4, 0x01, 0xa4, 0xb5, 0x01, 0xe5, 0x04, 0x12, 0x01, 0xa7, 0x9e, 0x01, 0x42, 0x22, 0x00, 0x2a, 0x12, 0x01, 0xe9, 0x02, 0x12, 0x01, 0xaa, 0x87, 0x01, 0xab, 0x7b, 0xac, 0x6f, 0x42, 0x6c, 0x00, 0x24, 0x12, 0x01, 0xae, 0x51, 0xef, 0x06, 0x12, 0x01, 0xb0, 0x41, - 0x42, 0xf4, 0x13, 0x3f, 0x12, 0x01, 0x42, 0x71, 0x00, 0x26, 0x12, 0x01, - 0xb3, 0x29, 0xb4, 0x10, 0xf5, 0x03, 0x12, 0x01, 0x42, 0xa6, 0x0a, 0x28, - 0x12, 0x01, 0x42, 0x34, 0x22, 0x25, 0x12, 0x41, 0xe1, 0x19, 0x12, 0x01, + 0x42, 0x43, 0x14, 0x3f, 0x12, 0x01, 0x42, 0x71, 0x00, 0x26, 0x12, 0x01, + 0xb3, 0x29, 0xb4, 0x10, 0xf5, 0x03, 0x12, 0x01, 0x42, 0xf5, 0x0a, 0x28, + 0x12, 0x01, 0x42, 0xbc, 0x22, 0x25, 0x12, 0x41, 0xe1, 0x19, 0x12, 0x01, 0x42, 0x22, 0x00, 0x1a, 0x12, 0x01, 0xb4, 0x01, 0xff, 0xe1, 0x14, 0x12, 0x01, 0x42, 0x22, 0x00, 0x15, 0x12, 0x41, 0xe1, 0x29, 0x12, 0x01, 0x46, - 0xa0, 0xd9, 0x40, 0x12, 0x41, 0xe1, 0x1f, 0x12, 0x01, 0x42, 0x22, 0x00, + 0x98, 0xdc, 0x40, 0x12, 0x41, 0xe1, 0x1f, 0x12, 0x01, 0x42, 0x22, 0x00, 0x20, 0x12, 0x41, 0xe1, 0x1e, 0x12, 0x01, 0x42, 0x24, 0x02, 0x0d, 0x12, - 0x01, 0x42, 0xff, 0x04, 0x18, 0x12, 0x01, 0x42, 0x34, 0x22, 0x13, 0x12, + 0x01, 0x42, 0x2a, 0x05, 0x18, 0x12, 0x01, 0x42, 0xbc, 0x22, 0x13, 0x12, 0x41, 0xe1, 0x27, 0x12, 0x01, 0x42, 0x74, 0x00, 0x2b, 0x12, 0x41, 0xe1, 0x08, 0x12, 0x01, 0x42, 0x22, 0x00, 0x09, 0x12, 0x41, 0xe1, 0x10, 0x12, - 0x01, 0x42, 0xbd, 0x26, 0x11, 0x12, 0x41, 0xe1, 0x0a, 0x12, 0x01, 0x42, + 0x01, 0x42, 0x56, 0x19, 0x11, 0x12, 0x41, 0xe1, 0x0a, 0x12, 0x01, 0x42, 0x24, 0x02, 0x0b, 0x12, 0x01, 0x42, 0x22, 0x00, 0x0c, 0x12, 0x41, 0xe1, 0x1b, 0x12, 0x01, 0xa4, 0x06, 0x42, 0x22, 0x00, 0x1d, 0x12, 0x41, 0xe1, - 0x16, 0x12, 0x01, 0x42, 0xa1, 0x10, 0x1c, 0x12, 0x01, 0x42, 0x22, 0x00, + 0x16, 0x12, 0x01, 0x42, 0xf0, 0x10, 0x1c, 0x12, 0x01, 0x42, 0x22, 0x00, 0x17, 0x12, 0x41, 0xe1, 0x0e, 0x12, 0x01, 0x42, 0x22, 0x00, 0x0f, 0x12, 0x41, 0xe1, 0x21, 0x12, 0x01, 0x42, 0x16, 0x00, 0x22, 0x12, 0x01, 0x42, 0x22, 0x00, 0x23, 0x12, 0x41, 0xe1, 0x01, 0x12, 0x01, 0xe9, 0x05, 0x12, - 0x01, 0xf5, 0x07, 0x12, 0x41, 0x44, 0xd1, 0x1f, 0x38, 0x12, 0x01, 0x06, - 0x3c, 0x01, 0x01, 0xff, 0x45, 0x34, 0x94, 0x39, 0x12, 0x01, 0x4c, 0x57, - 0x26, 0x3c, 0x12, 0x41, 0x54, 0x5b, 0x40, 0xdb, 0x17, 0x00, 0x06, 0xc4, - 0x06, 0x8d, 0x07, 0x12, 0x80, 0x51, 0xaf, 0x06, 0x07, 0xc1, 0x05, 0xe6, - 0x04, 0xb3, 0x5d, 0x06, 0x6c, 0x38, 0x01, 0xff, 0x0a, 0xa5, 0xa9, 0x4c, - 0x05, 0x2f, 0x03, 0x01, 0xff, 0xa1, 0x35, 0xe5, 0xc1, 0x17, 0x00, 0xe9, + 0x01, 0xf5, 0x07, 0x12, 0x41, 0x44, 0x73, 0x20, 0x38, 0x12, 0x01, 0x06, + 0x3c, 0x01, 0x01, 0xff, 0x45, 0x16, 0x96, 0x39, 0x12, 0x01, 0x4c, 0xf8, + 0x26, 0x3c, 0x12, 0x41, 0x54, 0x54, 0x41, 0xdb, 0x17, 0x00, 0x06, 0xef, + 0x06, 0x8d, 0x07, 0x12, 0xc9, 0x52, 0xaf, 0x06, 0x07, 0xec, 0x05, 0xe6, + 0x04, 0xb3, 0x5d, 0x06, 0x3c, 0x39, 0x01, 0xff, 0x0a, 0xe1, 0xab, 0x4c, + 0x05, 0x5a, 0x03, 0x01, 0xff, 0xa1, 0x35, 0xe5, 0xc1, 0x17, 0x00, 0xe9, 0xb7, 0x17, 0x80, 0x24, 0xaf, 0x1a, 0xf5, 0xbb, 0x17, 0x80, 0x0d, 0xf9, 0xb9, 0x17, 0xc0, 0x00, 0xe1, 0xbf, 0x17, 0x00, 0xf9, 0xba, 0x17, 0x40, 0xe1, 0xbd, 0x17, 0x00, 0xf5, 0xbc, 0x17, 0x40, 0xe5, 0xbe, 0x17, 0x00, 0xef, 0xc4, 0x17, 0x40, 0xe5, 0xc0, 0x17, 0x00, 0xe9, 0xb8, 0x17, 0x40, 0xe1, 0xb6, 0x17, 0x00, 0xe5, 0xc2, 0x17, 0x00, 0xe9, 0xc3, 0x17, 0x00, 0xf5, 0xc5, 0x17, 0x40, 0xe1, 0xb5, 0x17, 0x00, 0xf1, 0xb4, 0x17, 0x40, - 0x04, 0x30, 0x03, 0xe9, 0x02, 0x06, 0xf4, 0x15, 0x01, 0xff, 0xa2, 0xc0, - 0x02, 0x03, 0x27, 0xee, 0xd3, 0x01, 0x0a, 0x81, 0xaa, 0x88, 0x01, 0x05, - 0xc0, 0xe5, 0x78, 0xb0, 0x06, 0x49, 0x9f, 0xbd, 0xf0, 0x19, 0x40, 0x49, - 0x0f, 0xb4, 0xe0, 0x19, 0x00, 0x03, 0x69, 0x74, 0x5a, 0x03, 0x57, 0x18, - 0x01, 0xff, 0x80, 0x47, 0x8d, 0x01, 0xff, 0xa2, 0x21, 0x05, 0xc0, 0xe5, - 0x11, 0x04, 0x68, 0x74, 0x01, 0xff, 0x44, 0xaa, 0xed, 0xe7, 0x19, 0x00, - 0x43, 0x57, 0x3c, 0xf7, 0x19, 0x40, 0x44, 0xaa, 0xed, 0xe6, 0x19, 0x00, - 0x43, 0x57, 0x3c, 0xf6, 0x19, 0x40, 0x03, 0x8a, 0x33, 0x11, 0x04, 0x8e, - 0xef, 0x01, 0xff, 0x44, 0xaa, 0xed, 0xe9, 0x19, 0x00, 0x43, 0x57, 0x3c, - 0xf9, 0x19, 0x40, 0x44, 0xaa, 0xed, 0xe8, 0x19, 0x00, 0x43, 0x57, 0x3c, - 0xf8, 0x19, 0x40, 0x44, 0xaa, 0xed, 0xe5, 0x19, 0x00, 0x43, 0x57, 0x3c, - 0xf5, 0x19, 0x40, 0x44, 0xaa, 0xed, 0xe2, 0x19, 0x00, 0x43, 0x57, 0x3c, - 0xf2, 0x19, 0x40, 0x44, 0xaa, 0xed, 0xe1, 0x19, 0x00, 0x43, 0x57, 0x3c, - 0xf1, 0x19, 0x40, 0xa2, 0x38, 0x44, 0xc0, 0xe5, 0xf1, 0x17, 0x00, 0xb0, - 0x06, 0x43, 0x7f, 0x1c, 0xf0, 0x17, 0x40, 0x42, 0xb1, 0x27, 0xf2, 0x17, - 0x00, 0x43, 0x57, 0x18, 0xf5, 0x17, 0xc0, 0x00, 0x8d, 0x01, 0xff, 0xa2, - 0x0c, 0x44, 0xc0, 0xe5, 0xf6, 0x17, 0x00, 0x43, 0x68, 0x74, 0xf7, 0x17, - 0x40, 0x42, 0xc3, 0x0a, 0xf8, 0x17, 0x00, 0x43, 0x8e, 0xef, 0xf9, 0x17, - 0x40, 0x42, 0xc3, 0x0a, 0xf3, 0x17, 0x00, 0x43, 0x8e, 0xef, 0xf4, 0x17, - 0x40, 0x80, 0x5a, 0x8d, 0x01, 0xff, 0xa2, 0x34, 0x05, 0xc0, 0xe5, 0x24, - 0xb0, 0x01, 0xff, 0x03, 0x69, 0x74, 0x11, 0x04, 0x2a, 0x29, 0x01, 0xff, - 0x44, 0xaa, 0xed, 0xef, 0x19, 0x00, 0x43, 0x57, 0x3c, 0xff, 0x19, 0x40, - 0x44, 0xaa, 0xed, 0xec, 0x19, 0x00, 0x43, 0x57, 0x3c, 0xfc, 0x19, 0x40, - 0x44, 0xaa, 0xed, 0xeb, 0x19, 0x00, 0x43, 0x57, 0x3c, 0xfb, 0x19, 0x40, - 0x03, 0x8a, 0x33, 0x11, 0x04, 0x8e, 0xef, 0x01, 0xff, 0x44, 0xaa, 0xed, - 0xee, 0x19, 0x00, 0x43, 0x57, 0x3c, 0xfe, 0x19, 0x40, 0x44, 0xaa, 0xed, - 0xed, 0x19, 0x00, 0x43, 0x57, 0x3c, 0xfd, 0x19, 0x40, 0x44, 0xaa, 0xed, - 0xea, 0x19, 0x00, 0x43, 0x57, 0x3c, 0xfa, 0x19, 0x40, 0x03, 0x8a, 0x33, - 0x11, 0x04, 0x8e, 0xef, 0x01, 0xff, 0x44, 0xaa, 0xed, 0xe4, 0x19, 0x00, - 0x43, 0x57, 0x3c, 0xf4, 0x19, 0x40, 0x44, 0xaa, 0xed, 0xe3, 0x19, 0x00, - 0x43, 0x57, 0x3c, 0xf3, 0x19, 0x40, 0xa1, 0x84, 0x01, 0xa2, 0x68, 0xa3, - 0x5a, 0xab, 0x46, 0x47, 0xf5, 0xcf, 0xd7, 0x17, 0x00, 0x4b, 0xa4, 0x9d, - 0xc9, 0x17, 0x00, 0x47, 0xb9, 0xd0, 0xc6, 0x17, 0x00, 0x4b, 0x1a, 0x9f, - 0xd9, 0x17, 0x00, 0xb2, 0x20, 0x4d, 0xb8, 0x86, 0xd0, 0x17, 0x00, 0xb4, - 0x0c, 0x46, 0x1a, 0xde, 0xd1, 0x17, 0x00, 0x4d, 0x1b, 0x89, 0xc8, 0x17, - 0x40, 0x4a, 0x43, 0xac, 0xcd, 0x17, 0x00, 0x46, 0x8e, 0xdc, 0xca, 0x17, - 0x40, 0x46, 0x2c, 0xd8, 0xc7, 0x17, 0x00, 0x44, 0x72, 0xee, 0xcc, 0x17, - 0x40, 0x46, 0xc4, 0xd6, 0xce, 0x17, 0x00, 0x43, 0x90, 0x00, 0xd4, 0x17, - 0x00, 0x46, 0xda, 0xdb, 0xda, 0x17, 0x40, 0x4e, 0x62, 0x74, 0xd6, 0x17, - 0x00, 0x44, 0xeb, 0xe5, 0xd2, 0x17, 0x40, 0xa1, 0x06, 0x45, 0x31, 0xe3, - 0xd8, 0x17, 0x40, 0x44, 0x5e, 0xee, 0xcb, 0x17, 0x00, 0x48, 0xc2, 0xc7, - 0xd5, 0x17, 0x00, 0x48, 0x10, 0xb4, 0xd3, 0x17, 0x40, 0x44, 0x16, 0xed, - 0xcf, 0x17, 0x00, 0x47, 0xc9, 0xd3, 0xdd, 0x17, 0x00, 0x4c, 0xc9, 0x94, + 0x04, 0x5b, 0x03, 0xe9, 0x02, 0x06, 0x60, 0x16, 0x01, 0xff, 0xa2, 0xc0, + 0x02, 0x03, 0x6a, 0xf1, 0xd3, 0x01, 0x0a, 0xd1, 0xac, 0x88, 0x01, 0x05, + 0xdf, 0xe8, 0x78, 0xb0, 0x06, 0x49, 0x26, 0xc0, 0xf0, 0x19, 0x40, 0x49, + 0x60, 0xb6, 0xe0, 0x19, 0x00, 0x03, 0xe6, 0x75, 0x5a, 0x03, 0xc3, 0x18, + 0x01, 0xff, 0x80, 0x47, 0x8d, 0x01, 0xff, 0xa2, 0x21, 0x05, 0xdf, 0xe8, + 0x11, 0x04, 0xe5, 0x75, 0x01, 0xff, 0x44, 0xe9, 0xf0, 0xe7, 0x19, 0x00, + 0x43, 0x27, 0x3d, 0xf7, 0x19, 0x40, 0x44, 0xe9, 0xf0, 0xe6, 0x19, 0x00, + 0x43, 0x27, 0x3d, 0xf6, 0x19, 0x40, 0x03, 0x5a, 0x34, 0x11, 0x04, 0xdd, + 0xf2, 0x01, 0xff, 0x44, 0xe9, 0xf0, 0xe9, 0x19, 0x00, 0x43, 0x27, 0x3d, + 0xf9, 0x19, 0x40, 0x44, 0xe9, 0xf0, 0xe8, 0x19, 0x00, 0x43, 0x27, 0x3d, + 0xf8, 0x19, 0x40, 0x44, 0xe9, 0xf0, 0xe5, 0x19, 0x00, 0x43, 0x27, 0x3d, + 0xf5, 0x19, 0x40, 0x44, 0xe9, 0xf0, 0xe2, 0x19, 0x00, 0x43, 0x27, 0x3d, + 0xf2, 0x19, 0x40, 0x44, 0xe9, 0xf0, 0xe1, 0x19, 0x00, 0x43, 0x27, 0x3d, + 0xf1, 0x19, 0x40, 0xa2, 0x38, 0x44, 0xdf, 0xe8, 0xf1, 0x17, 0x00, 0xb0, + 0x06, 0x43, 0x21, 0x1d, 0xf0, 0x17, 0x40, 0x42, 0x52, 0x28, 0xf2, 0x17, + 0x00, 0x43, 0xc3, 0x18, 0xf5, 0x17, 0xc0, 0x00, 0x8d, 0x01, 0xff, 0xa2, + 0x0c, 0x44, 0xdf, 0xe8, 0xf6, 0x17, 0x00, 0x43, 0xe5, 0x75, 0xf7, 0x17, + 0x40, 0x42, 0x12, 0x0b, 0xf8, 0x17, 0x00, 0x43, 0xdd, 0xf2, 0xf9, 0x17, + 0x40, 0x42, 0x12, 0x0b, 0xf3, 0x17, 0x00, 0x43, 0xdd, 0xf2, 0xf4, 0x17, + 0x40, 0x80, 0x5a, 0x8d, 0x01, 0xff, 0xa2, 0x34, 0x05, 0xdf, 0xe8, 0x24, + 0xb0, 0x01, 0xff, 0x03, 0xe6, 0x75, 0x11, 0x04, 0xee, 0x2e, 0x01, 0xff, + 0x44, 0xe9, 0xf0, 0xef, 0x19, 0x00, 0x43, 0x27, 0x3d, 0xff, 0x19, 0x40, + 0x44, 0xe9, 0xf0, 0xec, 0x19, 0x00, 0x43, 0x27, 0x3d, 0xfc, 0x19, 0x40, + 0x44, 0xe9, 0xf0, 0xeb, 0x19, 0x00, 0x43, 0x27, 0x3d, 0xfb, 0x19, 0x40, + 0x03, 0x5a, 0x34, 0x11, 0x04, 0xdd, 0xf2, 0x01, 0xff, 0x44, 0xe9, 0xf0, + 0xee, 0x19, 0x00, 0x43, 0x27, 0x3d, 0xfe, 0x19, 0x40, 0x44, 0xe9, 0xf0, + 0xed, 0x19, 0x00, 0x43, 0x27, 0x3d, 0xfd, 0x19, 0x40, 0x44, 0xe9, 0xf0, + 0xea, 0x19, 0x00, 0x43, 0x27, 0x3d, 0xfa, 0x19, 0x40, 0x03, 0x5a, 0x34, + 0x11, 0x04, 0xdd, 0xf2, 0x01, 0xff, 0x44, 0xe9, 0xf0, 0xe4, 0x19, 0x00, + 0x43, 0x27, 0x3d, 0xf4, 0x19, 0x40, 0x44, 0xe9, 0xf0, 0xe3, 0x19, 0x00, + 0x43, 0x27, 0x3d, 0xf3, 0x19, 0x40, 0xa1, 0x84, 0x01, 0xa2, 0x68, 0xa3, + 0x5a, 0xab, 0x46, 0x47, 0xc8, 0xd2, 0xd7, 0x17, 0x00, 0x4b, 0xca, 0x9f, + 0xc9, 0x17, 0x00, 0x47, 0x8c, 0xd3, 0xc6, 0x17, 0x00, 0x4b, 0x4b, 0xa1, + 0xd9, 0x17, 0x00, 0xb2, 0x20, 0x4d, 0x75, 0x88, 0xd0, 0x17, 0x00, 0xb4, + 0x0c, 0x46, 0x2a, 0xe1, 0xd1, 0x17, 0x00, 0x4d, 0xe5, 0x8a, 0xc8, 0x17, + 0x40, 0x4a, 0x93, 0xae, 0xcd, 0x17, 0x00, 0x46, 0x92, 0xdf, 0xca, 0x17, + 0x40, 0x46, 0x18, 0xdb, 0xc7, 0x17, 0x00, 0x44, 0xb5, 0xf1, 0xcc, 0x17, + 0x40, 0x46, 0xaa, 0xd9, 0xce, 0x17, 0x00, 0x43, 0x90, 0x00, 0xd4, 0x17, + 0x00, 0x46, 0xd2, 0xde, 0xda, 0x17, 0x40, 0x4e, 0xdf, 0x75, 0xd6, 0x17, + 0x00, 0x44, 0x0a, 0xe9, 0xd2, 0x17, 0x40, 0xa1, 0x06, 0x45, 0x41, 0xe6, + 0xd8, 0x17, 0x40, 0x44, 0xa1, 0xf1, 0xcb, 0x17, 0x00, 0x48, 0x70, 0xca, + 0xd5, 0x17, 0x00, 0x48, 0x61, 0xb6, 0xd3, 0x17, 0x40, 0x44, 0x55, 0xf0, + 0xcf, 0x17, 0x00, 0x47, 0x95, 0xd6, 0xdd, 0x17, 0x00, 0x4c, 0xb7, 0x96, 0xdc, 0x17, 0x40, 0x42, 0x16, 0x00, 0x94, 0x17, 0x00, 0xa3, 0xa9, 0x01, 0xa4, 0x9e, 0x01, 0x42, 0x22, 0x00, 0xa0, 0x17, 0x00, 0xab, 0x83, 0x01, - 0xac, 0x79, 0x42, 0x98, 0x07, 0x98, 0x17, 0x00, 0xae, 0x5b, 0xb0, 0x4b, - 0x42, 0xf4, 0x13, 0xa2, 0x17, 0x00, 0x42, 0xd0, 0x00, 0x9a, 0x17, 0x00, - 0xb3, 0x2d, 0xb4, 0x0c, 0x42, 0x68, 0x1c, 0x9c, 0x17, 0x00, 0x42, 0x60, - 0x46, 0x99, 0x17, 0x40, 0xe1, 0x8f, 0x17, 0x00, 0xa8, 0x11, 0xef, 0x91, + 0xac, 0x79, 0x42, 0xc3, 0x07, 0x98, 0x17, 0x00, 0xae, 0x5b, 0xb0, 0x4b, + 0x42, 0x43, 0x14, 0xa2, 0x17, 0x00, 0x42, 0xd0, 0x00, 0x9a, 0x17, 0x00, + 0xb3, 0x2d, 0xb4, 0x0c, 0x42, 0x0a, 0x1d, 0x9c, 0x17, 0x00, 0x42, 0xa9, + 0x47, 0x99, 0x17, 0x40, 0xe1, 0x8f, 0x17, 0x00, 0xa8, 0x11, 0xef, 0x91, 0x17, 0x00, 0x02, 0x53, 0x00, 0x01, 0xff, 0xe1, 0x8b, 0x17, 0x00, 0xef, 0x8d, 0x17, 0x40, 0xe1, 0x90, 0x17, 0x00, 0xef, 0x92, 0x17, 0x40, 0xe1, - 0x9f, 0x17, 0x00, 0x42, 0x22, 0x00, 0x9d, 0x17, 0x00, 0x42, 0x35, 0x03, + 0x9f, 0x17, 0x00, 0x42, 0x22, 0x00, 0x9d, 0x17, 0x00, 0x42, 0x60, 0x03, 0x9e, 0x17, 0x40, 0xa8, 0x04, 0xef, 0x96, 0x17, 0x40, 0xe1, 0x95, 0x17, - 0x00, 0xef, 0x97, 0x17, 0x40, 0x42, 0xb7, 0x13, 0x84, 0x17, 0x00, 0x42, - 0xb4, 0x01, 0x8e, 0x17, 0x00, 0xef, 0x93, 0x17, 0x00, 0x42, 0x60, 0x46, + 0x00, 0xef, 0x97, 0x17, 0x40, 0x42, 0x06, 0x14, 0x84, 0x17, 0x00, 0x42, + 0xb4, 0x01, 0x8e, 0x17, 0x00, 0xef, 0x93, 0x17, 0x00, 0x42, 0xa9, 0x47, 0x89, 0x17, 0x40, 0xe1, 0xa1, 0x17, 0x00, 0xef, 0x9b, 0x17, 0x40, 0xe1, 0x80, 0x17, 0x00, 0xa8, 0x04, 0xef, 0x82, 0x17, 0x40, 0xe1, 0x81, 0x17, 0x00, 0xef, 0x83, 0x17, 0x40, 0xe1, 0x8a, 0x17, 0x00, 0xef, 0x8c, 0x17, 0x40, 0xe1, 0x85, 0x17, 0x00, 0xa8, 0x04, 0xef, 0x87, 0x17, 0x40, 0xe1, - 0x86, 0x17, 0x00, 0xef, 0x88, 0x17, 0x40, 0x42, 0x26, 0x0b, 0xad, 0x17, - 0x80, 0x4e, 0xb1, 0x0b, 0x42, 0x34, 0x0a, 0xab, 0x17, 0xc0, 0x00, 0xf9, + 0x86, 0x17, 0x00, 0xef, 0x88, 0x17, 0x40, 0x42, 0x75, 0x0b, 0xad, 0x17, + 0x80, 0x4e, 0xb1, 0x0b, 0x42, 0x83, 0x0a, 0xab, 0x17, 0xc0, 0x00, 0xf9, 0xac, 0x17, 0x40, 0xa1, 0x2f, 0xe5, 0xaf, 0x17, 0x00, 0xe9, 0xa5, 0x17, - 0x80, 0x22, 0x08, 0xb2, 0xc6, 0x12, 0xf5, 0xa7, 0x17, 0xc0, 0x00, 0xeb, + 0x80, 0x22, 0x08, 0x58, 0xc9, 0x12, 0xf5, 0xa7, 0x17, 0xc0, 0x00, 0xeb, 0xa8, 0x17, 0x00, 0xf5, 0xa9, 0x17, 0xc0, 0x00, 0xf6, 0xaa, 0x17, 0x40, - 0x43, 0xbf, 0x0a, 0xb1, 0x17, 0x00, 0x43, 0xd0, 0x09, 0xb2, 0x17, 0x40, + 0x43, 0x0e, 0x0b, 0xb1, 0x17, 0x00, 0x43, 0x1f, 0x0a, 0xb2, 0x17, 0x40, 0xe9, 0xa6, 0x17, 0x40, 0xe1, 0xa4, 0x17, 0x00, 0xe9, 0xb0, 0x17, 0x00, 0xf1, 0xa3, 0x17, 0x00, 0xf5, 0xb3, 0x17, 0x40, 0xf9, 0xae, 0x17, 0x40, - 0x45, 0xc3, 0x0a, 0xe8, 0x17, 0x00, 0xa6, 0x2e, 0x44, 0x46, 0x2a, 0xe9, - 0x17, 0x00, 0x43, 0xbf, 0x0a, 0xe1, 0x17, 0x00, 0xb3, 0x14, 0xb4, 0x06, - 0x44, 0xa1, 0x1d, 0xe0, 0x17, 0x40, 0x44, 0x25, 0x01, 0xe3, 0x17, 0x00, - 0x42, 0x15, 0x02, 0xe2, 0x17, 0x40, 0x44, 0x27, 0x1d, 0xe7, 0x17, 0x00, - 0x42, 0x60, 0x25, 0xe6, 0x17, 0x40, 0x43, 0xa7, 0x05, 0xe5, 0x17, 0x00, - 0x43, 0xcb, 0x06, 0xe4, 0x17, 0x40, 0x4a, 0x5d, 0xa6, 0x04, 0xd8, 0x80, - 0x06, 0x46, 0x11, 0x81, 0xe4, 0x6f, 0x41, 0x45, 0x4e, 0xdf, 0xff, 0x8c, - 0x41, 0x43, 0xba, 0x17, 0xaf, 0xfa, 0x01, 0x08, 0xca, 0xc7, 0x01, 0xff, - 0x06, 0xc4, 0x06, 0xae, 0x03, 0x51, 0xb3, 0x58, 0x48, 0x0a, 0x01, 0x07, - 0xc1, 0x05, 0xc0, 0x01, 0x07, 0x2f, 0x39, 0x9c, 0x01, 0x0c, 0x01, 0x16, - 0x5b, 0x05, 0x2f, 0x03, 0x2f, 0xb6, 0x01, 0xff, 0x45, 0x5c, 0x23, 0x3f, - 0x0a, 0x01, 0x05, 0x6d, 0x38, 0x01, 0xff, 0x4b, 0x72, 0x38, 0x0c, 0x0a, - 0x01, 0x05, 0x2f, 0x03, 0x01, 0xff, 0xe5, 0x05, 0x0a, 0x01, 0xe9, 0x01, - 0x0a, 0x01, 0xef, 0x06, 0x0a, 0x01, 0xf5, 0x02, 0x0a, 0x01, 0x49, 0x9b, - 0xbe, 0x03, 0x0a, 0x41, 0x48, 0xd0, 0x15, 0x0e, 0x0a, 0x01, 0x49, 0x2b, - 0x32, 0x38, 0x0a, 0x01, 0x45, 0xec, 0xe1, 0x39, 0x0a, 0x01, 0x02, 0x3b, - 0x01, 0x06, 0x47, 0xa1, 0x4a, 0x0f, 0x0a, 0x41, 0x47, 0x52, 0x12, 0x3a, - 0x0a, 0x01, 0x4f, 0x9d, 0x72, 0x0d, 0x0a, 0x41, 0xa3, 0x2f, 0xa4, 0x1a, - 0xac, 0x0c, 0x48, 0x8a, 0xc5, 0x54, 0x0a, 0x01, 0x4c, 0xd3, 0x14, 0x51, - 0x0a, 0x41, 0x44, 0xf8, 0x26, 0x58, 0x0a, 0x01, 0x44, 0x45, 0x78, 0x55, - 0x0a, 0x41, 0x44, 0xd1, 0x1f, 0x56, 0x0a, 0x01, 0xaf, 0x01, 0xff, 0xf4, - 0x50, 0x0a, 0x01, 0x4a, 0xd9, 0x9e, 0x57, 0x0a, 0x41, 0x45, 0xe8, 0x02, - 0x52, 0x0a, 0x01, 0x4b, 0xca, 0x8b, 0x53, 0x0a, 0x41, 0x04, 0xbf, 0x0a, - 0x0f, 0xb4, 0x01, 0xff, 0x42, 0x92, 0x01, 0x44, 0x0a, 0x01, 0x45, 0xde, - 0x2b, 0x45, 0x0a, 0x41, 0x47, 0x22, 0x11, 0x46, 0x0a, 0x01, 0x48, 0xd5, - 0x5c, 0x47, 0x0a, 0x41, 0xe1, 0x00, 0x0a, 0x01, 0xa2, 0xd2, 0x01, 0xa3, + 0x45, 0x12, 0x0b, 0xe8, 0x17, 0x00, 0xa6, 0x2e, 0x44, 0xcf, 0x2a, 0xe9, + 0x17, 0x00, 0x43, 0x0e, 0x0b, 0xe1, 0x17, 0x00, 0xb3, 0x14, 0xb4, 0x06, + 0x44, 0x43, 0x1e, 0xe0, 0x17, 0x40, 0x44, 0x25, 0x01, 0xe3, 0x17, 0x00, + 0x42, 0x15, 0x02, 0xe2, 0x17, 0x40, 0x44, 0xc9, 0x1d, 0xe7, 0x17, 0x00, + 0x42, 0x01, 0x26, 0xe6, 0x17, 0x40, 0x43, 0xd2, 0x05, 0xe5, 0x17, 0x00, + 0x43, 0xf6, 0x06, 0xe4, 0x17, 0x40, 0x4a, 0x99, 0xa8, 0x04, 0xd8, 0x80, + 0x06, 0x46, 0xa7, 0x82, 0xe4, 0x6f, 0x41, 0x45, 0x59, 0xe2, 0xff, 0x8c, + 0x41, 0x43, 0x26, 0x18, 0xaf, 0xfa, 0x01, 0x08, 0x78, 0xca, 0x01, 0xff, + 0x06, 0xef, 0x06, 0xae, 0x03, 0x51, 0x1e, 0x5a, 0x48, 0x0a, 0x01, 0x07, + 0xec, 0x05, 0xc0, 0x01, 0x07, 0xff, 0x39, 0x9c, 0x01, 0x0c, 0x6d, 0x16, + 0x5b, 0x05, 0x5a, 0x03, 0x2f, 0xb6, 0x01, 0xff, 0x45, 0xe4, 0x23, 0x3f, + 0x0a, 0x01, 0x05, 0x3d, 0x39, 0x01, 0xff, 0x4b, 0x42, 0x39, 0x0c, 0x0a, + 0x01, 0x05, 0x5a, 0x03, 0x01, 0xff, 0xe5, 0x05, 0x0a, 0x01, 0xe9, 0x01, + 0x0a, 0x01, 0xef, 0x06, 0x0a, 0x01, 0xf5, 0x02, 0x0a, 0x01, 0x49, 0x22, + 0xc1, 0x03, 0x0a, 0x41, 0x48, 0x3c, 0x16, 0x0e, 0x0a, 0x01, 0x49, 0xfb, + 0x32, 0x38, 0x0a, 0x01, 0x45, 0xfc, 0xe4, 0x39, 0x0a, 0x01, 0x02, 0x3b, + 0x01, 0x06, 0x47, 0xea, 0x4b, 0x0f, 0x0a, 0x41, 0x47, 0xa1, 0x12, 0x3a, + 0x0a, 0x01, 0x4f, 0x28, 0x74, 0x0d, 0x0a, 0x41, 0xa3, 0x2f, 0xa4, 0x1a, + 0xac, 0x0c, 0x48, 0x28, 0xc8, 0x54, 0x0a, 0x01, 0x4c, 0x3f, 0x15, 0x51, + 0x0a, 0x41, 0x44, 0x99, 0x27, 0x58, 0x0a, 0x01, 0x44, 0xa6, 0x79, 0x55, + 0x0a, 0x41, 0x44, 0x73, 0x20, 0x56, 0x0a, 0x01, 0xaf, 0x01, 0xff, 0xf4, + 0x50, 0x0a, 0x01, 0x4a, 0x0a, 0xa1, 0x57, 0x0a, 0x41, 0x45, 0x13, 0x03, + 0x52, 0x0a, 0x01, 0x4b, 0x88, 0x8d, 0x53, 0x0a, 0x41, 0x04, 0x0e, 0x0b, + 0x0f, 0xb4, 0x01, 0xff, 0x42, 0x92, 0x01, 0x44, 0x0a, 0x01, 0x45, 0x7f, + 0x2c, 0x45, 0x0a, 0x41, 0x47, 0x71, 0x11, 0x46, 0x0a, 0x01, 0x48, 0x40, + 0x5e, 0x47, 0x0a, 0x41, 0xe1, 0x00, 0x0a, 0x01, 0xa2, 0xd2, 0x01, 0xa3, 0xc5, 0x01, 0xa4, 0xac, 0x01, 0xa7, 0x9f, 0x01, 0x42, 0x22, 0x00, 0x31, - 0x0a, 0x01, 0x42, 0xbd, 0x26, 0x17, 0x0a, 0x01, 0xab, 0x80, 0x01, 0x42, + 0x0a, 0x01, 0x42, 0x56, 0x19, 0x17, 0x0a, 0x01, 0xab, 0x80, 0x01, 0x42, 0x74, 0x00, 0x2b, 0x0a, 0x01, 0x42, 0x6c, 0x00, 0x28, 0x0a, 0x01, 0xae, 0x62, 0xb0, 0x56, 0x42, 0x71, 0x00, 0x2a, 0x0a, 0x01, 0xb3, 0x3e, 0xb4, - 0x18, 0xb6, 0x0c, 0x42, 0x34, 0x22, 0x29, 0x0a, 0x01, 0x42, 0x59, 0x00, + 0x18, 0xb6, 0x0c, 0x42, 0xbc, 0x22, 0x29, 0x0a, 0x01, 0x42, 0x59, 0x00, 0x30, 0x0a, 0x41, 0xe1, 0x2c, 0x0a, 0x01, 0x42, 0x22, 0x00, 0x35, 0x0a, 0x41, 0xe1, 0x1f, 0x0a, 0x01, 0x42, 0x22, 0x00, 0x20, 0x0a, 0x01, 0xb4, 0x01, 0xff, 0xe1, 0x1a, 0x0a, 0x01, 0x42, 0x22, 0x00, 0x1b, 0x0a, 0x01, 0xb4, 0x01, 0xff, 0xe1, 0x34, 0x0a, 0x01, 0x42, 0x22, 0x00, 0x33, 0x0a, 0x41, 0xe1, 0x2f, 0x0a, 0x01, 0x42, 0x22, 0x00, 0x2d, 0x0a, 0x01, 0x42, - 0x15, 0x06, 0x2e, 0x0a, 0x41, 0xe1, 0x24, 0x0a, 0x01, 0x42, 0x22, 0x00, - 0x25, 0x0a, 0x41, 0xe1, 0x23, 0x0a, 0x01, 0x42, 0xff, 0x04, 0x1e, 0x0a, - 0x01, 0x42, 0x34, 0x22, 0x19, 0x0a, 0x41, 0xe1, 0x10, 0x0a, 0x01, 0x42, + 0x40, 0x06, 0x2e, 0x0a, 0x41, 0xe1, 0x24, 0x0a, 0x01, 0x42, 0x22, 0x00, + 0x25, 0x0a, 0x41, 0xe1, 0x23, 0x0a, 0x01, 0x42, 0x2a, 0x05, 0x1e, 0x0a, + 0x01, 0x42, 0xbc, 0x22, 0x19, 0x0a, 0x41, 0xe1, 0x10, 0x0a, 0x01, 0x42, 0x22, 0x00, 0x11, 0x0a, 0x01, 0x42, 0x1b, 0x02, 0x32, 0x0a, 0x41, 0xe1, 0x12, 0x0a, 0x01, 0x42, 0x22, 0x00, 0x13, 0x0a, 0x41, 0xe1, 0x21, 0x0a, 0x01, 0xa4, 0x06, 0x42, 0x22, 0x00, 0x22, 0x0a, 0x41, 0xe1, 0x1c, 0x0a, 0x01, 0x42, 0x22, 0x00, 0x1d, 0x0a, 0x41, 0xe1, 0x15, 0x0a, 0x01, 0x42, 0x22, 0x00, 0x16, 0x0a, 0x41, 0xe1, 0x26, 0x0a, 0x01, 0x42, 0x22, 0x00, - 0x27, 0x0a, 0x41, 0x44, 0xca, 0x06, 0x43, 0x0a, 0x01, 0x43, 0xbf, 0x0a, + 0x27, 0x0a, 0x41, 0x44, 0xf5, 0x06, 0x43, 0x0a, 0x01, 0x43, 0x0e, 0x0b, 0x40, 0x0a, 0x01, 0xb4, 0x01, 0xff, 0x44, 0x25, 0x01, 0x42, 0x0a, 0x01, - 0x42, 0x15, 0x02, 0x41, 0x0a, 0x41, 0x49, 0x5e, 0xb9, 0x2a, 0x21, 0x00, - 0xf9, 0x11, 0xf5, 0xc1, 0x00, 0x45, 0x26, 0x14, 0x28, 0x23, 0x80, 0x0c, - 0x47, 0xfa, 0xcc, 0x1f, 0xf5, 0x01, 0x44, 0x10, 0x20, 0xb1, 0xce, 0x41, - 0x4a, 0x83, 0xa3, 0xa6, 0xf5, 0x41, 0x43, 0x3f, 0x4f, 0x4b, 0xf5, 0x01, - 0x05, 0x85, 0xe4, 0x90, 0x1d, 0x0f, 0x84, 0x6d, 0x81, 0x1c, 0xae, 0xf2, - 0x0b, 0x06, 0x3a, 0x66, 0xda, 0x06, 0x03, 0xc0, 0xde, 0xb4, 0x02, 0x07, - 0xef, 0xd4, 0x01, 0xff, 0x06, 0xc4, 0x06, 0xe8, 0x01, 0x07, 0xc1, 0x05, - 0x42, 0x05, 0x2f, 0x03, 0x32, 0x05, 0x83, 0x2c, 0x1b, 0x06, 0x6c, 0x38, + 0x42, 0x15, 0x02, 0x41, 0x0a, 0x41, 0x49, 0xc1, 0xbb, 0x2a, 0x21, 0x00, + 0xf9, 0x11, 0xf5, 0xc1, 0x00, 0x45, 0x75, 0x14, 0x28, 0x23, 0x80, 0x0c, + 0x47, 0xcd, 0xcf, 0x1f, 0xf5, 0x01, 0x44, 0xb2, 0x20, 0xb1, 0xce, 0x41, + 0x4a, 0xbf, 0xa5, 0xa6, 0xf5, 0x41, 0x43, 0xe8, 0x60, 0x4b, 0xf5, 0x01, + 0x05, 0x9a, 0xe7, 0x99, 0x1d, 0x0f, 0x2d, 0x6f, 0x8a, 0x1c, 0xae, 0xf2, + 0x0b, 0x06, 0xb6, 0x67, 0xda, 0x06, 0x03, 0xd0, 0xe1, 0xb4, 0x02, 0x07, + 0xc9, 0xd7, 0x01, 0xff, 0x06, 0xef, 0x06, 0xe8, 0x01, 0x07, 0xec, 0x05, + 0x42, 0x05, 0x5a, 0x03, 0x32, 0x05, 0x3b, 0x2d, 0x1b, 0x06, 0x3c, 0x39, 0x01, 0xff, 0xe5, 0x27, 0xa9, 0x80, 0x0d, 0xef, 0x2a, 0xa9, 0x00, 0xf5, 0x28, 0xa9, 0xc0, 0x00, 0xe5, 0x26, 0xa9, 0x40, 0xe5, 0x29, 0xa9, 0x40, - 0x45, 0xe2, 0xe1, 0x2c, 0xa9, 0x80, 0x06, 0x46, 0xbd, 0xca, 0x2b, 0xa9, - 0x40, 0x47, 0xbc, 0xca, 0x2d, 0xa9, 0x40, 0x43, 0xba, 0xf0, 0x2e, 0xa9, - 0x00, 0x44, 0x4e, 0xef, 0x2f, 0xa9, 0x40, 0xe1, 0x22, 0xa9, 0x00, 0x42, + 0x45, 0xf2, 0xe4, 0x2c, 0xa9, 0x80, 0x06, 0x46, 0x7b, 0xcd, 0x2b, 0xa9, + 0x40, 0x47, 0x7a, 0xcd, 0x2d, 0xa9, 0x40, 0x43, 0x0d, 0xf4, 0x2e, 0xa9, + 0x00, 0x44, 0xa5, 0xf2, 0x2f, 0xa9, 0x40, 0xe1, 0x22, 0xa9, 0x00, 0x42, 0x16, 0x00, 0x19, 0xa9, 0x00, 0x42, 0x37, 0x00, 0x21, 0xa9, 0x00, 0x42, - 0xa1, 0x10, 0x18, 0xa9, 0x00, 0x42, 0x24, 0x02, 0x0c, 0xa9, 0x00, 0xa8, + 0xf0, 0x10, 0x18, 0xa9, 0x00, 0x42, 0x24, 0x02, 0x0c, 0xa9, 0x00, 0xa8, 0x7a, 0xe9, 0x24, 0xa9, 0x00, 0xab, 0x6a, 0x42, 0x74, 0x00, 0x1c, 0xa9, 0x00, 0x42, 0x6c, 0x00, 0x17, 0xa9, 0x00, 0xae, 0x4c, 0xaf, 0x42, 0xb0, 0x36, 0x42, 0x71, 0x00, 0x1a, 0xa9, 0x00, 0xb3, 0x24, 0xb4, 0x18, 0x42, - 0xa6, 0x0a, 0x20, 0xa9, 0x00, 0x42, 0xa9, 0x01, 0x1d, 0xa9, 0x00, 0x42, - 0x34, 0x22, 0x1b, 0xa9, 0x00, 0x42, 0x59, 0x00, 0x10, 0xa9, 0x40, 0xe1, + 0xf5, 0x0a, 0x20, 0xa9, 0x00, 0x42, 0xa9, 0x01, 0x1d, 0xa9, 0x00, 0x42, + 0xbc, 0x22, 0x1b, 0xa9, 0x00, 0x42, 0x59, 0x00, 0x10, 0xa9, 0x40, 0xe1, 0x12, 0xa9, 0x00, 0x42, 0x22, 0x00, 0x1e, 0xa9, 0x40, 0xe1, 0x0e, 0xa9, 0x00, 0x42, 0x22, 0x00, 0x0f, 0xa9, 0x40, 0xe1, 0x15, 0xa9, 0x00, 0x42, 0x22, 0x00, 0x16, 0xa9, 0x40, 0xe5, 0x23, 0xa9, 0x00, 0xef, 0x25, 0xa9, 0x40, 0xe1, 0x14, 0xa9, 0x00, 0x42, 0x24, 0x02, 0x0d, 0xa9, 0x00, 0x42, - 0x34, 0x22, 0x11, 0xa9, 0x40, 0xe1, 0x0a, 0xa9, 0x00, 0x42, 0x22, 0x00, + 0xbc, 0x22, 0x11, 0xa9, 0x40, 0xe1, 0x0a, 0xa9, 0x00, 0x42, 0x22, 0x00, 0x0b, 0xa9, 0x40, 0xe1, 0x1f, 0xa9, 0x00, 0x42, 0x12, 0x00, 0x13, 0xa9, - 0x40, 0x45, 0xc3, 0x0a, 0x08, 0xa9, 0x00, 0xa6, 0x2e, 0x44, 0x46, 0x2a, - 0x09, 0xa9, 0x00, 0x43, 0xbf, 0x0a, 0x01, 0xa9, 0x00, 0xb3, 0x14, 0xb4, - 0x06, 0x44, 0xa1, 0x1d, 0x00, 0xa9, 0x40, 0x44, 0x25, 0x01, 0x03, 0xa9, - 0x00, 0x42, 0x15, 0x02, 0x02, 0xa9, 0x40, 0x44, 0x27, 0x1d, 0x07, 0xa9, - 0x00, 0x42, 0x60, 0x25, 0x06, 0xa9, 0x40, 0x43, 0xa7, 0x05, 0x05, 0xa9, - 0x00, 0x43, 0xcb, 0x06, 0x04, 0xa9, 0x40, 0x49, 0x0b, 0xb5, 0x42, 0x1f, - 0x01, 0xa4, 0xc6, 0x03, 0x07, 0xc1, 0x05, 0xaf, 0x01, 0x0c, 0x01, 0x16, - 0x5e, 0x05, 0x2f, 0x03, 0x36, 0x0b, 0xd1, 0x75, 0x01, 0xff, 0xa1, 0x21, + 0x40, 0x45, 0x12, 0x0b, 0x08, 0xa9, 0x00, 0xa6, 0x2e, 0x44, 0xcf, 0x2a, + 0x09, 0xa9, 0x00, 0x43, 0x0e, 0x0b, 0x01, 0xa9, 0x00, 0xb3, 0x14, 0xb4, + 0x06, 0x44, 0x43, 0x1e, 0x00, 0xa9, 0x40, 0x44, 0x25, 0x01, 0x03, 0xa9, + 0x00, 0x42, 0x15, 0x02, 0x02, 0xa9, 0x40, 0x44, 0xc9, 0x1d, 0x07, 0xa9, + 0x00, 0x42, 0x01, 0x26, 0x06, 0xa9, 0x40, 0x43, 0xd2, 0x05, 0x05, 0xa9, + 0x00, 0x43, 0xf6, 0x06, 0x04, 0xa9, 0x40, 0x49, 0x5c, 0xb7, 0x42, 0x1f, + 0x01, 0xa4, 0xc6, 0x03, 0x07, 0xec, 0x05, 0xaf, 0x01, 0x0c, 0x6d, 0x16, + 0x5e, 0x05, 0x5a, 0x03, 0x36, 0x0b, 0x40, 0x77, 0x01, 0xff, 0xa1, 0x21, 0xe5, 0x3e, 0x1f, 0x81, 0x18, 0xe9, 0x36, 0x1f, 0x81, 0x0f, 0xf5, 0x38, - 0x1f, 0x81, 0x06, 0x49, 0x9b, 0xbe, 0x3a, 0x1f, 0x41, 0xf5, 0x39, 0x1f, + 0x1f, 0x81, 0x06, 0x49, 0x22, 0xc1, 0x3a, 0x1f, 0x41, 0xf5, 0x39, 0x1f, 0x41, 0xe9, 0x37, 0x1f, 0x41, 0xf5, 0x40, 0x1f, 0x41, 0xe1, 0x34, 0x1f, - 0x01, 0xe9, 0x3f, 0x1f, 0x01, 0x4b, 0xe9, 0x9c, 0x35, 0x1f, 0x41, 0x48, - 0xd0, 0x15, 0x01, 0x1f, 0x01, 0x4b, 0x4f, 0x23, 0x00, 0x1f, 0x01, 0x46, - 0x6c, 0xda, 0x41, 0x1f, 0x01, 0x45, 0x5a, 0x3e, 0x5a, 0x1f, 0x01, 0x45, - 0x32, 0xe7, 0x02, 0x1f, 0x01, 0x47, 0xa1, 0x4a, 0x03, 0x1f, 0x41, 0x58, - 0x4d, 0x26, 0x46, 0x1f, 0x01, 0xa3, 0x39, 0x02, 0x3b, 0x01, 0x2b, 0xa6, - 0x1d, 0xb3, 0x06, 0x4a, 0xe5, 0xaf, 0x4b, 0x1f, 0x41, 0x4d, 0x58, 0x26, - 0x45, 0x1f, 0x01, 0xb0, 0x01, 0xff, 0x4a, 0x1d, 0xa5, 0x48, 0x1f, 0x01, - 0x44, 0xa8, 0x83, 0x4e, 0x1f, 0x41, 0x4c, 0x39, 0x8e, 0x4d, 0x1f, 0x01, - 0x45, 0x13, 0x01, 0x47, 0x1f, 0x41, 0xf4, 0x49, 0x1f, 0x01, 0x48, 0xad, - 0x40, 0x4a, 0x1f, 0x41, 0x45, 0xe8, 0x02, 0x4c, 0x1f, 0x01, 0x4d, 0x9f, - 0x83, 0x4f, 0x1f, 0x41, 0xe1, 0x04, 0x1f, 0x81, 0x84, 0x02, 0xa2, 0xf7, + 0x01, 0xe9, 0x3f, 0x1f, 0x01, 0x4b, 0x0f, 0x9f, 0x35, 0x1f, 0x41, 0x48, + 0x3c, 0x16, 0x01, 0x1f, 0x01, 0x4b, 0xd7, 0x23, 0x00, 0x1f, 0x01, 0x46, + 0x64, 0xdd, 0x41, 0x1f, 0x01, 0x45, 0x3f, 0x3f, 0x5a, 0x1f, 0x01, 0x45, + 0x56, 0xea, 0x02, 0x1f, 0x01, 0x47, 0xea, 0x4b, 0x03, 0x1f, 0x41, 0x58, + 0xee, 0x26, 0x46, 0x1f, 0x01, 0xa3, 0x39, 0x02, 0x3b, 0x01, 0x2b, 0xa6, + 0x1d, 0xb3, 0x06, 0x4a, 0x35, 0xb2, 0x4b, 0x1f, 0x41, 0x4d, 0xf9, 0x26, + 0x45, 0x1f, 0x01, 0xb0, 0x01, 0xff, 0x4a, 0x59, 0xa7, 0x48, 0x1f, 0x01, + 0x44, 0x58, 0x85, 0x4e, 0x1f, 0x41, 0x4c, 0xeb, 0x8f, 0x4d, 0x1f, 0x01, + 0x45, 0x13, 0x01, 0x47, 0x1f, 0x41, 0xf4, 0x49, 0x1f, 0x01, 0x48, 0xba, + 0x41, 0x4a, 0x1f, 0x41, 0x45, 0x13, 0x03, 0x4c, 0x1f, 0x01, 0x4d, 0x4f, + 0x85, 0x4f, 0x1f, 0x41, 0xe1, 0x04, 0x1f, 0x81, 0x84, 0x02, 0xa2, 0xf7, 0x01, 0xa3, 0xea, 0x01, 0xa4, 0xd1, 0x01, 0xe5, 0x0e, 0x1f, 0x01, 0xa7, 0xc0, 0x01, 0x42, 0x22, 0x00, 0x32, 0x1f, 0x01, 0xe9, 0x06, 0x1f, 0x81, 0xb0, 0x01, 0xaa, 0x9d, 0x01, 0xab, 0x90, 0x01, 0x42, 0x74, 0x00, 0x2d, 0x1f, 0x01, 0x42, 0x6c, 0x00, 0x2a, 0x1f, 0x01, 0xae, 0x6c, 0xef, 0x10, 0x1f, 0x01, 0xb0, 0x5c, 0x42, 0x71, 0x00, 0x2c, 0x1f, 0x01, 0xb3, 0x44, - 0xb4, 0x2b, 0xf5, 0x08, 0x1f, 0x81, 0x22, 0x08, 0x9b, 0xbe, 0x0c, 0x42, - 0xa9, 0x01, 0x2e, 0x1f, 0x01, 0x42, 0x34, 0x22, 0x2b, 0x1f, 0x41, 0xec, + 0xb4, 0x2b, 0xf5, 0x08, 0x1f, 0x81, 0x22, 0x08, 0x22, 0xc1, 0x0c, 0x42, + 0xa9, 0x01, 0x2e, 0x1f, 0x01, 0x42, 0xbc, 0x22, 0x2b, 0x1f, 0x41, 0xec, 0x0c, 0x1f, 0x81, 0x09, 0xf2, 0x0a, 0x1f, 0xc1, 0x00, 0xf2, 0x0b, 0x1f, 0x41, 0xec, 0x0d, 0x1f, 0x41, 0xf5, 0x09, 0x1f, 0x41, 0xe1, 0x21, 0x1f, 0x01, 0x42, 0x22, 0x00, 0x22, 0x1f, 0x01, 0xb4, 0x01, 0xff, 0xe1, 0x1c, 0x1f, 0x01, 0x42, 0x22, 0x00, 0x1d, 0x1f, 0x41, 0xe1, 0x31, 0x1f, 0x01, - 0x42, 0x22, 0x00, 0x2f, 0x1f, 0x01, 0x42, 0x15, 0x06, 0x30, 0x1f, 0x41, + 0x42, 0x22, 0x00, 0x2f, 0x1f, 0x01, 0x42, 0x40, 0x06, 0x30, 0x1f, 0x41, 0xe1, 0x26, 0x1f, 0x01, 0x42, 0x22, 0x00, 0x27, 0x1f, 0x41, 0xe1, 0x25, - 0x1f, 0x01, 0x42, 0x24, 0x02, 0x16, 0x1f, 0x01, 0x42, 0xff, 0x04, 0x20, - 0x1f, 0x01, 0x42, 0x34, 0x22, 0x1b, 0x1f, 0x41, 0xe1, 0x12, 0x1f, 0x01, + 0x1f, 0x01, 0x42, 0x24, 0x02, 0x16, 0x1f, 0x01, 0x42, 0x2a, 0x05, 0x20, + 0x1f, 0x01, 0x42, 0xbc, 0x22, 0x1b, 0x1f, 0x41, 0xe1, 0x12, 0x1f, 0x01, 0x42, 0x22, 0x00, 0x13, 0x1f, 0x41, 0xe1, 0x19, 0x1f, 0x01, 0x42, 0x22, - 0x00, 0x1a, 0x1f, 0x01, 0x43, 0xd6, 0x34, 0x33, 0x1f, 0x41, 0xe9, 0x07, + 0x00, 0x1a, 0x1f, 0x01, 0x43, 0xa6, 0x35, 0x33, 0x1f, 0x41, 0xe9, 0x07, 0x1f, 0x41, 0xe1, 0x14, 0x1f, 0x01, 0x42, 0x22, 0x00, 0x15, 0x1f, 0x41, 0xe1, 0x23, 0x1f, 0x01, 0xa4, 0x06, 0x42, 0x22, 0x00, 0x24, 0x1f, 0x41, 0xe1, 0x1e, 0x1f, 0x01, 0x42, 0x22, 0x00, 0x1f, 0x1f, 0x41, 0xe1, 0x17, 0x1f, 0x01, 0x42, 0x22, 0x00, 0x18, 0x1f, 0x41, 0xe1, 0x28, 0x1f, 0x01, 0x42, 0x22, 0x00, 0x29, 0x1f, 0x41, 0xe1, 0x05, 0x1f, 0x01, 0xe9, 0x0f, - 0x1f, 0x41, 0x44, 0xd1, 0x1f, 0x43, 0x1f, 0x01, 0x05, 0xc5, 0x06, 0x06, - 0x4b, 0xd8, 0x9e, 0x44, 0x1f, 0x41, 0x45, 0xc3, 0x0a, 0x58, 0x1f, 0x01, - 0xa6, 0x2e, 0x44, 0x46, 0x2a, 0x59, 0x1f, 0x01, 0x43, 0xbf, 0x0a, 0x51, - 0x1f, 0x01, 0xb3, 0x14, 0xb4, 0x06, 0x44, 0xa1, 0x1d, 0x50, 0x1f, 0x41, + 0x1f, 0x41, 0x44, 0x73, 0x20, 0x43, 0x1f, 0x01, 0x05, 0xf0, 0x06, 0x06, + 0x4b, 0x09, 0xa1, 0x44, 0x1f, 0x41, 0x45, 0x12, 0x0b, 0x58, 0x1f, 0x01, + 0xa6, 0x2e, 0x44, 0xcf, 0x2a, 0x59, 0x1f, 0x01, 0x43, 0x0e, 0x0b, 0x51, + 0x1f, 0x01, 0xb3, 0x14, 0xb4, 0x06, 0x44, 0x43, 0x1e, 0x50, 0x1f, 0x41, 0x44, 0x25, 0x01, 0x53, 0x1f, 0x01, 0x42, 0x15, 0x02, 0x52, 0x1f, 0x41, - 0x44, 0x27, 0x1d, 0x57, 0x1f, 0x01, 0x42, 0x60, 0x25, 0x56, 0x1f, 0x41, - 0x43, 0xa7, 0x05, 0x55, 0x1f, 0x01, 0x43, 0xcb, 0x06, 0x54, 0x1f, 0x41, - 0x80, 0x1d, 0x0a, 0xf6, 0x11, 0x01, 0xff, 0x4d, 0x86, 0x80, 0xa0, 0x30, - 0x00, 0x54, 0x00, 0x12, 0xfc, 0x30, 0x00, 0x56, 0x4b, 0x36, 0x9c, 0x30, - 0x00, 0x51, 0x50, 0x36, 0x9b, 0x30, 0x40, 0x4c, 0x41, 0x8c, 0xff, 0x30, - 0x00, 0x4e, 0xb6, 0x1f, 0xfd, 0x30, 0x00, 0x07, 0xc1, 0x05, 0x0c, 0x4a, - 0xb1, 0x44, 0xfb, 0x30, 0x00, 0x55, 0x11, 0x3e, 0xfe, 0x30, 0x40, 0xe1, + 0x44, 0xc9, 0x1d, 0x57, 0x1f, 0x01, 0x42, 0x01, 0x26, 0x56, 0x1f, 0x41, + 0x43, 0xd2, 0x05, 0x55, 0x1f, 0x01, 0x43, 0xf6, 0x06, 0x54, 0x1f, 0x41, + 0x80, 0x1d, 0x0a, 0x45, 0x12, 0x01, 0xff, 0x4d, 0x1c, 0x82, 0xa0, 0x30, + 0x00, 0x54, 0x4f, 0x12, 0xfc, 0x30, 0x00, 0x56, 0x1b, 0x37, 0x9c, 0x30, + 0x00, 0x51, 0x20, 0x37, 0x9b, 0x30, 0x40, 0x4c, 0xff, 0x8d, 0xff, 0x30, + 0x00, 0x4e, 0x58, 0x20, 0xfd, 0x30, 0x00, 0x07, 0xec, 0x05, 0x0c, 0x4a, + 0xe6, 0x45, 0xfb, 0x30, 0x00, 0x55, 0xf6, 0x3e, 0xfe, 0x30, 0x40, 0xe1, 0xa2, 0x30, 0x80, 0xb8, 0x04, 0xa2, 0xa1, 0x04, 0xa4, 0x8a, 0x04, 0xe5, 0xa8, 0x30, 0x00, 0xa7, 0xef, 0x03, 0xa8, 0xd8, 0x03, 0xe9, 0xa4, 0x30, 0x00, 0xab, 0xbd, 0x03, 0xad, 0xe3, 0x02, 0xee, 0xf3, 0x30, 0x80, 0xc9, @@ -10382,10 +10523,10 @@ static const unsigned char uname2c_tree[218382] = { 0xe9, 0xf8, 0x30, 0x00, 0xef, 0xfa, 0x30, 0x00, 0xf5, 0xf4, 0x30, 0x40, 0xe1, 0xbf, 0x30, 0x00, 0xe5, 0xc6, 0x30, 0x00, 0xe9, 0xc1, 0x30, 0x00, 0xef, 0xc8, 0x30, 0x00, 0xf5, 0xc4, 0x30, 0x40, 0xe1, 0xb5, 0x30, 0x00, - 0xe5, 0xbb, 0x30, 0x00, 0xe9, 0xb7, 0x30, 0x00, 0x05, 0x0d, 0x07, 0x08, + 0xe5, 0xbb, 0x30, 0x00, 0xe9, 0xb7, 0x30, 0x00, 0x05, 0x5e, 0x07, 0x08, 0xef, 0xbd, 0x30, 0x00, 0xf5, 0xb9, 0x30, 0x40, 0xe1, 0xa1, 0x30, 0x00, 0xe5, 0xa7, 0x30, 0x00, 0xa8, 0x78, 0xe9, 0xa3, 0x30, 0x00, 0xab, 0x62, - 0x42, 0x57, 0x16, 0xfa, 0x31, 0x00, 0xee, 0x67, 0xb1, 0x81, 0x53, 0xef, + 0x42, 0xc3, 0x16, 0xfa, 0x31, 0x00, 0xee, 0x67, 0xb1, 0x81, 0x53, 0xef, 0xa9, 0x30, 0x00, 0xb2, 0x39, 0xb3, 0x2f, 0xb4, 0x25, 0xf5, 0xa5, 0x30, 0x00, 0xb7, 0x0f, 0xb9, 0x01, 0xff, 0xe1, 0xe3, 0x30, 0x00, 0xef, 0xe7, 0x30, 0x00, 0xf5, 0xe5, 0x30, 0x40, 0xe1, 0xee, 0x30, 0x00, 0xe5, 0x65, @@ -10403,7 +10544,7 @@ static const unsigned char uname2c_tree[218382] = { 0x30, 0x00, 0xe9, 0xcb, 0x30, 0x00, 0xef, 0xce, 0x30, 0x00, 0xf5, 0xcc, 0x30, 0x40, 0xe1, 0xde, 0x30, 0x00, 0xe5, 0xe1, 0x30, 0x00, 0xe9, 0xdf, 0x30, 0x80, 0x08, 0xef, 0xe2, 0x30, 0x00, 0xf5, 0xe0, 0x30, 0x40, 0x05, - 0x0b, 0xe6, 0x01, 0xff, 0x0f, 0xdd, 0x6e, 0x1d, 0x05, 0x05, 0x31, 0x01, + 0x2a, 0xe9, 0x01, 0xff, 0x0f, 0x86, 0x70, 0x1d, 0x05, 0xeb, 0x31, 0x01, 0xff, 0xd2, 0xf0, 0xaf, 0x01, 0xd3, 0xf1, 0xaf, 0x01, 0xd4, 0xf2, 0xaf, 0x01, 0xd5, 0xf3, 0xaf, 0x01, 0xd7, 0xf5, 0xaf, 0x01, 0xd8, 0xf6, 0xaf, 0x41, 0xd1, 0xf7, 0xaf, 0x01, 0xd2, 0xf8, 0xaf, 0x01, 0xd3, 0xf9, 0xaf, @@ -10416,8223 +10557,8326 @@ static const unsigned char uname2c_tree[218382] = { 0x00, 0xf5, 0xb0, 0x30, 0x40, 0xe1, 0xc0, 0x30, 0x00, 0xe5, 0xc7, 0x30, 0x00, 0xe9, 0xc2, 0x30, 0x00, 0xef, 0xc9, 0x30, 0x00, 0xf5, 0xc5, 0x30, 0x40, 0xe1, 0xd0, 0x30, 0x00, 0xe5, 0xd9, 0x30, 0x00, 0xe9, 0xd3, 0x30, - 0x00, 0xef, 0xdc, 0x30, 0x00, 0xf5, 0xd6, 0x30, 0x40, 0x07, 0x28, 0x7f, - 0x01, 0xff, 0xe5, 0x00, 0xb0, 0x01, 0x42, 0x45, 0x07, 0x22, 0xb1, 0x01, + 0x00, 0xef, 0xdc, 0x30, 0x00, 0xf5, 0xd6, 0x30, 0x40, 0x07, 0xa4, 0x80, + 0x01, 0xff, 0xe5, 0x00, 0xb0, 0x01, 0x42, 0x7c, 0x31, 0x22, 0xb1, 0x01, 0xb9, 0x01, 0xff, 0xe5, 0x21, 0xb1, 0x01, 0xe9, 0x20, 0xb1, 0x41, 0xa7, - 0xbe, 0x04, 0x05, 0xcf, 0xe5, 0x01, 0xff, 0x4e, 0x38, 0x74, 0xd6, 0x0c, - 0x00, 0x06, 0xc4, 0x06, 0xec, 0x03, 0x02, 0x68, 0x00, 0x9f, 0x01, 0x05, - 0x2f, 0x03, 0x4e, 0x0b, 0xd1, 0x75, 0x01, 0xff, 0xa1, 0x3b, 0xe5, 0xc6, - 0x0c, 0x80, 0x32, 0xe9, 0xbf, 0x0c, 0x80, 0x29, 0xef, 0xca, 0x0c, 0x80, - 0x20, 0xf5, 0xc1, 0x0c, 0x80, 0x17, 0x08, 0x9b, 0xbe, 0x01, 0xff, 0xec, - 0xe2, 0x0c, 0x80, 0x09, 0xf2, 0xc3, 0x0c, 0xc0, 0x00, 0xf2, 0xc4, 0x0c, - 0x40, 0xec, 0xe3, 0x0c, 0x40, 0xf5, 0xc2, 0x0c, 0x40, 0xef, 0xcb, 0x0c, - 0x40, 0xe9, 0xc0, 0x0c, 0x40, 0xe5, 0xc7, 0x0c, 0x40, 0xe1, 0xbe, 0x0c, - 0x00, 0xe9, 0xc8, 0x0c, 0x00, 0xf5, 0xcc, 0x0c, 0x40, 0xa1, 0x3f, 0xa3, - 0x31, 0x4b, 0xc0, 0x9b, 0xf1, 0x0c, 0x00, 0x45, 0x5a, 0x3e, 0xbc, 0x0c, - 0x00, 0xb3, 0x17, 0x4b, 0x32, 0xa2, 0xf2, 0x0c, 0x00, 0x02, 0x02, 0x00, - 0x01, 0xff, 0x44, 0x5d, 0x23, 0xcd, 0x0c, 0x00, 0x45, 0xa3, 0x4a, 0x83, - 0x0c, 0x40, 0x46, 0x0d, 0xd3, 0x84, 0x0c, 0x00, 0x52, 0x30, 0x53, 0x80, - 0x0c, 0x40, 0x4a, 0x50, 0x23, 0x81, 0x0c, 0x00, 0x5d, 0xc7, 0x15, 0xf3, - 0x0c, 0x40, 0x47, 0xd1, 0x15, 0x82, 0x0c, 0x00, 0x47, 0xf2, 0x86, 0xbd, - 0x0c, 0x40, 0x49, 0x74, 0x38, 0xd5, 0x0c, 0x00, 0x05, 0xc3, 0x05, 0x01, - 0xff, 0xe1, 0x85, 0x0c, 0x80, 0xab, 0x02, 0xa2, 0x9e, 0x02, 0xa3, 0x91, - 0x02, 0xa4, 0xf8, 0x01, 0xe5, 0x8e, 0x0c, 0x80, 0xee, 0x01, 0x42, 0xe1, - 0x07, 0xde, 0x0c, 0x00, 0xa7, 0xdb, 0x01, 0x42, 0x22, 0x00, 0xb9, 0x0c, - 0x00, 0xe9, 0x87, 0x0c, 0x80, 0xcb, 0x01, 0xaa, 0xbe, 0x01, 0xab, 0xb1, - 0x01, 0xac, 0x9d, 0x01, 0x42, 0x6c, 0x00, 0xae, 0x0c, 0x00, 0xae, 0x78, - 0xef, 0x92, 0x0c, 0x80, 0x6f, 0xb0, 0x63, 0xb2, 0x57, 0xb3, 0x45, 0xb4, - 0x2c, 0xf5, 0x89, 0x0c, 0x80, 0x23, 0xb6, 0x06, 0x42, 0x34, 0x22, 0xaf, - 0x0c, 0x40, 0xe1, 0xb5, 0x0c, 0x00, 0x07, 0x9c, 0xbe, 0x01, 0xff, 0xec, - 0x8c, 0x0c, 0x80, 0x09, 0xf2, 0x8b, 0x0c, 0xc0, 0x00, 0xf2, 0xe0, 0x0c, - 0x40, 0xec, 0xe1, 0x0c, 0x40, 0xf5, 0x8a, 0x0c, 0x40, 0xe1, 0xa4, 0x0c, - 0x00, 0x42, 0x22, 0x00, 0xa5, 0x0c, 0x00, 0xb4, 0x01, 0xff, 0xe1, 0x9f, - 0x0c, 0x00, 0x42, 0x22, 0x00, 0xa0, 0x0c, 0x40, 0xe1, 0xb8, 0x0c, 0x00, - 0x42, 0x22, 0x00, 0xb6, 0x0c, 0x00, 0x42, 0x15, 0x06, 0xb7, 0x0c, 0x40, - 0xe1, 0xb0, 0x0c, 0x00, 0x42, 0x71, 0x00, 0xb1, 0x0c, 0x40, 0xe1, 0xaa, - 0x0c, 0x00, 0x42, 0x22, 0x00, 0xab, 0x0c, 0x40, 0xef, 0x93, 0x0c, 0x40, - 0xe1, 0xa8, 0x0c, 0x80, 0x12, 0x42, 0x24, 0x02, 0x99, 0x0c, 0x00, 0x42, - 0xff, 0x04, 0xa3, 0x0c, 0x00, 0x42, 0x34, 0x22, 0x9e, 0x0c, 0x40, 0x4b, - 0xd6, 0x9b, 0xdd, 0x0c, 0x40, 0xe1, 0xb2, 0x0c, 0x00, 0xac, 0x01, 0xff, - 0xe1, 0xb3, 0x0c, 0x00, 0x42, 0x74, 0x00, 0xde, 0x0c, 0x40, 0xe1, 0x95, - 0x0c, 0x00, 0x42, 0x22, 0x00, 0x96, 0x0c, 0x40, 0xe1, 0x9c, 0x0c, 0x00, - 0x42, 0x22, 0x00, 0x9d, 0x0c, 0x40, 0xe9, 0x88, 0x0c, 0x40, 0xe1, 0x97, - 0x0c, 0x00, 0x42, 0x22, 0x00, 0x98, 0x0c, 0x40, 0xe5, 0x8f, 0x0c, 0x40, - 0xe1, 0xa6, 0x0c, 0x00, 0xa4, 0x06, 0x42, 0x22, 0x00, 0xa7, 0x0c, 0x40, - 0xe1, 0xa1, 0x0c, 0x00, 0x42, 0x22, 0x00, 0xa2, 0x0c, 0x40, 0xe1, 0x9a, - 0x0c, 0x00, 0x42, 0x22, 0x00, 0x9b, 0x0c, 0x40, 0xe1, 0xac, 0x0c, 0x00, - 0x42, 0x22, 0x00, 0xad, 0x0c, 0x40, 0xe1, 0x86, 0x0c, 0x00, 0xe9, 0x90, - 0x0c, 0x00, 0xf5, 0x94, 0x0c, 0x40, 0x45, 0xc3, 0x0a, 0xee, 0x0c, 0x00, - 0xa6, 0x2e, 0x44, 0x46, 0x2a, 0xef, 0x0c, 0x00, 0x43, 0xbf, 0x0a, 0xe7, - 0x0c, 0x00, 0xb3, 0x14, 0xb4, 0x06, 0x44, 0xa1, 0x1d, 0xe6, 0x0c, 0x40, - 0x44, 0x25, 0x01, 0xe9, 0x0c, 0x00, 0x42, 0x15, 0x02, 0xe8, 0x0c, 0x40, - 0x44, 0x27, 0x1d, 0xed, 0x0c, 0x00, 0x42, 0x60, 0x25, 0xec, 0x0c, 0x40, - 0x43, 0xa7, 0x05, 0xeb, 0x0c, 0x00, 0x43, 0xcb, 0x06, 0xea, 0x0c, 0x40, - 0x44, 0xe2, 0xeb, 0x98, 0xf9, 0x01, 0x0b, 0x19, 0xa3, 0x01, 0xff, 0xa1, - 0x9b, 0x0b, 0xa2, 0xab, 0x0a, 0xa3, 0xd1, 0x09, 0xa4, 0xdf, 0x08, 0xa5, - 0x9e, 0x08, 0xa6, 0xc1, 0x07, 0xa7, 0x90, 0x07, 0xa8, 0xc1, 0x06, 0xa9, - 0xa9, 0x06, 0x02, 0xbd, 0x26, 0x9a, 0x06, 0x45, 0x7e, 0xa3, 0x11, 0x2f, - 0x00, 0xac, 0xca, 0x05, 0xad, 0xf9, 0x04, 0xae, 0xe3, 0x04, 0xaf, 0xbe, - 0x04, 0xb0, 0x9a, 0x04, 0xb2, 0xe1, 0x03, 0xb3, 0xdf, 0x01, 0xb4, 0x76, - 0x43, 0x1a, 0x03, 0x64, 0x2f, 0x00, 0xb6, 0x62, 0xb7, 0x06, 0x46, 0x04, - 0xd5, 0xc8, 0x2f, 0x40, 0xa1, 0x45, 0xa5, 0x37, 0xa8, 0x29, 0x02, 0x9e, - 0x01, 0x1d, 0xaf, 0x0f, 0xb2, 0x01, 0xff, 0x42, 0xba, 0x05, 0x13, 0x2f, - 0x00, 0x43, 0x63, 0x0e, 0xae, 0x2f, 0x40, 0x43, 0xd5, 0x17, 0x25, 0x2f, - 0x00, 0x42, 0xbb, 0x00, 0x2f, 0x2f, 0x40, 0xe4, 0xb5, 0x2f, 0x00, 0xe5, - 0xa3, 0x2f, 0x40, 0x43, 0x89, 0x00, 0xc6, 0x2f, 0x00, 0x43, 0xaf, 0x02, - 0x69, 0x2f, 0x40, 0x44, 0xd6, 0xeb, 0x4e, 0x2f, 0x00, 0x42, 0x60, 0x01, - 0x91, 0x2f, 0x40, 0x42, 0xf5, 0x59, 0xa1, 0x2f, 0x80, 0x06, 0x43, 0x8b, - 0x00, 0x54, 0x2f, 0x40, 0x4a, 0x20, 0x67, 0x8f, 0x2f, 0x40, 0x45, 0x1f, - 0xe1, 0x95, 0x2f, 0x00, 0x46, 0xe2, 0xd9, 0xa5, 0x2f, 0x40, 0xa1, 0x53, - 0x42, 0x92, 0x01, 0x17, 0x2f, 0x00, 0xa9, 0x3f, 0xaf, 0x31, 0xb2, 0x1d, - 0x02, 0x42, 0x00, 0x0d, 0x42, 0x15, 0x02, 0x06, 0x2f, 0xc0, 0x00, 0x46, - 0x2b, 0x0e, 0x36, 0x2f, 0x40, 0x43, 0xba, 0x15, 0x31, 0x2f, 0x00, 0x43, - 0xbd, 0x01, 0xd4, 0x2f, 0x40, 0x43, 0xe3, 0x02, 0x71, 0x2f, 0x00, 0x42, - 0x27, 0x01, 0x4a, 0x2f, 0x00, 0x44, 0x62, 0xed, 0xcd, 0x2f, 0x40, 0x44, - 0x36, 0x66, 0x86, 0x2f, 0x00, 0x43, 0x28, 0x0e, 0xd2, 0x2f, 0x40, 0x43, - 0x8c, 0x09, 0x8c, 0x2f, 0x00, 0x42, 0x68, 0x00, 0x61, 0x2f, 0x40, 0x43, - 0x3e, 0x01, 0x0f, 0x2f, 0x00, 0x42, 0x0f, 0x07, 0xbc, 0x2f, 0x00, 0x4c, - 0x01, 0x7f, 0xb1, 0x2f, 0x40, 0xa1, 0xec, 0x01, 0xa3, 0xdd, 0x01, 0xa5, - 0xc4, 0x01, 0xa8, 0x99, 0x01, 0xa9, 0x8a, 0x01, 0x43, 0x10, 0x04, 0x6a, - 0x2f, 0x00, 0xac, 0x6e, 0x44, 0x0d, 0x07, 0x29, 0x2f, 0x00, 0x44, 0x0a, - 0xad, 0x39, 0x2f, 0x00, 0x44, 0xf2, 0x0a, 0xb3, 0x2f, 0x00, 0xb0, 0x3a, - 0x45, 0xac, 0x05, 0x45, 0x2f, 0x00, 0xb4, 0x0c, 0x42, 0xf3, 0x0a, 0x47, - 0x2f, 0x00, 0x44, 0xed, 0x4e, 0x62, 0x2f, 0x40, 0x43, 0x1a, 0x00, 0x74, - 0x2f, 0x00, 0xa5, 0x14, 0xaf, 0x01, 0xff, 0x42, 0xa2, 0x05, 0x6f, 0x2f, - 0x00, 0xf0, 0x4c, 0x2f, 0xc0, 0x00, 0x44, 0x45, 0x2f, 0x89, 0x2f, 0x40, - 0x42, 0x57, 0x00, 0x53, 0x2f, 0x00, 0xf0, 0x3b, 0x2f, 0x40, 0xa5, 0x12, - 0x44, 0xe4, 0xbc, 0x70, 0x2f, 0x00, 0x43, 0x69, 0x05, 0x14, 0x2f, 0x00, - 0x44, 0x0e, 0xef, 0x2c, 0x2f, 0x40, 0x42, 0x17, 0x00, 0x6d, 0x2f, 0x00, - 0x43, 0x0a, 0x40, 0x94, 0x2f, 0x40, 0xa1, 0x06, 0x43, 0x6a, 0x1c, 0x5a, - 0x2f, 0x40, 0x42, 0xa4, 0x02, 0x03, 0x2f, 0x00, 0x42, 0x32, 0x00, 0xaa, - 0x2f, 0x40, 0x46, 0xc0, 0xd7, 0x67, 0x2f, 0x00, 0x42, 0xf5, 0x59, 0x77, - 0x2f, 0x40, 0xa5, 0x1a, 0xaf, 0x01, 0xff, 0x42, 0xf0, 0x04, 0x37, 0x2f, - 0x00, 0x04, 0x1e, 0xef, 0x01, 0xff, 0x4a, 0x45, 0xa5, 0xab, 0x2f, 0x00, - 0x45, 0xfd, 0x9b, 0x33, 0x2f, 0x40, 0x42, 0x9c, 0x0a, 0x7a, 0x2f, 0x00, - 0x42, 0x0f, 0x07, 0x99, 0x2f, 0x40, 0x42, 0x13, 0x00, 0x19, 0x2f, 0x00, - 0x44, 0x84, 0x7a, 0x04, 0x2f, 0x00, 0xe5, 0x92, 0x2f, 0x00, 0x42, 0x24, - 0x00, 0x83, 0x2f, 0x40, 0x45, 0x08, 0xe4, 0x20, 0x2f, 0x00, 0x44, 0x4b, - 0x06, 0x42, 0x2f, 0x40, 0x4e, 0x18, 0x75, 0xbf, 0x2f, 0x00, 0x42, 0x8d, - 0x04, 0xc4, 0x2f, 0x00, 0xf9, 0x48, 0x2f, 0x40, 0xa1, 0x26, 0x42, 0x05, - 0x00, 0x9a, 0x2f, 0x00, 0xa9, 0x0c, 0x43, 0x54, 0xc6, 0x27, 0x2f, 0x00, - 0x42, 0xf3, 0x0a, 0x9b, 0x2f, 0x40, 0x42, 0x73, 0x02, 0x76, 0x2f, 0x00, - 0x4c, 0x75, 0x3a, 0x15, 0x2f, 0x00, 0x43, 0x32, 0x00, 0x2e, 0x2f, 0x40, - 0x42, 0x9e, 0x01, 0xac, 0x2f, 0x00, 0xf0, 0x41, 0x2f, 0x00, 0xf4, 0xcf, - 0x2f, 0x40, 0x42, 0x3f, 0x00, 0x97, 0x2f, 0x00, 0x43, 0x13, 0x01, 0x7e, - 0x2f, 0x00, 0x44, 0x14, 0x01, 0x12, 0x2f, 0x00, 0xb2, 0x01, 0xff, 0x45, - 0xa0, 0xd3, 0x1b, 0x2f, 0x00, 0x46, 0xbc, 0xdb, 0x5e, 0x2f, 0x40, 0x42, - 0x5b, 0x1a, 0x7c, 0x2f, 0x00, 0x42, 0xa2, 0x05, 0x00, 0x2f, 0x80, 0x0f, - 0xb0, 0x01, 0xff, 0x46, 0xe8, 0x39, 0x10, 0x2f, 0x00, 0x44, 0xdc, 0x87, - 0x87, 0x2f, 0x40, 0x44, 0x42, 0xef, 0x30, 0x2f, 0x40, 0x42, 0xc2, 0x05, - 0x79, 0x2f, 0x00, 0xaf, 0x01, 0xff, 0x42, 0x1b, 0x03, 0xd0, 0x2f, 0x00, - 0xf4, 0x46, 0x2f, 0x40, 0x42, 0x1a, 0x00, 0x08, 0x2f, 0x00, 0xa5, 0x3a, - 0xa9, 0x2c, 0xaf, 0x01, 0xff, 0x42, 0x10, 0x00, 0x49, 0x2f, 0x00, 0xb2, - 0x15, 0xb5, 0x01, 0xff, 0xae, 0x06, 0x42, 0x53, 0x00, 0x1d, 0x2f, 0x40, - 0xe4, 0xa9, 0x2f, 0x00, 0x44, 0x04, 0x07, 0x2d, 0x2f, 0x40, 0x44, 0x07, - 0x07, 0xa0, 0x2f, 0x00, 0x43, 0xe3, 0x12, 0x85, 0x2f, 0x40, 0x44, 0x2c, - 0x21, 0xc9, 0x2f, 0x00, 0x46, 0x5c, 0xdb, 0x82, 0x2f, 0x40, 0x42, 0x8a, - 0x00, 0x81, 0x2f, 0x00, 0x43, 0x03, 0x12, 0x60, 0x2f, 0x40, 0xa1, 0x39, - 0xa5, 0x1f, 0xa9, 0x0d, 0x43, 0x63, 0x0e, 0xa7, 0x2f, 0xc0, 0x00, 0x47, - 0xd8, 0xca, 0x35, 0x2f, 0x40, 0xe4, 0x07, 0x2f, 0x00, 0x42, 0xa0, 0x19, - 0x63, 0x2f, 0x00, 0x42, 0xa2, 0x05, 0x01, 0x2f, 0x40, 0xa1, 0x0c, 0x42, - 0x69, 0x18, 0xb2, 0x2f, 0x00, 0x42, 0x6d, 0x11, 0x09, 0x2f, 0x40, 0xe6, - 0xb4, 0x2f, 0x00, 0x44, 0xa3, 0x19, 0xb0, 0x2f, 0x40, 0x42, 0x36, 0x01, - 0x4b, 0x2f, 0x00, 0x42, 0x2a, 0x02, 0x2a, 0x2f, 0x40, 0x42, 0x04, 0x00, - 0x5f, 0x2f, 0x00, 0xf2, 0x78, 0x2f, 0x40, 0x42, 0x73, 0x02, 0x0e, 0x2f, - 0x00, 0xae, 0x01, 0xff, 0x42, 0x1e, 0x14, 0x28, 0x2f, 0x00, 0x44, 0x5f, - 0x0a, 0x8d, 0x2f, 0x40, 0xa1, 0x30, 0xa5, 0x1c, 0x4f, 0xb2, 0x6c, 0x16, - 0x2f, 0x00, 0xaf, 0x01, 0xff, 0x42, 0x2a, 0x05, 0x05, 0x2f, 0x00, 0xb2, - 0x01, 0xff, 0xee, 0x93, 0x2f, 0x00, 0x42, 0x1b, 0x03, 0xba, 0x2f, 0x40, - 0xa1, 0x06, 0x42, 0x6b, 0x1b, 0xc7, 0x2f, 0x40, 0xe4, 0xb8, 0x2f, 0x00, - 0x42, 0x34, 0x00, 0x3c, 0x2f, 0x40, 0x42, 0x46, 0x00, 0xbd, 0x2f, 0x00, - 0xac, 0x06, 0x42, 0x1b, 0x00, 0x3f, 0x2f, 0x40, 0x44, 0x06, 0xec, 0x3d, - 0x2f, 0x00, 0x4c, 0x48, 0x74, 0x59, 0x2f, 0x40, 0x43, 0x8a, 0x00, 0xa8, - 0x2f, 0x00, 0x44, 0x5f, 0x7b, 0xc1, 0x2f, 0x00, 0xef, 0x21, 0x2f, 0x80, - 0x11, 0x02, 0x71, 0x00, 0x01, 0xff, 0x42, 0x9e, 0x01, 0x72, 0x2f, 0x00, - 0x42, 0xee, 0x00, 0x8b, 0x2f, 0x40, 0x47, 0xd1, 0xca, 0x22, 0x2f, 0x00, - 0x42, 0x5b, 0x1a, 0xa6, 0x2f, 0x40, 0xa1, 0x46, 0x46, 0xa1, 0x19, 0x7b, - 0x2f, 0x00, 0xa9, 0x26, 0xac, 0x1a, 0x43, 0x25, 0x6b, 0x9c, 0x2f, 0x00, - 0xb2, 0x06, 0x42, 0x42, 0x00, 0x51, 0x2f, 0x40, 0x46, 0xac, 0xd6, 0xb9, - 0x2f, 0x00, 0x42, 0x55, 0x18, 0xcc, 0x2f, 0x40, 0x43, 0x2b, 0x38, 0xd5, - 0x2f, 0x00, 0xf9, 0xb6, 0x2f, 0x40, 0x43, 0x7a, 0x23, 0x65, 0x2f, 0x00, - 0x43, 0xca, 0x00, 0xbe, 0x2f, 0x00, 0x42, 0x88, 0x00, 0x55, 0x2f, 0x00, - 0x42, 0xa4, 0x02, 0xc2, 0x2f, 0x40, 0x42, 0x73, 0x02, 0xaf, 0x2f, 0x00, - 0x42, 0x1d, 0x01, 0x5b, 0x2f, 0x00, 0x44, 0xa3, 0x19, 0x57, 0x2f, 0x40, - 0xa1, 0x2d, 0x44, 0xc9, 0x00, 0x0b, 0x2f, 0x00, 0x49, 0x94, 0xb9, 0xcb, - 0x2f, 0x00, 0xae, 0x13, 0x43, 0x28, 0x1d, 0xd1, 0x2f, 0x80, 0x06, 0x42, - 0x4d, 0x00, 0x6c, 0x2f, 0x40, 0x43, 0xa1, 0x01, 0x23, 0x2f, 0x40, 0x47, - 0x23, 0x67, 0x1e, 0x2f, 0x00, 0x43, 0x8b, 0x00, 0x0a, 0x2f, 0x40, 0xf2, - 0x7f, 0x2f, 0x80, 0x04, 0xf4, 0xb7, 0x2f, 0x40, 0x42, 0x53, 0x00, 0x1f, - 0x2f, 0x40, 0xa5, 0x61, 0xa9, 0x47, 0xaf, 0x13, 0xb2, 0x01, 0xff, 0x44, - 0x44, 0x25, 0xd3, 0x2f, 0x00, 0x42, 0x1d, 0x04, 0xce, 0x2f, 0x00, 0xf9, - 0x32, 0x2f, 0x40, 0x44, 0xee, 0x1c, 0x4f, 0x2f, 0x00, 0xe7, 0x5d, 0x2f, - 0x00, 0x42, 0x0c, 0x00, 0x3e, 0x2f, 0x00, 0xf4, 0x02, 0x2f, 0x80, 0x0c, - 0x46, 0xcc, 0xdd, 0x58, 0x2f, 0x00, 0x46, 0x38, 0xde, 0x0c, 0x2f, 0x40, - 0x04, 0x77, 0x00, 0x01, 0xff, 0x45, 0x46, 0xe2, 0x34, 0x2f, 0x00, 0x44, - 0x01, 0x60, 0x68, 0x2f, 0x40, 0x44, 0x6e, 0x02, 0x43, 0x2f, 0x00, 0xb3, - 0x06, 0x48, 0x6c, 0xb8, 0x18, 0x2f, 0x40, 0xe8, 0x6b, 0x2f, 0x00, 0x48, - 0x25, 0xa3, 0xa4, 0x2f, 0x40, 0x43, 0x25, 0x0f, 0x4d, 0x2f, 0x00, 0x42, - 0x33, 0x00, 0xc5, 0x2f, 0x40, 0xa1, 0x43, 0x44, 0xdf, 0x48, 0x26, 0x2f, - 0x00, 0x43, 0x17, 0x27, 0xa2, 0x2f, 0x00, 0xac, 0x1f, 0xaf, 0x01, 0xff, - 0x43, 0x5b, 0x08, 0x8a, 0x2f, 0x00, 0x45, 0xa7, 0xe5, 0x50, 0x2f, 0x00, - 0x44, 0x12, 0xef, 0x2b, 0x2f, 0x00, 0x43, 0x32, 0x00, 0x0d, 0x2f, 0x00, - 0xf7, 0x5c, 0x2f, 0x40, 0xa1, 0x0c, 0x43, 0x20, 0x47, 0x1a, 0x2f, 0x00, - 0x45, 0x8c, 0x86, 0x90, 0x2f, 0x40, 0xee, 0x52, 0x2f, 0x00, 0xf7, 0x56, - 0x2f, 0x40, 0x42, 0x34, 0x00, 0x9e, 0x2f, 0x00, 0x46, 0x76, 0xcc, 0xc0, - 0x2f, 0x00, 0x42, 0x32, 0x00, 0x73, 0x2f, 0x40, 0xa1, 0x5f, 0x43, 0x71, - 0x1e, 0x96, 0x2f, 0x00, 0xa9, 0x47, 0xac, 0x33, 0xaf, 0x15, 0xb2, 0x01, - 0xff, 0x44, 0x0b, 0x25, 0x40, 0x2f, 0x00, 0x45, 0x80, 0xe4, 0x3a, 0x2f, - 0x00, 0x43, 0xcf, 0x7a, 0x80, 0x2f, 0x40, 0x42, 0x8a, 0x00, 0x88, 0x2f, - 0x00, 0x42, 0xfd, 0x0c, 0x9d, 0x2f, 0x00, 0x4b, 0xd3, 0x9c, 0x66, 0x2f, - 0x00, 0x42, 0xa2, 0x05, 0xbb, 0x2f, 0x00, 0xf7, 0x38, 0x2f, 0x40, 0x43, - 0xe3, 0x02, 0xca, 0x2f, 0x00, 0x43, 0xfc, 0x2c, 0x8e, 0x2f, 0x00, 0x42, - 0x87, 0x13, 0xad, 0x2f, 0x40, 0xe7, 0x24, 0x2f, 0x00, 0x42, 0xab, 0x01, - 0xc3, 0x2f, 0x00, 0x44, 0xc3, 0x05, 0x9f, 0x2f, 0x40, 0x44, 0x52, 0xec, - 0x98, 0x2f, 0x00, 0x44, 0x9f, 0x96, 0x75, 0x2f, 0x40, 0x44, 0xf1, 0x49, - 0x1c, 0x2f, 0x00, 0x42, 0x1b, 0x00, 0x7d, 0x2f, 0x00, 0x02, 0xcf, 0x00, - 0x06, 0x42, 0x60, 0x42, 0x44, 0x2f, 0x40, 0x43, 0xa7, 0x05, 0x84, 0x2f, - 0x00, 0x42, 0xd1, 0x00, 0x6e, 0x2f, 0x40, 0xa5, 0x75, 0xa6, 0x58, 0x44, - 0x46, 0x2a, 0xc9, 0xd2, 0x81, 0x4b, 0x43, 0xbf, 0x0a, 0xc1, 0xd2, 0x01, - 0xb3, 0x29, 0xb4, 0x06, 0x44, 0xa1, 0x1d, 0xc0, 0xd2, 0x41, 0x42, 0x92, - 0x01, 0xca, 0xd2, 0x01, 0xa8, 0x0d, 0xb7, 0x01, 0xff, 0x44, 0x46, 0x2b, - 0xcc, 0xd2, 0x01, 0xef, 0xc2, 0xd2, 0x41, 0x46, 0x2b, 0x59, 0xcd, 0xd2, - 0x01, 0x43, 0x26, 0x01, 0xc3, 0xd2, 0x41, 0x44, 0x27, 0x1d, 0xc7, 0xd2, - 0x81, 0x0d, 0x42, 0x60, 0x25, 0xc6, 0xd2, 0xc1, 0x00, 0x44, 0x9e, 0x17, - 0xd0, 0xd2, 0x41, 0x44, 0x9e, 0x17, 0xd1, 0xd2, 0x41, 0x44, 0x9e, 0x17, - 0xd3, 0xd2, 0x41, 0xa9, 0x0d, 0x43, 0xcb, 0x06, 0xc4, 0xd2, 0xc1, 0x00, - 0x44, 0x9e, 0x17, 0xce, 0xd2, 0x41, 0x45, 0x9d, 0x17, 0xcf, 0xd2, 0x01, - 0x42, 0x32, 0x00, 0xc5, 0xd2, 0x41, 0x44, 0xc9, 0x00, 0xc8, 0xd2, 0x81, - 0x06, 0x45, 0x0b, 0x6e, 0xcb, 0xd2, 0x41, 0x43, 0x75, 0x09, 0xd2, 0xd2, - 0x41, 0x51, 0x93, 0x56, 0xbb, 0x10, 0x01, 0xa4, 0x80, 0x03, 0x50, 0x5a, - 0x61, 0xbc, 0x10, 0x01, 0x07, 0xc1, 0x05, 0x70, 0x4b, 0x12, 0x9e, 0xbd, - 0x10, 0x81, 0x63, 0xb3, 0x33, 0x0b, 0xd1, 0x75, 0x01, 0xff, 0xa1, 0x20, - 0xe5, 0xb5, 0x10, 0x01, 0xe9, 0xb1, 0x10, 0x81, 0x13, 0xef, 0xb7, 0x10, - 0x01, 0xf5, 0xb3, 0x10, 0x81, 0x06, 0x49, 0x9b, 0xbe, 0xc2, 0x10, 0x41, - 0xf5, 0xb4, 0x10, 0x41, 0xe9, 0xb2, 0x10, 0x41, 0xe1, 0xb0, 0x10, 0x01, - 0xe9, 0xb6, 0x10, 0x01, 0xf5, 0xb8, 0x10, 0x41, 0x4b, 0x58, 0x26, 0xbe, - 0x10, 0x01, 0x04, 0x30, 0x03, 0x01, 0xff, 0x48, 0xd0, 0x15, 0x81, 0x10, - 0x01, 0x4b, 0x4f, 0x23, 0x80, 0x10, 0x01, 0x45, 0x5a, 0x3e, 0xba, 0x10, - 0x01, 0x02, 0x02, 0x00, 0x01, 0xff, 0x44, 0x5d, 0x23, 0xb9, 0x10, 0x01, - 0x45, 0xa3, 0x4a, 0x82, 0x10, 0x41, 0x46, 0x5b, 0x00, 0xcd, 0x10, 0x41, - 0xe1, 0x83, 0x10, 0x81, 0xf4, 0x01, 0xa2, 0xe7, 0x01, 0xa3, 0xda, 0x01, - 0xa4, 0xbb, 0x01, 0xe5, 0x89, 0x10, 0x01, 0xa7, 0xaa, 0x01, 0x42, 0x22, - 0x00, 0xaf, 0x10, 0x01, 0xe9, 0x85, 0x10, 0x81, 0x9a, 0x01, 0xaa, 0x8d, - 0x01, 0xab, 0x80, 0x01, 0x42, 0x74, 0x00, 0xaa, 0x10, 0x01, 0x42, 0x6c, - 0x00, 0xa7, 0x10, 0x01, 0xae, 0x5c, 0xef, 0x8b, 0x10, 0x01, 0xb0, 0x4c, - 0xb2, 0x40, 0xb3, 0x2e, 0xb4, 0x15, 0xf5, 0x87, 0x10, 0x81, 0x0c, 0x42, - 0xa6, 0x0a, 0xab, 0x10, 0x01, 0x42, 0x34, 0x22, 0xa8, 0x10, 0x41, 0xf5, - 0x88, 0x10, 0x41, 0xe1, 0x9e, 0x10, 0x01, 0x42, 0x22, 0x00, 0x9f, 0x10, - 0x01, 0xb4, 0x01, 0xff, 0xe1, 0x97, 0x10, 0x01, 0x42, 0x22, 0x00, 0x98, - 0x10, 0x41, 0xe1, 0xae, 0x10, 0x01, 0x42, 0x22, 0x00, 0xac, 0x10, 0x01, - 0x42, 0x15, 0x06, 0xad, 0x10, 0x41, 0xe1, 0xa9, 0x10, 0x01, 0x42, 0x22, - 0x00, 0x9c, 0x10, 0x41, 0xe1, 0xa3, 0x10, 0x01, 0x42, 0x22, 0x00, 0xa4, - 0x10, 0x41, 0xe1, 0xa2, 0x10, 0x01, 0x42, 0x24, 0x02, 0x91, 0x10, 0x01, - 0x42, 0xff, 0x04, 0x9d, 0x10, 0x01, 0x42, 0x34, 0x22, 0x96, 0x10, 0x41, - 0xe1, 0x8d, 0x10, 0x01, 0x42, 0x22, 0x00, 0x8e, 0x10, 0x41, 0xe1, 0x94, - 0x10, 0x01, 0x42, 0x22, 0x00, 0x95, 0x10, 0x41, 0xe9, 0x86, 0x10, 0x41, - 0xe1, 0x8f, 0x10, 0x01, 0x42, 0x22, 0x00, 0x90, 0x10, 0x41, 0xe1, 0xa0, - 0x10, 0x01, 0xa4, 0x06, 0x42, 0x22, 0x00, 0xa1, 0x10, 0x41, 0xe1, 0x99, - 0x10, 0x01, 0x43, 0x9e, 0x4a, 0x9a, 0x10, 0x01, 0x42, 0x22, 0x00, 0x9b, - 0x10, 0x41, 0xe1, 0x92, 0x10, 0x01, 0x42, 0x22, 0x00, 0x93, 0x10, 0x41, - 0xe1, 0xa5, 0x10, 0x01, 0x42, 0x22, 0x00, 0xa6, 0x10, 0x41, 0xe1, 0x84, - 0x10, 0x01, 0xe9, 0x8a, 0x10, 0x01, 0xf5, 0x8c, 0x10, 0x41, 0x44, 0xd1, - 0x1f, 0xc0, 0x10, 0x01, 0x06, 0x3c, 0x01, 0x01, 0xff, 0x45, 0x34, 0x94, - 0xc1, 0x10, 0x01, 0x4c, 0x57, 0x26, 0xbf, 0x10, 0x41, 0xa1, 0x37, 0xa5, - 0x29, 0x52, 0x5c, 0x51, 0xe9, 0xf9, 0x01, 0xaf, 0x15, 0xb5, 0x01, 0xff, - 0x46, 0x04, 0xd9, 0x39, 0xf9, 0x01, 0x42, 0xb4, 0x01, 0xb5, 0x26, 0x00, - 0x45, 0xc4, 0xe6, 0x43, 0x26, 0x40, 0x42, 0x9e, 0x01, 0x1d, 0x2a, 0x00, - 0x46, 0x7a, 0xde, 0x79, 0xf5, 0x41, 0x43, 0x0d, 0x45, 0x56, 0xf4, 0x01, - 0x47, 0x26, 0xd0, 0xbc, 0xfa, 0x41, 0x4c, 0xb1, 0x8b, 0x83, 0xf3, 0x01, - 0x07, 0xa7, 0xd1, 0x83, 0x05, 0xf2, 0xd9, 0xfa, 0x01, 0x07, 0x47, 0xd4, - 0x01, 0xff, 0x0f, 0x6d, 0x32, 0xe3, 0x04, 0x06, 0xc4, 0x06, 0x9c, 0x04, - 0x02, 0x68, 0x00, 0xdb, 0x01, 0x02, 0x6c, 0x09, 0x70, 0x4f, 0xf9, 0x70, - 0xc2, 0xa9, 0x00, 0x05, 0x2f, 0x03, 0x47, 0x53, 0x83, 0x4c, 0xcd, 0xa9, - 0x00, 0x0b, 0xd1, 0x75, 0x01, 0xff, 0x4a, 0x1b, 0xa7, 0xbb, 0xa9, 0x00, - 0x45, 0xba, 0xe6, 0xbc, 0xa9, 0x00, 0x44, 0x3d, 0xd3, 0xb8, 0xa9, 0x80, - 0x23, 0xb4, 0x0d, 0x44, 0xde, 0xef, 0xb6, 0xa9, 0xc0, 0x00, 0x46, 0x56, - 0xd5, 0xb7, 0xa9, 0x40, 0xa1, 0x06, 0x45, 0x02, 0x12, 0xb5, 0xa9, 0x40, - 0x44, 0xe0, 0x0a, 0xba, 0xa9, 0x00, 0x44, 0xad, 0xe8, 0xb4, 0xa9, 0x40, - 0x47, 0x92, 0xca, 0xb9, 0xa9, 0x40, 0x45, 0x00, 0xe2, 0x81, 0xa9, 0x80, - 0x12, 0x45, 0x07, 0xe5, 0x82, 0xa9, 0x00, 0x49, 0x83, 0xbb, 0x80, 0xa9, - 0x00, 0x47, 0xb0, 0xd4, 0x83, 0xa9, 0x40, 0x45, 0xd6, 0xde, 0xb3, 0xa9, - 0x40, 0x03, 0xf2, 0x19, 0x11, 0x02, 0x1d, 0x01, 0x01, 0xff, 0x43, 0x78, - 0x6e, 0xc0, 0xa9, 0x00, 0x47, 0x4f, 0xd2, 0xcf, 0xa9, 0x40, 0xa1, 0x3d, - 0x49, 0x50, 0xb8, 0xdf, 0xa9, 0x00, 0xac, 0x20, 0x45, 0x4d, 0xe5, 0xc4, - 0xa9, 0x00, 0xb0, 0x0c, 0x4d, 0x7b, 0x87, 0xde, 0xa9, 0x00, 0x45, 0x26, - 0xe9, 0xc6, 0xa9, 0x40, 0x46, 0xd0, 0xd6, 0xc7, 0xa9, 0x00, 0x46, 0x90, - 0x4c, 0xcc, 0xa9, 0x40, 0x45, 0x62, 0xe4, 0xc8, 0xa9, 0x00, 0xb5, 0x01, - 0xff, 0x43, 0x41, 0x00, 0xc5, 0xa9, 0x00, 0x44, 0x8d, 0x71, 0xc9, 0xa9, - 0x40, 0x43, 0x36, 0x11, 0xca, 0xa9, 0x80, 0x06, 0x44, 0x26, 0xee, 0xc3, - 0xa9, 0x40, 0x45, 0x4d, 0xb3, 0xcb, 0xa9, 0x40, 0x4c, 0x6d, 0x8d, 0xc1, - 0xa9, 0x00, 0x05, 0xc3, 0x05, 0x01, 0xff, 0xe1, 0x84, 0xa9, 0x80, 0xa7, - 0x02, 0x42, 0x16, 0x00, 0xa7, 0xa9, 0x80, 0x99, 0x02, 0x42, 0x37, 0x00, - 0x95, 0xa9, 0x80, 0x8b, 0x02, 0xa4, 0xf0, 0x01, 0xe5, 0x8c, 0xa9, 0x00, - 0x42, 0x24, 0x02, 0x92, 0xa9, 0x80, 0xde, 0x01, 0x42, 0x22, 0x00, 0xb2, - 0xa9, 0x00, 0xe9, 0x86, 0xa9, 0x80, 0xc8, 0x01, 0x42, 0xbd, 0x26, 0x97, - 0xa9, 0x80, 0xba, 0x01, 0x42, 0x1b, 0x02, 0x8f, 0xa9, 0x80, 0xa3, 0x01, - 0x42, 0x74, 0x00, 0xad, 0xa9, 0x00, 0x42, 0x6c, 0x00, 0xa9, 0xa9, 0x00, - 0xae, 0x69, 0xef, 0x8e, 0xa9, 0x00, 0x42, 0x6c, 0x09, 0xa5, 0xa9, 0x80, - 0x4f, 0x42, 0x71, 0x00, 0xab, 0xa9, 0x80, 0x42, 0x42, 0x15, 0x06, 0xb1, - 0xa9, 0x80, 0x2a, 0xb4, 0x10, 0xf5, 0x88, 0xa9, 0x00, 0x42, 0xa9, 0x01, - 0xae, 0xa9, 0x00, 0x42, 0x34, 0x22, 0xaa, 0xa9, 0x40, 0xe1, 0xa0, 0xa9, - 0x80, 0x0d, 0x42, 0x12, 0x00, 0x9b, 0xa9, 0xc0, 0x00, 0x4a, 0xb5, 0x6e, - 0x9c, 0xa9, 0x40, 0x46, 0x5c, 0xd5, 0xa1, 0xa9, 0x40, 0x02, 0x6b, 0x00, - 0x01, 0xff, 0x48, 0xb7, 0x6e, 0xb0, 0xa9, 0x00, 0x44, 0xb1, 0x6e, 0xaf, - 0xa9, 0x40, 0x46, 0x20, 0xd5, 0xac, 0xa9, 0x40, 0x80, 0x01, 0xff, 0x45, - 0x0a, 0xe2, 0x89, 0xa9, 0x00, 0x45, 0xb0, 0x6e, 0xa6, 0xa9, 0x40, 0xe1, - 0xa4, 0xa9, 0x80, 0x21, 0x42, 0x24, 0x02, 0x94, 0xa9, 0x80, 0x0d, 0x42, - 0x34, 0x22, 0x9a, 0xa9, 0xc0, 0x00, 0x46, 0x5c, 0xd5, 0x98, 0xa9, 0x40, - 0x46, 0x4a, 0xd5, 0x8a, 0xa9, 0xc0, 0x00, 0x48, 0xfa, 0xbf, 0x8b, 0xa9, - 0x40, 0x46, 0x5c, 0xd5, 0x9f, 0xa9, 0x40, 0x80, 0x01, 0xff, 0x45, 0xb0, - 0x6e, 0x91, 0xa9, 0x00, 0x45, 0xee, 0xa0, 0x90, 0xa9, 0x40, 0x4a, 0xb5, - 0x6e, 0x99, 0xa9, 0x40, 0x45, 0xbd, 0xde, 0x85, 0xa9, 0x00, 0xe9, 0x87, - 0xa9, 0x40, 0x46, 0x5c, 0xd5, 0x93, 0xa9, 0x40, 0xe1, 0xa2, 0xa9, 0x80, - 0x0d, 0x42, 0xa1, 0x10, 0x9d, 0xa9, 0xc0, 0x00, 0x4a, 0xb5, 0x6e, 0x9e, - 0xa9, 0x40, 0x4a, 0xb5, 0x6e, 0xa3, 0xa9, 0x40, 0x46, 0x5c, 0xd5, 0x96, - 0xa9, 0x40, 0x46, 0x5c, 0xd5, 0xa8, 0xa9, 0x40, 0xe9, 0x8d, 0xa9, 0x40, - 0x45, 0xc3, 0x0a, 0xd8, 0xa9, 0x00, 0xa6, 0x2e, 0x44, 0x46, 0x2a, 0xd9, - 0xa9, 0x00, 0x43, 0xbf, 0x0a, 0xd1, 0xa9, 0x00, 0xb3, 0x14, 0xb4, 0x06, - 0x44, 0xa1, 0x1d, 0xd0, 0xa9, 0x40, 0x44, 0x25, 0x01, 0xd3, 0xa9, 0x00, - 0x42, 0x15, 0x02, 0xd2, 0xa9, 0x40, 0x44, 0x27, 0x1d, 0xd7, 0xa9, 0x00, - 0x42, 0x60, 0x25, 0xd6, 0xa9, 0x40, 0x43, 0xa7, 0x05, 0xd5, 0xa9, 0x00, - 0x43, 0xcb, 0x06, 0xd4, 0xa9, 0x40, 0x45, 0xdd, 0xe1, 0xbf, 0xa9, 0x00, - 0x45, 0xb7, 0xe4, 0xbd, 0xa9, 0x00, 0x47, 0xd8, 0xd1, 0xbe, 0xa9, 0x40, - 0x4b, 0x74, 0x97, 0xfb, 0x26, 0x00, 0x46, 0x78, 0xd7, 0xef, 0xf3, 0x01, - 0x45, 0x15, 0xb8, 0x8e, 0xf3, 0x01, 0x46, 0x2e, 0xd9, 0x7a, 0xf4, 0x01, - 0x5a, 0xc4, 0x1f, 0x04, 0x30, 0x00, 0x44, 0x96, 0xd2, 0x79, 0xf4, 0x01, - 0x4b, 0x3b, 0x9f, 0xe3, 0xf3, 0x01, 0x53, 0x11, 0x4c, 0x30, 0xf5, 0x41, - 0x53, 0x5a, 0x46, 0x1f, 0xf9, 0x01, 0x03, 0xe3, 0x07, 0xd7, 0x14, 0x02, - 0x04, 0x00, 0xb6, 0x0d, 0xad, 0xc7, 0x0b, 0xae, 0x06, 0x4e, 0xa0, 0x7d, - 0xee, 0xf3, 0x41, 0x48, 0xca, 0xc1, 0xe5, 0xf4, 0x01, 0xa3, 0x8b, 0x0b, - 0xa4, 0xf5, 0x06, 0xa6, 0xb2, 0x06, 0x06, 0x82, 0xd9, 0xa1, 0x06, 0x0f, - 0x63, 0x70, 0xfa, 0x05, 0xb3, 0xdb, 0x02, 0x02, 0x77, 0x00, 0x9a, 0x01, - 0xb6, 0x01, 0xff, 0x02, 0x33, 0x00, 0x17, 0x07, 0x31, 0xcf, 0x01, 0xff, - 0x44, 0xb7, 0x27, 0x64, 0x20, 0x00, 0x49, 0x36, 0x20, 0x63, 0x20, 0x00, - 0x45, 0x28, 0x02, 0x62, 0x20, 0x40, 0x03, 0x16, 0x04, 0x3e, 0x04, 0x77, - 0x00, 0x01, 0xff, 0x50, 0xad, 0x00, 0xa1, 0x00, 0x00, 0x4b, 0xb3, 0x15, - 0x18, 0x2e, 0x00, 0xac, 0x18, 0x48, 0x7a, 0xc6, 0x27, 0x21, 0x00, 0x49, - 0x10, 0x1b, 0xe7, 0x26, 0x00, 0x4d, 0xd6, 0x33, 0xbf, 0x00, 0x00, 0x48, - 0x62, 0xc9, 0x54, 0x20, 0x40, 0x45, 0x34, 0x6d, 0x3e, 0x22, 0x00, 0x49, - 0x56, 0xbb, 0x45, 0x2e, 0xc0, 0x00, 0x52, 0x9e, 0x4e, 0x46, 0x2e, 0x40, - 0xa2, 0x22, 0x05, 0x1e, 0x14, 0x12, 0x62, 0xe5, 0x0b, 0xb4, 0xfb, 0x01, - 0x4c, 0x19, 0x04, 0x90, 0xfb, 0x01, 0x4c, 0xe3, 0x10, 0xd9, 0x25, 0x40, - 0x45, 0xb8, 0x00, 0xb1, 0xfb, 0x01, 0x4d, 0x08, 0x81, 0x96, 0xfb, 0x41, - 0x05, 0xe2, 0x02, 0x06, 0x45, 0x2b, 0x21, 0xd8, 0x25, 0x40, 0x47, 0x88, - 0x43, 0x8d, 0xcc, 0x01, 0x4c, 0x37, 0x0a, 0x8f, 0xcc, 0x41, 0x44, 0xf7, - 0x25, 0x2b, 0x22, 0x80, 0x6a, 0xb2, 0x01, 0xff, 0x46, 0x72, 0xd7, 0xba, - 0x22, 0x00, 0x4b, 0xd3, 0x3a, 0x3c, 0x2a, 0x00, 0xac, 0x3d, 0x46, 0xb8, - 0x15, 0x3d, 0x20, 0x00, 0x47, 0x5f, 0x0a, 0x29, 0x22, 0xc0, 0x00, 0x80, - 0x01, 0xff, 0x06, 0x5c, 0x00, 0x1d, 0x63, 0x43, 0x0a, 0x4b, 0x2a, 0x00, - 0x05, 0x51, 0x00, 0x01, 0xff, 0x43, 0xd4, 0x09, 0x40, 0x2a, 0x00, 0x4b, - 0x4a, 0x2f, 0x44, 0x2a, 0x00, 0x47, 0x77, 0x7e, 0x43, 0x2a, 0x40, 0x4f, - 0x79, 0x69, 0x49, 0x2a, 0x00, 0x45, 0xe1, 0x16, 0x47, 0x2a, 0x40, 0x11, - 0xa1, 0x59, 0x06, 0x5a, 0xae, 0x20, 0xa4, 0x26, 0x40, 0x46, 0xca, 0xd6, - 0xf9, 0xff, 0x00, 0x49, 0x36, 0x20, 0xfa, 0xff, 0x00, 0x4a, 0x99, 0x84, - 0xfb, 0xff, 0x40, 0x80, 0x01, 0xff, 0xa1, 0x3a, 0x49, 0x56, 0x57, 0xae, - 0x23, 0x00, 0x05, 0x51, 0x00, 0x01, 0xff, 0x4d, 0xa0, 0x80, 0x0e, 0x2a, - 0x00, 0x4c, 0x5a, 0x0a, 0x19, 0x2a, 0x00, 0x59, 0x10, 0x24, 0x17, 0x2a, - 0x00, 0x47, 0x77, 0x7e, 0x1b, 0x2a, 0x00, 0x4a, 0x9f, 0xaf, 0x18, 0x2a, - 0x00, 0x02, 0xf3, 0x0a, 0x01, 0xff, 0x46, 0x7a, 0x58, 0x1c, 0x2a, 0x00, - 0x43, 0xb5, 0x00, 0x1a, 0x2a, 0x40, 0x56, 0x1f, 0x36, 0x15, 0x2a, 0x00, - 0x51, 0xd0, 0x5d, 0x0f, 0x2a, 0x40, 0x0d, 0x11, 0x80, 0x06, 0x4d, 0x15, - 0x81, 0x80, 0x23, 0x40, 0x06, 0x6b, 0x71, 0xd3, 0x01, 0x07, 0xaa, 0xd2, - 0x01, 0xff, 0x07, 0xc1, 0x05, 0x3d, 0x07, 0x2f, 0x39, 0x01, 0xff, 0x44, - 0xca, 0x06, 0x5b, 0x0b, 0x01, 0x43, 0xbf, 0x0a, 0x58, 0x0b, 0x81, 0x1c, - 0xb4, 0x01, 0xff, 0x42, 0x92, 0x01, 0x5c, 0x0b, 0x01, 0x44, 0x25, 0x01, - 0x5a, 0x0b, 0x01, 0xb7, 0x01, 0xff, 0x44, 0x29, 0x1d, 0x5d, 0x0b, 0x01, - 0xef, 0x59, 0x0b, 0x41, 0x80, 0x01, 0xff, 0x47, 0x22, 0x11, 0x5e, 0x0b, - 0x01, 0x48, 0xd5, 0x5c, 0x5f, 0x0b, 0x41, 0xa1, 0x7f, 0x44, 0x0a, 0xec, - 0x41, 0x0b, 0x01, 0x46, 0xda, 0x48, 0x43, 0x0b, 0x01, 0x45, 0xa1, 0xa8, - 0x42, 0x0b, 0x01, 0x42, 0xb0, 0x01, 0x44, 0x0b, 0x81, 0x60, 0x44, 0x8e, - 0xed, 0x4a, 0x0b, 0x01, 0x46, 0x9c, 0xda, 0x4b, 0x0b, 0x01, 0x43, 0x89, - 0x05, 0x4c, 0x0b, 0x01, 0x43, 0x54, 0x22, 0x4d, 0x0b, 0x01, 0x42, 0x6f, - 0x02, 0x50, 0x0b, 0x01, 0x44, 0xae, 0xc5, 0x52, 0x0b, 0x01, 0x44, 0xfa, - 0x64, 0x53, 0x0b, 0x01, 0xb3, 0x20, 0xb4, 0x12, 0x43, 0xc0, 0x88, 0x45, - 0x0b, 0x01, 0x44, 0x58, 0x51, 0x49, 0x0b, 0x01, 0x45, 0x52, 0x51, 0x46, - 0x0b, 0x41, 0x42, 0x9a, 0x43, 0x55, 0x0b, 0x01, 0x43, 0x39, 0x25, 0x48, - 0x0b, 0x41, 0xa1, 0x06, 0x43, 0x0e, 0x16, 0x54, 0x0b, 0x41, 0x43, 0x89, - 0xe7, 0x51, 0x0b, 0x01, 0x44, 0x39, 0xe1, 0x4e, 0x0b, 0x41, 0x42, 0x53, - 0x00, 0x47, 0x0b, 0x41, 0x44, 0x48, 0x3c, 0x40, 0x0b, 0x01, 0x43, 0xf7, - 0x19, 0x4f, 0x0b, 0x41, 0x07, 0xc1, 0x05, 0x3d, 0x07, 0x2f, 0x39, 0x01, - 0xff, 0x44, 0xca, 0x06, 0x7b, 0x0b, 0x01, 0x43, 0xbf, 0x0a, 0x78, 0x0b, - 0x81, 0x1c, 0xb4, 0x01, 0xff, 0x42, 0x92, 0x01, 0x7c, 0x0b, 0x01, 0x44, - 0x25, 0x01, 0x7a, 0x0b, 0x01, 0xb7, 0x01, 0xff, 0x44, 0x29, 0x1d, 0x7d, - 0x0b, 0x01, 0xef, 0x79, 0x0b, 0x41, 0x80, 0x01, 0xff, 0x47, 0x22, 0x11, - 0x7e, 0x0b, 0x01, 0x48, 0xd5, 0x5c, 0x7f, 0x0b, 0x41, 0x45, 0x58, 0xab, - 0x60, 0x0b, 0x01, 0x44, 0x0a, 0xec, 0x61, 0x0b, 0x01, 0x46, 0xda, 0x48, - 0x63, 0x0b, 0x01, 0x45, 0xa1, 0xa8, 0x62, 0x0b, 0x01, 0x42, 0xb0, 0x01, - 0x64, 0x0b, 0x81, 0x54, 0x44, 0x8e, 0xed, 0x6a, 0x0b, 0x01, 0x46, 0x9c, - 0xda, 0x6b, 0x0b, 0x01, 0x48, 0xaa, 0xc5, 0x6c, 0x0b, 0x01, 0x43, 0x54, - 0x22, 0x6d, 0x0b, 0x01, 0x42, 0x6f, 0x02, 0x6f, 0x0b, 0x01, 0xb3, 0x20, - 0xb4, 0x12, 0x4d, 0xc0, 0x88, 0x65, 0x0b, 0x01, 0x44, 0x58, 0x51, 0x69, - 0x0b, 0x01, 0x45, 0x52, 0x51, 0x66, 0x0b, 0x41, 0x42, 0x9a, 0x43, 0x72, - 0x0b, 0x01, 0x43, 0x39, 0x25, 0x68, 0x0b, 0x41, 0xa1, 0x06, 0x43, 0x0e, - 0x16, 0x71, 0x0b, 0x41, 0x43, 0x89, 0xe7, 0x70, 0x0b, 0x01, 0x44, 0x39, - 0xe1, 0x6e, 0x0b, 0x41, 0x42, 0x53, 0x00, 0x67, 0x0b, 0x41, 0x06, 0xb3, - 0x05, 0x0c, 0x47, 0xc7, 0xd0, 0x22, 0xf5, 0x01, 0x47, 0xeb, 0x07, 0x23, - 0xf5, 0x41, 0x4f, 0x00, 0x6a, 0x20, 0xf5, 0x01, 0x47, 0x08, 0x6a, 0x24, - 0xf5, 0x01, 0x4d, 0x13, 0x87, 0x21, 0xf5, 0x41, 0x53, 0xf2, 0x46, 0x6c, - 0x20, 0x00, 0x52, 0x50, 0x54, 0x6a, 0x20, 0x40, 0x45, 0xfa, 0x6a, 0x1e, - 0x22, 0x80, 0x33, 0x09, 0x4c, 0x5b, 0x01, 0xff, 0x4b, 0xd4, 0x98, 0x81, - 0xf4, 0x01, 0xb3, 0x01, 0xff, 0x09, 0x37, 0x20, 0x06, 0x45, 0x56, 0x5b, - 0x39, 0x21, 0x40, 0x44, 0xca, 0x06, 0x1c, 0x00, 0x00, 0x43, 0xbf, 0x0a, - 0x1f, 0x00, 0x00, 0xb4, 0x01, 0xff, 0x44, 0x25, 0x01, 0x1d, 0x00, 0x00, - 0x42, 0x15, 0x02, 0x1e, 0x00, 0x40, 0x5a, 0xf0, 0x1d, 0xde, 0x29, 0x40, - 0x42, 0xad, 0x00, 0x84, 0x00, 0x80, 0x85, 0x04, 0xa9, 0x01, 0xff, 0x4d, - 0xf3, 0x7e, 0xb9, 0x20, 0x00, 0x08, 0xe2, 0xc1, 0x01, 0xff, 0x53, 0xb9, - 0x46, 0xb4, 0xec, 0x01, 0x09, 0xb3, 0x58, 0xd6, 0x03, 0x49, 0xc3, 0x46, - 0xa0, 0xec, 0x01, 0x07, 0x2f, 0x39, 0x0c, 0x4b, 0x3a, 0x64, 0xac, 0xec, - 0x01, 0x4a, 0x69, 0xae, 0xb0, 0xec, 0x41, 0x0a, 0xa2, 0x11, 0xa6, 0x03, - 0x45, 0xc3, 0x0a, 0x78, 0xec, 0x81, 0x85, 0x03, 0xa6, 0xb7, 0x02, 0x45, - 0xad, 0xe4, 0xa1, 0xec, 0x81, 0xa9, 0x02, 0x44, 0xc3, 0x46, 0x9e, 0xec, - 0x81, 0x9b, 0x02, 0x44, 0x46, 0x2a, 0x79, 0xec, 0x81, 0xf8, 0x01, 0x43, - 0xbf, 0x0a, 0x71, 0xec, 0x81, 0xe1, 0x01, 0x09, 0xe1, 0x4a, 0x9f, 0x01, - 0xb3, 0x59, 0xb4, 0x01, 0xff, 0x42, 0x92, 0x01, 0x7a, 0xec, 0x81, 0x49, - 0xa8, 0x24, 0xb7, 0x01, 0xff, 0x44, 0x29, 0x1d, 0x7b, 0xec, 0x81, 0x14, - 0xef, 0x72, 0xec, 0xc1, 0x00, 0x80, 0x01, 0xff, 0x47, 0x22, 0x11, 0x84, - 0xec, 0x01, 0x48, 0xd5, 0x5c, 0x8d, 0xec, 0x41, 0x49, 0xd4, 0x5c, 0x96, - 0xec, 0x41, 0x44, 0x2c, 0x11, 0x7c, 0xec, 0x81, 0x16, 0x43, 0x26, 0x01, - 0x73, 0xec, 0xc1, 0x00, 0x80, 0x01, 0xff, 0x47, 0x22, 0x11, 0x85, 0xec, - 0x01, 0x48, 0xd5, 0x5c, 0x8e, 0xec, 0x41, 0x49, 0xd4, 0x5c, 0x97, 0xec, - 0x41, 0x49, 0xd4, 0x5c, 0x95, 0xec, 0x41, 0x44, 0x27, 0x1d, 0x77, 0xec, - 0x81, 0x22, 0x42, 0x60, 0x25, 0x76, 0xec, 0xc1, 0x00, 0x80, 0x0d, 0x42, - 0x2e, 0x11, 0x7f, 0xec, 0xc1, 0x00, 0x49, 0xd4, 0x5c, 0x9a, 0xec, 0x41, - 0x47, 0x22, 0x11, 0x88, 0xec, 0x01, 0x48, 0xd5, 0x5c, 0x91, 0xec, 0x41, - 0x80, 0x0d, 0x42, 0x2e, 0x11, 0x80, 0xec, 0xc1, 0x00, 0x49, 0xd4, 0x5c, - 0x9b, 0xec, 0x41, 0x47, 0x22, 0x11, 0x89, 0xec, 0x01, 0x48, 0xd5, 0x5c, - 0x92, 0xec, 0x41, 0x45, 0xc3, 0x0a, 0xaa, 0xec, 0x01, 0xa6, 0x29, 0x44, - 0x46, 0x2a, 0xab, 0xec, 0x01, 0x43, 0xbf, 0x0a, 0xa3, 0xec, 0x01, 0xb3, - 0x0f, 0xb4, 0x01, 0xff, 0x44, 0x25, 0x01, 0xa5, 0xec, 0x01, 0x42, 0x15, - 0x02, 0xa4, 0xec, 0x41, 0x44, 0x27, 0x1d, 0xa9, 0xec, 0x01, 0x42, 0x60, - 0x25, 0xa8, 0xec, 0x41, 0x43, 0xa7, 0x05, 0xa7, 0xec, 0x01, 0x43, 0xcb, - 0x06, 0xa6, 0xec, 0x41, 0x80, 0x01, 0xff, 0x47, 0x22, 0x11, 0x83, 0xec, - 0x01, 0x48, 0xd5, 0x5c, 0x8c, 0xec, 0x41, 0x80, 0x0d, 0x42, 0x2e, 0x11, - 0x82, 0xec, 0xc1, 0x00, 0x49, 0xd4, 0x5c, 0x9d, 0xec, 0x41, 0x47, 0x22, - 0x11, 0x8b, 0xec, 0x01, 0x48, 0xd5, 0x5c, 0x94, 0xec, 0x41, 0x42, 0x1a, - 0x00, 0x9f, 0xec, 0x41, 0x42, 0x1a, 0x00, 0xa2, 0xec, 0x41, 0xa9, 0x26, - 0xaf, 0x01, 0xff, 0x43, 0x2d, 0x11, 0x7d, 0xec, 0x81, 0x16, 0x42, 0x42, - 0x00, 0x74, 0xec, 0xc1, 0x00, 0x80, 0x01, 0xff, 0x47, 0x22, 0x11, 0x86, - 0xec, 0x01, 0x48, 0xd5, 0x5c, 0x8f, 0xec, 0x41, 0x49, 0xd4, 0x5c, 0x98, - 0xec, 0x41, 0x43, 0x09, 0x4c, 0x7e, 0xec, 0x81, 0x16, 0x42, 0x32, 0x00, - 0x75, 0xec, 0xc1, 0x00, 0x80, 0x01, 0xff, 0x47, 0x22, 0x11, 0x87, 0xec, - 0x01, 0x48, 0xd5, 0x5c, 0x90, 0xec, 0x41, 0x49, 0xd4, 0x5c, 0x99, 0xec, - 0x41, 0x80, 0x0b, 0xf9, 0x81, 0xec, 0xc1, 0x00, 0x49, 0xd4, 0x5c, 0x9c, - 0xec, 0x41, 0x47, 0x22, 0x11, 0x8a, 0xec, 0x01, 0x48, 0xd5, 0x5c, 0x93, - 0xec, 0x41, 0x43, 0xbf, 0x0a, 0xb1, 0xec, 0x01, 0xb4, 0x01, 0xff, 0x4b, - 0xd2, 0x5c, 0xb3, 0xec, 0x01, 0x42, 0x15, 0x02, 0xb2, 0xec, 0x41, 0x04, - 0xbf, 0x0a, 0x06, 0x4e, 0x24, 0x01, 0xaf, 0xec, 0x41, 0x44, 0x22, 0x00, - 0xae, 0xec, 0x01, 0x47, 0x2a, 0x01, 0xad, 0xec, 0x41, 0x57, 0xeb, 0x2b, - 0xf5, 0xfa, 0x41, 0x02, 0xe9, 0x04, 0x1b, 0x02, 0x88, 0x00, 0x01, 0xff, - 0x03, 0xca, 0x34, 0x06, 0x44, 0x01, 0x05, 0x06, 0x22, 0x40, 0x51, 0xcc, - 0x35, 0xda, 0xf5, 0x01, 0x44, 0xcc, 0x03, 0xe1, 0x29, 0x40, 0x4c, 0x5d, - 0x8e, 0xe8, 0xf4, 0x01, 0x4e, 0xcc, 0x79, 0xdc, 0x29, 0x40, 0x46, 0x15, - 0x42, 0xb7, 0x22, 0x80, 0xde, 0x01, 0xf0, 0x7f, 0xf4, 0xc1, 0x00, 0x0e, - 0x06, 0x76, 0x01, 0xff, 0x07, 0xc1, 0x05, 0x43, 0x07, 0x2f, 0x39, 0x06, - 0x4c, 0x49, 0x93, 0x57, 0x08, 0x41, 0x43, 0xbf, 0x0a, 0x58, 0x08, 0x81, - 0x23, 0xb4, 0x01, 0xff, 0x42, 0x92, 0x01, 0x5b, 0x08, 0x81, 0x13, 0x44, - 0x25, 0x01, 0x5a, 0x08, 0x01, 0xb7, 0x01, 0xff, 0x44, 0x29, 0x1d, 0x5c, - 0x08, 0x01, 0xef, 0x59, 0x08, 0x41, 0x49, 0xd4, 0x5c, 0x5f, 0x08, 0x41, - 0x80, 0x01, 0xff, 0x47, 0x22, 0x11, 0x5d, 0x08, 0x01, 0x48, 0xd5, 0x5c, - 0x5e, 0x08, 0x41, 0xa1, 0x7f, 0x44, 0x0a, 0xec, 0x41, 0x08, 0x01, 0x46, - 0xda, 0x48, 0x43, 0x08, 0x01, 0x45, 0xa1, 0xa8, 0x42, 0x08, 0x01, 0x42, - 0xb0, 0x01, 0x44, 0x08, 0x81, 0x60, 0x44, 0x8e, 0xed, 0x4a, 0x08, 0x01, - 0x46, 0x9c, 0xda, 0x4b, 0x08, 0x01, 0x43, 0x89, 0x05, 0x4c, 0x08, 0x01, - 0x43, 0x54, 0x22, 0x4d, 0x08, 0x01, 0x42, 0x6f, 0x02, 0x50, 0x08, 0x01, - 0x44, 0xae, 0xc5, 0x52, 0x08, 0x01, 0x44, 0xfa, 0x64, 0x53, 0x08, 0x01, - 0xb3, 0x20, 0xb4, 0x12, 0x43, 0xc0, 0x88, 0x45, 0x08, 0x01, 0x44, 0x58, - 0x51, 0x49, 0x08, 0x01, 0x45, 0x52, 0x51, 0x46, 0x08, 0x41, 0x42, 0x9a, - 0x43, 0x55, 0x08, 0x01, 0x43, 0x39, 0x25, 0x48, 0x08, 0x41, 0xa1, 0x06, - 0x43, 0x0e, 0x16, 0x54, 0x08, 0x41, 0x43, 0x89, 0xe7, 0x51, 0x08, 0x01, - 0x44, 0x39, 0xe1, 0x4e, 0x08, 0x41, 0x42, 0x53, 0x00, 0x47, 0x08, 0x41, - 0x44, 0x48, 0x3c, 0x40, 0x08, 0x01, 0x43, 0xf7, 0x19, 0x4f, 0x08, 0x41, - 0x5a, 0x0a, 0x1e, 0x53, 0x22, 0x40, 0x03, 0x9f, 0x01, 0xfa, 0x06, 0x09, - 0xad, 0x1f, 0x01, 0xff, 0x0b, 0xa7, 0x59, 0x82, 0x06, 0xa3, 0xf3, 0x05, - 0x02, 0x04, 0x00, 0xdf, 0x04, 0x52, 0xf4, 0x4f, 0x2d, 0x30, 0x00, 0x49, - 0x15, 0x16, 0x02, 0x30, 0x00, 0x4f, 0x2b, 0x6c, 0x3f, 0x30, 0x00, 0x4e, - 0xb6, 0x1f, 0x05, 0x30, 0x00, 0x4f, 0xfc, 0x6d, 0x2a, 0x30, 0x00, 0x4b, - 0x1d, 0x9e, 0x07, 0x30, 0x00, 0x50, 0x4a, 0x65, 0x2b, 0x30, 0x00, 0x45, - 0x87, 0x4b, 0x00, 0x30, 0x00, 0xb4, 0x06, 0x53, 0x41, 0x4d, 0x3e, 0x30, - 0x40, 0x0a, 0x77, 0xa5, 0xff, 0x03, 0x09, 0xf5, 0xb5, 0x01, 0xff, 0x5a, - 0x2c, 0x20, 0x37, 0x30, 0x00, 0x0b, 0xd1, 0x20, 0x01, 0xff, 0xa1, 0xe0, - 0x03, 0xa4, 0xf3, 0x01, 0x48, 0x8a, 0xc3, 0xc1, 0x32, 0x00, 0x05, 0x59, - 0xd1, 0x37, 0xaa, 0x20, 0x02, 0x6c, 0x00, 0x12, 0x48, 0x42, 0xc6, 0xca, - 0x32, 0x00, 0x47, 0xdc, 0xd0, 0xc9, 0x32, 0x00, 0x49, 0xb5, 0xbc, 0xc8, - 0x32, 0x40, 0x43, 0x1e, 0x40, 0xc2, 0x32, 0x00, 0xf9, 0xc4, 0x32, 0x40, - 0x46, 0xdc, 0xd6, 0xc0, 0x32, 0x00, 0xb5, 0x01, 0xff, 0x42, 0x26, 0x0b, - 0xc6, 0x32, 0x00, 0x42, 0xa2, 0x05, 0xc5, 0x32, 0x40, 0xa5, 0x9c, 0x01, - 0xa6, 0x7f, 0x44, 0x46, 0x2a, 0x61, 0x33, 0x80, 0x72, 0x43, 0xbf, 0x0a, - 0x59, 0x33, 0x00, 0xb3, 0x50, 0xb4, 0x06, 0x44, 0xa1, 0x1d, 0x58, 0x33, - 0x40, 0x42, 0x92, 0x01, 0x62, 0x33, 0x00, 0xa8, 0x34, 0xb7, 0x01, 0xff, - 0xa5, 0x04, 0xef, 0x5a, 0x33, 0x40, 0x43, 0x47, 0x2b, 0x64, 0x33, 0x00, - 0x43, 0x2a, 0x1d, 0x6c, 0x33, 0xc0, 0x00, 0x8d, 0x01, 0xff, 0x44, 0xca, - 0x06, 0x70, 0x33, 0x00, 0x43, 0xbf, 0x0a, 0x6d, 0x33, 0x00, 0xb4, 0x01, - 0xff, 0x44, 0x25, 0x01, 0x6f, 0x33, 0x00, 0x42, 0x15, 0x02, 0x6e, 0x33, - 0x40, 0x46, 0x2b, 0x59, 0x65, 0x33, 0x00, 0x43, 0x26, 0x01, 0x5b, 0x33, - 0x40, 0x44, 0x27, 0x1d, 0x5f, 0x33, 0x80, 0x0d, 0x42, 0x60, 0x25, 0x5e, - 0x33, 0xc0, 0x00, 0x44, 0x9e, 0x17, 0x68, 0x33, 0x40, 0x44, 0x9e, 0x17, - 0x69, 0x33, 0x40, 0x44, 0x9e, 0x17, 0x6b, 0x33, 0x40, 0xa9, 0x0d, 0x43, - 0xcb, 0x06, 0x5c, 0x33, 0xc0, 0x00, 0x44, 0x9e, 0x17, 0x66, 0x33, 0x40, - 0x45, 0x9d, 0x17, 0x67, 0x33, 0x00, 0x42, 0x32, 0x00, 0x5d, 0x33, 0x40, - 0x44, 0xc9, 0x00, 0x60, 0x33, 0x80, 0x06, 0x45, 0x0b, 0x6e, 0x63, 0x33, - 0x40, 0x43, 0x75, 0x09, 0x6a, 0x33, 0x40, 0x03, 0x63, 0x1f, 0x06, 0x47, - 0xd3, 0xcd, 0xcb, 0x32, 0x40, 0xa5, 0xca, 0x01, 0xa6, 0xac, 0x01, 0x44, - 0x46, 0x2a, 0xe8, 0x33, 0x80, 0x9e, 0x01, 0x43, 0xbf, 0x0a, 0xe0, 0x33, - 0x00, 0xb3, 0x7c, 0xb4, 0x01, 0xff, 0x42, 0x92, 0x01, 0xe9, 0x33, 0x00, - 0xa8, 0x56, 0xb7, 0x01, 0xff, 0xa5, 0x04, 0xef, 0xe1, 0x33, 0x40, 0x43, - 0x47, 0x2b, 0xeb, 0x33, 0x00, 0x43, 0x2a, 0x1d, 0xf3, 0x33, 0xc0, 0x00, - 0x8d, 0x01, 0xff, 0x45, 0xc3, 0x0a, 0xfb, 0x33, 0x00, 0xa6, 0x29, 0x44, - 0x46, 0x2a, 0xfc, 0x33, 0x00, 0x43, 0xbf, 0x0a, 0xf4, 0x33, 0x00, 0xb3, - 0x0f, 0xb4, 0x01, 0xff, 0x44, 0x25, 0x01, 0xf6, 0x33, 0x00, 0x42, 0x15, - 0x02, 0xf5, 0x33, 0x40, 0x44, 0x27, 0x1d, 0xfa, 0x33, 0x00, 0x42, 0x60, - 0x25, 0xf9, 0x33, 0x40, 0x43, 0xa7, 0x05, 0xf8, 0x33, 0x00, 0x43, 0xcb, - 0x06, 0xf7, 0x33, 0x40, 0x03, 0x2c, 0x11, 0x06, 0x43, 0x26, 0x01, 0xe2, - 0x33, 0x40, 0x43, 0x75, 0x09, 0xec, 0x33, 0x00, 0xf9, 0xfd, 0x33, 0xc0, - 0x00, 0x44, 0xc5, 0xba, 0xfe, 0x33, 0x40, 0x44, 0x27, 0x1d, 0xe6, 0x33, - 0x80, 0x0d, 0x42, 0x60, 0x25, 0xe5, 0x33, 0xc0, 0x00, 0x44, 0x9e, 0x17, - 0xef, 0x33, 0x40, 0x44, 0x9e, 0x17, 0xf0, 0x33, 0x40, 0x44, 0x9e, 0x17, - 0xf2, 0x33, 0x40, 0xa9, 0x0d, 0x43, 0xcb, 0x06, 0xe3, 0x33, 0xc0, 0x00, - 0x44, 0x9e, 0x17, 0xed, 0x33, 0x40, 0x45, 0x9d, 0x17, 0xee, 0x33, 0x00, - 0x42, 0x32, 0x00, 0xe4, 0x33, 0x40, 0x44, 0xc9, 0x00, 0xe7, 0x33, 0x80, - 0x06, 0x45, 0x0b, 0x6e, 0xea, 0x33, 0x40, 0x43, 0x75, 0x09, 0xf1, 0x33, - 0x40, 0x44, 0xde, 0xee, 0xc3, 0x32, 0x00, 0x45, 0x9f, 0xe8, 0xc7, 0x32, - 0x40, 0xa6, 0x15, 0x43, 0xbf, 0x0a, 0x72, 0xd3, 0x01, 0xb4, 0x01, 0xff, - 0x44, 0x25, 0x01, 0x74, 0xd3, 0x01, 0x42, 0x15, 0x02, 0x73, 0xd3, 0x41, - 0x43, 0xa7, 0x05, 0x76, 0xd3, 0x01, 0x43, 0xcb, 0x06, 0x75, 0xd3, 0x41, - 0x51, 0x7b, 0x2c, 0x2c, 0x30, 0x00, 0x14, 0x7f, 0x44, 0x01, 0xff, 0x09, - 0x2e, 0xb3, 0x74, 0x4d, 0x97, 0x81, 0xf4, 0x2f, 0x00, 0x55, 0xf3, 0x3a, - 0xfe, 0x2f, 0x00, 0x08, 0x84, 0x02, 0x58, 0x48, 0xec, 0x0d, 0xfb, 0x2f, - 0x00, 0x48, 0xf1, 0x5e, 0xff, 0x2f, 0x00, 0x02, 0x6f, 0x00, 0x01, 0xff, - 0x49, 0x96, 0xb4, 0xef, 0x31, 0x00, 0x0c, 0x19, 0x93, 0x01, 0xff, 0x45, - 0x5c, 0x00, 0xf5, 0x2f, 0x00, 0x45, 0xf5, 0x06, 0xf6, 0x2f, 0x00, 0xac, - 0x17, 0x45, 0xc8, 0x00, 0xfc, 0x2f, 0x00, 0x06, 0x6d, 0x02, 0x01, 0xff, - 0x44, 0xc3, 0x00, 0xf8, 0x2f, 0x00, 0x45, 0xc8, 0x00, 0xf9, 0x2f, 0x40, - 0x43, 0xc4, 0x00, 0xf7, 0x2f, 0x00, 0x05, 0x14, 0x01, 0x01, 0xff, 0x44, - 0xc3, 0x00, 0xfa, 0x2f, 0x00, 0x45, 0xc8, 0x00, 0xfd, 0x2f, 0x40, 0x50, - 0xaa, 0x63, 0xf2, 0x2f, 0x00, 0x45, 0xc8, 0x00, 0xf0, 0x2f, 0x40, 0x45, - 0xf5, 0x06, 0xf1, 0x2f, 0x00, 0x50, 0x9a, 0x63, 0xf3, 0x2f, 0x40, 0x4b, - 0xbd, 0x9c, 0x06, 0x30, 0x00, 0x44, 0xe9, 0x04, 0x01, 0x30, 0x40, 0x4b, - 0xa0, 0x97, 0x98, 0x31, 0x00, 0x4a, 0x4d, 0xa7, 0x9e, 0x31, 0x00, 0xa6, - 0x49, 0x4b, 0xad, 0x9a, 0x9d, 0x31, 0x00, 0x4c, 0x95, 0x8f, 0x90, 0x31, - 0x00, 0xad, 0x2f, 0x48, 0x84, 0x2c, 0x92, 0x31, 0x00, 0x4c, 0x95, 0x92, - 0x91, 0x31, 0x00, 0x4b, 0x59, 0xa0, 0x9a, 0x31, 0x00, 0xb4, 0x01, 0xff, - 0xa8, 0x0c, 0x47, 0x29, 0xd1, 0x96, 0x31, 0x00, 0x47, 0xbe, 0xd4, 0x93, - 0x31, 0x40, 0x48, 0x8a, 0xc4, 0x9b, 0x31, 0x00, 0x48, 0xaa, 0xc7, 0x94, - 0x31, 0x40, 0x47, 0xfe, 0xcb, 0x9f, 0x31, 0x00, 0x4a, 0x37, 0xa9, 0x97, - 0x31, 0x40, 0x49, 0x47, 0xb8, 0x99, 0x31, 0x00, 0x03, 0xcb, 0x06, 0x01, - 0xff, 0x45, 0xb8, 0x00, 0x95, 0x31, 0x00, 0x47, 0x76, 0x38, 0x9c, 0x31, - 0x40, 0x04, 0x37, 0x00, 0x06, 0x4d, 0x3c, 0x81, 0xaa, 0xfa, 0x41, 0x42, - 0x1e, 0x00, 0x61, 0x22, 0x80, 0x06, 0x4e, 0xa6, 0x3a, 0x67, 0x2a, 0x40, - 0x55, 0xab, 0x37, 0xe5, 0x29, 0x40, 0xa3, 0x0c, 0x55, 0xde, 0x3a, 0xd2, - 0xf3, 0x01, 0x45, 0xdc, 0xe7, 0xf8, 0x26, 0x40, 0x44, 0x4b, 0x60, 0x68, - 0xf3, 0x01, 0x43, 0xce, 0x3f, 0xca, 0xf9, 0x41, 0xa1, 0xdc, 0x25, 0xa5, - 0xe2, 0x07, 0xa9, 0xcf, 0x03, 0xaf, 0x5c, 0x4b, 0x4e, 0xa0, 0xb4, 0x20, - 0x00, 0xb5, 0x3e, 0xb9, 0x01, 0xff, 0x46, 0x8e, 0xd6, 0xbb, 0xfa, 0x01, - 0x44, 0xc2, 0xec, 0xda, 0x2b, 0x00, 0xb0, 0x06, 0x4f, 0xe9, 0x71, 0x8e, - 0x23, 0x40, 0x43, 0xb0, 0x01, 0x10, 0x20, 0x80, 0x06, 0x49, 0x75, 0xba, - 0x12, 0x2e, 0x40, 0x80, 0x0c, 0x46, 0x1b, 0x8e, 0x2d, 0x00, 0x00, 0x4b, - 0x53, 0x97, 0x27, 0x20, 0x40, 0x46, 0x2a, 0x21, 0x43, 0x20, 0x00, 0x4e, - 0x7b, 0x68, 0x1a, 0x2e, 0x40, 0x4a, 0x83, 0xa8, 0x17, 0xf9, 0x01, 0x53, - 0x23, 0x4a, 0xaf, 0xf4, 0x01, 0x49, 0x84, 0x91, 0x2f, 0xf6, 0x01, 0xf4, - 0xd6, 0xf6, 0x41, 0x43, 0xdb, 0x29, 0x2a, 0xf5, 0x01, 0xac, 0xd7, 0x02, - 0x48, 0x98, 0x78, 0x3b, 0x22, 0x00, 0x03, 0xfc, 0x27, 0xc0, 0x02, 0x42, - 0x2a, 0x05, 0x9d, 0xfa, 0x01, 0xb2, 0x53, 0x46, 0xfa, 0xdc, 0xe5, 0xf3, - 0x01, 0xb4, 0x2b, 0xb5, 0x01, 0xff, 0x46, 0x2c, 0xd4, 0x1b, 0x23, 0x80, - 0x1b, 0x42, 0x1b, 0x03, 0x02, 0x23, 0xc0, 0x00, 0x80, 0x01, 0xff, 0x48, - 0xe3, 0x3c, 0xe0, 0xf3, 0x81, 0x06, 0x4b, 0xed, 0xa2, 0xe1, 0xf3, 0x41, - 0xf3, 0xd8, 0xf3, 0x41, 0x52, 0x8c, 0x4e, 0xf3, 0x23, 0x40, 0x80, 0x06, - 0x42, 0xd8, 0x00, 0xe8, 0xf3, 0x41, 0x48, 0x82, 0xc1, 0x15, 0x26, 0x00, - 0x43, 0xf9, 0xd7, 0x2d, 0xf3, 0x01, 0x46, 0x1c, 0xdc, 0x36, 0xf3, 0x01, - 0x47, 0x28, 0xd3, 0x68, 0x26, 0x40, 0x08, 0x0e, 0x00, 0x16, 0x42, 0x1b, - 0x03, 0x0e, 0xf4, 0xc1, 0x00, 0x80, 0x01, 0xff, 0x44, 0xe1, 0x07, 0x34, - 0xf4, 0x01, 0x46, 0x64, 0xdc, 0xc7, 0xf3, 0x41, 0xa2, 0xb1, 0x01, 0x49, - 0xa8, 0xb4, 0x13, 0xcc, 0x01, 0x48, 0x45, 0x29, 0x26, 0x20, 0x00, 0xac, - 0x78, 0x55, 0x04, 0x3c, 0xa9, 0x26, 0x00, 0x11, 0x6c, 0x5b, 0x50, 0xb2, - 0x42, 0x0a, 0x7d, 0xae, 0x2e, 0xb4, 0x06, 0x4b, 0x45, 0xa3, 0xb0, 0xce, - 0x41, 0x02, 0x5c, 0x00, 0x06, 0x4c, 0x4d, 0x92, 0xa5, 0xf6, 0x41, 0x44, - 0x9c, 0x44, 0x7e, 0x2b, 0x00, 0x47, 0x16, 0x3b, 0x09, 0x00, 0xc0, 0x00, - 0x80, 0x01, 0xff, 0x43, 0x4d, 0x12, 0x88, 0x00, 0x00, 0x52, 0x5e, 0x55, - 0x89, 0x00, 0x40, 0xd1, 0xba, 0x23, 0x00, 0xd3, 0xbb, 0x23, 0x00, 0xd7, - 0xbc, 0x23, 0x00, 0xd9, 0xbd, 0x23, 0x40, 0x49, 0x40, 0xb3, 0x9b, 0xcc, - 0x01, 0x4f, 0x3b, 0x6b, 0x09, 0xcc, 0x41, 0x44, 0x12, 0xea, 0x81, 0xfb, - 0x01, 0xd2, 0x76, 0xfb, 0x01, 0xd3, 0x77, 0xfb, 0x01, 0xd4, 0x78, 0xfb, - 0x01, 0xd5, 0x79, 0xfb, 0x01, 0xd6, 0x7a, 0xfb, 0x01, 0xd7, 0x7b, 0xfb, - 0x41, 0x45, 0xfc, 0xe0, 0x85, 0xcc, 0x01, 0x04, 0xc3, 0x07, 0x01, 0xff, - 0x49, 0x56, 0x57, 0xaf, 0x23, 0x00, 0x05, 0x51, 0x00, 0x01, 0xff, 0x4f, - 0xb3, 0x6b, 0x91, 0xcc, 0x01, 0xb4, 0x01, 0xff, 0x4f, 0xcd, 0x07, 0x12, - 0xce, 0x01, 0x48, 0xd3, 0x07, 0x0f, 0xce, 0x41, 0x42, 0x17, 0x00, 0x15, - 0x20, 0x00, 0x05, 0xe2, 0x02, 0x01, 0xff, 0x47, 0xb3, 0xce, 0x23, 0x2b, - 0x00, 0x47, 0xce, 0xd0, 0xc3, 0x2b, 0x40, 0x44, 0xf1, 0x4e, 0x6f, 0xf3, - 0x01, 0x43, 0x3c, 0xb4, 0x1d, 0xf4, 0x41, 0xe5, 0x73, 0xf5, 0x01, 0x59, - 0x29, 0x24, 0x68, 0xf6, 0xc1, 0x00, 0x50, 0xef, 0x10, 0x69, 0xf6, 0x41, - 0x46, 0x42, 0xd7, 0x3a, 0xf3, 0x01, 0x02, 0x40, 0x00, 0xe1, 0x03, 0x49, - 0xa1, 0xb8, 0x7e, 0xf9, 0x01, 0x4a, 0xfd, 0xab, 0xd5, 0xf6, 0x01, 0x4a, - 0x6f, 0xad, 0x9b, 0xf9, 0x01, 0x07, 0xf9, 0x11, 0x06, 0x4b, 0xd2, 0xa0, - 0xec, 0x26, 0x40, 0x4c, 0x4d, 0x8c, 0x9f, 0x30, 0x00, 0x4e, 0xb6, 0x1f, - 0x9d, 0x30, 0x00, 0x07, 0xc1, 0x05, 0x06, 0x55, 0x11, 0x3e, 0x9e, 0x30, - 0x40, 0xe1, 0x42, 0x30, 0x80, 0x98, 0x03, 0xa2, 0x81, 0x03, 0xa4, 0xea, - 0x02, 0xe5, 0x48, 0x30, 0x00, 0xa7, 0xcf, 0x02, 0xa8, 0xb8, 0x02, 0xe9, - 0x44, 0x30, 0x00, 0xab, 0x9d, 0x02, 0xad, 0x86, 0x02, 0xee, 0x93, 0x30, - 0x80, 0xec, 0x01, 0xef, 0x4a, 0x30, 0x00, 0xb0, 0xd1, 0x01, 0xb2, 0xba, - 0x01, 0xb3, 0x57, 0xb4, 0x41, 0xf5, 0x46, 0x30, 0x00, 0x42, 0xeb, 0x60, - 0x94, 0x30, 0x00, 0xb7, 0x25, 0xb9, 0x17, 0xba, 0x01, 0xff, 0xe1, 0x56, - 0x30, 0x00, 0xe5, 0x5c, 0x30, 0x00, 0xe9, 0x58, 0x30, 0x00, 0xef, 0x5e, - 0x30, 0x00, 0xf5, 0x5a, 0x30, 0x40, 0xe1, 0x84, 0x30, 0x00, 0xef, 0x88, - 0x30, 0x00, 0xf5, 0x86, 0x30, 0x40, 0xe1, 0x8f, 0x30, 0x00, 0xe5, 0x91, - 0x30, 0x00, 0xe9, 0x90, 0x30, 0x00, 0xef, 0x92, 0x30, 0x40, 0xe1, 0x5f, - 0x30, 0x00, 0xe5, 0x66, 0x30, 0x00, 0xe9, 0x61, 0x30, 0x00, 0xef, 0x68, - 0x30, 0x00, 0xf5, 0x64, 0x30, 0x40, 0xe1, 0x55, 0x30, 0x00, 0xe5, 0x5b, - 0x30, 0x00, 0xe9, 0x57, 0x30, 0x00, 0x05, 0x0d, 0x07, 0x08, 0xef, 0x5d, - 0x30, 0x00, 0xf5, 0x59, 0x30, 0x40, 0xe1, 0x41, 0x30, 0x00, 0xe5, 0x47, - 0x30, 0x00, 0xe9, 0x43, 0x30, 0x00, 0xab, 0x2f, 0xef, 0x49, 0x30, 0x00, - 0x42, 0x5c, 0x01, 0x63, 0x30, 0x00, 0xf5, 0x45, 0x30, 0x00, 0xb7, 0x0f, - 0xb9, 0x01, 0xff, 0xe1, 0x83, 0x30, 0x00, 0xef, 0x87, 0x30, 0x00, 0xf5, - 0x85, 0x30, 0x40, 0xe1, 0x8e, 0x30, 0x00, 0xe5, 0x51, 0xb1, 0x01, 0xe9, - 0x50, 0xb1, 0x01, 0xef, 0x52, 0xb1, 0x41, 0xe1, 0x95, 0x30, 0x00, 0xe5, - 0x96, 0x30, 0x00, 0xef, 0x32, 0xb1, 0x41, 0xe1, 0x89, 0x30, 0x00, 0xe5, - 0x8c, 0x30, 0x00, 0xe9, 0x8a, 0x30, 0x00, 0xef, 0x8d, 0x30, 0x00, 0xf5, - 0x8b, 0x30, 0x40, 0xe1, 0x71, 0x30, 0x00, 0xe5, 0x7a, 0x30, 0x00, 0xe9, - 0x74, 0x30, 0x00, 0xef, 0x7d, 0x30, 0x00, 0xf5, 0x77, 0x30, 0x40, 0xe1, - 0x6a, 0x30, 0x00, 0xe5, 0x6d, 0x30, 0x00, 0xe9, 0x6b, 0x30, 0x00, 0xef, - 0x6e, 0x30, 0x00, 0xf5, 0x6c, 0x30, 0x40, 0xe1, 0x7e, 0x30, 0x00, 0xe5, - 0x81, 0x30, 0x00, 0xe9, 0x7f, 0x30, 0x00, 0xef, 0x82, 0x30, 0x00, 0xf5, - 0x80, 0x30, 0x40, 0xe1, 0x4b, 0x30, 0x00, 0xe5, 0x51, 0x30, 0x00, 0xe9, - 0x4d, 0x30, 0x00, 0xef, 0x53, 0x30, 0x00, 0xf5, 0x4f, 0x30, 0x40, 0xe1, - 0x6f, 0x30, 0x00, 0xe5, 0x78, 0x30, 0x00, 0xe9, 0x72, 0x30, 0x00, 0xef, - 0x7b, 0x30, 0x00, 0xf5, 0x75, 0x30, 0x40, 0xe1, 0x4c, 0x30, 0x00, 0xe5, - 0x52, 0x30, 0x00, 0xe9, 0x4e, 0x30, 0x00, 0xef, 0x54, 0x30, 0x00, 0xf5, - 0x50, 0x30, 0x40, 0xe1, 0x60, 0x30, 0x00, 0xe5, 0x67, 0x30, 0x00, 0xe9, - 0x62, 0x30, 0x00, 0xef, 0x69, 0x30, 0x00, 0xf5, 0x65, 0x30, 0x40, 0xe1, - 0x70, 0x30, 0x00, 0xe5, 0x79, 0x30, 0x00, 0xe9, 0x73, 0x30, 0x00, 0xef, - 0x7c, 0x30, 0x00, 0xf5, 0x76, 0x30, 0x40, 0x07, 0x28, 0x7f, 0x01, 0xff, - 0x42, 0x45, 0x07, 0x1f, 0xb1, 0x01, 0x42, 0x4d, 0x00, 0x01, 0xb0, 0x41, - 0x80, 0x16, 0x8d, 0x01, 0xff, 0x4b, 0xb8, 0x9a, 0x60, 0xf4, 0x01, 0x4b, - 0x9b, 0xa0, 0x84, 0xf6, 0xc1, 0x00, 0x51, 0x1c, 0x56, 0x85, 0xf6, 0x41, - 0x51, 0x5f, 0x57, 0x06, 0xf5, 0x01, 0x4c, 0xed, 0x94, 0xa1, 0x26, 0x40, - 0xa1, 0x83, 0x17, 0x05, 0xc9, 0xe1, 0x8f, 0x0f, 0x46, 0x02, 0xd8, 0x94, - 0xf9, 0x01, 0xac, 0xeb, 0x0e, 0x10, 0xda, 0x63, 0xf0, 0x03, 0xb2, 0xe3, - 0x03, 0x0b, 0x03, 0xa3, 0x01, 0xff, 0xa1, 0xc9, 0x03, 0xa2, 0xb4, 0x03, - 0x02, 0xe8, 0x04, 0x9a, 0x03, 0xa4, 0xe9, 0x02, 0x4a, 0xc5, 0xa7, 0xcf, - 0x4d, 0x00, 0xa6, 0xd4, 0x02, 0xa7, 0xa1, 0x02, 0x50, 0x0a, 0x62, 0xc7, - 0x4d, 0x00, 0x02, 0x9e, 0x01, 0xfb, 0x01, 0x4a, 0xc7, 0xaa, 0xfb, 0x4d, - 0x00, 0x02, 0x98, 0x07, 0xe4, 0x01, 0xaf, 0xca, 0x01, 0xb0, 0xb5, 0x01, - 0x02, 0x88, 0x00, 0x9c, 0x01, 0xb3, 0x7e, 0xb4, 0x14, 0xb7, 0x06, 0x4e, - 0x84, 0x7d, 0xc3, 0x4d, 0x40, 0x46, 0x27, 0x87, 0xc4, 0x4d, 0x00, 0x52, - 0xd6, 0x52, 0xd1, 0x4d, 0x40, 0x03, 0x76, 0x0b, 0x06, 0x47, 0xac, 0x11, - 0xc9, 0x4d, 0x40, 0xa1, 0x47, 0xa3, 0x33, 0x46, 0xc8, 0xd8, 0xe4, 0x4d, - 0x00, 0x4b, 0x3f, 0x9a, 0xf8, 0x4d, 0x00, 0x4b, 0xcb, 0x9b, 0xf9, 0x4d, - 0x00, 0x56, 0x25, 0x34, 0xf3, 0x4d, 0x00, 0x4f, 0x83, 0x6e, 0xf5, 0x4d, - 0x00, 0x4f, 0xae, 0x70, 0xc1, 0x4d, 0x00, 0xb7, 0x01, 0xff, 0x47, 0x0c, - 0xcc, 0xf7, 0x4d, 0x00, 0x43, 0x10, 0x09, 0xef, 0x4d, 0x40, 0x47, 0x75, - 0xcc, 0xf1, 0x4d, 0x00, 0x4c, 0x89, 0x8f, 0xdd, 0x4d, 0x00, 0x4e, 0x20, - 0x7a, 0xc0, 0x4d, 0x40, 0x4c, 0x51, 0x8b, 0xdc, 0x4d, 0x00, 0xb2, 0x01, - 0xff, 0x42, 0x38, 0x57, 0xc6, 0x4d, 0x00, 0x4e, 0x78, 0x79, 0xf2, 0x4d, - 0x40, 0x05, 0x0d, 0x07, 0x0c, 0x4e, 0xda, 0x79, 0xd6, 0x4d, 0x00, 0x49, - 0x33, 0xbd, 0xcb, 0x4d, 0x40, 0x4d, 0xdb, 0x85, 0xfd, 0x4d, 0x00, 0x46, - 0x54, 0xdd, 0xc8, 0x4d, 0x40, 0xb4, 0x06, 0x48, 0x9a, 0xc9, 0xf0, 0x4d, - 0x40, 0x44, 0x88, 0x00, 0xe0, 0x4d, 0x00, 0x43, 0x5d, 0x01, 0xd7, 0x4d, - 0x40, 0x44, 0x91, 0xa2, 0xca, 0x4d, 0x00, 0x47, 0x95, 0xd2, 0xe2, 0x4d, - 0x00, 0x4d, 0x17, 0x88, 0xed, 0x4d, 0x40, 0x4a, 0x2b, 0xa6, 0xe6, 0x4d, - 0x00, 0x02, 0x6e, 0x02, 0x01, 0xff, 0x47, 0xa1, 0x16, 0xe5, 0x4d, 0x00, - 0x47, 0x0a, 0x65, 0xee, 0x4d, 0x40, 0x45, 0x82, 0xe2, 0xce, 0x4d, 0x00, - 0x4b, 0x53, 0xa2, 0xda, 0x4d, 0x40, 0x46, 0xd8, 0xd7, 0xe9, 0x4d, 0x00, - 0x47, 0x51, 0xce, 0xde, 0x4d, 0x00, 0xae, 0x01, 0xff, 0x48, 0x22, 0xc3, - 0xfc, 0x4d, 0x00, 0x46, 0xaa, 0xdb, 0xd8, 0x4d, 0x40, 0x51, 0xf9, 0x56, - 0xec, 0x4d, 0x00, 0xb2, 0x01, 0xff, 0x43, 0xe2, 0x07, 0xd5, 0x4d, 0x00, - 0x04, 0x10, 0x54, 0x01, 0xff, 0xb0, 0x06, 0x46, 0x54, 0xdd, 0xd9, 0x4d, - 0x40, 0xaf, 0x06, 0x4c, 0xdc, 0x85, 0xdb, 0x4d, 0x40, 0x48, 0x73, 0x51, - 0xcd, 0x4d, 0x00, 0x43, 0x15, 0x01, 0xe1, 0x4d, 0x40, 0x49, 0xfe, 0xb5, - 0xcc, 0x4d, 0x00, 0x48, 0x82, 0xc6, 0xd0, 0x4d, 0x40, 0x55, 0x92, 0x38, - 0xe3, 0x4d, 0x00, 0xa5, 0x14, 0xa9, 0x06, 0x47, 0x1d, 0xd4, 0xdf, 0x4d, - 0x40, 0x59, 0xac, 0x23, 0xc2, 0x4d, 0x00, 0x48, 0x72, 0xc8, 0xfa, 0x4d, - 0x40, 0x46, 0xd8, 0xd7, 0xe8, 0x4d, 0x00, 0x49, 0x28, 0xb9, 0xe7, 0x4d, - 0x00, 0x49, 0x53, 0xbe, 0xf4, 0x4d, 0x40, 0x4c, 0x61, 0x90, 0xeb, 0x4d, - 0x00, 0xae, 0x01, 0xff, 0x45, 0x59, 0xe3, 0xc5, 0x4d, 0x00, 0x4a, 0x63, - 0xaf, 0xd3, 0x4d, 0x40, 0x50, 0x1a, 0x61, 0xff, 0x4d, 0x00, 0x4d, 0xe9, - 0x82, 0xd4, 0x4d, 0x00, 0x4b, 0xa9, 0x9f, 0xea, 0x4d, 0x40, 0x48, 0xda, - 0xc1, 0xf6, 0x4d, 0x00, 0x4f, 0xd1, 0x6b, 0xfe, 0x4d, 0x00, 0x47, 0x02, - 0xd2, 0xd2, 0x4d, 0x40, 0xe2, 0x3f, 0xf3, 0x01, 0x57, 0xcb, 0x2e, 0xb9, - 0x22, 0x40, 0x02, 0xf2, 0x18, 0xdf, 0x0a, 0x02, 0x08, 0x02, 0xc2, 0x0a, - 0xa8, 0x99, 0x09, 0x02, 0x4e, 0x36, 0x84, 0x09, 0xab, 0xd3, 0x07, 0xad, - 0xcd, 0x06, 0xae, 0xa4, 0x05, 0x02, 0x22, 0x31, 0x93, 0x05, 0xb2, 0x8f, - 0x04, 0xb3, 0xef, 0x02, 0xb4, 0xd2, 0x01, 0x02, 0xed, 0x38, 0xb9, 0x01, - 0xb7, 0x52, 0xb9, 0x01, 0xff, 0x02, 0xf2, 0x18, 0x31, 0x02, 0x22, 0x31, - 0x15, 0x02, 0xed, 0x38, 0x01, 0xff, 0xd1, 0xe3, 0xb0, 0x01, 0xd2, 0xe4, - 0xb0, 0x01, 0xd3, 0xe5, 0xb0, 0x01, 0xd4, 0xe6, 0xb0, 0x41, 0xd1, 0xe7, - 0xb0, 0x01, 0xd2, 0xe8, 0xb0, 0x01, 0xd3, 0xe9, 0xb0, 0x01, 0xd4, 0xea, - 0xb0, 0x01, 0xd5, 0xeb, 0xb0, 0x01, 0xd6, 0xec, 0xb0, 0x41, 0xd1, 0xdd, - 0xb0, 0x01, 0xd2, 0xde, 0xb0, 0x01, 0xd3, 0xdf, 0xb0, 0x01, 0xd4, 0xe0, - 0xb0, 0x01, 0xd5, 0xe1, 0xb0, 0x01, 0x42, 0x60, 0x46, 0xe2, 0xb0, 0x41, - 0x02, 0xf2, 0x18, 0x4d, 0x02, 0x08, 0x02, 0x39, 0x02, 0x4e, 0x36, 0x21, - 0x02, 0x22, 0x31, 0x01, 0xff, 0xd1, 0x16, 0xb1, 0x01, 0xd2, 0x17, 0xb1, - 0x01, 0xd3, 0x18, 0xb1, 0x01, 0xd4, 0x19, 0xb1, 0x01, 0xd5, 0x1a, 0xb1, - 0x01, 0xd6, 0x1b, 0xb1, 0x01, 0xd7, 0x1c, 0xb1, 0x41, 0xd1, 0x0d, 0xb1, - 0x01, 0xd2, 0x0e, 0xb1, 0x01, 0xd3, 0x0f, 0xb1, 0x01, 0xd4, 0x10, 0xb1, - 0x01, 0xd5, 0x11, 0xb1, 0x41, 0xd1, 0x12, 0xb1, 0x01, 0xd2, 0x13, 0xb1, - 0x01, 0xd3, 0x14, 0xb1, 0x01, 0xd4, 0x15, 0xb1, 0x41, 0xd1, 0x08, 0xb1, - 0x01, 0xd2, 0x09, 0xb1, 0x01, 0xd3, 0x0a, 0xb1, 0x01, 0xd4, 0x0b, 0xb1, - 0x01, 0xd5, 0x0c, 0xb1, 0x41, 0xd1, 0x0a, 0xb0, 0x01, 0xd2, 0x0b, 0xb0, - 0x01, 0xd3, 0x0c, 0xb0, 0x01, 0xd4, 0x0d, 0xb0, 0x01, 0xd5, 0x0e, 0xb0, - 0x41, 0x02, 0xf2, 0x18, 0x85, 0x01, 0x02, 0x08, 0x02, 0x5d, 0x02, 0x4e, - 0x36, 0x3d, 0x02, 0x22, 0x31, 0x1b, 0x02, 0xed, 0x38, 0x01, 0xff, 0xd1, - 0x69, 0xb0, 0x01, 0xd2, 0x6a, 0xb0, 0x01, 0xd3, 0x6b, 0xb0, 0x01, 0xd4, - 0x6c, 0xb0, 0x01, 0x42, 0x1e, 0x00, 0x6d, 0xb0, 0x41, 0xd1, 0x77, 0xb0, - 0x01, 0xd2, 0x78, 0xb0, 0x01, 0xd3, 0x79, 0xb0, 0x01, 0xd4, 0x7a, 0xb0, - 0x01, 0xd5, 0x7b, 0xb0, 0x01, 0xd6, 0x7c, 0xb0, 0x01, 0x42, 0x71, 0x00, - 0x7d, 0xb0, 0x41, 0xd1, 0x62, 0xb0, 0x01, 0xd2, 0x63, 0xb0, 0x01, 0xd3, - 0x64, 0xb0, 0x01, 0xd4, 0x65, 0xb0, 0x01, 0xd5, 0x66, 0xb0, 0x01, 0xd6, - 0x67, 0xb0, 0x01, 0xd7, 0x68, 0xb0, 0x41, 0xd1, 0x6e, 0xb0, 0x01, 0xd2, - 0x6f, 0xb0, 0x01, 0xd3, 0x70, 0xb0, 0x01, 0xd4, 0x71, 0xb0, 0x01, 0xd5, - 0x72, 0xb0, 0x01, 0xd6, 0x73, 0xb0, 0x01, 0xd7, 0x74, 0xb0, 0x01, 0xd8, - 0x75, 0xb0, 0x01, 0xd9, 0x76, 0xb0, 0x41, 0xd1, 0x5e, 0xb0, 0x01, 0xd2, - 0x5f, 0xb0, 0x01, 0xd3, 0x60, 0xb0, 0x01, 0xd4, 0x61, 0xb0, 0x41, 0x02, - 0xf2, 0x18, 0x79, 0x02, 0x08, 0x02, 0x61, 0x02, 0x4e, 0x36, 0x45, 0x02, - 0x22, 0x31, 0x25, 0x02, 0xed, 0x38, 0x01, 0xff, 0xd1, 0x4a, 0xb0, 0x01, - 0xd2, 0x4b, 0xb0, 0x01, 0xd3, 0x4c, 0xb0, 0x01, 0xd4, 0x4d, 0xb0, 0x01, - 0xd5, 0x4e, 0xb0, 0x01, 0xd6, 0x4f, 0xb0, 0x01, 0xd7, 0x50, 0xb0, 0x01, - 0xd8, 0x51, 0xb0, 0x41, 0xd1, 0x57, 0xb0, 0x01, 0xd2, 0x58, 0xb0, 0x01, - 0xd3, 0x59, 0xb0, 0x01, 0xd4, 0x5a, 0xb0, 0x01, 0xd5, 0x5b, 0xb0, 0x01, - 0xd6, 0x5c, 0xb0, 0x01, 0xd7, 0x5d, 0xb0, 0x41, 0xd1, 0x44, 0xb0, 0x01, - 0xd2, 0x45, 0xb0, 0x01, 0xd3, 0x46, 0xb0, 0x01, 0xd4, 0x47, 0xb0, 0x01, - 0xd5, 0x48, 0xb0, 0x01, 0xd6, 0x49, 0xb0, 0x41, 0xd1, 0x52, 0xb0, 0x01, - 0xd2, 0x53, 0xb0, 0x01, 0xd3, 0x54, 0xb0, 0x01, 0xd4, 0x55, 0xb0, 0x01, - 0xd5, 0x56, 0xb0, 0x41, 0xd1, 0x3c, 0xb0, 0x01, 0xd2, 0x3d, 0xb0, 0x01, - 0xd3, 0x3e, 0xb0, 0x01, 0xd4, 0x3f, 0xb0, 0x01, 0xd5, 0x40, 0xb0, 0x01, - 0xd6, 0x41, 0xb0, 0x01, 0xd7, 0x42, 0xb0, 0x01, 0xd8, 0x43, 0xb0, 0x41, - 0x02, 0xf2, 0x18, 0x6d, 0x02, 0x08, 0x02, 0x59, 0x02, 0x4e, 0x36, 0x39, - 0x02, 0x22, 0x31, 0x1d, 0x02, 0xed, 0x38, 0x01, 0xff, 0xd1, 0xf8, 0xb0, - 0x01, 0xd2, 0xf9, 0xb0, 0x01, 0xd3, 0xfa, 0xb0, 0x01, 0xd4, 0xfb, 0xb0, - 0x01, 0xd5, 0xfc, 0xb0, 0x01, 0xd6, 0xfd, 0xb0, 0x41, 0xd1, 0x02, 0xb1, - 0x01, 0xd2, 0x03, 0xb1, 0x01, 0xd3, 0x04, 0xb1, 0x01, 0xd4, 0x05, 0xb1, - 0x01, 0xd5, 0x06, 0xb1, 0x01, 0xd6, 0x07, 0xb1, 0x41, 0xd1, 0xf1, 0xb0, - 0x01, 0xd2, 0xf2, 0xb0, 0x01, 0xd3, 0xf3, 0xb0, 0x01, 0xd4, 0xf4, 0xb0, - 0x01, 0xd5, 0xf5, 0xb0, 0x01, 0xd6, 0xf6, 0xb0, 0x01, 0xd7, 0xf7, 0xb0, - 0x41, 0xd1, 0xfe, 0xb0, 0x01, 0xd2, 0xff, 0xb0, 0x01, 0xd3, 0x00, 0xb1, - 0x01, 0xd4, 0x01, 0xb1, 0x41, 0xd1, 0xed, 0xb0, 0x01, 0xd2, 0xee, 0xb0, - 0x01, 0xd3, 0xef, 0xb0, 0x01, 0xd4, 0xf0, 0xb0, 0x41, 0xd1, 0x14, 0xb0, - 0x01, 0xd2, 0x15, 0xb0, 0x01, 0xd3, 0x16, 0xb0, 0x41, 0x07, 0x09, 0xcb, - 0x99, 0x01, 0x02, 0xf2, 0x18, 0x71, 0x02, 0x08, 0x02, 0x4f, 0x02, 0x4e, - 0x36, 0x29, 0x02, 0x22, 0x31, 0x11, 0x02, 0xed, 0x38, 0x01, 0xff, 0xd1, - 0x8f, 0xb0, 0x01, 0xd2, 0x90, 0xb0, 0x01, 0xd3, 0x91, 0xb0, 0x41, 0xd1, - 0x99, 0xb0, 0x01, 0xd2, 0x9a, 0xb0, 0x01, 0xd3, 0x9b, 0xb0, 0x01, 0xd4, - 0x9c, 0xb0, 0x01, 0xd5, 0x9d, 0xb0, 0x41, 0xd1, 0x87, 0xb0, 0x01, 0xd2, - 0x88, 0xb0, 0x01, 0xd3, 0x89, 0xb0, 0x01, 0xd4, 0x8a, 0xb0, 0x01, 0xd5, - 0x8b, 0xb0, 0x01, 0xd6, 0x8c, 0xb0, 0x01, 0xd7, 0x8d, 0xb0, 0x01, 0x42, - 0x77, 0x00, 0x8e, 0xb0, 0x41, 0xd1, 0x92, 0xb0, 0x01, 0xd2, 0x93, 0xb0, - 0x01, 0xd3, 0x94, 0xb0, 0x01, 0xd4, 0x95, 0xb0, 0x01, 0xd5, 0x96, 0xb0, - 0x01, 0xd6, 0x97, 0xb0, 0x01, 0x42, 0x22, 0x03, 0x98, 0xb0, 0x41, 0xd1, - 0x7e, 0xb0, 0x01, 0xd2, 0x7f, 0xb0, 0x01, 0xd3, 0x80, 0xb0, 0x01, 0xd4, - 0x81, 0xb0, 0x01, 0xd5, 0x82, 0xb0, 0x01, 0xd6, 0x83, 0xb0, 0x01, 0xd7, - 0x84, 0xb0, 0x01, 0xd8, 0x85, 0xb0, 0x01, 0xd9, 0x86, 0xb0, 0x41, 0xd1, - 0x1d, 0xb1, 0x01, 0xd2, 0x1e, 0xb1, 0x41, 0x02, 0xf2, 0x18, 0x63, 0x02, - 0x08, 0x02, 0x51, 0x02, 0x4e, 0x36, 0x31, 0x02, 0x22, 0x31, 0x15, 0x02, - 0xed, 0x38, 0x01, 0xff, 0xd1, 0xd0, 0xb0, 0x01, 0xd2, 0xd1, 0xb0, 0x01, - 0xd3, 0xd2, 0xb0, 0x01, 0xd4, 0xd3, 0xb0, 0x41, 0xd1, 0xd7, 0xb0, 0x01, - 0xd2, 0xd8, 0xb0, 0x01, 0xd3, 0xd9, 0xb0, 0x01, 0xd4, 0xda, 0xb0, 0x01, - 0xd5, 0xdb, 0xb0, 0x01, 0xd6, 0xdc, 0xb0, 0x41, 0xd1, 0xc9, 0xb0, 0x01, - 0xd2, 0xca, 0xb0, 0x01, 0xd3, 0xcb, 0xb0, 0x01, 0xd4, 0xcc, 0xb0, 0x01, - 0xd5, 0xcd, 0xb0, 0x01, 0xd6, 0xce, 0xb0, 0x01, 0xd7, 0xcf, 0xb0, 0x41, - 0xd1, 0xd4, 0xb0, 0x01, 0xd2, 0xd5, 0xb0, 0x01, 0x42, 0x6c, 0x00, 0xd6, - 0xb0, 0x41, 0xd1, 0xc2, 0xb0, 0x01, 0xd2, 0xc3, 0xb0, 0x01, 0xd3, 0xc4, - 0xb0, 0x01, 0xd4, 0xc5, 0xb0, 0x01, 0xd5, 0xc6, 0xb0, 0x01, 0xd6, 0xc7, - 0xb0, 0x01, 0xd7, 0xc8, 0xb0, 0x41, 0x02, 0xf2, 0x18, 0x77, 0x02, 0x08, - 0x02, 0x5b, 0x02, 0x4e, 0x36, 0x37, 0x02, 0x22, 0x31, 0x21, 0x02, 0xed, - 0x38, 0x01, 0xff, 0xd1, 0x2b, 0xb0, 0x01, 0xd2, 0x2c, 0xb0, 0x01, 0xd3, - 0x2d, 0xb0, 0x01, 0xd4, 0x2e, 0xb0, 0x01, 0xd5, 0x2f, 0xb0, 0x01, 0xd6, - 0x30, 0xb0, 0x01, 0xd7, 0x31, 0xb0, 0x41, 0xd1, 0x38, 0xb0, 0x01, 0xd2, - 0x39, 0xb0, 0x01, 0xd3, 0x3a, 0xb0, 0x01, 0x42, 0x45, 0x00, 0x3b, 0xb0, - 0x41, 0xd1, 0x23, 0xb0, 0x01, 0xd2, 0x24, 0xb0, 0x01, 0xd3, 0x25, 0xb0, - 0x01, 0xd4, 0x26, 0xb0, 0x01, 0xd5, 0x27, 0xb0, 0x01, 0xd6, 0x28, 0xb0, - 0x01, 0xd7, 0x29, 0xb0, 0x01, 0xd8, 0x2a, 0xb0, 0x41, 0xd1, 0x32, 0xb0, - 0x01, 0xd2, 0x33, 0xb0, 0x01, 0xd3, 0x34, 0xb0, 0x01, 0xd4, 0x35, 0xb0, - 0x01, 0xd5, 0x36, 0xb0, 0x01, 0xd6, 0x37, 0xb0, 0x41, 0xd1, 0x17, 0xb0, - 0x81, 0x26, 0xd2, 0x18, 0xb0, 0x01, 0xd3, 0x19, 0xb0, 0x01, 0xd4, 0x1a, - 0xb0, 0x01, 0xd5, 0x1b, 0xb0, 0x01, 0xd6, 0x1c, 0xb0, 0x01, 0xd7, 0x1d, - 0xb0, 0x01, 0xd8, 0x1e, 0xb0, 0x01, 0xd9, 0x1f, 0xb0, 0x01, 0x42, 0x37, - 0x01, 0x22, 0xb0, 0x41, 0xd0, 0x20, 0xb0, 0x01, 0xd1, 0x21, 0xb0, 0x41, - 0xd1, 0x06, 0xb0, 0x01, 0xd2, 0x07, 0xb0, 0x01, 0xd3, 0x08, 0xb0, 0x01, - 0xd4, 0x09, 0xb0, 0x41, 0x02, 0xf2, 0x18, 0x75, 0x02, 0x08, 0x02, 0x55, - 0x02, 0x4e, 0x36, 0x35, 0x02, 0x22, 0x31, 0x11, 0x02, 0xed, 0x38, 0x01, - 0xff, 0xd1, 0xb0, 0xb0, 0x01, 0xd2, 0xb1, 0xb0, 0x01, 0xd3, 0xb2, 0xb0, - 0x41, 0xd1, 0xba, 0xb0, 0x01, 0xd2, 0xbb, 0xb0, 0x01, 0xd3, 0xbc, 0xb0, - 0x01, 0xd4, 0xbd, 0xb0, 0x01, 0xd5, 0xbe, 0xb0, 0x01, 0xd6, 0xbf, 0xb0, - 0x01, 0xd7, 0xc0, 0xb0, 0x01, 0xd8, 0xc1, 0xb0, 0x41, 0xd1, 0xa9, 0xb0, - 0x01, 0xd2, 0xaa, 0xb0, 0x01, 0xd3, 0xab, 0xb0, 0x01, 0xd4, 0xac, 0xb0, - 0x01, 0xd5, 0xad, 0xb0, 0x01, 0xd6, 0xae, 0xb0, 0x01, 0xd7, 0xaf, 0xb0, - 0x41, 0xd1, 0xb3, 0xb0, 0x01, 0xd2, 0xb4, 0xb0, 0x01, 0xd3, 0xb5, 0xb0, - 0x01, 0xd4, 0xb6, 0xb0, 0x01, 0xd5, 0xb7, 0xb0, 0x01, 0xd6, 0xb8, 0xb0, - 0x01, 0xd7, 0xb9, 0xb0, 0x41, 0xd1, 0x9e, 0xb0, 0x81, 0x20, 0xd2, 0x9f, - 0xb0, 0x01, 0xd3, 0xa0, 0xb0, 0x01, 0xd4, 0xa1, 0xb0, 0x01, 0xd5, 0xa2, - 0xb0, 0x01, 0xd6, 0xa3, 0xb0, 0x01, 0xd7, 0xa4, 0xb0, 0x01, 0xd8, 0xa5, - 0xb0, 0x01, 0xd9, 0xa6, 0xb0, 0x41, 0xd0, 0xa7, 0xb0, 0x01, 0xd1, 0xa8, - 0xb0, 0x41, 0xd1, 0x01, 0xb0, 0x01, 0xd2, 0x0f, 0xb0, 0x01, 0xd3, 0x10, - 0xb0, 0x01, 0xd4, 0x11, 0xb0, 0x01, 0xd5, 0x12, 0xb0, 0x01, 0xd6, 0x13, - 0xb0, 0x41, 0xd1, 0x02, 0xb0, 0x01, 0xd2, 0x03, 0xb0, 0x01, 0xd3, 0x04, - 0xb0, 0x01, 0x42, 0x15, 0x02, 0x05, 0xb0, 0x41, 0x47, 0xf9, 0xce, 0x81, - 0xf6, 0x01, 0x57, 0xb4, 0x2e, 0xff, 0x2b, 0x00, 0xad, 0x01, 0xff, 0x47, - 0xea, 0x07, 0x88, 0x23, 0x00, 0x53, 0xfc, 0x47, 0xd1, 0x26, 0x40, 0x07, - 0x93, 0x22, 0x8a, 0x06, 0xac, 0xd0, 0x01, 0x05, 0xb9, 0x00, 0xb9, 0x01, - 0xb0, 0x06, 0x4c, 0x41, 0x95, 0xef, 0x05, 0x40, 0x05, 0x5d, 0x17, 0x2d, - 0x0b, 0x02, 0x16, 0x01, 0xff, 0x03, 0x8c, 0x09, 0x18, 0x45, 0x61, 0xe5, - 0xbe, 0x05, 0x00, 0x4b, 0x28, 0x9e, 0xc6, 0x05, 0x00, 0x45, 0x97, 0xe6, - 0xc0, 0x05, 0x00, 0x49, 0xd9, 0xbc, 0xc3, 0x05, 0x40, 0x43, 0x28, 0x59, - 0xf3, 0x05, 0x00, 0x46, 0xca, 0xdc, 0xf4, 0x05, 0x40, 0x4f, 0x4b, 0x6a, - 0xbc, 0x05, 0x00, 0xa8, 0x4f, 0x54, 0x9f, 0x42, 0x1e, 0xfb, 0x00, 0x45, - 0x7f, 0xe5, 0xbd, 0x05, 0x00, 0x45, 0x16, 0x89, 0xb7, 0x05, 0x00, 0xb1, - 0x28, 0x44, 0xf2, 0xee, 0xbf, 0x05, 0x00, 0xb3, 0x06, 0x45, 0x68, 0xe8, - 0xb5, 0x05, 0x40, 0x44, 0xa6, 0xe7, 0xb6, 0x05, 0x00, 0xa8, 0x06, 0x46, - 0xc9, 0x4c, 0xc2, 0x05, 0x40, 0x43, 0x5a, 0x45, 0xb0, 0x05, 0x00, 0x46, - 0xc9, 0x4c, 0xc1, 0x05, 0x40, 0x45, 0x53, 0xdc, 0xb8, 0x05, 0x80, 0x06, - 0x45, 0x95, 0xe8, 0xbb, 0x05, 0x40, 0x46, 0x62, 0xd5, 0xc7, 0x05, 0x40, - 0x05, 0x6a, 0xe1, 0x13, 0x44, 0xf5, 0xe3, 0xb4, 0x05, 0x00, 0x44, 0x04, - 0xe4, 0xb9, 0x05, 0xc0, 0x00, 0x4e, 0xe4, 0x73, 0xba, 0x05, 0x40, 0x45, - 0x16, 0x89, 0xb2, 0x05, 0x00, 0x46, 0x52, 0xdc, 0xb3, 0x05, 0x00, 0x45, - 0xa5, 0xe7, 0xb1, 0x05, 0x40, 0x49, 0x55, 0xb9, 0xc5, 0x05, 0x00, 0x4d, - 0xfa, 0x83, 0xaf, 0x05, 0x00, 0x49, 0xde, 0xbd, 0xc4, 0x05, 0x40, 0x06, - 0xc2, 0x05, 0x2c, 0x08, 0xfb, 0x1e, 0x01, 0xff, 0x4a, 0x59, 0xa5, 0x4f, - 0xfb, 0x00, 0x08, 0x2a, 0xca, 0x01, 0xff, 0x07, 0x3b, 0x01, 0x0c, 0x47, - 0x55, 0xd4, 0xf1, 0x05, 0x00, 0x4d, 0x0e, 0x89, 0x1f, 0xfb, 0x40, 0x43, - 0x2a, 0x0f, 0xf0, 0x05, 0x00, 0x43, 0x58, 0x51, 0xf2, 0x05, 0x40, 0xa1, - 0xcd, 0x03, 0x43, 0x71, 0x09, 0xd1, 0x05, 0x80, 0xb4, 0x03, 0x45, 0xda, - 0x48, 0xd3, 0x05, 0x80, 0xa6, 0x03, 0x06, 0x3d, 0x2c, 0xf5, 0x02, 0x45, - 0xa1, 0xa8, 0xd2, 0x05, 0x80, 0xe7, 0x02, 0x42, 0xb0, 0x01, 0xd4, 0x05, - 0x80, 0xd5, 0x02, 0x43, 0x5e, 0x50, 0xdb, 0x05, 0x80, 0xbc, 0x02, 0x45, - 0x5e, 0xa5, 0xdc, 0x05, 0x80, 0xae, 0x02, 0x43, 0x89, 0x05, 0xde, 0x05, - 0x80, 0xa0, 0x02, 0x43, 0x54, 0x22, 0xe0, 0x05, 0x80, 0x92, 0x02, 0x42, - 0x6f, 0x02, 0xe4, 0x05, 0x80, 0xf9, 0x01, 0x43, 0x44, 0xf1, 0xe7, 0x05, - 0x80, 0xeb, 0x01, 0x44, 0xfa, 0x64, 0xe8, 0x05, 0x80, 0xdd, 0x01, 0xb3, - 0x9a, 0x01, 0xb4, 0x71, 0x43, 0x2a, 0x0f, 0xd5, 0x05, 0x80, 0x59, 0x05, - 0x21, 0xe9, 0x25, 0x43, 0x58, 0x51, 0xd9, 0x05, 0x80, 0x0d, 0x45, 0x52, - 0x51, 0xd6, 0x05, 0xc0, 0x00, 0x4c, 0xc5, 0x89, 0x36, 0xfb, 0x40, 0x06, - 0x50, 0x00, 0x01, 0xff, 0x46, 0x4b, 0x6a, 0x39, 0xfb, 0x00, 0x45, 0xf4, - 0xe3, 0x1d, 0xfb, 0x40, 0x44, 0x67, 0x00, 0x21, 0xfb, 0x00, 0x45, 0xda, - 0x48, 0x22, 0xfb, 0x00, 0x49, 0x8e, 0xb6, 0x26, 0xfb, 0x00, 0x42, 0xb0, - 0x01, 0x23, 0xfb, 0x00, 0x43, 0x5e, 0x50, 0x24, 0xfb, 0x00, 0x45, 0x5e, - 0xa5, 0x25, 0xfb, 0x00, 0x44, 0xfa, 0x64, 0x27, 0xfb, 0x00, 0x43, 0x96, - 0x29, 0x28, 0xfb, 0x40, 0x06, 0x50, 0x00, 0x01, 0xff, 0x46, 0x4b, 0x6a, - 0x35, 0xfb, 0x00, 0x45, 0x03, 0xe4, 0x4b, 0xfb, 0x40, 0x42, 0x04, 0x08, - 0xea, 0x05, 0x80, 0x1a, 0x42, 0xc2, 0x05, 0xd8, 0x05, 0x80, 0x0d, 0x44, - 0x5f, 0xe8, 0xe6, 0x05, 0xc0, 0x00, 0x4c, 0xc5, 0x89, 0x46, 0xfb, 0x40, - 0x4c, 0xc5, 0x89, 0x38, 0xfb, 0x40, 0x4c, 0xc5, 0x89, 0x4a, 0xfb, 0x40, - 0x45, 0x38, 0xe1, 0xe1, 0x05, 0x80, 0x33, 0x43, 0x0e, 0x16, 0xe9, 0x05, - 0xc0, 0x00, 0x06, 0x50, 0x00, 0x01, 0xff, 0x46, 0x4b, 0x6a, 0x49, 0xfb, - 0x80, 0x0f, 0xb3, 0x01, 0xff, 0x47, 0xc8, 0x4c, 0x2a, 0xfb, 0x00, 0x46, - 0xc9, 0x4c, 0x2b, 0xfb, 0x40, 0x06, 0x8a, 0x13, 0x01, 0xff, 0x47, 0xc8, - 0x4c, 0x2c, 0xfb, 0x00, 0x46, 0xc9, 0x4c, 0x2d, 0xfb, 0x40, 0x4c, 0xc5, - 0x89, 0x41, 0xfb, 0x40, 0x4c, 0xc5, 0x89, 0x48, 0xfb, 0x40, 0x4c, 0xc5, - 0x89, 0x47, 0xfb, 0x40, 0x06, 0x50, 0x00, 0x01, 0xff, 0x46, 0x4b, 0x6a, - 0x44, 0xfb, 0x00, 0x44, 0xf2, 0xee, 0x4e, 0xfb, 0x40, 0x4c, 0xc5, 0x89, - 0x40, 0xfb, 0x40, 0x4c, 0xc5, 0x89, 0x3e, 0xfb, 0x40, 0x4c, 0xc5, 0x89, - 0x3c, 0xfb, 0x40, 0x06, 0x50, 0x00, 0x01, 0xff, 0x46, 0x4b, 0x6a, 0x3b, - 0xfb, 0x00, 0x44, 0xf2, 0xee, 0x4d, 0xfb, 0x40, 0x4b, 0x2a, 0x96, 0x34, - 0xfb, 0x00, 0xf4, 0xd7, 0x05, 0x40, 0x4c, 0xc5, 0x89, 0x32, 0xfb, 0x40, - 0x43, 0x5e, 0x50, 0xda, 0x05, 0x80, 0x1f, 0x43, 0x89, 0x05, 0xdd, 0x05, - 0x00, 0x43, 0x54, 0x22, 0xdf, 0x05, 0x00, 0x42, 0x6f, 0x02, 0xe3, 0x05, - 0x80, 0x06, 0x45, 0x5e, 0xe8, 0xe5, 0x05, 0x40, 0x4c, 0xc5, 0x89, 0x43, - 0xfb, 0x40, 0x4c, 0xc5, 0x89, 0x3a, 0xfb, 0x40, 0x4c, 0xc5, 0x89, 0x33, - 0xfb, 0x40, 0x06, 0x50, 0x00, 0x01, 0xff, 0x46, 0x4b, 0x6a, 0x31, 0xfb, - 0x00, 0x44, 0xf2, 0xee, 0x4c, 0xfb, 0x40, 0xac, 0x06, 0x43, 0xf7, 0x19, - 0xe2, 0x05, 0x40, 0x42, 0x69, 0x00, 0xd0, 0x05, 0x80, 0x11, 0x0a, 0x6d, - 0xaf, 0x01, 0xff, 0x44, 0xd5, 0x48, 0x20, 0xfb, 0x00, 0x49, 0x45, 0x70, - 0x29, 0xfb, 0x40, 0x06, 0x50, 0x00, 0x01, 0xff, 0x45, 0x55, 0x6a, 0x30, - 0xfb, 0x00, 0x45, 0x16, 0x89, 0x2e, 0xfb, 0x00, 0x46, 0x52, 0xdc, 0x2f, - 0xfb, 0x40, 0x4c, 0xb5, 0x8a, 0xa2, 0x05, 0x00, 0xa4, 0xcb, 0x01, 0x47, - 0x19, 0xce, 0x91, 0x05, 0x00, 0x03, 0x8c, 0x09, 0xad, 0x01, 0x44, 0x4e, - 0xed, 0xac, 0x05, 0x00, 0xad, 0x8b, 0x01, 0x43, 0x6e, 0x15, 0xab, 0x05, - 0x00, 0x02, 0x6c, 0x09, 0x75, 0x02, 0xf4, 0x13, 0x65, 0x45, 0xb3, 0x4e, - 0x97, 0x05, 0x00, 0xb3, 0x51, 0xb4, 0x31, 0x02, 0x4d, 0x00, 0x21, 0xba, - 0x01, 0xff, 0xa1, 0x06, 0x44, 0x56, 0xed, 0xae, 0x05, 0x40, 0x04, 0xe6, - 0xee, 0x06, 0x43, 0xf3, 0x13, 0x98, 0x05, 0x40, 0x45, 0x6d, 0xe3, 0x95, - 0x05, 0x00, 0x45, 0x63, 0xd5, 0x94, 0x05, 0x40, 0x4c, 0x59, 0x92, 0xaa, - 0x05, 0x00, 0x43, 0xa6, 0x05, 0x9a, 0x05, 0x40, 0xa5, 0x06, 0x45, 0x71, - 0xe4, 0x96, 0x05, 0x40, 0x06, 0xc6, 0xda, 0x06, 0x43, 0x5b, 0x23, 0x9b, - 0x05, 0x40, 0x46, 0xfe, 0xd8, 0xa0, 0x05, 0x00, 0x46, 0x58, 0xdc, 0xa9, - 0x05, 0x40, 0x44, 0xa6, 0xe7, 0x92, 0x05, 0x00, 0x49, 0x0c, 0xb7, 0x93, - 0x05, 0x40, 0x43, 0x53, 0xb3, 0xa8, 0x05, 0x00, 0x49, 0x52, 0xbc, 0x9f, - 0x05, 0x40, 0x44, 0x4a, 0xef, 0x99, 0x05, 0x00, 0x43, 0xa1, 0x1d, 0xa1, - 0x05, 0x40, 0x47, 0xdb, 0xcb, 0xa4, 0x05, 0x00, 0x45, 0x0e, 0xe3, 0xa5, - 0x05, 0x80, 0x06, 0x44, 0xd9, 0xcb, 0xa3, 0x05, 0x40, 0x47, 0x7d, 0xca, - 0xa6, 0x05, 0x40, 0x43, 0x28, 0x59, 0x9c, 0x05, 0x80, 0x06, 0x46, 0xca, - 0xdc, 0x9e, 0x05, 0x40, 0x47, 0xa7, 0xca, 0x9d, 0x05, 0x40, 0x44, 0xa4, - 0x4a, 0xa7, 0x05, 0x00, 0x43, 0xef, 0x50, 0xad, 0x05, 0x40, 0xa4, 0xdb, - 0x06, 0xb2, 0xaa, 0x06, 0x03, 0x04, 0x15, 0x01, 0xff, 0xa1, 0xf6, 0x05, - 0xa2, 0xb9, 0x05, 0xa3, 0x83, 0x05, 0xa4, 0xca, 0x04, 0xa5, 0x8a, 0x04, - 0xa6, 0xf1, 0x03, 0x4b, 0x9f, 0x5f, 0x1a, 0x27, 0x00, 0xa8, 0xdc, 0x03, - 0x54, 0xb3, 0x15, 0x79, 0xf6, 0x01, 0xac, 0x81, 0x03, 0xad, 0xf2, 0x02, - 0x06, 0xb4, 0x01, 0xc1, 0x02, 0xaf, 0xac, 0x02, 0x49, 0x45, 0x70, 0x95, - 0x27, 0x00, 0xb2, 0xf1, 0x01, 0xb3, 0x81, 0x01, 0xb4, 0x4d, 0x02, 0x50, - 0x02, 0x32, 0x4c, 0x32, 0x00, 0x5a, 0x27, 0x00, 0xb7, 0x01, 0xff, 0x5c, - 0x1e, 0x17, 0xbd, 0x27, 0x00, 0x05, 0xae, 0x02, 0x06, 0x5b, 0x4f, 0x1b, - 0x94, 0x27, 0x40, 0x46, 0xe7, 0x02, 0x87, 0xf7, 0x01, 0x56, 0xf1, 0x32, - 0xdb, 0x26, 0x00, 0x46, 0xab, 0x05, 0x91, 0xf7, 0xc1, 0x00, 0x63, 0x20, - 0x0a, 0x05, 0xce, 0x41, 0x69, 0x9a, 0x02, 0xae, 0x27, 0x00, 0x11, 0xe9, - 0x0b, 0x01, 0xff, 0x55, 0xd5, 0x01, 0x19, 0xf8, 0x01, 0x5b, 0xa0, 0x1b, - 0x1d, 0xf8, 0x41, 0x09, 0xd4, 0x0c, 0x17, 0x5f, 0x69, 0x06, 0x9e, 0x27, - 0x00, 0x0e, 0x45, 0x2b, 0x01, 0xff, 0x4a, 0x53, 0x2b, 0xd3, 0xf7, 0x01, - 0x4d, 0xd9, 0x12, 0xd4, 0xf7, 0x41, 0x57, 0xce, 0x2d, 0xbb, 0x27, 0x00, - 0x06, 0xdd, 0x0c, 0x01, 0xff, 0x48, 0xed, 0x0c, 0x3d, 0x27, 0x00, 0x51, - 0xc1, 0x5b, 0x43, 0x27, 0x40, 0xa1, 0x5f, 0x5a, 0xf4, 0x1e, 0x71, 0xf6, - 0x01, 0xa9, 0x36, 0x05, 0x00, 0x20, 0x06, 0x46, 0x85, 0xb2, 0x48, 0x27, - 0x40, 0x05, 0x25, 0x23, 0x11, 0x0e, 0x3a, 0x55, 0x01, 0xff, 0x43, 0xa7, - 0xcd, 0x65, 0xf6, 0x01, 0x49, 0x89, 0xbe, 0x5d, 0xf6, 0x41, 0x45, 0xce, - 0x00, 0x98, 0x27, 0x00, 0x09, 0x9c, 0x01, 0x01, 0xff, 0x43, 0xa7, 0xcd, - 0x67, 0xf6, 0x01, 0x49, 0x89, 0xbe, 0x5f, 0xf6, 0x41, 0x05, 0x07, 0x06, - 0x11, 0x02, 0xad, 0x04, 0x01, 0xff, 0x52, 0x4b, 0x2b, 0xcc, 0xf7, 0x01, - 0x4f, 0x4e, 0x1c, 0xb8, 0xf7, 0x41, 0x5d, 0xe8, 0x04, 0x5c, 0x27, 0x00, - 0x64, 0xd8, 0x09, 0x5b, 0x27, 0x40, 0x45, 0xa8, 0x18, 0xac, 0xf7, 0x01, - 0x5d, 0xaa, 0x15, 0x7b, 0xf6, 0x41, 0x04, 0xc9, 0x00, 0x06, 0x5c, 0x6e, - 0x18, 0x9c, 0x27, 0x40, 0x10, 0x3d, 0x0b, 0x18, 0x4b, 0xb8, 0x02, 0x99, - 0x27, 0xc0, 0x00, 0x06, 0x50, 0x00, 0x01, 0xff, 0x55, 0xd5, 0x01, 0x1a, - 0xf8, 0x01, 0x5b, 0xa0, 0x1b, 0x1e, 0xf8, 0x41, 0x50, 0x14, 0x09, 0x71, - 0x27, 0x00, 0x57, 0xee, 0x04, 0x6f, 0x27, 0x40, 0x50, 0x2a, 0x64, 0x1c, - 0x27, 0x00, 0x52, 0x04, 0x55, 0x2e, 0x27, 0x00, 0x54, 0x5b, 0x45, 0x56, - 0x2b, 0x40, 0x05, 0x25, 0x23, 0x11, 0x0e, 0x3a, 0x55, 0x01, 0xff, 0x43, - 0xa7, 0xcd, 0x64, 0xf6, 0x01, 0x49, 0x89, 0xbe, 0x5c, 0xf6, 0x41, 0x45, - 0xce, 0x00, 0x9a, 0x27, 0x00, 0x09, 0x9c, 0x01, 0x01, 0xff, 0x43, 0xa7, - 0xcd, 0x66, 0xf6, 0x01, 0x49, 0x89, 0xbe, 0x5e, 0xf6, 0x41, 0x49, 0x0c, - 0x6d, 0x96, 0x27, 0x00, 0x4f, 0xbb, 0x72, 0x16, 0x27, 0x40, 0xa1, 0x44, - 0x03, 0xc4, 0x00, 0x1f, 0x58, 0x75, 0x28, 0x73, 0xf6, 0x01, 0x02, 0xd1, - 0x00, 0x01, 0xff, 0x80, 0x06, 0x68, 0x9b, 0x02, 0xad, 0x27, 0x40, 0x64, - 0xe1, 0x04, 0x60, 0x27, 0x00, 0x64, 0x90, 0x09, 0x5f, 0x27, 0x40, 0x10, - 0x3d, 0x0b, 0x11, 0x11, 0xe9, 0x0b, 0x01, 0xff, 0x55, 0xd5, 0x01, 0x18, - 0xf8, 0x01, 0x5b, 0xa0, 0x1b, 0x1c, 0xf8, 0x41, 0x50, 0x14, 0x09, 0x70, - 0x27, 0x00, 0x57, 0xee, 0x04, 0x6e, 0x27, 0x40, 0x4a, 0xdd, 0xad, 0x55, - 0x2b, 0x00, 0x49, 0x25, 0x9c, 0x47, 0xf5, 0x41, 0x5e, 0x8c, 0x12, 0x63, - 0x27, 0x00, 0x4e, 0x77, 0x6c, 0x97, 0xfb, 0x41, 0x04, 0xa7, 0x05, 0x06, - 0x5b, 0x42, 0x1c, 0x24, 0x27, 0x40, 0x52, 0x4b, 0x2b, 0xca, 0xf7, 0x01, - 0x4f, 0x4e, 0x1c, 0xb2, 0xf7, 0x41, 0x05, 0xc9, 0x00, 0x17, 0x4a, 0xfa, - 0x12, 0xf0, 0xf7, 0x01, 0x10, 0xae, 0x00, 0x01, 0xff, 0x48, 0xfd, 0x04, - 0x62, 0x27, 0x00, 0x46, 0xeb, 0x07, 0x57, 0x27, 0x40, 0x08, 0x08, 0x08, - 0x0c, 0x4f, 0x4e, 0x1c, 0xbe, 0xf7, 0x01, 0x62, 0xd3, 0x0c, 0x4b, 0x27, - 0x40, 0x4a, 0x53, 0x2b, 0xcf, 0xf7, 0x01, 0x4d, 0xd9, 0x12, 0xd1, 0xf7, - 0x01, 0x56, 0xdd, 0x35, 0x38, 0x27, 0x40, 0x66, 0x62, 0x06, 0xa0, 0x27, - 0x00, 0x4c, 0xf3, 0x31, 0x97, 0x27, 0x00, 0xaf, 0x01, 0xff, 0x49, 0xdd, - 0x0d, 0xb2, 0xf4, 0x01, 0x05, 0x3d, 0x01, 0x11, 0x13, 0xe7, 0x0b, 0x01, - 0xff, 0x55, 0xd5, 0x01, 0x1b, 0xf8, 0x01, 0x5b, 0xa0, 0x1b, 0x1f, 0xf8, - 0x41, 0x5d, 0xe8, 0x04, 0x5e, 0x27, 0x00, 0x64, 0xd8, 0x09, 0x5d, 0x27, - 0x40, 0x02, 0xb0, 0x01, 0x23, 0x45, 0xe8, 0x02, 0x58, 0x2b, 0x80, 0x06, - 0x65, 0x01, 0x08, 0xa8, 0x27, 0x40, 0x06, 0x50, 0x00, 0x06, 0x49, 0x41, - 0xb5, 0x59, 0x2b, 0x40, 0x4d, 0xea, 0x7f, 0x57, 0x2b, 0x00, 0x59, 0xb9, - 0x25, 0xe3, 0x26, 0x40, 0x47, 0xd4, 0x07, 0x14, 0x27, 0x00, 0x4e, 0x30, - 0x7d, 0x46, 0x27, 0x40, 0x47, 0xe9, 0xcb, 0x18, 0x27, 0x00, 0x04, 0xe2, - 0x02, 0x01, 0xff, 0x80, 0x17, 0x0b, 0x9f, 0x19, 0x01, 0xff, 0x50, 0x1f, - 0x23, 0xb9, 0x27, 0x00, 0x50, 0xb3, 0x02, 0xb8, 0x27, 0x00, 0x50, 0x83, - 0x3f, 0xb7, 0x27, 0x40, 0x07, 0x6f, 0x40, 0x06, 0x45, 0x24, 0x21, 0x64, - 0x27, 0x40, 0x5e, 0x6e, 0x12, 0xa5, 0x27, 0x00, 0x5c, 0x32, 0x19, 0xa6, - 0x27, 0x40, 0x51, 0x2e, 0x3d, 0x74, 0xf6, 0x01, 0x11, 0xd5, 0x4e, 0x06, - 0x47, 0xee, 0x0c, 0x31, 0x27, 0x40, 0x43, 0xbf, 0x0a, 0x9c, 0xf8, 0x81, - 0x06, 0x4a, 0x03, 0xb0, 0x9d, 0xf8, 0x41, 0x80, 0x01, 0xff, 0x44, 0x22, - 0x00, 0x9e, 0xf8, 0x01, 0x45, 0x63, 0x73, 0x9f, 0xf8, 0x41, 0x4f, 0xa7, - 0x68, 0x49, 0xf6, 0x01, 0x02, 0xc6, 0x00, 0x01, 0xff, 0x4a, 0x65, 0x95, - 0x9f, 0xf4, 0x01, 0x45, 0x2c, 0x0e, 0xf6, 0xfa, 0x01, 0x05, 0x51, 0x00, - 0x01, 0xff, 0x45, 0xce, 0x00, 0x98, 0xf4, 0x01, 0x46, 0x42, 0x84, 0x9d, - 0xf4, 0x01, 0x4f, 0x43, 0x72, 0x94, 0xf3, 0x41, 0x45, 0x4a, 0x3c, 0xa7, - 0xf3, 0x01, 0x45, 0x30, 0xb8, 0xa6, 0xfa, 0xc1, 0x00, 0x51, 0xb6, 0x55, - 0xfc, 0x26, 0x40, 0x43, 0x55, 0x27, 0xe1, 0x2b, 0x00, 0x02, 0x46, 0x00, - 0x9a, 0x24, 0x08, 0x22, 0xc5, 0xe1, 0x1e, 0xad, 0xad, 0x1e, 0xae, 0xd8, - 0x01, 0x5b, 0x78, 0x1c, 0x4b, 0xf6, 0x01, 0xb2, 0xc5, 0x01, 0xb4, 0x06, - 0x44, 0x41, 0xa7, 0x7b, 0xf7, 0x41, 0x4b, 0x0e, 0x98, 0x23, 0xf4, 0x01, - 0x04, 0x6b, 0xcf, 0x01, 0xff, 0x07, 0xc1, 0x05, 0x27, 0x07, 0x2f, 0x39, - 0x01, 0xff, 0x44, 0x31, 0x11, 0xfc, 0x08, 0x01, 0x43, 0xbf, 0x0a, 0xfb, - 0x08, 0x81, 0x0f, 0xb4, 0x01, 0xff, 0x42, 0x92, 0x01, 0xfd, 0x08, 0x01, - 0x45, 0xde, 0x2b, 0xfe, 0x08, 0x41, 0x48, 0x21, 0x11, 0xff, 0x08, 0x41, - 0xa1, 0x79, 0x44, 0x0a, 0xec, 0xe1, 0x08, 0x01, 0x4b, 0xa8, 0x98, 0xe3, - 0x08, 0x01, 0x45, 0xa1, 0xa8, 0xe2, 0x08, 0x01, 0x42, 0xb0, 0x01, 0xe4, - 0x08, 0x81, 0x5a, 0x44, 0x8e, 0xed, 0xea, 0x08, 0x01, 0x46, 0x9c, 0xda, - 0xeb, 0x08, 0x01, 0x43, 0x89, 0x05, 0xec, 0x08, 0x01, 0x43, 0x54, 0x22, - 0xed, 0x08, 0x01, 0x42, 0x6f, 0x02, 0xf0, 0x08, 0x01, 0x44, 0xae, 0xc5, - 0xf2, 0x08, 0x01, 0xb3, 0x20, 0xb4, 0x12, 0x43, 0xc0, 0x88, 0xe5, 0x08, - 0x01, 0x44, 0x58, 0x51, 0xe9, 0x08, 0x01, 0x44, 0x06, 0xf0, 0xe6, 0x08, - 0x41, 0x42, 0x9a, 0x43, 0xf5, 0x08, 0x01, 0x43, 0x39, 0x25, 0xe8, 0x08, - 0x41, 0xa1, 0x06, 0x43, 0x0e, 0x16, 0xf4, 0x08, 0x41, 0x43, 0x89, 0xe7, - 0xf1, 0x08, 0x01, 0x44, 0x39, 0xe1, 0xee, 0x08, 0x41, 0x42, 0x53, 0x00, - 0xe7, 0x08, 0x41, 0x44, 0x48, 0x3c, 0xe0, 0x08, 0x01, 0x42, 0x61, 0x1c, - 0xef, 0x08, 0x41, 0x46, 0xea, 0xd7, 0xb4, 0xf5, 0x01, 0xf0, 0x89, 0xfa, - 0x41, 0xa4, 0xab, 0x1c, 0xa7, 0xce, 0x03, 0x0d, 0x5a, 0x82, 0x82, 0x01, - 0x05, 0xb8, 0xe8, 0x01, 0xff, 0x07, 0xc1, 0x05, 0x13, 0x4d, 0xf9, 0x86, - 0x34, 0x17, 0x00, 0x0b, 0xd1, 0x75, 0x01, 0xff, 0xe9, 0x32, 0x17, 0x00, - 0xf5, 0x33, 0x17, 0x40, 0xe1, 0x20, 0x17, 0x00, 0x42, 0x16, 0x00, 0x2a, - 0x17, 0x00, 0x42, 0xa1, 0x10, 0x27, 0x17, 0x00, 0x42, 0x24, 0x02, 0x24, - 0x17, 0x00, 0x42, 0x22, 0x00, 0x31, 0x17, 0x00, 0xe9, 0x21, 0x17, 0x00, - 0x42, 0x1b, 0x02, 0x23, 0x17, 0x00, 0x42, 0x74, 0x00, 0x2e, 0x17, 0x00, - 0x42, 0x6c, 0x00, 0x2b, 0x17, 0x00, 0xae, 0x28, 0x42, 0x6c, 0x09, 0x29, - 0x17, 0x00, 0x42, 0x71, 0x00, 0x2d, 0x17, 0x00, 0x42, 0x15, 0x06, 0x30, - 0x17, 0x00, 0x42, 0x12, 0x00, 0x26, 0x17, 0x00, 0xf5, 0x22, 0x17, 0x00, - 0x42, 0xa9, 0x01, 0x2f, 0x17, 0x00, 0x42, 0x34, 0x22, 0x2c, 0x17, 0x40, - 0xe1, 0x28, 0x17, 0x00, 0x42, 0x24, 0x02, 0x25, 0x17, 0x40, 0x06, 0xc4, - 0x06, 0x80, 0x02, 0x07, 0xc1, 0x05, 0x4a, 0x05, 0xb9, 0x00, 0x3a, 0x05, - 0x2f, 0x03, 0x19, 0x06, 0x6c, 0x38, 0x01, 0xff, 0xe1, 0x1d, 0x0d, 0x01, - 0xe5, 0x20, 0x0d, 0x01, 0xe9, 0x1e, 0x0d, 0x01, 0xef, 0x21, 0x0d, 0x01, - 0xf5, 0x1f, 0x0d, 0x41, 0x48, 0x12, 0xc4, 0x24, 0x0d, 0x01, 0x02, 0x12, - 0x00, 0x01, 0xff, 0x44, 0x71, 0x7b, 0x25, 0x0d, 0x01, 0x42, 0xff, 0x04, - 0x26, 0x0d, 0x01, 0x43, 0x5f, 0x08, 0x27, 0x0d, 0x41, 0x49, 0xc1, 0xb9, - 0x23, 0x0d, 0x01, 0x45, 0x8c, 0xe7, 0x22, 0x0d, 0x41, 0xe1, 0x00, 0x0d, - 0x01, 0x42, 0x16, 0x00, 0x01, 0x0d, 0x01, 0x42, 0x37, 0x00, 0x06, 0x0d, - 0x01, 0xa4, 0x95, 0x01, 0x42, 0xe1, 0x07, 0x09, 0x0d, 0x01, 0x42, 0x24, - 0x02, 0x12, 0x0d, 0x01, 0x42, 0x22, 0x00, 0x07, 0x0d, 0x01, 0x42, 0xbd, - 0x26, 0x05, 0x0d, 0x01, 0xab, 0x60, 0x42, 0x74, 0x00, 0x13, 0x0d, 0x01, - 0x42, 0x6c, 0x00, 0x14, 0x0d, 0x01, 0xae, 0x42, 0x42, 0x6c, 0x09, 0x02, - 0x0d, 0x01, 0xb2, 0x30, 0xb3, 0x24, 0xb4, 0x18, 0x42, 0xa6, 0x0a, 0x1c, - 0x0d, 0x01, 0x42, 0xa9, 0x01, 0x16, 0x0d, 0x01, 0x42, 0x34, 0x22, 0x18, - 0x0d, 0x01, 0x42, 0x59, 0x00, 0x0e, 0x0d, 0x41, 0xe1, 0x03, 0x0d, 0x01, - 0x42, 0x12, 0x00, 0x04, 0x0d, 0x41, 0xe1, 0x0f, 0x0d, 0x01, 0x42, 0x22, - 0x00, 0x10, 0x0d, 0x41, 0xe1, 0x0c, 0x0d, 0x01, 0x42, 0x71, 0x00, 0x0d, - 0x0d, 0x41, 0xe1, 0x15, 0x0d, 0x01, 0x42, 0x24, 0x02, 0x1a, 0x0d, 0x01, - 0x42, 0x34, 0x22, 0x1b, 0x0d, 0x41, 0xe1, 0x11, 0x0d, 0x01, 0x42, 0x22, - 0x00, 0x08, 0x0d, 0x01, 0x05, 0x67, 0xe4, 0x01, 0xff, 0x42, 0xa9, 0x01, - 0x17, 0x0d, 0x01, 0x42, 0x34, 0x22, 0x19, 0x0d, 0x41, 0xe1, 0x0a, 0x0d, - 0x01, 0x42, 0xa1, 0x10, 0x0b, 0x0d, 0x41, 0x45, 0xc3, 0x0a, 0x38, 0x0d, - 0x01, 0xa6, 0x2e, 0x44, 0x46, 0x2a, 0x39, 0x0d, 0x01, 0x43, 0xbf, 0x0a, - 0x31, 0x0d, 0x01, 0xb3, 0x14, 0xb4, 0x06, 0x44, 0xa1, 0x1d, 0x30, 0x0d, - 0x41, 0x44, 0x25, 0x01, 0x33, 0x0d, 0x01, 0x42, 0x15, 0x02, 0x32, 0x0d, - 0x41, 0x44, 0x27, 0x1d, 0x37, 0x0d, 0x01, 0x42, 0x60, 0x25, 0x36, 0x0d, - 0x41, 0x43, 0xa7, 0x05, 0x35, 0x0d, 0x01, 0x43, 0xcb, 0x06, 0x34, 0x0d, - 0x41, 0x03, 0x40, 0x54, 0x57, 0x0d, 0x28, 0x89, 0x01, 0xff, 0x45, 0xc3, - 0x0a, 0x28, 0x30, 0x00, 0xa6, 0x3e, 0x44, 0x46, 0x2a, 0x29, 0x30, 0x00, - 0x43, 0xbf, 0x0a, 0x21, 0x30, 0x00, 0xb3, 0x24, 0xb4, 0x01, 0xff, 0x42, - 0x92, 0x01, 0x38, 0x30, 0x00, 0xa8, 0x0d, 0xb7, 0x01, 0xff, 0x44, 0x29, - 0x1d, 0x39, 0x30, 0x00, 0xef, 0x22, 0x30, 0x40, 0x44, 0x2c, 0x11, 0x3a, - 0x30, 0x00, 0x43, 0x26, 0x01, 0x23, 0x30, 0x40, 0x44, 0x27, 0x1d, 0x27, - 0x30, 0x00, 0x42, 0x60, 0x25, 0x26, 0x30, 0x40, 0x43, 0xa7, 0x05, 0x25, - 0x30, 0x00, 0x43, 0xcb, 0x06, 0x24, 0x30, 0x40, 0x09, 0xe7, 0xb4, 0xf4, - 0x10, 0x54, 0xab, 0x40, 0x2f, 0x30, 0x00, 0x46, 0x11, 0x81, 0x64, 0x31, - 0x00, 0xaa, 0xef, 0x04, 0x07, 0xc1, 0x05, 0x0f, 0xb3, 0x01, 0xff, 0x53, - 0x2c, 0x49, 0x2e, 0x30, 0x00, 0x48, 0xaf, 0x17, 0x00, 0xd8, 0x40, 0xe1, - 0x4f, 0x31, 0x80, 0xc7, 0x04, 0xa3, 0xb8, 0x04, 0xe5, 0x54, 0x31, 0x80, - 0xaa, 0x04, 0x45, 0x35, 0xa3, 0x4e, 0x31, 0x00, 0xe9, 0x63, 0x31, 0x80, - 0x98, 0x04, 0xab, 0xe4, 0x03, 0x45, 0x8e, 0xe5, 0x41, 0x31, 0x80, 0xc5, - 0x03, 0x45, 0xfc, 0xe5, 0x34, 0x31, 0x80, 0x9c, 0x03, 0xef, 0x57, 0x31, - 0x80, 0x92, 0x03, 0xb0, 0xc8, 0x02, 0x45, 0x41, 0xe7, 0x39, 0x31, 0x80, - 0xef, 0x01, 0xb3, 0x8f, 0x01, 0xb4, 0x80, 0x01, 0xf5, 0x5c, 0x31, 0x00, - 0xb7, 0x64, 0xb9, 0x01, 0xff, 0xe1, 0x51, 0x31, 0x80, 0x58, 0xe5, 0x56, - 0x31, 0x80, 0x32, 0xe9, 0x62, 0x31, 0x00, 0xef, 0x5b, 0x31, 0x80, 0x17, - 0xf5, 0x60, 0x31, 0xc0, 0x00, 0x8d, 0x01, 0xff, 0xe9, 0x8c, 0x31, 0x00, - 0x42, 0x4d, 0x00, 0x8b, 0x31, 0xc0, 0x00, 0xef, 0x8a, 0x31, 0x40, 0x8d, - 0x01, 0xff, 0xe9, 0x89, 0x31, 0x00, 0x42, 0x34, 0x22, 0x87, 0x31, 0xc0, - 0x00, 0xe5, 0x88, 0x31, 0x40, 0xef, 0x55, 0x31, 0x80, 0x16, 0x46, 0x24, - 0xca, 0x81, 0x31, 0xc0, 0x00, 0x8d, 0x01, 0xff, 0x47, 0xae, 0xd1, 0x83, - 0x31, 0x00, 0x44, 0xf0, 0xbc, 0x82, 0x31, 0x40, 0x48, 0x32, 0xa3, 0x86, - 0x31, 0x40, 0xe5, 0x52, 0x31, 0x40, 0xe1, 0x58, 0x31, 0x80, 0x0d, 0xe5, - 0x5e, 0x31, 0x80, 0x04, 0xe9, 0x5f, 0x31, 0x40, 0xef, 0x5d, 0x31, 0x40, - 0xe5, 0x59, 0x31, 0x40, 0x46, 0x8b, 0xd3, 0x4c, 0x31, 0x00, 0x45, 0x20, - 0xcb, 0x37, 0x31, 0x40, 0x43, 0x16, 0x41, 0x45, 0x31, 0x80, 0x35, 0x04, - 0x74, 0x2c, 0x01, 0xff, 0x45, 0x37, 0xe2, 0x49, 0x31, 0x00, 0x45, 0x35, - 0xa3, 0x85, 0x31, 0x00, 0x45, 0x68, 0xc9, 0x80, 0x31, 0x00, 0x46, 0xb6, - 0xa0, 0x32, 0x31, 0x00, 0x45, 0xfc, 0xe5, 0x65, 0x31, 0x00, 0x45, 0x32, - 0x83, 0x43, 0x31, 0x00, 0x44, 0xf0, 0xbc, 0x46, 0x31, 0x00, 0x46, 0x1f, - 0xcb, 0x38, 0x31, 0x40, 0x8d, 0x01, 0xff, 0x45, 0x37, 0xe2, 0x7e, 0x31, - 0x00, 0x46, 0xb6, 0xa0, 0x7a, 0x31, 0x00, 0x45, 0xfc, 0xe5, 0x7b, 0x31, - 0x00, 0x45, 0x32, 0x83, 0x7d, 0x31, 0x00, 0x46, 0x1f, 0xcb, 0x7c, 0x31, - 0x40, 0x8d, 0x01, 0xff, 0x45, 0x35, 0xa3, 0x40, 0x31, 0x00, 0x46, 0xb6, - 0xa0, 0x3a, 0x31, 0x80, 0x3b, 0x45, 0x8e, 0xe5, 0x3b, 0x31, 0x00, 0xb0, - 0x1a, 0x44, 0xf0, 0xbc, 0x3d, 0x31, 0x00, 0xb4, 0x06, 0x4b, 0x2f, 0xa3, - 0x6d, 0x31, 0x40, 0x46, 0x8b, 0xd3, 0x3e, 0x31, 0x00, 0x45, 0x20, 0xcb, - 0x6a, 0x31, 0x40, 0x46, 0xaf, 0xd1, 0x6c, 0x31, 0x00, 0x46, 0x4c, 0xc0, - 0x3f, 0x31, 0x00, 0x44, 0x33, 0x83, 0x3c, 0x31, 0xc0, 0x00, 0x45, 0xea, - 0xde, 0x6b, 0x31, 0x40, 0x45, 0xea, 0xde, 0x69, 0x31, 0x40, 0x46, 0xaf, - 0xd1, 0x7f, 0x31, 0x00, 0x46, 0x4c, 0xc0, 0x4d, 0x31, 0x00, 0x44, 0x33, - 0x83, 0x42, 0x31, 0xc0, 0x00, 0x8d, 0x01, 0xff, 0x45, 0x37, 0xe2, 0x76, - 0x31, 0x00, 0x46, 0xb6, 0xa0, 0x72, 0x31, 0x00, 0x44, 0xf0, 0xbc, 0x44, - 0x31, 0x80, 0x0f, 0xb4, 0x01, 0xff, 0x46, 0x8b, 0xd3, 0x77, 0x31, 0x00, - 0x45, 0x20, 0xcb, 0x73, 0x31, 0x40, 0x8d, 0x01, 0xff, 0x46, 0xb6, 0xa0, - 0x74, 0x31, 0x00, 0x46, 0x1f, 0xcb, 0x75, 0x31, 0x40, 0xe5, 0x5a, 0x31, - 0x40, 0x8d, 0x01, 0xff, 0x45, 0x37, 0xe2, 0x35, 0x31, 0x00, 0x45, 0x35, - 0xa3, 0x36, 0x31, 0x00, 0x47, 0xae, 0xd1, 0x68, 0x31, 0x00, 0x44, 0xf0, - 0xbc, 0x67, 0x31, 0x00, 0x46, 0x1f, 0xcb, 0x66, 0x31, 0x40, 0x8d, 0x01, - 0xff, 0xb0, 0x06, 0x44, 0xf0, 0xbc, 0x6f, 0x31, 0x40, 0x46, 0xaf, 0xd1, - 0x70, 0x31, 0x00, 0x44, 0x33, 0x83, 0x6e, 0x31, 0x40, 0x07, 0x2b, 0x83, - 0x13, 0x46, 0x44, 0xc0, 0x4b, 0x31, 0x00, 0x45, 0xb7, 0xa0, 0x31, 0x31, - 0xc0, 0x00, 0x45, 0xea, 0xde, 0x33, 0x31, 0x40, 0x45, 0x8e, 0xe5, 0x71, - 0x31, 0x00, 0xb0, 0x06, 0x4a, 0xf5, 0xae, 0x79, 0x31, 0x40, 0x46, 0x4c, - 0xc0, 0x84, 0x31, 0x00, 0x44, 0x33, 0x83, 0x78, 0x31, 0x40, 0x44, 0x69, - 0xc9, 0x47, 0x31, 0x40, 0xef, 0x53, 0x31, 0x00, 0xf5, 0x61, 0x31, 0x40, - 0x46, 0x17, 0xcd, 0x4a, 0x31, 0x00, 0x44, 0x18, 0xcd, 0x48, 0x31, 0x40, - 0xe5, 0x50, 0x31, 0x00, 0x44, 0xf1, 0xae, 0x8d, 0x31, 0xc0, 0x00, 0xe5, - 0x8e, 0x31, 0x40, 0x09, 0xd8, 0xba, 0xfb, 0x03, 0x09, 0xd5, 0xbd, 0x01, - 0xff, 0xe1, 0x61, 0x11, 0x80, 0xbd, 0x03, 0xe5, 0x66, 0x11, 0x80, 0x80, - 0x03, 0x46, 0x11, 0x81, 0x60, 0x11, 0x00, 0xe9, 0x75, 0x11, 0x80, 0xaa, - 0x02, 0xef, 0x69, 0x11, 0x80, 0xf1, 0x01, 0x4a, 0xeb, 0xae, 0xa2, 0x11, - 0x00, 0xf5, 0x6e, 0x11, 0x80, 0xbe, 0x01, 0xb7, 0xa5, 0x01, 0xb9, 0x01, - 0xff, 0xe1, 0x63, 0x11, 0x80, 0x88, 0x01, 0xe5, 0x68, 0x11, 0x80, 0x6d, - 0xe9, 0x74, 0x11, 0x80, 0x62, 0xef, 0x6d, 0x11, 0x80, 0x31, 0xf5, 0x72, - 0x11, 0xc0, 0x00, 0x8d, 0x01, 0xff, 0xe1, 0x8e, 0x11, 0x80, 0x20, 0xe5, - 0x90, 0x11, 0x80, 0x17, 0xe9, 0x94, 0x11, 0x00, 0xef, 0xb8, 0xd7, 0x00, - 0xf5, 0x93, 0x11, 0x00, 0x42, 0x4d, 0x00, 0x92, 0x11, 0xc0, 0x00, 0xef, - 0x91, 0x11, 0x40, 0xef, 0x8f, 0x11, 0x40, 0xe5, 0xb7, 0xd7, 0x40, 0x8d, - 0x01, 0xff, 0xe1, 0xb2, 0xd7, 0x80, 0x20, 0x42, 0xf1, 0x0a, 0xb4, 0xd7, - 0x00, 0xe9, 0x88, 0x11, 0x00, 0xef, 0x87, 0x11, 0x00, 0xb9, 0x01, 0xff, - 0xe1, 0x84, 0x11, 0x80, 0x06, 0x42, 0xf1, 0x0a, 0x86, 0x11, 0x40, 0xe5, - 0x85, 0x11, 0x40, 0xe5, 0xb3, 0xd7, 0x40, 0x42, 0x64, 0x08, 0x97, 0x11, - 0x40, 0xef, 0x67, 0x11, 0xc0, 0x00, 0x8d, 0x01, 0xff, 0xef, 0x7d, 0x11, - 0x00, 0xf5, 0x7e, 0x11, 0x00, 0x42, 0x34, 0x22, 0xa5, 0x11, 0x40, 0x8d, - 0x04, 0xe5, 0x64, 0x11, 0x40, 0xef, 0x78, 0x11, 0x00, 0xf5, 0xa4, 0x11, - 0x00, 0x42, 0x60, 0x46, 0x79, 0x11, 0x40, 0xe1, 0x6a, 0x11, 0x80, 0x0d, - 0xe5, 0x70, 0x11, 0x80, 0x04, 0xe9, 0x71, 0x11, 0x40, 0xef, 0x6f, 0x11, - 0x40, 0xe5, 0x6b, 0x11, 0x40, 0x8d, 0x01, 0xff, 0xe1, 0x89, 0x11, 0x80, - 0x1b, 0x45, 0xff, 0xe2, 0x8b, 0x11, 0x00, 0x43, 0x02, 0xf1, 0xb6, 0xd7, - 0x00, 0xf5, 0x8d, 0x11, 0x00, 0x42, 0x4d, 0x00, 0x8c, 0x11, 0xc0, 0x00, - 0xef, 0xb5, 0xd7, 0x40, 0xe5, 0x8a, 0x11, 0x40, 0x8d, 0x04, 0xe5, 0x6c, - 0x11, 0x40, 0xe5, 0x80, 0x11, 0x80, 0x24, 0xef, 0x82, 0x11, 0x80, 0x19, - 0xf5, 0x83, 0x11, 0x00, 0xb9, 0x01, 0xff, 0xe1, 0xa6, 0x11, 0x80, 0x09, - 0xe5, 0x81, 0x11, 0xc0, 0x00, 0xef, 0xb0, 0xd7, 0x40, 0xe5, 0xa7, 0x11, - 0x40, 0x42, 0xbd, 0x06, 0xb1, 0xd7, 0x40, 0xef, 0x7f, 0x11, 0x40, 0x8d, - 0x01, 0xff, 0xe1, 0x98, 0x11, 0x80, 0x3c, 0x42, 0x97, 0x02, 0x9c, 0x11, - 0x00, 0xe9, 0xc4, 0xd7, 0x00, 0xef, 0x9a, 0x11, 0x80, 0x27, 0xf5, 0x9b, - 0x11, 0x00, 0xb9, 0x01, 0xff, 0xe1, 0x99, 0x11, 0x80, 0x11, 0xe5, 0xc0, - 0xd7, 0x80, 0x08, 0xef, 0xc2, 0xd7, 0x00, 0xf5, 0xc3, 0xd7, 0x40, 0xef, - 0xbf, 0xd7, 0x40, 0x42, 0xad, 0x20, 0xbd, 0xd7, 0x00, 0xe5, 0xbe, 0xd7, - 0x40, 0x42, 0xbd, 0x06, 0xc1, 0xd7, 0x40, 0x44, 0xf1, 0xae, 0x9d, 0x11, - 0x40, 0xef, 0x65, 0x11, 0x80, 0x21, 0xf5, 0x73, 0x11, 0xc0, 0x00, 0x8d, - 0x01, 0xff, 0xe1, 0xb9, 0xd7, 0x00, 0xe5, 0xbb, 0xd7, 0x80, 0x08, 0xef, - 0xbc, 0xd7, 0x00, 0xf5, 0x95, 0x11, 0x40, 0xef, 0xba, 0xd7, 0x00, 0xf5, - 0x96, 0x11, 0x40, 0x8d, 0x01, 0xff, 0x42, 0x97, 0x02, 0x7c, 0x11, 0x00, - 0xef, 0x7a, 0x11, 0x00, 0xf5, 0x7b, 0x11, 0x40, 0x8d, 0x23, 0xe5, 0x62, - 0x11, 0x00, 0x44, 0xf1, 0xae, 0x9e, 0x11, 0xc0, 0x00, 0x8d, 0x01, 0xff, - 0xe1, 0xc5, 0xd7, 0x00, 0xe5, 0xc6, 0xd7, 0x80, 0x08, 0xe9, 0xa1, 0x11, - 0x00, 0xf5, 0xa0, 0x11, 0x40, 0xef, 0x9f, 0x11, 0x40, 0x42, 0x97, 0x02, - 0xa3, 0x11, 0x00, 0xef, 0x76, 0x11, 0x00, 0xf5, 0x77, 0x11, 0x40, 0xa3, - 0xd7, 0x07, 0x45, 0x35, 0xa3, 0xc2, 0x11, 0x80, 0xb4, 0x07, 0x45, 0x68, - 0xc9, 0xbc, 0x11, 0x80, 0x95, 0x07, 0xab, 0xb3, 0x06, 0x45, 0x8e, 0xe5, - 0xb7, 0x11, 0x80, 0xd3, 0x05, 0x45, 0xfc, 0xe5, 0xab, 0x11, 0x80, 0x8d, - 0x05, 0xb0, 0x8e, 0x04, 0x45, 0x41, 0xe7, 0xaf, 0x11, 0x80, 0xc0, 0x02, - 0xb3, 0x89, 0x01, 0xb4, 0x44, 0x02, 0x4d, 0x00, 0x01, 0xff, 0x49, 0x31, - 0xa3, 0xf9, 0x11, 0x00, 0x46, 0x24, 0xca, 0xf0, 0x11, 0xc0, 0x00, 0x8d, - 0x01, 0xff, 0x45, 0x35, 0xa3, 0xf6, 0xd7, 0x00, 0xab, 0x1b, 0x45, 0x8e, - 0xe5, 0xf5, 0xd7, 0x00, 0x47, 0xae, 0xd1, 0xf2, 0x11, 0x00, 0xb3, 0x01, - 0xff, 0x43, 0x16, 0x41, 0xf1, 0x11, 0x00, 0x4a, 0xb2, 0xa0, 0xed, 0x11, - 0x40, 0x46, 0x44, 0xc0, 0xef, 0x11, 0x00, 0x45, 0xb7, 0xa0, 0xec, 0x11, - 0x40, 0x46, 0x8b, 0xd3, 0xc0, 0x11, 0x00, 0x45, 0x20, 0xcb, 0xae, 0x11, - 0xc0, 0x00, 0x8d, 0x01, 0xff, 0xa3, 0x25, 0x46, 0xb6, 0xa0, 0xca, 0x11, - 0x00, 0x45, 0x32, 0x83, 0xcf, 0xd7, 0x00, 0x45, 0x41, 0xe7, 0xcb, 0x11, - 0x00, 0x44, 0xf0, 0xbc, 0xd0, 0xd7, 0x80, 0x06, 0x47, 0x8a, 0xd3, 0xd4, - 0xd7, 0x40, 0x47, 0xfb, 0xca, 0xd1, 0xd7, 0x40, 0x46, 0x17, 0xcd, 0xd3, - 0xd7, 0x00, 0x44, 0x18, 0xcd, 0xd2, 0xd7, 0x40, 0x43, 0x16, 0x41, 0xba, - 0x11, 0x80, 0x5f, 0x04, 0x74, 0x2c, 0x01, 0xff, 0x45, 0x37, 0xe2, 0xf9, - 0xd7, 0x00, 0x45, 0x68, 0xc9, 0xee, 0x11, 0x00, 0x46, 0xb6, 0xa0, 0xa9, - 0x11, 0x00, 0x45, 0x8e, 0xe5, 0xe0, 0xd7, 0x00, 0x45, 0xfc, 0xe5, 0xff, - 0x11, 0x00, 0x45, 0x32, 0x83, 0xe6, 0xd7, 0x00, 0x45, 0x41, 0xe7, 0xd0, - 0x11, 0x80, 0x29, 0x44, 0xf0, 0xbc, 0xbb, 0x11, 0x80, 0x13, 0x46, 0x1f, - 0xcb, 0xcd, 0xd7, 0x80, 0x06, 0x48, 0x22, 0xca, 0xee, 0x11, 0x40, 0x46, - 0x86, 0xd5, 0xce, 0xd7, 0x40, 0x8d, 0x01, 0xff, 0x46, 0xb6, 0xa0, 0xec, - 0xd7, 0x00, 0x46, 0x1f, 0xcb, 0xed, 0xd7, 0x40, 0x48, 0x42, 0xc0, 0xd7, - 0xd7, 0x40, 0x8d, 0x01, 0xff, 0xa3, 0x3d, 0x45, 0x35, 0xa3, 0xf2, 0xd7, - 0x00, 0xab, 0x29, 0x45, 0x8e, 0xe5, 0xea, 0xd7, 0x00, 0xb0, 0x15, 0x45, - 0x41, 0xe7, 0xe9, 0x11, 0x00, 0xb4, 0x01, 0xff, 0x46, 0x8b, 0xd3, 0xf1, - 0xd7, 0x00, 0x45, 0x20, 0xcb, 0xe8, 0x11, 0x40, 0x46, 0xaf, 0xd1, 0xee, - 0xd7, 0x00, 0x44, 0x33, 0x83, 0xea, 0x11, 0x40, 0x4c, 0x2b, 0x83, 0xeb, - 0xd7, 0x00, 0x45, 0xb7, 0xa0, 0xe7, 0x11, 0x40, 0x46, 0x17, 0xcd, 0xf0, - 0xd7, 0x00, 0x44, 0x18, 0xcd, 0xef, 0xd7, 0x40, 0x8d, 0x01, 0xff, 0x45, - 0x35, 0xa3, 0xb6, 0x11, 0x00, 0xab, 0x98, 0x01, 0x45, 0x8e, 0xe5, 0xb1, - 0x11, 0x80, 0x7c, 0x45, 0xfc, 0xe5, 0xcd, 0x11, 0x00, 0xb0, 0x46, 0xb3, - 0x2d, 0xb4, 0x18, 0x02, 0x4d, 0x00, 0x01, 0xff, 0x49, 0x31, 0xa3, 0xd9, - 0x11, 0x80, 0x06, 0x46, 0x24, 0xca, 0xdb, 0xd7, 0x40, 0x46, 0x7a, 0xd5, - 0xdc, 0xd7, 0x40, 0x46, 0x8b, 0xd3, 0xb4, 0x11, 0x00, 0x45, 0x20, 0xcb, - 0xce, 0x11, 0xc0, 0x00, 0x46, 0x7a, 0xd5, 0xcf, 0x11, 0x40, 0x43, 0x16, - 0x41, 0xb3, 0x11, 0x00, 0x04, 0x74, 0x2c, 0x01, 0xff, 0x46, 0xb6, 0xa0, - 0xd5, 0xd7, 0x00, 0x44, 0xf0, 0xbc, 0xd6, 0x11, 0x40, 0x46, 0xaf, 0xd1, - 0xd7, 0x11, 0x00, 0x46, 0x4c, 0xc0, 0xb5, 0x11, 0x00, 0x44, 0x33, 0x83, - 0xb2, 0x11, 0xc0, 0x00, 0x8d, 0x01, 0xff, 0x45, 0x35, 0xa3, 0xd4, 0x11, - 0x00, 0x47, 0x4b, 0xc0, 0xda, 0xd7, 0x00, 0x44, 0xf0, 0xbc, 0xd3, 0x11, - 0x00, 0x46, 0x1f, 0xcb, 0xd9, 0xd7, 0x40, 0x8d, 0x01, 0xff, 0x45, 0x35, - 0xa3, 0xd8, 0xd7, 0x00, 0x46, 0xb6, 0xa0, 0xd1, 0x11, 0x00, 0x44, 0xf0, - 0xbc, 0xd2, 0x11, 0x40, 0x4c, 0x2b, 0x83, 0xd5, 0x11, 0x00, 0x46, 0x44, - 0xc0, 0xd8, 0x11, 0x00, 0x45, 0xb7, 0xa0, 0xb0, 0x11, 0xc0, 0x00, 0x8d, - 0x01, 0xff, 0x45, 0x35, 0xa3, 0xd6, 0xd7, 0x00, 0x44, 0xf0, 0xbc, 0xcc, - 0x11, 0x40, 0x46, 0xaf, 0xd1, 0xeb, 0x11, 0x80, 0x66, 0x46, 0x4c, 0xc0, - 0xc1, 0x11, 0x80, 0x4a, 0x44, 0x33, 0x83, 0xb8, 0x11, 0xc0, 0x00, 0x8d, - 0x01, 0xff, 0xa3, 0x32, 0x45, 0x35, 0xa3, 0xe5, 0x11, 0x00, 0x45, 0x8e, - 0xe5, 0xe5, 0xd7, 0x00, 0x47, 0x4b, 0xc0, 0xe4, 0x11, 0x00, 0x45, 0x41, - 0xe7, 0xe3, 0x11, 0x80, 0x13, 0x44, 0xf0, 0xbc, 0xb9, 0x11, 0x80, 0x06, - 0x46, 0x1f, 0xcb, 0xe3, 0xd7, 0x40, 0x47, 0x1e, 0xcb, 0xe7, 0xd7, 0x40, - 0x48, 0x4a, 0xc0, 0xe4, 0xd7, 0x40, 0x46, 0x17, 0xcd, 0xe9, 0xd7, 0x00, - 0x44, 0x18, 0xcd, 0xe8, 0xd7, 0x40, 0x8d, 0x01, 0xff, 0x45, 0x32, 0x83, - 0xf3, 0x11, 0x00, 0x44, 0xf0, 0xbc, 0xfa, 0xd7, 0x00, 0x47, 0x8a, 0xd3, - 0xfb, 0xd7, 0x40, 0x8d, 0x01, 0xff, 0x4d, 0x2a, 0x83, 0xf4, 0xd7, 0x00, - 0x45, 0x32, 0x83, 0xf3, 0xd7, 0x40, 0x8d, 0x01, 0xff, 0xa3, 0x2d, 0x45, - 0x35, 0xa3, 0xad, 0x11, 0x00, 0x46, 0xb6, 0xa0, 0xc5, 0x11, 0x00, 0x47, - 0xae, 0xd1, 0xc8, 0x11, 0x00, 0x45, 0x41, 0xe7, 0xcb, 0xd7, 0x00, 0x44, - 0xf0, 0xbc, 0xc7, 0x11, 0x00, 0xb4, 0x01, 0xff, 0x46, 0x8b, 0xd3, 0xc9, - 0x11, 0x00, 0x45, 0x20, 0xcb, 0xc6, 0x11, 0x40, 0x46, 0x17, 0xcd, 0xcc, - 0xd7, 0x00, 0x44, 0x18, 0xcd, 0xac, 0x11, 0x40, 0x8d, 0x01, 0xff, 0xa3, - 0x47, 0x45, 0x35, 0xa3, 0xe1, 0x11, 0x00, 0x46, 0xb6, 0xa0, 0xda, 0x11, - 0x00, 0x45, 0xfc, 0xe5, 0xde, 0xd7, 0x00, 0xb0, 0x20, 0x45, 0x41, 0xe7, - 0xdb, 0x11, 0x00, 0xb3, 0x01, 0xff, 0x43, 0x16, 0x41, 0xdd, 0x11, 0x00, - 0x04, 0x74, 0x2c, 0x01, 0xff, 0x45, 0xfc, 0xe5, 0xdf, 0xd7, 0x00, 0x44, - 0xf0, 0xbc, 0xde, 0x11, 0x40, 0x46, 0xaf, 0xd1, 0xdf, 0x11, 0x00, 0x44, - 0x33, 0x83, 0xdc, 0x11, 0xc0, 0x00, 0x45, 0xea, 0xde, 0xe1, 0xd7, 0x40, - 0x46, 0x17, 0xcd, 0xe0, 0x11, 0x00, 0x44, 0x18, 0xcd, 0xe2, 0xd7, 0x40, - 0x07, 0x2b, 0x83, 0x41, 0x46, 0x44, 0xc0, 0xbf, 0x11, 0x00, 0x45, 0xb7, - 0xa0, 0xa8, 0x11, 0xc0, 0x00, 0x8d, 0x01, 0xff, 0x47, 0x16, 0xcd, 0xfc, - 0x11, 0x00, 0x45, 0x35, 0xa3, 0xfe, 0x11, 0x00, 0x47, 0x43, 0xc0, 0xfd, - 0x11, 0x00, 0x45, 0xfc, 0xe5, 0xfa, 0x11, 0x00, 0x45, 0x32, 0x83, 0xfb, - 0x11, 0x00, 0x45, 0x41, 0xe7, 0xc3, 0x11, 0x00, 0x44, 0xf0, 0xbc, 0xaa, - 0x11, 0xc0, 0x00, 0x47, 0xfb, 0xca, 0xc4, 0x11, 0x40, 0x45, 0x8e, 0xe5, - 0xe2, 0x11, 0x00, 0xb0, 0x06, 0x45, 0x41, 0xe7, 0xdd, 0xd7, 0x40, 0x46, - 0x4c, 0xc0, 0xf4, 0x11, 0x00, 0x44, 0x33, 0x83, 0xe6, 0x11, 0x40, 0x8d, - 0x01, 0xff, 0xab, 0x06, 0x4b, 0xb1, 0xa0, 0xed, 0x11, 0x40, 0x46, 0x44, - 0xc0, 0xef, 0x11, 0x00, 0x45, 0xb7, 0xa0, 0xec, 0x11, 0x40, 0x8d, 0x01, - 0xff, 0x45, 0x8e, 0xe5, 0xf7, 0x11, 0x00, 0x45, 0xfc, 0xe5, 0xf5, 0x11, - 0x00, 0x45, 0x32, 0x83, 0xf8, 0x11, 0x00, 0x45, 0x41, 0xe7, 0xf6, 0x11, - 0x40, 0x46, 0x17, 0xcd, 0xbe, 0x11, 0x00, 0x44, 0x18, 0xcd, 0xbd, 0x11, - 0xc0, 0x00, 0x8d, 0x01, 0xff, 0x45, 0x32, 0x83, 0xf7, 0xd7, 0x00, 0x4a, - 0xf5, 0xae, 0xf8, 0xd7, 0x40, 0xa3, 0x83, 0x06, 0x46, 0x11, 0x81, 0x5f, - 0x11, 0x00, 0x45, 0x35, 0xa3, 0x12, 0x11, 0x80, 0xef, 0x05, 0x45, 0x68, - 0xc9, 0x0b, 0x11, 0x80, 0x95, 0x05, 0xab, 0xdb, 0x04, 0x45, 0x8e, 0xe5, - 0x06, 0x11, 0x80, 0xb8, 0x04, 0x45, 0xfc, 0xe5, 0x02, 0x11, 0x80, 0x89, - 0x04, 0xb0, 0xf0, 0x02, 0x45, 0x41, 0xe7, 0x05, 0x11, 0x80, 0x8e, 0x02, - 0xb3, 0x47, 0xb4, 0x11, 0x02, 0x4d, 0x00, 0x01, 0xff, 0x49, 0x31, 0xa3, - 0x59, 0x11, 0x00, 0x46, 0x24, 0xca, 0x4c, 0x11, 0x40, 0x46, 0x8b, 0xd3, - 0x10, 0x11, 0x00, 0x45, 0x20, 0xcb, 0x03, 0x11, 0xc0, 0x00, 0x8d, 0x01, - 0xff, 0x45, 0x37, 0xe2, 0x63, 0xa9, 0x00, 0x46, 0xb6, 0xa0, 0x17, 0x11, - 0x00, 0x45, 0x8e, 0xe5, 0x60, 0xa9, 0x00, 0x45, 0x32, 0x83, 0x61, 0xa9, - 0x00, 0x45, 0x41, 0xe7, 0x5e, 0x11, 0x00, 0x44, 0xf0, 0xbc, 0x62, 0xa9, - 0x40, 0x43, 0x16, 0x41, 0x09, 0x11, 0x80, 0x57, 0x04, 0x74, 0x2c, 0x01, - 0xff, 0x45, 0x37, 0xe2, 0x0d, 0x11, 0x80, 0x45, 0x45, 0x35, 0xa3, 0x58, - 0x11, 0x00, 0x45, 0x68, 0xc9, 0x47, 0x11, 0x00, 0x46, 0xb6, 0xa0, 0x01, - 0x11, 0x00, 0x45, 0xfc, 0xe5, 0x14, 0x11, 0x00, 0x45, 0x32, 0x83, 0x08, - 0x11, 0x00, 0x45, 0x41, 0xe7, 0x19, 0x11, 0x00, 0x44, 0xf0, 0xbc, 0x0a, - 0x11, 0x80, 0x14, 0xb4, 0x06, 0x4b, 0x2f, 0xa3, 0x7c, 0xa9, 0x40, 0x46, - 0x8b, 0xd3, 0x79, 0xa9, 0x00, 0x45, 0x20, 0xcb, 0x04, 0x11, 0x40, 0x46, - 0x86, 0xd5, 0x75, 0xa9, 0x40, 0x46, 0x7a, 0xd5, 0x78, 0xa9, 0x40, 0x8d, - 0x01, 0xff, 0xa3, 0x56, 0x45, 0x35, 0xa3, 0x3b, 0x11, 0x00, 0x45, 0x68, - 0xc9, 0x35, 0x11, 0x00, 0xab, 0x3c, 0x45, 0x8e, 0xe5, 0x31, 0x11, 0x00, - 0x45, 0xfc, 0xe5, 0x2e, 0x11, 0x00, 0xb0, 0x1b, 0x45, 0x41, 0xe7, 0x30, - 0x11, 0x00, 0x49, 0xeb, 0xbc, 0x34, 0x11, 0x00, 0xb4, 0x01, 0xff, 0x46, - 0x8b, 0xd3, 0x39, 0x11, 0x00, 0x45, 0x20, 0xcb, 0x2f, 0x11, 0x40, 0x46, - 0x4c, 0xc0, 0x3a, 0x11, 0x00, 0x44, 0x33, 0x83, 0x32, 0x11, 0xc0, 0x00, - 0x47, 0xfb, 0xca, 0x33, 0x11, 0x40, 0x46, 0x44, 0xc0, 0x38, 0x11, 0x00, - 0x45, 0xb7, 0xa0, 0x2d, 0x11, 0x40, 0x46, 0x17, 0xcd, 0x37, 0x11, 0x00, - 0x44, 0x18, 0xcd, 0x36, 0x11, 0x40, 0x8d, 0x01, 0xff, 0x45, 0x37, 0xe2, - 0x6d, 0xa9, 0x00, 0x45, 0x35, 0xa3, 0x1a, 0x11, 0x00, 0xab, 0x37, 0x45, - 0x8e, 0xe5, 0x68, 0xa9, 0x00, 0x45, 0xfc, 0xe5, 0x18, 0x11, 0x00, 0x45, - 0x32, 0x83, 0x69, 0xa9, 0x00, 0xb3, 0x06, 0x46, 0x1f, 0xcb, 0x66, 0xa9, - 0x40, 0x43, 0x16, 0x41, 0x6c, 0xa9, 0x00, 0x04, 0x74, 0x2c, 0x01, 0xff, - 0x46, 0xb6, 0xa0, 0x65, 0xa9, 0x00, 0x45, 0x32, 0x83, 0x6a, 0xa9, 0x00, - 0x46, 0x1f, 0xcb, 0x67, 0xa9, 0x40, 0x4c, 0x2b, 0x83, 0x6b, 0xa9, 0x00, - 0x46, 0x44, 0xc0, 0x6e, 0xa9, 0x00, 0x45, 0xb7, 0xa0, 0x64, 0xa9, 0x40, - 0x46, 0xaf, 0xd1, 0x40, 0x11, 0x00, 0x46, 0x4c, 0xc0, 0x11, 0x11, 0x80, - 0x7a, 0x44, 0x33, 0x83, 0x07, 0x11, 0xc0, 0x00, 0x8d, 0x01, 0xff, 0xa3, - 0x62, 0x45, 0x35, 0xa3, 0x74, 0xa9, 0x00, 0xab, 0x4e, 0x45, 0xfc, 0xe5, - 0x1f, 0x11, 0x00, 0x47, 0x4b, 0xc0, 0x2a, 0x11, 0x00, 0xb3, 0x0f, 0xb4, - 0x01, 0xff, 0x46, 0x8b, 0xd3, 0x29, 0x11, 0x00, 0x45, 0x20, 0xcb, 0x20, - 0x11, 0x40, 0x43, 0x16, 0x41, 0x21, 0x11, 0x80, 0x06, 0x48, 0xec, 0xbc, - 0x25, 0x11, 0x40, 0x8d, 0x01, 0xff, 0x45, 0x37, 0xe2, 0x26, 0x11, 0x00, - 0x46, 0xb6, 0xa0, 0x22, 0x11, 0x00, 0x45, 0x32, 0x83, 0x24, 0x11, 0x00, - 0xb4, 0x01, 0xff, 0x46, 0x8b, 0xd3, 0x72, 0xa9, 0x00, 0x45, 0x20, 0xcb, - 0x23, 0x11, 0x40, 0x46, 0x44, 0xc0, 0x73, 0xa9, 0x00, 0x45, 0xb7, 0xa0, - 0x1e, 0x11, 0x40, 0x46, 0x17, 0xcd, 0x28, 0x11, 0x00, 0x44, 0x18, 0xcd, - 0x27, 0x11, 0x40, 0x8d, 0x01, 0xff, 0x45, 0x35, 0xa3, 0x7a, 0xa9, 0x00, - 0x45, 0x32, 0x83, 0x56, 0x11, 0x40, 0x8d, 0x01, 0xff, 0x45, 0x37, 0xe2, - 0x5c, 0x11, 0x00, 0x45, 0x35, 0xa3, 0x5d, 0x11, 0x00, 0x46, 0xb6, 0xa0, - 0x13, 0x11, 0x00, 0x45, 0x32, 0x83, 0x16, 0x11, 0x00, 0x44, 0xf0, 0xbc, - 0x5b, 0x11, 0x00, 0x46, 0x1f, 0xcb, 0x15, 0x11, 0x40, 0x8d, 0x01, 0xff, - 0x46, 0xb6, 0xa0, 0x6f, 0xa9, 0x00, 0x45, 0x32, 0x83, 0x1c, 0x11, 0x00, - 0x44, 0xf0, 0xbc, 0x71, 0xa9, 0x00, 0x46, 0x1f, 0xcb, 0x70, 0xa9, 0x40, - 0x07, 0x2b, 0x83, 0x13, 0x46, 0x44, 0xc0, 0x0f, 0x11, 0x00, 0x45, 0xb7, - 0xa0, 0x00, 0x11, 0xc0, 0x00, 0x47, 0x1e, 0xcb, 0x5a, 0x11, 0x40, 0x45, - 0x8e, 0xe5, 0x1d, 0x11, 0x00, 0xb0, 0x0c, 0x45, 0x41, 0xe7, 0x1b, 0x11, - 0x00, 0x4a, 0xf5, 0xae, 0x2c, 0x11, 0x40, 0x46, 0x4c, 0xc0, 0x57, 0x11, - 0x00, 0x44, 0x33, 0x83, 0x2b, 0x11, 0x40, 0x8d, 0x01, 0xff, 0xa3, 0x41, - 0x45, 0x35, 0xa3, 0x77, 0xa9, 0x00, 0x46, 0xb6, 0xa0, 0x41, 0x11, 0x00, - 0x45, 0x8e, 0xe5, 0x43, 0x11, 0x00, 0xb0, 0x1b, 0x45, 0x41, 0xe7, 0x76, - 0xa9, 0x00, 0x44, 0xf0, 0xbc, 0x45, 0x11, 0x00, 0xb4, 0x01, 0xff, 0x46, - 0x8b, 0xd3, 0x4a, 0x11, 0x00, 0x45, 0x20, 0xcb, 0x42, 0x11, 0x40, 0x46, - 0xaf, 0xd1, 0x46, 0x11, 0x00, 0x46, 0x4c, 0xc0, 0x4b, 0x11, 0x00, 0x44, - 0x33, 0x83, 0x44, 0x11, 0x40, 0x46, 0x17, 0xcd, 0x49, 0x11, 0x00, 0x44, - 0x18, 0xcd, 0x48, 0x11, 0x40, 0x45, 0xea, 0xde, 0x7b, 0xa9, 0x40, 0x0a, - 0xcf, 0xa7, 0x54, 0x02, 0x49, 0x00, 0x0d, 0x44, 0x18, 0xcd, 0x0c, 0x11, - 0xc0, 0x00, 0x46, 0x80, 0xd5, 0x4d, 0x11, 0x40, 0x44, 0x19, 0xcd, 0x0e, - 0x11, 0x80, 0x2d, 0x05, 0x77, 0xe8, 0x01, 0xff, 0xa3, 0x1a, 0xb3, 0x01, - 0xff, 0x43, 0x16, 0x41, 0x3c, 0x11, 0x00, 0x04, 0x74, 0x2c, 0x01, 0xff, - 0x45, 0x37, 0xe2, 0x4f, 0x11, 0x00, 0x44, 0xf0, 0xbc, 0x3d, 0x11, 0x40, - 0x46, 0x17, 0xcd, 0x54, 0x11, 0x00, 0x44, 0x18, 0xcd, 0x4e, 0x11, 0x40, - 0x8d, 0x01, 0xff, 0x45, 0x35, 0xa3, 0x53, 0x11, 0x00, 0x47, 0x43, 0xc0, - 0x52, 0x11, 0x40, 0xa3, 0x1a, 0xb3, 0x01, 0xff, 0x43, 0x16, 0x41, 0x3e, - 0x11, 0x00, 0x04, 0x74, 0x2c, 0x01, 0xff, 0x45, 0x37, 0xe2, 0x51, 0x11, - 0x00, 0x44, 0xf0, 0xbc, 0x3f, 0x11, 0x40, 0x46, 0x17, 0xcd, 0x55, 0x11, - 0x00, 0x44, 0x18, 0xcd, 0x50, 0x11, 0x40, 0x0c, 0xd1, 0x89, 0x14, 0x02, - 0x16, 0x00, 0x06, 0x45, 0xcb, 0xca, 0x1d, 0xf9, 0x41, 0xe7, 0x5c, 0xf4, - 0x01, 0x42, 0x0f, 0x07, 0x3e, 0xf9, 0x41, 0x5a, 0x72, 0x1e, 0x1e, 0xf9, - 0x01, 0x58, 0x15, 0x28, 0xf0, 0xfa, 0x41, 0x46, 0x66, 0xd7, 0x54, 0xf3, - 0x01, 0x43, 0x2b, 0x37, 0x28, 0xf5, 0x81, 0x0d, 0xb3, 0x01, 0xff, 0xe1, - 0xac, 0xfa, 0x01, 0x48, 0xba, 0xc8, 0x39, 0xf4, 0x41, 0x05, 0x19, 0x00, - 0x01, 0xff, 0x44, 0x22, 0xdc, 0x92, 0x26, 0x00, 0x46, 0xd6, 0xdc, 0x2d, - 0x26, 0x00, 0x46, 0x4a, 0xde, 0xe0, 0xf6, 0x41, 0x4c, 0xf3, 0x10, 0xed, - 0xff, 0x00, 0x4f, 0xe5, 0x0b, 0xec, 0xff, 0x00, 0x54, 0x5f, 0x41, 0xe8, - 0xff, 0x00, 0x07, 0x9e, 0xce, 0xda, 0x02, 0x0c, 0xaa, 0x1f, 0xc9, 0x02, - 0x08, 0xda, 0xc4, 0x2c, 0x04, 0xc3, 0x00, 0x1c, 0x05, 0xc8, 0x00, 0x0c, - 0x4d, 0x1f, 0x20, 0xea, 0xff, 0x00, 0x4c, 0xe3, 0x10, 0xee, 0xff, 0x40, - 0x4f, 0xb7, 0x67, 0x63, 0xff, 0x00, 0x4b, 0xb8, 0x02, 0xeb, 0xff, 0x40, - 0x4f, 0xb7, 0x67, 0x62, 0xff, 0x00, 0x4b, 0xb8, 0x02, 0xe9, 0xff, 0x40, - 0x80, 0x06, 0x5e, 0xf6, 0x11, 0x70, 0xff, 0x40, 0x07, 0xc1, 0x05, 0x12, - 0x4a, 0xb1, 0x44, 0x65, 0xff, 0x00, 0x56, 0x4b, 0x36, 0x9f, 0xff, 0x00, - 0x51, 0x50, 0x36, 0x9e, 0xff, 0x40, 0xe1, 0x71, 0xff, 0x00, 0xe5, 0x74, - 0xff, 0x00, 0xa8, 0xdc, 0x01, 0xe9, 0x72, 0xff, 0x00, 0xab, 0xc1, 0x01, - 0xad, 0xaa, 0x01, 0xee, 0x9d, 0xff, 0x80, 0x90, 0x01, 0xef, 0x75, 0xff, - 0x00, 0xb2, 0x76, 0xb3, 0x33, 0xb4, 0x1d, 0xf5, 0x73, 0xff, 0x00, 0xb7, - 0x0f, 0xb9, 0x01, 0xff, 0xe1, 0x94, 0xff, 0x00, 0xef, 0x96, 0xff, 0x00, - 0xf5, 0x95, 0xff, 0x40, 0xe1, 0x9c, 0xff, 0x00, 0xef, 0x66, 0xff, 0x40, - 0xe1, 0x80, 0xff, 0x00, 0xe5, 0x83, 0xff, 0x00, 0xe9, 0x81, 0xff, 0x00, - 0xef, 0x84, 0xff, 0x00, 0xf5, 0x82, 0xff, 0x40, 0xe1, 0x7b, 0xff, 0x00, - 0xe5, 0x7e, 0xff, 0x00, 0xe9, 0x7c, 0xff, 0x00, 0x05, 0x0d, 0x07, 0x08, - 0xef, 0x7f, 0xff, 0x00, 0xf5, 0x7d, 0xff, 0x40, 0xe1, 0x67, 0xff, 0x00, - 0xe5, 0x6a, 0xff, 0x00, 0xe9, 0x68, 0xff, 0x00, 0xef, 0x6b, 0xff, 0x00, - 0x42, 0x5c, 0x01, 0x6f, 0xff, 0x00, 0xf5, 0x69, 0xff, 0x00, 0xb9, 0x01, - 0xff, 0xe1, 0x6c, 0xff, 0x00, 0xef, 0x6e, 0xff, 0x00, 0xf5, 0x6d, 0xff, - 0x40, 0xe1, 0x97, 0xff, 0x00, 0xe5, 0x9a, 0xff, 0x00, 0xe9, 0x98, 0xff, - 0x00, 0xef, 0x9b, 0xff, 0x00, 0xf5, 0x99, 0xff, 0x40, 0xe1, 0x85, 0xff, - 0x00, 0xe5, 0x88, 0xff, 0x00, 0xe9, 0x86, 0xff, 0x00, 0xef, 0x89, 0xff, - 0x00, 0xf5, 0x87, 0xff, 0x40, 0xe1, 0x8f, 0xff, 0x00, 0xe5, 0x92, 0xff, - 0x00, 0xe9, 0x90, 0xff, 0x00, 0xef, 0x93, 0xff, 0x00, 0xf5, 0x91, 0xff, - 0x40, 0xe1, 0x76, 0xff, 0x00, 0xe5, 0x79, 0xff, 0x00, 0xe9, 0x77, 0xff, - 0x00, 0xef, 0x7a, 0xff, 0x00, 0xf5, 0x78, 0xff, 0x40, 0xe1, 0x8a, 0xff, - 0x00, 0xe5, 0x8d, 0xff, 0x00, 0xe9, 0x8b, 0xff, 0x00, 0xef, 0x8e, 0xff, - 0x00, 0xf5, 0x8c, 0xff, 0x40, 0x45, 0xe8, 0x04, 0x64, 0xff, 0x00, 0x49, - 0x15, 0x16, 0x61, 0xff, 0x40, 0x46, 0x11, 0x81, 0xa0, 0xff, 0x00, 0x07, - 0xc1, 0x05, 0x01, 0xff, 0xe1, 0xc2, 0xff, 0x80, 0xae, 0x02, 0xa3, 0x9f, - 0x02, 0xe5, 0xc7, 0xff, 0x80, 0x91, 0x02, 0x45, 0x35, 0xa3, 0xbe, 0xff, - 0x00, 0xe9, 0xdc, 0xff, 0x80, 0xff, 0x01, 0xab, 0xe9, 0x01, 0x45, 0x8e, - 0xe5, 0xb1, 0xff, 0x00, 0x45, 0xfc, 0xe5, 0xa4, 0xff, 0x80, 0xcc, 0x01, - 0xef, 0xcc, 0xff, 0x80, 0xc2, 0x01, 0xb0, 0xac, 0x01, 0x45, 0x41, 0xe7, - 0xa9, 0xff, 0x80, 0x76, 0xb3, 0x4b, 0xb4, 0x3d, 0xf5, 0xd3, 0xff, 0x00, - 0xb7, 0x21, 0xb9, 0x01, 0xff, 0xe1, 0xc4, 0xff, 0x80, 0x15, 0xe5, 0xcb, - 0xff, 0x80, 0x0c, 0xe9, 0xdb, 0xff, 0x00, 0xef, 0xd2, 0xff, 0x00, 0xf5, - 0xd7, 0xff, 0x40, 0xef, 0xca, 0xff, 0x40, 0xe5, 0xc5, 0xff, 0x40, 0xe1, - 0xcd, 0xff, 0x80, 0x0d, 0xe5, 0xd5, 0xff, 0x80, 0x04, 0xe9, 0xd6, 0xff, - 0x40, 0xef, 0xd4, 0xff, 0x40, 0xe5, 0xce, 0xff, 0x40, 0x46, 0x8b, 0xd3, - 0xbc, 0xff, 0x00, 0x45, 0x20, 0xcb, 0xa7, 0xff, 0x40, 0x43, 0x16, 0x41, - 0xb5, 0xff, 0x00, 0x04, 0x74, 0x2c, 0x01, 0xff, 0x45, 0x37, 0xe2, 0xb9, - 0xff, 0x00, 0x46, 0xb6, 0xa0, 0xa2, 0xff, 0x00, 0x45, 0x32, 0x83, 0xb3, - 0xff, 0x00, 0x44, 0xf0, 0xbc, 0xb6, 0xff, 0x00, 0x46, 0x1f, 0xcb, 0xa8, - 0xff, 0x40, 0x8d, 0x01, 0xff, 0x45, 0x35, 0xa3, 0xb0, 0xff, 0x00, 0x46, - 0xb6, 0xa0, 0xaa, 0xff, 0x00, 0x45, 0x8e, 0xe5, 0xab, 0xff, 0x00, 0xb0, - 0x0c, 0x44, 0xf0, 0xbc, 0xad, 0xff, 0x00, 0x47, 0x8a, 0xd3, 0xae, 0xff, - 0x40, 0x46, 0x4c, 0xc0, 0xaf, 0xff, 0x00, 0x44, 0x33, 0x83, 0xac, 0xff, - 0x40, 0x46, 0x4c, 0xc0, 0xbd, 0xff, 0x00, 0x44, 0x33, 0x83, 0xb2, 0xff, - 0xc0, 0x00, 0x45, 0xea, 0xde, 0xb4, 0xff, 0x40, 0xe5, 0xcf, 0xff, 0x40, - 0x8d, 0x01, 0xff, 0x45, 0x37, 0xe2, 0xa5, 0xff, 0x00, 0x45, 0x35, 0xa3, - 0xa6, 0xff, 0x40, 0x46, 0x44, 0xc0, 0xbb, 0xff, 0x00, 0x45, 0xb7, 0xa0, - 0xa1, 0xff, 0xc0, 0x00, 0x45, 0xea, 0xde, 0xa3, 0xff, 0x40, 0x44, 0x69, - 0xc9, 0xb7, 0xff, 0x40, 0xef, 0xc6, 0xff, 0x00, 0xf5, 0xda, 0xff, 0x40, - 0x46, 0x17, 0xcd, 0xba, 0xff, 0x00, 0x44, 0x18, 0xcd, 0xb8, 0xff, 0x40, - 0xe5, 0xc3, 0xff, 0x40, 0x80, 0x06, 0x43, 0x2a, 0x27, 0x87, 0xf4, 0x41, - 0x44, 0x22, 0xdc, 0xae, 0xfa, 0x01, 0x45, 0x87, 0x4b, 0x0a, 0x20, 0x40, - 0xa1, 0xd6, 0x42, 0xa5, 0xfa, 0x38, 0x44, 0x5f, 0x7b, 0x7b, 0xf4, 0x01, - 0xa9, 0xd1, 0x38, 0xac, 0x9b, 0x33, 0xaf, 0xb6, 0x31, 0xb2, 0xd7, 0x0e, - 0xb5, 0x01, 0xff, 0x02, 0x17, 0x00, 0xc3, 0x0e, 0xa9, 0xb4, 0x0e, 0x07, - 0x54, 0xcf, 0xf9, 0x09, 0x0c, 0xfd, 0x90, 0xef, 0x06, 0xb2, 0x01, 0xff, - 0x06, 0x1a, 0xdb, 0xf4, 0x02, 0x0a, 0x5d, 0xb0, 0x01, 0xff, 0x16, 0x6d, - 0x32, 0xd2, 0x02, 0x06, 0xc4, 0x06, 0x8b, 0x02, 0x07, 0xc1, 0x05, 0x52, - 0x05, 0x2f, 0x03, 0x42, 0x06, 0x6c, 0x38, 0x01, 0xff, 0x4b, 0x72, 0x38, - 0x29, 0x61, 0x01, 0x05, 0x2f, 0x03, 0x01, 0xff, 0xa1, 0x24, 0xe5, 0x23, - 0x61, 0x81, 0x1b, 0xe9, 0x1f, 0x61, 0x81, 0x12, 0xef, 0x26, 0x61, 0x81, - 0x09, 0xf5, 0x21, 0x61, 0xc1, 0x00, 0xf5, 0x22, 0x61, 0x41, 0xef, 0x27, - 0x61, 0x41, 0xe9, 0x20, 0x61, 0x41, 0xe5, 0x24, 0x61, 0x41, 0xe1, 0x1e, - 0x61, 0x01, 0xe9, 0x25, 0x61, 0x01, 0xf5, 0x28, 0x61, 0x41, 0x48, 0xd0, - 0x15, 0x2d, 0x61, 0x01, 0x48, 0xca, 0xc8, 0x2f, 0x61, 0x41, 0xe1, 0x00, - 0x61, 0x01, 0xa2, 0xa4, 0x01, 0xa3, 0x97, 0x01, 0xa4, 0x7f, 0xa7, 0x73, - 0x42, 0x22, 0x00, 0x0a, 0x61, 0x01, 0xaa, 0x61, 0xab, 0x55, 0x42, 0x74, - 0x00, 0x1c, 0x61, 0x01, 0x42, 0x6c, 0x00, 0x19, 0x61, 0x01, 0xae, 0x3d, - 0xb0, 0x31, 0x42, 0x71, 0x00, 0x1b, 0x61, 0x01, 0x42, 0x15, 0x06, 0x1d, - 0x61, 0x01, 0xb4, 0x0c, 0x42, 0xa6, 0x0a, 0x0f, 0x61, 0x01, 0x42, 0x34, - 0x22, 0x1a, 0x61, 0x41, 0xe1, 0x10, 0x61, 0x01, 0x42, 0x22, 0x00, 0x11, - 0x61, 0x01, 0xb4, 0x01, 0xff, 0xe1, 0x0b, 0x61, 0x01, 0x42, 0x22, 0x00, - 0x0c, 0x61, 0x41, 0xe1, 0x15, 0x61, 0x01, 0x42, 0x22, 0x00, 0x16, 0x61, - 0x41, 0xe1, 0x14, 0x61, 0x01, 0x42, 0x24, 0x02, 0x05, 0x61, 0x41, 0xe1, - 0x01, 0x61, 0x01, 0x42, 0x22, 0x00, 0x02, 0x61, 0x41, 0xe1, 0x08, 0x61, - 0x01, 0x42, 0x22, 0x00, 0x09, 0x61, 0x41, 0xe1, 0x03, 0x61, 0x01, 0x42, - 0x22, 0x00, 0x04, 0x61, 0x41, 0xe1, 0x12, 0x61, 0x01, 0xa4, 0x06, 0x42, - 0x22, 0x00, 0x13, 0x61, 0x41, 0xe1, 0x0d, 0x61, 0x01, 0x42, 0x22, 0x00, - 0x0e, 0x61, 0x41, 0xe1, 0x06, 0x61, 0x01, 0x42, 0x22, 0x00, 0x07, 0x61, - 0x41, 0xe1, 0x17, 0x61, 0x01, 0x42, 0x22, 0x00, 0x18, 0x61, 0x41, 0x45, - 0xc3, 0x0a, 0x38, 0x61, 0x01, 0xa6, 0x2e, 0x44, 0x46, 0x2a, 0x39, 0x61, - 0x01, 0x43, 0xbf, 0x0a, 0x31, 0x61, 0x01, 0xb3, 0x14, 0xb4, 0x06, 0x44, - 0xa1, 0x1d, 0x30, 0x61, 0x41, 0x44, 0x25, 0x01, 0x33, 0x61, 0x01, 0x42, - 0x15, 0x02, 0x32, 0x61, 0x41, 0x44, 0x27, 0x1d, 0x37, 0x61, 0x01, 0x42, - 0x60, 0x25, 0x36, 0x61, 0x41, 0x43, 0xa7, 0x05, 0x35, 0x61, 0x01, 0x43, - 0xcb, 0x06, 0x34, 0x61, 0x41, 0x42, 0x22, 0x00, 0x2c, 0x61, 0x01, 0x42, - 0x71, 0x00, 0x2e, 0x61, 0x01, 0x42, 0xa6, 0x0a, 0x2b, 0x61, 0x01, 0x42, - 0x34, 0x22, 0x2a, 0x61, 0x41, 0xa1, 0xe4, 0x03, 0x06, 0xc4, 0x06, 0x9d, - 0x03, 0x48, 0xfa, 0xc2, 0x74, 0x0a, 0x00, 0x43, 0x95, 0x0a, 0x72, 0x0a, - 0x00, 0x07, 0xc1, 0x05, 0x6f, 0x05, 0x2f, 0x03, 0x3d, 0x45, 0x27, 0xe8, - 0x70, 0x0a, 0x00, 0x43, 0x70, 0x00, 0x73, 0x0a, 0x00, 0x0b, 0xd1, 0x75, - 0x01, 0xff, 0xa1, 0x1e, 0x42, 0x27, 0x01, 0x47, 0x0a, 0x00, 0xe9, 0x3f, - 0x0a, 0x80, 0x0f, 0x42, 0x69, 0x05, 0x4b, 0x0a, 0x00, 0xf5, 0x41, 0x0a, - 0xc0, 0x00, 0xf5, 0x42, 0x0a, 0x40, 0xe9, 0x40, 0x0a, 0x40, 0xe1, 0x3e, - 0x0a, 0x00, 0xe9, 0x48, 0x0a, 0x00, 0xf5, 0x4c, 0x0a, 0x40, 0x4a, 0x27, - 0xa5, 0x01, 0x0a, 0x00, 0x45, 0xb5, 0x69, 0x02, 0x0a, 0x00, 0x45, 0x5a, - 0x3e, 0x3c, 0x0a, 0x00, 0x45, 0x9a, 0xe8, 0x51, 0x0a, 0x00, 0x02, 0x02, - 0x00, 0x06, 0x46, 0x62, 0xde, 0x75, 0x0a, 0x40, 0x44, 0x5d, 0x23, 0x4d, - 0x0a, 0x00, 0x45, 0xa3, 0x4a, 0x03, 0x0a, 0x40, 0xe1, 0x05, 0x0a, 0x80, - 0x8c, 0x02, 0xa2, 0xff, 0x01, 0xa3, 0xf2, 0x01, 0xa4, 0xd9, 0x01, 0x42, - 0x27, 0x01, 0x0f, 0x0a, 0x00, 0x42, 0xe1, 0x07, 0x5e, 0x0a, 0x00, 0xa7, - 0xb9, 0x01, 0x42, 0x22, 0x00, 0x39, 0x0a, 0x00, 0xe9, 0x07, 0x0a, 0x80, - 0xa9, 0x01, 0xaa, 0x9c, 0x01, 0xab, 0x88, 0x01, 0xac, 0x7c, 0x42, 0x6c, - 0x00, 0x2e, 0x0a, 0x00, 0xae, 0x5e, 0x42, 0x69, 0x05, 0x13, 0x0a, 0x00, - 0xb0, 0x4c, 0xb2, 0x40, 0xb3, 0x34, 0xb4, 0x1b, 0xf5, 0x09, 0x0a, 0x80, - 0x12, 0x42, 0xa6, 0x0a, 0x35, 0x0a, 0x00, 0x42, 0x34, 0x22, 0x2f, 0x0a, - 0x00, 0x42, 0x59, 0x00, 0x5b, 0x0a, 0x40, 0xf5, 0x0a, 0x0a, 0x40, 0xe1, - 0x24, 0x0a, 0x00, 0x42, 0x22, 0x00, 0x25, 0x0a, 0x00, 0xb4, 0x01, 0xff, - 0xe1, 0x1f, 0x0a, 0x00, 0x42, 0x22, 0x00, 0x20, 0x0a, 0x40, 0xe1, 0x38, - 0x0a, 0x00, 0x42, 0x22, 0x00, 0x36, 0x0a, 0x40, 0xe1, 0x30, 0x0a, 0x00, - 0x42, 0x71, 0x00, 0x5c, 0x0a, 0x40, 0xe1, 0x2a, 0x0a, 0x00, 0x42, 0x22, - 0x00, 0x2b, 0x0a, 0x40, 0xe1, 0x28, 0x0a, 0x00, 0x42, 0x24, 0x02, 0x19, - 0x0a, 0x00, 0x42, 0xff, 0x04, 0x23, 0x0a, 0x00, 0x42, 0x34, 0x22, 0x1e, - 0x0a, 0x40, 0xe1, 0x32, 0x0a, 0x00, 0x42, 0x74, 0x00, 0x33, 0x0a, 0x40, - 0xe1, 0x15, 0x0a, 0x00, 0xa8, 0x01, 0xff, 0xe1, 0x16, 0x0a, 0x00, 0x42, - 0x22, 0x00, 0x59, 0x0a, 0x40, 0xe1, 0x1c, 0x0a, 0x00, 0x42, 0x22, 0x00, - 0x1d, 0x0a, 0x40, 0xe9, 0x08, 0x0a, 0x40, 0xe1, 0x17, 0x0a, 0x00, 0xa8, - 0x01, 0xff, 0xe1, 0x18, 0x0a, 0x00, 0x42, 0x22, 0x00, 0x5a, 0x0a, 0x40, - 0xe1, 0x26, 0x0a, 0x00, 0xa4, 0x06, 0x42, 0x22, 0x00, 0x27, 0x0a, 0x40, - 0xe1, 0x21, 0x0a, 0x00, 0x42, 0x22, 0x00, 0x22, 0x0a, 0x40, 0xe1, 0x1a, - 0x0a, 0x00, 0x42, 0x22, 0x00, 0x1b, 0x0a, 0x40, 0xe1, 0x2c, 0x0a, 0x00, - 0x42, 0x22, 0x00, 0x2d, 0x0a, 0x40, 0xe1, 0x06, 0x0a, 0x00, 0xe9, 0x10, - 0x0a, 0x00, 0xf5, 0x14, 0x0a, 0x40, 0x45, 0xc3, 0x0a, 0x6e, 0x0a, 0x00, - 0xa6, 0x2e, 0x44, 0x46, 0x2a, 0x6f, 0x0a, 0x00, 0x43, 0xbf, 0x0a, 0x67, - 0x0a, 0x00, 0xb3, 0x14, 0xb4, 0x06, 0x44, 0xa1, 0x1d, 0x66, 0x0a, 0x40, - 0x44, 0x25, 0x01, 0x69, 0x0a, 0x00, 0x42, 0x15, 0x02, 0x68, 0x0a, 0x40, - 0x44, 0x27, 0x1d, 0x6d, 0x0a, 0x00, 0x42, 0x60, 0x25, 0x6c, 0x0a, 0x40, - 0x43, 0xa7, 0x05, 0x6b, 0x0a, 0x00, 0x43, 0xcb, 0x06, 0x6a, 0x0a, 0x40, - 0x50, 0x94, 0x56, 0x76, 0x0a, 0x00, 0x44, 0x46, 0xec, 0x71, 0x0a, 0x40, - 0x06, 0xc4, 0x06, 0xbe, 0x02, 0x07, 0xc1, 0x05, 0x50, 0x42, 0xe9, 0x04, - 0x98, 0x1d, 0x01, 0x05, 0x2f, 0x03, 0x3a, 0xb6, 0x01, 0xff, 0x45, 0x5c, - 0x23, 0x97, 0x1d, 0x01, 0x0a, 0xd2, 0x75, 0x01, 0xff, 0xa1, 0x1e, 0x42, - 0x27, 0x01, 0x90, 0x1d, 0x01, 0xe9, 0x8b, 0x1d, 0x81, 0x0f, 0x42, 0x69, - 0x05, 0x93, 0x1d, 0x01, 0xf5, 0x8d, 0x1d, 0xc1, 0x00, 0xf5, 0x8e, 0x1d, - 0x41, 0xe9, 0x8c, 0x1d, 0x41, 0xe1, 0x8a, 0x1d, 0x01, 0xe9, 0x91, 0x1d, - 0x01, 0xf5, 0x94, 0x1d, 0x41, 0x48, 0xd0, 0x15, 0x95, 0x1d, 0x01, 0x47, - 0xa1, 0x4a, 0x96, 0x1d, 0x41, 0xe1, 0x60, 0x1d, 0x81, 0xd8, 0x01, 0xa2, - 0xcb, 0x01, 0xa3, 0xbe, 0x01, 0xa4, 0xa5, 0x01, 0x42, 0x27, 0x01, 0x67, - 0x1d, 0x01, 0xa7, 0x92, 0x01, 0x42, 0x22, 0x00, 0x87, 0x1d, 0x01, 0xe9, - 0x62, 0x1d, 0x81, 0x82, 0x01, 0xaa, 0x76, 0xab, 0x6a, 0xac, 0x5e, 0x42, - 0x6c, 0x00, 0x70, 0x1d, 0x01, 0xae, 0x4c, 0x42, 0x69, 0x05, 0x6a, 0x1d, - 0x01, 0xb0, 0x3a, 0x42, 0x71, 0x00, 0x88, 0x1d, 0x01, 0x42, 0x15, 0x06, - 0x89, 0x1d, 0x01, 0xb4, 0x15, 0xf5, 0x64, 0x1d, 0x81, 0x0c, 0x42, 0xa6, - 0x0a, 0x6d, 0x1d, 0x01, 0x42, 0x34, 0x22, 0x6c, 0x1d, 0x41, 0xf5, 0x65, - 0x1d, 0x41, 0xe1, 0x73, 0x1d, 0x01, 0x42, 0x22, 0x00, 0x74, 0x1d, 0x01, - 0xb4, 0x01, 0xff, 0xe1, 0x7d, 0x1d, 0x01, 0x42, 0x22, 0x00, 0x7e, 0x1d, - 0x41, 0xe1, 0x85, 0x1d, 0x01, 0x42, 0x22, 0x00, 0x86, 0x1d, 0x41, 0xe1, - 0x7a, 0x1d, 0x01, 0x42, 0x24, 0x02, 0x84, 0x1d, 0x41, 0xe1, 0x75, 0x1d, - 0x01, 0x42, 0x74, 0x00, 0x7f, 0x1d, 0x41, 0xe1, 0x71, 0x1d, 0x01, 0x42, - 0x22, 0x00, 0x72, 0x1d, 0x41, 0xe1, 0x80, 0x1d, 0x01, 0x42, 0x22, 0x00, - 0x81, 0x1d, 0x41, 0xe9, 0x63, 0x1d, 0x41, 0xe1, 0x76, 0x1d, 0x01, 0x42, - 0x22, 0x00, 0x77, 0x1d, 0x41, 0xe1, 0x78, 0x1d, 0x01, 0xa4, 0x06, 0x42, - 0x22, 0x00, 0x79, 0x1d, 0x41, 0xe1, 0x82, 0x1d, 0x01, 0x42, 0x22, 0x00, - 0x83, 0x1d, 0x41, 0xe1, 0x7b, 0x1d, 0x01, 0x42, 0x22, 0x00, 0x7c, 0x1d, - 0x41, 0xe1, 0x6e, 0x1d, 0x01, 0x42, 0x22, 0x00, 0x6f, 0x1d, 0x41, 0xe1, - 0x61, 0x1d, 0x01, 0xe9, 0x68, 0x1d, 0x01, 0xf5, 0x6b, 0x1d, 0x41, 0x45, - 0xc3, 0x0a, 0xa8, 0x1d, 0x01, 0xa6, 0x2e, 0x44, 0x46, 0x2a, 0xa9, 0x1d, - 0x01, 0x43, 0xbf, 0x0a, 0xa1, 0x1d, 0x01, 0xb3, 0x14, 0xb4, 0x06, 0x44, - 0xa1, 0x1d, 0xa0, 0x1d, 0x41, 0x44, 0x25, 0x01, 0xa3, 0x1d, 0x01, 0x42, - 0x15, 0x02, 0xa2, 0x1d, 0x41, 0x44, 0x27, 0x1d, 0xa7, 0x1d, 0x01, 0x42, - 0x60, 0x25, 0xa6, 0x1d, 0x41, 0x43, 0xa7, 0x05, 0xa5, 0x1d, 0x01, 0x43, - 0xcb, 0x06, 0xa4, 0x1d, 0x41, 0x51, 0x93, 0x56, 0xf0, 0x0a, 0x00, 0x06, - 0xc4, 0x06, 0xe9, 0x03, 0x07, 0xc1, 0x05, 0xc6, 0x01, 0x42, 0xe9, 0x04, - 0xd0, 0x0a, 0x00, 0x4a, 0xf6, 0x7e, 0xf1, 0x0a, 0x00, 0x05, 0x2f, 0x03, - 0x61, 0x06, 0x6c, 0x38, 0x01, 0xff, 0x07, 0xba, 0x5f, 0x50, 0x05, 0x2f, - 0x03, 0x01, 0xff, 0xa1, 0x3d, 0x07, 0xba, 0x5f, 0x31, 0xe5, 0xc7, 0x0a, - 0x00, 0xe9, 0xbf, 0x0a, 0x80, 0x24, 0xef, 0xcb, 0x0a, 0x00, 0xf5, 0xc1, - 0x0a, 0x80, 0x17, 0x08, 0x9b, 0xbe, 0x01, 0xff, 0xec, 0xe2, 0x0a, 0x80, - 0x09, 0xf2, 0xc3, 0x0a, 0xc0, 0x00, 0xf2, 0xc4, 0x0a, 0x40, 0xec, 0xe3, - 0x0a, 0x40, 0xf5, 0xc2, 0x0a, 0x40, 0xe9, 0xc0, 0x0a, 0x40, 0xe5, 0xc5, - 0x0a, 0x00, 0xef, 0xc9, 0x0a, 0x40, 0xe1, 0xbe, 0x0a, 0x00, 0xe9, 0xc8, - 0x0a, 0x00, 0xf5, 0xcc, 0x0a, 0x40, 0xe5, 0x8d, 0x0a, 0x00, 0xef, 0x91, - 0x0a, 0x40, 0xa1, 0x47, 0xa3, 0x39, 0x46, 0xf0, 0xda, 0xfc, 0x0a, 0x00, - 0x45, 0x5a, 0x3e, 0xbc, 0x0a, 0x00, 0xb3, 0x1f, 0xb4, 0x11, 0x02, 0x02, - 0x00, 0x01, 0xff, 0x44, 0x5d, 0x23, 0xcd, 0x0a, 0x00, 0x45, 0xa3, 0x4a, - 0x83, 0x0a, 0x40, 0x54, 0xff, 0x41, 0xfd, 0x0a, 0x00, 0x55, 0x50, 0x3e, - 0xff, 0x0a, 0x40, 0x45, 0xb8, 0xe3, 0xfb, 0x0a, 0x00, 0x44, 0x00, 0xe8, - 0xfa, 0x0a, 0x40, 0x4a, 0x50, 0x23, 0x81, 0x0a, 0x00, 0x51, 0x54, 0x3e, - 0xfe, 0x0a, 0x40, 0x47, 0xd1, 0x15, 0x82, 0x0a, 0x00, 0x47, 0xf2, 0x86, - 0xbd, 0x0a, 0x40, 0xe1, 0x85, 0x0a, 0x80, 0x8c, 0x02, 0xa2, 0xff, 0x01, - 0xa3, 0xf2, 0x01, 0xa4, 0xd9, 0x01, 0xe5, 0x8f, 0x0a, 0x00, 0xa7, 0xc8, - 0x01, 0x42, 0x22, 0x00, 0xb9, 0x0a, 0x00, 0xe9, 0x87, 0x0a, 0x80, 0xb8, - 0x01, 0xaa, 0xab, 0x01, 0xab, 0x9e, 0x01, 0xac, 0x91, 0x01, 0x42, 0x6c, - 0x00, 0xae, 0x0a, 0x00, 0xae, 0x73, 0xef, 0x93, 0x0a, 0x00, 0xb0, 0x63, - 0x42, 0x71, 0x00, 0xb0, 0x0a, 0x00, 0xb3, 0x4b, 0xb4, 0x32, 0xf5, 0x89, - 0x0a, 0x80, 0x29, 0xb6, 0x0c, 0x42, 0x34, 0x22, 0xaf, 0x0a, 0x00, 0x43, - 0x44, 0xbe, 0xf9, 0x0a, 0x40, 0xe1, 0xb5, 0x0a, 0x00, 0x07, 0x9c, 0xbe, - 0x01, 0xff, 0xec, 0x8c, 0x0a, 0x80, 0x09, 0xf2, 0x8b, 0x0a, 0xc0, 0x00, - 0xf2, 0xe0, 0x0a, 0x40, 0xec, 0xe1, 0x0a, 0x40, 0xf5, 0x8a, 0x0a, 0x40, - 0xe1, 0xa4, 0x0a, 0x00, 0x42, 0x22, 0x00, 0xa5, 0x0a, 0x00, 0xb4, 0x01, - 0xff, 0xe1, 0x9f, 0x0a, 0x00, 0x42, 0x22, 0x00, 0xa0, 0x0a, 0x40, 0xe1, - 0xb8, 0x0a, 0x00, 0x42, 0x22, 0x00, 0xb6, 0x0a, 0x00, 0x42, 0x15, 0x06, - 0xb7, 0x0a, 0x40, 0xe1, 0xaa, 0x0a, 0x00, 0x42, 0x22, 0x00, 0xab, 0x0a, - 0x40, 0xe1, 0xa8, 0x0a, 0x00, 0x42, 0x24, 0x02, 0x99, 0x0a, 0x00, 0x42, - 0xff, 0x04, 0xa3, 0x0a, 0x00, 0x42, 0x34, 0x22, 0x9e, 0x0a, 0x40, 0xe1, - 0xb2, 0x0a, 0x00, 0x42, 0x74, 0x00, 0xb3, 0x0a, 0x40, 0xe1, 0x95, 0x0a, - 0x00, 0x42, 0x22, 0x00, 0x96, 0x0a, 0x40, 0xe1, 0x9c, 0x0a, 0x00, 0x42, - 0x22, 0x00, 0x9d, 0x0a, 0x40, 0xe9, 0x88, 0x0a, 0x40, 0xe1, 0x97, 0x0a, - 0x00, 0x42, 0x22, 0x00, 0x98, 0x0a, 0x40, 0xe1, 0xa6, 0x0a, 0x00, 0xa4, - 0x06, 0x42, 0x22, 0x00, 0xa7, 0x0a, 0x40, 0xe1, 0xa1, 0x0a, 0x00, 0x42, - 0x22, 0x00, 0xa2, 0x0a, 0x40, 0xe1, 0x9a, 0x0a, 0x00, 0x42, 0x22, 0x00, - 0x9b, 0x0a, 0x40, 0xe1, 0xac, 0x0a, 0x00, 0x42, 0x22, 0x00, 0xad, 0x0a, - 0x40, 0xe1, 0x86, 0x0a, 0x00, 0xe9, 0x90, 0x0a, 0x00, 0xf5, 0x94, 0x0a, - 0x40, 0x45, 0xc3, 0x0a, 0xee, 0x0a, 0x00, 0xa6, 0x2e, 0x44, 0x46, 0x2a, - 0xef, 0x0a, 0x00, 0x43, 0xbf, 0x0a, 0xe7, 0x0a, 0x00, 0xb3, 0x14, 0xb4, - 0x06, 0x44, 0xa1, 0x1d, 0xe6, 0x0a, 0x40, 0x44, 0x25, 0x01, 0xe9, 0x0a, - 0x00, 0x42, 0x15, 0x02, 0xe8, 0x0a, 0x40, 0x44, 0x27, 0x1d, 0xed, 0x0a, - 0x00, 0x42, 0x60, 0x25, 0xec, 0x0a, 0x40, 0x43, 0xa7, 0x05, 0xeb, 0x0a, - 0x00, 0x43, 0xcb, 0x06, 0xea, 0x0a, 0x40, 0x46, 0xf6, 0xd7, 0xae, 0xf9, - 0x01, 0x43, 0xe3, 0x12, 0xb8, 0xf3, 0x41, 0x48, 0xf5, 0x99, 0xb2, 0x20, - 0x00, 0x45, 0x9b, 0xe2, 0x82, 0xf4, 0x41, 0xa1, 0x81, 0x1f, 0xa5, 0x4d, - 0xa9, 0x19, 0xaf, 0x01, 0xff, 0x03, 0x11, 0x15, 0x06, 0x4a, 0x39, 0xb1, - 0x97, 0xf4, 0x41, 0x44, 0xb9, 0x00, 0xd2, 0x2b, 0x00, 0x49, 0x36, 0x20, - 0x1d, 0x00, 0x40, 0x4b, 0x15, 0x9d, 0x2c, 0xf6, 0x01, 0x06, 0x45, 0xa0, - 0x01, 0xff, 0x5a, 0xc0, 0x1e, 0x38, 0xf6, 0x01, 0x44, 0xe1, 0x07, 0x00, - 0xf6, 0xc1, 0x00, 0x06, 0x50, 0x00, 0x01, 0xff, 0x5b, 0x27, 0x1c, 0x2a, - 0xf9, 0x01, 0xb3, 0x01, 0xff, 0x4b, 0xcf, 0x1e, 0x01, 0xf6, 0x01, 0x48, - 0xb2, 0xc8, 0x29, 0xf9, 0x41, 0x0a, 0x8a, 0x00, 0xce, 0x1c, 0xa5, 0x06, - 0x47, 0xe1, 0xd4, 0x76, 0xfa, 0x41, 0x02, 0xbc, 0x00, 0x1d, 0x02, 0x92, - 0x00, 0x01, 0xff, 0x45, 0x47, 0xe1, 0x4f, 0xf3, 0x01, 0x44, 0x0e, 0xec, - 0xd7, 0xf4, 0x01, 0x45, 0x24, 0x21, 0x9a, 0xf4, 0x01, 0x45, 0x96, 0xe7, - 0x57, 0xf9, 0x41, 0xa1, 0xde, 0x18, 0x4b, 0x8a, 0x97, 0xd0, 0x03, 0x00, - 0x08, 0xb9, 0x05, 0xbe, 0x10, 0xa4, 0xf7, 0x0f, 0xa6, 0xe8, 0x0f, 0x4b, - 0x55, 0x9a, 0x88, 0x01, 0x01, 0x02, 0x9e, 0x01, 0xb8, 0x0e, 0xab, 0x9b, - 0x0e, 0xac, 0xa9, 0x0d, 0xad, 0x9a, 0x0d, 0x4c, 0xb5, 0x5b, 0x74, 0x03, - 0x00, 0xaf, 0xe8, 0x0c, 0xb0, 0xaf, 0x0c, 0x4d, 0xd6, 0x33, 0x7e, 0x03, - 0x00, 0xb2, 0x8f, 0x0c, 0xb3, 0xf4, 0x01, 0xb4, 0xb5, 0x01, 0x0d, 0xf0, - 0x87, 0x9e, 0x01, 0xb6, 0x1a, 0x4b, 0x0e, 0xa3, 0x85, 0x01, 0x01, 0xb9, - 0x06, 0x49, 0x58, 0xbf, 0x8a, 0x01, 0x41, 0x48, 0x1a, 0xbf, 0x79, 0x01, - 0x01, 0x4c, 0xf0, 0x4d, 0x7a, 0x03, 0x40, 0x44, 0xb6, 0x2f, 0xef, 0x1f, - 0x00, 0x15, 0x58, 0x3c, 0x01, 0xff, 0xd1, 0x00, 0xd2, 0x81, 0x4a, 0xd2, - 0x01, 0xd2, 0x81, 0x31, 0xd3, 0x02, 0xd2, 0x01, 0xd4, 0x03, 0xd2, 0x01, - 0xd5, 0x04, 0xd2, 0x81, 0x10, 0xd6, 0x05, 0xd2, 0x01, 0xd7, 0x06, 0xd2, - 0x01, 0xd8, 0x07, 0xd2, 0x01, 0xd9, 0x08, 0xd2, 0x41, 0xd0, 0x18, 0xd2, - 0x01, 0xd1, 0x19, 0xd2, 0x01, 0xd2, 0x1a, 0xd2, 0x01, 0xd3, 0x1b, 0xd2, - 0x01, 0xd4, 0x1c, 0xd2, 0x41, 0xd0, 0x13, 0xd2, 0x01, 0xd1, 0x14, 0xd2, - 0x01, 0xd2, 0x15, 0xd2, 0x01, 0xd3, 0x16, 0xd2, 0x01, 0xd4, 0x17, 0xd2, - 0x41, 0xd0, 0x09, 0xd2, 0x01, 0xd1, 0x0a, 0xd2, 0x01, 0xd2, 0x0b, 0xd2, - 0x01, 0xd3, 0x0c, 0xd2, 0x01, 0xd4, 0x0d, 0xd2, 0x01, 0xd5, 0x0e, 0xd2, - 0x01, 0xd6, 0x0f, 0xd2, 0x01, 0xd7, 0x10, 0xd2, 0x01, 0xd8, 0x11, 0xd2, - 0x01, 0xd9, 0x12, 0xd2, 0x41, 0x55, 0x29, 0x38, 0xd3, 0x03, 0x00, 0x59, - 0x2f, 0x23, 0xd4, 0x03, 0x00, 0x4b, 0x3d, 0x23, 0xd2, 0x03, 0x40, 0x4a, - 0x6d, 0xa5, 0x7a, 0x01, 0x01, 0xa8, 0x1d, 0x44, 0x83, 0x6a, 0x84, 0x03, - 0x00, 0x51, 0x49, 0x5c, 0x89, 0x01, 0x01, 0x03, 0xd1, 0x09, 0x01, 0xff, - 0x4a, 0xae, 0x77, 0x7d, 0x01, 0x01, 0x4b, 0x40, 0xa1, 0x77, 0x01, 0x41, - 0x4a, 0xf3, 0x93, 0xd1, 0x03, 0x00, 0x04, 0x26, 0x01, 0x01, 0xff, 0x4a, - 0xae, 0x77, 0x7e, 0x01, 0x01, 0x4d, 0xe8, 0x85, 0x78, 0x01, 0x41, 0x4c, - 0x99, 0x8e, 0x8c, 0x01, 0x01, 0x05, 0x0d, 0x07, 0x28, 0x16, 0xe5, 0x36, - 0x06, 0x4d, 0x01, 0x89, 0xa0, 0x01, 0x41, 0x44, 0x8a, 0x97, 0x66, 0x1d, - 0x00, 0x43, 0x0d, 0x16, 0x6a, 0x1d, 0x00, 0x45, 0xd2, 0x56, 0x67, 0x1d, - 0x00, 0x43, 0xb1, 0x1f, 0x69, 0x1d, 0x00, 0x43, 0xa6, 0x48, 0x68, 0x1d, - 0x40, 0x5a, 0x0e, 0x1f, 0x7c, 0x03, 0x00, 0x07, 0xc1, 0x05, 0x11, 0x09, - 0x8e, 0x14, 0x01, 0xff, 0x5a, 0x0e, 0x1f, 0x7d, 0x03, 0x00, 0x53, 0x15, - 0x1f, 0x7b, 0x03, 0x40, 0xa1, 0xf6, 0x07, 0x44, 0x8a, 0x97, 0xb2, 0x03, - 0x00, 0x43, 0x0d, 0x16, 0xc7, 0x03, 0x00, 0xa4, 0xdb, 0x07, 0xa5, 0xd6, - 0x05, 0x4b, 0xfd, 0x99, 0xc2, 0x03, 0x00, 0x45, 0xd2, 0x56, 0xb3, 0x03, - 0x00, 0x44, 0xf2, 0x93, 0x71, 0x03, 0x00, 0x44, 0xca, 0x2d, 0xb9, 0x03, - 0x80, 0xac, 0x04, 0xab, 0x9d, 0x04, 0x45, 0xfd, 0xe4, 0xbb, 0x03, 0x00, - 0x42, 0x57, 0x16, 0xbc, 0x03, 0x00, 0x42, 0xd1, 0x15, 0xbd, 0x03, 0x00, - 0x02, 0xe9, 0x04, 0x85, 0x02, 0xb0, 0xec, 0x01, 0x43, 0xa6, 0x48, 0xc1, - 0x03, 0x80, 0xd3, 0x01, 0xb3, 0xb2, 0x01, 0xb4, 0xa3, 0x01, 0x47, 0xf0, - 0x87, 0xc5, 0x03, 0x80, 0x0c, 0x42, 0x93, 0x0c, 0xbe, 0x03, 0x00, 0x44, - 0x0e, 0xf0, 0xb6, 0x03, 0x40, 0x06, 0x50, 0x00, 0x01, 0xff, 0xa4, 0x47, - 0x46, 0x04, 0x6f, 0xe1, 0x1f, 0x00, 0x44, 0xae, 0xee, 0x7b, 0x1f, 0x00, - 0xb0, 0x15, 0x45, 0x82, 0x6a, 0xcd, 0x03, 0x00, 0xb6, 0x01, 0xff, 0x44, - 0xb6, 0x2f, 0x7a, 0x1f, 0x00, 0x45, 0x05, 0xe7, 0xe0, 0x1f, 0x40, 0x4a, - 0x10, 0x9f, 0xe6, 0x1f, 0x00, 0x44, 0x06, 0x87, 0x50, 0x1f, 0xc0, 0x00, - 0x05, 0x19, 0x00, 0x01, 0xff, 0x44, 0xae, 0xee, 0x54, 0x1f, 0x00, 0x4b, - 0x0f, 0x9f, 0x56, 0x1f, 0x00, 0x45, 0xb5, 0x2f, 0x52, 0x1f, 0x40, 0x44, - 0xcb, 0x5f, 0x51, 0x1f, 0x80, 0x24, 0x48, 0x79, 0x6a, 0xcb, 0x03, 0xc0, - 0x00, 0x05, 0x19, 0x00, 0x01, 0xff, 0x44, 0xae, 0xee, 0xe3, 0x1f, 0x00, - 0x4b, 0x0f, 0x9f, 0xe7, 0x1f, 0x00, 0x45, 0x82, 0x6a, 0xb0, 0x03, 0x00, - 0x45, 0xb5, 0x2f, 0xe2, 0x1f, 0x40, 0x05, 0x19, 0x00, 0x01, 0xff, 0x44, - 0xae, 0xee, 0x55, 0x1f, 0x00, 0x4b, 0x0f, 0x9f, 0x57, 0x1f, 0x00, 0x45, - 0xb5, 0x2f, 0x53, 0x1f, 0x40, 0x42, 0xd7, 0x23, 0xc4, 0x03, 0x00, 0x44, - 0xf2, 0x93, 0xb8, 0x03, 0x40, 0xa1, 0x12, 0x42, 0x0b, 0x00, 0xf8, 0x03, - 0x00, 0x44, 0x1d, 0x1f, 0xc3, 0x03, 0x00, 0x45, 0x1d, 0xe8, 0xdb, 0x03, - 0x40, 0x43, 0x7a, 0x92, 0xe1, 0x03, 0x00, 0xee, 0xfb, 0x03, 0x40, 0x06, - 0x50, 0x00, 0x01, 0xff, 0x45, 0x34, 0x75, 0xe5, 0x1f, 0x00, 0x45, 0xec, - 0xe6, 0xe4, 0x1f, 0x40, 0x51, 0xc6, 0x56, 0x77, 0x03, 0x00, 0x42, 0x49, - 0x00, 0xc6, 0x03, 0x00, 0xe9, 0xc0, 0x03, 0x00, 0x42, 0x2f, 0x03, 0xc8, - 0x03, 0x40, 0x43, 0xa3, 0x05, 0xc9, 0x03, 0x80, 0x4e, 0x45, 0x3a, 0xe4, - 0xbf, 0x03, 0xc0, 0x00, 0x06, 0x50, 0x00, 0x01, 0xff, 0x45, 0x34, 0x75, - 0x41, 0x1f, 0x80, 0x2a, 0x44, 0xae, 0xee, 0x79, 0x1f, 0x00, 0x45, 0xec, - 0xe6, 0x40, 0x1f, 0x80, 0x0c, 0x45, 0x82, 0x6a, 0xcc, 0x03, 0x00, 0x45, - 0xb5, 0x2f, 0x78, 0x1f, 0x40, 0x05, 0x19, 0x00, 0x01, 0xff, 0x44, 0xae, - 0xee, 0x44, 0x1f, 0x00, 0x45, 0xb5, 0x2f, 0x42, 0x1f, 0x40, 0x05, 0x19, - 0x00, 0x01, 0xff, 0x44, 0xae, 0xee, 0x45, 0x1f, 0x00, 0x45, 0xb5, 0x2f, - 0x43, 0x1f, 0x40, 0x06, 0x50, 0x00, 0x01, 0xff, 0x45, 0x34, 0x75, 0x61, - 0x1f, 0x80, 0x6e, 0x44, 0xae, 0xee, 0x7d, 0x1f, 0x80, 0x61, 0xb0, 0x19, - 0x45, 0x82, 0x6a, 0xce, 0x03, 0x00, 0x45, 0xb5, 0x2f, 0x7c, 0x1f, 0x80, - 0x06, 0x4d, 0xef, 0x4d, 0xf3, 0x1f, 0x40, 0x52, 0xea, 0x4d, 0xf2, 0x1f, - 0x40, 0x4a, 0x10, 0x9f, 0xf6, 0x1f, 0x80, 0x39, 0x44, 0x06, 0x87, 0x60, - 0x1f, 0xc0, 0x00, 0x05, 0x19, 0x00, 0x01, 0xff, 0x44, 0xae, 0xee, 0x64, - 0x1f, 0x80, 0x20, 0x4b, 0x0f, 0x9f, 0x66, 0x1f, 0x80, 0x13, 0x45, 0xb5, - 0x2f, 0x62, 0x1f, 0x80, 0x06, 0x4d, 0xef, 0x4d, 0xa0, 0x1f, 0x40, 0x52, - 0xea, 0x4d, 0xa2, 0x1f, 0x40, 0x52, 0xea, 0x4d, 0xa6, 0x1f, 0x40, 0x52, - 0xea, 0x4d, 0xa4, 0x1f, 0x40, 0x52, 0xea, 0x4d, 0xf7, 0x1f, 0x40, 0x52, - 0xea, 0x4d, 0xf4, 0x1f, 0x40, 0x05, 0x19, 0x00, 0x01, 0xff, 0x44, 0xae, - 0xee, 0x65, 0x1f, 0x80, 0x20, 0x4b, 0x0f, 0x9f, 0x67, 0x1f, 0x80, 0x13, - 0x45, 0xb5, 0x2f, 0x63, 0x1f, 0x80, 0x06, 0x4d, 0xef, 0x4d, 0xa1, 0x1f, - 0x40, 0x52, 0xea, 0x4d, 0xa3, 0x1f, 0x40, 0x52, 0xea, 0x4d, 0xa7, 0x1f, - 0x40, 0x52, 0xea, 0x4d, 0xa5, 0x1f, 0x40, 0x44, 0xe2, 0x8e, 0xba, 0x03, - 0x00, 0x44, 0x30, 0x7f, 0xdf, 0x03, 0x40, 0x06, 0x50, 0x00, 0x01, 0xff, - 0xa4, 0x47, 0x46, 0x04, 0x6f, 0xd1, 0x1f, 0x00, 0x44, 0xae, 0xee, 0x77, - 0x1f, 0x00, 0xb0, 0x15, 0x45, 0x82, 0x6a, 0xaf, 0x03, 0x00, 0xb6, 0x01, - 0xff, 0x44, 0xb6, 0x2f, 0x76, 0x1f, 0x00, 0x45, 0x05, 0xe7, 0xd0, 0x1f, - 0x40, 0x4a, 0x10, 0x9f, 0xd6, 0x1f, 0x00, 0x44, 0x06, 0x87, 0x30, 0x1f, - 0xc0, 0x00, 0x05, 0x19, 0x00, 0x01, 0xff, 0x44, 0xae, 0xee, 0x34, 0x1f, - 0x00, 0x4b, 0x0f, 0x9f, 0x36, 0x1f, 0x00, 0x45, 0xb5, 0x2f, 0x32, 0x1f, - 0x40, 0x44, 0xcb, 0x5f, 0x31, 0x1f, 0x80, 0x24, 0x48, 0x79, 0x6a, 0xca, - 0x03, 0xc0, 0x00, 0x05, 0x19, 0x00, 0x01, 0xff, 0x44, 0xae, 0xee, 0xd3, - 0x1f, 0x00, 0x4b, 0x0f, 0x9f, 0xd7, 0x1f, 0x00, 0x45, 0x82, 0x6a, 0x90, - 0x03, 0x00, 0x45, 0xb5, 0x2f, 0xd2, 0x1f, 0x40, 0x05, 0x19, 0x00, 0x01, - 0xff, 0x44, 0xae, 0xee, 0x35, 0x1f, 0x00, 0x4b, 0x0f, 0x9f, 0x37, 0x1f, - 0x00, 0x45, 0xb5, 0x2f, 0x33, 0x1f, 0x40, 0x46, 0x63, 0x15, 0xb5, 0x03, - 0x80, 0xb3, 0x01, 0x42, 0x12, 0x00, 0xb7, 0x03, 0xc0, 0x00, 0x06, 0x50, - 0x00, 0x01, 0xff, 0x45, 0x34, 0x75, 0x21, 0x1f, 0x80, 0x6e, 0x44, 0xae, - 0xee, 0x75, 0x1f, 0x80, 0x61, 0xb0, 0x19, 0x45, 0x82, 0x6a, 0xae, 0x03, - 0x00, 0x45, 0xb5, 0x2f, 0x74, 0x1f, 0x80, 0x06, 0x4d, 0xef, 0x4d, 0xc3, - 0x1f, 0x40, 0x52, 0xea, 0x4d, 0xc2, 0x1f, 0x40, 0x4a, 0x10, 0x9f, 0xc6, - 0x1f, 0x80, 0x39, 0x44, 0x06, 0x87, 0x20, 0x1f, 0xc0, 0x00, 0x05, 0x19, - 0x00, 0x01, 0xff, 0x44, 0xae, 0xee, 0x24, 0x1f, 0x80, 0x20, 0x4b, 0x0f, - 0x9f, 0x26, 0x1f, 0x80, 0x13, 0x45, 0xb5, 0x2f, 0x22, 0x1f, 0x80, 0x06, - 0x4d, 0xef, 0x4d, 0x90, 0x1f, 0x40, 0x52, 0xea, 0x4d, 0x92, 0x1f, 0x40, - 0x52, 0xea, 0x4d, 0x96, 0x1f, 0x40, 0x52, 0xea, 0x4d, 0x94, 0x1f, 0x40, - 0x52, 0xea, 0x4d, 0xc7, 0x1f, 0x40, 0x52, 0xea, 0x4d, 0xc4, 0x1f, 0x40, - 0x05, 0x19, 0x00, 0x01, 0xff, 0x44, 0xae, 0xee, 0x25, 0x1f, 0x80, 0x20, - 0x4b, 0x0f, 0x9f, 0x27, 0x1f, 0x80, 0x13, 0x45, 0xb5, 0x2f, 0x23, 0x1f, - 0x80, 0x06, 0x4d, 0xef, 0x4d, 0x91, 0x1f, 0x40, 0x52, 0xea, 0x4d, 0x93, - 0x1f, 0x40, 0x52, 0xea, 0x4d, 0x97, 0x1f, 0x40, 0x52, 0xea, 0x4d, 0x95, - 0x1f, 0x40, 0x06, 0x50, 0x00, 0x01, 0xff, 0x45, 0x34, 0x75, 0x11, 0x1f, - 0x80, 0x2a, 0x44, 0xae, 0xee, 0x73, 0x1f, 0x00, 0x45, 0xec, 0xe6, 0x10, - 0x1f, 0x80, 0x0c, 0x45, 0x82, 0x6a, 0xad, 0x03, 0x00, 0x45, 0xb5, 0x2f, - 0x72, 0x1f, 0x40, 0x05, 0x19, 0x00, 0x01, 0xff, 0x44, 0xae, 0xee, 0x14, - 0x1f, 0x00, 0x45, 0xb5, 0x2f, 0x12, 0x1f, 0x40, 0x05, 0x19, 0x00, 0x01, - 0xff, 0x44, 0xae, 0xee, 0x15, 0x1f, 0x00, 0x45, 0xb5, 0x2f, 0x13, 0x1f, - 0x40, 0x44, 0x6c, 0xd3, 0xb4, 0x03, 0x00, 0x46, 0xd1, 0x56, 0xdd, 0x03, - 0x40, 0x44, 0x2f, 0xe1, 0xb1, 0x03, 0x80, 0x11, 0x07, 0x28, 0x7f, 0x01, - 0xff, 0x45, 0x2f, 0x7f, 0xd9, 0x03, 0x00, 0x45, 0x78, 0x92, 0x73, 0x03, - 0x40, 0x06, 0x50, 0x00, 0x01, 0xff, 0x45, 0x34, 0x75, 0x01, 0x1f, 0x80, - 0x7c, 0x46, 0x04, 0x6f, 0xb1, 0x1f, 0x00, 0x44, 0xae, 0xee, 0x71, 0x1f, - 0x80, 0x69, 0xb0, 0x21, 0x45, 0x82, 0x6a, 0xac, 0x03, 0x00, 0xb6, 0x06, - 0x4d, 0xef, 0x4d, 0xb3, 0x1f, 0x40, 0x44, 0xb6, 0x2f, 0x70, 0x1f, 0x80, - 0x06, 0x45, 0x05, 0xe7, 0xb0, 0x1f, 0x40, 0x52, 0xea, 0x4d, 0xb2, 0x1f, - 0x40, 0x4a, 0x10, 0x9f, 0xb6, 0x1f, 0x80, 0x39, 0x44, 0x06, 0x87, 0x00, - 0x1f, 0xc0, 0x00, 0x05, 0x19, 0x00, 0x01, 0xff, 0x44, 0xae, 0xee, 0x04, - 0x1f, 0x80, 0x20, 0x4b, 0x0f, 0x9f, 0x06, 0x1f, 0x80, 0x13, 0x45, 0xb5, - 0x2f, 0x02, 0x1f, 0x80, 0x06, 0x4d, 0xef, 0x4d, 0x80, 0x1f, 0x40, 0x52, - 0xea, 0x4d, 0x82, 0x1f, 0x40, 0x52, 0xea, 0x4d, 0x86, 0x1f, 0x40, 0x52, - 0xea, 0x4d, 0x84, 0x1f, 0x40, 0x52, 0xea, 0x4d, 0xb7, 0x1f, 0x40, 0x52, - 0xea, 0x4d, 0xb4, 0x1f, 0x40, 0x05, 0x19, 0x00, 0x01, 0xff, 0x44, 0xae, - 0xee, 0x05, 0x1f, 0x80, 0x20, 0x4b, 0x0f, 0x9f, 0x07, 0x1f, 0x80, 0x13, - 0x45, 0xb5, 0x2f, 0x03, 0x1f, 0x80, 0x06, 0x4d, 0xef, 0x4d, 0x81, 0x1f, - 0x40, 0x52, 0xea, 0x4d, 0x83, 0x1f, 0x40, 0x52, 0xea, 0x4d, 0x87, 0x1f, - 0x40, 0x52, 0xea, 0x4d, 0x85, 0x1f, 0x40, 0x5d, 0x53, 0x15, 0xf6, 0x03, - 0x00, 0x03, 0x3a, 0x70, 0x01, 0xff, 0x46, 0xeb, 0x07, 0xf1, 0x03, 0x00, - 0x52, 0x70, 0x55, 0xfc, 0x03, 0x40, 0x4a, 0x10, 0x9f, 0xc0, 0x1f, 0x00, - 0x49, 0x30, 0xb7, 0xd5, 0x03, 0x00, 0x48, 0x0b, 0xaa, 0xd6, 0x03, 0x00, - 0x4d, 0x01, 0x46, 0xbe, 0x1f, 0x00, 0x44, 0x06, 0x87, 0xbf, 0x1f, 0xc0, - 0x00, 0x05, 0x19, 0x00, 0x01, 0xff, 0x44, 0xae, 0xee, 0xce, 0x1f, 0x00, - 0x4b, 0x0f, 0x9f, 0xcf, 0x1f, 0x00, 0x45, 0xb5, 0x2f, 0xcd, 0x1f, 0x40, - 0x48, 0xba, 0xc1, 0x7c, 0x01, 0x01, 0x03, 0xc4, 0x07, 0x0c, 0x4a, 0x67, - 0xb0, 0x84, 0x01, 0x01, 0x43, 0x12, 0x4a, 0xfd, 0x1f, 0x40, 0x49, 0x03, - 0xb7, 0x75, 0x01, 0x81, 0x06, 0x4c, 0x35, 0x92, 0x8b, 0x01, 0x41, 0x4f, - 0x8a, 0x67, 0x76, 0x01, 0x41, 0x4c, 0x01, 0x8d, 0x81, 0x01, 0x01, 0x4d, - 0x24, 0x88, 0x45, 0xd2, 0x41, 0x06, 0xc2, 0x05, 0x1d, 0x49, 0x59, 0xb8, - 0x83, 0x01, 0x01, 0x51, 0xb0, 0x5b, 0x75, 0x03, 0x00, 0x06, 0x5c, 0x15, - 0x01, 0xff, 0x4e, 0x62, 0x15, 0xf5, 0x03, 0x00, 0x4c, 0x1c, 0x1f, 0xf2, - 0x03, 0x40, 0x4d, 0x27, 0x7f, 0xd8, 0x03, 0x00, 0x47, 0xd0, 0x56, 0xdc, - 0x03, 0x00, 0x45, 0x2f, 0x7f, 0xde, 0x03, 0x00, 0xb3, 0x06, 0x43, 0x8c, - 0xf1, 0xf3, 0x03, 0x40, 0x44, 0x79, 0x92, 0xe0, 0x03, 0x00, 0x0d, 0xf7, - 0x3b, 0x06, 0x45, 0x1d, 0xe8, 0xda, 0x03, 0x40, 0x45, 0xd2, 0x56, 0x26, - 0x1d, 0x00, 0x45, 0xfd, 0xe4, 0x27, 0x1d, 0x00, 0x45, 0xe8, 0xac, 0x65, - 0xab, 0x00, 0xb0, 0x06, 0x43, 0xa6, 0x48, 0x29, 0x1d, 0x40, 0xe9, 0x28, - 0x1d, 0x00, 0x42, 0x2f, 0x03, 0x2a, 0x1d, 0x40, 0xa1, 0x0c, 0x46, 0x74, - 0x60, 0xbd, 0x1f, 0x00, 0x50, 0x6a, 0x67, 0x82, 0x01, 0x41, 0x48, 0x0b, - 0xaa, 0xd7, 0x03, 0x00, 0x4a, 0xe3, 0x8e, 0xf0, 0x03, 0x40, 0x4c, 0x35, - 0x8c, 0x8d, 0x01, 0x01, 0x1b, 0xe4, 0x1c, 0x01, 0xff, 0xd1, 0x1d, 0xd2, - 0x81, 0x79, 0xd2, 0x1e, 0xd2, 0x81, 0x5c, 0x93, 0x42, 0xd4, 0x1f, 0xd2, - 0x81, 0x21, 0xd5, 0x20, 0xd2, 0x81, 0x08, 0xd7, 0x21, 0xd2, 0x01, 0xd8, - 0x22, 0xd2, 0x41, 0xd0, 0x3d, 0xd2, 0x01, 0xd1, 0x3e, 0xd2, 0x01, 0xd2, - 0x3f, 0xd2, 0x01, 0xd3, 0x40, 0xd2, 0x01, 0xd4, 0x41, 0xd2, 0x41, 0xd0, - 0x36, 0xd2, 0x01, 0xd2, 0x37, 0xd2, 0x01, 0xd3, 0x38, 0xd2, 0x01, 0xd5, - 0x39, 0xd2, 0x01, 0xd7, 0x3a, 0xd2, 0x01, 0xd8, 0x3b, 0xd2, 0x01, 0xd9, - 0x3c, 0xd2, 0x41, 0xd0, 0x30, 0xd2, 0x01, 0xd2, 0x31, 0xd2, 0x01, 0xd6, - 0x32, 0xd2, 0x01, 0xd7, 0x33, 0xd2, 0x01, 0xd8, 0x34, 0xd2, 0x01, 0xd9, - 0x35, 0xd2, 0x41, 0xd3, 0x2a, 0xd2, 0x01, 0xd4, 0x2b, 0xd2, 0x01, 0xd5, - 0x2c, 0xd2, 0x01, 0xd6, 0x2d, 0xd2, 0x01, 0xd7, 0x2e, 0xd2, 0x01, 0xd9, - 0x2f, 0xd2, 0x41, 0xd1, 0x23, 0xd2, 0x01, 0xd2, 0x24, 0xd2, 0x01, 0xd3, - 0x25, 0xd2, 0x01, 0xd4, 0x26, 0xd2, 0x01, 0xd7, 0x27, 0xd2, 0x01, 0xd8, - 0x28, 0xd2, 0x01, 0xd9, 0x29, 0xd2, 0x41, 0x4e, 0xaa, 0x77, 0x80, 0x01, - 0x01, 0x4e, 0x6a, 0x79, 0x7f, 0x01, 0x41, 0x44, 0xcb, 0x5f, 0xfe, 0x1f, - 0x80, 0x26, 0x09, 0x79, 0x6a, 0x06, 0x4b, 0x72, 0x9f, 0x7b, 0x01, 0x41, - 0x04, 0x1a, 0x00, 0x06, 0x45, 0x82, 0x6a, 0x85, 0x03, 0x40, 0x44, 0xae, - 0xee, 0xee, 0x1f, 0x00, 0x4b, 0x0f, 0x9f, 0xc1, 0x1f, 0x00, 0x45, 0xb5, - 0x2f, 0xed, 0x1f, 0x40, 0x05, 0x19, 0x00, 0x01, 0xff, 0x44, 0xae, 0xee, - 0xde, 0x1f, 0x00, 0x4b, 0x0f, 0x9f, 0xdf, 0x1f, 0x00, 0x45, 0xb5, 0x2f, - 0xdd, 0x1f, 0x40, 0x5a, 0x0e, 0x1f, 0xfe, 0x03, 0x00, 0x4a, 0x09, 0xaa, - 0xcf, 0x03, 0x00, 0xac, 0x16, 0x09, 0x8e, 0x14, 0x06, 0x4c, 0xf1, 0x93, - 0xf4, 0x03, 0x40, 0x5a, 0x0e, 0x1f, 0xff, 0x03, 0x00, 0x53, 0x15, 0x1f, - 0xfd, 0x03, 0x40, 0x06, 0xc2, 0x05, 0x06, 0x52, 0x16, 0x1f, 0xf9, 0x03, - 0x40, 0xa1, 0xb3, 0x06, 0x44, 0x8a, 0x97, 0x92, 0x03, 0x00, 0x43, 0x0d, - 0x16, 0xa7, 0x03, 0x00, 0x45, 0x73, 0xe2, 0x94, 0x03, 0x00, 0xa5, 0xb3, - 0x04, 0x45, 0xd2, 0x56, 0x93, 0x03, 0x00, 0x44, 0xf2, 0x93, 0x70, 0x03, - 0x00, 0x44, 0xca, 0x2d, 0x99, 0x03, 0x80, 0xb5, 0x03, 0x45, 0xe1, 0x8e, - 0x9a, 0x03, 0x00, 0x45, 0xfd, 0xe4, 0x9b, 0x03, 0x00, 0x42, 0x57, 0x16, - 0x9c, 0x03, 0x00, 0x42, 0xd1, 0x15, 0x9d, 0x03, 0x00, 0x02, 0xe9, 0x04, - 0xae, 0x01, 0xb0, 0x95, 0x01, 0x43, 0xa6, 0x48, 0xa1, 0x03, 0x80, 0x87, - 0x01, 0xb3, 0x73, 0xb4, 0x65, 0x47, 0xf0, 0x87, 0xa5, 0x03, 0x80, 0x12, - 0x42, 0x93, 0x0c, 0x9e, 0x03, 0x00, 0x43, 0x8c, 0xf1, 0x7f, 0x03, 0x00, - 0x44, 0x0e, 0xf0, 0x96, 0x03, 0x40, 0x06, 0x50, 0x00, 0x01, 0xff, 0xa4, - 0x21, 0x46, 0x04, 0x6f, 0xe9, 0x1f, 0x00, 0x44, 0xae, 0xee, 0xeb, 0x1f, - 0x00, 0x45, 0x82, 0x6a, 0x8e, 0x03, 0x00, 0xb6, 0x01, 0xff, 0x44, 0xb6, - 0x2f, 0xea, 0x1f, 0x00, 0x45, 0x05, 0xe7, 0xe8, 0x1f, 0x40, 0x44, 0xcb, - 0x5f, 0x59, 0x1f, 0x80, 0x06, 0x48, 0x79, 0x6a, 0xab, 0x03, 0x40, 0x05, - 0x19, 0x00, 0x01, 0xff, 0x44, 0xae, 0xee, 0x5d, 0x1f, 0x00, 0x4b, 0x0f, - 0x9f, 0x5f, 0x1f, 0x00, 0x45, 0xb5, 0x2f, 0x5b, 0x1f, 0x40, 0x42, 0xd7, - 0x23, 0xa4, 0x03, 0x00, 0x44, 0xf2, 0x93, 0x98, 0x03, 0x40, 0x42, 0x1a, - 0x00, 0xfa, 0x03, 0x00, 0x42, 0x0b, 0x00, 0xf7, 0x03, 0x00, 0x44, 0x1d, - 0x1f, 0xa3, 0x03, 0x40, 0x4b, 0x09, 0x96, 0xec, 0x1f, 0x40, 0x51, 0xc6, - 0x56, 0x76, 0x03, 0x00, 0x42, 0x49, 0x00, 0xa6, 0x03, 0x00, 0xe9, 0xa0, - 0x03, 0x00, 0x42, 0x2f, 0x03, 0xa8, 0x03, 0x40, 0x43, 0xa3, 0x05, 0xa9, - 0x03, 0x80, 0x4e, 0x45, 0x3a, 0xe4, 0x9f, 0x03, 0xc0, 0x00, 0x06, 0x50, - 0x00, 0x01, 0xff, 0x45, 0x34, 0x75, 0x49, 0x1f, 0x80, 0x2a, 0x44, 0xae, - 0xee, 0xf9, 0x1f, 0x00, 0x45, 0xec, 0xe6, 0x48, 0x1f, 0x80, 0x0c, 0x45, - 0x82, 0x6a, 0x8c, 0x03, 0x00, 0x45, 0xb5, 0x2f, 0xf8, 0x1f, 0x40, 0x05, - 0x19, 0x00, 0x01, 0xff, 0x44, 0xae, 0xee, 0x4c, 0x1f, 0x00, 0x45, 0xb5, - 0x2f, 0x4a, 0x1f, 0x40, 0x05, 0x19, 0x00, 0x01, 0xff, 0x44, 0xae, 0xee, - 0x4d, 0x1f, 0x00, 0x45, 0xb5, 0x2f, 0x4b, 0x1f, 0x40, 0x06, 0x50, 0x00, - 0x01, 0xff, 0x45, 0x34, 0x75, 0x69, 0x1f, 0x80, 0x55, 0x44, 0xae, 0xee, - 0xfb, 0x1f, 0x00, 0xb0, 0x0c, 0x45, 0x82, 0x6a, 0x8f, 0x03, 0x00, 0x45, - 0xb5, 0x2f, 0xfa, 0x1f, 0x40, 0x4d, 0x01, 0x46, 0xfc, 0x1f, 0x00, 0x44, - 0x06, 0x87, 0x68, 0x1f, 0xc0, 0x00, 0x05, 0x19, 0x00, 0x01, 0xff, 0x44, - 0xae, 0xee, 0x6c, 0x1f, 0x80, 0x22, 0xb0, 0x0d, 0x45, 0xb5, 0x2f, 0x6a, - 0x1f, 0xc0, 0x00, 0x53, 0xfb, 0x45, 0xaa, 0x1f, 0x40, 0x4a, 0x10, 0x9f, - 0x6e, 0x1f, 0x80, 0x06, 0x4d, 0x01, 0x46, 0xa8, 0x1f, 0x40, 0x53, 0xfb, - 0x45, 0xae, 0x1f, 0x40, 0x53, 0xfb, 0x45, 0xac, 0x1f, 0x40, 0x05, 0x19, - 0x00, 0x01, 0xff, 0x44, 0xae, 0xee, 0x6d, 0x1f, 0x80, 0x22, 0xb0, 0x0d, - 0x45, 0xb5, 0x2f, 0x6b, 0x1f, 0xc0, 0x00, 0x53, 0xfb, 0x45, 0xab, 0x1f, - 0x40, 0x4a, 0x10, 0x9f, 0x6f, 0x1f, 0x80, 0x06, 0x4d, 0x01, 0x46, 0xa9, - 0x1f, 0x40, 0x53, 0xfb, 0x45, 0xaf, 0x1f, 0x40, 0x53, 0xfb, 0x45, 0xad, - 0x1f, 0x40, 0x06, 0x50, 0x00, 0x01, 0xff, 0xa4, 0x3f, 0x46, 0x04, 0x6f, - 0xd9, 0x1f, 0x00, 0x44, 0xae, 0xee, 0xdb, 0x1f, 0x00, 0x45, 0xec, 0xe6, - 0x38, 0x1f, 0x80, 0x15, 0x45, 0x82, 0x6a, 0x8a, 0x03, 0x00, 0xb6, 0x01, - 0xff, 0x44, 0xb6, 0x2f, 0xda, 0x1f, 0x00, 0x45, 0x05, 0xe7, 0xd8, 0x1f, - 0x40, 0x05, 0x19, 0x00, 0x01, 0xff, 0x44, 0xae, 0xee, 0x3c, 0x1f, 0x00, - 0x4b, 0x0f, 0x9f, 0x3e, 0x1f, 0x00, 0x45, 0xb5, 0x2f, 0x3a, 0x1f, 0x40, - 0x44, 0xcb, 0x5f, 0x39, 0x1f, 0x80, 0x06, 0x48, 0x79, 0x6a, 0xaa, 0x03, - 0x40, 0x05, 0x19, 0x00, 0x01, 0xff, 0x44, 0xae, 0xee, 0x3d, 0x1f, 0x00, - 0x4b, 0x0f, 0x9f, 0x3f, 0x1f, 0x00, 0x45, 0xb5, 0x2f, 0x3b, 0x1f, 0x40, - 0x46, 0x63, 0x15, 0x95, 0x03, 0x80, 0x9c, 0x01, 0x42, 0x12, 0x00, 0x97, - 0x03, 0xc0, 0x00, 0x06, 0x50, 0x00, 0x01, 0xff, 0x45, 0x34, 0x75, 0x29, - 0x1f, 0x80, 0x55, 0x44, 0xae, 0xee, 0xcb, 0x1f, 0x00, 0xb0, 0x0c, 0x45, - 0x82, 0x6a, 0x89, 0x03, 0x00, 0x45, 0xb5, 0x2f, 0xca, 0x1f, 0x40, 0x4d, - 0x01, 0x46, 0xcc, 0x1f, 0x00, 0x44, 0x06, 0x87, 0x28, 0x1f, 0xc0, 0x00, - 0x05, 0x19, 0x00, 0x01, 0xff, 0x44, 0xae, 0xee, 0x2c, 0x1f, 0x80, 0x22, - 0xb0, 0x0d, 0x45, 0xb5, 0x2f, 0x2a, 0x1f, 0xc0, 0x00, 0x53, 0xfb, 0x45, - 0x9a, 0x1f, 0x40, 0x4a, 0x10, 0x9f, 0x2e, 0x1f, 0x80, 0x06, 0x4d, 0x01, - 0x46, 0x98, 0x1f, 0x40, 0x53, 0xfb, 0x45, 0x9e, 0x1f, 0x40, 0x53, 0xfb, - 0x45, 0x9c, 0x1f, 0x40, 0x05, 0x19, 0x00, 0x01, 0xff, 0x44, 0xae, 0xee, - 0x2d, 0x1f, 0x80, 0x22, 0xb0, 0x0d, 0x45, 0xb5, 0x2f, 0x2b, 0x1f, 0xc0, - 0x00, 0x53, 0xfb, 0x45, 0x9b, 0x1f, 0x40, 0x4a, 0x10, 0x9f, 0x2f, 0x1f, - 0x80, 0x06, 0x4d, 0x01, 0x46, 0x99, 0x1f, 0x40, 0x53, 0xfb, 0x45, 0x9f, - 0x1f, 0x40, 0x53, 0xfb, 0x45, 0x9d, 0x1f, 0x40, 0x06, 0x50, 0x00, 0x01, - 0xff, 0x45, 0x34, 0x75, 0x19, 0x1f, 0x80, 0x2a, 0x44, 0xae, 0xee, 0xc9, - 0x1f, 0x00, 0x45, 0xec, 0xe6, 0x18, 0x1f, 0x80, 0x0c, 0x45, 0x82, 0x6a, - 0x88, 0x03, 0x00, 0x45, 0xb5, 0x2f, 0xc8, 0x1f, 0x40, 0x05, 0x19, 0x00, - 0x01, 0xff, 0x44, 0xae, 0xee, 0x1c, 0x1f, 0x00, 0x45, 0xb5, 0x2f, 0x1a, - 0x1f, 0x40, 0x05, 0x19, 0x00, 0x01, 0xff, 0x44, 0xae, 0xee, 0x1d, 0x1f, - 0x00, 0x45, 0xb5, 0x2f, 0x1b, 0x1f, 0x40, 0x44, 0x2f, 0xe1, 0x91, 0x03, - 0x80, 0x06, 0x4c, 0x71, 0x92, 0x72, 0x03, 0x40, 0x06, 0x50, 0x00, 0x01, - 0xff, 0x45, 0x34, 0x75, 0x09, 0x1f, 0x80, 0x64, 0x46, 0x04, 0x6f, 0xb9, - 0x1f, 0x00, 0x44, 0xae, 0xee, 0xbb, 0x1f, 0x00, 0xb0, 0x15, 0x45, 0x82, - 0x6a, 0x86, 0x03, 0x00, 0xb6, 0x01, 0xff, 0x44, 0xb6, 0x2f, 0xba, 0x1f, - 0x00, 0x45, 0x05, 0xe7, 0xb8, 0x1f, 0x40, 0x4d, 0x01, 0x46, 0xbc, 0x1f, - 0x00, 0x44, 0x06, 0x87, 0x08, 0x1f, 0xc0, 0x00, 0x05, 0x19, 0x00, 0x01, - 0xff, 0x44, 0xae, 0xee, 0x0c, 0x1f, 0x80, 0x22, 0xb0, 0x0d, 0x45, 0xb5, - 0x2f, 0x0a, 0x1f, 0xc0, 0x00, 0x53, 0xfb, 0x45, 0x8a, 0x1f, 0x40, 0x4a, - 0x10, 0x9f, 0x0e, 0x1f, 0x80, 0x06, 0x4d, 0x01, 0x46, 0x88, 0x1f, 0x40, - 0x53, 0xfb, 0x45, 0x8e, 0x1f, 0x40, 0x53, 0xfb, 0x45, 0x8c, 0x1f, 0x40, - 0x05, 0x19, 0x00, 0x01, 0xff, 0x44, 0xae, 0xee, 0x0d, 0x1f, 0x80, 0x22, - 0xb0, 0x0d, 0x45, 0xb5, 0x2f, 0x0b, 0x1f, 0xc0, 0x00, 0x53, 0xfb, 0x45, - 0x8b, 0x1f, 0x40, 0x4a, 0x10, 0x9f, 0x0f, 0x1f, 0x80, 0x06, 0x4d, 0x01, - 0x46, 0x89, 0x1f, 0x40, 0x53, 0xfb, 0x45, 0x8f, 0x1f, 0x40, 0x53, 0xfb, - 0x45, 0x8d, 0x1f, 0x40, 0x0a, 0xa3, 0xa6, 0x15, 0x49, 0x2d, 0xba, 0x87, - 0x03, 0x00, 0xb2, 0x01, 0xff, 0x49, 0x20, 0xbb, 0x87, 0x01, 0x01, 0x49, - 0x21, 0xbd, 0x86, 0x01, 0x41, 0x06, 0x18, 0xd7, 0xe6, 0x01, 0xa3, 0xd7, - 0x01, 0x51, 0x3c, 0x58, 0x73, 0x01, 0x01, 0x0b, 0xbb, 0x99, 0xb9, 0x01, - 0x03, 0xa4, 0x19, 0x97, 0x01, 0x4d, 0x21, 0x84, 0x63, 0x01, 0x01, 0x53, - 0x10, 0x4a, 0x70, 0x01, 0x01, 0x53, 0xfe, 0x4b, 0x74, 0x01, 0x01, 0xb4, - 0x01, 0xff, 0x08, 0x22, 0xc4, 0x30, 0x0a, 0x37, 0xae, 0x01, 0xff, 0x02, - 0xc8, 0x02, 0x0d, 0x43, 0xb0, 0x06, 0x60, 0x01, 0xc1, 0x00, 0x4f, 0x8a, - 0x67, 0x61, 0x01, 0x41, 0x43, 0x09, 0x4c, 0x66, 0x01, 0x81, 0x0d, 0x42, - 0x32, 0x00, 0x5f, 0x01, 0xc1, 0x00, 0x48, 0x21, 0x11, 0x6d, 0x01, 0x41, - 0x4f, 0x8a, 0x67, 0x67, 0x01, 0x41, 0x02, 0xc8, 0x02, 0x33, 0x43, 0xbf, - 0x0a, 0x59, 0x01, 0x81, 0x1d, 0xb4, 0x01, 0xff, 0x42, 0x92, 0x01, 0x64, - 0x01, 0x01, 0xa8, 0x06, 0x42, 0x15, 0x02, 0x5c, 0x01, 0x41, 0x44, 0x2c, - 0x11, 0x65, 0x01, 0x01, 0x4b, 0x8f, 0x17, 0x6b, 0x01, 0x41, 0x80, 0x01, - 0xff, 0x47, 0x22, 0x11, 0x6a, 0x01, 0x01, 0x48, 0xd5, 0x5c, 0x71, 0x01, - 0x41, 0x43, 0x09, 0x4c, 0x69, 0x01, 0x01, 0x03, 0x5f, 0x00, 0x01, 0xff, - 0x47, 0x22, 0x11, 0x6e, 0x01, 0x01, 0x48, 0xd5, 0x5c, 0x72, 0x01, 0x41, - 0x51, 0xa4, 0x56, 0x58, 0x01, 0x01, 0x08, 0xb2, 0xc5, 0x01, 0xff, 0x45, - 0x07, 0x4c, 0x68, 0x01, 0x01, 0x43, 0xbf, 0x0a, 0x5a, 0x01, 0x01, 0x43, - 0xb0, 0x06, 0x62, 0x01, 0x41, 0x4c, 0xb0, 0x38, 0x6c, 0x01, 0x01, 0x43, - 0xd0, 0x09, 0x5b, 0x01, 0xc1, 0x00, 0x49, 0xf2, 0x45, 0x5e, 0x01, 0x41, - 0x55, 0xa7, 0x38, 0x6f, 0x01, 0x01, 0x54, 0xe7, 0x45, 0x5d, 0x01, 0x41, - 0x02, 0xc8, 0x02, 0x5a, 0x04, 0xbf, 0x0a, 0x20, 0x04, 0xd1, 0x5c, 0x01, - 0xff, 0x44, 0x0d, 0x4c, 0x57, 0x01, 0x01, 0x47, 0x8d, 0x6c, 0x50, 0x01, - 0x01, 0xb4, 0x01, 0xff, 0x46, 0x1c, 0xc0, 0x49, 0x01, 0x01, 0x4f, 0x85, - 0x6c, 0x55, 0x01, 0x41, 0x47, 0xf3, 0x45, 0x42, 0x01, 0x01, 0xa8, 0x17, - 0x47, 0x2a, 0x01, 0x40, 0x01, 0x01, 0x09, 0xd5, 0x5c, 0x01, 0xff, 0x47, - 0x8d, 0x6c, 0x54, 0x01, 0x01, 0x47, 0x1b, 0xc0, 0x4d, 0x01, 0x41, 0x43, - 0x23, 0x00, 0x41, 0x01, 0x01, 0x07, 0x23, 0x11, 0x01, 0xff, 0x47, 0x8d, - 0x6c, 0x52, 0x01, 0x01, 0x47, 0x1b, 0xc0, 0x4b, 0x01, 0x41, 0x43, 0x09, - 0x4c, 0x44, 0x01, 0x81, 0x3c, 0x42, 0x32, 0x00, 0x43, 0x01, 0xc1, 0x00, - 0x80, 0x01, 0xff, 0x47, 0x22, 0x11, 0x45, 0x01, 0x81, 0x1c, 0x47, 0x8d, - 0x6c, 0x4f, 0x01, 0x01, 0xb4, 0x01, 0xff, 0x46, 0x1c, 0xc0, 0x48, 0x01, - 0x01, 0x47, 0x1d, 0x3b, 0x46, 0x01, 0xc1, 0x00, 0x48, 0x1a, 0xc0, 0x4e, - 0x01, 0x41, 0x80, 0x01, 0xff, 0x47, 0x8d, 0x6c, 0x53, 0x01, 0x01, 0x47, - 0x1b, 0xc0, 0x4c, 0x01, 0x41, 0x80, 0x01, 0xff, 0x47, 0x8d, 0x6c, 0x51, - 0x01, 0x01, 0xb4, 0x01, 0xff, 0x46, 0x1c, 0xc0, 0x4a, 0x01, 0x01, 0x47, - 0x1d, 0x3b, 0x47, 0x01, 0xc1, 0x00, 0x48, 0x8c, 0x6c, 0x56, 0x01, 0x41, - 0xa1, 0x9c, 0x01, 0xa2, 0x82, 0x01, 0x4f, 0x2d, 0x6a, 0xa7, 0x2a, 0x80, - 0x75, 0x55, 0x21, 0x3a, 0xdb, 0x22, 0x00, 0xaf, 0x1d, 0x44, 0x2f, 0x03, - 0x3e, 0x00, 0x00, 0x05, 0x51, 0x00, 0x01, 0xff, 0x4d, 0xea, 0x7f, 0x7a, - 0x2a, 0x00, 0x43, 0xd4, 0x09, 0xd7, 0x22, 0x00, 0x53, 0x07, 0x4b, 0x7c, - 0x2a, 0x40, 0x02, 0x18, 0x00, 0x11, 0x03, 0x32, 0x00, 0x01, 0xff, 0x49, - 0xa8, 0x0c, 0x67, 0x22, 0x00, 0x51, 0x3a, 0x5a, 0xa4, 0x2a, 0x40, 0x4b, - 0x0e, 0x1e, 0x86, 0x2a, 0x00, 0x03, 0x7b, 0x00, 0x25, 0x49, 0xec, 0x00, - 0x77, 0x22, 0x00, 0x50, 0xba, 0x65, 0x7e, 0x2a, 0xc0, 0x00, 0x0a, 0xa5, - 0x3a, 0x01, 0xff, 0x45, 0x5c, 0x00, 0x82, 0x2a, 0x80, 0x06, 0x46, 0x58, - 0x13, 0x80, 0x2a, 0x40, 0x45, 0xc2, 0x00, 0x84, 0x2a, 0x40, 0x45, 0xac, - 0x0c, 0x65, 0x22, 0x00, 0x4a, 0x06, 0x39, 0x73, 0x22, 0x40, 0x54, 0x93, - 0x00, 0xa9, 0x2a, 0x40, 0x4f, 0x2c, 0x6b, 0xa5, 0x2a, 0x00, 0x0a, 0xfc, - 0x38, 0x01, 0xff, 0x45, 0xac, 0x0c, 0x69, 0x22, 0x00, 0x4a, 0x06, 0x39, - 0xe7, 0x22, 0x40, 0x05, 0x5d, 0x00, 0x11, 0x03, 0x1b, 0x00, 0x01, 0xff, - 0x4f, 0x37, 0x6f, 0x8a, 0x2a, 0x00, 0x58, 0x6d, 0x2a, 0x88, 0x2a, 0x40, - 0x61, 0x59, 0x0d, 0x8c, 0x2a, 0x00, 0x61, 0xbc, 0x0d, 0x92, 0x2a, 0x00, - 0x50, 0xb3, 0x02, 0x78, 0x29, 0x00, 0xb3, 0x01, 0xff, 0x07, 0x23, 0xcf, - 0x06, 0x70, 0xd9, 0x00, 0x94, 0x2a, 0x40, 0x4f, 0xe6, 0x00, 0x90, 0x2a, - 0x00, 0x48, 0x52, 0x28, 0x8e, 0x2a, 0x40, 0x4b, 0x37, 0x99, 0x93, 0xf3, - 0x01, 0x05, 0x1f, 0xe6, 0x0c, 0x43, 0xc7, 0x63, 0x47, 0xf3, 0x01, 0x49, - 0x90, 0x22, 0x60, 0x00, 0x40, 0x4e, 0x9a, 0x74, 0x57, 0x13, 0x01, 0x07, - 0xc1, 0x05, 0x8b, 0x01, 0x42, 0xe9, 0x04, 0x50, 0x13, 0x01, 0x05, 0x2f, - 0x03, 0x48, 0x0b, 0xd1, 0x75, 0x01, 0xff, 0xa1, 0x35, 0x42, 0x27, 0x01, - 0x47, 0x13, 0x01, 0xe9, 0x3f, 0x13, 0x81, 0x26, 0x42, 0x69, 0x05, 0x4b, - 0x13, 0x01, 0xf5, 0x41, 0x13, 0x81, 0x17, 0x08, 0x9b, 0xbe, 0x01, 0xff, - 0xec, 0x62, 0x13, 0x81, 0x09, 0xf2, 0x43, 0x13, 0xc1, 0x00, 0xf2, 0x44, - 0x13, 0x41, 0xec, 0x63, 0x13, 0x41, 0xf5, 0x42, 0x13, 0x41, 0xe9, 0x40, - 0x13, 0x41, 0xe1, 0x3e, 0x13, 0x01, 0xe9, 0x48, 0x13, 0x01, 0xf5, 0x4c, - 0x13, 0x41, 0xa1, 0x2b, 0xa3, 0x1d, 0x45, 0x5a, 0x3e, 0x3c, 0x13, 0x01, - 0x45, 0xce, 0xe6, 0x5d, 0x13, 0x01, 0x02, 0x02, 0x00, 0x01, 0xff, 0x44, - 0x5d, 0x23, 0x4d, 0x13, 0x01, 0x45, 0xa3, 0x4a, 0x03, 0x13, 0x41, 0x4a, - 0x50, 0x23, 0x01, 0x13, 0x01, 0x57, 0xc7, 0x15, 0x00, 0x13, 0x41, 0x47, - 0xd1, 0x15, 0x02, 0x13, 0x01, 0x47, 0xf2, 0x86, 0x3d, 0x13, 0x41, 0xe1, - 0x05, 0x13, 0x81, 0x9a, 0x02, 0xa2, 0x8d, 0x02, 0xa3, 0x80, 0x02, 0xa4, - 0xe7, 0x01, 0x42, 0x27, 0x01, 0x0f, 0x13, 0x01, 0xa7, 0xd4, 0x01, 0x42, - 0x22, 0x00, 0x39, 0x13, 0x01, 0xe9, 0x07, 0x13, 0x81, 0xc4, 0x01, 0xaa, - 0xb7, 0x01, 0xab, 0xaa, 0x01, 0xac, 0x9d, 0x01, 0x42, 0x6c, 0x00, 0x2e, - 0x13, 0x01, 0xae, 0x7f, 0x42, 0x69, 0x05, 0x13, 0x13, 0x01, 0xb0, 0x6d, - 0x42, 0x71, 0x00, 0x30, 0x13, 0x01, 0xb3, 0x55, 0xb4, 0x3c, 0xf5, 0x09, - 0x13, 0x81, 0x33, 0xb6, 0x06, 0x42, 0x34, 0x22, 0x2f, 0x13, 0x41, 0xe1, - 0x35, 0x13, 0x01, 0x05, 0x8b, 0x0a, 0x17, 0x07, 0x9c, 0xbe, 0x01, 0xff, - 0xec, 0x0c, 0x13, 0x81, 0x09, 0xf2, 0x0b, 0x13, 0xc1, 0x00, 0xf2, 0x60, - 0x13, 0x41, 0xec, 0x61, 0x13, 0x41, 0x48, 0xd0, 0x15, 0x5e, 0x13, 0x01, - 0x4f, 0xe6, 0x16, 0x5f, 0x13, 0x41, 0xf5, 0x0a, 0x13, 0x41, 0xe1, 0x24, - 0x13, 0x01, 0x42, 0x22, 0x00, 0x25, 0x13, 0x01, 0xb4, 0x01, 0xff, 0xe1, - 0x1f, 0x13, 0x01, 0x42, 0x22, 0x00, 0x20, 0x13, 0x41, 0xe1, 0x38, 0x13, - 0x01, 0x42, 0x22, 0x00, 0x36, 0x13, 0x01, 0x42, 0x15, 0x06, 0x37, 0x13, - 0x41, 0xe1, 0x2a, 0x13, 0x01, 0x42, 0x22, 0x00, 0x2b, 0x13, 0x41, 0xe1, - 0x28, 0x13, 0x01, 0x42, 0x24, 0x02, 0x19, 0x13, 0x01, 0x42, 0xff, 0x04, - 0x23, 0x13, 0x01, 0x42, 0x34, 0x22, 0x1e, 0x13, 0x41, 0xe1, 0x32, 0x13, - 0x01, 0x42, 0x74, 0x00, 0x33, 0x13, 0x41, 0xe1, 0x15, 0x13, 0x01, 0x42, - 0x22, 0x00, 0x16, 0x13, 0x41, 0xe1, 0x1c, 0x13, 0x01, 0x42, 0x22, 0x00, - 0x1d, 0x13, 0x41, 0xe9, 0x08, 0x13, 0x41, 0xe1, 0x17, 0x13, 0x01, 0x42, - 0x22, 0x00, 0x18, 0x13, 0x41, 0xe1, 0x26, 0x13, 0x01, 0xa4, 0x06, 0x42, - 0x22, 0x00, 0x27, 0x13, 0x41, 0xe1, 0x21, 0x13, 0x01, 0x42, 0x22, 0x00, - 0x22, 0x13, 0x41, 0xe1, 0x1a, 0x13, 0x01, 0x42, 0x22, 0x00, 0x1b, 0x13, - 0x41, 0xe1, 0x2c, 0x13, 0x01, 0x42, 0x22, 0x00, 0x2d, 0x13, 0x41, 0xe1, - 0x06, 0x13, 0x01, 0xe9, 0x10, 0x13, 0x01, 0xf5, 0x14, 0x13, 0x41, 0xa1, - 0xd5, 0x01, 0x45, 0xd7, 0xd9, 0x7d, 0xf9, 0x01, 0x44, 0xba, 0xed, 0xcc, - 0xf3, 0x01, 0x46, 0x50, 0xdb, 0x7d, 0xf7, 0x01, 0x43, 0x55, 0x0d, 0xbf, - 0xfa, 0x01, 0x45, 0x46, 0xe7, 0x8d, 0xf9, 0x01, 0x0c, 0xfd, 0x93, 0x01, - 0xff, 0xa1, 0xa3, 0x01, 0x47, 0x91, 0xcc, 0x31, 0x03, 0x01, 0x44, 0x3e, - 0xec, 0x33, 0x03, 0x01, 0x43, 0xc2, 0xa9, 0x39, 0x03, 0x01, 0x45, 0x4a, - 0xe3, 0x46, 0x03, 0x01, 0x44, 0xba, 0xec, 0x32, 0x03, 0x01, 0xa8, 0x77, - 0xa9, 0x69, 0x43, 0x74, 0xb8, 0x3e, 0x03, 0x01, 0x45, 0xda, 0xe4, 0x3a, - 0x03, 0x01, 0x45, 0xf8, 0xe4, 0x3b, 0x03, 0x01, 0x45, 0x19, 0x90, 0x3c, - 0x03, 0x01, 0xae, 0x38, 0x45, 0x88, 0xe6, 0x49, 0x03, 0x01, 0x48, 0x12, - 0xc7, 0x40, 0x03, 0x01, 0x48, 0x62, 0xc7, 0x35, 0x03, 0x01, 0x45, 0x0a, - 0xe7, 0x42, 0x03, 0x01, 0x45, 0xa0, 0xe7, 0x43, 0x03, 0x01, 0xb4, 0x0c, - 0x44, 0x92, 0xef, 0x3f, 0x03, 0x01, 0x45, 0x2b, 0xe9, 0x45, 0x03, 0x41, - 0x44, 0x72, 0xec, 0x44, 0x03, 0x01, 0x45, 0xfe, 0xe3, 0x38, 0x03, 0x41, - 0x45, 0x74, 0xe1, 0x3d, 0x03, 0x01, 0x03, 0xc3, 0x07, 0x01, 0xff, 0x48, - 0x21, 0x11, 0x4a, 0x03, 0x01, 0x42, 0x2e, 0x11, 0x41, 0x03, 0x41, 0x44, - 0xae, 0xec, 0x47, 0x03, 0x01, 0x43, 0xa6, 0xc8, 0x36, 0x03, 0x41, 0x43, - 0xcf, 0x8f, 0x37, 0x03, 0x01, 0x44, 0xd2, 0xef, 0x48, 0x03, 0x41, 0x43, - 0x77, 0xe1, 0x30, 0x03, 0x01, 0x45, 0x3f, 0xe4, 0x34, 0x03, 0x41, 0x45, - 0xe4, 0xe4, 0x45, 0xf9, 0x01, 0xf4, 0x10, 0xf4, 0x41, 0xa1, 0x1b, 0x4a, - 0x93, 0xa7, 0xe6, 0x29, 0x00, 0xaf, 0x01, 0xff, 0x51, 0x1b, 0x57, 0x10, - 0xf3, 0x01, 0x43, 0xec, 0x49, 0xe4, 0xf9, 0x01, 0x49, 0xbf, 0xbe, 0x1f, - 0xf3, 0x41, 0x08, 0x1a, 0x5a, 0x06, 0x4a, 0xe1, 0xae, 0x5b, 0xf9, 0x41, - 0x0f, 0xb9, 0x05, 0xc6, 0x02, 0x0d, 0x4b, 0x08, 0x01, 0xff, 0x43, 0x9f, - 0xf0, 0x30, 0x2c, 0x00, 0xa2, 0xac, 0x02, 0xa3, 0x9d, 0x02, 0xa4, 0x88, - 0x02, 0xa6, 0xf9, 0x01, 0x47, 0x74, 0xce, 0x33, 0x2c, 0x00, 0x44, 0xee, - 0xec, 0x48, 0x2c, 0x00, 0xe9, 0x3b, 0x2c, 0x80, 0xc2, 0x01, 0x44, 0x86, - 0xed, 0x3d, 0x2c, 0x00, 0xac, 0xad, 0x01, 0x47, 0x63, 0x69, 0x3f, 0x2c, - 0x00, 0x45, 0xd4, 0xe5, 0x40, 0x2c, 0x00, 0xaf, 0x92, 0x01, 0xb0, 0x85, - 0x01, 0x45, 0x4b, 0xe7, 0x43, 0x2c, 0x00, 0xb3, 0x51, 0xb4, 0x3d, 0x43, - 0x3e, 0xd3, 0x46, 0x2c, 0x00, 0x44, 0xa6, 0xef, 0x32, 0x2c, 0x00, 0xb9, - 0x0f, 0xba, 0x01, 0xff, 0x45, 0xe6, 0xe2, 0x38, 0x2c, 0x00, 0x46, 0x94, - 0xd9, 0x36, 0x2c, 0x40, 0x43, 0xb3, 0x00, 0x51, 0x2c, 0x00, 0xa5, 0x08, - 0xef, 0x56, 0x2c, 0x00, 0xf5, 0x53, 0x2c, 0x40, 0xb2, 0x06, 0x43, 0xd7, - 0x09, 0x35, 0x2c, 0x40, 0xe9, 0x50, 0x2c, 0x00, 0xf5, 0x4f, 0x2c, 0x40, - 0x4b, 0x0c, 0xa0, 0x5d, 0x2c, 0x00, 0x42, 0x2f, 0x03, 0x4c, 0x2c, 0x00, - 0x45, 0xfe, 0xe8, 0x45, 0x2c, 0x40, 0xa8, 0x19, 0x44, 0xd2, 0xed, 0x44, - 0x2c, 0x00, 0x48, 0xd1, 0xbc, 0x54, 0x2c, 0x80, 0x06, 0x49, 0x9e, 0xbb, - 0x52, 0x2c, 0x40, 0x4a, 0x5f, 0xa4, 0x55, 0x2c, 0x40, 0xe1, 0x4e, 0x2c, - 0x00, 0x42, 0x12, 0x00, 0x4b, 0x2c, 0xc0, 0x00, 0x43, 0x3a, 0x89, 0x5c, - 0x2c, 0x40, 0xe5, 0x4a, 0x2c, 0x00, 0x45, 0x35, 0xdc, 0x42, 0x2c, 0x40, - 0x42, 0xd1, 0x15, 0x41, 0x2c, 0x00, 0x42, 0x5c, 0x01, 0x49, 0x2c, 0x40, - 0x4f, 0x5b, 0x69, 0x5e, 0x2c, 0x00, 0x46, 0x20, 0xd0, 0x3e, 0x2c, 0x40, - 0x4b, 0xf1, 0x9d, 0x3a, 0x2c, 0x00, 0x07, 0x16, 0x21, 0x0f, 0x02, 0xb3, - 0x27, 0x01, 0xff, 0xe5, 0x39, 0x2c, 0x00, 0x44, 0x1d, 0x84, 0x5b, 0x2c, - 0x40, 0x47, 0xb4, 0xcc, 0x59, 0x2c, 0x00, 0x49, 0xd0, 0xbc, 0x57, 0x2c, - 0x40, 0x43, 0xbc, 0x05, 0x5a, 0x2c, 0x00, 0x44, 0xe5, 0xbc, 0x47, 0x2c, - 0x40, 0x45, 0x94, 0xe4, 0x3c, 0x2c, 0x00, 0x44, 0x76, 0xee, 0x34, 0x2c, - 0x00, 0x44, 0x0a, 0xf0, 0x37, 0x2c, 0x40, 0x4d, 0x68, 0x7f, 0x5f, 0x2c, - 0x00, 0x45, 0x70, 0x7f, 0x4d, 0x2c, 0x40, 0x46, 0xb5, 0xcc, 0x58, 0x2c, - 0x00, 0x43, 0xbc, 0xcf, 0x31, 0x2c, 0x40, 0x43, 0x9f, 0xf0, 0x00, 0x2c, - 0x00, 0xa2, 0xac, 0x02, 0xa3, 0x9d, 0x02, 0xa4, 0x88, 0x02, 0xa6, 0xf9, - 0x01, 0x47, 0x74, 0xce, 0x03, 0x2c, 0x00, 0x44, 0xee, 0xec, 0x18, 0x2c, - 0x00, 0xe9, 0x0b, 0x2c, 0x80, 0xc2, 0x01, 0x44, 0x86, 0xed, 0x0d, 0x2c, - 0x00, 0xac, 0xad, 0x01, 0x47, 0x63, 0x69, 0x0f, 0x2c, 0x00, 0x45, 0xd4, - 0xe5, 0x10, 0x2c, 0x00, 0xaf, 0x92, 0x01, 0xb0, 0x85, 0x01, 0x45, 0x4b, - 0xe7, 0x13, 0x2c, 0x00, 0xb3, 0x51, 0xb4, 0x3d, 0x43, 0x3e, 0xd3, 0x16, - 0x2c, 0x00, 0x44, 0xa6, 0xef, 0x02, 0x2c, 0x00, 0xb9, 0x0f, 0xba, 0x01, - 0xff, 0x45, 0xe6, 0xe2, 0x08, 0x2c, 0x00, 0x46, 0x94, 0xd9, 0x06, 0x2c, - 0x40, 0x43, 0xb3, 0x00, 0x21, 0x2c, 0x00, 0xa5, 0x08, 0xef, 0x26, 0x2c, - 0x00, 0xf5, 0x23, 0x2c, 0x40, 0xb2, 0x06, 0x43, 0xd7, 0x09, 0x05, 0x2c, - 0x40, 0xe9, 0x20, 0x2c, 0x00, 0xf5, 0x1f, 0x2c, 0x40, 0x4b, 0x0c, 0xa0, - 0x2d, 0x2c, 0x00, 0x42, 0x2f, 0x03, 0x1c, 0x2c, 0x00, 0x45, 0xfe, 0xe8, - 0x15, 0x2c, 0x40, 0xa8, 0x19, 0x44, 0xd2, 0xed, 0x14, 0x2c, 0x00, 0x48, - 0xd1, 0xbc, 0x24, 0x2c, 0x80, 0x06, 0x49, 0x9e, 0xbb, 0x22, 0x2c, 0x40, - 0x4a, 0x5f, 0xa4, 0x25, 0x2c, 0x40, 0xe1, 0x1e, 0x2c, 0x00, 0x42, 0x12, - 0x00, 0x1b, 0x2c, 0xc0, 0x00, 0x43, 0x3a, 0x89, 0x2c, 0x2c, 0x40, 0xe5, - 0x1a, 0x2c, 0x00, 0x45, 0x35, 0xdc, 0x12, 0x2c, 0x40, 0x42, 0xd1, 0x15, - 0x11, 0x2c, 0x00, 0x42, 0x5c, 0x01, 0x19, 0x2c, 0x40, 0x4f, 0x5b, 0x69, - 0x2e, 0x2c, 0x00, 0x46, 0x20, 0xd0, 0x0e, 0x2c, 0x40, 0x4b, 0xf1, 0x9d, - 0x0a, 0x2c, 0x00, 0x07, 0x16, 0x21, 0x0f, 0x02, 0xb3, 0x27, 0x01, 0xff, - 0xe5, 0x09, 0x2c, 0x00, 0x44, 0x1d, 0x84, 0x2b, 0x2c, 0x40, 0x47, 0xb4, - 0xcc, 0x29, 0x2c, 0x00, 0x49, 0xd0, 0xbc, 0x27, 0x2c, 0x40, 0x43, 0xbc, - 0x05, 0x2a, 0x2c, 0x00, 0x44, 0xe5, 0xbc, 0x17, 0x2c, 0x40, 0x45, 0x94, - 0xe4, 0x0c, 0x2c, 0x00, 0x44, 0x76, 0xee, 0x04, 0x2c, 0x00, 0x44, 0x0a, - 0xf0, 0x07, 0x2c, 0x40, 0x4d, 0x68, 0x7f, 0x2f, 0x2c, 0x00, 0x45, 0x70, - 0x7f, 0x1d, 0x2c, 0x40, 0x46, 0xb5, 0xcc, 0x28, 0x2c, 0x00, 0x43, 0xbc, - 0xcf, 0x01, 0x2c, 0x40, 0x4a, 0x7b, 0xab, 0x37, 0x21, 0x00, 0x49, 0xee, - 0xb9, 0xda, 0xfa, 0x01, 0xb2, 0x01, 0xff, 0x49, 0x64, 0xb3, 0x92, 0xf9, - 0x01, 0xec, 0x67, 0xf4, 0xc1, 0x00, 0x48, 0x2e, 0x4a, 0xca, 0xf6, 0x41, - 0x42, 0x17, 0x00, 0x99, 0x26, 0x80, 0xc0, 0x09, 0xad, 0xb1, 0x09, 0x43, - 0xde, 0x7c, 0xde, 0xf9, 0x01, 0xaf, 0x0c, 0x4f, 0x26, 0x71, 0xb0, 0x20, - 0x00, 0x47, 0x52, 0xd3, 0x13, 0x30, 0x40, 0x06, 0x53, 0x54, 0x81, 0x09, - 0x06, 0xb2, 0x99, 0x01, 0xff, 0x0f, 0xb9, 0x05, 0xf3, 0x06, 0x07, 0xc1, - 0x05, 0xc1, 0x04, 0x18, 0x95, 0x29, 0x8f, 0x02, 0x53, 0xce, 0x4a, 0xfb, - 0x10, 0x00, 0x0d, 0x4b, 0x08, 0x01, 0xff, 0xa1, 0xf7, 0x01, 0x43, 0xba, - 0x15, 0x01, 0x2d, 0x00, 0xa3, 0xd4, 0x01, 0x43, 0x1d, 0x11, 0x03, 0x2d, - 0x00, 0x42, 0x92, 0x01, 0x04, 0x2d, 0x00, 0xa7, 0xb9, 0x01, 0xa8, 0x9c, - 0x01, 0x42, 0x9e, 0x01, 0x08, 0x2d, 0x00, 0xaa, 0x87, 0x01, 0xab, 0x79, - 0x43, 0xfa, 0x0d, 0x0a, 0x2d, 0x00, 0x43, 0xd5, 0x17, 0x0b, 0x2d, 0x00, - 0x43, 0x7c, 0x26, 0x0c, 0x2d, 0x00, 0x42, 0x10, 0x00, 0x0d, 0x2d, 0x00, - 0xb0, 0x53, 0x43, 0x3b, 0xf1, 0x17, 0x2d, 0x00, 0x43, 0xdf, 0x80, 0x10, - 0x2d, 0x00, 0xb3, 0x39, 0x02, 0x12, 0x00, 0x2d, 0x42, 0xf3, 0x0a, 0x13, - 0x2d, 0x00, 0x43, 0x68, 0x2a, 0x05, 0x2d, 0x00, 0x42, 0x15, 0x01, 0x23, - 0x2d, 0x00, 0x43, 0xcd, 0xeb, 0x1e, 0x2d, 0x00, 0x42, 0x61, 0x1c, 0x27, - 0x2d, 0x00, 0xba, 0x01, 0xff, 0x42, 0x92, 0x01, 0x06, 0x2d, 0x00, 0x43, - 0x65, 0x05, 0x0f, 0x2d, 0x40, 0xee, 0x07, 0x2d, 0x00, 0xf2, 0x12, 0x2d, - 0x40, 0x42, 0x1a, 0x00, 0x11, 0x2d, 0x00, 0x43, 0x0e, 0x16, 0x18, 0x2d, - 0x40, 0x42, 0x17, 0x00, 0x0e, 0x2d, 0x00, 0x43, 0x65, 0x05, 0x14, 0x2d, - 0x40, 0x42, 0x1a, 0x00, 0x09, 0x2d, 0x00, 0x43, 0x65, 0x05, 0x15, 0x2d, - 0x40, 0x43, 0x90, 0x00, 0x1f, 0x2d, 0x00, 0x42, 0x62, 0x01, 0x1b, 0x2d, - 0x40, 0xa1, 0x10, 0xe5, 0x21, 0x2d, 0x00, 0x42, 0xc9, 0x02, 0x22, 0x2d, - 0x00, 0x42, 0x17, 0x50, 0x25, 0x2d, 0x40, 0xe5, 0x20, 0x2d, 0x00, 0xf2, - 0x24, 0x2d, 0x40, 0x42, 0x1a, 0x00, 0x02, 0x2d, 0x00, 0x43, 0x90, 0x00, - 0x16, 0x2d, 0x40, 0x42, 0x1a, 0x00, 0x1a, 0x2d, 0x00, 0xa8, 0x06, 0x42, - 0x62, 0x01, 0x1c, 0x2d, 0x40, 0x42, 0x17, 0x00, 0x1d, 0x2d, 0x00, 0x42, - 0x9e, 0x01, 0x19, 0x2d, 0x40, 0x42, 0x92, 0x01, 0x2d, 0x2d, 0x00, 0xee, - 0x00, 0x2d, 0x40, 0xa1, 0x9a, 0x02, 0x43, 0xba, 0x15, 0x91, 0x1c, 0x00, - 0xa3, 0xf7, 0x01, 0x43, 0x1d, 0x11, 0x93, 0x1c, 0x00, 0xa5, 0xe4, 0x01, - 0x42, 0xc8, 0x02, 0xb6, 0x1c, 0x00, 0xa7, 0xcf, 0x01, 0xa8, 0xab, 0x01, - 0x42, 0x9e, 0x01, 0x98, 0x1c, 0x00, 0xaa, 0x96, 0x01, 0xab, 0x87, 0x01, - 0x02, 0x74, 0x00, 0x79, 0x43, 0xd5, 0x17, 0x9b, 0x1c, 0x00, 0x43, 0x7c, - 0x26, 0x9c, 0x1c, 0x00, 0x42, 0x10, 0x00, 0x9d, 0x1c, 0x00, 0xb0, 0x59, - 0x43, 0x3b, 0xf1, 0xa7, 0x1c, 0x00, 0x43, 0xdf, 0x80, 0xa0, 0x1c, 0x00, - 0xb3, 0x3f, 0xb4, 0x2d, 0x42, 0xf3, 0x0a, 0xa3, 0x1c, 0x00, 0x43, 0x68, - 0x2a, 0x95, 0x1c, 0x00, 0x42, 0x15, 0x01, 0xb3, 0x1c, 0x00, 0x43, 0xcd, - 0xeb, 0xae, 0x1c, 0x00, 0x42, 0x61, 0x1c, 0xb7, 0x1c, 0x00, 0xba, 0x01, - 0xff, 0x42, 0x92, 0x01, 0x96, 0x1c, 0x00, 0x43, 0x65, 0x05, 0x9f, 0x1c, - 0x40, 0xa1, 0x06, 0x49, 0x1d, 0xbe, 0xb9, 0x1c, 0x40, 0xee, 0x97, 0x1c, - 0x00, 0xf2, 0xa2, 0x1c, 0x40, 0x42, 0x1a, 0x00, 0xa1, 0x1c, 0x00, 0x43, - 0x0e, 0x16, 0xa8, 0x1c, 0x40, 0x42, 0x17, 0x00, 0x9e, 0x1c, 0x00, 0x43, - 0x65, 0x05, 0xa4, 0x1c, 0x40, 0x49, 0x45, 0xb4, 0xbf, 0x1c, 0x00, 0xf3, - 0x9a, 0x1c, 0x40, 0x42, 0x1a, 0x00, 0x99, 0x1c, 0x00, 0x43, 0x65, 0x05, - 0xa5, 0x1c, 0x40, 0x43, 0x90, 0x00, 0xaf, 0x1c, 0x00, 0x42, 0x62, 0x01, - 0xab, 0x1c, 0x40, 0xa1, 0x10, 0xe5, 0xb1, 0x1c, 0x00, 0x42, 0xc9, 0x02, - 0xb2, 0x1c, 0x00, 0x42, 0x17, 0x50, 0xb5, 0x1c, 0x40, 0xe5, 0xb0, 0x1c, - 0x00, 0xf2, 0xb4, 0x1c, 0xc0, 0x00, 0x46, 0x67, 0x46, 0xbe, 0x1c, 0x40, - 0x42, 0x1a, 0x00, 0x92, 0x1c, 0x00, 0x43, 0x90, 0x00, 0xa6, 0x1c, 0x40, - 0x44, 0x12, 0x8a, 0xb8, 0x1c, 0x00, 0xee, 0x94, 0x1c, 0x40, 0x42, 0x1a, - 0x00, 0xaa, 0x1c, 0x00, 0xa8, 0x06, 0x42, 0x62, 0x01, 0xac, 0x1c, 0x40, - 0x42, 0x17, 0x00, 0xad, 0x1c, 0x00, 0x42, 0x9e, 0x01, 0xa9, 0x1c, 0x40, - 0x42, 0x92, 0x01, 0xbd, 0x1c, 0x00, 0x42, 0x9e, 0x01, 0xba, 0x1c, 0x00, - 0xee, 0x90, 0x1c, 0x40, 0xa1, 0x9a, 0x02, 0x43, 0xba, 0x15, 0xd1, 0x10, - 0x00, 0xa3, 0xf7, 0x01, 0x43, 0x1d, 0x11, 0xd3, 0x10, 0x00, 0xa5, 0xe4, - 0x01, 0x42, 0xc8, 0x02, 0xf6, 0x10, 0x00, 0xa7, 0xcf, 0x01, 0xa8, 0xab, - 0x01, 0x42, 0x9e, 0x01, 0xd8, 0x10, 0x00, 0xaa, 0x96, 0x01, 0xab, 0x87, - 0x01, 0x02, 0x74, 0x00, 0x79, 0x43, 0xd5, 0x17, 0xdb, 0x10, 0x00, 0x43, - 0x7c, 0x26, 0xdc, 0x10, 0x00, 0x42, 0x10, 0x00, 0xdd, 0x10, 0x00, 0xb0, - 0x59, 0x43, 0x3b, 0xf1, 0xe7, 0x10, 0x00, 0x43, 0xdf, 0x80, 0xe0, 0x10, - 0x00, 0xb3, 0x3f, 0xb4, 0x2d, 0x42, 0xf3, 0x0a, 0xe3, 0x10, 0x00, 0x43, - 0x68, 0x2a, 0xd5, 0x10, 0x00, 0x42, 0x15, 0x01, 0xf3, 0x10, 0x00, 0x43, - 0xcd, 0xeb, 0xee, 0x10, 0x00, 0x42, 0x61, 0x1c, 0xf7, 0x10, 0x00, 0xba, - 0x01, 0xff, 0x42, 0x92, 0x01, 0xd6, 0x10, 0x00, 0x43, 0x65, 0x05, 0xdf, - 0x10, 0x40, 0xa1, 0x06, 0x49, 0x1d, 0xbe, 0xf9, 0x10, 0x40, 0xee, 0xd7, - 0x10, 0x00, 0xf2, 0xe2, 0x10, 0x40, 0x42, 0x1a, 0x00, 0xe1, 0x10, 0x00, - 0x43, 0x0e, 0x16, 0xe8, 0x10, 0x40, 0x42, 0x17, 0x00, 0xde, 0x10, 0x00, - 0x43, 0x65, 0x05, 0xe4, 0x10, 0x40, 0x49, 0x45, 0xb4, 0xff, 0x10, 0x00, - 0xf3, 0xda, 0x10, 0x40, 0x42, 0x1a, 0x00, 0xd9, 0x10, 0x00, 0x43, 0x65, - 0x05, 0xe5, 0x10, 0x40, 0x43, 0x90, 0x00, 0xef, 0x10, 0x00, 0x42, 0x62, - 0x01, 0xeb, 0x10, 0x40, 0xa1, 0x10, 0xe5, 0xf1, 0x10, 0x00, 0x42, 0xc9, - 0x02, 0xf2, 0x10, 0x00, 0x42, 0x17, 0x50, 0xf5, 0x10, 0x40, 0xe5, 0xf0, - 0x10, 0x00, 0xf2, 0xf4, 0x10, 0xc0, 0x00, 0x46, 0x67, 0x46, 0xfe, 0x10, - 0x40, 0x42, 0x1a, 0x00, 0xd2, 0x10, 0x00, 0x43, 0x90, 0x00, 0xe6, 0x10, - 0x40, 0x44, 0x12, 0x8a, 0xf8, 0x10, 0x00, 0xee, 0xd4, 0x10, 0x40, 0x42, - 0x1a, 0x00, 0xea, 0x10, 0x00, 0xa8, 0x06, 0x42, 0x62, 0x01, 0xec, 0x10, - 0x40, 0x42, 0x17, 0x00, 0xed, 0x10, 0x00, 0x42, 0x9e, 0x01, 0xe9, 0x10, - 0x40, 0x42, 0x92, 0x01, 0xfd, 0x10, 0x00, 0x42, 0x9e, 0x01, 0xfa, 0x10, - 0x00, 0xee, 0xd0, 0x10, 0x40, 0xa1, 0xf7, 0x01, 0x43, 0xba, 0x15, 0xa1, - 0x10, 0x00, 0xa3, 0xd4, 0x01, 0x43, 0x1d, 0x11, 0xa3, 0x10, 0x00, 0x42, - 0x92, 0x01, 0xa4, 0x10, 0x00, 0xa7, 0xb9, 0x01, 0xa8, 0x9c, 0x01, 0x42, - 0x9e, 0x01, 0xa8, 0x10, 0x00, 0xaa, 0x87, 0x01, 0xab, 0x79, 0x43, 0xfa, - 0x0d, 0xaa, 0x10, 0x00, 0x43, 0xd5, 0x17, 0xab, 0x10, 0x00, 0x43, 0x7c, - 0x26, 0xac, 0x10, 0x00, 0x42, 0x10, 0x00, 0xad, 0x10, 0x00, 0xb0, 0x53, - 0x43, 0x3b, 0xf1, 0xb7, 0x10, 0x00, 0x43, 0xdf, 0x80, 0xb0, 0x10, 0x00, - 0xb3, 0x39, 0x02, 0x12, 0x00, 0x2d, 0x42, 0xf3, 0x0a, 0xb3, 0x10, 0x00, - 0x43, 0x68, 0x2a, 0xa5, 0x10, 0x00, 0x42, 0x15, 0x01, 0xc3, 0x10, 0x00, - 0x43, 0xcd, 0xeb, 0xbe, 0x10, 0x00, 0x42, 0x61, 0x1c, 0xc7, 0x10, 0x00, - 0xba, 0x01, 0xff, 0x42, 0x92, 0x01, 0xa6, 0x10, 0x00, 0x43, 0x65, 0x05, - 0xaf, 0x10, 0x40, 0xee, 0xa7, 0x10, 0x00, 0xf2, 0xb2, 0x10, 0x40, 0x42, - 0x1a, 0x00, 0xb1, 0x10, 0x00, 0x43, 0x0e, 0x16, 0xb8, 0x10, 0x40, 0x42, - 0x17, 0x00, 0xae, 0x10, 0x00, 0x43, 0x65, 0x05, 0xb4, 0x10, 0x40, 0x42, - 0x1a, 0x00, 0xa9, 0x10, 0x00, 0x43, 0x65, 0x05, 0xb5, 0x10, 0x40, 0x43, - 0x90, 0x00, 0xbf, 0x10, 0x00, 0x42, 0x62, 0x01, 0xbb, 0x10, 0x40, 0xa1, - 0x10, 0xe5, 0xc1, 0x10, 0x00, 0x42, 0xc9, 0x02, 0xc2, 0x10, 0x00, 0x42, - 0x17, 0x50, 0xc5, 0x10, 0x40, 0xe5, 0xc0, 0x10, 0x00, 0xf2, 0xc4, 0x10, - 0x40, 0x42, 0x1a, 0x00, 0xa2, 0x10, 0x00, 0x43, 0x90, 0x00, 0xb6, 0x10, - 0x40, 0x42, 0x1a, 0x00, 0xba, 0x10, 0x00, 0xa8, 0x06, 0x42, 0x62, 0x01, - 0xbc, 0x10, 0x40, 0x42, 0x17, 0x00, 0xbd, 0x10, 0x00, 0x42, 0x9e, 0x01, - 0xb9, 0x10, 0x40, 0x42, 0x92, 0x01, 0xcd, 0x10, 0x00, 0xee, 0xa0, 0x10, - 0x40, 0x4b, 0xbc, 0x95, 0x3a, 0x22, 0x00, 0x08, 0xa4, 0x0c, 0x01, 0xff, - 0x45, 0xac, 0x0c, 0x51, 0x22, 0x00, 0x4a, 0x06, 0x39, 0x4e, 0x22, 0x40, - 0x46, 0x2f, 0xb8, 0x8e, 0xf4, 0x01, 0x43, 0x06, 0x07, 0x4a, 0x26, 0x40, - 0x05, 0x50, 0x00, 0x01, 0xff, 0x48, 0x8a, 0xbf, 0xee, 0x26, 0x00, 0x47, - 0x61, 0xd1, 0xed, 0x26, 0x40, 0x46, 0x08, 0xdb, 0xb2, 0xf3, 0x01, 0xb2, - 0x01, 0xff, 0x03, 0x63, 0x1f, 0x06, 0x43, 0x91, 0x04, 0xc4, 0xf9, 0x41, - 0xa3, 0x96, 0x02, 0x06, 0xc4, 0x06, 0xcf, 0x01, 0x46, 0x1a, 0x62, 0x6e, - 0x0d, 0x01, 0x4a, 0x6d, 0x96, 0x8f, 0x0d, 0x01, 0x49, 0x45, 0x70, 0x8e, - 0x0d, 0x01, 0x52, 0x78, 0x53, 0x6f, 0x0d, 0x01, 0xb3, 0x25, 0x06, 0x6c, - 0x38, 0x01, 0xff, 0x4b, 0x72, 0x38, 0x4e, 0x0d, 0x01, 0x05, 0x2f, 0x03, - 0x01, 0xff, 0xe1, 0x4a, 0x0d, 0x01, 0xe5, 0x69, 0x0d, 0x81, 0x08, 0xe9, - 0x4b, 0x0d, 0x01, 0xef, 0x4c, 0x0d, 0x41, 0xe5, 0x4d, 0x0d, 0x41, 0x0c, - 0x4c, 0x08, 0x06, 0x44, 0x00, 0xe8, 0x4f, 0x0d, 0x41, 0xe1, 0x70, 0x0d, - 0x01, 0x42, 0x16, 0x00, 0x74, 0x0d, 0x01, 0x42, 0x37, 0x00, 0x71, 0x0d, - 0x01, 0x42, 0xa1, 0x10, 0x7a, 0x0d, 0x01, 0x42, 0xe1, 0x07, 0x80, 0x0d, - 0x01, 0x42, 0x24, 0x02, 0x79, 0x0d, 0x01, 0x42, 0x22, 0x00, 0x83, 0x0d, - 0x01, 0x42, 0xbd, 0x26, 0x75, 0x0d, 0x01, 0x42, 0x1b, 0x02, 0x73, 0x0d, - 0x01, 0x42, 0x74, 0x00, 0x78, 0x0d, 0x01, 0x42, 0x6c, 0x00, 0x72, 0x0d, - 0x01, 0xae, 0x3a, 0x04, 0xa6, 0x24, 0x2a, 0x42, 0x6c, 0x09, 0x82, 0x0d, - 0x01, 0x42, 0x71, 0x00, 0x7e, 0x0d, 0x01, 0x42, 0x15, 0x06, 0x76, 0x0d, - 0x01, 0x42, 0x12, 0x00, 0x7d, 0x0d, 0x01, 0x42, 0xa9, 0x01, 0x77, 0x0d, - 0x01, 0x42, 0x4c, 0x26, 0x7b, 0x0d, 0x01, 0x42, 0x34, 0x22, 0x7c, 0x0d, - 0x41, 0x42, 0x1b, 0x02, 0x84, 0x0d, 0x01, 0x42, 0xff, 0x04, 0x85, 0x0d, - 0x41, 0xe1, 0x81, 0x0d, 0x01, 0x42, 0x34, 0x22, 0x7f, 0x0d, 0x41, 0x45, - 0xc3, 0x0a, 0x48, 0x0d, 0x01, 0xa6, 0x2e, 0x44, 0x46, 0x2a, 0x49, 0x0d, - 0x01, 0x43, 0xbf, 0x0a, 0x41, 0x0d, 0x01, 0xb3, 0x14, 0xb4, 0x06, 0x44, - 0xa1, 0x1d, 0x40, 0x0d, 0x41, 0x44, 0x25, 0x01, 0x43, 0x0d, 0x01, 0x42, - 0x15, 0x02, 0x42, 0x0d, 0x41, 0x44, 0x27, 0x1d, 0x47, 0x0d, 0x01, 0x42, - 0x60, 0x25, 0x46, 0x0d, 0x41, 0x43, 0xa7, 0x05, 0x45, 0x0d, 0x01, 0x43, - 0xcb, 0x06, 0x44, 0x0d, 0x41, 0x0e, 0xba, 0x05, 0x24, 0xaf, 0x01, 0xff, - 0x0a, 0x5d, 0xab, 0x11, 0x08, 0x59, 0x32, 0x01, 0xff, 0x4f, 0xe0, 0x6b, - 0x6a, 0x0d, 0x01, 0x51, 0xf5, 0x5a, 0x6d, 0x0d, 0x41, 0x47, 0x9a, 0x1d, - 0x6b, 0x0d, 0x01, 0x4e, 0x9c, 0x60, 0x6c, 0x0d, 0x41, 0xe1, 0x50, 0x0d, - 0x01, 0x42, 0x16, 0x00, 0x54, 0x0d, 0x01, 0x42, 0x37, 0x00, 0x51, 0x0d, - 0x01, 0x42, 0xa1, 0x10, 0x5a, 0x0d, 0x01, 0x42, 0xe1, 0x07, 0x60, 0x0d, - 0x01, 0x42, 0x24, 0x02, 0x59, 0x0d, 0x01, 0x42, 0x22, 0x00, 0x63, 0x0d, - 0x01, 0x42, 0xbd, 0x26, 0x55, 0x0d, 0x01, 0x42, 0x1b, 0x02, 0x53, 0x0d, - 0x01, 0x42, 0x74, 0x00, 0x58, 0x0d, 0x01, 0x42, 0x6c, 0x00, 0x52, 0x0d, - 0x01, 0xae, 0x3a, 0x04, 0xa6, 0x24, 0x2a, 0x42, 0x6c, 0x09, 0x62, 0x0d, - 0x01, 0x42, 0x71, 0x00, 0x5e, 0x0d, 0x01, 0x42, 0x15, 0x06, 0x56, 0x0d, - 0x01, 0x42, 0x12, 0x00, 0x5d, 0x0d, 0x01, 0x42, 0xa9, 0x01, 0x57, 0x0d, - 0x01, 0x42, 0x4c, 0x26, 0x5b, 0x0d, 0x01, 0x42, 0x34, 0x22, 0x5c, 0x0d, - 0x41, 0x42, 0x1b, 0x02, 0x64, 0x0d, 0x01, 0x42, 0xff, 0x04, 0x65, 0x0d, - 0x41, 0xe1, 0x61, 0x0d, 0x01, 0x42, 0x34, 0x22, 0x5f, 0x0d, 0x41, 0xa1, - 0xf0, 0x0a, 0xa5, 0xbc, 0x0a, 0xa9, 0xe6, 0x08, 0xac, 0xca, 0x07, 0xaf, - 0x8c, 0x06, 0xb2, 0x9b, 0x05, 0xb5, 0x01, 0xff, 0x47, 0xef, 0xcd, 0xfd, - 0x26, 0x00, 0x02, 0x0f, 0x07, 0x1a, 0xae, 0x06, 0x42, 0x1b, 0x03, 0xdb, - 0x23, 0x40, 0x51, 0x2b, 0x58, 0x61, 0x20, 0x00, 0x48, 0x2a, 0xc3, 0xb1, - 0x26, 0x00, 0x43, 0x50, 0xc5, 0x08, 0xce, 0x41, 0x80, 0xcf, 0x04, 0x06, - 0xe0, 0x4e, 0x01, 0xff, 0xa1, 0xb5, 0x04, 0x4a, 0x21, 0xa6, 0xe4, 0xff, - 0x00, 0xa3, 0x88, 0x04, 0xa4, 0xb9, 0x03, 0xa5, 0xaa, 0x03, 0x49, 0x15, - 0x16, 0x0e, 0xff, 0x00, 0x02, 0x87, 0x00, 0x93, 0x03, 0x4c, 0x15, 0x8e, - 0x0d, 0xff, 0x00, 0xac, 0x83, 0x01, 0x46, 0x04, 0x6f, 0xe3, 0xff, 0x00, - 0xae, 0x6f, 0xb0, 0x5b, 0x02, 0x7c, 0x00, 0x4b, 0xb2, 0x26, 0xb3, 0x18, - 0x45, 0xad, 0x22, 0x5e, 0xff, 0x00, 0x4d, 0x7e, 0x0b, 0x5c, 0xff, 0x00, - 0x48, 0xd2, 0xc9, 0xe6, 0xff, 0x00, 0x48, 0xc0, 0x7d, 0xe5, 0xff, 0x40, - 0x48, 0x6f, 0x58, 0x1b, 0xff, 0x00, 0x46, 0x6a, 0x30, 0x0f, 0xff, 0x40, - 0x4e, 0xcd, 0x70, 0x3c, 0xff, 0x00, 0x05, 0xc9, 0x00, 0x01, 0xff, 0x4d, - 0x23, 0x0b, 0x5d, 0xff, 0x00, 0x4b, 0x50, 0x21, 0x09, 0xff, 0x00, 0x4e, - 0x27, 0x26, 0x3d, 0xff, 0x00, 0x51, 0x03, 0x5e, 0x60, 0xff, 0x40, 0x4b, - 0xd8, 0x33, 0x1f, 0xff, 0x00, 0x4c, 0xf0, 0x04, 0x02, 0xff, 0x40, 0x4b, - 0xc6, 0x99, 0x05, 0xff, 0x00, 0x48, 0x46, 0x70, 0x0b, 0xff, 0x00, 0x49, - 0x5c, 0xad, 0xe1, 0xff, 0x40, 0x47, 0x00, 0x72, 0xe2, 0xff, 0x00, 0x4a, - 0x8a, 0x66, 0x03, 0xff, 0x40, 0x05, 0xb4, 0x05, 0x2a, 0xa5, 0x06, 0x47, - 0xac, 0x88, 0x3f, 0xff, 0x40, 0x03, 0xc5, 0x00, 0x06, 0x4c, 0x9d, 0x93, - 0x1c, 0xff, 0x40, 0x4d, 0x23, 0x0b, 0x5b, 0xff, 0x00, 0x4b, 0x50, 0x21, - 0x08, 0xff, 0x00, 0x4e, 0x27, 0x26, 0x3b, 0xff, 0x00, 0x51, 0x03, 0x5e, - 0x5f, 0xff, 0x40, 0x0f, 0xb9, 0x05, 0x6d, 0x0d, 0x4b, 0x08, 0x01, 0xff, - 0xe1, 0x41, 0xff, 0x00, 0xe2, 0x42, 0xff, 0x00, 0xe3, 0x43, 0xff, 0x00, - 0xe4, 0x44, 0xff, 0x00, 0xe5, 0x45, 0xff, 0x00, 0xe6, 0x46, 0xff, 0x00, - 0xe7, 0x47, 0xff, 0x00, 0xe8, 0x48, 0xff, 0x00, 0xe9, 0x49, 0xff, 0x00, - 0xea, 0x4a, 0xff, 0x00, 0xeb, 0x4b, 0xff, 0x00, 0xec, 0x4c, 0xff, 0x00, - 0xed, 0x4d, 0xff, 0x00, 0xee, 0x4e, 0xff, 0x00, 0xef, 0x4f, 0xff, 0x00, - 0xf0, 0x50, 0xff, 0x00, 0xf1, 0x51, 0xff, 0x00, 0xf2, 0x52, 0xff, 0x00, - 0xf3, 0x53, 0xff, 0x00, 0xf4, 0x54, 0xff, 0x00, 0xf5, 0x55, 0xff, 0x00, - 0xf6, 0x56, 0xff, 0x00, 0xf7, 0x57, 0xff, 0x00, 0xf8, 0x58, 0xff, 0x00, - 0xf9, 0x59, 0xff, 0x00, 0xfa, 0x5a, 0xff, 0x40, 0xe1, 0x21, 0xff, 0x00, - 0xe2, 0x22, 0xff, 0x00, 0xe3, 0x23, 0xff, 0x00, 0xe4, 0x24, 0xff, 0x00, - 0xe5, 0x25, 0xff, 0x00, 0xe6, 0x26, 0xff, 0x00, 0xe7, 0x27, 0xff, 0x00, - 0xe8, 0x28, 0xff, 0x00, 0xe9, 0x29, 0xff, 0x00, 0xea, 0x2a, 0xff, 0x00, - 0xeb, 0x2b, 0xff, 0x00, 0xec, 0x2c, 0xff, 0x00, 0xed, 0x2d, 0xff, 0x00, - 0xee, 0x2e, 0xff, 0x00, 0xef, 0x2f, 0xff, 0x00, 0xf0, 0x30, 0xff, 0x00, - 0xf1, 0x31, 0xff, 0x00, 0xf2, 0x32, 0xff, 0x00, 0xf3, 0x33, 0xff, 0x00, - 0xf4, 0x34, 0xff, 0x00, 0xf5, 0x35, 0xff, 0x00, 0xf6, 0x36, 0xff, 0x00, - 0xf7, 0x37, 0xff, 0x00, 0xf8, 0x38, 0xff, 0x00, 0xf9, 0x39, 0xff, 0x00, - 0xfa, 0x3a, 0xff, 0x40, 0x4a, 0x8f, 0x22, 0x40, 0xff, 0x00, 0x4f, 0xf9, - 0x58, 0x1e, 0xff, 0x40, 0x4a, 0xfa, 0x12, 0x1d, 0xff, 0x00, 0x4f, 0xae, - 0x00, 0x01, 0xff, 0x40, 0x05, 0xc5, 0x06, 0x06, 0x4a, 0xf6, 0x98, 0x04, - 0xff, 0x40, 0x45, 0xc3, 0x0a, 0x18, 0xff, 0x00, 0xa6, 0x2e, 0x44, 0x46, - 0x2a, 0x19, 0xff, 0x00, 0x43, 0xbf, 0x0a, 0x11, 0xff, 0x00, 0xb3, 0x14, - 0xb4, 0x06, 0x44, 0xa1, 0x1d, 0x10, 0xff, 0x40, 0x44, 0x25, 0x01, 0x13, - 0xff, 0x00, 0x42, 0x15, 0x02, 0x12, 0xff, 0x40, 0x44, 0x27, 0x1d, 0x17, - 0xff, 0x00, 0x42, 0x60, 0x25, 0x16, 0xff, 0x40, 0x43, 0xa7, 0x05, 0x15, - 0xff, 0x00, 0x43, 0xcb, 0x06, 0x14, 0xff, 0x40, 0x48, 0xc9, 0x99, 0xe0, - 0xff, 0x00, 0x50, 0xa5, 0x04, 0x3e, 0xff, 0x00, 0xaf, 0x01, 0xff, 0x43, - 0x03, 0x12, 0x1a, 0xff, 0x00, 0x02, 0xea, 0x04, 0x01, 0xff, 0xe1, 0x0c, - 0xff, 0x00, 0x49, 0x34, 0xb6, 0x20, 0xff, 0x40, 0x48, 0x2e, 0x3d, 0x06, - 0xff, 0x00, 0x49, 0x92, 0x35, 0x07, 0xff, 0x00, 0x47, 0xee, 0x0c, 0x0a, - 0xff, 0x40, 0x45, 0x33, 0x01, 0x88, 0x25, 0x00, 0x05, 0x28, 0x1b, 0x0c, - 0x4a, 0x01, 0xad, 0xd7, 0x27, 0x00, 0x44, 0x2a, 0x03, 0x2e, 0x00, 0x40, - 0x46, 0xeb, 0x07, 0x15, 0xf3, 0x01, 0x49, 0xc8, 0xbe, 0x1d, 0xf3, 0x41, - 0xa1, 0x45, 0xa5, 0x2c, 0x4a, 0x4b, 0xa9, 0x64, 0xf3, 0x01, 0xaf, 0x01, - 0xff, 0x46, 0x8f, 0x28, 0x38, 0xf4, 0x01, 0x03, 0xe7, 0x0f, 0x0d, 0x42, - 0xa7, 0x01, 0x22, 0x23, 0xc0, 0x00, 0x58, 0x8d, 0x28, 0x26, 0xf6, 0x41, - 0x51, 0x80, 0x58, 0x25, 0xf4, 0x01, 0x66, 0x2e, 0x05, 0xac, 0x27, 0x40, - 0x4a, 0x7a, 0x99, 0x76, 0xf9, 0x01, 0x06, 0x38, 0xdb, 0x01, 0xff, 0x48, - 0xca, 0xc0, 0xa3, 0x20, 0x00, 0x43, 0xee, 0x9b, 0x5f, 0xf3, 0x41, 0x06, - 0x9a, 0x16, 0x17, 0x08, 0xa2, 0xc5, 0x01, 0xff, 0x44, 0xca, 0xeb, 0xbe, - 0xf5, 0x01, 0x47, 0x3a, 0x89, 0xbc, 0xf5, 0x01, 0x45, 0xf3, 0xd2, 0xbd, - 0xf5, 0x41, 0x4d, 0xd7, 0x84, 0x5f, 0x21, 0x00, 0x45, 0xf9, 0x0d, 0x44, - 0x20, 0x40, 0xe7, 0x2b, 0xf3, 0x81, 0xaf, 0x01, 0x02, 0x5b, 0x1a, 0x9e, - 0x01, 0x44, 0x2a, 0xee, 0xd5, 0xfa, 0x01, 0x42, 0xf0, 0x04, 0xb6, 0xf9, - 0x81, 0x8a, 0x01, 0xb2, 0x55, 0xb5, 0x06, 0x46, 0x50, 0xde, 0x8a, 0xf9, - 0x41, 0x45, 0x03, 0x07, 0xf2, 0x26, 0x00, 0xb2, 0x01, 0xff, 0x80, 0x0c, - 0x4d, 0xbf, 0x7e, 0x05, 0x20, 0x00, 0x47, 0x17, 0x9a, 0x1c, 0x22, 0x40, - 0x57, 0x46, 0x1c, 0x23, 0x27, 0x00, 0xa3, 0x22, 0x04, 0xb4, 0x0b, 0x12, - 0x4b, 0x4f, 0x9c, 0x40, 0xf3, 0x01, 0x52, 0x4b, 0x2b, 0xc6, 0xf7, 0x01, - 0x58, 0xcd, 0x2a, 0x22, 0x27, 0x40, 0x44, 0xb9, 0x00, 0x5b, 0x20, 0x00, - 0x4b, 0xb8, 0x0b, 0x58, 0x20, 0x40, 0x53, 0xd7, 0x49, 0x25, 0x27, 0x00, - 0x63, 0xcf, 0x0a, 0x94, 0x2b, 0x40, 0x44, 0x6b, 0x6a, 0x00, 0x22, 0x00, - 0x43, 0xe2, 0x7a, 0xa9, 0x22, 0x00, 0xab, 0x0c, 0x46, 0xc4, 0xc6, 0x0c, - 0x00, 0x00, 0x4b, 0xae, 0xa1, 0x60, 0xf9, 0x41, 0x4a, 0x79, 0xa3, 0x74, - 0xf3, 0x81, 0x0c, 0x4e, 0x76, 0x50, 0x10, 0x2e, 0x00, 0x43, 0xa1, 0x01, - 0xdc, 0x2a, 0x40, 0x4b, 0x35, 0x96, 0x7d, 0xf3, 0x41, 0x46, 0xac, 0xc9, - 0x63, 0xf4, 0x41, 0x42, 0x33, 0x00, 0xc0, 0xf5, 0x01, 0x4c, 0x69, 0x8e, - 0xad, 0xfa, 0x41, 0x42, 0xe7, 0x34, 0x01, 0xf3, 0x41, 0xa1, 0x70, 0xa5, - 0x62, 0xaf, 0x3c, 0xb5, 0x2e, 0xf9, 0xb0, 0xfa, 0xc1, 0x00, 0x04, 0xa1, - 0x01, 0x01, 0xff, 0x44, 0xc0, 0x62, 0x4f, 0xf9, 0x01, 0x48, 0x5d, 0x31, - 0x85, 0xf5, 0x01, 0x46, 0xef, 0x8f, 0xf8, 0xf6, 0xc1, 0x00, 0x05, 0x50, - 0x00, 0x01, 0xff, 0x46, 0x2c, 0xbb, 0x4a, 0xcc, 0x01, 0x49, 0x29, 0xbb, - 0x4b, 0xcc, 0x41, 0x49, 0x84, 0x91, 0x33, 0xf6, 0x01, 0x42, 0x77, 0x00, - 0x88, 0xfa, 0x41, 0x48, 0x8a, 0x38, 0xbe, 0xf4, 0x01, 0x49, 0x20, 0x21, - 0x66, 0x27, 0x00, 0x43, 0x15, 0x01, 0x98, 0x26, 0xc0, 0x00, 0x02, 0x9b, - 0x01, 0x01, 0xff, 0x4c, 0x35, 0x8f, 0xb4, 0xf3, 0x01, 0x4f, 0x89, 0x21, - 0x55, 0x20, 0x40, 0x49, 0xf9, 0xbd, 0x9c, 0x26, 0x00, 0x4a, 0x6b, 0xb1, - 0xaa, 0xf4, 0x41, 0x49, 0xcd, 0xb6, 0xf3, 0x26, 0x00, 0x45, 0x98, 0xe5, - 0xa9, 0xf9, 0x01, 0x4a, 0x65, 0xad, 0x96, 0xcc, 0x01, 0xb4, 0x01, 0xff, - 0x45, 0xd2, 0x95, 0x7f, 0xf9, 0x01, 0x45, 0x63, 0x76, 0xd3, 0xfa, 0x01, - 0x44, 0x9a, 0x23, 0xe5, 0x23, 0x40, 0x59, 0x7a, 0x23, 0xd1, 0xf3, 0x01, - 0x05, 0xa9, 0xe3, 0xbc, 0x01, 0xac, 0x92, 0x01, 0xae, 0x83, 0x01, 0xb2, - 0x30, 0xb3, 0x11, 0x07, 0x63, 0xd4, 0x01, 0xff, 0x44, 0xb9, 0x00, 0x2d, - 0x2e, 0x00, 0x4b, 0xb8, 0x0b, 0x59, 0x20, 0x40, 0xe8, 0x1f, 0xf4, 0x81, - 0x06, 0x4d, 0x61, 0x87, 0x4a, 0xf4, 0x41, 0x57, 0xbd, 0x2b, 0x65, 0xf3, - 0x01, 0x43, 0x3f, 0x1c, 0xc9, 0x25, 0x00, 0x51, 0xb2, 0x59, 0xa3, 0xf3, - 0x41, 0xe5, 0x25, 0xf5, 0x81, 0x27, 0x03, 0x10, 0x18, 0x01, 0xff, 0x4b, - 0xa4, 0x6f, 0x47, 0xf9, 0x01, 0x4c, 0xb0, 0x71, 0x3d, 0x26, 0x80, 0x06, - 0x4e, 0x2a, 0x7b, 0x68, 0x20, 0x40, 0x80, 0x01, 0xff, 0x46, 0xeb, 0x07, - 0x13, 0xf3, 0x01, 0x49, 0xc8, 0xbe, 0x1b, 0xf3, 0x41, 0x02, 0x7a, 0x00, - 0x15, 0x47, 0x4e, 0xcd, 0xe8, 0xf9, 0x01, 0x04, 0x4c, 0x4a, 0x01, 0xff, - 0x49, 0x83, 0xb2, 0x87, 0xf3, 0x01, 0xf3, 0x86, 0xf3, 0x41, 0x45, 0x0e, - 0x9a, 0x92, 0xf6, 0x01, 0x4b, 0x24, 0xa3, 0xef, 0xf9, 0x41, 0x48, 0xda, - 0xc3, 0xc6, 0xfa, 0x01, 0x51, 0xe5, 0x59, 0x0d, 0x2a, 0x40, 0x02, 0x60, - 0x00, 0x11, 0x02, 0x1e, 0x04, 0x01, 0xff, 0x46, 0xe6, 0xd8, 0x9e, 0xf3, - 0x01, 0x49, 0xcb, 0xbb, 0xfd, 0xf4, 0x41, 0x47, 0xf3, 0xcc, 0xc4, 0xf5, - 0x01, 0x46, 0x77, 0xa9, 0xc1, 0xf4, 0x01, 0x49, 0x36, 0x20, 0x1c, 0x00, - 0x40, 0x44, 0x40, 0x12, 0x12, 0x20, 0x00, 0x45, 0x87, 0x4b, 0x07, 0x20, - 0x40, 0xa1, 0x23, 0xad, 0x15, 0x44, 0x22, 0xee, 0x3a, 0xf9, 0x01, 0x02, - 0xcf, 0x00, 0x01, 0xff, 0x48, 0x9a, 0xc4, 0xa1, 0xf3, 0x01, 0xf9, 0xf4, - 0x26, 0x40, 0x48, 0xc0, 0x20, 0x40, 0x26, 0x00, 0x57, 0x41, 0x2e, 0xaa, - 0x00, 0x40, 0x49, 0x40, 0xbc, 0x28, 0xf6, 0x01, 0x44, 0xa3, 0x19, 0xb6, - 0xfa, 0x41, 0xa3, 0x55, 0x43, 0x97, 0xdd, 0xda, 0xf9, 0x01, 0xac, 0x23, - 0x44, 0xca, 0xd8, 0x6a, 0xf4, 0x01, 0x4a, 0x55, 0xae, 0x2b, 0x26, 0x00, - 0x4e, 0x7e, 0x7b, 0x85, 0xf3, 0x01, 0x02, 0xad, 0x04, 0x01, 0xff, 0x44, - 0xaf, 0xde, 0xb7, 0xf5, 0x01, 0x47, 0x37, 0x47, 0xe0, 0xf4, 0x41, 0x44, - 0xae, 0xeb, 0xc6, 0xf9, 0x01, 0xac, 0x01, 0xff, 0x47, 0xf6, 0xcd, 0x42, - 0xf3, 0x01, 0x0d, 0x53, 0x30, 0x01, 0xff, 0x09, 0x46, 0x10, 0x06, 0x5f, - 0xe0, 0x10, 0xde, 0x26, 0x40, 0x50, 0x1f, 0x23, 0x2f, 0x29, 0x00, 0x4f, - 0x15, 0x3d, 0x2c, 0x29, 0x40, 0x02, 0x60, 0x00, 0x0c, 0x4b, 0x7a, 0xa0, - 0x3b, 0x21, 0x00, 0x44, 0xe4, 0x94, 0xed, 0xf3, 0x41, 0x52, 0x02, 0x51, - 0x79, 0xf9, 0x01, 0x47, 0x57, 0xd0, 0x86, 0xf4, 0x01, 0x44, 0xd7, 0x3f, - 0x26, 0xf9, 0x01, 0xb3, 0xcb, 0x01, 0x4f, 0x25, 0x72, 0x18, 0xf6, 0x01, - 0x04, 0x51, 0x00, 0x01, 0xff, 0x80, 0x06, 0x49, 0x32, 0xbb, 0x36, 0xf6, - 0x41, 0x4f, 0x6a, 0x69, 0xe9, 0xfa, 0x01, 0x02, 0xe8, 0x04, 0xa1, 0x01, - 0x4e, 0x5e, 0x75, 0xe4, 0xfa, 0x01, 0x5b, 0xc8, 0x1a, 0x2b, 0xf9, 0x01, - 0x4c, 0xf1, 0x8d, 0x15, 0xf9, 0x01, 0x4f, 0x56, 0x6e, 0x24, 0xf6, 0x01, - 0xad, 0x7b, 0x4f, 0x0a, 0x6f, 0x45, 0xf6, 0x01, 0xaf, 0x46, 0xb0, 0x32, - 0x4c, 0x01, 0x93, 0x44, 0xf6, 0x01, 0x50, 0x2a, 0x66, 0x1b, 0xf6, 0x81, - 0x14, 0xb4, 0x06, 0x5a, 0xe6, 0x21, 0x74, 0xf9, 0x41, 0x4b, 0xda, 0x93, - 0x02, 0xf6, 0x01, 0x4a, 0xf1, 0xa8, 0x12, 0xf9, 0x41, 0x05, 0x19, 0x00, - 0x01, 0xff, 0x53, 0x4a, 0x4c, 0x1d, 0xf6, 0x01, 0x4b, 0xe2, 0xa2, 0x1c, - 0xf6, 0x41, 0x57, 0xa3, 0x2c, 0x73, 0xf9, 0x01, 0x4a, 0x89, 0xa7, 0xe3, - 0xfa, 0x01, 0x4c, 0x41, 0x8f, 0x7a, 0xf9, 0x41, 0x49, 0x7d, 0xb8, 0x46, - 0xf6, 0x01, 0x51, 0x28, 0x5b, 0x28, 0xf9, 0x01, 0x04, 0xcc, 0x04, 0x01, - 0xff, 0x58, 0xfd, 0x27, 0xe2, 0xfa, 0x01, 0x45, 0xfc, 0x07, 0x2e, 0xf6, - 0xc1, 0x00, 0x80, 0x01, 0xff, 0x4e, 0x70, 0x74, 0x30, 0xf6, 0x01, 0x48, - 0xa2, 0xc9, 0x2e, 0xf9, 0x41, 0x4b, 0x6e, 0x99, 0x37, 0xf6, 0x01, 0x46, - 0xd4, 0xdb, 0xd0, 0xf9, 0x41, 0x48, 0x76, 0x74, 0x13, 0xf6, 0x01, 0x48, - 0xba, 0xc9, 0x20, 0xf9, 0x41, 0x57, 0xe8, 0x2c, 0x0b, 0xf6, 0x01, 0x50, - 0x4a, 0x60, 0x31, 0xf6, 0x41, 0x4c, 0xf5, 0x89, 0xe7, 0xf4, 0x01, 0xa1, - 0xa9, 0x48, 0x50, 0x6a, 0x60, 0x0e, 0x2e, 0x00, 0xa7, 0xb1, 0x20, 0x04, - 0xc9, 0x00, 0xe9, 0x1f, 0x4b, 0xb5, 0x9b, 0xcf, 0x23, 0x00, 0xac, 0xdf, - 0x1b, 0xad, 0xab, 0x1a, 0xae, 0xa4, 0x19, 0x02, 0x7c, 0x00, 0xee, 0x17, - 0xb2, 0x99, 0x17, 0xb3, 0x81, 0x17, 0x08, 0xc2, 0xc8, 0x84, 0x02, 0xb5, - 0xd9, 0x01, 0x4d, 0x4b, 0x88, 0x32, 0xf3, 0x01, 0xb8, 0x11, 0x42, 0x4d, - 0x00, 0x41, 0xf4, 0xc1, 0x00, 0x47, 0xce, 0xbd, 0x53, 0xf4, 0x01, 0xf3, - 0x40, 0xf4, 0x41, 0xa3, 0xa6, 0x01, 0xb0, 0x82, 0x01, 0xb4, 0x01, 0xff, - 0x19, 0xb1, 0x06, 0x39, 0xb2, 0x01, 0xff, 0x52, 0x0a, 0x4f, 0x7d, 0xf4, - 0x01, 0x0c, 0xc5, 0x8c, 0x01, 0xff, 0x54, 0x4b, 0x41, 0xb4, 0xf7, 0x01, - 0x4b, 0x9f, 0x5f, 0xa7, 0xf7, 0x01, 0xb3, 0x11, 0x06, 0xad, 0x02, 0x01, - 0xff, 0x46, 0xe7, 0x02, 0x89, 0xf7, 0x01, 0x46, 0xab, 0x05, 0x93, 0xf7, - 0x41, 0x46, 0xa7, 0x18, 0xae, 0xf7, 0x01, 0x52, 0xb6, 0x51, 0xba, 0xf7, - 0x41, 0x45, 0xc3, 0x0a, 0xf8, 0x06, 0x00, 0xa6, 0x2e, 0x44, 0x46, 0x2a, - 0xf9, 0x06, 0x00, 0x43, 0xbf, 0x0a, 0xf1, 0x06, 0x00, 0xb3, 0x14, 0xb4, - 0x06, 0x44, 0xa1, 0x1d, 0xf0, 0x06, 0x40, 0x44, 0x25, 0x01, 0xf3, 0x06, - 0x00, 0x42, 0x15, 0x02, 0xf2, 0x06, 0x40, 0x44, 0x27, 0x1d, 0xf7, 0x06, - 0x00, 0x42, 0x60, 0x25, 0xf6, 0x06, 0x40, 0x43, 0xa7, 0x05, 0xf5, 0x06, - 0x00, 0x43, 0xcb, 0x06, 0xf4, 0x06, 0x40, 0x07, 0x2d, 0xd0, 0x06, 0x50, - 0x0a, 0x65, 0x11, 0xf6, 0x41, 0x4a, 0xbd, 0xa5, 0x02, 0xce, 0x01, 0x06, - 0xfd, 0x42, 0x01, 0xff, 0xd1, 0xfd, 0xcd, 0x01, 0xd2, 0xfe, 0xcd, 0x01, - 0xd3, 0xff, 0xcd, 0x41, 0x43, 0xed, 0x00, 0x39, 0x22, 0x00, 0x09, 0xb0, - 0x00, 0x01, 0xff, 0x44, 0xb9, 0x00, 0x21, 0x00, 0x00, 0x4d, 0xd6, 0x33, - 0x49, 0x20, 0x40, 0x4c, 0x65, 0x8f, 0x07, 0x21, 0x00, 0x02, 0xd0, 0x00, - 0x01, 0xff, 0x45, 0x2e, 0x03, 0xac, 0x20, 0x00, 0x4e, 0x0e, 0x74, 0xa0, - 0x20, 0x00, 0x05, 0xa6, 0xe6, 0x01, 0xff, 0x46, 0x78, 0xd7, 0xf0, 0xf3, - 0x01, 0x4b, 0x3b, 0x9f, 0xe4, 0xf3, 0x41, 0x02, 0xe8, 0x04, 0xca, 0x14, - 0x06, 0xc4, 0x06, 0x88, 0x14, 0x49, 0x15, 0x16, 0x62, 0x13, 0x00, 0x07, - 0x2f, 0x39, 0xb3, 0x13, 0xb0, 0xa4, 0x13, 0x4d, 0xd6, 0x33, 0x67, 0x13, - 0x00, 0xb3, 0x4b, 0x0b, 0x6c, 0xa1, 0x06, 0x49, 0xd1, 0xbe, 0x61, 0x13, - 0x40, 0x46, 0xae, 0xd7, 0x96, 0x13, 0x00, 0xa4, 0x26, 0x45, 0x75, 0xd5, - 0x97, 0x13, 0x00, 0xab, 0x12, 0x46, 0x73, 0x93, 0x92, 0x13, 0x00, 0x4c, - 0x6d, 0x93, 0x93, 0x13, 0x00, 0x45, 0x62, 0xe9, 0x90, 0x13, 0x40, 0x44, - 0x1a, 0x4f, 0x95, 0x13, 0x00, 0x43, 0xa0, 0x5b, 0x99, 0x13, 0x40, 0x44, - 0xe1, 0xa7, 0x91, 0x13, 0x80, 0x06, 0x44, 0x3a, 0xed, 0x94, 0x13, 0x40, - 0x46, 0x74, 0xd5, 0x98, 0x13, 0x40, 0xa5, 0xc2, 0x12, 0x08, 0xaf, 0x17, - 0x01, 0xff, 0xa2, 0xe3, 0x11, 0xa3, 0xab, 0x10, 0xa4, 0x98, 0x0f, 0xa6, - 0xde, 0x0e, 0xa7, 0x9c, 0x0c, 0xa8, 0xa2, 0x0b, 0xaa, 0xf6, 0x0a, 0xab, - 0xdc, 0x09, 0xac, 0xb0, 0x09, 0xad, 0xf1, 0x08, 0xae, 0x99, 0x08, 0xb0, - 0x91, 0x07, 0xb1, 0xf7, 0x05, 0xb2, 0xc5, 0x05, 0xb3, 0x89, 0x04, 0xb4, - 0xc4, 0x02, 0xb6, 0x9d, 0x02, 0xb7, 0xf7, 0x01, 0xb8, 0x98, 0x01, 0xb9, - 0x73, 0xba, 0x01, 0xff, 0xe1, 0xd8, 0x12, 0x80, 0x67, 0xe5, 0xdd, 0x12, - 0x80, 0x5e, 0xa8, 0x38, 0xe9, 0xda, 0x12, 0x00, 0xef, 0xde, 0x12, 0x80, - 0x2b, 0xf5, 0xd9, 0x12, 0x00, 0x42, 0xa9, 0x01, 0xdf, 0x12, 0x00, 0xba, - 0x01, 0xff, 0xe1, 0xb0, 0x2d, 0x80, 0x15, 0xe5, 0xb5, 0x2d, 0x80, 0x0c, - 0xe9, 0xb2, 0x2d, 0x00, 0xef, 0xb6, 0x2d, 0x00, 0xf5, 0xb1, 0x2d, 0x40, - 0xe5, 0xb4, 0x2d, 0x40, 0xe1, 0xb3, 0x2d, 0x40, 0xe1, 0x8b, 0x2d, 0x40, - 0xe1, 0xe0, 0x12, 0x80, 0x1b, 0xe5, 0xe5, 0x12, 0x80, 0x12, 0xe9, 0xe2, - 0x12, 0x00, 0xef, 0xe6, 0x12, 0x00, 0xf5, 0xe1, 0x12, 0x00, 0x42, 0xa9, - 0x01, 0xe7, 0x12, 0x40, 0xe5, 0xe4, 0x12, 0x40, 0xe1, 0xe3, 0x12, 0x40, - 0xe5, 0xdc, 0x12, 0x40, 0xe1, 0xdb, 0x12, 0x40, 0xe1, 0xe8, 0x12, 0x80, - 0x1a, 0xe5, 0xed, 0x12, 0x80, 0x11, 0xe9, 0xea, 0x12, 0x00, 0xef, 0xee, - 0x12, 0x80, 0x04, 0xf5, 0xe9, 0x12, 0x40, 0xe1, 0xef, 0x12, 0x40, 0xe5, - 0xec, 0x12, 0x40, 0xe1, 0xeb, 0x12, 0x40, 0xe1, 0x80, 0x12, 0x80, 0x53, - 0xe5, 0x85, 0x12, 0x80, 0x4a, 0xe9, 0x82, 0x12, 0x00, 0xef, 0x86, 0x12, - 0x80, 0x3d, 0xf5, 0x81, 0x12, 0x00, 0xb7, 0x21, 0xb9, 0x01, 0xff, 0xe1, - 0xd0, 0x2d, 0x80, 0x15, 0xe5, 0xd5, 0x2d, 0x80, 0x0c, 0xe9, 0xd2, 0x2d, - 0x00, 0xef, 0xd6, 0x2d, 0x00, 0xf5, 0xd1, 0x2d, 0x40, 0xe5, 0xd4, 0x2d, - 0x40, 0xe1, 0xd3, 0x2d, 0x40, 0xe1, 0x88, 0x12, 0x80, 0x0d, 0xe5, 0x8d, - 0x12, 0x80, 0x04, 0xe9, 0x8a, 0x12, 0x40, 0xe5, 0x8c, 0x12, 0x40, 0xe1, - 0x8b, 0x12, 0x40, 0xe1, 0x87, 0x12, 0x40, 0xe5, 0x84, 0x12, 0x40, 0xe1, - 0x83, 0x12, 0x40, 0xe1, 0xc8, 0x12, 0x80, 0x1a, 0xe5, 0xcd, 0x12, 0x80, - 0x11, 0xe9, 0xca, 0x12, 0x00, 0xef, 0xce, 0x12, 0x80, 0x04, 0xf5, 0xc9, - 0x12, 0x40, 0xe1, 0xcf, 0x12, 0x40, 0xe5, 0xcc, 0x12, 0x40, 0xe1, 0xcb, - 0x12, 0x40, 0xe1, 0x68, 0x12, 0x80, 0x1b, 0xe5, 0x6d, 0x12, 0x80, 0x12, - 0xe9, 0x6a, 0x12, 0x00, 0xef, 0x6e, 0x12, 0x00, 0xf5, 0x69, 0x12, 0x00, - 0x42, 0xa9, 0x01, 0x6f, 0x12, 0x40, 0xe5, 0x6c, 0x12, 0x40, 0xe1, 0x6b, - 0x12, 0x40, 0xe1, 0x70, 0x12, 0x80, 0xb8, 0x01, 0xe5, 0x75, 0x12, 0x80, - 0xae, 0x01, 0xa8, 0x82, 0x01, 0xe9, 0x72, 0x12, 0x00, 0xef, 0x76, 0x12, - 0x80, 0x75, 0xb3, 0x4f, 0x02, 0x53, 0x00, 0x30, 0xf5, 0x71, 0x12, 0x00, - 0x42, 0xa9, 0x01, 0x77, 0x12, 0x00, 0xba, 0x01, 0xff, 0xe1, 0x40, 0x13, - 0x80, 0x1a, 0xe5, 0x45, 0x13, 0x80, 0x11, 0xe9, 0x42, 0x13, 0x00, 0xef, - 0x46, 0x13, 0x80, 0x04, 0xf5, 0x41, 0x13, 0x40, 0xe1, 0x47, 0x13, 0x40, - 0xe5, 0x44, 0x13, 0x40, 0xe1, 0x43, 0x13, 0x40, 0x42, 0x31, 0x12, 0x03, - 0xab, 0x00, 0xe5, 0x05, 0xab, 0x80, 0x0c, 0xe9, 0x02, 0xab, 0x00, 0xef, - 0x06, 0xab, 0x00, 0xf5, 0x01, 0xab, 0x40, 0xe5, 0x04, 0xab, 0x40, 0xe1, - 0x38, 0x13, 0x80, 0x1b, 0xe5, 0x3d, 0x13, 0x80, 0x12, 0xe9, 0x3a, 0x13, - 0x00, 0xef, 0x3e, 0x13, 0x00, 0xf5, 0x39, 0x13, 0x00, 0x42, 0xa9, 0x01, - 0x3f, 0x13, 0x40, 0xe5, 0x3c, 0x13, 0x40, 0xe1, 0x3b, 0x13, 0x40, 0xe1, - 0x86, 0x2d, 0x40, 0xe1, 0x20, 0x13, 0x80, 0x20, 0xe5, 0x25, 0x13, 0x80, - 0x17, 0xe9, 0x22, 0x13, 0x00, 0xef, 0x26, 0x13, 0x80, 0x0a, 0xf5, 0x21, - 0x13, 0x00, 0x42, 0xa9, 0x01, 0x27, 0x13, 0x40, 0xe1, 0x8f, 0x2d, 0x40, - 0xe5, 0x24, 0x13, 0x40, 0xe1, 0x23, 0x13, 0x40, 0xe5, 0x74, 0x12, 0x40, - 0xe1, 0x73, 0x12, 0x40, 0xe1, 0x30, 0x12, 0x80, 0xaf, 0x01, 0xe5, 0x35, - 0x12, 0x80, 0x89, 0x01, 0xa8, 0x5e, 0xe9, 0x32, 0x12, 0x00, 0xef, 0x36, - 0x12, 0x80, 0x51, 0xb3, 0x31, 0xf5, 0x31, 0x12, 0x00, 0x42, 0xa9, 0x01, - 0x37, 0x12, 0x00, 0xba, 0x01, 0xff, 0xe1, 0x20, 0x12, 0x80, 0x1b, 0xe5, - 0x25, 0x12, 0x80, 0x12, 0xe9, 0x22, 0x12, 0x00, 0xef, 0x26, 0x12, 0x00, - 0xf5, 0x21, 0x12, 0x00, 0x42, 0xa9, 0x01, 0x27, 0x12, 0x40, 0xe5, 0x24, - 0x12, 0x40, 0xe1, 0x23, 0x12, 0x40, 0xe1, 0xa0, 0x2d, 0x80, 0x15, 0xe5, - 0xa5, 0x2d, 0x80, 0x0c, 0xe9, 0xa2, 0x2d, 0x00, 0xef, 0xa6, 0x2d, 0x00, - 0xf5, 0xa1, 0x2d, 0x40, 0xe5, 0xa4, 0x2d, 0x40, 0xe1, 0xa3, 0x2d, 0x40, - 0xe1, 0x83, 0x2d, 0x40, 0xe1, 0x38, 0x12, 0x80, 0x20, 0xe5, 0x3d, 0x12, - 0x80, 0x17, 0xe9, 0x3a, 0x12, 0x00, 0xef, 0x3e, 0x12, 0x80, 0x0a, 0xf5, - 0x39, 0x12, 0x00, 0x42, 0xa9, 0x01, 0x3f, 0x12, 0x40, 0xe1, 0x84, 0x2d, - 0x40, 0xe5, 0x3c, 0x12, 0x40, 0xe1, 0x3b, 0x12, 0x40, 0x08, 0x72, 0xc1, - 0x04, 0xe5, 0x34, 0x12, 0x40, 0x43, 0x72, 0xcf, 0x84, 0x13, 0x00, 0x43, - 0x9e, 0xec, 0x88, 0x13, 0x00, 0x43, 0xb5, 0x92, 0x80, 0x13, 0x00, 0x43, - 0x51, 0x02, 0x8c, 0x13, 0x40, 0xe1, 0x33, 0x12, 0x40, 0xe1, 0x28, 0x12, - 0x80, 0x26, 0xe5, 0x2d, 0x12, 0x80, 0x1d, 0xe9, 0x2a, 0x12, 0x00, 0xef, - 0x2e, 0x12, 0x80, 0x10, 0xf5, 0x29, 0x12, 0x00, 0x42, 0xa9, 0x01, 0x2f, - 0x12, 0x00, 0x42, 0x34, 0x22, 0x58, 0x13, 0x40, 0xe1, 0x82, 0x2d, 0x40, - 0xe5, 0x2c, 0x12, 0x40, 0xe1, 0x2b, 0x12, 0x40, 0xe1, 0x40, 0x12, 0x80, - 0x8d, 0x01, 0xe5, 0x45, 0x12, 0x80, 0x83, 0x01, 0xa8, 0x4a, 0xe9, 0x42, - 0x12, 0x00, 0xef, 0x46, 0x12, 0x80, 0x3d, 0xf5, 0x41, 0x12, 0x00, 0xb7, - 0x21, 0xb9, 0x01, 0xff, 0xe1, 0xc0, 0x2d, 0x80, 0x15, 0xe5, 0xc5, 0x2d, - 0x80, 0x0c, 0xe9, 0xc2, 0x2d, 0x00, 0xef, 0xc6, 0x2d, 0x00, 0xf5, 0xc1, - 0x2d, 0x40, 0xe5, 0xc4, 0x2d, 0x40, 0xe1, 0xc3, 0x2d, 0x40, 0xe1, 0x48, - 0x12, 0x80, 0x0d, 0xe5, 0x4d, 0x12, 0x80, 0x04, 0xe9, 0x4a, 0x12, 0x40, - 0xe5, 0x4c, 0x12, 0x40, 0xe1, 0x4b, 0x12, 0x40, 0xe1, 0x47, 0x12, 0x40, - 0xe1, 0x50, 0x12, 0x80, 0x2e, 0xe5, 0x55, 0x12, 0x80, 0x25, 0xe9, 0x52, - 0x12, 0x00, 0xef, 0x56, 0x12, 0x00, 0xf5, 0x51, 0x12, 0x00, 0xb7, 0x01, - 0xff, 0xe1, 0x58, 0x12, 0x80, 0x0d, 0xe5, 0x5d, 0x12, 0x80, 0x04, 0xe9, - 0x5a, 0x12, 0x40, 0xe5, 0x5c, 0x12, 0x40, 0xe1, 0x5b, 0x12, 0x40, 0xe5, - 0x54, 0x12, 0x40, 0xe1, 0x53, 0x12, 0x40, 0xe5, 0x44, 0x12, 0x40, 0xe1, - 0x43, 0x12, 0x40, 0xe1, 0x50, 0x13, 0x80, 0x7c, 0xe5, 0x55, 0x13, 0x80, - 0x73, 0xa8, 0x25, 0xe9, 0x52, 0x13, 0x00, 0xef, 0x56, 0x13, 0x80, 0x18, - 0xf5, 0x51, 0x13, 0x00, 0xb7, 0x01, 0xff, 0xe1, 0x57, 0x13, 0x00, 0xe5, - 0x8f, 0x13, 0x80, 0x04, 0xe9, 0x8d, 0x13, 0x40, 0xe5, 0x8e, 0x13, 0x40, - 0xe1, 0x92, 0x2d, 0x40, 0xe1, 0x30, 0x13, 0x80, 0x20, 0xe5, 0x35, 0x13, - 0x80, 0x17, 0xe9, 0x32, 0x13, 0x00, 0xef, 0x36, 0x13, 0x80, 0x0a, 0xf5, - 0x31, 0x13, 0x00, 0x42, 0xa9, 0x01, 0x37, 0x13, 0x40, 0xe1, 0x91, 0x2d, - 0x40, 0xe5, 0x34, 0x13, 0x40, 0xe1, 0x33, 0x13, 0x00, 0x08, 0x60, 0x1c, - 0x01, 0xff, 0xe1, 0xd0, 0x12, 0x80, 0x15, 0xe5, 0xd5, 0x12, 0x80, 0x0c, - 0xe9, 0xd2, 0x12, 0x00, 0xef, 0xd6, 0x12, 0x00, 0xf5, 0xd1, 0x12, 0x40, - 0xe5, 0xd4, 0x12, 0x40, 0xe1, 0xd3, 0x12, 0x40, 0xe5, 0x54, 0x13, 0x40, - 0xe1, 0x53, 0x13, 0x40, 0xe1, 0x90, 0x12, 0x80, 0x4c, 0xe5, 0x95, 0x12, - 0x80, 0x43, 0xe9, 0x92, 0x12, 0x00, 0xef, 0x96, 0x12, 0x80, 0x36, 0xf5, - 0x91, 0x12, 0x00, 0x42, 0xa9, 0x01, 0x97, 0x12, 0x00, 0xb9, 0x01, 0xff, - 0xe1, 0x98, 0x12, 0x80, 0x20, 0xe5, 0x9d, 0x12, 0x80, 0x17, 0xe9, 0x9a, - 0x12, 0x00, 0xef, 0x9e, 0x12, 0x80, 0x0a, 0xf5, 0x99, 0x12, 0x00, 0x42, - 0xa9, 0x01, 0x9f, 0x12, 0x40, 0xe1, 0x89, 0x2d, 0x40, 0xe5, 0x9c, 0x12, - 0x40, 0xe1, 0x9b, 0x12, 0x40, 0xe1, 0x88, 0x2d, 0x40, 0xe5, 0x94, 0x12, - 0x40, 0xe1, 0x93, 0x12, 0x40, 0xe1, 0x18, 0x12, 0x80, 0x33, 0xe5, 0x1d, - 0x12, 0x80, 0x2a, 0xe9, 0x1a, 0x12, 0x00, 0xef, 0x1e, 0x12, 0x80, 0x1d, - 0xf5, 0x19, 0x12, 0x00, 0xb7, 0x06, 0x42, 0x34, 0x22, 0x59, 0x13, 0x40, - 0xe1, 0x1f, 0x12, 0x00, 0xe5, 0x83, 0x13, 0x80, 0x04, 0xe9, 0x81, 0x13, - 0x40, 0xe5, 0x82, 0x13, 0x40, 0xe1, 0x81, 0x2d, 0x40, 0xe5, 0x1c, 0x12, - 0x40, 0xe1, 0x1b, 0x12, 0x40, 0xe1, 0x08, 0x12, 0x80, 0x20, 0xe5, 0x0d, - 0x12, 0x80, 0x17, 0xe9, 0x0a, 0x12, 0x00, 0xef, 0x0e, 0x12, 0x80, 0x0a, - 0xf5, 0x09, 0x12, 0x00, 0x42, 0xa9, 0x01, 0x0f, 0x12, 0x40, 0xe1, 0x80, - 0x2d, 0x40, 0xe5, 0x0c, 0x12, 0x40, 0xe1, 0x0b, 0x12, 0x40, 0xe1, 0xa8, - 0x12, 0x80, 0x8d, 0x01, 0xe5, 0xad, 0x12, 0x80, 0x83, 0x01, 0xe9, 0xaa, - 0x12, 0x00, 0xef, 0xae, 0x12, 0x80, 0x76, 0xf5, 0xa9, 0x12, 0x00, 0xb7, - 0x5a, 0xb8, 0x21, 0xb9, 0x01, 0xff, 0xe1, 0xc8, 0x2d, 0x80, 0x15, 0xe5, - 0xcd, 0x2d, 0x80, 0x0c, 0xe9, 0xca, 0x2d, 0x00, 0xef, 0xce, 0x2d, 0x00, - 0xf5, 0xc9, 0x2d, 0x40, 0xe5, 0xcc, 0x2d, 0x40, 0xe1, 0xcb, 0x2d, 0x40, - 0xe1, 0xb8, 0x12, 0x80, 0x2e, 0xe5, 0xbd, 0x12, 0x80, 0x25, 0xe9, 0xba, - 0x12, 0x00, 0xef, 0xbe, 0x12, 0x00, 0xf5, 0xb9, 0x12, 0x00, 0xb7, 0x01, - 0xff, 0xe1, 0xc0, 0x12, 0x80, 0x0d, 0xe5, 0xc5, 0x12, 0x80, 0x04, 0xe9, - 0xc2, 0x12, 0x40, 0xe5, 0xc4, 0x12, 0x40, 0xe1, 0xc3, 0x12, 0x40, 0xe5, - 0xbc, 0x12, 0x40, 0xe1, 0xbb, 0x12, 0x40, 0xe1, 0xb0, 0x12, 0x80, 0x0d, - 0xe5, 0xb5, 0x12, 0x80, 0x04, 0xe9, 0xb2, 0x12, 0x40, 0xe5, 0xb4, 0x12, - 0x40, 0xe1, 0xb3, 0x12, 0x40, 0xe1, 0xaf, 0x12, 0x40, 0xe5, 0xac, 0x12, - 0x40, 0xe1, 0xab, 0x12, 0x40, 0xe1, 0x00, 0x13, 0x80, 0x20, 0xe5, 0x05, - 0x13, 0x80, 0x17, 0xe9, 0x02, 0x13, 0x00, 0xef, 0x06, 0x13, 0x80, 0x0a, - 0xf5, 0x01, 0x13, 0x00, 0x42, 0xa9, 0x01, 0x07, 0x13, 0x40, 0xe1, 0x8e, - 0x2d, 0x40, 0xe5, 0x04, 0x13, 0x40, 0xe1, 0x03, 0x13, 0x40, 0xe1, 0x00, - 0x12, 0x80, 0x6e, 0xe5, 0x05, 0x12, 0x80, 0x65, 0xa8, 0x11, 0xe9, 0x02, - 0x12, 0x00, 0xef, 0x06, 0x12, 0x80, 0x04, 0xf5, 0x01, 0x12, 0x40, 0xe1, - 0x07, 0x12, 0x40, 0xe1, 0x10, 0x12, 0x80, 0x49, 0xe5, 0x15, 0x12, 0x80, - 0x40, 0xe9, 0x12, 0x12, 0x00, 0xef, 0x16, 0x12, 0x00, 0xf5, 0x11, 0x12, - 0x00, 0xb7, 0x21, 0xb9, 0x01, 0xff, 0xe1, 0xe0, 0xe7, 0x81, 0x15, 0xe5, - 0xe5, 0xe7, 0x81, 0x0c, 0xe9, 0xe2, 0xe7, 0x01, 0xef, 0xe6, 0xe7, 0x01, - 0xf5, 0xe1, 0xe7, 0x41, 0xe5, 0xe4, 0xe7, 0x41, 0xe1, 0xe3, 0xe7, 0x41, - 0xe1, 0x17, 0x12, 0x00, 0xe5, 0xeb, 0xe7, 0x81, 0x04, 0xe9, 0xe9, 0xe7, - 0x41, 0xe5, 0xea, 0xe7, 0x41, 0xe5, 0x14, 0x12, 0x40, 0xe1, 0x13, 0x12, - 0x40, 0xe5, 0x04, 0x12, 0x40, 0xe1, 0x03, 0x12, 0x40, 0xe1, 0x08, 0x13, - 0x80, 0xb5, 0x02, 0xe5, 0x0d, 0x13, 0x80, 0xab, 0x02, 0xa7, 0xf1, 0x01, - 0xe9, 0x0a, 0x13, 0x00, 0x07, 0x2e, 0x28, 0xbf, 0x01, 0xef, 0x0e, 0x13, - 0x80, 0xb5, 0x01, 0xf5, 0x09, 0x13, 0x80, 0x39, 0xb7, 0x21, 0xb9, 0x01, - 0xff, 0xe1, 0xd8, 0x2d, 0x80, 0x15, 0xe5, 0xdd, 0x2d, 0x80, 0x0c, 0xe9, - 0xda, 0x2d, 0x00, 0xef, 0xde, 0x2d, 0x00, 0xf5, 0xd9, 0x2d, 0x40, 0xe5, - 0xdc, 0x2d, 0x40, 0xe1, 0xdb, 0x2d, 0x40, 0xe1, 0x10, 0x13, 0x80, 0x0d, - 0xe5, 0x15, 0x13, 0x80, 0x04, 0xe9, 0x12, 0x13, 0x40, 0xe5, 0x14, 0x13, - 0x40, 0xe1, 0x13, 0x13, 0x40, 0x05, 0xd2, 0x5d, 0x01, 0xff, 0x02, 0x72, - 0xcf, 0x64, 0x02, 0x4b, 0x55, 0x56, 0x02, 0x24, 0xb1, 0x45, 0x44, 0xfe, - 0xec, 0xe8, 0xe7, 0x01, 0x02, 0xed, 0x0a, 0x2e, 0x02, 0x52, 0x37, 0x20, - 0x02, 0x51, 0x02, 0x12, 0x02, 0xc5, 0xef, 0x01, 0xff, 0xe5, 0xf2, 0xe7, - 0x81, 0x04, 0xe9, 0xf0, 0xe7, 0x41, 0xe5, 0xf1, 0xe7, 0x41, 0x42, 0x27, - 0x01, 0xfe, 0xe7, 0x01, 0xe9, 0xfd, 0xe7, 0x41, 0x42, 0x27, 0x01, 0xee, - 0xe7, 0x01, 0xe9, 0xed, 0xe7, 0x41, 0xe5, 0xf7, 0xe7, 0x81, 0x04, 0xe9, - 0xf5, 0xe7, 0x41, 0xe5, 0xf6, 0xe7, 0x41, 0xe5, 0xfa, 0xe7, 0x81, 0x04, - 0xe9, 0xf8, 0xe7, 0x41, 0xe5, 0xf9, 0xe7, 0x41, 0x42, 0x27, 0x01, 0xfc, - 0xe7, 0x01, 0xe9, 0xfb, 0xe7, 0x41, 0x42, 0x27, 0x01, 0xf4, 0xe7, 0x01, - 0xe9, 0xf3, 0xe7, 0x41, 0xe1, 0x0f, 0x13, 0x40, 0xe1, 0xa0, 0x12, 0x80, - 0x20, 0xe5, 0xa5, 0x12, 0x80, 0x17, 0xe9, 0xa2, 0x12, 0x00, 0xef, 0xa6, - 0x12, 0x80, 0x0a, 0xf5, 0xa1, 0x12, 0x00, 0x42, 0xa9, 0x01, 0xa7, 0x12, - 0x40, 0xe1, 0x8a, 0x2d, 0x40, 0xe5, 0xa4, 0x12, 0x40, 0xe1, 0xa3, 0x12, - 0x40, 0xe1, 0x18, 0x13, 0x80, 0x2e, 0xe5, 0x1d, 0x13, 0x80, 0x25, 0xe9, - 0x1a, 0x13, 0x00, 0xef, 0x1e, 0x13, 0x00, 0xf5, 0x19, 0x13, 0x00, 0xb7, - 0x01, 0xff, 0xe1, 0x93, 0x2d, 0x80, 0x0d, 0xe5, 0x96, 0x2d, 0x80, 0x04, - 0xe9, 0x94, 0x2d, 0x40, 0xe5, 0x95, 0x2d, 0x40, 0xe1, 0x1f, 0x13, 0x40, - 0xe5, 0x1c, 0x13, 0x40, 0xe1, 0x1b, 0x13, 0x40, 0xe5, 0x0c, 0x13, 0x40, - 0xe1, 0x0b, 0x13, 0x40, 0xe1, 0x48, 0x13, 0x80, 0x2e, 0xe5, 0x4d, 0x13, - 0x80, 0x25, 0xe9, 0x4a, 0x13, 0x00, 0xef, 0x4e, 0x13, 0x00, 0xf5, 0x49, - 0x13, 0x00, 0xb7, 0x06, 0x42, 0x34, 0x22, 0x5a, 0x13, 0x40, 0xe1, 0x4f, - 0x13, 0x00, 0xe5, 0x8b, 0x13, 0x80, 0x04, 0xe9, 0x89, 0x13, 0x40, 0xe5, - 0x8a, 0x13, 0x40, 0xe5, 0x4c, 0x13, 0x40, 0xe1, 0x4b, 0x13, 0x40, 0xe1, - 0xf0, 0x12, 0x80, 0x86, 0x01, 0xa4, 0x3e, 0xe5, 0xf5, 0x12, 0x80, 0x35, - 0xe9, 0xf2, 0x12, 0x00, 0xef, 0xf6, 0x12, 0x80, 0x28, 0xf5, 0xf1, 0x12, - 0x00, 0x42, 0xa9, 0x01, 0xf7, 0x12, 0x00, 0xba, 0x01, 0xff, 0x42, 0x31, - 0x12, 0x13, 0xab, 0x00, 0xe5, 0x15, 0xab, 0x80, 0x0c, 0xe9, 0x12, 0xab, - 0x00, 0xef, 0x16, 0xab, 0x00, 0xf5, 0x11, 0xab, 0x40, 0xe5, 0x14, 0xab, - 0x40, 0xe1, 0x8c, 0x2d, 0x40, 0xe5, 0xf4, 0x12, 0x40, 0xe1, 0xf8, 0x12, - 0x80, 0x3d, 0xe5, 0xfd, 0x12, 0x80, 0x34, 0xa8, 0x17, 0xe9, 0xfa, 0x12, - 0x00, 0xef, 0xfe, 0x12, 0x80, 0x0a, 0xf5, 0xf9, 0x12, 0x00, 0x42, 0xa9, - 0x01, 0xff, 0x12, 0x40, 0xe1, 0x8d, 0x2d, 0x40, 0x42, 0x31, 0x12, 0x0b, - 0xab, 0x00, 0xe5, 0x0d, 0xab, 0x80, 0x0c, 0xe9, 0x0a, 0xab, 0x00, 0xef, - 0x0e, 0xab, 0x00, 0xf5, 0x09, 0xab, 0x40, 0xe5, 0x0c, 0xab, 0x40, 0xe5, - 0xfc, 0x12, 0x40, 0xe1, 0xfb, 0x12, 0x40, 0xe1, 0xf3, 0x12, 0x40, 0xe1, - 0x78, 0x12, 0x80, 0xab, 0x01, 0xa3, 0x4b, 0xe5, 0x7d, 0x12, 0x80, 0x42, - 0xa8, 0x17, 0xe9, 0x7a, 0x12, 0x00, 0xef, 0x7e, 0x12, 0x80, 0x0a, 0xf5, - 0x79, 0x12, 0x00, 0x42, 0xa9, 0x01, 0x7f, 0x12, 0x40, 0xe1, 0x87, 0x2d, - 0x40, 0xe1, 0x28, 0x13, 0x80, 0x20, 0xe5, 0x2d, 0x13, 0x80, 0x17, 0xe9, - 0x2a, 0x13, 0x00, 0xef, 0x2e, 0x13, 0x80, 0x0a, 0xf5, 0x29, 0x13, 0x00, - 0x42, 0xa9, 0x01, 0x2f, 0x13, 0x40, 0xe1, 0x90, 0x2d, 0x40, 0xe5, 0x2c, - 0x13, 0x40, 0xe1, 0x2b, 0x13, 0x40, 0xe5, 0x7c, 0x12, 0x40, 0xe1, 0xa8, - 0x2d, 0x80, 0x55, 0xe5, 0xad, 0x2d, 0x80, 0x4c, 0xa8, 0x0c, 0xe9, 0xaa, - 0x2d, 0x00, 0xef, 0xae, 0x2d, 0x00, 0xf5, 0xa9, 0x2d, 0x40, 0xe1, 0xb8, - 0x2d, 0x80, 0x35, 0xe5, 0xbd, 0x2d, 0x80, 0x2c, 0xa8, 0x0c, 0xe9, 0xba, - 0x2d, 0x00, 0xef, 0xbe, 0x2d, 0x00, 0xf5, 0xb9, 0x2d, 0x40, 0xe1, 0x20, - 0xab, 0x80, 0x15, 0xe5, 0x25, 0xab, 0x80, 0x0c, 0xe9, 0x22, 0xab, 0x00, - 0xef, 0x26, 0xab, 0x00, 0xf5, 0x21, 0xab, 0x40, 0xe5, 0x24, 0xab, 0x40, - 0xe1, 0x23, 0xab, 0x40, 0xe5, 0xbc, 0x2d, 0x40, 0xe1, 0xbb, 0x2d, 0x40, - 0xe5, 0xac, 0x2d, 0x40, 0xe1, 0xab, 0x2d, 0x40, 0xe1, 0x7b, 0x12, 0x40, - 0xe1, 0x60, 0x12, 0x80, 0x4e, 0xa2, 0x2e, 0xe5, 0x65, 0x12, 0x80, 0x25, - 0xe9, 0x62, 0x12, 0x00, 0xef, 0x66, 0x12, 0x80, 0x18, 0xf5, 0x61, 0x12, - 0x00, 0xb7, 0x01, 0xff, 0xe1, 0x67, 0x12, 0x00, 0xe5, 0x87, 0x13, 0x80, - 0x04, 0xe9, 0x85, 0x13, 0x40, 0xe5, 0x86, 0x13, 0x40, 0xe1, 0x85, 0x2d, - 0x40, 0xe5, 0x64, 0x12, 0x40, 0xe1, 0x28, 0xab, 0x80, 0x15, 0xe5, 0x2d, - 0xab, 0x80, 0x0c, 0xe9, 0x2a, 0xab, 0x00, 0xef, 0x2e, 0xab, 0x00, 0xf5, - 0x29, 0xab, 0x40, 0xe5, 0x2c, 0xab, 0x40, 0xe1, 0x2b, 0xab, 0x40, 0xe1, - 0x63, 0x12, 0x40, 0x4a, 0x59, 0x26, 0x60, 0x13, 0x00, 0x47, 0x70, 0x58, - 0x64, 0x13, 0x40, 0x52, 0xcf, 0x4a, 0x68, 0x13, 0x00, 0x4c, 0x7d, 0x92, - 0x66, 0x13, 0x40, 0x46, 0x44, 0xd8, 0x79, 0x13, 0x00, 0xa6, 0x36, 0x47, - 0x22, 0x11, 0x7b, 0x13, 0x00, 0x46, 0x0b, 0x2c, 0x7a, 0x13, 0x00, 0xb3, - 0x1c, 0xb4, 0x01, 0xff, 0x42, 0x92, 0x01, 0x72, 0x13, 0x80, 0x0c, 0x45, - 0x2b, 0x11, 0x74, 0x13, 0x00, 0x45, 0xde, 0x2b, 0x73, 0x13, 0x40, 0x49, - 0xd4, 0x5c, 0x7c, 0x13, 0x40, 0x46, 0x27, 0x1d, 0x78, 0x13, 0x00, 0x44, - 0x4e, 0xda, 0x77, 0x13, 0x40, 0x44, 0x08, 0x4c, 0x76, 0x13, 0x00, 0x44, - 0x85, 0x50, 0x75, 0x13, 0x40, 0x45, 0xc3, 0x0a, 0x70, 0x13, 0x00, 0xa6, - 0x29, 0x44, 0x46, 0x2a, 0x71, 0x13, 0x00, 0x43, 0xbf, 0x0a, 0x69, 0x13, - 0x00, 0xb3, 0x0f, 0xb4, 0x01, 0xff, 0x44, 0x25, 0x01, 0x6b, 0x13, 0x00, - 0x42, 0x15, 0x02, 0x6a, 0x13, 0x40, 0x44, 0x27, 0x1d, 0x6f, 0x13, 0x00, - 0x42, 0x60, 0x25, 0x6e, 0x13, 0x40, 0x43, 0xa7, 0x05, 0x6d, 0x13, 0x00, - 0x43, 0xcb, 0x06, 0x6c, 0x13, 0x40, 0x43, 0x03, 0x12, 0x65, 0x13, 0x00, - 0xad, 0x01, 0xff, 0x07, 0xc9, 0x15, 0x06, 0x42, 0x6c, 0x00, 0x63, 0x13, - 0x40, 0x0b, 0xe0, 0x6b, 0x06, 0x51, 0x6c, 0x38, 0x5e, 0x13, 0x40, 0x55, - 0x68, 0x38, 0x5d, 0x13, 0x00, 0x44, 0xb9, 0x00, 0x5f, 0x13, 0x40, 0x44, - 0x57, 0x69, 0x1b, 0x00, 0x00, 0x06, 0x90, 0xdd, 0x01, 0xff, 0x48, 0xd6, - 0x1f, 0x2e, 0x21, 0x00, 0xf3, 0x59, 0x22, 0x40, 0x0b, 0x3d, 0x97, 0x42, - 0x08, 0x92, 0xc4, 0x32, 0x0b, 0x22, 0xa0, 0x01, 0xff, 0x06, 0xe1, 0x02, - 0x17, 0x06, 0xad, 0x02, 0x01, 0xff, 0x46, 0xe7, 0x02, 0xf2, 0x29, 0x00, - 0x47, 0x88, 0x43, 0xf0, 0x29, 0x00, 0x46, 0xab, 0x05, 0xee, 0x29, 0x40, - 0x46, 0xe7, 0x02, 0xf3, 0x29, 0x00, 0x47, 0x88, 0x43, 0xf1, 0x29, 0x00, - 0x46, 0xab, 0x05, 0xef, 0x29, 0x40, 0x43, 0xbf, 0x0a, 0xf0, 0x2b, 0x00, - 0x43, 0xd0, 0x09, 0xf1, 0x2b, 0x40, 0x44, 0xc3, 0x00, 0x2b, 0x23, 0x00, - 0x45, 0xc8, 0x00, 0x26, 0x23, 0x40, 0x02, 0x13, 0x00, 0x1a, 0xa9, 0x01, - 0xff, 0x4a, 0x95, 0xa5, 0x5a, 0x22, 0x00, 0x07, 0x07, 0x39, 0x01, 0xff, - 0x42, 0x1e, 0x00, 0x4d, 0x22, 0x00, 0x54, 0x97, 0x45, 0x78, 0x2a, 0x40, - 0x80, 0x63, 0x02, 0x31, 0x01, 0x01, 0xff, 0x45, 0xc4, 0x3a, 0x55, 0x22, - 0x00, 0x44, 0x2f, 0x03, 0x3d, 0x00, 0x80, 0x06, 0x4d, 0xda, 0x88, 0x6e, - 0x2a, 0x40, 0x80, 0x01, 0xff, 0xa1, 0x1d, 0x05, 0x51, 0x00, 0x01, 0xff, - 0x4b, 0xb6, 0x97, 0xae, 0x2a, 0x00, 0x49, 0x50, 0x12, 0x66, 0x2a, 0x00, - 0x4e, 0x10, 0x77, 0xf9, 0x2b, 0x00, 0x61, 0xa3, 0x0e, 0x77, 0x2a, 0x40, - 0x05, 0x5d, 0x00, 0x0d, 0x53, 0xad, 0x37, 0xe3, 0x29, 0xc0, 0x00, 0x51, - 0x3e, 0x56, 0xe4, 0x29, 0x40, 0x4f, 0x37, 0x07, 0x40, 0x2b, 0x00, 0x49, - 0x45, 0x70, 0x71, 0x2a, 0x00, 0x50, 0xb3, 0x02, 0x71, 0x29, 0x00, 0x4e, - 0x93, 0x3d, 0x73, 0x2a, 0x40, 0x4f, 0x3d, 0x69, 0xd5, 0x22, 0x00, 0x03, - 0x7a, 0x02, 0x01, 0xff, 0x4d, 0xd0, 0x7f, 0x5d, 0x22, 0x00, 0x03, 0x9d, - 0x07, 0x01, 0xff, 0x4c, 0x87, 0x00, 0xdd, 0x22, 0x00, 0x49, 0xec, 0x00, - 0xdc, 0x22, 0x00, 0x48, 0x42, 0xc7, 0xde, 0x22, 0x00, 0x48, 0x82, 0xc8, - 0xdf, 0x22, 0x40, 0x80, 0x70, 0x02, 0x06, 0x00, 0x24, 0x45, 0xfb, 0xe6, - 0x05, 0x00, 0x00, 0x4a, 0xfd, 0x43, 0x86, 0x23, 0x00, 0x46, 0x5f, 0x31, - 0x09, 0x27, 0xc0, 0x00, 0x06, 0x50, 0x00, 0x01, 0xff, 0x55, 0xb8, 0x39, - 0xe9, 0xf4, 0x01, 0x49, 0x04, 0xb9, 0x84, 0xf5, 0x41, 0x03, 0xf4, 0x01, - 0x06, 0x5a, 0x1a, 0x22, 0x1a, 0xf5, 0x41, 0x4c, 0xb5, 0x8d, 0x97, 0x00, - 0x00, 0x44, 0xc2, 0x07, 0x0a, 0x00, 0x00, 0x46, 0x19, 0x04, 0x19, 0x00, - 0x00, 0x03, 0x90, 0x0c, 0x1c, 0x4d, 0xc5, 0x86, 0x87, 0x00, 0x00, 0xb4, - 0x01, 0xff, 0x43, 0xae, 0x06, 0x03, 0x00, 0x00, 0x4b, 0x93, 0x9f, 0x04, - 0x00, 0xc0, 0x00, 0x46, 0x32, 0x01, 0x17, 0x00, 0x40, 0x42, 0xf4, 0x01, - 0x0e, 0x22, 0x00, 0x4b, 0xf9, 0x79, 0x97, 0x00, 0x40, 0x44, 0x40, 0x12, - 0x13, 0x20, 0x00, 0x44, 0x2a, 0x0d, 0x00, 0x20, 0x00, 0x45, 0x87, 0x4b, - 0x02, 0x20, 0x40, 0x80, 0x9c, 0x01, 0x04, 0x82, 0xee, 0x61, 0xb0, 0x01, - 0xff, 0x4c, 0xe5, 0x8d, 0x83, 0x23, 0x00, 0x03, 0x2b, 0x1d, 0x01, 0xff, - 0x48, 0xaa, 0xc2, 0xcb, 0xf5, 0x01, 0xae, 0x2f, 0x44, 0x3d, 0xa4, 0xcc, - 0xf5, 0x81, 0x24, 0x43, 0x4d, 0x12, 0x05, 0x22, 0xc0, 0x00, 0x06, 0x50, - 0x00, 0x01, 0xff, 0x50, 0xfa, 0x62, 0xb4, 0x29, 0x00, 0x47, 0x77, 0x7e, - 0xb1, 0x29, 0x00, 0x51, 0xc8, 0x00, 0xb3, 0x29, 0x00, 0x52, 0x2c, 0x54, - 0xb2, 0x29, 0x40, 0xf3, 0xcd, 0xf5, 0x41, 0x43, 0x38, 0x1a, 0xb9, 0xfa, - 0x01, 0x43, 0x69, 0x27, 0xc5, 0xf5, 0xc1, 0x00, 0x03, 0x9f, 0x0e, 0x01, - 0xff, 0xe4, 0xc7, 0xf5, 0x01, 0x42, 0x8c, 0x09, 0xc6, 0xf5, 0x41, 0x0a, - 0x8f, 0xa6, 0x1b, 0x1a, 0x94, 0x20, 0x01, 0xff, 0x43, 0x33, 0xf0, 0xfb, - 0xf3, 0x01, 0xd3, 0xfc, 0xf3, 0x01, 0xd4, 0xfd, 0xf3, 0x01, 0xd5, 0xfe, - 0xf3, 0x01, 0xd6, 0xff, 0xf3, 0x41, 0x44, 0xf6, 0xeb, 0xb2, 0xf9, 0x01, - 0x4a, 0xc1, 0xa6, 0xb1, 0xf9, 0x01, 0x48, 0xa2, 0xc7, 0xb0, 0xf9, 0x01, - 0x4a, 0x25, 0xb1, 0xb3, 0xf9, 0x41, 0x44, 0x40, 0x12, 0x14, 0x20, 0x00, - 0x44, 0x2a, 0x0d, 0x01, 0x20, 0x00, 0x45, 0x87, 0x4b, 0x03, 0x20, 0x40, - 0x0d, 0x9c, 0x7f, 0x96, 0x02, 0xa5, 0xa0, 0x01, 0xe6, 0xdd, 0xf9, 0x01, - 0x07, 0x0b, 0xd5, 0x01, 0xff, 0x06, 0xc2, 0x05, 0x06, 0x52, 0x4a, 0x51, - 0xf6, 0x0f, 0x41, 0xa1, 0x7f, 0x44, 0x0a, 0xec, 0xe1, 0x0f, 0x01, 0x46, - 0xda, 0x48, 0xe3, 0x0f, 0x01, 0x45, 0xa1, 0xa8, 0xe2, 0x0f, 0x01, 0x42, - 0xb0, 0x01, 0xe4, 0x0f, 0x81, 0x60, 0x44, 0x8e, 0xed, 0xea, 0x0f, 0x01, - 0x46, 0x9c, 0xda, 0xeb, 0x0f, 0x01, 0x43, 0x89, 0x05, 0xec, 0x0f, 0x01, - 0x43, 0x54, 0x22, 0xed, 0x0f, 0x01, 0x42, 0x6f, 0x02, 0xf0, 0x0f, 0x01, - 0x44, 0xae, 0xc5, 0xf2, 0x0f, 0x01, 0x44, 0xfa, 0x64, 0xf3, 0x0f, 0x01, - 0xb3, 0x20, 0xb4, 0x12, 0x43, 0xc0, 0x88, 0xe5, 0x0f, 0x01, 0x44, 0x58, - 0x51, 0xe9, 0x0f, 0x01, 0x45, 0x52, 0x51, 0xe6, 0x0f, 0x41, 0x42, 0x9a, - 0x43, 0xf5, 0x0f, 0x01, 0x43, 0x39, 0x25, 0xe8, 0x0f, 0x41, 0xa1, 0x06, - 0x43, 0x0e, 0x16, 0xf4, 0x0f, 0x41, 0x43, 0x89, 0xe7, 0xf1, 0x0f, 0x01, - 0x44, 0x39, 0xe1, 0xee, 0x0f, 0x41, 0x42, 0x53, 0x00, 0xe7, 0x0f, 0x41, - 0x44, 0x48, 0x3c, 0xe0, 0x0f, 0x01, 0x43, 0xf7, 0x19, 0xef, 0x0f, 0x41, - 0x05, 0x5a, 0xe2, 0x4f, 0x47, 0xa2, 0x90, 0x08, 0x22, 0x80, 0x0c, 0x45, - 0x05, 0xc3, 0x18, 0xf4, 0x01, 0x45, 0xef, 0xe8, 0xd7, 0xf6, 0x41, 0x80, - 0x01, 0xff, 0x08, 0x84, 0x74, 0x29, 0x05, 0x51, 0x00, 0x01, 0xff, 0x49, - 0x98, 0x1d, 0xf5, 0x22, 0x00, 0x56, 0xa9, 0x34, 0xf2, 0x22, 0x00, 0x47, - 0x77, 0x7e, 0xf6, 0x22, 0x00, 0x56, 0x5b, 0x0b, 0xf9, 0x22, 0x00, 0x48, - 0x78, 0x58, 0xf8, 0x22, 0x00, 0x68, 0x05, 0x05, 0xf3, 0x22, 0x40, 0x49, - 0xa5, 0x01, 0xd9, 0x2a, 0x00, 0x47, 0x50, 0x02, 0xd2, 0x27, 0x40, 0x80, - 0x06, 0x4f, 0x44, 0x3b, 0xe7, 0x23, 0x40, 0x45, 0xce, 0x00, 0x01, 0x23, - 0x00, 0x4a, 0xbd, 0xaa, 0xa1, 0xf4, 0x01, 0x44, 0xce, 0xee, 0x0c, 0xf5, - 0x01, 0x45, 0x40, 0xe8, 0x26, 0xf5, 0x41, 0xe1, 0x00, 0x05, 0x01, 0x42, - 0x8c, 0x05, 0x01, 0x05, 0x01, 0xa3, 0xcf, 0x01, 0xa4, 0xc2, 0x01, 0xe5, - 0x08, 0x05, 0x81, 0xb8, 0x01, 0x42, 0xa0, 0x19, 0x09, 0x05, 0x01, 0xa7, - 0x99, 0x01, 0x42, 0xb0, 0x01, 0x0c, 0x05, 0x01, 0xe9, 0x0d, 0x05, 0x01, - 0x42, 0xde, 0x1f, 0x0e, 0x05, 0x01, 0xab, 0x7d, 0xac, 0x71, 0x42, 0x2a, - 0x02, 0x12, 0x05, 0x01, 0xae, 0x55, 0xef, 0x16, 0x05, 0x01, 0x42, 0x6f, - 0x02, 0x17, 0x05, 0x01, 0x42, 0x72, 0xa0, 0x18, 0x05, 0x01, 0xb2, 0x39, - 0xb3, 0x2d, 0xb4, 0x21, 0xf5, 0x1f, 0x05, 0x01, 0x42, 0x32, 0x00, 0x20, - 0x05, 0x01, 0x42, 0x60, 0x42, 0x21, 0x05, 0x01, 0xf9, 0x22, 0x05, 0x01, - 0xba, 0x01, 0xff, 0xe5, 0x23, 0x05, 0x01, 0x42, 0xb0, 0x01, 0x24, 0x05, - 0x41, 0xe5, 0x1d, 0x05, 0x01, 0x42, 0xb0, 0x01, 0x1e, 0x05, 0x41, 0xe5, - 0x1b, 0x05, 0x01, 0x42, 0xb0, 0x01, 0x1c, 0x05, 0x41, 0xe5, 0x19, 0x05, - 0x01, 0x42, 0x88, 0x00, 0x1a, 0x05, 0x41, 0xe1, 0x14, 0x05, 0x01, 0x42, - 0x04, 0x00, 0x05, 0x05, 0x01, 0xe5, 0x13, 0x05, 0x01, 0x42, 0xde, 0x1f, - 0x15, 0x05, 0x41, 0xe5, 0x10, 0x05, 0x01, 0x42, 0x68, 0x00, 0x11, 0x05, - 0x41, 0xe5, 0x0f, 0x05, 0x01, 0x42, 0xb0, 0x01, 0x27, 0x05, 0x41, 0xe5, - 0x0a, 0x05, 0x01, 0xa8, 0x06, 0x42, 0xde, 0x1f, 0x0b, 0x05, 0x41, 0x44, - 0x5e, 0x20, 0x26, 0x05, 0x01, 0xe5, 0x25, 0x05, 0x41, 0xe9, 0x07, 0x05, - 0x41, 0xe5, 0x04, 0x05, 0x01, 0x42, 0xb0, 0x01, 0x06, 0x05, 0x41, 0xe5, - 0x02, 0x05, 0x01, 0x42, 0xb0, 0x01, 0x03, 0x05, 0x41, 0x80, 0x06, 0x46, - 0x4e, 0x62, 0x6a, 0x26, 0x40, 0xb0, 0x1c, 0x05, 0xca, 0x64, 0x0c, 0x4f, - 0x4e, 0x1c, 0x33, 0x27, 0x00, 0x62, 0xd3, 0x0c, 0x4a, 0x27, 0x40, 0x46, - 0x18, 0xda, 0x69, 0xcc, 0x01, 0x47, 0x68, 0xd1, 0x6a, 0xcc, 0x41, 0x5f, - 0xc1, 0x10, 0x41, 0x27, 0x00, 0x07, 0x09, 0x08, 0x01, 0xff, 0x4a, 0x53, - 0x2b, 0x34, 0x27, 0x00, 0x4d, 0xd9, 0x12, 0x35, 0x27, 0x00, 0x56, 0xdd, - 0x35, 0x37, 0x27, 0x40, 0xe7, 0x5a, 0xf9, 0x01, 0x11, 0x69, 0x5e, 0x01, - 0xff, 0x80, 0x04, 0xcd, 0x02, 0xd8, 0x40, 0xa1, 0xe6, 0x23, 0xa2, 0x9f, - 0x23, 0x02, 0xc4, 0xf1, 0xa1, 0x22, 0x02, 0xc6, 0xf1, 0x8e, 0x1f, 0xa5, - 0xb1, 0x1d, 0xa6, 0x88, 0x1b, 0x02, 0xc8, 0xf1, 0xeb, 0x18, 0xa8, 0xa9, - 0x18, 0xa9, 0x98, 0x17, 0x03, 0x14, 0xf1, 0xf3, 0x16, 0xac, 0xbc, 0x16, - 0xad, 0x9f, 0x13, 0xae, 0xe7, 0x0f, 0xaf, 0x93, 0x0d, 0x02, 0x8b, 0xd5, - 0xd3, 0x0c, 0x03, 0x38, 0xf1, 0xb2, 0x0c, 0x02, 0x32, 0xcb, 0x9a, 0x0b, - 0x02, 0xee, 0xde, 0xaa, 0x09, 0xb4, 0xdd, 0x07, 0x02, 0xad, 0xe9, 0x8c, - 0x06, 0xb6, 0xaf, 0x03, 0xb7, 0x96, 0x02, 0x03, 0x7d, 0xf1, 0xde, 0x01, - 0x03, 0x89, 0xf1, 0xb4, 0x01, 0x02, 0xd6, 0xf1, 0x01, 0xff, 0x90, 0x65, - 0x91, 0x01, 0xff, 0xd0, 0xf5, 0x33, 0x01, 0xd1, 0xf6, 0x33, 0x01, 0xd2, - 0xf7, 0x33, 0x01, 0xd3, 0xf8, 0x33, 0x01, 0xd4, 0xf9, 0x33, 0x01, 0xd5, - 0xfa, 0x33, 0x81, 0x25, 0xd6, 0x04, 0x34, 0xc1, 0x00, 0xe1, 0x05, 0x34, - 0x01, 0xe2, 0x06, 0x34, 0x01, 0xe3, 0x07, 0x34, 0x01, 0xe4, 0x08, 0x34, - 0x01, 0xe5, 0x09, 0x34, 0x01, 0xe6, 0x0a, 0x34, 0x01, 0xe7, 0x0b, 0x34, - 0x01, 0xe8, 0x0c, 0x34, 0x41, 0xe1, 0xfb, 0x33, 0x01, 0xe2, 0xfc, 0x33, - 0x01, 0xe3, 0xfd, 0x33, 0x01, 0xe4, 0xfe, 0x33, 0x01, 0xe5, 0xff, 0x33, - 0x01, 0xe6, 0x00, 0x34, 0x01, 0xe7, 0x01, 0x34, 0x01, 0xe8, 0x02, 0x34, - 0x01, 0xe9, 0x03, 0x34, 0x41, 0xd1, 0xe4, 0x33, 0x01, 0xd2, 0xe5, 0x33, - 0x81, 0x2f, 0xd3, 0xea, 0x33, 0x81, 0x22, 0xd4, 0xed, 0x33, 0x81, 0x19, - 0xd5, 0xef, 0x33, 0x81, 0x10, 0xd6, 0xf1, 0x33, 0x01, 0xd7, 0xf2, 0x33, - 0x01, 0xd8, 0xf3, 0x33, 0x01, 0xd9, 0xf4, 0x33, 0x41, 0xe1, 0xf0, 0x33, - 0x41, 0xe1, 0xee, 0x33, 0x41, 0xe1, 0xeb, 0x33, 0x01, 0xe2, 0xec, 0x33, - 0x41, 0xe1, 0xe6, 0x33, 0x01, 0xe2, 0xe7, 0x33, 0x01, 0xe3, 0xe8, 0x33, - 0x01, 0xe4, 0xe9, 0x33, 0x41, 0xd1, 0xdb, 0x33, 0x81, 0x1c, 0xd2, 0xdd, - 0x33, 0x01, 0xd3, 0xde, 0x33, 0x01, 0xd4, 0xdf, 0x33, 0x01, 0xd5, 0xe0, - 0x33, 0x01, 0xd6, 0xe1, 0x33, 0x01, 0xd7, 0xe2, 0x33, 0x01, 0xd8, 0xe3, - 0x33, 0x41, 0xe1, 0xdc, 0x33, 0x41, 0xd1, 0xcf, 0x33, 0x01, 0xd2, 0xd0, - 0x33, 0x01, 0xd3, 0xd1, 0x33, 0x01, 0xd4, 0xd2, 0x33, 0x81, 0x1a, 0xd5, - 0xd5, 0x33, 0x01, 0xd6, 0xd6, 0x33, 0x81, 0x0d, 0xd7, 0xd8, 0x33, 0x01, - 0xd8, 0xd9, 0x33, 0xc1, 0x00, 0xe1, 0xda, 0x33, 0x41, 0xe1, 0xd7, 0x33, - 0x41, 0xe1, 0xd3, 0x33, 0x01, 0xe2, 0xd4, 0x33, 0x41, 0x90, 0x06, 0x4d, - 0x4d, 0x82, 0x46, 0x34, 0x41, 0x90, 0x5e, 0x91, 0x20, 0x92, 0x01, 0xff, - 0xd0, 0xc8, 0x33, 0x01, 0xd1, 0xc9, 0x33, 0x01, 0xd2, 0xca, 0x33, 0x01, - 0xd3, 0xcb, 0x33, 0x01, 0xd4, 0xcc, 0x33, 0x81, 0x04, 0xd5, 0xce, 0x33, - 0x41, 0xe1, 0xcd, 0x33, 0x41, 0xd0, 0xba, 0x33, 0x81, 0x33, 0xd1, 0xbc, - 0x33, 0x01, 0xd2, 0xbd, 0x33, 0x01, 0xd3, 0xbe, 0x33, 0x01, 0xd4, 0xbf, - 0x33, 0x81, 0x1e, 0xd5, 0xc1, 0x33, 0x01, 0xd6, 0xc2, 0x33, 0x01, 0xd7, - 0xc3, 0x33, 0x81, 0x0d, 0xd8, 0xc5, 0x33, 0x81, 0x04, 0xd9, 0xc7, 0x33, - 0x41, 0xe1, 0xc6, 0x33, 0x41, 0xe1, 0xc4, 0x33, 0x41, 0xe1, 0xc0, 0x33, - 0x41, 0xe1, 0xbb, 0x33, 0x41, 0xd1, 0xaf, 0x33, 0x01, 0xd2, 0xb0, 0x33, - 0x01, 0xd3, 0xb1, 0x33, 0x81, 0x1d, 0xd4, 0xb3, 0x33, 0x01, 0xd5, 0xb4, - 0x33, 0x01, 0xd6, 0xb5, 0x33, 0x01, 0xd7, 0xb6, 0x33, 0x01, 0xd8, 0xb7, - 0x33, 0x01, 0xd9, 0xb8, 0x33, 0xc1, 0x00, 0xe1, 0xb9, 0x33, 0x41, 0xe1, - 0xb2, 0x33, 0x41, 0x90, 0x06, 0x4e, 0x22, 0x76, 0x30, 0x34, 0x41, 0x90, - 0xf8, 0x01, 0x91, 0xb3, 0x01, 0x92, 0x49, 0x93, 0x0b, 0x42, 0xae, 0xf1, - 0xad, 0x33, 0xc1, 0x00, 0xe1, 0xae, 0x33, 0x41, 0xd0, 0x9f, 0x33, 0x81, - 0x33, 0xd1, 0xa1, 0x33, 0x81, 0x2a, 0xd2, 0xa3, 0x33, 0x01, 0xd3, 0xa4, - 0x33, 0x81, 0x1d, 0xd4, 0xa6, 0x33, 0x01, 0xd5, 0xa7, 0x33, 0x01, 0xd6, - 0xa8, 0x33, 0x01, 0xd7, 0xa9, 0x33, 0x81, 0x08, 0xd8, 0xab, 0x33, 0x01, - 0xd9, 0xac, 0x33, 0x41, 0xe1, 0xaa, 0x33, 0x41, 0xe1, 0xa5, 0x33, 0x41, - 0xe1, 0xa2, 0x33, 0x41, 0xe1, 0xa0, 0x33, 0x41, 0xd0, 0x86, 0x33, 0x81, - 0x33, 0xd1, 0x93, 0x33, 0x01, 0xd2, 0x94, 0x33, 0x01, 0xd3, 0x95, 0x33, - 0x81, 0x22, 0xd4, 0x97, 0x33, 0x01, 0xd5, 0x98, 0x33, 0x01, 0xd6, 0x99, - 0x33, 0x01, 0xd7, 0x9a, 0x33, 0x01, 0xd8, 0x9b, 0x33, 0x81, 0x09, 0xd9, - 0x9d, 0x33, 0xc1, 0x00, 0xe1, 0x9e, 0x33, 0x41, 0xe1, 0x9c, 0x33, 0x41, - 0xe1, 0x96, 0x33, 0x41, 0xe1, 0x87, 0x33, 0x01, 0xe2, 0x88, 0x33, 0x01, - 0xe3, 0x89, 0x33, 0x01, 0xe4, 0x8a, 0x33, 0x01, 0xe5, 0x8b, 0x33, 0x01, - 0xe6, 0x8c, 0x33, 0x01, 0xe7, 0x8d, 0x33, 0x01, 0xe8, 0x8e, 0x33, 0x01, - 0xe9, 0x8f, 0x33, 0x01, 0xea, 0x90, 0x33, 0x01, 0xeb, 0x91, 0x33, 0x01, - 0xec, 0x92, 0x33, 0x41, 0xd0, 0x77, 0x33, 0x01, 0xd1, 0x78, 0x33, 0x81, - 0x29, 0xd2, 0x7c, 0x33, 0x81, 0x1c, 0xd3, 0x7f, 0x33, 0x01, 0xd4, 0x80, - 0x33, 0x01, 0xd5, 0x81, 0x33, 0x01, 0xd6, 0x82, 0x33, 0x01, 0xd7, 0x83, - 0x33, 0x01, 0xd8, 0x84, 0x33, 0x01, 0xd9, 0x85, 0x33, 0x41, 0xe1, 0x7d, - 0x33, 0x01, 0xe2, 0x7e, 0x33, 0x41, 0xe1, 0x79, 0x33, 0x01, 0xe2, 0x7a, - 0x33, 0x01, 0xe3, 0x7b, 0x33, 0x01, 0xe4, 0x2f, 0x34, 0x41, 0xd1, 0x62, - 0x33, 0x81, 0x2e, 0xd2, 0x6c, 0x33, 0x81, 0x25, 0xd3, 0x6e, 0x33, 0x01, - 0xd4, 0x6f, 0x33, 0x01, 0xd5, 0x70, 0x33, 0x01, 0xd6, 0x71, 0x33, 0x01, - 0xd7, 0x72, 0x33, 0x81, 0x08, 0xd8, 0x75, 0x33, 0x01, 0xd9, 0x76, 0x33, - 0x41, 0xe1, 0x73, 0x33, 0x01, 0xe2, 0x74, 0x33, 0x41, 0xe1, 0x6d, 0x33, - 0x41, 0xe1, 0x63, 0x33, 0x01, 0xe2, 0x64, 0x33, 0x01, 0xe3, 0x65, 0x33, - 0x01, 0xe4, 0x66, 0x33, 0x01, 0xe5, 0x67, 0x33, 0x01, 0xe6, 0x68, 0x33, - 0x01, 0xe7, 0x69, 0x33, 0x01, 0xe8, 0x6a, 0x33, 0x01, 0xe9, 0x6b, 0x33, - 0x41, 0x90, 0x9c, 0x01, 0x91, 0x72, 0x92, 0x3e, 0x93, 0x0f, 0x94, 0x01, - 0xff, 0xd0, 0x5f, 0x33, 0x01, 0xd1, 0x60, 0x33, 0x01, 0xd2, 0x61, 0x33, - 0x41, 0xd0, 0x54, 0x33, 0x01, 0xd1, 0x55, 0x33, 0x01, 0xd2, 0x56, 0x33, - 0x81, 0x1c, 0xd3, 0x58, 0x33, 0x01, 0xd4, 0x59, 0x33, 0x01, 0xd5, 0x5a, - 0x33, 0x01, 0xd6, 0x5b, 0x33, 0x01, 0xd7, 0x5c, 0x33, 0x01, 0xd8, 0x5d, - 0x33, 0x01, 0xd9, 0x5e, 0x33, 0x41, 0xe1, 0x57, 0x33, 0x41, 0xd0, 0x48, - 0x33, 0x01, 0xd1, 0x49, 0x33, 0x01, 0xd2, 0x4a, 0x33, 0x01, 0xd3, 0x4b, - 0x33, 0x81, 0x1d, 0xd4, 0x4d, 0x33, 0x01, 0xd5, 0x4e, 0x33, 0x01, 0xd6, - 0x4f, 0x33, 0x01, 0xd7, 0x50, 0x33, 0x01, 0xd8, 0x51, 0x33, 0x01, 0xd9, - 0x52, 0x33, 0xc1, 0x00, 0xe1, 0x53, 0x33, 0x41, 0xe1, 0x4c, 0x33, 0x41, - 0xd0, 0x3e, 0x33, 0x01, 0xd1, 0x3f, 0x33, 0x01, 0xd2, 0x40, 0x33, 0x01, - 0xd3, 0x41, 0x33, 0x01, 0xd4, 0x42, 0x33, 0x01, 0xd5, 0x43, 0x33, 0x01, - 0xd6, 0x44, 0x33, 0x01, 0xd7, 0x45, 0x33, 0x01, 0xd8, 0x46, 0x33, 0x01, - 0xd9, 0x47, 0x33, 0x41, 0xd1, 0x33, 0x33, 0x01, 0xd2, 0x34, 0x33, 0x01, - 0xd3, 0x35, 0x33, 0x01, 0xd4, 0x36, 0x33, 0x01, 0xd5, 0x37, 0x33, 0x01, - 0xd6, 0x38, 0x33, 0x81, 0x0c, 0xd7, 0x3b, 0x33, 0x01, 0xd8, 0x3c, 0x33, - 0x01, 0xd9, 0x3d, 0x33, 0x41, 0xe1, 0x39, 0x33, 0x01, 0xe2, 0x3a, 0x33, - 0x41, 0x90, 0x06, 0x4d, 0xd9, 0x7e, 0x45, 0x34, 0x41, 0x90, 0x87, 0x01, - 0x91, 0x53, 0x92, 0x29, 0x93, 0x01, 0xff, 0xd0, 0x2a, 0x33, 0x01, 0xd1, - 0x2b, 0x33, 0x01, 0xd2, 0x2c, 0x33, 0x81, 0x15, 0xd3, 0x2e, 0x33, 0x81, - 0x0c, 0xd4, 0x30, 0x33, 0x01, 0xd5, 0x31, 0x33, 0x01, 0xd6, 0x32, 0x33, - 0x41, 0xe1, 0x2f, 0x33, 0x41, 0xe1, 0x2d, 0x33, 0x41, 0xd0, 0x20, 0x33, - 0x01, 0xd1, 0x21, 0x33, 0x01, 0xd2, 0x22, 0x33, 0x01, 0xd3, 0x23, 0x33, - 0x01, 0xd4, 0x24, 0x33, 0x01, 0xd5, 0x25, 0x33, 0x01, 0xd6, 0x26, 0x33, - 0x01, 0xd7, 0x27, 0x33, 0x01, 0xd8, 0x28, 0x33, 0x01, 0xd9, 0x29, 0x33, - 0x41, 0xd0, 0x14, 0x33, 0x01, 0xd1, 0x15, 0x33, 0x81, 0x25, 0xd2, 0x17, - 0x33, 0x01, 0xd3, 0x18, 0x33, 0x01, 0xd4, 0x19, 0x33, 0x01, 0xd5, 0x1a, - 0x33, 0x01, 0xd6, 0x1b, 0x33, 0x81, 0x0c, 0xd7, 0x1d, 0x33, 0x01, 0xd8, - 0x1e, 0x33, 0x01, 0xd9, 0x1f, 0x33, 0x41, 0xe1, 0x1c, 0x33, 0x41, 0xe1, - 0x16, 0x33, 0x41, 0xd1, 0x07, 0x33, 0x01, 0xd2, 0x08, 0x33, 0x01, 0xd3, - 0x09, 0x33, 0x81, 0x27, 0xd4, 0x0b, 0x33, 0x01, 0xd5, 0x0c, 0x33, 0x01, - 0xd6, 0x0d, 0x33, 0x01, 0xd7, 0x0e, 0x33, 0x81, 0x12, 0xd8, 0x10, 0x33, - 0x81, 0x09, 0xd9, 0x12, 0x33, 0xc1, 0x00, 0xe1, 0x13, 0x33, 0x41, 0xe1, - 0x11, 0x33, 0x41, 0xe1, 0x0f, 0x33, 0x41, 0xe1, 0x0a, 0x33, 0x41, 0x90, - 0xba, 0x01, 0x91, 0x81, 0x01, 0x92, 0x4e, 0x93, 0x1f, 0x94, 0x01, 0xff, - 0xd0, 0x00, 0x33, 0x01, 0xd1, 0x01, 0x33, 0x01, 0xd2, 0x02, 0x33, 0x01, - 0xd3, 0x03, 0x33, 0x01, 0xd4, 0x04, 0x33, 0x01, 0xd5, 0x05, 0x33, 0x01, - 0xd6, 0x06, 0x33, 0x41, 0xd0, 0xf5, 0x32, 0x01, 0xd1, 0xf6, 0x32, 0x01, - 0xd2, 0xf7, 0x32, 0x01, 0xd3, 0xf8, 0x32, 0x01, 0xd4, 0xf9, 0x32, 0x01, - 0xd5, 0xfa, 0x32, 0x81, 0x10, 0xd6, 0xfc, 0x32, 0x01, 0xd7, 0xfd, 0x32, - 0x01, 0xd8, 0xfe, 0x32, 0x01, 0xd9, 0xff, 0x32, 0x41, 0xe1, 0xfb, 0x32, - 0x41, 0xd0, 0xe9, 0x32, 0x01, 0xd1, 0xea, 0x32, 0x01, 0xd2, 0xeb, 0x32, - 0x01, 0xd3, 0xec, 0x32, 0x01, 0xd4, 0xed, 0x32, 0x01, 0xd5, 0xee, 0x32, - 0x01, 0xd6, 0xef, 0x32, 0x81, 0x0c, 0xd7, 0xf2, 0x32, 0x01, 0xd8, 0xf3, - 0x32, 0x01, 0xd9, 0xf4, 0x32, 0x41, 0xe1, 0xf0, 0x32, 0x01, 0xe2, 0xf1, - 0x32, 0x41, 0xd0, 0xdc, 0x32, 0x01, 0xd1, 0xdd, 0x32, 0x01, 0xd2, 0xde, - 0x32, 0x01, 0xd3, 0xdf, 0x32, 0x01, 0xd4, 0xe0, 0x32, 0x81, 0x19, 0xd5, - 0xe3, 0x32, 0x01, 0xd6, 0xe4, 0x32, 0x01, 0xd7, 0xe5, 0x32, 0x81, 0x08, - 0xd8, 0xe7, 0x32, 0x01, 0xd9, 0xe8, 0x32, 0x41, 0xe1, 0xe6, 0x32, 0x41, - 0xe1, 0xe1, 0x32, 0x01, 0xe2, 0xe2, 0x32, 0x41, 0xd1, 0xd1, 0x32, 0x01, - 0xd2, 0xd2, 0x32, 0x81, 0x21, 0xd3, 0xd4, 0x32, 0x01, 0xd4, 0xd5, 0x32, - 0x01, 0xd5, 0xd6, 0x32, 0x01, 0xd6, 0xd7, 0x32, 0x81, 0x0c, 0xd7, 0xd9, - 0x32, 0x01, 0xd8, 0xda, 0x32, 0x01, 0xd9, 0xdb, 0x32, 0x41, 0xe1, 0xd8, - 0x32, 0x41, 0xe1, 0xd3, 0x32, 0x41, 0x90, 0x5f, 0x91, 0x2b, 0x92, 0x01, - 0xff, 0xd0, 0xc7, 0x32, 0x01, 0xd1, 0xc8, 0x32, 0x01, 0xd2, 0xc9, 0x32, - 0x01, 0xd3, 0xca, 0x32, 0x01, 0xd4, 0xcb, 0x32, 0x01, 0xd5, 0xcc, 0x32, - 0x01, 0xd6, 0xcd, 0x32, 0x01, 0xd7, 0xce, 0x32, 0x01, 0xd8, 0xcf, 0x32, - 0x01, 0xd9, 0xd0, 0x32, 0x41, 0xd0, 0xbb, 0x32, 0x81, 0x29, 0xd1, 0xbd, - 0x32, 0x01, 0xd2, 0xbe, 0x32, 0x01, 0xd3, 0xbf, 0x32, 0x01, 0xd4, 0xc0, - 0x32, 0x01, 0xd5, 0xc1, 0x32, 0x01, 0xd6, 0xc2, 0x32, 0x81, 0x0c, 0xd7, - 0xc4, 0x32, 0x01, 0xd8, 0xc5, 0x32, 0x01, 0xd9, 0xc6, 0x32, 0x41, 0xe1, - 0xc3, 0x32, 0x41, 0xe1, 0xbc, 0x32, 0x41, 0xd1, 0xaf, 0x32, 0x01, 0xd2, - 0xb0, 0x32, 0x81, 0x25, 0xd3, 0xb2, 0x32, 0x81, 0x18, 0xd4, 0xb5, 0x32, - 0x01, 0xd5, 0xb6, 0x32, 0x01, 0xd6, 0xb7, 0x32, 0x01, 0xd7, 0xb8, 0x32, - 0x01, 0xd8, 0xb9, 0x32, 0x01, 0xd9, 0xba, 0x32, 0x41, 0xe1, 0xb3, 0x32, - 0x01, 0xe2, 0xb4, 0x32, 0x41, 0xe1, 0xb1, 0x32, 0x41, 0xd1, 0xa8, 0x32, - 0x01, 0xd2, 0xa9, 0x32, 0x01, 0xd3, 0xaa, 0x32, 0x01, 0xd4, 0xab, 0x32, - 0x01, 0xd5, 0xac, 0x32, 0x01, 0xd6, 0xad, 0x32, 0x01, 0xd7, 0xae, 0x32, - 0x41, 0x90, 0x0b, 0x91, 0x01, 0xff, 0xd0, 0xa6, 0x32, 0x01, 0xd1, 0xa7, - 0x32, 0x41, 0xd1, 0x9b, 0x32, 0x81, 0x25, 0xd2, 0x9d, 0x32, 0x01, 0xd3, - 0x9e, 0x32, 0x81, 0x18, 0xd4, 0xa0, 0x32, 0x01, 0xd5, 0xa1, 0x32, 0x01, - 0xd6, 0xa2, 0x32, 0x01, 0xd7, 0xa3, 0x32, 0x01, 0xd8, 0xa4, 0x32, 0x01, - 0xd9, 0xa5, 0x32, 0x41, 0xe1, 0x9f, 0x32, 0x41, 0xe1, 0x9c, 0x32, 0x41, - 0x90, 0x06, 0x4d, 0x58, 0x88, 0x36, 0x34, 0x41, 0x90, 0xff, 0x01, 0x91, - 0xc2, 0x01, 0x92, 0x83, 0x01, 0x93, 0x3e, 0x94, 0x14, 0x95, 0x01, 0xff, - 0xd0, 0x97, 0x32, 0x81, 0x04, 0xd1, 0x9a, 0x32, 0x41, 0xe1, 0x98, 0x32, - 0x01, 0xe2, 0x99, 0x32, 0x41, 0xd0, 0x8d, 0x32, 0x01, 0xd1, 0x8e, 0x32, - 0x01, 0xd2, 0x8f, 0x32, 0x01, 0xd3, 0x90, 0x32, 0x01, 0xd4, 0x91, 0x32, - 0x01, 0xd5, 0x92, 0x32, 0x01, 0xd6, 0x93, 0x32, 0x01, 0xd7, 0x94, 0x32, - 0x01, 0xd8, 0x95, 0x32, 0x01, 0xd9, 0x96, 0x32, 0x41, 0xd0, 0x7d, 0x32, - 0x81, 0x3a, 0xd1, 0x7f, 0x32, 0x01, 0xd2, 0x80, 0x32, 0x01, 0xd3, 0x81, - 0x32, 0x81, 0x29, 0xd4, 0x83, 0x32, 0x01, 0xd5, 0x84, 0x32, 0x01, 0xd6, - 0x85, 0x32, 0x81, 0x0c, 0xd7, 0x8a, 0x32, 0x01, 0xd8, 0x8b, 0x32, 0x01, - 0xd9, 0x8c, 0x32, 0x41, 0xe1, 0x86, 0x32, 0x01, 0xe2, 0x87, 0x32, 0x01, - 0xe3, 0x88, 0x32, 0x01, 0xe4, 0x89, 0x32, 0x41, 0xe1, 0x82, 0x32, 0x41, - 0xe1, 0x7e, 0x32, 0x41, 0xd0, 0x6f, 0x32, 0x81, 0x33, 0xd1, 0x71, 0x32, - 0x01, 0xd2, 0x72, 0x32, 0x01, 0xd3, 0x73, 0x32, 0x01, 0xd4, 0x74, 0x32, - 0x81, 0x1e, 0xd5, 0x76, 0x32, 0x81, 0x15, 0xd6, 0x78, 0x32, 0x01, 0xd7, - 0x79, 0x32, 0x01, 0xd8, 0x7a, 0x32, 0x01, 0xd9, 0x7b, 0x32, 0xc1, 0x00, - 0xe1, 0x7c, 0x32, 0x41, 0xe1, 0x77, 0x32, 0x41, 0xe1, 0x75, 0x32, 0x41, - 0xe1, 0x70, 0x32, 0x41, 0xd0, 0x61, 0x32, 0x81, 0x29, 0xd1, 0x65, 0x32, - 0x01, 0xd2, 0x66, 0x32, 0x01, 0xd3, 0x67, 0x32, 0x01, 0xd4, 0x68, 0x32, - 0x01, 0xd5, 0x69, 0x32, 0x01, 0xd6, 0x6a, 0x32, 0x01, 0xd7, 0x6b, 0x32, - 0x01, 0xd8, 0x6c, 0x32, 0x01, 0xd9, 0x6d, 0x32, 0xc1, 0x00, 0xe1, 0x6e, - 0x32, 0x41, 0xe1, 0x62, 0x32, 0x01, 0xe2, 0x63, 0x32, 0x01, 0xe3, 0x64, - 0x32, 0x41, 0xd1, 0x50, 0x32, 0x81, 0x3e, 0xd2, 0x52, 0x32, 0x01, 0xd3, - 0x53, 0x32, 0x01, 0xd4, 0x54, 0x32, 0x01, 0xd5, 0x55, 0x32, 0x81, 0x29, - 0xd6, 0x57, 0x32, 0x81, 0x0c, 0xd7, 0x5e, 0x32, 0x01, 0xd8, 0x5f, 0x32, - 0x01, 0xd9, 0x60, 0x32, 0x41, 0xe1, 0x58, 0x32, 0x01, 0xe2, 0x59, 0x32, - 0x01, 0xe3, 0x5a, 0x32, 0x01, 0xe4, 0x5b, 0x32, 0x01, 0xe5, 0x5c, 0x32, - 0x01, 0xe6, 0x5d, 0x32, 0x41, 0xe1, 0x56, 0x32, 0x41, 0xe1, 0x51, 0x32, - 0x41, 0x90, 0xdc, 0x01, 0x02, 0x81, 0x96, 0x78, 0x02, 0xad, 0xe9, 0x01, - 0xff, 0x90, 0x4d, 0x91, 0x14, 0x92, 0x01, 0xff, 0xd0, 0x4c, 0x32, 0x01, - 0xd1, 0x4d, 0x32, 0x01, 0xd2, 0x4e, 0x32, 0xc1, 0x00, 0xe1, 0x4f, 0x32, - 0x41, 0xd0, 0x3f, 0x32, 0x81, 0x2e, 0xd1, 0x41, 0x32, 0x81, 0x25, 0xd2, - 0x43, 0x32, 0x01, 0xd3, 0x44, 0x32, 0x01, 0xd4, 0x45, 0x32, 0x01, 0xd5, - 0x46, 0x32, 0x01, 0xd6, 0x47, 0x32, 0x01, 0xd7, 0x48, 0x32, 0x01, 0xd8, - 0x49, 0x32, 0x81, 0x04, 0xd9, 0x4b, 0x32, 0x41, 0xe1, 0x4a, 0x32, 0x41, - 0xe1, 0x42, 0x32, 0x41, 0xe1, 0x40, 0x32, 0x41, 0xd1, 0x36, 0x32, 0x01, - 0xd2, 0x37, 0x32, 0x01, 0xd3, 0x38, 0x32, 0x01, 0xd4, 0x39, 0x32, 0x01, - 0xd5, 0x3a, 0x32, 0x01, 0xd6, 0x3b, 0x32, 0x01, 0xd7, 0x3c, 0x32, 0x01, - 0xd8, 0x3d, 0x32, 0x01, 0xd9, 0x3e, 0x32, 0x41, 0x90, 0x35, 0x91, 0x06, - 0x42, 0xab, 0xe4, 0x35, 0x32, 0x41, 0xd0, 0x2a, 0x32, 0x01, 0xd1, 0x2b, - 0x32, 0x01, 0xd2, 0x2c, 0x32, 0x01, 0xd3, 0x2d, 0x32, 0x01, 0xd4, 0x2e, - 0x32, 0x01, 0xd5, 0x2f, 0x32, 0x01, 0xd6, 0x30, 0x32, 0x01, 0xd7, 0x31, - 0x32, 0x81, 0x08, 0xd8, 0x33, 0x32, 0x01, 0xd9, 0x34, 0x32, 0x41, 0xe1, - 0x32, 0x32, 0x41, 0xd1, 0x20, 0x32, 0x01, 0xd2, 0x21, 0x32, 0x01, 0xd3, - 0x22, 0x32, 0x01, 0xd4, 0x23, 0x32, 0x01, 0xd5, 0x24, 0x32, 0x81, 0x10, - 0xd6, 0x26, 0x32, 0x01, 0xd7, 0x27, 0x32, 0x01, 0xd8, 0x28, 0x32, 0x01, - 0xd9, 0x29, 0x32, 0x41, 0xe1, 0x25, 0x32, 0x41, 0x90, 0xaf, 0x01, 0x91, - 0x7c, 0x92, 0x4d, 0x93, 0x0f, 0x94, 0x01, 0xff, 0xd0, 0x1d, 0x32, 0x01, - 0xd1, 0x1e, 0x32, 0x01, 0xd2, 0x1f, 0x32, 0x41, 0xd0, 0x0f, 0x32, 0x01, - 0xd1, 0x10, 0x32, 0x01, 0xd2, 0x11, 0x32, 0x01, 0xd3, 0x12, 0x32, 0x81, - 0x27, 0xd4, 0x14, 0x32, 0x81, 0x1e, 0xd5, 0x16, 0x32, 0x81, 0x15, 0xd6, - 0x18, 0x32, 0x01, 0xd7, 0x19, 0x32, 0x81, 0x08, 0xd8, 0x1b, 0x32, 0x01, - 0xd9, 0x1c, 0x32, 0x41, 0xe1, 0x1a, 0x32, 0x41, 0xe1, 0x17, 0x32, 0x41, - 0xe1, 0x15, 0x32, 0x41, 0xe1, 0x13, 0x32, 0x41, 0xd0, 0x04, 0x32, 0x01, - 0xd1, 0x05, 0x32, 0x01, 0xd2, 0x06, 0x32, 0x01, 0xd3, 0x07, 0x32, 0x01, - 0xd4, 0x08, 0x32, 0x01, 0xd5, 0x09, 0x32, 0x81, 0x10, 0xd6, 0x0b, 0x32, - 0x01, 0xd7, 0x0c, 0x32, 0x01, 0xd8, 0x0d, 0x32, 0x01, 0xd9, 0x0e, 0x32, - 0x41, 0xe1, 0x0a, 0x32, 0x41, 0xd0, 0xf8, 0x31, 0x01, 0xd1, 0xf9, 0x31, - 0x01, 0xd2, 0xfa, 0x31, 0x01, 0xd3, 0xfb, 0x31, 0x01, 0xd4, 0xfc, 0x31, - 0x01, 0xd5, 0xfd, 0x31, 0x01, 0xd6, 0xfe, 0x31, 0x01, 0xd7, 0xff, 0x31, - 0x01, 0xd8, 0x00, 0x32, 0x81, 0x04, 0xd9, 0x03, 0x32, 0x41, 0xe1, 0x01, - 0x32, 0x01, 0xe2, 0x02, 0x32, 0x41, 0xd1, 0xef, 0x31, 0x01, 0xd2, 0xf0, - 0x31, 0x01, 0xd3, 0xf1, 0x31, 0x01, 0xd4, 0xf2, 0x31, 0x01, 0xd5, 0xf3, - 0x31, 0x01, 0xd6, 0xf4, 0x31, 0x01, 0xd7, 0xf5, 0x31, 0x01, 0xd8, 0xf6, - 0x31, 0x01, 0xd9, 0xf7, 0x31, 0x41, 0x90, 0x76, 0x52, 0x92, 0x51, 0x40, - 0x34, 0x01, 0x4f, 0x55, 0x6f, 0x55, 0x34, 0xc1, 0x00, 0x04, 0x11, 0x05, - 0x01, 0xff, 0x46, 0x66, 0x0a, 0x50, 0x34, 0x81, 0x41, 0x43, 0x15, 0x05, - 0x52, 0x34, 0x01, 0x45, 0xeb, 0xe7, 0x49, 0x34, 0x81, 0x23, 0x43, 0x1e, - 0x00, 0x4b, 0x34, 0xc1, 0x00, 0x80, 0x01, 0xff, 0x47, 0x05, 0xcc, 0x53, - 0x34, 0x01, 0x43, 0x15, 0x05, 0x4a, 0x34, 0x01, 0x45, 0xeb, 0xe7, 0x47, - 0x34, 0xc1, 0x00, 0x4f, 0x99, 0x67, 0x4f, 0x34, 0x41, 0x05, 0x19, 0x00, - 0x01, 0xff, 0x46, 0x66, 0x0a, 0x51, 0x34, 0x01, 0x43, 0x1e, 0x00, 0x4d, - 0x34, 0x41, 0x80, 0x01, 0xff, 0x47, 0x05, 0xcc, 0x54, 0x34, 0x01, 0x43, - 0x15, 0x05, 0x4e, 0x34, 0x01, 0x45, 0xeb, 0xe7, 0x48, 0x34, 0xc1, 0x00, - 0x4c, 0x41, 0x89, 0x4c, 0x34, 0x41, 0x90, 0xed, 0x01, 0x91, 0x8d, 0x01, - 0x92, 0x54, 0x93, 0x1c, 0x94, 0x01, 0xff, 0xd0, 0xe9, 0x31, 0x81, 0x10, - 0xd1, 0xeb, 0x31, 0x01, 0xd2, 0xec, 0x31, 0x01, 0xd3, 0xed, 0x31, 0x01, - 0xd4, 0xee, 0x31, 0x41, 0xe1, 0xea, 0x31, 0x41, 0xd0, 0xdc, 0x31, 0x01, - 0xd1, 0xdd, 0x31, 0x81, 0x29, 0xd2, 0xdf, 0x31, 0x01, 0xd3, 0xe0, 0x31, - 0x81, 0x18, 0xd4, 0xe3, 0x31, 0x01, 0xd5, 0xe4, 0x31, 0x01, 0xd6, 0xe5, - 0x31, 0x01, 0xd7, 0xe6, 0x31, 0x01, 0xd8, 0xe7, 0x31, 0x01, 0xd9, 0xe8, - 0x31, 0x41, 0xe1, 0xe1, 0x31, 0x01, 0xe2, 0xe2, 0x31, 0x41, 0xe1, 0xde, - 0x31, 0x41, 0xd0, 0xcf, 0x31, 0x01, 0xd1, 0xd0, 0x31, 0x01, 0xd2, 0xd1, - 0x31, 0x81, 0x26, 0xd3, 0xd3, 0x31, 0x01, 0xd4, 0xd4, 0x31, 0x81, 0x19, - 0xd5, 0xd6, 0x31, 0x01, 0xd6, 0xd7, 0x31, 0x01, 0xd7, 0xd8, 0x31, 0x01, - 0xd8, 0xd9, 0x31, 0x81, 0x04, 0xd9, 0xdb, 0x31, 0x41, 0xe1, 0xda, 0x31, - 0x41, 0xe1, 0xd5, 0x31, 0x41, 0xe1, 0xd2, 0x31, 0x41, 0xd0, 0xb9, 0x31, - 0x81, 0x54, 0xd1, 0xbb, 0x31, 0x01, 0xd2, 0xbc, 0x31, 0x81, 0x2b, 0xd3, - 0xc5, 0x31, 0x01, 0xd4, 0xc6, 0x31, 0x01, 0xd5, 0xc7, 0x31, 0x81, 0x1a, - 0xd6, 0xc9, 0x31, 0x81, 0x11, 0xd7, 0xcb, 0x31, 0x81, 0x08, 0xd8, 0xcd, - 0x31, 0x01, 0xd9, 0xce, 0x31, 0x41, 0xe1, 0xcc, 0x31, 0x41, 0xe1, 0xca, - 0x31, 0x41, 0xe1, 0xc8, 0x31, 0x41, 0xe1, 0xbd, 0x31, 0x01, 0xe2, 0xbe, - 0x31, 0x01, 0xe3, 0xbf, 0x31, 0x01, 0xe4, 0xc0, 0x31, 0x01, 0xe5, 0xc1, - 0x31, 0x01, 0xe6, 0xc2, 0x31, 0x01, 0xe7, 0xc3, 0x31, 0x01, 0xe8, 0xc4, - 0x31, 0x41, 0xe1, 0xba, 0x31, 0x41, 0xd1, 0xad, 0x31, 0x81, 0x25, 0xd2, - 0xb0, 0x31, 0x01, 0xd3, 0xb1, 0x31, 0x81, 0x18, 0xd4, 0xb3, 0x31, 0x01, - 0xd5, 0xb4, 0x31, 0x01, 0xd6, 0xb5, 0x31, 0x01, 0xd7, 0xb6, 0x31, 0x01, - 0xd8, 0xb7, 0x31, 0x01, 0xd9, 0xb8, 0x31, 0x41, 0xe1, 0xb2, 0x31, 0x41, - 0xe1, 0xae, 0x31, 0x01, 0xe2, 0xaf, 0x31, 0x41, 0x02, 0xa4, 0xd5, 0x06, - 0x48, 0xde, 0x7e, 0x43, 0x34, 0x41, 0xd1, 0xa3, 0x31, 0x01, 0xd2, 0xa4, - 0x31, 0x81, 0x1d, 0xd3, 0xa6, 0x31, 0x01, 0xd4, 0xa7, 0x31, 0x01, 0xd5, - 0xa8, 0x31, 0x01, 0xd6, 0xa9, 0x31, 0x81, 0x08, 0xd7, 0xab, 0x31, 0x01, - 0xd8, 0xac, 0x31, 0x41, 0xe1, 0xaa, 0x31, 0x41, 0xe1, 0xa5, 0x31, 0x41, - 0xd1, 0x9b, 0x31, 0x01, 0xd2, 0x9c, 0x31, 0x01, 0xd3, 0x9d, 0x31, 0x01, - 0xd4, 0x9e, 0x31, 0x01, 0xd5, 0x9f, 0x31, 0x01, 0xd6, 0xa0, 0x31, 0x01, - 0xd7, 0xa1, 0x31, 0x01, 0xd8, 0xa2, 0x31, 0x41, 0x90, 0x37, 0x09, 0x36, - 0xba, 0x01, 0xff, 0x46, 0x66, 0x0a, 0x3b, 0x34, 0x81, 0x1c, 0x46, 0x7d, - 0x02, 0x39, 0x34, 0x01, 0x43, 0x1e, 0x00, 0x3a, 0x34, 0xc1, 0x00, 0x80, - 0x01, 0xff, 0x43, 0x15, 0x05, 0x34, 0x34, 0x01, 0x45, 0xeb, 0xe7, 0x32, - 0x34, 0x41, 0x80, 0x01, 0xff, 0x43, 0x15, 0x05, 0x35, 0x34, 0x01, 0x45, - 0xeb, 0xe7, 0x33, 0x34, 0x41, 0x90, 0x25, 0x91, 0x01, 0xff, 0xd0, 0x93, - 0x31, 0x81, 0x19, 0xd1, 0x95, 0x31, 0x81, 0x10, 0xd2, 0x97, 0x31, 0x01, - 0xd3, 0x98, 0x31, 0x01, 0xd4, 0x99, 0x31, 0x01, 0xd5, 0x9a, 0x31, 0x41, - 0xe1, 0x96, 0x31, 0x41, 0xe1, 0x94, 0x31, 0x41, 0xd1, 0x88, 0x31, 0x01, - 0xd2, 0x89, 0x31, 0x01, 0xd3, 0x8a, 0x31, 0x01, 0xd4, 0x8b, 0x31, 0x01, - 0xd5, 0x8c, 0x31, 0x81, 0x15, 0xd6, 0x8e, 0x31, 0x01, 0xd7, 0x8f, 0x31, - 0x01, 0xd8, 0x90, 0x31, 0x01, 0xd9, 0x91, 0x31, 0xc1, 0x00, 0xe1, 0x92, - 0x31, 0x41, 0xe1, 0x8d, 0x31, 0x41, 0x02, 0xa4, 0xd5, 0x16, 0x04, 0x23, - 0x00, 0x06, 0x50, 0x1a, 0x64, 0x31, 0x34, 0x41, 0x45, 0xbe, 0xbd, 0x42, - 0x34, 0x01, 0x49, 0xdd, 0x7e, 0x44, 0x34, 0x41, 0xd1, 0x7f, 0x31, 0x01, - 0xd2, 0x80, 0x31, 0x01, 0xd3, 0x81, 0x31, 0x01, 0xd4, 0x82, 0x31, 0x01, - 0xd5, 0x83, 0x31, 0x01, 0xd6, 0x84, 0x31, 0x81, 0x08, 0xd7, 0x86, 0x31, - 0x01, 0xd8, 0x87, 0x31, 0x41, 0xe1, 0x85, 0x31, 0x41, 0x90, 0xe3, 0x01, - 0x91, 0xb3, 0x01, 0x92, 0x7f, 0x93, 0x4b, 0x94, 0x17, 0x95, 0x01, 0xff, - 0xd0, 0x7a, 0x31, 0x01, 0xd1, 0x7b, 0x31, 0x01, 0xd2, 0x7c, 0x31, 0x01, - 0xd3, 0x7d, 0x31, 0x01, 0xd4, 0x7e, 0x31, 0x41, 0xd0, 0x6e, 0x31, 0x01, - 0xd1, 0x6f, 0x31, 0x01, 0xd2, 0x70, 0x31, 0x01, 0xd3, 0x71, 0x31, 0x81, - 0x1d, 0xd4, 0x73, 0x31, 0x01, 0xd5, 0x74, 0x31, 0x81, 0x10, 0xd6, 0x76, - 0x31, 0x01, 0xd7, 0x77, 0x31, 0x01, 0xd8, 0x78, 0x31, 0x01, 0xd9, 0x79, - 0x31, 0x41, 0xe1, 0x75, 0x31, 0x41, 0xe1, 0x72, 0x31, 0x41, 0xd0, 0x62, - 0x31, 0x01, 0xd1, 0x63, 0x31, 0x01, 0xd2, 0x64, 0x31, 0x01, 0xd3, 0x65, - 0x31, 0x01, 0xd4, 0x66, 0x31, 0x01, 0xd5, 0x67, 0x31, 0x01, 0xd6, 0x68, - 0x31, 0x81, 0x11, 0xd7, 0x6a, 0x31, 0x81, 0x08, 0xd8, 0x6c, 0x31, 0x01, - 0xd9, 0x6d, 0x31, 0x41, 0xe1, 0x6b, 0x31, 0x41, 0xe1, 0x69, 0x31, 0x41, - 0xd0, 0x56, 0x31, 0x81, 0x29, 0xd1, 0x58, 0x31, 0x01, 0xd2, 0x59, 0x31, - 0x01, 0xd3, 0x5a, 0x31, 0x01, 0xd4, 0x5b, 0x31, 0x01, 0xd5, 0x5c, 0x31, - 0x01, 0xd6, 0x5d, 0x31, 0x81, 0x0c, 0xd7, 0x5f, 0x31, 0x01, 0xd8, 0x60, - 0x31, 0x01, 0xd9, 0x61, 0x31, 0x41, 0xe1, 0x5e, 0x31, 0x41, 0xe1, 0x57, - 0x31, 0x41, 0xd0, 0x4b, 0x31, 0x01, 0xd1, 0x4c, 0x31, 0x81, 0x20, 0xd2, - 0x4e, 0x31, 0x01, 0xd3, 0x4f, 0x31, 0x01, 0xd4, 0x50, 0x31, 0x01, 0xd5, - 0x51, 0x31, 0x01, 0xd6, 0x52, 0x31, 0x01, 0xd7, 0x53, 0x31, 0x01, 0xd8, - 0x54, 0x31, 0x01, 0xd9, 0x55, 0x31, 0x41, 0xe1, 0x4d, 0x31, 0x41, 0xd1, - 0x3f, 0x31, 0x01, 0xd2, 0x40, 0x31, 0x01, 0xd3, 0x41, 0x31, 0x01, 0xd4, - 0x42, 0x31, 0x01, 0xd5, 0x43, 0x31, 0x01, 0xd6, 0x44, 0x31, 0x81, 0x15, - 0xd7, 0x46, 0x31, 0x81, 0x08, 0xd8, 0x49, 0x31, 0x01, 0xd9, 0x4a, 0x31, - 0x41, 0xe1, 0x47, 0x31, 0x01, 0xe2, 0x48, 0x31, 0x41, 0xe1, 0x45, 0x31, - 0x41, 0x90, 0x06, 0x49, 0xba, 0xbd, 0x41, 0x34, 0x41, 0x90, 0xf2, 0x01, - 0x91, 0xc2, 0x01, 0x92, 0x92, 0x01, 0x93, 0x59, 0x94, 0x20, 0x95, 0x01, - 0xff, 0xd0, 0x38, 0x31, 0x01, 0xd1, 0x39, 0x31, 0x81, 0x08, 0xd2, 0x3d, - 0x31, 0x01, 0xd3, 0x3e, 0x31, 0x41, 0xe1, 0x3a, 0x31, 0x01, 0xe2, 0x3b, - 0x31, 0x01, 0xe3, 0x3c, 0x31, 0x41, 0xd0, 0x2b, 0x31, 0x01, 0xd1, 0x2c, - 0x31, 0x01, 0xd2, 0x2d, 0x31, 0x01, 0xd3, 0x2e, 0x31, 0x01, 0xd4, 0x2f, - 0x31, 0x01, 0xd5, 0x30, 0x31, 0x81, 0x1a, 0xd6, 0x32, 0x31, 0x81, 0x11, - 0xd7, 0x34, 0x31, 0x81, 0x08, 0xd8, 0x36, 0x31, 0x01, 0xd9, 0x37, 0x31, - 0x41, 0xe1, 0x35, 0x31, 0x41, 0xe1, 0x33, 0x31, 0x41, 0xe1, 0x31, 0x31, - 0x41, 0xd0, 0x1e, 0x31, 0x01, 0xd1, 0x1f, 0x31, 0x81, 0x2a, 0xd2, 0x21, - 0x31, 0x01, 0xd3, 0x22, 0x31, 0x01, 0xd4, 0x23, 0x31, 0x01, 0xd5, 0x24, - 0x31, 0x01, 0xd6, 0x25, 0x31, 0x01, 0xd7, 0x26, 0x31, 0x81, 0x0d, 0xd8, - 0x28, 0x31, 0x81, 0x04, 0xd9, 0x2a, 0x31, 0x41, 0xe1, 0x29, 0x31, 0x41, - 0xe1, 0x27, 0x31, 0x41, 0xe1, 0x20, 0x31, 0x41, 0xd0, 0x13, 0x31, 0x01, - 0xd1, 0x14, 0x31, 0x81, 0x20, 0xd2, 0x16, 0x31, 0x01, 0xd3, 0x17, 0x31, - 0x01, 0xd4, 0x18, 0x31, 0x01, 0xd5, 0x19, 0x31, 0x01, 0xd6, 0x1a, 0x31, - 0x01, 0xd7, 0x1b, 0x31, 0x01, 0xd8, 0x1c, 0x31, 0x01, 0xd9, 0x1d, 0x31, - 0x41, 0xe1, 0x15, 0x31, 0x41, 0xd0, 0x08, 0x31, 0x01, 0xd1, 0x09, 0x31, - 0x01, 0xd2, 0x0a, 0x31, 0x01, 0xd3, 0x0b, 0x31, 0x81, 0x18, 0xd4, 0x0d, - 0x31, 0x01, 0xd5, 0x0e, 0x31, 0x01, 0xd6, 0x0f, 0x31, 0x01, 0xd7, 0x10, - 0x31, 0x01, 0xd8, 0x11, 0x31, 0x01, 0xd9, 0x12, 0x31, 0x41, 0xe1, 0x0c, - 0x31, 0x41, 0xd1, 0xfe, 0x30, 0x81, 0x20, 0xd2, 0x00, 0x31, 0x01, 0xd3, - 0x01, 0x31, 0x01, 0xd4, 0x02, 0x31, 0x01, 0xd5, 0x03, 0x31, 0x01, 0xd6, - 0x04, 0x31, 0x01, 0xd7, 0x05, 0x31, 0x01, 0xd8, 0x06, 0x31, 0x01, 0xd9, - 0x07, 0x31, 0x41, 0xe1, 0xff, 0x30, 0x41, 0x90, 0x17, 0x03, 0x1b, 0x00, - 0x01, 0xff, 0x49, 0x21, 0x67, 0x3d, 0x34, 0x01, 0x47, 0x20, 0x2f, 0x38, - 0x34, 0x01, 0x50, 0x1a, 0x67, 0x3f, 0x34, 0x41, 0x90, 0x90, 0x01, 0x91, - 0x5c, 0x92, 0x28, 0x93, 0x01, 0xff, 0xd0, 0xf5, 0x30, 0x01, 0xd1, 0xf6, - 0x30, 0x01, 0xd2, 0xf7, 0x30, 0x01, 0xd3, 0xf8, 0x30, 0x01, 0xd4, 0xf9, - 0x30, 0x81, 0x0c, 0xd6, 0xfb, 0x30, 0x01, 0xd7, 0xfc, 0x30, 0x01, 0xd8, - 0xfd, 0x30, 0x41, 0xe1, 0xfa, 0x30, 0x41, 0xd0, 0xe9, 0x30, 0x81, 0x29, - 0xd1, 0xeb, 0x30, 0x01, 0xd2, 0xec, 0x30, 0x01, 0xd3, 0xed, 0x30, 0x01, - 0xd4, 0xee, 0x30, 0x01, 0xd5, 0xef, 0x30, 0x01, 0xd6, 0xf0, 0x30, 0x01, - 0xd7, 0xf1, 0x30, 0x01, 0xd8, 0xf2, 0x30, 0x81, 0x04, 0xd9, 0xf4, 0x30, - 0x41, 0xe1, 0xf3, 0x30, 0x41, 0xe1, 0xea, 0x30, 0x41, 0xd0, 0xdd, 0x30, - 0x01, 0xd1, 0xde, 0x30, 0x01, 0xd2, 0xdf, 0x30, 0x01, 0xd3, 0xe0, 0x30, - 0x01, 0xd4, 0xe1, 0x30, 0x01, 0xd5, 0xe2, 0x30, 0x01, 0xd6, 0xe3, 0x30, - 0x81, 0x11, 0xd7, 0xe5, 0x30, 0x81, 0x08, 0xd8, 0xe7, 0x30, 0x01, 0xd9, - 0xe8, 0x30, 0x41, 0xe1, 0xe6, 0x30, 0x41, 0xe1, 0xe4, 0x30, 0x41, 0xd1, - 0xd2, 0x30, 0x01, 0xd2, 0xd3, 0x30, 0x01, 0xd3, 0xd4, 0x30, 0x01, 0xd4, - 0xd5, 0x30, 0x01, 0xd5, 0xd6, 0x30, 0x01, 0xd6, 0xd7, 0x30, 0x01, 0xd7, - 0xd8, 0x30, 0x01, 0xd8, 0xd9, 0x30, 0x81, 0x09, 0xd9, 0xdb, 0x30, 0xc1, - 0x00, 0xe1, 0xdc, 0x30, 0x41, 0xe1, 0xda, 0x30, 0x41, 0x90, 0xe2, 0x02, - 0x91, 0xb7, 0x02, 0x92, 0x87, 0x02, 0x93, 0xd2, 0x01, 0x94, 0x9d, 0x01, - 0x95, 0x44, 0x96, 0x01, 0xff, 0xd0, 0xc2, 0x30, 0x01, 0xd1, 0xc3, 0x30, - 0x01, 0xd2, 0xc4, 0x30, 0x01, 0xd3, 0xc5, 0x30, 0x01, 0xd4, 0xc6, 0x30, - 0x01, 0xd5, 0xc7, 0x30, 0x01, 0xd6, 0xc8, 0x30, 0x01, 0xd7, 0xc9, 0x30, - 0xc1, 0x00, 0xe1, 0xca, 0x30, 0x01, 0xe2, 0xcb, 0x30, 0x01, 0xe3, 0xcc, - 0x30, 0x01, 0xe4, 0xcd, 0x30, 0x01, 0xe5, 0xce, 0x30, 0x01, 0xe6, 0xcf, - 0x30, 0x01, 0xe7, 0xd0, 0x30, 0x01, 0xe8, 0xd1, 0x30, 0x41, 0xd0, 0xad, - 0x30, 0x81, 0x2e, 0xd1, 0xb7, 0x30, 0x01, 0xd2, 0xb8, 0x30, 0x81, 0x21, - 0xd3, 0xba, 0x30, 0x01, 0xd4, 0xbb, 0x30, 0x81, 0x14, 0xd5, 0xbd, 0x30, - 0x01, 0xd6, 0xbe, 0x30, 0x01, 0xd7, 0xbf, 0x30, 0x01, 0xd8, 0xc0, 0x30, - 0x01, 0xd9, 0xc1, 0x30, 0x41, 0xe1, 0xbc, 0x30, 0x41, 0xe1, 0xb9, 0x30, - 0x41, 0xe1, 0xae, 0x30, 0x01, 0xe2, 0xaf, 0x30, 0x01, 0xe3, 0xb0, 0x30, - 0x01, 0xe4, 0xb1, 0x30, 0x01, 0xe5, 0xb2, 0x30, 0x01, 0xe6, 0xb3, 0x30, - 0x01, 0xe7, 0xb4, 0x30, 0x01, 0xe8, 0xb5, 0x30, 0x01, 0xe9, 0xb6, 0x30, - 0x41, 0xd0, 0xa1, 0x30, 0x01, 0xd1, 0xa2, 0x30, 0x01, 0xd2, 0xa3, 0x30, - 0x01, 0xd3, 0xa4, 0x30, 0x01, 0xd4, 0xa5, 0x30, 0x01, 0xd5, 0xa6, 0x30, - 0x01, 0xd6, 0xa7, 0x30, 0x81, 0x11, 0xd7, 0xa9, 0x30, 0x01, 0xd8, 0xaa, - 0x30, 0x81, 0x04, 0xd9, 0xac, 0x30, 0x41, 0xe1, 0xab, 0x30, 0x41, 0xe1, - 0xa8, 0x30, 0x41, 0xd0, 0x95, 0x30, 0x01, 0xd1, 0x96, 0x30, 0x81, 0x25, - 0xd2, 0x98, 0x30, 0x01, 0xd3, 0x99, 0x30, 0x01, 0xd4, 0x9a, 0x30, 0x81, - 0x14, 0xd5, 0x9c, 0x30, 0x01, 0xd6, 0x9d, 0x30, 0x01, 0xd7, 0x9e, 0x30, - 0x01, 0xd8, 0x9f, 0x30, 0x01, 0xd9, 0xa0, 0x30, 0x41, 0xe1, 0x9b, 0x30, - 0x41, 0xe1, 0x97, 0x30, 0x41, 0xd0, 0x8a, 0x30, 0x01, 0xd1, 0x8b, 0x30, - 0x01, 0xd2, 0x8c, 0x30, 0x01, 0xd3, 0x8d, 0x30, 0x01, 0xd4, 0x8e, 0x30, - 0x01, 0xd5, 0x8f, 0x30, 0x01, 0xd6, 0x90, 0x30, 0x01, 0xd7, 0x91, 0x30, - 0x81, 0x08, 0xd8, 0x93, 0x30, 0x01, 0xd9, 0x94, 0x30, 0x41, 0xe1, 0x92, - 0x30, 0x41, 0xd0, 0x80, 0x30, 0x01, 0xd1, 0x81, 0x30, 0x01, 0xd2, 0x82, - 0x30, 0x01, 0xd3, 0x83, 0x30, 0x01, 0xd4, 0x84, 0x30, 0x01, 0xd5, 0x85, - 0x30, 0x01, 0xd6, 0x86, 0x30, 0x01, 0xd7, 0x87, 0x30, 0x01, 0xd8, 0x88, - 0x30, 0x01, 0xd9, 0x89, 0x30, 0x41, 0xd1, 0x76, 0x30, 0x01, 0xd2, 0x77, - 0x30, 0x01, 0xd3, 0x78, 0x30, 0x01, 0xd4, 0x79, 0x30, 0x01, 0xd5, 0x7a, - 0x30, 0x01, 0xd6, 0x7b, 0x30, 0x01, 0xd7, 0x7c, 0x30, 0x01, 0xd8, 0x7d, - 0x30, 0x81, 0x04, 0xd9, 0x7f, 0x30, 0x41, 0xe1, 0x7e, 0x30, 0x41, 0x90, - 0x46, 0x91, 0x17, 0x92, 0x01, 0xff, 0xd0, 0x71, 0x30, 0x01, 0xd1, 0x72, - 0x30, 0x01, 0xd2, 0x73, 0x30, 0x01, 0xd3, 0x74, 0x30, 0x01, 0xd4, 0x75, - 0x30, 0x41, 0xd0, 0x66, 0x30, 0x81, 0x24, 0xd1, 0x68, 0x30, 0x01, 0xd2, - 0x69, 0x30, 0x01, 0xd3, 0x6a, 0x30, 0x01, 0xd4, 0x6b, 0x30, 0x01, 0xd5, - 0x6c, 0x30, 0x01, 0xd6, 0x6d, 0x30, 0x01, 0xd7, 0x6e, 0x30, 0x01, 0xd8, - 0x6f, 0x30, 0x01, 0xd9, 0x70, 0x30, 0x41, 0xe1, 0x67, 0x30, 0x41, 0xd1, - 0x5a, 0x30, 0x01, 0xd2, 0x5b, 0x30, 0x81, 0x1c, 0xd3, 0x5f, 0x30, 0x01, - 0xd4, 0x60, 0x30, 0x01, 0xd5, 0x61, 0x30, 0x01, 0xd6, 0x62, 0x30, 0x01, - 0xd7, 0x63, 0x30, 0x01, 0xd8, 0x64, 0x30, 0x01, 0xd9, 0x65, 0x30, 0x41, - 0xe1, 0x5c, 0x30, 0x01, 0xe2, 0x5d, 0x30, 0x01, 0xe3, 0x5e, 0x30, 0x41, - 0x02, 0xa4, 0xd5, 0x17, 0x05, 0xb9, 0x3e, 0x01, 0xff, 0x49, 0x21, 0x67, - 0x3c, 0x34, 0x01, 0x47, 0x20, 0x2f, 0x37, 0x34, 0x01, 0x50, 0x1a, 0x67, - 0x3e, 0x34, 0x41, 0xd1, 0x50, 0x30, 0x01, 0xd2, 0x51, 0x30, 0x01, 0xd3, - 0x52, 0x30, 0x01, 0xd4, 0x53, 0x30, 0x01, 0xd5, 0x54, 0x30, 0x81, 0x10, - 0xd6, 0x56, 0x30, 0x01, 0xd7, 0x57, 0x30, 0x01, 0xd8, 0x58, 0x30, 0x01, - 0xd9, 0x59, 0x30, 0x41, 0xe1, 0x55, 0x30, 0x41, 0x90, 0x97, 0x01, 0x02, - 0xbd, 0xe9, 0x01, 0xff, 0x90, 0x63, 0x91, 0x39, 0x92, 0x0f, 0x93, 0x01, - 0xff, 0xd0, 0x2c, 0x34, 0x01, 0xd1, 0x2d, 0x34, 0x01, 0xd2, 0x2e, 0x34, - 0x41, 0xd0, 0x22, 0x34, 0x01, 0xd1, 0x23, 0x34, 0x01, 0xd2, 0x24, 0x34, - 0x01, 0xd3, 0x25, 0x34, 0x01, 0xd4, 0x26, 0x34, 0x01, 0xd5, 0x27, 0x34, - 0x01, 0xd6, 0x28, 0x34, 0x01, 0xd7, 0x29, 0x34, 0x01, 0xd8, 0x2a, 0x34, - 0x01, 0xd9, 0x2b, 0x34, 0x41, 0xd0, 0x18, 0x34, 0x01, 0xd1, 0x19, 0x34, - 0x01, 0xd2, 0x1a, 0x34, 0x01, 0xd3, 0x1b, 0x34, 0x01, 0xd4, 0x1c, 0x34, - 0x01, 0xd5, 0x1d, 0x34, 0x01, 0xd6, 0x1e, 0x34, 0x01, 0xd7, 0x1f, 0x34, - 0x01, 0xd8, 0x20, 0x34, 0x01, 0xd9, 0x21, 0x34, 0x41, 0xd1, 0x0d, 0x34, - 0x01, 0xd2, 0x0e, 0x34, 0x01, 0xd3, 0x0f, 0x34, 0x01, 0xd4, 0x10, 0x34, - 0x01, 0xd5, 0x11, 0x34, 0x01, 0xd6, 0x12, 0x34, 0x01, 0xd7, 0x13, 0x34, - 0x81, 0x08, 0xd8, 0x16, 0x34, 0x01, 0xd9, 0x17, 0x34, 0x41, 0xe1, 0x14, - 0x34, 0x01, 0xe2, 0x15, 0x34, 0x41, 0x90, 0xa8, 0x02, 0x91, 0xf3, 0x01, - 0x92, 0xc8, 0x01, 0x93, 0x98, 0x01, 0x94, 0x5a, 0x95, 0x30, 0x96, 0x06, - 0x42, 0xc4, 0xf0, 0x4f, 0x30, 0x41, 0xd0, 0x45, 0x30, 0x01, 0xd1, 0x46, - 0x30, 0x01, 0xd2, 0x47, 0x30, 0x01, 0xd3, 0x48, 0x30, 0x01, 0xd4, 0x49, - 0x30, 0x01, 0xd5, 0x4a, 0x30, 0x01, 0xd6, 0x4b, 0x30, 0x01, 0xd7, 0x4c, - 0x30, 0x01, 0xd8, 0x4d, 0x30, 0x01, 0xd9, 0x4e, 0x30, 0x41, 0xd0, 0x3b, - 0x30, 0x01, 0xd1, 0x3c, 0x30, 0x01, 0xd2, 0x3d, 0x30, 0x01, 0xd3, 0x3e, - 0x30, 0x01, 0xd4, 0x3f, 0x30, 0x01, 0xd5, 0x40, 0x30, 0x01, 0xd6, 0x41, - 0x30, 0x01, 0xd7, 0x42, 0x30, 0x01, 0xd8, 0x43, 0x30, 0x01, 0xd9, 0x44, - 0x30, 0x41, 0xd0, 0x2d, 0x30, 0x81, 0x33, 0xd1, 0x2f, 0x30, 0x01, 0xd2, - 0x30, 0x30, 0x81, 0x26, 0xd3, 0x32, 0x30, 0x81, 0x1d, 0xd4, 0x34, 0x30, - 0x01, 0xd5, 0x35, 0x30, 0x81, 0x10, 0xd6, 0x37, 0x30, 0x01, 0xd7, 0x38, - 0x30, 0x01, 0xd8, 0x39, 0x30, 0x01, 0xd9, 0x3a, 0x30, 0x41, 0xe1, 0x36, - 0x30, 0x41, 0xe1, 0x33, 0x30, 0x41, 0xe1, 0x31, 0x30, 0x41, 0xe1, 0x2e, - 0x30, 0x41, 0xd0, 0x22, 0x30, 0x01, 0xd1, 0x23, 0x30, 0x01, 0xd2, 0x24, - 0x30, 0x81, 0x1c, 0xd3, 0x26, 0x30, 0x01, 0xd4, 0x27, 0x30, 0x01, 0xd5, - 0x28, 0x30, 0x01, 0xd6, 0x29, 0x30, 0x01, 0xd7, 0x2a, 0x30, 0x01, 0xd8, - 0x2b, 0x30, 0x01, 0xd9, 0x2c, 0x30, 0x41, 0xe1, 0x25, 0x30, 0x41, 0xd0, - 0x18, 0x30, 0x01, 0xd1, 0x19, 0x30, 0x01, 0xd2, 0x1a, 0x30, 0x01, 0xd3, - 0x1b, 0x30, 0x01, 0xd4, 0x1c, 0x30, 0x01, 0xd5, 0x1d, 0x30, 0x01, 0xd6, - 0x1e, 0x30, 0x01, 0xd7, 0x1f, 0x30, 0x01, 0xd8, 0x20, 0x30, 0x01, 0xd9, - 0x21, 0x30, 0x41, 0xd0, 0x0c, 0x30, 0x01, 0xd1, 0x0d, 0x30, 0x01, 0xd2, - 0x0e, 0x30, 0x01, 0xd3, 0x0f, 0x30, 0x01, 0xd4, 0x10, 0x30, 0x81, 0x19, - 0xd5, 0x12, 0x30, 0x01, 0xd6, 0x13, 0x30, 0x01, 0xd7, 0x14, 0x30, 0x81, - 0x08, 0xd8, 0x16, 0x30, 0x01, 0xd9, 0x17, 0x30, 0x41, 0xe1, 0x15, 0x30, - 0x41, 0xe1, 0x11, 0x30, 0x41, 0xd1, 0x00, 0x30, 0x01, 0xd2, 0x01, 0x30, - 0x01, 0xd3, 0x02, 0x30, 0x01, 0xd4, 0x03, 0x30, 0x01, 0xd5, 0x04, 0x30, - 0x81, 0x19, 0xd6, 0x06, 0x30, 0x81, 0x0c, 0xd7, 0x09, 0x30, 0x01, 0xd8, - 0x0a, 0x30, 0x01, 0xd9, 0x0b, 0x30, 0x41, 0xe1, 0x07, 0x30, 0x01, 0xe2, - 0x08, 0x30, 0x41, 0xe1, 0x05, 0x30, 0x41, 0x43, 0x06, 0x02, 0x85, 0xf9, - 0x01, 0xf2, 0x42, 0xf4, 0x81, 0x06, 0x4f, 0xbc, 0x71, 0x71, 0x26, 0x40, - 0x80, 0x2a, 0x42, 0x53, 0x00, 0x41, 0x26, 0xc0, 0x00, 0x02, 0x86, 0x00, - 0x01, 0xff, 0x05, 0x1b, 0xe5, 0x06, 0x45, 0x31, 0x16, 0xda, 0x23, 0x40, - 0xa1, 0x06, 0x4d, 0x22, 0x81, 0x0d, 0xf3, 0x41, 0x47, 0x6c, 0xd0, 0x0e, - 0xf3, 0x01, 0x4d, 0xdf, 0x86, 0x0f, 0xf3, 0x41, 0x03, 0xf4, 0x01, 0x06, - 0x50, 0x4a, 0x67, 0xbb, 0xf9, 0x41, 0x45, 0x57, 0xe5, 0x3d, 0xf3, 0x01, - 0x44, 0x85, 0xb1, 0x3e, 0xf3, 0x41, 0xa1, 0xba, 0x31, 0xa5, 0xf0, 0x23, - 0xa9, 0xfd, 0x19, 0x4f, 0xce, 0x6e, 0xec, 0xf9, 0x01, 0xaf, 0xb0, 0x07, - 0xb2, 0xe3, 0x06, 0xb5, 0x06, 0x42, 0xd2, 0xf1, 0xc0, 0xf4, 0x41, 0x42, - 0x36, 0x01, 0x86, 0xf9, 0x01, 0x46, 0x14, 0xdb, 0x5f, 0xf9, 0x01, 0x07, - 0xed, 0xd1, 0x01, 0xff, 0x06, 0xa0, 0xd6, 0xe3, 0x04, 0x4b, 0x16, 0x99, - 0x9e, 0xbc, 0x01, 0x07, 0xc1, 0x05, 0x12, 0x5d, 0x01, 0x16, 0x9f, 0xbc, - 0x01, 0x51, 0x7c, 0x5c, 0x9c, 0xbc, 0x01, 0x55, 0x7e, 0x3d, 0x9d, 0xbc, - 0x41, 0xe1, 0x41, 0xbc, 0x81, 0xbb, 0x04, 0xe2, 0x07, 0xbc, 0x01, 0xe4, - 0x08, 0xbc, 0x81, 0xa7, 0x04, 0xe5, 0x47, 0xbc, 0x81, 0x99, 0x04, 0xe6, - 0x04, 0xbc, 0x81, 0x8d, 0x04, 0xe7, 0x0a, 0xbc, 0x81, 0x81, 0x04, 0xe8, - 0x00, 0xbc, 0x81, 0xf7, 0x03, 0xe9, 0x46, 0xbc, 0x81, 0xed, 0x03, 0xea, - 0x1b, 0xbc, 0x81, 0xb6, 0x03, 0xeb, 0x05, 0xbc, 0x81, 0xa0, 0x03, 0xec, - 0x06, 0xbc, 0x81, 0x89, 0x03, 0xed, 0x19, 0xbc, 0x81, 0xeb, 0x02, 0xee, - 0x1a, 0xbc, 0x81, 0xb9, 0x02, 0xef, 0x44, 0xbc, 0x81, 0xa1, 0x02, 0xf0, - 0x02, 0xbc, 0x81, 0x88, 0x02, 0xf2, 0x0b, 0xbc, 0x81, 0xeb, 0x01, 0xf3, - 0x1c, 0xbc, 0x81, 0x68, 0xf4, 0x03, 0xbc, 0x81, 0x53, 0xf5, 0x51, 0xbc, - 0x81, 0x40, 0xf6, 0x09, 0xbc, 0x81, 0x35, 0xf7, 0x38, 0xbc, 0x81, 0x0f, - 0xf8, 0x01, 0xbc, 0x81, 0x06, 0x42, 0x4d, 0x00, 0x50, 0xbc, 0x41, 0xf7, - 0x53, 0xbc, 0x41, 0x42, 0xc7, 0x00, 0x3a, 0xbc, 0x01, 0xe1, 0x5c, 0xbc, - 0x01, 0x42, 0xc3, 0x0a, 0x5f, 0xbc, 0x01, 0xe8, 0x39, 0xbc, 0x01, 0xe9, - 0x5e, 0xbc, 0x01, 0xef, 0x5d, 0xbc, 0xc1, 0x00, 0xf7, 0x60, 0xbc, 0x41, - 0x48, 0x5a, 0xc6, 0x6a, 0xbc, 0x41, 0x42, 0xb3, 0x01, 0x54, 0xbc, 0x01, - 0xe8, 0x57, 0xbc, 0x01, 0xe9, 0x4a, 0xbc, 0x41, 0x80, 0x04, 0xe8, 0x11, - 0xbc, 0x41, 0x43, 0x5c, 0x0c, 0x37, 0xbc, 0x01, 0xf3, 0x36, 0xbc, 0x41, - 0x80, 0x37, 0x46, 0xa0, 0xd9, 0x49, 0xbc, 0x01, 0x05, 0x16, 0xe5, 0x01, - 0xff, 0x42, 0x1a, 0x00, 0x68, 0xbc, 0x01, 0x42, 0x9e, 0x4a, 0x12, 0xbc, - 0x01, 0xa5, 0x12, 0xea, 0x15, 0xbc, 0x01, 0xaf, 0x04, 0xf5, 0x58, 0xbc, - 0x41, 0xee, 0x69, 0xbc, 0x01, 0xf7, 0x42, 0xbc, 0x41, 0xe5, 0x4e, 0xbc, - 0x01, 0xe8, 0x4c, 0xbc, 0x01, 0xee, 0x67, 0xbc, 0x41, 0xea, 0x20, 0xbc, - 0x81, 0x3a, 0xeb, 0x3f, 0xbc, 0x81, 0x2f, 0xed, 0x3c, 0xbc, 0x01, 0xee, - 0x3b, 0xbc, 0x01, 0xf0, 0x34, 0xbc, 0x81, 0x1c, 0xf3, 0x2a, 0xbc, 0x01, - 0xf4, 0x32, 0xbc, 0x81, 0x0d, 0x48, 0xa6, 0x3a, 0x25, 0xbc, 0xc1, 0x00, - 0x46, 0xf4, 0x06, 0x26, 0xbc, 0x41, 0x42, 0xc7, 0x00, 0x33, 0xbc, 0x41, - 0x42, 0xc7, 0x00, 0x35, 0xbc, 0x41, 0x42, 0xc7, 0x00, 0x40, 0xbc, 0x41, - 0x42, 0x99, 0x00, 0x2e, 0xbc, 0x41, 0x42, 0x99, 0x00, 0x10, 0xbc, 0x01, - 0xe8, 0x18, 0xbc, 0x01, 0x08, 0x92, 0xc6, 0x01, 0xff, 0xe9, 0x4d, 0xbc, - 0x01, 0xf5, 0x56, 0xbc, 0x41, 0x42, 0xb3, 0x01, 0x0c, 0xbc, 0x01, 0x07, - 0x0b, 0xce, 0x01, 0xff, 0xed, 0x66, 0xbc, 0x01, 0xee, 0x65, 0xbc, 0x41, - 0xe1, 0x43, 0xbc, 0x01, 0x42, 0x5c, 0x28, 0x59, 0xbc, 0x01, 0xf5, 0x5b, - 0xbc, 0x01, 0xf7, 0x5a, 0xbc, 0x41, 0x80, 0x15, 0x05, 0xeb, 0x4a, 0x01, - 0xff, 0xe1, 0x64, 0xbc, 0x01, 0xe9, 0x63, 0xbc, 0x01, 0xef, 0x62, 0xbc, - 0x01, 0xf5, 0x61, 0xbc, 0x41, 0xed, 0x1e, 0xbc, 0x81, 0x0a, 0xf3, 0x28, - 0xbc, 0x01, 0x48, 0xa6, 0x3a, 0x22, 0xbc, 0x41, 0x42, 0x99, 0x00, 0x2c, - 0xbc, 0x41, 0x80, 0x01, 0xff, 0xee, 0x1d, 0xbc, 0x81, 0x0a, 0xf3, 0x27, - 0xbc, 0x01, 0x48, 0xa6, 0x3a, 0x21, 0xbc, 0x41, 0x42, 0x99, 0x00, 0x2b, - 0xbc, 0x41, 0xe8, 0x17, 0xbc, 0x01, 0x04, 0x63, 0x0e, 0x01, 0xff, 0xe9, - 0x4f, 0xbc, 0x01, 0xf5, 0x55, 0xbc, 0x41, 0x80, 0x04, 0xeb, 0x14, 0xbc, - 0x41, 0xed, 0x0f, 0xbc, 0x01, 0x43, 0x5c, 0x0c, 0x3d, 0xbc, 0x41, 0x80, - 0x01, 0xff, 0xed, 0x1f, 0xbc, 0x81, 0x23, 0xee, 0x30, 0xbc, 0x81, 0x18, - 0xf3, 0x29, 0xbc, 0x81, 0x0d, 0x48, 0xa6, 0x3a, 0x23, 0xbc, 0xc1, 0x00, - 0x52, 0xae, 0x53, 0x24, 0xbc, 0x41, 0x49, 0xa5, 0x3a, 0x2f, 0xbc, 0x41, - 0x42, 0x99, 0x00, 0x31, 0xbc, 0x41, 0x42, 0x99, 0x00, 0x2d, 0xbc, 0x41, - 0xe5, 0x48, 0xbc, 0x41, 0xec, 0x16, 0xbc, 0x41, 0x44, 0x92, 0xe9, 0x3e, - 0xbc, 0x41, 0x42, 0xb3, 0x01, 0x0e, 0xbc, 0x41, 0xe5, 0x4b, 0xbc, 0x01, - 0xf5, 0x52, 0xbc, 0x41, 0x42, 0x99, 0x00, 0x0d, 0xbc, 0x01, 0xe8, 0x13, - 0xbc, 0x41, 0x42, 0x3c, 0x01, 0x45, 0xbc, 0x41, 0x09, 0x18, 0xb4, 0xad, - 0x01, 0x05, 0xf9, 0x0a, 0x6a, 0xac, 0x16, 0x04, 0xcc, 0xb2, 0x06, 0x57, - 0xdf, 0x2f, 0x72, 0xbc, 0x41, 0x51, 0xe5, 0x2f, 0x71, 0xbc, 0x01, 0x4f, - 0xf7, 0x72, 0x74, 0xbc, 0x41, 0x55, 0xcd, 0x39, 0x70, 0xbc, 0x01, 0x03, - 0xd1, 0x00, 0x01, 0xff, 0xa1, 0x39, 0x46, 0xe7, 0x02, 0x95, 0xbc, 0x01, - 0x43, 0xd4, 0x09, 0x94, 0xbc, 0x01, 0x45, 0x8d, 0x22, 0x92, 0xbc, 0x01, - 0xac, 0x19, 0x4b, 0x61, 0xa1, 0x91, 0xbc, 0x01, 0x48, 0x32, 0x00, 0x98, - 0xbc, 0x81, 0x06, 0x44, 0x39, 0x56, 0x97, 0xbc, 0x41, 0x47, 0xef, 0x2f, - 0x73, 0xbc, 0x41, 0x43, 0xc3, 0x07, 0x96, 0xbc, 0x01, 0x49, 0xcf, 0xba, - 0x93, 0xbc, 0x41, 0x44, 0x2a, 0x38, 0x90, 0xbc, 0x01, 0x44, 0xcf, 0x00, - 0x99, 0xbc, 0x41, 0x45, 0x29, 0x38, 0x80, 0xbc, 0x01, 0x46, 0xe7, 0x02, - 0x85, 0xbc, 0x01, 0x43, 0xd4, 0x09, 0x84, 0xbc, 0x01, 0x45, 0x8d, 0x22, - 0x82, 0xbc, 0x01, 0xac, 0x19, 0x4b, 0x61, 0xa1, 0x81, 0xbc, 0x01, 0x48, - 0x32, 0x00, 0x88, 0xbc, 0x81, 0x06, 0x44, 0x39, 0x56, 0x87, 0xbc, 0x41, - 0x47, 0xef, 0x2f, 0x75, 0xbc, 0x41, 0x43, 0xc3, 0x07, 0x86, 0xbc, 0x01, - 0x49, 0xcf, 0xba, 0x83, 0xbc, 0x41, 0x46, 0x72, 0x9d, 0x7a, 0xbc, 0x01, - 0x46, 0xb2, 0xd9, 0x7b, 0xbc, 0x01, 0x54, 0x3f, 0x43, 0x77, 0xbc, 0x01, - 0x46, 0xf0, 0x2f, 0x76, 0xbc, 0x01, 0x02, 0x12, 0x00, 0x01, 0xff, 0x42, - 0x62, 0x01, 0x79, 0xbc, 0x01, 0x45, 0xed, 0xe5, 0x78, 0xbc, 0xc1, 0x00, - 0x45, 0x5c, 0x0e, 0x7c, 0xbc, 0x41, 0xa1, 0x2f, 0x43, 0xed, 0x00, 0x57, - 0xf4, 0x01, 0x4d, 0x03, 0x83, 0xda, 0x26, 0x00, 0xaf, 0x06, 0x52, 0xce, - 0x54, 0x41, 0xf9, 0x41, 0x4c, 0x31, 0x90, 0x2a, 0xf4, 0x01, 0x4a, 0x61, - 0xac, 0x24, 0xf9, 0x01, 0xb0, 0x01, 0xff, 0x49, 0x0e, 0xb2, 0x78, 0xfa, - 0x01, 0x43, 0xc1, 0x05, 0xa7, 0xf4, 0x41, 0x49, 0x74, 0x9f, 0xaf, 0x20, - 0x00, 0x5c, 0x56, 0x17, 0x9b, 0x27, 0x00, 0x43, 0xb7, 0x13, 0x09, 0xf4, - 0xc1, 0x00, 0x45, 0xe0, 0x07, 0x32, 0xf4, 0x41, 0x52, 0x0e, 0x4e, 0xaf, - 0xf6, 0x01, 0x46, 0xac, 0xc2, 0xce, 0xf5, 0x81, 0x9e, 0x12, 0x42, 0x3b, - 0x01, 0xa4, 0xf9, 0x01, 0x07, 0x98, 0x75, 0xc5, 0x11, 0xe7, 0x15, 0xf4, - 0x81, 0xd1, 0x0e, 0xac, 0xc2, 0x0e, 0x0a, 0x8f, 0xab, 0xd5, 0x0a, 0xae, - 0xc6, 0x0a, 0x42, 0x0c, 0x00, 0xaa, 0xf6, 0x01, 0xb4, 0xe4, 0x09, 0xb5, - 0x89, 0x05, 0x4b, 0x8a, 0xa2, 0x4a, 0xf5, 0x01, 0x02, 0xa7, 0x01, 0x01, - 0xff, 0x80, 0xdc, 0x04, 0x8d, 0xf1, 0x03, 0x04, 0xa9, 0x01, 0x01, 0xff, - 0x08, 0x82, 0xbf, 0xcd, 0x03, 0x02, 0x31, 0x01, 0x01, 0xff, 0xa1, 0xcd, - 0x02, 0x06, 0xe1, 0x02, 0xb5, 0x02, 0x50, 0x0a, 0x60, 0x3f, 0xf8, 0x01, - 0xa4, 0xa0, 0x02, 0x51, 0x91, 0x58, 0x37, 0xf8, 0x01, 0xa8, 0xc1, 0x01, - 0x4d, 0xa7, 0x85, 0xca, 0x21, 0x00, 0x4f, 0x72, 0x70, 0xf1, 0x27, 0x00, - 0x46, 0xa0, 0xdc, 0x6f, 0xf6, 0x01, 0xb3, 0xa0, 0x01, 0xb4, 0x13, 0x4b, - 0xfa, 0x0f, 0xe9, 0x21, 0x80, 0x06, 0x4c, 0x11, 0x33, 0xaf, 0x21, 0x40, - 0x5a, 0x24, 0x1e, 0x97, 0xf8, 0x41, 0x02, 0x0d, 0x00, 0x11, 0x02, 0x15, - 0x02, 0x01, 0xff, 0x4d, 0x16, 0x7e, 0xa1, 0x21, 0x00, 0x66, 0xf0, 0x05, - 0xef, 0x2b, 0x40, 0x05, 0x04, 0x02, 0x06, 0x49, 0x78, 0x70, 0x0b, 0x29, - 0x40, 0x4a, 0xe0, 0x01, 0x93, 0xf8, 0x01, 0x08, 0x09, 0x02, 0x01, 0xff, - 0x45, 0xce, 0x00, 0x63, 0x2b, 0x80, 0x12, 0x4c, 0x05, 0x8c, 0x6d, 0x2b, - 0x00, 0x4d, 0xa7, 0x85, 0x87, 0x2b, 0x00, 0x4c, 0x11, 0x33, 0x4d, 0x2b, - 0x40, 0x80, 0x01, 0xff, 0x6a, 0x41, 0x03, 0x83, 0x2b, 0x00, 0x46, 0x82, - 0x14, 0x73, 0x2b, 0x00, 0x05, 0x51, 0x00, 0x01, 0xff, 0x4a, 0x17, 0xa6, - 0x2b, 0xf8, 0x01, 0x58, 0x85, 0x27, 0x7d, 0x2b, 0x00, 0x4b, 0xef, 0x66, - 0x2f, 0xf8, 0x01, 0x09, 0x4c, 0xb9, 0x12, 0x4c, 0x3d, 0x90, 0x27, 0xf8, - 0x01, 0x4c, 0xa9, 0x90, 0x23, 0xf8, 0x01, 0x50, 0xea, 0x66, 0x33, 0xf8, - 0x41, 0x49, 0xea, 0x01, 0xa0, 0x2b, 0x00, 0x4a, 0xb3, 0x02, 0xa1, 0x2b, - 0x40, 0x4f, 0x6b, 0x65, 0x53, 0xf8, 0x01, 0x4c, 0x29, 0x92, 0x3b, 0xf8, - 0x41, 0x11, 0x66, 0x05, 0x11, 0x05, 0x02, 0x15, 0x01, 0xff, 0x45, 0xce, - 0x00, 0x47, 0xf8, 0x01, 0x50, 0x0a, 0x60, 0x43, 0xf8, 0x41, 0x04, 0xc3, - 0x00, 0x19, 0x05, 0xc8, 0x00, 0x01, 0xff, 0x80, 0x06, 0x45, 0xa9, 0x01, - 0xc2, 0x21, 0x40, 0x48, 0xfd, 0xb1, 0x5d, 0x29, 0x00, 0x46, 0x82, 0x14, - 0x55, 0x29, 0x40, 0x80, 0x06, 0x45, 0xa9, 0x01, 0xc3, 0x21, 0x40, 0x07, - 0x43, 0x0a, 0x0c, 0x48, 0xfd, 0xb1, 0x61, 0x29, 0x00, 0x46, 0x82, 0x14, - 0x59, 0x29, 0x40, 0x61, 0x7a, 0x0d, 0x65, 0x29, 0x00, 0x5f, 0xb9, 0x11, - 0x6f, 0x29, 0x40, 0x4b, 0x06, 0x8c, 0xe3, 0x21, 0x00, 0x4b, 0x72, 0x8c, - 0xd3, 0x21, 0x40, 0x45, 0xce, 0x00, 0x07, 0x2b, 0x80, 0x06, 0x53, 0x8a, - 0x47, 0x8b, 0x2b, 0x40, 0x47, 0x81, 0x14, 0xb3, 0xf8, 0x41, 0x45, 0xd9, - 0xe5, 0x14, 0x2e, 0x00, 0x44, 0xcf, 0x00, 0x93, 0x21, 0xc0, 0x00, 0x80, - 0x01, 0xff, 0x5a, 0x8c, 0x1e, 0xb7, 0xfb, 0x01, 0x48, 0xfd, 0xb1, 0xa7, - 0x21, 0x00, 0x5a, 0x12, 0x20, 0xf5, 0x21, 0x00, 0x46, 0x82, 0x14, 0x13, - 0x29, 0x00, 0x05, 0x51, 0x00, 0x01, 0xff, 0x50, 0x3a, 0x60, 0xb5, 0x21, - 0x00, 0x4d, 0xa0, 0x80, 0xdf, 0x21, 0x00, 0x55, 0xd5, 0x01, 0x17, 0xf8, - 0x01, 0x51, 0x1c, 0x05, 0x08, 0x29, 0x00, 0x58, 0xd5, 0x28, 0x0b, 0xf8, - 0x01, 0x59, 0x5b, 0x24, 0x07, 0xf8, 0x01, 0x4c, 0x21, 0x91, 0x9b, 0xf8, - 0x01, 0x06, 0x0c, 0x07, 0x11, 0x04, 0xfa, 0x0b, 0x01, 0xff, 0x49, 0xea, - 0x01, 0xb2, 0x21, 0x00, 0x4a, 0xb3, 0x02, 0xb3, 0x21, 0x40, 0x55, 0xd5, - 0x01, 0x13, 0xf8, 0x01, 0x52, 0x03, 0x06, 0x03, 0xf8, 0x41, 0x44, 0x5d, - 0x0e, 0x08, 0xf9, 0x81, 0x0d, 0x4c, 0x15, 0x91, 0x09, 0xf9, 0xc1, 0x00, - 0x49, 0xa5, 0x3a, 0x0b, 0xf9, 0x41, 0x49, 0xa5, 0x3a, 0x0a, 0xf9, 0x41, - 0x17, 0xa0, 0x2d, 0x58, 0x09, 0x9c, 0x01, 0x01, 0xff, 0xa1, 0x45, 0x4b, - 0x8f, 0x99, 0x7b, 0xcc, 0x01, 0x44, 0x9a, 0xec, 0xfc, 0xcd, 0x01, 0xb2, - 0x1f, 0xb3, 0x11, 0x0e, 0xfc, 0x7b, 0x01, 0xff, 0x4f, 0xcf, 0x6d, 0xe8, - 0x29, 0x00, 0x50, 0x3a, 0x65, 0xe9, 0x29, 0x40, 0x51, 0x7e, 0x5a, 0x3d, - 0xf5, 0x01, 0x4b, 0xaa, 0x93, 0x04, 0xcc, 0x41, 0x49, 0x40, 0xb3, 0x9a, - 0xcc, 0x01, 0x4b, 0x65, 0x06, 0x3b, 0xf5, 0x01, 0x44, 0x75, 0xaa, 0x68, - 0xcc, 0x01, 0x4a, 0x4d, 0xac, 0x59, 0xcc, 0x41, 0x47, 0x42, 0x33, 0xf8, - 0xcd, 0x01, 0x4a, 0xb3, 0xaf, 0x63, 0xcc, 0x41, 0x4c, 0xbd, 0x8b, 0x77, - 0xcc, 0x01, 0x4a, 0x9b, 0x28, 0x73, 0xcc, 0x41, 0x49, 0xe1, 0x01, 0x04, - 0x23, 0x00, 0x49, 0xa9, 0xb6, 0x7f, 0x29, 0x00, 0x57, 0xc8, 0x2f, 0xf1, - 0x22, 0x00, 0x44, 0x25, 0x38, 0xa4, 0x22, 0xc0, 0x00, 0x52, 0x68, 0x4e, - 0xf1, 0x2a, 0x40, 0x03, 0x3e, 0x01, 0x06, 0x45, 0x90, 0xe3, 0x69, 0xf3, - 0x41, 0x80, 0xba, 0x01, 0x8d, 0x17, 0x02, 0x06, 0x00, 0x01, 0xff, 0x4b, - 0x72, 0x26, 0xa2, 0x26, 0x00, 0x49, 0xbf, 0x20, 0xa3, 0x26, 0x00, 0x46, - 0xeb, 0x07, 0xfc, 0x2b, 0x40, 0x4e, 0xea, 0x75, 0xdf, 0x29, 0x00, 0x05, - 0xc2, 0x07, 0x66, 0x07, 0xab, 0x75, 0x01, 0xff, 0x08, 0xb9, 0x05, 0x36, - 0x07, 0x38, 0xcf, 0x17, 0x4f, 0xbf, 0x6e, 0x40, 0x21, 0x00, 0x06, 0x0c, - 0x07, 0x01, 0xff, 0x45, 0xd2, 0x56, 0x3d, 0x21, 0x00, 0x42, 0xbb, 0x05, - 0x3c, 0x21, 0x40, 0x49, 0xb1, 0xb4, 0x45, 0x21, 0x00, 0x06, 0x0c, 0x07, - 0x01, 0xff, 0xe4, 0x46, 0x21, 0x00, 0xe5, 0x47, 0x21, 0x00, 0xe9, 0x48, - 0x21, 0x00, 0xea, 0x49, 0x21, 0x40, 0xe3, 0x02, 0x21, 0x00, 0x45, 0xd2, - 0x56, 0x3e, 0x21, 0x00, 0xe8, 0x0d, 0x21, 0x00, 0xee, 0x15, 0x21, 0x00, - 0xf0, 0x19, 0x21, 0x80, 0x0c, 0xf1, 0x1a, 0x21, 0x00, 0xf2, 0x1d, 0x21, - 0x00, 0xfa, 0x24, 0x21, 0x40, 0xe9, 0x3f, 0x21, 0x40, 0x0c, 0xe5, 0x27, - 0x21, 0x08, 0x9a, 0x00, 0x01, 0xff, 0x0c, 0xe5, 0x27, 0x0c, 0x58, 0x45, - 0x28, 0xfa, 0x2a, 0x00, 0x55, 0xda, 0x3b, 0xf9, 0x2a, 0x40, 0x4c, 0x87, - 0x00, 0x9c, 0x2a, 0x00, 0x49, 0xec, 0x00, 0x9b, 0x2a, 0x40, 0x4c, 0x87, - 0x00, 0x9a, 0x2a, 0x00, 0x49, 0xec, 0x00, 0x99, 0x2a, 0x40, 0x4c, 0x3d, - 0x8a, 0xdd, 0x02, 0x00, 0xa3, 0xb1, 0x02, 0xa4, 0xa2, 0x02, 0x50, 0xad, - 0x00, 0x3c, 0x20, 0x00, 0xa8, 0x8d, 0x02, 0x04, 0x0a, 0x08, 0xfc, 0x01, - 0xac, 0xc8, 0x01, 0x07, 0xab, 0xd0, 0xb0, 0x01, 0x4e, 0xd0, 0x78, 0x17, - 0x2e, 0x00, 0xb0, 0x8b, 0x01, 0x4d, 0xd6, 0x33, 0x47, 0x20, 0x00, 0x5b, - 0xae, 0x1c, 0x96, 0x29, 0x00, 0xb3, 0x3e, 0xb5, 0x30, 0x09, 0x32, 0x00, - 0x06, 0x4d, 0xb3, 0x88, 0x4c, 0xfe, 0x40, 0x43, 0x16, 0x00, 0xf8, 0x23, - 0x80, 0x06, 0x44, 0xc2, 0x07, 0x16, 0x20, 0x40, 0x80, 0x01, 0xff, 0x07, - 0x3b, 0x01, 0x06, 0x4e, 0x80, 0x39, 0xe3, 0x2a, 0x40, 0x4e, 0x80, 0x39, - 0xe5, 0x2a, 0x00, 0x4f, 0x56, 0x01, 0xab, 0x22, 0x40, 0x44, 0xe2, 0x16, - 0xd3, 0x22, 0x00, 0x46, 0x17, 0xd4, 0xeb, 0x2a, 0x40, 0x4f, 0x82, 0x6f, - 0xfd, 0x2a, 0x00, 0x06, 0x34, 0x24, 0x29, 0xb4, 0x1b, 0xb5, 0x01, 0xff, - 0x44, 0x4c, 0x12, 0xd0, 0x22, 0x00, 0x46, 0x84, 0xc8, 0xbc, 0x2a, 0x00, - 0x46, 0x59, 0x35, 0xd1, 0x22, 0x00, 0x4d, 0xcf, 0x7c, 0x44, 0x2e, 0x40, - 0x4b, 0xae, 0x96, 0x49, 0x2e, 0x00, 0x4d, 0xfa, 0x71, 0xec, 0x2a, 0x40, - 0x4c, 0x5a, 0x0a, 0x4e, 0x2a, 0x00, 0x45, 0xe1, 0x16, 0x4f, 0x2a, 0x40, - 0x43, 0xb8, 0x27, 0xfa, 0x29, 0x00, 0xb2, 0x01, 0xff, 0x46, 0x44, 0xc7, - 0xbb, 0x2a, 0x00, 0x43, 0x29, 0x02, 0x33, 0x20, 0xc0, 0x00, 0x4f, 0xed, - 0x04, 0x1e, 0x30, 0x40, 0x4c, 0x87, 0x00, 0xa2, 0x2a, 0x00, 0x49, 0xec, - 0x00, 0xa1, 0x2a, 0xc0, 0x00, 0x4e, 0xc2, 0x5d, 0xa3, 0x2a, 0x40, 0x5c, - 0x3a, 0x17, 0x95, 0x29, 0x00, 0xaf, 0x01, 0xff, 0x06, 0xa5, 0x21, 0x18, - 0xb7, 0x01, 0xff, 0x45, 0xc1, 0x07, 0x17, 0x20, 0x00, 0x8d, 0x01, 0xff, - 0x50, 0x12, 0x13, 0x1e, 0x20, 0x00, 0x59, 0x09, 0x13, 0x42, 0x2e, 0x40, - 0x43, 0x1a, 0x00, 0x53, 0x2a, 0x00, 0x42, 0x0c, 0x00, 0x54, 0x2a, 0x40, - 0x44, 0xf7, 0x25, 0x2c, 0x22, 0x00, 0x48, 0x5e, 0x0a, 0xd2, 0x22, 0x40, - 0x5d, 0x05, 0x13, 0x1f, 0x20, 0x00, 0x45, 0x1b, 0x62, 0x40, 0x2e, 0x40, - 0x45, 0xf1, 0xd7, 0x21, 0x20, 0x00, 0x48, 0x21, 0x38, 0xea, 0x2a, 0x40, - 0x07, 0x6e, 0x22, 0x0c, 0x4a, 0x6b, 0xac, 0x74, 0x2a, 0x00, 0x49, 0x0b, - 0xbe, 0xbf, 0x27, 0x40, 0x06, 0xc4, 0x06, 0x06, 0x4a, 0x39, 0xac, 0xfe, - 0x24, 0x40, 0x45, 0xc3, 0x0a, 0xfc, 0x24, 0x00, 0xa6, 0x29, 0x44, 0x46, - 0x2a, 0xfd, 0x24, 0x00, 0x43, 0xbf, 0x0a, 0xf5, 0x24, 0x00, 0xb3, 0x0f, - 0xb4, 0x01, 0xff, 0x44, 0x25, 0x01, 0xf7, 0x24, 0x00, 0x42, 0x15, 0x02, - 0xf6, 0x24, 0x40, 0x44, 0x27, 0x1d, 0xfb, 0x24, 0x00, 0x42, 0x60, 0x25, - 0xfa, 0x24, 0x40, 0x43, 0xa7, 0x05, 0xf9, 0x24, 0x00, 0x43, 0xcb, 0x06, - 0xf8, 0x24, 0x40, 0x80, 0x3f, 0x04, 0x77, 0x00, 0x01, 0xff, 0xa3, 0x2c, - 0x45, 0x0c, 0x95, 0x99, 0x29, 0x00, 0x49, 0x0d, 0xb9, 0xe5, 0xfa, 0x01, - 0x46, 0xa4, 0xdb, 0x13, 0x2e, 0x00, 0x54, 0x38, 0x0b, 0x16, 0x2e, 0x00, - 0xb3, 0x06, 0x54, 0x0b, 0x45, 0x08, 0x2e, 0x40, 0x46, 0x6a, 0x30, 0x4a, - 0x2e, 0x00, 0x45, 0xac, 0x05, 0x1a, 0x2b, 0x40, 0x45, 0xe8, 0x02, 0xcc, - 0x25, 0x00, 0x44, 0x47, 0x10, 0x5c, 0x20, 0x40, 0x45, 0x5c, 0x00, 0xd9, - 0x02, 0x00, 0x45, 0xef, 0x1e, 0x38, 0x22, 0x00, 0x48, 0xdc, 0x1c, 0xc5, - 0x22, 0x00, 0x44, 0xb7, 0x27, 0x14, 0x22, 0x40, 0x46, 0x27, 0xba, 0xab, - 0x20, 0x00, 0x43, 0x81, 0x23, 0xcf, 0xfa, 0x41, 0x0a, 0x0b, 0x00, 0xf4, - 0x01, 0x08, 0x32, 0x00, 0x01, 0xff, 0x45, 0xf4, 0x0d, 0x62, 0xf0, 0x01, - 0x02, 0x26, 0x3f, 0x01, 0xff, 0x03, 0x24, 0xf0, 0xc3, 0x01, 0x03, 0x30, - 0xf0, 0xa2, 0x01, 0x03, 0x42, 0xf0, 0x81, 0x01, 0x03, 0x54, 0xf0, 0x61, - 0x03, 0x60, 0xf0, 0x41, 0x03, 0x66, 0xf0, 0x21, 0x03, 0x72, 0xf0, 0x01, - 0xff, 0xd0, 0x8d, 0xf0, 0x01, 0xd1, 0x8e, 0xf0, 0x01, 0xd2, 0x8f, 0xf0, - 0x01, 0xd3, 0x90, 0xf0, 0x01, 0xd4, 0x91, 0xf0, 0x01, 0xd5, 0x92, 0xf0, - 0x01, 0xd6, 0x93, 0xf0, 0x41, 0xd0, 0x86, 0xf0, 0x01, 0xd1, 0x87, 0xf0, - 0x01, 0xd2, 0x88, 0xf0, 0x01, 0xd3, 0x89, 0xf0, 0x01, 0xd4, 0x8a, 0xf0, - 0x01, 0xd5, 0x8b, 0xf0, 0x01, 0xd6, 0x8c, 0xf0, 0x41, 0xd0, 0x7f, 0xf0, - 0x01, 0xd1, 0x80, 0xf0, 0x01, 0xd2, 0x81, 0xf0, 0x01, 0xd3, 0x82, 0xf0, - 0x01, 0xd4, 0x83, 0xf0, 0x01, 0xd5, 0x84, 0xf0, 0x01, 0xd6, 0x85, 0xf0, - 0x41, 0xd0, 0x78, 0xf0, 0x01, 0xd1, 0x79, 0xf0, 0x01, 0xd2, 0x7a, 0xf0, - 0x01, 0xd3, 0x7b, 0xf0, 0x01, 0xd4, 0x7c, 0xf0, 0x01, 0xd5, 0x7d, 0xf0, - 0x01, 0xd6, 0x7e, 0xf0, 0x41, 0xd0, 0x71, 0xf0, 0x01, 0xd1, 0x72, 0xf0, - 0x01, 0xd2, 0x73, 0xf0, 0x01, 0xd3, 0x74, 0xf0, 0x01, 0xd4, 0x75, 0xf0, - 0x01, 0xd5, 0x76, 0xf0, 0x01, 0xd6, 0x77, 0xf0, 0x41, 0xd0, 0x6a, 0xf0, - 0x01, 0xd1, 0x6b, 0xf0, 0x01, 0xd2, 0x6c, 0xf0, 0x01, 0xd3, 0x6d, 0xf0, - 0x01, 0xd4, 0x6e, 0xf0, 0x01, 0xd5, 0x6f, 0xf0, 0x01, 0xd6, 0x70, 0xf0, - 0x41, 0xd0, 0x63, 0xf0, 0x01, 0xd1, 0x64, 0xf0, 0x01, 0xd2, 0x65, 0xf0, - 0x01, 0xd3, 0x66, 0xf0, 0x01, 0xd4, 0x67, 0xf0, 0x01, 0xd5, 0x68, 0xf0, - 0x01, 0xd6, 0x69, 0xf0, 0x41, 0x45, 0xf4, 0x0d, 0x30, 0xf0, 0x01, 0x02, - 0x26, 0x3f, 0x01, 0xff, 0x03, 0x24, 0xf0, 0xc3, 0x01, 0x03, 0x30, 0xf0, - 0xa2, 0x01, 0x03, 0x42, 0xf0, 0x81, 0x01, 0x03, 0x54, 0xf0, 0x61, 0x03, - 0x60, 0xf0, 0x41, 0x03, 0x66, 0xf0, 0x21, 0x03, 0x72, 0xf0, 0x01, 0xff, - 0xd0, 0x5b, 0xf0, 0x01, 0xd1, 0x5c, 0xf0, 0x01, 0xd2, 0x5d, 0xf0, 0x01, - 0xd3, 0x5e, 0xf0, 0x01, 0xd4, 0x5f, 0xf0, 0x01, 0xd5, 0x60, 0xf0, 0x01, - 0xd6, 0x61, 0xf0, 0x41, 0xd0, 0x54, 0xf0, 0x01, 0xd1, 0x55, 0xf0, 0x01, - 0xd2, 0x56, 0xf0, 0x01, 0xd3, 0x57, 0xf0, 0x01, 0xd4, 0x58, 0xf0, 0x01, - 0xd5, 0x59, 0xf0, 0x01, 0xd6, 0x5a, 0xf0, 0x41, 0xd0, 0x4d, 0xf0, 0x01, - 0xd1, 0x4e, 0xf0, 0x01, 0xd2, 0x4f, 0xf0, 0x01, 0xd3, 0x50, 0xf0, 0x01, - 0xd4, 0x51, 0xf0, 0x01, 0xd5, 0x52, 0xf0, 0x01, 0xd6, 0x53, 0xf0, 0x41, - 0xd0, 0x46, 0xf0, 0x01, 0xd1, 0x47, 0xf0, 0x01, 0xd2, 0x48, 0xf0, 0x01, - 0xd3, 0x49, 0xf0, 0x01, 0xd4, 0x4a, 0xf0, 0x01, 0xd5, 0x4b, 0xf0, 0x01, - 0xd6, 0x4c, 0xf0, 0x41, 0xd0, 0x3f, 0xf0, 0x01, 0xd1, 0x40, 0xf0, 0x01, - 0xd2, 0x41, 0xf0, 0x01, 0xd3, 0x42, 0xf0, 0x01, 0xd4, 0x43, 0xf0, 0x01, - 0xd5, 0x44, 0xf0, 0x01, 0xd6, 0x45, 0xf0, 0x41, 0xd0, 0x38, 0xf0, 0x01, - 0xd1, 0x39, 0xf0, 0x01, 0xd2, 0x3a, 0xf0, 0x01, 0xd3, 0x3b, 0xf0, 0x01, - 0xd4, 0x3c, 0xf0, 0x01, 0xd5, 0x3d, 0xf0, 0x01, 0xd6, 0x3e, 0xf0, 0x41, - 0xd0, 0x31, 0xf0, 0x01, 0xd1, 0x32, 0xf0, 0x01, 0xd2, 0x33, 0xf0, 0x01, - 0xd3, 0x34, 0xf0, 0x01, 0xd4, 0x35, 0xf0, 0x01, 0xd5, 0x36, 0xf0, 0x01, - 0xd6, 0x37, 0xf0, 0x41, 0x48, 0xde, 0x0d, 0x24, 0x00, 0x00, 0x44, 0xca, - 0xee, 0x2c, 0xf4, 0x41, 0x45, 0xe0, 0x07, 0x36, 0xf4, 0x01, 0x03, 0x71, - 0x00, 0x01, 0xff, 0x51, 0x93, 0x56, 0x3b, 0x18, 0x01, 0x07, 0xc1, 0x05, - 0x59, 0x05, 0x2f, 0x03, 0x38, 0x0b, 0xd1, 0x75, 0x01, 0xff, 0xa1, 0x25, - 0xe5, 0x33, 0x18, 0x01, 0xe9, 0x2d, 0x18, 0x81, 0x18, 0xef, 0x35, 0x18, - 0x01, 0xf5, 0x2f, 0x18, 0x81, 0x0b, 0x49, 0x9b, 0xbe, 0x31, 0x18, 0xc1, - 0x00, 0xf2, 0x32, 0x18, 0x41, 0xf5, 0x30, 0x18, 0x41, 0xe9, 0x2e, 0x18, - 0x41, 0xe1, 0x2c, 0x18, 0x01, 0xe9, 0x34, 0x18, 0x01, 0xf5, 0x36, 0x18, - 0x41, 0x48, 0xd0, 0x15, 0x37, 0x18, 0x01, 0x45, 0x5a, 0x3e, 0x3a, 0x18, - 0x01, 0x02, 0x02, 0x00, 0x01, 0xff, 0x44, 0x5d, 0x23, 0x39, 0x18, 0x01, - 0x45, 0xa3, 0x4a, 0x38, 0x18, 0x41, 0xe1, 0x00, 0x18, 0x81, 0xee, 0x01, - 0xa2, 0xe1, 0x01, 0xa3, 0xd4, 0x01, 0xa4, 0xbb, 0x01, 0xe5, 0x06, 0x18, - 0x01, 0xa7, 0xaa, 0x01, 0x42, 0x22, 0x00, 0x2a, 0x18, 0x01, 0xe9, 0x02, - 0x18, 0x81, 0x9a, 0x01, 0xaa, 0x8d, 0x01, 0xab, 0x80, 0x01, 0x42, 0x74, - 0x00, 0x25, 0x18, 0x01, 0x42, 0x6c, 0x00, 0x22, 0x18, 0x01, 0xae, 0x5c, - 0xef, 0x08, 0x18, 0x01, 0xb0, 0x4c, 0xb2, 0x40, 0xb3, 0x2e, 0xb4, 0x15, - 0xf5, 0x04, 0x18, 0x81, 0x0c, 0x42, 0xa6, 0x0a, 0x26, 0x18, 0x01, 0x42, - 0x34, 0x22, 0x23, 0x18, 0x41, 0xf5, 0x05, 0x18, 0x41, 0xe1, 0x19, 0x18, - 0x01, 0x42, 0x22, 0x00, 0x1a, 0x18, 0x01, 0xb4, 0x01, 0xff, 0xe1, 0x14, - 0x18, 0x01, 0x42, 0x22, 0x00, 0x15, 0x18, 0x41, 0xe1, 0x29, 0x18, 0x01, - 0x42, 0x22, 0x00, 0x27, 0x18, 0x01, 0x42, 0x15, 0x06, 0x28, 0x18, 0x41, - 0xe1, 0x24, 0x18, 0x01, 0x42, 0x71, 0x00, 0x2b, 0x18, 0x41, 0xe1, 0x1e, - 0x18, 0x01, 0x42, 0x22, 0x00, 0x1f, 0x18, 0x41, 0xe1, 0x1d, 0x18, 0x01, - 0x42, 0x24, 0x02, 0x0e, 0x18, 0x01, 0x42, 0xff, 0x04, 0x18, 0x18, 0x01, - 0x42, 0x34, 0x22, 0x13, 0x18, 0x41, 0xe1, 0x0a, 0x18, 0x01, 0x42, 0x22, - 0x00, 0x0b, 0x18, 0x41, 0xe1, 0x11, 0x18, 0x01, 0x42, 0x22, 0x00, 0x12, - 0x18, 0x41, 0xe9, 0x03, 0x18, 0x41, 0xe1, 0x0c, 0x18, 0x01, 0x42, 0x22, - 0x00, 0x0d, 0x18, 0x41, 0xe1, 0x1b, 0x18, 0x01, 0xa4, 0x06, 0x42, 0x22, - 0x00, 0x1c, 0x18, 0x41, 0xe1, 0x16, 0x18, 0x01, 0x42, 0x22, 0x00, 0x17, - 0x18, 0x41, 0xe1, 0x0f, 0x18, 0x01, 0x42, 0x22, 0x00, 0x10, 0x18, 0x41, - 0xe1, 0x20, 0x18, 0x01, 0x42, 0x22, 0x00, 0x21, 0x18, 0x41, 0xe1, 0x01, - 0x18, 0x01, 0xe9, 0x07, 0x18, 0x01, 0xf5, 0x09, 0x18, 0x41, 0x0b, 0x3a, - 0x98, 0x37, 0x46, 0x00, 0x00, 0x24, 0x22, 0x80, 0x2a, 0x45, 0x63, 0xe3, - 0xae, 0x22, 0x00, 0x02, 0x90, 0x0c, 0x0d, 0x47, 0x82, 0xc8, 0x81, 0x22, - 0xc0, 0x00, 0x49, 0x51, 0x28, 0xe1, 0x22, 0x40, 0x45, 0x87, 0x35, 0x80, - 0x22, 0x80, 0x06, 0x43, 0x5e, 0x00, 0xac, 0x22, 0x40, 0x49, 0x51, 0x28, - 0xe0, 0x22, 0x40, 0x5d, 0x88, 0x14, 0xee, 0x2a, 0x40, 0x46, 0x89, 0x05, - 0x0c, 0x22, 0x00, 0x4f, 0xa0, 0x52, 0xeb, 0x22, 0xc0, 0x00, 0x49, 0x51, - 0x28, 0xed, 0x22, 0x40, 0x06, 0x50, 0x00, 0x01, 0xff, 0x47, 0x3a, 0x89, - 0xbb, 0xf5, 0x01, 0x44, 0x96, 0x2f, 0xb9, 0xf5, 0xc1, 0x00, 0x4c, 0x35, - 0x89, 0xba, 0xf5, 0x41, 0xa1, 0xa4, 0x09, 0xa5, 0xff, 0x08, 0x50, 0xba, - 0x61, 0x4f, 0x22, 0x00, 0xa7, 0xc1, 0x06, 0x4e, 0x7c, 0x78, 0x31, 0x23, - 0x00, 0x06, 0x4a, 0xdb, 0xc8, 0x04, 0x05, 0x3a, 0x0d, 0xb7, 0x04, 0xb3, - 0x8f, 0x04, 0x48, 0x1a, 0xc9, 0x03, 0x30, 0x00, 0xb6, 0x17, 0x47, 0xe8, - 0xd4, 0x94, 0xfa, 0x01, 0x04, 0x1a, 0xf0, 0x01, 0xff, 0x44, 0xe1, 0x07, - 0x35, 0xf6, 0x01, 0x46, 0xeb, 0x07, 0xab, 0xf4, 0x41, 0x09, 0x46, 0xb6, - 0x2d, 0xa9, 0x06, 0x4b, 0xb7, 0x9e, 0xae, 0x26, 0x40, 0x43, 0x55, 0x27, - 0x23, 0x22, 0x00, 0x47, 0xb2, 0xd0, 0x3f, 0xf9, 0x01, 0x05, 0xa5, 0x2f, - 0x01, 0xff, 0xb3, 0x06, 0x45, 0x28, 0x02, 0xc7, 0x22, 0x40, 0x43, 0x30, - 0x03, 0xf7, 0x00, 0x00, 0x44, 0xfa, 0x0d, 0x15, 0x22, 0x40, 0xa4, 0xf0, - 0x02, 0x50, 0x3a, 0x61, 0x46, 0x19, 0x01, 0x4a, 0x1e, 0x9a, 0x45, 0x19, - 0x01, 0x4a, 0xaf, 0xa9, 0x41, 0x19, 0x01, 0x07, 0xc1, 0x05, 0x64, 0x07, - 0x7c, 0x32, 0x54, 0x53, 0xe1, 0x4a, 0x3f, 0x19, 0x01, 0x05, 0x2f, 0x03, - 0x32, 0xb6, 0x01, 0xff, 0x45, 0x5c, 0x23, 0x3e, 0x19, 0x01, 0x0a, 0xd2, - 0x75, 0x01, 0xff, 0xa1, 0x1a, 0xe5, 0x35, 0x19, 0x01, 0xe9, 0x31, 0x19, - 0x81, 0x0d, 0xef, 0x38, 0x19, 0x01, 0xf5, 0x33, 0x19, 0xc1, 0x00, 0xf5, - 0x34, 0x19, 0x41, 0xe9, 0x32, 0x19, 0x41, 0xe1, 0x30, 0x19, 0x01, 0xe9, - 0x37, 0x19, 0x41, 0x48, 0xd0, 0x15, 0x3b, 0x19, 0x01, 0x4b, 0x4f, 0x23, - 0x3c, 0x19, 0x01, 0x47, 0x97, 0xce, 0x3d, 0x19, 0x01, 0x45, 0x5a, 0x3e, - 0x43, 0x19, 0x41, 0x42, 0x71, 0x00, 0x42, 0x19, 0x01, 0x42, 0x34, 0x22, - 0x40, 0x19, 0x41, 0xe1, 0x00, 0x19, 0x81, 0xec, 0x01, 0xa2, 0xdf, 0x01, - 0xa3, 0xd2, 0x01, 0xa4, 0xb9, 0x01, 0xe5, 0x06, 0x19, 0x01, 0xa7, 0xa8, - 0x01, 0x42, 0x22, 0x00, 0x2d, 0x19, 0x01, 0xe9, 0x02, 0x19, 0x81, 0x98, - 0x01, 0x42, 0xbd, 0x26, 0x13, 0x19, 0x01, 0xab, 0x85, 0x01, 0xac, 0x79, - 0x42, 0x6c, 0x00, 0x24, 0x19, 0x01, 0xae, 0x5b, 0xef, 0x09, 0x19, 0x01, - 0xb0, 0x4b, 0x42, 0x71, 0x00, 0x27, 0x19, 0x01, 0xb3, 0x33, 0xb4, 0x21, - 0xf5, 0x04, 0x19, 0x81, 0x18, 0x42, 0xa6, 0x0a, 0x29, 0x19, 0x01, 0xb9, - 0x06, 0x42, 0x59, 0x00, 0x2f, 0x19, 0x41, 0xe1, 0x25, 0x19, 0x01, 0x42, - 0x34, 0x22, 0x26, 0x19, 0x41, 0xf5, 0x05, 0x19, 0x41, 0xe1, 0x1b, 0x19, - 0x01, 0x42, 0x22, 0x00, 0x1c, 0x19, 0x01, 0x42, 0x12, 0x00, 0x16, 0x19, - 0x41, 0xe1, 0x2c, 0x19, 0x01, 0x42, 0x22, 0x00, 0x2a, 0x19, 0x01, 0x42, - 0x15, 0x06, 0x2b, 0x19, 0x41, 0xe1, 0x20, 0x19, 0x01, 0x42, 0x22, 0x00, - 0x21, 0x19, 0x41, 0xe1, 0x1f, 0x19, 0x01, 0x42, 0x24, 0x02, 0x10, 0x19, - 0x01, 0x42, 0xff, 0x04, 0x1a, 0x19, 0x01, 0x42, 0x34, 0x22, 0x15, 0x19, - 0x41, 0xe1, 0x28, 0x19, 0x01, 0x42, 0x74, 0x00, 0x2e, 0x19, 0x41, 0xe1, - 0x0c, 0x19, 0x01, 0x42, 0x22, 0x00, 0x0d, 0x19, 0x41, 0xe9, 0x03, 0x19, - 0x41, 0xe1, 0x0e, 0x19, 0x01, 0x42, 0x22, 0x00, 0x0f, 0x19, 0x41, 0xe1, - 0x1d, 0x19, 0x01, 0xa4, 0x06, 0x42, 0x22, 0x00, 0x1e, 0x19, 0x41, 0xe1, - 0x18, 0x19, 0x01, 0x42, 0x22, 0x00, 0x19, 0x19, 0x41, 0xe1, 0x11, 0x19, - 0x01, 0x42, 0x22, 0x00, 0x12, 0x19, 0x41, 0xe1, 0x22, 0x19, 0x01, 0x42, - 0x22, 0x00, 0x23, 0x19, 0x41, 0xe1, 0x01, 0x19, 0x41, 0x05, 0xc5, 0x06, - 0x06, 0x4b, 0xd8, 0x9e, 0x44, 0x19, 0x41, 0x45, 0xc3, 0x0a, 0x58, 0x19, - 0x01, 0xa6, 0x2e, 0x44, 0x46, 0x2a, 0x59, 0x19, 0x01, 0x43, 0xbf, 0x0a, - 0x51, 0x19, 0x01, 0xb3, 0x14, 0xb4, 0x06, 0x44, 0xa1, 0x1d, 0x50, 0x19, - 0x41, 0x44, 0x25, 0x01, 0x53, 0x19, 0x01, 0x42, 0x15, 0x02, 0x52, 0x19, - 0x41, 0x44, 0x27, 0x1d, 0x57, 0x19, 0x01, 0x42, 0x60, 0x25, 0x56, 0x19, - 0x41, 0x43, 0xa7, 0x05, 0x55, 0x19, 0x01, 0x43, 0xcb, 0x06, 0x54, 0x19, - 0x41, 0xa1, 0x0c, 0x5b, 0x41, 0x1a, 0x82, 0x23, 0x00, 0x4b, 0x76, 0x9a, - 0x78, 0xf9, 0x41, 0x48, 0xaa, 0xc1, 0xcd, 0x26, 0x00, 0x09, 0xb9, 0xbb, - 0x01, 0xff, 0x51, 0x70, 0x57, 0x25, 0xf6, 0x01, 0x44, 0xe1, 0x07, 0x1e, - 0xf6, 0x41, 0x57, 0x44, 0x2d, 0x93, 0x23, 0x00, 0x43, 0xae, 0x02, 0xaf, - 0xf3, 0x41, 0x13, 0x77, 0x47, 0x9d, 0x01, 0x11, 0x39, 0x5b, 0x01, 0xff, - 0x06, 0xc4, 0x06, 0x57, 0x4a, 0x39, 0xac, 0x7f, 0x27, 0x00, 0x0b, 0x7f, - 0x47, 0x01, 0xff, 0x06, 0xc4, 0x06, 0x06, 0x4a, 0x39, 0xac, 0x93, 0x27, - 0x40, 0x45, 0xc3, 0x0a, 0x91, 0x27, 0x00, 0xa6, 0x2e, 0x44, 0x46, 0x2a, - 0x92, 0x27, 0x00, 0x43, 0xbf, 0x0a, 0x8a, 0x27, 0x00, 0xb3, 0x14, 0xb4, - 0x06, 0x44, 0xa1, 0x1d, 0x0c, 0xf1, 0x41, 0x44, 0x25, 0x01, 0x8c, 0x27, - 0x00, 0x42, 0x15, 0x02, 0x8b, 0x27, 0x40, 0x44, 0x27, 0x1d, 0x90, 0x27, - 0x00, 0x42, 0x60, 0x25, 0x8f, 0x27, 0x40, 0x43, 0xa7, 0x05, 0x8e, 0x27, - 0x00, 0x43, 0xcb, 0x06, 0x8d, 0x27, 0x40, 0x45, 0xc3, 0x0a, 0x7d, 0x27, - 0x00, 0xa6, 0x29, 0x44, 0x46, 0x2a, 0x7e, 0x27, 0x00, 0x43, 0xbf, 0x0a, - 0x76, 0x27, 0x00, 0xb3, 0x0f, 0xb4, 0x01, 0xff, 0x44, 0x25, 0x01, 0x78, - 0x27, 0x00, 0x42, 0x15, 0x02, 0x77, 0x27, 0x40, 0x44, 0x27, 0x1d, 0x7c, - 0x27, 0x00, 0x42, 0x60, 0x25, 0x7b, 0x27, 0x40, 0x43, 0xa7, 0x05, 0x7a, - 0x27, 0x00, 0x43, 0xcb, 0x06, 0x79, 0x27, 0x40, 0x06, 0xc4, 0x06, 0x06, - 0x4a, 0x39, 0xac, 0x89, 0x27, 0x40, 0x45, 0xc3, 0x0a, 0x87, 0x27, 0x00, - 0xa6, 0x2e, 0x44, 0x46, 0x2a, 0x88, 0x27, 0x00, 0x43, 0xbf, 0x0a, 0x80, - 0x27, 0x00, 0xb3, 0x14, 0xb4, 0x06, 0x44, 0xa1, 0x1d, 0x0b, 0xf1, 0x41, - 0x44, 0x25, 0x01, 0x82, 0x27, 0x00, 0x42, 0x15, 0x02, 0x81, 0x27, 0x40, - 0x44, 0x27, 0x1d, 0x86, 0x27, 0x00, 0x42, 0x60, 0x25, 0x85, 0x27, 0x40, - 0x43, 0xa7, 0x05, 0x84, 0x27, 0x00, 0x43, 0xcb, 0x06, 0x83, 0x27, 0x40, - 0x03, 0xc7, 0x06, 0x4c, 0x08, 0x25, 0x94, 0x01, 0xff, 0x45, 0xb8, 0x70, - 0x05, 0xd3, 0x81, 0x2f, 0x09, 0xdf, 0xb6, 0x1f, 0xa8, 0x11, 0x08, 0x12, - 0xc5, 0x01, 0xff, 0x43, 0x1c, 0x01, 0x8e, 0x26, 0x00, 0x42, 0x9e, 0x01, - 0x8d, 0x26, 0x40, 0x4d, 0xba, 0x80, 0x01, 0xd3, 0x01, 0x4a, 0x53, 0xb0, - 0x02, 0xd3, 0x41, 0x43, 0x1c, 0x01, 0x8c, 0x26, 0x00, 0x42, 0x9e, 0x01, - 0x8f, 0x26, 0x40, 0x04, 0xc8, 0x8c, 0x01, 0xff, 0x45, 0x29, 0x7a, 0x03, - 0xd3, 0x01, 0x44, 0x11, 0xa2, 0x04, 0xd3, 0x41, 0x45, 0xc3, 0x0a, 0x38, - 0x00, 0x80, 0xce, 0x01, 0xa6, 0x9f, 0x01, 0x44, 0x46, 0x2a, 0x39, 0x00, - 0x80, 0x88, 0x01, 0x43, 0xbf, 0x0a, 0x31, 0x00, 0x80, 0x72, 0xb3, 0x44, - 0xb4, 0x16, 0x44, 0xa1, 0x1d, 0x30, 0x00, 0xc0, 0x00, 0x80, 0x01, 0xff, - 0x45, 0xe8, 0x04, 0x01, 0xf1, 0x01, 0x49, 0x15, 0x16, 0x00, 0xf1, 0x41, - 0x44, 0x25, 0x01, 0x33, 0x00, 0x80, 0x16, 0x42, 0x15, 0x02, 0x32, 0x00, - 0xc0, 0x00, 0x80, 0x01, 0xff, 0x45, 0xe8, 0x04, 0x03, 0xf1, 0x01, 0x49, - 0x15, 0x16, 0x89, 0x24, 0x40, 0x80, 0x01, 0xff, 0x45, 0xe8, 0x04, 0x04, - 0xf1, 0x01, 0x49, 0x15, 0x16, 0x8a, 0x24, 0x40, 0x44, 0x27, 0x1d, 0x37, - 0x00, 0x80, 0x16, 0x42, 0x60, 0x25, 0x36, 0x00, 0xc0, 0x00, 0x80, 0x01, - 0xff, 0x45, 0xe8, 0x04, 0x07, 0xf1, 0x01, 0x49, 0x15, 0x16, 0x8d, 0x24, - 0x40, 0x80, 0x01, 0xff, 0x45, 0xe8, 0x04, 0x08, 0xf1, 0x01, 0x49, 0x15, - 0x16, 0x8e, 0x24, 0x40, 0x80, 0x01, 0xff, 0x45, 0xe8, 0x04, 0x02, 0xf1, - 0x01, 0x49, 0x15, 0x16, 0x88, 0x24, 0x40, 0x80, 0x01, 0xff, 0x45, 0xe8, - 0x04, 0x0a, 0xf1, 0x01, 0x49, 0x15, 0x16, 0x90, 0x24, 0x40, 0x43, 0xa7, - 0x05, 0x35, 0x00, 0x80, 0x16, 0x43, 0xcb, 0x06, 0x34, 0x00, 0xc0, 0x00, - 0x80, 0x01, 0xff, 0x45, 0xe8, 0x04, 0x05, 0xf1, 0x01, 0x49, 0x15, 0x16, - 0x8b, 0x24, 0x40, 0x80, 0x01, 0xff, 0x45, 0xe8, 0x04, 0x06, 0xf1, 0x01, - 0x49, 0x15, 0x16, 0x8c, 0x24, 0x40, 0x80, 0x01, 0xff, 0x45, 0xe8, 0x04, - 0x09, 0xf1, 0x01, 0x49, 0x15, 0x16, 0x8f, 0x24, 0x40, 0x06, 0x38, 0xd5, - 0x06, 0x4e, 0x90, 0x7a, 0xf2, 0xf6, 0x41, 0xd1, 0x80, 0x26, 0x00, 0xd2, - 0x81, 0x26, 0x00, 0xd3, 0x82, 0x26, 0x00, 0xd4, 0x83, 0x26, 0x00, 0xd5, - 0x84, 0x26, 0x00, 0xd6, 0x85, 0x26, 0x40, 0x46, 0x32, 0x23, 0xa8, 0x00, - 0x00, 0x55, 0x01, 0x21, 0x43, 0xcc, 0x01, 0xad, 0x01, 0xff, 0x49, 0x58, - 0xb6, 0x00, 0x23, 0x00, 0x04, 0x19, 0x56, 0x01, 0xff, 0x48, 0xdc, 0x1c, - 0xc4, 0x22, 0x00, 0x57, 0x3b, 0x30, 0xa0, 0xf4, 0x01, 0x46, 0x5a, 0xdd, - 0x9c, 0xf7, 0x01, 0x05, 0x51, 0x00, 0x01, 0xff, 0x51, 0x3d, 0x57, 0x19, - 0x2b, 0x00, 0x4f, 0xcf, 0x6d, 0x16, 0x2b, 0x00, 0x50, 0x3a, 0x65, 0x17, - 0x2b, 0x00, 0x4e, 0xd2, 0x7b, 0x18, 0x2b, 0x40, 0x49, 0x5b, 0xb3, 0xcf, - 0xf9, 0x01, 0xa3, 0x9f, 0x0d, 0x42, 0x33, 0x00, 0x8c, 0xf9, 0x01, 0x05, - 0xb5, 0xa8, 0x82, 0x0d, 0xac, 0xed, 0x0c, 0xae, 0xd8, 0x0b, 0x4e, 0xa2, - 0x79, 0xec, 0xf3, 0x01, 0x55, 0xd6, 0x3c, 0xda, 0xf3, 0x01, 0xb3, 0xe5, - 0x07, 0xb6, 0x01, 0xff, 0x08, 0x4b, 0xbe, 0x26, 0x0c, 0x80, 0x88, 0x01, - 0xff, 0x44, 0xca, 0x06, 0x14, 0x00, 0x00, 0x43, 0xbf, 0x0a, 0x11, 0x00, - 0x00, 0x46, 0x1a, 0x66, 0x90, 0x00, 0x00, 0xb4, 0x01, 0xff, 0x44, 0x25, - 0x01, 0x13, 0x00, 0x00, 0x42, 0x15, 0x02, 0x12, 0x00, 0x40, 0xa1, 0xa9, - 0x07, 0x45, 0xf7, 0x7b, 0xfa, 0xa8, 0x00, 0xa4, 0xce, 0x06, 0xa7, 0xbf, - 0x06, 0x04, 0xe6, 0x01, 0xa7, 0x06, 0x47, 0x4d, 0xcf, 0xfd, 0xa8, 0x00, - 0x07, 0xc1, 0x05, 0xc9, 0x02, 0x42, 0xe9, 0x04, 0x50, 0x09, 0x00, 0xb3, - 0x84, 0x01, 0x0b, 0xd1, 0x75, 0x01, 0xff, 0xa1, 0x69, 0x07, 0xba, 0x5f, - 0x57, 0xe5, 0x47, 0x09, 0x00, 0xe9, 0x3f, 0x09, 0x80, 0x4a, 0xef, 0x4b, - 0x09, 0x80, 0x3b, 0x4f, 0x54, 0x70, 0x4e, 0x09, 0x00, 0x06, 0x61, 0x36, - 0x29, 0xf5, 0x41, 0x09, 0x80, 0x17, 0x08, 0x9b, 0xbe, 0x01, 0xff, 0xec, - 0x62, 0x09, 0x80, 0x09, 0xf2, 0x43, 0x09, 0xc0, 0x00, 0xf2, 0x44, 0x09, - 0x40, 0xec, 0x63, 0x09, 0x40, 0xe5, 0x56, 0x09, 0x00, 0xf5, 0x42, 0x09, - 0xc0, 0x00, 0xe5, 0x57, 0x09, 0x40, 0xe5, 0x46, 0x09, 0x00, 0xef, 0x4a, - 0x09, 0x40, 0xe5, 0x3a, 0x09, 0x00, 0x42, 0x17, 0x50, 0x3b, 0x09, 0x40, - 0xe9, 0x40, 0x09, 0x40, 0xe5, 0x45, 0x09, 0x00, 0x46, 0xde, 0xda, 0x55, - 0x09, 0x00, 0xef, 0x49, 0x09, 0x40, 0xe1, 0x3e, 0x09, 0x00, 0xe9, 0x48, - 0x09, 0x00, 0xf5, 0x4c, 0x09, 0x00, 0xf7, 0x4f, 0x09, 0x00, 0xf9, 0xff, - 0xa8, 0x40, 0x04, 0x30, 0x03, 0x11, 0x0b, 0x82, 0xa1, 0x01, 0xff, 0x48, - 0x68, 0x7b, 0x52, 0x09, 0x00, 0x46, 0x6a, 0x7b, 0x51, 0x09, 0x40, 0xa1, - 0x98, 0x01, 0x45, 0x50, 0x2a, 0x02, 0x1b, 0x81, 0x8a, 0x01, 0x4b, 0x4f, - 0x23, 0x01, 0x09, 0x80, 0x66, 0x59, 0x48, 0x23, 0xf4, 0xa8, 0x00, 0x4e, - 0x3e, 0x76, 0x04, 0x1b, 0x81, 0x53, 0x50, 0xea, 0x61, 0x71, 0x09, 0x00, - 0x54, 0x77, 0x42, 0x00, 0x09, 0x00, 0x45, 0x93, 0xe5, 0x09, 0x1b, 0x01, - 0x45, 0x5a, 0x3e, 0x3c, 0x09, 0x00, 0x48, 0xce, 0x7a, 0xf8, 0xa8, 0x00, - 0x58, 0x3d, 0x2a, 0x08, 0x1b, 0x01, 0xb3, 0x21, 0x02, 0x02, 0x00, 0x11, - 0x08, 0xf3, 0x30, 0x01, 0xff, 0x4f, 0x77, 0x6b, 0x06, 0x1b, 0x01, 0x4f, - 0x46, 0x2a, 0x07, 0x1b, 0x41, 0x44, 0x5d, 0x23, 0x4d, 0x09, 0x00, 0x45, - 0xa3, 0x4a, 0x03, 0x09, 0x40, 0x46, 0x0d, 0xd3, 0xfc, 0xa8, 0x00, 0x52, - 0x30, 0x53, 0xf2, 0xa8, 0x40, 0x4a, 0x1f, 0x24, 0x05, 0x1b, 0x41, 0x80, - 0x01, 0xff, 0x48, 0xf1, 0x86, 0xf7, 0xa8, 0x00, 0xb4, 0x06, 0x46, 0x5b, - 0x23, 0xf3, 0xa8, 0x40, 0x44, 0x25, 0x01, 0xf6, 0xa8, 0x00, 0x42, 0x15, - 0x02, 0xf5, 0xa8, 0x40, 0x4a, 0x1f, 0x24, 0x03, 0x1b, 0x41, 0x47, 0xd1, - 0x15, 0x02, 0x09, 0x00, 0x47, 0xf2, 0x86, 0x3d, 0x09, 0x40, 0xe1, 0x05, - 0x09, 0x80, 0xb9, 0x03, 0xa2, 0xa6, 0x03, 0xa3, 0x87, 0x03, 0xa4, 0xe2, - 0x02, 0xe5, 0x0f, 0x09, 0x00, 0x42, 0xe1, 0x07, 0x5e, 0x09, 0x00, 0xa7, - 0xb9, 0x02, 0xa8, 0xac, 0x02, 0xe9, 0x07, 0x09, 0x80, 0xa2, 0x02, 0xaa, - 0x8f, 0x02, 0xab, 0xfb, 0x01, 0xac, 0xe7, 0x01, 0x42, 0x6c, 0x00, 0x2e, - 0x09, 0x80, 0xd9, 0x01, 0xae, 0xba, 0x01, 0xef, 0x13, 0x09, 0x80, 0xaa, - 0x01, 0xb0, 0x9d, 0x01, 0x42, 0xf4, 0x13, 0x58, 0x09, 0x00, 0xb2, 0x84, - 0x01, 0xb3, 0x61, 0xb4, 0x48, 0xf5, 0x09, 0x09, 0x80, 0x36, 0xb6, 0x19, - 0xb9, 0x0d, 0xba, 0x01, 0xff, 0xe1, 0x5b, 0x09, 0x00, 0x42, 0x22, 0x00, - 0x79, 0x09, 0x40, 0xe1, 0x2f, 0x09, 0x00, 0x42, 0x34, 0x22, 0x5f, 0x09, - 0x40, 0xe1, 0x35, 0x09, 0x00, 0x07, 0x9c, 0xbe, 0x01, 0xff, 0xec, 0x0c, - 0x09, 0x80, 0x09, 0xf2, 0x0b, 0x09, 0xc0, 0x00, 0xf2, 0x60, 0x09, 0x40, - 0xec, 0x61, 0x09, 0x40, 0xe5, 0x76, 0x09, 0x00, 0xf5, 0x0a, 0x09, 0xc0, - 0x00, 0xe5, 0x77, 0x09, 0x40, 0xe1, 0x24, 0x09, 0x00, 0x42, 0x22, 0x00, - 0x25, 0x09, 0x00, 0xb4, 0x01, 0xff, 0xe1, 0x1f, 0x09, 0x00, 0x42, 0x22, - 0x00, 0x20, 0x09, 0x40, 0xe1, 0x38, 0x09, 0x00, 0xa8, 0x06, 0x42, 0x15, - 0x06, 0x37, 0x09, 0x40, 0xe1, 0x36, 0x09, 0x00, 0x04, 0x76, 0x33, 0x01, - 0xff, 0xe1, 0x04, 0x09, 0x00, 0xe5, 0x0e, 0x09, 0x00, 0xef, 0x12, 0x09, - 0x40, 0xe1, 0x30, 0x09, 0x00, 0x42, 0x22, 0x00, 0x5d, 0x09, 0x00, 0x42, - 0x71, 0x00, 0x31, 0x09, 0x40, 0xe1, 0x2a, 0x09, 0x00, 0x42, 0x22, 0x00, - 0x2b, 0x09, 0x40, 0xe5, 0x73, 0x09, 0x00, 0x42, 0x17, 0x50, 0x74, 0x09, - 0x40, 0xe1, 0x28, 0x09, 0x00, 0x42, 0x24, 0x02, 0x19, 0x09, 0x00, 0xae, - 0x06, 0x42, 0x34, 0x22, 0x1e, 0x09, 0x40, 0xe1, 0x23, 0x09, 0x00, 0x42, - 0xff, 0x04, 0x29, 0x09, 0x40, 0x49, 0x9a, 0xbc, 0x78, 0x09, 0x40, 0xe1, - 0x32, 0x09, 0x00, 0xac, 0x01, 0xff, 0xe1, 0x33, 0x09, 0x00, 0x42, 0x74, - 0x00, 0x34, 0x09, 0x40, 0xe1, 0x15, 0x09, 0x00, 0xa8, 0x01, 0xff, 0xe1, - 0x16, 0x09, 0x00, 0x42, 0x22, 0x00, 0x59, 0x09, 0x40, 0xe1, 0x1c, 0x09, - 0x00, 0x42, 0x22, 0x00, 0x1d, 0x09, 0x00, 0x42, 0xbd, 0x26, 0x7c, 0x09, - 0x40, 0xe9, 0x08, 0x09, 0x40, 0xe1, 0x39, 0x09, 0x00, 0x47, 0xcc, 0xcd, - 0x7a, 0x09, 0x40, 0xe1, 0x17, 0x09, 0x00, 0x42, 0x24, 0x02, 0x7b, 0x09, - 0x00, 0xa8, 0x06, 0x4b, 0x2e, 0x28, 0x7d, 0x09, 0x40, 0xe1, 0x18, 0x09, - 0x00, 0x42, 0x22, 0x00, 0x5a, 0x09, 0x40, 0xe1, 0x26, 0x09, 0x00, 0xa4, - 0x06, 0x42, 0x22, 0x00, 0x27, 0x09, 0x40, 0xe1, 0x21, 0x09, 0x00, 0xa4, - 0x06, 0x42, 0x22, 0x00, 0x22, 0x09, 0x40, 0xe1, 0x7e, 0x09, 0x00, 0x42, - 0x22, 0x00, 0x5c, 0x09, 0x40, 0xe1, 0x1a, 0x09, 0x80, 0x06, 0x42, 0x22, - 0x00, 0x1b, 0x09, 0x40, 0x05, 0xbc, 0x5f, 0x01, 0xff, 0xe1, 0x72, 0x09, - 0x00, 0xe5, 0x0d, 0x09, 0x00, 0xef, 0x11, 0x09, 0x40, 0xe1, 0x2c, 0x09, - 0x00, 0x42, 0x16, 0x00, 0x7f, 0x09, 0x00, 0x42, 0x22, 0x00, 0x2d, 0x09, - 0x40, 0xe1, 0x06, 0x09, 0x00, 0xe9, 0x10, 0x09, 0x00, 0xf5, 0x14, 0x09, - 0x00, 0xf7, 0x75, 0x09, 0x00, 0xf9, 0xfe, 0xa8, 0x40, 0x45, 0xb8, 0x00, - 0x00, 0x1b, 0x81, 0x06, 0x46, 0x27, 0x05, 0xfb, 0xa8, 0x40, 0x50, 0x3a, - 0x5f, 0x01, 0x1b, 0x41, 0x49, 0x1f, 0x9a, 0xf9, 0xa8, 0x00, 0x4b, 0x8e, - 0x22, 0x53, 0x09, 0x40, 0x44, 0xd1, 0x1f, 0x64, 0x09, 0x00, 0x05, 0xc5, - 0x06, 0x06, 0x4b, 0xd8, 0x9e, 0x65, 0x09, 0x40, 0x45, 0xc3, 0x0a, 0x6e, - 0x09, 0x00, 0xa6, 0x2e, 0x44, 0x46, 0x2a, 0x6f, 0x09, 0x00, 0x43, 0xbf, - 0x0a, 0x67, 0x09, 0x00, 0xb3, 0x14, 0xb4, 0x06, 0x44, 0xa1, 0x1d, 0x66, - 0x09, 0x40, 0x44, 0x25, 0x01, 0x69, 0x09, 0x00, 0x42, 0x15, 0x02, 0x68, - 0x09, 0x40, 0x44, 0x27, 0x1d, 0x6d, 0x09, 0x00, 0x42, 0x60, 0x25, 0x6c, - 0x09, 0x40, 0x43, 0xa7, 0x05, 0x6b, 0x09, 0x00, 0x43, 0xcb, 0x06, 0x6a, - 0x09, 0x40, 0x50, 0x94, 0x56, 0x70, 0x09, 0x00, 0x4b, 0x3e, 0x8a, 0x54, - 0x09, 0x40, 0x4c, 0x75, 0x8b, 0x0b, 0x26, 0x00, 0x02, 0x33, 0x00, 0x11, - 0x05, 0xd0, 0xe4, 0x01, 0xff, 0x48, 0x53, 0x4a, 0xa5, 0xf5, 0x01, 0x46, - 0x2c, 0xde, 0xd4, 0xf5, 0x41, 0x03, 0x19, 0x09, 0x0b, 0xf4, 0xdc, 0xf3, - 0xc1, 0x00, 0x47, 0x76, 0xca, 0xdd, 0xf3, 0x41, 0x0f, 0xb9, 0x05, 0xdd, - 0x01, 0x0d, 0x4b, 0x08, 0x01, 0xff, 0x42, 0x9e, 0x10, 0x34, 0x04, 0x01, - 0x43, 0x3c, 0xb4, 0x3a, 0x04, 0x01, 0x44, 0xf8, 0x49, 0x3d, 0x04, 0x01, - 0x43, 0xca, 0x7f, 0x3c, 0x04, 0x01, 0xa5, 0x91, 0x01, 0x43, 0x29, 0x9a, - 0x40, 0x04, 0x01, 0xe8, 0x38, 0x04, 0x01, 0x43, 0x6e, 0x37, 0x3e, 0x04, - 0x01, 0x43, 0xa2, 0x7d, 0x3f, 0x04, 0x01, 0x05, 0x68, 0x33, 0x5d, 0xaf, - 0x53, 0x43, 0x0f, 0x7b, 0x39, 0x04, 0x01, 0x06, 0x61, 0x36, 0x2f, 0xb4, - 0x21, 0x43, 0xd2, 0x06, 0x42, 0x04, 0x01, 0x42, 0x45, 0x07, 0x36, 0x04, - 0x01, 0x43, 0x91, 0xa7, 0x37, 0x04, 0x01, 0xba, 0x01, 0xff, 0x42, 0x27, - 0x01, 0x46, 0x04, 0x01, 0x43, 0xdd, 0x12, 0x48, 0x04, 0x41, 0x42, 0x27, - 0x01, 0x3b, 0x04, 0x01, 0x43, 0xdd, 0x12, 0x44, 0x04, 0x41, 0xe1, 0x30, - 0x04, 0x81, 0x11, 0xe5, 0x2f, 0x04, 0x01, 0xe9, 0x2e, 0x04, 0x01, 0xef, - 0x32, 0x04, 0xc1, 0x00, 0xef, 0x33, 0x04, 0x41, 0xe8, 0x31, 0x04, 0x41, - 0xe9, 0x4e, 0x04, 0x01, 0xf7, 0x35, 0x04, 0x41, 0xe1, 0x2a, 0x04, 0x81, - 0x11, 0xe5, 0x29, 0x04, 0x01, 0xe9, 0x28, 0x04, 0x01, 0xef, 0x2c, 0x04, - 0xc1, 0x00, 0xef, 0x2d, 0x04, 0x41, 0xe8, 0x2b, 0x04, 0x41, 0xe6, 0x41, - 0x04, 0x01, 0xec, 0x4a, 0x04, 0x01, 0xed, 0x4b, 0x04, 0x01, 0xee, 0x4c, - 0x04, 0x81, 0x17, 0xf2, 0x49, 0x04, 0x01, 0xf3, 0x45, 0x04, 0x81, 0x0a, - 0x42, 0x53, 0x00, 0x43, 0x04, 0x01, 0xf7, 0x4f, 0x04, 0x41, 0xe8, 0x47, - 0x04, 0x41, 0xe7, 0x4d, 0x04, 0x41, 0x42, 0x9e, 0x10, 0x0c, 0x04, 0x01, - 0x43, 0x3c, 0xb4, 0x12, 0x04, 0x01, 0x44, 0xf8, 0x49, 0x15, 0x04, 0x01, - 0x43, 0xca, 0x7f, 0x14, 0x04, 0x01, 0xa5, 0x91, 0x01, 0x43, 0x29, 0x9a, - 0x18, 0x04, 0x01, 0xe8, 0x10, 0x04, 0x01, 0x43, 0x6e, 0x37, 0x16, 0x04, - 0x01, 0x43, 0xa2, 0x7d, 0x17, 0x04, 0x01, 0x05, 0x68, 0x33, 0x5d, 0xaf, - 0x53, 0x43, 0x0f, 0x7b, 0x11, 0x04, 0x01, 0x06, 0x61, 0x36, 0x2f, 0xb4, - 0x21, 0x43, 0xd2, 0x06, 0x1a, 0x04, 0x01, 0x42, 0x45, 0x07, 0x0e, 0x04, - 0x01, 0x43, 0x91, 0xa7, 0x0f, 0x04, 0x01, 0xba, 0x01, 0xff, 0x42, 0x27, - 0x01, 0x1e, 0x04, 0x01, 0x43, 0xdd, 0x12, 0x20, 0x04, 0x41, 0x42, 0x27, - 0x01, 0x13, 0x04, 0x01, 0x43, 0xdd, 0x12, 0x1c, 0x04, 0x41, 0xe1, 0x08, - 0x04, 0x81, 0x11, 0xe5, 0x07, 0x04, 0x01, 0xe9, 0x06, 0x04, 0x01, 0xef, - 0x0a, 0x04, 0xc1, 0x00, 0xef, 0x0b, 0x04, 0x41, 0xe8, 0x09, 0x04, 0x41, - 0xe9, 0x26, 0x04, 0x01, 0xf7, 0x0d, 0x04, 0x41, 0xe1, 0x02, 0x04, 0x81, - 0x11, 0xe5, 0x01, 0x04, 0x01, 0xe9, 0x00, 0x04, 0x01, 0xef, 0x04, 0x04, - 0xc1, 0x00, 0xef, 0x05, 0x04, 0x41, 0xe8, 0x03, 0x04, 0x41, 0xe6, 0x19, - 0x04, 0x01, 0xec, 0x22, 0x04, 0x01, 0xed, 0x23, 0x04, 0x01, 0xee, 0x24, - 0x04, 0x81, 0x17, 0xf2, 0x21, 0x04, 0x01, 0xf3, 0x1d, 0x04, 0x81, 0x0a, - 0x42, 0x53, 0x00, 0x1b, 0x04, 0x01, 0xf7, 0x27, 0x04, 0x41, 0xe8, 0x1f, - 0x04, 0x41, 0xe7, 0x25, 0x04, 0x41, 0x03, 0x16, 0x04, 0x81, 0x01, 0x14, - 0xf7, 0x44, 0x01, 0xff, 0x53, 0xc3, 0x47, 0xc9, 0x23, 0x80, 0x5e, 0x51, - 0x48, 0x5d, 0xca, 0x23, 0x80, 0x40, 0x09, 0x32, 0x00, 0x01, 0xff, 0x04, - 0x1a, 0x00, 0x11, 0x05, 0x51, 0x00, 0x01, 0xff, 0x46, 0xe7, 0x02, 0xc0, - 0x23, 0x00, 0x48, 0x01, 0x02, 0xc3, 0x23, 0x40, 0x07, 0x4c, 0x0d, 0x16, - 0x04, 0x1e, 0x00, 0x06, 0x44, 0x39, 0x56, 0xc6, 0x23, 0x40, 0x44, 0xc3, - 0x00, 0xcb, 0x23, 0x00, 0x45, 0xc8, 0x00, 0xbe, 0x23, 0x40, 0x44, 0xc3, - 0x00, 0xcc, 0x23, 0x00, 0x45, 0xc8, 0x00, 0xbf, 0x23, 0x40, 0x06, 0x50, - 0x00, 0x01, 0xff, 0x46, 0xe7, 0x02, 0xc2, 0x23, 0x00, 0x48, 0x01, 0x02, - 0xc5, 0x23, 0x00, 0x44, 0x39, 0x56, 0xc8, 0x23, 0x40, 0x06, 0x50, 0x00, - 0x01, 0xff, 0x46, 0xe7, 0x02, 0xc1, 0x23, 0x00, 0x48, 0x01, 0x02, 0xc4, - 0x23, 0x00, 0x44, 0x39, 0x56, 0xc7, 0x23, 0x40, 0x4f, 0x76, 0x6c, 0x45, - 0xcc, 0x01, 0x4d, 0x72, 0x88, 0x44, 0xcc, 0x41, 0x43, 0x36, 0x30, 0x7f, - 0x00, 0x00, 0x4b, 0x9f, 0x9b, 0x9a, 0xf6, 0x01, 0x4b, 0xfe, 0xa0, 0x5c, - 0x22, 0x40, 0x47, 0x08, 0xcd, 0x03, 0x21, 0x00, 0x4a, 0x0b, 0xa8, 0x09, - 0x21, 0x00, 0x44, 0x2f, 0x03, 0xb0, 0x00, 0x40, 0xa9, 0x06, 0x56, 0xc7, - 0x35, 0xdb, 0xf5, 0x41, 0x4a, 0x2f, 0xa7, 0x33, 0xf3, 0x01, 0x04, 0x88, - 0x0f, 0x01, 0xff, 0x4f, 0x68, 0x6b, 0xe8, 0x23, 0x00, 0x54, 0x93, 0x44, - 0x96, 0x23, 0x40, 0x44, 0xf2, 0xd7, 0x20, 0x20, 0x80, 0x53, 0x4a, 0x95, - 0xaa, 0x38, 0x21, 0x00, 0xae, 0x3f, 0x04, 0x95, 0x43, 0x2f, 0x02, 0xa4, - 0x02, 0x06, 0x4e, 0x4d, 0x69, 0x10, 0x00, 0x40, 0x80, 0x17, 0x03, 0x05, - 0x00, 0x01, 0xff, 0x48, 0xab, 0x88, 0x4d, 0xfe, 0x00, 0x48, 0xb8, 0x88, - 0x49, 0xfe, 0x00, 0x60, 0x68, 0x06, 0x9f, 0x27, 0x40, 0x46, 0xeb, 0x07, - 0xa8, 0xf4, 0x01, 0x50, 0x5a, 0x67, 0x43, 0x2e, 0x40, 0x44, 0x21, 0x04, - 0x93, 0x25, 0x00, 0x49, 0xcc, 0xbd, 0x76, 0xf5, 0x41, 0x43, 0x75, 0x1f, - 0x83, 0xf4, 0x01, 0x42, 0xb7, 0x13, 0x61, 0xf3, 0x41, 0x80, 0x01, 0xff, - 0x45, 0x7e, 0xa3, 0xe1, 0xf5, 0x01, 0x05, 0x51, 0x00, 0x01, 0xff, 0x4a, - 0x4f, 0xaa, 0x36, 0x2e, 0x00, 0x4b, 0xbf, 0x9f, 0x37, 0x2e, 0x40, 0xa1, - 0x83, 0xad, 0x01, 0xa5, 0xbd, 0xac, 0x01, 0xa8, 0xbd, 0x9b, 0x01, 0xa9, - 0x8a, 0x8c, 0x01, 0x03, 0x42, 0x32, 0xd2, 0x83, 0x01, 0xac, 0xd5, 0x7f, - 0xaf, 0x84, 0x5c, 0xb2, 0xcb, 0x5a, 0xb5, 0xaf, 0x1b, 0xb9, 0x01, 0xff, - 0x45, 0x4b, 0xe2, 0x00, 0xf3, 0x01, 0x4a, 0xd1, 0xaa, 0x2d, 0x23, 0x00, - 0x02, 0x90, 0x0c, 0xe0, 0x15, 0x07, 0x3b, 0xca, 0x01, 0xff, 0x09, 0xb9, - 0x05, 0xf2, 0x0b, 0x46, 0xa4, 0x4e, 0x7e, 0xa6, 0x00, 0x07, 0xc1, 0x05, - 0xd5, 0x0b, 0x47, 0xc3, 0xd1, 0x7f, 0xa6, 0x00, 0xb3, 0x06, 0x4e, 0x9a, - 0x7b, 0x82, 0x04, 0x40, 0x06, 0x4c, 0x08, 0x99, 0x01, 0x16, 0xe5, 0x36, - 0x01, 0xff, 0xe1, 0x51, 0xe0, 0x01, 0xa2, 0x83, 0x01, 0x43, 0x1e, 0x14, - 0x63, 0xe0, 0x01, 0xa4, 0x6a, 0xa5, 0x5c, 0x43, 0xdd, 0x50, 0x54, 0xe0, - 0x81, 0x4f, 0x42, 0x22, 0x00, 0x61, 0xe0, 0x81, 0x42, 0xe9, 0x59, 0xe0, - 0x81, 0x39, 0x42, 0x1b, 0x02, 0x5a, 0xe0, 0x01, 0xef, 0x5c, 0xe0, 0x01, - 0x42, 0x6f, 0x02, 0x5d, 0xe0, 0x01, 0x43, 0xa4, 0x02, 0x64, 0xe0, 0x01, - 0x43, 0x6a, 0x5c, 0x62, 0xe0, 0x01, 0xf5, 0x5f, 0xe0, 0x01, 0x42, 0x32, - 0x00, 0x53, 0xe0, 0x01, 0x44, 0x35, 0xd4, 0x66, 0xe0, 0x01, 0xba, 0x01, - 0xff, 0xe5, 0x58, 0xe0, 0x01, 0x42, 0xb0, 0x01, 0x57, 0xe0, 0x41, 0xe5, - 0x56, 0xe0, 0x41, 0x47, 0x4a, 0x91, 0x65, 0xe0, 0x41, 0x4c, 0xdd, 0x89, - 0x67, 0xe0, 0x41, 0xe6, 0x60, 0xe0, 0x01, 0xec, 0x5b, 0xe0, 0x01, 0xf3, - 0x5e, 0xe0, 0x41, 0xe5, 0x55, 0xe0, 0x01, 0xba, 0x01, 0xff, 0xe5, 0x69, - 0xe0, 0x01, 0x42, 0xb0, 0x01, 0x6a, 0xe0, 0x41, 0xe5, 0x52, 0xe0, 0x01, - 0x57, 0x59, 0x08, 0x68, 0xe0, 0x41, 0x06, 0xc2, 0x05, 0x17, 0x08, 0xfb, - 0x1e, 0x01, 0xff, 0x44, 0xa2, 0xeb, 0xd5, 0x04, 0x00, 0x46, 0x5c, 0xd8, - 0xa5, 0x04, 0x00, 0x46, 0x6c, 0xdd, 0xb5, 0x04, 0x40, 0xe1, 0x30, 0x04, - 0x80, 0xd5, 0x09, 0xa2, 0x99, 0x09, 0xa3, 0xe4, 0x08, 0xa4, 0x8f, 0x08, - 0xe5, 0x4d, 0x04, 0x80, 0x94, 0x07, 0x44, 0x96, 0xec, 0x73, 0x04, 0x00, - 0xa7, 0xda, 0x06, 0xa8, 0xb0, 0x06, 0xe9, 0x38, 0x04, 0x80, 0xc0, 0x05, - 0x42, 0xde, 0x1f, 0x58, 0x04, 0x00, 0xab, 0xc7, 0x04, 0xac, 0xac, 0x04, - 0x04, 0x52, 0x18, 0x9b, 0x04, 0xae, 0x86, 0x04, 0xef, 0x3e, 0x04, 0x80, - 0xe9, 0x03, 0xb0, 0xc4, 0x03, 0x42, 0xf4, 0x13, 0x1b, 0x05, 0x00, 0xb2, - 0x88, 0x03, 0xb3, 0x99, 0x02, 0xb4, 0xba, 0x01, 0xf5, 0x43, 0x04, 0x80, - 0x8b, 0x01, 0x42, 0x32, 0x00, 0x32, 0x04, 0x00, 0xb7, 0x79, 0xb9, 0x46, - 0xba, 0x01, 0xff, 0xe5, 0x37, 0x04, 0x80, 0x28, 0xa8, 0x01, 0xff, 0xe5, - 0x36, 0x04, 0x80, 0x06, 0x42, 0x15, 0x01, 0x85, 0xa6, 0x40, 0x06, 0x50, - 0x00, 0x01, 0xff, 0x45, 0xcb, 0x22, 0xc2, 0x04, 0x00, 0xa4, 0x01, 0xff, - 0x48, 0x95, 0x2a, 0x97, 0x04, 0x00, 0x48, 0x30, 0x23, 0xdd, 0x04, 0x40, - 0x07, 0x57, 0x07, 0x06, 0x44, 0xf6, 0xed, 0x41, 0xa6, 0x40, 0x48, 0x95, - 0x2a, 0x99, 0x04, 0x00, 0x48, 0x30, 0x23, 0xdf, 0x04, 0x40, 0xe1, 0x4f, - 0x04, 0x80, 0x24, 0x43, 0xfb, 0x2a, 0x4b, 0x04, 0x80, 0x0c, 0xe9, 0x57, - 0x04, 0x00, 0xee, 0x5f, 0xa6, 0x00, 0xf5, 0x4e, 0x04, 0x40, 0x06, 0x50, - 0x00, 0x01, 0xff, 0x48, 0xf8, 0x73, 0x51, 0xa6, 0x00, 0x49, 0x2f, 0x23, - 0xf9, 0x04, 0x40, 0xe5, 0x19, 0x05, 0x00, 0xf4, 0x63, 0x04, 0x40, 0xe5, - 0x1d, 0x05, 0x00, 0x46, 0xca, 0xd9, 0x83, 0x1c, 0x40, 0x06, 0x50, 0x00, - 0x11, 0xeb, 0x79, 0x04, 0x80, 0x06, 0x4b, 0xba, 0x9d, 0x88, 0x1c, 0x40, - 0x4a, 0xe2, 0x9b, 0x54, 0x04, 0x40, 0xa4, 0x06, 0x46, 0x04, 0x6f, 0xef, - 0x04, 0x40, 0x48, 0x30, 0x23, 0xf1, 0x04, 0x00, 0x4b, 0xcd, 0x9e, 0xf3, - 0x04, 0x40, 0x04, 0x0e, 0x07, 0x46, 0x43, 0x1e, 0x14, 0x93, 0xa6, 0x00, - 0xe5, 0x42, 0x04, 0x80, 0x2a, 0x4e, 0xe6, 0x76, 0x85, 0x1c, 0x00, 0x42, - 0xde, 0x1f, 0x8a, 0x1c, 0x00, 0xb3, 0x06, 0x42, 0x15, 0x01, 0x8d, 0xa6, - 0x40, 0xe5, 0x46, 0x04, 0x00, 0x42, 0xb0, 0x01, 0x5b, 0x04, 0x00, 0x42, - 0x1b, 0x03, 0x91, 0xa6, 0x00, 0x42, 0x15, 0x01, 0x8f, 0xa6, 0x40, 0x06, - 0x50, 0x00, 0x01, 0xff, 0x49, 0x94, 0x2a, 0xad, 0x04, 0x00, 0x4b, 0x6d, - 0x9d, 0x8b, 0xa6, 0x40, 0x49, 0x1e, 0xb7, 0x86, 0x1c, 0x00, 0x42, 0x77, - 0x00, 0x84, 0x1c, 0x00, 0x43, 0xcd, 0x31, 0x87, 0x1c, 0x40, 0x44, 0x54, - 0x7a, 0xd9, 0x04, 0x80, 0x5f, 0x4c, 0xd1, 0x8c, 0x8d, 0x04, 0x00, 0xa8, - 0x27, 0x04, 0x69, 0x6f, 0x0d, 0x49, 0x72, 0xbd, 0xaf, 0x04, 0xc0, 0x00, - 0x4c, 0x39, 0x28, 0xb1, 0x04, 0x40, 0x42, 0x04, 0x00, 0x63, 0xa6, 0x00, - 0xa5, 0x06, 0x44, 0x2f, 0x03, 0x4c, 0x04, 0x40, 0xec, 0x65, 0xa6, 0x00, - 0xed, 0x67, 0xa6, 0x40, 0xe1, 0x48, 0x04, 0x00, 0x43, 0xef, 0x1f, 0x49, - 0x04, 0x00, 0x42, 0x22, 0x00, 0xbb, 0x04, 0x80, 0x19, 0x04, 0x76, 0x33, - 0x06, 0x42, 0x15, 0x01, 0x97, 0xa6, 0x40, 0xe9, 0x39, 0x04, 0x80, 0x04, - 0xf5, 0x5e, 0x04, 0x40, 0x4a, 0x5f, 0xa4, 0x8b, 0x04, 0x40, 0x4f, 0x6b, - 0x68, 0x27, 0x05, 0x40, 0x4f, 0x7a, 0x68, 0xdb, 0x04, 0x40, 0x08, 0x8f, - 0x14, 0x17, 0x42, 0x22, 0x00, 0x17, 0x05, 0x00, 0x04, 0xf2, 0x0a, 0x01, - 0xff, 0x46, 0xe7, 0xac, 0x7b, 0x04, 0x00, 0x45, 0xbd, 0x16, 0x80, 0x1c, - 0x40, 0x43, 0xd5, 0xf0, 0x45, 0xa6, 0x00, 0x43, 0x6a, 0x5c, 0x61, 0xa6, - 0x00, 0x42, 0xe1, 0x4c, 0x55, 0xa6, 0x00, 0x42, 0xfc, 0x09, 0x11, 0x05, - 0x40, 0x47, 0x23, 0xc7, 0xcf, 0x04, 0x00, 0xe5, 0x3f, 0x04, 0x80, 0x06, - 0x42, 0x2f, 0x03, 0x71, 0x04, 0x40, 0x06, 0x50, 0x00, 0x01, 0xff, 0x49, - 0x94, 0x2a, 0x25, 0x05, 0x00, 0x4b, 0x6d, 0x9d, 0xa7, 0x04, 0x40, 0x4f, - 0x7a, 0x68, 0xe7, 0x04, 0x00, 0x44, 0x6b, 0x7a, 0x61, 0x04, 0x80, 0x04, - 0xf4, 0x7f, 0x04, 0x40, 0x4b, 0x40, 0x96, 0x7d, 0x04, 0x40, 0x47, 0xba, - 0x03, 0x82, 0x1c, 0x00, 0x4a, 0xed, 0xa7, 0x4f, 0xa6, 0x00, 0x42, 0xde, - 0x1f, 0x5a, 0x04, 0x40, 0x47, 0x82, 0x84, 0x69, 0xa6, 0x00, 0x48, 0x71, - 0x90, 0x4b, 0xa6, 0x40, 0x42, 0x22, 0x00, 0x15, 0x05, 0x00, 0x49, 0xcd, - 0x57, 0x67, 0x04, 0x00, 0x42, 0xde, 0x1f, 0x59, 0x04, 0x00, 0x4d, 0x3f, - 0x85, 0x81, 0x1c, 0x40, 0xe1, 0x3a, 0x04, 0x80, 0x4e, 0x4d, 0xf2, 0x81, - 0xcc, 0x04, 0x00, 0x42, 0xde, 0x1f, 0x5c, 0x04, 0x00, 0xaf, 0x06, 0x42, - 0x2f, 0x03, 0x6f, 0x04, 0x40, 0x03, 0xdc, 0xce, 0x06, 0x43, 0x31, 0x7f, - 0x81, 0x04, 0x40, 0xa4, 0x1e, 0x43, 0xdd, 0x1f, 0x09, 0x05, 0x00, 0x43, - 0x0f, 0x83, 0x0b, 0x05, 0x00, 0x43, 0xb4, 0x9b, 0x0d, 0x05, 0x00, 0x43, - 0x53, 0xf1, 0x0f, 0x05, 0x00, 0x43, 0x8f, 0xf1, 0x05, 0x05, 0x40, 0xe5, - 0x01, 0x05, 0x00, 0x42, 0xde, 0x1f, 0x03, 0x05, 0x00, 0x43, 0x8f, 0xf1, - 0x07, 0x05, 0x40, 0x06, 0x50, 0x00, 0x01, 0xff, 0x49, 0x94, 0x2a, 0x9b, - 0x04, 0x00, 0x44, 0x5d, 0x0e, 0xc4, 0x04, 0x00, 0x46, 0x27, 0x05, 0x9f, - 0x04, 0x00, 0x4f, 0xcc, 0x32, 0x9d, 0x04, 0x40, 0x06, 0x50, 0x00, 0x54, - 0xe5, 0x35, 0x04, 0x80, 0x3e, 0xef, 0x51, 0x04, 0x80, 0x0d, 0x46, 0x80, - 0xde, 0x75, 0x04, 0xc0, 0x00, 0x59, 0x80, 0x22, 0x77, 0x04, 0x40, 0xb4, - 0x01, 0xff, 0xe1, 0x47, 0xa6, 0x00, 0x06, 0xc7, 0x02, 0x01, 0xff, 0xe1, - 0x57, 0xa6, 0x00, 0x47, 0xb4, 0xcc, 0x6d, 0x04, 0x00, 0x51, 0xc5, 0x57, - 0x5d, 0xa6, 0x00, 0xe5, 0x65, 0x04, 0x00, 0x4a, 0xcc, 0x57, 0x69, 0x04, - 0x00, 0x43, 0xcd, 0x31, 0x53, 0xa6, 0x40, 0x06, 0x50, 0x00, 0x01, 0xff, - 0x45, 0xcb, 0x22, 0xd7, 0x04, 0x00, 0x45, 0x8d, 0x22, 0x50, 0x04, 0x40, - 0x49, 0x2f, 0x23, 0xe5, 0x04, 0x00, 0x45, 0x8d, 0x22, 0x5d, 0x04, 0x00, - 0x46, 0x04, 0x6f, 0xe3, 0x04, 0x40, 0xe1, 0x45, 0x04, 0x80, 0x06, 0x42, - 0x15, 0x01, 0x95, 0xa6, 0x40, 0x06, 0x50, 0x00, 0x06, 0x47, 0x4a, 0x91, - 0x4a, 0x04, 0x40, 0x49, 0x94, 0x2a, 0xb3, 0x04, 0x00, 0x44, 0x5d, 0x0e, - 0xfd, 0x04, 0x00, 0x46, 0x27, 0x05, 0xff, 0x04, 0x40, 0x42, 0xb0, 0x01, - 0x33, 0x04, 0x80, 0x06, 0x42, 0xde, 0x1f, 0x53, 0x04, 0x40, 0x06, 0x50, - 0x00, 0x01, 0xff, 0x49, 0x94, 0x2a, 0xf7, 0x04, 0x00, 0x4b, 0x6d, 0x9d, - 0x95, 0x04, 0x00, 0x46, 0x27, 0x05, 0x93, 0x04, 0x80, 0x06, 0x46, 0x64, - 0x67, 0x91, 0x04, 0x40, 0x49, 0x38, 0x23, 0xfb, 0x04, 0x40, 0x4f, 0x7a, - 0x68, 0xed, 0x04, 0x00, 0xe6, 0x44, 0x04, 0x00, 0xec, 0x3b, 0x04, 0x80, - 0x49, 0xed, 0x3c, 0x04, 0x80, 0x3e, 0xee, 0x3d, 0x04, 0x80, 0x16, 0xf2, - 0x40, 0x04, 0x80, 0x0b, 0xf3, 0x41, 0x04, 0xc0, 0x00, 0x4f, 0x6b, 0x68, - 0xab, 0x04, 0x40, 0x4a, 0x69, 0xa4, 0x8f, 0x04, 0x40, 0x06, 0x50, 0x00, - 0x01, 0xff, 0x49, 0x94, 0x2a, 0xa3, 0x04, 0x00, 0x44, 0x5d, 0x0e, 0xc8, - 0x04, 0x00, 0x49, 0x68, 0x56, 0x29, 0x05, 0x00, 0x4b, 0x6d, 0x9d, 0x23, - 0x05, 0x00, 0x44, 0x23, 0x17, 0xca, 0x04, 0x40, 0x4a, 0x5f, 0xa4, 0xce, - 0x04, 0x40, 0x06, 0x50, 0x00, 0x01, 0xff, 0x49, 0x94, 0x2a, 0x2f, 0x05, - 0x00, 0x44, 0x5d, 0x0e, 0x13, 0x05, 0x00, 0x4b, 0x6d, 0x9d, 0x21, 0x05, - 0x00, 0x44, 0x23, 0x17, 0xc6, 0x04, 0x40, 0x43, 0x1e, 0x14, 0x2d, 0x05, - 0x00, 0xe5, 0x34, 0x04, 0x00, 0x42, 0xde, 0x1f, 0x52, 0x04, 0x80, 0x3b, - 0x06, 0x3c, 0x01, 0x2d, 0x42, 0x15, 0x01, 0x81, 0xa6, 0x00, 0xba, 0x01, - 0xff, 0xe5, 0x55, 0x04, 0x80, 0x19, 0x42, 0xb0, 0x01, 0x5f, 0x04, 0x00, - 0x42, 0x15, 0x01, 0x83, 0xa6, 0x00, 0xba, 0x01, 0xff, 0xe5, 0x89, 0xa6, - 0x00, 0x42, 0xb0, 0x01, 0x2b, 0x05, 0x40, 0x42, 0x13, 0x01, 0x43, 0xa6, - 0x40, 0x4b, 0x83, 0x9d, 0x6d, 0xa6, 0x00, 0xef, 0x99, 0xa6, 0x40, 0x42, - 0x29, 0x0f, 0x49, 0xa6, 0x40, 0x43, 0x1e, 0x14, 0x87, 0xa6, 0x00, 0x42, - 0xb0, 0x01, 0x47, 0x04, 0x80, 0x0c, 0x50, 0xc6, 0x57, 0x59, 0xa6, 0x00, - 0x48, 0xd2, 0xc7, 0x9b, 0xa6, 0x40, 0x06, 0x50, 0x00, 0x01, 0xff, 0xa4, - 0x06, 0x4f, 0xcc, 0x32, 0xb9, 0x04, 0x40, 0x48, 0x95, 0x2a, 0xb7, 0x04, - 0x00, 0x48, 0x30, 0x23, 0xf5, 0x04, 0x40, 0xa1, 0x24, 0xe5, 0x31, 0x04, - 0x00, 0xa9, 0x12, 0x4a, 0x8b, 0xaa, 0x5b, 0xa6, 0x00, 0x4a, 0x2d, 0xae, - 0x4d, 0xa6, 0x00, 0x57, 0x59, 0x08, 0x56, 0x04, 0x40, 0x45, 0xb6, 0xcc, - 0x6b, 0x04, 0x00, 0x49, 0x85, 0x9d, 0x6b, 0xa6, 0x40, 0x46, 0x45, 0xcc, - 0xe9, 0x04, 0x80, 0x06, 0x48, 0x22, 0xc8, 0xa1, 0x04, 0x40, 0x4f, 0x7a, - 0x68, 0xeb, 0x04, 0x40, 0x06, 0x50, 0x00, 0x23, 0x09, 0x69, 0xb4, 0x06, - 0x47, 0x03, 0xd0, 0x1f, 0x05, 0x40, 0x43, 0x1e, 0x14, 0xbd, 0x04, 0x80, - 0x0c, 0x43, 0xd5, 0xf0, 0xe1, 0x04, 0x00, 0x42, 0x22, 0x00, 0xa9, 0x04, - 0x40, 0x4f, 0x6b, 0x68, 0xbf, 0x04, 0x40, 0x45, 0xcb, 0x22, 0xd1, 0x04, - 0x00, 0x49, 0x2f, 0x23, 0xd3, 0x04, 0x40, 0x4d, 0x7c, 0x84, 0x6e, 0xa6, - 0x00, 0x48, 0x22, 0xc7, 0xc0, 0x04, 0x00, 0x50, 0xca, 0x65, 0x2b, 0x1d, - 0x40, 0x06, 0xc2, 0x05, 0x17, 0x08, 0xfb, 0x1e, 0x01, 0xff, 0x44, 0xa2, - 0xeb, 0xd4, 0x04, 0x00, 0x46, 0x5c, 0xd8, 0xa4, 0x04, 0x00, 0x46, 0x6c, - 0xdd, 0xb4, 0x04, 0x40, 0xe1, 0x10, 0x04, 0x80, 0x90, 0x09, 0xa2, 0xd4, - 0x08, 0xa3, 0x9f, 0x08, 0xa4, 0xca, 0x07, 0xe5, 0x2d, 0x04, 0x80, 0xcf, - 0x06, 0x44, 0x96, 0xec, 0x72, 0x04, 0x00, 0xa7, 0x95, 0x06, 0xa8, 0xeb, - 0x05, 0xe9, 0x18, 0x04, 0x80, 0xfb, 0x04, 0x42, 0xde, 0x1f, 0x08, 0x04, - 0x00, 0xab, 0x82, 0x04, 0xac, 0xed, 0x03, 0x04, 0x52, 0x18, 0xdc, 0x03, - 0xae, 0xcd, 0x03, 0xef, 0x1e, 0x04, 0x80, 0xb0, 0x03, 0xb0, 0x91, 0x03, - 0x42, 0xf4, 0x13, 0x1a, 0x05, 0x00, 0xb2, 0xe0, 0x02, 0xb3, 0xf1, 0x01, - 0xb4, 0xae, 0x01, 0xf5, 0x23, 0x04, 0x80, 0x85, 0x01, 0x42, 0x32, 0x00, - 0x12, 0x04, 0x00, 0x42, 0x15, 0x01, 0x1c, 0x05, 0x00, 0xb9, 0x46, 0xba, - 0x01, 0xff, 0xe5, 0x17, 0x04, 0x80, 0x28, 0xa8, 0x01, 0xff, 0xe5, 0x16, - 0x04, 0x80, 0x06, 0x42, 0x15, 0x01, 0x84, 0xa6, 0x40, 0x06, 0x50, 0x00, - 0x01, 0xff, 0x45, 0xcb, 0x22, 0xc1, 0x04, 0x00, 0xa4, 0x01, 0xff, 0x48, - 0x95, 0x2a, 0x96, 0x04, 0x00, 0x48, 0x30, 0x23, 0xdc, 0x04, 0x40, 0x07, - 0x57, 0x07, 0x06, 0x44, 0xf6, 0xed, 0x40, 0xa6, 0x40, 0x48, 0x95, 0x2a, - 0x98, 0x04, 0x00, 0x48, 0x30, 0x23, 0xde, 0x04, 0x40, 0xe1, 0x2f, 0x04, - 0x80, 0x24, 0x43, 0xfb, 0x2a, 0x2b, 0x04, 0x80, 0x0c, 0xe9, 0x07, 0x04, - 0x00, 0xee, 0x5e, 0xa6, 0x00, 0xf5, 0x2e, 0x04, 0x40, 0x06, 0x50, 0x00, - 0x01, 0xff, 0x48, 0xf8, 0x73, 0x50, 0xa6, 0x00, 0x49, 0x2f, 0x23, 0xf8, - 0x04, 0x40, 0xe5, 0x18, 0x05, 0x00, 0xf4, 0x62, 0x04, 0x40, 0x06, 0x50, - 0x00, 0x0b, 0xeb, 0x78, 0x04, 0xc0, 0x00, 0x4a, 0xe2, 0x9b, 0x04, 0x04, - 0x40, 0xa4, 0x06, 0x46, 0x04, 0x6f, 0xee, 0x04, 0x40, 0x48, 0x30, 0x23, - 0xf0, 0x04, 0x00, 0x4b, 0xcd, 0x9e, 0xf2, 0x04, 0x40, 0x43, 0x1e, 0x14, - 0x92, 0xa6, 0x00, 0xe5, 0x22, 0x04, 0x80, 0x24, 0x42, 0xde, 0x1f, 0x89, - 0x1c, 0x00, 0xb3, 0x06, 0x42, 0x15, 0x01, 0x8c, 0xa6, 0x40, 0xe5, 0x26, - 0x04, 0x00, 0x42, 0xb0, 0x01, 0x0b, 0x04, 0x00, 0x42, 0x1b, 0x03, 0x90, - 0xa6, 0x00, 0x42, 0x15, 0x01, 0x8e, 0xa6, 0x40, 0x06, 0x50, 0x00, 0x01, - 0xff, 0x49, 0x94, 0x2a, 0xac, 0x04, 0x00, 0x4b, 0x6d, 0x9d, 0x8a, 0xa6, - 0x40, 0x44, 0x54, 0x7a, 0xd8, 0x04, 0x80, 0x5f, 0x4c, 0xd1, 0x8c, 0x8c, - 0x04, 0x00, 0xa8, 0x27, 0x04, 0x69, 0x6f, 0x0d, 0x49, 0x72, 0xbd, 0xae, - 0x04, 0xc0, 0x00, 0x4c, 0x39, 0x28, 0xb0, 0x04, 0x40, 0x42, 0x04, 0x00, - 0x62, 0xa6, 0x00, 0xa5, 0x06, 0x44, 0x2f, 0x03, 0x2c, 0x04, 0x40, 0xec, - 0x64, 0xa6, 0x00, 0xed, 0x66, 0xa6, 0x40, 0xe1, 0x28, 0x04, 0x00, 0x43, - 0xef, 0x1f, 0x29, 0x04, 0x00, 0x42, 0x22, 0x00, 0xba, 0x04, 0x80, 0x19, - 0x04, 0x76, 0x33, 0x06, 0x42, 0x15, 0x01, 0x96, 0xa6, 0x40, 0xe9, 0x19, - 0x04, 0x80, 0x04, 0xf5, 0x0e, 0x04, 0x40, 0x4a, 0x5f, 0xa4, 0x8a, 0x04, - 0x40, 0x4f, 0x6b, 0x68, 0x26, 0x05, 0x40, 0x4f, 0x7a, 0x68, 0xda, 0x04, - 0x40, 0x08, 0x8f, 0x14, 0x0c, 0x42, 0x22, 0x00, 0x16, 0x05, 0x00, 0x4a, - 0xe3, 0xac, 0x7a, 0x04, 0x40, 0x43, 0xd5, 0xf0, 0x44, 0xa6, 0x00, 0x43, - 0x6a, 0x5c, 0x60, 0xa6, 0x00, 0x42, 0xe1, 0x4c, 0x54, 0xa6, 0x00, 0x42, - 0xfc, 0x09, 0x10, 0x05, 0x40, 0xe5, 0x1f, 0x04, 0x80, 0x06, 0x42, 0x2f, - 0x03, 0x70, 0x04, 0x40, 0x06, 0x50, 0x00, 0x01, 0xff, 0x49, 0x94, 0x2a, - 0x24, 0x05, 0x00, 0x4b, 0x6d, 0x9d, 0xa6, 0x04, 0x40, 0x4f, 0x7a, 0x68, - 0xe6, 0x04, 0x00, 0x44, 0x6b, 0x7a, 0x60, 0x04, 0x80, 0x04, 0xf4, 0x7e, - 0x04, 0x40, 0x4b, 0x40, 0x96, 0x7c, 0x04, 0x40, 0x4a, 0xed, 0xa7, 0x4e, - 0xa6, 0x00, 0x42, 0xde, 0x1f, 0x0a, 0x04, 0x40, 0x47, 0x82, 0x84, 0x68, - 0xa6, 0x00, 0x48, 0x71, 0x90, 0x4a, 0xa6, 0x40, 0x42, 0x22, 0x00, 0x14, - 0x05, 0x00, 0x49, 0xcd, 0x57, 0x66, 0x04, 0x00, 0x42, 0xde, 0x1f, 0x09, - 0x04, 0x40, 0xe1, 0x1a, 0x04, 0x80, 0x4e, 0x4d, 0xf2, 0x81, 0xcb, 0x04, - 0x00, 0x42, 0xde, 0x1f, 0x0c, 0x04, 0x00, 0xaf, 0x06, 0x42, 0x2f, 0x03, - 0x6e, 0x04, 0x40, 0x03, 0xdc, 0xce, 0x06, 0x43, 0x31, 0x7f, 0x80, 0x04, - 0x40, 0xa4, 0x1e, 0x43, 0xdd, 0x1f, 0x08, 0x05, 0x00, 0x43, 0x0f, 0x83, - 0x0a, 0x05, 0x00, 0x43, 0xb4, 0x9b, 0x0c, 0x05, 0x00, 0x43, 0x53, 0xf1, - 0x0e, 0x05, 0x00, 0x43, 0x8f, 0xf1, 0x04, 0x05, 0x40, 0xe5, 0x00, 0x05, - 0x00, 0x42, 0xde, 0x1f, 0x02, 0x05, 0x00, 0x43, 0x8f, 0xf1, 0x06, 0x05, - 0x40, 0x06, 0x50, 0x00, 0x01, 0xff, 0x49, 0x94, 0x2a, 0x9a, 0x04, 0x00, - 0x44, 0x5d, 0x0e, 0xc3, 0x04, 0x00, 0x46, 0x27, 0x05, 0x9e, 0x04, 0x00, - 0x4f, 0xcc, 0x32, 0x9c, 0x04, 0x40, 0x06, 0x50, 0x00, 0x54, 0xe5, 0x15, - 0x04, 0x80, 0x3e, 0xef, 0x01, 0x04, 0x80, 0x0d, 0x46, 0x80, 0xde, 0x74, - 0x04, 0xc0, 0x00, 0x59, 0x80, 0x22, 0x76, 0x04, 0x40, 0xb4, 0x01, 0xff, - 0xe1, 0x46, 0xa6, 0x00, 0x06, 0xc7, 0x02, 0x01, 0xff, 0xe1, 0x56, 0xa6, - 0x00, 0x47, 0xb4, 0xcc, 0x6c, 0x04, 0x00, 0x51, 0xc5, 0x57, 0x5c, 0xa6, - 0x00, 0xe5, 0x64, 0x04, 0x00, 0x4a, 0xcc, 0x57, 0x68, 0x04, 0x00, 0x43, - 0xcd, 0x31, 0x52, 0xa6, 0x40, 0x06, 0x50, 0x00, 0x01, 0xff, 0x45, 0xcb, - 0x22, 0xd6, 0x04, 0x00, 0x45, 0x8d, 0x22, 0x00, 0x04, 0x40, 0x49, 0x2f, - 0x23, 0xe4, 0x04, 0x00, 0x45, 0x8d, 0x22, 0x0d, 0x04, 0x00, 0x46, 0x04, - 0x6f, 0xe2, 0x04, 0x40, 0xe1, 0x25, 0x04, 0x80, 0x06, 0x42, 0x15, 0x01, - 0x94, 0xa6, 0x40, 0x06, 0x50, 0x00, 0x06, 0x47, 0x4a, 0x91, 0x2a, 0x04, - 0x40, 0x49, 0x94, 0x2a, 0xb2, 0x04, 0x00, 0x44, 0x5d, 0x0e, 0xfc, 0x04, - 0x00, 0x46, 0x27, 0x05, 0xfe, 0x04, 0x40, 0x42, 0xb0, 0x01, 0x13, 0x04, - 0x80, 0x06, 0x42, 0xde, 0x1f, 0x03, 0x04, 0x40, 0x06, 0x50, 0x00, 0x01, - 0xff, 0x49, 0x94, 0x2a, 0xf6, 0x04, 0x00, 0x4b, 0x6d, 0x9d, 0x94, 0x04, - 0x00, 0x46, 0x27, 0x05, 0x92, 0x04, 0x80, 0x06, 0x46, 0x64, 0x67, 0x90, - 0x04, 0x40, 0x49, 0x38, 0x23, 0xfa, 0x04, 0x40, 0x4f, 0x7a, 0x68, 0xec, - 0x04, 0x00, 0xe6, 0x24, 0x04, 0x00, 0xec, 0x1b, 0x04, 0x80, 0x49, 0xed, - 0x1c, 0x04, 0x80, 0x3e, 0xee, 0x1d, 0x04, 0x80, 0x16, 0xf2, 0x20, 0x04, - 0x80, 0x0b, 0xf3, 0x21, 0x04, 0xc0, 0x00, 0x4f, 0x6b, 0x68, 0xaa, 0x04, - 0x40, 0x4a, 0x69, 0xa4, 0x8e, 0x04, 0x40, 0x06, 0x50, 0x00, 0x01, 0xff, - 0x49, 0x94, 0x2a, 0xa2, 0x04, 0x00, 0x44, 0x5d, 0x0e, 0xc7, 0x04, 0x00, - 0x49, 0x68, 0x56, 0x28, 0x05, 0x00, 0x4b, 0x6d, 0x9d, 0x22, 0x05, 0x00, - 0x44, 0x23, 0x17, 0xc9, 0x04, 0x40, 0x4a, 0x5f, 0xa4, 0xcd, 0x04, 0x40, - 0x06, 0x50, 0x00, 0x01, 0xff, 0x49, 0x94, 0x2a, 0x2e, 0x05, 0x00, 0x44, - 0x5d, 0x0e, 0x12, 0x05, 0x00, 0x4b, 0x6d, 0x9d, 0x20, 0x05, 0x00, 0x44, - 0x23, 0x17, 0xc5, 0x04, 0x40, 0x43, 0x1e, 0x14, 0x2c, 0x05, 0x00, 0xe5, - 0x14, 0x04, 0x00, 0x42, 0xde, 0x1f, 0x02, 0x04, 0x80, 0x3b, 0x06, 0x3c, - 0x01, 0x2d, 0x42, 0x15, 0x01, 0x80, 0xa6, 0x00, 0xba, 0x01, 0xff, 0xe5, - 0x05, 0x04, 0x80, 0x19, 0x42, 0xb0, 0x01, 0x0f, 0x04, 0x00, 0x42, 0x15, - 0x01, 0x82, 0xa6, 0x00, 0xba, 0x01, 0xff, 0xe5, 0x88, 0xa6, 0x00, 0x42, - 0xb0, 0x01, 0x2a, 0x05, 0x40, 0x42, 0x13, 0x01, 0x42, 0xa6, 0x40, 0x4b, - 0x83, 0x9d, 0x6c, 0xa6, 0x00, 0xef, 0x98, 0xa6, 0x40, 0x42, 0x29, 0x0f, - 0x48, 0xa6, 0x40, 0x43, 0x1e, 0x14, 0x86, 0xa6, 0x00, 0x42, 0xb0, 0x01, - 0x27, 0x04, 0x80, 0x0c, 0x50, 0xc6, 0x57, 0x58, 0xa6, 0x00, 0x48, 0xd2, - 0xc7, 0x9a, 0xa6, 0x40, 0x06, 0x50, 0x00, 0x01, 0xff, 0xa4, 0x06, 0x4f, - 0xcc, 0x32, 0xb8, 0x04, 0x40, 0x48, 0x95, 0x2a, 0xb6, 0x04, 0x00, 0x48, - 0x30, 0x23, 0xf4, 0x04, 0x40, 0xa1, 0x24, 0xe5, 0x11, 0x04, 0x00, 0xa9, - 0x12, 0x4a, 0x8b, 0xaa, 0x5a, 0xa6, 0x00, 0x4a, 0x2d, 0xae, 0x4c, 0xa6, - 0x00, 0x57, 0x59, 0x08, 0x06, 0x04, 0x40, 0x45, 0xb6, 0xcc, 0x6a, 0x04, - 0x00, 0x49, 0x85, 0x9d, 0x6a, 0xa6, 0x40, 0x46, 0x45, 0xcc, 0xe8, 0x04, - 0x80, 0x06, 0x48, 0x22, 0xc8, 0xa0, 0x04, 0x40, 0x4f, 0x7a, 0x68, 0xea, - 0x04, 0x40, 0x06, 0x50, 0x00, 0x23, 0x09, 0x69, 0xb4, 0x06, 0x47, 0x03, - 0xd0, 0x1e, 0x05, 0x40, 0x43, 0x1e, 0x14, 0xbc, 0x04, 0x80, 0x0c, 0x43, - 0xd5, 0xf0, 0xe0, 0x04, 0x00, 0x42, 0x22, 0x00, 0xa8, 0x04, 0x40, 0x4f, - 0x6b, 0x68, 0xbe, 0x04, 0x40, 0x45, 0xcb, 0x22, 0xd0, 0x04, 0x00, 0x49, - 0x2f, 0x23, 0xd2, 0x04, 0x40, 0x0d, 0xc2, 0x82, 0xbc, 0x03, 0x10, 0xea, - 0x63, 0x01, 0xff, 0x90, 0x44, 0x91, 0x0d, 0x02, 0x57, 0xf0, 0x01, 0xff, - 0xd1, 0xf1, 0x2f, 0x01, 0xd2, 0xf2, 0x2f, 0x41, 0x90, 0x0f, 0x91, 0x01, - 0xff, 0xd0, 0xee, 0x2f, 0x01, 0xd2, 0xef, 0x2f, 0x01, 0xd4, 0xf0, 0x2f, - 0x41, 0xd0, 0xe5, 0x2f, 0x01, 0xd1, 0xe6, 0x2f, 0x01, 0xd2, 0xe7, 0x2f, - 0x01, 0xd3, 0xe8, 0x2f, 0x01, 0xd4, 0xe9, 0x2f, 0x01, 0xd5, 0xea, 0x2f, - 0x01, 0xd7, 0xeb, 0x2f, 0x01, 0xd8, 0xec, 0x2f, 0x01, 0xd9, 0xed, 0x2f, - 0x41, 0x90, 0xce, 0x02, 0x91, 0xaa, 0x02, 0x92, 0x87, 0x02, 0x93, 0xe4, - 0x01, 0x94, 0xc9, 0x01, 0x95, 0xa2, 0x01, 0x96, 0x7c, 0x97, 0x51, 0x98, - 0x27, 0x99, 0x01, 0xff, 0xd0, 0xdc, 0x2f, 0x01, 0xd1, 0xdd, 0x2f, 0x01, - 0xd2, 0xde, 0x2f, 0x01, 0xd4, 0xdf, 0x2f, 0x01, 0xd5, 0xe0, 0x2f, 0x01, - 0xd6, 0xe1, 0x2f, 0x01, 0xd7, 0xe2, 0x2f, 0x01, 0xd8, 0xe3, 0x2f, 0x01, - 0xd9, 0xe4, 0x2f, 0x41, 0xd0, 0xd2, 0x2f, 0x01, 0xd1, 0xd3, 0x2f, 0x01, - 0xd2, 0xd4, 0x2f, 0x01, 0xd3, 0xd5, 0x2f, 0x01, 0xd4, 0xd6, 0x2f, 0x01, - 0xd5, 0xd7, 0x2f, 0x01, 0xd6, 0xd8, 0x2f, 0x01, 0xd7, 0xd9, 0x2f, 0x01, - 0xd8, 0xda, 0x2f, 0x01, 0xd9, 0xdb, 0x2f, 0x41, 0xd0, 0xc8, 0x2f, 0x01, - 0xd1, 0xc9, 0x2f, 0x01, 0xd2, 0xca, 0x2f, 0x01, 0xd3, 0xcb, 0x2f, 0x01, - 0xd4, 0xcc, 0x2f, 0x01, 0xd5, 0xcd, 0x2f, 0x81, 0x0c, 0xd6, 0xcf, 0x2f, - 0x01, 0xd8, 0xd0, 0x2f, 0x01, 0xd9, 0xd1, 0x2f, 0x41, 0xe2, 0xce, 0x2f, - 0x41, 0xd0, 0xbf, 0x2f, 0x01, 0xd1, 0xc0, 0x2f, 0x01, 0xd2, 0xc1, 0x2f, - 0x01, 0xd3, 0xc2, 0x2f, 0x01, 0xd4, 0xc3, 0x2f, 0x01, 0xd6, 0xc4, 0x2f, - 0x01, 0xd7, 0xc5, 0x2f, 0x01, 0xd8, 0xc6, 0x2f, 0x01, 0xd9, 0xc7, 0x2f, - 0x41, 0xd0, 0xb6, 0x2f, 0x01, 0xd1, 0xb7, 0x2f, 0x01, 0xd2, 0xb8, 0x2f, - 0x01, 0xd3, 0xb9, 0x2f, 0x01, 0xd4, 0xba, 0x2f, 0x01, 0xd5, 0xbb, 0x2f, - 0x01, 0xd6, 0xbc, 0x2f, 0x01, 0xd8, 0xbd, 0x2f, 0x01, 0xd9, 0xbe, 0x2f, - 0x41, 0xd0, 0xb0, 0x2f, 0x01, 0xd1, 0xb1, 0x2f, 0x01, 0xd4, 0xb2, 0x2f, - 0x01, 0xd6, 0xb3, 0x2f, 0x01, 0xd7, 0xb4, 0x2f, 0x01, 0xd9, 0xb5, 0x2f, - 0x41, 0xd0, 0xa8, 0x2f, 0x01, 0xd3, 0xa9, 0x2f, 0x01, 0xd4, 0xaa, 0x2f, - 0x01, 0xd5, 0xab, 0x2f, 0x01, 0xd6, 0xac, 0x2f, 0x01, 0xd7, 0xad, 0x2f, - 0x01, 0xd8, 0xae, 0x2f, 0x01, 0xd9, 0xaf, 0x2f, 0x41, 0xd1, 0xa0, 0x2f, - 0x01, 0xd3, 0xa1, 0x2f, 0x01, 0xd4, 0xa2, 0x2f, 0x01, 0xd5, 0xa3, 0x2f, - 0x01, 0xd6, 0xa4, 0x2f, 0x01, 0xd7, 0xa5, 0x2f, 0x01, 0xd8, 0xa6, 0x2f, - 0x01, 0xd9, 0xa7, 0x2f, 0x41, 0xd0, 0x98, 0x2f, 0x01, 0xd1, 0x99, 0x2f, - 0x01, 0xd2, 0x9a, 0x2f, 0x81, 0x10, 0xd3, 0x9c, 0x2f, 0x01, 0xd5, 0x9d, - 0x2f, 0x01, 0xd7, 0x9e, 0x2f, 0x01, 0xd9, 0x9f, 0x2f, 0x41, 0xe2, 0x9b, - 0x2f, 0x41, 0xd1, 0x90, 0x2f, 0x01, 0xd2, 0x91, 0x2f, 0x01, 0xd4, 0x92, - 0x2f, 0x01, 0xd5, 0x93, 0x2f, 0x01, 0xd6, 0x94, 0x2f, 0x01, 0xd7, 0x95, - 0x2f, 0x01, 0xd8, 0x96, 0x2f, 0x01, 0xd9, 0x97, 0x2f, 0x41, 0xe1, 0x00, - 0x08, 0x01, 0xe5, 0x01, 0x08, 0x01, 0xe9, 0x02, 0x08, 0x01, 0xaa, 0xe3, - 0x01, 0xab, 0xcc, 0x01, 0xac, 0xb5, 0x01, 0xad, 0x9e, 0x01, 0xae, 0x87, - 0x01, 0xef, 0x03, 0x08, 0x01, 0xb0, 0x6d, 0xb2, 0x57, 0xb3, 0x41, 0xb4, - 0x2b, 0xf5, 0x04, 0x08, 0x01, 0xb7, 0x15, 0xb8, 0x0b, 0xba, 0x01, 0xff, - 0xe1, 0x3c, 0x08, 0x01, 0xef, 0x3f, 0x08, 0x41, 0xe1, 0x37, 0x08, 0x01, - 0xe5, 0x38, 0x08, 0x41, 0xe1, 0x32, 0x08, 0x01, 0xe5, 0x33, 0x08, 0x01, - 0xe9, 0x34, 0x08, 0x01, 0xef, 0x35, 0x08, 0x41, 0xe1, 0x2d, 0x08, 0x01, - 0xe5, 0x2e, 0x08, 0x01, 0xe9, 0x2f, 0x08, 0x01, 0xef, 0x30, 0x08, 0x01, - 0xf5, 0x31, 0x08, 0x41, 0xe1, 0x28, 0x08, 0x01, 0xe5, 0x29, 0x08, 0x01, - 0xe9, 0x2a, 0x08, 0x01, 0xef, 0x2b, 0x08, 0x01, 0xf5, 0x2c, 0x08, 0x41, - 0xe1, 0x23, 0x08, 0x01, 0xe5, 0x24, 0x08, 0x01, 0xe9, 0x25, 0x08, 0x01, - 0xef, 0x26, 0x08, 0x01, 0xf5, 0x27, 0x08, 0x41, 0xe1, 0x1e, 0x08, 0x01, - 0xe5, 0x1f, 0x08, 0x01, 0xe9, 0x20, 0x08, 0x01, 0xef, 0x21, 0x08, 0x01, - 0xf5, 0x22, 0x08, 0x41, 0xe1, 0x19, 0x08, 0x01, 0xe5, 0x1a, 0x08, 0x01, - 0xe9, 0x1b, 0x08, 0x01, 0xef, 0x1c, 0x08, 0x01, 0xf5, 0x1d, 0x08, 0x41, - 0xe1, 0x14, 0x08, 0x01, 0xe5, 0x15, 0x08, 0x01, 0xe9, 0x16, 0x08, 0x01, - 0xef, 0x17, 0x08, 0x01, 0xf5, 0x18, 0x08, 0x41, 0xe1, 0x0f, 0x08, 0x01, - 0xe5, 0x10, 0x08, 0x01, 0xe9, 0x11, 0x08, 0x01, 0xef, 0x12, 0x08, 0x01, - 0xf5, 0x13, 0x08, 0x41, 0xe1, 0x0a, 0x08, 0x01, 0xe5, 0x0b, 0x08, 0x01, - 0xe9, 0x0c, 0x08, 0x01, 0xef, 0x0d, 0x08, 0x01, 0xf5, 0x0e, 0x08, 0x41, - 0xe1, 0x05, 0x08, 0x01, 0xef, 0x08, 0x08, 0x41, 0x47, 0x31, 0xb5, 0x1b, - 0x22, 0x00, 0x46, 0xde, 0xd7, 0x52, 0xf9, 0x01, 0x08, 0x02, 0xc6, 0x80, - 0x01, 0xb0, 0x64, 0xb2, 0x16, 0x02, 0x60, 0x01, 0x06, 0x49, 0x0f, 0xbd, - 0x69, 0xf9, 0x41, 0x43, 0xaa, 0x01, 0x6e, 0xf3, 0x01, 0x43, 0x88, 0x65, - 0xc3, 0xf6, 0x41, 0xac, 0x1e, 0xb2, 0x06, 0x60, 0x25, 0x10, 0x61, 0x27, - 0x40, 0x05, 0x5f, 0x40, 0x06, 0x4a, 0x7f, 0xb1, 0x5b, 0xf3, 0x41, 0x48, - 0x82, 0xc3, 0xb1, 0xf4, 0x01, 0x44, 0x2f, 0x03, 0xa4, 0x00, 0x40, 0x49, - 0x2c, 0xb8, 0x4c, 0xf9, 0x01, 0x02, 0x09, 0x00, 0x01, 0xff, 0x51, 0x4e, - 0x57, 0xaa, 0x23, 0x00, 0x02, 0x13, 0x01, 0x01, 0xff, 0x06, 0xa5, 0x21, - 0x06, 0x42, 0x1f, 0x00, 0xb0, 0x27, 0x40, 0x43, 0x1a, 0x00, 0xcf, 0x22, - 0x00, 0x42, 0x0c, 0x00, 0xce, 0x22, 0x40, 0x80, 0x0c, 0x44, 0xbe, 0x2b, - 0xc1, 0xf9, 0x01, 0x43, 0xbc, 0x64, 0xe0, 0x2b, 0x40, 0x4f, 0x49, 0x5e, - 0xfe, 0x26, 0x00, 0x4a, 0x4d, 0xb1, 0x64, 0xf9, 0x41, 0x0d, 0xe4, 0x84, - 0xfa, 0x37, 0x11, 0xf4, 0x5b, 0xd3, 0x37, 0x05, 0x2f, 0x03, 0x01, 0xff, - 0xe1, 0x00, 0x20, 0x81, 0xf8, 0x33, 0xa2, 0xd1, 0x32, 0xa4, 0x9b, 0x2e, - 0xe5, 0x8a, 0x20, 0x81, 0x9f, 0x2b, 0xa7, 0xe1, 0x23, 0xa8, 0xc2, 0x22, - 0xe9, 0x3f, 0x21, 0x81, 0xb3, 0x21, 0xab, 0xad, 0x1c, 0xac, 0x86, 0x13, - 0xad, 0xab, 0x11, 0xae, 0xaa, 0x0d, 0xb0, 0xa0, 0x0c, 0xb2, 0x8c, 0x0c, - 0xb3, 0x95, 0x07, 0xb4, 0xb2, 0x05, 0xf5, 0x0b, 0x23, 0x81, 0x77, 0xba, - 0x01, 0xff, 0xe1, 0x5d, 0x23, 0x81, 0x53, 0x42, 0x58, 0x99, 0x62, 0x23, - 0x01, 0xe9, 0x63, 0x23, 0x81, 0x29, 0xf5, 0x6a, 0x23, 0xc1, 0x00, 0x51, - 0xe9, 0x55, 0x42, 0x25, 0x01, 0xd5, 0x6b, 0x23, 0x81, 0x0a, 0x43, 0x37, - 0x35, 0x6d, 0x23, 0x01, 0xed, 0x6e, 0x23, 0x41, 0x07, 0x27, 0x02, 0x01, - 0xff, 0xe1, 0x6c, 0x23, 0x01, 0x4f, 0x16, 0x72, 0x43, 0x25, 0x41, 0x48, - 0xd2, 0xbf, 0x64, 0x23, 0x01, 0xd3, 0x65, 0x23, 0x01, 0xe2, 0x66, 0x23, - 0x81, 0x0a, 0xe7, 0x68, 0x23, 0x01, 0x42, 0x18, 0xf0, 0x69, 0x23, 0x41, - 0x4a, 0x97, 0xa3, 0x67, 0x23, 0x41, 0x80, 0x0e, 0xd7, 0x41, 0x25, 0x01, - 0xe7, 0x60, 0x23, 0x01, 0x42, 0x60, 0xf1, 0x61, 0x23, 0x41, 0x51, 0x8d, - 0x5c, 0x5f, 0x23, 0x01, 0x44, 0x06, 0x5f, 0x5e, 0x23, 0x41, 0x80, 0x8c, - 0x04, 0xd2, 0x11, 0x23, 0x01, 0xe2, 0x12, 0x23, 0x01, 0xe4, 0x13, 0x23, - 0x81, 0xbf, 0x03, 0xed, 0x1d, 0x23, 0x81, 0xfa, 0x02, 0xee, 0x26, 0x23, - 0x81, 0xee, 0x02, 0xf2, 0x28, 0x23, 0x81, 0x46, 0x42, 0xa4, 0x02, 0x51, - 0x23, 0x81, 0x18, 0x44, 0x72, 0xef, 0x59, 0x23, 0x01, 0xba, 0x01, 0xff, - 0xd3, 0x5a, 0x23, 0x81, 0x04, 0xf5, 0x5c, 0x23, 0x41, 0x4d, 0x3d, 0x7e, - 0x5b, 0x23, 0x41, 0x07, 0x27, 0x02, 0x0e, 0xd2, 0x57, 0x23, 0x01, 0x43, - 0x5f, 0xf1, 0x58, 0x23, 0x01, 0xf8, 0x56, 0x23, 0x41, 0xe1, 0x52, 0x23, - 0x01, 0x42, 0xd3, 0x03, 0x53, 0x23, 0x81, 0x06, 0x44, 0xef, 0x43, 0x55, - 0x23, 0x41, 0xf2, 0x54, 0x23, 0x41, 0x80, 0x94, 0x02, 0xd2, 0x2b, 0x23, - 0x81, 0xc1, 0x01, 0xd4, 0x34, 0x23, 0x01, 0xe9, 0x35, 0x23, 0x81, 0xb3, - 0x01, 0xf5, 0x37, 0x23, 0xc1, 0x00, 0x07, 0x27, 0x02, 0x0d, 0x42, 0xa1, - 0x10, 0x4f, 0x23, 0xc1, 0x00, 0x48, 0x27, 0x02, 0x50, 0x23, 0x41, 0xe1, - 0x38, 0x23, 0x81, 0x91, 0x01, 0x43, 0x16, 0x00, 0x3a, 0x23, 0x01, 0xa4, - 0x7d, 0xa7, 0x64, 0x42, 0x22, 0x00, 0x41, 0x23, 0x01, 0xa9, 0x4c, 0x42, - 0x45, 0x00, 0x45, 0x23, 0x01, 0xac, 0x33, 0x43, 0x7c, 0x13, 0x47, 0x23, - 0x01, 0x42, 0x6c, 0x09, 0x48, 0x23, 0x01, 0xb3, 0x19, 0x42, 0x5c, 0x01, - 0x4b, 0x23, 0x01, 0xb5, 0x01, 0xff, 0x49, 0x3b, 0xb2, 0x4c, 0x23, 0x01, - 0xe4, 0x4d, 0x23, 0x01, 0x44, 0x41, 0xc9, 0x4e, 0x23, 0x41, 0x42, 0xb0, - 0x01, 0x49, 0x23, 0x01, 0x43, 0x09, 0x68, 0x4a, 0x23, 0x41, 0x46, 0xbe, - 0xd6, 0x3f, 0x25, 0x01, 0xb5, 0x01, 0xff, 0xd3, 0x40, 0x25, 0x01, 0xed, - 0x46, 0x23, 0x41, 0x42, 0xc6, 0x06, 0x42, 0x23, 0x01, 0xed, 0x43, 0x23, - 0x01, 0x42, 0xa4, 0x02, 0x44, 0x23, 0x41, 0xe1, 0x3c, 0x23, 0x81, 0x04, - 0xf5, 0x40, 0x23, 0x41, 0xec, 0x3d, 0x23, 0x01, 0x47, 0x13, 0x5f, 0x3e, - 0x23, 0x01, 0xf2, 0x3f, 0x23, 0x41, 0x44, 0xda, 0xeb, 0x3e, 0x25, 0x01, - 0x42, 0xf3, 0x0a, 0x3b, 0x23, 0x41, 0x45, 0x07, 0xd7, 0x39, 0x23, 0x41, - 0xd3, 0x36, 0x23, 0x41, 0x80, 0x01, 0xff, 0x48, 0xd6, 0x22, 0x3c, 0x25, - 0x01, 0x06, 0x28, 0x02, 0x01, 0xff, 0xa1, 0x29, 0x42, 0x22, 0x00, 0x2f, - 0x23, 0x01, 0x43, 0x54, 0x22, 0x30, 0x23, 0x01, 0xb5, 0x01, 0xff, 0xd2, - 0x31, 0x23, 0x81, 0x04, 0xe4, 0x3d, 0x25, 0x41, 0x06, 0xb6, 0x27, 0x01, - 0xff, 0x43, 0xce, 0x03, 0x32, 0x23, 0x01, 0x42, 0xba, 0x06, 0x33, 0x23, - 0x41, 0x06, 0xb6, 0x27, 0x04, 0xec, 0x2e, 0x23, 0x41, 0x42, 0x22, 0x00, - 0x2c, 0x23, 0x01, 0x42, 0xff, 0x04, 0x2d, 0x23, 0x41, 0x4b, 0x7c, 0x98, - 0x29, 0x23, 0x01, 0x47, 0xba, 0x7a, 0x2a, 0x23, 0x41, 0x45, 0xd6, 0x3e, - 0x27, 0x23, 0x41, 0x07, 0x27, 0x02, 0x1e, 0x43, 0xc9, 0x15, 0x22, 0x23, - 0x01, 0x42, 0x1d, 0x04, 0x23, 0x23, 0xc1, 0x00, 0x07, 0x27, 0x02, 0x01, - 0xff, 0x46, 0x1b, 0x02, 0x24, 0x23, 0x01, 0x42, 0x6c, 0x09, 0x25, 0x23, - 0x41, 0x45, 0x22, 0x02, 0x1e, 0x23, 0x01, 0x42, 0x2a, 0x02, 0x98, 0x23, - 0x81, 0x0a, 0x44, 0x00, 0x56, 0x20, 0x23, 0x01, 0xf5, 0x21, 0x23, 0x41, - 0x48, 0x8b, 0x56, 0x1f, 0x23, 0x41, 0x80, 0x06, 0x42, 0x83, 0x0e, 0x1c, - 0x23, 0x41, 0x44, 0xd7, 0x3e, 0x19, 0x23, 0x01, 0x46, 0x84, 0xda, 0x14, - 0x23, 0x01, 0x47, 0xba, 0x7a, 0x1a, 0x23, 0x81, 0x1e, 0x06, 0x28, 0x02, - 0x01, 0xff, 0x43, 0x4f, 0x6f, 0x15, 0x23, 0x01, 0x42, 0x7d, 0x02, 0x16, - 0x23, 0x01, 0x4f, 0x8e, 0x72, 0x17, 0x23, 0xc1, 0x00, 0x45, 0xd6, 0x3e, - 0x18, 0x23, 0x41, 0x4a, 0x06, 0x9b, 0x1b, 0x23, 0x41, 0x43, 0x8b, 0x79, - 0x0c, 0x23, 0x01, 0x07, 0xd7, 0x21, 0x0b, 0xf5, 0x99, 0x23, 0xc1, 0x00, - 0x42, 0x2d, 0x02, 0x0d, 0x23, 0x41, 0x57, 0x6c, 0x2f, 0x0e, 0x23, 0x01, - 0x4c, 0xb5, 0x93, 0x0f, 0x23, 0x01, 0x5a, 0xcc, 0x21, 0x10, 0x23, 0x41, - 0xe1, 0xeb, 0x22, 0x81, 0x69, 0xe5, 0xfc, 0x22, 0x81, 0x5e, 0xe9, 0xfe, - 0x22, 0x81, 0x30, 0xf5, 0x05, 0x23, 0xc1, 0x00, 0x42, 0x84, 0x0e, 0x06, - 0x23, 0x01, 0xeb, 0x07, 0x23, 0x01, 0xed, 0x08, 0x23, 0x81, 0x0b, 0xf2, - 0x09, 0x23, 0xc1, 0x00, 0x54, 0xdf, 0x3e, 0x0a, 0x23, 0x41, 0x07, 0x27, - 0x02, 0x01, 0xff, 0x49, 0x11, 0x5f, 0x3a, 0x25, 0x01, 0x4a, 0x16, 0x72, - 0x3b, 0x25, 0x41, 0x45, 0x05, 0x5f, 0xff, 0x22, 0x01, 0xd2, 0x97, 0x23, - 0x01, 0xec, 0x00, 0x23, 0x01, 0xf2, 0x01, 0x23, 0xc1, 0x00, 0x80, 0x01, - 0xff, 0x48, 0x02, 0xc7, 0x03, 0x23, 0x81, 0x06, 0x4a, 0xe9, 0x43, 0x02, - 0x23, 0x41, 0x5a, 0xbc, 0x1d, 0x04, 0x23, 0x41, 0x45, 0xd6, 0x3e, 0xfd, - 0x22, 0x41, 0x80, 0x53, 0xe2, 0xf0, 0x22, 0x81, 0x3f, 0xe7, 0xf3, 0x22, - 0x81, 0x11, 0x42, 0xf1, 0x43, 0xfa, 0x22, 0x81, 0x04, 0xf2, 0xfb, 0x22, - 0x41, 0x49, 0x56, 0xb2, 0x39, 0x25, 0x41, 0x07, 0x27, 0x02, 0x01, 0xff, - 0x42, 0xba, 0x06, 0xf4, 0x22, 0x01, 0x43, 0x8b, 0x79, 0xf5, 0x22, 0x01, - 0x02, 0xa4, 0x02, 0x0c, 0x44, 0x82, 0x0e, 0xf8, 0x22, 0x01, 0x42, 0x63, - 0x0c, 0xf9, 0x22, 0x41, 0xe5, 0xf6, 0x22, 0x01, 0xf5, 0xf7, 0x22, 0x41, - 0x80, 0x01, 0xff, 0x62, 0x6d, 0x0c, 0xf1, 0x22, 0x01, 0x47, 0xab, 0x05, - 0xf2, 0x22, 0x41, 0x48, 0xed, 0x0c, 0xec, 0x22, 0x01, 0x44, 0xd7, 0x3e, - 0xef, 0x22, 0x01, 0x06, 0x28, 0x02, 0x01, 0xff, 0x42, 0x49, 0x00, 0xed, - 0x22, 0x01, 0x42, 0x7d, 0x02, 0xee, 0x22, 0x41, 0xe1, 0x93, 0x22, 0x81, - 0xb3, 0x03, 0xa8, 0x5d, 0xe9, 0xdb, 0x22, 0x81, 0x2e, 0xf5, 0xe2, 0x22, - 0xc1, 0x00, 0x48, 0xb8, 0x93, 0xe3, 0x22, 0x01, 0xe4, 0xe4, 0x22, 0x81, - 0x1a, 0x43, 0x41, 0x00, 0xe6, 0x22, 0x01, 0xed, 0xe7, 0x22, 0x81, 0x09, - 0xf2, 0xe9, 0x22, 0xc1, 0x00, 0xd9, 0xea, 0x22, 0x41, 0x43, 0xce, 0x03, - 0xe8, 0x22, 0x41, 0xd2, 0xe5, 0x22, 0x41, 0x80, 0x1c, 0xe7, 0xdd, 0x22, - 0x81, 0x0c, 0x42, 0xf5, 0xa9, 0xe0, 0x22, 0x01, 0x43, 0xd9, 0xe7, 0xe1, - 0x22, 0x41, 0xd4, 0xde, 0x22, 0xc1, 0x00, 0x4f, 0x02, 0x68, 0xdf, 0x22, - 0x41, 0x44, 0xd7, 0x3e, 0xdc, 0x22, 0x01, 0x4a, 0xe9, 0x43, 0x38, 0x25, - 0x41, 0xe1, 0xad, 0x22, 0x81, 0x80, 0x02, 0xe5, 0xba, 0x22, 0x81, 0xaa, - 0x01, 0xa9, 0x27, 0xf5, 0xd7, 0x22, 0xc1, 0x00, 0x52, 0x20, 0x4e, 0xd8, - 0x22, 0x01, 0xd2, 0xd9, 0x22, 0x81, 0x06, 0x43, 0x37, 0x35, 0xda, 0x22, - 0x41, 0x06, 0xb6, 0x27, 0x01, 0xff, 0x4c, 0x95, 0x8c, 0x36, 0x25, 0x01, - 0x4b, 0x58, 0x99, 0x37, 0x25, 0x41, 0xe4, 0xc3, 0x22, 0x81, 0x6d, 0xed, - 0xc6, 0x22, 0x81, 0x20, 0x43, 0xa0, 0x33, 0xd2, 0x22, 0x01, 0xf2, 0xd3, - 0x22, 0x81, 0x06, 0x42, 0x12, 0x00, 0xd6, 0x22, 0x41, 0x80, 0x01, 0xff, - 0x56, 0x43, 0x35, 0xd5, 0x22, 0x01, 0x44, 0x06, 0x5f, 0xd4, 0x22, 0x41, - 0x07, 0x27, 0x02, 0x01, 0xff, 0xe1, 0xc7, 0x22, 0x01, 0xa2, 0x31, 0x43, - 0xd9, 0x05, 0xca, 0x22, 0x01, 0x43, 0xca, 0x1d, 0xcb, 0x22, 0x01, 0x43, - 0xc5, 0x06, 0xcc, 0x22, 0x81, 0x18, 0x46, 0x84, 0xda, 0xce, 0x22, 0x01, - 0x43, 0x26, 0xf1, 0xcf, 0x22, 0x01, 0x43, 0x41, 0xb4, 0xd0, 0x22, 0x01, - 0x43, 0x16, 0x0d, 0xd1, 0x22, 0x41, 0x45, 0xd6, 0x3e, 0xcd, 0x22, 0x41, - 0x42, 0x13, 0x00, 0xc8, 0x22, 0x01, 0x44, 0x97, 0x95, 0xc9, 0x22, 0x41, - 0x07, 0x27, 0x02, 0x01, 0xff, 0xe1, 0xc4, 0x22, 0x01, 0x42, 0x29, 0x02, - 0xc5, 0x22, 0x41, 0x80, 0x1b, 0x42, 0xcc, 0xf1, 0xbe, 0x22, 0x01, 0xee, - 0xbf, 0x22, 0x01, 0x42, 0xa4, 0x02, 0xc0, 0x22, 0xc1, 0x00, 0xd2, 0xc1, - 0x22, 0x01, 0x43, 0xb0, 0x00, 0xc2, 0x22, 0x41, 0x42, 0x41, 0x00, 0xbb, - 0x22, 0x01, 0x48, 0xfa, 0xc6, 0x32, 0x25, 0x81, 0x17, 0x05, 0xb7, 0x27, - 0x01, 0xff, 0x44, 0x1e, 0xed, 0x33, 0x25, 0x01, 0x44, 0x1a, 0xee, 0x34, - 0x25, 0x01, 0x43, 0xa3, 0x4a, 0x35, 0x25, 0x41, 0x80, 0x01, 0xff, 0x59, - 0xbd, 0x1d, 0xbc, 0x22, 0x01, 0x59, 0xd2, 0x25, 0xbd, 0x22, 0x41, 0xd3, - 0xae, 0x22, 0x81, 0x17, 0xd6, 0xb7, 0x22, 0x81, 0x0c, 0x42, 0x70, 0xf0, - 0xb8, 0x22, 0x01, 0x42, 0xc5, 0x41, 0xb9, 0x22, 0x41, 0x45, 0x05, 0x5f, - 0x31, 0x25, 0x41, 0x07, 0x27, 0x02, 0x01, 0xff, 0xe1, 0xaf, 0x22, 0x01, - 0x43, 0x4f, 0x6f, 0xb0, 0x22, 0x01, 0x44, 0xe4, 0x43, 0xb1, 0x22, 0x01, - 0x42, 0xa2, 0x05, 0xb2, 0x22, 0x01, 0x44, 0x8a, 0x65, 0xb3, 0x22, 0x01, - 0x43, 0x5c, 0x01, 0xb4, 0x22, 0x01, 0xf5, 0xb5, 0x22, 0xc1, 0x00, 0x47, - 0xb6, 0x27, 0xb6, 0x22, 0x41, 0xe7, 0x95, 0x22, 0x81, 0x15, 0xec, 0xa9, - 0x22, 0x81, 0x0a, 0x44, 0x36, 0xee, 0xab, 0x22, 0x01, 0xf2, 0xac, 0x22, - 0x41, 0x51, 0xc7, 0x55, 0xaa, 0x22, 0x41, 0x80, 0x01, 0xff, 0x44, 0xd7, - 0x3e, 0xa8, 0x22, 0x81, 0x90, 0x01, 0x47, 0xa3, 0xbf, 0x94, 0x22, 0x01, - 0x48, 0xf2, 0xc6, 0xa7, 0x22, 0x01, 0x06, 0x28, 0x02, 0x01, 0xff, 0xe1, - 0x96, 0x22, 0x01, 0x42, 0x6c, 0x02, 0x97, 0x22, 0x81, 0x70, 0x42, 0x92, - 0x01, 0x2e, 0x25, 0x01, 0x42, 0x22, 0x00, 0x99, 0x22, 0x01, 0x48, 0x54, - 0x68, 0x96, 0x23, 0x01, 0xab, 0x50, 0x43, 0x2f, 0xb2, 0x9c, 0x22, 0x01, - 0x42, 0x7d, 0x02, 0x9d, 0x22, 0x01, 0x43, 0x54, 0x22, 0x9e, 0x22, 0x01, - 0xb3, 0x27, 0x02, 0x12, 0x00, 0x19, 0xb5, 0x01, 0xff, 0xd2, 0xa2, 0x22, - 0x01, 0xe2, 0xa3, 0x22, 0x01, 0xed, 0xa4, 0x22, 0x01, 0xf2, 0xa5, 0x22, - 0x01, 0x42, 0xa4, 0x02, 0xa6, 0x22, 0x41, 0xe2, 0xa1, 0x22, 0x01, 0x42, - 0xf1, 0x43, 0x30, 0x25, 0x41, 0x42, 0x13, 0x00, 0x9f, 0x22, 0x01, 0xa8, - 0x01, 0xff, 0x49, 0xa4, 0xb5, 0x2f, 0x25, 0x01, 0x42, 0x03, 0x00, 0xa0, - 0x22, 0x41, 0x42, 0x6d, 0x00, 0x9a, 0x22, 0x01, 0x42, 0x42, 0x00, 0x9b, - 0x22, 0x41, 0xe2, 0x98, 0x22, 0x41, 0x49, 0x95, 0xb2, 0x2d, 0x25, 0x41, - 0xe1, 0x8f, 0x22, 0x81, 0x08, 0xe9, 0x91, 0x22, 0x01, 0xf5, 0x92, 0x22, - 0x41, 0xe2, 0x90, 0x22, 0x41, 0xe1, 0x7a, 0x22, 0x81, 0x76, 0x44, 0xe0, - 0x73, 0x7e, 0x22, 0x81, 0x69, 0xe9, 0x7f, 0x22, 0xc1, 0x00, 0x80, 0x2e, - 0xb2, 0x01, 0xff, 0xd2, 0x95, 0x23, 0x01, 0x42, 0x3f, 0x00, 0x8a, 0x22, - 0xc1, 0x00, 0x80, 0x01, 0xff, 0x4e, 0x16, 0x79, 0x8e, 0x22, 0x01, 0x06, - 0x28, 0x02, 0x01, 0xff, 0x43, 0x1e, 0x02, 0x8b, 0x22, 0x01, 0x42, 0x63, - 0x0c, 0x8c, 0x22, 0x01, 0x42, 0x59, 0x00, 0x8d, 0x22, 0x41, 0x4b, 0x71, - 0x98, 0x89, 0x22, 0x01, 0x06, 0x28, 0x02, 0x01, 0xff, 0xe1, 0x80, 0x22, - 0x81, 0x20, 0xa2, 0x16, 0xe5, 0x84, 0x22, 0x01, 0xe9, 0x85, 0x22, 0x81, - 0x09, 0xf5, 0x87, 0x22, 0xc1, 0x00, 0xd2, 0x88, 0x22, 0x41, 0xe2, 0x86, - 0x22, 0x41, 0xe9, 0x82, 0x22, 0x01, 0xf5, 0x83, 0x22, 0x41, 0xe2, 0x81, - 0x22, 0x41, 0x49, 0xec, 0x0c, 0x94, 0x23, 0x41, 0xe4, 0x7b, 0x22, 0x01, - 0xee, 0x7c, 0x22, 0x01, 0xf0, 0x7d, 0x22, 0x41, 0xe1, 0x3e, 0x22, 0x81, - 0xc2, 0x03, 0xe5, 0x48, 0x22, 0x81, 0xa4, 0x03, 0xe9, 0x4c, 0x22, 0x81, - 0xbc, 0x01, 0xf5, 0x61, 0x22, 0xc1, 0x00, 0x42, 0x34, 0x35, 0x62, 0x22, - 0x81, 0x9a, 0x01, 0xee, 0x63, 0x22, 0xc1, 0x00, 0x80, 0x57, 0x42, 0x63, - 0x51, 0x6d, 0x22, 0xc1, 0x00, 0x80, 0x01, 0xff, 0x0a, 0x09, 0xa5, 0x0d, - 0x4f, 0x75, 0x6d, 0x78, 0x22, 0xc1, 0x00, 0x42, 0x2d, 0x02, 0x79, 0x22, - 0x41, 0x46, 0x06, 0xd7, 0x6e, 0x22, 0x01, 0x42, 0xba, 0x06, 0x6f, 0x22, - 0x01, 0x43, 0x95, 0x8c, 0x70, 0x22, 0x01, 0x43, 0x8b, 0x79, 0x71, 0x22, - 0x01, 0x48, 0x54, 0x68, 0x72, 0x22, 0x01, 0x44, 0x82, 0xed, 0x73, 0x22, - 0x01, 0x42, 0x74, 0x00, 0x74, 0x22, 0x01, 0x42, 0xa2, 0x05, 0x75, 0x22, - 0x01, 0x45, 0xd7, 0xe7, 0x76, 0x22, 0x01, 0x42, 0x8c, 0x65, 0x77, 0x22, - 0x41, 0x4c, 0xf9, 0x8b, 0x6b, 0x22, 0x81, 0x2f, 0x0c, 0x58, 0x22, 0x0c, - 0x48, 0x4f, 0x22, 0x6a, 0x22, 0x01, 0x44, 0x06, 0x5f, 0x69, 0x22, 0x41, - 0x43, 0xca, 0x1d, 0x64, 0x22, 0x01, 0x44, 0x61, 0x06, 0x65, 0x22, 0x01, - 0x43, 0x16, 0x0d, 0x66, 0x22, 0x81, 0x06, 0x43, 0xcf, 0x7a, 0x68, 0x22, - 0x41, 0x59, 0x4e, 0x22, 0x67, 0x22, 0x41, 0x51, 0xd8, 0x55, 0x6c, 0x22, - 0x41, 0x80, 0x01, 0xff, 0x56, 0x2d, 0x35, 0xd5, 0x22, 0x01, 0x56, 0x03, - 0x2c, 0x93, 0x23, 0x01, 0x44, 0x06, 0x5f, 0xd4, 0x22, 0x41, 0x48, 0xe8, - 0x95, 0x4d, 0x22, 0x01, 0xd2, 0x4e, 0x22, 0x01, 0xed, 0x4f, 0x22, 0x81, - 0xc1, 0x01, 0xee, 0x8f, 0x23, 0x81, 0x06, 0x43, 0x21, 0x87, 0x60, 0x22, - 0x41, 0xd9, 0x90, 0x23, 0x01, 0x43, 0xc6, 0xf0, 0x52, 0x22, 0xc1, 0x00, - 0x07, 0x27, 0x02, 0x01, 0xff, 0xa1, 0x92, 0x01, 0x43, 0x46, 0x1c, 0x91, - 0x23, 0x01, 0x48, 0x9a, 0xc2, 0x22, 0x25, 0x01, 0xa7, 0x6e, 0x42, 0x49, - 0x00, 0x25, 0x25, 0x01, 0x45, 0xbc, 0xe4, 0x26, 0x25, 0x01, 0x47, 0xd2, - 0xcf, 0x27, 0x25, 0x01, 0xad, 0x4e, 0xae, 0x42, 0x4c, 0xac, 0x3c, 0x29, - 0x25, 0x01, 0x43, 0x63, 0x06, 0x5a, 0x22, 0x81, 0x1d, 0xf5, 0x2a, 0x25, - 0xc1, 0x00, 0x47, 0x8f, 0x72, 0x2b, 0x25, 0x01, 0x4a, 0xaf, 0xa4, 0x5e, - 0x22, 0x01, 0x44, 0x41, 0xc9, 0x2c, 0x25, 0x01, 0x42, 0xa4, 0x02, 0x5f, - 0x22, 0x41, 0x07, 0xb6, 0x27, 0x01, 0xff, 0x43, 0x19, 0x00, 0x5b, 0x22, - 0x01, 0x42, 0xa4, 0x02, 0x5c, 0x22, 0xc1, 0x00, 0x49, 0xcf, 0x4b, 0x5d, - 0x22, 0x41, 0xe5, 0x58, 0x22, 0x01, 0x42, 0xf3, 0x0a, 0x59, 0x22, 0x41, - 0x43, 0xce, 0x03, 0x28, 0x25, 0x01, 0x50, 0xfa, 0x60, 0x57, 0x22, 0x41, - 0xe9, 0x92, 0x23, 0x81, 0x0b, 0xb5, 0x01, 0xff, 0xe4, 0x56, 0x22, 0x01, - 0xec, 0x24, 0x25, 0x41, 0x42, 0xa4, 0x02, 0x23, 0x25, 0x41, 0xee, 0x53, - 0x22, 0x01, 0x42, 0xa4, 0x02, 0x54, 0x22, 0xc1, 0x00, 0x49, 0xcf, 0x4b, - 0x55, 0x22, 0x41, 0x09, 0xc7, 0x41, 0x01, 0xff, 0x47, 0x13, 0x5f, 0x50, - 0x22, 0x01, 0x50, 0xaa, 0x64, 0x51, 0x22, 0x41, 0x80, 0x01, 0xff, 0x47, - 0xba, 0x7a, 0x4b, 0x22, 0x01, 0x06, 0x28, 0x02, 0x01, 0xff, 0xe1, 0x49, - 0x22, 0x01, 0x42, 0x63, 0x0c, 0x4a, 0x22, 0x41, 0xd2, 0x3f, 0x22, 0x01, - 0xd4, 0x8e, 0x23, 0x01, 0x42, 0x24, 0x02, 0x40, 0x22, 0x81, 0x0f, 0xed, - 0x46, 0x22, 0xc1, 0x00, 0x48, 0xa2, 0xbf, 0x45, 0x22, 0x01, 0xd2, 0x47, - 0x22, 0x41, 0x80, 0x04, 0xf2, 0x44, 0x22, 0x41, 0x48, 0xd6, 0x22, 0x41, - 0x22, 0x01, 0x4d, 0x66, 0x85, 0x43, 0x22, 0x01, 0x4e, 0xc4, 0x7b, 0x42, - 0x22, 0x41, 0xe1, 0x20, 0x22, 0x81, 0xad, 0x01, 0xe5, 0x28, 0x22, 0x81, - 0x9e, 0x01, 0xe9, 0x2a, 0x22, 0x81, 0x8e, 0x01, 0xf5, 0x2c, 0x22, 0xc1, - 0x00, 0x48, 0xca, 0xbf, 0x2d, 0x22, 0x01, 0xe7, 0x2e, 0x22, 0x81, 0x78, - 0x44, 0x56, 0xee, 0x30, 0x22, 0x01, 0x44, 0xfa, 0xee, 0x31, 0x22, 0x01, - 0x42, 0xa4, 0x02, 0x32, 0x22, 0xc1, 0x00, 0x80, 0x2a, 0xd3, 0x39, 0x22, - 0xc1, 0x00, 0x80, 0x01, 0xff, 0x44, 0xd7, 0x3e, 0x3d, 0x22, 0x01, 0x06, - 0x28, 0x02, 0x01, 0xff, 0xe1, 0x3a, 0x22, 0x81, 0x0c, 0x42, 0x00, 0x00, - 0x3c, 0x22, 0x01, 0x42, 0x59, 0x00, 0x8d, 0x23, 0x41, 0x48, 0xda, 0xbf, - 0x3b, 0x22, 0x41, 0x4d, 0x38, 0x80, 0x38, 0x22, 0x01, 0x49, 0x4d, 0xbb, - 0x36, 0x22, 0x81, 0x15, 0x06, 0x28, 0x02, 0x01, 0xff, 0xe1, 0x33, 0x22, - 0x01, 0x43, 0x9b, 0x5c, 0x34, 0x22, 0x01, 0x42, 0x59, 0x00, 0x35, 0x22, - 0x41, 0x07, 0x27, 0x02, 0x01, 0xff, 0x49, 0x25, 0xb3, 0x37, 0x22, 0x01, - 0x42, 0x24, 0x02, 0x20, 0x25, 0x01, 0x43, 0xe0, 0x5e, 0x21, 0x25, 0x41, - 0x45, 0xd6, 0x3e, 0x2f, 0x22, 0x41, 0x49, 0x68, 0xb2, 0x1f, 0x25, 0x01, - 0xee, 0x2b, 0x22, 0x41, 0xf3, 0x29, 0x22, 0xc1, 0x00, 0xe8, 0x8c, 0x23, - 0x41, 0x80, 0x17, 0xd2, 0x23, 0x22, 0x01, 0xe8, 0x24, 0x22, 0x01, 0xf2, - 0x25, 0x22, 0x01, 0x42, 0xa4, 0x02, 0x26, 0x22, 0xc1, 0x00, 0xd2, 0x27, - 0x22, 0x41, 0x44, 0xd7, 0x3e, 0x22, 0x22, 0x01, 0x4a, 0xe9, 0x43, 0x21, - 0x22, 0x41, 0xe1, 0xb7, 0x21, 0x81, 0xca, 0x02, 0xe9, 0xf7, 0x21, 0x81, - 0xb4, 0x02, 0xf5, 0xfb, 0x21, 0xc1, 0x00, 0x4a, 0x06, 0x9b, 0xfc, 0x21, - 0x01, 0xd2, 0xfd, 0x21, 0x81, 0x3c, 0xd3, 0x16, 0x22, 0x01, 0x43, 0xce, - 0x41, 0x17, 0x22, 0x81, 0x1a, 0xe8, 0x1b, 0x22, 0x01, 0xec, 0x1c, 0x22, - 0x01, 0xed, 0x1d, 0x22, 0xc1, 0x00, 0x49, 0x29, 0xb2, 0x1e, 0x22, 0xc1, - 0x00, 0x4d, 0xc9, 0x1d, 0x1f, 0x22, 0x41, 0x80, 0x01, 0xff, 0xaf, 0x06, - 0x47, 0xba, 0x7a, 0x1a, 0x22, 0x41, 0x4d, 0xce, 0x85, 0x19, 0x22, 0x01, - 0x49, 0x5c, 0xbe, 0x18, 0x22, 0x41, 0x80, 0x01, 0xff, 0x4c, 0xed, 0x8b, - 0x12, 0x22, 0x01, 0x4e, 0xae, 0x76, 0x19, 0x25, 0x01, 0x4c, 0xa5, 0x91, - 0x13, 0x22, 0x01, 0xb3, 0xbd, 0x01, 0xb4, 0x01, 0xff, 0x43, 0x07, 0x5f, - 0x11, 0x22, 0x01, 0x05, 0x29, 0x02, 0x01, 0xff, 0x42, 0x13, 0x00, 0xfe, - 0x21, 0x01, 0x43, 0x4f, 0x6f, 0xff, 0x21, 0x01, 0x44, 0x81, 0x0c, 0x1a, - 0x25, 0x01, 0x44, 0xe0, 0x73, 0x00, 0x22, 0x81, 0x86, 0x01, 0x49, 0x11, - 0x5f, 0x02, 0x22, 0x01, 0xa8, 0x72, 0x42, 0x29, 0x02, 0x04, 0x22, 0x01, - 0xab, 0x53, 0x02, 0x74, 0x00, 0x43, 0x4a, 0x67, 0xab, 0x0b, 0x22, 0x01, - 0xae, 0x33, 0x43, 0xa0, 0x0e, 0x1c, 0x25, 0x81, 0x26, 0xb3, 0x0f, 0xb4, - 0x01, 0xff, 0x43, 0xf0, 0x43, 0x1e, 0x25, 0x01, 0x43, 0x83, 0x0e, 0x10, - 0x22, 0x41, 0x42, 0x41, 0x00, 0x8b, 0x23, 0x01, 0xa9, 0x01, 0xff, 0x49, - 0xcf, 0x4b, 0x0e, 0x22, 0x01, 0x4a, 0xf5, 0xa9, 0x0f, 0x22, 0x41, 0x52, - 0xaf, 0x3c, 0x1d, 0x25, 0x41, 0xe5, 0x0c, 0x22, 0x01, 0xf5, 0x0d, 0x22, - 0x41, 0x49, 0xcf, 0x4b, 0x09, 0x22, 0x01, 0x43, 0x24, 0x02, 0x0a, 0x22, - 0x41, 0x02, 0xe8, 0x01, 0x04, 0xe9, 0x08, 0x22, 0x41, 0xd2, 0x05, 0x22, - 0x01, 0xd3, 0x06, 0x22, 0xc1, 0x00, 0x49, 0xcf, 0x4b, 0x07, 0x22, 0x41, - 0x42, 0x13, 0x00, 0x1b, 0x25, 0x01, 0x4b, 0x05, 0x9b, 0x03, 0x22, 0x41, - 0x80, 0x01, 0xff, 0x48, 0x4e, 0xb2, 0x8a, 0x23, 0x01, 0x44, 0x06, 0x5f, - 0x01, 0x22, 0x41, 0x46, 0xbb, 0x7a, 0x15, 0x22, 0x81, 0x06, 0x46, 0xac, - 0x05, 0x14, 0x22, 0x41, 0x4a, 0x06, 0x9b, 0x89, 0x23, 0x41, 0xec, 0xf8, - 0x21, 0x01, 0x44, 0xfa, 0xed, 0xf9, 0x21, 0x01, 0x42, 0xa4, 0x02, 0xfa, - 0x21, 0x41, 0x02, 0x24, 0x02, 0xd0, 0x03, 0x44, 0x1a, 0xed, 0xf1, 0x21, - 0x01, 0x02, 0x66, 0x10, 0x1d, 0xec, 0xf2, 0x21, 0x81, 0x12, 0xed, 0xf4, - 0x21, 0xc1, 0x00, 0x4a, 0x94, 0x5c, 0xf5, 0x21, 0xc1, 0x00, 0x48, 0xea, - 0xbf, 0xf6, 0x21, 0x41, 0x4a, 0x03, 0x9c, 0xf3, 0x21, 0x41, 0x90, 0xe8, - 0x02, 0x91, 0xd9, 0x02, 0x92, 0xad, 0x02, 0x93, 0x8c, 0x02, 0x94, 0xae, - 0x01, 0x43, 0x69, 0xf0, 0xff, 0x24, 0x01, 0x96, 0x0f, 0x97, 0x01, 0xff, - 0x42, 0xf8, 0xb2, 0x17, 0x25, 0x01, 0x42, 0xb2, 0xf1, 0x18, 0x25, 0x41, - 0x42, 0x27, 0x74, 0x00, 0x25, 0x01, 0x42, 0xa0, 0xf1, 0x01, 0x25, 0x81, - 0x4a, 0x42, 0xa8, 0xf1, 0x0c, 0x25, 0x01, 0x42, 0xb0, 0xf1, 0x0d, 0x25, - 0xc1, 0x00, 0x07, 0x27, 0x02, 0x01, 0xff, 0x43, 0xd2, 0xf0, 0x0e, 0x25, - 0x01, 0x42, 0x24, 0x02, 0x0f, 0x25, 0x01, 0x43, 0xc5, 0x06, 0x10, 0x25, - 0x81, 0x1f, 0x42, 0x26, 0x03, 0x12, 0x25, 0x01, 0x55, 0xac, 0x3c, 0x13, - 0x25, 0x01, 0x4d, 0xd2, 0x86, 0x14, 0x25, 0x01, 0xb5, 0x01, 0xff, 0xe4, - 0x15, 0x25, 0x01, 0x44, 0x41, 0xc9, 0x16, 0x25, 0x41, 0x45, 0xd6, 0x3e, - 0x11, 0x25, 0x41, 0x07, 0x27, 0x02, 0x01, 0xff, 0x43, 0xce, 0x03, 0x02, - 0x25, 0x01, 0x43, 0x4f, 0x6f, 0x03, 0x25, 0x01, 0x4e, 0xb2, 0x75, 0x04, - 0x25, 0x01, 0x43, 0x4a, 0xb2, 0x05, 0x25, 0x01, 0x42, 0x74, 0x00, 0x06, - 0x25, 0x01, 0xb4, 0x11, 0xb5, 0x01, 0xff, 0xd2, 0x09, 0x25, 0x01, 0xe4, - 0x0a, 0x25, 0x01, 0x44, 0x41, 0xc9, 0x0b, 0x25, 0x41, 0x42, 0x17, 0x00, - 0x07, 0x25, 0x01, 0xe5, 0x08, 0x25, 0x41, 0x94, 0x29, 0x95, 0x1f, 0x42, - 0xc4, 0xf0, 0xf9, 0x24, 0x01, 0x42, 0xab, 0xf1, 0xfa, 0x24, 0x01, 0x99, - 0x01, 0xff, 0xd0, 0xfb, 0x24, 0x01, 0xd2, 0xfc, 0x24, 0x01, 0xd3, 0xfd, - 0x24, 0x01, 0xd5, 0xfe, 0x24, 0x41, 0xd0, 0xf7, 0x24, 0x01, 0xd7, 0xf8, - 0x24, 0x41, 0xd1, 0xf0, 0x24, 0x01, 0xd9, 0xf1, 0x24, 0xc1, 0x00, 0x07, - 0x27, 0x02, 0x01, 0xff, 0x42, 0x1e, 0x01, 0xf2, 0x24, 0x01, 0x43, 0xc5, - 0x06, 0xf3, 0x24, 0x01, 0x09, 0xac, 0x3c, 0x06, 0x4a, 0x21, 0xb0, 0xf6, - 0x24, 0x41, 0x43, 0xbe, 0x3c, 0xf4, 0x24, 0x01, 0x4c, 0xb5, 0x3c, 0xf5, - 0x24, 0x41, 0x94, 0x10, 0x98, 0x06, 0x42, 0xbc, 0xf1, 0xef, 0x24, 0x41, - 0xd3, 0xed, 0x24, 0x01, 0xd4, 0xee, 0x24, 0x41, 0xd3, 0xea, 0x24, 0x01, - 0xd7, 0xeb, 0x24, 0x01, 0xd8, 0xec, 0x24, 0x41, 0x91, 0x1f, 0x92, 0x11, - 0x42, 0xaa, 0xf1, 0xe7, 0x24, 0x01, 0x96, 0x01, 0xff, 0xd5, 0xe8, 0x24, - 0x01, 0xd6, 0xe9, 0x24, 0x41, 0xd0, 0xe4, 0x24, 0x01, 0xd5, 0xe5, 0x24, - 0x01, 0xd8, 0xe6, 0x24, 0x41, 0xd0, 0xe2, 0x24, 0x01, 0xd9, 0xe3, 0x24, - 0x41, 0x42, 0x57, 0xf0, 0xe0, 0x24, 0x01, 0x42, 0xc1, 0xf0, 0xe1, 0x24, - 0x41, 0x42, 0x56, 0xf0, 0xd5, 0x24, 0x01, 0x92, 0x2e, 0x42, 0x57, 0xf0, - 0xd8, 0x24, 0x01, 0x95, 0x1e, 0x42, 0x75, 0xf0, 0xdb, 0x24, 0x01, 0x54, - 0x1b, 0x3f, 0xdc, 0x24, 0x01, 0x98, 0x06, 0x42, 0xbe, 0xf1, 0xdf, 0x24, - 0x41, 0xd0, 0xdd, 0x24, 0x01, 0x4e, 0x1c, 0x74, 0xde, 0x24, 0x41, 0xd0, - 0xd9, 0x24, 0x01, 0xd1, 0xda, 0x24, 0x41, 0xd1, 0xd6, 0x24, 0x01, 0xd5, - 0xd7, 0x24, 0x41, 0xe2, 0xb8, 0x21, 0x81, 0x22, 0xf2, 0xec, 0x21, 0xc1, - 0x00, 0x80, 0x01, 0xff, 0x44, 0xd7, 0x3e, 0xef, 0x21, 0x81, 0x0d, 0x49, - 0xfc, 0xa3, 0xed, 0x21, 0xc1, 0x00, 0x49, 0x3a, 0xa7, 0xee, 0x21, 0x41, - 0x54, 0xcb, 0x3e, 0xf0, 0x21, 0x41, 0x80, 0x01, 0xff, 0x47, 0xab, 0x05, - 0xeb, 0x21, 0x01, 0x06, 0x28, 0x02, 0x01, 0xff, 0xe1, 0xb9, 0x21, 0x81, - 0xa0, 0x02, 0xa2, 0x93, 0x02, 0x43, 0xbb, 0x17, 0xc2, 0x21, 0x01, 0x42, - 0x92, 0x01, 0xc3, 0x21, 0x01, 0xa7, 0xea, 0x01, 0xa8, 0xd8, 0x01, 0xa9, - 0xb9, 0x01, 0xab, 0x9b, 0x01, 0xac, 0x83, 0x01, 0xad, 0x70, 0x42, 0xa2, - 0x05, 0xdb, 0x21, 0x01, 0xb3, 0x3d, 0xb4, 0x29, 0xf5, 0xe5, 0x21, 0x81, - 0x06, 0x4a, 0xc5, 0xb1, 0xd4, 0x24, 0x41, 0x06, 0xb6, 0x27, 0x10, 0x4a, - 0xaf, 0xa4, 0xe8, 0x21, 0x01, 0xe4, 0xe9, 0x21, 0x01, 0x42, 0xa4, 0x02, - 0xea, 0x21, 0x41, 0xe1, 0xe6, 0x21, 0x01, 0x48, 0x8e, 0x72, 0xe7, 0x21, - 0x41, 0xa1, 0x06, 0x58, 0xb5, 0x27, 0xe4, 0x21, 0x41, 0xe7, 0xe2, 0x21, - 0x01, 0x42, 0xf1, 0x43, 0xe3, 0x21, 0x41, 0xa8, 0x06, 0x42, 0x1d, 0x04, - 0xe1, 0x21, 0x41, 0x4a, 0x39, 0xa7, 0xdc, 0x21, 0x01, 0x0e, 0x8e, 0x77, - 0x0d, 0x42, 0x8c, 0x65, 0xdf, 0x21, 0xc1, 0x00, 0x4a, 0xbf, 0xa3, 0xe0, - 0x21, 0x41, 0x4a, 0x3d, 0xad, 0xdd, 0x21, 0x01, 0x44, 0x06, 0x5f, 0xde, - 0x21, 0x41, 0xe5, 0xd8, 0x21, 0x81, 0x06, 0x43, 0xcf, 0x7a, 0xda, 0x21, - 0x41, 0x48, 0x69, 0xab, 0xd9, 0x21, 0x41, 0x44, 0x23, 0x02, 0xd4, 0x21, - 0x01, 0x43, 0x82, 0x0c, 0xd5, 0x21, 0x01, 0xf5, 0xd6, 0x21, 0xc1, 0x00, - 0xec, 0xd7, 0x21, 0x41, 0xe9, 0xcf, 0x21, 0x81, 0x12, 0xb5, 0x01, 0xff, - 0xd3, 0xd1, 0x21, 0x01, 0xec, 0xd2, 0x21, 0xc1, 0x00, 0x4f, 0x20, 0x68, - 0xd3, 0x21, 0x41, 0xee, 0xd0, 0x21, 0x41, 0x47, 0x55, 0x68, 0xcb, 0x21, - 0x01, 0xed, 0xcc, 0x21, 0xc1, 0x00, 0x06, 0xb6, 0x27, 0x01, 0xff, 0x42, - 0x22, 0x00, 0xcd, 0x21, 0x01, 0x42, 0x5b, 0x15, 0xce, 0x21, 0x41, 0xe1, - 0xc8, 0x21, 0x81, 0x06, 0x4b, 0x10, 0x9b, 0xca, 0x21, 0x41, 0xec, 0xc9, - 0x21, 0x41, 0xe1, 0xc4, 0x21, 0x81, 0x11, 0xe9, 0x88, 0x23, 0x01, 0x42, - 0x63, 0x0c, 0xc6, 0x21, 0xc1, 0x00, 0x49, 0x3b, 0xb2, 0xc7, 0x21, 0x41, - 0xf2, 0xc5, 0x21, 0x41, 0x42, 0xe8, 0x01, 0xc0, 0x21, 0x01, 0xe9, 0xc1, - 0x21, 0x41, 0x06, 0xb6, 0x27, 0x0e, 0xec, 0xbd, 0x21, 0x01, 0xee, 0xbe, - 0x21, 0x01, 0x4c, 0x55, 0x93, 0xbf, 0x21, 0x41, 0x4a, 0xe9, 0xa6, 0xba, - 0x21, 0x01, 0x43, 0xca, 0x1d, 0xbb, 0x21, 0x01, 0x43, 0x47, 0x20, 0xbc, - 0x21, 0x41, 0xe1, 0x57, 0x21, 0x81, 0x84, 0x01, 0x44, 0xe0, 0x73, 0x9f, - 0x21, 0x01, 0xe9, 0xa0, 0x21, 0x81, 0x44, 0xf5, 0xaa, 0x21, 0x81, 0x06, - 0x45, 0x35, 0xe9, 0xb6, 0x21, 0x41, 0x69, 0xbf, 0x03, 0xab, 0x21, 0x01, - 0xd3, 0xac, 0x21, 0x01, 0xd4, 0xad, 0x21, 0x81, 0x24, 0xd7, 0xaf, 0x21, - 0x01, 0xec, 0xb0, 0x21, 0x81, 0x15, 0xee, 0xb2, 0x21, 0x01, 0xf2, 0xb3, - 0x21, 0x81, 0x06, 0x44, 0x8a, 0x65, 0xb5, 0x21, 0x41, 0x4d, 0x30, 0x7e, - 0xb4, 0x21, 0x41, 0x45, 0xd6, 0x3e, 0xb1, 0x21, 0x41, 0x4d, 0x4a, 0x7e, - 0xae, 0x21, 0x41, 0x07, 0x27, 0x02, 0x22, 0xe4, 0xa4, 0x21, 0x01, 0xee, - 0xa5, 0x21, 0x01, 0xb3, 0x01, 0xff, 0x42, 0x13, 0x00, 0xa6, 0x21, 0x01, - 0xe8, 0xa7, 0x21, 0x01, 0x43, 0x78, 0x6d, 0xa8, 0x21, 0xc1, 0x00, 0x4c, - 0x95, 0x89, 0xa9, 0x21, 0x41, 0x43, 0x4f, 0x6f, 0xa1, 0x21, 0x01, 0xf5, - 0xa2, 0x21, 0xc1, 0x00, 0xe4, 0xa3, 0x21, 0x41, 0x07, 0x27, 0x02, 0x72, - 0xd2, 0x8d, 0x21, 0x81, 0x67, 0xe2, 0x8f, 0x21, 0x01, 0xa4, 0x4a, 0xeb, - 0x95, 0x21, 0x81, 0x3f, 0xec, 0x97, 0x21, 0x81, 0x26, 0xad, 0x1c, 0x49, - 0x68, 0xbb, 0x6f, 0x23, 0x01, 0x44, 0x1d, 0x02, 0x9c, 0x21, 0xc1, 0x00, - 0x80, 0x01, 0xff, 0x60, 0x22, 0x02, 0x9d, 0x21, 0x01, 0x6c, 0x16, 0x02, - 0x9e, 0x21, 0x41, 0xd2, 0x9a, 0x21, 0x01, 0xd4, 0x9b, 0x21, 0x41, 0x80, - 0x06, 0x42, 0x57, 0x00, 0x27, 0x23, 0x41, 0x4c, 0xe1, 0x8b, 0x99, 0x21, - 0x01, 0x49, 0x07, 0x9b, 0x98, 0x21, 0x41, 0x4f, 0x4d, 0x68, 0x96, 0x21, - 0x41, 0xd2, 0x90, 0x21, 0x01, 0xd3, 0x91, 0x21, 0x01, 0xd4, 0x92, 0x21, - 0x01, 0xd5, 0x93, 0x21, 0xc1, 0x00, 0x4a, 0xb5, 0xa3, 0x94, 0x21, 0x41, - 0x4d, 0xef, 0x7d, 0x8e, 0x21, 0x41, 0xe1, 0x58, 0x21, 0x81, 0xdf, 0x02, - 0xa2, 0xc4, 0x02, 0xa5, 0xb5, 0x02, 0xa7, 0xe8, 0x01, 0x4d, 0xc5, 0x03, - 0x82, 0x23, 0x01, 0xa9, 0xd5, 0x01, 0xab, 0xc0, 0x01, 0xac, 0xb0, 0x01, - 0xad, 0x86, 0x01, 0xae, 0x7a, 0xb0, 0x70, 0x42, 0x3d, 0x00, 0x7d, 0x21, - 0x01, 0xb3, 0x3a, 0xb4, 0x2e, 0xf5, 0x87, 0x21, 0x81, 0x06, 0x42, 0x11, - 0x33, 0x8c, 0x21, 0x41, 0x44, 0x87, 0xe8, 0xd2, 0x24, 0x01, 0xd2, 0x88, - 0x21, 0x01, 0xe4, 0x89, 0x21, 0x01, 0x4c, 0x91, 0x90, 0x8a, 0x21, 0x01, - 0xf2, 0xd3, 0x24, 0x81, 0x06, 0x42, 0xa4, 0x02, 0x8b, 0x21, 0x41, 0xd2, - 0x87, 0x23, 0x41, 0x42, 0x17, 0x00, 0x86, 0x21, 0x01, 0xf5, 0x86, 0x23, - 0x41, 0xe1, 0x7e, 0x21, 0x81, 0x25, 0xa8, 0x0c, 0x42, 0x3f, 0x00, 0x84, - 0x21, 0x01, 0x44, 0x82, 0xef, 0x85, 0x21, 0x41, 0xe1, 0x80, 0x21, 0x01, - 0xe5, 0x81, 0x21, 0x01, 0x42, 0x03, 0x00, 0x82, 0x21, 0x01, 0xf5, 0x83, - 0x21, 0xc1, 0x00, 0xec, 0x85, 0x23, 0x41, 0xf2, 0x7f, 0x21, 0x41, 0xe1, - 0x84, 0x23, 0x01, 0xe9, 0x7c, 0x21, 0x41, 0xe5, 0x7a, 0x21, 0x01, 0x42, - 0xf3, 0x0a, 0x7b, 0x21, 0x41, 0xe5, 0x74, 0x21, 0x81, 0x0b, 0xe9, 0x78, - 0x21, 0xc1, 0x00, 0x4b, 0xb1, 0x95, 0x79, 0x21, 0x41, 0x06, 0xb6, 0x27, - 0x01, 0xff, 0x42, 0x6c, 0x02, 0x75, 0x21, 0x01, 0x42, 0xc6, 0x06, 0x76, - 0x21, 0x01, 0x42, 0x77, 0x00, 0x77, 0x21, 0x41, 0xe9, 0x72, 0x21, 0x01, - 0xf5, 0x73, 0x21, 0xc1, 0x00, 0xed, 0x83, 0x23, 0x41, 0xe1, 0xd1, 0x24, - 0x81, 0x09, 0xe9, 0x70, 0x21, 0xc1, 0x00, 0xe4, 0x71, 0x21, 0x41, 0xeb, - 0x6f, 0x21, 0x41, 0x42, 0xc6, 0x06, 0x6d, 0x21, 0x01, 0xed, 0x6e, 0x21, - 0x41, 0xe1, 0x62, 0x21, 0x81, 0x30, 0xe9, 0x67, 0x21, 0x81, 0x0f, 0xf5, - 0x6b, 0x21, 0xc1, 0x00, 0xe4, 0x81, 0x23, 0x01, 0x42, 0xd0, 0xf1, 0x6c, - 0x21, 0x41, 0x42, 0xc5, 0x41, 0x68, 0x21, 0x01, 0x42, 0xa4, 0x02, 0x80, - 0x23, 0xc1, 0x00, 0x80, 0x01, 0xff, 0x4d, 0xbf, 0x50, 0x6a, 0x21, 0x01, - 0x48, 0xf2, 0x55, 0x69, 0x21, 0x41, 0xec, 0x63, 0x21, 0x01, 0x47, 0x13, - 0x5f, 0x64, 0x21, 0x01, 0xf2, 0x65, 0x21, 0xc1, 0x00, 0x51, 0xfa, 0x55, - 0x66, 0x21, 0x41, 0x44, 0x43, 0xad, 0x60, 0x21, 0x01, 0x43, 0xcf, 0x03, - 0x61, 0x21, 0x41, 0xa1, 0x08, 0xe9, 0x5f, 0x21, 0x01, 0xf5, 0xd0, 0x24, - 0x41, 0xe4, 0x5c, 0x21, 0x01, 0x43, 0x22, 0x02, 0x5d, 0x21, 0x01, 0xf2, - 0x5e, 0x21, 0x41, 0xe4, 0x59, 0x21, 0x81, 0x13, 0x44, 0x52, 0xee, 0x7e, - 0x23, 0x01, 0x02, 0xa4, 0x02, 0x01, 0xff, 0xd2, 0x5b, 0x21, 0x01, 0xd3, - 0x7f, 0x23, 0x41, 0x49, 0x44, 0xb2, 0x5a, 0x21, 0x41, 0x42, 0x19, 0x00, - 0x40, 0x21, 0x01, 0xe2, 0x41, 0x21, 0x01, 0x43, 0xfd, 0x7d, 0x42, 0x21, - 0x81, 0x67, 0xe7, 0x45, 0x21, 0x81, 0x42, 0xec, 0x4b, 0x21, 0x81, 0x33, - 0xed, 0x4e, 0x21, 0x81, 0x0e, 0xee, 0x54, 0x21, 0x01, 0xf2, 0x55, 0x21, - 0x01, 0x42, 0xa4, 0x02, 0x56, 0x21, 0x41, 0x80, 0x06, 0x42, 0x9e, 0x01, - 0x53, 0x21, 0x41, 0x4b, 0x66, 0x98, 0x50, 0x21, 0x01, 0x4b, 0xa1, 0x9e, - 0x51, 0x21, 0x01, 0x47, 0xab, 0x05, 0x52, 0x21, 0x01, 0x4a, 0xe9, 0x43, - 0x4f, 0x21, 0x41, 0x50, 0x0a, 0x5f, 0x4c, 0x21, 0x01, 0xd2, 0x4d, 0x21, - 0x41, 0xe9, 0x46, 0x21, 0xc1, 0x00, 0x80, 0x01, 0xff, 0x43, 0xcc, 0xf0, - 0x47, 0x21, 0x01, 0x44, 0xd7, 0x3e, 0x4a, 0x21, 0x01, 0x62, 0x4b, 0x0c, - 0x49, 0x21, 0x01, 0x42, 0x0d, 0x00, 0x48, 0x21, 0x41, 0x0b, 0x9b, 0x95, - 0x01, 0xff, 0x43, 0x37, 0x35, 0x43, 0x21, 0x01, 0x47, 0xab, 0x05, 0x44, - 0x21, 0x41, 0xe1, 0x29, 0x21, 0x81, 0x7e, 0xe9, 0x2d, 0x21, 0x81, 0x3b, - 0xf5, 0x37, 0x21, 0xc1, 0x00, 0x42, 0x8a, 0x5f, 0x38, 0x21, 0x81, 0x0c, - 0x42, 0x20, 0xea, 0x3e, 0x21, 0x01, 0x42, 0xa4, 0x02, 0x7d, 0x23, 0x41, - 0x07, 0x27, 0x02, 0x01, 0xff, 0x42, 0x1a, 0x00, 0x39, 0x21, 0x01, 0x43, - 0x22, 0x00, 0x3a, 0x21, 0x01, 0x46, 0x1b, 0x02, 0x3b, 0x21, 0x01, 0x44, - 0x29, 0x90, 0x3c, 0x21, 0x01, 0x42, 0x63, 0x0c, 0x3d, 0x21, 0x41, 0x07, - 0x27, 0x02, 0x01, 0xff, 0x43, 0xce, 0x03, 0x2e, 0x21, 0x81, 0x28, 0x43, - 0x4f, 0x6f, 0x30, 0x21, 0x01, 0x44, 0x81, 0x0c, 0x31, 0x21, 0x01, 0x43, - 0xbd, 0x1d, 0x32, 0x21, 0x01, 0x43, 0x10, 0x04, 0x33, 0x21, 0x01, 0x43, - 0x54, 0x22, 0x34, 0x21, 0x01, 0x43, 0x63, 0x06, 0x35, 0x21, 0x01, 0xf5, - 0x36, 0x21, 0x41, 0x52, 0xbf, 0x03, 0xcf, 0x24, 0x01, 0xd2, 0x2f, 0x21, - 0x41, 0x80, 0x04, 0xec, 0x2c, 0x21, 0x41, 0x44, 0xd7, 0x3e, 0x2b, 0x21, - 0x01, 0x44, 0x06, 0x5f, 0x2a, 0x21, 0xc1, 0x00, 0x45, 0xd6, 0x3e, 0xce, - 0x24, 0x41, 0xe1, 0xb5, 0x20, 0x81, 0xcc, 0x02, 0xa5, 0xad, 0x02, 0xe9, - 0x00, 0x21, 0x81, 0x87, 0x01, 0xf5, 0x16, 0x21, 0xc1, 0x00, 0x4c, 0x4d, - 0x89, 0x17, 0x21, 0x01, 0xd2, 0x18, 0x21, 0x81, 0x4a, 0xe4, 0x1e, 0x21, - 0x81, 0x25, 0xec, 0x22, 0x21, 0x01, 0xed, 0x23, 0x21, 0x81, 0x16, 0xf2, - 0x25, 0x21, 0xc1, 0x00, 0xd7, 0x26, 0x21, 0x01, 0xb5, 0x01, 0xff, 0xee, - 0x27, 0x21, 0x01, 0x42, 0xa4, 0x02, 0x28, 0x21, 0x41, 0x4a, 0xfb, 0xa3, - 0x24, 0x21, 0x41, 0x80, 0x01, 0xff, 0x4e, 0x86, 0x79, 0x21, 0x21, 0x01, - 0x54, 0xdf, 0x43, 0xcd, 0x24, 0x01, 0x06, 0x28, 0x02, 0x01, 0xff, 0x4a, - 0xf5, 0xa4, 0x1f, 0x21, 0x01, 0x43, 0x9b, 0x5c, 0x20, 0x21, 0x41, 0x80, - 0x01, 0xff, 0x44, 0xd7, 0x3e, 0x1d, 0x21, 0x01, 0x06, 0x28, 0x02, 0x01, - 0xff, 0x48, 0x54, 0x68, 0xcc, 0x24, 0x01, 0x43, 0xe0, 0x5e, 0x19, 0x21, - 0x81, 0x0c, 0x43, 0x54, 0x22, 0x1b, 0x21, 0x01, 0x4d, 0xab, 0x86, 0x1c, - 0x21, 0x41, 0x4f, 0x4d, 0x68, 0x1a, 0x21, 0x41, 0x80, 0x8a, 0x01, 0xd4, - 0x04, 0x21, 0x81, 0x76, 0x43, 0xfd, 0x7d, 0x07, 0x21, 0x01, 0xe7, 0x7c, - 0x23, 0x01, 0xb2, 0x37, 0xb3, 0x01, 0xff, 0x42, 0x13, 0x00, 0x10, 0x21, - 0x01, 0xe8, 0x11, 0x21, 0xc1, 0x00, 0x80, 0x01, 0xff, 0x4d, 0xbf, 0x50, - 0x12, 0x21, 0x01, 0xb4, 0x01, 0xff, 0x43, 0x07, 0x5f, 0x15, 0x21, 0x01, - 0x05, 0x29, 0x02, 0x01, 0xff, 0x43, 0x4f, 0x6f, 0x13, 0x21, 0x01, 0x52, - 0xba, 0x50, 0xcb, 0x24, 0x01, 0x44, 0xef, 0x43, 0x14, 0x21, 0x41, 0xd2, - 0x08, 0x21, 0x81, 0x28, 0xd3, 0x0a, 0x21, 0xc1, 0x00, 0x07, 0x27, 0x02, - 0x01, 0xff, 0x4a, 0xeb, 0xa4, 0x0b, 0x21, 0x01, 0x49, 0x11, 0x5f, 0x0c, - 0x21, 0x01, 0x43, 0xc5, 0x06, 0x0d, 0x21, 0x01, 0x4b, 0xff, 0x9c, 0x0e, - 0x21, 0x01, 0x42, 0x6c, 0x09, 0x0f, 0x21, 0x41, 0x45, 0xd6, 0x3e, 0x09, - 0x21, 0x41, 0x80, 0x01, 0xff, 0x4c, 0xd5, 0x8b, 0x06, 0x21, 0x01, 0x48, - 0xea, 0xc6, 0x05, 0x21, 0x41, 0x4b, 0xbf, 0x50, 0x03, 0x21, 0x01, 0x06, - 0x28, 0x02, 0x01, 0xff, 0xe5, 0x01, 0x21, 0x01, 0xf5, 0x02, 0x21, 0x41, - 0x42, 0x21, 0xea, 0x7b, 0x23, 0x01, 0x45, 0xcd, 0xe7, 0xfe, 0x20, 0xc1, - 0x00, 0x07, 0x27, 0x02, 0x01, 0xff, 0x43, 0x9b, 0x5c, 0xff, 0x20, 0x01, - 0xf5, 0xca, 0x24, 0x41, 0x45, 0xd6, 0x3e, 0xb6, 0x20, 0x01, 0xd2, 0xb7, - 0x20, 0x81, 0x64, 0x42, 0x16, 0x00, 0xee, 0x20, 0x81, 0x4e, 0xe4, 0xf0, - 0x20, 0x81, 0x43, 0xec, 0xf2, 0x20, 0x81, 0x32, 0xed, 0xf5, 0x20, 0x01, - 0xee, 0xf6, 0x20, 0x81, 0x0f, 0xf2, 0xfb, 0x20, 0x81, 0x06, 0x44, 0x66, - 0x38, 0xfd, 0x20, 0x41, 0xd3, 0xfc, 0x20, 0x41, 0xd2, 0xf7, 0x20, 0xc1, - 0x00, 0x80, 0x01, 0xff, 0x4d, 0x2b, 0x80, 0xfa, 0x20, 0x01, 0x49, 0x44, - 0xbb, 0xf9, 0x20, 0x01, 0x44, 0x06, 0x5f, 0xf8, 0x20, 0x41, 0x5a, 0xbc, - 0x1d, 0xf3, 0x20, 0x01, 0x42, 0x57, 0x00, 0xf4, 0x20, 0x41, 0x56, 0xc0, - 0x1d, 0xf1, 0x20, 0x41, 0x80, 0x01, 0xff, 0x4d, 0x1e, 0x80, 0xef, 0x20, - 0x01, 0x56, 0x03, 0x2c, 0xc9, 0x24, 0x41, 0x80, 0x01, 0xff, 0x48, 0xe2, - 0xc6, 0xed, 0x20, 0x01, 0x06, 0x28, 0x02, 0x01, 0xff, 0xa1, 0xb0, 0x03, - 0xa2, 0x8e, 0x03, 0xa4, 0xd9, 0x02, 0xa5, 0xba, 0x02, 0xa7, 0x80, 0x02, - 0xa8, 0xd6, 0x01, 0xa9, 0xc7, 0x01, 0xab, 0x9c, 0x01, 0xac, 0x83, 0x01, - 0xad, 0x71, 0xae, 0x4c, 0x42, 0x6c, 0x09, 0xe2, 0x20, 0x01, 0xb3, 0x1c, - 0x44, 0xef, 0x43, 0xe9, 0x20, 0x01, 0xf5, 0xea, 0x20, 0x81, 0x06, 0x44, - 0x16, 0xf0, 0xc8, 0x24, 0x41, 0xe4, 0xeb, 0x20, 0xc1, 0x00, 0x48, 0xe2, - 0xbf, 0xec, 0x20, 0x41, 0xa1, 0x1e, 0xa8, 0x06, 0x42, 0x1d, 0x04, 0xe8, - 0x20, 0x41, 0xe5, 0xe5, 0x20, 0x81, 0x0b, 0xa9, 0x01, 0xff, 0xe4, 0xe7, - 0x20, 0x01, 0xed, 0xc7, 0x24, 0x41, 0x49, 0x5f, 0xb2, 0xe6, 0x20, 0x41, - 0xec, 0xe3, 0x20, 0x01, 0xf2, 0xe4, 0x20, 0x41, 0xe5, 0xc4, 0x24, 0x81, - 0x0d, 0x42, 0xf3, 0x0a, 0xe0, 0x20, 0xc1, 0x00, 0x49, 0x4e, 0x22, 0xe1, - 0x20, 0x41, 0x06, 0xb6, 0x27, 0x01, 0xff, 0x42, 0x58, 0x99, 0xc5, 0x24, - 0x01, 0x42, 0xc6, 0x06, 0xc6, 0x24, 0x41, 0x49, 0x68, 0xab, 0xde, 0x20, - 0x01, 0xe9, 0xdf, 0x20, 0x01, 0x43, 0xcf, 0x7a, 0xc3, 0x24, 0x41, 0xe1, - 0xdd, 0x20, 0x81, 0x06, 0x42, 0x5e, 0x74, 0xc2, 0x24, 0x41, 0xed, 0xc0, - 0x24, 0xc1, 0x00, 0x4a, 0x94, 0x5c, 0xc1, 0x24, 0x41, 0xa1, 0x1c, 0x42, - 0x03, 0x00, 0xda, 0x20, 0x81, 0x0f, 0xb5, 0x01, 0xff, 0x49, 0x01, 0xb3, - 0xdc, 0x20, 0x01, 0x50, 0x8a, 0x65, 0xbf, 0x24, 0x41, 0x49, 0x4d, 0xb2, - 0xdb, 0x20, 0x41, 0xeb, 0xd8, 0x20, 0x01, 0x44, 0x1d, 0x02, 0xd9, 0x20, - 0x41, 0x47, 0x55, 0x68, 0xd6, 0x20, 0x01, 0x53, 0xc5, 0x4b, 0xd7, 0x20, - 0x41, 0xa1, 0x0c, 0x49, 0x78, 0xb7, 0xd4, 0x20, 0x01, 0x43, 0x1f, 0xed, - 0xd5, 0x20, 0x41, 0x06, 0xb6, 0x27, 0x0b, 0xec, 0xd2, 0x20, 0xc1, 0x00, - 0x48, 0x4d, 0xb2, 0xd3, 0x20, 0x41, 0xe1, 0xbe, 0x24, 0x01, 0x4c, 0xd1, - 0x8f, 0xd1, 0x20, 0x41, 0xe1, 0xbb, 0x24, 0x81, 0x16, 0xe9, 0xcd, 0x20, - 0xc1, 0x00, 0xd4, 0xce, 0x20, 0x81, 0x06, 0x4a, 0x8d, 0xad, 0xd0, 0x20, - 0x41, 0x47, 0xb6, 0x27, 0xcf, 0x20, 0x41, 0x47, 0x13, 0x5f, 0xcb, 0x20, - 0x01, 0xf2, 0xcc, 0x20, 0xc1, 0x00, 0x06, 0xb6, 0x27, 0x01, 0xff, 0x42, - 0x00, 0x00, 0xbc, 0x24, 0x01, 0x42, 0xa2, 0x05, 0xbd, 0x24, 0x41, 0xec, - 0xc7, 0x20, 0x81, 0x11, 0xee, 0xc9, 0x20, 0x81, 0x06, 0x43, 0x52, 0x21, - 0xba, 0x24, 0x41, 0x50, 0x0a, 0x5f, 0xca, 0x20, 0x41, 0x48, 0x4d, 0xb2, - 0xc8, 0x20, 0x41, 0xe1, 0xc3, 0x20, 0x01, 0xe9, 0xc4, 0x20, 0x81, 0x18, - 0xb5, 0x01, 0xff, 0xe2, 0xc6, 0x20, 0x01, 0x08, 0xc0, 0x7a, 0x01, 0xff, - 0x48, 0x54, 0x68, 0xb8, 0x24, 0x01, 0x46, 0x1b, 0x02, 0xb9, 0x24, 0x41, - 0x02, 0x1e, 0x04, 0x01, 0xff, 0x44, 0xd7, 0x3e, 0xb7, 0x24, 0x01, 0x49, - 0xfc, 0xa3, 0xc5, 0x20, 0x41, 0xa1, 0x0d, 0x42, 0x42, 0x00, 0xc1, 0x20, - 0xc1, 0x00, 0x48, 0xf9, 0xbb, 0xc2, 0x20, 0x41, 0xe4, 0xbf, 0x20, 0x01, - 0x44, 0xc3, 0x41, 0xb6, 0x24, 0x01, 0x49, 0xf8, 0xbb, 0xc0, 0x20, 0x41, - 0x06, 0xb6, 0x27, 0x23, 0x50, 0x8a, 0x5f, 0xbb, 0x20, 0x01, 0xee, 0xbc, - 0x20, 0x81, 0x12, 0x42, 0xa4, 0x02, 0xbd, 0x20, 0xc1, 0x00, 0xd2, 0x7a, - 0x23, 0xc1, 0x00, 0x49, 0x32, 0xb2, 0xbe, 0x20, 0x41, 0x50, 0xda, 0x5e, - 0x79, 0x23, 0x41, 0x4a, 0xe9, 0xa6, 0xb8, 0x20, 0x01, 0x42, 0x22, 0x00, - 0xb9, 0x20, 0x01, 0x43, 0xc5, 0x06, 0xba, 0x20, 0x41, 0x80, 0xe7, 0x02, - 0xd2, 0x8d, 0x20, 0x81, 0xac, 0x02, 0x43, 0xd9, 0x05, 0x94, 0x20, 0x01, - 0x43, 0x7a, 0xe4, 0x95, 0x20, 0x01, 0xec, 0x96, 0x20, 0x01, 0xee, 0x97, - 0x20, 0x81, 0xe9, 0x01, 0xb2, 0xd3, 0x01, 0x43, 0xcf, 0x03, 0xa0, 0x20, - 0x81, 0xc5, 0x01, 0x43, 0xfc, 0x09, 0xa1, 0x20, 0xc1, 0x00, 0x80, 0x01, - 0xff, 0x0e, 0xba, 0x7a, 0x88, 0x01, 0x06, 0x28, 0x02, 0x01, 0xff, 0xe1, - 0xa2, 0x20, 0x81, 0x6d, 0x43, 0x4f, 0x6f, 0xa6, 0x20, 0x01, 0x49, 0xb2, - 0x75, 0xa7, 0x20, 0x81, 0x5a, 0x43, 0x8b, 0x79, 0x77, 0x23, 0x01, 0x42, - 0x22, 0x00, 0xa9, 0x20, 0x81, 0x47, 0x48, 0x54, 0x68, 0xab, 0x20, 0x01, - 0xab, 0x2c, 0xac, 0x17, 0xb3, 0x0b, 0xb5, 0x01, 0xff, 0xd2, 0xb3, 0x20, - 0x01, 0xe4, 0xb4, 0x20, 0x41, 0x42, 0xb0, 0x01, 0x78, 0x23, 0x01, 0xf5, - 0xb5, 0x24, 0x41, 0xe1, 0xaf, 0x20, 0x81, 0x08, 0xe9, 0xb1, 0x20, 0x01, - 0xf5, 0xb2, 0x20, 0x41, 0x4b, 0x02, 0x9c, 0xb0, 0x20, 0x41, 0x45, 0x1c, - 0x02, 0xac, 0x20, 0x81, 0x06, 0x42, 0xbf, 0x3c, 0xae, 0x20, 0x41, 0x48, - 0xaa, 0x05, 0xad, 0x20, 0x41, 0x45, 0xd6, 0x3e, 0xaa, 0x20, 0x41, 0x45, - 0xd6, 0x3e, 0xa8, 0x20, 0x41, 0x49, 0x4d, 0xb2, 0xa3, 0x20, 0x81, 0x04, - 0xee, 0xa5, 0x20, 0x41, 0x4a, 0x03, 0x9c, 0xa4, 0x20, 0x41, 0x43, 0xce, - 0x03, 0xad, 0x24, 0x01, 0x42, 0x49, 0x00, 0xae, 0x24, 0x01, 0x48, 0x54, - 0x68, 0xaf, 0x24, 0x01, 0x42, 0x74, 0x00, 0xb0, 0x24, 0x81, 0x11, 0x42, - 0x2a, 0x02, 0xb2, 0x24, 0x81, 0x06, 0x42, 0x6f, 0x00, 0xb4, 0x24, 0x41, - 0xf3, 0xb3, 0x24, 0x41, 0xec, 0xb1, 0x24, 0x41, 0x4e, 0xd6, 0x73, 0xac, - 0x24, 0x41, 0x42, 0x92, 0x01, 0x9e, 0x20, 0x01, 0x43, 0x44, 0xad, 0x9f, - 0x20, 0xc1, 0x00, 0x42, 0xaf, 0x62, 0xab, 0x24, 0x41, 0x80, 0x01, 0xff, - 0x4b, 0x5b, 0x98, 0x9b, 0x20, 0x01, 0x4b, 0x96, 0x9e, 0x9c, 0x20, 0x01, - 0x47, 0xab, 0x05, 0x9d, 0x20, 0x01, 0x06, 0x28, 0x02, 0x01, 0xff, 0x44, - 0x11, 0x5f, 0x98, 0x20, 0x81, 0x06, 0x42, 0x2a, 0x02, 0x9a, 0x20, 0x41, - 0x45, 0x05, 0x5f, 0x99, 0x20, 0x41, 0x07, 0x27, 0x02, 0x01, 0xff, 0x51, - 0x82, 0x56, 0x8e, 0x20, 0x01, 0x43, 0xca, 0x1d, 0x8f, 0x20, 0x01, 0x43, - 0x9b, 0x5c, 0xa9, 0x24, 0x01, 0x42, 0x7d, 0x02, 0x90, 0x20, 0x01, 0x43, - 0xa0, 0x0e, 0xaa, 0x24, 0x01, 0xb3, 0x04, 0xf5, 0x93, 0x20, 0x41, 0x42, - 0x13, 0x00, 0x91, 0x20, 0x01, 0x42, 0xb0, 0x01, 0x92, 0x20, 0x41, 0x53, - 0xa8, 0x4a, 0x8c, 0x20, 0x01, 0x49, 0x57, 0xbd, 0x8b, 0x20, 0x41, 0xe1, - 0x55, 0x20, 0x81, 0xe6, 0x02, 0xe9, 0x72, 0x20, 0x81, 0x9e, 0x02, 0xf5, - 0x7a, 0x20, 0xc1, 0x00, 0x80, 0x84, 0x02, 0xe2, 0x7e, 0x20, 0x81, 0xea, - 0x01, 0xe7, 0x81, 0x20, 0x81, 0x25, 0xe8, 0x83, 0x20, 0x01, 0xee, 0x84, - 0x20, 0x81, 0x06, 0x42, 0xc5, 0x41, 0x89, 0x20, 0x41, 0xd3, 0x85, 0x20, - 0x81, 0x04, 0xd4, 0x88, 0x20, 0x41, 0x45, 0xd6, 0x3e, 0x86, 0x20, 0xc1, - 0x00, 0x45, 0xd6, 0x3e, 0x87, 0x20, 0x41, 0x07, 0x27, 0x02, 0x06, 0x42, - 0x63, 0x0c, 0x82, 0x20, 0x41, 0xa1, 0xa0, 0x01, 0xa4, 0x91, 0x01, 0x45, - 0x42, 0xad, 0x92, 0x24, 0x01, 0xa7, 0x74, 0xa8, 0x6a, 0x48, 0x54, 0x68, - 0x99, 0x24, 0x01, 0xab, 0x48, 0xac, 0x2d, 0xad, 0x1b, 0x42, 0x26, 0x03, - 0xa5, 0x24, 0x01, 0x42, 0xbb, 0x05, 0xa6, 0x24, 0x01, 0xb3, 0x01, 0xff, - 0x42, 0xb0, 0x01, 0xa7, 0x24, 0x01, 0x46, 0x56, 0x68, 0xa8, 0x24, 0x41, - 0x43, 0xce, 0x03, 0xa2, 0x24, 0x01, 0x42, 0xed, 0x00, 0xa3, 0x24, 0x01, - 0xe9, 0xa4, 0x24, 0x41, 0xa1, 0x06, 0x4c, 0x5d, 0x94, 0xa1, 0x24, 0x41, - 0x45, 0xa8, 0xe4, 0x9e, 0x24, 0x01, 0xed, 0x9f, 0x24, 0xc1, 0x00, 0x4a, - 0x94, 0x5c, 0xa0, 0x24, 0x41, 0x45, 0x1c, 0x02, 0x9a, 0x24, 0x01, 0xb5, - 0x01, 0xff, 0xf2, 0x9b, 0x24, 0x01, 0x44, 0x8a, 0x65, 0x9c, 0x24, 0xc1, - 0x00, 0x4c, 0x8e, 0x65, 0x9d, 0x24, 0x41, 0xe1, 0x97, 0x24, 0x01, 0xe9, - 0x98, 0x24, 0x41, 0xe1, 0x93, 0x24, 0x01, 0xe9, 0x94, 0x24, 0xc1, 0x00, - 0x47, 0x3a, 0xd2, 0x95, 0x24, 0x01, 0x42, 0xa4, 0x02, 0x96, 0x24, 0x41, - 0x42, 0x9e, 0x01, 0x90, 0x24, 0x01, 0x42, 0xf3, 0x0a, 0x91, 0x24, 0x41, - 0x44, 0x52, 0xee, 0x8d, 0x24, 0x01, 0x42, 0xa4, 0x02, 0x8e, 0x24, 0xc1, - 0x00, 0x48, 0x8a, 0x16, 0x8f, 0x24, 0x41, 0x07, 0x27, 0x02, 0x04, 0xd2, - 0x80, 0x20, 0x41, 0x44, 0xe0, 0x73, 0x7f, 0x20, 0x01, 0x43, 0x63, 0x06, - 0x76, 0x23, 0x41, 0x44, 0xd7, 0x3e, 0x7c, 0x20, 0x01, 0x47, 0x76, 0xd1, - 0x7b, 0x20, 0x01, 0x47, 0xba, 0x7a, 0x7d, 0x20, 0x41, 0xe2, 0x73, 0x20, - 0x01, 0xed, 0x74, 0x20, 0x81, 0x18, 0xee, 0x77, 0x20, 0x81, 0x0d, 0x42, - 0xa4, 0x02, 0x79, 0x20, 0xc1, 0x00, 0x49, 0xbf, 0xa3, 0x75, 0x23, 0x41, - 0x53, 0x47, 0x46, 0x78, 0x20, 0x41, 0x07, 0x27, 0x02, 0x0b, 0xd2, 0x76, - 0x20, 0xc1, 0x00, 0x49, 0x9e, 0xb2, 0x8c, 0x24, 0x41, 0x43, 0xc5, 0x06, - 0x8a, 0x24, 0x01, 0x43, 0x63, 0x06, 0x75, 0x20, 0x01, 0x45, 0x86, 0xe8, - 0x8b, 0x24, 0x41, 0x4b, 0xe8, 0x43, 0x88, 0x24, 0x01, 0xe7, 0x56, 0x20, - 0x81, 0x14, 0xed, 0x6e, 0x20, 0x01, 0xf2, 0x6f, 0x20, 0xc1, 0x00, 0xa1, - 0x01, 0xff, 0xd3, 0x70, 0x20, 0x01, 0xd4, 0x71, 0x20, 0x41, 0x80, 0x04, - 0xd3, 0x74, 0x23, 0x41, 0x0d, 0x75, 0x6d, 0x06, 0x49, 0x95, 0x5c, 0x89, - 0x24, 0x41, 0xa1, 0x89, 0x01, 0xa2, 0x7d, 0xa7, 0x5f, 0x42, 0x22, 0x00, - 0x60, 0x20, 0x01, 0x42, 0x46, 0x00, 0x61, 0x20, 0x81, 0x4c, 0x43, 0xe0, - 0x5e, 0x63, 0x20, 0x01, 0xac, 0x31, 0x42, 0xa2, 0x05, 0x68, 0x20, 0x01, - 0x4c, 0xac, 0x3c, 0x69, 0x20, 0x01, 0x42, 0x2f, 0x03, 0x6a, 0x20, 0x01, - 0x44, 0xef, 0x43, 0x6b, 0x20, 0x01, 0xb5, 0x01, 0xff, 0x07, 0x8d, 0x65, - 0x06, 0x42, 0xa4, 0x02, 0x6d, 0x20, 0x41, 0x44, 0xc6, 0xec, 0x6c, 0x20, - 0x01, 0x44, 0x61, 0x06, 0x73, 0x23, 0x41, 0xe1, 0x64, 0x20, 0x01, 0xf5, - 0x65, 0x20, 0xc1, 0x00, 0x4b, 0xa6, 0x95, 0x66, 0x20, 0x01, 0xed, 0x67, - 0x20, 0x41, 0x48, 0xb8, 0x3c, 0x62, 0x20, 0x41, 0xe1, 0x5b, 0x20, 0x81, - 0x11, 0xe9, 0x5d, 0x20, 0x81, 0x06, 0x42, 0x63, 0x0c, 0x5f, 0x20, 0x41, - 0x42, 0xc5, 0x41, 0x5e, 0x20, 0x41, 0x4a, 0xa6, 0x95, 0x5c, 0x20, 0x41, - 0x44, 0x8e, 0xe1, 0x59, 0x20, 0x01, 0xe9, 0x5a, 0x20, 0x41, 0x4a, 0xa6, - 0x95, 0x57, 0x20, 0x01, 0x43, 0xb9, 0x00, 0x58, 0x20, 0x41, 0xe1, 0x40, - 0x20, 0x81, 0x54, 0xe9, 0x49, 0x20, 0x81, 0x3a, 0xf5, 0x4d, 0x20, 0xc1, - 0x00, 0x80, 0x16, 0x43, 0x8f, 0x79, 0x51, 0x20, 0x81, 0x09, 0xf2, 0x53, - 0x20, 0xc1, 0x00, 0xd2, 0x54, 0x20, 0x41, 0x4b, 0x90, 0x95, 0x52, 0x20, - 0x41, 0x4b, 0x50, 0x98, 0x50, 0x20, 0x01, 0x08, 0xda, 0xc6, 0x01, 0xff, - 0x42, 0x5c, 0x00, 0x4e, 0x20, 0x01, 0x49, 0x4e, 0xbd, 0x87, 0x24, 0x01, - 0x42, 0xf3, 0x0a, 0x4f, 0x20, 0x41, 0x07, 0x27, 0x02, 0x01, 0xff, 0xe1, - 0x4a, 0x20, 0x01, 0x43, 0xca, 0x1d, 0x4b, 0x20, 0x01, 0x48, 0x54, 0x68, - 0x4c, 0x20, 0x41, 0xe4, 0x41, 0x20, 0x81, 0x40, 0x42, 0xca, 0xf1, 0x42, - 0x20, 0x01, 0x44, 0xc3, 0x41, 0x43, 0x20, 0x81, 0x1c, 0xec, 0x44, 0x20, - 0x81, 0x0b, 0xf2, 0x47, 0x20, 0xc1, 0x00, 0x42, 0xfa, 0x7d, 0x48, 0x20, - 0x41, 0x49, 0x20, 0xb2, 0x45, 0x20, 0x01, 0x42, 0x23, 0x02, 0x46, 0x20, - 0x41, 0x07, 0x27, 0x02, 0x01, 0xff, 0x43, 0x09, 0xa5, 0x84, 0x24, 0x01, - 0x42, 0x26, 0x03, 0x85, 0x24, 0x01, 0x42, 0x59, 0x00, 0x86, 0x24, 0x41, - 0x50, 0xfa, 0x5e, 0x83, 0x24, 0x41, 0x07, 0x27, 0x02, 0x9d, 0x03, 0xd2, - 0x09, 0x20, 0x01, 0xe2, 0x0a, 0x20, 0x81, 0x83, 0x02, 0xe4, 0x1c, 0x20, - 0x81, 0xf7, 0x01, 0xeb, 0x1d, 0x20, 0x81, 0xe0, 0x01, 0xec, 0x20, 0x20, - 0x81, 0x9a, 0x01, 0x43, 0xb9, 0x00, 0x2b, 0x20, 0x81, 0x81, 0x01, 0xee, - 0x2d, 0x20, 0x81, 0x58, 0x43, 0xd9, 0x12, 0x33, 0x20, 0x01, 0xb2, 0x3d, - 0xb3, 0x01, 0xff, 0x43, 0x96, 0xf0, 0x37, 0x20, 0x01, 0xe8, 0x38, 0x20, - 0xc1, 0x00, 0x80, 0x0a, 0xd2, 0x3e, 0x20, 0x01, 0x43, 0x24, 0x02, 0x3f, - 0x20, 0x41, 0x49, 0x98, 0xa3, 0x3a, 0x20, 0x01, 0x09, 0x53, 0x10, 0x06, - 0x49, 0x58, 0x93, 0x39, 0x20, 0x41, 0x48, 0x53, 0x10, 0x3c, 0x20, 0x81, - 0x06, 0x61, 0x82, 0x0e, 0x3b, 0x20, 0x41, 0x5f, 0x45, 0x10, 0x3d, 0x20, - 0x41, 0x42, 0xe8, 0x01, 0x34, 0x20, 0x81, 0x06, 0x43, 0xf4, 0x9b, 0x36, - 0x20, 0x41, 0x4a, 0x94, 0x5c, 0x35, 0x20, 0x41, 0x80, 0x06, 0x43, 0x63, - 0x06, 0x32, 0x20, 0x41, 0x47, 0x6f, 0xd1, 0x2e, 0x20, 0x01, 0x0a, 0x47, - 0xad, 0x06, 0x4b, 0x4b, 0xa1, 0x2f, 0x20, 0x41, 0x55, 0x97, 0x3c, 0x30, - 0x20, 0x01, 0x47, 0xab, 0x05, 0x31, 0x20, 0x41, 0x07, 0x27, 0x02, 0x01, - 0xff, 0x43, 0x1d, 0xf1, 0x72, 0x23, 0x01, 0x43, 0x63, 0x06, 0x2c, 0x20, - 0x41, 0x07, 0x27, 0x02, 0x0c, 0x42, 0x1a, 0x00, 0x29, 0x20, 0x01, 0x43, - 0x49, 0x3c, 0x2a, 0x20, 0x41, 0x42, 0x13, 0x00, 0x21, 0x20, 0x01, 0x44, - 0x56, 0xec, 0x22, 0x20, 0x01, 0x44, 0xe4, 0x43, 0x23, 0x20, 0x01, 0x42, - 0x22, 0x00, 0x24, 0x20, 0x01, 0xab, 0x0c, 0x43, 0x63, 0x06, 0x27, 0x20, - 0x01, 0x43, 0xcf, 0x7a, 0x28, 0x20, 0x41, 0x43, 0x83, 0xed, 0x25, 0x20, - 0x01, 0xe9, 0x26, 0x20, 0x41, 0x07, 0x27, 0x02, 0x01, 0xff, 0x45, 0x42, - 0xad, 0x1e, 0x20, 0x01, 0x4f, 0x71, 0x71, 0x1f, 0x20, 0x41, 0x4b, 0xe8, - 0x95, 0x82, 0x24, 0x41, 0x80, 0x2c, 0xd2, 0x16, 0x20, 0xc1, 0x00, 0x07, - 0x27, 0x02, 0x01, 0xff, 0xe1, 0x71, 0x23, 0x01, 0x45, 0x8d, 0xe1, 0x17, - 0x20, 0x01, 0x49, 0x11, 0x5f, 0x18, 0x20, 0x01, 0x4a, 0x67, 0xab, 0x19, - 0x20, 0x01, 0x44, 0x00, 0x56, 0x1a, 0x20, 0x01, 0x44, 0xef, 0x43, 0x1b, - 0x20, 0x41, 0x44, 0xd7, 0x3e, 0x15, 0x20, 0x01, 0x06, 0x28, 0x02, 0x01, - 0xff, 0x44, 0xce, 0x03, 0x0b, 0x20, 0x01, 0x49, 0xb2, 0x75, 0x0c, 0x20, - 0x01, 0x02, 0x24, 0x02, 0x3d, 0x42, 0x22, 0x00, 0x0f, 0x20, 0x01, 0xa9, - 0x29, 0x45, 0x22, 0x02, 0x12, 0x20, 0x01, 0x43, 0x54, 0x22, 0x70, 0x23, - 0x81, 0x16, 0x02, 0xa4, 0x02, 0x06, 0x4f, 0x8e, 0x72, 0x14, 0x20, 0x41, - 0x43, 0x28, 0x59, 0x13, 0x20, 0x01, 0x42, 0x8c, 0x65, 0x81, 0x24, 0x41, - 0x45, 0x05, 0x5f, 0x80, 0x24, 0x41, 0x47, 0x55, 0x68, 0x10, 0x20, 0x01, - 0x43, 0x7c, 0x13, 0x11, 0x20, 0x41, 0xec, 0x0d, 0x20, 0x01, 0x47, 0x13, - 0x5f, 0x0e, 0x20, 0x41, 0xe1, 0x01, 0x20, 0x01, 0x43, 0x4f, 0x6f, 0x02, - 0x20, 0x01, 0x49, 0x11, 0x5f, 0x03, 0x20, 0x01, 0x42, 0x22, 0x00, 0x04, - 0x20, 0x01, 0x43, 0xc5, 0x06, 0x05, 0x20, 0x01, 0x4a, 0xd1, 0x3e, 0x06, - 0x20, 0x01, 0x44, 0x41, 0x80, 0x07, 0x20, 0x01, 0x43, 0x21, 0x87, 0x08, - 0x20, 0x41, 0x09, 0x42, 0x25, 0x0c, 0x59, 0xa6, 0x24, 0x70, 0x24, 0x01, - 0x4e, 0xf8, 0x7c, 0x71, 0x24, 0x41, 0x45, 0xc4, 0x3a, 0x72, 0x24, 0x01, - 0x49, 0xd4, 0xbb, 0x74, 0x24, 0x01, 0x48, 0x0a, 0xc9, 0x73, 0x24, 0x41, - 0xa5, 0xb5, 0x05, 0xa6, 0xf6, 0x03, 0x02, 0x26, 0x03, 0xa4, 0x03, 0xaf, - 0xb7, 0x02, 0xb3, 0xb5, 0x01, 0xb4, 0x01, 0xff, 0x05, 0x25, 0x01, 0x4f, - 0x03, 0xd1, 0x09, 0x01, 0xff, 0x43, 0xce, 0x03, 0x00, 0x24, 0x81, 0x3d, - 0xa2, 0x2f, 0x45, 0x13, 0xe3, 0x59, 0x24, 0x01, 0x04, 0x4d, 0x6a, 0x1d, - 0x04, 0xa5, 0xae, 0x11, 0x07, 0x63, 0x73, 0x01, 0xff, 0x44, 0x81, 0x0c, - 0x5b, 0x24, 0x01, 0x4e, 0x8c, 0x5d, 0x5e, 0x24, 0x41, 0xd2, 0x23, 0x24, - 0x01, 0xf5, 0x2d, 0x24, 0x41, 0xd2, 0x16, 0x24, 0x01, 0xf5, 0x1f, 0x24, - 0x41, 0x43, 0x12, 0x5f, 0x50, 0x24, 0x01, 0x43, 0x7d, 0xa8, 0x35, 0x24, - 0x41, 0x45, 0x05, 0x5f, 0x4a, 0x24, 0x41, 0x43, 0xce, 0x03, 0x01, 0x24, - 0x81, 0x52, 0xa2, 0x3d, 0x44, 0x81, 0x0c, 0x08, 0x24, 0x01, 0x04, 0x4d, - 0x6a, 0x2b, 0x04, 0xa5, 0xae, 0x11, 0x10, 0xda, 0x66, 0x01, 0xff, 0x42, - 0x9e, 0xf1, 0x3a, 0x24, 0x01, 0x42, 0xa9, 0xd5, 0x3b, 0x24, 0x41, 0xd2, - 0x24, 0x24, 0x81, 0x0b, 0xf5, 0x2e, 0x24, 0xc1, 0x00, 0x4d, 0x4a, 0x7e, - 0x2f, 0x24, 0x41, 0x4d, 0x4a, 0x7e, 0x25, 0x24, 0x41, 0xd2, 0x17, 0x24, - 0x01, 0xf5, 0x20, 0x24, 0x41, 0x43, 0x12, 0x5f, 0x51, 0x24, 0x01, 0x43, - 0x7d, 0xa8, 0x36, 0x24, 0xc1, 0x00, 0x4d, 0x4a, 0x7e, 0x37, 0x24, 0x41, - 0x45, 0x05, 0x5f, 0x4b, 0x24, 0x41, 0x05, 0xe8, 0x21, 0x45, 0x14, 0xc3, - 0x41, 0x35, 0x03, 0xb6, 0x51, 0x01, 0xff, 0x43, 0xce, 0x03, 0x04, 0x24, - 0x81, 0x23, 0x44, 0x81, 0x0c, 0x0b, 0x24, 0x01, 0x45, 0x8b, 0xe3, 0x1a, - 0x24, 0x01, 0x45, 0xb4, 0xe7, 0x28, 0x24, 0x01, 0xf5, 0x11, 0x24, 0x81, - 0x06, 0x51, 0x8c, 0x5d, 0x40, 0x24, 0x41, 0x4d, 0x4a, 0x7e, 0x6b, 0x24, - 0x41, 0x45, 0x05, 0x5f, 0x4e, 0x24, 0x41, 0x44, 0x81, 0x0c, 0x32, 0x24, - 0x01, 0x43, 0x7c, 0x13, 0x33, 0x24, 0x41, 0x43, 0xce, 0x03, 0x05, 0x24, - 0x01, 0x44, 0x81, 0x0c, 0x0c, 0x24, 0x01, 0x45, 0x8b, 0xe3, 0x1b, 0x24, - 0x01, 0x45, 0xb4, 0xe7, 0x29, 0x24, 0x01, 0xf5, 0x12, 0x24, 0x81, 0x13, - 0x11, 0x9d, 0x5d, 0x01, 0xff, 0x80, 0x04, 0xd3, 0x41, 0x24, 0x41, 0xe1, - 0x42, 0x24, 0x01, 0xe2, 0x43, 0x24, 0x41, 0x4d, 0x4a, 0x7e, 0x6c, 0x24, - 0x41, 0x10, 0xea, 0x62, 0x5a, 0x03, 0xc4, 0x07, 0x01, 0xff, 0xa2, 0x47, - 0xa5, 0x39, 0x04, 0x4d, 0x6a, 0x2d, 0x48, 0x02, 0xc4, 0x64, 0x24, 0x01, - 0x08, 0xd9, 0x02, 0x17, 0x45, 0xbe, 0xe7, 0x2c, 0x24, 0x01, 0x06, 0x6e, - 0x87, 0x01, 0xff, 0x44, 0x81, 0x0c, 0x5a, 0x24, 0x01, 0x4e, 0x8c, 0x5d, - 0x5d, 0x24, 0x41, 0x43, 0xce, 0x03, 0x60, 0x24, 0x01, 0x43, 0xb1, 0x93, - 0x63, 0x24, 0x41, 0xd2, 0x15, 0x24, 0x01, 0xf5, 0x1e, 0x24, 0x41, 0x49, - 0xb7, 0xb7, 0x5f, 0x24, 0x01, 0x44, 0x14, 0xe3, 0x58, 0x24, 0x41, 0x43, - 0x12, 0x5f, 0x4f, 0x24, 0x01, 0x43, 0x7d, 0xa8, 0x34, 0x24, 0x41, 0x47, - 0x2a, 0x01, 0x62, 0x24, 0x01, 0x45, 0xdc, 0xdc, 0x61, 0x24, 0x41, 0x04, - 0xbe, 0xec, 0x3d, 0x03, 0xc4, 0x07, 0x01, 0xff, 0x43, 0xce, 0x03, 0x07, - 0x24, 0x01, 0x44, 0x81, 0x0c, 0x0e, 0x24, 0x01, 0x45, 0x8b, 0xe3, 0x1d, - 0x24, 0x01, 0x45, 0xb4, 0xe7, 0x2b, 0x24, 0x01, 0xf5, 0x14, 0x24, 0x81, - 0x15, 0x53, 0x1b, 0x4d, 0x46, 0x24, 0xc1, 0x00, 0x42, 0x19, 0x00, 0x49, - 0x24, 0x01, 0xd3, 0x47, 0x24, 0x01, 0xd4, 0x48, 0x24, 0x41, 0x4d, 0x4a, - 0x7e, 0x6e, 0x24, 0x41, 0x43, 0x28, 0x59, 0x57, 0x24, 0x01, 0x43, 0x7c, - 0x13, 0x56, 0x24, 0x41, 0x04, 0xa7, 0x05, 0x65, 0x04, 0xcb, 0x06, 0x01, - 0xff, 0x43, 0xce, 0x03, 0x02, 0x24, 0x81, 0x53, 0xa2, 0x3e, 0x44, 0x81, - 0x0c, 0x09, 0x24, 0x01, 0x04, 0x4d, 0x6a, 0x2c, 0x04, 0xa5, 0xae, 0x20, - 0xf5, 0x0f, 0x24, 0x81, 0x15, 0x52, 0x16, 0x55, 0x3c, 0x24, 0xc1, 0x00, - 0x80, 0x04, 0xd4, 0x3d, 0x24, 0x41, 0xe1, 0x3e, 0x24, 0x01, 0xe2, 0x3f, - 0x24, 0x41, 0x4d, 0x4a, 0x7e, 0x69, 0x24, 0x41, 0xd2, 0x26, 0x24, 0x01, - 0xf5, 0x30, 0x24, 0x41, 0xd2, 0x18, 0x24, 0x01, 0xf5, 0x21, 0x24, 0x41, - 0x43, 0x12, 0x5f, 0x52, 0x24, 0x81, 0x06, 0x43, 0x7d, 0xa8, 0x38, 0x24, - 0x41, 0x4d, 0x4a, 0x7e, 0x53, 0x24, 0x41, 0x45, 0x05, 0x5f, 0x4c, 0x24, - 0x41, 0x43, 0xce, 0x03, 0x03, 0x24, 0x81, 0x46, 0xa2, 0x31, 0x44, 0x81, - 0x0c, 0x0a, 0x24, 0x01, 0x04, 0x4d, 0x6a, 0x1f, 0xb3, 0x0b, 0xf5, 0x10, - 0x24, 0xc1, 0x00, 0x4d, 0x4a, 0x7e, 0x6a, 0x24, 0x41, 0x03, 0x65, 0x05, - 0x06, 0x4a, 0xe1, 0xa9, 0x5c, 0x24, 0x41, 0xd2, 0x27, 0x24, 0x01, 0xf5, - 0x31, 0x24, 0x41, 0xd2, 0x19, 0x24, 0x01, 0xf5, 0x22, 0x24, 0x41, 0x43, - 0x12, 0x5f, 0x54, 0x24, 0x81, 0x06, 0x43, 0x7d, 0xa8, 0x39, 0x24, 0x41, - 0x4d, 0x4a, 0x7e, 0x55, 0x24, 0x41, 0x45, 0x05, 0x5f, 0x4d, 0x24, 0x41, - 0x05, 0xc9, 0x00, 0x1f, 0x07, 0xd9, 0xcf, 0x01, 0xff, 0xa6, 0x0c, 0x49, - 0xc6, 0xba, 0x65, 0x24, 0x01, 0x4a, 0x03, 0xb0, 0x66, 0x24, 0x41, 0x44, - 0x08, 0x4c, 0x68, 0x24, 0x01, 0x44, 0x85, 0x50, 0x67, 0x24, 0x41, 0x43, - 0xce, 0x03, 0x06, 0x24, 0x01, 0x44, 0x81, 0x0c, 0x0d, 0x24, 0x01, 0x45, - 0x8b, 0xe3, 0x1c, 0x24, 0x01, 0x45, 0xb4, 0xe7, 0x2a, 0x24, 0x01, 0xf5, - 0x13, 0x24, 0x81, 0x0b, 0x51, 0xae, 0x5d, 0x44, 0x24, 0xc1, 0x00, 0xd3, - 0x45, 0x24, 0x41, 0x4d, 0x4a, 0x7e, 0x6d, 0x24, 0x41, 0x42, 0x5c, 0x00, - 0x80, 0xf9, 0x01, 0xa5, 0xa1, 0x01, 0x45, 0x88, 0x77, 0x97, 0xf9, 0x81, - 0x93, 0x01, 0xaf, 0x27, 0xb5, 0x19, 0xb9, 0x01, 0xff, 0x04, 0xa1, 0x01, - 0x06, 0x49, 0xf4, 0xbc, 0x2e, 0xf5, 0x41, 0x48, 0xc0, 0x1e, 0x3f, 0xf6, - 0x01, 0x44, 0xe1, 0x07, 0x22, 0xf6, 0x41, 0x43, 0x0e, 0x21, 0x7c, 0xfa, - 0x01, 0x4a, 0xb1, 0xb1, 0xa2, 0x20, 0x40, 0x46, 0xcc, 0xd7, 0x0a, 0xf4, - 0x01, 0x46, 0x24, 0xda, 0x50, 0xf9, 0x01, 0x02, 0xee, 0x00, 0x06, 0x42, - 0xa7, 0x01, 0x51, 0xf4, 0x41, 0x80, 0x1c, 0x03, 0x05, 0x00, 0x06, 0x49, - 0x23, 0xb8, 0xcc, 0x26, 0x40, 0x45, 0x54, 0xe3, 0x8c, 0xf3, 0x01, 0x67, - 0xa2, 0x05, 0x8a, 0xf1, 0x01, 0x46, 0x36, 0xdd, 0x94, 0x26, 0x40, 0x44, - 0xb9, 0x00, 0x4c, 0x27, 0x00, 0x03, 0xf4, 0x01, 0x20, 0xb0, 0x01, 0xff, - 0x0a, 0xd1, 0xa5, 0x0d, 0x45, 0x3b, 0xdc, 0x42, 0xf5, 0xc1, 0x00, 0x57, - 0x19, 0x2c, 0x41, 0xf5, 0x41, 0x4d, 0x51, 0x83, 0x51, 0x2e, 0x00, 0x4e, - 0x58, 0x7a, 0x50, 0x2e, 0x40, 0x49, 0x74, 0xb8, 0x29, 0x26, 0x00, 0x48, - 0x4a, 0xc5, 0x28, 0x26, 0x40, 0x4d, 0xd5, 0x7d, 0xcf, 0xf3, 0x41, 0x48, - 0xa2, 0xc2, 0xb3, 0xf4, 0x01, 0x4a, 0x4a, 0x40, 0x19, 0xf3, 0x41, 0x42, - 0x8a, 0x00, 0xe5, 0xf9, 0x01, 0xa3, 0xb1, 0x23, 0x44, 0x8e, 0xec, 0xb0, - 0x26, 0x00, 0x42, 0x9e, 0x01, 0x99, 0xfa, 0x01, 0xac, 0x86, 0x23, 0xad, - 0xbd, 0x0c, 0xae, 0xad, 0x0b, 0x02, 0x2a, 0x05, 0x95, 0x0b, 0xb0, 0xcb, - 0x01, 0xb2, 0xb6, 0x01, 0xb5, 0x0b, 0xf7, 0x04, 0xf4, 0xc1, 0x00, 0x45, - 0xe0, 0x07, 0x2e, 0xf4, 0x41, 0x4b, 0x03, 0x98, 0xcb, 0xf6, 0x01, 0x02, - 0x11, 0x00, 0x06, 0x4e, 0xbe, 0x79, 0x91, 0xf4, 0x41, 0x02, 0x33, 0x00, - 0x88, 0x01, 0x08, 0x82, 0xc4, 0x01, 0xff, 0x0b, 0x09, 0xa1, 0x42, 0x0b, - 0x1c, 0xa2, 0x01, 0xff, 0x45, 0xc3, 0x0a, 0x67, 0xd3, 0x01, 0xa6, 0x29, - 0x44, 0x46, 0x2a, 0x68, 0xd3, 0x01, 0x43, 0xbf, 0x0a, 0x60, 0xd3, 0x01, - 0xb3, 0x0f, 0xb4, 0x01, 0xff, 0x44, 0x25, 0x01, 0x62, 0xd3, 0x01, 0x42, - 0x15, 0x02, 0x61, 0xd3, 0x41, 0x44, 0x27, 0x1d, 0x66, 0xd3, 0x01, 0x42, - 0x60, 0x25, 0x65, 0xd3, 0x41, 0x43, 0xa7, 0x05, 0x64, 0xd3, 0x01, 0x43, - 0xcb, 0x06, 0x63, 0xd3, 0x41, 0x45, 0xc3, 0x0a, 0x70, 0xd3, 0x01, 0xa6, - 0x29, 0x44, 0x46, 0x2a, 0x71, 0xd3, 0x01, 0x43, 0xbf, 0x0a, 0x69, 0xd3, - 0x01, 0xb3, 0x0f, 0xb4, 0x01, 0xff, 0x44, 0x25, 0x01, 0x6b, 0xd3, 0x01, - 0x42, 0x15, 0x02, 0x6a, 0xd3, 0x41, 0x44, 0x27, 0x1d, 0x6f, 0xd3, 0x01, - 0x42, 0x60, 0x25, 0x6e, 0xd3, 0x41, 0x43, 0xa7, 0x05, 0x6d, 0xd3, 0x01, - 0x43, 0xcb, 0x06, 0x6c, 0xd3, 0x41, 0x44, 0x12, 0xec, 0x34, 0x23, 0x00, - 0x44, 0x5a, 0xef, 0x35, 0x23, 0x40, 0x42, 0x13, 0x00, 0xb8, 0xfa, 0x01, - 0x52, 0x8e, 0x52, 0x4f, 0x2e, 0x00, 0x4b, 0xb4, 0x9f, 0x58, 0x22, 0x40, - 0x04, 0x84, 0x1f, 0x0f, 0xb9, 0x01, 0xff, 0x4b, 0x7b, 0x9c, 0x2f, 0xf1, - 0x01, 0x4a, 0x05, 0xae, 0xa9, 0x00, 0x40, 0xa3, 0xed, 0x05, 0x06, 0x6e, - 0xd8, 0x90, 0x04, 0xa6, 0x81, 0x04, 0x55, 0x2e, 0x3c, 0xff, 0x2c, 0x00, - 0x0b, 0x6a, 0x9e, 0xde, 0x03, 0xb3, 0x01, 0xff, 0x0c, 0x4c, 0x08, 0x33, - 0x06, 0xf4, 0x15, 0x01, 0xff, 0xab, 0x20, 0x45, 0x89, 0xe5, 0xe5, 0x2c, - 0x00, 0x45, 0xbf, 0xe6, 0xe6, 0x2c, 0x00, 0xb3, 0x06, 0x46, 0x60, 0xdd, - 0xe8, 0x2c, 0x40, 0x49, 0x39, 0xb7, 0xea, 0x2c, 0x00, 0x46, 0x66, 0xdd, - 0xe7, 0x2c, 0x40, 0x42, 0x05, 0x07, 0xe4, 0x2c, 0x00, 0x45, 0xcf, 0xc7, - 0xe9, 0x2c, 0x40, 0xa1, 0x95, 0x03, 0x4d, 0xa9, 0x7f, 0xf3, 0x2c, 0x00, - 0x02, 0x4a, 0x06, 0xe7, 0x02, 0xa4, 0xbb, 0x02, 0x43, 0xde, 0xf0, 0x89, - 0x2c, 0x00, 0xa6, 0xa8, 0x02, 0x02, 0x24, 0x02, 0x97, 0x02, 0xa8, 0x88, - 0x02, 0x45, 0x30, 0xe4, 0x93, 0x2c, 0x00, 0xab, 0xe7, 0x01, 0xac, 0xd8, - 0x01, 0x42, 0x7d, 0x02, 0x99, 0x2c, 0x00, 0x42, 0x26, 0x03, 0x9b, 0x2c, - 0x00, 0xef, 0x9f, 0x2c, 0x80, 0x54, 0xb0, 0x48, 0x42, 0xd0, 0x00, 0xa3, - 0x2c, 0x00, 0xb3, 0x20, 0xb4, 0x12, 0x42, 0x7d, 0x00, 0xa9, 0x2c, 0x00, - 0x44, 0xb6, 0xef, 0x83, 0x2c, 0x00, 0x44, 0x02, 0xf0, 0x8d, 0x2c, 0x40, - 0x42, 0xd7, 0x23, 0xa7, 0x2c, 0x00, 0x45, 0xea, 0xe3, 0x91, 0x2c, 0x40, - 0x44, 0x79, 0x92, 0xc1, 0x2c, 0x00, 0xa8, 0x0c, 0x43, 0x94, 0x0c, 0xa5, - 0x2c, 0x00, 0x42, 0x3c, 0x01, 0x8b, 0x2c, 0x40, 0x42, 0xc3, 0x0a, 0xe3, - 0x03, 0x00, 0x43, 0x94, 0x0c, 0xed, 0x03, 0x40, 0xe9, 0xa1, 0x2c, 0x00, - 0x42, 0x2f, 0x03, 0xaf, 0x2c, 0x40, 0x03, 0x7b, 0x23, 0x06, 0x42, 0x3c, - 0x01, 0xb1, 0x2c, 0x40, 0x07, 0x47, 0xcd, 0x1f, 0x07, 0x6e, 0x9e, 0x01, - 0xff, 0xae, 0x0c, 0x45, 0xc3, 0xe7, 0xdd, 0x2c, 0x00, 0x43, 0x77, 0xf1, - 0xe3, 0x2c, 0x40, 0x42, 0xc6, 0x06, 0xdf, 0x2c, 0x00, 0x42, 0xf7, 0x19, - 0xe1, 0x2c, 0x40, 0x43, 0x05, 0x07, 0xb5, 0x2c, 0x00, 0x43, 0xcf, 0xf0, - 0xd9, 0x2c, 0x00, 0x43, 0x28, 0x59, 0xc7, 0x2c, 0x00, 0x46, 0xec, 0xd8, - 0xd7, 0x2c, 0x00, 0xa8, 0x17, 0x43, 0xc8, 0x91, 0xbf, 0x2c, 0x00, 0x02, - 0xa4, 0x02, 0x01, 0xff, 0x42, 0xc3, 0x0a, 0xc5, 0x2c, 0x00, 0x43, 0x94, - 0x0c, 0xdb, 0x2c, 0x40, 0xe1, 0xcf, 0x2c, 0x80, 0x0c, 0x42, 0xc3, 0x0a, - 0xd3, 0x2c, 0x00, 0x43, 0x0c, 0x00, 0xcd, 0x2c, 0x40, 0xf4, 0xd5, 0x2c, - 0x40, 0x4a, 0x7d, 0xa4, 0xd1, 0x2c, 0x00, 0x44, 0xf2, 0xeb, 0x97, 0x2c, - 0x40, 0x43, 0xab, 0x3c, 0x95, 0x2c, 0x00, 0xa8, 0x06, 0x42, 0x2f, 0x03, - 0x9d, 0x2c, 0x40, 0x42, 0xc3, 0x0a, 0xe7, 0x03, 0x00, 0xe9, 0xad, 0x2c, - 0x40, 0x43, 0x8a, 0x00, 0x8f, 0x2c, 0x00, 0x43, 0x0c, 0x00, 0xe9, 0x03, - 0x40, 0x43, 0xea, 0x04, 0x85, 0x2c, 0x00, 0x44, 0xee, 0xd8, 0xeb, 0x03, - 0x40, 0x42, 0xc3, 0x0a, 0xe5, 0x03, 0x00, 0xe9, 0xab, 0x2c, 0x40, 0x44, - 0xbe, 0xeb, 0x87, 0x2c, 0x00, 0x42, 0xc3, 0x0a, 0xef, 0x03, 0x00, 0x09, - 0x8a, 0xb7, 0x01, 0xff, 0x44, 0x67, 0x00, 0xb3, 0x2c, 0x00, 0x44, 0x0b, - 0x00, 0xcb, 0x2c, 0x00, 0x44, 0x28, 0xc7, 0xb9, 0x2c, 0x00, 0x42, 0x26, - 0x03, 0xbb, 0x2c, 0x40, 0x4a, 0xc5, 0xac, 0xc3, 0x2c, 0x00, 0x0c, 0x4c, - 0x24, 0x01, 0xff, 0x43, 0xde, 0xf0, 0xb7, 0x2c, 0x00, 0x46, 0xec, 0xd8, - 0xee, 0x2c, 0x00, 0x42, 0x26, 0x03, 0xbd, 0x2c, 0x00, 0x44, 0xcb, 0xac, - 0xec, 0x2c, 0x40, 0x4c, 0xf9, 0x8e, 0xc9, 0x2c, 0x00, 0x43, 0x20, 0xf1, - 0x81, 0x2c, 0x40, 0x54, 0xcf, 0x33, 0xfa, 0x2c, 0x00, 0x49, 0x15, 0x16, - 0xf9, 0x2c, 0x00, 0x56, 0xcd, 0x33, 0xfb, 0x2c, 0x00, 0x4d, 0x93, 0x52, - 0xfc, 0x2c, 0x40, 0x50, 0xb4, 0x58, 0xfd, 0x2c, 0x00, 0x48, 0x16, 0x16, - 0xfe, 0x2c, 0x40, 0x06, 0xc4, 0x06, 0x96, 0x01, 0x07, 0x2f, 0x39, 0x06, - 0x4e, 0x8c, 0x7b, 0xe0, 0x02, 0x41, 0x05, 0xc3, 0x0a, 0x7e, 0xa6, 0x5f, - 0x04, 0x46, 0x2a, 0x4f, 0x4b, 0x1e, 0x11, 0xf3, 0x02, 0x01, 0xb3, 0x26, - 0xb4, 0x01, 0xff, 0x42, 0x92, 0x01, 0xea, 0x02, 0x01, 0xa8, 0x0f, 0xb7, - 0x01, 0xff, 0x44, 0x29, 0x1d, 0xeb, 0x02, 0x01, 0x49, 0x1c, 0x1d, 0xf4, - 0x02, 0x41, 0x44, 0x2c, 0x11, 0xec, 0x02, 0x01, 0x4b, 0x8f, 0x17, 0xf5, - 0x02, 0x41, 0x04, 0x27, 0x1d, 0x11, 0x02, 0x60, 0x25, 0x01, 0xff, 0x48, - 0x21, 0x11, 0xf8, 0x02, 0x01, 0x42, 0x2e, 0x11, 0xef, 0x02, 0x41, 0x48, - 0x21, 0x11, 0xf9, 0x02, 0x01, 0x42, 0x2e, 0x11, 0xf0, 0x02, 0x41, 0x48, - 0x21, 0x11, 0xfb, 0x02, 0x01, 0x42, 0x2e, 0x11, 0xf2, 0x02, 0x41, 0xa9, - 0x0f, 0xaf, 0x01, 0xff, 0x43, 0x2d, 0x11, 0xed, 0x02, 0x01, 0x4a, 0xa3, - 0xb0, 0xf6, 0x02, 0x41, 0x43, 0x09, 0x4c, 0xee, 0x02, 0x01, 0x4a, 0xb2, - 0x38, 0xf7, 0x02, 0x41, 0x48, 0x21, 0x11, 0xfa, 0x02, 0x01, 0xf9, 0xf1, - 0x02, 0x41, 0x45, 0xc3, 0x0a, 0xe8, 0x02, 0x01, 0xa6, 0x29, 0x44, 0x46, - 0x2a, 0xe9, 0x02, 0x01, 0x43, 0xbf, 0x0a, 0xe1, 0x02, 0x01, 0xb3, 0x0f, - 0xb4, 0x01, 0xff, 0x44, 0x25, 0x01, 0xe3, 0x02, 0x01, 0x42, 0x15, 0x02, - 0xe2, 0x02, 0x41, 0x44, 0x27, 0x1d, 0xe7, 0x02, 0x01, 0x42, 0x60, 0x25, - 0xe6, 0x02, 0x41, 0x43, 0xa7, 0x05, 0xe5, 0x02, 0x01, 0x43, 0xcb, 0x06, - 0xe4, 0x02, 0x41, 0x0e, 0xba, 0x05, 0x1c, 0x09, 0xc7, 0x15, 0x01, 0xff, - 0x48, 0x12, 0xc6, 0xef, 0x2c, 0x00, 0x09, 0xe2, 0xbc, 0x01, 0xff, 0x45, - 0x65, 0xe1, 0xf0, 0x2c, 0x00, 0x45, 0x11, 0xe5, 0xf1, 0x2c, 0x40, 0xa1, - 0x95, 0x03, 0x4d, 0xa9, 0x7f, 0xf2, 0x2c, 0x00, 0x02, 0x4a, 0x06, 0xe7, - 0x02, 0xa4, 0xbb, 0x02, 0x43, 0xde, 0xf0, 0x88, 0x2c, 0x00, 0xa6, 0xa8, - 0x02, 0x02, 0x24, 0x02, 0x97, 0x02, 0xa8, 0x88, 0x02, 0x45, 0x30, 0xe4, - 0x92, 0x2c, 0x00, 0xab, 0xe7, 0x01, 0xac, 0xd8, 0x01, 0x42, 0x7d, 0x02, - 0x98, 0x2c, 0x00, 0x42, 0x26, 0x03, 0x9a, 0x2c, 0x00, 0xef, 0x9e, 0x2c, - 0x80, 0x54, 0xb0, 0x48, 0x42, 0xd0, 0x00, 0xa2, 0x2c, 0x00, 0xb3, 0x20, - 0xb4, 0x12, 0x42, 0x7d, 0x00, 0xa8, 0x2c, 0x00, 0x44, 0xb6, 0xef, 0x82, - 0x2c, 0x00, 0x44, 0x02, 0xf0, 0x8c, 0x2c, 0x40, 0x42, 0xd7, 0x23, 0xa6, - 0x2c, 0x00, 0x45, 0xea, 0xe3, 0x90, 0x2c, 0x40, 0x44, 0x79, 0x92, 0xc0, - 0x2c, 0x00, 0xa8, 0x0c, 0x43, 0x94, 0x0c, 0xa4, 0x2c, 0x00, 0x42, 0x3c, - 0x01, 0x8a, 0x2c, 0x40, 0x42, 0xc3, 0x0a, 0xe2, 0x03, 0x00, 0x43, 0x94, - 0x0c, 0xec, 0x03, 0x40, 0xe9, 0xa0, 0x2c, 0x00, 0x42, 0x2f, 0x03, 0xae, - 0x2c, 0x40, 0x03, 0x7b, 0x23, 0x06, 0x42, 0x3c, 0x01, 0xb0, 0x2c, 0x40, - 0x07, 0x47, 0xcd, 0x1f, 0x07, 0x6e, 0x9e, 0x01, 0xff, 0xae, 0x0c, 0x45, - 0xc3, 0xe7, 0xdc, 0x2c, 0x00, 0x43, 0x77, 0xf1, 0xe2, 0x2c, 0x40, 0x42, - 0xc6, 0x06, 0xde, 0x2c, 0x00, 0x42, 0xf7, 0x19, 0xe0, 0x2c, 0x40, 0x43, - 0x05, 0x07, 0xb4, 0x2c, 0x00, 0x43, 0xcf, 0xf0, 0xd8, 0x2c, 0x00, 0x43, - 0x28, 0x59, 0xc6, 0x2c, 0x00, 0x46, 0xec, 0xd8, 0xd6, 0x2c, 0x00, 0xa8, - 0x17, 0x43, 0xc8, 0x91, 0xbe, 0x2c, 0x00, 0x02, 0xa4, 0x02, 0x01, 0xff, - 0x42, 0xc3, 0x0a, 0xc4, 0x2c, 0x00, 0x43, 0x94, 0x0c, 0xda, 0x2c, 0x40, - 0xe1, 0xce, 0x2c, 0x80, 0x0c, 0x42, 0xc3, 0x0a, 0xd2, 0x2c, 0x00, 0x43, - 0x0c, 0x00, 0xcc, 0x2c, 0x40, 0xf4, 0xd4, 0x2c, 0x40, 0x4a, 0x7d, 0xa4, - 0xd0, 0x2c, 0x00, 0x44, 0xf2, 0xeb, 0x96, 0x2c, 0x40, 0x43, 0xab, 0x3c, - 0x94, 0x2c, 0x00, 0xa8, 0x06, 0x42, 0x2f, 0x03, 0x9c, 0x2c, 0x40, 0x42, - 0xc3, 0x0a, 0xe6, 0x03, 0x00, 0xe9, 0xac, 0x2c, 0x40, 0x43, 0x8a, 0x00, - 0x8e, 0x2c, 0x00, 0x43, 0x0c, 0x00, 0xe8, 0x03, 0x40, 0x43, 0xea, 0x04, - 0x84, 0x2c, 0x00, 0x44, 0xee, 0xd8, 0xea, 0x03, 0x40, 0x42, 0xc3, 0x0a, - 0xe4, 0x03, 0x00, 0xe9, 0xaa, 0x2c, 0x40, 0x44, 0xbe, 0xeb, 0x86, 0x2c, - 0x00, 0x42, 0xc3, 0x0a, 0xee, 0x03, 0x00, 0x09, 0x8a, 0xb7, 0x01, 0xff, - 0x44, 0x67, 0x00, 0xb2, 0x2c, 0x00, 0x44, 0x0b, 0x00, 0xca, 0x2c, 0x00, - 0x44, 0x28, 0xc7, 0xb8, 0x2c, 0x00, 0x42, 0x26, 0x03, 0xba, 0x2c, 0x40, - 0x4a, 0xc5, 0xac, 0xc2, 0x2c, 0x00, 0x0c, 0x4c, 0x24, 0x01, 0xff, 0x43, - 0xde, 0xf0, 0xb6, 0x2c, 0x00, 0x46, 0xec, 0xd8, 0xed, 0x2c, 0x00, 0x42, - 0x26, 0x03, 0xbc, 0x2c, 0x00, 0x44, 0xcb, 0xac, 0xeb, 0x2c, 0x40, 0x4c, - 0xf9, 0x8e, 0xc8, 0x2c, 0x00, 0x43, 0x20, 0xf1, 0x80, 0x2c, 0x40, 0x47, - 0xda, 0xcd, 0x5a, 0xf3, 0x01, 0xa9, 0x01, 0xff, 0xe5, 0x6a, 0xf3, 0x01, - 0x42, 0x1d, 0x01, 0x73, 0xf3, 0x41, 0xa6, 0x79, 0x55, 0x9f, 0x3a, 0x6d, - 0x2a, 0x00, 0x4a, 0x2d, 0xa9, 0x32, 0x23, 0x00, 0x48, 0xc2, 0xc4, 0x0c, - 0x26, 0x00, 0x0a, 0x27, 0xaf, 0x57, 0xb4, 0x06, 0x4e, 0xdc, 0x7c, 0xea, - 0xf3, 0x41, 0x05, 0xfe, 0x67, 0x1d, 0x57, 0x45, 0x1a, 0x81, 0x23, 0x00, - 0x4c, 0xc1, 0x6f, 0x2e, 0x22, 0x00, 0x04, 0x88, 0x88, 0x01, 0xff, 0x45, - 0xc6, 0xe4, 0x9b, 0xf3, 0x01, 0x53, 0x9f, 0x4b, 0x9b, 0x00, 0x40, 0x03, - 0x1f, 0x03, 0x17, 0x05, 0x51, 0x00, 0x01, 0xff, 0x56, 0xa9, 0x34, 0xfa, - 0x22, 0x00, 0x47, 0x77, 0x7e, 0xfd, 0x22, 0x00, 0x68, 0x05, 0x05, 0xfb, - 0x22, 0x40, 0x46, 0x89, 0x05, 0x0b, 0x22, 0x00, 0x4f, 0xa0, 0x52, 0xb3, - 0x22, 0xc0, 0x00, 0x4c, 0x51, 0x28, 0xb5, 0x22, 0x40, 0x44, 0x2f, 0x03, - 0xa7, 0xf6, 0x01, 0x46, 0x44, 0xde, 0x77, 0xf4, 0x41, 0x49, 0x6a, 0xb6, - 0x8a, 0xf3, 0x01, 0x4b, 0xe3, 0x9e, 0x16, 0xf6, 0x01, 0x49, 0x08, 0x97, - 0x15, 0xf6, 0x41, 0x07, 0xc9, 0x15, 0x38, 0x42, 0xc2, 0x05, 0x04, 0x26, - 0x00, 0xad, 0x1b, 0xb0, 0x01, 0xff, 0x43, 0x7b, 0x1f, 0xed, 0xf9, 0x01, - 0x46, 0xa0, 0x90, 0x01, 0x22, 0x00, 0x4e, 0x40, 0x79, 0x84, 0x23, 0x00, - 0x47, 0x0a, 0x65, 0xdc, 0xf5, 0x41, 0xe1, 0x2c, 0x00, 0x00, 0x07, 0x34, - 0xb6, 0x01, 0xff, 0x42, 0x8a, 0x00, 0x40, 0x00, 0x00, 0x4a, 0x6d, 0x96, - 0x52, 0x20, 0x40, 0xa1, 0xa5, 0x15, 0xa2, 0xf5, 0x14, 0xa3, 0xa5, 0x11, - 0xa4, 0x89, 0x0e, 0xa5, 0xcf, 0x0d, 0xa6, 0xc0, 0x0d, 0xa7, 0x81, 0x0a, - 0x02, 0x0b, 0x00, 0xea, 0x09, 0xa9, 0xac, 0x09, 0x02, 0x1b, 0x02, 0x86, - 0x09, 0xac, 0xfb, 0x04, 0xad, 0xb4, 0x04, 0xae, 0xa5, 0x04, 0xaf, 0xe7, - 0x03, 0xb0, 0xb4, 0x03, 0xb2, 0x8b, 0x02, 0xb3, 0xc8, 0x01, 0xb4, 0x81, - 0x01, 0xb5, 0x5b, 0x09, 0x32, 0x00, 0x41, 0x02, 0x51, 0x00, 0x27, 0xb8, - 0x11, 0x07, 0x11, 0x33, 0x01, 0xff, 0x45, 0x5c, 0x00, 0x5b, 0x03, 0x00, - 0x45, 0xf5, 0x06, 0xcf, 0x1d, 0x40, 0x80, 0x06, 0x48, 0x52, 0xc0, 0xb5, - 0x1a, 0x40, 0x45, 0x5c, 0x00, 0x3d, 0x03, 0x00, 0x45, 0xf5, 0x06, 0x53, - 0x03, 0x40, 0x03, 0x23, 0x04, 0x06, 0x4f, 0xef, 0x6b, 0xb6, 0x1a, 0x40, - 0x4c, 0x2d, 0x8b, 0xe9, 0x20, 0x00, 0x55, 0x5c, 0x3b, 0xf9, 0x1d, 0x40, - 0x05, 0xc2, 0x07, 0x06, 0x45, 0xad, 0x22, 0x3e, 0x03, 0x40, 0x45, 0x5c, - 0x00, 0x0d, 0x03, 0x00, 0x45, 0xf5, 0x06, 0x29, 0x03, 0x40, 0xb0, 0x0c, - 0x47, 0xcd, 0x06, 0xd1, 0x1d, 0x00, 0x47, 0xaa, 0x0e, 0xd2, 0x1d, 0x40, - 0x06, 0xdd, 0x95, 0x06, 0x51, 0x8a, 0x41, 0x4e, 0x03, 0x40, 0x45, 0x5c, - 0x00, 0xf5, 0x1d, 0x00, 0x45, 0xf5, 0x06, 0x1d, 0x03, 0x40, 0x4f, 0x5f, - 0x12, 0xdb, 0x20, 0x00, 0x44, 0xae, 0x22, 0x03, 0x03, 0x80, 0x1c, 0x06, - 0xc9, 0x1c, 0x06, 0x51, 0x6a, 0x5d, 0x12, 0x03, 0x40, 0x4c, 0x3d, 0x8a, - 0xcb, 0x1a, 0x00, 0x43, 0xd4, 0x09, 0xb4, 0x1a, 0x00, 0x48, 0x5a, 0xc9, - 0xe8, 0x20, 0x40, 0x80, 0x01, 0xff, 0x45, 0xf5, 0x06, 0x30, 0x03, 0x00, - 0x4f, 0xc0, 0x6d, 0x29, 0xfe, 0x00, 0x47, 0x79, 0x22, 0x34, 0x03, 0x00, - 0x50, 0x2a, 0x65, 0x2a, 0xfe, 0x40, 0x4c, 0xa1, 0x8c, 0x3c, 0x03, 0x00, - 0x05, 0x75, 0x33, 0x22, 0x4a, 0xd5, 0xab, 0xc2, 0x1d, 0x00, 0x07, 0x28, - 0x26, 0x0c, 0x61, 0x61, 0x0e, 0xba, 0x1a, 0x00, 0x4e, 0xce, 0x7c, 0xc3, - 0x1d, 0x40, 0x44, 0xf6, 0x06, 0x3b, 0x03, 0x00, 0x4d, 0xf5, 0x85, 0xc5, - 0x1a, 0x40, 0xb3, 0x06, 0x55, 0xe7, 0x3d, 0xd3, 0x20, 0x40, 0x4e, 0xb7, - 0x32, 0x37, 0x03, 0x00, 0x4d, 0xad, 0x48, 0x35, 0x03, 0x40, 0xa5, 0x8c, - 0x01, 0xa9, 0x01, 0xff, 0x03, 0xca, 0x00, 0x17, 0x03, 0xa2, 0x01, 0x01, - 0xff, 0x45, 0x5c, 0x00, 0x0a, 0x03, 0x00, 0x45, 0xf5, 0x06, 0x25, 0x03, - 0x00, 0x47, 0x79, 0x22, 0xd8, 0x20, 0x40, 0x80, 0x06, 0x61, 0xc4, 0x0e, - 0xec, 0x20, 0x40, 0x05, 0xce, 0x00, 0x30, 0x02, 0x22, 0x00, 0x16, 0x0c, - 0x50, 0x21, 0x06, 0x4a, 0xde, 0x95, 0x19, 0x03, 0x40, 0x4b, 0x54, 0x05, - 0xc2, 0x1a, 0x00, 0x4b, 0x7f, 0x97, 0xc4, 0x1a, 0x40, 0x08, 0x1a, 0xc5, - 0x06, 0x4b, 0x38, 0xa0, 0xd1, 0x20, 0x40, 0x45, 0x5c, 0x00, 0x57, 0x03, - 0x00, 0x45, 0xf5, 0x06, 0x39, 0x03, 0x40, 0x80, 0x24, 0x05, 0x19, 0x1b, - 0x01, 0xff, 0xa1, 0x06, 0x45, 0xf5, 0x06, 0x55, 0x03, 0x40, 0x44, 0x5d, - 0x00, 0x50, 0x03, 0x00, 0x03, 0x1b, 0x00, 0x01, 0xff, 0x54, 0xbf, 0x40, - 0xff, 0x1d, 0x00, 0x52, 0xe0, 0x54, 0x56, 0x03, 0x40, 0x45, 0x5c, 0x00, - 0xd7, 0x20, 0x00, 0x45, 0xf5, 0x06, 0xef, 0x20, 0x40, 0x52, 0x98, 0x54, - 0x22, 0x03, 0x00, 0x05, 0x13, 0x04, 0x01, 0xff, 0x50, 0xb5, 0x32, 0xe5, - 0x20, 0x00, 0x4d, 0x6e, 0x5d, 0x14, 0x03, 0x40, 0xa1, 0x11, 0x09, 0x46, - 0x70, 0x01, 0xff, 0x45, 0x5c, 0x00, 0xc8, 0x1a, 0x00, 0x45, 0xf5, 0x06, - 0x1f, 0x03, 0x40, 0x54, 0x03, 0x43, 0x21, 0x03, 0x00, 0x0a, 0x7b, 0x5f, - 0x01, 0xff, 0x45, 0x5c, 0x00, 0xbb, 0x1a, 0x00, 0x45, 0xf5, 0x06, 0xbd, - 0x1a, 0x00, 0x47, 0x79, 0x22, 0xbe, 0x1a, 0x40, 0x45, 0xc3, 0xdb, 0x28, - 0x03, 0x80, 0x2e, 0x11, 0x4b, 0x5a, 0x0c, 0x4e, 0xb0, 0x79, 0xb7, 0x1a, - 0x00, 0x47, 0xb9, 0x88, 0x05, 0x03, 0x40, 0x42, 0x1a, 0x00, 0x76, 0x03, - 0x01, 0x43, 0x96, 0x6a, 0x77, 0x03, 0x01, 0x45, 0xe8, 0xe5, 0x79, 0x03, - 0x01, 0x43, 0x4d, 0xf1, 0x7a, 0x03, 0x01, 0x44, 0x02, 0xf0, 0x78, 0x03, - 0x41, 0x46, 0x5b, 0x00, 0xce, 0x1d, 0x40, 0x4e, 0x4e, 0x79, 0x4a, 0x03, - 0x00, 0x50, 0x8a, 0x66, 0xc6, 0x1a, 0x40, 0x45, 0x05, 0x6f, 0x04, 0x03, - 0x80, 0x06, 0x4f, 0x0c, 0x6d, 0x20, 0x03, 0x40, 0x80, 0x15, 0x8d, 0x01, - 0xff, 0x45, 0x29, 0x38, 0xc4, 0x1d, 0x00, 0x45, 0xcb, 0x22, 0xcc, 0x1d, - 0x00, 0x45, 0x8d, 0x22, 0xc6, 0x1d, 0x40, 0x45, 0xf5, 0x06, 0x31, 0x03, - 0x00, 0x49, 0xaa, 0x13, 0x24, 0xfe, 0x80, 0x0d, 0x4a, 0x2a, 0x04, 0x25, - 0xfe, 0xc0, 0x00, 0x46, 0xf4, 0x06, 0x2c, 0xfe, 0x40, 0x46, 0xf4, 0x06, - 0x2b, 0xfe, 0x40, 0x05, 0xb4, 0x05, 0xdc, 0x01, 0x03, 0xc4, 0x00, 0x4f, - 0x02, 0x3f, 0x00, 0x27, 0xaf, 0x01, 0xff, 0x03, 0xa2, 0x01, 0x06, 0x46, - 0xad, 0x88, 0x32, 0x03, 0x40, 0x56, 0xaf, 0x32, 0xeb, 0x20, 0x00, 0xb3, - 0x06, 0x55, 0xe7, 0x3d, 0xd2, 0x20, 0x40, 0x4e, 0xb7, 0x32, 0x38, 0x03, - 0x00, 0x4d, 0xad, 0x48, 0x36, 0x03, 0x40, 0x06, 0xfd, 0x1e, 0x06, 0x5e, - 0x22, 0x13, 0xb9, 0x1a, 0x40, 0x49, 0xaa, 0x13, 0x20, 0xfe, 0x80, 0x0d, - 0x4a, 0x2a, 0x04, 0x21, 0xfe, 0xc0, 0x00, 0x46, 0xf4, 0x06, 0x28, 0xfe, - 0x40, 0x46, 0xf4, 0x06, 0x27, 0xfe, 0x40, 0x80, 0x11, 0x06, 0xa9, 0x01, - 0x01, 0xff, 0x4d, 0x5b, 0x7f, 0xea, 0x20, 0x00, 0x5b, 0xca, 0x0e, 0xed, - 0x20, 0x40, 0xa1, 0x40, 0x02, 0x22, 0x00, 0x26, 0x0c, 0x50, 0x21, 0x16, - 0x0c, 0xc8, 0x00, 0x06, 0x4a, 0xde, 0x95, 0x18, 0x03, 0x40, 0x45, 0x5c, - 0x00, 0xe1, 0x20, 0x00, 0x45, 0xf5, 0x06, 0x4d, 0x03, 0x40, 0x4a, 0x16, - 0x06, 0xc1, 0x1a, 0x00, 0x4a, 0xf9, 0xa5, 0xc3, 0x1a, 0x40, 0x08, 0x1a, - 0xc5, 0x06, 0x4b, 0x38, 0xa0, 0xd0, 0x20, 0x40, 0x45, 0x5c, 0x00, 0x51, - 0x03, 0x00, 0x45, 0xf5, 0x06, 0x1c, 0x03, 0x40, 0x05, 0x07, 0x06, 0x24, - 0x04, 0xcf, 0x00, 0x01, 0xff, 0x80, 0x11, 0x05, 0x19, 0x1b, 0x01, 0xff, - 0x45, 0x5c, 0x00, 0xfe, 0x1d, 0x00, 0x45, 0xf5, 0x06, 0x54, 0x03, 0x40, - 0x45, 0x5c, 0x00, 0xd6, 0x20, 0x00, 0x45, 0xf5, 0x06, 0xee, 0x20, 0x40, - 0x45, 0x5c, 0x00, 0x1a, 0x03, 0x00, 0x45, 0xf5, 0x06, 0x49, 0x03, 0x40, - 0x15, 0xef, 0x3b, 0x8e, 0x02, 0x0d, 0x4b, 0x08, 0x01, 0xff, 0xe1, 0x63, - 0x03, 0x80, 0xeb, 0x01, 0xe2, 0xe8, 0x1d, 0x80, 0xdf, 0x01, 0xe3, 0x68, - 0x03, 0x80, 0xd3, 0x01, 0xe4, 0x69, 0x03, 0x00, 0xe5, 0x64, 0x03, 0x80, - 0xbd, 0x01, 0xe6, 0xeb, 0x1d, 0x80, 0xb1, 0x01, 0xe7, 0xda, 0x1d, 0x00, - 0xe8, 0x6a, 0x03, 0x00, 0xe9, 0x65, 0x03, 0x80, 0x8e, 0x01, 0xeb, 0xdc, - 0x1d, 0x00, 0xec, 0xdd, 0x1d, 0x80, 0x79, 0xed, 0x6b, 0x03, 0x00, 0xee, - 0xe0, 0x1d, 0x00, 0xef, 0x66, 0x03, 0x80, 0x5b, 0xf0, 0xee, 0x1d, 0x00, - 0xf2, 0x6c, 0x03, 0x80, 0x43, 0xf3, 0xe4, 0x1d, 0x80, 0x38, 0xf4, 0x6d, - 0x03, 0x80, 0x2d, 0xf5, 0x67, 0x03, 0x80, 0x17, 0xf6, 0x6e, 0x03, 0x00, - 0xf7, 0xf1, 0x1d, 0x80, 0x08, 0xf8, 0x6f, 0x03, 0x00, 0xfa, 0xe6, 0x1d, - 0x40, 0x46, 0xf4, 0x06, 0xbf, 0x1a, 0x40, 0x06, 0x50, 0x00, 0x01, 0xff, - 0x49, 0x2f, 0x23, 0xf4, 0x1d, 0x00, 0x5b, 0xd6, 0x1b, 0xf0, 0x1d, 0x40, - 0x4d, 0x0a, 0x88, 0xc0, 0x1a, 0x40, 0x44, 0x54, 0x7a, 0xea, 0x1d, 0x40, - 0x80, 0x01, 0xff, 0x45, 0xf5, 0x06, 0xca, 0x1d, 0x00, 0x47, 0x4c, 0xb0, - 0xe3, 0x1d, 0x40, 0x06, 0x50, 0x00, 0x01, 0xff, 0x49, 0x2f, 0x23, 0xf3, - 0x1d, 0x00, 0x5b, 0xd6, 0x1b, 0xed, 0x1d, 0x40, 0x59, 0x99, 0x22, 0xec, - 0x1d, 0x00, 0x45, 0xe4, 0xb9, 0xe5, 0x1d, 0x40, 0x07, 0x6c, 0x6e, 0x01, - 0xff, 0xe4, 0xd8, 0x1d, 0x00, 0xe7, 0xcc, 0x1a, 0x00, 0xf2, 0xcd, 0x1a, - 0x00, 0xf4, 0xce, 0x1a, 0x40, 0x55, 0xc5, 0x3b, 0xd3, 0x1d, 0x40, 0x42, - 0xa4, 0x02, 0xef, 0x1d, 0x00, 0x42, 0x53, 0x00, 0xd9, 0x1d, 0x40, 0x48, - 0x7a, 0xbf, 0xd7, 0x1d, 0x40, 0x43, 0x45, 0x0f, 0xe9, 0x1d, 0x40, 0x4f, - 0x7a, 0x68, 0xf2, 0x1d, 0x00, 0xe5, 0xd4, 0x1d, 0x00, 0x44, 0x2f, 0xe1, - 0xe7, 0x1d, 0x00, 0xef, 0xd5, 0x1d, 0x00, 0xf6, 0xd6, 0x1d, 0x40, 0xe7, - 0xdb, 0x1d, 0x00, 0xec, 0xde, 0x1d, 0x00, 0xed, 0xdf, 0x1d, 0x00, 0xee, - 0xe1, 0x1d, 0x00, 0xf2, 0xe2, 0x1d, 0x40, 0x10, 0x3a, 0x66, 0x11, 0x0b, - 0xab, 0xa2, 0x01, 0xff, 0x44, 0xc3, 0x00, 0xf7, 0x1d, 0x00, 0x45, 0xc8, - 0x00, 0xf6, 0x1d, 0x40, 0x56, 0x4b, 0x36, 0x9a, 0x30, 0x00, 0x51, 0x50, - 0x36, 0x99, 0x30, 0x40, 0xae, 0x06, 0x47, 0xbd, 0x0e, 0xd0, 0x1d, 0x40, - 0x46, 0xf9, 0x6a, 0xb2, 0x1a, 0x00, 0x07, 0xd8, 0x22, 0x01, 0xff, 0x02, - 0x14, 0x09, 0x11, 0x0c, 0x65, 0x8c, 0x01, 0xff, 0x45, 0x5c, 0x00, 0xc7, - 0x1a, 0x00, 0x45, 0xf5, 0x06, 0x2b, 0x03, 0x40, 0x43, 0x0a, 0x13, 0x11, - 0x03, 0x80, 0x06, 0x4a, 0x67, 0x3b, 0x3a, 0x03, 0x40, 0x46, 0xf4, 0x06, - 0x2f, 0x03, 0x40, 0x4e, 0x98, 0x78, 0x4b, 0x03, 0x00, 0x48, 0xfd, 0xa8, - 0x09, 0x03, 0x00, 0x42, 0x5e, 0x01, 0x1b, 0x03, 0x40, 0x11, 0x18, 0x5a, - 0xc1, 0x01, 0xb2, 0x01, 0xff, 0xa1, 0x36, 0x04, 0xb9, 0x2d, 0x01, 0xff, - 0x4f, 0x78, 0x6a, 0x44, 0x03, 0x00, 0x47, 0xa8, 0xcf, 0x43, 0x03, 0x00, - 0x08, 0x60, 0x27, 0x0c, 0x4b, 0x0f, 0x9f, 0x42, 0x03, 0x00, 0x4d, 0xef, - 0x4d, 0x45, 0x03, 0x40, 0x49, 0x95, 0xbb, 0x44, 0xd2, 0x01, 0xb4, 0x01, - 0xff, 0x48, 0x62, 0xc3, 0x43, 0xd2, 0x01, 0x46, 0x94, 0xdc, 0x42, 0xd2, - 0x41, 0x05, 0x1f, 0xe6, 0x2f, 0x4c, 0xed, 0x91, 0x4f, 0x03, 0x00, 0x02, - 0x32, 0x00, 0x01, 0xff, 0x80, 0x0f, 0x8d, 0x01, 0xff, 0x4b, 0xc4, 0x96, - 0xc8, 0x1d, 0x00, 0x46, 0x04, 0x6f, 0xc5, 0x1d, 0x40, 0x46, 0xaf, 0x04, - 0x00, 0x03, 0x80, 0x06, 0x49, 0x83, 0x2c, 0x40, 0x03, 0x40, 0x46, 0xf4, - 0x06, 0x16, 0x03, 0x40, 0x06, 0xc4, 0x06, 0x21, 0x07, 0xc1, 0x05, 0x01, - 0xff, 0xe1, 0x70, 0x13, 0x01, 0x42, 0x1b, 0x02, 0x71, 0x13, 0x01, 0x42, - 0xff, 0x04, 0x72, 0x13, 0x01, 0x42, 0x6c, 0x09, 0x74, 0x13, 0x01, 0x42, - 0x02, 0x00, 0x73, 0x13, 0x41, 0xa6, 0x20, 0x43, 0xbf, 0x0a, 0x67, 0x13, - 0x01, 0x43, 0x5f, 0x25, 0x6c, 0x13, 0x01, 0xb4, 0x06, 0x44, 0xa1, 0x1d, - 0x66, 0x13, 0x41, 0x44, 0x25, 0x01, 0x69, 0x13, 0x01, 0x42, 0x15, 0x02, - 0x68, 0x13, 0x41, 0x43, 0xa7, 0x05, 0x6b, 0x13, 0x01, 0x43, 0xcb, 0x06, - 0x6a, 0x13, 0x41, 0x43, 0x9f, 0xf0, 0x00, 0xe0, 0x01, 0xa2, 0xe1, 0x01, - 0x46, 0x6f, 0x7f, 0x1d, 0xe0, 0x01, 0xa4, 0xcc, 0x01, 0xa6, 0xbd, 0x01, - 0x47, 0x74, 0xce, 0x03, 0xe0, 0x01, 0x44, 0xee, 0xec, 0x18, 0xe0, 0x01, - 0xe9, 0x0b, 0xe0, 0x81, 0x8f, 0x01, 0x44, 0x86, 0xed, 0x0d, 0xe0, 0x01, - 0x47, 0x1f, 0xd0, 0x0e, 0xe0, 0x01, 0x47, 0x63, 0x69, 0x0f, 0xe0, 0x01, - 0x45, 0xd4, 0xe5, 0x10, 0xe0, 0x01, 0x43, 0x7e, 0x30, 0x11, 0xe0, 0x01, - 0x46, 0x34, 0xdc, 0x12, 0xe0, 0x01, 0x45, 0x4b, 0xe7, 0x13, 0xe0, 0x01, - 0xb3, 0x4b, 0xb4, 0x3d, 0x43, 0x3e, 0xd3, 0x16, 0xe0, 0x01, 0x44, 0xa6, - 0xef, 0x02, 0xe0, 0x01, 0xb9, 0x0f, 0xba, 0x01, 0xff, 0x45, 0xe6, 0xe2, - 0x08, 0xe0, 0x01, 0x46, 0x94, 0xd9, 0x06, 0xe0, 0x41, 0x43, 0xb3, 0x00, - 0x21, 0xe0, 0x01, 0xa5, 0x08, 0xef, 0x26, 0xe0, 0x01, 0xf5, 0x23, 0xe0, - 0x41, 0xb2, 0x06, 0x43, 0xd7, 0x09, 0x05, 0xe0, 0x41, 0xe9, 0x20, 0xe0, - 0x01, 0xf5, 0x1f, 0xe0, 0x41, 0x42, 0x2f, 0x03, 0x1c, 0xe0, 0x01, 0x45, - 0xfe, 0xe8, 0x15, 0xe0, 0x41, 0xa8, 0x0c, 0x44, 0xd2, 0xed, 0x14, 0xe0, - 0x01, 0x48, 0xd1, 0xbc, 0x24, 0xe0, 0x41, 0xe1, 0x1e, 0xe0, 0x01, 0x42, - 0x12, 0x00, 0x1b, 0xe0, 0x41, 0x4b, 0xf1, 0x9d, 0x0a, 0xe0, 0x01, 0x07, - 0x16, 0x21, 0x06, 0x43, 0xb3, 0x27, 0x09, 0xe0, 0x41, 0x47, 0xb4, 0xcc, - 0x29, 0xe0, 0x01, 0x49, 0xd0, 0xbc, 0x27, 0xe0, 0x41, 0x43, 0xbc, 0x05, - 0x2a, 0xe0, 0x01, 0x44, 0xe5, 0xbc, 0x17, 0xe0, 0x41, 0x45, 0x94, 0xe4, - 0x0c, 0xe0, 0x01, 0x44, 0x76, 0xee, 0x04, 0xe0, 0x41, 0x46, 0xb5, 0xcc, - 0x28, 0xe0, 0x01, 0x43, 0xbc, 0xcf, 0x01, 0xe0, 0x41, 0x46, 0x74, 0xd8, - 0x52, 0x03, 0x00, 0x4e, 0x9d, 0x45, 0xdc, 0x20, 0x40, 0x09, 0xca, 0xb9, - 0x06, 0x50, 0x9a, 0x64, 0x47, 0x03, 0x40, 0x46, 0xe7, 0x02, 0xdd, 0x20, - 0x80, 0x20, 0x47, 0x88, 0x43, 0xdf, 0x20, 0x00, 0x46, 0x66, 0xda, 0xe3, - 0x20, 0x00, 0xb3, 0x06, 0x58, 0x15, 0x2b, 0xe4, 0x20, 0x40, 0x45, 0x63, - 0x58, 0xe2, 0x20, 0x00, 0x45, 0xac, 0x05, 0xde, 0x20, 0x40, 0x4a, 0xf4, - 0x0d, 0xe0, 0x20, 0x40, 0xa5, 0x95, 0x02, 0x48, 0x30, 0x23, 0x08, 0x03, - 0x80, 0x81, 0x02, 0xaf, 0x01, 0xff, 0xb4, 0xc5, 0x01, 0x04, 0x3d, 0x01, - 0x11, 0x02, 0xa7, 0x01, 0x01, 0xff, 0x4b, 0xdd, 0x95, 0x1e, 0x03, 0x00, - 0x4b, 0xb8, 0x02, 0xb3, 0x1a, 0x40, 0x80, 0x06, 0x53, 0x9d, 0x47, 0xb0, - 0x1a, 0x40, 0x4c, 0x3d, 0x8a, 0x0b, 0x03, 0x00, 0x45, 0xcb, 0x22, 0x5d, - 0x03, 0x80, 0x94, 0x01, 0x50, 0x97, 0x31, 0xcd, 0x1d, 0x00, 0x4c, 0x8d, - 0x22, 0x0f, 0x03, 0x00, 0x4e, 0xd6, 0x22, 0x61, 0x03, 0x80, 0x7b, 0x48, - 0xab, 0x88, 0x33, 0x03, 0x00, 0x46, 0x04, 0x6f, 0x5e, 0x03, 0x80, 0x68, - 0xaf, 0x5a, 0xb0, 0x41, 0x02, 0x0d, 0x00, 0x31, 0x45, 0xad, 0x22, 0x60, - 0x03, 0x80, 0x1b, 0x09, 0x32, 0x00, 0x01, 0xff, 0x05, 0xc2, 0x07, 0x06, - 0x4e, 0xac, 0x48, 0xe6, 0x20, 0x40, 0x45, 0x5c, 0x00, 0x0e, 0x03, 0x00, - 0x45, 0xf5, 0x06, 0x48, 0x03, 0x40, 0x80, 0x01, 0xff, 0x49, 0xaa, 0x13, - 0x22, 0xfe, 0x00, 0x4a, 0x2a, 0x04, 0x23, 0xfe, 0x40, 0x54, 0x87, 0x41, - 0x62, 0x03, 0x00, 0x48, 0xa4, 0x72, 0x5a, 0x03, 0x40, 0x50, 0x7a, 0x5f, - 0xbc, 0x1a, 0x00, 0x09, 0x46, 0x70, 0x01, 0xff, 0x45, 0x5c, 0x00, 0xc9, - 0x1a, 0x00, 0x45, 0xf5, 0x06, 0xca, 0x1a, 0x40, 0x4e, 0xb0, 0x79, 0xb8, - 0x1a, 0x00, 0x47, 0xb9, 0x88, 0x3f, 0x03, 0x40, 0x46, 0xf4, 0x06, 0x5f, - 0x03, 0x40, 0x46, 0xf4, 0x06, 0xfc, 0x1d, 0x40, 0x46, 0xf4, 0x06, 0x5c, - 0x03, 0x40, 0x80, 0x11, 0x04, 0x77, 0x00, 0x01, 0xff, 0x4c, 0x3d, 0x8a, - 0xc1, 0x1d, 0x00, 0x4c, 0x8d, 0x22, 0xc0, 0x1d, 0x40, 0x45, 0x5c, 0x00, - 0x07, 0x03, 0x80, 0x0d, 0x45, 0xf5, 0x06, 0x23, 0x03, 0xc0, 0x00, 0x45, - 0xc2, 0x00, 0xfa, 0x1d, 0x40, 0x80, 0x01, 0xff, 0x44, 0xc3, 0x00, 0xf8, - 0x1d, 0x00, 0x45, 0xc8, 0x00, 0x58, 0x03, 0x40, 0x46, 0xf4, 0x06, 0x24, - 0x03, 0x00, 0x45, 0xe5, 0xde, 0xb1, 0x1a, 0x40, 0x4b, 0x86, 0x9c, 0xfb, - 0x1d, 0x00, 0x09, 0x4a, 0xbe, 0x01, 0xff, 0x06, 0xc4, 0x06, 0x30, 0x07, - 0xc1, 0x05, 0x06, 0x4d, 0xec, 0x86, 0xf1, 0xa8, 0x40, 0xe1, 0xea, 0xa8, - 0x00, 0x42, 0x1b, 0x02, 0xec, 0xa8, 0x00, 0x42, 0xff, 0x04, 0xed, 0xa8, - 0x00, 0x42, 0x6c, 0x09, 0xee, 0xa8, 0x00, 0x42, 0x71, 0x00, 0xef, 0xa8, - 0x00, 0xf5, 0xeb, 0xa8, 0x00, 0x42, 0x02, 0x00, 0xf0, 0xa8, 0x40, 0x45, - 0xc3, 0x0a, 0xe8, 0xa8, 0x00, 0xa6, 0x2e, 0x44, 0x46, 0x2a, 0xe9, 0xa8, - 0x00, 0x43, 0xbf, 0x0a, 0xe1, 0xa8, 0x00, 0xb3, 0x14, 0xb4, 0x06, 0x44, - 0xa1, 0x1d, 0xe0, 0xa8, 0x40, 0x44, 0x25, 0x01, 0xe3, 0xa8, 0x00, 0x42, - 0x15, 0x02, 0xe2, 0xa8, 0x40, 0x44, 0x27, 0x1d, 0xe7, 0xa8, 0x00, 0x42, - 0x60, 0x25, 0xe6, 0xa8, 0x40, 0x43, 0xa7, 0x05, 0xe5, 0xa8, 0x00, 0x43, - 0xcb, 0x06, 0xe4, 0xa8, 0x40, 0xa1, 0xb7, 0x03, 0x46, 0x7c, 0xbf, 0x27, - 0x03, 0x00, 0x50, 0xa5, 0x04, 0x02, 0x03, 0x80, 0xa3, 0x03, 0x09, 0x17, - 0x10, 0x92, 0x03, 0xaf, 0xeb, 0x02, 0x08, 0x3a, 0xca, 0x01, 0xff, 0x4e, - 0x34, 0x75, 0x85, 0x04, 0x00, 0x08, 0x22, 0x11, 0xcf, 0x02, 0x46, 0xa4, - 0x4e, 0x7c, 0xa6, 0x00, 0x07, 0xc1, 0x05, 0x52, 0x4d, 0x25, 0x3b, 0x89, - 0x04, 0x00, 0xb0, 0x30, 0x65, 0x4b, 0x08, 0x8f, 0xe0, 0x01, 0xb4, 0x06, - 0x45, 0x03, 0xe9, 0x6f, 0xa6, 0x40, 0x50, 0x2a, 0x61, 0x70, 0xa6, 0x00, - 0x55, 0x1d, 0x3b, 0x72, 0xa6, 0x00, 0x44, 0x47, 0x96, 0x83, 0x04, 0xc0, - 0x00, 0x80, 0x01, 0xff, 0x49, 0xaa, 0x13, 0x2e, 0xfe, 0x00, 0x4a, 0x2a, - 0x04, 0x2f, 0xfe, 0x40, 0xa1, 0x0c, 0x47, 0xf8, 0xd0, 0x87, 0x04, 0x00, - 0x4d, 0x06, 0x87, 0x86, 0x04, 0x40, 0x4c, 0x29, 0x8f, 0x84, 0x04, 0x00, - 0x45, 0xc5, 0xd1, 0x7d, 0xa6, 0x40, 0xe1, 0xf6, 0x2d, 0x00, 0xa2, 0xe2, - 0x01, 0x43, 0x1e, 0x14, 0xf1, 0x2d, 0x00, 0xa4, 0xcf, 0x01, 0xa5, 0xad, - 0x01, 0x44, 0x96, 0xec, 0xf4, 0x2d, 0x00, 0x43, 0xdd, 0x50, 0xe2, 0x2d, - 0x00, 0x42, 0x22, 0x00, 0xef, 0x2d, 0x80, 0x93, 0x01, 0xe9, 0x75, 0xa6, - 0x80, 0x77, 0x42, 0x1b, 0x02, 0xe6, 0x2d, 0x00, 0x4a, 0xcc, 0x57, 0xfd, - 0x2d, 0x00, 0x4c, 0x6d, 0x90, 0xf9, 0x2d, 0x00, 0xef, 0xea, 0x2d, 0x80, - 0x5a, 0x42, 0x6f, 0x02, 0xeb, 0x2d, 0x00, 0xb3, 0x40, 0xb4, 0x34, 0xf5, - 0x77, 0xa6, 0x80, 0x29, 0x42, 0x32, 0x00, 0xe1, 0x2d, 0x00, 0xb9, 0x0d, - 0xba, 0x01, 0xff, 0xe5, 0xe5, 0x2d, 0x00, 0x42, 0xb0, 0x01, 0xe4, 0x2d, - 0x40, 0x42, 0x8a, 0x00, 0xfa, 0x2d, 0x00, 0x43, 0xfb, 0x2a, 0x79, 0xa6, - 0x00, 0xe9, 0x76, 0xa6, 0x00, 0xf5, 0xfb, 0x2d, 0x40, 0x4b, 0xe1, 0x9b, - 0x74, 0xa6, 0x40, 0xe5, 0xee, 0x2d, 0x00, 0x42, 0x1b, 0x03, 0xf0, 0x2d, - 0x40, 0xa8, 0x06, 0x48, 0xd5, 0x8c, 0x7a, 0xa6, 0x40, 0xe1, 0xf2, 0x2d, - 0x00, 0x43, 0xef, 0x1f, 0xf3, 0x2d, 0x40, 0x44, 0x6b, 0x7a, 0x7b, 0xa6, - 0x40, 0xe5, 0xf7, 0x2d, 0x00, 0x08, 0xd2, 0xc6, 0x01, 0xff, 0xe1, 0xfc, - 0x2d, 0x00, 0x47, 0xb4, 0xcc, 0xff, 0x2d, 0x00, 0xe5, 0x9f, 0xa6, 0x40, - 0x47, 0x4a, 0x91, 0x78, 0xa6, 0x40, 0xe6, 0x9e, 0xa6, 0x00, 0xec, 0xe7, - 0x2d, 0x00, 0xed, 0xe8, 0x2d, 0x00, 0xee, 0xe9, 0x2d, 0x00, 0xf2, 0xec, - 0x2d, 0x00, 0xf3, 0xed, 0x2d, 0xc0, 0x00, 0x43, 0x53, 0x7b, 0xf5, 0x2d, - 0x40, 0xe5, 0xe3, 0x2d, 0x00, 0x44, 0x94, 0xe4, 0xf8, 0x2d, 0x40, 0xe5, - 0xe0, 0x2d, 0x00, 0x46, 0xb5, 0xcc, 0xfe, 0x2d, 0x40, 0x4d, 0x25, 0x3b, - 0x71, 0xa6, 0x00, 0x4e, 0x9a, 0x7b, 0x88, 0x04, 0x40, 0x04, 0xea, 0x04, - 0x0d, 0x4f, 0xfb, 0x6e, 0x26, 0xfe, 0xc0, 0x00, 0x46, 0xf4, 0x06, 0x2d, - 0xfe, 0x40, 0x45, 0x5c, 0x00, 0x13, 0x03, 0x80, 0x06, 0x45, 0xf5, 0x06, - 0x26, 0x03, 0x40, 0x46, 0xc7, 0x00, 0x15, 0x03, 0x40, 0x4b, 0xce, 0x00, - 0xd5, 0x20, 0x00, 0x4c, 0xd1, 0x92, 0xd9, 0x20, 0x40, 0x46, 0xf4, 0x06, - 0x2d, 0x03, 0x40, 0x49, 0x51, 0x23, 0x10, 0x03, 0x00, 0x43, 0x62, 0x0e, - 0x0c, 0x03, 0xc0, 0x00, 0x46, 0xf4, 0x06, 0x2c, 0x03, 0x40, 0x4a, 0x87, - 0xa9, 0x3b, 0x13, 0x01, 0xb2, 0x01, 0xff, 0x43, 0x0a, 0x13, 0x06, 0x03, - 0x80, 0x11, 0x05, 0x67, 0x3b, 0x01, 0xff, 0x45, 0x5c, 0x00, 0x46, 0x03, - 0x00, 0x45, 0xf5, 0x06, 0x2a, 0x03, 0x40, 0x46, 0xf4, 0x06, 0x2e, 0x03, - 0x00, 0x47, 0x02, 0xcb, 0xcb, 0x1d, 0x40, 0x04, 0x2a, 0x38, 0x3a, 0x0f, - 0x29, 0x6e, 0x2a, 0xae, 0x11, 0x08, 0xea, 0x65, 0x01, 0xff, 0x45, 0x5c, - 0x00, 0xf0, 0x20, 0x00, 0x45, 0xf5, 0x06, 0x59, 0x03, 0x40, 0x4c, 0x2d, - 0x91, 0xe7, 0x20, 0x00, 0x0c, 0x14, 0x10, 0x01, 0xff, 0x4b, 0xce, 0x00, - 0xd4, 0x20, 0x00, 0x4c, 0xd1, 0x92, 0xda, 0x20, 0x40, 0x45, 0x5c, 0x00, - 0x4c, 0x03, 0x00, 0x45, 0xf5, 0x06, 0xfd, 0x1d, 0x40, 0x80, 0x0f, 0x8d, - 0x01, 0xff, 0x4b, 0x60, 0x9a, 0xc9, 0x1d, 0x00, 0x46, 0x04, 0x6f, 0xc7, - 0x1d, 0x40, 0x46, 0xaf, 0x04, 0x01, 0x03, 0x80, 0x06, 0x49, 0x83, 0x2c, - 0x41, 0x03, 0x40, 0x46, 0xf4, 0x06, 0x17, 0x03, 0x40, 0x4d, 0x6b, 0x83, - 0xa5, 0xf4, 0x01, 0x42, 0x10, 0x00, 0x3a, 0x00, 0xc0, 0x00, 0x80, 0x01, - 0xff, 0x46, 0xf9, 0x12, 0x54, 0x22, 0x00, 0x44, 0x2f, 0x03, 0xa1, 0x20, - 0x40, 0xab, 0x06, 0x44, 0x8e, 0xee, 0x65, 0xf9, 0x41, 0x45, 0x04, 0xd2, - 0xb3, 0xfa, 0x01, 0x4a, 0x45, 0xaf, 0x78, 0xf3, 0x41, 0xa1, 0xdb, 0x03, - 0x51, 0x5e, 0x58, 0x9a, 0x23, 0x00, 0xa9, 0xbc, 0x03, 0xaf, 0x01, 0xff, - 0x02, 0x36, 0x01, 0x8f, 0x01, 0x02, 0x1b, 0x03, 0x2a, 0x42, 0x63, 0x0c, - 0x01, 0x26, 0x80, 0x06, 0x47, 0xdd, 0x7a, 0x21, 0xf9, 0x41, 0x06, 0x50, - 0x00, 0x01, 0xff, 0x49, 0x04, 0xb9, 0x29, 0xf3, 0x01, 0x44, 0x67, 0x08, - 0x27, 0xf3, 0x01, 0x44, 0x0a, 0x2e, 0x28, 0xf3, 0x01, 0x47, 0xa6, 0xd3, - 0x2a, 0xf3, 0x41, 0x43, 0x4f, 0x02, 0x50, 0x20, 0x00, 0x02, 0x06, 0x00, - 0x01, 0xff, 0x44, 0x0e, 0xec, 0xd5, 0xf4, 0x01, 0x58, 0xa5, 0x28, 0x4d, - 0x2a, 0x00, 0x4d, 0x85, 0x83, 0x10, 0xf5, 0x01, 0x0d, 0xc6, 0x83, 0x34, - 0x02, 0x6f, 0x00, 0x16, 0xb5, 0x01, 0xff, 0x47, 0xe3, 0x5f, 0x02, 0xf3, - 0x01, 0x50, 0xca, 0x63, 0x4c, 0x2a, 0xc0, 0x00, 0x52, 0xd8, 0x4d, 0x50, - 0x2a, 0x40, 0x44, 0x4c, 0x12, 0xcf, 0x2a, 0x80, 0x0d, 0x46, 0x59, 0x35, - 0xd0, 0x2a, 0xc0, 0x00, 0x4c, 0x51, 0x28, 0xd2, 0x2a, 0x40, 0x4c, 0x51, - 0x28, 0xd1, 0x2a, 0x40, 0x4c, 0xc5, 0x8f, 0xea, 0xf4, 0x01, 0x4b, 0x88, - 0x9f, 0xeb, 0xf4, 0x41, 0x06, 0xe0, 0x07, 0x51, 0x05, 0x1b, 0x10, 0x01, - 0xff, 0xa3, 0x3e, 0x68, 0xb5, 0x04, 0x03, 0xf5, 0x01, 0x53, 0x5b, 0x48, - 0xf3, 0x27, 0x00, 0x48, 0xf3, 0x25, 0x31, 0x22, 0x00, 0x51, 0xcb, 0x04, - 0xbb, 0x21, 0x00, 0x05, 0xc8, 0x00, 0x0f, 0xb4, 0x01, 0xff, 0x53, 0x82, - 0x4a, 0xb7, 0x21, 0x00, 0x60, 0xa5, 0x0f, 0x6e, 0x2b, 0x40, 0x5b, 0x4e, - 0x19, 0xd8, 0xf5, 0x01, 0x66, 0x6c, 0x07, 0x01, 0xf5, 0xc1, 0x00, 0x59, - 0x67, 0x22, 0x02, 0xf5, 0x41, 0x52, 0x34, 0x52, 0x41, 0x29, 0x00, 0x4f, - 0xbe, 0x6f, 0x32, 0x22, 0x40, 0xa5, 0xac, 0x01, 0xa6, 0x88, 0x01, 0x04, - 0x46, 0x2a, 0x78, 0x03, 0xbf, 0x0a, 0x68, 0xb3, 0x45, 0xb4, 0x01, 0xff, - 0x02, 0x92, 0x01, 0x32, 0x04, 0x25, 0x01, 0x22, 0xb7, 0x01, 0xff, 0x04, - 0x46, 0x2b, 0x0f, 0xaf, 0x01, 0xff, 0x47, 0xae, 0xca, 0x51, 0xf5, 0x01, - 0x47, 0x17, 0xcb, 0x5d, 0xf5, 0x41, 0x47, 0xae, 0xca, 0x5b, 0xf5, 0x01, - 0x47, 0x17, 0xcb, 0x67, 0xf5, 0x41, 0x47, 0xae, 0xca, 0x52, 0xf5, 0x01, - 0x47, 0x17, 0xcb, 0x5e, 0xf5, 0x41, 0x47, 0xae, 0xca, 0x59, 0xf5, 0x01, - 0x47, 0x17, 0xcb, 0x65, 0xf5, 0x41, 0x04, 0x27, 0x1d, 0x11, 0x02, 0x60, - 0x25, 0x01, 0xff, 0x47, 0xae, 0xca, 0x55, 0xf5, 0x01, 0x47, 0x17, 0xcb, - 0x61, 0xf5, 0x41, 0x47, 0xae, 0xca, 0x56, 0xf5, 0x01, 0x47, 0x17, 0xcb, - 0x62, 0xf5, 0x41, 0x47, 0xae, 0xca, 0x50, 0xf5, 0x01, 0x47, 0x17, 0xcb, - 0x5c, 0xf5, 0x41, 0x47, 0xae, 0xca, 0x58, 0xf5, 0x01, 0x47, 0x17, 0xcb, - 0x64, 0xf5, 0x41, 0x03, 0xa7, 0x05, 0x11, 0x03, 0xcb, 0x06, 0x01, 0xff, - 0x47, 0xae, 0xca, 0x53, 0xf5, 0x01, 0x47, 0x17, 0xcb, 0x5f, 0xf5, 0x41, - 0x47, 0xae, 0xca, 0x54, 0xf5, 0x01, 0x47, 0x17, 0xcb, 0x60, 0xf5, 0x41, - 0x04, 0xc9, 0x00, 0x11, 0x05, 0x0b, 0x6e, 0x01, 0xff, 0x47, 0xae, 0xca, - 0x5a, 0xf5, 0x01, 0x47, 0x17, 0xcb, 0x66, 0xf5, 0x41, 0x47, 0xae, 0xca, - 0x57, 0xf5, 0x01, 0x47, 0x17, 0xcb, 0x63, 0xf5, 0x41, 0x06, 0x97, 0x8f, - 0x06, 0x46, 0x04, 0xdc, 0xcb, 0xf4, 0x41, 0x49, 0x3c, 0xb4, 0x7b, 0xf3, - 0x01, 0x47, 0xce, 0xbd, 0x42, 0xf9, 0x41, 0x53, 0xfd, 0x49, 0x81, 0xf5, - 0x01, 0x02, 0x6e, 0x02, 0x06, 0x4f, 0x9e, 0x71, 0xdb, 0xf3, 0x41, 0x48, - 0x23, 0x14, 0xac, 0xf3, 0x01, 0x4e, 0x1e, 0x77, 0x4f, 0xf4, 0x41, 0x58, - 0x0d, 0x27, 0x06, 0xd8, 0x00, 0x08, 0x1c, 0xa3, 0xbb, 0x01, 0x07, 0x76, - 0x0e, 0x06, 0x52, 0x45, 0x32, 0x01, 0xd8, 0x40, 0x43, 0xab, 0xf0, 0xc3, - 0x31, 0x00, 0xe4, 0xd4, 0x31, 0x00, 0xe8, 0xd0, 0x31, 0x80, 0x5f, 0xee, - 0xcf, 0x31, 0x00, 0xf0, 0xd2, 0x31, 0x80, 0x4a, 0xf1, 0xe3, 0x31, 0x00, - 0xf3, 0xd1, 0x31, 0x80, 0x15, 0xf4, 0xc0, 0x31, 0x80, 0x0c, 0x42, 0x9a, - 0x41, 0xc1, 0x31, 0x00, 0x42, 0xac, 0xf0, 0xc2, 0x31, 0x40, 0xee, 0xdd, - 0x31, 0x40, 0xe7, 0xda, 0x31, 0x00, 0xf0, 0xd3, 0x31, 0x00, 0xf4, 0xd9, - 0x31, 0x00, 0xf7, 0xc4, 0x31, 0x80, 0x13, 0xfa, 0xd7, 0x31, 0xc0, 0x00, - 0xf0, 0xe5, 0x31, 0x00, 0x42, 0x9a, 0x41, 0xc9, 0x31, 0x00, 0xfa, 0xde, - 0x31, 0x40, 0xe7, 0xdf, 0x31, 0x00, 0xfa, 0xd8, 0x31, 0x40, 0xe4, 0xdb, - 0x31, 0x00, 0xe7, 0xe2, 0x31, 0x00, 0xfa, 0xdc, 0x31, 0x40, 0xe7, 0xd6, - 0x31, 0x00, 0xf0, 0xc7, 0x31, 0x80, 0x34, 0xb8, 0x28, 0xfa, 0xd5, 0x31, - 0xc0, 0x00, 0xe7, 0xc6, 0x31, 0x00, 0xf4, 0xca, 0x31, 0x00, 0xf7, 0xcd, - 0x31, 0x80, 0x12, 0xfa, 0xc5, 0x31, 0xc0, 0x00, 0xf0, 0xcb, 0x31, 0x00, - 0xfa, 0xce, 0x31, 0xc0, 0x00, 0xe7, 0xe1, 0x31, 0x40, 0xe7, 0xc8, 0x31, - 0x40, 0xe7, 0xe4, 0x31, 0x00, 0x42, 0x9a, 0x41, 0xe0, 0x31, 0x40, 0x42, - 0x9a, 0x41, 0xcc, 0x31, 0x40, 0xa2, 0xba, 0x06, 0xa3, 0xfb, 0x04, 0xa4, - 0xe6, 0x04, 0xa5, 0xbe, 0x04, 0xa6, 0xaf, 0x04, 0xa7, 0x8c, 0x04, 0xa8, - 0xe4, 0x03, 0xaa, 0xbc, 0x03, 0x06, 0x7e, 0xa3, 0xab, 0x03, 0xac, 0xf8, - 0x02, 0xad, 0xc1, 0x02, 0x04, 0xfb, 0x47, 0xa1, 0x02, 0x43, 0x5a, 0x1a, - 0xb9, 0x2e, 0x00, 0xb0, 0x82, 0x02, 0xb2, 0xe9, 0x01, 0xb3, 0x51, 0xb4, - 0x37, 0xb7, 0x01, 0xff, 0xa1, 0x11, 0x04, 0x38, 0x1a, 0x01, 0xff, 0x43, - 0xbf, 0x0a, 0xc3, 0x2e, 0x00, 0x43, 0xd0, 0x09, 0xc4, 0x2e, 0x40, 0x03, - 0x23, 0xf1, 0x11, 0x04, 0xdd, 0x02, 0x01, 0xff, 0x43, 0xbf, 0x0a, 0xa1, - 0x2e, 0x00, 0x43, 0xd0, 0x09, 0xa2, 0x2e, 0x40, 0x43, 0xbf, 0x0a, 0xcd, - 0x2e, 0x00, 0x43, 0xd0, 0x09, 0xce, 0x2e, 0x40, 0x44, 0xb2, 0x17, 0x87, - 0x2e, 0x00, 0x45, 0xfd, 0x9b, 0x93, 0x2e, 0x00, 0x44, 0x3e, 0xed, 0xc1, - 0x2e, 0x00, 0x45, 0xcc, 0xe8, 0xf1, 0x2e, 0x40, 0xa5, 0x74, 0x44, 0xe6, - 0xec, 0xb6, 0x2e, 0x00, 0xa9, 0x3f, 0x05, 0x0d, 0x07, 0x2f, 0xae, 0x16, - 0x06, 0x2e, 0xdc, 0x06, 0x42, 0xf3, 0x0a, 0x9c, 0x2e, 0x40, 0x43, 0xbf, - 0x0a, 0xac, 0x2e, 0x00, 0x43, 0xd0, 0x09, 0xad, 0x2e, 0x40, 0x43, 0xf1, - 0x26, 0x92, 0x2e, 0x00, 0x04, 0xb4, 0x4f, 0x01, 0xff, 0x43, 0xbf, 0x0a, - 0x94, 0x2e, 0x00, 0x43, 0xd0, 0x09, 0x95, 0x2e, 0x40, 0x43, 0xbf, 0x0a, - 0x8c, 0x2e, 0x00, 0x43, 0xd0, 0x09, 0x8d, 0x2e, 0x40, 0x42, 0xf5, 0x59, - 0xaf, 0x2e, 0x00, 0x09, 0x10, 0x8a, 0x01, 0xff, 0xa8, 0x14, 0xb7, 0x06, - 0x46, 0x04, 0xd5, 0xe9, 0x2e, 0x40, 0x43, 0xf4, 0x59, 0xcc, 0x2e, 0x00, - 0x44, 0xa2, 0x9a, 0xe8, 0x2e, 0x40, 0x4e, 0x46, 0x74, 0xa6, 0x2e, 0x00, - 0x43, 0xfd, 0x04, 0xc6, 0x2e, 0x40, 0x42, 0x13, 0x00, 0x8b, 0x2e, 0x00, - 0x05, 0x84, 0x7a, 0x01, 0xff, 0x43, 0xbf, 0x0a, 0x82, 0x2e, 0x00, 0xb4, - 0x01, 0xff, 0x44, 0x25, 0x01, 0x84, 0x2e, 0x00, 0x42, 0x15, 0x02, 0x83, - 0x2e, 0x40, 0xa1, 0x06, 0x45, 0x04, 0x6b, 0x80, 0x2e, 0x40, 0x42, 0x9e, - 0x01, 0xd7, 0x2e, 0x00, 0xed, 0xb7, 0x2e, 0x00, 0xf0, 0x99, 0x2e, 0x40, - 0x03, 0x9a, 0x43, 0x06, 0x45, 0x7d, 0x1c, 0x85, 0x2e, 0x40, 0x43, 0xbf, - 0x0a, 0xa4, 0x2e, 0x00, 0x43, 0xd0, 0x09, 0xa5, 0x2e, 0x40, 0x44, 0xca, - 0x06, 0xb4, 0x2e, 0x00, 0x43, 0xbf, 0x0a, 0xb1, 0x2e, 0x00, 0xb4, 0x01, - 0xff, 0x44, 0x25, 0x01, 0xb3, 0x2e, 0x00, 0x42, 0x15, 0x02, 0xb2, 0x2e, - 0x40, 0xa5, 0x26, 0xaf, 0x01, 0xff, 0x42, 0x10, 0x00, 0x9d, 0x2e, 0x00, - 0x44, 0x23, 0x4c, 0xbd, 0x2e, 0x00, 0x44, 0xa3, 0x19, 0x9f, 0x2e, 0x00, - 0x04, 0x0c, 0x12, 0x01, 0xff, 0x43, 0xbf, 0x0a, 0xd5, 0x2e, 0x00, 0x43, - 0xd0, 0x09, 0xd6, 0x2e, 0x40, 0x42, 0x8a, 0x00, 0xbc, 0x2e, 0x00, 0x42, - 0xa4, 0x02, 0xb5, 0x2e, 0x40, 0x04, 0x51, 0xb6, 0x11, 0x04, 0x63, 0x0e, - 0x01, 0xff, 0x43, 0xbf, 0x0a, 0xd1, 0x2e, 0x00, 0x43, 0xd0, 0x09, 0xd2, - 0x2e, 0x40, 0x44, 0xca, 0x06, 0x91, 0x2e, 0x00, 0x43, 0xbf, 0x0a, 0x8e, - 0x2e, 0x00, 0xb4, 0x01, 0xff, 0x44, 0x25, 0x01, 0x90, 0x2e, 0x00, 0x42, - 0x15, 0x02, 0x8f, 0x2e, 0x40, 0x43, 0xbf, 0x0a, 0x88, 0x2e, 0x00, 0x43, - 0xd0, 0x09, 0x89, 0x2e, 0x40, 0x0c, 0x0d, 0x8a, 0x06, 0x43, 0x0c, 0x02, - 0xa9, 0x2e, 0x40, 0x46, 0xa3, 0x8d, 0xef, 0x2e, 0x00, 0x44, 0x27, 0x1d, - 0xeb, 0x2e, 0x00, 0xb4, 0x01, 0xff, 0x44, 0x96, 0xee, 0xed, 0x2e, 0x00, - 0x45, 0xcc, 0xe8, 0xf2, 0x2e, 0x40, 0x43, 0x1a, 0x00, 0x98, 0x2e, 0x00, - 0x02, 0x89, 0x00, 0x06, 0x43, 0xfd, 0x04, 0xc7, 0x2e, 0x40, 0xe4, 0xe1, - 0x2e, 0x00, 0x03, 0x6e, 0x09, 0x01, 0xff, 0x43, 0xbf, 0x0a, 0x96, 0x2e, - 0x00, 0x43, 0xd0, 0x09, 0x97, 0x2e, 0x40, 0x44, 0x5f, 0x7b, 0xe4, 0x2e, - 0x00, 0x05, 0x7a, 0x1f, 0x01, 0xff, 0x43, 0xbf, 0x0a, 0xbe, 0x2e, 0x00, - 0xb4, 0x01, 0xff, 0x44, 0x25, 0x01, 0xc0, 0x2e, 0x00, 0x42, 0x15, 0x02, - 0xbf, 0x2e, 0x40, 0x43, 0x39, 0x0d, 0xa3, 0x2e, 0x00, 0x43, 0x25, 0x6b, - 0xca, 0x2e, 0x40, 0x03, 0x12, 0x05, 0x0c, 0x42, 0x15, 0x01, 0xb8, 0x2e, - 0x00, 0x42, 0x4d, 0x00, 0xab, 0x2e, 0x40, 0x43, 0xbf, 0x0a, 0xdd, 0x2e, - 0x00, 0xb4, 0x01, 0xff, 0x44, 0x25, 0x01, 0xdf, 0x2e, 0x00, 0x42, 0x15, - 0x02, 0xde, 0x2e, 0x40, 0x44, 0x24, 0x0f, 0x9e, 0x2e, 0x00, 0x49, 0x6b, - 0xb8, 0x8a, 0x2e, 0x00, 0x42, 0x55, 0x18, 0xa8, 0x2e, 0x40, 0x0c, 0x0d, - 0x8a, 0x28, 0x44, 0x64, 0xda, 0x9b, 0x2e, 0x00, 0xa9, 0x14, 0xac, 0x06, - 0x42, 0xd1, 0x00, 0xa7, 0x2e, 0x40, 0x43, 0x20, 0x47, 0x81, 0x2e, 0x00, - 0x45, 0x8c, 0x86, 0xc2, 0x2e, 0x40, 0x42, 0x2e, 0x11, 0xcf, 0x2e, 0x00, - 0x46, 0x14, 0xde, 0xa0, 0x2e, 0x40, 0x44, 0x4b, 0xa5, 0xe6, 0x2e, 0x00, - 0x44, 0x9c, 0x6a, 0xcb, 0x2e, 0x00, 0x46, 0xa3, 0x8d, 0xf0, 0x2e, 0x00, - 0xa5, 0x70, 0xa6, 0x5c, 0xa7, 0x4e, 0x45, 0xd0, 0xb0, 0xe2, 0x2e, 0x00, - 0xac, 0x3a, 0xb3, 0x1a, 0xb4, 0x06, 0x44, 0x3f, 0x13, 0xdb, 0x2e, 0x40, - 0x4d, 0x00, 0x7f, 0xd9, 0x2e, 0x00, 0x44, 0x96, 0xee, 0xee, 0x2e, 0x00, - 0x45, 0xcc, 0xe8, 0xf3, 0x2e, 0x40, 0x43, 0xa2, 0x11, 0xe7, 0x2e, 0x00, - 0x42, 0x27, 0x01, 0xc5, 0x2e, 0x00, 0x44, 0x0f, 0x09, 0xc9, 0x2e, 0x00, - 0x43, 0xe8, 0xae, 0xb0, 0x2e, 0x00, 0x45, 0x0f, 0x7b, 0xc8, 0x2e, 0x40, - 0x43, 0xf1, 0x4f, 0xda, 0x2e, 0x00, 0x43, 0x63, 0x0e, 0xd3, 0x2e, 0x40, - 0x43, 0x8a, 0x00, 0xd4, 0x2e, 0x00, 0x43, 0x5a, 0x1a, 0xd0, 0x2e, 0x40, - 0x43, 0x82, 0x0c, 0xe5, 0x2e, 0x00, 0x42, 0x26, 0x0b, 0xdc, 0x2e, 0x00, - 0x43, 0x27, 0x29, 0xea, 0x2e, 0x40, 0x42, 0x8a, 0x00, 0xe0, 0x2e, 0x00, - 0x43, 0x28, 0x1d, 0xec, 0x2e, 0x40, 0x45, 0x99, 0xcc, 0xae, 0x2e, 0x00, - 0x43, 0x16, 0x8b, 0xd8, 0x2e, 0x00, 0xaf, 0x11, 0x05, 0x7d, 0xe7, 0x01, - 0xff, 0x43, 0xbf, 0x0a, 0xba, 0x2e, 0x00, 0x43, 0xd0, 0x09, 0xbb, 0x2e, - 0x40, 0x4b, 0xd3, 0x9c, 0xaa, 0x2e, 0x00, 0x42, 0xa2, 0x05, 0xe3, 0x2e, - 0x00, 0xf8, 0x86, 0x2e, 0x40, 0x44, 0x2e, 0xee, 0xa6, 0xf3, 0x01, 0x02, - 0xe9, 0x02, 0x0d, 0x47, 0xd7, 0xd3, 0xd9, 0xf3, 0xc1, 0x00, 0x48, 0x72, - 0xbf, 0x06, 0xf3, 0x41, 0x02, 0x68, 0x00, 0x15, 0xb5, 0x01, 0xff, 0x4f, - 0x93, 0x6d, 0x10, 0x2a, 0x00, 0x4c, 0xa9, 0x04, 0x5e, 0x00, 0x00, 0x46, - 0xbe, 0xdc, 0xaa, 0xf3, 0x41, 0x80, 0xa7, 0x0e, 0x02, 0x06, 0x00, 0x01, - 0xff, 0xa1, 0x89, 0x0e, 0xa2, 0xfa, 0x0d, 0xa3, 0xbe, 0x0d, 0xa4, 0xcd, - 0x0c, 0x46, 0xf9, 0x12, 0x9c, 0x22, 0x00, 0x4c, 0x87, 0x00, 0xc1, 0x29, - 0x00, 0xa8, 0xe1, 0x0a, 0xa9, 0xc7, 0x07, 0xab, 0xdd, 0x05, 0xac, 0xf7, - 0x03, 0xad, 0xe8, 0x03, 0x07, 0x2f, 0x39, 0x6f, 0x5e, 0xd6, 0x13, 0x42, - 0x27, 0x00, 0xb0, 0x4f, 0xb2, 0x41, 0x46, 0xab, 0x05, 0xd7, 0xf7, 0x01, - 0xb4, 0x26, 0x4c, 0x32, 0x00, 0xb6, 0x29, 0x00, 0xb7, 0x0a, 0xf8, 0xbe, - 0x2b, 0x00, 0x4f, 0xab, 0x73, 0x0d, 0xf1, 0x41, 0x05, 0xae, 0x02, 0x04, - 0xfa, 0x2e, 0xf1, 0x41, 0x46, 0x2a, 0x21, 0xbe, 0x29, 0x00, 0x44, 0xe2, - 0x12, 0x2a, 0x27, 0x40, 0x44, 0x29, 0x02, 0x97, 0x22, 0x00, 0x47, 0x02, - 0x02, 0xd5, 0xf7, 0xc1, 0x00, 0x45, 0xa4, 0x01, 0x8a, 0x23, 0x40, 0x4e, - 0xcd, 0x70, 0xb8, 0x29, 0x00, 0x4c, 0x81, 0x8e, 0x9a, 0x22, 0x40, 0x47, - 0xb9, 0x37, 0xb7, 0x29, 0x00, 0x4c, 0xf5, 0x8c, 0xb9, 0x29, 0x00, 0x43, - 0xb8, 0x27, 0x95, 0x22, 0x00, 0x4a, 0xcf, 0xac, 0x36, 0x30, 0x40, 0xa5, - 0xdc, 0x02, 0xa6, 0xec, 0x01, 0x48, 0x7c, 0x52, 0x72, 0x24, 0x00, 0xb3, - 0xc2, 0x01, 0xb4, 0x01, 0xff, 0x42, 0x92, 0x01, 0x69, 0x24, 0x80, 0xb1, - 0x01, 0x04, 0x2b, 0x11, 0x5a, 0x02, 0x15, 0x01, 0x01, 0xff, 0x43, 0x47, - 0x2b, 0x6b, 0x24, 0x00, 0x43, 0x2a, 0x1d, 0x73, 0x24, 0xc0, 0x00, 0x80, - 0x01, 0xff, 0x45, 0xc3, 0x0a, 0x58, 0x32, 0x00, 0xa6, 0x31, 0x44, 0x46, - 0x2a, 0x59, 0x32, 0x00, 0x02, 0x10, 0x00, 0x1d, 0xb3, 0x0f, 0xb4, 0x01, - 0xff, 0x44, 0x25, 0x01, 0x53, 0x32, 0x00, 0x42, 0x15, 0x02, 0x52, 0x32, - 0x40, 0x44, 0x27, 0x1d, 0x57, 0x32, 0x00, 0x42, 0x60, 0x25, 0x56, 0x32, - 0x40, 0x4d, 0xf2, 0x10, 0x49, 0x32, 0x00, 0xe5, 0x51, 0x32, 0x40, 0x43, - 0xa7, 0x05, 0x55, 0x32, 0x00, 0x43, 0xcb, 0x06, 0x54, 0x32, 0x40, 0x43, - 0x75, 0x09, 0x6c, 0x24, 0x00, 0xf9, 0x5a, 0x32, 0xc0, 0x00, 0x80, 0x01, - 0xff, 0x45, 0xc3, 0x0a, 0xb3, 0x32, 0x00, 0xa6, 0x31, 0x44, 0x46, 0x2a, - 0xb4, 0x32, 0x00, 0x02, 0x10, 0x00, 0x1d, 0xb3, 0x0f, 0xb4, 0x01, 0xff, - 0x44, 0x25, 0x01, 0x5d, 0x32, 0x00, 0x42, 0x15, 0x02, 0x5c, 0x32, 0x40, - 0x44, 0x27, 0x1d, 0xb2, 0x32, 0x00, 0x42, 0x60, 0x25, 0xb1, 0x32, 0x40, - 0x4d, 0xf2, 0x10, 0x4a, 0x32, 0x00, 0xe5, 0x5b, 0x32, 0x40, 0x43, 0xa7, - 0x05, 0x5f, 0x32, 0x00, 0x43, 0xcb, 0x06, 0x5e, 0x32, 0x40, 0x50, 0x48, - 0x5e, 0x48, 0x32, 0x40, 0x05, 0x27, 0x1d, 0x11, 0x03, 0x60, 0x25, 0x01, - 0xff, 0x43, 0x75, 0x09, 0x6f, 0x24, 0x00, 0x51, 0x47, 0x5e, 0x4d, 0x32, - 0x40, 0x43, 0x75, 0x09, 0x70, 0x24, 0x00, 0x51, 0x47, 0x5e, 0x4e, 0x32, - 0x40, 0x03, 0x9c, 0x17, 0x58, 0xaf, 0x01, 0xff, 0x43, 0x2d, 0x11, 0xb5, - 0x32, 0x80, 0x06, 0x46, 0xa0, 0x5b, 0x6d, 0x24, 0x40, 0x80, 0x01, 0xff, - 0x45, 0xc3, 0x0a, 0xbd, 0x32, 0x00, 0xa6, 0x31, 0x44, 0x46, 0x2a, 0xbe, + 0xc7, 0x04, 0x05, 0xee, 0xe8, 0x01, 0xff, 0xa1, 0xb3, 0x04, 0x06, 0xef, + 0x06, 0xec, 0x03, 0x02, 0x68, 0x00, 0x9f, 0x01, 0x05, 0x5a, 0x03, 0x4e, + 0x0b, 0x40, 0x77, 0x01, 0xff, 0xa1, 0x3b, 0xe5, 0xc6, 0x0c, 0x80, 0x32, + 0xe9, 0xbf, 0x0c, 0x80, 0x29, 0xef, 0xca, 0x0c, 0x80, 0x20, 0xf5, 0xc1, + 0x0c, 0x80, 0x17, 0x08, 0x22, 0xc1, 0x01, 0xff, 0xec, 0xe2, 0x0c, 0x80, + 0x09, 0xf2, 0xc3, 0x0c, 0xc0, 0x00, 0xf2, 0xc4, 0x0c, 0x40, 0xec, 0xe3, + 0x0c, 0x40, 0xf5, 0xc2, 0x0c, 0x40, 0xef, 0xcb, 0x0c, 0x40, 0xe9, 0xc0, + 0x0c, 0x40, 0xe5, 0xc7, 0x0c, 0x40, 0xe1, 0xbe, 0x0c, 0x00, 0xe9, 0xc8, + 0x0c, 0x00, 0xf5, 0xcc, 0x0c, 0x40, 0xa1, 0x3f, 0xa3, 0x31, 0x4b, 0xe6, + 0x9d, 0xf1, 0x0c, 0x00, 0x45, 0x3f, 0x3f, 0xbc, 0x0c, 0x00, 0xb3, 0x17, + 0x4b, 0x6e, 0xa4, 0xf2, 0x0c, 0x00, 0x02, 0x02, 0x00, 0x01, 0xff, 0x44, + 0xe5, 0x23, 0xcd, 0x0c, 0x00, 0x45, 0xec, 0x4b, 0x83, 0x0c, 0x40, 0x46, + 0xd9, 0xd5, 0x84, 0x0c, 0x00, 0x52, 0x79, 0x54, 0x80, 0x0c, 0x40, 0x4a, + 0xd8, 0x23, 0x81, 0x0c, 0x00, 0x5d, 0x33, 0x16, 0xf3, 0x0c, 0x40, 0x47, + 0x3d, 0x16, 0x82, 0x0c, 0x00, 0x47, 0xaf, 0x88, 0xbd, 0x0c, 0x40, 0x49, + 0x44, 0x39, 0xd5, 0x0c, 0x00, 0x05, 0xee, 0x05, 0x01, 0xff, 0xe1, 0x85, + 0x0c, 0x80, 0xab, 0x02, 0xa2, 0x9e, 0x02, 0xa3, 0x91, 0x02, 0xa4, 0xf8, + 0x01, 0xe5, 0x8e, 0x0c, 0x80, 0xee, 0x01, 0x42, 0x0c, 0x08, 0xde, 0x0c, + 0x00, 0xa7, 0xdb, 0x01, 0x42, 0x22, 0x00, 0xb9, 0x0c, 0x00, 0xe9, 0x87, + 0x0c, 0x80, 0xcb, 0x01, 0xaa, 0xbe, 0x01, 0xab, 0xb1, 0x01, 0xac, 0x9d, + 0x01, 0x42, 0x6c, 0x00, 0xae, 0x0c, 0x00, 0xae, 0x78, 0xef, 0x92, 0x0c, + 0x80, 0x6f, 0xb0, 0x63, 0xb2, 0x57, 0xb3, 0x45, 0xb4, 0x2c, 0xf5, 0x89, + 0x0c, 0x80, 0x23, 0xb6, 0x06, 0x42, 0xbc, 0x22, 0xaf, 0x0c, 0x40, 0xe1, + 0xb5, 0x0c, 0x00, 0x07, 0x23, 0xc1, 0x01, 0xff, 0xec, 0x8c, 0x0c, 0x80, + 0x09, 0xf2, 0x8b, 0x0c, 0xc0, 0x00, 0xf2, 0xe0, 0x0c, 0x40, 0xec, 0xe1, + 0x0c, 0x40, 0xf5, 0x8a, 0x0c, 0x40, 0xe1, 0xa4, 0x0c, 0x00, 0x42, 0x22, + 0x00, 0xa5, 0x0c, 0x00, 0xb4, 0x01, 0xff, 0xe1, 0x9f, 0x0c, 0x00, 0x42, + 0x22, 0x00, 0xa0, 0x0c, 0x40, 0xe1, 0xb8, 0x0c, 0x00, 0x42, 0x22, 0x00, + 0xb6, 0x0c, 0x00, 0x42, 0x40, 0x06, 0xb7, 0x0c, 0x40, 0xe1, 0xb0, 0x0c, + 0x00, 0x42, 0x71, 0x00, 0xb1, 0x0c, 0x40, 0xe1, 0xaa, 0x0c, 0x00, 0x42, + 0x22, 0x00, 0xab, 0x0c, 0x40, 0xef, 0x93, 0x0c, 0x40, 0xe1, 0xa8, 0x0c, + 0x80, 0x12, 0x42, 0x24, 0x02, 0x99, 0x0c, 0x00, 0x42, 0x2a, 0x05, 0xa3, + 0x0c, 0x00, 0x42, 0xbc, 0x22, 0x9e, 0x0c, 0x40, 0x4b, 0xfc, 0x9d, 0xdd, + 0x0c, 0x40, 0xe1, 0xb2, 0x0c, 0x00, 0xac, 0x01, 0xff, 0xe1, 0xb3, 0x0c, + 0x00, 0x42, 0x74, 0x00, 0xde, 0x0c, 0x40, 0xe1, 0x95, 0x0c, 0x00, 0x42, + 0x22, 0x00, 0x96, 0x0c, 0x40, 0xe1, 0x9c, 0x0c, 0x00, 0x42, 0x22, 0x00, + 0x9d, 0x0c, 0x40, 0xe9, 0x88, 0x0c, 0x40, 0xe1, 0x97, 0x0c, 0x00, 0x42, + 0x22, 0x00, 0x98, 0x0c, 0x40, 0xe5, 0x8f, 0x0c, 0x40, 0xe1, 0xa6, 0x0c, + 0x00, 0xa4, 0x06, 0x42, 0x22, 0x00, 0xa7, 0x0c, 0x40, 0xe1, 0xa1, 0x0c, + 0x00, 0x42, 0x22, 0x00, 0xa2, 0x0c, 0x40, 0xe1, 0x9a, 0x0c, 0x00, 0x42, + 0x22, 0x00, 0x9b, 0x0c, 0x40, 0xe1, 0xac, 0x0c, 0x00, 0x42, 0x22, 0x00, + 0xad, 0x0c, 0x40, 0xe1, 0x86, 0x0c, 0x00, 0xe9, 0x90, 0x0c, 0x00, 0xf5, + 0x94, 0x0c, 0x40, 0x45, 0x12, 0x0b, 0xee, 0x0c, 0x00, 0xa6, 0x2e, 0x44, + 0xcf, 0x2a, 0xef, 0x0c, 0x00, 0x43, 0x0e, 0x0b, 0xe7, 0x0c, 0x00, 0xb3, + 0x14, 0xb4, 0x06, 0x44, 0x43, 0x1e, 0xe6, 0x0c, 0x40, 0x44, 0x25, 0x01, + 0xe9, 0x0c, 0x00, 0x42, 0x15, 0x02, 0xe8, 0x0c, 0x40, 0x44, 0xc9, 0x1d, + 0xed, 0x0c, 0x00, 0x42, 0x01, 0x26, 0xec, 0x0c, 0x40, 0x43, 0xd2, 0x05, + 0xeb, 0x0c, 0x00, 0x43, 0xf6, 0x06, 0xea, 0x0c, 0x40, 0x4d, 0xd6, 0x83, + 0xd6, 0x0c, 0x00, 0x4c, 0x3b, 0x94, 0xdc, 0x0c, 0x40, 0x44, 0x19, 0xef, + 0x98, 0xf9, 0x01, 0x0b, 0x55, 0xa5, 0x01, 0xff, 0xa1, 0x9b, 0x0b, 0xa2, + 0xab, 0x0a, 0xa3, 0xd1, 0x09, 0xa4, 0xdf, 0x08, 0xa5, 0x9e, 0x08, 0xa6, + 0xc1, 0x07, 0xa7, 0x90, 0x07, 0xa8, 0xc1, 0x06, 0xa9, 0xa9, 0x06, 0x02, + 0x56, 0x19, 0x9a, 0x06, 0x45, 0xba, 0xa5, 0x11, 0x2f, 0x00, 0xac, 0xca, + 0x05, 0xad, 0xf9, 0x04, 0xae, 0xe3, 0x04, 0xaf, 0xbe, 0x04, 0xb0, 0x9a, + 0x04, 0xb2, 0xe1, 0x03, 0xb3, 0xdf, 0x01, 0xb4, 0x76, 0x43, 0x45, 0x03, + 0x64, 0x2f, 0x00, 0xb6, 0x62, 0xb7, 0x06, 0x46, 0xde, 0xd7, 0xc8, 0x2f, + 0x40, 0xa1, 0x45, 0xa5, 0x37, 0xa8, 0x29, 0x02, 0x9e, 0x01, 0x1d, 0xaf, + 0x0f, 0xb2, 0x01, 0xff, 0x42, 0xe5, 0x05, 0x13, 0x2f, 0x00, 0x43, 0xd8, + 0x02, 0xae, 0x2f, 0x40, 0x43, 0x41, 0x18, 0x25, 0x2f, 0x00, 0x42, 0xbb, + 0x00, 0x2f, 0x2f, 0x40, 0xe4, 0xb5, 0x2f, 0x00, 0xe5, 0xa3, 0x2f, 0x40, + 0x43, 0x89, 0x00, 0xc6, 0x2f, 0x00, 0x43, 0xaf, 0x02, 0x69, 0x2f, 0x40, + 0x44, 0x0d, 0xef, 0x4e, 0x2f, 0x00, 0x42, 0x60, 0x01, 0x91, 0x2f, 0x40, + 0x42, 0x60, 0x5b, 0xa1, 0x2f, 0x80, 0x06, 0x43, 0x8b, 0x00, 0x54, 0x2f, + 0x40, 0x4a, 0x9c, 0x68, 0x8f, 0x2f, 0x40, 0x45, 0x2f, 0xe4, 0x95, 0x2f, + 0x00, 0x46, 0xda, 0xdc, 0xa5, 0x2f, 0x40, 0xa1, 0x53, 0x42, 0x92, 0x01, + 0x17, 0x2f, 0x00, 0xa9, 0x3f, 0xaf, 0x31, 0xb2, 0x1d, 0x02, 0x42, 0x00, + 0x0d, 0x42, 0x15, 0x02, 0x06, 0x2f, 0xc0, 0x00, 0x46, 0x7a, 0x0e, 0x36, + 0x2f, 0x40, 0x43, 0x26, 0x16, 0x31, 0x2f, 0x00, 0x43, 0xbd, 0x01, 0xd4, + 0x2f, 0x40, 0x43, 0x0e, 0x03, 0x71, 0x2f, 0x00, 0x42, 0x27, 0x01, 0x4a, + 0x2f, 0x00, 0x44, 0xa1, 0xf0, 0xcd, 0x2f, 0x40, 0x44, 0xb2, 0x67, 0x86, + 0x2f, 0x00, 0x43, 0x77, 0x0e, 0xd2, 0x2f, 0x40, 0x43, 0xdb, 0x09, 0x8c, + 0x2f, 0x00, 0x42, 0x68, 0x00, 0x61, 0x2f, 0x40, 0x43, 0x3e, 0x01, 0x0f, + 0x2f, 0x00, 0x42, 0x60, 0x07, 0xbc, 0x2f, 0x00, 0x4c, 0x70, 0x80, 0xb1, + 0x2f, 0x40, 0xa1, 0xec, 0x01, 0xa3, 0xdd, 0x01, 0xa5, 0xc4, 0x01, 0xa8, + 0x99, 0x01, 0xa9, 0x8a, 0x01, 0x43, 0x3b, 0x04, 0x6a, 0x2f, 0x00, 0xac, + 0x6e, 0x44, 0x5e, 0x07, 0x29, 0x2f, 0x00, 0x44, 0x5a, 0xaf, 0x39, 0x2f, + 0x00, 0x44, 0x41, 0x0b, 0xb3, 0x2f, 0x00, 0xb0, 0x3a, 0x45, 0xd7, 0x05, + 0x45, 0x2f, 0x00, 0xb4, 0x0c, 0x42, 0x42, 0x0b, 0x47, 0x2f, 0x00, 0x44, + 0x48, 0x50, 0x62, 0x2f, 0x40, 0x43, 0x1a, 0x00, 0x74, 0x2f, 0x00, 0xa5, + 0x14, 0xaf, 0x01, 0xff, 0x42, 0xcd, 0x05, 0x6f, 0x2f, 0x00, 0xf0, 0x4c, + 0x2f, 0xc0, 0x00, 0x44, 0x2b, 0x30, 0x89, 0x2f, 0x40, 0x42, 0x57, 0x00, + 0x53, 0x2f, 0x00, 0xf0, 0x3b, 0x2f, 0x40, 0xa5, 0x12, 0x44, 0x59, 0xbf, + 0x70, 0x2f, 0x00, 0x43, 0xcd, 0x02, 0x14, 0x2f, 0x00, 0x44, 0x61, 0xf2, + 0x2c, 0x2f, 0x40, 0x42, 0x17, 0x00, 0x6d, 0x2f, 0x00, 0x43, 0x03, 0x41, + 0x94, 0x2f, 0x40, 0xa1, 0x06, 0x43, 0x0c, 0x1d, 0x5a, 0x2f, 0x40, 0x42, + 0xa4, 0x02, 0x03, 0x2f, 0x00, 0x42, 0x32, 0x00, 0xaa, 0x2f, 0x40, 0x46, + 0xa6, 0xda, 0x67, 0x2f, 0x00, 0x42, 0x60, 0x5b, 0x77, 0x2f, 0x40, 0xa5, + 0x1a, 0xaf, 0x01, 0xff, 0x42, 0x1b, 0x05, 0x37, 0x2f, 0x00, 0x04, 0x71, + 0xf2, 0x01, 0xff, 0x4a, 0x81, 0xa7, 0xab, 0x2f, 0x00, 0x45, 0x23, 0x9e, + 0x33, 0x2f, 0x40, 0x42, 0xeb, 0x0a, 0x7a, 0x2f, 0x00, 0x42, 0x60, 0x07, + 0x99, 0x2f, 0x40, 0x42, 0x13, 0x00, 0x19, 0x2f, 0x00, 0x44, 0xe5, 0x7b, + 0x04, 0x2f, 0x00, 0xe5, 0x92, 0x2f, 0x00, 0x42, 0x24, 0x00, 0x83, 0x2f, + 0x40, 0x45, 0x18, 0xe7, 0x20, 0x2f, 0x00, 0x44, 0x76, 0x06, 0x42, 0x2f, + 0x40, 0x4e, 0x95, 0x76, 0xbf, 0x2f, 0x00, 0x42, 0xb8, 0x04, 0xc4, 0x2f, + 0x00, 0xf9, 0x48, 0x2f, 0x40, 0xa1, 0x26, 0x42, 0x05, 0x00, 0x9a, 0x2f, + 0x00, 0xa9, 0x0c, 0x43, 0xf2, 0xc8, 0x27, 0x2f, 0x00, 0x42, 0x42, 0x0b, + 0x9b, 0x2f, 0x40, 0x42, 0x73, 0x02, 0x76, 0x2f, 0x00, 0x4c, 0x45, 0x3b, + 0x15, 0x2f, 0x00, 0x43, 0x32, 0x00, 0x2e, 0x2f, 0x40, 0x42, 0x9e, 0x01, + 0xac, 0x2f, 0x00, 0xf0, 0x41, 0x2f, 0x00, 0xf4, 0xcf, 0x2f, 0x40, 0x42, + 0x3f, 0x00, 0x97, 0x2f, 0x00, 0x43, 0x13, 0x01, 0x7e, 0x2f, 0x00, 0x44, + 0x14, 0x01, 0x12, 0x2f, 0x00, 0xb2, 0x01, 0xff, 0x45, 0x6c, 0xd6, 0x1b, + 0x2f, 0x00, 0x46, 0xb4, 0xde, 0x5e, 0x2f, 0x40, 0x42, 0xe2, 0x1a, 0x7c, + 0x2f, 0x00, 0x42, 0xcd, 0x05, 0x00, 0x2f, 0x80, 0x0f, 0xb0, 0x01, 0xff, + 0x46, 0xb8, 0x3a, 0x10, 0x2f, 0x00, 0x44, 0x99, 0x89, 0x87, 0x2f, 0x40, + 0x44, 0x99, 0xf2, 0x30, 0x2f, 0x40, 0x42, 0xed, 0x05, 0x79, 0x2f, 0x00, + 0xaf, 0x01, 0xff, 0x42, 0x46, 0x03, 0xd0, 0x2f, 0x00, 0xf4, 0x46, 0x2f, + 0x40, 0x42, 0x1a, 0x00, 0x08, 0x2f, 0x00, 0xa5, 0x3a, 0xa9, 0x2c, 0xaf, + 0x01, 0xff, 0x42, 0x10, 0x00, 0x49, 0x2f, 0x00, 0xb2, 0x15, 0xb5, 0x01, + 0xff, 0xae, 0x06, 0x42, 0x53, 0x00, 0x1d, 0x2f, 0x40, 0xe4, 0xa9, 0x2f, + 0x00, 0x44, 0x55, 0x07, 0x2d, 0x2f, 0x40, 0x44, 0x58, 0x07, 0xa0, 0x2f, + 0x00, 0x43, 0x32, 0x13, 0x85, 0x2f, 0x40, 0x44, 0xb4, 0x21, 0xc9, 0x2f, + 0x00, 0x46, 0x54, 0xde, 0x82, 0x2f, 0x40, 0x42, 0x8a, 0x00, 0x81, 0x2f, + 0x00, 0x43, 0xd7, 0x02, 0x60, 0x2f, 0x40, 0xa1, 0x39, 0xa5, 0x1f, 0xa9, + 0x0d, 0x43, 0xd8, 0x02, 0xa7, 0x2f, 0xc0, 0x00, 0x47, 0x96, 0xcd, 0x35, + 0x2f, 0x40, 0xe4, 0x07, 0x2f, 0x00, 0x42, 0x0c, 0x1a, 0x63, 0x2f, 0x00, + 0x42, 0xcd, 0x05, 0x01, 0x2f, 0x40, 0xa1, 0x0c, 0x42, 0xd5, 0x18, 0xb2, + 0x2f, 0x00, 0x42, 0xbc, 0x11, 0x09, 0x2f, 0x40, 0xe6, 0xb4, 0x2f, 0x00, + 0x44, 0x0f, 0x1a, 0xb0, 0x2f, 0x40, 0x42, 0x36, 0x01, 0x4b, 0x2f, 0x00, + 0x42, 0x2a, 0x02, 0x2a, 0x2f, 0x40, 0x42, 0x04, 0x00, 0x5f, 0x2f, 0x00, + 0xf2, 0x78, 0x2f, 0x40, 0x42, 0x73, 0x02, 0x0e, 0x2f, 0x00, 0xae, 0x01, + 0xff, 0x42, 0x6d, 0x14, 0x28, 0x2f, 0x00, 0x44, 0xae, 0x0a, 0x8d, 0x2f, + 0x40, 0xa1, 0x30, 0xa5, 0x1c, 0x4f, 0x6a, 0x6e, 0x16, 0x2f, 0x00, 0xaf, + 0x01, 0xff, 0x42, 0x55, 0x05, 0x05, 0x2f, 0x00, 0xb2, 0x01, 0xff, 0xee, + 0x93, 0x2f, 0x00, 0x42, 0x46, 0x03, 0xba, 0x2f, 0x40, 0xa1, 0x06, 0x42, + 0xf2, 0x1b, 0xc7, 0x2f, 0x40, 0xe4, 0xb8, 0x2f, 0x00, 0x42, 0x34, 0x00, + 0x3c, 0x2f, 0x40, 0x42, 0x46, 0x00, 0xbd, 0x2f, 0x00, 0xac, 0x06, 0x42, + 0x1b, 0x00, 0x3f, 0x2f, 0x40, 0x44, 0x3d, 0xef, 0x3d, 0x2f, 0x00, 0x4c, + 0xc5, 0x75, 0x59, 0x2f, 0x40, 0x43, 0x8a, 0x00, 0xa8, 0x2f, 0x00, 0x44, + 0xc0, 0x7c, 0xc1, 0x2f, 0x00, 0xef, 0x21, 0x2f, 0x80, 0x11, 0x02, 0x71, + 0x00, 0x01, 0xff, 0x42, 0x9e, 0x01, 0x72, 0x2f, 0x00, 0x42, 0xee, 0x00, + 0x8b, 0x2f, 0x40, 0x47, 0x8f, 0xcd, 0x22, 0x2f, 0x00, 0x42, 0xe2, 0x1a, + 0xa6, 0x2f, 0x40, 0xa1, 0x46, 0x46, 0x0d, 0x1a, 0x7b, 0x2f, 0x00, 0xa9, + 0x26, 0xac, 0x1a, 0x43, 0xbf, 0x6c, 0x9c, 0x2f, 0x00, 0xb2, 0x06, 0x42, + 0x42, 0x00, 0x51, 0x2f, 0x40, 0x46, 0x92, 0xd9, 0xb9, 0x2f, 0x00, 0x42, + 0xc1, 0x18, 0xcc, 0x2f, 0x40, 0x43, 0xfb, 0x38, 0xd5, 0x2f, 0x00, 0xf9, + 0xb6, 0x2f, 0x40, 0x43, 0x02, 0x24, 0x65, 0x2f, 0x00, 0x43, 0xca, 0x00, + 0xbe, 0x2f, 0x00, 0x42, 0x88, 0x00, 0x55, 0x2f, 0x00, 0x42, 0xa4, 0x02, + 0xc2, 0x2f, 0x40, 0x42, 0x73, 0x02, 0xaf, 0x2f, 0x00, 0x42, 0x1d, 0x01, + 0x5b, 0x2f, 0x00, 0x44, 0x0f, 0x1a, 0x57, 0x2f, 0x40, 0xa1, 0x2d, 0x44, + 0xc9, 0x00, 0x0b, 0x2f, 0x00, 0x49, 0xf7, 0xbb, 0xcb, 0x2f, 0x00, 0xae, + 0x13, 0x43, 0xca, 0x1d, 0xd1, 0x2f, 0x80, 0x06, 0x42, 0x4d, 0x00, 0x6c, + 0x2f, 0x40, 0x43, 0xa1, 0x01, 0x23, 0x2f, 0x40, 0x47, 0x9f, 0x68, 0x1e, + 0x2f, 0x00, 0x43, 0x8b, 0x00, 0x0a, 0x2f, 0x40, 0xf2, 0x7f, 0x2f, 0x80, + 0x04, 0xf4, 0xb7, 0x2f, 0x40, 0x42, 0x53, 0x00, 0x1f, 0x2f, 0x40, 0xa5, + 0x61, 0xa9, 0x47, 0xaf, 0x13, 0xb2, 0x01, 0xff, 0x44, 0xe5, 0x25, 0xd3, + 0x2f, 0x00, 0x42, 0x48, 0x04, 0xce, 0x2f, 0x00, 0xf9, 0x32, 0x2f, 0x40, + 0x44, 0x90, 0x1d, 0x4f, 0x2f, 0x00, 0xe7, 0x5d, 0x2f, 0x00, 0x42, 0x0c, + 0x00, 0x3e, 0x2f, 0x00, 0xf4, 0x02, 0x2f, 0x80, 0x0c, 0x46, 0xd6, 0xe0, + 0x58, 0x2f, 0x00, 0x46, 0x48, 0xe1, 0x0c, 0x2f, 0x40, 0x04, 0x77, 0x00, + 0x01, 0xff, 0x45, 0x51, 0xe5, 0x34, 0x2f, 0x00, 0x44, 0x7d, 0x61, 0x68, + 0x2f, 0x40, 0x44, 0x6e, 0x02, 0x43, 0x2f, 0x00, 0xb3, 0x06, 0x48, 0xd8, + 0xba, 0x18, 0x2f, 0x40, 0xe8, 0x6b, 0x2f, 0x00, 0x48, 0x61, 0xa5, 0xa4, + 0x2f, 0x40, 0x43, 0x74, 0x0f, 0x4d, 0x2f, 0x00, 0x42, 0x33, 0x00, 0xc5, + 0x2f, 0x40, 0xa1, 0x43, 0x44, 0x28, 0x4a, 0x26, 0x2f, 0x00, 0x43, 0xb8, + 0x27, 0xa2, 0x2f, 0x00, 0xac, 0x1f, 0xaf, 0x01, 0xff, 0x43, 0x86, 0x08, + 0x8a, 0x2f, 0x00, 0x45, 0xc1, 0xe8, 0x50, 0x2f, 0x00, 0x44, 0x65, 0xf2, + 0x2b, 0x2f, 0x00, 0x43, 0x32, 0x00, 0x0d, 0x2f, 0x00, 0xf7, 0x5c, 0x2f, + 0x40, 0xa1, 0x0c, 0x43, 0x56, 0x48, 0x1a, 0x2f, 0x00, 0x45, 0x49, 0x88, + 0x90, 0x2f, 0x40, 0xee, 0x52, 0x2f, 0x00, 0xf7, 0x56, 0x2f, 0x40, 0x42, + 0x34, 0x00, 0x9e, 0x2f, 0x00, 0x46, 0x3b, 0xcf, 0xc0, 0x2f, 0x00, 0x42, + 0x32, 0x00, 0x73, 0x2f, 0x40, 0xa1, 0x5f, 0x43, 0x13, 0x1f, 0x96, 0x2f, + 0x00, 0xa9, 0x47, 0xac, 0x33, 0xaf, 0x15, 0xb2, 0x01, 0xff, 0x44, 0xac, + 0x25, 0x40, 0x2f, 0x00, 0x45, 0x95, 0xe7, 0x3a, 0x2f, 0x00, 0x43, 0x30, + 0x7c, 0x80, 0x2f, 0x40, 0x42, 0x8a, 0x00, 0x88, 0x2f, 0x00, 0x42, 0x4c, + 0x0d, 0x9d, 0x2f, 0x00, 0x4b, 0xf9, 0x9e, 0x66, 0x2f, 0x00, 0x42, 0xcd, + 0x05, 0xbb, 0x2f, 0x00, 0xf7, 0x38, 0x2f, 0x40, 0x43, 0x0e, 0x03, 0xca, + 0x2f, 0x00, 0x43, 0xb4, 0x2d, 0x8e, 0x2f, 0x00, 0x42, 0xd6, 0x13, 0xad, + 0x2f, 0x40, 0xe7, 0x24, 0x2f, 0x00, 0x42, 0xab, 0x01, 0xc3, 0x2f, 0x00, + 0x44, 0xee, 0x05, 0x9f, 0x2f, 0x40, 0x44, 0x89, 0xef, 0x98, 0x2f, 0x00, + 0x44, 0x99, 0x98, 0x75, 0x2f, 0x40, 0x44, 0x3a, 0x4b, 0x1c, 0x2f, 0x00, + 0x42, 0x1b, 0x00, 0x7d, 0x2f, 0x00, 0x02, 0xcf, 0x00, 0x06, 0x42, 0x6d, + 0x43, 0x44, 0x2f, 0x40, 0x43, 0xd2, 0x05, 0x84, 0x2f, 0x00, 0x42, 0xd1, + 0x00, 0x6e, 0x2f, 0x40, 0xa5, 0x75, 0xa6, 0x58, 0x44, 0xcf, 0x2a, 0xc9, + 0xd2, 0x81, 0x4b, 0x43, 0x0e, 0x0b, 0xc1, 0xd2, 0x01, 0xb3, 0x29, 0xb4, + 0x06, 0x44, 0x43, 0x1e, 0xc0, 0xd2, 0x41, 0x42, 0x92, 0x01, 0xca, 0xd2, + 0x01, 0xa8, 0x0d, 0xb7, 0x01, 0xff, 0x44, 0xe7, 0x2b, 0xcc, 0xd2, 0x01, + 0xef, 0xc2, 0xd2, 0x41, 0x46, 0x96, 0x5a, 0xcd, 0xd2, 0x01, 0x43, 0x26, + 0x01, 0xc3, 0xd2, 0x41, 0x44, 0xc9, 0x1d, 0xc7, 0xd2, 0x81, 0x0d, 0x42, + 0x01, 0x26, 0xc6, 0xd2, 0xc1, 0x00, 0x44, 0x0a, 0x18, 0xd0, 0xd2, 0x41, + 0x44, 0x0a, 0x18, 0xd1, 0xd2, 0x41, 0x44, 0x0a, 0x18, 0xd3, 0xd2, 0x41, + 0xa9, 0x0d, 0x43, 0xf6, 0x06, 0xc4, 0xd2, 0xc1, 0x00, 0x44, 0x0a, 0x18, + 0xce, 0xd2, 0x41, 0x45, 0x09, 0x18, 0xcf, 0xd2, 0x01, 0x42, 0x32, 0x00, + 0xc5, 0xd2, 0x41, 0x44, 0xc9, 0x00, 0xc8, 0xd2, 0x81, 0x06, 0x45, 0xb4, + 0x6f, 0xcb, 0xd2, 0x41, 0x43, 0xc4, 0x09, 0xd2, 0xd2, 0x41, 0x51, 0xdc, + 0x57, 0xbb, 0x10, 0x01, 0xa4, 0x80, 0x03, 0x50, 0xd6, 0x62, 0xbc, 0x10, + 0x01, 0x07, 0xec, 0x05, 0x70, 0x4b, 0x43, 0xa0, 0xbd, 0x10, 0x81, 0x63, + 0xb3, 0x33, 0x0b, 0x40, 0x77, 0x01, 0xff, 0xa1, 0x20, 0xe5, 0xb5, 0x10, + 0x01, 0xe9, 0xb1, 0x10, 0x81, 0x13, 0xef, 0xb7, 0x10, 0x01, 0xf5, 0xb3, + 0x10, 0x81, 0x06, 0x49, 0x22, 0xc1, 0xc2, 0x10, 0x41, 0xf5, 0xb4, 0x10, + 0x41, 0xe9, 0xb2, 0x10, 0x41, 0xe1, 0xb0, 0x10, 0x01, 0xe9, 0xb6, 0x10, + 0x01, 0xf5, 0xb8, 0x10, 0x41, 0x4b, 0xf9, 0x26, 0xbe, 0x10, 0x01, 0x04, + 0x5b, 0x03, 0x01, 0xff, 0x48, 0x3c, 0x16, 0x81, 0x10, 0x01, 0x4b, 0xd7, + 0x23, 0x80, 0x10, 0x01, 0x45, 0x3f, 0x3f, 0xba, 0x10, 0x01, 0x02, 0x02, + 0x00, 0x01, 0xff, 0x44, 0xe5, 0x23, 0xb9, 0x10, 0x01, 0x45, 0xec, 0x4b, + 0x82, 0x10, 0x41, 0x46, 0x5b, 0x00, 0xcd, 0x10, 0x41, 0xe1, 0x83, 0x10, + 0x81, 0xf4, 0x01, 0xa2, 0xe7, 0x01, 0xa3, 0xda, 0x01, 0xa4, 0xbb, 0x01, + 0xe5, 0x89, 0x10, 0x01, 0xa7, 0xaa, 0x01, 0x42, 0x22, 0x00, 0xaf, 0x10, + 0x01, 0xe9, 0x85, 0x10, 0x81, 0x9a, 0x01, 0xaa, 0x8d, 0x01, 0xab, 0x80, + 0x01, 0x42, 0x74, 0x00, 0xaa, 0x10, 0x01, 0x42, 0x6c, 0x00, 0xa7, 0x10, + 0x01, 0xae, 0x5c, 0xef, 0x8b, 0x10, 0x01, 0xb0, 0x4c, 0xb2, 0x40, 0xb3, + 0x2e, 0xb4, 0x15, 0xf5, 0x87, 0x10, 0x81, 0x0c, 0x42, 0xf5, 0x0a, 0xab, + 0x10, 0x01, 0x42, 0xbc, 0x22, 0xa8, 0x10, 0x41, 0xf5, 0x88, 0x10, 0x41, + 0xe1, 0x9e, 0x10, 0x01, 0x42, 0x22, 0x00, 0x9f, 0x10, 0x01, 0xb4, 0x01, + 0xff, 0xe1, 0x97, 0x10, 0x01, 0x42, 0x22, 0x00, 0x98, 0x10, 0x41, 0xe1, + 0xae, 0x10, 0x01, 0x42, 0x22, 0x00, 0xac, 0x10, 0x01, 0x42, 0x40, 0x06, + 0xad, 0x10, 0x41, 0xe1, 0xa9, 0x10, 0x01, 0x42, 0x22, 0x00, 0x9c, 0x10, + 0x41, 0xe1, 0xa3, 0x10, 0x01, 0x42, 0x22, 0x00, 0xa4, 0x10, 0x41, 0xe1, + 0xa2, 0x10, 0x01, 0x42, 0x24, 0x02, 0x91, 0x10, 0x01, 0x42, 0x2a, 0x05, + 0x9d, 0x10, 0x01, 0x42, 0xbc, 0x22, 0x96, 0x10, 0x41, 0xe1, 0x8d, 0x10, + 0x01, 0x42, 0x22, 0x00, 0x8e, 0x10, 0x41, 0xe1, 0x94, 0x10, 0x01, 0x42, + 0x22, 0x00, 0x95, 0x10, 0x41, 0xe9, 0x86, 0x10, 0x41, 0xe1, 0x8f, 0x10, + 0x01, 0x42, 0x22, 0x00, 0x90, 0x10, 0x41, 0xe1, 0xa0, 0x10, 0x01, 0xa4, + 0x06, 0x42, 0x22, 0x00, 0xa1, 0x10, 0x41, 0xe1, 0x99, 0x10, 0x01, 0x43, + 0xe7, 0x4b, 0x9a, 0x10, 0x01, 0x42, 0x22, 0x00, 0x9b, 0x10, 0x41, 0xe1, + 0x92, 0x10, 0x01, 0x42, 0x22, 0x00, 0x93, 0x10, 0x41, 0xe1, 0xa5, 0x10, + 0x01, 0x42, 0x22, 0x00, 0xa6, 0x10, 0x41, 0xe1, 0x84, 0x10, 0x01, 0xe9, + 0x8a, 0x10, 0x01, 0xf5, 0x8c, 0x10, 0x41, 0x44, 0x73, 0x20, 0xc0, 0x10, + 0x01, 0x06, 0x3c, 0x01, 0x01, 0xff, 0x45, 0x16, 0x96, 0xc1, 0x10, 0x01, + 0x4c, 0xf8, 0x26, 0xbf, 0x10, 0x41, 0xa1, 0x37, 0xa5, 0x29, 0x52, 0xa5, + 0x52, 0xe9, 0xf9, 0x01, 0xaf, 0x15, 0xb5, 0x01, 0xff, 0x46, 0xf6, 0xdb, + 0x39, 0xf9, 0x01, 0x42, 0xb4, 0x01, 0xb5, 0x26, 0x00, 0x45, 0xe8, 0xe9, + 0x43, 0x26, 0x40, 0x42, 0x9e, 0x01, 0x1d, 0x2a, 0x00, 0x46, 0x8a, 0xe1, + 0x79, 0xf5, 0x41, 0x43, 0x42, 0x46, 0x56, 0xf4, 0x01, 0x47, 0xf9, 0xd2, + 0xbc, 0xfa, 0x41, 0x4c, 0x6f, 0x8d, 0x83, 0xf3, 0x01, 0x07, 0x7a, 0xd4, + 0x83, 0x05, 0xf2, 0xd9, 0xfa, 0x01, 0x07, 0x1a, 0xd7, 0x01, 0xff, 0x0f, + 0x3d, 0x33, 0xe3, 0x04, 0x06, 0xef, 0x06, 0x9c, 0x04, 0x02, 0x68, 0x00, + 0xdb, 0x01, 0x02, 0xbb, 0x09, 0x70, 0x4f, 0x93, 0x72, 0xc2, 0xa9, 0x00, + 0x05, 0x5a, 0x03, 0x47, 0x53, 0xcc, 0x4d, 0xcd, 0xa9, 0x00, 0x0b, 0x40, + 0x77, 0x01, 0xff, 0x4a, 0x57, 0xa9, 0xbb, 0xa9, 0x00, 0x45, 0xde, 0xe9, + 0xbc, 0xa9, 0x00, 0x44, 0x09, 0xd6, 0xb8, 0xa9, 0x80, 0x23, 0xb4, 0x0d, + 0x44, 0x2d, 0xf3, 0xb6, 0xa9, 0xc0, 0x00, 0x46, 0x30, 0xd8, 0xb7, 0xa9, + 0x40, 0xa1, 0x06, 0x45, 0x51, 0x12, 0xb5, 0xa9, 0x40, 0x44, 0x2f, 0x0b, + 0xba, 0xa9, 0x00, 0x44, 0xd1, 0xeb, 0xb4, 0xa9, 0x40, 0x47, 0x50, 0xcd, + 0xb9, 0xa9, 0x40, 0x45, 0x10, 0xe5, 0x81, 0xa9, 0x80, 0x12, 0x45, 0x21, + 0xe8, 0x82, 0xa9, 0x00, 0x49, 0xef, 0xbd, 0x80, 0xa9, 0x00, 0x47, 0x83, + 0xd7, 0x83, 0xa9, 0x40, 0x45, 0xe6, 0xe1, 0xb3, 0xa9, 0x40, 0x03, 0x79, + 0x1a, 0x11, 0x02, 0x1d, 0x01, 0x01, 0xff, 0x43, 0x21, 0x70, 0xc0, 0xa9, + 0x00, 0x47, 0x22, 0xd5, 0xcf, 0xa9, 0x40, 0xa1, 0x3d, 0x49, 0xbc, 0xba, + 0xdf, 0xa9, 0x00, 0xac, 0x20, 0x45, 0x62, 0xe8, 0xc4, 0xa9, 0x00, 0xb0, + 0x0c, 0x4d, 0x45, 0x89, 0xde, 0xa9, 0x00, 0x45, 0x59, 0xec, 0xc6, 0xa9, + 0x40, 0x46, 0xb6, 0xd9, 0xc7, 0xa9, 0x00, 0x46, 0xd9, 0x4d, 0xcc, 0xa9, + 0x40, 0x45, 0x77, 0xe7, 0xc8, 0xa9, 0x00, 0xb5, 0x01, 0xff, 0x43, 0x41, + 0x00, 0xc5, 0xa9, 0x00, 0x44, 0x18, 0x73, 0xc9, 0xa9, 0x40, 0x43, 0x85, + 0x11, 0xca, 0xa9, 0x80, 0x06, 0x44, 0x69, 0xf1, 0xc3, 0xa9, 0x40, 0x45, + 0xa7, 0xb5, 0xcb, 0xa9, 0x40, 0x4c, 0x1f, 0x8f, 0xc1, 0xa9, 0x00, 0x05, + 0xee, 0x05, 0x01, 0xff, 0xe1, 0x84, 0xa9, 0x80, 0xa7, 0x02, 0x42, 0x16, + 0x00, 0xa7, 0xa9, 0x80, 0x99, 0x02, 0x42, 0x37, 0x00, 0x95, 0xa9, 0x80, + 0x8b, 0x02, 0xa4, 0xf0, 0x01, 0xe5, 0x8c, 0xa9, 0x00, 0x42, 0x24, 0x02, + 0x92, 0xa9, 0x80, 0xde, 0x01, 0x42, 0x22, 0x00, 0xb2, 0xa9, 0x00, 0xe9, + 0x86, 0xa9, 0x80, 0xc8, 0x01, 0x42, 0x56, 0x19, 0x97, 0xa9, 0x80, 0xba, + 0x01, 0x42, 0x1b, 0x02, 0x8f, 0xa9, 0x80, 0xa3, 0x01, 0x42, 0x74, 0x00, + 0xad, 0xa9, 0x00, 0x42, 0x6c, 0x00, 0xa9, 0xa9, 0x00, 0xae, 0x69, 0xef, + 0x8e, 0xa9, 0x00, 0x42, 0xbb, 0x09, 0xa5, 0xa9, 0x80, 0x4f, 0x42, 0x71, + 0x00, 0xab, 0xa9, 0x80, 0x42, 0x42, 0x40, 0x06, 0xb1, 0xa9, 0x80, 0x2a, + 0xb4, 0x10, 0xf5, 0x88, 0xa9, 0x00, 0x42, 0xa9, 0x01, 0xae, 0xa9, 0x00, + 0x42, 0xbc, 0x22, 0xaa, 0xa9, 0x40, 0xe1, 0xa0, 0xa9, 0x80, 0x0d, 0x42, + 0x12, 0x00, 0x9b, 0xa9, 0xc0, 0x00, 0x4a, 0x5e, 0x70, 0x9c, 0xa9, 0x40, + 0x46, 0x36, 0xd8, 0xa1, 0xa9, 0x40, 0x02, 0x6b, 0x00, 0x01, 0xff, 0x48, + 0x60, 0x70, 0xb0, 0xa9, 0x00, 0x44, 0x5a, 0x70, 0xaf, 0xa9, 0x40, 0x46, + 0xfa, 0xd7, 0xac, 0xa9, 0x40, 0x80, 0x01, 0xff, 0x45, 0x1a, 0xe5, 0x89, + 0xa9, 0x00, 0x45, 0x59, 0x70, 0xa6, 0xa9, 0x40, 0xe1, 0xa4, 0xa9, 0x80, + 0x21, 0x42, 0x24, 0x02, 0x94, 0xa9, 0x80, 0x0d, 0x42, 0xbc, 0x22, 0x9a, + 0xa9, 0xc0, 0x00, 0x46, 0x36, 0xd8, 0x98, 0xa9, 0x40, 0x46, 0x24, 0xd8, + 0x8a, 0xa9, 0xc0, 0x00, 0x48, 0x78, 0xc2, 0x8b, 0xa9, 0x40, 0x46, 0x36, + 0xd8, 0x9f, 0xa9, 0x40, 0x80, 0x01, 0xff, 0x45, 0x59, 0x70, 0x91, 0xa9, + 0x00, 0x45, 0x14, 0xa3, 0x90, 0xa9, 0x40, 0x4a, 0x5e, 0x70, 0x99, 0xa9, + 0x40, 0x45, 0xcd, 0xe1, 0x85, 0xa9, 0x00, 0xe9, 0x87, 0xa9, 0x40, 0x46, + 0x36, 0xd8, 0x93, 0xa9, 0x40, 0xe1, 0xa2, 0xa9, 0x80, 0x0d, 0x42, 0xf0, + 0x10, 0x9d, 0xa9, 0xc0, 0x00, 0x4a, 0x5e, 0x70, 0x9e, 0xa9, 0x40, 0x4a, + 0x5e, 0x70, 0xa3, 0xa9, 0x40, 0x46, 0x36, 0xd8, 0x96, 0xa9, 0x40, 0x46, + 0x36, 0xd8, 0xa8, 0xa9, 0x40, 0xe9, 0x8d, 0xa9, 0x40, 0x45, 0x12, 0x0b, + 0xd8, 0xa9, 0x00, 0xa6, 0x2e, 0x44, 0xcf, 0x2a, 0xd9, 0xa9, 0x00, 0x43, + 0x0e, 0x0b, 0xd1, 0xa9, 0x00, 0xb3, 0x14, 0xb4, 0x06, 0x44, 0x43, 0x1e, + 0xd0, 0xa9, 0x40, 0x44, 0x25, 0x01, 0xd3, 0xa9, 0x00, 0x42, 0x15, 0x02, + 0xd2, 0xa9, 0x40, 0x44, 0xc9, 0x1d, 0xd7, 0xa9, 0x00, 0x42, 0x01, 0x26, + 0xd6, 0xa9, 0x40, 0x43, 0xd2, 0x05, 0xd5, 0xa9, 0x00, 0x43, 0xf6, 0x06, + 0xd4, 0xa9, 0x40, 0x45, 0xed, 0xe4, 0xbf, 0xa9, 0x00, 0x45, 0xcc, 0xe7, + 0xbd, 0xa9, 0x00, 0x47, 0xab, 0xd4, 0xbe, 0xa9, 0x40, 0x4b, 0x79, 0x99, + 0xfb, 0x26, 0x00, 0x46, 0x5e, 0xda, 0xef, 0xf3, 0x01, 0x45, 0x81, 0xba, + 0x8e, 0xf3, 0x01, 0x46, 0x20, 0xdc, 0x7a, 0xf4, 0x01, 0x5a, 0x66, 0x20, + 0x04, 0x30, 0x00, 0x44, 0x69, 0xd5, 0x79, 0xf4, 0x01, 0x4b, 0x6c, 0xa1, + 0xe3, 0xf3, 0x01, 0x53, 0x5a, 0x4d, 0x30, 0xf5, 0x41, 0x53, 0xa3, 0x47, + 0x1f, 0xf9, 0x01, 0x03, 0x0e, 0x08, 0xe5, 0x14, 0x02, 0x04, 0x00, 0xc4, + 0x0d, 0xad, 0xd5, 0x0b, 0xae, 0x14, 0xb2, 0x06, 0x4e, 0x0f, 0x7f, 0xee, + 0xf3, 0x41, 0x43, 0x21, 0x24, 0xc7, 0xce, 0x01, 0x42, 0x5f, 0x03, 0xc1, + 0xce, 0x41, 0x48, 0x50, 0xc4, 0xe5, 0xf4, 0x01, 0xa3, 0x8b, 0x0b, 0xa4, + 0xf5, 0x06, 0xa6, 0xb2, 0x06, 0x06, 0x80, 0xdc, 0xa1, 0x06, 0x0f, 0xfd, + 0x71, 0xfa, 0x05, 0xb3, 0xdb, 0x02, 0x02, 0x77, 0x00, 0x9a, 0x01, 0xb6, + 0x01, 0xff, 0x02, 0x33, 0x00, 0x17, 0x07, 0x04, 0xd2, 0x01, 0xff, 0x44, + 0x58, 0x28, 0x64, 0x20, 0x00, 0x49, 0xd8, 0x20, 0x63, 0x20, 0x00, 0x45, + 0x28, 0x02, 0x62, 0x20, 0x40, 0x03, 0x41, 0x04, 0x3e, 0x04, 0x77, 0x00, + 0x01, 0xff, 0x50, 0xad, 0x00, 0xa1, 0x00, 0x00, 0x4b, 0x1f, 0x16, 0x18, + 0x2e, 0x00, 0xac, 0x18, 0x48, 0x18, 0xc9, 0x27, 0x21, 0x00, 0x49, 0x97, + 0x1b, 0xe7, 0x26, 0x00, 0x4d, 0xa6, 0x34, 0xbf, 0x00, 0x00, 0x48, 0x18, + 0xcc, 0x54, 0x20, 0x40, 0x45, 0xdd, 0x6e, 0x3e, 0x22, 0x00, 0x49, 0xc2, + 0xbd, 0x45, 0x2e, 0xc0, 0x00, 0x52, 0xe7, 0x4f, 0x46, 0x2e, 0x40, 0xa2, + 0x22, 0x05, 0x6d, 0x14, 0x12, 0x62, 0x34, 0x0c, 0xb4, 0xfb, 0x01, 0x4c, + 0x44, 0x04, 0x90, 0xfb, 0x01, 0x4c, 0x32, 0x11, 0xd9, 0x25, 0x40, 0x45, + 0xb8, 0x00, 0xb1, 0xfb, 0x01, 0x4d, 0x9e, 0x82, 0x96, 0xfb, 0x41, 0x05, + 0x0d, 0x03, 0x06, 0x45, 0xb3, 0x21, 0xd8, 0x25, 0x40, 0x47, 0x95, 0x44, + 0x8d, 0xcc, 0x01, 0x4c, 0x86, 0x0a, 0x8f, 0xcc, 0x41, 0x44, 0x98, 0x26, + 0x2b, 0x22, 0x80, 0x6a, 0xb2, 0x01, 0xff, 0x46, 0x58, 0xda, 0xba, 0x22, + 0x00, 0x4b, 0xa3, 0x3b, 0x3c, 0x2a, 0x00, 0xac, 0x3d, 0x46, 0x24, 0x16, + 0x3d, 0x20, 0x00, 0x47, 0xae, 0x0a, 0x29, 0x22, 0xc0, 0x00, 0x80, 0x01, + 0xff, 0x06, 0x5c, 0x00, 0x1d, 0x63, 0x92, 0x0a, 0x4b, 0x2a, 0x00, 0x05, + 0x51, 0x00, 0x01, 0xff, 0x43, 0x23, 0x0a, 0x40, 0x2a, 0x00, 0x4b, 0x30, + 0x30, 0x44, 0x2a, 0x00, 0x47, 0xe6, 0x7f, 0x43, 0x2a, 0x40, 0x4f, 0x13, + 0x6b, 0x49, 0x2a, 0x00, 0x45, 0x4d, 0x17, 0x47, 0x2a, 0x40, 0x11, 0x0c, + 0x5b, 0x06, 0x5a, 0x50, 0x21, 0xa4, 0x26, 0x40, 0x46, 0xb0, 0xd9, 0xf9, + 0xff, 0x00, 0x49, 0xd8, 0x20, 0xfa, 0xff, 0x00, 0x4a, 0x56, 0x86, 0xfb, + 0xff, 0x40, 0x80, 0x01, 0xff, 0xa1, 0x3a, 0x49, 0xc1, 0x58, 0xae, 0x23, + 0x00, 0x05, 0x51, 0x00, 0x01, 0xff, 0x4d, 0x36, 0x82, 0x0e, 0x2a, 0x00, + 0x4c, 0xa9, 0x0a, 0x19, 0x2a, 0x00, 0x59, 0x98, 0x24, 0x17, 0x2a, 0x00, + 0x47, 0xe6, 0x7f, 0x1b, 0x2a, 0x00, 0x4a, 0xef, 0xb1, 0x18, 0x2a, 0x00, + 0x02, 0x42, 0x0b, 0x01, 0xff, 0x46, 0xe5, 0x59, 0x1c, 0x2a, 0x00, 0x43, + 0xb5, 0x00, 0x1a, 0x2a, 0x40, 0x56, 0xef, 0x36, 0x15, 0x2a, 0x00, 0x51, + 0x3b, 0x5f, 0x0f, 0x2a, 0x40, 0x0d, 0x9a, 0x81, 0x06, 0x4d, 0xab, 0x82, + 0x80, 0x23, 0x40, 0x06, 0xd9, 0x75, 0xd3, 0x01, 0x07, 0x7d, 0xd5, 0x01, + 0xff, 0x07, 0xec, 0x05, 0x3d, 0x07, 0xff, 0x39, 0x01, 0xff, 0x44, 0xf5, + 0x06, 0x5b, 0x0b, 0x01, 0x43, 0x0e, 0x0b, 0x58, 0x0b, 0x81, 0x1c, 0xb4, + 0x01, 0xff, 0x42, 0x92, 0x01, 0x5c, 0x0b, 0x01, 0x44, 0x25, 0x01, 0x5a, + 0x0b, 0x01, 0xb7, 0x01, 0xff, 0x44, 0xcb, 0x1d, 0x5d, 0x0b, 0x01, 0xef, + 0x59, 0x0b, 0x41, 0x80, 0x01, 0xff, 0x47, 0x71, 0x11, 0x5e, 0x0b, 0x01, + 0x48, 0x40, 0x5e, 0x5f, 0x0b, 0x41, 0xa1, 0x7f, 0x44, 0x41, 0xef, 0x41, + 0x0b, 0x01, 0x46, 0x23, 0x4a, 0x43, 0x0b, 0x01, 0x45, 0xdd, 0xaa, 0x42, + 0x0b, 0x01, 0x42, 0xb0, 0x01, 0x44, 0x0b, 0x81, 0x60, 0x44, 0xcd, 0xf0, + 0x4a, 0x0b, 0x01, 0x46, 0x94, 0xdd, 0x4b, 0x0b, 0x01, 0x43, 0xb4, 0x05, + 0x4c, 0x0b, 0x01, 0x43, 0xdc, 0x22, 0x4d, 0x0b, 0x01, 0x42, 0x6f, 0x02, + 0x50, 0x0b, 0x01, 0x44, 0x4c, 0xc8, 0x52, 0x0b, 0x01, 0x44, 0x76, 0x66, + 0x53, 0x0b, 0x01, 0xb3, 0x20, 0xb4, 0x12, 0x43, 0x8a, 0x8a, 0x45, 0x0b, + 0x01, 0x44, 0xa1, 0x52, 0x49, 0x0b, 0x01, 0x45, 0x9b, 0x52, 0x46, 0x0b, + 0x41, 0x42, 0xb7, 0x2d, 0x55, 0x0b, 0x01, 0x43, 0xda, 0x25, 0x48, 0x0b, + 0x41, 0xa1, 0x06, 0x43, 0x7a, 0x16, 0x54, 0x0b, 0x41, 0x43, 0xad, 0xea, + 0x51, 0x0b, 0x01, 0x44, 0x49, 0xe4, 0x4e, 0x0b, 0x41, 0x42, 0x53, 0x00, + 0x47, 0x0b, 0x41, 0x44, 0x18, 0x3d, 0x40, 0x0b, 0x01, 0x43, 0x7e, 0x1a, + 0x4f, 0x0b, 0x41, 0x07, 0xec, 0x05, 0x3d, 0x07, 0xff, 0x39, 0x01, 0xff, + 0x44, 0xf5, 0x06, 0x7b, 0x0b, 0x01, 0x43, 0x0e, 0x0b, 0x78, 0x0b, 0x81, + 0x1c, 0xb4, 0x01, 0xff, 0x42, 0x92, 0x01, 0x7c, 0x0b, 0x01, 0x44, 0x25, + 0x01, 0x7a, 0x0b, 0x01, 0xb7, 0x01, 0xff, 0x44, 0xcb, 0x1d, 0x7d, 0x0b, + 0x01, 0xef, 0x79, 0x0b, 0x41, 0x80, 0x01, 0xff, 0x47, 0x71, 0x11, 0x7e, + 0x0b, 0x01, 0x48, 0x40, 0x5e, 0x7f, 0x0b, 0x41, 0x45, 0xb2, 0xad, 0x60, + 0x0b, 0x01, 0x44, 0x41, 0xef, 0x61, 0x0b, 0x01, 0x46, 0x23, 0x4a, 0x63, + 0x0b, 0x01, 0x45, 0xdd, 0xaa, 0x62, 0x0b, 0x01, 0x42, 0xb0, 0x01, 0x64, + 0x0b, 0x81, 0x54, 0x44, 0xcd, 0xf0, 0x6a, 0x0b, 0x01, 0x46, 0x94, 0xdd, + 0x6b, 0x0b, 0x01, 0x48, 0x48, 0xc8, 0x6c, 0x0b, 0x01, 0x43, 0xdc, 0x22, + 0x6d, 0x0b, 0x01, 0x42, 0x6f, 0x02, 0x6f, 0x0b, 0x01, 0xb3, 0x20, 0xb4, + 0x12, 0x4d, 0x8a, 0x8a, 0x65, 0x0b, 0x01, 0x44, 0xa1, 0x52, 0x69, 0x0b, + 0x01, 0x45, 0x9b, 0x52, 0x66, 0x0b, 0x41, 0x42, 0xb7, 0x2d, 0x72, 0x0b, + 0x01, 0x43, 0xda, 0x25, 0x68, 0x0b, 0x41, 0xa1, 0x06, 0x43, 0x7a, 0x16, + 0x71, 0x0b, 0x41, 0x43, 0xad, 0xea, 0x70, 0x0b, 0x01, 0x44, 0x49, 0xe4, + 0x6e, 0x0b, 0x41, 0x42, 0x53, 0x00, 0x67, 0x0b, 0x41, 0x06, 0xde, 0x05, + 0x0c, 0x47, 0x9a, 0xd3, 0x22, 0xf5, 0x01, 0x47, 0x16, 0x08, 0x23, 0xf5, + 0x41, 0x4f, 0x9a, 0x6b, 0x20, 0xf5, 0x01, 0x47, 0xa2, 0x6b, 0x24, 0xf5, + 0x01, 0x4d, 0xdd, 0x88, 0x21, 0xf5, 0x41, 0x53, 0x28, 0x48, 0x6c, 0x20, + 0x00, 0x52, 0x99, 0x55, 0x6a, 0x20, 0x40, 0x45, 0x94, 0x6c, 0x1e, 0x22, + 0x80, 0x33, 0x09, 0xb7, 0x5c, 0x01, 0xff, 0x4b, 0xe4, 0x9a, 0x81, 0xf4, + 0x01, 0xb3, 0x01, 0xff, 0x09, 0xd9, 0x20, 0x06, 0x45, 0xc1, 0x5c, 0x39, + 0x21, 0x40, 0x44, 0xf5, 0x06, 0x1c, 0x00, 0x00, 0x43, 0x0e, 0x0b, 0x1f, + 0x00, 0x00, 0xb4, 0x01, 0xff, 0x44, 0x25, 0x01, 0x1d, 0x00, 0x00, 0x42, + 0x15, 0x02, 0x1e, 0x00, 0x40, 0x5a, 0x92, 0x1e, 0xde, 0x29, 0x40, 0x42, + 0xad, 0x00, 0x84, 0x00, 0x80, 0x85, 0x04, 0xa9, 0x01, 0xff, 0x4d, 0x62, + 0x80, 0xb9, 0x20, 0x00, 0x08, 0x68, 0xc4, 0x01, 0xff, 0x53, 0xef, 0x47, + 0xb4, 0xec, 0x01, 0x09, 0x1e, 0x5a, 0xd6, 0x03, 0x49, 0xf9, 0x47, 0xa0, + 0xec, 0x01, 0x07, 0xff, 0x39, 0x0c, 0x4b, 0xc6, 0x65, 0xac, 0xec, 0x01, + 0x4a, 0xb9, 0xb0, 0xb0, 0xec, 0x41, 0x0a, 0xf1, 0x11, 0xa6, 0x03, 0x45, + 0x12, 0x0b, 0x78, 0xec, 0x81, 0x85, 0x03, 0xa6, 0xb7, 0x02, 0x45, 0xc2, + 0xe7, 0xa1, 0xec, 0x81, 0xa9, 0x02, 0x44, 0xf9, 0x47, 0x9e, 0xec, 0x81, + 0x9b, 0x02, 0x44, 0xcf, 0x2a, 0x79, 0xec, 0x81, 0xf8, 0x01, 0x43, 0x0e, + 0x0b, 0x71, 0xec, 0x81, 0xe1, 0x01, 0x09, 0x2a, 0x4c, 0x9f, 0x01, 0xb3, + 0x59, 0xb4, 0x01, 0xff, 0x42, 0x92, 0x01, 0x7a, 0xec, 0x81, 0x49, 0xa8, + 0x24, 0xb7, 0x01, 0xff, 0x44, 0xcb, 0x1d, 0x7b, 0xec, 0x81, 0x14, 0xef, + 0x72, 0xec, 0xc1, 0x00, 0x80, 0x01, 0xff, 0x47, 0x71, 0x11, 0x84, 0xec, + 0x01, 0x48, 0x40, 0x5e, 0x8d, 0xec, 0x41, 0x49, 0x3f, 0x5e, 0x96, 0xec, + 0x41, 0x44, 0x7b, 0x11, 0x7c, 0xec, 0x81, 0x16, 0x43, 0x26, 0x01, 0x73, + 0xec, 0xc1, 0x00, 0x80, 0x01, 0xff, 0x47, 0x71, 0x11, 0x85, 0xec, 0x01, + 0x48, 0x40, 0x5e, 0x8e, 0xec, 0x41, 0x49, 0x3f, 0x5e, 0x97, 0xec, 0x41, + 0x49, 0x3f, 0x5e, 0x95, 0xec, 0x41, 0x44, 0xc9, 0x1d, 0x77, 0xec, 0x81, + 0x22, 0x42, 0x01, 0x26, 0x76, 0xec, 0xc1, 0x00, 0x80, 0x0d, 0x42, 0x7d, + 0x11, 0x7f, 0xec, 0xc1, 0x00, 0x49, 0x3f, 0x5e, 0x9a, 0xec, 0x41, 0x47, + 0x71, 0x11, 0x88, 0xec, 0x01, 0x48, 0x40, 0x5e, 0x91, 0xec, 0x41, 0x80, + 0x0d, 0x42, 0x7d, 0x11, 0x80, 0xec, 0xc1, 0x00, 0x49, 0x3f, 0x5e, 0x9b, + 0xec, 0x41, 0x47, 0x71, 0x11, 0x89, 0xec, 0x01, 0x48, 0x40, 0x5e, 0x92, + 0xec, 0x41, 0x45, 0x12, 0x0b, 0xaa, 0xec, 0x01, 0xa6, 0x29, 0x44, 0xcf, + 0x2a, 0xab, 0xec, 0x01, 0x43, 0x0e, 0x0b, 0xa3, 0xec, 0x01, 0xb3, 0x0f, + 0xb4, 0x01, 0xff, 0x44, 0x25, 0x01, 0xa5, 0xec, 0x01, 0x42, 0x15, 0x02, + 0xa4, 0xec, 0x41, 0x44, 0xc9, 0x1d, 0xa9, 0xec, 0x01, 0x42, 0x01, 0x26, + 0xa8, 0xec, 0x41, 0x43, 0xd2, 0x05, 0xa7, 0xec, 0x01, 0x43, 0xf6, 0x06, + 0xa6, 0xec, 0x41, 0x80, 0x01, 0xff, 0x47, 0x71, 0x11, 0x83, 0xec, 0x01, + 0x48, 0x40, 0x5e, 0x8c, 0xec, 0x41, 0x80, 0x0d, 0x42, 0x7d, 0x11, 0x82, + 0xec, 0xc1, 0x00, 0x49, 0x3f, 0x5e, 0x9d, 0xec, 0x41, 0x47, 0x71, 0x11, + 0x8b, 0xec, 0x01, 0x48, 0x40, 0x5e, 0x94, 0xec, 0x41, 0x42, 0x1a, 0x00, + 0x9f, 0xec, 0x41, 0x42, 0x1a, 0x00, 0xa2, 0xec, 0x41, 0xa9, 0x26, 0xaf, + 0x01, 0xff, 0x43, 0x7c, 0x11, 0x7d, 0xec, 0x81, 0x16, 0x42, 0x42, 0x00, + 0x74, 0xec, 0xc1, 0x00, 0x80, 0x01, 0xff, 0x47, 0x71, 0x11, 0x86, 0xec, + 0x01, 0x48, 0x40, 0x5e, 0x8f, 0xec, 0x41, 0x49, 0x3f, 0x5e, 0x98, 0xec, + 0x41, 0x43, 0x52, 0x4d, 0x7e, 0xec, 0x81, 0x16, 0x42, 0x32, 0x00, 0x75, + 0xec, 0xc1, 0x00, 0x80, 0x01, 0xff, 0x47, 0x71, 0x11, 0x87, 0xec, 0x01, + 0x48, 0x40, 0x5e, 0x90, 0xec, 0x41, 0x49, 0x3f, 0x5e, 0x99, 0xec, 0x41, + 0x80, 0x0b, 0xf9, 0x81, 0xec, 0xc1, 0x00, 0x49, 0x3f, 0x5e, 0x9c, 0xec, + 0x41, 0x47, 0x71, 0x11, 0x8a, 0xec, 0x01, 0x48, 0x40, 0x5e, 0x93, 0xec, + 0x41, 0x43, 0x0e, 0x0b, 0xb1, 0xec, 0x01, 0xb4, 0x01, 0xff, 0x4b, 0x3d, + 0x5e, 0xb3, 0xec, 0x01, 0x42, 0x15, 0x02, 0xb2, 0xec, 0x41, 0x04, 0x0e, + 0x0b, 0x06, 0x4e, 0x24, 0x01, 0xaf, 0xec, 0x41, 0x44, 0x22, 0x00, 0xae, + 0xec, 0x01, 0x47, 0x2a, 0x01, 0xad, 0xec, 0x41, 0x57, 0x8c, 0x2c, 0xf5, + 0xfa, 0x41, 0x02, 0x14, 0x05, 0x1b, 0x02, 0x88, 0x00, 0x01, 0xff, 0x03, + 0x9a, 0x35, 0x06, 0x44, 0x2c, 0x05, 0x06, 0x22, 0x40, 0x51, 0x9c, 0x36, + 0xda, 0xf5, 0x01, 0x44, 0xf7, 0x03, 0xe1, 0x29, 0x40, 0x4c, 0x0f, 0x90, + 0xe8, 0xf4, 0x01, 0x4e, 0x2d, 0x7b, 0xdc, 0x29, 0x40, 0x46, 0x22, 0x43, + 0xb7, 0x22, 0x80, 0xde, 0x01, 0xf0, 0x7f, 0xf4, 0xc1, 0x00, 0x0e, 0x75, + 0x77, 0x01, 0xff, 0x07, 0xec, 0x05, 0x43, 0x07, 0xff, 0x39, 0x06, 0x4c, + 0x13, 0x95, 0x57, 0x08, 0x41, 0x43, 0x0e, 0x0b, 0x58, 0x08, 0x81, 0x23, + 0xb4, 0x01, 0xff, 0x42, 0x92, 0x01, 0x5b, 0x08, 0x81, 0x13, 0x44, 0x25, + 0x01, 0x5a, 0x08, 0x01, 0xb7, 0x01, 0xff, 0x44, 0xcb, 0x1d, 0x5c, 0x08, + 0x01, 0xef, 0x59, 0x08, 0x41, 0x49, 0x3f, 0x5e, 0x5f, 0x08, 0x41, 0x80, + 0x01, 0xff, 0x47, 0x71, 0x11, 0x5d, 0x08, 0x01, 0x48, 0x40, 0x5e, 0x5e, + 0x08, 0x41, 0xa1, 0x7f, 0x44, 0x41, 0xef, 0x41, 0x08, 0x01, 0x46, 0x23, + 0x4a, 0x43, 0x08, 0x01, 0x45, 0xdd, 0xaa, 0x42, 0x08, 0x01, 0x42, 0xb0, + 0x01, 0x44, 0x08, 0x81, 0x60, 0x44, 0xcd, 0xf0, 0x4a, 0x08, 0x01, 0x46, + 0x94, 0xdd, 0x4b, 0x08, 0x01, 0x43, 0xb4, 0x05, 0x4c, 0x08, 0x01, 0x43, + 0xdc, 0x22, 0x4d, 0x08, 0x01, 0x42, 0x6f, 0x02, 0x50, 0x08, 0x01, 0x44, + 0x4c, 0xc8, 0x52, 0x08, 0x01, 0x44, 0x76, 0x66, 0x53, 0x08, 0x01, 0xb3, + 0x20, 0xb4, 0x12, 0x43, 0x8a, 0x8a, 0x45, 0x08, 0x01, 0x44, 0xa1, 0x52, + 0x49, 0x08, 0x01, 0x45, 0x9b, 0x52, 0x46, 0x08, 0x41, 0x42, 0xb7, 0x2d, + 0x55, 0x08, 0x01, 0x43, 0xda, 0x25, 0x48, 0x08, 0x41, 0xa1, 0x06, 0x43, + 0x7a, 0x16, 0x54, 0x08, 0x41, 0x43, 0xad, 0xea, 0x51, 0x08, 0x01, 0x44, + 0x49, 0xe4, 0x4e, 0x08, 0x41, 0x42, 0x53, 0x00, 0x47, 0x08, 0x41, 0x44, + 0x18, 0x3d, 0x40, 0x08, 0x01, 0x43, 0x7e, 0x1a, 0x4f, 0x08, 0x41, 0x5a, + 0xac, 0x1e, 0x53, 0x22, 0x40, 0x03, 0x9f, 0x01, 0xfa, 0x06, 0x09, 0x4f, + 0x20, 0x01, 0xff, 0x0b, 0x12, 0x5b, 0x82, 0x06, 0xa3, 0xf3, 0x05, 0x02, + 0x04, 0x00, 0xdf, 0x04, 0x52, 0x3d, 0x51, 0x2d, 0x30, 0x00, 0x49, 0x81, + 0x16, 0x02, 0x30, 0x00, 0x4f, 0xd4, 0x6d, 0x3f, 0x30, 0x00, 0x4e, 0x58, + 0x20, 0x05, 0x30, 0x00, 0x4f, 0xa5, 0x6f, 0x2a, 0x30, 0x00, 0x4b, 0x4e, + 0xa0, 0x07, 0x30, 0x00, 0x50, 0xc6, 0x66, 0x2b, 0x30, 0x00, 0x45, 0xd0, + 0x4c, 0x00, 0x30, 0x00, 0xb4, 0x06, 0x53, 0x8a, 0x4e, 0x3e, 0x30, 0x40, + 0x0a, 0xb3, 0xa7, 0xff, 0x03, 0x09, 0x46, 0xb8, 0x01, 0xff, 0x5a, 0xce, + 0x20, 0x37, 0x30, 0x00, 0x0b, 0x4c, 0x32, 0x01, 0xff, 0xa1, 0xe0, 0x03, + 0xa4, 0xf3, 0x01, 0x48, 0x18, 0xc6, 0xc1, 0x32, 0x00, 0x05, 0x2c, 0xd4, + 0x37, 0xaa, 0x20, 0x02, 0x6c, 0x00, 0x12, 0x48, 0xe0, 0xc8, 0xca, 0x32, + 0x00, 0x47, 0xaf, 0xd3, 0xc9, 0x32, 0x00, 0x49, 0x2a, 0xbf, 0xc8, 0x32, + 0x40, 0x43, 0x17, 0x41, 0xc2, 0x32, 0x00, 0xf9, 0xc4, 0x32, 0x40, 0x46, + 0xc2, 0xd9, 0xc0, 0x32, 0x00, 0xb5, 0x01, 0xff, 0x42, 0x75, 0x0b, 0xc6, + 0x32, 0x00, 0x42, 0xcd, 0x05, 0xc5, 0x32, 0x40, 0xa5, 0x9c, 0x01, 0xa6, + 0x7f, 0x44, 0xcf, 0x2a, 0x61, 0x33, 0x80, 0x72, 0x43, 0x0e, 0x0b, 0x59, + 0x33, 0x00, 0xb3, 0x50, 0xb4, 0x06, 0x44, 0x43, 0x1e, 0x58, 0x33, 0x40, + 0x42, 0x92, 0x01, 0x62, 0x33, 0x00, 0xa8, 0x34, 0xb7, 0x01, 0xff, 0xa5, + 0x04, 0xef, 0x5a, 0x33, 0x40, 0x43, 0xe8, 0x2b, 0x64, 0x33, 0x00, 0x43, + 0xcc, 0x1d, 0x6c, 0x33, 0xc0, 0x00, 0x8d, 0x01, 0xff, 0x44, 0xf5, 0x06, + 0x70, 0x33, 0x00, 0x43, 0x0e, 0x0b, 0x6d, 0x33, 0x00, 0xb4, 0x01, 0xff, + 0x44, 0x25, 0x01, 0x6f, 0x33, 0x00, 0x42, 0x15, 0x02, 0x6e, 0x33, 0x40, + 0x46, 0x96, 0x5a, 0x65, 0x33, 0x00, 0x43, 0x26, 0x01, 0x5b, 0x33, 0x40, + 0x44, 0xc9, 0x1d, 0x5f, 0x33, 0x80, 0x0d, 0x42, 0x01, 0x26, 0x5e, 0x33, + 0xc0, 0x00, 0x44, 0x0a, 0x18, 0x68, 0x33, 0x40, 0x44, 0x0a, 0x18, 0x69, + 0x33, 0x40, 0x44, 0x0a, 0x18, 0x6b, 0x33, 0x40, 0xa9, 0x0d, 0x43, 0xf6, + 0x06, 0x5c, 0x33, 0xc0, 0x00, 0x44, 0x0a, 0x18, 0x66, 0x33, 0x40, 0x45, + 0x09, 0x18, 0x67, 0x33, 0x00, 0x42, 0x32, 0x00, 0x5d, 0x33, 0x40, 0x44, + 0xc9, 0x00, 0x60, 0x33, 0x80, 0x06, 0x45, 0xb4, 0x6f, 0x63, 0x33, 0x40, + 0x43, 0xc4, 0x09, 0x6a, 0x33, 0x40, 0x03, 0x05, 0x20, 0x06, 0x47, 0xad, + 0xd0, 0xcb, 0x32, 0x40, 0xa5, 0xca, 0x01, 0xa6, 0xac, 0x01, 0x44, 0xcf, + 0x2a, 0xe8, 0x33, 0x80, 0x9e, 0x01, 0x43, 0x0e, 0x0b, 0xe0, 0x33, 0x00, + 0xb3, 0x7c, 0xb4, 0x01, 0xff, 0x42, 0x92, 0x01, 0xe9, 0x33, 0x00, 0xa8, + 0x56, 0xb7, 0x01, 0xff, 0xa5, 0x04, 0xef, 0xe1, 0x33, 0x40, 0x43, 0xe8, + 0x2b, 0xeb, 0x33, 0x00, 0x43, 0xcc, 0x1d, 0xf3, 0x33, 0xc0, 0x00, 0x8d, + 0x01, 0xff, 0x45, 0x12, 0x0b, 0xfb, 0x33, 0x00, 0xa6, 0x29, 0x44, 0xcf, + 0x2a, 0xfc, 0x33, 0x00, 0x43, 0x0e, 0x0b, 0xf4, 0x33, 0x00, 0xb3, 0x0f, + 0xb4, 0x01, 0xff, 0x44, 0x25, 0x01, 0xf6, 0x33, 0x00, 0x42, 0x15, 0x02, + 0xf5, 0x33, 0x40, 0x44, 0xc9, 0x1d, 0xfa, 0x33, 0x00, 0x42, 0x01, 0x26, + 0xf9, 0x33, 0x40, 0x43, 0xd2, 0x05, 0xf8, 0x33, 0x00, 0x43, 0xf6, 0x06, + 0xf7, 0x33, 0x40, 0x03, 0x7b, 0x11, 0x06, 0x43, 0x26, 0x01, 0xe2, 0x33, + 0x40, 0x43, 0xc4, 0x09, 0xec, 0x33, 0x00, 0xf9, 0xfd, 0x33, 0xc0, 0x00, + 0x44, 0x28, 0xbd, 0xfe, 0x33, 0x40, 0x44, 0xc9, 0x1d, 0xe6, 0x33, 0x80, + 0x0d, 0x42, 0x01, 0x26, 0xe5, 0x33, 0xc0, 0x00, 0x44, 0x0a, 0x18, 0xef, + 0x33, 0x40, 0x44, 0x0a, 0x18, 0xf0, 0x33, 0x40, 0x44, 0x0a, 0x18, 0xf2, + 0x33, 0x40, 0xa9, 0x0d, 0x43, 0xf6, 0x06, 0xe3, 0x33, 0xc0, 0x00, 0x44, + 0x0a, 0x18, 0xed, 0x33, 0x40, 0x45, 0x09, 0x18, 0xee, 0x33, 0x00, 0x42, + 0x32, 0x00, 0xe4, 0x33, 0x40, 0x44, 0xc9, 0x00, 0xe7, 0x33, 0x80, 0x06, + 0x45, 0xb4, 0x6f, 0xea, 0x33, 0x40, 0x43, 0xc4, 0x09, 0xf1, 0x33, 0x40, + 0x44, 0x25, 0xf2, 0xc3, 0x32, 0x00, 0x45, 0xc3, 0xeb, 0xc7, 0x32, 0x40, + 0xa6, 0x15, 0x43, 0x0e, 0x0b, 0x72, 0xd3, 0x01, 0xb4, 0x01, 0xff, 0x44, + 0x25, 0x01, 0x74, 0xd3, 0x01, 0x42, 0x15, 0x02, 0x73, 0xd3, 0x41, 0x43, + 0xd2, 0x05, 0x76, 0xd3, 0x01, 0x43, 0xf6, 0x06, 0x75, 0xd3, 0x41, 0x51, + 0x33, 0x2d, 0x2c, 0x30, 0x00, 0x14, 0xb4, 0x45, 0x01, 0xff, 0x09, 0x88, + 0xb5, 0x74, 0x4d, 0x2d, 0x83, 0xf4, 0x2f, 0x00, 0x55, 0xc3, 0x3b, 0xfe, + 0x2f, 0x00, 0x08, 0x84, 0x02, 0x58, 0x48, 0x3b, 0x0e, 0xfb, 0x2f, 0x00, + 0x48, 0x6d, 0x60, 0xff, 0x2f, 0x00, 0x02, 0x6f, 0x00, 0x01, 0xff, 0x49, + 0xe7, 0xb6, 0xef, 0x31, 0x00, 0x0c, 0xe3, 0x94, 0x01, 0xff, 0x45, 0x5c, + 0x00, 0xf5, 0x2f, 0x00, 0x45, 0x20, 0x07, 0xf6, 0x2f, 0x00, 0xac, 0x17, + 0x45, 0xc8, 0x00, 0xfc, 0x2f, 0x00, 0x06, 0x6d, 0x02, 0x01, 0xff, 0x44, + 0xc3, 0x00, 0xf8, 0x2f, 0x00, 0x45, 0xc8, 0x00, 0xf9, 0x2f, 0x40, 0x43, + 0xc4, 0x00, 0xf7, 0x2f, 0x00, 0x05, 0x14, 0x01, 0x01, 0xff, 0x44, 0xc3, + 0x00, 0xfa, 0x2f, 0x00, 0x45, 0xc8, 0x00, 0xfd, 0x2f, 0x40, 0x50, 0x26, + 0x65, 0xf2, 0x2f, 0x00, 0x45, 0xc8, 0x00, 0xf0, 0x2f, 0x40, 0x45, 0x20, + 0x07, 0xf1, 0x2f, 0x00, 0x50, 0x16, 0x65, 0xf3, 0x2f, 0x40, 0x4b, 0xe3, + 0x9e, 0x06, 0x30, 0x00, 0x44, 0x14, 0x05, 0x01, 0x30, 0x40, 0x4b, 0xb0, + 0x99, 0x98, 0x31, 0x00, 0x4a, 0x89, 0xa9, 0x9e, 0x31, 0x00, 0xa6, 0x49, + 0x4b, 0xd3, 0x9c, 0x9d, 0x31, 0x00, 0x4c, 0x47, 0x91, 0x90, 0x31, 0x00, + 0xad, 0x2f, 0x48, 0x3c, 0x2d, 0x92, 0x31, 0x00, 0x4c, 0x5f, 0x94, 0x91, + 0x31, 0x00, 0x4b, 0x7f, 0xa2, 0x9a, 0x31, 0x00, 0xb4, 0x01, 0xff, 0xa8, + 0x0c, 0x47, 0xfc, 0xd3, 0x96, 0x31, 0x00, 0x47, 0x91, 0xd7, 0x93, 0x31, + 0x40, 0x48, 0x28, 0xc7, 0x9b, 0x31, 0x00, 0x48, 0x58, 0xca, 0x94, 0x31, + 0x40, 0x47, 0xc3, 0xce, 0x9f, 0x31, 0x00, 0x4a, 0x73, 0xab, 0x97, 0x31, + 0x40, 0x49, 0xb3, 0xba, 0x99, 0x31, 0x00, 0x03, 0xf6, 0x06, 0x01, 0xff, + 0x45, 0xb8, 0x00, 0x95, 0x31, 0x00, 0x47, 0x46, 0x39, 0x9c, 0x31, 0x40, + 0x04, 0x37, 0x00, 0x06, 0x4d, 0xd2, 0x82, 0xaa, 0xfa, 0x41, 0x42, 0x1e, + 0x00, 0x61, 0x22, 0x80, 0x06, 0x4e, 0x76, 0x3b, 0x67, 0x2a, 0x40, 0x55, + 0x7b, 0x38, 0xe5, 0x29, 0x40, 0xa3, 0x0c, 0x55, 0xae, 0x3b, 0xd2, 0xf3, + 0x01, 0x45, 0x00, 0xeb, 0xf8, 0x26, 0x40, 0x44, 0xc7, 0x61, 0x68, 0xf3, + 0x01, 0x43, 0xc7, 0x40, 0xca, 0xf9, 0x41, 0xa1, 0xea, 0x25, 0xa5, 0xe9, + 0x07, 0xa9, 0xd6, 0x03, 0xaf, 0x63, 0x4b, 0x74, 0xa2, 0xb4, 0x20, 0x00, + 0xb5, 0x45, 0xb9, 0x01, 0xff, 0x46, 0x74, 0xd9, 0xbb, 0xfa, 0x01, 0x44, + 0x01, 0xf0, 0xda, 0x2b, 0x80, 0x2f, 0xb0, 0x06, 0x4f, 0x74, 0x73, 0x8e, + 0x23, 0x40, 0x43, 0xb0, 0x01, 0x10, 0x20, 0x80, 0x06, 0x49, 0xd8, 0xbc, + 0x12, 0x2e, 0x40, 0x80, 0x0c, 0x46, 0xcd, 0x8f, 0x2d, 0x00, 0x00, 0x4b, + 0x63, 0x99, 0x27, 0x20, 0x40, 0x46, 0xb2, 0x21, 0x43, 0x20, 0x00, 0x4e, + 0xf7, 0x69, 0x1a, 0x2e, 0x40, 0x49, 0x21, 0x2e, 0x79, 0xf7, 0x41, 0x4a, + 0xbf, 0xaa, 0x17, 0xf9, 0x01, 0x53, 0x6c, 0x4b, 0xaf, 0xf4, 0x01, 0x49, + 0x36, 0x93, 0x2f, 0xf6, 0x01, 0xf4, 0xd6, 0xf6, 0x41, 0x43, 0x64, 0x2a, + 0x2a, 0xf5, 0x01, 0xac, 0xd7, 0x02, 0x48, 0xf9, 0x79, 0x3b, 0x22, 0x00, + 0x03, 0x9d, 0x28, 0xc0, 0x02, 0x42, 0x55, 0x05, 0x9d, 0xfa, 0x01, 0xb2, + 0x53, 0x46, 0x04, 0xe0, 0xe5, 0xf3, 0x01, 0xb4, 0x2b, 0xb5, 0x01, 0xff, + 0x46, 0xff, 0xd6, 0x1b, 0x23, 0x80, 0x1b, 0x42, 0x46, 0x03, 0x02, 0x23, + 0xc0, 0x00, 0x80, 0x01, 0xff, 0x48, 0xb3, 0x3d, 0xe0, 0xf3, 0x81, 0x06, + 0x4b, 0x29, 0xa5, 0xe1, 0xf3, 0x41, 0xf3, 0xd8, 0xf3, 0x41, 0x52, 0xd5, + 0x4f, 0xf3, 0x23, 0x40, 0x80, 0x06, 0x42, 0xd8, 0x00, 0xe8, 0xf3, 0x41, + 0x48, 0x08, 0xc4, 0x15, 0x26, 0x00, 0x43, 0xdf, 0xda, 0x2d, 0xf3, 0x01, + 0x46, 0x1a, 0xdf, 0x36, 0xf3, 0x01, 0x47, 0xf4, 0xd5, 0x68, 0x26, 0x40, + 0x08, 0x0e, 0x00, 0x16, 0x42, 0x46, 0x03, 0x0e, 0xf4, 0xc1, 0x00, 0x80, + 0x01, 0xff, 0x44, 0x0c, 0x08, 0x34, 0xf4, 0x01, 0x46, 0x68, 0xdf, 0xc7, + 0xf3, 0x41, 0xa2, 0xb1, 0x01, 0x49, 0xf9, 0xb6, 0x13, 0xcc, 0x01, 0x48, + 0xce, 0x29, 0x26, 0x20, 0x00, 0xac, 0x78, 0x55, 0xd4, 0x3c, 0xa9, 0x26, + 0x00, 0x11, 0xd7, 0x5c, 0x50, 0xb2, 0x42, 0x0a, 0xcd, 0xb0, 0x2e, 0xb4, + 0x06, 0x4b, 0x81, 0xa5, 0xb0, 0xce, 0x41, 0x02, 0x5c, 0x00, 0x06, 0x4c, + 0x0b, 0x94, 0xa5, 0xf6, 0x41, 0x44, 0xd1, 0x45, 0x7e, 0x2b, 0x00, 0x47, + 0xe6, 0x3b, 0x09, 0x00, 0xc0, 0x00, 0x80, 0x01, 0xff, 0x43, 0x9c, 0x12, + 0x88, 0x00, 0x00, 0x52, 0xa7, 0x56, 0x89, 0x00, 0x40, 0xd1, 0xba, 0x23, + 0x00, 0xd3, 0xbb, 0x23, 0x00, 0xd7, 0xbc, 0x23, 0x00, 0xd9, 0xbd, 0x23, + 0x40, 0x49, 0x9a, 0xb5, 0x9b, 0xcc, 0x01, 0x4f, 0xd5, 0x6c, 0x09, 0xcc, + 0x41, 0x44, 0x45, 0xed, 0x81, 0xfb, 0x01, 0xd2, 0x76, 0xfb, 0x01, 0xd3, + 0x77, 0xfb, 0x01, 0xd4, 0x78, 0xfb, 0x01, 0xd5, 0x79, 0xfb, 0x01, 0xd6, + 0x7a, 0xfb, 0x01, 0xd7, 0x7b, 0xfb, 0x41, 0x45, 0x07, 0xe4, 0x85, 0xcc, + 0x01, 0x04, 0xee, 0x07, 0x01, 0xff, 0x49, 0xc1, 0x58, 0xaf, 0x23, 0x00, + 0x05, 0x51, 0x00, 0x01, 0xff, 0x4f, 0x5c, 0x6d, 0x91, 0xcc, 0x01, 0xb4, + 0x01, 0xff, 0x4f, 0xf8, 0x07, 0x12, 0xce, 0x01, 0x48, 0xfe, 0x07, 0x0f, + 0xce, 0x41, 0x42, 0x17, 0x00, 0x15, 0x20, 0x00, 0x05, 0x0d, 0x03, 0x01, + 0xff, 0x47, 0x8d, 0xd1, 0x23, 0x2b, 0x00, 0x47, 0xa1, 0xd3, 0xc3, 0x2b, + 0x40, 0x44, 0x4c, 0x50, 0x6f, 0xf3, 0x01, 0x43, 0x8d, 0xb6, 0x1d, 0xf4, + 0x41, 0xe5, 0x73, 0xf5, 0x01, 0x59, 0xb1, 0x24, 0x68, 0xf6, 0xc1, 0x00, + 0x50, 0x3e, 0x11, 0x69, 0xf6, 0x41, 0x46, 0x28, 0xda, 0x3a, 0xf3, 0x01, + 0x02, 0x40, 0x00, 0xe1, 0x03, 0x49, 0x0d, 0xbb, 0x7e, 0xf9, 0x01, 0x4a, + 0x57, 0xae, 0xd5, 0xf6, 0x01, 0x4a, 0xbf, 0xaf, 0x9b, 0xf9, 0x01, 0x07, + 0x48, 0x12, 0x06, 0x4b, 0xf8, 0xa2, 0xec, 0x26, 0x40, 0x4c, 0x0b, 0x8e, + 0x9f, 0x30, 0x00, 0x4e, 0x58, 0x20, 0x9d, 0x30, 0x00, 0x07, 0xec, 0x05, + 0x06, 0x55, 0xf6, 0x3e, 0x9e, 0x30, 0x40, 0xe1, 0x42, 0x30, 0x80, 0x98, + 0x03, 0xa2, 0x81, 0x03, 0xa4, 0xea, 0x02, 0xe5, 0x48, 0x30, 0x00, 0xa7, + 0xcf, 0x02, 0xa8, 0xb8, 0x02, 0xe9, 0x44, 0x30, 0x00, 0xab, 0x9d, 0x02, + 0xad, 0x86, 0x02, 0xee, 0x93, 0x30, 0x80, 0xec, 0x01, 0xef, 0x4a, 0x30, + 0x00, 0xb0, 0xd1, 0x01, 0xb2, 0xba, 0x01, 0xb3, 0x57, 0xb4, 0x41, 0xf5, + 0x46, 0x30, 0x00, 0x42, 0x67, 0x62, 0x94, 0x30, 0x00, 0xb7, 0x25, 0xb9, + 0x17, 0xba, 0x01, 0xff, 0xe1, 0x56, 0x30, 0x00, 0xe5, 0x5c, 0x30, 0x00, + 0xe9, 0x58, 0x30, 0x00, 0xef, 0x5e, 0x30, 0x00, 0xf5, 0x5a, 0x30, 0x40, + 0xe1, 0x84, 0x30, 0x00, 0xef, 0x88, 0x30, 0x00, 0xf5, 0x86, 0x30, 0x40, + 0xe1, 0x8f, 0x30, 0x00, 0xe5, 0x91, 0x30, 0x00, 0xe9, 0x90, 0x30, 0x00, + 0xef, 0x92, 0x30, 0x40, 0xe1, 0x5f, 0x30, 0x00, 0xe5, 0x66, 0x30, 0x00, + 0xe9, 0x61, 0x30, 0x00, 0xef, 0x68, 0x30, 0x00, 0xf5, 0x64, 0x30, 0x40, + 0xe1, 0x55, 0x30, 0x00, 0xe5, 0x5b, 0x30, 0x00, 0xe9, 0x57, 0x30, 0x00, + 0x05, 0x5e, 0x07, 0x08, 0xef, 0x5d, 0x30, 0x00, 0xf5, 0x59, 0x30, 0x40, + 0xe1, 0x41, 0x30, 0x00, 0xe5, 0x47, 0x30, 0x00, 0xe9, 0x43, 0x30, 0x00, + 0xab, 0x2f, 0xef, 0x49, 0x30, 0x00, 0x42, 0x5c, 0x01, 0x63, 0x30, 0x00, + 0xf5, 0x45, 0x30, 0x00, 0xb7, 0x0f, 0xb9, 0x01, 0xff, 0xe1, 0x83, 0x30, + 0x00, 0xef, 0x87, 0x30, 0x00, 0xf5, 0x85, 0x30, 0x40, 0xe1, 0x8e, 0x30, + 0x00, 0xe5, 0x51, 0xb1, 0x01, 0xe9, 0x50, 0xb1, 0x01, 0xef, 0x52, 0xb1, + 0x41, 0xe1, 0x95, 0x30, 0x00, 0xe5, 0x96, 0x30, 0x00, 0xef, 0x32, 0xb1, + 0x41, 0xe1, 0x89, 0x30, 0x00, 0xe5, 0x8c, 0x30, 0x00, 0xe9, 0x8a, 0x30, + 0x00, 0xef, 0x8d, 0x30, 0x00, 0xf5, 0x8b, 0x30, 0x40, 0xe1, 0x71, 0x30, + 0x00, 0xe5, 0x7a, 0x30, 0x00, 0xe9, 0x74, 0x30, 0x00, 0xef, 0x7d, 0x30, + 0x00, 0xf5, 0x77, 0x30, 0x40, 0xe1, 0x6a, 0x30, 0x00, 0xe5, 0x6d, 0x30, + 0x00, 0xe9, 0x6b, 0x30, 0x00, 0xef, 0x6e, 0x30, 0x00, 0xf5, 0x6c, 0x30, + 0x40, 0xe1, 0x7e, 0x30, 0x00, 0xe5, 0x81, 0x30, 0x00, 0xe9, 0x7f, 0x30, + 0x00, 0xef, 0x82, 0x30, 0x00, 0xf5, 0x80, 0x30, 0x40, 0xe1, 0x4b, 0x30, + 0x00, 0xe5, 0x51, 0x30, 0x00, 0xe9, 0x4d, 0x30, 0x00, 0xef, 0x53, 0x30, + 0x00, 0xf5, 0x4f, 0x30, 0x40, 0xe1, 0x6f, 0x30, 0x00, 0xe5, 0x78, 0x30, + 0x00, 0xe9, 0x72, 0x30, 0x00, 0xef, 0x7b, 0x30, 0x00, 0xf5, 0x75, 0x30, + 0x40, 0xe1, 0x4c, 0x30, 0x00, 0xe5, 0x52, 0x30, 0x00, 0xe9, 0x4e, 0x30, + 0x00, 0xef, 0x54, 0x30, 0x00, 0xf5, 0x50, 0x30, 0x40, 0xe1, 0x60, 0x30, + 0x00, 0xe5, 0x67, 0x30, 0x00, 0xe9, 0x62, 0x30, 0x00, 0xef, 0x69, 0x30, + 0x00, 0xf5, 0x65, 0x30, 0x40, 0xe1, 0x70, 0x30, 0x00, 0xe5, 0x79, 0x30, + 0x00, 0xe9, 0x73, 0x30, 0x00, 0xef, 0x7c, 0x30, 0x00, 0xf5, 0x76, 0x30, + 0x40, 0x07, 0xa4, 0x80, 0x01, 0xff, 0x42, 0x7c, 0x31, 0x1f, 0xb1, 0x01, + 0x42, 0x4d, 0x00, 0x01, 0xb0, 0x41, 0x80, 0x16, 0x8d, 0x01, 0xff, 0x4b, + 0xde, 0x9c, 0x60, 0xf4, 0x01, 0x4b, 0xc1, 0xa2, 0x84, 0xf6, 0xc1, 0x00, + 0x51, 0x65, 0x57, 0x85, 0xf6, 0x41, 0x51, 0xca, 0x58, 0x06, 0xf5, 0x01, + 0x4c, 0xdb, 0x96, 0xa1, 0x26, 0x40, 0xa1, 0x8a, 0x17, 0xa2, 0x8f, 0x0f, + 0x46, 0xe8, 0xda, 0x94, 0xf9, 0x01, 0xac, 0xeb, 0x0e, 0x10, 0x66, 0x65, + 0xf0, 0x03, 0xb2, 0xe3, 0x03, 0x0b, 0x3f, 0xa5, 0x01, 0xff, 0xa1, 0xc9, + 0x03, 0xa2, 0xb4, 0x03, 0x02, 0x13, 0x05, 0x9a, 0x03, 0xa4, 0xe9, 0x02, + 0x4a, 0x01, 0xaa, 0xcf, 0x4d, 0x00, 0xa6, 0xd4, 0x02, 0xa7, 0xa1, 0x02, + 0x50, 0x86, 0x63, 0xc7, 0x4d, 0x00, 0x02, 0x9e, 0x01, 0xfb, 0x01, 0x4a, + 0x17, 0xad, 0xfb, 0x4d, 0x00, 0x02, 0xc3, 0x07, 0xe4, 0x01, 0xaf, 0xca, + 0x01, 0xb0, 0xb5, 0x01, 0x02, 0x88, 0x00, 0x9c, 0x01, 0xb3, 0x7e, 0xb4, + 0x14, 0xb7, 0x06, 0x4e, 0xf3, 0x7e, 0xc3, 0x4d, 0x40, 0x46, 0xf1, 0x88, + 0xc4, 0x4d, 0x00, 0x52, 0x1f, 0x54, 0xd1, 0x4d, 0x40, 0x03, 0xc5, 0x0b, + 0x06, 0x47, 0xfb, 0x11, 0xc9, 0x4d, 0x40, 0xa1, 0x47, 0xa3, 0x33, 0x46, + 0xb4, 0xdb, 0xe4, 0x4d, 0x00, 0x4b, 0x5a, 0x9c, 0xf8, 0x4d, 0x00, 0x4b, + 0xf1, 0x9d, 0xf9, 0x4d, 0x00, 0x56, 0xf5, 0x34, 0xf3, 0x4d, 0x00, 0x4f, + 0x2c, 0x70, 0xf5, 0x4d, 0x00, 0x4f, 0x48, 0x72, 0xc1, 0x4d, 0x00, 0xb7, + 0x01, 0xff, 0x47, 0xd1, 0xce, 0xf7, 0x4d, 0x00, 0x43, 0x5f, 0x09, 0xef, + 0x4d, 0x40, 0x47, 0x3a, 0xcf, 0xf1, 0x4d, 0x00, 0x4c, 0x3b, 0x91, 0xdd, + 0x4d, 0x00, 0x4e, 0x81, 0x7b, 0xc0, 0x4d, 0x40, 0x4c, 0x0f, 0x8d, 0xdc, + 0x4d, 0x00, 0xb2, 0x01, 0xff, 0x42, 0xa3, 0x58, 0xc6, 0x4d, 0x00, 0x4e, + 0xd9, 0x7a, 0xf2, 0x4d, 0x40, 0x05, 0x5e, 0x07, 0x0c, 0x4e, 0x3b, 0x7b, + 0xd6, 0x4d, 0x00, 0x49, 0xa8, 0xbf, 0xcb, 0x4d, 0x40, 0x4d, 0x98, 0x87, + 0xfd, 0x4d, 0x00, 0x46, 0x5e, 0xe0, 0xc8, 0x4d, 0x40, 0xb4, 0x06, 0x48, + 0x50, 0xcc, 0xf0, 0x4d, 0x40, 0x44, 0x88, 0x00, 0xe0, 0x4d, 0x00, 0x43, + 0x5d, 0x01, 0xd7, 0x4d, 0x40, 0x44, 0xcd, 0xa4, 0xca, 0x4d, 0x00, 0x47, + 0x68, 0xd5, 0xe2, 0x4d, 0x00, 0x4d, 0xd4, 0x89, 0xed, 0x4d, 0x40, 0x4a, + 0x67, 0xa8, 0xe6, 0x4d, 0x00, 0x02, 0x6e, 0x02, 0x01, 0xff, 0x47, 0x0d, + 0x17, 0xe5, 0x4d, 0x00, 0x47, 0x86, 0x66, 0xee, 0x4d, 0x40, 0x45, 0x8d, + 0xe5, 0xce, 0x4d, 0x00, 0x4b, 0x8f, 0xa4, 0xda, 0x4d, 0x40, 0x46, 0xbe, + 0xda, 0xe9, 0x4d, 0x00, 0x47, 0x2b, 0xd1, 0xde, 0x4d, 0x00, 0xae, 0x01, + 0xff, 0x48, 0xb0, 0xc5, 0xfc, 0x4d, 0x00, 0x46, 0xa2, 0xde, 0xd8, 0x4d, + 0x40, 0x51, 0x64, 0x58, 0xec, 0x4d, 0x00, 0xb2, 0x01, 0xff, 0x43, 0x0d, + 0x08, 0xd5, 0x4d, 0x00, 0x04, 0x59, 0x55, 0x01, 0xff, 0xb0, 0x06, 0x46, + 0x5e, 0xe0, 0xd9, 0x4d, 0x40, 0xaf, 0x06, 0x4c, 0x99, 0x87, 0xdb, 0x4d, + 0x40, 0x48, 0xbc, 0x52, 0xcd, 0x4d, 0x00, 0x43, 0x15, 0x01, 0xe1, 0x4d, + 0x40, 0x49, 0x4f, 0xb8, 0xcc, 0x4d, 0x00, 0x48, 0x20, 0xc9, 0xd0, 0x4d, + 0x40, 0x55, 0x62, 0x39, 0xe3, 0x4d, 0x00, 0xa5, 0x14, 0xa9, 0x06, 0x47, + 0xf0, 0xd6, 0xdf, 0x4d, 0x40, 0x59, 0x34, 0x24, 0xc2, 0x4d, 0x00, 0x48, + 0x20, 0xcb, 0xfa, 0x4d, 0x40, 0x46, 0xbe, 0xda, 0xe8, 0x4d, 0x00, 0x49, + 0x8b, 0xbb, 0xe7, 0x4d, 0x00, 0x49, 0xda, 0xc0, 0xf4, 0x4d, 0x40, 0x4c, + 0x13, 0x92, 0xeb, 0x4d, 0x00, 0xae, 0x01, 0xff, 0x45, 0x6e, 0xe6, 0xc5, + 0x4d, 0x00, 0x4a, 0xb3, 0xb1, 0xd3, 0x4d, 0x40, 0x50, 0x96, 0x62, 0xff, + 0x4d, 0x00, 0x4d, 0x8c, 0x84, 0xd4, 0x4d, 0x00, 0x4b, 0xda, 0xa1, 0xea, + 0x4d, 0x40, 0x48, 0x60, 0xc4, 0xf6, 0x4d, 0x00, 0x4f, 0x7a, 0x6d, 0xfe, + 0x4d, 0x00, 0x47, 0xd5, 0xd4, 0xd2, 0x4d, 0x40, 0xe2, 0x3f, 0xf3, 0x01, + 0x57, 0xb1, 0x2f, 0xb9, 0x22, 0x40, 0x02, 0x66, 0x2b, 0xdf, 0x0a, 0x02, + 0x08, 0x02, 0xc2, 0x0a, 0xa8, 0x99, 0x09, 0x02, 0x1e, 0x37, 0x84, 0x09, + 0xab, 0xd3, 0x07, 0xad, 0xcd, 0x06, 0xae, 0xa4, 0x05, 0x02, 0x08, 0x32, + 0x93, 0x05, 0xb2, 0x8f, 0x04, 0xb3, 0xef, 0x02, 0xb4, 0xd2, 0x01, 0x02, + 0xbd, 0x39, 0xb9, 0x01, 0xb7, 0x52, 0xb9, 0x01, 0xff, 0x02, 0x66, 0x2b, + 0x31, 0x02, 0x08, 0x32, 0x15, 0x02, 0xbd, 0x39, 0x01, 0xff, 0xd1, 0xe3, + 0xb0, 0x01, 0xd2, 0xe4, 0xb0, 0x01, 0xd3, 0xe5, 0xb0, 0x01, 0xd4, 0xe6, + 0xb0, 0x41, 0xd1, 0xe7, 0xb0, 0x01, 0xd2, 0xe8, 0xb0, 0x01, 0xd3, 0xe9, + 0xb0, 0x01, 0xd4, 0xea, 0xb0, 0x01, 0xd5, 0xeb, 0xb0, 0x01, 0xd6, 0xec, + 0xb0, 0x41, 0xd1, 0xdd, 0xb0, 0x01, 0xd2, 0xde, 0xb0, 0x01, 0xd3, 0xdf, + 0xb0, 0x01, 0xd4, 0xe0, 0xb0, 0x01, 0xd5, 0xe1, 0xb0, 0x01, 0x42, 0xa9, + 0x47, 0xe2, 0xb0, 0x41, 0x02, 0x66, 0x2b, 0x4d, 0x02, 0x08, 0x02, 0x39, + 0x02, 0x1e, 0x37, 0x21, 0x02, 0x08, 0x32, 0x01, 0xff, 0xd1, 0x16, 0xb1, + 0x01, 0xd2, 0x17, 0xb1, 0x01, 0xd3, 0x18, 0xb1, 0x01, 0xd4, 0x19, 0xb1, + 0x01, 0xd5, 0x1a, 0xb1, 0x01, 0xd6, 0x1b, 0xb1, 0x01, 0xd7, 0x1c, 0xb1, + 0x41, 0xd1, 0x0d, 0xb1, 0x01, 0xd2, 0x0e, 0xb1, 0x01, 0xd3, 0x0f, 0xb1, + 0x01, 0xd4, 0x10, 0xb1, 0x01, 0xd5, 0x11, 0xb1, 0x41, 0xd1, 0x12, 0xb1, + 0x01, 0xd2, 0x13, 0xb1, 0x01, 0xd3, 0x14, 0xb1, 0x01, 0xd4, 0x15, 0xb1, + 0x41, 0xd1, 0x08, 0xb1, 0x01, 0xd2, 0x09, 0xb1, 0x01, 0xd3, 0x0a, 0xb1, + 0x01, 0xd4, 0x0b, 0xb1, 0x01, 0xd5, 0x0c, 0xb1, 0x41, 0xd1, 0x0a, 0xb0, + 0x01, 0xd2, 0x0b, 0xb0, 0x01, 0xd3, 0x0c, 0xb0, 0x01, 0xd4, 0x0d, 0xb0, + 0x01, 0xd5, 0x0e, 0xb0, 0x41, 0x02, 0x66, 0x2b, 0x85, 0x01, 0x02, 0x08, + 0x02, 0x5d, 0x02, 0x1e, 0x37, 0x3d, 0x02, 0x08, 0x32, 0x1b, 0x02, 0xbd, + 0x39, 0x01, 0xff, 0xd1, 0x69, 0xb0, 0x01, 0xd2, 0x6a, 0xb0, 0x01, 0xd3, + 0x6b, 0xb0, 0x01, 0xd4, 0x6c, 0xb0, 0x01, 0x42, 0x1e, 0x00, 0x6d, 0xb0, + 0x41, 0xd1, 0x77, 0xb0, 0x01, 0xd2, 0x78, 0xb0, 0x01, 0xd3, 0x79, 0xb0, + 0x01, 0xd4, 0x7a, 0xb0, 0x01, 0xd5, 0x7b, 0xb0, 0x01, 0xd6, 0x7c, 0xb0, + 0x01, 0x42, 0x71, 0x00, 0x7d, 0xb0, 0x41, 0xd1, 0x62, 0xb0, 0x01, 0xd2, + 0x63, 0xb0, 0x01, 0xd3, 0x64, 0xb0, 0x01, 0xd4, 0x65, 0xb0, 0x01, 0xd5, + 0x66, 0xb0, 0x01, 0xd6, 0x67, 0xb0, 0x01, 0xd7, 0x68, 0xb0, 0x41, 0xd1, + 0x6e, 0xb0, 0x01, 0xd2, 0x6f, 0xb0, 0x01, 0xd3, 0x70, 0xb0, 0x01, 0xd4, + 0x71, 0xb0, 0x01, 0xd5, 0x72, 0xb0, 0x01, 0xd6, 0x73, 0xb0, 0x01, 0xd7, + 0x74, 0xb0, 0x01, 0xd8, 0x75, 0xb0, 0x01, 0xd9, 0x76, 0xb0, 0x41, 0xd1, + 0x5e, 0xb0, 0x01, 0xd2, 0x5f, 0xb0, 0x01, 0xd3, 0x60, 0xb0, 0x01, 0xd4, + 0x61, 0xb0, 0x41, 0x02, 0x66, 0x2b, 0x79, 0x02, 0x08, 0x02, 0x61, 0x02, + 0x1e, 0x37, 0x45, 0x02, 0x08, 0x32, 0x25, 0x02, 0xbd, 0x39, 0x01, 0xff, + 0xd1, 0x4a, 0xb0, 0x01, 0xd2, 0x4b, 0xb0, 0x01, 0xd3, 0x4c, 0xb0, 0x01, + 0xd4, 0x4d, 0xb0, 0x01, 0xd5, 0x4e, 0xb0, 0x01, 0xd6, 0x4f, 0xb0, 0x01, + 0xd7, 0x50, 0xb0, 0x01, 0xd8, 0x51, 0xb0, 0x41, 0xd1, 0x57, 0xb0, 0x01, + 0xd2, 0x58, 0xb0, 0x01, 0xd3, 0x59, 0xb0, 0x01, 0xd4, 0x5a, 0xb0, 0x01, + 0xd5, 0x5b, 0xb0, 0x01, 0xd6, 0x5c, 0xb0, 0x01, 0xd7, 0x5d, 0xb0, 0x41, + 0xd1, 0x44, 0xb0, 0x01, 0xd2, 0x45, 0xb0, 0x01, 0xd3, 0x46, 0xb0, 0x01, + 0xd4, 0x47, 0xb0, 0x01, 0xd5, 0x48, 0xb0, 0x01, 0xd6, 0x49, 0xb0, 0x41, + 0xd1, 0x52, 0xb0, 0x01, 0xd2, 0x53, 0xb0, 0x01, 0xd3, 0x54, 0xb0, 0x01, + 0xd4, 0x55, 0xb0, 0x01, 0xd5, 0x56, 0xb0, 0x41, 0xd1, 0x3c, 0xb0, 0x01, + 0xd2, 0x3d, 0xb0, 0x01, 0xd3, 0x3e, 0xb0, 0x01, 0xd4, 0x3f, 0xb0, 0x01, + 0xd5, 0x40, 0xb0, 0x01, 0xd6, 0x41, 0xb0, 0x01, 0xd7, 0x42, 0xb0, 0x01, + 0xd8, 0x43, 0xb0, 0x41, 0x02, 0x66, 0x2b, 0x6d, 0x02, 0x08, 0x02, 0x59, + 0x02, 0x1e, 0x37, 0x39, 0x02, 0x08, 0x32, 0x1d, 0x02, 0xbd, 0x39, 0x01, + 0xff, 0xd1, 0xf8, 0xb0, 0x01, 0xd2, 0xf9, 0xb0, 0x01, 0xd3, 0xfa, 0xb0, + 0x01, 0xd4, 0xfb, 0xb0, 0x01, 0xd5, 0xfc, 0xb0, 0x01, 0xd6, 0xfd, 0xb0, + 0x41, 0xd1, 0x02, 0xb1, 0x01, 0xd2, 0x03, 0xb1, 0x01, 0xd3, 0x04, 0xb1, + 0x01, 0xd4, 0x05, 0xb1, 0x01, 0xd5, 0x06, 0xb1, 0x01, 0xd6, 0x07, 0xb1, + 0x41, 0xd1, 0xf1, 0xb0, 0x01, 0xd2, 0xf2, 0xb0, 0x01, 0xd3, 0xf3, 0xb0, + 0x01, 0xd4, 0xf4, 0xb0, 0x01, 0xd5, 0xf5, 0xb0, 0x01, 0xd6, 0xf6, 0xb0, + 0x01, 0xd7, 0xf7, 0xb0, 0x41, 0xd1, 0xfe, 0xb0, 0x01, 0xd2, 0xff, 0xb0, + 0x01, 0xd3, 0x00, 0xb1, 0x01, 0xd4, 0x01, 0xb1, 0x41, 0xd1, 0xed, 0xb0, + 0x01, 0xd2, 0xee, 0xb0, 0x01, 0xd3, 0xef, 0xb0, 0x01, 0xd4, 0xf0, 0xb0, + 0x41, 0xd1, 0x14, 0xb0, 0x01, 0xd2, 0x15, 0xb0, 0x01, 0xd3, 0x16, 0xb0, + 0x41, 0x07, 0xce, 0xcd, 0x99, 0x01, 0x02, 0x66, 0x2b, 0x71, 0x02, 0x08, + 0x02, 0x4f, 0x02, 0x1e, 0x37, 0x29, 0x02, 0x08, 0x32, 0x11, 0x02, 0xbd, + 0x39, 0x01, 0xff, 0xd1, 0x8f, 0xb0, 0x01, 0xd2, 0x90, 0xb0, 0x01, 0xd3, + 0x91, 0xb0, 0x41, 0xd1, 0x99, 0xb0, 0x01, 0xd2, 0x9a, 0xb0, 0x01, 0xd3, + 0x9b, 0xb0, 0x01, 0xd4, 0x9c, 0xb0, 0x01, 0xd5, 0x9d, 0xb0, 0x41, 0xd1, + 0x87, 0xb0, 0x01, 0xd2, 0x88, 0xb0, 0x01, 0xd3, 0x89, 0xb0, 0x01, 0xd4, + 0x8a, 0xb0, 0x01, 0xd5, 0x8b, 0xb0, 0x01, 0xd6, 0x8c, 0xb0, 0x01, 0xd7, + 0x8d, 0xb0, 0x01, 0x42, 0x77, 0x00, 0x8e, 0xb0, 0x41, 0xd1, 0x92, 0xb0, + 0x01, 0xd2, 0x93, 0xb0, 0x01, 0xd3, 0x94, 0xb0, 0x01, 0xd4, 0x95, 0xb0, + 0x01, 0xd5, 0x96, 0xb0, 0x01, 0xd6, 0x97, 0xb0, 0x01, 0x42, 0x4d, 0x03, + 0x98, 0xb0, 0x41, 0xd1, 0x7e, 0xb0, 0x01, 0xd2, 0x7f, 0xb0, 0x01, 0xd3, + 0x80, 0xb0, 0x01, 0xd4, 0x81, 0xb0, 0x01, 0xd5, 0x82, 0xb0, 0x01, 0xd6, + 0x83, 0xb0, 0x01, 0xd7, 0x84, 0xb0, 0x01, 0xd8, 0x85, 0xb0, 0x01, 0xd9, + 0x86, 0xb0, 0x41, 0xd1, 0x1d, 0xb1, 0x01, 0xd2, 0x1e, 0xb1, 0x41, 0x02, + 0x66, 0x2b, 0x63, 0x02, 0x08, 0x02, 0x51, 0x02, 0x1e, 0x37, 0x31, 0x02, + 0x08, 0x32, 0x15, 0x02, 0xbd, 0x39, 0x01, 0xff, 0xd1, 0xd0, 0xb0, 0x01, + 0xd2, 0xd1, 0xb0, 0x01, 0xd3, 0xd2, 0xb0, 0x01, 0xd4, 0xd3, 0xb0, 0x41, + 0xd1, 0xd7, 0xb0, 0x01, 0xd2, 0xd8, 0xb0, 0x01, 0xd3, 0xd9, 0xb0, 0x01, + 0xd4, 0xda, 0xb0, 0x01, 0xd5, 0xdb, 0xb0, 0x01, 0xd6, 0xdc, 0xb0, 0x41, + 0xd1, 0xc9, 0xb0, 0x01, 0xd2, 0xca, 0xb0, 0x01, 0xd3, 0xcb, 0xb0, 0x01, + 0xd4, 0xcc, 0xb0, 0x01, 0xd5, 0xcd, 0xb0, 0x01, 0xd6, 0xce, 0xb0, 0x01, + 0xd7, 0xcf, 0xb0, 0x41, 0xd1, 0xd4, 0xb0, 0x01, 0xd2, 0xd5, 0xb0, 0x01, + 0x42, 0x6c, 0x00, 0xd6, 0xb0, 0x41, 0xd1, 0xc2, 0xb0, 0x01, 0xd2, 0xc3, + 0xb0, 0x01, 0xd3, 0xc4, 0xb0, 0x01, 0xd4, 0xc5, 0xb0, 0x01, 0xd5, 0xc6, + 0xb0, 0x01, 0xd6, 0xc7, 0xb0, 0x01, 0xd7, 0xc8, 0xb0, 0x41, 0x02, 0x66, + 0x2b, 0x77, 0x02, 0x08, 0x02, 0x5b, 0x02, 0x1e, 0x37, 0x37, 0x02, 0x08, + 0x32, 0x21, 0x02, 0xbd, 0x39, 0x01, 0xff, 0xd1, 0x2b, 0xb0, 0x01, 0xd2, + 0x2c, 0xb0, 0x01, 0xd3, 0x2d, 0xb0, 0x01, 0xd4, 0x2e, 0xb0, 0x01, 0xd5, + 0x2f, 0xb0, 0x01, 0xd6, 0x30, 0xb0, 0x01, 0xd7, 0x31, 0xb0, 0x41, 0xd1, + 0x38, 0xb0, 0x01, 0xd2, 0x39, 0xb0, 0x01, 0xd3, 0x3a, 0xb0, 0x01, 0x42, + 0x45, 0x00, 0x3b, 0xb0, 0x41, 0xd1, 0x23, 0xb0, 0x01, 0xd2, 0x24, 0xb0, + 0x01, 0xd3, 0x25, 0xb0, 0x01, 0xd4, 0x26, 0xb0, 0x01, 0xd5, 0x27, 0xb0, + 0x01, 0xd6, 0x28, 0xb0, 0x01, 0xd7, 0x29, 0xb0, 0x01, 0xd8, 0x2a, 0xb0, + 0x41, 0xd1, 0x32, 0xb0, 0x01, 0xd2, 0x33, 0xb0, 0x01, 0xd3, 0x34, 0xb0, + 0x01, 0xd4, 0x35, 0xb0, 0x01, 0xd5, 0x36, 0xb0, 0x01, 0xd6, 0x37, 0xb0, + 0x41, 0xd1, 0x17, 0xb0, 0x81, 0x26, 0xd2, 0x18, 0xb0, 0x01, 0xd3, 0x19, + 0xb0, 0x01, 0xd4, 0x1a, 0xb0, 0x01, 0xd5, 0x1b, 0xb0, 0x01, 0xd6, 0x1c, + 0xb0, 0x01, 0xd7, 0x1d, 0xb0, 0x01, 0xd8, 0x1e, 0xb0, 0x01, 0xd9, 0x1f, + 0xb0, 0x01, 0x42, 0x37, 0x01, 0x22, 0xb0, 0x41, 0xd0, 0x20, 0xb0, 0x01, + 0xd1, 0x21, 0xb0, 0x41, 0xd1, 0x06, 0xb0, 0x01, 0xd2, 0x07, 0xb0, 0x01, + 0xd3, 0x08, 0xb0, 0x01, 0xd4, 0x09, 0xb0, 0x41, 0x02, 0x66, 0x2b, 0x75, + 0x02, 0x08, 0x02, 0x55, 0x02, 0x1e, 0x37, 0x35, 0x02, 0x08, 0x32, 0x11, + 0x02, 0xbd, 0x39, 0x01, 0xff, 0xd1, 0xb0, 0xb0, 0x01, 0xd2, 0xb1, 0xb0, + 0x01, 0xd3, 0xb2, 0xb0, 0x41, 0xd1, 0xba, 0xb0, 0x01, 0xd2, 0xbb, 0xb0, + 0x01, 0xd3, 0xbc, 0xb0, 0x01, 0xd4, 0xbd, 0xb0, 0x01, 0xd5, 0xbe, 0xb0, + 0x01, 0xd6, 0xbf, 0xb0, 0x01, 0xd7, 0xc0, 0xb0, 0x01, 0xd8, 0xc1, 0xb0, + 0x41, 0xd1, 0xa9, 0xb0, 0x01, 0xd2, 0xaa, 0xb0, 0x01, 0xd3, 0xab, 0xb0, + 0x01, 0xd4, 0xac, 0xb0, 0x01, 0xd5, 0xad, 0xb0, 0x01, 0xd6, 0xae, 0xb0, + 0x01, 0xd7, 0xaf, 0xb0, 0x41, 0xd1, 0xb3, 0xb0, 0x01, 0xd2, 0xb4, 0xb0, + 0x01, 0xd3, 0xb5, 0xb0, 0x01, 0xd4, 0xb6, 0xb0, 0x01, 0xd5, 0xb7, 0xb0, + 0x01, 0xd6, 0xb8, 0xb0, 0x01, 0xd7, 0xb9, 0xb0, 0x41, 0xd1, 0x9e, 0xb0, + 0x81, 0x20, 0xd2, 0x9f, 0xb0, 0x01, 0xd3, 0xa0, 0xb0, 0x01, 0xd4, 0xa1, + 0xb0, 0x01, 0xd5, 0xa2, 0xb0, 0x01, 0xd6, 0xa3, 0xb0, 0x01, 0xd7, 0xa4, + 0xb0, 0x01, 0xd8, 0xa5, 0xb0, 0x01, 0xd9, 0xa6, 0xb0, 0x41, 0xd0, 0xa7, + 0xb0, 0x01, 0xd1, 0xa8, 0xb0, 0x41, 0xd1, 0x01, 0xb0, 0x01, 0xd2, 0x0f, + 0xb0, 0x01, 0xd3, 0x10, 0xb0, 0x01, 0xd4, 0x11, 0xb0, 0x01, 0xd5, 0x12, + 0xb0, 0x01, 0xd6, 0x13, 0xb0, 0x41, 0xd1, 0x02, 0xb0, 0x01, 0xd2, 0x03, + 0xb0, 0x01, 0xd3, 0x04, 0xb0, 0x01, 0x42, 0x15, 0x02, 0x05, 0xb0, 0x41, + 0x47, 0xd3, 0xd1, 0x81, 0xf6, 0x01, 0x57, 0x9a, 0x2f, 0xff, 0x2b, 0x00, + 0xad, 0x01, 0xff, 0x47, 0x15, 0x08, 0x88, 0x23, 0x00, 0x53, 0x45, 0x49, + 0xd1, 0x26, 0x40, 0xe5, 0xc0, 0xce, 0x01, 0x04, 0x45, 0xf2, 0x01, 0xff, + 0x07, 0x1b, 0x23, 0x8a, 0x06, 0xac, 0xd0, 0x01, 0x05, 0xb9, 0x00, 0xb9, + 0x01, 0xb0, 0x06, 0x4c, 0x3b, 0x97, 0xef, 0x05, 0x40, 0x05, 0xc9, 0x17, + 0x2d, 0x0b, 0x6e, 0x16, 0x01, 0xff, 0x03, 0xdb, 0x09, 0x18, 0x45, 0x76, + 0xe8, 0xbe, 0x05, 0x00, 0x4b, 0x59, 0xa0, 0xc6, 0x05, 0x00, 0x45, 0xbb, + 0xe9, 0xc0, 0x05, 0x00, 0x49, 0x4e, 0xbf, 0xc3, 0x05, 0x40, 0x43, 0x93, + 0x5a, 0xf3, 0x05, 0x00, 0x46, 0xd4, 0xdf, 0xf4, 0x05, 0x40, 0x4f, 0xe5, + 0x6b, 0xbc, 0x05, 0x00, 0xa8, 0x4f, 0x54, 0xac, 0x43, 0x1e, 0xfb, 0x00, + 0x45, 0x99, 0xe8, 0xbd, 0x05, 0x00, 0x45, 0xe0, 0x8a, 0xb7, 0x05, 0x00, + 0xb1, 0x28, 0x44, 0x39, 0xf2, 0xbf, 0x05, 0x00, 0xb3, 0x06, 0x45, 0x8c, + 0xeb, 0xb5, 0x05, 0x40, 0x44, 0xca, 0xea, 0xb6, 0x05, 0x00, 0xa8, 0x06, + 0x46, 0x12, 0x4e, 0xc2, 0x05, 0x40, 0x43, 0x8f, 0x46, 0xb0, 0x05, 0x00, + 0x46, 0x12, 0x4e, 0xc1, 0x05, 0x40, 0x45, 0x57, 0xdf, 0xb8, 0x05, 0x80, + 0x06, 0x45, 0xb9, 0xeb, 0xbb, 0x05, 0x40, 0x46, 0x3c, 0xd8, 0xc7, 0x05, + 0x40, 0x05, 0x7f, 0xe4, 0x13, 0x44, 0x05, 0xe7, 0xb4, 0x05, 0x00, 0x44, + 0x14, 0xe7, 0xb9, 0x05, 0xc0, 0x00, 0x4e, 0x6f, 0x75, 0xba, 0x05, 0x40, + 0x45, 0xe0, 0x8a, 0xb2, 0x05, 0x00, 0x46, 0x56, 0xdf, 0xb3, 0x05, 0x00, + 0x45, 0xc9, 0xea, 0xb1, 0x05, 0x40, 0x49, 0xb8, 0xbb, 0xc5, 0x05, 0x00, + 0x4d, 0xaa, 0x85, 0xaf, 0x05, 0x00, 0x49, 0x65, 0xc0, 0xc4, 0x05, 0x40, + 0x06, 0xed, 0x05, 0x2c, 0x08, 0x9d, 0x1f, 0x01, 0xff, 0x4a, 0x95, 0xa7, + 0x4f, 0xfb, 0x00, 0x08, 0xe8, 0xcc, 0x01, 0xff, 0x07, 0x3b, 0x01, 0x0c, + 0x47, 0x28, 0xd7, 0xf1, 0x05, 0x00, 0x4d, 0xd8, 0x8a, 0x1f, 0xfb, 0x40, + 0x43, 0x79, 0x0f, 0xf0, 0x05, 0x00, 0x43, 0xa1, 0x52, 0xf2, 0x05, 0x40, + 0xa1, 0xcd, 0x03, 0x43, 0xc0, 0x09, 0xd1, 0x05, 0x80, 0xb4, 0x03, 0x45, + 0x23, 0x4a, 0xd3, 0x05, 0x80, 0xa6, 0x03, 0x06, 0xf5, 0x2c, 0xf5, 0x02, + 0x45, 0xdd, 0xaa, 0xd2, 0x05, 0x80, 0xe7, 0x02, 0x42, 0xb0, 0x01, 0xd4, + 0x05, 0x80, 0xd5, 0x02, 0x43, 0xa7, 0x51, 0xdb, 0x05, 0x80, 0xbc, 0x02, + 0x45, 0x9a, 0xa7, 0xdc, 0x05, 0x80, 0xae, 0x02, 0x43, 0xb4, 0x05, 0xde, + 0x05, 0x80, 0xa0, 0x02, 0x43, 0xdc, 0x22, 0xe0, 0x05, 0x80, 0x92, 0x02, + 0x42, 0x6f, 0x02, 0xe4, 0x05, 0x80, 0xf9, 0x01, 0x43, 0x91, 0xf4, 0xe7, + 0x05, 0x80, 0xeb, 0x01, 0x44, 0x76, 0x66, 0xe8, 0x05, 0x80, 0xdd, 0x01, + 0xb3, 0x9a, 0x01, 0xb4, 0x71, 0x43, 0x79, 0x0f, 0xd5, 0x05, 0x80, 0x59, + 0x05, 0x54, 0xec, 0x25, 0x43, 0xa1, 0x52, 0xd9, 0x05, 0x80, 0x0d, 0x45, + 0x9b, 0x52, 0xd6, 0x05, 0xc0, 0x00, 0x4c, 0x8f, 0x8b, 0x36, 0xfb, 0x40, + 0x06, 0x50, 0x00, 0x01, 0xff, 0x46, 0xe5, 0x6b, 0x39, 0xfb, 0x00, 0x45, + 0x04, 0xe7, 0x1d, 0xfb, 0x40, 0x44, 0x67, 0x00, 0x21, 0xfb, 0x00, 0x45, + 0x23, 0x4a, 0x22, 0xfb, 0x00, 0x49, 0xdf, 0xb8, 0x26, 0xfb, 0x00, 0x42, + 0xb0, 0x01, 0x23, 0xfb, 0x00, 0x43, 0xa7, 0x51, 0x24, 0xfb, 0x00, 0x45, + 0x9a, 0xa7, 0x25, 0xfb, 0x00, 0x44, 0x76, 0x66, 0x27, 0xfb, 0x00, 0x43, + 0x1f, 0x2a, 0x28, 0xfb, 0x40, 0x06, 0x50, 0x00, 0x01, 0xff, 0x46, 0xe5, + 0x6b, 0x35, 0xfb, 0x00, 0x45, 0x13, 0xe7, 0x4b, 0xfb, 0x40, 0x42, 0x2f, + 0x08, 0xea, 0x05, 0x80, 0x1a, 0x42, 0xed, 0x05, 0xd8, 0x05, 0x80, 0x0d, + 0x44, 0x83, 0xeb, 0xe6, 0x05, 0xc0, 0x00, 0x4c, 0x8f, 0x8b, 0x46, 0xfb, + 0x40, 0x4c, 0x8f, 0x8b, 0x38, 0xfb, 0x40, 0x4c, 0x8f, 0x8b, 0x4a, 0xfb, + 0x40, 0x45, 0x48, 0xe4, 0xe1, 0x05, 0x80, 0x33, 0x43, 0x7a, 0x16, 0xe9, + 0x05, 0xc0, 0x00, 0x06, 0x50, 0x00, 0x01, 0xff, 0x46, 0xe5, 0x6b, 0x49, + 0xfb, 0x80, 0x0f, 0xb3, 0x01, 0xff, 0x47, 0x11, 0x4e, 0x2a, 0xfb, 0x00, + 0x46, 0x12, 0x4e, 0x2b, 0xfb, 0x40, 0x06, 0xd9, 0x13, 0x01, 0xff, 0x47, + 0x11, 0x4e, 0x2c, 0xfb, 0x00, 0x46, 0x12, 0x4e, 0x2d, 0xfb, 0x40, 0x4c, + 0x8f, 0x8b, 0x41, 0xfb, 0x40, 0x4c, 0x8f, 0x8b, 0x48, 0xfb, 0x40, 0x4c, + 0x8f, 0x8b, 0x47, 0xfb, 0x40, 0x06, 0x50, 0x00, 0x01, 0xff, 0x46, 0xe5, + 0x6b, 0x44, 0xfb, 0x00, 0x44, 0x39, 0xf2, 0x4e, 0xfb, 0x40, 0x4c, 0x8f, + 0x8b, 0x40, 0xfb, 0x40, 0x4c, 0x8f, 0x8b, 0x3e, 0xfb, 0x40, 0x4c, 0x8f, + 0x8b, 0x3c, 0xfb, 0x40, 0x06, 0x50, 0x00, 0x01, 0xff, 0x46, 0xe5, 0x6b, + 0x3b, 0xfb, 0x00, 0x44, 0x39, 0xf2, 0x4d, 0xfb, 0x40, 0x4b, 0x24, 0x98, + 0x34, 0xfb, 0x00, 0xf4, 0xd7, 0x05, 0x40, 0x4c, 0x8f, 0x8b, 0x32, 0xfb, + 0x40, 0x43, 0xa7, 0x51, 0xda, 0x05, 0x80, 0x1f, 0x43, 0xb4, 0x05, 0xdd, + 0x05, 0x00, 0x43, 0xdc, 0x22, 0xdf, 0x05, 0x00, 0x42, 0x6f, 0x02, 0xe3, + 0x05, 0x80, 0x06, 0x45, 0x82, 0xeb, 0xe5, 0x05, 0x40, 0x4c, 0x8f, 0x8b, + 0x43, 0xfb, 0x40, 0x4c, 0x8f, 0x8b, 0x3a, 0xfb, 0x40, 0x4c, 0x8f, 0x8b, + 0x33, 0xfb, 0x40, 0x06, 0x50, 0x00, 0x01, 0xff, 0x46, 0xe5, 0x6b, 0x31, + 0xfb, 0x00, 0x44, 0x39, 0xf2, 0x4c, 0xfb, 0x40, 0xac, 0x06, 0x43, 0x7e, + 0x1a, 0xe2, 0x05, 0x40, 0x42, 0x69, 0x00, 0xd0, 0x05, 0x80, 0x11, 0x0a, + 0xbd, 0xb1, 0x01, 0xff, 0x44, 0x1e, 0x4a, 0x20, 0xfb, 0x00, 0x49, 0xdf, + 0x71, 0x29, 0xfb, 0x40, 0x06, 0x50, 0x00, 0x01, 0xff, 0x45, 0xef, 0x6b, + 0x30, 0xfb, 0x00, 0x45, 0xe0, 0x8a, 0x2e, 0xfb, 0x00, 0x46, 0x56, 0xdf, + 0x2f, 0xfb, 0x40, 0x4c, 0x73, 0x8c, 0xa2, 0x05, 0x00, 0xa4, 0xcb, 0x01, + 0x47, 0xf3, 0xd0, 0x91, 0x05, 0x00, 0x03, 0xdb, 0x09, 0xad, 0x01, 0x44, + 0x8d, 0xf0, 0xac, 0x05, 0x00, 0xad, 0x8b, 0x01, 0x43, 0xda, 0x15, 0xab, + 0x05, 0x00, 0x02, 0xbb, 0x09, 0x75, 0x02, 0x43, 0x14, 0x65, 0x45, 0x0e, + 0x50, 0x97, 0x05, 0x00, 0xb3, 0x51, 0xb4, 0x31, 0x02, 0x4d, 0x00, 0x21, + 0xba, 0x01, 0xff, 0xa1, 0x06, 0x44, 0x95, 0xf0, 0xae, 0x05, 0x40, 0x04, + 0x2d, 0xf2, 0x06, 0x43, 0x42, 0x14, 0x98, 0x05, 0x40, 0x45, 0x82, 0xe6, + 0x95, 0x05, 0x00, 0x45, 0x3d, 0xd8, 0x94, 0x05, 0x40, 0x4c, 0x17, 0x94, + 0xaa, 0x05, 0x00, 0x43, 0xd1, 0x05, 0x9a, 0x05, 0x40, 0xa5, 0x06, 0x45, + 0x86, 0xe7, 0x96, 0x05, 0x40, 0x06, 0xbe, 0xdd, 0x06, 0x43, 0xe3, 0x23, + 0x9b, 0x05, 0x40, 0x46, 0xf0, 0xdb, 0xa0, 0x05, 0x00, 0x46, 0x5c, 0xdf, + 0xa9, 0x05, 0x40, 0x44, 0xca, 0xea, 0x92, 0x05, 0x00, 0x49, 0x6f, 0xb9, + 0x93, 0x05, 0x40, 0x43, 0xad, 0xb5, 0xa8, 0x05, 0x00, 0x49, 0xc7, 0xbe, + 0x9f, 0x05, 0x40, 0x44, 0xa1, 0xf2, 0x99, 0x05, 0x00, 0x43, 0x43, 0x1e, + 0xa1, 0x05, 0x40, 0x47, 0xa0, 0xce, 0xa4, 0x05, 0x00, 0x45, 0x19, 0xe6, + 0xa5, 0x05, 0x80, 0x06, 0x44, 0x9e, 0xce, 0xa3, 0x05, 0x40, 0x47, 0x3b, + 0xcd, 0xa6, 0x05, 0x40, 0x43, 0x93, 0x5a, 0x9c, 0x05, 0x80, 0x06, 0x46, + 0xd4, 0xdf, 0x9e, 0x05, 0x40, 0x47, 0x65, 0xcd, 0x9d, 0x05, 0x40, 0x44, + 0xed, 0x4b, 0xa7, 0x05, 0x00, 0x43, 0x38, 0x52, 0xad, 0x05, 0x40, 0xa4, + 0xdb, 0x06, 0xb2, 0xaa, 0x06, 0x03, 0x70, 0x15, 0x01, 0xff, 0xa1, 0xf6, + 0x05, 0xa2, 0xb9, 0x05, 0xa3, 0x83, 0x05, 0xa4, 0xca, 0x04, 0xa5, 0x8a, + 0x04, 0xa6, 0xf1, 0x03, 0x4b, 0x1b, 0x61, 0x1a, 0x27, 0x00, 0xa8, 0xdc, + 0x03, 0x54, 0x1f, 0x16, 0x79, 0xf6, 0x01, 0xac, 0x81, 0x03, 0xad, 0xf2, + 0x02, 0x06, 0xb4, 0x01, 0xc1, 0x02, 0xaf, 0xac, 0x02, 0x49, 0xdf, 0x71, + 0x95, 0x27, 0x00, 0xb2, 0xf1, 0x01, 0xb3, 0x81, 0x01, 0xb4, 0x4d, 0x02, + 0x50, 0x02, 0x32, 0x4c, 0x32, 0x00, 0x5a, 0x27, 0x00, 0xb7, 0x01, 0xff, + 0x5c, 0x8a, 0x17, 0xbd, 0x27, 0x00, 0x05, 0xae, 0x02, 0x06, 0x5b, 0xd6, + 0x1b, 0x94, 0x27, 0x40, 0x46, 0x12, 0x03, 0x87, 0xf7, 0x01, 0x56, 0xc1, + 0x33, 0xdb, 0x26, 0x00, 0x46, 0xd6, 0x05, 0x91, 0xf7, 0xc1, 0x00, 0x63, + 0x6f, 0x0a, 0x05, 0xce, 0x41, 0x69, 0x9a, 0x02, 0xae, 0x27, 0x00, 0x11, + 0x38, 0x0c, 0x01, 0xff, 0x55, 0xd5, 0x01, 0x19, 0xf8, 0x01, 0x5b, 0x27, + 0x1c, 0x1d, 0xf8, 0x41, 0x09, 0x23, 0x0d, 0x17, 0x5f, 0x94, 0x06, 0x9e, + 0x27, 0x00, 0x0e, 0xe6, 0x2b, 0x01, 0xff, 0x4a, 0xf4, 0x2b, 0xd3, 0xf7, + 0x01, 0x4d, 0x28, 0x13, 0xd4, 0xf7, 0x41, 0x57, 0x9d, 0x2e, 0xbb, 0x27, + 0x00, 0x06, 0x2c, 0x0d, 0x01, 0xff, 0x48, 0x3c, 0x0d, 0x3d, 0x27, 0x00, + 0x51, 0x2c, 0x5d, 0x43, 0x27, 0x40, 0xa1, 0x5f, 0x5a, 0x96, 0x1f, 0x71, + 0xf6, 0x01, 0xa9, 0x36, 0x05, 0xa2, 0x20, 0x06, 0x46, 0xdf, 0xb4, 0x48, + 0x27, 0x40, 0x05, 0xad, 0x23, 0x11, 0x0e, 0x83, 0x56, 0x01, 0xff, 0x43, + 0x7a, 0xd0, 0x65, 0xf6, 0x01, 0x49, 0x10, 0xc1, 0x5d, 0xf6, 0x41, 0x45, + 0xce, 0x00, 0x98, 0x27, 0x00, 0x09, 0x9c, 0x01, 0x01, 0xff, 0x43, 0x7a, + 0xd0, 0x67, 0xf6, 0x01, 0x49, 0x10, 0xc1, 0x5f, 0xf6, 0x41, 0x05, 0x32, + 0x06, 0x11, 0x02, 0xd8, 0x04, 0x01, 0xff, 0x52, 0xec, 0x2b, 0xcc, 0xf7, + 0x01, 0x4f, 0xd5, 0x1c, 0xb8, 0xf7, 0x41, 0x5d, 0x13, 0x05, 0x5c, 0x27, + 0x00, 0x64, 0x27, 0x0a, 0x5b, 0x27, 0x40, 0x45, 0x14, 0x19, 0xac, 0xf7, + 0x01, 0x5d, 0x16, 0x16, 0x7b, 0xf6, 0x41, 0x04, 0xc9, 0x00, 0x06, 0x5c, + 0xda, 0x18, 0x9c, 0x27, 0x40, 0x10, 0x8c, 0x0b, 0x18, 0x4b, 0xb8, 0x02, + 0x99, 0x27, 0xc0, 0x00, 0x06, 0x50, 0x00, 0x01, 0xff, 0x55, 0xd5, 0x01, + 0x1a, 0xf8, 0x01, 0x5b, 0x27, 0x1c, 0x1e, 0xf8, 0x41, 0x50, 0x63, 0x09, + 0x71, 0x27, 0x00, 0x57, 0x19, 0x05, 0x6f, 0x27, 0x40, 0x50, 0xb6, 0x65, + 0x1c, 0x27, 0x00, 0x52, 0x4d, 0x56, 0x2e, 0x27, 0x00, 0x54, 0x90, 0x46, + 0x56, 0x2b, 0x40, 0x05, 0xad, 0x23, 0x11, 0x0e, 0x83, 0x56, 0x01, 0xff, + 0x43, 0x7a, 0xd0, 0x64, 0xf6, 0x01, 0x49, 0x10, 0xc1, 0x5c, 0xf6, 0x41, + 0x45, 0xce, 0x00, 0x9a, 0x27, 0x00, 0x09, 0x9c, 0x01, 0x01, 0xff, 0x43, + 0x7a, 0xd0, 0x66, 0xf6, 0x01, 0x49, 0x10, 0xc1, 0x5e, 0xf6, 0x41, 0x49, + 0x68, 0x98, 0x96, 0x27, 0x00, 0x4f, 0x46, 0x74, 0x16, 0x27, 0x40, 0xa1, + 0x44, 0x03, 0xc4, 0x00, 0x1f, 0x58, 0x16, 0x29, 0x73, 0xf6, 0x01, 0x02, + 0xd1, 0x00, 0x01, 0xff, 0x80, 0x06, 0x68, 0x9b, 0x02, 0xad, 0x27, 0x40, + 0x64, 0x0c, 0x05, 0x60, 0x27, 0x00, 0x64, 0xdf, 0x09, 0x5f, 0x27, 0x40, + 0x10, 0x8c, 0x0b, 0x11, 0x11, 0x38, 0x0c, 0x01, 0xff, 0x55, 0xd5, 0x01, + 0x18, 0xf8, 0x01, 0x5b, 0x27, 0x1c, 0x1c, 0xf8, 0x41, 0x50, 0x63, 0x09, + 0x70, 0x27, 0x00, 0x57, 0x19, 0x05, 0x6e, 0x27, 0x40, 0x4a, 0x2d, 0xb0, + 0x55, 0x2b, 0x00, 0x49, 0x4b, 0x9e, 0x47, 0xf5, 0x41, 0x5e, 0xdb, 0x12, + 0x63, 0x27, 0x00, 0x4e, 0x20, 0x6e, 0x97, 0xfb, 0x41, 0x04, 0xd2, 0x05, + 0x06, 0x5b, 0xc9, 0x1c, 0x24, 0x27, 0x40, 0x52, 0xec, 0x2b, 0xca, 0xf7, + 0x01, 0x4f, 0xd5, 0x1c, 0xb2, 0xf7, 0x41, 0x05, 0xc9, 0x00, 0x17, 0x4a, + 0x49, 0x13, 0xf0, 0xf7, 0x01, 0x10, 0xae, 0x00, 0x01, 0xff, 0x48, 0x28, + 0x05, 0x62, 0x27, 0x00, 0x46, 0x16, 0x08, 0x57, 0x27, 0x40, 0x08, 0x33, + 0x08, 0x0c, 0x4f, 0xd5, 0x1c, 0xbe, 0xf7, 0x01, 0x62, 0x22, 0x0d, 0x4b, + 0x27, 0x40, 0x4a, 0xf4, 0x2b, 0xcf, 0xf7, 0x01, 0x4d, 0x28, 0x13, 0xd1, + 0xf7, 0x01, 0x56, 0xad, 0x36, 0x38, 0x27, 0x40, 0x66, 0x8d, 0x06, 0xa0, + 0x27, 0x00, 0x4c, 0xc3, 0x32, 0x97, 0x27, 0x00, 0xaf, 0x01, 0xff, 0x49, + 0x2c, 0x0e, 0xb2, 0xf4, 0x01, 0x05, 0x3d, 0x01, 0x11, 0x13, 0x36, 0x0c, + 0x01, 0xff, 0x55, 0xd5, 0x01, 0x1b, 0xf8, 0x01, 0x5b, 0x27, 0x1c, 0x1f, + 0xf8, 0x41, 0x5d, 0x13, 0x05, 0x5e, 0x27, 0x00, 0x64, 0x27, 0x0a, 0x5d, + 0x27, 0x40, 0x02, 0xb0, 0x01, 0x23, 0x45, 0x13, 0x03, 0x58, 0x2b, 0x80, + 0x06, 0x65, 0x2c, 0x08, 0xa8, 0x27, 0x40, 0x06, 0x50, 0x00, 0x06, 0x49, + 0x9b, 0xb7, 0x59, 0x2b, 0x40, 0x4d, 0x73, 0x81, 0x57, 0x2b, 0x00, 0x59, + 0x5a, 0x26, 0xe3, 0x26, 0x40, 0x47, 0xff, 0x07, 0x14, 0x27, 0x00, 0x4e, + 0x9f, 0x7e, 0x46, 0x27, 0x40, 0x47, 0xae, 0xce, 0x18, 0x27, 0x00, 0x04, + 0x0d, 0x03, 0x01, 0xff, 0x80, 0x17, 0x0b, 0x0b, 0x1a, 0x01, 0xff, 0x50, + 0xa7, 0x23, 0xb9, 0x27, 0x00, 0x50, 0xb3, 0x02, 0xb8, 0x27, 0x00, 0x50, + 0x7c, 0x40, 0xb7, 0x27, 0x40, 0x07, 0x68, 0x41, 0x06, 0x45, 0xac, 0x21, + 0x64, 0x27, 0x40, 0x5e, 0xbd, 0x12, 0xa5, 0x27, 0x00, 0x5c, 0x9e, 0x19, + 0xa6, 0x27, 0x40, 0x51, 0x13, 0x3e, 0x74, 0xf6, 0x01, 0x11, 0x30, 0x50, + 0x06, 0x47, 0x3d, 0x0d, 0x31, 0x27, 0x40, 0x43, 0x0e, 0x0b, 0x9c, 0xf8, + 0x81, 0x06, 0x4a, 0x53, 0xb2, 0x9d, 0xf8, 0x41, 0x80, 0x01, 0xff, 0x44, + 0x22, 0x00, 0x9e, 0xf8, 0x01, 0x45, 0xee, 0x74, 0x9f, 0xf8, 0x41, 0x4f, + 0x32, 0x6a, 0x49, 0xf6, 0x01, 0x02, 0xc6, 0x00, 0x01, 0xff, 0x4a, 0x5f, + 0x97, 0x9f, 0xf4, 0x01, 0x45, 0x7b, 0x0e, 0xf6, 0xfa, 0x01, 0x05, 0x51, + 0x00, 0x01, 0xff, 0x45, 0xce, 0x00, 0x98, 0xf4, 0x01, 0x46, 0xff, 0x85, + 0x9d, 0xf4, 0x01, 0x4f, 0xce, 0x73, 0x94, 0xf3, 0x41, 0x45, 0x1a, 0x3d, + 0xa7, 0xf3, 0x01, 0x45, 0x9c, 0xba, 0xa6, 0xfa, 0xc1, 0x00, 0x51, 0xff, + 0x56, 0xfc, 0x26, 0x40, 0x43, 0xf6, 0x27, 0xe1, 0x2b, 0x00, 0x02, 0x46, + 0x00, 0x9a, 0x24, 0x08, 0xc8, 0xc7, 0xe1, 0x1e, 0xad, 0xad, 0x1e, 0xae, + 0xd8, 0x01, 0x5b, 0x1a, 0x1d, 0x4b, 0xf6, 0x01, 0xb2, 0xc5, 0x01, 0xb4, + 0x06, 0x44, 0x7d, 0xa9, 0x7b, 0xf7, 0x41, 0x4b, 0x1e, 0x9a, 0x23, 0xf4, + 0x01, 0x04, 0x3e, 0xd2, 0x01, 0xff, 0x07, 0xec, 0x05, 0x27, 0x07, 0xff, + 0x39, 0x01, 0xff, 0x44, 0x80, 0x11, 0xfc, 0x08, 0x01, 0x43, 0x0e, 0x0b, + 0xfb, 0x08, 0x81, 0x0f, 0xb4, 0x01, 0xff, 0x42, 0x92, 0x01, 0xfd, 0x08, + 0x01, 0x45, 0x7f, 0x2c, 0xfe, 0x08, 0x41, 0x48, 0x70, 0x11, 0xff, 0x08, + 0x41, 0xa1, 0x79, 0x44, 0x41, 0xef, 0xe1, 0x08, 0x01, 0x4b, 0xb8, 0x9a, + 0xe3, 0x08, 0x01, 0x45, 0xdd, 0xaa, 0xe2, 0x08, 0x01, 0x42, 0xb0, 0x01, + 0xe4, 0x08, 0x81, 0x5a, 0x44, 0xcd, 0xf0, 0xea, 0x08, 0x01, 0x46, 0x94, + 0xdd, 0xeb, 0x08, 0x01, 0x43, 0xb4, 0x05, 0xec, 0x08, 0x01, 0x43, 0xdc, + 0x22, 0xed, 0x08, 0x01, 0x42, 0x6f, 0x02, 0xf0, 0x08, 0x01, 0x44, 0x4c, + 0xc8, 0xf2, 0x08, 0x01, 0xb3, 0x20, 0xb4, 0x12, 0x43, 0x8a, 0x8a, 0xe5, + 0x08, 0x01, 0x44, 0xa1, 0x52, 0xe9, 0x08, 0x01, 0x44, 0x59, 0xf3, 0xe6, + 0x08, 0x41, 0x42, 0xb7, 0x2d, 0xf5, 0x08, 0x01, 0x43, 0xda, 0x25, 0xe8, + 0x08, 0x41, 0xa1, 0x06, 0x43, 0x7a, 0x16, 0xf4, 0x08, 0x41, 0x43, 0xad, + 0xea, 0xf1, 0x08, 0x01, 0x44, 0x49, 0xe4, 0xee, 0x08, 0x41, 0x42, 0x53, + 0x00, 0xe7, 0x08, 0x41, 0x44, 0x18, 0x3d, 0xe0, 0x08, 0x01, 0x42, 0x03, + 0x1d, 0xef, 0x08, 0x41, 0x46, 0xd0, 0xda, 0xb4, 0xf5, 0x01, 0xf0, 0x89, + 0xfa, 0x41, 0xa4, 0xab, 0x1c, 0xa7, 0xce, 0x03, 0x0d, 0xfd, 0x83, 0x82, + 0x01, 0x05, 0xe1, 0xeb, 0x01, 0xff, 0x07, 0xec, 0x05, 0x13, 0x4d, 0xb6, + 0x88, 0x34, 0x17, 0x00, 0x0b, 0x40, 0x77, 0x01, 0xff, 0xe9, 0x32, 0x17, + 0x00, 0xf5, 0x33, 0x17, 0x40, 0xe1, 0x20, 0x17, 0x00, 0x42, 0x16, 0x00, + 0x2a, 0x17, 0x00, 0x42, 0xf0, 0x10, 0x27, 0x17, 0x00, 0x42, 0x24, 0x02, + 0x24, 0x17, 0x00, 0x42, 0x22, 0x00, 0x31, 0x17, 0x00, 0xe9, 0x21, 0x17, + 0x00, 0x42, 0x1b, 0x02, 0x23, 0x17, 0x00, 0x42, 0x74, 0x00, 0x2e, 0x17, + 0x00, 0x42, 0x6c, 0x00, 0x2b, 0x17, 0x00, 0xae, 0x28, 0x42, 0xbb, 0x09, + 0x29, 0x17, 0x00, 0x42, 0x71, 0x00, 0x2d, 0x17, 0x00, 0x42, 0x40, 0x06, + 0x30, 0x17, 0x00, 0x42, 0x12, 0x00, 0x26, 0x17, 0x00, 0xf5, 0x22, 0x17, + 0x00, 0x42, 0xa9, 0x01, 0x2f, 0x17, 0x00, 0x42, 0xbc, 0x22, 0x2c, 0x17, + 0x40, 0xe1, 0x28, 0x17, 0x00, 0x42, 0x24, 0x02, 0x25, 0x17, 0x40, 0x06, + 0xef, 0x06, 0x80, 0x02, 0x07, 0xec, 0x05, 0x4a, 0x05, 0xb9, 0x00, 0x3a, + 0x05, 0x5a, 0x03, 0x19, 0x06, 0x3c, 0x39, 0x01, 0xff, 0xe1, 0x1d, 0x0d, + 0x01, 0xe5, 0x20, 0x0d, 0x01, 0xe9, 0x1e, 0x0d, 0x01, 0xef, 0x21, 0x0d, + 0x01, 0xf5, 0x1f, 0x0d, 0x41, 0x48, 0xa0, 0xc6, 0x24, 0x0d, 0x01, 0x02, + 0x12, 0x00, 0x01, 0xff, 0x44, 0xd2, 0x7c, 0x25, 0x0d, 0x01, 0x42, 0x2a, + 0x05, 0x26, 0x0d, 0x01, 0x43, 0x8a, 0x08, 0x27, 0x0d, 0x41, 0x49, 0x24, + 0xbc, 0x23, 0x0d, 0x01, 0x45, 0xb0, 0xea, 0x22, 0x0d, 0x41, 0xe1, 0x00, + 0x0d, 0x01, 0x42, 0x16, 0x00, 0x01, 0x0d, 0x01, 0x42, 0x37, 0x00, 0x06, + 0x0d, 0x01, 0xa4, 0x95, 0x01, 0x42, 0x0c, 0x08, 0x09, 0x0d, 0x01, 0x42, + 0x24, 0x02, 0x12, 0x0d, 0x01, 0x42, 0x22, 0x00, 0x07, 0x0d, 0x01, 0x42, + 0x56, 0x19, 0x05, 0x0d, 0x01, 0xab, 0x60, 0x42, 0x74, 0x00, 0x13, 0x0d, + 0x01, 0x42, 0x6c, 0x00, 0x14, 0x0d, 0x01, 0xae, 0x42, 0x42, 0xbb, 0x09, + 0x02, 0x0d, 0x01, 0xb2, 0x30, 0xb3, 0x24, 0xb4, 0x18, 0x42, 0xf5, 0x0a, + 0x1c, 0x0d, 0x01, 0x42, 0xa9, 0x01, 0x16, 0x0d, 0x01, 0x42, 0xbc, 0x22, + 0x18, 0x0d, 0x01, 0x42, 0x59, 0x00, 0x0e, 0x0d, 0x41, 0xe1, 0x03, 0x0d, + 0x01, 0x42, 0x12, 0x00, 0x04, 0x0d, 0x41, 0xe1, 0x0f, 0x0d, 0x01, 0x42, + 0x22, 0x00, 0x10, 0x0d, 0x41, 0xe1, 0x0c, 0x0d, 0x01, 0x42, 0x71, 0x00, + 0x0d, 0x0d, 0x41, 0xe1, 0x15, 0x0d, 0x01, 0x42, 0x24, 0x02, 0x1a, 0x0d, + 0x01, 0x42, 0xbc, 0x22, 0x1b, 0x0d, 0x41, 0xe1, 0x11, 0x0d, 0x01, 0x42, + 0x22, 0x00, 0x08, 0x0d, 0x01, 0x05, 0x7c, 0xe7, 0x01, 0xff, 0x42, 0xa9, + 0x01, 0x17, 0x0d, 0x01, 0x42, 0xbc, 0x22, 0x19, 0x0d, 0x41, 0xe1, 0x0a, + 0x0d, 0x01, 0x42, 0xf0, 0x10, 0x0b, 0x0d, 0x41, 0x45, 0x12, 0x0b, 0x38, + 0x0d, 0x01, 0xa6, 0x2e, 0x44, 0xcf, 0x2a, 0x39, 0x0d, 0x01, 0x43, 0x0e, + 0x0b, 0x31, 0x0d, 0x01, 0xb3, 0x14, 0xb4, 0x06, 0x44, 0x43, 0x1e, 0x30, + 0x0d, 0x41, 0x44, 0x25, 0x01, 0x33, 0x0d, 0x01, 0x42, 0x15, 0x02, 0x32, + 0x0d, 0x41, 0x44, 0xc9, 0x1d, 0x37, 0x0d, 0x01, 0x42, 0x01, 0x26, 0x36, + 0x0d, 0x41, 0x43, 0xd2, 0x05, 0x35, 0x0d, 0x01, 0x43, 0xf6, 0x06, 0x34, + 0x0d, 0x41, 0x03, 0x89, 0x55, 0x57, 0x0d, 0xf2, 0x8a, 0x01, 0xff, 0x45, + 0x12, 0x0b, 0x28, 0x30, 0x00, 0xa6, 0x3e, 0x44, 0xcf, 0x2a, 0x29, 0x30, + 0x00, 0x43, 0x0e, 0x0b, 0x21, 0x30, 0x00, 0xb3, 0x24, 0xb4, 0x01, 0xff, + 0x42, 0x92, 0x01, 0x38, 0x30, 0x00, 0xa8, 0x0d, 0xb7, 0x01, 0xff, 0x44, + 0xcb, 0x1d, 0x39, 0x30, 0x00, 0xef, 0x22, 0x30, 0x40, 0x44, 0x7b, 0x11, + 0x3a, 0x30, 0x00, 0x43, 0x26, 0x01, 0x23, 0x30, 0x40, 0x44, 0xc9, 0x1d, + 0x27, 0x30, 0x00, 0x42, 0x01, 0x26, 0x26, 0x30, 0x40, 0x43, 0xd2, 0x05, + 0x25, 0x30, 0x00, 0x43, 0xf6, 0x06, 0x24, 0x30, 0x40, 0x09, 0x38, 0xb7, + 0xf4, 0x10, 0x54, 0xb8, 0x41, 0x2f, 0x30, 0x00, 0x46, 0xa7, 0x82, 0x64, + 0x31, 0x00, 0xaa, 0xef, 0x04, 0x07, 0xec, 0x05, 0x0f, 0xb3, 0x01, 0xff, + 0x53, 0x75, 0x4a, 0x2e, 0x30, 0x00, 0x48, 0x1b, 0x18, 0x00, 0xd8, 0x40, + 0xe1, 0x4f, 0x31, 0x80, 0xc7, 0x04, 0xa3, 0xb8, 0x04, 0xe5, 0x54, 0x31, + 0x80, 0xaa, 0x04, 0x45, 0x71, 0xa5, 0x4e, 0x31, 0x00, 0xe9, 0x63, 0x31, + 0x80, 0x98, 0x04, 0xab, 0xe4, 0x03, 0x45, 0xa8, 0xe8, 0x41, 0x31, 0x80, + 0xc5, 0x03, 0x45, 0x1b, 0xe9, 0x34, 0x31, 0x80, 0x9c, 0x03, 0xef, 0x57, + 0x31, 0x80, 0x92, 0x03, 0xb0, 0xc8, 0x02, 0x45, 0x65, 0xea, 0x39, 0x31, + 0x80, 0xef, 0x01, 0xb3, 0x8f, 0x01, 0xb4, 0x80, 0x01, 0xf5, 0x5c, 0x31, + 0x00, 0xb7, 0x64, 0xb9, 0x01, 0xff, 0xe1, 0x51, 0x31, 0x80, 0x58, 0xe5, + 0x56, 0x31, 0x80, 0x32, 0xe9, 0x62, 0x31, 0x00, 0xef, 0x5b, 0x31, 0x80, + 0x17, 0xf5, 0x60, 0x31, 0xc0, 0x00, 0x8d, 0x01, 0xff, 0xe9, 0x8c, 0x31, + 0x00, 0x42, 0x4d, 0x00, 0x8b, 0x31, 0xc0, 0x00, 0xef, 0x8a, 0x31, 0x40, + 0x8d, 0x01, 0xff, 0xe9, 0x89, 0x31, 0x00, 0x42, 0xbc, 0x22, 0x87, 0x31, + 0xc0, 0x00, 0xe5, 0x88, 0x31, 0x40, 0xef, 0x55, 0x31, 0x80, 0x16, 0x46, + 0xe2, 0xcc, 0x81, 0x31, 0xc0, 0x00, 0x8d, 0x01, 0xff, 0x47, 0x81, 0xd4, + 0x83, 0x31, 0x00, 0x44, 0x65, 0xbf, 0x82, 0x31, 0x40, 0x48, 0x6e, 0xa5, + 0x86, 0x31, 0x40, 0xe5, 0x52, 0x31, 0x40, 0xe1, 0x58, 0x31, 0x80, 0x0d, + 0xe5, 0x5e, 0x31, 0x80, 0x04, 0xe9, 0x5f, 0x31, 0x40, 0xef, 0x5d, 0x31, + 0x40, 0xe5, 0x59, 0x31, 0x40, 0x46, 0x57, 0xd6, 0x4c, 0x31, 0x00, 0x45, + 0xe5, 0xcd, 0x37, 0x31, 0x40, 0x43, 0x23, 0x42, 0x45, 0x31, 0x80, 0x35, + 0x04, 0x2c, 0x2d, 0x01, 0xff, 0x45, 0x42, 0xe5, 0x49, 0x31, 0x00, 0x45, + 0x71, 0xa5, 0x85, 0x31, 0x00, 0x45, 0x1e, 0xcc, 0x80, 0x31, 0x00, 0x46, + 0xdc, 0xa2, 0x32, 0x31, 0x00, 0x45, 0x1b, 0xe9, 0x65, 0x31, 0x00, 0x45, + 0xe2, 0x84, 0x43, 0x31, 0x00, 0x44, 0x65, 0xbf, 0x46, 0x31, 0x00, 0x46, + 0xe4, 0xcd, 0x38, 0x31, 0x40, 0x8d, 0x01, 0xff, 0x45, 0x42, 0xe5, 0x7e, + 0x31, 0x00, 0x46, 0xdc, 0xa2, 0x7a, 0x31, 0x00, 0x45, 0x1b, 0xe9, 0x7b, + 0x31, 0x00, 0x45, 0xe2, 0x84, 0x7d, 0x31, 0x00, 0x46, 0xe4, 0xcd, 0x7c, + 0x31, 0x40, 0x8d, 0x01, 0xff, 0x45, 0x71, 0xa5, 0x40, 0x31, 0x00, 0x46, + 0xdc, 0xa2, 0x3a, 0x31, 0x80, 0x3b, 0x45, 0xa8, 0xe8, 0x3b, 0x31, 0x00, + 0xb0, 0x1a, 0x44, 0x65, 0xbf, 0x3d, 0x31, 0x00, 0xb4, 0x06, 0x4b, 0x6b, + 0xa5, 0x6d, 0x31, 0x40, 0x46, 0x57, 0xd6, 0x3e, 0x31, 0x00, 0x45, 0xe5, + 0xcd, 0x6a, 0x31, 0x40, 0x46, 0x82, 0xd4, 0x6c, 0x31, 0x00, 0x46, 0xd2, + 0xc2, 0x3f, 0x31, 0x00, 0x44, 0xe3, 0x84, 0x3c, 0x31, 0xc0, 0x00, 0x45, + 0xf5, 0xe1, 0x6b, 0x31, 0x40, 0x45, 0xf5, 0xe1, 0x69, 0x31, 0x40, 0x46, + 0x82, 0xd4, 0x7f, 0x31, 0x00, 0x46, 0xd2, 0xc2, 0x4d, 0x31, 0x00, 0x44, + 0xe3, 0x84, 0x42, 0x31, 0xc0, 0x00, 0x8d, 0x01, 0xff, 0x45, 0x42, 0xe5, + 0x76, 0x31, 0x00, 0x46, 0xdc, 0xa2, 0x72, 0x31, 0x00, 0x44, 0x65, 0xbf, + 0x44, 0x31, 0x80, 0x0f, 0xb4, 0x01, 0xff, 0x46, 0x57, 0xd6, 0x77, 0x31, + 0x00, 0x45, 0xe5, 0xcd, 0x73, 0x31, 0x40, 0x8d, 0x01, 0xff, 0x46, 0xdc, + 0xa2, 0x74, 0x31, 0x00, 0x46, 0xe4, 0xcd, 0x75, 0x31, 0x40, 0xe5, 0x5a, + 0x31, 0x40, 0x8d, 0x01, 0xff, 0x45, 0x42, 0xe5, 0x35, 0x31, 0x00, 0x45, + 0x71, 0xa5, 0x36, 0x31, 0x00, 0x47, 0x81, 0xd4, 0x68, 0x31, 0x00, 0x44, + 0x65, 0xbf, 0x67, 0x31, 0x00, 0x46, 0xe4, 0xcd, 0x66, 0x31, 0x40, 0x8d, + 0x01, 0xff, 0xb0, 0x06, 0x44, 0x65, 0xbf, 0x6f, 0x31, 0x40, 0x46, 0x82, + 0xd4, 0x70, 0x31, 0x00, 0x44, 0xe3, 0x84, 0x6e, 0x31, 0x40, 0x07, 0xdb, + 0x84, 0x13, 0x46, 0xca, 0xc2, 0x4b, 0x31, 0x00, 0x45, 0xdd, 0xa2, 0x31, + 0x31, 0xc0, 0x00, 0x45, 0xf5, 0xe1, 0x33, 0x31, 0x40, 0x45, 0xa8, 0xe8, + 0x71, 0x31, 0x00, 0xb0, 0x06, 0x4a, 0x45, 0xb1, 0x79, 0x31, 0x40, 0x46, + 0xd2, 0xc2, 0x84, 0x31, 0x00, 0x44, 0xe3, 0x84, 0x78, 0x31, 0x40, 0x44, + 0x1f, 0xcc, 0x47, 0x31, 0x40, 0xef, 0x53, 0x31, 0x00, 0xf5, 0x61, 0x31, + 0x40, 0x46, 0xea, 0xcf, 0x4a, 0x31, 0x00, 0x44, 0xeb, 0xcf, 0x48, 0x31, + 0x40, 0xe5, 0x50, 0x31, 0x00, 0x44, 0x41, 0xb1, 0x8d, 0x31, 0xc0, 0x00, + 0xe5, 0x8e, 0x31, 0x40, 0x09, 0x3b, 0xbd, 0xfb, 0x03, 0x09, 0x5c, 0xc0, + 0x01, 0xff, 0xe1, 0x61, 0x11, 0x80, 0xbd, 0x03, 0xe5, 0x66, 0x11, 0x80, + 0x80, 0x03, 0x46, 0xa7, 0x82, 0x60, 0x11, 0x00, 0xe9, 0x75, 0x11, 0x80, + 0xaa, 0x02, 0xef, 0x69, 0x11, 0x80, 0xf1, 0x01, 0x4a, 0x3b, 0xb1, 0xa2, + 0x11, 0x00, 0xf5, 0x6e, 0x11, 0x80, 0xbe, 0x01, 0xb7, 0xa5, 0x01, 0xb9, + 0x01, 0xff, 0xe1, 0x63, 0x11, 0x80, 0x88, 0x01, 0xe5, 0x68, 0x11, 0x80, + 0x6d, 0xe9, 0x74, 0x11, 0x80, 0x62, 0xef, 0x6d, 0x11, 0x80, 0x31, 0xf5, + 0x72, 0x11, 0xc0, 0x00, 0x8d, 0x01, 0xff, 0xe1, 0x8e, 0x11, 0x80, 0x20, + 0xe5, 0x90, 0x11, 0x80, 0x17, 0xe9, 0x94, 0x11, 0x00, 0xef, 0xb8, 0xd7, + 0x00, 0xf5, 0x93, 0x11, 0x00, 0x42, 0x4d, 0x00, 0x92, 0x11, 0xc0, 0x00, + 0xef, 0x91, 0x11, 0x40, 0xef, 0x8f, 0x11, 0x40, 0xe5, 0xb7, 0xd7, 0x40, + 0x8d, 0x01, 0xff, 0xe1, 0xb2, 0xd7, 0x80, 0x20, 0x42, 0x40, 0x0b, 0xb4, + 0xd7, 0x00, 0xe9, 0x88, 0x11, 0x00, 0xef, 0x87, 0x11, 0x00, 0xb9, 0x01, + 0xff, 0xe1, 0x84, 0x11, 0x80, 0x06, 0x42, 0x40, 0x0b, 0x86, 0x11, 0x40, + 0xe5, 0x85, 0x11, 0x40, 0xe5, 0xb3, 0xd7, 0x40, 0x42, 0x8f, 0x08, 0x97, + 0x11, 0x40, 0xef, 0x67, 0x11, 0xc0, 0x00, 0x8d, 0x01, 0xff, 0xef, 0x7d, + 0x11, 0x00, 0xf5, 0x7e, 0x11, 0x00, 0x42, 0xbc, 0x22, 0xa5, 0x11, 0x40, + 0x8d, 0x04, 0xe5, 0x64, 0x11, 0x40, 0xef, 0x78, 0x11, 0x00, 0xf5, 0xa4, + 0x11, 0x00, 0x42, 0xa9, 0x47, 0x79, 0x11, 0x40, 0xe1, 0x6a, 0x11, 0x80, + 0x0d, 0xe5, 0x70, 0x11, 0x80, 0x04, 0xe9, 0x71, 0x11, 0x40, 0xef, 0x6f, + 0x11, 0x40, 0xe5, 0x6b, 0x11, 0x40, 0x8d, 0x01, 0xff, 0xe1, 0x89, 0x11, + 0x80, 0x1b, 0x45, 0x0a, 0xe6, 0x8b, 0x11, 0x00, 0x43, 0x55, 0xf4, 0xb6, + 0xd7, 0x00, 0xf5, 0x8d, 0x11, 0x00, 0x42, 0x4d, 0x00, 0x8c, 0x11, 0xc0, + 0x00, 0xef, 0xb5, 0xd7, 0x40, 0xe5, 0x8a, 0x11, 0x40, 0x8d, 0x04, 0xe5, + 0x6c, 0x11, 0x40, 0xe5, 0x80, 0x11, 0x80, 0x24, 0xef, 0x82, 0x11, 0x80, + 0x19, 0xf5, 0x83, 0x11, 0x00, 0xb9, 0x01, 0xff, 0xe1, 0xa6, 0x11, 0x80, + 0x09, 0xe5, 0x81, 0x11, 0xc0, 0x00, 0xef, 0xb0, 0xd7, 0x40, 0xe5, 0xa7, + 0x11, 0x40, 0x42, 0xe8, 0x06, 0xb1, 0xd7, 0x40, 0xef, 0x7f, 0x11, 0x40, + 0x8d, 0x01, 0xff, 0xe1, 0x98, 0x11, 0x80, 0x3c, 0x42, 0x97, 0x02, 0x9c, + 0x11, 0x00, 0xe9, 0xc4, 0xd7, 0x00, 0xef, 0x9a, 0x11, 0x80, 0x27, 0xf5, + 0x9b, 0x11, 0x00, 0xb9, 0x01, 0xff, 0xe1, 0x99, 0x11, 0x80, 0x11, 0xe5, + 0xc0, 0xd7, 0x80, 0x08, 0xef, 0xc2, 0xd7, 0x00, 0xf5, 0xc3, 0xd7, 0x40, + 0xef, 0xbf, 0xd7, 0x40, 0x42, 0x4f, 0x21, 0xbd, 0xd7, 0x00, 0xe5, 0xbe, + 0xd7, 0x40, 0x42, 0xe8, 0x06, 0xc1, 0xd7, 0x40, 0x44, 0x41, 0xb1, 0x9d, + 0x11, 0x40, 0xef, 0x65, 0x11, 0x80, 0x21, 0xf5, 0x73, 0x11, 0xc0, 0x00, + 0x8d, 0x01, 0xff, 0xe1, 0xb9, 0xd7, 0x00, 0xe5, 0xbb, 0xd7, 0x80, 0x08, + 0xef, 0xbc, 0xd7, 0x00, 0xf5, 0x95, 0x11, 0x40, 0xef, 0xba, 0xd7, 0x00, + 0xf5, 0x96, 0x11, 0x40, 0x8d, 0x01, 0xff, 0x42, 0x97, 0x02, 0x7c, 0x11, + 0x00, 0xef, 0x7a, 0x11, 0x00, 0xf5, 0x7b, 0x11, 0x40, 0x8d, 0x23, 0xe5, + 0x62, 0x11, 0x00, 0x44, 0x41, 0xb1, 0x9e, 0x11, 0xc0, 0x00, 0x8d, 0x01, + 0xff, 0xe1, 0xc5, 0xd7, 0x00, 0xe5, 0xc6, 0xd7, 0x80, 0x08, 0xe9, 0xa1, + 0x11, 0x00, 0xf5, 0xa0, 0x11, 0x40, 0xef, 0x9f, 0x11, 0x40, 0x42, 0x97, + 0x02, 0xa3, 0x11, 0x00, 0xef, 0x76, 0x11, 0x00, 0xf5, 0x77, 0x11, 0x40, + 0xa3, 0xd7, 0x07, 0x45, 0x71, 0xa5, 0xc2, 0x11, 0x80, 0xb4, 0x07, 0x45, + 0x1e, 0xcc, 0xbc, 0x11, 0x80, 0x95, 0x07, 0xab, 0xb3, 0x06, 0x45, 0xa8, + 0xe8, 0xb7, 0x11, 0x80, 0xd3, 0x05, 0x45, 0x1b, 0xe9, 0xab, 0x11, 0x80, + 0x8d, 0x05, 0xb0, 0x8e, 0x04, 0x45, 0x65, 0xea, 0xaf, 0x11, 0x80, 0xc0, + 0x02, 0xb3, 0x89, 0x01, 0xb4, 0x44, 0x02, 0x4d, 0x00, 0x01, 0xff, 0x49, + 0x6d, 0xa5, 0xf9, 0x11, 0x00, 0x46, 0xe2, 0xcc, 0xf0, 0x11, 0xc0, 0x00, + 0x8d, 0x01, 0xff, 0x45, 0x71, 0xa5, 0xf6, 0xd7, 0x00, 0xab, 0x1b, 0x45, + 0xa8, 0xe8, 0xf5, 0xd7, 0x00, 0x47, 0x81, 0xd4, 0xf2, 0x11, 0x00, 0xb3, + 0x01, 0xff, 0x43, 0x23, 0x42, 0xf1, 0x11, 0x00, 0x4a, 0xd8, 0xa2, 0xed, + 0x11, 0x40, 0x46, 0xca, 0xc2, 0xef, 0x11, 0x00, 0x45, 0xdd, 0xa2, 0xec, + 0x11, 0x40, 0x46, 0x57, 0xd6, 0xc0, 0x11, 0x00, 0x45, 0xe5, 0xcd, 0xae, + 0x11, 0xc0, 0x00, 0x8d, 0x01, 0xff, 0xa3, 0x25, 0x46, 0xdc, 0xa2, 0xca, + 0x11, 0x00, 0x45, 0xe2, 0x84, 0xcf, 0xd7, 0x00, 0x45, 0x65, 0xea, 0xcb, + 0x11, 0x00, 0x44, 0x65, 0xbf, 0xd0, 0xd7, 0x80, 0x06, 0x47, 0x56, 0xd6, + 0xd4, 0xd7, 0x40, 0x47, 0xc0, 0xcd, 0xd1, 0xd7, 0x40, 0x46, 0xea, 0xcf, + 0xd3, 0xd7, 0x00, 0x44, 0xeb, 0xcf, 0xd2, 0xd7, 0x40, 0x43, 0x23, 0x42, + 0xba, 0x11, 0x80, 0x5f, 0x04, 0x2c, 0x2d, 0x01, 0xff, 0x45, 0x42, 0xe5, + 0xf9, 0xd7, 0x00, 0x45, 0x1e, 0xcc, 0xee, 0x11, 0x00, 0x46, 0xdc, 0xa2, + 0xa9, 0x11, 0x00, 0x45, 0xa8, 0xe8, 0xe0, 0xd7, 0x00, 0x45, 0x1b, 0xe9, + 0xff, 0x11, 0x00, 0x45, 0xe2, 0x84, 0xe6, 0xd7, 0x00, 0x45, 0x65, 0xea, + 0xd0, 0x11, 0x80, 0x29, 0x44, 0x65, 0xbf, 0xbb, 0x11, 0x80, 0x13, 0x46, + 0xe4, 0xcd, 0xcd, 0xd7, 0x80, 0x06, 0x48, 0xe0, 0xcc, 0xee, 0x11, 0x40, + 0x46, 0x6c, 0xd8, 0xce, 0xd7, 0x40, 0x8d, 0x01, 0xff, 0x46, 0xdc, 0xa2, + 0xec, 0xd7, 0x00, 0x46, 0xe4, 0xcd, 0xed, 0xd7, 0x40, 0x48, 0xc8, 0xc2, + 0xd7, 0xd7, 0x40, 0x8d, 0x01, 0xff, 0xa3, 0x3d, 0x45, 0x71, 0xa5, 0xf2, + 0xd7, 0x00, 0xab, 0x29, 0x45, 0xa8, 0xe8, 0xea, 0xd7, 0x00, 0xb0, 0x15, + 0x45, 0x65, 0xea, 0xe9, 0x11, 0x00, 0xb4, 0x01, 0xff, 0x46, 0x57, 0xd6, + 0xf1, 0xd7, 0x00, 0x45, 0xe5, 0xcd, 0xe8, 0x11, 0x40, 0x46, 0x82, 0xd4, + 0xee, 0xd7, 0x00, 0x44, 0xe3, 0x84, 0xea, 0x11, 0x40, 0x4c, 0xdb, 0x84, + 0xeb, 0xd7, 0x00, 0x45, 0xdd, 0xa2, 0xe7, 0x11, 0x40, 0x46, 0xea, 0xcf, + 0xf0, 0xd7, 0x00, 0x44, 0xeb, 0xcf, 0xef, 0xd7, 0x40, 0x8d, 0x01, 0xff, + 0x45, 0x71, 0xa5, 0xb6, 0x11, 0x00, 0xab, 0x98, 0x01, 0x45, 0xa8, 0xe8, + 0xb1, 0x11, 0x80, 0x7c, 0x45, 0x1b, 0xe9, 0xcd, 0x11, 0x00, 0xb0, 0x46, + 0xb3, 0x2d, 0xb4, 0x18, 0x02, 0x4d, 0x00, 0x01, 0xff, 0x49, 0x6d, 0xa5, + 0xd9, 0x11, 0x80, 0x06, 0x46, 0xe2, 0xcc, 0xdb, 0xd7, 0x40, 0x46, 0x5a, + 0xd8, 0xdc, 0xd7, 0x40, 0x46, 0x57, 0xd6, 0xb4, 0x11, 0x00, 0x45, 0xe5, + 0xcd, 0xce, 0x11, 0xc0, 0x00, 0x46, 0x5a, 0xd8, 0xcf, 0x11, 0x40, 0x43, + 0x23, 0x42, 0xb3, 0x11, 0x00, 0x04, 0x2c, 0x2d, 0x01, 0xff, 0x46, 0xdc, + 0xa2, 0xd5, 0xd7, 0x00, 0x44, 0x65, 0xbf, 0xd6, 0x11, 0x40, 0x46, 0x82, + 0xd4, 0xd7, 0x11, 0x00, 0x46, 0xd2, 0xc2, 0xb5, 0x11, 0x00, 0x44, 0xe3, + 0x84, 0xb2, 0x11, 0xc0, 0x00, 0x8d, 0x01, 0xff, 0x45, 0x71, 0xa5, 0xd4, + 0x11, 0x00, 0x47, 0xd1, 0xc2, 0xda, 0xd7, 0x00, 0x44, 0x65, 0xbf, 0xd3, + 0x11, 0x00, 0x46, 0xe4, 0xcd, 0xd9, 0xd7, 0x40, 0x8d, 0x01, 0xff, 0x45, + 0x71, 0xa5, 0xd8, 0xd7, 0x00, 0x46, 0xdc, 0xa2, 0xd1, 0x11, 0x00, 0x44, + 0x65, 0xbf, 0xd2, 0x11, 0x40, 0x4c, 0xdb, 0x84, 0xd5, 0x11, 0x00, 0x46, + 0xca, 0xc2, 0xd8, 0x11, 0x00, 0x45, 0xdd, 0xa2, 0xb0, 0x11, 0xc0, 0x00, + 0x8d, 0x01, 0xff, 0x45, 0x71, 0xa5, 0xd6, 0xd7, 0x00, 0x44, 0x65, 0xbf, + 0xcc, 0x11, 0x40, 0x46, 0x82, 0xd4, 0xeb, 0x11, 0x80, 0x66, 0x46, 0xd2, + 0xc2, 0xc1, 0x11, 0x80, 0x4a, 0x44, 0xe3, 0x84, 0xb8, 0x11, 0xc0, 0x00, + 0x8d, 0x01, 0xff, 0xa3, 0x32, 0x45, 0x71, 0xa5, 0xe5, 0x11, 0x00, 0x45, + 0xa8, 0xe8, 0xe5, 0xd7, 0x00, 0x47, 0xd1, 0xc2, 0xe4, 0x11, 0x00, 0x45, + 0x65, 0xea, 0xe3, 0x11, 0x80, 0x13, 0x44, 0x65, 0xbf, 0xb9, 0x11, 0x80, + 0x06, 0x46, 0xe4, 0xcd, 0xe3, 0xd7, 0x40, 0x47, 0xe3, 0xcd, 0xe7, 0xd7, + 0x40, 0x48, 0xd0, 0xc2, 0xe4, 0xd7, 0x40, 0x46, 0xea, 0xcf, 0xe9, 0xd7, + 0x00, 0x44, 0xeb, 0xcf, 0xe8, 0xd7, 0x40, 0x8d, 0x01, 0xff, 0x45, 0xe2, + 0x84, 0xf3, 0x11, 0x00, 0x44, 0x65, 0xbf, 0xfa, 0xd7, 0x00, 0x47, 0x56, + 0xd6, 0xfb, 0xd7, 0x40, 0x8d, 0x01, 0xff, 0x4d, 0xda, 0x84, 0xf4, 0xd7, + 0x00, 0x45, 0xe2, 0x84, 0xf3, 0xd7, 0x40, 0x8d, 0x01, 0xff, 0xa3, 0x2d, + 0x45, 0x71, 0xa5, 0xad, 0x11, 0x00, 0x46, 0xdc, 0xa2, 0xc5, 0x11, 0x00, + 0x47, 0x81, 0xd4, 0xc8, 0x11, 0x00, 0x45, 0x65, 0xea, 0xcb, 0xd7, 0x00, + 0x44, 0x65, 0xbf, 0xc7, 0x11, 0x00, 0xb4, 0x01, 0xff, 0x46, 0x57, 0xd6, + 0xc9, 0x11, 0x00, 0x45, 0xe5, 0xcd, 0xc6, 0x11, 0x40, 0x46, 0xea, 0xcf, + 0xcc, 0xd7, 0x00, 0x44, 0xeb, 0xcf, 0xac, 0x11, 0x40, 0x8d, 0x01, 0xff, + 0xa3, 0x47, 0x45, 0x71, 0xa5, 0xe1, 0x11, 0x00, 0x46, 0xdc, 0xa2, 0xda, + 0x11, 0x00, 0x45, 0x1b, 0xe9, 0xde, 0xd7, 0x00, 0xb0, 0x20, 0x45, 0x65, + 0xea, 0xdb, 0x11, 0x00, 0xb3, 0x01, 0xff, 0x43, 0x23, 0x42, 0xdd, 0x11, + 0x00, 0x04, 0x2c, 0x2d, 0x01, 0xff, 0x45, 0x1b, 0xe9, 0xdf, 0xd7, 0x00, + 0x44, 0x65, 0xbf, 0xde, 0x11, 0x40, 0x46, 0x82, 0xd4, 0xdf, 0x11, 0x00, + 0x44, 0xe3, 0x84, 0xdc, 0x11, 0xc0, 0x00, 0x45, 0xf5, 0xe1, 0xe1, 0xd7, + 0x40, 0x46, 0xea, 0xcf, 0xe0, 0x11, 0x00, 0x44, 0xeb, 0xcf, 0xe2, 0xd7, + 0x40, 0x07, 0xdb, 0x84, 0x41, 0x46, 0xca, 0xc2, 0xbf, 0x11, 0x00, 0x45, + 0xdd, 0xa2, 0xa8, 0x11, 0xc0, 0x00, 0x8d, 0x01, 0xff, 0x47, 0xe9, 0xcf, + 0xfc, 0x11, 0x00, 0x45, 0x71, 0xa5, 0xfe, 0x11, 0x00, 0x47, 0xc9, 0xc2, + 0xfd, 0x11, 0x00, 0x45, 0x1b, 0xe9, 0xfa, 0x11, 0x00, 0x45, 0xe2, 0x84, + 0xfb, 0x11, 0x00, 0x45, 0x65, 0xea, 0xc3, 0x11, 0x00, 0x44, 0x65, 0xbf, + 0xaa, 0x11, 0xc0, 0x00, 0x47, 0xc0, 0xcd, 0xc4, 0x11, 0x40, 0x45, 0xa8, + 0xe8, 0xe2, 0x11, 0x00, 0xb0, 0x06, 0x45, 0x65, 0xea, 0xdd, 0xd7, 0x40, + 0x46, 0xd2, 0xc2, 0xf4, 0x11, 0x00, 0x44, 0xe3, 0x84, 0xe6, 0x11, 0x40, + 0x8d, 0x01, 0xff, 0xab, 0x06, 0x4b, 0xd7, 0xa2, 0xed, 0x11, 0x40, 0x46, + 0xca, 0xc2, 0xef, 0x11, 0x00, 0x45, 0xdd, 0xa2, 0xec, 0x11, 0x40, 0x8d, + 0x01, 0xff, 0x45, 0xa8, 0xe8, 0xf7, 0x11, 0x00, 0x45, 0x1b, 0xe9, 0xf5, + 0x11, 0x00, 0x45, 0xe2, 0x84, 0xf8, 0x11, 0x00, 0x45, 0x65, 0xea, 0xf6, + 0x11, 0x40, 0x46, 0xea, 0xcf, 0xbe, 0x11, 0x00, 0x44, 0xeb, 0xcf, 0xbd, + 0x11, 0xc0, 0x00, 0x8d, 0x01, 0xff, 0x45, 0xe2, 0x84, 0xf7, 0xd7, 0x00, + 0x4a, 0x45, 0xb1, 0xf8, 0xd7, 0x40, 0xa3, 0x83, 0x06, 0x46, 0xa7, 0x82, + 0x5f, 0x11, 0x00, 0x45, 0x71, 0xa5, 0x12, 0x11, 0x80, 0xef, 0x05, 0x45, + 0x1e, 0xcc, 0x0b, 0x11, 0x80, 0x95, 0x05, 0xab, 0xdb, 0x04, 0x45, 0xa8, + 0xe8, 0x06, 0x11, 0x80, 0xb8, 0x04, 0x45, 0x1b, 0xe9, 0x02, 0x11, 0x80, + 0x89, 0x04, 0xb0, 0xf0, 0x02, 0x45, 0x65, 0xea, 0x05, 0x11, 0x80, 0x8e, + 0x02, 0xb3, 0x47, 0xb4, 0x11, 0x02, 0x4d, 0x00, 0x01, 0xff, 0x49, 0x6d, + 0xa5, 0x59, 0x11, 0x00, 0x46, 0xe2, 0xcc, 0x4c, 0x11, 0x40, 0x46, 0x57, + 0xd6, 0x10, 0x11, 0x00, 0x45, 0xe5, 0xcd, 0x03, 0x11, 0xc0, 0x00, 0x8d, + 0x01, 0xff, 0x45, 0x42, 0xe5, 0x63, 0xa9, 0x00, 0x46, 0xdc, 0xa2, 0x17, + 0x11, 0x00, 0x45, 0xa8, 0xe8, 0x60, 0xa9, 0x00, 0x45, 0xe2, 0x84, 0x61, + 0xa9, 0x00, 0x45, 0x65, 0xea, 0x5e, 0x11, 0x00, 0x44, 0x65, 0xbf, 0x62, + 0xa9, 0x40, 0x43, 0x23, 0x42, 0x09, 0x11, 0x80, 0x57, 0x04, 0x2c, 0x2d, + 0x01, 0xff, 0x45, 0x42, 0xe5, 0x0d, 0x11, 0x80, 0x45, 0x45, 0x71, 0xa5, + 0x58, 0x11, 0x00, 0x45, 0x1e, 0xcc, 0x47, 0x11, 0x00, 0x46, 0xdc, 0xa2, + 0x01, 0x11, 0x00, 0x45, 0x1b, 0xe9, 0x14, 0x11, 0x00, 0x45, 0xe2, 0x84, + 0x08, 0x11, 0x00, 0x45, 0x65, 0xea, 0x19, 0x11, 0x00, 0x44, 0x65, 0xbf, + 0x0a, 0x11, 0x80, 0x14, 0xb4, 0x06, 0x4b, 0x6b, 0xa5, 0x7c, 0xa9, 0x40, + 0x46, 0x57, 0xd6, 0x79, 0xa9, 0x00, 0x45, 0xe5, 0xcd, 0x04, 0x11, 0x40, + 0x46, 0x6c, 0xd8, 0x75, 0xa9, 0x40, 0x46, 0x5a, 0xd8, 0x78, 0xa9, 0x40, + 0x8d, 0x01, 0xff, 0xa3, 0x56, 0x45, 0x71, 0xa5, 0x3b, 0x11, 0x00, 0x45, + 0x1e, 0xcc, 0x35, 0x11, 0x00, 0xab, 0x3c, 0x45, 0xa8, 0xe8, 0x31, 0x11, + 0x00, 0x45, 0x1b, 0xe9, 0x2e, 0x11, 0x00, 0xb0, 0x1b, 0x45, 0x65, 0xea, + 0x30, 0x11, 0x00, 0x49, 0x60, 0xbf, 0x34, 0x11, 0x00, 0xb4, 0x01, 0xff, + 0x46, 0x57, 0xd6, 0x39, 0x11, 0x00, 0x45, 0xe5, 0xcd, 0x2f, 0x11, 0x40, + 0x46, 0xd2, 0xc2, 0x3a, 0x11, 0x00, 0x44, 0xe3, 0x84, 0x32, 0x11, 0xc0, + 0x00, 0x47, 0xc0, 0xcd, 0x33, 0x11, 0x40, 0x46, 0xca, 0xc2, 0x38, 0x11, + 0x00, 0x45, 0xdd, 0xa2, 0x2d, 0x11, 0x40, 0x46, 0xea, 0xcf, 0x37, 0x11, + 0x00, 0x44, 0xeb, 0xcf, 0x36, 0x11, 0x40, 0x8d, 0x01, 0xff, 0x45, 0x42, + 0xe5, 0x6d, 0xa9, 0x00, 0x45, 0x71, 0xa5, 0x1a, 0x11, 0x00, 0xab, 0x37, + 0x45, 0xa8, 0xe8, 0x68, 0xa9, 0x00, 0x45, 0x1b, 0xe9, 0x18, 0x11, 0x00, + 0x45, 0xe2, 0x84, 0x69, 0xa9, 0x00, 0xb3, 0x06, 0x46, 0xe4, 0xcd, 0x66, + 0xa9, 0x40, 0x43, 0x23, 0x42, 0x6c, 0xa9, 0x00, 0x04, 0x2c, 0x2d, 0x01, + 0xff, 0x46, 0xdc, 0xa2, 0x65, 0xa9, 0x00, 0x45, 0xe2, 0x84, 0x6a, 0xa9, + 0x00, 0x46, 0xe4, 0xcd, 0x67, 0xa9, 0x40, 0x4c, 0xdb, 0x84, 0x6b, 0xa9, + 0x00, 0x46, 0xca, 0xc2, 0x6e, 0xa9, 0x00, 0x45, 0xdd, 0xa2, 0x64, 0xa9, + 0x40, 0x46, 0x82, 0xd4, 0x40, 0x11, 0x00, 0x46, 0xd2, 0xc2, 0x11, 0x11, + 0x80, 0x7a, 0x44, 0xe3, 0x84, 0x07, 0x11, 0xc0, 0x00, 0x8d, 0x01, 0xff, + 0xa3, 0x62, 0x45, 0x71, 0xa5, 0x74, 0xa9, 0x00, 0xab, 0x4e, 0x45, 0x1b, + 0xe9, 0x1f, 0x11, 0x00, 0x47, 0xd1, 0xc2, 0x2a, 0x11, 0x00, 0xb3, 0x0f, + 0xb4, 0x01, 0xff, 0x46, 0x57, 0xd6, 0x29, 0x11, 0x00, 0x45, 0xe5, 0xcd, + 0x20, 0x11, 0x40, 0x43, 0x23, 0x42, 0x21, 0x11, 0x80, 0x06, 0x48, 0x61, + 0xbf, 0x25, 0x11, 0x40, 0x8d, 0x01, 0xff, 0x45, 0x42, 0xe5, 0x26, 0x11, + 0x00, 0x46, 0xdc, 0xa2, 0x22, 0x11, 0x00, 0x45, 0xe2, 0x84, 0x24, 0x11, + 0x00, 0xb4, 0x01, 0xff, 0x46, 0x57, 0xd6, 0x72, 0xa9, 0x00, 0x45, 0xe5, + 0xcd, 0x23, 0x11, 0x40, 0x46, 0xca, 0xc2, 0x73, 0xa9, 0x00, 0x45, 0xdd, + 0xa2, 0x1e, 0x11, 0x40, 0x46, 0xea, 0xcf, 0x28, 0x11, 0x00, 0x44, 0xeb, + 0xcf, 0x27, 0x11, 0x40, 0x8d, 0x01, 0xff, 0x45, 0x71, 0xa5, 0x7a, 0xa9, + 0x00, 0x45, 0xe2, 0x84, 0x56, 0x11, 0x40, 0x8d, 0x01, 0xff, 0x45, 0x42, + 0xe5, 0x5c, 0x11, 0x00, 0x45, 0x71, 0xa5, 0x5d, 0x11, 0x00, 0x46, 0xdc, + 0xa2, 0x13, 0x11, 0x00, 0x45, 0xe2, 0x84, 0x16, 0x11, 0x00, 0x44, 0x65, + 0xbf, 0x5b, 0x11, 0x00, 0x46, 0xe4, 0xcd, 0x15, 0x11, 0x40, 0x8d, 0x01, + 0xff, 0x46, 0xdc, 0xa2, 0x6f, 0xa9, 0x00, 0x45, 0xe2, 0x84, 0x1c, 0x11, + 0x00, 0x44, 0x65, 0xbf, 0x71, 0xa9, 0x00, 0x46, 0xe4, 0xcd, 0x70, 0xa9, + 0x40, 0x07, 0xdb, 0x84, 0x13, 0x46, 0xca, 0xc2, 0x0f, 0x11, 0x00, 0x45, + 0xdd, 0xa2, 0x00, 0x11, 0xc0, 0x00, 0x47, 0xe3, 0xcd, 0x5a, 0x11, 0x40, + 0x45, 0xa8, 0xe8, 0x1d, 0x11, 0x00, 0xb0, 0x0c, 0x45, 0x65, 0xea, 0x1b, + 0x11, 0x00, 0x4a, 0x45, 0xb1, 0x2c, 0x11, 0x40, 0x46, 0xd2, 0xc2, 0x57, + 0x11, 0x00, 0x44, 0xe3, 0x84, 0x2b, 0x11, 0x40, 0x8d, 0x01, 0xff, 0xa3, + 0x41, 0x45, 0x71, 0xa5, 0x77, 0xa9, 0x00, 0x46, 0xdc, 0xa2, 0x41, 0x11, + 0x00, 0x45, 0xa8, 0xe8, 0x43, 0x11, 0x00, 0xb0, 0x1b, 0x45, 0x65, 0xea, + 0x76, 0xa9, 0x00, 0x44, 0x65, 0xbf, 0x45, 0x11, 0x00, 0xb4, 0x01, 0xff, + 0x46, 0x57, 0xd6, 0x4a, 0x11, 0x00, 0x45, 0xe5, 0xcd, 0x42, 0x11, 0x40, + 0x46, 0x82, 0xd4, 0x46, 0x11, 0x00, 0x46, 0xd2, 0xc2, 0x4b, 0x11, 0x00, + 0x44, 0xe3, 0x84, 0x44, 0x11, 0x40, 0x46, 0xea, 0xcf, 0x49, 0x11, 0x00, + 0x44, 0xeb, 0xcf, 0x48, 0x11, 0x40, 0x45, 0xf5, 0xe1, 0x7b, 0xa9, 0x40, + 0x0a, 0x0b, 0xaa, 0x54, 0x02, 0x49, 0x00, 0x0d, 0x44, 0xeb, 0xcf, 0x0c, + 0x11, 0xc0, 0x00, 0x46, 0x60, 0xd8, 0x4d, 0x11, 0x40, 0x44, 0xec, 0xcf, + 0x0e, 0x11, 0x80, 0x2d, 0x05, 0x9b, 0xeb, 0x01, 0xff, 0xa3, 0x1a, 0xb3, + 0x01, 0xff, 0x43, 0x23, 0x42, 0x3c, 0x11, 0x00, 0x04, 0x2c, 0x2d, 0x01, + 0xff, 0x45, 0x42, 0xe5, 0x4f, 0x11, 0x00, 0x44, 0x65, 0xbf, 0x3d, 0x11, + 0x40, 0x46, 0xea, 0xcf, 0x54, 0x11, 0x00, 0x44, 0xeb, 0xcf, 0x4e, 0x11, + 0x40, 0x8d, 0x01, 0xff, 0x45, 0x71, 0xa5, 0x53, 0x11, 0x00, 0x47, 0xc9, + 0xc2, 0x52, 0x11, 0x40, 0xa3, 0x1a, 0xb3, 0x01, 0xff, 0x43, 0x23, 0x42, + 0x3e, 0x11, 0x00, 0x04, 0x2c, 0x2d, 0x01, 0xff, 0x45, 0x42, 0xe5, 0x51, + 0x11, 0x00, 0x44, 0x65, 0xbf, 0x3f, 0x11, 0x40, 0x46, 0xea, 0xcf, 0x55, + 0x11, 0x00, 0x44, 0xeb, 0xcf, 0x50, 0x11, 0x40, 0x0c, 0x9b, 0x8b, 0x14, + 0x02, 0x16, 0x00, 0x06, 0x45, 0x89, 0xcd, 0x1d, 0xf9, 0x41, 0xe7, 0x5c, + 0xf4, 0x01, 0x42, 0x60, 0x07, 0x3e, 0xf9, 0x41, 0x5a, 0x14, 0x1f, 0x1e, + 0xf9, 0x01, 0x58, 0xb6, 0x28, 0xf0, 0xfa, 0x41, 0x46, 0x4c, 0xda, 0x54, + 0xf3, 0x01, 0x43, 0xfb, 0x37, 0x28, 0xf5, 0x81, 0x0d, 0xb3, 0x01, 0xff, + 0xe1, 0xac, 0xfa, 0x01, 0x48, 0x70, 0xcb, 0x39, 0xf4, 0x41, 0x05, 0x19, + 0x00, 0x01, 0xff, 0x44, 0x20, 0xdf, 0x92, 0x26, 0x00, 0x46, 0xe0, 0xdf, + 0x2d, 0x26, 0x00, 0x46, 0x5a, 0xe1, 0xe0, 0xf6, 0x41, 0x4c, 0x42, 0x11, + 0xed, 0xff, 0x00, 0x4f, 0x34, 0x0c, 0xec, 0xff, 0x00, 0x54, 0x6c, 0x42, + 0xe8, 0xff, 0x00, 0x07, 0x78, 0xd1, 0xda, 0x02, 0x0c, 0x4c, 0x20, 0xc9, + 0x02, 0x08, 0x78, 0xc7, 0x2c, 0x04, 0xc3, 0x00, 0x1c, 0x05, 0xc8, 0x00, + 0x0c, 0x4d, 0xc1, 0x20, 0xea, 0xff, 0x00, 0x4c, 0x32, 0x11, 0xee, 0xff, + 0x40, 0x4f, 0x33, 0x69, 0x63, 0xff, 0x00, 0x4b, 0xb8, 0x02, 0xeb, 0xff, + 0x40, 0x4f, 0x33, 0x69, 0x62, 0xff, 0x00, 0x4b, 0xb8, 0x02, 0xe9, 0xff, + 0x40, 0x80, 0x06, 0x5e, 0x45, 0x12, 0x70, 0xff, 0x40, 0x07, 0xec, 0x05, + 0x12, 0x4a, 0xe6, 0x45, 0x65, 0xff, 0x00, 0x56, 0x1b, 0x37, 0x9f, 0xff, + 0x00, 0x51, 0x20, 0x37, 0x9e, 0xff, 0x40, 0xe1, 0x71, 0xff, 0x00, 0xe5, + 0x74, 0xff, 0x00, 0xa8, 0xdc, 0x01, 0xe9, 0x72, 0xff, 0x00, 0xab, 0xc1, + 0x01, 0xad, 0xaa, 0x01, 0xee, 0x9d, 0xff, 0x80, 0x90, 0x01, 0xef, 0x75, + 0xff, 0x00, 0xb2, 0x76, 0xb3, 0x33, 0xb4, 0x1d, 0xf5, 0x73, 0xff, 0x00, + 0xb7, 0x0f, 0xb9, 0x01, 0xff, 0xe1, 0x94, 0xff, 0x00, 0xef, 0x96, 0xff, + 0x00, 0xf5, 0x95, 0xff, 0x40, 0xe1, 0x9c, 0xff, 0x00, 0xef, 0x66, 0xff, + 0x40, 0xe1, 0x80, 0xff, 0x00, 0xe5, 0x83, 0xff, 0x00, 0xe9, 0x81, 0xff, + 0x00, 0xef, 0x84, 0xff, 0x00, 0xf5, 0x82, 0xff, 0x40, 0xe1, 0x7b, 0xff, + 0x00, 0xe5, 0x7e, 0xff, 0x00, 0xe9, 0x7c, 0xff, 0x00, 0x05, 0x5e, 0x07, + 0x08, 0xef, 0x7f, 0xff, 0x00, 0xf5, 0x7d, 0xff, 0x40, 0xe1, 0x67, 0xff, + 0x00, 0xe5, 0x6a, 0xff, 0x00, 0xe9, 0x68, 0xff, 0x00, 0xef, 0x6b, 0xff, + 0x00, 0x42, 0x5c, 0x01, 0x6f, 0xff, 0x00, 0xf5, 0x69, 0xff, 0x00, 0xb9, + 0x01, 0xff, 0xe1, 0x6c, 0xff, 0x00, 0xef, 0x6e, 0xff, 0x00, 0xf5, 0x6d, + 0xff, 0x40, 0xe1, 0x97, 0xff, 0x00, 0xe5, 0x9a, 0xff, 0x00, 0xe9, 0x98, + 0xff, 0x00, 0xef, 0x9b, 0xff, 0x00, 0xf5, 0x99, 0xff, 0x40, 0xe1, 0x85, + 0xff, 0x00, 0xe5, 0x88, 0xff, 0x00, 0xe9, 0x86, 0xff, 0x00, 0xef, 0x89, + 0xff, 0x00, 0xf5, 0x87, 0xff, 0x40, 0xe1, 0x8f, 0xff, 0x00, 0xe5, 0x92, + 0xff, 0x00, 0xe9, 0x90, 0xff, 0x00, 0xef, 0x93, 0xff, 0x00, 0xf5, 0x91, + 0xff, 0x40, 0xe1, 0x76, 0xff, 0x00, 0xe5, 0x79, 0xff, 0x00, 0xe9, 0x77, + 0xff, 0x00, 0xef, 0x7a, 0xff, 0x00, 0xf5, 0x78, 0xff, 0x40, 0xe1, 0x8a, + 0xff, 0x00, 0xe5, 0x8d, 0xff, 0x00, 0xe9, 0x8b, 0xff, 0x00, 0xef, 0x8e, + 0xff, 0x00, 0xf5, 0x8c, 0xff, 0x40, 0x45, 0x13, 0x05, 0x64, 0xff, 0x00, + 0x49, 0x81, 0x16, 0x61, 0xff, 0x40, 0x46, 0xa7, 0x82, 0xa0, 0xff, 0x00, + 0x07, 0xec, 0x05, 0x01, 0xff, 0xe1, 0xc2, 0xff, 0x80, 0xae, 0x02, 0xa3, + 0x9f, 0x02, 0xe5, 0xc7, 0xff, 0x80, 0x91, 0x02, 0x45, 0x71, 0xa5, 0xbe, + 0xff, 0x00, 0xe9, 0xdc, 0xff, 0x80, 0xff, 0x01, 0xab, 0xe9, 0x01, 0x45, + 0xa8, 0xe8, 0xb1, 0xff, 0x00, 0x45, 0x1b, 0xe9, 0xa4, 0xff, 0x80, 0xcc, + 0x01, 0xef, 0xcc, 0xff, 0x80, 0xc2, 0x01, 0xb0, 0xac, 0x01, 0x45, 0x65, + 0xea, 0xa9, 0xff, 0x80, 0x76, 0xb3, 0x4b, 0xb4, 0x3d, 0xf5, 0xd3, 0xff, + 0x00, 0xb7, 0x21, 0xb9, 0x01, 0xff, 0xe1, 0xc4, 0xff, 0x80, 0x15, 0xe5, + 0xcb, 0xff, 0x80, 0x0c, 0xe9, 0xdb, 0xff, 0x00, 0xef, 0xd2, 0xff, 0x00, + 0xf5, 0xd7, 0xff, 0x40, 0xef, 0xca, 0xff, 0x40, 0xe5, 0xc5, 0xff, 0x40, + 0xe1, 0xcd, 0xff, 0x80, 0x0d, 0xe5, 0xd5, 0xff, 0x80, 0x04, 0xe9, 0xd6, + 0xff, 0x40, 0xef, 0xd4, 0xff, 0x40, 0xe5, 0xce, 0xff, 0x40, 0x46, 0x57, + 0xd6, 0xbc, 0xff, 0x00, 0x45, 0xe5, 0xcd, 0xa7, 0xff, 0x40, 0x43, 0x23, + 0x42, 0xb5, 0xff, 0x00, 0x04, 0x2c, 0x2d, 0x01, 0xff, 0x45, 0x42, 0xe5, + 0xb9, 0xff, 0x00, 0x46, 0xdc, 0xa2, 0xa2, 0xff, 0x00, 0x45, 0xe2, 0x84, + 0xb3, 0xff, 0x00, 0x44, 0x65, 0xbf, 0xb6, 0xff, 0x00, 0x46, 0xe4, 0xcd, + 0xa8, 0xff, 0x40, 0x8d, 0x01, 0xff, 0x45, 0x71, 0xa5, 0xb0, 0xff, 0x00, + 0x46, 0xdc, 0xa2, 0xaa, 0xff, 0x00, 0x45, 0xa8, 0xe8, 0xab, 0xff, 0x00, + 0xb0, 0x0c, 0x44, 0x65, 0xbf, 0xad, 0xff, 0x00, 0x47, 0x56, 0xd6, 0xae, + 0xff, 0x40, 0x46, 0xd2, 0xc2, 0xaf, 0xff, 0x00, 0x44, 0xe3, 0x84, 0xac, + 0xff, 0x40, 0x46, 0xd2, 0xc2, 0xbd, 0xff, 0x00, 0x44, 0xe3, 0x84, 0xb2, + 0xff, 0xc0, 0x00, 0x45, 0xf5, 0xe1, 0xb4, 0xff, 0x40, 0xe5, 0xcf, 0xff, + 0x40, 0x8d, 0x01, 0xff, 0x45, 0x42, 0xe5, 0xa5, 0xff, 0x00, 0x45, 0x71, + 0xa5, 0xa6, 0xff, 0x40, 0x46, 0xca, 0xc2, 0xbb, 0xff, 0x00, 0x45, 0xdd, + 0xa2, 0xa1, 0xff, 0xc0, 0x00, 0x45, 0xf5, 0xe1, 0xa3, 0xff, 0x40, 0x44, + 0x1f, 0xcc, 0xb7, 0xff, 0x40, 0xef, 0xc6, 0xff, 0x00, 0xf5, 0xda, 0xff, + 0x40, 0x46, 0xea, 0xcf, 0xba, 0xff, 0x00, 0x44, 0xeb, 0xcf, 0xb8, 0xff, + 0x40, 0xe5, 0xc3, 0xff, 0x40, 0x80, 0x0c, 0x43, 0xcb, 0x27, 0x87, 0xf4, + 0x01, 0x4a, 0xd9, 0xb3, 0xc8, 0xfa, 0x41, 0x44, 0x20, 0xdf, 0xae, 0xfa, + 0x01, 0x45, 0xd0, 0x4c, 0x0a, 0x20, 0x40, 0xa1, 0xcc, 0x43, 0xa5, 0xfa, + 0x38, 0x44, 0xc0, 0x7c, 0x7b, 0xf4, 0x01, 0xa9, 0xd1, 0x38, 0xac, 0x9b, + 0x33, 0xaf, 0xb6, 0x31, 0xb2, 0xd7, 0x0e, 0xb5, 0x01, 0xff, 0x02, 0x17, + 0x00, 0xc3, 0x0e, 0xa9, 0xb4, 0x0e, 0x07, 0x27, 0xd2, 0xf9, 0x09, 0x0c, + 0xaf, 0x92, 0xef, 0x06, 0xb2, 0x01, 0xff, 0x06, 0x12, 0xde, 0xf4, 0x02, + 0x0a, 0xad, 0xb2, 0x01, 0xff, 0x16, 0x3d, 0x33, 0xd2, 0x02, 0x06, 0xef, + 0x06, 0x8b, 0x02, 0x07, 0xec, 0x05, 0x52, 0x05, 0x5a, 0x03, 0x42, 0x06, + 0x3c, 0x39, 0x01, 0xff, 0x4b, 0x42, 0x39, 0x29, 0x61, 0x01, 0x05, 0x5a, + 0x03, 0x01, 0xff, 0xa1, 0x24, 0xe5, 0x23, 0x61, 0x81, 0x1b, 0xe9, 0x1f, + 0x61, 0x81, 0x12, 0xef, 0x26, 0x61, 0x81, 0x09, 0xf5, 0x21, 0x61, 0xc1, + 0x00, 0xf5, 0x22, 0x61, 0x41, 0xef, 0x27, 0x61, 0x41, 0xe9, 0x20, 0x61, + 0x41, 0xe5, 0x24, 0x61, 0x41, 0xe1, 0x1e, 0x61, 0x01, 0xe9, 0x25, 0x61, + 0x01, 0xf5, 0x28, 0x61, 0x41, 0x48, 0x3c, 0x16, 0x2d, 0x61, 0x01, 0x48, + 0x80, 0xcb, 0x2f, 0x61, 0x41, 0xe1, 0x00, 0x61, 0x01, 0xa2, 0xa4, 0x01, + 0xa3, 0x97, 0x01, 0xa4, 0x7f, 0xa7, 0x73, 0x42, 0x22, 0x00, 0x0a, 0x61, + 0x01, 0xaa, 0x61, 0xab, 0x55, 0x42, 0x74, 0x00, 0x1c, 0x61, 0x01, 0x42, + 0x6c, 0x00, 0x19, 0x61, 0x01, 0xae, 0x3d, 0xb0, 0x31, 0x42, 0x71, 0x00, + 0x1b, 0x61, 0x01, 0x42, 0x40, 0x06, 0x1d, 0x61, 0x01, 0xb4, 0x0c, 0x42, + 0xf5, 0x0a, 0x0f, 0x61, 0x01, 0x42, 0xbc, 0x22, 0x1a, 0x61, 0x41, 0xe1, + 0x10, 0x61, 0x01, 0x42, 0x22, 0x00, 0x11, 0x61, 0x01, 0xb4, 0x01, 0xff, + 0xe1, 0x0b, 0x61, 0x01, 0x42, 0x22, 0x00, 0x0c, 0x61, 0x41, 0xe1, 0x15, + 0x61, 0x01, 0x42, 0x22, 0x00, 0x16, 0x61, 0x41, 0xe1, 0x14, 0x61, 0x01, + 0x42, 0x24, 0x02, 0x05, 0x61, 0x41, 0xe1, 0x01, 0x61, 0x01, 0x42, 0x22, + 0x00, 0x02, 0x61, 0x41, 0xe1, 0x08, 0x61, 0x01, 0x42, 0x22, 0x00, 0x09, + 0x61, 0x41, 0xe1, 0x03, 0x61, 0x01, 0x42, 0x22, 0x00, 0x04, 0x61, 0x41, + 0xe1, 0x12, 0x61, 0x01, 0xa4, 0x06, 0x42, 0x22, 0x00, 0x13, 0x61, 0x41, + 0xe1, 0x0d, 0x61, 0x01, 0x42, 0x22, 0x00, 0x0e, 0x61, 0x41, 0xe1, 0x06, + 0x61, 0x01, 0x42, 0x22, 0x00, 0x07, 0x61, 0x41, 0xe1, 0x17, 0x61, 0x01, + 0x42, 0x22, 0x00, 0x18, 0x61, 0x41, 0x45, 0x12, 0x0b, 0x38, 0x61, 0x01, + 0xa6, 0x2e, 0x44, 0xcf, 0x2a, 0x39, 0x61, 0x01, 0x43, 0x0e, 0x0b, 0x31, + 0x61, 0x01, 0xb3, 0x14, 0xb4, 0x06, 0x44, 0x43, 0x1e, 0x30, 0x61, 0x41, + 0x44, 0x25, 0x01, 0x33, 0x61, 0x01, 0x42, 0x15, 0x02, 0x32, 0x61, 0x41, + 0x44, 0xc9, 0x1d, 0x37, 0x61, 0x01, 0x42, 0x01, 0x26, 0x36, 0x61, 0x41, + 0x43, 0xd2, 0x05, 0x35, 0x61, 0x01, 0x43, 0xf6, 0x06, 0x34, 0x61, 0x41, + 0x42, 0x22, 0x00, 0x2c, 0x61, 0x01, 0x42, 0x71, 0x00, 0x2e, 0x61, 0x01, + 0x42, 0xf5, 0x0a, 0x2b, 0x61, 0x01, 0x42, 0xbc, 0x22, 0x2a, 0x61, 0x41, + 0xa1, 0xe4, 0x03, 0x06, 0xef, 0x06, 0x9d, 0x03, 0x48, 0x88, 0xc5, 0x74, + 0x0a, 0x00, 0x43, 0xe4, 0x0a, 0x72, 0x0a, 0x00, 0x07, 0xec, 0x05, 0x6f, + 0x05, 0x5a, 0x03, 0x3d, 0x45, 0x4b, 0xeb, 0x70, 0x0a, 0x00, 0x43, 0x70, + 0x00, 0x73, 0x0a, 0x00, 0x0b, 0x40, 0x77, 0x01, 0xff, 0xa1, 0x1e, 0x42, + 0x27, 0x01, 0x47, 0x0a, 0x00, 0xe9, 0x3f, 0x0a, 0x80, 0x0f, 0x42, 0xcd, + 0x02, 0x4b, 0x0a, 0x00, 0xf5, 0x41, 0x0a, 0xc0, 0x00, 0xf5, 0x42, 0x0a, + 0x40, 0xe9, 0x40, 0x0a, 0x40, 0xe1, 0x3e, 0x0a, 0x00, 0xe9, 0x48, 0x0a, + 0x00, 0xf5, 0x4c, 0x0a, 0x40, 0x4a, 0x63, 0xa7, 0x01, 0x0a, 0x00, 0x45, + 0x4f, 0x6b, 0x02, 0x0a, 0x00, 0x45, 0x3f, 0x3f, 0x3c, 0x0a, 0x00, 0x45, + 0xbe, 0xeb, 0x51, 0x0a, 0x00, 0x02, 0x02, 0x00, 0x06, 0x46, 0x72, 0xe1, + 0x75, 0x0a, 0x40, 0x44, 0xe5, 0x23, 0x4d, 0x0a, 0x00, 0x45, 0xec, 0x4b, + 0x03, 0x0a, 0x40, 0xe1, 0x05, 0x0a, 0x80, 0x8c, 0x02, 0xa2, 0xff, 0x01, + 0xa3, 0xf2, 0x01, 0xa4, 0xd9, 0x01, 0x42, 0x27, 0x01, 0x0f, 0x0a, 0x00, + 0x42, 0x0c, 0x08, 0x5e, 0x0a, 0x00, 0xa7, 0xb9, 0x01, 0x42, 0x22, 0x00, + 0x39, 0x0a, 0x00, 0xe9, 0x07, 0x0a, 0x80, 0xa9, 0x01, 0xaa, 0x9c, 0x01, + 0xab, 0x88, 0x01, 0xac, 0x7c, 0x42, 0x6c, 0x00, 0x2e, 0x0a, 0x00, 0xae, + 0x5e, 0x42, 0xcd, 0x02, 0x13, 0x0a, 0x00, 0xb0, 0x4c, 0xb2, 0x40, 0xb3, + 0x34, 0xb4, 0x1b, 0xf5, 0x09, 0x0a, 0x80, 0x12, 0x42, 0xf5, 0x0a, 0x35, + 0x0a, 0x00, 0x42, 0xbc, 0x22, 0x2f, 0x0a, 0x00, 0x42, 0x59, 0x00, 0x5b, + 0x0a, 0x40, 0xf5, 0x0a, 0x0a, 0x40, 0xe1, 0x24, 0x0a, 0x00, 0x42, 0x22, + 0x00, 0x25, 0x0a, 0x00, 0xb4, 0x01, 0xff, 0xe1, 0x1f, 0x0a, 0x00, 0x42, + 0x22, 0x00, 0x20, 0x0a, 0x40, 0xe1, 0x38, 0x0a, 0x00, 0x42, 0x22, 0x00, + 0x36, 0x0a, 0x40, 0xe1, 0x30, 0x0a, 0x00, 0x42, 0x71, 0x00, 0x5c, 0x0a, + 0x40, 0xe1, 0x2a, 0x0a, 0x00, 0x42, 0x22, 0x00, 0x2b, 0x0a, 0x40, 0xe1, + 0x28, 0x0a, 0x00, 0x42, 0x24, 0x02, 0x19, 0x0a, 0x00, 0x42, 0x2a, 0x05, + 0x23, 0x0a, 0x00, 0x42, 0xbc, 0x22, 0x1e, 0x0a, 0x40, 0xe1, 0x32, 0x0a, + 0x00, 0x42, 0x74, 0x00, 0x33, 0x0a, 0x40, 0xe1, 0x15, 0x0a, 0x00, 0xa8, + 0x01, 0xff, 0xe1, 0x16, 0x0a, 0x00, 0x42, 0x22, 0x00, 0x59, 0x0a, 0x40, + 0xe1, 0x1c, 0x0a, 0x00, 0x42, 0x22, 0x00, 0x1d, 0x0a, 0x40, 0xe9, 0x08, + 0x0a, 0x40, 0xe1, 0x17, 0x0a, 0x00, 0xa8, 0x01, 0xff, 0xe1, 0x18, 0x0a, + 0x00, 0x42, 0x22, 0x00, 0x5a, 0x0a, 0x40, 0xe1, 0x26, 0x0a, 0x00, 0xa4, + 0x06, 0x42, 0x22, 0x00, 0x27, 0x0a, 0x40, 0xe1, 0x21, 0x0a, 0x00, 0x42, + 0x22, 0x00, 0x22, 0x0a, 0x40, 0xe1, 0x1a, 0x0a, 0x00, 0x42, 0x22, 0x00, + 0x1b, 0x0a, 0x40, 0xe1, 0x2c, 0x0a, 0x00, 0x42, 0x22, 0x00, 0x2d, 0x0a, + 0x40, 0xe1, 0x06, 0x0a, 0x00, 0xe9, 0x10, 0x0a, 0x00, 0xf5, 0x14, 0x0a, + 0x40, 0x45, 0x12, 0x0b, 0x6e, 0x0a, 0x00, 0xa6, 0x2e, 0x44, 0xcf, 0x2a, + 0x6f, 0x0a, 0x00, 0x43, 0x0e, 0x0b, 0x67, 0x0a, 0x00, 0xb3, 0x14, 0xb4, + 0x06, 0x44, 0x43, 0x1e, 0x66, 0x0a, 0x40, 0x44, 0x25, 0x01, 0x69, 0x0a, + 0x00, 0x42, 0x15, 0x02, 0x68, 0x0a, 0x40, 0x44, 0xc9, 0x1d, 0x6d, 0x0a, + 0x00, 0x42, 0x01, 0x26, 0x6c, 0x0a, 0x40, 0x43, 0xd2, 0x05, 0x6b, 0x0a, + 0x00, 0x43, 0xf6, 0x06, 0x6a, 0x0a, 0x40, 0x50, 0xdd, 0x57, 0x76, 0x0a, + 0x00, 0x44, 0x7d, 0xef, 0x71, 0x0a, 0x40, 0x06, 0xef, 0x06, 0xbe, 0x02, + 0x07, 0xec, 0x05, 0x50, 0x42, 0x14, 0x05, 0x98, 0x1d, 0x01, 0x05, 0x5a, + 0x03, 0x3a, 0xb6, 0x01, 0xff, 0x45, 0xe4, 0x23, 0x97, 0x1d, 0x01, 0x0a, + 0x41, 0x77, 0x01, 0xff, 0xa1, 0x1e, 0x42, 0x27, 0x01, 0x90, 0x1d, 0x01, + 0xe9, 0x8b, 0x1d, 0x81, 0x0f, 0x42, 0xcd, 0x02, 0x93, 0x1d, 0x01, 0xf5, + 0x8d, 0x1d, 0xc1, 0x00, 0xf5, 0x8e, 0x1d, 0x41, 0xe9, 0x8c, 0x1d, 0x41, + 0xe1, 0x8a, 0x1d, 0x01, 0xe9, 0x91, 0x1d, 0x01, 0xf5, 0x94, 0x1d, 0x41, + 0x48, 0x3c, 0x16, 0x95, 0x1d, 0x01, 0x47, 0xea, 0x4b, 0x96, 0x1d, 0x41, + 0xe1, 0x60, 0x1d, 0x81, 0xd8, 0x01, 0xa2, 0xcb, 0x01, 0xa3, 0xbe, 0x01, + 0xa4, 0xa5, 0x01, 0x42, 0x27, 0x01, 0x67, 0x1d, 0x01, 0xa7, 0x92, 0x01, + 0x42, 0x22, 0x00, 0x87, 0x1d, 0x01, 0xe9, 0x62, 0x1d, 0x81, 0x82, 0x01, + 0xaa, 0x76, 0xab, 0x6a, 0xac, 0x5e, 0x42, 0x6c, 0x00, 0x70, 0x1d, 0x01, + 0xae, 0x4c, 0x42, 0xcd, 0x02, 0x6a, 0x1d, 0x01, 0xb0, 0x3a, 0x42, 0x71, + 0x00, 0x88, 0x1d, 0x01, 0x42, 0x40, 0x06, 0x89, 0x1d, 0x01, 0xb4, 0x15, + 0xf5, 0x64, 0x1d, 0x81, 0x0c, 0x42, 0xf5, 0x0a, 0x6d, 0x1d, 0x01, 0x42, + 0xbc, 0x22, 0x6c, 0x1d, 0x41, 0xf5, 0x65, 0x1d, 0x41, 0xe1, 0x73, 0x1d, + 0x01, 0x42, 0x22, 0x00, 0x74, 0x1d, 0x01, 0xb4, 0x01, 0xff, 0xe1, 0x7d, + 0x1d, 0x01, 0x42, 0x22, 0x00, 0x7e, 0x1d, 0x41, 0xe1, 0x85, 0x1d, 0x01, + 0x42, 0x22, 0x00, 0x86, 0x1d, 0x41, 0xe1, 0x7a, 0x1d, 0x01, 0x42, 0x24, + 0x02, 0x84, 0x1d, 0x41, 0xe1, 0x75, 0x1d, 0x01, 0x42, 0x74, 0x00, 0x7f, + 0x1d, 0x41, 0xe1, 0x71, 0x1d, 0x01, 0x42, 0x22, 0x00, 0x72, 0x1d, 0x41, + 0xe1, 0x80, 0x1d, 0x01, 0x42, 0x22, 0x00, 0x81, 0x1d, 0x41, 0xe9, 0x63, + 0x1d, 0x41, 0xe1, 0x76, 0x1d, 0x01, 0x42, 0x22, 0x00, 0x77, 0x1d, 0x41, + 0xe1, 0x78, 0x1d, 0x01, 0xa4, 0x06, 0x42, 0x22, 0x00, 0x79, 0x1d, 0x41, + 0xe1, 0x82, 0x1d, 0x01, 0x42, 0x22, 0x00, 0x83, 0x1d, 0x41, 0xe1, 0x7b, + 0x1d, 0x01, 0x42, 0x22, 0x00, 0x7c, 0x1d, 0x41, 0xe1, 0x6e, 0x1d, 0x01, + 0x42, 0x22, 0x00, 0x6f, 0x1d, 0x41, 0xe1, 0x61, 0x1d, 0x01, 0xe9, 0x68, + 0x1d, 0x01, 0xf5, 0x6b, 0x1d, 0x41, 0x45, 0x12, 0x0b, 0xa8, 0x1d, 0x01, + 0xa6, 0x2e, 0x44, 0xcf, 0x2a, 0xa9, 0x1d, 0x01, 0x43, 0x0e, 0x0b, 0xa1, + 0x1d, 0x01, 0xb3, 0x14, 0xb4, 0x06, 0x44, 0x43, 0x1e, 0xa0, 0x1d, 0x41, + 0x44, 0x25, 0x01, 0xa3, 0x1d, 0x01, 0x42, 0x15, 0x02, 0xa2, 0x1d, 0x41, + 0x44, 0xc9, 0x1d, 0xa7, 0x1d, 0x01, 0x42, 0x01, 0x26, 0xa6, 0x1d, 0x41, + 0x43, 0xd2, 0x05, 0xa5, 0x1d, 0x01, 0x43, 0xf6, 0x06, 0xa4, 0x1d, 0x41, + 0x51, 0xdc, 0x57, 0xf0, 0x0a, 0x00, 0x06, 0xef, 0x06, 0xe9, 0x03, 0x07, + 0xec, 0x05, 0xc6, 0x01, 0x42, 0x14, 0x05, 0xd0, 0x0a, 0x00, 0x4a, 0x65, + 0x80, 0xf1, 0x0a, 0x00, 0x05, 0x5a, 0x03, 0x61, 0x06, 0x3c, 0x39, 0x01, + 0xff, 0x07, 0x36, 0x61, 0x50, 0x05, 0x5a, 0x03, 0x01, 0xff, 0xa1, 0x3d, + 0x07, 0x36, 0x61, 0x31, 0xe5, 0xc7, 0x0a, 0x00, 0xe9, 0xbf, 0x0a, 0x80, + 0x24, 0xef, 0xcb, 0x0a, 0x00, 0xf5, 0xc1, 0x0a, 0x80, 0x17, 0x08, 0x22, + 0xc1, 0x01, 0xff, 0xec, 0xe2, 0x0a, 0x80, 0x09, 0xf2, 0xc3, 0x0a, 0xc0, + 0x00, 0xf2, 0xc4, 0x0a, 0x40, 0xec, 0xe3, 0x0a, 0x40, 0xf5, 0xc2, 0x0a, + 0x40, 0xe9, 0xc0, 0x0a, 0x40, 0xe5, 0xc5, 0x0a, 0x00, 0xef, 0xc9, 0x0a, + 0x40, 0xe1, 0xbe, 0x0a, 0x00, 0xe9, 0xc8, 0x0a, 0x00, 0xf5, 0xcc, 0x0a, + 0x40, 0xe5, 0x8d, 0x0a, 0x00, 0xef, 0x91, 0x0a, 0x40, 0xa1, 0x47, 0xa3, + 0x39, 0x46, 0xe8, 0xdd, 0xfc, 0x0a, 0x00, 0x45, 0x3f, 0x3f, 0xbc, 0x0a, + 0x00, 0xb3, 0x1f, 0xb4, 0x11, 0x02, 0x02, 0x00, 0x01, 0xff, 0x44, 0xe5, + 0x23, 0xcd, 0x0a, 0x00, 0x45, 0xec, 0x4b, 0x83, 0x0a, 0x40, 0x54, 0xf8, + 0x42, 0xfd, 0x0a, 0x00, 0x55, 0x35, 0x3f, 0xff, 0x0a, 0x40, 0x45, 0xc8, + 0xe6, 0xfb, 0x0a, 0x00, 0x44, 0x24, 0xeb, 0xfa, 0x0a, 0x40, 0x4a, 0xd8, + 0x23, 0x81, 0x0a, 0x00, 0x51, 0x39, 0x3f, 0xfe, 0x0a, 0x40, 0x47, 0x3d, + 0x16, 0x82, 0x0a, 0x00, 0x47, 0xaf, 0x88, 0xbd, 0x0a, 0x40, 0xe1, 0x85, + 0x0a, 0x80, 0x8c, 0x02, 0xa2, 0xff, 0x01, 0xa3, 0xf2, 0x01, 0xa4, 0xd9, + 0x01, 0xe5, 0x8f, 0x0a, 0x00, 0xa7, 0xc8, 0x01, 0x42, 0x22, 0x00, 0xb9, + 0x0a, 0x00, 0xe9, 0x87, 0x0a, 0x80, 0xb8, 0x01, 0xaa, 0xab, 0x01, 0xab, + 0x9e, 0x01, 0xac, 0x91, 0x01, 0x42, 0x6c, 0x00, 0xae, 0x0a, 0x00, 0xae, + 0x73, 0xef, 0x93, 0x0a, 0x00, 0xb0, 0x63, 0x42, 0x71, 0x00, 0xb0, 0x0a, + 0x00, 0xb3, 0x4b, 0xb4, 0x32, 0xf5, 0x89, 0x0a, 0x80, 0x29, 0xb6, 0x0c, + 0x42, 0xbc, 0x22, 0xaf, 0x0a, 0x00, 0x43, 0xcb, 0xc0, 0xf9, 0x0a, 0x40, + 0xe1, 0xb5, 0x0a, 0x00, 0x07, 0x23, 0xc1, 0x01, 0xff, 0xec, 0x8c, 0x0a, + 0x80, 0x09, 0xf2, 0x8b, 0x0a, 0xc0, 0x00, 0xf2, 0xe0, 0x0a, 0x40, 0xec, + 0xe1, 0x0a, 0x40, 0xf5, 0x8a, 0x0a, 0x40, 0xe1, 0xa4, 0x0a, 0x00, 0x42, + 0x22, 0x00, 0xa5, 0x0a, 0x00, 0xb4, 0x01, 0xff, 0xe1, 0x9f, 0x0a, 0x00, + 0x42, 0x22, 0x00, 0xa0, 0x0a, 0x40, 0xe1, 0xb8, 0x0a, 0x00, 0x42, 0x22, + 0x00, 0xb6, 0x0a, 0x00, 0x42, 0x40, 0x06, 0xb7, 0x0a, 0x40, 0xe1, 0xaa, + 0x0a, 0x00, 0x42, 0x22, 0x00, 0xab, 0x0a, 0x40, 0xe1, 0xa8, 0x0a, 0x00, + 0x42, 0x24, 0x02, 0x99, 0x0a, 0x00, 0x42, 0x2a, 0x05, 0xa3, 0x0a, 0x00, + 0x42, 0xbc, 0x22, 0x9e, 0x0a, 0x40, 0xe1, 0xb2, 0x0a, 0x00, 0x42, 0x74, + 0x00, 0xb3, 0x0a, 0x40, 0xe1, 0x95, 0x0a, 0x00, 0x42, 0x22, 0x00, 0x96, + 0x0a, 0x40, 0xe1, 0x9c, 0x0a, 0x00, 0x42, 0x22, 0x00, 0x9d, 0x0a, 0x40, + 0xe9, 0x88, 0x0a, 0x40, 0xe1, 0x97, 0x0a, 0x00, 0x42, 0x22, 0x00, 0x98, + 0x0a, 0x40, 0xe1, 0xa6, 0x0a, 0x00, 0xa4, 0x06, 0x42, 0x22, 0x00, 0xa7, + 0x0a, 0x40, 0xe1, 0xa1, 0x0a, 0x00, 0x42, 0x22, 0x00, 0xa2, 0x0a, 0x40, + 0xe1, 0x9a, 0x0a, 0x00, 0x42, 0x22, 0x00, 0x9b, 0x0a, 0x40, 0xe1, 0xac, + 0x0a, 0x00, 0x42, 0x22, 0x00, 0xad, 0x0a, 0x40, 0xe1, 0x86, 0x0a, 0x00, + 0xe9, 0x90, 0x0a, 0x00, 0xf5, 0x94, 0x0a, 0x40, 0x45, 0x12, 0x0b, 0xee, + 0x0a, 0x00, 0xa6, 0x2e, 0x44, 0xcf, 0x2a, 0xef, 0x0a, 0x00, 0x43, 0x0e, + 0x0b, 0xe7, 0x0a, 0x00, 0xb3, 0x14, 0xb4, 0x06, 0x44, 0x43, 0x1e, 0xe6, + 0x0a, 0x40, 0x44, 0x25, 0x01, 0xe9, 0x0a, 0x00, 0x42, 0x15, 0x02, 0xe8, + 0x0a, 0x40, 0x44, 0xc9, 0x1d, 0xed, 0x0a, 0x00, 0x42, 0x01, 0x26, 0xec, + 0x0a, 0x40, 0x43, 0xd2, 0x05, 0xeb, 0x0a, 0x00, 0x43, 0xf6, 0x06, 0xea, + 0x0a, 0x40, 0x46, 0xdc, 0xda, 0xae, 0xf9, 0x01, 0x43, 0x32, 0x13, 0xb8, + 0xf3, 0x41, 0x48, 0x10, 0x9c, 0xb2, 0x20, 0x00, 0x45, 0xa6, 0xe5, 0x82, + 0xf4, 0x41, 0xa1, 0x81, 0x1f, 0xa5, 0x4d, 0xa9, 0x19, 0xaf, 0x01, 0xff, + 0x03, 0x7d, 0x15, 0x06, 0x4a, 0x89, 0xb3, 0x97, 0xf4, 0x41, 0x44, 0xb9, + 0x00, 0xd2, 0x2b, 0x00, 0x49, 0xd8, 0x20, 0x1d, 0x00, 0x40, 0x4b, 0x3b, + 0x9f, 0x2c, 0xf6, 0x01, 0x06, 0x6b, 0xa2, 0x01, 0xff, 0x5a, 0x62, 0x1f, + 0x38, 0xf6, 0x01, 0x44, 0x0c, 0x08, 0x00, 0xf6, 0xc1, 0x00, 0x06, 0x50, + 0x00, 0x01, 0xff, 0x5b, 0xae, 0x1c, 0x2a, 0xf9, 0x01, 0xb3, 0x01, 0xff, + 0x4b, 0x71, 0x1f, 0x01, 0xf6, 0x01, 0x48, 0x60, 0xcb, 0x29, 0xf9, 0x41, + 0x0a, 0x8a, 0x00, 0xce, 0x1c, 0xa5, 0x06, 0x47, 0xbb, 0xd7, 0x76, 0xfa, + 0x41, 0x02, 0xbc, 0x00, 0x1d, 0x02, 0x92, 0x00, 0x01, 0xff, 0x45, 0x57, + 0xe4, 0x4f, 0xf3, 0x01, 0x44, 0x45, 0xef, 0xd7, 0xf4, 0x01, 0x45, 0xac, + 0x21, 0x9a, 0xf4, 0x01, 0x45, 0xba, 0xea, 0x57, 0xf9, 0x41, 0xa1, 0xde, + 0x18, 0x4b, 0x9a, 0x99, 0xd0, 0x03, 0x00, 0x08, 0xe4, 0x05, 0xbe, 0x10, + 0xa4, 0xf7, 0x0f, 0xa6, 0xe8, 0x0f, 0x4b, 0x7b, 0x9c, 0x88, 0x01, 0x01, + 0x02, 0x9e, 0x01, 0xb8, 0x0e, 0xab, 0x9b, 0x0e, 0xac, 0xa9, 0x0d, 0xad, + 0x9a, 0x0d, 0x4c, 0x20, 0x5d, 0x74, 0x03, 0x00, 0xaf, 0xe8, 0x0c, 0xb0, + 0xaf, 0x0c, 0x4d, 0xa6, 0x34, 0x7e, 0x03, 0x00, 0xb2, 0x8f, 0x0c, 0xb3, + 0xf4, 0x01, 0xb4, 0xb5, 0x01, 0x0d, 0xad, 0x89, 0x9e, 0x01, 0xb6, 0x1a, + 0x4b, 0x4a, 0xa5, 0x85, 0x01, 0x01, 0xb9, 0x06, 0x49, 0xd6, 0xc1, 0x8a, + 0x01, 0x41, 0x48, 0x98, 0xc1, 0x79, 0x01, 0x01, 0x4c, 0x39, 0x4f, 0x7a, + 0x03, 0x40, 0x44, 0x9c, 0x30, 0xef, 0x1f, 0x00, 0x15, 0x28, 0x3d, 0x01, + 0xff, 0xd1, 0x00, 0xd2, 0x81, 0x4a, 0xd2, 0x01, 0xd2, 0x81, 0x31, 0xd3, + 0x02, 0xd2, 0x01, 0xd4, 0x03, 0xd2, 0x01, 0xd5, 0x04, 0xd2, 0x81, 0x10, + 0xd6, 0x05, 0xd2, 0x01, 0xd7, 0x06, 0xd2, 0x01, 0xd8, 0x07, 0xd2, 0x01, + 0xd9, 0x08, 0xd2, 0x41, 0xd0, 0x18, 0xd2, 0x01, 0xd1, 0x19, 0xd2, 0x01, + 0xd2, 0x1a, 0xd2, 0x01, 0xd3, 0x1b, 0xd2, 0x01, 0xd4, 0x1c, 0xd2, 0x41, + 0xd0, 0x13, 0xd2, 0x01, 0xd1, 0x14, 0xd2, 0x01, 0xd2, 0x15, 0xd2, 0x01, + 0xd3, 0x16, 0xd2, 0x01, 0xd4, 0x17, 0xd2, 0x41, 0xd0, 0x09, 0xd2, 0x01, + 0xd1, 0x0a, 0xd2, 0x01, 0xd2, 0x0b, 0xd2, 0x01, 0xd3, 0x0c, 0xd2, 0x01, + 0xd4, 0x0d, 0xd2, 0x01, 0xd5, 0x0e, 0xd2, 0x01, 0xd6, 0x0f, 0xd2, 0x01, + 0xd7, 0x10, 0xd2, 0x01, 0xd8, 0x11, 0xd2, 0x01, 0xd9, 0x12, 0xd2, 0x41, + 0x55, 0xf9, 0x38, 0xd3, 0x03, 0x00, 0x59, 0xb7, 0x23, 0xd4, 0x03, 0x00, + 0x4b, 0xc5, 0x23, 0xd2, 0x03, 0x40, 0x4a, 0xa9, 0xa7, 0x7a, 0x01, 0x01, + 0xa8, 0x1d, 0x44, 0x1d, 0x6c, 0x84, 0x03, 0x00, 0x51, 0xb4, 0x5d, 0x89, + 0x01, 0x01, 0x03, 0x20, 0x0a, 0x01, 0xff, 0x4a, 0x0f, 0x79, 0x7d, 0x01, + 0x01, 0x4b, 0x71, 0xa3, 0x77, 0x01, 0x41, 0x4a, 0xc9, 0x95, 0xd1, 0x03, + 0x00, 0x04, 0x26, 0x01, 0x01, 0xff, 0x4a, 0x0f, 0x79, 0x7e, 0x01, 0x01, + 0x4d, 0xa5, 0x87, 0x78, 0x01, 0x41, 0x4c, 0x4b, 0x90, 0x8c, 0x01, 0x01, + 0x05, 0x5e, 0x07, 0x28, 0x16, 0xb5, 0x37, 0x06, 0x4d, 0xcb, 0x8a, 0xa0, + 0x01, 0x41, 0x44, 0x9a, 0x99, 0x66, 0x1d, 0x00, 0x43, 0x79, 0x16, 0x6a, + 0x1d, 0x00, 0x45, 0x2c, 0x58, 0x67, 0x1d, 0x00, 0x43, 0x53, 0x20, 0x69, + 0x1d, 0x00, 0x43, 0xef, 0x49, 0x68, 0x1d, 0x40, 0x5a, 0xb0, 0x1f, 0x7c, + 0x03, 0x00, 0x07, 0xec, 0x05, 0x11, 0x09, 0xdd, 0x14, 0x01, 0xff, 0x5a, + 0xb0, 0x1f, 0x7d, 0x03, 0x00, 0x53, 0xb7, 0x1f, 0x7b, 0x03, 0x40, 0xa1, + 0xf6, 0x07, 0x44, 0x9a, 0x99, 0xb2, 0x03, 0x00, 0x43, 0x79, 0x16, 0xc7, + 0x03, 0x00, 0xa4, 0xdb, 0x07, 0xa5, 0xd6, 0x05, 0x4b, 0x18, 0x9c, 0xc2, + 0x03, 0x00, 0x45, 0x2c, 0x58, 0xb3, 0x03, 0x00, 0x44, 0xc8, 0x95, 0x71, + 0x03, 0x00, 0x44, 0x99, 0x2e, 0xb9, 0x03, 0x80, 0xac, 0x04, 0xab, 0x9d, + 0x04, 0x45, 0x17, 0xe8, 0xbb, 0x03, 0x00, 0x42, 0xc3, 0x16, 0xbc, 0x03, + 0x00, 0x42, 0x3d, 0x16, 0xbd, 0x03, 0x00, 0x02, 0x14, 0x05, 0x85, 0x02, + 0xb0, 0xec, 0x01, 0x43, 0xef, 0x49, 0xc1, 0x03, 0x80, 0xd3, 0x01, 0xb3, + 0xb2, 0x01, 0xb4, 0xa3, 0x01, 0x47, 0xad, 0x89, 0xc5, 0x03, 0x80, 0x0c, + 0x42, 0xe2, 0x0c, 0xbe, 0x03, 0x00, 0x44, 0x61, 0xf3, 0xb6, 0x03, 0x40, + 0x06, 0x50, 0x00, 0x01, 0xff, 0xa4, 0x47, 0x46, 0xad, 0x70, 0xe1, 0x1f, + 0x00, 0x44, 0xf5, 0xf1, 0x7b, 0x1f, 0x00, 0xb0, 0x15, 0x45, 0x1c, 0x6c, + 0xcd, 0x03, 0x00, 0xb6, 0x01, 0xff, 0x44, 0x9c, 0x30, 0x7a, 0x1f, 0x00, + 0x45, 0x29, 0xea, 0xe0, 0x1f, 0x40, 0x4a, 0x41, 0xa1, 0xe6, 0x1f, 0x00, + 0x44, 0xc3, 0x88, 0x50, 0x1f, 0xc0, 0x00, 0x05, 0x19, 0x00, 0x01, 0xff, + 0x44, 0xf5, 0xf1, 0x54, 0x1f, 0x00, 0x4b, 0x40, 0xa1, 0x56, 0x1f, 0x00, + 0x45, 0x9b, 0x30, 0x52, 0x1f, 0x40, 0x44, 0x47, 0x61, 0x51, 0x1f, 0x80, + 0x24, 0x48, 0x13, 0x6c, 0xcb, 0x03, 0xc0, 0x00, 0x05, 0x19, 0x00, 0x01, + 0xff, 0x44, 0xf5, 0xf1, 0xe3, 0x1f, 0x00, 0x4b, 0x40, 0xa1, 0xe7, 0x1f, + 0x00, 0x45, 0x1c, 0x6c, 0xb0, 0x03, 0x00, 0x45, 0x9b, 0x30, 0xe2, 0x1f, + 0x40, 0x05, 0x19, 0x00, 0x01, 0xff, 0x44, 0xf5, 0xf1, 0x55, 0x1f, 0x00, + 0x4b, 0x40, 0xa1, 0x57, 0x1f, 0x00, 0x45, 0x9b, 0x30, 0x53, 0x1f, 0x40, + 0x42, 0x5f, 0x24, 0xc4, 0x03, 0x00, 0x44, 0xc8, 0x95, 0xb8, 0x03, 0x40, + 0xa1, 0x12, 0x42, 0x0b, 0x00, 0xf8, 0x03, 0x00, 0x44, 0xbf, 0x1f, 0xc3, + 0x03, 0x00, 0x45, 0x41, 0xeb, 0xdb, 0x03, 0x40, 0x43, 0x38, 0x94, 0xe1, + 0x03, 0x00, 0xee, 0xfb, 0x03, 0x40, 0x06, 0x50, 0x00, 0x01, 0xff, 0x45, + 0xb1, 0x76, 0xe5, 0x1f, 0x00, 0x45, 0x10, 0xea, 0xe4, 0x1f, 0x40, 0x51, + 0x20, 0x58, 0x77, 0x03, 0x00, 0x42, 0x49, 0x00, 0xc6, 0x03, 0x00, 0xe9, + 0xc0, 0x03, 0x00, 0x42, 0x5a, 0x03, 0xc8, 0x03, 0x40, 0x43, 0xce, 0x05, + 0xc9, 0x03, 0x80, 0x4e, 0x45, 0x4a, 0xe7, 0xbf, 0x03, 0xc0, 0x00, 0x06, + 0x50, 0x00, 0x01, 0xff, 0x45, 0xb1, 0x76, 0x41, 0x1f, 0x80, 0x2a, 0x44, + 0xf5, 0xf1, 0x79, 0x1f, 0x00, 0x45, 0x10, 0xea, 0x40, 0x1f, 0x80, 0x0c, + 0x45, 0x1c, 0x6c, 0xcc, 0x03, 0x00, 0x45, 0x9b, 0x30, 0x78, 0x1f, 0x40, + 0x05, 0x19, 0x00, 0x01, 0xff, 0x44, 0xf5, 0xf1, 0x44, 0x1f, 0x00, 0x45, + 0x9b, 0x30, 0x42, 0x1f, 0x40, 0x05, 0x19, 0x00, 0x01, 0xff, 0x44, 0xf5, + 0xf1, 0x45, 0x1f, 0x00, 0x45, 0x9b, 0x30, 0x43, 0x1f, 0x40, 0x06, 0x50, + 0x00, 0x01, 0xff, 0x45, 0xb1, 0x76, 0x61, 0x1f, 0x80, 0x6e, 0x44, 0xf5, + 0xf1, 0x7d, 0x1f, 0x80, 0x61, 0xb0, 0x19, 0x45, 0x1c, 0x6c, 0xce, 0x03, + 0x00, 0x45, 0x9b, 0x30, 0x7c, 0x1f, 0x80, 0x06, 0x4d, 0x38, 0x4f, 0xf3, + 0x1f, 0x40, 0x52, 0x33, 0x4f, 0xf2, 0x1f, 0x40, 0x4a, 0x41, 0xa1, 0xf6, + 0x1f, 0x80, 0x39, 0x44, 0xc3, 0x88, 0x60, 0x1f, 0xc0, 0x00, 0x05, 0x19, + 0x00, 0x01, 0xff, 0x44, 0xf5, 0xf1, 0x64, 0x1f, 0x80, 0x20, 0x4b, 0x40, + 0xa1, 0x66, 0x1f, 0x80, 0x13, 0x45, 0x9b, 0x30, 0x62, 0x1f, 0x80, 0x06, + 0x4d, 0x38, 0x4f, 0xa0, 0x1f, 0x40, 0x52, 0x33, 0x4f, 0xa2, 0x1f, 0x40, + 0x52, 0x33, 0x4f, 0xa6, 0x1f, 0x40, 0x52, 0x33, 0x4f, 0xa4, 0x1f, 0x40, + 0x52, 0x33, 0x4f, 0xf7, 0x1f, 0x40, 0x52, 0x33, 0x4f, 0xf4, 0x1f, 0x40, + 0x05, 0x19, 0x00, 0x01, 0xff, 0x44, 0xf5, 0xf1, 0x65, 0x1f, 0x80, 0x20, + 0x4b, 0x40, 0xa1, 0x67, 0x1f, 0x80, 0x13, 0x45, 0x9b, 0x30, 0x63, 0x1f, + 0x80, 0x06, 0x4d, 0x38, 0x4f, 0xa1, 0x1f, 0x40, 0x52, 0x33, 0x4f, 0xa3, + 0x1f, 0x40, 0x52, 0x33, 0x4f, 0xa7, 0x1f, 0x40, 0x52, 0x33, 0x4f, 0xa5, + 0x1f, 0x40, 0x44, 0x94, 0x90, 0xba, 0x03, 0x00, 0x44, 0xac, 0x80, 0xdf, + 0x03, 0x40, 0x06, 0x50, 0x00, 0x01, 0xff, 0xa4, 0x47, 0x46, 0xad, 0x70, + 0xd1, 0x1f, 0x00, 0x44, 0xf5, 0xf1, 0x77, 0x1f, 0x00, 0xb0, 0x15, 0x45, + 0x1c, 0x6c, 0xaf, 0x03, 0x00, 0xb6, 0x01, 0xff, 0x44, 0x9c, 0x30, 0x76, + 0x1f, 0x00, 0x45, 0x29, 0xea, 0xd0, 0x1f, 0x40, 0x4a, 0x41, 0xa1, 0xd6, + 0x1f, 0x00, 0x44, 0xc3, 0x88, 0x30, 0x1f, 0xc0, 0x00, 0x05, 0x19, 0x00, + 0x01, 0xff, 0x44, 0xf5, 0xf1, 0x34, 0x1f, 0x00, 0x4b, 0x40, 0xa1, 0x36, + 0x1f, 0x00, 0x45, 0x9b, 0x30, 0x32, 0x1f, 0x40, 0x44, 0x47, 0x61, 0x31, + 0x1f, 0x80, 0x24, 0x48, 0x13, 0x6c, 0xca, 0x03, 0xc0, 0x00, 0x05, 0x19, + 0x00, 0x01, 0xff, 0x44, 0xf5, 0xf1, 0xd3, 0x1f, 0x00, 0x4b, 0x40, 0xa1, + 0xd7, 0x1f, 0x00, 0x45, 0x1c, 0x6c, 0x90, 0x03, 0x00, 0x45, 0x9b, 0x30, + 0xd2, 0x1f, 0x40, 0x05, 0x19, 0x00, 0x01, 0xff, 0x44, 0xf5, 0xf1, 0x35, + 0x1f, 0x00, 0x4b, 0x40, 0xa1, 0x37, 0x1f, 0x00, 0x45, 0x9b, 0x30, 0x33, + 0x1f, 0x40, 0x46, 0xcf, 0x15, 0xb5, 0x03, 0x80, 0xb3, 0x01, 0x42, 0x12, + 0x00, 0xb7, 0x03, 0xc0, 0x00, 0x06, 0x50, 0x00, 0x01, 0xff, 0x45, 0xb1, + 0x76, 0x21, 0x1f, 0x80, 0x6e, 0x44, 0xf5, 0xf1, 0x75, 0x1f, 0x80, 0x61, + 0xb0, 0x19, 0x45, 0x1c, 0x6c, 0xae, 0x03, 0x00, 0x45, 0x9b, 0x30, 0x74, + 0x1f, 0x80, 0x06, 0x4d, 0x38, 0x4f, 0xc3, 0x1f, 0x40, 0x52, 0x33, 0x4f, + 0xc2, 0x1f, 0x40, 0x4a, 0x41, 0xa1, 0xc6, 0x1f, 0x80, 0x39, 0x44, 0xc3, + 0x88, 0x20, 0x1f, 0xc0, 0x00, 0x05, 0x19, 0x00, 0x01, 0xff, 0x44, 0xf5, + 0xf1, 0x24, 0x1f, 0x80, 0x20, 0x4b, 0x40, 0xa1, 0x26, 0x1f, 0x80, 0x13, + 0x45, 0x9b, 0x30, 0x22, 0x1f, 0x80, 0x06, 0x4d, 0x38, 0x4f, 0x90, 0x1f, + 0x40, 0x52, 0x33, 0x4f, 0x92, 0x1f, 0x40, 0x52, 0x33, 0x4f, 0x96, 0x1f, + 0x40, 0x52, 0x33, 0x4f, 0x94, 0x1f, 0x40, 0x52, 0x33, 0x4f, 0xc7, 0x1f, + 0x40, 0x52, 0x33, 0x4f, 0xc4, 0x1f, 0x40, 0x05, 0x19, 0x00, 0x01, 0xff, + 0x44, 0xf5, 0xf1, 0x25, 0x1f, 0x80, 0x20, 0x4b, 0x40, 0xa1, 0x27, 0x1f, + 0x80, 0x13, 0x45, 0x9b, 0x30, 0x23, 0x1f, 0x80, 0x06, 0x4d, 0x38, 0x4f, + 0x91, 0x1f, 0x40, 0x52, 0x33, 0x4f, 0x93, 0x1f, 0x40, 0x52, 0x33, 0x4f, + 0x97, 0x1f, 0x40, 0x52, 0x33, 0x4f, 0x95, 0x1f, 0x40, 0x06, 0x50, 0x00, + 0x01, 0xff, 0x45, 0xb1, 0x76, 0x11, 0x1f, 0x80, 0x2a, 0x44, 0xf5, 0xf1, + 0x73, 0x1f, 0x00, 0x45, 0x10, 0xea, 0x10, 0x1f, 0x80, 0x0c, 0x45, 0x1c, + 0x6c, 0xad, 0x03, 0x00, 0x45, 0x9b, 0x30, 0x72, 0x1f, 0x40, 0x05, 0x19, + 0x00, 0x01, 0xff, 0x44, 0xf5, 0xf1, 0x14, 0x1f, 0x00, 0x45, 0x9b, 0x30, + 0x12, 0x1f, 0x40, 0x05, 0x19, 0x00, 0x01, 0xff, 0x44, 0xf5, 0xf1, 0x15, + 0x1f, 0x00, 0x45, 0x9b, 0x30, 0x13, 0x1f, 0x40, 0x44, 0x38, 0xd6, 0xb4, + 0x03, 0x00, 0x46, 0x2b, 0x58, 0xdd, 0x03, 0x40, 0x44, 0x3f, 0xe4, 0xb1, + 0x03, 0x80, 0x11, 0x07, 0xa4, 0x80, 0x01, 0xff, 0x45, 0xab, 0x80, 0xd9, + 0x03, 0x00, 0x45, 0x36, 0x94, 0x73, 0x03, 0x40, 0x06, 0x50, 0x00, 0x01, + 0xff, 0x45, 0xb1, 0x76, 0x01, 0x1f, 0x80, 0x7c, 0x46, 0xad, 0x70, 0xb1, + 0x1f, 0x00, 0x44, 0xf5, 0xf1, 0x71, 0x1f, 0x80, 0x69, 0xb0, 0x21, 0x45, + 0x1c, 0x6c, 0xac, 0x03, 0x00, 0xb6, 0x06, 0x4d, 0x38, 0x4f, 0xb3, 0x1f, + 0x40, 0x44, 0x9c, 0x30, 0x70, 0x1f, 0x80, 0x06, 0x45, 0x29, 0xea, 0xb0, + 0x1f, 0x40, 0x52, 0x33, 0x4f, 0xb2, 0x1f, 0x40, 0x4a, 0x41, 0xa1, 0xb6, + 0x1f, 0x80, 0x39, 0x44, 0xc3, 0x88, 0x00, 0x1f, 0xc0, 0x00, 0x05, 0x19, + 0x00, 0x01, 0xff, 0x44, 0xf5, 0xf1, 0x04, 0x1f, 0x80, 0x20, 0x4b, 0x40, + 0xa1, 0x06, 0x1f, 0x80, 0x13, 0x45, 0x9b, 0x30, 0x02, 0x1f, 0x80, 0x06, + 0x4d, 0x38, 0x4f, 0x80, 0x1f, 0x40, 0x52, 0x33, 0x4f, 0x82, 0x1f, 0x40, + 0x52, 0x33, 0x4f, 0x86, 0x1f, 0x40, 0x52, 0x33, 0x4f, 0x84, 0x1f, 0x40, + 0x52, 0x33, 0x4f, 0xb7, 0x1f, 0x40, 0x52, 0x33, 0x4f, 0xb4, 0x1f, 0x40, + 0x05, 0x19, 0x00, 0x01, 0xff, 0x44, 0xf5, 0xf1, 0x05, 0x1f, 0x80, 0x20, + 0x4b, 0x40, 0xa1, 0x07, 0x1f, 0x80, 0x13, 0x45, 0x9b, 0x30, 0x03, 0x1f, + 0x80, 0x06, 0x4d, 0x38, 0x4f, 0x81, 0x1f, 0x40, 0x52, 0x33, 0x4f, 0x83, + 0x1f, 0x40, 0x52, 0x33, 0x4f, 0x87, 0x1f, 0x40, 0x52, 0x33, 0x4f, 0x85, + 0x1f, 0x40, 0x5d, 0xbf, 0x15, 0xf6, 0x03, 0x00, 0x03, 0xd4, 0x71, 0x01, + 0xff, 0x46, 0x16, 0x08, 0xf1, 0x03, 0x00, 0x52, 0xb9, 0x56, 0xfc, 0x03, + 0x40, 0x4a, 0x41, 0xa1, 0xc0, 0x1f, 0x00, 0x49, 0x93, 0xb9, 0xd5, 0x03, + 0x00, 0x48, 0x5b, 0xac, 0xd6, 0x03, 0x00, 0x4d, 0x4a, 0x47, 0xbe, 0x1f, + 0x00, 0x44, 0xc3, 0x88, 0xbf, 0x1f, 0xc0, 0x00, 0x05, 0x19, 0x00, 0x01, + 0xff, 0x44, 0xf5, 0xf1, 0xce, 0x1f, 0x00, 0x4b, 0x40, 0xa1, 0xcf, 0x1f, + 0x00, 0x45, 0x9b, 0x30, 0xcd, 0x1f, 0x40, 0x48, 0x40, 0xc4, 0x7c, 0x01, + 0x01, 0x03, 0xef, 0x07, 0x0c, 0x4a, 0xb7, 0xb2, 0x84, 0x01, 0x01, 0x43, + 0x5b, 0x4b, 0xfd, 0x1f, 0x40, 0x49, 0x66, 0xb9, 0x75, 0x01, 0x81, 0x06, + 0x4c, 0xf3, 0x93, 0x8b, 0x01, 0x41, 0x4f, 0x06, 0x69, 0x76, 0x01, 0x41, + 0x4c, 0xb3, 0x8e, 0x81, 0x01, 0x01, 0x4d, 0xe1, 0x89, 0x45, 0xd2, 0x41, + 0x06, 0xed, 0x05, 0x1d, 0x49, 0xc5, 0xba, 0x83, 0x01, 0x01, 0x51, 0x1b, + 0x5d, 0x75, 0x03, 0x00, 0x06, 0xc8, 0x15, 0x01, 0xff, 0x4e, 0xce, 0x15, + 0xf5, 0x03, 0x00, 0x4c, 0xbe, 0x1f, 0xf2, 0x03, 0x40, 0x4d, 0xa3, 0x80, + 0xd8, 0x03, 0x00, 0x47, 0x2a, 0x58, 0xdc, 0x03, 0x00, 0x45, 0xab, 0x80, + 0xde, 0x03, 0x00, 0xb3, 0x06, 0x43, 0xd6, 0xf4, 0xf3, 0x03, 0x40, 0x44, + 0x37, 0x94, 0xe0, 0x03, 0x00, 0x0d, 0xc7, 0x3c, 0x06, 0x45, 0x41, 0xeb, + 0xda, 0x03, 0x40, 0x45, 0x2c, 0x58, 0x26, 0x1d, 0x00, 0x45, 0x17, 0xe8, + 0x27, 0x1d, 0x00, 0x45, 0x38, 0xaf, 0x65, 0xab, 0x00, 0xb0, 0x06, 0x43, + 0xef, 0x49, 0x29, 0x1d, 0x40, 0xe9, 0x28, 0x1d, 0x00, 0x42, 0x5a, 0x03, + 0x2a, 0x1d, 0x40, 0xa1, 0x0c, 0x46, 0xf0, 0x61, 0xbd, 0x1f, 0x00, 0x50, + 0xe6, 0x68, 0x82, 0x01, 0x41, 0x48, 0x5b, 0xac, 0xd7, 0x03, 0x00, 0x4a, + 0x95, 0x90, 0xf0, 0x03, 0x40, 0x4c, 0xf3, 0x8d, 0x8d, 0x01, 0x01, 0x1b, + 0x86, 0x1d, 0x01, 0xff, 0xd1, 0x1d, 0xd2, 0x81, 0x79, 0xd2, 0x1e, 0xd2, + 0x81, 0x5c, 0x93, 0x42, 0xd4, 0x1f, 0xd2, 0x81, 0x21, 0xd5, 0x20, 0xd2, + 0x81, 0x08, 0xd7, 0x21, 0xd2, 0x01, 0xd8, 0x22, 0xd2, 0x41, 0xd0, 0x3d, + 0xd2, 0x01, 0xd1, 0x3e, 0xd2, 0x01, 0xd2, 0x3f, 0xd2, 0x01, 0xd3, 0x40, + 0xd2, 0x01, 0xd4, 0x41, 0xd2, 0x41, 0xd0, 0x36, 0xd2, 0x01, 0xd2, 0x37, + 0xd2, 0x01, 0xd3, 0x38, 0xd2, 0x01, 0xd5, 0x39, 0xd2, 0x01, 0xd7, 0x3a, + 0xd2, 0x01, 0xd8, 0x3b, 0xd2, 0x01, 0xd9, 0x3c, 0xd2, 0x41, 0xd0, 0x30, + 0xd2, 0x01, 0xd2, 0x31, 0xd2, 0x01, 0xd6, 0x32, 0xd2, 0x01, 0xd7, 0x33, + 0xd2, 0x01, 0xd8, 0x34, 0xd2, 0x01, 0xd9, 0x35, 0xd2, 0x41, 0xd3, 0x2a, + 0xd2, 0x01, 0xd4, 0x2b, 0xd2, 0x01, 0xd5, 0x2c, 0xd2, 0x01, 0xd6, 0x2d, + 0xd2, 0x01, 0xd7, 0x2e, 0xd2, 0x01, 0xd9, 0x2f, 0xd2, 0x41, 0xd1, 0x23, + 0xd2, 0x01, 0xd2, 0x24, 0xd2, 0x01, 0xd3, 0x25, 0xd2, 0x01, 0xd4, 0x26, + 0xd2, 0x01, 0xd7, 0x27, 0xd2, 0x01, 0xd8, 0x28, 0xd2, 0x01, 0xd9, 0x29, + 0xd2, 0x41, 0x4e, 0x0b, 0x79, 0x80, 0x01, 0x01, 0x4e, 0xcb, 0x7a, 0x7f, + 0x01, 0x41, 0x44, 0x47, 0x61, 0xfe, 0x1f, 0x80, 0x26, 0x09, 0x13, 0x6c, + 0x06, 0x4b, 0xae, 0xa1, 0x7b, 0x01, 0x41, 0x04, 0x1a, 0x00, 0x06, 0x45, + 0x1c, 0x6c, 0x85, 0x03, 0x40, 0x44, 0xf5, 0xf1, 0xee, 0x1f, 0x00, 0x4b, + 0x40, 0xa1, 0xc1, 0x1f, 0x00, 0x45, 0x9b, 0x30, 0xed, 0x1f, 0x40, 0x05, + 0x19, 0x00, 0x01, 0xff, 0x44, 0xf5, 0xf1, 0xde, 0x1f, 0x00, 0x4b, 0x40, + 0xa1, 0xdf, 0x1f, 0x00, 0x45, 0x9b, 0x30, 0xdd, 0x1f, 0x40, 0x5a, 0xb0, + 0x1f, 0xfe, 0x03, 0x00, 0x4a, 0x59, 0xac, 0xcf, 0x03, 0x00, 0xac, 0x16, + 0x09, 0xdd, 0x14, 0x06, 0x4c, 0xc7, 0x95, 0xf4, 0x03, 0x40, 0x5a, 0xb0, + 0x1f, 0xff, 0x03, 0x00, 0x53, 0xb7, 0x1f, 0xfd, 0x03, 0x40, 0x06, 0xed, + 0x05, 0x06, 0x52, 0xb8, 0x1f, 0xf9, 0x03, 0x40, 0xa1, 0xb3, 0x06, 0x44, + 0x9a, 0x99, 0x92, 0x03, 0x00, 0x43, 0x79, 0x16, 0xa7, 0x03, 0x00, 0x45, + 0x7e, 0xe5, 0x94, 0x03, 0x00, 0xa5, 0xb3, 0x04, 0x45, 0x2c, 0x58, 0x93, + 0x03, 0x00, 0x44, 0xc8, 0x95, 0x70, 0x03, 0x00, 0x44, 0x99, 0x2e, 0x99, + 0x03, 0x80, 0xb5, 0x03, 0x45, 0x93, 0x90, 0x9a, 0x03, 0x00, 0x45, 0x17, + 0xe8, 0x9b, 0x03, 0x00, 0x42, 0xc3, 0x16, 0x9c, 0x03, 0x00, 0x42, 0x3d, + 0x16, 0x9d, 0x03, 0x00, 0x02, 0x14, 0x05, 0xae, 0x01, 0xb0, 0x95, 0x01, + 0x43, 0xef, 0x49, 0xa1, 0x03, 0x80, 0x87, 0x01, 0xb3, 0x73, 0xb4, 0x65, + 0x47, 0xad, 0x89, 0xa5, 0x03, 0x80, 0x12, 0x42, 0xe2, 0x0c, 0x9e, 0x03, + 0x00, 0x43, 0xd6, 0xf4, 0x7f, 0x03, 0x00, 0x44, 0x61, 0xf3, 0x96, 0x03, + 0x40, 0x06, 0x50, 0x00, 0x01, 0xff, 0xa4, 0x21, 0x46, 0xad, 0x70, 0xe9, + 0x1f, 0x00, 0x44, 0xf5, 0xf1, 0xeb, 0x1f, 0x00, 0x45, 0x1c, 0x6c, 0x8e, + 0x03, 0x00, 0xb6, 0x01, 0xff, 0x44, 0x9c, 0x30, 0xea, 0x1f, 0x00, 0x45, + 0x29, 0xea, 0xe8, 0x1f, 0x40, 0x44, 0x47, 0x61, 0x59, 0x1f, 0x80, 0x06, + 0x48, 0x13, 0x6c, 0xab, 0x03, 0x40, 0x05, 0x19, 0x00, 0x01, 0xff, 0x44, + 0xf5, 0xf1, 0x5d, 0x1f, 0x00, 0x4b, 0x40, 0xa1, 0x5f, 0x1f, 0x00, 0x45, + 0x9b, 0x30, 0x5b, 0x1f, 0x40, 0x42, 0x5f, 0x24, 0xa4, 0x03, 0x00, 0x44, + 0xc8, 0x95, 0x98, 0x03, 0x40, 0x42, 0x1a, 0x00, 0xfa, 0x03, 0x00, 0x42, + 0x0b, 0x00, 0xf7, 0x03, 0x00, 0x44, 0xbf, 0x1f, 0xa3, 0x03, 0x40, 0x4b, + 0xf8, 0x97, 0xec, 0x1f, 0x40, 0x51, 0x20, 0x58, 0x76, 0x03, 0x00, 0x42, + 0x49, 0x00, 0xa6, 0x03, 0x00, 0xe9, 0xa0, 0x03, 0x00, 0x42, 0x5a, 0x03, + 0xa8, 0x03, 0x40, 0x43, 0xce, 0x05, 0xa9, 0x03, 0x80, 0x4e, 0x45, 0x4a, + 0xe7, 0x9f, 0x03, 0xc0, 0x00, 0x06, 0x50, 0x00, 0x01, 0xff, 0x45, 0xb1, + 0x76, 0x49, 0x1f, 0x80, 0x2a, 0x44, 0xf5, 0xf1, 0xf9, 0x1f, 0x00, 0x45, + 0x10, 0xea, 0x48, 0x1f, 0x80, 0x0c, 0x45, 0x1c, 0x6c, 0x8c, 0x03, 0x00, + 0x45, 0x9b, 0x30, 0xf8, 0x1f, 0x40, 0x05, 0x19, 0x00, 0x01, 0xff, 0x44, + 0xf5, 0xf1, 0x4c, 0x1f, 0x00, 0x45, 0x9b, 0x30, 0x4a, 0x1f, 0x40, 0x05, + 0x19, 0x00, 0x01, 0xff, 0x44, 0xf5, 0xf1, 0x4d, 0x1f, 0x00, 0x45, 0x9b, + 0x30, 0x4b, 0x1f, 0x40, 0x06, 0x50, 0x00, 0x01, 0xff, 0x45, 0xb1, 0x76, + 0x69, 0x1f, 0x80, 0x55, 0x44, 0xf5, 0xf1, 0xfb, 0x1f, 0x00, 0xb0, 0x0c, + 0x45, 0x1c, 0x6c, 0x8f, 0x03, 0x00, 0x45, 0x9b, 0x30, 0xfa, 0x1f, 0x40, + 0x4d, 0x4a, 0x47, 0xfc, 0x1f, 0x00, 0x44, 0xc3, 0x88, 0x68, 0x1f, 0xc0, + 0x00, 0x05, 0x19, 0x00, 0x01, 0xff, 0x44, 0xf5, 0xf1, 0x6c, 0x1f, 0x80, + 0x22, 0xb0, 0x0d, 0x45, 0x9b, 0x30, 0x6a, 0x1f, 0xc0, 0x00, 0x53, 0x44, + 0x47, 0xaa, 0x1f, 0x40, 0x4a, 0x41, 0xa1, 0x6e, 0x1f, 0x80, 0x06, 0x4d, + 0x4a, 0x47, 0xa8, 0x1f, 0x40, 0x53, 0x44, 0x47, 0xae, 0x1f, 0x40, 0x53, + 0x44, 0x47, 0xac, 0x1f, 0x40, 0x05, 0x19, 0x00, 0x01, 0xff, 0x44, 0xf5, + 0xf1, 0x6d, 0x1f, 0x80, 0x22, 0xb0, 0x0d, 0x45, 0x9b, 0x30, 0x6b, 0x1f, + 0xc0, 0x00, 0x53, 0x44, 0x47, 0xab, 0x1f, 0x40, 0x4a, 0x41, 0xa1, 0x6f, + 0x1f, 0x80, 0x06, 0x4d, 0x4a, 0x47, 0xa9, 0x1f, 0x40, 0x53, 0x44, 0x47, + 0xaf, 0x1f, 0x40, 0x53, 0x44, 0x47, 0xad, 0x1f, 0x40, 0x06, 0x50, 0x00, + 0x01, 0xff, 0xa4, 0x3f, 0x46, 0xad, 0x70, 0xd9, 0x1f, 0x00, 0x44, 0xf5, + 0xf1, 0xdb, 0x1f, 0x00, 0x45, 0x10, 0xea, 0x38, 0x1f, 0x80, 0x15, 0x45, + 0x1c, 0x6c, 0x8a, 0x03, 0x00, 0xb6, 0x01, 0xff, 0x44, 0x9c, 0x30, 0xda, + 0x1f, 0x00, 0x45, 0x29, 0xea, 0xd8, 0x1f, 0x40, 0x05, 0x19, 0x00, 0x01, + 0xff, 0x44, 0xf5, 0xf1, 0x3c, 0x1f, 0x00, 0x4b, 0x40, 0xa1, 0x3e, 0x1f, + 0x00, 0x45, 0x9b, 0x30, 0x3a, 0x1f, 0x40, 0x44, 0x47, 0x61, 0x39, 0x1f, + 0x80, 0x06, 0x48, 0x13, 0x6c, 0xaa, 0x03, 0x40, 0x05, 0x19, 0x00, 0x01, + 0xff, 0x44, 0xf5, 0xf1, 0x3d, 0x1f, 0x00, 0x4b, 0x40, 0xa1, 0x3f, 0x1f, + 0x00, 0x45, 0x9b, 0x30, 0x3b, 0x1f, 0x40, 0x46, 0xcf, 0x15, 0x95, 0x03, + 0x80, 0x9c, 0x01, 0x42, 0x12, 0x00, 0x97, 0x03, 0xc0, 0x00, 0x06, 0x50, + 0x00, 0x01, 0xff, 0x45, 0xb1, 0x76, 0x29, 0x1f, 0x80, 0x55, 0x44, 0xf5, + 0xf1, 0xcb, 0x1f, 0x00, 0xb0, 0x0c, 0x45, 0x1c, 0x6c, 0x89, 0x03, 0x00, + 0x45, 0x9b, 0x30, 0xca, 0x1f, 0x40, 0x4d, 0x4a, 0x47, 0xcc, 0x1f, 0x00, + 0x44, 0xc3, 0x88, 0x28, 0x1f, 0xc0, 0x00, 0x05, 0x19, 0x00, 0x01, 0xff, + 0x44, 0xf5, 0xf1, 0x2c, 0x1f, 0x80, 0x22, 0xb0, 0x0d, 0x45, 0x9b, 0x30, + 0x2a, 0x1f, 0xc0, 0x00, 0x53, 0x44, 0x47, 0x9a, 0x1f, 0x40, 0x4a, 0x41, + 0xa1, 0x2e, 0x1f, 0x80, 0x06, 0x4d, 0x4a, 0x47, 0x98, 0x1f, 0x40, 0x53, + 0x44, 0x47, 0x9e, 0x1f, 0x40, 0x53, 0x44, 0x47, 0x9c, 0x1f, 0x40, 0x05, + 0x19, 0x00, 0x01, 0xff, 0x44, 0xf5, 0xf1, 0x2d, 0x1f, 0x80, 0x22, 0xb0, + 0x0d, 0x45, 0x9b, 0x30, 0x2b, 0x1f, 0xc0, 0x00, 0x53, 0x44, 0x47, 0x9b, + 0x1f, 0x40, 0x4a, 0x41, 0xa1, 0x2f, 0x1f, 0x80, 0x06, 0x4d, 0x4a, 0x47, + 0x99, 0x1f, 0x40, 0x53, 0x44, 0x47, 0x9f, 0x1f, 0x40, 0x53, 0x44, 0x47, + 0x9d, 0x1f, 0x40, 0x06, 0x50, 0x00, 0x01, 0xff, 0x45, 0xb1, 0x76, 0x19, + 0x1f, 0x80, 0x2a, 0x44, 0xf5, 0xf1, 0xc9, 0x1f, 0x00, 0x45, 0x10, 0xea, + 0x18, 0x1f, 0x80, 0x0c, 0x45, 0x1c, 0x6c, 0x88, 0x03, 0x00, 0x45, 0x9b, + 0x30, 0xc8, 0x1f, 0x40, 0x05, 0x19, 0x00, 0x01, 0xff, 0x44, 0xf5, 0xf1, + 0x1c, 0x1f, 0x00, 0x45, 0x9b, 0x30, 0x1a, 0x1f, 0x40, 0x05, 0x19, 0x00, + 0x01, 0xff, 0x44, 0xf5, 0xf1, 0x1d, 0x1f, 0x00, 0x45, 0x9b, 0x30, 0x1b, + 0x1f, 0x40, 0x44, 0x3f, 0xe4, 0x91, 0x03, 0x80, 0x06, 0x4c, 0x2f, 0x94, + 0x72, 0x03, 0x40, 0x06, 0x50, 0x00, 0x01, 0xff, 0x45, 0xb1, 0x76, 0x09, + 0x1f, 0x80, 0x64, 0x46, 0xad, 0x70, 0xb9, 0x1f, 0x00, 0x44, 0xf5, 0xf1, + 0xbb, 0x1f, 0x00, 0xb0, 0x15, 0x45, 0x1c, 0x6c, 0x86, 0x03, 0x00, 0xb6, + 0x01, 0xff, 0x44, 0x9c, 0x30, 0xba, 0x1f, 0x00, 0x45, 0x29, 0xea, 0xb8, + 0x1f, 0x40, 0x4d, 0x4a, 0x47, 0xbc, 0x1f, 0x00, 0x44, 0xc3, 0x88, 0x08, + 0x1f, 0xc0, 0x00, 0x05, 0x19, 0x00, 0x01, 0xff, 0x44, 0xf5, 0xf1, 0x0c, + 0x1f, 0x80, 0x22, 0xb0, 0x0d, 0x45, 0x9b, 0x30, 0x0a, 0x1f, 0xc0, 0x00, + 0x53, 0x44, 0x47, 0x8a, 0x1f, 0x40, 0x4a, 0x41, 0xa1, 0x0e, 0x1f, 0x80, + 0x06, 0x4d, 0x4a, 0x47, 0x88, 0x1f, 0x40, 0x53, 0x44, 0x47, 0x8e, 0x1f, + 0x40, 0x53, 0x44, 0x47, 0x8c, 0x1f, 0x40, 0x05, 0x19, 0x00, 0x01, 0xff, + 0x44, 0xf5, 0xf1, 0x0d, 0x1f, 0x80, 0x22, 0xb0, 0x0d, 0x45, 0x9b, 0x30, + 0x0b, 0x1f, 0xc0, 0x00, 0x53, 0x44, 0x47, 0x8b, 0x1f, 0x40, 0x4a, 0x41, + 0xa1, 0x0f, 0x1f, 0x80, 0x06, 0x4d, 0x4a, 0x47, 0x89, 0x1f, 0x40, 0x53, + 0x44, 0x47, 0x8f, 0x1f, 0x40, 0x53, 0x44, 0x47, 0x8d, 0x1f, 0x40, 0x0a, + 0xdf, 0xa8, 0x15, 0x49, 0x90, 0xbc, 0x87, 0x03, 0x00, 0xb2, 0x01, 0xff, + 0x49, 0x8c, 0xbd, 0x87, 0x01, 0x01, 0x49, 0x96, 0xbf, 0x86, 0x01, 0x41, + 0x06, 0xfe, 0xd9, 0xe6, 0x01, 0xa3, 0xd7, 0x01, 0x51, 0xa7, 0x59, 0x73, + 0x01, 0x01, 0x0b, 0xd6, 0x9b, 0xb9, 0x01, 0x03, 0x10, 0x1a, 0x97, 0x01, + 0x4d, 0xde, 0x85, 0x63, 0x01, 0x01, 0x53, 0x59, 0x4b, 0x70, 0x01, 0x01, + 0x53, 0x47, 0x4d, 0x74, 0x01, 0x01, 0xb4, 0x01, 0xff, 0x08, 0xb0, 0xc6, + 0x30, 0x0a, 0x87, 0xb0, 0x01, 0xff, 0x02, 0xf3, 0x02, 0x0d, 0x43, 0xdb, + 0x06, 0x60, 0x01, 0xc1, 0x00, 0x4f, 0x06, 0x69, 0x61, 0x01, 0x41, 0x43, + 0x52, 0x4d, 0x66, 0x01, 0x81, 0x0d, 0x42, 0x32, 0x00, 0x5f, 0x01, 0xc1, + 0x00, 0x48, 0x70, 0x11, 0x6d, 0x01, 0x41, 0x4f, 0x06, 0x69, 0x67, 0x01, + 0x41, 0x02, 0xf3, 0x02, 0x33, 0x43, 0x0e, 0x0b, 0x59, 0x01, 0x81, 0x1d, + 0xb4, 0x01, 0xff, 0x42, 0x92, 0x01, 0x64, 0x01, 0x01, 0xa8, 0x06, 0x42, + 0x15, 0x02, 0x5c, 0x01, 0x41, 0x44, 0x7b, 0x11, 0x65, 0x01, 0x01, 0x4b, + 0xfb, 0x17, 0x6b, 0x01, 0x41, 0x80, 0x01, 0xff, 0x47, 0x71, 0x11, 0x6a, + 0x01, 0x01, 0x48, 0x40, 0x5e, 0x71, 0x01, 0x41, 0x43, 0x52, 0x4d, 0x69, + 0x01, 0x01, 0x03, 0x5f, 0x00, 0x01, 0xff, 0x47, 0x71, 0x11, 0x6e, 0x01, + 0x01, 0x48, 0x40, 0x5e, 0x72, 0x01, 0x41, 0x51, 0xed, 0x57, 0x58, 0x01, + 0x01, 0x08, 0x50, 0xc8, 0x01, 0xff, 0x45, 0x50, 0x4d, 0x68, 0x01, 0x01, + 0x43, 0x0e, 0x0b, 0x5a, 0x01, 0x01, 0x43, 0xdb, 0x06, 0x62, 0x01, 0x41, + 0x4c, 0x80, 0x39, 0x6c, 0x01, 0x01, 0x43, 0x1f, 0x0a, 0x5b, 0x01, 0xc1, + 0x00, 0x49, 0x3b, 0x47, 0x5e, 0x01, 0x41, 0x55, 0x77, 0x39, 0x6f, 0x01, + 0x01, 0x54, 0x30, 0x47, 0x5d, 0x01, 0x41, 0x02, 0xf3, 0x02, 0x5a, 0x04, + 0x0e, 0x0b, 0x20, 0x04, 0x3c, 0x5e, 0x01, 0xff, 0x44, 0x56, 0x4d, 0x57, + 0x01, 0x01, 0x47, 0x36, 0x6e, 0x50, 0x01, 0x01, 0xb4, 0x01, 0xff, 0x46, + 0x9a, 0xc2, 0x49, 0x01, 0x01, 0x4f, 0x2e, 0x6e, 0x55, 0x01, 0x41, 0x47, + 0x3c, 0x47, 0x42, 0x01, 0x01, 0xa8, 0x17, 0x47, 0x2a, 0x01, 0x40, 0x01, + 0x01, 0x09, 0x40, 0x5e, 0x01, 0xff, 0x47, 0x36, 0x6e, 0x54, 0x01, 0x01, + 0x47, 0x99, 0xc2, 0x4d, 0x01, 0x41, 0x43, 0x23, 0x00, 0x41, 0x01, 0x01, + 0x07, 0x72, 0x11, 0x01, 0xff, 0x47, 0x36, 0x6e, 0x52, 0x01, 0x01, 0x47, + 0x99, 0xc2, 0x4b, 0x01, 0x41, 0x43, 0x52, 0x4d, 0x44, 0x01, 0x81, 0x3c, + 0x42, 0x32, 0x00, 0x43, 0x01, 0xc1, 0x00, 0x80, 0x01, 0xff, 0x47, 0x71, + 0x11, 0x45, 0x01, 0x81, 0x1c, 0x47, 0x36, 0x6e, 0x4f, 0x01, 0x01, 0xb4, + 0x01, 0xff, 0x46, 0x9a, 0xc2, 0x48, 0x01, 0x01, 0x47, 0xed, 0x3b, 0x46, + 0x01, 0xc1, 0x00, 0x48, 0x98, 0xc2, 0x4e, 0x01, 0x41, 0x80, 0x01, 0xff, + 0x47, 0x36, 0x6e, 0x53, 0x01, 0x01, 0x47, 0x99, 0xc2, 0x4c, 0x01, 0x41, + 0x80, 0x01, 0xff, 0x47, 0x36, 0x6e, 0x51, 0x01, 0x01, 0xb4, 0x01, 0xff, + 0x46, 0x9a, 0xc2, 0x4a, 0x01, 0x01, 0x47, 0xed, 0x3b, 0x47, 0x01, 0xc1, + 0x00, 0x48, 0x35, 0x6e, 0x56, 0x01, 0x41, 0xa1, 0x9c, 0x01, 0xa2, 0x82, + 0x01, 0x4f, 0xc7, 0x6b, 0xa7, 0x2a, 0x80, 0x75, 0x55, 0xf1, 0x3a, 0xdb, + 0x22, 0x00, 0xaf, 0x1d, 0x44, 0x5a, 0x03, 0x3e, 0x00, 0x00, 0x05, 0x51, + 0x00, 0x01, 0xff, 0x4d, 0x73, 0x81, 0x7a, 0x2a, 0x00, 0x43, 0x23, 0x0a, + 0xd7, 0x22, 0x00, 0x53, 0x50, 0x4c, 0x7c, 0x2a, 0x40, 0x02, 0x18, 0x00, + 0x11, 0x03, 0x32, 0x00, 0x01, 0xff, 0x49, 0xf7, 0x0c, 0x67, 0x22, 0x00, + 0x51, 0xa5, 0x5b, 0xa4, 0x2a, 0x40, 0x4b, 0xb0, 0x1e, 0x86, 0x2a, 0x00, + 0x03, 0x7b, 0x00, 0x25, 0x49, 0xec, 0x00, 0x77, 0x22, 0x00, 0x50, 0x36, + 0x67, 0x7e, 0x2a, 0xc0, 0x00, 0x0a, 0x75, 0x3b, 0x01, 0xff, 0x45, 0x5c, + 0x00, 0x82, 0x2a, 0x80, 0x06, 0x46, 0xa7, 0x13, 0x80, 0x2a, 0x40, 0x45, + 0xc2, 0x00, 0x84, 0x2a, 0x40, 0x45, 0xfb, 0x0c, 0x65, 0x22, 0x00, 0x4a, + 0xd6, 0x39, 0x73, 0x22, 0x40, 0x54, 0x93, 0x00, 0xa9, 0x2a, 0x40, 0x4f, + 0xc6, 0x6c, 0xa5, 0x2a, 0x00, 0x0a, 0xcc, 0x39, 0x01, 0xff, 0x45, 0xfb, + 0x0c, 0x69, 0x22, 0x00, 0x4a, 0xd6, 0x39, 0xe7, 0x22, 0x40, 0x05, 0x5d, + 0x00, 0x11, 0x03, 0x1b, 0x00, 0x01, 0xff, 0x4f, 0xd1, 0x70, 0x8a, 0x2a, + 0x00, 0x58, 0xf6, 0x2a, 0x88, 0x2a, 0x40, 0x61, 0xa8, 0x0d, 0x8c, 0x2a, + 0x00, 0x61, 0x0b, 0x0e, 0x92, 0x2a, 0x00, 0x50, 0xb3, 0x02, 0x78, 0x29, + 0x00, 0xb3, 0x01, 0xff, 0x07, 0xf6, 0xd1, 0x06, 0x70, 0xd9, 0x00, 0x94, + 0x2a, 0x40, 0x4f, 0xe6, 0x00, 0x90, 0x2a, 0x00, 0x48, 0xf3, 0x28, 0x8e, + 0x2a, 0x40, 0x4b, 0x52, 0x9b, 0x93, 0xf3, 0x01, 0x05, 0x43, 0xe9, 0x0c, + 0x43, 0x43, 0x65, 0x47, 0xf3, 0x01, 0x49, 0x18, 0x23, 0x60, 0x00, 0x40, + 0x4e, 0x17, 0x76, 0x57, 0x13, 0x01, 0x07, 0xec, 0x05, 0x8b, 0x01, 0x42, + 0x14, 0x05, 0x50, 0x13, 0x01, 0x05, 0x5a, 0x03, 0x48, 0x0b, 0x40, 0x77, + 0x01, 0xff, 0xa1, 0x35, 0x42, 0x27, 0x01, 0x47, 0x13, 0x01, 0xe9, 0x3f, + 0x13, 0x81, 0x26, 0x42, 0xcd, 0x02, 0x4b, 0x13, 0x01, 0xf5, 0x41, 0x13, + 0x81, 0x17, 0x08, 0x22, 0xc1, 0x01, 0xff, 0xec, 0x62, 0x13, 0x81, 0x09, + 0xf2, 0x43, 0x13, 0xc1, 0x00, 0xf2, 0x44, 0x13, 0x41, 0xec, 0x63, 0x13, + 0x41, 0xf5, 0x42, 0x13, 0x41, 0xe9, 0x40, 0x13, 0x41, 0xe1, 0x3e, 0x13, + 0x01, 0xe9, 0x48, 0x13, 0x01, 0xf5, 0x4c, 0x13, 0x41, 0xa1, 0x2b, 0xa3, + 0x1d, 0x45, 0x3f, 0x3f, 0x3c, 0x13, 0x01, 0x45, 0xf2, 0xe9, 0x5d, 0x13, + 0x01, 0x02, 0x02, 0x00, 0x01, 0xff, 0x44, 0xe5, 0x23, 0x4d, 0x13, 0x01, + 0x45, 0xec, 0x4b, 0x03, 0x13, 0x41, 0x4a, 0xd8, 0x23, 0x01, 0x13, 0x01, + 0x57, 0x33, 0x16, 0x00, 0x13, 0x41, 0x47, 0x3d, 0x16, 0x02, 0x13, 0x01, + 0x47, 0xaf, 0x88, 0x3d, 0x13, 0x41, 0xe1, 0x05, 0x13, 0x81, 0x9a, 0x02, + 0xa2, 0x8d, 0x02, 0xa3, 0x80, 0x02, 0xa4, 0xe7, 0x01, 0x42, 0x27, 0x01, + 0x0f, 0x13, 0x01, 0xa7, 0xd4, 0x01, 0x42, 0x22, 0x00, 0x39, 0x13, 0x01, + 0xe9, 0x07, 0x13, 0x81, 0xc4, 0x01, 0xaa, 0xb7, 0x01, 0xab, 0xaa, 0x01, + 0xac, 0x9d, 0x01, 0x42, 0x6c, 0x00, 0x2e, 0x13, 0x01, 0xae, 0x7f, 0x42, + 0xcd, 0x02, 0x13, 0x13, 0x01, 0xb0, 0x6d, 0x42, 0x71, 0x00, 0x30, 0x13, + 0x01, 0xb3, 0x55, 0xb4, 0x3c, 0xf5, 0x09, 0x13, 0x81, 0x33, 0xb6, 0x06, + 0x42, 0xbc, 0x22, 0x2f, 0x13, 0x41, 0xe1, 0x35, 0x13, 0x01, 0x05, 0xda, + 0x0a, 0x17, 0x07, 0x23, 0xc1, 0x01, 0xff, 0xec, 0x0c, 0x13, 0x81, 0x09, + 0xf2, 0x0b, 0x13, 0xc1, 0x00, 0xf2, 0x60, 0x13, 0x41, 0xec, 0x61, 0x13, + 0x41, 0x48, 0x3c, 0x16, 0x5e, 0x13, 0x01, 0x4f, 0x52, 0x17, 0x5f, 0x13, + 0x41, 0xf5, 0x0a, 0x13, 0x41, 0xe1, 0x24, 0x13, 0x01, 0x42, 0x22, 0x00, + 0x25, 0x13, 0x01, 0xb4, 0x01, 0xff, 0xe1, 0x1f, 0x13, 0x01, 0x42, 0x22, + 0x00, 0x20, 0x13, 0x41, 0xe1, 0x38, 0x13, 0x01, 0x42, 0x22, 0x00, 0x36, + 0x13, 0x01, 0x42, 0x40, 0x06, 0x37, 0x13, 0x41, 0xe1, 0x2a, 0x13, 0x01, + 0x42, 0x22, 0x00, 0x2b, 0x13, 0x41, 0xe1, 0x28, 0x13, 0x01, 0x42, 0x24, + 0x02, 0x19, 0x13, 0x01, 0x42, 0x2a, 0x05, 0x23, 0x13, 0x01, 0x42, 0xbc, + 0x22, 0x1e, 0x13, 0x41, 0xe1, 0x32, 0x13, 0x01, 0x42, 0x74, 0x00, 0x33, + 0x13, 0x41, 0xe1, 0x15, 0x13, 0x01, 0x42, 0x22, 0x00, 0x16, 0x13, 0x41, + 0xe1, 0x1c, 0x13, 0x01, 0x42, 0x22, 0x00, 0x1d, 0x13, 0x41, 0xe9, 0x08, + 0x13, 0x41, 0xe1, 0x17, 0x13, 0x01, 0x42, 0x22, 0x00, 0x18, 0x13, 0x41, + 0xe1, 0x26, 0x13, 0x01, 0xa4, 0x06, 0x42, 0x22, 0x00, 0x27, 0x13, 0x41, + 0xe1, 0x21, 0x13, 0x01, 0x42, 0x22, 0x00, 0x22, 0x13, 0x41, 0xe1, 0x1a, + 0x13, 0x01, 0x42, 0x22, 0x00, 0x1b, 0x13, 0x41, 0xe1, 0x2c, 0x13, 0x01, + 0x42, 0x22, 0x00, 0x2d, 0x13, 0x41, 0xe1, 0x06, 0x13, 0x01, 0xe9, 0x10, + 0x13, 0x01, 0xf5, 0x14, 0x13, 0x41, 0xa1, 0xd5, 0x01, 0x45, 0xcf, 0xdc, + 0x7d, 0xf9, 0x01, 0x44, 0xfd, 0xf0, 0xcc, 0xf3, 0x01, 0x46, 0x48, 0xde, + 0x7d, 0xf7, 0x01, 0x43, 0xa4, 0x0d, 0xbf, 0xfa, 0x01, 0x45, 0x6a, 0xea, + 0x8d, 0xf9, 0x01, 0x0c, 0xd3, 0x95, 0x01, 0xff, 0xa1, 0xa3, 0x01, 0x47, + 0x56, 0xcf, 0x31, 0x03, 0x01, 0x44, 0x75, 0xef, 0x33, 0x03, 0x01, 0x43, + 0x08, 0xac, 0x39, 0x03, 0x01, 0x45, 0x5a, 0xe6, 0x46, 0x03, 0x01, 0x44, + 0xf9, 0xef, 0x32, 0x03, 0x01, 0xa8, 0x77, 0xa9, 0x69, 0x43, 0xe0, 0xba, + 0x3e, 0x03, 0x01, 0x45, 0xef, 0xe7, 0x3a, 0x03, 0x01, 0x45, 0x0d, 0xe8, + 0x3b, 0x03, 0x01, 0x45, 0xcb, 0x91, 0x3c, 0x03, 0x01, 0xae, 0x38, 0x45, + 0xac, 0xe9, 0x49, 0x03, 0x01, 0x48, 0xb8, 0xc9, 0x40, 0x03, 0x01, 0x48, + 0x08, 0xca, 0x35, 0x03, 0x01, 0x45, 0x2e, 0xea, 0x42, 0x03, 0x01, 0x45, + 0xc4, 0xea, 0x43, 0x03, 0x01, 0xb4, 0x0c, 0x44, 0xe1, 0xf2, 0x3f, 0x03, + 0x01, 0x45, 0x5e, 0xec, 0x45, 0x03, 0x41, 0x44, 0xa9, 0xef, 0x44, 0x03, + 0x01, 0x45, 0x0e, 0xe7, 0x38, 0x03, 0x41, 0x45, 0x89, 0xe4, 0x3d, 0x03, + 0x01, 0x03, 0xee, 0x07, 0x01, 0xff, 0x48, 0x70, 0x11, 0x4a, 0x03, 0x01, + 0x42, 0x7d, 0x11, 0x41, 0x03, 0x41, 0x44, 0xed, 0xef, 0x47, 0x03, 0x01, + 0x43, 0x54, 0xcb, 0x36, 0x03, 0x41, 0x43, 0x81, 0x91, 0x37, 0x03, 0x01, + 0x44, 0x21, 0xf3, 0x48, 0x03, 0x41, 0x43, 0x8c, 0xe4, 0x30, 0x03, 0x01, + 0x45, 0x4f, 0xe7, 0x34, 0x03, 0x41, 0x45, 0xf9, 0xe7, 0x45, 0xf9, 0x01, + 0xf4, 0x10, 0xf4, 0x41, 0xa1, 0x1b, 0x4a, 0xcf, 0xa9, 0xe6, 0x29, 0x00, + 0xaf, 0x01, 0xff, 0x51, 0x86, 0x58, 0x10, 0xf3, 0x01, 0x43, 0x35, 0x4b, + 0xe4, 0xf9, 0x01, 0x49, 0x46, 0xc1, 0x1f, 0xf3, 0x41, 0x08, 0x85, 0x5b, + 0x06, 0x4a, 0x31, 0xb1, 0x5b, 0xf9, 0x41, 0x0f, 0xe4, 0x05, 0xc6, 0x02, + 0x0d, 0x76, 0x08, 0x01, 0xff, 0x43, 0xf2, 0xf3, 0x30, 0x2c, 0x00, 0xa2, + 0xac, 0x02, 0xa3, 0x9d, 0x02, 0xa4, 0x88, 0x02, 0xa6, 0xf9, 0x01, 0x47, + 0x4e, 0xd1, 0x33, 0x2c, 0x00, 0x44, 0x2d, 0xf0, 0x48, 0x2c, 0x00, 0xe9, + 0x3b, 0x2c, 0x80, 0xc2, 0x01, 0x44, 0xc5, 0xf0, 0x3d, 0x2c, 0x00, 0xac, + 0xad, 0x01, 0x47, 0xfd, 0x6a, 0x3f, 0x2c, 0x00, 0x45, 0xf3, 0xe8, 0x40, + 0x2c, 0x00, 0xaf, 0x92, 0x01, 0xb0, 0x85, 0x01, 0x45, 0x6f, 0xea, 0x43, + 0x2c, 0x00, 0xb3, 0x51, 0xb4, 0x3d, 0x43, 0x0a, 0xd6, 0x46, 0x2c, 0x00, + 0x44, 0xf5, 0xf2, 0x32, 0x2c, 0x00, 0xb9, 0x0f, 0xba, 0x01, 0xff, 0x45, + 0xf1, 0xe5, 0x38, 0x2c, 0x00, 0x46, 0x8c, 0xdc, 0x36, 0x2c, 0x40, 0x43, + 0xb3, 0x00, 0x51, 0x2c, 0x00, 0xa5, 0x08, 0xef, 0x56, 0x2c, 0x00, 0xf5, + 0x53, 0x2c, 0x40, 0xb2, 0x06, 0x43, 0x26, 0x0a, 0x35, 0x2c, 0x40, 0xe9, + 0x50, 0x2c, 0x00, 0xf5, 0x4f, 0x2c, 0x40, 0x4b, 0x3d, 0xa2, 0x5d, 0x2c, + 0x00, 0x42, 0x5a, 0x03, 0x4c, 0x2c, 0x00, 0x45, 0x27, 0xec, 0x45, 0x2c, + 0x40, 0xa8, 0x19, 0x44, 0x15, 0xf1, 0x44, 0x2c, 0x00, 0x48, 0x46, 0xbf, + 0x54, 0x2c, 0x80, 0x06, 0x49, 0x0a, 0xbe, 0x52, 0x2c, 0x40, 0x4a, 0x9b, + 0xa6, 0x55, 0x2c, 0x40, 0xe1, 0x4e, 0x2c, 0x00, 0x42, 0x12, 0x00, 0x4b, + 0x2c, 0xc0, 0x00, 0x43, 0x04, 0x8b, 0x5c, 0x2c, 0x40, 0xe5, 0x4a, 0x2c, + 0x00, 0x45, 0x33, 0xdf, 0x42, 0x2c, 0x40, 0x42, 0x3d, 0x16, 0x41, 0x2c, + 0x00, 0x42, 0x5c, 0x01, 0x49, 0x2c, 0x40, 0x4f, 0xf5, 0x6a, 0x5e, 0x2c, + 0x00, 0x46, 0xf3, 0xd2, 0x3e, 0x2c, 0x40, 0x4b, 0x22, 0xa0, 0x3a, 0x2c, + 0x00, 0x07, 0x9e, 0x21, 0x0f, 0x02, 0x54, 0x28, 0x01, 0xff, 0xe5, 0x39, + 0x2c, 0x00, 0x44, 0xda, 0x85, 0x5b, 0x2c, 0x40, 0x47, 0x80, 0xcf, 0x59, + 0x2c, 0x00, 0x49, 0x45, 0xbf, 0x57, 0x2c, 0x40, 0x43, 0xe7, 0x05, 0x5a, + 0x2c, 0x00, 0x44, 0x5a, 0xbf, 0x47, 0x2c, 0x40, 0x45, 0xa9, 0xe7, 0x3c, + 0x2c, 0x00, 0x44, 0xb9, 0xf1, 0x34, 0x2c, 0x00, 0x44, 0x5d, 0xf3, 0x37, + 0x2c, 0x40, 0x4d, 0xe4, 0x80, 0x5f, 0x2c, 0x00, 0x45, 0xec, 0x80, 0x4d, + 0x2c, 0x40, 0x46, 0x81, 0xcf, 0x58, 0x2c, 0x00, 0x43, 0x8f, 0xd2, 0x31, + 0x2c, 0x40, 0x43, 0xf2, 0xf3, 0x00, 0x2c, 0x00, 0xa2, 0xac, 0x02, 0xa3, + 0x9d, 0x02, 0xa4, 0x88, 0x02, 0xa6, 0xf9, 0x01, 0x47, 0x4e, 0xd1, 0x03, + 0x2c, 0x00, 0x44, 0x2d, 0xf0, 0x18, 0x2c, 0x00, 0xe9, 0x0b, 0x2c, 0x80, + 0xc2, 0x01, 0x44, 0xc5, 0xf0, 0x0d, 0x2c, 0x00, 0xac, 0xad, 0x01, 0x47, + 0xfd, 0x6a, 0x0f, 0x2c, 0x00, 0x45, 0xf3, 0xe8, 0x10, 0x2c, 0x00, 0xaf, + 0x92, 0x01, 0xb0, 0x85, 0x01, 0x45, 0x6f, 0xea, 0x13, 0x2c, 0x00, 0xb3, + 0x51, 0xb4, 0x3d, 0x43, 0x0a, 0xd6, 0x16, 0x2c, 0x00, 0x44, 0xf5, 0xf2, + 0x02, 0x2c, 0x00, 0xb9, 0x0f, 0xba, 0x01, 0xff, 0x45, 0xf1, 0xe5, 0x08, + 0x2c, 0x00, 0x46, 0x8c, 0xdc, 0x06, 0x2c, 0x40, 0x43, 0xb3, 0x00, 0x21, + 0x2c, 0x00, 0xa5, 0x08, 0xef, 0x26, 0x2c, 0x00, 0xf5, 0x23, 0x2c, 0x40, + 0xb2, 0x06, 0x43, 0x26, 0x0a, 0x05, 0x2c, 0x40, 0xe9, 0x20, 0x2c, 0x00, + 0xf5, 0x1f, 0x2c, 0x40, 0x4b, 0x3d, 0xa2, 0x2d, 0x2c, 0x00, 0x42, 0x5a, + 0x03, 0x1c, 0x2c, 0x00, 0x45, 0x27, 0xec, 0x15, 0x2c, 0x40, 0xa8, 0x19, + 0x44, 0x15, 0xf1, 0x14, 0x2c, 0x00, 0x48, 0x46, 0xbf, 0x24, 0x2c, 0x80, + 0x06, 0x49, 0x0a, 0xbe, 0x22, 0x2c, 0x40, 0x4a, 0x9b, 0xa6, 0x25, 0x2c, + 0x40, 0xe1, 0x1e, 0x2c, 0x00, 0x42, 0x12, 0x00, 0x1b, 0x2c, 0xc0, 0x00, + 0x43, 0x04, 0x8b, 0x2c, 0x2c, 0x40, 0xe5, 0x1a, 0x2c, 0x00, 0x45, 0x33, + 0xdf, 0x12, 0x2c, 0x40, 0x42, 0x3d, 0x16, 0x11, 0x2c, 0x00, 0x42, 0x5c, + 0x01, 0x19, 0x2c, 0x40, 0x4f, 0xf5, 0x6a, 0x2e, 0x2c, 0x00, 0x46, 0xf3, + 0xd2, 0x0e, 0x2c, 0x40, 0x4b, 0x22, 0xa0, 0x0a, 0x2c, 0x00, 0x07, 0x9e, + 0x21, 0x0f, 0x02, 0x54, 0x28, 0x01, 0xff, 0xe5, 0x09, 0x2c, 0x00, 0x44, + 0xda, 0x85, 0x2b, 0x2c, 0x40, 0x47, 0x80, 0xcf, 0x29, 0x2c, 0x00, 0x49, + 0x45, 0xbf, 0x27, 0x2c, 0x40, 0x43, 0xe7, 0x05, 0x2a, 0x2c, 0x00, 0x44, + 0x5a, 0xbf, 0x17, 0x2c, 0x40, 0x45, 0xa9, 0xe7, 0x0c, 0x2c, 0x00, 0x44, + 0xb9, 0xf1, 0x04, 0x2c, 0x00, 0x44, 0x5d, 0xf3, 0x07, 0x2c, 0x40, 0x4d, + 0xe4, 0x80, 0x2f, 0x2c, 0x00, 0x45, 0xec, 0x80, 0x1d, 0x2c, 0x40, 0x46, + 0x81, 0xcf, 0x28, 0x2c, 0x00, 0x43, 0x8f, 0xd2, 0x01, 0x2c, 0x40, 0x4a, + 0xd5, 0xad, 0x37, 0x21, 0x00, 0x49, 0x51, 0xbc, 0xda, 0xfa, 0x01, 0xb2, + 0x01, 0xff, 0x49, 0xbe, 0xb5, 0x92, 0xf9, 0x01, 0xec, 0x67, 0xf4, 0xc1, + 0x00, 0x48, 0x77, 0x4b, 0xca, 0xf6, 0x41, 0x42, 0x17, 0x00, 0x99, 0x26, + 0x80, 0xb6, 0x0a, 0xad, 0xa7, 0x0a, 0x43, 0x4d, 0x7e, 0xde, 0xf9, 0x01, + 0xaf, 0x0c, 0x4f, 0xc0, 0x72, 0xb0, 0x20, 0x00, 0x47, 0x1e, 0xd6, 0x13, + 0x30, 0x40, 0xad, 0x81, 0x09, 0x06, 0xcd, 0x9b, 0x01, 0xff, 0x0f, 0xe4, + 0x05, 0xf3, 0x06, 0x07, 0xec, 0x05, 0xc1, 0x04, 0x18, 0x1e, 0x2a, 0x8f, + 0x02, 0x53, 0x17, 0x4c, 0xfb, 0x10, 0x00, 0x0d, 0x76, 0x08, 0x01, 0xff, + 0xa1, 0xf7, 0x01, 0x43, 0x26, 0x16, 0x01, 0x2d, 0x00, 0xa3, 0xd4, 0x01, + 0x43, 0x6c, 0x11, 0x03, 0x2d, 0x00, 0x42, 0x92, 0x01, 0x04, 0x2d, 0x00, + 0xa7, 0xb9, 0x01, 0xa8, 0x9c, 0x01, 0x42, 0x9e, 0x01, 0x08, 0x2d, 0x00, + 0xaa, 0x87, 0x01, 0xab, 0x79, 0x43, 0x49, 0x0e, 0x0a, 0x2d, 0x00, 0x43, + 0x41, 0x18, 0x0b, 0x2d, 0x00, 0x43, 0x1d, 0x27, 0x0c, 0x2d, 0x00, 0x42, + 0x10, 0x00, 0x0d, 0x2d, 0x00, 0xb0, 0x53, 0x43, 0x88, 0xf4, 0x17, 0x2d, + 0x00, 0x43, 0x75, 0x82, 0x10, 0x2d, 0x00, 0xb3, 0x39, 0x02, 0x12, 0x00, + 0x2d, 0x42, 0x42, 0x0b, 0x13, 0x2d, 0x00, 0x43, 0xf1, 0x2a, 0x05, 0x2d, + 0x00, 0x42, 0x15, 0x01, 0x23, 0x2d, 0x00, 0x43, 0x04, 0xef, 0x1e, 0x2d, + 0x00, 0x42, 0x03, 0x1d, 0x27, 0x2d, 0x00, 0xba, 0x01, 0xff, 0x42, 0x92, + 0x01, 0x06, 0x2d, 0x00, 0x43, 0xc9, 0x02, 0x0f, 0x2d, 0x40, 0xee, 0x07, + 0x2d, 0x00, 0xf2, 0x12, 0x2d, 0x40, 0x42, 0x1a, 0x00, 0x11, 0x2d, 0x00, + 0x43, 0x7a, 0x16, 0x18, 0x2d, 0x40, 0x42, 0x17, 0x00, 0x0e, 0x2d, 0x00, + 0x43, 0xc9, 0x02, 0x14, 0x2d, 0x40, 0x42, 0x1a, 0x00, 0x09, 0x2d, 0x00, + 0x43, 0xc9, 0x02, 0x15, 0x2d, 0x40, 0x43, 0x90, 0x00, 0x1f, 0x2d, 0x00, + 0x42, 0x62, 0x01, 0x1b, 0x2d, 0x40, 0xa1, 0x10, 0xe5, 0x21, 0x2d, 0x00, + 0x42, 0xf4, 0x02, 0x22, 0x2d, 0x00, 0x42, 0x60, 0x51, 0x25, 0x2d, 0x40, + 0xe5, 0x20, 0x2d, 0x00, 0xf2, 0x24, 0x2d, 0x40, 0x42, 0x1a, 0x00, 0x02, + 0x2d, 0x00, 0x43, 0x90, 0x00, 0x16, 0x2d, 0x40, 0x42, 0x1a, 0x00, 0x1a, + 0x2d, 0x00, 0xa8, 0x06, 0x42, 0x62, 0x01, 0x1c, 0x2d, 0x40, 0x42, 0x17, + 0x00, 0x1d, 0x2d, 0x00, 0x42, 0x9e, 0x01, 0x19, 0x2d, 0x40, 0x42, 0x92, + 0x01, 0x2d, 0x2d, 0x00, 0xee, 0x00, 0x2d, 0x40, 0xa1, 0x9a, 0x02, 0x43, + 0x26, 0x16, 0x91, 0x1c, 0x00, 0xa3, 0xf7, 0x01, 0x43, 0x6c, 0x11, 0x93, + 0x1c, 0x00, 0xa5, 0xe4, 0x01, 0x42, 0xf3, 0x02, 0xb6, 0x1c, 0x00, 0xa7, + 0xcf, 0x01, 0xa8, 0xab, 0x01, 0x42, 0x9e, 0x01, 0x98, 0x1c, 0x00, 0xaa, + 0x96, 0x01, 0xab, 0x87, 0x01, 0x02, 0x74, 0x00, 0x79, 0x43, 0x41, 0x18, + 0x9b, 0x1c, 0x00, 0x43, 0x1d, 0x27, 0x9c, 0x1c, 0x00, 0x42, 0x10, 0x00, + 0x9d, 0x1c, 0x00, 0xb0, 0x59, 0x43, 0x88, 0xf4, 0xa7, 0x1c, 0x00, 0x43, + 0x75, 0x82, 0xa0, 0x1c, 0x00, 0xb3, 0x3f, 0xb4, 0x2d, 0x42, 0x42, 0x0b, + 0xa3, 0x1c, 0x00, 0x43, 0xf1, 0x2a, 0x95, 0x1c, 0x00, 0x42, 0x15, 0x01, + 0xb3, 0x1c, 0x00, 0x43, 0x04, 0xef, 0xae, 0x1c, 0x00, 0x42, 0x03, 0x1d, + 0xb7, 0x1c, 0x00, 0xba, 0x01, 0xff, 0x42, 0x92, 0x01, 0x96, 0x1c, 0x00, + 0x43, 0xc9, 0x02, 0x9f, 0x1c, 0x40, 0xa1, 0x06, 0x49, 0xa4, 0xc0, 0xb9, + 0x1c, 0x40, 0xee, 0x97, 0x1c, 0x00, 0xf2, 0xa2, 0x1c, 0x40, 0x42, 0x1a, + 0x00, 0xa1, 0x1c, 0x00, 0x43, 0x7a, 0x16, 0xa8, 0x1c, 0x40, 0x42, 0x17, + 0x00, 0x9e, 0x1c, 0x00, 0x43, 0xc9, 0x02, 0xa4, 0x1c, 0x40, 0x49, 0x96, + 0xb6, 0xbf, 0x1c, 0x00, 0xf3, 0x9a, 0x1c, 0x40, 0x42, 0x1a, 0x00, 0x99, + 0x1c, 0x00, 0x43, 0xc9, 0x02, 0xa5, 0x1c, 0x40, 0x43, 0x90, 0x00, 0xaf, + 0x1c, 0x00, 0x42, 0x62, 0x01, 0xab, 0x1c, 0x40, 0xa1, 0x10, 0xe5, 0xb1, + 0x1c, 0x00, 0x42, 0xf4, 0x02, 0xb2, 0x1c, 0x00, 0x42, 0x60, 0x51, 0xb5, + 0x1c, 0x40, 0xe5, 0xb0, 0x1c, 0x00, 0xf2, 0xb4, 0x1c, 0xc0, 0x00, 0x46, + 0xb0, 0x47, 0xbe, 0x1c, 0x40, 0x42, 0x1a, 0x00, 0x92, 0x1c, 0x00, 0x43, + 0x90, 0x00, 0xa6, 0x1c, 0x40, 0x44, 0xd4, 0x88, 0xb8, 0x1c, 0x00, 0xee, + 0x94, 0x1c, 0x40, 0x42, 0x1a, 0x00, 0xaa, 0x1c, 0x00, 0xa8, 0x06, 0x42, + 0x62, 0x01, 0xac, 0x1c, 0x40, 0x42, 0x17, 0x00, 0xad, 0x1c, 0x00, 0x42, + 0x9e, 0x01, 0xa9, 0x1c, 0x40, 0x42, 0x92, 0x01, 0xbd, 0x1c, 0x00, 0x42, + 0x9e, 0x01, 0xba, 0x1c, 0x00, 0xee, 0x90, 0x1c, 0x40, 0xa1, 0x9a, 0x02, + 0x43, 0x26, 0x16, 0xd1, 0x10, 0x00, 0xa3, 0xf7, 0x01, 0x43, 0x6c, 0x11, + 0xd3, 0x10, 0x00, 0xa5, 0xe4, 0x01, 0x42, 0xf3, 0x02, 0xf6, 0x10, 0x00, + 0xa7, 0xcf, 0x01, 0xa8, 0xab, 0x01, 0x42, 0x9e, 0x01, 0xd8, 0x10, 0x00, + 0xaa, 0x96, 0x01, 0xab, 0x87, 0x01, 0x02, 0x74, 0x00, 0x79, 0x43, 0x41, + 0x18, 0xdb, 0x10, 0x00, 0x43, 0x1d, 0x27, 0xdc, 0x10, 0x00, 0x42, 0x10, + 0x00, 0xdd, 0x10, 0x00, 0xb0, 0x59, 0x43, 0x88, 0xf4, 0xe7, 0x10, 0x00, + 0x43, 0x75, 0x82, 0xe0, 0x10, 0x00, 0xb3, 0x3f, 0xb4, 0x2d, 0x42, 0x42, + 0x0b, 0xe3, 0x10, 0x00, 0x43, 0xf1, 0x2a, 0xd5, 0x10, 0x00, 0x42, 0x15, + 0x01, 0xf3, 0x10, 0x00, 0x43, 0x04, 0xef, 0xee, 0x10, 0x00, 0x42, 0x03, + 0x1d, 0xf7, 0x10, 0x00, 0xba, 0x01, 0xff, 0x42, 0x92, 0x01, 0xd6, 0x10, + 0x00, 0x43, 0xc9, 0x02, 0xdf, 0x10, 0x40, 0xa1, 0x06, 0x49, 0xa4, 0xc0, + 0xf9, 0x10, 0x40, 0xee, 0xd7, 0x10, 0x00, 0xf2, 0xe2, 0x10, 0x40, 0x42, + 0x1a, 0x00, 0xe1, 0x10, 0x00, 0x43, 0x7a, 0x16, 0xe8, 0x10, 0x40, 0x42, + 0x17, 0x00, 0xde, 0x10, 0x00, 0x43, 0xc9, 0x02, 0xe4, 0x10, 0x40, 0x49, + 0x96, 0xb6, 0xff, 0x10, 0x00, 0xf3, 0xda, 0x10, 0x40, 0x42, 0x1a, 0x00, + 0xd9, 0x10, 0x00, 0x43, 0xc9, 0x02, 0xe5, 0x10, 0x40, 0x43, 0x90, 0x00, + 0xef, 0x10, 0x00, 0x42, 0x62, 0x01, 0xeb, 0x10, 0x40, 0xa1, 0x10, 0xe5, + 0xf1, 0x10, 0x00, 0x42, 0xf4, 0x02, 0xf2, 0x10, 0x00, 0x42, 0x60, 0x51, + 0xf5, 0x10, 0x40, 0xe5, 0xf0, 0x10, 0x00, 0xf2, 0xf4, 0x10, 0xc0, 0x00, + 0x46, 0xb0, 0x47, 0xfe, 0x10, 0x40, 0x42, 0x1a, 0x00, 0xd2, 0x10, 0x00, + 0x43, 0x90, 0x00, 0xe6, 0x10, 0x40, 0x44, 0xd4, 0x88, 0xf8, 0x10, 0x00, + 0xee, 0xd4, 0x10, 0x40, 0x42, 0x1a, 0x00, 0xea, 0x10, 0x00, 0xa8, 0x06, + 0x42, 0x62, 0x01, 0xec, 0x10, 0x40, 0x42, 0x17, 0x00, 0xed, 0x10, 0x00, + 0x42, 0x9e, 0x01, 0xe9, 0x10, 0x40, 0x42, 0x92, 0x01, 0xfd, 0x10, 0x00, + 0x42, 0x9e, 0x01, 0xfa, 0x10, 0x00, 0xee, 0xd0, 0x10, 0x40, 0xa1, 0xf7, + 0x01, 0x43, 0x26, 0x16, 0xa1, 0x10, 0x00, 0xa3, 0xd4, 0x01, 0x43, 0x6c, + 0x11, 0xa3, 0x10, 0x00, 0x42, 0x92, 0x01, 0xa4, 0x10, 0x00, 0xa7, 0xb9, + 0x01, 0xa8, 0x9c, 0x01, 0x42, 0x9e, 0x01, 0xa8, 0x10, 0x00, 0xaa, 0x87, + 0x01, 0xab, 0x79, 0x43, 0x49, 0x0e, 0xaa, 0x10, 0x00, 0x43, 0x41, 0x18, + 0xab, 0x10, 0x00, 0x43, 0x1d, 0x27, 0xac, 0x10, 0x00, 0x42, 0x10, 0x00, + 0xad, 0x10, 0x00, 0xb0, 0x53, 0x43, 0x88, 0xf4, 0xb7, 0x10, 0x00, 0x43, + 0x75, 0x82, 0xb0, 0x10, 0x00, 0xb3, 0x39, 0x02, 0x12, 0x00, 0x2d, 0x42, + 0x42, 0x0b, 0xb3, 0x10, 0x00, 0x43, 0xf1, 0x2a, 0xa5, 0x10, 0x00, 0x42, + 0x15, 0x01, 0xc3, 0x10, 0x00, 0x43, 0x04, 0xef, 0xbe, 0x10, 0x00, 0x42, + 0x03, 0x1d, 0xc7, 0x10, 0x00, 0xba, 0x01, 0xff, 0x42, 0x92, 0x01, 0xa6, + 0x10, 0x00, 0x43, 0xc9, 0x02, 0xaf, 0x10, 0x40, 0xee, 0xa7, 0x10, 0x00, + 0xf2, 0xb2, 0x10, 0x40, 0x42, 0x1a, 0x00, 0xb1, 0x10, 0x00, 0x43, 0x7a, + 0x16, 0xb8, 0x10, 0x40, 0x42, 0x17, 0x00, 0xae, 0x10, 0x00, 0x43, 0xc9, + 0x02, 0xb4, 0x10, 0x40, 0x42, 0x1a, 0x00, 0xa9, 0x10, 0x00, 0x43, 0xc9, + 0x02, 0xb5, 0x10, 0x40, 0x43, 0x90, 0x00, 0xbf, 0x10, 0x00, 0x42, 0x62, + 0x01, 0xbb, 0x10, 0x40, 0xa1, 0x10, 0xe5, 0xc1, 0x10, 0x00, 0x42, 0xf4, + 0x02, 0xc2, 0x10, 0x00, 0x42, 0x60, 0x51, 0xc5, 0x10, 0x40, 0xe5, 0xc0, + 0x10, 0x00, 0xf2, 0xc4, 0x10, 0x40, 0x42, 0x1a, 0x00, 0xa2, 0x10, 0x00, + 0x43, 0x90, 0x00, 0xb6, 0x10, 0x40, 0x42, 0x1a, 0x00, 0xba, 0x10, 0x00, + 0xa8, 0x06, 0x42, 0x62, 0x01, 0xbc, 0x10, 0x40, 0x42, 0x17, 0x00, 0xbd, + 0x10, 0x00, 0x42, 0x9e, 0x01, 0xb9, 0x10, 0x40, 0x42, 0x92, 0x01, 0xcd, + 0x10, 0x00, 0xee, 0xa0, 0x10, 0x40, 0x0d, 0x7c, 0x80, 0x1c, 0x05, 0x9d, + 0x55, 0x01, 0xff, 0x4b, 0xb6, 0x97, 0x3a, 0x22, 0x00, 0x08, 0xf3, 0x0c, + 0x01, 0xff, 0x45, 0xfb, 0x0c, 0x51, 0x22, 0x00, 0x4a, 0xd6, 0x39, 0x4e, + 0x22, 0x40, 0xa1, 0x5b, 0xa3, 0x3f, 0x09, 0x0c, 0xb9, 0x2f, 0x48, 0x98, + 0xc7, 0xe8, 0xce, 0x01, 0xb0, 0x12, 0x46, 0xbc, 0xdf, 0xe4, 0xce, 0x01, + 0x49, 0x0b, 0xc0, 0xe1, 0xce, 0x01, 0x43, 0x10, 0x50, 0xef, 0xce, 0x41, + 0x46, 0xea, 0xde, 0xe0, 0xce, 0x01, 0x02, 0xd6, 0x13, 0x01, 0xff, 0x43, + 0x2c, 0x0e, 0xeb, 0xce, 0x01, 0xf2, 0xed, 0xce, 0x41, 0x44, 0xed, 0xee, + 0xe3, 0xce, 0x01, 0x44, 0x95, 0xf0, 0xec, 0xce, 0x41, 0xa1, 0x06, 0x49, + 0x44, 0xbd, 0xe6, 0xce, 0x41, 0x4c, 0xdb, 0x93, 0xe7, 0xce, 0x01, 0x44, + 0x3d, 0xf2, 0xe9, 0xce, 0x01, 0x4c, 0x33, 0x96, 0xee, 0xce, 0x41, 0x49, + 0x6e, 0xb7, 0xe5, 0xce, 0x01, 0x44, 0xf9, 0xf0, 0xe2, 0xce, 0x01, 0x46, + 0x88, 0x30, 0xea, 0xce, 0x41, 0x46, 0x9b, 0xba, 0x8e, 0xf4, 0x01, 0x43, + 0x57, 0x07, 0x4a, 0x26, 0x40, 0x05, 0x50, 0x00, 0x01, 0xff, 0x48, 0x08, + 0xc2, 0xee, 0x26, 0x00, 0x47, 0x34, 0xd4, 0xed, 0x26, 0x40, 0x46, 0x00, + 0xde, 0xb2, 0xf3, 0x01, 0xb2, 0x01, 0xff, 0x03, 0x05, 0x20, 0x06, 0x43, + 0xbc, 0x04, 0xc4, 0xf9, 0x41, 0xa3, 0x96, 0x02, 0x06, 0xef, 0x06, 0xcf, + 0x01, 0x46, 0x96, 0x63, 0x6e, 0x0d, 0x01, 0x4a, 0x67, 0x98, 0x8f, 0x0d, + 0x01, 0x49, 0xdf, 0x71, 0x8e, 0x0d, 0x01, 0x52, 0xc1, 0x54, 0x6f, 0x0d, + 0x01, 0xb3, 0x25, 0x06, 0x3c, 0x39, 0x01, 0xff, 0x4b, 0x42, 0x39, 0x4e, + 0x0d, 0x01, 0x05, 0x5a, 0x03, 0x01, 0xff, 0xe1, 0x4a, 0x0d, 0x01, 0xe5, + 0x69, 0x0d, 0x81, 0x08, 0xe9, 0x4b, 0x0d, 0x01, 0xef, 0x4c, 0x0d, 0x41, + 0xe5, 0x4d, 0x0d, 0x41, 0x0c, 0x77, 0x08, 0x06, 0x44, 0x24, 0xeb, 0x4f, + 0x0d, 0x41, 0xe1, 0x70, 0x0d, 0x01, 0x42, 0x16, 0x00, 0x74, 0x0d, 0x01, + 0x42, 0x37, 0x00, 0x71, 0x0d, 0x01, 0x42, 0xf0, 0x10, 0x7a, 0x0d, 0x01, + 0x42, 0x0c, 0x08, 0x80, 0x0d, 0x01, 0x42, 0x24, 0x02, 0x79, 0x0d, 0x01, + 0x42, 0x22, 0x00, 0x83, 0x0d, 0x01, 0x42, 0x56, 0x19, 0x75, 0x0d, 0x01, + 0x42, 0x1b, 0x02, 0x73, 0x0d, 0x01, 0x42, 0x74, 0x00, 0x78, 0x0d, 0x01, + 0x42, 0x6c, 0x00, 0x72, 0x0d, 0x01, 0xae, 0x3a, 0x04, 0x2e, 0x25, 0x2a, + 0x42, 0xbb, 0x09, 0x82, 0x0d, 0x01, 0x42, 0x71, 0x00, 0x7e, 0x0d, 0x01, + 0x42, 0x40, 0x06, 0x76, 0x0d, 0x01, 0x42, 0x12, 0x00, 0x7d, 0x0d, 0x01, + 0x42, 0xa9, 0x01, 0x77, 0x0d, 0x01, 0x42, 0xed, 0x26, 0x7b, 0x0d, 0x01, + 0x42, 0xbc, 0x22, 0x7c, 0x0d, 0x41, 0x42, 0x1b, 0x02, 0x84, 0x0d, 0x01, + 0x42, 0x2a, 0x05, 0x85, 0x0d, 0x41, 0xe1, 0x81, 0x0d, 0x01, 0x42, 0xbc, + 0x22, 0x7f, 0x0d, 0x41, 0x45, 0x12, 0x0b, 0x48, 0x0d, 0x01, 0xa6, 0x2e, + 0x44, 0xcf, 0x2a, 0x49, 0x0d, 0x01, 0x43, 0x0e, 0x0b, 0x41, 0x0d, 0x01, + 0xb3, 0x14, 0xb4, 0x06, 0x44, 0x43, 0x1e, 0x40, 0x0d, 0x41, 0x44, 0x25, + 0x01, 0x43, 0x0d, 0x01, 0x42, 0x15, 0x02, 0x42, 0x0d, 0x41, 0x44, 0xc9, + 0x1d, 0x47, 0x0d, 0x01, 0x42, 0x01, 0x26, 0x46, 0x0d, 0x41, 0x43, 0xd2, + 0x05, 0x45, 0x0d, 0x01, 0x43, 0xf6, 0x06, 0x44, 0x0d, 0x41, 0x0e, 0xe5, + 0x05, 0x24, 0xaf, 0x01, 0xff, 0x0a, 0xb7, 0xad, 0x11, 0x08, 0x29, 0x33, + 0x01, 0xff, 0x4f, 0x89, 0x6d, 0x6a, 0x0d, 0x01, 0x51, 0x60, 0x5c, 0x6d, + 0x0d, 0x41, 0x47, 0x3c, 0x1e, 0x6b, 0x0d, 0x01, 0x4e, 0x18, 0x62, 0x6c, + 0x0d, 0x41, 0xe1, 0x50, 0x0d, 0x01, 0x42, 0x16, 0x00, 0x54, 0x0d, 0x01, + 0x42, 0x37, 0x00, 0x51, 0x0d, 0x01, 0x42, 0xf0, 0x10, 0x5a, 0x0d, 0x01, + 0x42, 0x0c, 0x08, 0x60, 0x0d, 0x01, 0x42, 0x24, 0x02, 0x59, 0x0d, 0x01, + 0x42, 0x22, 0x00, 0x63, 0x0d, 0x01, 0x42, 0x56, 0x19, 0x55, 0x0d, 0x01, + 0x42, 0x1b, 0x02, 0x53, 0x0d, 0x01, 0x42, 0x74, 0x00, 0x58, 0x0d, 0x01, + 0x42, 0x6c, 0x00, 0x52, 0x0d, 0x01, 0xae, 0x3a, 0x04, 0x2e, 0x25, 0x2a, + 0x42, 0xbb, 0x09, 0x62, 0x0d, 0x01, 0x42, 0x71, 0x00, 0x5e, 0x0d, 0x01, + 0x42, 0x40, 0x06, 0x56, 0x0d, 0x01, 0x42, 0x12, 0x00, 0x5d, 0x0d, 0x01, + 0x42, 0xa9, 0x01, 0x57, 0x0d, 0x01, 0x42, 0xed, 0x26, 0x5b, 0x0d, 0x01, + 0x42, 0xbc, 0x22, 0x5c, 0x0d, 0x41, 0x42, 0x1b, 0x02, 0x64, 0x0d, 0x01, + 0x42, 0x2a, 0x05, 0x65, 0x0d, 0x41, 0xe1, 0x61, 0x0d, 0x01, 0x42, 0xbc, + 0x22, 0x5f, 0x0d, 0x41, 0xa1, 0x99, 0x0b, 0xa5, 0xe5, 0x0a, 0xa9, 0x86, + 0x09, 0xac, 0xd9, 0x07, 0xaf, 0x92, 0x06, 0xb2, 0x9b, 0x05, 0xb5, 0x01, + 0xff, 0x47, 0xc9, 0xd0, 0xfd, 0x26, 0x00, 0x02, 0x60, 0x07, 0x1a, 0xae, + 0x06, 0x42, 0x46, 0x03, 0xdb, 0x23, 0x40, 0x51, 0x96, 0x59, 0x61, 0x20, + 0x00, 0x48, 0xb8, 0xc5, 0xb1, 0x26, 0x00, 0x43, 0xf6, 0xc7, 0x08, 0xce, + 0x41, 0x80, 0xcf, 0x04, 0x06, 0x3b, 0x50, 0x01, 0xff, 0xa1, 0xb5, 0x04, + 0x4a, 0x5d, 0xa8, 0xe4, 0xff, 0x00, 0xa3, 0x88, 0x04, 0xa4, 0xb9, 0x03, + 0xa5, 0xaa, 0x03, 0x49, 0x81, 0x16, 0x0e, 0xff, 0x00, 0x02, 0x87, 0x00, + 0x93, 0x03, 0x4c, 0xc7, 0x8f, 0x0d, 0xff, 0x00, 0xac, 0x83, 0x01, 0x46, + 0xad, 0x70, 0xe3, 0xff, 0x00, 0xae, 0x6f, 0xb0, 0x5b, 0x02, 0x7c, 0x00, + 0x4b, 0xb2, 0x26, 0xb3, 0x18, 0x45, 0x35, 0x23, 0x5e, 0xff, 0x00, 0x4d, + 0xcd, 0x0b, 0x5c, 0xff, 0x00, 0x48, 0x90, 0xcc, 0xe6, 0xff, 0x00, 0x48, + 0x2f, 0x7f, 0xe5, 0xff, 0x40, 0x48, 0xda, 0x59, 0x1b, 0xff, 0x00, 0x46, + 0x50, 0x31, 0x0f, 0xff, 0x40, 0x4e, 0x67, 0x72, 0x3c, 0xff, 0x00, 0x05, + 0xc9, 0x00, 0x01, 0xff, 0x4d, 0x72, 0x0b, 0x5d, 0xff, 0x00, 0x4b, 0xd8, + 0x21, 0x09, 0xff, 0x00, 0x4e, 0xc8, 0x26, 0x3d, 0xff, 0x00, 0x51, 0x6e, + 0x5f, 0x60, 0xff, 0x40, 0x4b, 0xa8, 0x34, 0x1f, 0xff, 0x00, 0x4c, 0x1b, + 0x05, 0x02, 0xff, 0x40, 0x4b, 0xe1, 0x9b, 0x05, 0xff, 0x00, 0x48, 0xe0, + 0x71, 0x0b, 0xff, 0x00, 0x49, 0xac, 0xaf, 0xe1, 0xff, 0x40, 0x47, 0x8b, + 0x73, 0xe2, 0xff, 0x00, 0x4a, 0x06, 0x68, 0x03, 0xff, 0x40, 0x05, 0xdf, + 0x05, 0x2a, 0xa5, 0x06, 0x47, 0x76, 0x8a, 0x3f, 0xff, 0x40, 0x03, 0xc5, + 0x00, 0x06, 0x4c, 0x67, 0x95, 0x1c, 0xff, 0x40, 0x4d, 0x72, 0x0b, 0x5b, + 0xff, 0x00, 0x4b, 0xd8, 0x21, 0x08, 0xff, 0x00, 0x4e, 0xc8, 0x26, 0x3b, + 0xff, 0x00, 0x51, 0x6e, 0x5f, 0x5f, 0xff, 0x40, 0x0f, 0xe4, 0x05, 0x6d, + 0x0d, 0x76, 0x08, 0x01, 0xff, 0xe1, 0x41, 0xff, 0x00, 0xe2, 0x42, 0xff, + 0x00, 0xe3, 0x43, 0xff, 0x00, 0xe4, 0x44, 0xff, 0x00, 0xe5, 0x45, 0xff, + 0x00, 0xe6, 0x46, 0xff, 0x00, 0xe7, 0x47, 0xff, 0x00, 0xe8, 0x48, 0xff, + 0x00, 0xe9, 0x49, 0xff, 0x00, 0xea, 0x4a, 0xff, 0x00, 0xeb, 0x4b, 0xff, + 0x00, 0xec, 0x4c, 0xff, 0x00, 0xed, 0x4d, 0xff, 0x00, 0xee, 0x4e, 0xff, + 0x00, 0xef, 0x4f, 0xff, 0x00, 0xf0, 0x50, 0xff, 0x00, 0xf1, 0x51, 0xff, + 0x00, 0xf2, 0x52, 0xff, 0x00, 0xf3, 0x53, 0xff, 0x00, 0xf4, 0x54, 0xff, + 0x00, 0xf5, 0x55, 0xff, 0x00, 0xf6, 0x56, 0xff, 0x00, 0xf7, 0x57, 0xff, + 0x00, 0xf8, 0x58, 0xff, 0x00, 0xf9, 0x59, 0xff, 0x00, 0xfa, 0x5a, 0xff, + 0x40, 0xe1, 0x21, 0xff, 0x00, 0xe2, 0x22, 0xff, 0x00, 0xe3, 0x23, 0xff, + 0x00, 0xe4, 0x24, 0xff, 0x00, 0xe5, 0x25, 0xff, 0x00, 0xe6, 0x26, 0xff, + 0x00, 0xe7, 0x27, 0xff, 0x00, 0xe8, 0x28, 0xff, 0x00, 0xe9, 0x29, 0xff, + 0x00, 0xea, 0x2a, 0xff, 0x00, 0xeb, 0x2b, 0xff, 0x00, 0xec, 0x2c, 0xff, + 0x00, 0xed, 0x2d, 0xff, 0x00, 0xee, 0x2e, 0xff, 0x00, 0xef, 0x2f, 0xff, + 0x00, 0xf0, 0x30, 0xff, 0x00, 0xf1, 0x31, 0xff, 0x00, 0xf2, 0x32, 0xff, + 0x00, 0xf3, 0x33, 0xff, 0x00, 0xf4, 0x34, 0xff, 0x00, 0xf5, 0x35, 0xff, + 0x00, 0xf6, 0x36, 0xff, 0x00, 0xf7, 0x37, 0xff, 0x00, 0xf8, 0x38, 0xff, + 0x00, 0xf9, 0x39, 0xff, 0x00, 0xfa, 0x3a, 0xff, 0x40, 0x4a, 0x17, 0x23, + 0x40, 0xff, 0x00, 0x4f, 0x64, 0x5a, 0x1e, 0xff, 0x40, 0x4a, 0x49, 0x13, + 0x1d, 0xff, 0x00, 0x4f, 0xae, 0x00, 0x01, 0xff, 0x40, 0x05, 0xf0, 0x06, + 0x06, 0x4a, 0x11, 0x9b, 0x04, 0xff, 0x40, 0x45, 0x12, 0x0b, 0x18, 0xff, + 0x00, 0xa6, 0x2e, 0x44, 0xcf, 0x2a, 0x19, 0xff, 0x00, 0x43, 0x0e, 0x0b, + 0x11, 0xff, 0x00, 0xb3, 0x14, 0xb4, 0x06, 0x44, 0x43, 0x1e, 0x10, 0xff, + 0x40, 0x44, 0x25, 0x01, 0x13, 0xff, 0x00, 0x42, 0x15, 0x02, 0x12, 0xff, + 0x40, 0x44, 0xc9, 0x1d, 0x17, 0xff, 0x00, 0x42, 0x01, 0x26, 0x16, 0xff, + 0x40, 0x43, 0xd2, 0x05, 0x15, 0xff, 0x00, 0x43, 0xf6, 0x06, 0x14, 0xff, + 0x40, 0x48, 0xe4, 0x9b, 0xe0, 0xff, 0x00, 0x50, 0xd0, 0x04, 0x3e, 0xff, + 0x00, 0xaf, 0x01, 0xff, 0x43, 0xd7, 0x02, 0x1a, 0xff, 0x00, 0x02, 0x15, + 0x05, 0x01, 0xff, 0xe1, 0x0c, 0xff, 0x00, 0x49, 0x85, 0xb8, 0x20, 0xff, + 0x40, 0x48, 0x13, 0x3e, 0x06, 0xff, 0x00, 0x49, 0x62, 0x36, 0x07, 0xff, + 0x00, 0x47, 0x3d, 0x0d, 0x0a, 0xff, 0x40, 0x45, 0x33, 0x01, 0x88, 0x25, + 0x00, 0x05, 0xaf, 0x1b, 0x0c, 0x4a, 0x51, 0xaf, 0xd7, 0x27, 0x00, 0x44, + 0x55, 0x03, 0x2e, 0x00, 0x40, 0x46, 0x16, 0x08, 0x15, 0xf3, 0x01, 0x49, + 0x4f, 0xc1, 0x1d, 0xf3, 0x41, 0xa1, 0x45, 0xa5, 0x2c, 0x4a, 0x87, 0xab, + 0x64, 0xf3, 0x01, 0xaf, 0x01, 0xff, 0x46, 0x30, 0x29, 0x38, 0xf4, 0x01, + 0x03, 0x36, 0x10, 0x0d, 0x42, 0xa7, 0x01, 0x22, 0x23, 0xc0, 0x00, 0x58, + 0x2e, 0x29, 0x26, 0xf6, 0x41, 0x51, 0xeb, 0x59, 0x25, 0xf4, 0x01, 0x66, + 0x59, 0x05, 0xac, 0x27, 0x40, 0x4a, 0x95, 0x9b, 0x76, 0xf9, 0x01, 0x06, + 0x30, 0xde, 0x01, 0xff, 0x48, 0x50, 0xc3, 0xa3, 0x20, 0x00, 0x43, 0x14, + 0x9e, 0x5f, 0xf3, 0x41, 0x06, 0x06, 0x17, 0x1d, 0x4b, 0x70, 0x9c, 0xba, + 0xce, 0x01, 0x08, 0x40, 0xc8, 0x01, 0xff, 0x44, 0x01, 0xef, 0xbe, 0xf5, + 0x01, 0x47, 0x04, 0x8b, 0xbc, 0xf5, 0x01, 0x45, 0xbf, 0xd5, 0xbd, 0xf5, + 0x41, 0x4d, 0x94, 0x86, 0x5f, 0x21, 0x00, 0x45, 0x48, 0x0e, 0x44, 0x20, + 0x40, 0xe7, 0x2b, 0xf3, 0x81, 0xb8, 0x01, 0x02, 0xe2, 0x1a, 0xa7, 0x01, + 0x44, 0x6d, 0xf1, 0xd5, 0xfa, 0x01, 0x42, 0x1b, 0x05, 0xb6, 0xf9, 0x81, + 0x93, 0x01, 0xb2, 0x55, 0xb5, 0x06, 0x46, 0x60, 0xe1, 0x8a, 0xf9, 0x41, + 0x45, 0x54, 0x07, 0xf2, 0x26, 0x00, 0xb2, 0x01, 0xff, 0x80, 0x0c, 0x4d, + 0x2e, 0x80, 0x05, 0x20, 0x00, 0x47, 0x32, 0x9c, 0x1c, 0x22, 0x40, 0x57, + 0xcd, 0x1c, 0x23, 0x27, 0x00, 0xa3, 0x22, 0x04, 0x03, 0x0c, 0x12, 0x4b, + 0x75, 0x9e, 0x40, 0xf3, 0x01, 0x52, 0xec, 0x2b, 0xc6, 0xf7, 0x01, 0x58, + 0x6e, 0x2b, 0x22, 0x27, 0x40, 0x44, 0xb9, 0x00, 0x5b, 0x20, 0x00, 0x4b, + 0x07, 0x0c, 0x58, 0x20, 0x40, 0x53, 0x20, 0x4b, 0x25, 0x27, 0x00, 0x63, + 0x1e, 0x0b, 0x94, 0x2b, 0x40, 0x44, 0xbd, 0x2d, 0x00, 0x22, 0x00, 0x43, + 0x43, 0x7c, 0xa9, 0x22, 0x00, 0xab, 0x15, 0x46, 0x6a, 0xc9, 0x0c, 0x00, + 0x00, 0x03, 0x86, 0x97, 0x01, 0xff, 0xe1, 0xcc, 0xce, 0x01, 0x48, 0x58, + 0xc5, 0x60, 0xf9, 0x41, 0x4a, 0xb5, 0xa5, 0x74, 0xf3, 0x81, 0x0c, 0x4e, + 0xbf, 0x51, 0x10, 0x2e, 0x00, 0x43, 0xa1, 0x01, 0xdc, 0x2a, 0x40, 0x4b, + 0x2f, 0x98, 0x7d, 0xf3, 0x41, 0x46, 0x62, 0xcc, 0x63, 0xf4, 0x41, 0x42, + 0x33, 0x00, 0xc0, 0xf5, 0x01, 0x4c, 0x1b, 0x90, 0xad, 0xfa, 0x41, 0x42, + 0xb7, 0x35, 0x01, 0xf3, 0x41, 0xa1, 0x80, 0x01, 0xa5, 0x72, 0xaf, 0x45, + 0xb5, 0x37, 0xf9, 0xb0, 0xfa, 0xc1, 0x00, 0x04, 0xa1, 0x01, 0x01, 0xff, + 0x44, 0x3c, 0x64, 0x4f, 0xf9, 0x01, 0x48, 0x43, 0x32, 0x85, 0xf5, 0x01, + 0x46, 0xa1, 0x91, 0xf8, 0xf6, 0xc1, 0x00, 0x80, 0x01, 0xff, 0x46, 0x16, + 0x08, 0xfb, 0xcc, 0x01, 0x04, 0x51, 0x00, 0x01, 0xff, 0x46, 0x98, 0xbd, + 0x4a, 0xcc, 0x01, 0x49, 0x95, 0xbd, 0x4b, 0xcc, 0x41, 0x49, 0x36, 0x93, + 0x33, 0xf6, 0x01, 0x42, 0x77, 0x00, 0x88, 0xfa, 0x41, 0x48, 0x5a, 0x39, + 0xbe, 0xf4, 0x01, 0x42, 0x71, 0x00, 0xc2, 0xce, 0x81, 0x18, 0x43, 0x15, + 0x01, 0x98, 0x26, 0xc0, 0x00, 0x02, 0x9b, 0x01, 0x01, 0xff, 0x4c, 0xe7, + 0x90, 0xb4, 0xf3, 0x01, 0x4f, 0x11, 0x22, 0x55, 0x20, 0x40, 0x47, 0xaa, + 0x21, 0x66, 0x27, 0x40, 0x49, 0x80, 0xc0, 0x9c, 0x26, 0x00, 0x4a, 0xbb, + 0xb3, 0xaa, 0xf4, 0x41, 0x49, 0x27, 0xb9, 0xf3, 0x26, 0x00, 0x45, 0xb2, + 0xe8, 0xa9, 0xf9, 0x01, 0x4a, 0xb5, 0xaf, 0x96, 0xcc, 0x01, 0xb4, 0x01, + 0xff, 0x45, 0xcc, 0x97, 0x7f, 0xf9, 0x01, 0x45, 0xd2, 0x77, 0xd3, 0xfa, + 0x01, 0x44, 0x22, 0x24, 0xe5, 0x23, 0x40, 0x59, 0x02, 0x24, 0xd1, 0xf3, + 0x01, 0xa7, 0xbc, 0x01, 0xac, 0x92, 0x01, 0xae, 0x83, 0x01, 0xb2, 0x30, + 0xb3, 0x11, 0x07, 0x36, 0xd7, 0x01, 0xff, 0x44, 0xb9, 0x00, 0x2d, 0x2e, + 0x00, 0x4b, 0x07, 0x0c, 0x59, 0x20, 0x40, 0xe8, 0x1f, 0xf4, 0x81, 0x06, + 0x4d, 0x2b, 0x89, 0x4a, 0xf4, 0x41, 0x57, 0x5e, 0x2c, 0x65, 0xf3, 0x01, + 0x43, 0xc6, 0x1c, 0xc9, 0x25, 0x00, 0x51, 0x1d, 0x5b, 0xa3, 0xf3, 0x41, + 0xe5, 0x25, 0xf5, 0x81, 0x27, 0x03, 0x7c, 0x18, 0x01, 0xff, 0x4b, 0x3e, + 0x71, 0x47, 0xf9, 0x01, 0x4c, 0x3b, 0x73, 0x3d, 0x26, 0x80, 0x06, 0x4e, + 0x8b, 0x7c, 0x68, 0x20, 0x40, 0x80, 0x01, 0xff, 0x46, 0x16, 0x08, 0x13, + 0xf3, 0x01, 0x49, 0x4f, 0xc1, 0x1b, 0xf3, 0x41, 0x02, 0x7a, 0x00, 0x15, + 0x47, 0x21, 0xd0, 0xe8, 0xf9, 0x01, 0x04, 0x95, 0x4b, 0x01, 0xff, 0x49, + 0xdd, 0xb4, 0x87, 0xf3, 0x01, 0xf3, 0x86, 0xf3, 0x41, 0x45, 0x29, 0x9c, + 0x92, 0xf6, 0x01, 0x4b, 0x60, 0xa5, 0xef, 0xf9, 0x41, 0x48, 0x68, 0xc6, + 0xc6, 0xfa, 0x01, 0x51, 0x50, 0x5b, 0x0d, 0x2a, 0x40, 0x02, 0x60, 0x00, + 0x11, 0x02, 0x49, 0x04, 0x01, 0xff, 0x46, 0xd8, 0xdb, 0x9e, 0xf3, 0x01, + 0x49, 0x37, 0xbe, 0xfd, 0xf4, 0x41, 0x47, 0xc6, 0xcf, 0xc4, 0xf5, 0x01, + 0x46, 0xb3, 0xab, 0xc1, 0xf4, 0x01, 0x49, 0xd8, 0x20, 0x1c, 0x00, 0x40, + 0x48, 0xd0, 0xc6, 0xef, 0xfa, 0x01, 0x04, 0x75, 0x18, 0x01, 0xff, 0x44, + 0x8f, 0x12, 0x12, 0x20, 0x00, 0x45, 0xd0, 0x4c, 0x07, 0x20, 0x40, 0xa1, + 0x23, 0xad, 0x15, 0x44, 0x65, 0xf1, 0x3a, 0xf9, 0x01, 0x02, 0xcf, 0x00, + 0x01, 0xff, 0x48, 0x38, 0xc7, 0xa1, 0xf3, 0x01, 0xf9, 0xf4, 0x26, 0x40, + 0x48, 0x62, 0x21, 0x40, 0x26, 0x00, 0x57, 0x27, 0x2f, 0xaa, 0x00, 0x40, + 0x49, 0xac, 0xbe, 0x28, 0xf6, 0x01, 0x44, 0x0f, 0x1a, 0xb6, 0xfa, 0x41, + 0xa3, 0x55, 0x43, 0xa1, 0xe0, 0xda, 0xf9, 0x01, 0xac, 0x23, 0x44, 0xb6, + 0xdb, 0x6a, 0xf4, 0x01, 0x4a, 0xa5, 0xb0, 0x2b, 0x26, 0x00, 0x4e, 0xdf, + 0x7c, 0x85, 0xf3, 0x01, 0x02, 0xd8, 0x04, 0x01, 0xff, 0x44, 0xbf, 0xe1, + 0xb7, 0xf5, 0x01, 0x47, 0x80, 0x48, 0xe0, 0xf4, 0x41, 0x44, 0xe1, 0xee, + 0xc6, 0xf9, 0x01, 0xac, 0x01, 0xff, 0x47, 0xd0, 0xd0, 0x42, 0xf3, 0x01, + 0x0d, 0x39, 0x31, 0x01, 0xff, 0x09, 0x95, 0x10, 0x06, 0x5f, 0x2f, 0x11, + 0xde, 0x26, 0x40, 0x50, 0xa7, 0x23, 0x2f, 0x29, 0x00, 0x4f, 0xfa, 0x3d, + 0x2c, 0x29, 0x40, 0x02, 0x60, 0x00, 0x0c, 0x4b, 0xa0, 0xa2, 0x3b, 0x21, + 0x00, 0x44, 0xd2, 0x96, 0xed, 0xf3, 0x41, 0x52, 0x4b, 0x52, 0x79, 0xf9, + 0x01, 0x47, 0x2a, 0xd3, 0x86, 0xf4, 0x01, 0x44, 0xd0, 0x40, 0x26, 0xf9, + 0x01, 0xb3, 0xcb, 0x01, 0x4f, 0xb0, 0x73, 0x18, 0xf6, 0x01, 0x04, 0x51, + 0x00, 0x01, 0xff, 0x80, 0x06, 0x49, 0x9e, 0xbd, 0x36, 0xf6, 0x41, 0x4f, + 0x04, 0x6b, 0xe9, 0xfa, 0x01, 0x02, 0x13, 0x05, 0xa1, 0x01, 0x4e, 0xcd, + 0x76, 0xe4, 0xfa, 0x01, 0x5b, 0x4f, 0x1b, 0x2b, 0xf9, 0x01, 0x4c, 0xa3, + 0x8f, 0x15, 0xf9, 0x01, 0x4f, 0xff, 0x6f, 0x24, 0xf6, 0x01, 0xad, 0x7b, + 0x4f, 0xb3, 0x70, 0x45, 0xf6, 0x01, 0xaf, 0x46, 0xb0, 0x32, 0x4c, 0xcb, + 0x94, 0x44, 0xf6, 0x01, 0x50, 0xa6, 0x67, 0x1b, 0xf6, 0x81, 0x14, 0xb4, + 0x06, 0x5a, 0x6e, 0x22, 0x74, 0xf9, 0x41, 0x4b, 0xb0, 0x95, 0x02, 0xf6, + 0x01, 0x4a, 0x2d, 0xab, 0x12, 0xf9, 0x41, 0x05, 0x19, 0x00, 0x01, 0xff, + 0x53, 0x93, 0x4d, 0x1d, 0xf6, 0x01, 0x4b, 0x1e, 0xa5, 0x1c, 0xf6, 0x41, + 0x57, 0x5b, 0x2d, 0x73, 0xf9, 0x01, 0x4a, 0xc5, 0xa9, 0xe3, 0xfa, 0x01, + 0x4c, 0xf3, 0x90, 0x7a, 0xf9, 0x41, 0x49, 0xe9, 0xba, 0x46, 0xf6, 0x01, + 0x51, 0x93, 0x5c, 0x28, 0xf9, 0x01, 0x04, 0xf7, 0x04, 0x01, 0xff, 0x58, + 0x9e, 0x28, 0xe2, 0xfa, 0x01, 0x45, 0x27, 0x08, 0x2e, 0xf6, 0xc1, 0x00, + 0x80, 0x01, 0xff, 0x4e, 0xed, 0x75, 0x30, 0xf6, 0x01, 0x48, 0x58, 0xcc, + 0x2e, 0xf9, 0x41, 0x4b, 0x89, 0x9b, 0x37, 0xf6, 0x01, 0x46, 0xcc, 0xde, + 0xd0, 0xf9, 0x41, 0x48, 0xf3, 0x75, 0x13, 0xf6, 0x01, 0x48, 0x70, 0xcc, + 0x20, 0xf9, 0x41, 0x57, 0xa0, 0x2d, 0x0b, 0xf6, 0x01, 0x50, 0xc6, 0x61, + 0x31, 0xf6, 0x41, 0x4c, 0xbf, 0x8b, 0xe7, 0xf4, 0x01, 0xa1, 0xbf, 0x48, + 0x50, 0xe6, 0x61, 0x0e, 0x2e, 0x00, 0xa7, 0xc1, 0x20, 0x04, 0xc9, 0x00, + 0xf9, 0x1f, 0x4b, 0xdb, 0x9d, 0xcf, 0x23, 0x00, 0xac, 0xef, 0x1b, 0xad, + 0xbb, 0x1a, 0xae, 0xb4, 0x19, 0x02, 0x7c, 0x00, 0xf4, 0x17, 0xb2, 0x9f, + 0x17, 0xb3, 0x87, 0x17, 0x08, 0x78, 0xcb, 0x8a, 0x02, 0xb5, 0xd9, 0x01, + 0x4d, 0x08, 0x8a, 0x32, 0xf3, 0x01, 0xb8, 0x11, 0x42, 0x4d, 0x00, 0x41, + 0xf4, 0xc1, 0x00, 0x47, 0x55, 0xc0, 0x53, 0xf4, 0x01, 0xf3, 0x40, 0xf4, + 0x41, 0xa3, 0xa6, 0x01, 0xb0, 0x82, 0x01, 0xb4, 0x01, 0xff, 0x19, 0xdc, + 0x06, 0x39, 0xb2, 0x01, 0xff, 0x52, 0x65, 0x50, 0x7d, 0xf4, 0x01, 0x0c, + 0x77, 0x8e, 0x01, 0xff, 0x54, 0x58, 0x42, 0xb4, 0xf7, 0x01, 0x4b, 0x1b, + 0x61, 0xa7, 0xf7, 0x01, 0xb3, 0x11, 0x06, 0xad, 0x02, 0x01, 0xff, 0x46, + 0x12, 0x03, 0x89, 0xf7, 0x01, 0x46, 0xd6, 0x05, 0x93, 0xf7, 0x41, 0x46, + 0x13, 0x19, 0xae, 0xf7, 0x01, 0x52, 0xff, 0x52, 0xba, 0xf7, 0x41, 0x45, + 0x12, 0x0b, 0xf8, 0x06, 0x00, 0xa6, 0x2e, 0x44, 0xcf, 0x2a, 0xf9, 0x06, + 0x00, 0x43, 0x0e, 0x0b, 0xf1, 0x06, 0x00, 0xb3, 0x14, 0xb4, 0x06, 0x44, + 0x43, 0x1e, 0xf0, 0x06, 0x40, 0x44, 0x25, 0x01, 0xf3, 0x06, 0x00, 0x42, + 0x15, 0x02, 0xf2, 0x06, 0x40, 0x44, 0xc9, 0x1d, 0xf7, 0x06, 0x00, 0x42, + 0x01, 0x26, 0xf6, 0x06, 0x40, 0x43, 0xd2, 0x05, 0xf5, 0x06, 0x00, 0x43, + 0xf6, 0x06, 0xf4, 0x06, 0x40, 0x07, 0x00, 0xd3, 0x06, 0x50, 0x86, 0x66, + 0x11, 0xf6, 0x41, 0x4a, 0xf9, 0xa7, 0x02, 0xce, 0x01, 0x06, 0x0a, 0x44, + 0x01, 0xff, 0xd1, 0xfd, 0xcd, 0x01, 0xd2, 0xfe, 0xcd, 0x01, 0xd3, 0xff, + 0xcd, 0x41, 0x43, 0xed, 0x00, 0x39, 0x22, 0x00, 0x09, 0xb0, 0x00, 0x01, + 0xff, 0x44, 0xb9, 0x00, 0x21, 0x00, 0x00, 0x4d, 0xa6, 0x34, 0x49, 0x20, + 0x40, 0x4c, 0x17, 0x91, 0x07, 0x21, 0x00, 0x45, 0x2f, 0xe9, 0xc8, 0xce, + 0x01, 0x02, 0xd0, 0x00, 0x01, 0xff, 0x45, 0x59, 0x03, 0xac, 0x20, 0x00, + 0x4e, 0x99, 0x75, 0xa0, 0x20, 0x00, 0x05, 0xca, 0xe9, 0x01, 0xff, 0x46, + 0x5e, 0xda, 0xf0, 0xf3, 0x01, 0x4b, 0x6c, 0xa1, 0xe4, 0xf3, 0x41, 0x02, + 0x13, 0x05, 0xca, 0x14, 0x06, 0xef, 0x06, 0x88, 0x14, 0x49, 0x81, 0x16, + 0x62, 0x13, 0x00, 0x07, 0xff, 0x39, 0xb3, 0x13, 0xb0, 0xa4, 0x13, 0x4d, + 0xa6, 0x34, 0x67, 0x13, 0x00, 0xb3, 0x4b, 0x0b, 0x9d, 0xa3, 0x06, 0x49, + 0x58, 0xc1, 0x61, 0x13, 0x40, 0x46, 0x94, 0xda, 0x96, 0x13, 0x00, 0xa4, + 0x26, 0x45, 0x55, 0xd8, 0x97, 0x13, 0x00, 0xab, 0x12, 0x46, 0x3d, 0x95, + 0x92, 0x13, 0x00, 0x4c, 0x37, 0x95, 0x93, 0x13, 0x00, 0x45, 0x95, 0xec, + 0x90, 0x13, 0x40, 0x44, 0x75, 0x50, 0x95, 0x13, 0x00, 0x43, 0x0b, 0x5d, + 0x99, 0x13, 0x40, 0x44, 0x1d, 0xaa, 0x91, 0x13, 0x80, 0x06, 0x44, 0x79, + 0xf0, 0x94, 0x13, 0x40, 0x46, 0x54, 0xd8, 0x98, 0x13, 0x40, 0xa5, 0xc2, + 0x12, 0x08, 0x1b, 0x18, 0x01, 0xff, 0xa2, 0xe3, 0x11, 0xa3, 0xab, 0x10, + 0xa4, 0x98, 0x0f, 0xa6, 0xde, 0x0e, 0xa7, 0x9c, 0x0c, 0xa8, 0xa2, 0x0b, + 0xaa, 0xf6, 0x0a, 0xab, 0xdc, 0x09, 0xac, 0xb0, 0x09, 0xad, 0xf1, 0x08, + 0xae, 0x99, 0x08, 0xb0, 0x91, 0x07, 0xb1, 0xf7, 0x05, 0xb2, 0xc5, 0x05, + 0xb3, 0x89, 0x04, 0xb4, 0xc4, 0x02, 0xb6, 0x9d, 0x02, 0xb7, 0xf7, 0x01, + 0xb8, 0x98, 0x01, 0xb9, 0x73, 0xba, 0x01, 0xff, 0xe1, 0xd8, 0x12, 0x80, + 0x67, 0xe5, 0xdd, 0x12, 0x80, 0x5e, 0xa8, 0x38, 0xe9, 0xda, 0x12, 0x00, + 0xef, 0xde, 0x12, 0x80, 0x2b, 0xf5, 0xd9, 0x12, 0x00, 0x42, 0xa9, 0x01, + 0xdf, 0x12, 0x00, 0xba, 0x01, 0xff, 0xe1, 0xb0, 0x2d, 0x80, 0x15, 0xe5, + 0xb5, 0x2d, 0x80, 0x0c, 0xe9, 0xb2, 0x2d, 0x00, 0xef, 0xb6, 0x2d, 0x00, + 0xf5, 0xb1, 0x2d, 0x40, 0xe5, 0xb4, 0x2d, 0x40, 0xe1, 0xb3, 0x2d, 0x40, + 0xe1, 0x8b, 0x2d, 0x40, 0xe1, 0xe0, 0x12, 0x80, 0x1b, 0xe5, 0xe5, 0x12, + 0x80, 0x12, 0xe9, 0xe2, 0x12, 0x00, 0xef, 0xe6, 0x12, 0x00, 0xf5, 0xe1, + 0x12, 0x00, 0x42, 0xa9, 0x01, 0xe7, 0x12, 0x40, 0xe5, 0xe4, 0x12, 0x40, + 0xe1, 0xe3, 0x12, 0x40, 0xe5, 0xdc, 0x12, 0x40, 0xe1, 0xdb, 0x12, 0x40, + 0xe1, 0xe8, 0x12, 0x80, 0x1a, 0xe5, 0xed, 0x12, 0x80, 0x11, 0xe9, 0xea, + 0x12, 0x00, 0xef, 0xee, 0x12, 0x80, 0x04, 0xf5, 0xe9, 0x12, 0x40, 0xe1, + 0xef, 0x12, 0x40, 0xe5, 0xec, 0x12, 0x40, 0xe1, 0xeb, 0x12, 0x40, 0xe1, + 0x80, 0x12, 0x80, 0x53, 0xe5, 0x85, 0x12, 0x80, 0x4a, 0xe9, 0x82, 0x12, + 0x00, 0xef, 0x86, 0x12, 0x80, 0x3d, 0xf5, 0x81, 0x12, 0x00, 0xb7, 0x21, + 0xb9, 0x01, 0xff, 0xe1, 0xd0, 0x2d, 0x80, 0x15, 0xe5, 0xd5, 0x2d, 0x80, + 0x0c, 0xe9, 0xd2, 0x2d, 0x00, 0xef, 0xd6, 0x2d, 0x00, 0xf5, 0xd1, 0x2d, + 0x40, 0xe5, 0xd4, 0x2d, 0x40, 0xe1, 0xd3, 0x2d, 0x40, 0xe1, 0x88, 0x12, + 0x80, 0x0d, 0xe5, 0x8d, 0x12, 0x80, 0x04, 0xe9, 0x8a, 0x12, 0x40, 0xe5, + 0x8c, 0x12, 0x40, 0xe1, 0x8b, 0x12, 0x40, 0xe1, 0x87, 0x12, 0x40, 0xe5, + 0x84, 0x12, 0x40, 0xe1, 0x83, 0x12, 0x40, 0xe1, 0xc8, 0x12, 0x80, 0x1a, + 0xe5, 0xcd, 0x12, 0x80, 0x11, 0xe9, 0xca, 0x12, 0x00, 0xef, 0xce, 0x12, + 0x80, 0x04, 0xf5, 0xc9, 0x12, 0x40, 0xe1, 0xcf, 0x12, 0x40, 0xe5, 0xcc, + 0x12, 0x40, 0xe1, 0xcb, 0x12, 0x40, 0xe1, 0x68, 0x12, 0x80, 0x1b, 0xe5, + 0x6d, 0x12, 0x80, 0x12, 0xe9, 0x6a, 0x12, 0x00, 0xef, 0x6e, 0x12, 0x00, + 0xf5, 0x69, 0x12, 0x00, 0x42, 0xa9, 0x01, 0x6f, 0x12, 0x40, 0xe5, 0x6c, + 0x12, 0x40, 0xe1, 0x6b, 0x12, 0x40, 0xe1, 0x70, 0x12, 0x80, 0xb8, 0x01, + 0xe5, 0x75, 0x12, 0x80, 0xae, 0x01, 0xa8, 0x82, 0x01, 0xe9, 0x72, 0x12, + 0x00, 0xef, 0x76, 0x12, 0x80, 0x75, 0xb3, 0x4f, 0x02, 0x53, 0x00, 0x30, + 0xf5, 0x71, 0x12, 0x00, 0x42, 0xa9, 0x01, 0x77, 0x12, 0x00, 0xba, 0x01, + 0xff, 0xe1, 0x40, 0x13, 0x80, 0x1a, 0xe5, 0x45, 0x13, 0x80, 0x11, 0xe9, + 0x42, 0x13, 0x00, 0xef, 0x46, 0x13, 0x80, 0x04, 0xf5, 0x41, 0x13, 0x40, + 0xe1, 0x47, 0x13, 0x40, 0xe5, 0x44, 0x13, 0x40, 0xe1, 0x43, 0x13, 0x40, + 0x42, 0x80, 0x12, 0x03, 0xab, 0x00, 0xe5, 0x05, 0xab, 0x80, 0x0c, 0xe9, + 0x02, 0xab, 0x00, 0xef, 0x06, 0xab, 0x00, 0xf5, 0x01, 0xab, 0x40, 0xe5, + 0x04, 0xab, 0x40, 0xe1, 0x38, 0x13, 0x80, 0x1b, 0xe5, 0x3d, 0x13, 0x80, + 0x12, 0xe9, 0x3a, 0x13, 0x00, 0xef, 0x3e, 0x13, 0x00, 0xf5, 0x39, 0x13, + 0x00, 0x42, 0xa9, 0x01, 0x3f, 0x13, 0x40, 0xe5, 0x3c, 0x13, 0x40, 0xe1, + 0x3b, 0x13, 0x40, 0xe1, 0x86, 0x2d, 0x40, 0xe1, 0x20, 0x13, 0x80, 0x20, + 0xe5, 0x25, 0x13, 0x80, 0x17, 0xe9, 0x22, 0x13, 0x00, 0xef, 0x26, 0x13, + 0x80, 0x0a, 0xf5, 0x21, 0x13, 0x00, 0x42, 0xa9, 0x01, 0x27, 0x13, 0x40, + 0xe1, 0x8f, 0x2d, 0x40, 0xe5, 0x24, 0x13, 0x40, 0xe1, 0x23, 0x13, 0x40, + 0xe5, 0x74, 0x12, 0x40, 0xe1, 0x73, 0x12, 0x40, 0xe1, 0x30, 0x12, 0x80, + 0xaf, 0x01, 0xe5, 0x35, 0x12, 0x80, 0x89, 0x01, 0xa8, 0x5e, 0xe9, 0x32, + 0x12, 0x00, 0xef, 0x36, 0x12, 0x80, 0x51, 0xb3, 0x31, 0xf5, 0x31, 0x12, + 0x00, 0x42, 0xa9, 0x01, 0x37, 0x12, 0x00, 0xba, 0x01, 0xff, 0xe1, 0x20, + 0x12, 0x80, 0x1b, 0xe5, 0x25, 0x12, 0x80, 0x12, 0xe9, 0x22, 0x12, 0x00, + 0xef, 0x26, 0x12, 0x00, 0xf5, 0x21, 0x12, 0x00, 0x42, 0xa9, 0x01, 0x27, + 0x12, 0x40, 0xe5, 0x24, 0x12, 0x40, 0xe1, 0x23, 0x12, 0x40, 0xe1, 0xa0, + 0x2d, 0x80, 0x15, 0xe5, 0xa5, 0x2d, 0x80, 0x0c, 0xe9, 0xa2, 0x2d, 0x00, + 0xef, 0xa6, 0x2d, 0x00, 0xf5, 0xa1, 0x2d, 0x40, 0xe5, 0xa4, 0x2d, 0x40, + 0xe1, 0xa3, 0x2d, 0x40, 0xe1, 0x83, 0x2d, 0x40, 0xe1, 0x38, 0x12, 0x80, + 0x20, 0xe5, 0x3d, 0x12, 0x80, 0x17, 0xe9, 0x3a, 0x12, 0x00, 0xef, 0x3e, + 0x12, 0x80, 0x0a, 0xf5, 0x39, 0x12, 0x00, 0x42, 0xa9, 0x01, 0x3f, 0x12, + 0x40, 0xe1, 0x84, 0x2d, 0x40, 0xe5, 0x3c, 0x12, 0x40, 0xe1, 0x3b, 0x12, + 0x40, 0x08, 0xf8, 0xc3, 0x04, 0xe5, 0x34, 0x12, 0x40, 0x43, 0x45, 0xd2, + 0x84, 0x13, 0x00, 0x43, 0xd9, 0xef, 0x88, 0x13, 0x00, 0x43, 0x7f, 0x94, + 0x80, 0x13, 0x00, 0x43, 0x51, 0x02, 0x8c, 0x13, 0x40, 0xe1, 0x33, 0x12, + 0x40, 0xe1, 0x28, 0x12, 0x80, 0x26, 0xe5, 0x2d, 0x12, 0x80, 0x1d, 0xe9, + 0x2a, 0x12, 0x00, 0xef, 0x2e, 0x12, 0x80, 0x10, 0xf5, 0x29, 0x12, 0x00, + 0x42, 0xa9, 0x01, 0x2f, 0x12, 0x00, 0x42, 0xbc, 0x22, 0x58, 0x13, 0x40, + 0xe1, 0x82, 0x2d, 0x40, 0xe5, 0x2c, 0x12, 0x40, 0xe1, 0x2b, 0x12, 0x40, + 0xe1, 0x40, 0x12, 0x80, 0x8d, 0x01, 0xe5, 0x45, 0x12, 0x80, 0x83, 0x01, + 0xa8, 0x4a, 0xe9, 0x42, 0x12, 0x00, 0xef, 0x46, 0x12, 0x80, 0x3d, 0xf5, + 0x41, 0x12, 0x00, 0xb7, 0x21, 0xb9, 0x01, 0xff, 0xe1, 0xc0, 0x2d, 0x80, + 0x15, 0xe5, 0xc5, 0x2d, 0x80, 0x0c, 0xe9, 0xc2, 0x2d, 0x00, 0xef, 0xc6, + 0x2d, 0x00, 0xf5, 0xc1, 0x2d, 0x40, 0xe5, 0xc4, 0x2d, 0x40, 0xe1, 0xc3, + 0x2d, 0x40, 0xe1, 0x48, 0x12, 0x80, 0x0d, 0xe5, 0x4d, 0x12, 0x80, 0x04, + 0xe9, 0x4a, 0x12, 0x40, 0xe5, 0x4c, 0x12, 0x40, 0xe1, 0x4b, 0x12, 0x40, + 0xe1, 0x47, 0x12, 0x40, 0xe1, 0x50, 0x12, 0x80, 0x2e, 0xe5, 0x55, 0x12, + 0x80, 0x25, 0xe9, 0x52, 0x12, 0x00, 0xef, 0x56, 0x12, 0x00, 0xf5, 0x51, + 0x12, 0x00, 0xb7, 0x01, 0xff, 0xe1, 0x58, 0x12, 0x80, 0x0d, 0xe5, 0x5d, + 0x12, 0x80, 0x04, 0xe9, 0x5a, 0x12, 0x40, 0xe5, 0x5c, 0x12, 0x40, 0xe1, + 0x5b, 0x12, 0x40, 0xe5, 0x54, 0x12, 0x40, 0xe1, 0x53, 0x12, 0x40, 0xe5, + 0x44, 0x12, 0x40, 0xe1, 0x43, 0x12, 0x40, 0xe1, 0x50, 0x13, 0x80, 0x7c, + 0xe5, 0x55, 0x13, 0x80, 0x73, 0xa8, 0x25, 0xe9, 0x52, 0x13, 0x00, 0xef, + 0x56, 0x13, 0x80, 0x18, 0xf5, 0x51, 0x13, 0x00, 0xb7, 0x01, 0xff, 0xe1, + 0x57, 0x13, 0x00, 0xe5, 0x8f, 0x13, 0x80, 0x04, 0xe9, 0x8d, 0x13, 0x40, + 0xe5, 0x8e, 0x13, 0x40, 0xe1, 0x92, 0x2d, 0x40, 0xe1, 0x30, 0x13, 0x80, + 0x20, 0xe5, 0x35, 0x13, 0x80, 0x17, 0xe9, 0x32, 0x13, 0x00, 0xef, 0x36, + 0x13, 0x80, 0x0a, 0xf5, 0x31, 0x13, 0x00, 0x42, 0xa9, 0x01, 0x37, 0x13, + 0x40, 0xe1, 0x91, 0x2d, 0x40, 0xe5, 0x34, 0x13, 0x40, 0xe1, 0x33, 0x13, + 0x00, 0x08, 0x02, 0x1d, 0x01, 0xff, 0xe1, 0xd0, 0x12, 0x80, 0x15, 0xe5, + 0xd5, 0x12, 0x80, 0x0c, 0xe9, 0xd2, 0x12, 0x00, 0xef, 0xd6, 0x12, 0x00, + 0xf5, 0xd1, 0x12, 0x40, 0xe5, 0xd4, 0x12, 0x40, 0xe1, 0xd3, 0x12, 0x40, + 0xe5, 0x54, 0x13, 0x40, 0xe1, 0x53, 0x13, 0x40, 0xe1, 0x90, 0x12, 0x80, + 0x4c, 0xe5, 0x95, 0x12, 0x80, 0x43, 0xe9, 0x92, 0x12, 0x00, 0xef, 0x96, + 0x12, 0x80, 0x36, 0xf5, 0x91, 0x12, 0x00, 0x42, 0xa9, 0x01, 0x97, 0x12, + 0x00, 0xb9, 0x01, 0xff, 0xe1, 0x98, 0x12, 0x80, 0x20, 0xe5, 0x9d, 0x12, + 0x80, 0x17, 0xe9, 0x9a, 0x12, 0x00, 0xef, 0x9e, 0x12, 0x80, 0x0a, 0xf5, + 0x99, 0x12, 0x00, 0x42, 0xa9, 0x01, 0x9f, 0x12, 0x40, 0xe1, 0x89, 0x2d, + 0x40, 0xe5, 0x9c, 0x12, 0x40, 0xe1, 0x9b, 0x12, 0x40, 0xe1, 0x88, 0x2d, + 0x40, 0xe5, 0x94, 0x12, 0x40, 0xe1, 0x93, 0x12, 0x40, 0xe1, 0x18, 0x12, + 0x80, 0x33, 0xe5, 0x1d, 0x12, 0x80, 0x2a, 0xe9, 0x1a, 0x12, 0x00, 0xef, + 0x1e, 0x12, 0x80, 0x1d, 0xf5, 0x19, 0x12, 0x00, 0xb7, 0x06, 0x42, 0xbc, + 0x22, 0x59, 0x13, 0x40, 0xe1, 0x1f, 0x12, 0x00, 0xe5, 0x83, 0x13, 0x80, + 0x04, 0xe9, 0x81, 0x13, 0x40, 0xe5, 0x82, 0x13, 0x40, 0xe1, 0x81, 0x2d, + 0x40, 0xe5, 0x1c, 0x12, 0x40, 0xe1, 0x1b, 0x12, 0x40, 0xe1, 0x08, 0x12, + 0x80, 0x20, 0xe5, 0x0d, 0x12, 0x80, 0x17, 0xe9, 0x0a, 0x12, 0x00, 0xef, + 0x0e, 0x12, 0x80, 0x0a, 0xf5, 0x09, 0x12, 0x00, 0x42, 0xa9, 0x01, 0x0f, + 0x12, 0x40, 0xe1, 0x80, 0x2d, 0x40, 0xe5, 0x0c, 0x12, 0x40, 0xe1, 0x0b, + 0x12, 0x40, 0xe1, 0xa8, 0x12, 0x80, 0x8d, 0x01, 0xe5, 0xad, 0x12, 0x80, + 0x83, 0x01, 0xe9, 0xaa, 0x12, 0x00, 0xef, 0xae, 0x12, 0x80, 0x76, 0xf5, + 0xa9, 0x12, 0x00, 0xb7, 0x5a, 0xb8, 0x21, 0xb9, 0x01, 0xff, 0xe1, 0xc8, + 0x2d, 0x80, 0x15, 0xe5, 0xcd, 0x2d, 0x80, 0x0c, 0xe9, 0xca, 0x2d, 0x00, + 0xef, 0xce, 0x2d, 0x00, 0xf5, 0xc9, 0x2d, 0x40, 0xe5, 0xcc, 0x2d, 0x40, + 0xe1, 0xcb, 0x2d, 0x40, 0xe1, 0xb8, 0x12, 0x80, 0x2e, 0xe5, 0xbd, 0x12, + 0x80, 0x25, 0xe9, 0xba, 0x12, 0x00, 0xef, 0xbe, 0x12, 0x00, 0xf5, 0xb9, + 0x12, 0x00, 0xb7, 0x01, 0xff, 0xe1, 0xc0, 0x12, 0x80, 0x0d, 0xe5, 0xc5, + 0x12, 0x80, 0x04, 0xe9, 0xc2, 0x12, 0x40, 0xe5, 0xc4, 0x12, 0x40, 0xe1, + 0xc3, 0x12, 0x40, 0xe5, 0xbc, 0x12, 0x40, 0xe1, 0xbb, 0x12, 0x40, 0xe1, + 0xb0, 0x12, 0x80, 0x0d, 0xe5, 0xb5, 0x12, 0x80, 0x04, 0xe9, 0xb2, 0x12, + 0x40, 0xe5, 0xb4, 0x12, 0x40, 0xe1, 0xb3, 0x12, 0x40, 0xe1, 0xaf, 0x12, + 0x40, 0xe5, 0xac, 0x12, 0x40, 0xe1, 0xab, 0x12, 0x40, 0xe1, 0x00, 0x13, + 0x80, 0x20, 0xe5, 0x05, 0x13, 0x80, 0x17, 0xe9, 0x02, 0x13, 0x00, 0xef, + 0x06, 0x13, 0x80, 0x0a, 0xf5, 0x01, 0x13, 0x00, 0x42, 0xa9, 0x01, 0x07, + 0x13, 0x40, 0xe1, 0x8e, 0x2d, 0x40, 0xe5, 0x04, 0x13, 0x40, 0xe1, 0x03, + 0x13, 0x40, 0xe1, 0x00, 0x12, 0x80, 0x6e, 0xe5, 0x05, 0x12, 0x80, 0x65, + 0xa8, 0x11, 0xe9, 0x02, 0x12, 0x00, 0xef, 0x06, 0x12, 0x80, 0x04, 0xf5, + 0x01, 0x12, 0x40, 0xe1, 0x07, 0x12, 0x40, 0xe1, 0x10, 0x12, 0x80, 0x49, + 0xe5, 0x15, 0x12, 0x80, 0x40, 0xe9, 0x12, 0x12, 0x00, 0xef, 0x16, 0x12, + 0x00, 0xf5, 0x11, 0x12, 0x00, 0xb7, 0x21, 0xb9, 0x01, 0xff, 0xe1, 0xe0, + 0xe7, 0x81, 0x15, 0xe5, 0xe5, 0xe7, 0x81, 0x0c, 0xe9, 0xe2, 0xe7, 0x01, + 0xef, 0xe6, 0xe7, 0x01, 0xf5, 0xe1, 0xe7, 0x41, 0xe5, 0xe4, 0xe7, 0x41, + 0xe1, 0xe3, 0xe7, 0x41, 0xe1, 0x17, 0x12, 0x00, 0xe5, 0xeb, 0xe7, 0x81, + 0x04, 0xe9, 0xe9, 0xe7, 0x41, 0xe5, 0xea, 0xe7, 0x41, 0xe5, 0x14, 0x12, + 0x40, 0xe1, 0x13, 0x12, 0x40, 0xe5, 0x04, 0x12, 0x40, 0xe1, 0x03, 0x12, + 0x40, 0xe1, 0x08, 0x13, 0x80, 0xb5, 0x02, 0xe5, 0x0d, 0x13, 0x80, 0xab, + 0x02, 0xa7, 0xf1, 0x01, 0xe9, 0x0a, 0x13, 0x00, 0x07, 0xcf, 0x28, 0xbf, + 0x01, 0xef, 0x0e, 0x13, 0x80, 0xb5, 0x01, 0xf5, 0x09, 0x13, 0x80, 0x39, + 0xb7, 0x21, 0xb9, 0x01, 0xff, 0xe1, 0xd8, 0x2d, 0x80, 0x15, 0xe5, 0xdd, + 0x2d, 0x80, 0x0c, 0xe9, 0xda, 0x2d, 0x00, 0xef, 0xde, 0x2d, 0x00, 0xf5, + 0xd9, 0x2d, 0x40, 0xe5, 0xdc, 0x2d, 0x40, 0xe1, 0xdb, 0x2d, 0x40, 0xe1, + 0x10, 0x13, 0x80, 0x0d, 0xe5, 0x15, 0x13, 0x80, 0x04, 0xe9, 0x12, 0x13, + 0x40, 0xe5, 0x14, 0x13, 0x40, 0xe1, 0x13, 0x13, 0x40, 0x05, 0x3d, 0x5f, + 0x01, 0xff, 0x02, 0x45, 0xd2, 0x64, 0x02, 0x94, 0x56, 0x56, 0x02, 0x74, + 0xb3, 0x45, 0x44, 0x3d, 0xf0, 0xe8, 0xe7, 0x01, 0x02, 0x3c, 0x0b, 0x2e, + 0x02, 0x22, 0x38, 0x20, 0x02, 0x51, 0x02, 0x12, 0x02, 0x14, 0xf3, 0x01, + 0xff, 0xe5, 0xf2, 0xe7, 0x81, 0x04, 0xe9, 0xf0, 0xe7, 0x41, 0xe5, 0xf1, + 0xe7, 0x41, 0x42, 0x27, 0x01, 0xfe, 0xe7, 0x01, 0xe9, 0xfd, 0xe7, 0x41, + 0x42, 0x27, 0x01, 0xee, 0xe7, 0x01, 0xe9, 0xed, 0xe7, 0x41, 0xe5, 0xf7, + 0xe7, 0x81, 0x04, 0xe9, 0xf5, 0xe7, 0x41, 0xe5, 0xf6, 0xe7, 0x41, 0xe5, + 0xfa, 0xe7, 0x81, 0x04, 0xe9, 0xf8, 0xe7, 0x41, 0xe5, 0xf9, 0xe7, 0x41, + 0x42, 0x27, 0x01, 0xfc, 0xe7, 0x01, 0xe9, 0xfb, 0xe7, 0x41, 0x42, 0x27, + 0x01, 0xf4, 0xe7, 0x01, 0xe9, 0xf3, 0xe7, 0x41, 0xe1, 0x0f, 0x13, 0x40, + 0xe1, 0xa0, 0x12, 0x80, 0x20, 0xe5, 0xa5, 0x12, 0x80, 0x17, 0xe9, 0xa2, + 0x12, 0x00, 0xef, 0xa6, 0x12, 0x80, 0x0a, 0xf5, 0xa1, 0x12, 0x00, 0x42, + 0xa9, 0x01, 0xa7, 0x12, 0x40, 0xe1, 0x8a, 0x2d, 0x40, 0xe5, 0xa4, 0x12, + 0x40, 0xe1, 0xa3, 0x12, 0x40, 0xe1, 0x18, 0x13, 0x80, 0x2e, 0xe5, 0x1d, + 0x13, 0x80, 0x25, 0xe9, 0x1a, 0x13, 0x00, 0xef, 0x1e, 0x13, 0x00, 0xf5, + 0x19, 0x13, 0x00, 0xb7, 0x01, 0xff, 0xe1, 0x93, 0x2d, 0x80, 0x0d, 0xe5, + 0x96, 0x2d, 0x80, 0x04, 0xe9, 0x94, 0x2d, 0x40, 0xe5, 0x95, 0x2d, 0x40, + 0xe1, 0x1f, 0x13, 0x40, 0xe5, 0x1c, 0x13, 0x40, 0xe1, 0x1b, 0x13, 0x40, + 0xe5, 0x0c, 0x13, 0x40, 0xe1, 0x0b, 0x13, 0x40, 0xe1, 0x48, 0x13, 0x80, + 0x2e, 0xe5, 0x4d, 0x13, 0x80, 0x25, 0xe9, 0x4a, 0x13, 0x00, 0xef, 0x4e, + 0x13, 0x00, 0xf5, 0x49, 0x13, 0x00, 0xb7, 0x06, 0x42, 0xbc, 0x22, 0x5a, + 0x13, 0x40, 0xe1, 0x4f, 0x13, 0x00, 0xe5, 0x8b, 0x13, 0x80, 0x04, 0xe9, + 0x89, 0x13, 0x40, 0xe5, 0x8a, 0x13, 0x40, 0xe5, 0x4c, 0x13, 0x40, 0xe1, + 0x4b, 0x13, 0x40, 0xe1, 0xf0, 0x12, 0x80, 0x86, 0x01, 0xa4, 0x3e, 0xe5, + 0xf5, 0x12, 0x80, 0x35, 0xe9, 0xf2, 0x12, 0x00, 0xef, 0xf6, 0x12, 0x80, + 0x28, 0xf5, 0xf1, 0x12, 0x00, 0x42, 0xa9, 0x01, 0xf7, 0x12, 0x00, 0xba, + 0x01, 0xff, 0x42, 0x80, 0x12, 0x13, 0xab, 0x00, 0xe5, 0x15, 0xab, 0x80, + 0x0c, 0xe9, 0x12, 0xab, 0x00, 0xef, 0x16, 0xab, 0x00, 0xf5, 0x11, 0xab, + 0x40, 0xe5, 0x14, 0xab, 0x40, 0xe1, 0x8c, 0x2d, 0x40, 0xe5, 0xf4, 0x12, + 0x40, 0xe1, 0xf8, 0x12, 0x80, 0x3d, 0xe5, 0xfd, 0x12, 0x80, 0x34, 0xa8, + 0x17, 0xe9, 0xfa, 0x12, 0x00, 0xef, 0xfe, 0x12, 0x80, 0x0a, 0xf5, 0xf9, + 0x12, 0x00, 0x42, 0xa9, 0x01, 0xff, 0x12, 0x40, 0xe1, 0x8d, 0x2d, 0x40, + 0x42, 0x80, 0x12, 0x0b, 0xab, 0x00, 0xe5, 0x0d, 0xab, 0x80, 0x0c, 0xe9, + 0x0a, 0xab, 0x00, 0xef, 0x0e, 0xab, 0x00, 0xf5, 0x09, 0xab, 0x40, 0xe5, + 0x0c, 0xab, 0x40, 0xe5, 0xfc, 0x12, 0x40, 0xe1, 0xfb, 0x12, 0x40, 0xe1, + 0xf3, 0x12, 0x40, 0xe1, 0x78, 0x12, 0x80, 0xab, 0x01, 0xa3, 0x4b, 0xe5, + 0x7d, 0x12, 0x80, 0x42, 0xa8, 0x17, 0xe9, 0x7a, 0x12, 0x00, 0xef, 0x7e, + 0x12, 0x80, 0x0a, 0xf5, 0x79, 0x12, 0x00, 0x42, 0xa9, 0x01, 0x7f, 0x12, + 0x40, 0xe1, 0x87, 0x2d, 0x40, 0xe1, 0x28, 0x13, 0x80, 0x20, 0xe5, 0x2d, + 0x13, 0x80, 0x17, 0xe9, 0x2a, 0x13, 0x00, 0xef, 0x2e, 0x13, 0x80, 0x0a, + 0xf5, 0x29, 0x13, 0x00, 0x42, 0xa9, 0x01, 0x2f, 0x13, 0x40, 0xe1, 0x90, + 0x2d, 0x40, 0xe5, 0x2c, 0x13, 0x40, 0xe1, 0x2b, 0x13, 0x40, 0xe5, 0x7c, + 0x12, 0x40, 0xe1, 0xa8, 0x2d, 0x80, 0x55, 0xe5, 0xad, 0x2d, 0x80, 0x4c, + 0xa8, 0x0c, 0xe9, 0xaa, 0x2d, 0x00, 0xef, 0xae, 0x2d, 0x00, 0xf5, 0xa9, + 0x2d, 0x40, 0xe1, 0xb8, 0x2d, 0x80, 0x35, 0xe5, 0xbd, 0x2d, 0x80, 0x2c, + 0xa8, 0x0c, 0xe9, 0xba, 0x2d, 0x00, 0xef, 0xbe, 0x2d, 0x00, 0xf5, 0xb9, + 0x2d, 0x40, 0xe1, 0x20, 0xab, 0x80, 0x15, 0xe5, 0x25, 0xab, 0x80, 0x0c, + 0xe9, 0x22, 0xab, 0x00, 0xef, 0x26, 0xab, 0x00, 0xf5, 0x21, 0xab, 0x40, + 0xe5, 0x24, 0xab, 0x40, 0xe1, 0x23, 0xab, 0x40, 0xe5, 0xbc, 0x2d, 0x40, + 0xe1, 0xbb, 0x2d, 0x40, 0xe5, 0xac, 0x2d, 0x40, 0xe1, 0xab, 0x2d, 0x40, + 0xe1, 0x7b, 0x12, 0x40, 0xe1, 0x60, 0x12, 0x80, 0x4e, 0xa2, 0x2e, 0xe5, + 0x65, 0x12, 0x80, 0x25, 0xe9, 0x62, 0x12, 0x00, 0xef, 0x66, 0x12, 0x80, + 0x18, 0xf5, 0x61, 0x12, 0x00, 0xb7, 0x01, 0xff, 0xe1, 0x67, 0x12, 0x00, + 0xe5, 0x87, 0x13, 0x80, 0x04, 0xe9, 0x85, 0x13, 0x40, 0xe5, 0x86, 0x13, + 0x40, 0xe1, 0x85, 0x2d, 0x40, 0xe5, 0x64, 0x12, 0x40, 0xe1, 0x28, 0xab, + 0x80, 0x15, 0xe5, 0x2d, 0xab, 0x80, 0x0c, 0xe9, 0x2a, 0xab, 0x00, 0xef, + 0x2e, 0xab, 0x00, 0xf5, 0x29, 0xab, 0x40, 0xe5, 0x2c, 0xab, 0x40, 0xe1, + 0x2b, 0xab, 0x40, 0xe1, 0x63, 0x12, 0x40, 0x4a, 0xfa, 0x26, 0x60, 0x13, + 0x00, 0x47, 0xdb, 0x59, 0x64, 0x13, 0x40, 0x52, 0x18, 0x4c, 0x68, 0x13, + 0x00, 0x4c, 0x47, 0x94, 0x66, 0x13, 0x40, 0x46, 0x30, 0xdb, 0x79, 0x13, + 0x00, 0xa6, 0x36, 0x47, 0x71, 0x11, 0x7b, 0x13, 0x00, 0x46, 0xac, 0x2c, + 0x7a, 0x13, 0x00, 0xb3, 0x1c, 0xb4, 0x01, 0xff, 0x42, 0x92, 0x01, 0x72, + 0x13, 0x80, 0x0c, 0x45, 0x7a, 0x11, 0x74, 0x13, 0x00, 0x45, 0x7f, 0x2c, + 0x73, 0x13, 0x40, 0x49, 0x3f, 0x5e, 0x7c, 0x13, 0x40, 0x46, 0xc9, 0x1d, + 0x78, 0x13, 0x00, 0x44, 0x46, 0xdd, 0x77, 0x13, 0x40, 0x44, 0x51, 0x4d, + 0x76, 0x13, 0x00, 0x44, 0xce, 0x51, 0x75, 0x13, 0x40, 0x45, 0x12, 0x0b, + 0x70, 0x13, 0x00, 0xa6, 0x29, 0x44, 0xcf, 0x2a, 0x71, 0x13, 0x00, 0x43, + 0x0e, 0x0b, 0x69, 0x13, 0x00, 0xb3, 0x0f, 0xb4, 0x01, 0xff, 0x44, 0x25, + 0x01, 0x6b, 0x13, 0x00, 0x42, 0x15, 0x02, 0x6a, 0x13, 0x40, 0x44, 0xc9, + 0x1d, 0x6f, 0x13, 0x00, 0x42, 0x01, 0x26, 0x6e, 0x13, 0x40, 0x43, 0xd2, + 0x05, 0x6d, 0x13, 0x00, 0x43, 0xf6, 0x06, 0x6c, 0x13, 0x40, 0x43, 0xd7, + 0x02, 0x65, 0x13, 0x00, 0xad, 0x01, 0xff, 0x07, 0x35, 0x16, 0x06, 0x42, + 0x6c, 0x00, 0x63, 0x13, 0x40, 0x0b, 0x89, 0x6d, 0x06, 0x51, 0x3c, 0x39, + 0x5e, 0x13, 0x40, 0x55, 0x38, 0x39, 0x5d, 0x13, 0x00, 0x44, 0xb9, 0x00, + 0x5f, 0x13, 0x40, 0x44, 0xf1, 0x6a, 0x1b, 0x00, 0x00, 0x06, 0x9a, 0xe0, + 0x01, 0xff, 0x48, 0x78, 0x20, 0x2e, 0x21, 0x00, 0xf3, 0x59, 0x22, 0x40, + 0x0b, 0x42, 0x99, 0x42, 0x08, 0x30, 0xc7, 0x32, 0x0b, 0x53, 0xa2, 0x01, + 0xff, 0x06, 0x0c, 0x03, 0x17, 0x06, 0xad, 0x02, 0x01, 0xff, 0x46, 0x12, + 0x03, 0xf2, 0x29, 0x00, 0x47, 0x95, 0x44, 0xf0, 0x29, 0x00, 0x46, 0xd6, + 0x05, 0xee, 0x29, 0x40, 0x46, 0x12, 0x03, 0xf3, 0x29, 0x00, 0x47, 0x95, + 0x44, 0xf1, 0x29, 0x00, 0x46, 0xd6, 0x05, 0xef, 0x29, 0x40, 0x43, 0x0e, + 0x0b, 0xf0, 0x2b, 0x00, 0x43, 0x1f, 0x0a, 0xf1, 0x2b, 0x40, 0x44, 0xc3, + 0x00, 0x2b, 0x23, 0x00, 0x45, 0xc8, 0x00, 0x26, 0x23, 0x40, 0x02, 0x13, + 0x00, 0x1a, 0xa9, 0x01, 0xff, 0x4a, 0xd1, 0xa7, 0x5a, 0x22, 0x00, 0x07, + 0xd7, 0x39, 0x01, 0xff, 0x42, 0x1e, 0x00, 0x4d, 0x22, 0x00, 0x54, 0xcc, + 0x46, 0x78, 0x2a, 0x40, 0x80, 0x6d, 0x02, 0x31, 0x01, 0x01, 0xff, 0x45, + 0x94, 0x3b, 0x55, 0x22, 0x00, 0x44, 0x5a, 0x03, 0x3d, 0x00, 0x80, 0x06, + 0x4d, 0xa4, 0x8a, 0x6e, 0x2a, 0x40, 0x80, 0x01, 0xff, 0xa1, 0x27, 0x05, + 0x51, 0x00, 0x01, 0xff, 0x4b, 0xc6, 0x99, 0xae, 0x2a, 0x00, 0x49, 0x9f, + 0x12, 0x66, 0x2a, 0x00, 0x09, 0x6b, 0xba, 0x06, 0x61, 0xf2, 0x0e, 0x77, + 0x2a, 0x40, 0x45, 0x5c, 0x00, 0x96, 0x2b, 0x00, 0x45, 0x20, 0x07, 0xf9, + 0x2b, 0x40, 0x05, 0x5d, 0x00, 0x0d, 0x53, 0x7d, 0x38, 0xe3, 0x29, 0xc0, + 0x00, 0x51, 0x87, 0x57, 0xe4, 0x29, 0x40, 0x4f, 0x4d, 0x1a, 0x40, 0x2b, + 0x00, 0x49, 0xdf, 0x71, 0x71, 0x2a, 0x00, 0x50, 0xb3, 0x02, 0x71, 0x29, + 0x00, 0x4e, 0x78, 0x3e, 0x73, 0x2a, 0x40, 0x4f, 0xd7, 0x6a, 0xd5, 0x22, + 0x00, 0x03, 0x7a, 0x02, 0x01, 0xff, 0x4d, 0x4c, 0x81, 0x5d, 0x22, 0x00, + 0x03, 0xc8, 0x07, 0x01, 0xff, 0x4c, 0x87, 0x00, 0xdd, 0x22, 0x00, 0x49, + 0xec, 0x00, 0xdc, 0x22, 0x00, 0x48, 0xe8, 0xc9, 0xde, 0x22, 0x00, 0x48, + 0x30, 0xcb, 0xdf, 0x22, 0x40, 0x80, 0x70, 0x02, 0x06, 0x00, 0x24, 0x45, + 0x1f, 0xea, 0x05, 0x00, 0x00, 0x4a, 0x1e, 0x45, 0x86, 0x23, 0x00, 0x46, + 0x45, 0x32, 0x09, 0x27, 0xc0, 0x00, 0x06, 0x50, 0x00, 0x01, 0xff, 0x55, + 0x88, 0x3a, 0xe9, 0xf4, 0x01, 0x49, 0x67, 0xbb, 0x84, 0xf5, 0x41, 0x03, + 0xf4, 0x01, 0x06, 0x5a, 0xa2, 0x22, 0x1a, 0xf5, 0x41, 0x4c, 0x67, 0x8f, + 0x97, 0x00, 0x00, 0x44, 0xed, 0x07, 0x0a, 0x00, 0x00, 0x46, 0x44, 0x04, + 0x19, 0x00, 0x00, 0x03, 0xdf, 0x0c, 0x1c, 0x4d, 0x82, 0x88, 0x87, 0x00, + 0x00, 0xb4, 0x01, 0xff, 0x43, 0xd9, 0x06, 0x03, 0x00, 0x00, 0x4b, 0xc4, + 0xa1, 0x04, 0x00, 0xc0, 0x00, 0x46, 0x32, 0x01, 0x17, 0x00, 0x40, 0x42, + 0xf4, 0x01, 0x0e, 0x22, 0x00, 0x4b, 0x5a, 0x7b, 0x97, 0x00, 0x40, 0x44, + 0x8f, 0x12, 0x13, 0x20, 0x00, 0x44, 0x79, 0x0d, 0x00, 0x20, 0x00, 0x45, + 0xd0, 0x4c, 0x02, 0x20, 0x40, 0x80, 0x9c, 0x01, 0x04, 0xc5, 0xf1, 0x61, + 0xb0, 0x01, 0xff, 0x4c, 0x97, 0x8f, 0x83, 0x23, 0x00, 0x03, 0xcd, 0x1d, + 0x01, 0xff, 0x48, 0x30, 0xc5, 0xcb, 0xf5, 0x01, 0xae, 0x2f, 0x44, 0x79, + 0xa6, 0xcc, 0xf5, 0x81, 0x24, 0x43, 0x9c, 0x12, 0x05, 0x22, 0xc0, 0x00, + 0x06, 0x50, 0x00, 0x01, 0xff, 0x50, 0x76, 0x64, 0xb4, 0x29, 0x00, 0x47, + 0xe6, 0x7f, 0xb1, 0x29, 0x00, 0x51, 0xc8, 0x00, 0xb3, 0x29, 0x00, 0x52, + 0x75, 0x55, 0xb2, 0x29, 0x40, 0xf3, 0xcd, 0xf5, 0x41, 0x43, 0xbf, 0x1a, + 0xb9, 0xfa, 0x01, 0x43, 0x0a, 0x28, 0xc5, 0xf5, 0xc1, 0x00, 0x03, 0xee, + 0x0e, 0x01, 0xff, 0xe4, 0xc7, 0xf5, 0x01, 0x42, 0xdb, 0x09, 0xc6, 0xf5, + 0x41, 0x0a, 0xcb, 0xa8, 0x1b, 0x1a, 0x36, 0x21, 0x01, 0xff, 0x43, 0x86, + 0xf3, 0xfb, 0xf3, 0x01, 0xd3, 0xfc, 0xf3, 0x01, 0xd4, 0xfd, 0xf3, 0x01, + 0xd5, 0xfe, 0xf3, 0x01, 0xd6, 0xff, 0xf3, 0x41, 0x44, 0x2d, 0xef, 0xb2, + 0xf9, 0x01, 0x4a, 0xfd, 0xa8, 0xb1, 0xf9, 0x01, 0x48, 0x50, 0xca, 0xb0, + 0xf9, 0x01, 0x4a, 0x75, 0xb3, 0xb3, 0xf9, 0x41, 0x44, 0x8f, 0x12, 0x14, + 0x20, 0x00, 0x44, 0x79, 0x0d, 0x01, 0x20, 0x00, 0x45, 0xd0, 0x4c, 0x03, + 0x20, 0x40, 0x0d, 0x18, 0x81, 0x96, 0x02, 0xa5, 0xa0, 0x01, 0xe6, 0xdd, + 0xf9, 0x01, 0x07, 0xe5, 0xd7, 0x01, 0xff, 0x06, 0xed, 0x05, 0x06, 0x52, + 0x93, 0x52, 0xf6, 0x0f, 0x41, 0xa1, 0x7f, 0x44, 0x41, 0xef, 0xe1, 0x0f, + 0x01, 0x46, 0x23, 0x4a, 0xe3, 0x0f, 0x01, 0x45, 0xdd, 0xaa, 0xe2, 0x0f, + 0x01, 0x42, 0xb0, 0x01, 0xe4, 0x0f, 0x81, 0x60, 0x44, 0xcd, 0xf0, 0xea, + 0x0f, 0x01, 0x46, 0x94, 0xdd, 0xeb, 0x0f, 0x01, 0x43, 0xb4, 0x05, 0xec, + 0x0f, 0x01, 0x43, 0xdc, 0x22, 0xed, 0x0f, 0x01, 0x42, 0x6f, 0x02, 0xf0, + 0x0f, 0x01, 0x44, 0x4c, 0xc8, 0xf2, 0x0f, 0x01, 0x44, 0x76, 0x66, 0xf3, + 0x0f, 0x01, 0xb3, 0x20, 0xb4, 0x12, 0x43, 0x8a, 0x8a, 0xe5, 0x0f, 0x01, + 0x44, 0xa1, 0x52, 0xe9, 0x0f, 0x01, 0x45, 0x9b, 0x52, 0xe6, 0x0f, 0x41, + 0x42, 0xb7, 0x2d, 0xf5, 0x0f, 0x01, 0x43, 0xda, 0x25, 0xe8, 0x0f, 0x41, + 0xa1, 0x06, 0x43, 0x7a, 0x16, 0xf4, 0x0f, 0x41, 0x43, 0xad, 0xea, 0xf1, + 0x0f, 0x01, 0x44, 0x49, 0xe4, 0xee, 0x0f, 0x41, 0x42, 0x53, 0x00, 0xe7, + 0x0f, 0x41, 0x44, 0x18, 0x3d, 0xe0, 0x0f, 0x01, 0x43, 0x7e, 0x1a, 0xef, + 0x0f, 0x41, 0x05, 0x65, 0xe5, 0x4f, 0x47, 0x54, 0x92, 0x08, 0x22, 0x80, + 0x0c, 0x45, 0x93, 0xc5, 0x18, 0xf4, 0x01, 0x45, 0x18, 0xec, 0xd7, 0xf6, + 0x41, 0x80, 0x01, 0xff, 0x08, 0x01, 0x76, 0x29, 0x05, 0x51, 0x00, 0x01, + 0xff, 0x49, 0x3a, 0x1e, 0xf5, 0x22, 0x00, 0x56, 0x79, 0x35, 0xf2, 0x22, + 0x00, 0x47, 0xe6, 0x7f, 0xf6, 0x22, 0x00, 0x56, 0xaa, 0x0b, 0xf9, 0x22, + 0x00, 0x48, 0xe3, 0x59, 0xf8, 0x22, 0x00, 0x68, 0x30, 0x05, 0xf3, 0x22, + 0x40, 0x49, 0xa5, 0x01, 0xd9, 0x2a, 0x00, 0x47, 0x50, 0x02, 0xd2, 0x27, + 0x40, 0x80, 0x06, 0x4f, 0x14, 0x3c, 0xe7, 0x23, 0x40, 0x45, 0xce, 0x00, + 0x01, 0x23, 0x00, 0x4a, 0x0d, 0xad, 0xa1, 0xf4, 0x01, 0x44, 0x15, 0xf2, + 0x0c, 0xf5, 0x01, 0x45, 0x64, 0xeb, 0x26, 0xf5, 0x41, 0xe1, 0x00, 0x05, + 0x01, 0x42, 0xb7, 0x05, 0x01, 0x05, 0x01, 0xa3, 0xcf, 0x01, 0xa4, 0xc2, + 0x01, 0xe5, 0x08, 0x05, 0x81, 0xb8, 0x01, 0x42, 0x0c, 0x1a, 0x09, 0x05, + 0x01, 0xa7, 0x99, 0x01, 0x42, 0xb0, 0x01, 0x0c, 0x05, 0x01, 0xe9, 0x0d, + 0x05, 0x01, 0x42, 0x80, 0x20, 0x0e, 0x05, 0x01, 0xab, 0x7d, 0xac, 0x71, + 0x42, 0x2a, 0x02, 0x12, 0x05, 0x01, 0xae, 0x55, 0xef, 0x16, 0x05, 0x01, + 0x42, 0x6f, 0x02, 0x17, 0x05, 0x01, 0x42, 0x98, 0xa2, 0x18, 0x05, 0x01, + 0xb2, 0x39, 0xb3, 0x2d, 0xb4, 0x21, 0xf5, 0x1f, 0x05, 0x01, 0x42, 0x32, + 0x00, 0x20, 0x05, 0x01, 0x42, 0x6d, 0x43, 0x21, 0x05, 0x01, 0xf9, 0x22, + 0x05, 0x01, 0xba, 0x01, 0xff, 0xe5, 0x23, 0x05, 0x01, 0x42, 0xb0, 0x01, + 0x24, 0x05, 0x41, 0xe5, 0x1d, 0x05, 0x01, 0x42, 0xb0, 0x01, 0x1e, 0x05, + 0x41, 0xe5, 0x1b, 0x05, 0x01, 0x42, 0xb0, 0x01, 0x1c, 0x05, 0x41, 0xe5, + 0x19, 0x05, 0x01, 0x42, 0x88, 0x00, 0x1a, 0x05, 0x41, 0xe1, 0x14, 0x05, + 0x01, 0x42, 0x04, 0x00, 0x05, 0x05, 0x01, 0xe5, 0x13, 0x05, 0x01, 0x42, + 0x80, 0x20, 0x15, 0x05, 0x41, 0xe5, 0x10, 0x05, 0x01, 0x42, 0x68, 0x00, + 0x11, 0x05, 0x41, 0xe5, 0x0f, 0x05, 0x01, 0x42, 0xb0, 0x01, 0x27, 0x05, + 0x41, 0xe5, 0x0a, 0x05, 0x01, 0xa8, 0x06, 0x42, 0x80, 0x20, 0x0b, 0x05, + 0x41, 0x44, 0x00, 0x21, 0x26, 0x05, 0x01, 0xe5, 0x25, 0x05, 0x41, 0xe9, + 0x07, 0x05, 0x41, 0xe5, 0x04, 0x05, 0x01, 0x42, 0xb0, 0x01, 0x06, 0x05, + 0x41, 0xe5, 0x02, 0x05, 0x01, 0x42, 0xb0, 0x01, 0x03, 0x05, 0x41, 0x80, + 0x06, 0x46, 0xca, 0x63, 0x6a, 0x26, 0x40, 0xb0, 0x1c, 0x05, 0x46, 0x66, + 0x0c, 0x4f, 0xd5, 0x1c, 0x33, 0x27, 0x00, 0x62, 0x22, 0x0d, 0x4a, 0x27, + 0x40, 0x46, 0x0a, 0xdd, 0x69, 0xcc, 0x01, 0x47, 0x3b, 0xd4, 0x6a, 0xcc, + 0x41, 0x5f, 0x10, 0x11, 0x41, 0x27, 0x00, 0x07, 0x34, 0x08, 0x01, 0xff, + 0x4a, 0xf4, 0x2b, 0x34, 0x27, 0x00, 0x4d, 0x28, 0x13, 0x35, 0x27, 0x00, + 0x56, 0xad, 0x36, 0x37, 0x27, 0x40, 0x44, 0x4b, 0x5a, 0xc6, 0xce, 0x01, + 0xe7, 0x5a, 0xf9, 0x01, 0x11, 0xe5, 0x5f, 0x01, 0xff, 0x80, 0x04, 0xcd, + 0x02, 0xd8, 0x40, 0xa1, 0xe6, 0x23, 0xa2, 0x9f, 0x23, 0x02, 0x0e, 0xf5, + 0xa1, 0x22, 0x02, 0x10, 0xf5, 0x8e, 0x1f, 0xa5, 0xb1, 0x1d, 0xa6, 0x88, + 0x1b, 0x02, 0x12, 0xf5, 0xeb, 0x18, 0xa8, 0xa9, 0x18, 0xa9, 0x98, 0x17, + 0x03, 0x61, 0xf4, 0xf3, 0x16, 0xac, 0xbc, 0x16, 0xad, 0x9f, 0x13, 0xae, + 0xe7, 0x0f, 0xaf, 0x93, 0x0d, 0x02, 0x71, 0xd8, 0xd3, 0x0c, 0x03, 0x85, + 0xf4, 0xb2, 0x0c, 0x02, 0xf7, 0xcd, 0x9a, 0x0b, 0x02, 0xf9, 0xe1, 0xaa, + 0x09, 0xb4, 0xdd, 0x07, 0x02, 0xe0, 0xec, 0x8c, 0x06, 0xb6, 0xaf, 0x03, + 0xb7, 0x96, 0x02, 0x03, 0xc7, 0xf4, 0xde, 0x01, 0x03, 0xd3, 0xf4, 0xb4, + 0x01, 0x02, 0x20, 0xf5, 0x01, 0xff, 0x90, 0x65, 0x91, 0x01, 0xff, 0xd0, + 0xf5, 0x33, 0x01, 0xd1, 0xf6, 0x33, 0x01, 0xd2, 0xf7, 0x33, 0x01, 0xd3, + 0xf8, 0x33, 0x01, 0xd4, 0xf9, 0x33, 0x01, 0xd5, 0xfa, 0x33, 0x81, 0x25, + 0xd6, 0x04, 0x34, 0xc1, 0x00, 0xe1, 0x05, 0x34, 0x01, 0xe2, 0x06, 0x34, + 0x01, 0xe3, 0x07, 0x34, 0x01, 0xe4, 0x08, 0x34, 0x01, 0xe5, 0x09, 0x34, + 0x01, 0xe6, 0x0a, 0x34, 0x01, 0xe7, 0x0b, 0x34, 0x01, 0xe8, 0x0c, 0x34, + 0x41, 0xe1, 0xfb, 0x33, 0x01, 0xe2, 0xfc, 0x33, 0x01, 0xe3, 0xfd, 0x33, + 0x01, 0xe4, 0xfe, 0x33, 0x01, 0xe5, 0xff, 0x33, 0x01, 0xe6, 0x00, 0x34, + 0x01, 0xe7, 0x01, 0x34, 0x01, 0xe8, 0x02, 0x34, 0x01, 0xe9, 0x03, 0x34, + 0x41, 0xd1, 0xe4, 0x33, 0x01, 0xd2, 0xe5, 0x33, 0x81, 0x2f, 0xd3, 0xea, + 0x33, 0x81, 0x22, 0xd4, 0xed, 0x33, 0x81, 0x19, 0xd5, 0xef, 0x33, 0x81, + 0x10, 0xd6, 0xf1, 0x33, 0x01, 0xd7, 0xf2, 0x33, 0x01, 0xd8, 0xf3, 0x33, + 0x01, 0xd9, 0xf4, 0x33, 0x41, 0xe1, 0xf0, 0x33, 0x41, 0xe1, 0xee, 0x33, + 0x41, 0xe1, 0xeb, 0x33, 0x01, 0xe2, 0xec, 0x33, 0x41, 0xe1, 0xe6, 0x33, + 0x01, 0xe2, 0xe7, 0x33, 0x01, 0xe3, 0xe8, 0x33, 0x01, 0xe4, 0xe9, 0x33, + 0x41, 0xd1, 0xdb, 0x33, 0x81, 0x1c, 0xd2, 0xdd, 0x33, 0x01, 0xd3, 0xde, + 0x33, 0x01, 0xd4, 0xdf, 0x33, 0x01, 0xd5, 0xe0, 0x33, 0x01, 0xd6, 0xe1, + 0x33, 0x01, 0xd7, 0xe2, 0x33, 0x01, 0xd8, 0xe3, 0x33, 0x41, 0xe1, 0xdc, + 0x33, 0x41, 0xd1, 0xcf, 0x33, 0x01, 0xd2, 0xd0, 0x33, 0x01, 0xd3, 0xd1, + 0x33, 0x01, 0xd4, 0xd2, 0x33, 0x81, 0x1a, 0xd5, 0xd5, 0x33, 0x01, 0xd6, + 0xd6, 0x33, 0x81, 0x0d, 0xd7, 0xd8, 0x33, 0x01, 0xd8, 0xd9, 0x33, 0xc1, + 0x00, 0xe1, 0xda, 0x33, 0x41, 0xe1, 0xd7, 0x33, 0x41, 0xe1, 0xd3, 0x33, + 0x01, 0xe2, 0xd4, 0x33, 0x41, 0x90, 0x06, 0x4d, 0xf0, 0x83, 0x46, 0x34, + 0x41, 0x90, 0x5e, 0x91, 0x20, 0x92, 0x01, 0xff, 0xd0, 0xc8, 0x33, 0x01, + 0xd1, 0xc9, 0x33, 0x01, 0xd2, 0xca, 0x33, 0x01, 0xd3, 0xcb, 0x33, 0x01, + 0xd4, 0xcc, 0x33, 0x81, 0x04, 0xd5, 0xce, 0x33, 0x41, 0xe1, 0xcd, 0x33, + 0x41, 0xd0, 0xba, 0x33, 0x81, 0x33, 0xd1, 0xbc, 0x33, 0x01, 0xd2, 0xbd, + 0x33, 0x01, 0xd3, 0xbe, 0x33, 0x01, 0xd4, 0xbf, 0x33, 0x81, 0x1e, 0xd5, + 0xc1, 0x33, 0x01, 0xd6, 0xc2, 0x33, 0x01, 0xd7, 0xc3, 0x33, 0x81, 0x0d, + 0xd8, 0xc5, 0x33, 0x81, 0x04, 0xd9, 0xc7, 0x33, 0x41, 0xe1, 0xc6, 0x33, + 0x41, 0xe1, 0xc4, 0x33, 0x41, 0xe1, 0xc0, 0x33, 0x41, 0xe1, 0xbb, 0x33, + 0x41, 0xd1, 0xaf, 0x33, 0x01, 0xd2, 0xb0, 0x33, 0x01, 0xd3, 0xb1, 0x33, + 0x81, 0x1d, 0xd4, 0xb3, 0x33, 0x01, 0xd5, 0xb4, 0x33, 0x01, 0xd6, 0xb5, + 0x33, 0x01, 0xd7, 0xb6, 0x33, 0x01, 0xd8, 0xb7, 0x33, 0x01, 0xd9, 0xb8, + 0x33, 0xc1, 0x00, 0xe1, 0xb9, 0x33, 0x41, 0xe1, 0xb2, 0x33, 0x41, 0x90, + 0x06, 0x4e, 0x91, 0x77, 0x30, 0x34, 0x41, 0x90, 0xf8, 0x01, 0x91, 0xb3, + 0x01, 0x92, 0x49, 0x93, 0x0b, 0x42, 0xf8, 0xf4, 0xad, 0x33, 0xc1, 0x00, + 0xe1, 0xae, 0x33, 0x41, 0xd0, 0x9f, 0x33, 0x81, 0x33, 0xd1, 0xa1, 0x33, + 0x81, 0x2a, 0xd2, 0xa3, 0x33, 0x01, 0xd3, 0xa4, 0x33, 0x81, 0x1d, 0xd4, + 0xa6, 0x33, 0x01, 0xd5, 0xa7, 0x33, 0x01, 0xd6, 0xa8, 0x33, 0x01, 0xd7, + 0xa9, 0x33, 0x81, 0x08, 0xd8, 0xab, 0x33, 0x01, 0xd9, 0xac, 0x33, 0x41, + 0xe1, 0xaa, 0x33, 0x41, 0xe1, 0xa5, 0x33, 0x41, 0xe1, 0xa2, 0x33, 0x41, + 0xe1, 0xa0, 0x33, 0x41, 0xd0, 0x86, 0x33, 0x81, 0x33, 0xd1, 0x93, 0x33, + 0x01, 0xd2, 0x94, 0x33, 0x01, 0xd3, 0x95, 0x33, 0x81, 0x22, 0xd4, 0x97, + 0x33, 0x01, 0xd5, 0x98, 0x33, 0x01, 0xd6, 0x99, 0x33, 0x01, 0xd7, 0x9a, + 0x33, 0x01, 0xd8, 0x9b, 0x33, 0x81, 0x09, 0xd9, 0x9d, 0x33, 0xc1, 0x00, + 0xe1, 0x9e, 0x33, 0x41, 0xe1, 0x9c, 0x33, 0x41, 0xe1, 0x96, 0x33, 0x41, + 0xe1, 0x87, 0x33, 0x01, 0xe2, 0x88, 0x33, 0x01, 0xe3, 0x89, 0x33, 0x01, + 0xe4, 0x8a, 0x33, 0x01, 0xe5, 0x8b, 0x33, 0x01, 0xe6, 0x8c, 0x33, 0x01, + 0xe7, 0x8d, 0x33, 0x01, 0xe8, 0x8e, 0x33, 0x01, 0xe9, 0x8f, 0x33, 0x01, + 0xea, 0x90, 0x33, 0x01, 0xeb, 0x91, 0x33, 0x01, 0xec, 0x92, 0x33, 0x41, + 0xd0, 0x77, 0x33, 0x01, 0xd1, 0x78, 0x33, 0x81, 0x29, 0xd2, 0x7c, 0x33, + 0x81, 0x1c, 0xd3, 0x7f, 0x33, 0x01, 0xd4, 0x80, 0x33, 0x01, 0xd5, 0x81, + 0x33, 0x01, 0xd6, 0x82, 0x33, 0x01, 0xd7, 0x83, 0x33, 0x01, 0xd8, 0x84, + 0x33, 0x01, 0xd9, 0x85, 0x33, 0x41, 0xe1, 0x7d, 0x33, 0x01, 0xe2, 0x7e, + 0x33, 0x41, 0xe1, 0x79, 0x33, 0x01, 0xe2, 0x7a, 0x33, 0x01, 0xe3, 0x7b, + 0x33, 0x01, 0xe4, 0x2f, 0x34, 0x41, 0xd1, 0x62, 0x33, 0x81, 0x2e, 0xd2, + 0x6c, 0x33, 0x81, 0x25, 0xd3, 0x6e, 0x33, 0x01, 0xd4, 0x6f, 0x33, 0x01, + 0xd5, 0x70, 0x33, 0x01, 0xd6, 0x71, 0x33, 0x01, 0xd7, 0x72, 0x33, 0x81, + 0x08, 0xd8, 0x75, 0x33, 0x01, 0xd9, 0x76, 0x33, 0x41, 0xe1, 0x73, 0x33, + 0x01, 0xe2, 0x74, 0x33, 0x41, 0xe1, 0x6d, 0x33, 0x41, 0xe1, 0x63, 0x33, + 0x01, 0xe2, 0x64, 0x33, 0x01, 0xe3, 0x65, 0x33, 0x01, 0xe4, 0x66, 0x33, + 0x01, 0xe5, 0x67, 0x33, 0x01, 0xe6, 0x68, 0x33, 0x01, 0xe7, 0x69, 0x33, + 0x01, 0xe8, 0x6a, 0x33, 0x01, 0xe9, 0x6b, 0x33, 0x41, 0x90, 0x9c, 0x01, + 0x91, 0x72, 0x92, 0x3e, 0x93, 0x0f, 0x94, 0x01, 0xff, 0xd0, 0x5f, 0x33, + 0x01, 0xd1, 0x60, 0x33, 0x01, 0xd2, 0x61, 0x33, 0x41, 0xd0, 0x54, 0x33, + 0x01, 0xd1, 0x55, 0x33, 0x01, 0xd2, 0x56, 0x33, 0x81, 0x1c, 0xd3, 0x58, + 0x33, 0x01, 0xd4, 0x59, 0x33, 0x01, 0xd5, 0x5a, 0x33, 0x01, 0xd6, 0x5b, + 0x33, 0x01, 0xd7, 0x5c, 0x33, 0x01, 0xd8, 0x5d, 0x33, 0x01, 0xd9, 0x5e, + 0x33, 0x41, 0xe1, 0x57, 0x33, 0x41, 0xd0, 0x48, 0x33, 0x01, 0xd1, 0x49, + 0x33, 0x01, 0xd2, 0x4a, 0x33, 0x01, 0xd3, 0x4b, 0x33, 0x81, 0x1d, 0xd4, + 0x4d, 0x33, 0x01, 0xd5, 0x4e, 0x33, 0x01, 0xd6, 0x4f, 0x33, 0x01, 0xd7, + 0x50, 0x33, 0x01, 0xd8, 0x51, 0x33, 0x01, 0xd9, 0x52, 0x33, 0xc1, 0x00, + 0xe1, 0x53, 0x33, 0x41, 0xe1, 0x4c, 0x33, 0x41, 0xd0, 0x3e, 0x33, 0x01, + 0xd1, 0x3f, 0x33, 0x01, 0xd2, 0x40, 0x33, 0x01, 0xd3, 0x41, 0x33, 0x01, + 0xd4, 0x42, 0x33, 0x01, 0xd5, 0x43, 0x33, 0x01, 0xd6, 0x44, 0x33, 0x01, + 0xd7, 0x45, 0x33, 0x01, 0xd8, 0x46, 0x33, 0x01, 0xd9, 0x47, 0x33, 0x41, + 0xd1, 0x33, 0x33, 0x01, 0xd2, 0x34, 0x33, 0x01, 0xd3, 0x35, 0x33, 0x01, + 0xd4, 0x36, 0x33, 0x01, 0xd5, 0x37, 0x33, 0x01, 0xd6, 0x38, 0x33, 0x81, + 0x0c, 0xd7, 0x3b, 0x33, 0x01, 0xd8, 0x3c, 0x33, 0x01, 0xd9, 0x3d, 0x33, + 0x41, 0xe1, 0x39, 0x33, 0x01, 0xe2, 0x3a, 0x33, 0x41, 0x90, 0x06, 0x4d, + 0x48, 0x80, 0x45, 0x34, 0x41, 0x90, 0x87, 0x01, 0x91, 0x53, 0x92, 0x29, + 0x93, 0x01, 0xff, 0xd0, 0x2a, 0x33, 0x01, 0xd1, 0x2b, 0x33, 0x01, 0xd2, + 0x2c, 0x33, 0x81, 0x15, 0xd3, 0x2e, 0x33, 0x81, 0x0c, 0xd4, 0x30, 0x33, + 0x01, 0xd5, 0x31, 0x33, 0x01, 0xd6, 0x32, 0x33, 0x41, 0xe1, 0x2f, 0x33, + 0x41, 0xe1, 0x2d, 0x33, 0x41, 0xd0, 0x20, 0x33, 0x01, 0xd1, 0x21, 0x33, + 0x01, 0xd2, 0x22, 0x33, 0x01, 0xd3, 0x23, 0x33, 0x01, 0xd4, 0x24, 0x33, + 0x01, 0xd5, 0x25, 0x33, 0x01, 0xd6, 0x26, 0x33, 0x01, 0xd7, 0x27, 0x33, + 0x01, 0xd8, 0x28, 0x33, 0x01, 0xd9, 0x29, 0x33, 0x41, 0xd0, 0x14, 0x33, + 0x01, 0xd1, 0x15, 0x33, 0x81, 0x25, 0xd2, 0x17, 0x33, 0x01, 0xd3, 0x18, + 0x33, 0x01, 0xd4, 0x19, 0x33, 0x01, 0xd5, 0x1a, 0x33, 0x01, 0xd6, 0x1b, + 0x33, 0x81, 0x0c, 0xd7, 0x1d, 0x33, 0x01, 0xd8, 0x1e, 0x33, 0x01, 0xd9, + 0x1f, 0x33, 0x41, 0xe1, 0x1c, 0x33, 0x41, 0xe1, 0x16, 0x33, 0x41, 0xd1, + 0x07, 0x33, 0x01, 0xd2, 0x08, 0x33, 0x01, 0xd3, 0x09, 0x33, 0x81, 0x27, + 0xd4, 0x0b, 0x33, 0x01, 0xd5, 0x0c, 0x33, 0x01, 0xd6, 0x0d, 0x33, 0x01, + 0xd7, 0x0e, 0x33, 0x81, 0x12, 0xd8, 0x10, 0x33, 0x81, 0x09, 0xd9, 0x12, + 0x33, 0xc1, 0x00, 0xe1, 0x13, 0x33, 0x41, 0xe1, 0x11, 0x33, 0x41, 0xe1, + 0x0f, 0x33, 0x41, 0xe1, 0x0a, 0x33, 0x41, 0x90, 0xba, 0x01, 0x91, 0x81, + 0x01, 0x92, 0x4e, 0x93, 0x1f, 0x94, 0x01, 0xff, 0xd0, 0x00, 0x33, 0x01, + 0xd1, 0x01, 0x33, 0x01, 0xd2, 0x02, 0x33, 0x01, 0xd3, 0x03, 0x33, 0x01, + 0xd4, 0x04, 0x33, 0x01, 0xd5, 0x05, 0x33, 0x01, 0xd6, 0x06, 0x33, 0x41, + 0xd0, 0xf5, 0x32, 0x01, 0xd1, 0xf6, 0x32, 0x01, 0xd2, 0xf7, 0x32, 0x01, + 0xd3, 0xf8, 0x32, 0x01, 0xd4, 0xf9, 0x32, 0x01, 0xd5, 0xfa, 0x32, 0x81, + 0x10, 0xd6, 0xfc, 0x32, 0x01, 0xd7, 0xfd, 0x32, 0x01, 0xd8, 0xfe, 0x32, + 0x01, 0xd9, 0xff, 0x32, 0x41, 0xe1, 0xfb, 0x32, 0x41, 0xd0, 0xe9, 0x32, + 0x01, 0xd1, 0xea, 0x32, 0x01, 0xd2, 0xeb, 0x32, 0x01, 0xd3, 0xec, 0x32, + 0x01, 0xd4, 0xed, 0x32, 0x01, 0xd5, 0xee, 0x32, 0x01, 0xd6, 0xef, 0x32, + 0x81, 0x0c, 0xd7, 0xf2, 0x32, 0x01, 0xd8, 0xf3, 0x32, 0x01, 0xd9, 0xf4, + 0x32, 0x41, 0xe1, 0xf0, 0x32, 0x01, 0xe2, 0xf1, 0x32, 0x41, 0xd0, 0xdc, + 0x32, 0x01, 0xd1, 0xdd, 0x32, 0x01, 0xd2, 0xde, 0x32, 0x01, 0xd3, 0xdf, + 0x32, 0x01, 0xd4, 0xe0, 0x32, 0x81, 0x19, 0xd5, 0xe3, 0x32, 0x01, 0xd6, + 0xe4, 0x32, 0x01, 0xd7, 0xe5, 0x32, 0x81, 0x08, 0xd8, 0xe7, 0x32, 0x01, + 0xd9, 0xe8, 0x32, 0x41, 0xe1, 0xe6, 0x32, 0x41, 0xe1, 0xe1, 0x32, 0x01, + 0xe2, 0xe2, 0x32, 0x41, 0xd1, 0xd1, 0x32, 0x01, 0xd2, 0xd2, 0x32, 0x81, + 0x21, 0xd3, 0xd4, 0x32, 0x01, 0xd4, 0xd5, 0x32, 0x01, 0xd5, 0xd6, 0x32, + 0x01, 0xd6, 0xd7, 0x32, 0x81, 0x0c, 0xd7, 0xd9, 0x32, 0x01, 0xd8, 0xda, + 0x32, 0x01, 0xd9, 0xdb, 0x32, 0x41, 0xe1, 0xd8, 0x32, 0x41, 0xe1, 0xd3, + 0x32, 0x41, 0x90, 0x5f, 0x91, 0x2b, 0x92, 0x01, 0xff, 0xd0, 0xc7, 0x32, + 0x01, 0xd1, 0xc8, 0x32, 0x01, 0xd2, 0xc9, 0x32, 0x01, 0xd3, 0xca, 0x32, + 0x01, 0xd4, 0xcb, 0x32, 0x01, 0xd5, 0xcc, 0x32, 0x01, 0xd6, 0xcd, 0x32, + 0x01, 0xd7, 0xce, 0x32, 0x01, 0xd8, 0xcf, 0x32, 0x01, 0xd9, 0xd0, 0x32, + 0x41, 0xd0, 0xbb, 0x32, 0x81, 0x29, 0xd1, 0xbd, 0x32, 0x01, 0xd2, 0xbe, + 0x32, 0x01, 0xd3, 0xbf, 0x32, 0x01, 0xd4, 0xc0, 0x32, 0x01, 0xd5, 0xc1, + 0x32, 0x01, 0xd6, 0xc2, 0x32, 0x81, 0x0c, 0xd7, 0xc4, 0x32, 0x01, 0xd8, + 0xc5, 0x32, 0x01, 0xd9, 0xc6, 0x32, 0x41, 0xe1, 0xc3, 0x32, 0x41, 0xe1, + 0xbc, 0x32, 0x41, 0xd1, 0xaf, 0x32, 0x01, 0xd2, 0xb0, 0x32, 0x81, 0x25, + 0xd3, 0xb2, 0x32, 0x81, 0x18, 0xd4, 0xb5, 0x32, 0x01, 0xd5, 0xb6, 0x32, + 0x01, 0xd6, 0xb7, 0x32, 0x01, 0xd7, 0xb8, 0x32, 0x01, 0xd8, 0xb9, 0x32, + 0x01, 0xd9, 0xba, 0x32, 0x41, 0xe1, 0xb3, 0x32, 0x01, 0xe2, 0xb4, 0x32, + 0x41, 0xe1, 0xb1, 0x32, 0x41, 0xd1, 0xa8, 0x32, 0x01, 0xd2, 0xa9, 0x32, + 0x01, 0xd3, 0xaa, 0x32, 0x01, 0xd4, 0xab, 0x32, 0x01, 0xd5, 0xac, 0x32, + 0x01, 0xd6, 0xad, 0x32, 0x01, 0xd7, 0xae, 0x32, 0x41, 0x90, 0x0b, 0x91, + 0x01, 0xff, 0xd0, 0xa6, 0x32, 0x01, 0xd1, 0xa7, 0x32, 0x41, 0xd1, 0x9b, + 0x32, 0x81, 0x25, 0xd2, 0x9d, 0x32, 0x01, 0xd3, 0x9e, 0x32, 0x81, 0x18, + 0xd4, 0xa0, 0x32, 0x01, 0xd5, 0xa1, 0x32, 0x01, 0xd6, 0xa2, 0x32, 0x01, + 0xd7, 0xa3, 0x32, 0x01, 0xd8, 0xa4, 0x32, 0x01, 0xd9, 0xa5, 0x32, 0x41, + 0xe1, 0x9f, 0x32, 0x41, 0xe1, 0x9c, 0x32, 0x41, 0x90, 0x06, 0x4d, 0x15, + 0x8a, 0x36, 0x34, 0x41, 0x90, 0xff, 0x01, 0x91, 0xc2, 0x01, 0x92, 0x83, + 0x01, 0x93, 0x3e, 0x94, 0x14, 0x95, 0x01, 0xff, 0xd0, 0x97, 0x32, 0x81, + 0x04, 0xd1, 0x9a, 0x32, 0x41, 0xe1, 0x98, 0x32, 0x01, 0xe2, 0x99, 0x32, + 0x41, 0xd0, 0x8d, 0x32, 0x01, 0xd1, 0x8e, 0x32, 0x01, 0xd2, 0x8f, 0x32, + 0x01, 0xd3, 0x90, 0x32, 0x01, 0xd4, 0x91, 0x32, 0x01, 0xd5, 0x92, 0x32, + 0x01, 0xd6, 0x93, 0x32, 0x01, 0xd7, 0x94, 0x32, 0x01, 0xd8, 0x95, 0x32, + 0x01, 0xd9, 0x96, 0x32, 0x41, 0xd0, 0x7d, 0x32, 0x81, 0x3a, 0xd1, 0x7f, + 0x32, 0x01, 0xd2, 0x80, 0x32, 0x01, 0xd3, 0x81, 0x32, 0x81, 0x29, 0xd4, + 0x83, 0x32, 0x01, 0xd5, 0x84, 0x32, 0x01, 0xd6, 0x85, 0x32, 0x81, 0x0c, + 0xd7, 0x8a, 0x32, 0x01, 0xd8, 0x8b, 0x32, 0x01, 0xd9, 0x8c, 0x32, 0x41, + 0xe1, 0x86, 0x32, 0x01, 0xe2, 0x87, 0x32, 0x01, 0xe3, 0x88, 0x32, 0x01, + 0xe4, 0x89, 0x32, 0x41, 0xe1, 0x82, 0x32, 0x41, 0xe1, 0x7e, 0x32, 0x41, + 0xd0, 0x6f, 0x32, 0x81, 0x33, 0xd1, 0x71, 0x32, 0x01, 0xd2, 0x72, 0x32, + 0x01, 0xd3, 0x73, 0x32, 0x01, 0xd4, 0x74, 0x32, 0x81, 0x1e, 0xd5, 0x76, + 0x32, 0x81, 0x15, 0xd6, 0x78, 0x32, 0x01, 0xd7, 0x79, 0x32, 0x01, 0xd8, + 0x7a, 0x32, 0x01, 0xd9, 0x7b, 0x32, 0xc1, 0x00, 0xe1, 0x7c, 0x32, 0x41, + 0xe1, 0x77, 0x32, 0x41, 0xe1, 0x75, 0x32, 0x41, 0xe1, 0x70, 0x32, 0x41, + 0xd0, 0x61, 0x32, 0x81, 0x29, 0xd1, 0x65, 0x32, 0x01, 0xd2, 0x66, 0x32, + 0x01, 0xd3, 0x67, 0x32, 0x01, 0xd4, 0x68, 0x32, 0x01, 0xd5, 0x69, 0x32, + 0x01, 0xd6, 0x6a, 0x32, 0x01, 0xd7, 0x6b, 0x32, 0x01, 0xd8, 0x6c, 0x32, + 0x01, 0xd9, 0x6d, 0x32, 0xc1, 0x00, 0xe1, 0x6e, 0x32, 0x41, 0xe1, 0x62, + 0x32, 0x01, 0xe2, 0x63, 0x32, 0x01, 0xe3, 0x64, 0x32, 0x41, 0xd1, 0x50, + 0x32, 0x81, 0x3e, 0xd2, 0x52, 0x32, 0x01, 0xd3, 0x53, 0x32, 0x01, 0xd4, + 0x54, 0x32, 0x01, 0xd5, 0x55, 0x32, 0x81, 0x29, 0xd6, 0x57, 0x32, 0x81, + 0x0c, 0xd7, 0x5e, 0x32, 0x01, 0xd8, 0x5f, 0x32, 0x01, 0xd9, 0x60, 0x32, + 0x41, 0xe1, 0x58, 0x32, 0x01, 0xe2, 0x59, 0x32, 0x01, 0xe3, 0x5a, 0x32, + 0x01, 0xe4, 0x5b, 0x32, 0x01, 0xe5, 0x5c, 0x32, 0x01, 0xe6, 0x5d, 0x32, + 0x41, 0xe1, 0x56, 0x32, 0x41, 0xe1, 0x51, 0x32, 0x41, 0x90, 0xdc, 0x01, + 0x02, 0x7b, 0x98, 0x78, 0x02, 0xe0, 0xec, 0x01, 0xff, 0x90, 0x4d, 0x91, + 0x14, 0x92, 0x01, 0xff, 0xd0, 0x4c, 0x32, 0x01, 0xd1, 0x4d, 0x32, 0x01, + 0xd2, 0x4e, 0x32, 0xc1, 0x00, 0xe1, 0x4f, 0x32, 0x41, 0xd0, 0x3f, 0x32, + 0x81, 0x2e, 0xd1, 0x41, 0x32, 0x81, 0x25, 0xd2, 0x43, 0x32, 0x01, 0xd3, + 0x44, 0x32, 0x01, 0xd4, 0x45, 0x32, 0x01, 0xd5, 0x46, 0x32, 0x01, 0xd6, + 0x47, 0x32, 0x01, 0xd7, 0x48, 0x32, 0x01, 0xd8, 0x49, 0x32, 0x81, 0x04, + 0xd9, 0x4b, 0x32, 0x41, 0xe1, 0x4a, 0x32, 0x41, 0xe1, 0x42, 0x32, 0x41, + 0xe1, 0x40, 0x32, 0x41, 0xd1, 0x36, 0x32, 0x01, 0xd2, 0x37, 0x32, 0x01, + 0xd3, 0x38, 0x32, 0x01, 0xd4, 0x39, 0x32, 0x01, 0xd5, 0x3a, 0x32, 0x01, + 0xd6, 0x3b, 0x32, 0x01, 0xd7, 0x3c, 0x32, 0x01, 0xd8, 0x3d, 0x32, 0x01, + 0xd9, 0x3e, 0x32, 0x41, 0x90, 0x35, 0x91, 0x06, 0x42, 0xc0, 0xe7, 0x35, + 0x32, 0x41, 0xd0, 0x2a, 0x32, 0x01, 0xd1, 0x2b, 0x32, 0x01, 0xd2, 0x2c, + 0x32, 0x01, 0xd3, 0x2d, 0x32, 0x01, 0xd4, 0x2e, 0x32, 0x01, 0xd5, 0x2f, + 0x32, 0x01, 0xd6, 0x30, 0x32, 0x01, 0xd7, 0x31, 0x32, 0x81, 0x08, 0xd8, + 0x33, 0x32, 0x01, 0xd9, 0x34, 0x32, 0x41, 0xe1, 0x32, 0x32, 0x41, 0xd1, + 0x20, 0x32, 0x01, 0xd2, 0x21, 0x32, 0x01, 0xd3, 0x22, 0x32, 0x01, 0xd4, + 0x23, 0x32, 0x01, 0xd5, 0x24, 0x32, 0x81, 0x10, 0xd6, 0x26, 0x32, 0x01, + 0xd7, 0x27, 0x32, 0x01, 0xd8, 0x28, 0x32, 0x01, 0xd9, 0x29, 0x32, 0x41, + 0xe1, 0x25, 0x32, 0x41, 0x90, 0xaf, 0x01, 0x91, 0x7c, 0x92, 0x4d, 0x93, + 0x0f, 0x94, 0x01, 0xff, 0xd0, 0x1d, 0x32, 0x01, 0xd1, 0x1e, 0x32, 0x01, + 0xd2, 0x1f, 0x32, 0x41, 0xd0, 0x0f, 0x32, 0x01, 0xd1, 0x10, 0x32, 0x01, + 0xd2, 0x11, 0x32, 0x01, 0xd3, 0x12, 0x32, 0x81, 0x27, 0xd4, 0x14, 0x32, + 0x81, 0x1e, 0xd5, 0x16, 0x32, 0x81, 0x15, 0xd6, 0x18, 0x32, 0x01, 0xd7, + 0x19, 0x32, 0x81, 0x08, 0xd8, 0x1b, 0x32, 0x01, 0xd9, 0x1c, 0x32, 0x41, + 0xe1, 0x1a, 0x32, 0x41, 0xe1, 0x17, 0x32, 0x41, 0xe1, 0x15, 0x32, 0x41, + 0xe1, 0x13, 0x32, 0x41, 0xd0, 0x04, 0x32, 0x01, 0xd1, 0x05, 0x32, 0x01, + 0xd2, 0x06, 0x32, 0x01, 0xd3, 0x07, 0x32, 0x01, 0xd4, 0x08, 0x32, 0x01, + 0xd5, 0x09, 0x32, 0x81, 0x10, 0xd6, 0x0b, 0x32, 0x01, 0xd7, 0x0c, 0x32, + 0x01, 0xd8, 0x0d, 0x32, 0x01, 0xd9, 0x0e, 0x32, 0x41, 0xe1, 0x0a, 0x32, + 0x41, 0xd0, 0xf8, 0x31, 0x01, 0xd1, 0xf9, 0x31, 0x01, 0xd2, 0xfa, 0x31, + 0x01, 0xd3, 0xfb, 0x31, 0x01, 0xd4, 0xfc, 0x31, 0x01, 0xd5, 0xfd, 0x31, + 0x01, 0xd6, 0xfe, 0x31, 0x01, 0xd7, 0xff, 0x31, 0x01, 0xd8, 0x00, 0x32, + 0x81, 0x04, 0xd9, 0x03, 0x32, 0x41, 0xe1, 0x01, 0x32, 0x01, 0xe2, 0x02, + 0x32, 0x41, 0xd1, 0xef, 0x31, 0x01, 0xd2, 0xf0, 0x31, 0x01, 0xd3, 0xf1, + 0x31, 0x01, 0xd4, 0xf2, 0x31, 0x01, 0xd5, 0xf3, 0x31, 0x01, 0xd6, 0xf4, + 0x31, 0x01, 0xd7, 0xf5, 0x31, 0x01, 0xd8, 0xf6, 0x31, 0x01, 0xd9, 0xf7, + 0x31, 0x41, 0x90, 0x76, 0x52, 0xdb, 0x52, 0x40, 0x34, 0x01, 0x4f, 0xef, + 0x70, 0x55, 0x34, 0xc1, 0x00, 0x04, 0x3c, 0x05, 0x01, 0xff, 0x46, 0xb5, + 0x0a, 0x50, 0x34, 0x81, 0x41, 0x43, 0x40, 0x05, 0x52, 0x34, 0x01, 0x45, + 0x0f, 0xeb, 0x49, 0x34, 0x81, 0x23, 0x43, 0x1e, 0x00, 0x4b, 0x34, 0xc1, + 0x00, 0x80, 0x01, 0xff, 0x47, 0xca, 0xce, 0x53, 0x34, 0x01, 0x43, 0x40, + 0x05, 0x4a, 0x34, 0x01, 0x45, 0x0f, 0xeb, 0x47, 0x34, 0xc1, 0x00, 0x4f, + 0x15, 0x69, 0x4f, 0x34, 0x41, 0x05, 0x19, 0x00, 0x01, 0xff, 0x46, 0xb5, + 0x0a, 0x51, 0x34, 0x01, 0x43, 0x1e, 0x00, 0x4d, 0x34, 0x41, 0x80, 0x01, + 0xff, 0x47, 0xca, 0xce, 0x54, 0x34, 0x01, 0x43, 0x40, 0x05, 0x4e, 0x34, + 0x01, 0x45, 0x0f, 0xeb, 0x48, 0x34, 0xc1, 0x00, 0x4c, 0x0b, 0x8b, 0x4c, + 0x34, 0x41, 0x90, 0xed, 0x01, 0x91, 0x8d, 0x01, 0x92, 0x54, 0x93, 0x1c, + 0x94, 0x01, 0xff, 0xd0, 0xe9, 0x31, 0x81, 0x10, 0xd1, 0xeb, 0x31, 0x01, + 0xd2, 0xec, 0x31, 0x01, 0xd3, 0xed, 0x31, 0x01, 0xd4, 0xee, 0x31, 0x41, + 0xe1, 0xea, 0x31, 0x41, 0xd0, 0xdc, 0x31, 0x01, 0xd1, 0xdd, 0x31, 0x81, + 0x29, 0xd2, 0xdf, 0x31, 0x01, 0xd3, 0xe0, 0x31, 0x81, 0x18, 0xd4, 0xe3, + 0x31, 0x01, 0xd5, 0xe4, 0x31, 0x01, 0xd6, 0xe5, 0x31, 0x01, 0xd7, 0xe6, + 0x31, 0x01, 0xd8, 0xe7, 0x31, 0x01, 0xd9, 0xe8, 0x31, 0x41, 0xe1, 0xe1, + 0x31, 0x01, 0xe2, 0xe2, 0x31, 0x41, 0xe1, 0xde, 0x31, 0x41, 0xd0, 0xcf, + 0x31, 0x01, 0xd1, 0xd0, 0x31, 0x01, 0xd2, 0xd1, 0x31, 0x81, 0x26, 0xd3, + 0xd3, 0x31, 0x01, 0xd4, 0xd4, 0x31, 0x81, 0x19, 0xd5, 0xd6, 0x31, 0x01, + 0xd6, 0xd7, 0x31, 0x01, 0xd7, 0xd8, 0x31, 0x01, 0xd8, 0xd9, 0x31, 0x81, + 0x04, 0xd9, 0xdb, 0x31, 0x41, 0xe1, 0xda, 0x31, 0x41, 0xe1, 0xd5, 0x31, + 0x41, 0xe1, 0xd2, 0x31, 0x41, 0xd0, 0xb9, 0x31, 0x81, 0x54, 0xd1, 0xbb, + 0x31, 0x01, 0xd2, 0xbc, 0x31, 0x81, 0x2b, 0xd3, 0xc5, 0x31, 0x01, 0xd4, + 0xc6, 0x31, 0x01, 0xd5, 0xc7, 0x31, 0x81, 0x1a, 0xd6, 0xc9, 0x31, 0x81, + 0x11, 0xd7, 0xcb, 0x31, 0x81, 0x08, 0xd8, 0xcd, 0x31, 0x01, 0xd9, 0xce, + 0x31, 0x41, 0xe1, 0xcc, 0x31, 0x41, 0xe1, 0xca, 0x31, 0x41, 0xe1, 0xc8, + 0x31, 0x41, 0xe1, 0xbd, 0x31, 0x01, 0xe2, 0xbe, 0x31, 0x01, 0xe3, 0xbf, + 0x31, 0x01, 0xe4, 0xc0, 0x31, 0x01, 0xe5, 0xc1, 0x31, 0x01, 0xe6, 0xc2, + 0x31, 0x01, 0xe7, 0xc3, 0x31, 0x01, 0xe8, 0xc4, 0x31, 0x41, 0xe1, 0xba, + 0x31, 0x41, 0xd1, 0xad, 0x31, 0x81, 0x25, 0xd2, 0xb0, 0x31, 0x01, 0xd3, + 0xb1, 0x31, 0x81, 0x18, 0xd4, 0xb3, 0x31, 0x01, 0xd5, 0xb4, 0x31, 0x01, + 0xd6, 0xb5, 0x31, 0x01, 0xd7, 0xb6, 0x31, 0x01, 0xd8, 0xb7, 0x31, 0x01, + 0xd9, 0xb8, 0x31, 0x41, 0xe1, 0xb2, 0x31, 0x41, 0xe1, 0xae, 0x31, 0x01, + 0xe2, 0xaf, 0x31, 0x41, 0x02, 0x8a, 0xd8, 0x06, 0x48, 0x4d, 0x80, 0x43, + 0x34, 0x41, 0xd1, 0xa3, 0x31, 0x01, 0xd2, 0xa4, 0x31, 0x81, 0x1d, 0xd3, + 0xa6, 0x31, 0x01, 0xd4, 0xa7, 0x31, 0x01, 0xd5, 0xa8, 0x31, 0x01, 0xd6, + 0xa9, 0x31, 0x81, 0x08, 0xd7, 0xab, 0x31, 0x01, 0xd8, 0xac, 0x31, 0x41, + 0xe1, 0xaa, 0x31, 0x41, 0xe1, 0xa5, 0x31, 0x41, 0xd1, 0x9b, 0x31, 0x01, + 0xd2, 0x9c, 0x31, 0x01, 0xd3, 0x9d, 0x31, 0x01, 0xd4, 0x9e, 0x31, 0x01, + 0xd5, 0x9f, 0x31, 0x01, 0xd6, 0xa0, 0x31, 0x01, 0xd7, 0xa1, 0x31, 0x01, + 0xd8, 0xa2, 0x31, 0x41, 0x90, 0x37, 0x09, 0x99, 0xbc, 0x01, 0xff, 0x46, + 0xb5, 0x0a, 0x3b, 0x34, 0x81, 0x1c, 0x46, 0x7d, 0x02, 0x39, 0x34, 0x01, + 0x43, 0x1e, 0x00, 0x3a, 0x34, 0xc1, 0x00, 0x80, 0x01, 0xff, 0x43, 0x40, + 0x05, 0x34, 0x34, 0x01, 0x45, 0x0f, 0xeb, 0x32, 0x34, 0x41, 0x80, 0x01, + 0xff, 0x43, 0x40, 0x05, 0x35, 0x34, 0x01, 0x45, 0x0f, 0xeb, 0x33, 0x34, + 0x41, 0x90, 0x25, 0x91, 0x01, 0xff, 0xd0, 0x93, 0x31, 0x81, 0x19, 0xd1, + 0x95, 0x31, 0x81, 0x10, 0xd2, 0x97, 0x31, 0x01, 0xd3, 0x98, 0x31, 0x01, + 0xd4, 0x99, 0x31, 0x01, 0xd5, 0x9a, 0x31, 0x41, 0xe1, 0x96, 0x31, 0x41, + 0xe1, 0x94, 0x31, 0x41, 0xd1, 0x88, 0x31, 0x01, 0xd2, 0x89, 0x31, 0x01, + 0xd3, 0x8a, 0x31, 0x01, 0xd4, 0x8b, 0x31, 0x01, 0xd5, 0x8c, 0x31, 0x81, + 0x15, 0xd6, 0x8e, 0x31, 0x01, 0xd7, 0x8f, 0x31, 0x01, 0xd8, 0x90, 0x31, + 0x01, 0xd9, 0x91, 0x31, 0xc1, 0x00, 0xe1, 0x92, 0x31, 0x41, 0xe1, 0x8d, + 0x31, 0x41, 0x02, 0x8a, 0xd8, 0x16, 0x04, 0x23, 0x00, 0x06, 0x50, 0xa6, + 0x65, 0x31, 0x34, 0x41, 0x45, 0x45, 0xc0, 0x42, 0x34, 0x01, 0x49, 0x4c, + 0x80, 0x44, 0x34, 0x41, 0xd1, 0x7f, 0x31, 0x01, 0xd2, 0x80, 0x31, 0x01, + 0xd3, 0x81, 0x31, 0x01, 0xd4, 0x82, 0x31, 0x01, 0xd5, 0x83, 0x31, 0x01, + 0xd6, 0x84, 0x31, 0x81, 0x08, 0xd7, 0x86, 0x31, 0x01, 0xd8, 0x87, 0x31, + 0x41, 0xe1, 0x85, 0x31, 0x41, 0x90, 0xe3, 0x01, 0x91, 0xb3, 0x01, 0x92, + 0x7f, 0x93, 0x4b, 0x94, 0x17, 0x95, 0x01, 0xff, 0xd0, 0x7a, 0x31, 0x01, + 0xd1, 0x7b, 0x31, 0x01, 0xd2, 0x7c, 0x31, 0x01, 0xd3, 0x7d, 0x31, 0x01, + 0xd4, 0x7e, 0x31, 0x41, 0xd0, 0x6e, 0x31, 0x01, 0xd1, 0x6f, 0x31, 0x01, + 0xd2, 0x70, 0x31, 0x01, 0xd3, 0x71, 0x31, 0x81, 0x1d, 0xd4, 0x73, 0x31, + 0x01, 0xd5, 0x74, 0x31, 0x81, 0x10, 0xd6, 0x76, 0x31, 0x01, 0xd7, 0x77, + 0x31, 0x01, 0xd8, 0x78, 0x31, 0x01, 0xd9, 0x79, 0x31, 0x41, 0xe1, 0x75, + 0x31, 0x41, 0xe1, 0x72, 0x31, 0x41, 0xd0, 0x62, 0x31, 0x01, 0xd1, 0x63, + 0x31, 0x01, 0xd2, 0x64, 0x31, 0x01, 0xd3, 0x65, 0x31, 0x01, 0xd4, 0x66, + 0x31, 0x01, 0xd5, 0x67, 0x31, 0x01, 0xd6, 0x68, 0x31, 0x81, 0x11, 0xd7, + 0x6a, 0x31, 0x81, 0x08, 0xd8, 0x6c, 0x31, 0x01, 0xd9, 0x6d, 0x31, 0x41, + 0xe1, 0x6b, 0x31, 0x41, 0xe1, 0x69, 0x31, 0x41, 0xd0, 0x56, 0x31, 0x81, + 0x29, 0xd1, 0x58, 0x31, 0x01, 0xd2, 0x59, 0x31, 0x01, 0xd3, 0x5a, 0x31, + 0x01, 0xd4, 0x5b, 0x31, 0x01, 0xd5, 0x5c, 0x31, 0x01, 0xd6, 0x5d, 0x31, + 0x81, 0x0c, 0xd7, 0x5f, 0x31, 0x01, 0xd8, 0x60, 0x31, 0x01, 0xd9, 0x61, + 0x31, 0x41, 0xe1, 0x5e, 0x31, 0x41, 0xe1, 0x57, 0x31, 0x41, 0xd0, 0x4b, + 0x31, 0x01, 0xd1, 0x4c, 0x31, 0x81, 0x20, 0xd2, 0x4e, 0x31, 0x01, 0xd3, + 0x4f, 0x31, 0x01, 0xd4, 0x50, 0x31, 0x01, 0xd5, 0x51, 0x31, 0x01, 0xd6, + 0x52, 0x31, 0x01, 0xd7, 0x53, 0x31, 0x01, 0xd8, 0x54, 0x31, 0x01, 0xd9, + 0x55, 0x31, 0x41, 0xe1, 0x4d, 0x31, 0x41, 0xd1, 0x3f, 0x31, 0x01, 0xd2, + 0x40, 0x31, 0x01, 0xd3, 0x41, 0x31, 0x01, 0xd4, 0x42, 0x31, 0x01, 0xd5, + 0x43, 0x31, 0x01, 0xd6, 0x44, 0x31, 0x81, 0x15, 0xd7, 0x46, 0x31, 0x81, + 0x08, 0xd8, 0x49, 0x31, 0x01, 0xd9, 0x4a, 0x31, 0x41, 0xe1, 0x47, 0x31, + 0x01, 0xe2, 0x48, 0x31, 0x41, 0xe1, 0x45, 0x31, 0x41, 0x90, 0x06, 0x49, + 0x41, 0xc0, 0x41, 0x34, 0x41, 0x90, 0xf2, 0x01, 0x91, 0xc2, 0x01, 0x92, + 0x92, 0x01, 0x93, 0x59, 0x94, 0x20, 0x95, 0x01, 0xff, 0xd0, 0x38, 0x31, + 0x01, 0xd1, 0x39, 0x31, 0x81, 0x08, 0xd2, 0x3d, 0x31, 0x01, 0xd3, 0x3e, + 0x31, 0x41, 0xe1, 0x3a, 0x31, 0x01, 0xe2, 0x3b, 0x31, 0x01, 0xe3, 0x3c, + 0x31, 0x41, 0xd0, 0x2b, 0x31, 0x01, 0xd1, 0x2c, 0x31, 0x01, 0xd2, 0x2d, + 0x31, 0x01, 0xd3, 0x2e, 0x31, 0x01, 0xd4, 0x2f, 0x31, 0x01, 0xd5, 0x30, + 0x31, 0x81, 0x1a, 0xd6, 0x32, 0x31, 0x81, 0x11, 0xd7, 0x34, 0x31, 0x81, + 0x08, 0xd8, 0x36, 0x31, 0x01, 0xd9, 0x37, 0x31, 0x41, 0xe1, 0x35, 0x31, + 0x41, 0xe1, 0x33, 0x31, 0x41, 0xe1, 0x31, 0x31, 0x41, 0xd0, 0x1e, 0x31, + 0x01, 0xd1, 0x1f, 0x31, 0x81, 0x2a, 0xd2, 0x21, 0x31, 0x01, 0xd3, 0x22, + 0x31, 0x01, 0xd4, 0x23, 0x31, 0x01, 0xd5, 0x24, 0x31, 0x01, 0xd6, 0x25, + 0x31, 0x01, 0xd7, 0x26, 0x31, 0x81, 0x0d, 0xd8, 0x28, 0x31, 0x81, 0x04, + 0xd9, 0x2a, 0x31, 0x41, 0xe1, 0x29, 0x31, 0x41, 0xe1, 0x27, 0x31, 0x41, + 0xe1, 0x20, 0x31, 0x41, 0xd0, 0x13, 0x31, 0x01, 0xd1, 0x14, 0x31, 0x81, + 0x20, 0xd2, 0x16, 0x31, 0x01, 0xd3, 0x17, 0x31, 0x01, 0xd4, 0x18, 0x31, + 0x01, 0xd5, 0x19, 0x31, 0x01, 0xd6, 0x1a, 0x31, 0x01, 0xd7, 0x1b, 0x31, + 0x01, 0xd8, 0x1c, 0x31, 0x01, 0xd9, 0x1d, 0x31, 0x41, 0xe1, 0x15, 0x31, + 0x41, 0xd0, 0x08, 0x31, 0x01, 0xd1, 0x09, 0x31, 0x01, 0xd2, 0x0a, 0x31, + 0x01, 0xd3, 0x0b, 0x31, 0x81, 0x18, 0xd4, 0x0d, 0x31, 0x01, 0xd5, 0x0e, + 0x31, 0x01, 0xd6, 0x0f, 0x31, 0x01, 0xd7, 0x10, 0x31, 0x01, 0xd8, 0x11, + 0x31, 0x01, 0xd9, 0x12, 0x31, 0x41, 0xe1, 0x0c, 0x31, 0x41, 0xd1, 0xfe, + 0x30, 0x81, 0x20, 0xd2, 0x00, 0x31, 0x01, 0xd3, 0x01, 0x31, 0x01, 0xd4, + 0x02, 0x31, 0x01, 0xd5, 0x03, 0x31, 0x01, 0xd6, 0x04, 0x31, 0x01, 0xd7, + 0x05, 0x31, 0x01, 0xd8, 0x06, 0x31, 0x01, 0xd9, 0x07, 0x31, 0x41, 0xe1, + 0xff, 0x30, 0x41, 0x90, 0x17, 0x03, 0x1b, 0x00, 0x01, 0xff, 0x49, 0x9d, + 0x68, 0x3d, 0x34, 0x01, 0x47, 0x06, 0x30, 0x38, 0x34, 0x01, 0x50, 0x96, + 0x68, 0x3f, 0x34, 0x41, 0x90, 0x90, 0x01, 0x91, 0x5c, 0x92, 0x28, 0x93, + 0x01, 0xff, 0xd0, 0xf5, 0x30, 0x01, 0xd1, 0xf6, 0x30, 0x01, 0xd2, 0xf7, + 0x30, 0x01, 0xd3, 0xf8, 0x30, 0x01, 0xd4, 0xf9, 0x30, 0x81, 0x0c, 0xd6, + 0xfb, 0x30, 0x01, 0xd7, 0xfc, 0x30, 0x01, 0xd8, 0xfd, 0x30, 0x41, 0xe1, + 0xfa, 0x30, 0x41, 0xd0, 0xe9, 0x30, 0x81, 0x29, 0xd1, 0xeb, 0x30, 0x01, + 0xd2, 0xec, 0x30, 0x01, 0xd3, 0xed, 0x30, 0x01, 0xd4, 0xee, 0x30, 0x01, + 0xd5, 0xef, 0x30, 0x01, 0xd6, 0xf0, 0x30, 0x01, 0xd7, 0xf1, 0x30, 0x01, + 0xd8, 0xf2, 0x30, 0x81, 0x04, 0xd9, 0xf4, 0x30, 0x41, 0xe1, 0xf3, 0x30, + 0x41, 0xe1, 0xea, 0x30, 0x41, 0xd0, 0xdd, 0x30, 0x01, 0xd1, 0xde, 0x30, + 0x01, 0xd2, 0xdf, 0x30, 0x01, 0xd3, 0xe0, 0x30, 0x01, 0xd4, 0xe1, 0x30, + 0x01, 0xd5, 0xe2, 0x30, 0x01, 0xd6, 0xe3, 0x30, 0x81, 0x11, 0xd7, 0xe5, + 0x30, 0x81, 0x08, 0xd8, 0xe7, 0x30, 0x01, 0xd9, 0xe8, 0x30, 0x41, 0xe1, + 0xe6, 0x30, 0x41, 0xe1, 0xe4, 0x30, 0x41, 0xd1, 0xd2, 0x30, 0x01, 0xd2, + 0xd3, 0x30, 0x01, 0xd3, 0xd4, 0x30, 0x01, 0xd4, 0xd5, 0x30, 0x01, 0xd5, + 0xd6, 0x30, 0x01, 0xd6, 0xd7, 0x30, 0x01, 0xd7, 0xd8, 0x30, 0x01, 0xd8, + 0xd9, 0x30, 0x81, 0x09, 0xd9, 0xdb, 0x30, 0xc1, 0x00, 0xe1, 0xdc, 0x30, + 0x41, 0xe1, 0xda, 0x30, 0x41, 0x90, 0xe2, 0x02, 0x91, 0xb7, 0x02, 0x92, + 0x87, 0x02, 0x93, 0xd2, 0x01, 0x94, 0x9d, 0x01, 0x95, 0x44, 0x96, 0x01, + 0xff, 0xd0, 0xc2, 0x30, 0x01, 0xd1, 0xc3, 0x30, 0x01, 0xd2, 0xc4, 0x30, + 0x01, 0xd3, 0xc5, 0x30, 0x01, 0xd4, 0xc6, 0x30, 0x01, 0xd5, 0xc7, 0x30, + 0x01, 0xd6, 0xc8, 0x30, 0x01, 0xd7, 0xc9, 0x30, 0xc1, 0x00, 0xe1, 0xca, + 0x30, 0x01, 0xe2, 0xcb, 0x30, 0x01, 0xe3, 0xcc, 0x30, 0x01, 0xe4, 0xcd, + 0x30, 0x01, 0xe5, 0xce, 0x30, 0x01, 0xe6, 0xcf, 0x30, 0x01, 0xe7, 0xd0, + 0x30, 0x01, 0xe8, 0xd1, 0x30, 0x41, 0xd0, 0xad, 0x30, 0x81, 0x2e, 0xd1, + 0xb7, 0x30, 0x01, 0xd2, 0xb8, 0x30, 0x81, 0x21, 0xd3, 0xba, 0x30, 0x01, + 0xd4, 0xbb, 0x30, 0x81, 0x14, 0xd5, 0xbd, 0x30, 0x01, 0xd6, 0xbe, 0x30, + 0x01, 0xd7, 0xbf, 0x30, 0x01, 0xd8, 0xc0, 0x30, 0x01, 0xd9, 0xc1, 0x30, + 0x41, 0xe1, 0xbc, 0x30, 0x41, 0xe1, 0xb9, 0x30, 0x41, 0xe1, 0xae, 0x30, + 0x01, 0xe2, 0xaf, 0x30, 0x01, 0xe3, 0xb0, 0x30, 0x01, 0xe4, 0xb1, 0x30, + 0x01, 0xe5, 0xb2, 0x30, 0x01, 0xe6, 0xb3, 0x30, 0x01, 0xe7, 0xb4, 0x30, + 0x01, 0xe8, 0xb5, 0x30, 0x01, 0xe9, 0xb6, 0x30, 0x41, 0xd0, 0xa1, 0x30, + 0x01, 0xd1, 0xa2, 0x30, 0x01, 0xd2, 0xa3, 0x30, 0x01, 0xd3, 0xa4, 0x30, + 0x01, 0xd4, 0xa5, 0x30, 0x01, 0xd5, 0xa6, 0x30, 0x01, 0xd6, 0xa7, 0x30, + 0x81, 0x11, 0xd7, 0xa9, 0x30, 0x01, 0xd8, 0xaa, 0x30, 0x81, 0x04, 0xd9, + 0xac, 0x30, 0x41, 0xe1, 0xab, 0x30, 0x41, 0xe1, 0xa8, 0x30, 0x41, 0xd0, + 0x95, 0x30, 0x01, 0xd1, 0x96, 0x30, 0x81, 0x25, 0xd2, 0x98, 0x30, 0x01, + 0xd3, 0x99, 0x30, 0x01, 0xd4, 0x9a, 0x30, 0x81, 0x14, 0xd5, 0x9c, 0x30, + 0x01, 0xd6, 0x9d, 0x30, 0x01, 0xd7, 0x9e, 0x30, 0x01, 0xd8, 0x9f, 0x30, + 0x01, 0xd9, 0xa0, 0x30, 0x41, 0xe1, 0x9b, 0x30, 0x41, 0xe1, 0x97, 0x30, + 0x41, 0xd0, 0x8a, 0x30, 0x01, 0xd1, 0x8b, 0x30, 0x01, 0xd2, 0x8c, 0x30, + 0x01, 0xd3, 0x8d, 0x30, 0x01, 0xd4, 0x8e, 0x30, 0x01, 0xd5, 0x8f, 0x30, + 0x01, 0xd6, 0x90, 0x30, 0x01, 0xd7, 0x91, 0x30, 0x81, 0x08, 0xd8, 0x93, + 0x30, 0x01, 0xd9, 0x94, 0x30, 0x41, 0xe1, 0x92, 0x30, 0x41, 0xd0, 0x80, + 0x30, 0x01, 0xd1, 0x81, 0x30, 0x01, 0xd2, 0x82, 0x30, 0x01, 0xd3, 0x83, + 0x30, 0x01, 0xd4, 0x84, 0x30, 0x01, 0xd5, 0x85, 0x30, 0x01, 0xd6, 0x86, + 0x30, 0x01, 0xd7, 0x87, 0x30, 0x01, 0xd8, 0x88, 0x30, 0x01, 0xd9, 0x89, + 0x30, 0x41, 0xd1, 0x76, 0x30, 0x01, 0xd2, 0x77, 0x30, 0x01, 0xd3, 0x78, + 0x30, 0x01, 0xd4, 0x79, 0x30, 0x01, 0xd5, 0x7a, 0x30, 0x01, 0xd6, 0x7b, + 0x30, 0x01, 0xd7, 0x7c, 0x30, 0x01, 0xd8, 0x7d, 0x30, 0x81, 0x04, 0xd9, + 0x7f, 0x30, 0x41, 0xe1, 0x7e, 0x30, 0x41, 0x90, 0x46, 0x91, 0x17, 0x92, + 0x01, 0xff, 0xd0, 0x71, 0x30, 0x01, 0xd1, 0x72, 0x30, 0x01, 0xd2, 0x73, + 0x30, 0x01, 0xd3, 0x74, 0x30, 0x01, 0xd4, 0x75, 0x30, 0x41, 0xd0, 0x66, + 0x30, 0x81, 0x24, 0xd1, 0x68, 0x30, 0x01, 0xd2, 0x69, 0x30, 0x01, 0xd3, + 0x6a, 0x30, 0x01, 0xd4, 0x6b, 0x30, 0x01, 0xd5, 0x6c, 0x30, 0x01, 0xd6, + 0x6d, 0x30, 0x01, 0xd7, 0x6e, 0x30, 0x01, 0xd8, 0x6f, 0x30, 0x01, 0xd9, + 0x70, 0x30, 0x41, 0xe1, 0x67, 0x30, 0x41, 0xd1, 0x5a, 0x30, 0x01, 0xd2, + 0x5b, 0x30, 0x81, 0x1c, 0xd3, 0x5f, 0x30, 0x01, 0xd4, 0x60, 0x30, 0x01, + 0xd5, 0x61, 0x30, 0x01, 0xd6, 0x62, 0x30, 0x01, 0xd7, 0x63, 0x30, 0x01, + 0xd8, 0x64, 0x30, 0x01, 0xd9, 0x65, 0x30, 0x41, 0xe1, 0x5c, 0x30, 0x01, + 0xe2, 0x5d, 0x30, 0x01, 0xe3, 0x5e, 0x30, 0x41, 0x02, 0x8a, 0xd8, 0x17, + 0x05, 0x9e, 0x3f, 0x01, 0xff, 0x49, 0x9d, 0x68, 0x3c, 0x34, 0x01, 0x47, + 0x06, 0x30, 0x37, 0x34, 0x01, 0x50, 0x96, 0x68, 0x3e, 0x34, 0x41, 0xd1, + 0x50, 0x30, 0x01, 0xd2, 0x51, 0x30, 0x01, 0xd3, 0x52, 0x30, 0x01, 0xd4, + 0x53, 0x30, 0x01, 0xd5, 0x54, 0x30, 0x81, 0x10, 0xd6, 0x56, 0x30, 0x01, + 0xd7, 0x57, 0x30, 0x01, 0xd8, 0x58, 0x30, 0x01, 0xd9, 0x59, 0x30, 0x41, + 0xe1, 0x55, 0x30, 0x41, 0x90, 0x97, 0x01, 0x02, 0xf0, 0xec, 0x01, 0xff, + 0x90, 0x63, 0x91, 0x39, 0x92, 0x0f, 0x93, 0x01, 0xff, 0xd0, 0x2c, 0x34, + 0x01, 0xd1, 0x2d, 0x34, 0x01, 0xd2, 0x2e, 0x34, 0x41, 0xd0, 0x22, 0x34, + 0x01, 0xd1, 0x23, 0x34, 0x01, 0xd2, 0x24, 0x34, 0x01, 0xd3, 0x25, 0x34, + 0x01, 0xd4, 0x26, 0x34, 0x01, 0xd5, 0x27, 0x34, 0x01, 0xd6, 0x28, 0x34, + 0x01, 0xd7, 0x29, 0x34, 0x01, 0xd8, 0x2a, 0x34, 0x01, 0xd9, 0x2b, 0x34, + 0x41, 0xd0, 0x18, 0x34, 0x01, 0xd1, 0x19, 0x34, 0x01, 0xd2, 0x1a, 0x34, + 0x01, 0xd3, 0x1b, 0x34, 0x01, 0xd4, 0x1c, 0x34, 0x01, 0xd5, 0x1d, 0x34, + 0x01, 0xd6, 0x1e, 0x34, 0x01, 0xd7, 0x1f, 0x34, 0x01, 0xd8, 0x20, 0x34, + 0x01, 0xd9, 0x21, 0x34, 0x41, 0xd1, 0x0d, 0x34, 0x01, 0xd2, 0x0e, 0x34, + 0x01, 0xd3, 0x0f, 0x34, 0x01, 0xd4, 0x10, 0x34, 0x01, 0xd5, 0x11, 0x34, + 0x01, 0xd6, 0x12, 0x34, 0x01, 0xd7, 0x13, 0x34, 0x81, 0x08, 0xd8, 0x16, + 0x34, 0x01, 0xd9, 0x17, 0x34, 0x41, 0xe1, 0x14, 0x34, 0x01, 0xe2, 0x15, + 0x34, 0x41, 0x90, 0xa8, 0x02, 0x91, 0xf3, 0x01, 0x92, 0xc8, 0x01, 0x93, + 0x98, 0x01, 0x94, 0x5a, 0x95, 0x30, 0x96, 0x06, 0x42, 0x17, 0xf4, 0x4f, + 0x30, 0x41, 0xd0, 0x45, 0x30, 0x01, 0xd1, 0x46, 0x30, 0x01, 0xd2, 0x47, + 0x30, 0x01, 0xd3, 0x48, 0x30, 0x01, 0xd4, 0x49, 0x30, 0x01, 0xd5, 0x4a, + 0x30, 0x01, 0xd6, 0x4b, 0x30, 0x01, 0xd7, 0x4c, 0x30, 0x01, 0xd8, 0x4d, + 0x30, 0x01, 0xd9, 0x4e, 0x30, 0x41, 0xd0, 0x3b, 0x30, 0x01, 0xd1, 0x3c, + 0x30, 0x01, 0xd2, 0x3d, 0x30, 0x01, 0xd3, 0x3e, 0x30, 0x01, 0xd4, 0x3f, + 0x30, 0x01, 0xd5, 0x40, 0x30, 0x01, 0xd6, 0x41, 0x30, 0x01, 0xd7, 0x42, + 0x30, 0x01, 0xd8, 0x43, 0x30, 0x01, 0xd9, 0x44, 0x30, 0x41, 0xd0, 0x2d, + 0x30, 0x81, 0x33, 0xd1, 0x2f, 0x30, 0x01, 0xd2, 0x30, 0x30, 0x81, 0x26, + 0xd3, 0x32, 0x30, 0x81, 0x1d, 0xd4, 0x34, 0x30, 0x01, 0xd5, 0x35, 0x30, + 0x81, 0x10, 0xd6, 0x37, 0x30, 0x01, 0xd7, 0x38, 0x30, 0x01, 0xd8, 0x39, + 0x30, 0x01, 0xd9, 0x3a, 0x30, 0x41, 0xe1, 0x36, 0x30, 0x41, 0xe1, 0x33, + 0x30, 0x41, 0xe1, 0x31, 0x30, 0x41, 0xe1, 0x2e, 0x30, 0x41, 0xd0, 0x22, + 0x30, 0x01, 0xd1, 0x23, 0x30, 0x01, 0xd2, 0x24, 0x30, 0x81, 0x1c, 0xd3, + 0x26, 0x30, 0x01, 0xd4, 0x27, 0x30, 0x01, 0xd5, 0x28, 0x30, 0x01, 0xd6, + 0x29, 0x30, 0x01, 0xd7, 0x2a, 0x30, 0x01, 0xd8, 0x2b, 0x30, 0x01, 0xd9, + 0x2c, 0x30, 0x41, 0xe1, 0x25, 0x30, 0x41, 0xd0, 0x18, 0x30, 0x01, 0xd1, + 0x19, 0x30, 0x01, 0xd2, 0x1a, 0x30, 0x01, 0xd3, 0x1b, 0x30, 0x01, 0xd4, + 0x1c, 0x30, 0x01, 0xd5, 0x1d, 0x30, 0x01, 0xd6, 0x1e, 0x30, 0x01, 0xd7, + 0x1f, 0x30, 0x01, 0xd8, 0x20, 0x30, 0x01, 0xd9, 0x21, 0x30, 0x41, 0xd0, + 0x0c, 0x30, 0x01, 0xd1, 0x0d, 0x30, 0x01, 0xd2, 0x0e, 0x30, 0x01, 0xd3, + 0x0f, 0x30, 0x01, 0xd4, 0x10, 0x30, 0x81, 0x19, 0xd5, 0x12, 0x30, 0x01, + 0xd6, 0x13, 0x30, 0x01, 0xd7, 0x14, 0x30, 0x81, 0x08, 0xd8, 0x16, 0x30, + 0x01, 0xd9, 0x17, 0x30, 0x41, 0xe1, 0x15, 0x30, 0x41, 0xe1, 0x11, 0x30, + 0x41, 0xd1, 0x00, 0x30, 0x01, 0xd2, 0x01, 0x30, 0x01, 0xd3, 0x02, 0x30, + 0x01, 0xd4, 0x03, 0x30, 0x01, 0xd5, 0x04, 0x30, 0x81, 0x19, 0xd6, 0x06, + 0x30, 0x81, 0x0c, 0xd7, 0x09, 0x30, 0x01, 0xd8, 0x0a, 0x30, 0x01, 0xd9, + 0x0b, 0x30, 0x41, 0xe1, 0x07, 0x30, 0x01, 0xe2, 0x08, 0x30, 0x41, 0xe1, + 0x05, 0x30, 0x41, 0x43, 0x06, 0x02, 0x85, 0xf9, 0x01, 0xf2, 0x42, 0xf4, + 0x81, 0x06, 0x4f, 0x47, 0x73, 0x71, 0x26, 0x40, 0x80, 0x2a, 0x42, 0x53, + 0x00, 0x41, 0x26, 0xc0, 0x00, 0x02, 0x86, 0x00, 0x01, 0xff, 0x05, 0xe8, + 0x3f, 0x06, 0x45, 0x9d, 0x16, 0xda, 0x23, 0x40, 0xa1, 0x06, 0x4d, 0xb8, + 0x82, 0x0d, 0xf3, 0x41, 0x47, 0x3f, 0xd3, 0x0e, 0xf3, 0x01, 0x4d, 0x9c, + 0x88, 0x0f, 0xf3, 0x41, 0x03, 0xf4, 0x01, 0x06, 0x50, 0xc6, 0x68, 0xbb, + 0xf9, 0x41, 0x45, 0x6c, 0xe8, 0x3d, 0xf3, 0x01, 0x44, 0xd5, 0xb3, 0x3e, + 0xf3, 0x41, 0xa1, 0xc0, 0x31, 0xa5, 0xf6, 0x23, 0xa9, 0xfd, 0x19, 0x4f, + 0x77, 0x70, 0xec, 0xf9, 0x01, 0xaf, 0xb0, 0x07, 0xb2, 0xe3, 0x06, 0xb5, + 0x06, 0x42, 0x1c, 0xf5, 0xc0, 0xf4, 0x41, 0x42, 0x36, 0x01, 0x86, 0xf9, + 0x01, 0x46, 0x0c, 0xde, 0x5f, 0xf9, 0x01, 0x07, 0xc0, 0xd4, 0x01, 0xff, + 0x06, 0x86, 0xd9, 0xe3, 0x04, 0x4b, 0x31, 0x9b, 0x9e, 0xbc, 0x01, 0x07, + 0xec, 0x05, 0x12, 0x5d, 0x6d, 0x16, 0x9f, 0xbc, 0x01, 0x51, 0xe7, 0x5d, + 0x9c, 0xbc, 0x01, 0x55, 0x63, 0x3e, 0x9d, 0xbc, 0x41, 0xe1, 0x41, 0xbc, + 0x81, 0xbb, 0x04, 0xe2, 0x07, 0xbc, 0x01, 0xe4, 0x08, 0xbc, 0x81, 0xa7, + 0x04, 0xe5, 0x47, 0xbc, 0x81, 0x99, 0x04, 0xe6, 0x04, 0xbc, 0x81, 0x8d, + 0x04, 0xe7, 0x0a, 0xbc, 0x81, 0x81, 0x04, 0xe8, 0x00, 0xbc, 0x81, 0xf7, + 0x03, 0xe9, 0x46, 0xbc, 0x81, 0xed, 0x03, 0xea, 0x1b, 0xbc, 0x81, 0xb6, + 0x03, 0xeb, 0x05, 0xbc, 0x81, 0xa0, 0x03, 0xec, 0x06, 0xbc, 0x81, 0x89, + 0x03, 0xed, 0x19, 0xbc, 0x81, 0xeb, 0x02, 0xee, 0x1a, 0xbc, 0x81, 0xb9, + 0x02, 0xef, 0x44, 0xbc, 0x81, 0xa1, 0x02, 0xf0, 0x02, 0xbc, 0x81, 0x88, + 0x02, 0xf2, 0x0b, 0xbc, 0x81, 0xeb, 0x01, 0xf3, 0x1c, 0xbc, 0x81, 0x68, + 0xf4, 0x03, 0xbc, 0x81, 0x53, 0xf5, 0x51, 0xbc, 0x81, 0x40, 0xf6, 0x09, + 0xbc, 0x81, 0x35, 0xf7, 0x38, 0xbc, 0x81, 0x0f, 0xf8, 0x01, 0xbc, 0x81, + 0x06, 0x42, 0x4d, 0x00, 0x50, 0xbc, 0x41, 0xf7, 0x53, 0xbc, 0x41, 0x42, + 0xc7, 0x00, 0x3a, 0xbc, 0x01, 0xe1, 0x5c, 0xbc, 0x01, 0x42, 0x12, 0x0b, + 0x5f, 0xbc, 0x01, 0xe8, 0x39, 0xbc, 0x01, 0xe9, 0x5e, 0xbc, 0x01, 0xef, + 0x5d, 0xbc, 0xc1, 0x00, 0xf7, 0x60, 0xbc, 0x41, 0x48, 0xf8, 0xc8, 0x6a, + 0xbc, 0x41, 0x42, 0xb3, 0x01, 0x54, 0xbc, 0x01, 0xe8, 0x57, 0xbc, 0x01, + 0xe9, 0x4a, 0xbc, 0x41, 0x80, 0x04, 0xe8, 0x11, 0xbc, 0x41, 0x43, 0xab, + 0x0c, 0x37, 0xbc, 0x01, 0xf3, 0x36, 0xbc, 0x41, 0x80, 0x37, 0x46, 0x98, + 0xdc, 0x49, 0xbc, 0x01, 0x05, 0x30, 0xe8, 0x01, 0xff, 0x42, 0x1a, 0x00, + 0x68, 0xbc, 0x01, 0x42, 0xe7, 0x4b, 0x12, 0xbc, 0x01, 0xa5, 0x12, 0xea, + 0x15, 0xbc, 0x01, 0xaf, 0x04, 0xf5, 0x58, 0xbc, 0x41, 0xee, 0x69, 0xbc, + 0x01, 0xf7, 0x42, 0xbc, 0x41, 0xe5, 0x4e, 0xbc, 0x01, 0xe8, 0x4c, 0xbc, + 0x01, 0xee, 0x67, 0xbc, 0x41, 0xea, 0x20, 0xbc, 0x81, 0x3a, 0xeb, 0x3f, + 0xbc, 0x81, 0x2f, 0xed, 0x3c, 0xbc, 0x01, 0xee, 0x3b, 0xbc, 0x01, 0xf0, + 0x34, 0xbc, 0x81, 0x1c, 0xf3, 0x2a, 0xbc, 0x01, 0xf4, 0x32, 0xbc, 0x81, + 0x0d, 0x48, 0x76, 0x3b, 0x25, 0xbc, 0xc1, 0x00, 0x46, 0x1f, 0x07, 0x26, + 0xbc, 0x41, 0x42, 0xc7, 0x00, 0x33, 0xbc, 0x41, 0x42, 0xc7, 0x00, 0x35, + 0xbc, 0x41, 0x42, 0xc7, 0x00, 0x40, 0xbc, 0x41, 0x42, 0x99, 0x00, 0x2e, + 0xbc, 0x41, 0x42, 0x99, 0x00, 0x10, 0xbc, 0x01, 0xe8, 0x18, 0xbc, 0x01, + 0x08, 0x30, 0xc9, 0x01, 0xff, 0xe9, 0x4d, 0xbc, 0x01, 0xf5, 0x56, 0xbc, + 0x41, 0x42, 0xb3, 0x01, 0x0c, 0xbc, 0x01, 0x07, 0xe5, 0xd0, 0x01, 0xff, + 0xed, 0x66, 0xbc, 0x01, 0xee, 0x65, 0xbc, 0x41, 0xe1, 0x43, 0xbc, 0x01, + 0x42, 0xfd, 0x28, 0x59, 0xbc, 0x01, 0xf5, 0x5b, 0xbc, 0x01, 0xf7, 0x5a, + 0xbc, 0x41, 0x80, 0x15, 0x05, 0x34, 0x4c, 0x01, 0xff, 0xe1, 0x64, 0xbc, + 0x01, 0xe9, 0x63, 0xbc, 0x01, 0xef, 0x62, 0xbc, 0x01, 0xf5, 0x61, 0xbc, + 0x41, 0xed, 0x1e, 0xbc, 0x81, 0x0a, 0xf3, 0x28, 0xbc, 0x01, 0x48, 0x76, + 0x3b, 0x22, 0xbc, 0x41, 0x42, 0x99, 0x00, 0x2c, 0xbc, 0x41, 0x80, 0x01, + 0xff, 0xee, 0x1d, 0xbc, 0x81, 0x0a, 0xf3, 0x27, 0xbc, 0x01, 0x48, 0x76, + 0x3b, 0x21, 0xbc, 0x41, 0x42, 0x99, 0x00, 0x2b, 0xbc, 0x41, 0xe8, 0x17, + 0xbc, 0x01, 0x04, 0xd8, 0x02, 0x01, 0xff, 0xe9, 0x4f, 0xbc, 0x01, 0xf5, + 0x55, 0xbc, 0x41, 0x80, 0x04, 0xeb, 0x14, 0xbc, 0x41, 0xed, 0x0f, 0xbc, + 0x01, 0x43, 0xab, 0x0c, 0x3d, 0xbc, 0x41, 0x80, 0x01, 0xff, 0xed, 0x1f, + 0xbc, 0x81, 0x23, 0xee, 0x30, 0xbc, 0x81, 0x18, 0xf3, 0x29, 0xbc, 0x81, + 0x0d, 0x48, 0x76, 0x3b, 0x23, 0xbc, 0xc1, 0x00, 0x52, 0xf7, 0x54, 0x24, + 0xbc, 0x41, 0x49, 0x75, 0x3b, 0x2f, 0xbc, 0x41, 0x42, 0x99, 0x00, 0x31, + 0xbc, 0x41, 0x42, 0x99, 0x00, 0x2d, 0xbc, 0x41, 0xe5, 0x48, 0xbc, 0x41, + 0xec, 0x16, 0xbc, 0x41, 0x44, 0xc5, 0xec, 0x3e, 0xbc, 0x41, 0x42, 0xb3, + 0x01, 0x0e, 0xbc, 0x41, 0xe5, 0x4b, 0xbc, 0x01, 0xf5, 0x52, 0xbc, 0x41, + 0x42, 0x99, 0x00, 0x0d, 0xbc, 0x01, 0xe8, 0x13, 0xbc, 0x41, 0x42, 0x3c, + 0x01, 0x45, 0xbc, 0x41, 0x09, 0x69, 0xb6, 0xad, 0x01, 0x05, 0x48, 0x0b, + 0x6a, 0xac, 0x16, 0x04, 0x26, 0xb5, 0x06, 0x57, 0xc5, 0x30, 0x72, 0xbc, + 0x41, 0x51, 0xcb, 0x30, 0x71, 0xbc, 0x01, 0x4f, 0x82, 0x74, 0x74, 0xbc, + 0x41, 0x55, 0x9d, 0x3a, 0x70, 0xbc, 0x01, 0x03, 0xd1, 0x00, 0x01, 0xff, + 0xa1, 0x39, 0x46, 0x12, 0x03, 0x95, 0xbc, 0x01, 0x43, 0x23, 0x0a, 0x94, + 0xbc, 0x01, 0x45, 0x15, 0x23, 0x92, 0xbc, 0x01, 0xac, 0x19, 0x4b, 0x92, + 0xa3, 0x91, 0xbc, 0x01, 0x48, 0x32, 0x00, 0x98, 0xbc, 0x81, 0x06, 0x44, + 0x82, 0x57, 0x97, 0xbc, 0x41, 0x47, 0xd5, 0x30, 0x73, 0xbc, 0x41, 0x43, + 0xee, 0x07, 0x96, 0xbc, 0x01, 0x49, 0x32, 0xbd, 0x93, 0xbc, 0x41, 0x44, + 0xfa, 0x38, 0x90, 0xbc, 0x01, 0x44, 0xcf, 0x00, 0x99, 0xbc, 0x41, 0x45, + 0xf9, 0x38, 0x80, 0xbc, 0x01, 0x46, 0x12, 0x03, 0x85, 0xbc, 0x01, 0x43, + 0x23, 0x0a, 0x84, 0xbc, 0x01, 0x45, 0x15, 0x23, 0x82, 0xbc, 0x01, 0xac, + 0x19, 0x4b, 0x92, 0xa3, 0x81, 0xbc, 0x01, 0x48, 0x32, 0x00, 0x88, 0xbc, + 0x81, 0x06, 0x44, 0x82, 0x57, 0x87, 0xbc, 0x41, 0x47, 0xd5, 0x30, 0x75, + 0xbc, 0x41, 0x43, 0xee, 0x07, 0x86, 0xbc, 0x01, 0x49, 0x32, 0xbd, 0x83, + 0xbc, 0x41, 0x46, 0x98, 0x9f, 0x7a, 0xbc, 0x01, 0x46, 0xaa, 0xdc, 0x7b, + 0xbc, 0x01, 0x54, 0x4c, 0x44, 0x77, 0xbc, 0x01, 0x46, 0xd6, 0x30, 0x76, + 0xbc, 0x01, 0x02, 0x12, 0x00, 0x01, 0xff, 0x42, 0x62, 0x01, 0x79, 0xbc, + 0x01, 0x45, 0x0c, 0xe9, 0x78, 0xbc, 0xc1, 0x00, 0x45, 0xab, 0x0e, 0x7c, + 0xbc, 0x41, 0xa1, 0x2f, 0x43, 0xed, 0x00, 0x57, 0xf4, 0x01, 0x4d, 0xa6, + 0x84, 0xda, 0x26, 0x00, 0xaf, 0x06, 0x52, 0x17, 0x56, 0x41, 0xf9, 0x41, + 0x4c, 0xe3, 0x91, 0x2a, 0xf4, 0x01, 0x4a, 0xb1, 0xae, 0x24, 0xf9, 0x01, + 0xb0, 0x01, 0xff, 0x49, 0x68, 0xb4, 0x78, 0xfa, 0x01, 0x43, 0xec, 0x05, + 0xa7, 0xf4, 0x41, 0x49, 0xb0, 0xa1, 0xaf, 0x20, 0x00, 0x5c, 0xc2, 0x17, + 0x9b, 0x27, 0x00, 0x43, 0x06, 0x14, 0x09, 0xf4, 0xc1, 0x00, 0x45, 0x0b, + 0x08, 0x32, 0xf4, 0x41, 0x52, 0x57, 0x4f, 0xaf, 0xf6, 0x01, 0x46, 0x32, + 0xc5, 0xce, 0xf5, 0x81, 0x9e, 0x12, 0x42, 0x3b, 0x01, 0xa4, 0xf9, 0x01, + 0x07, 0x07, 0x77, 0xc5, 0x11, 0xe7, 0x15, 0xf4, 0x81, 0xd1, 0x0e, 0xac, + 0xc2, 0x0e, 0x0a, 0xe9, 0xad, 0xd5, 0x0a, 0xae, 0xc6, 0x0a, 0x42, 0x0c, + 0x00, 0xaa, 0xf6, 0x01, 0xb4, 0xe4, 0x09, 0xb5, 0x89, 0x05, 0x4b, 0xc6, + 0xa4, 0x4a, 0xf5, 0x01, 0x02, 0xa7, 0x01, 0x01, 0xff, 0x80, 0xdc, 0x04, + 0x8d, 0xf1, 0x03, 0x04, 0xa9, 0x01, 0x01, 0xff, 0x08, 0x00, 0xc2, 0xcd, + 0x03, 0x02, 0x31, 0x01, 0x01, 0xff, 0xa1, 0xcd, 0x02, 0x06, 0x0c, 0x03, + 0xb5, 0x02, 0x50, 0x86, 0x61, 0x3f, 0xf8, 0x01, 0xa4, 0xa0, 0x02, 0x51, + 0xfc, 0x59, 0x37, 0xf8, 0x01, 0xa8, 0xc1, 0x01, 0x4d, 0x64, 0x87, 0xca, + 0x21, 0x00, 0x4f, 0x0c, 0x72, 0xf1, 0x27, 0x00, 0x46, 0xa4, 0xdf, 0x6f, + 0xf6, 0x01, 0xb3, 0xa0, 0x01, 0xb4, 0x13, 0x4b, 0x49, 0x10, 0xe9, 0x21, + 0x80, 0x06, 0x4c, 0xe1, 0x33, 0xaf, 0x21, 0x40, 0x5a, 0xc6, 0x1e, 0x97, + 0xf8, 0x41, 0x02, 0x0d, 0x00, 0x11, 0x02, 0x15, 0x02, 0x01, 0xff, 0x4d, + 0x85, 0x7f, 0xa1, 0x21, 0x00, 0x66, 0x1b, 0x06, 0xef, 0x2b, 0x40, 0x05, + 0x04, 0x02, 0x06, 0x49, 0x12, 0x72, 0x0b, 0x29, 0x40, 0x4a, 0xe0, 0x01, + 0x93, 0xf8, 0x01, 0x08, 0x09, 0x02, 0x01, 0xff, 0x45, 0xce, 0x00, 0x63, + 0x2b, 0x80, 0x12, 0x4c, 0xc3, 0x8d, 0x6d, 0x2b, 0x00, 0x4d, 0x64, 0x87, + 0x87, 0x2b, 0x00, 0x4c, 0xe1, 0x33, 0x4d, 0x2b, 0x40, 0x80, 0x01, 0xff, + 0x6a, 0x6c, 0x03, 0x83, 0x2b, 0x00, 0x46, 0xd1, 0x14, 0x73, 0x2b, 0x00, + 0x05, 0x51, 0x00, 0x01, 0xff, 0x4a, 0x53, 0xa8, 0x2b, 0xf8, 0x01, 0x58, + 0x26, 0x28, 0x7d, 0x2b, 0x00, 0x4b, 0x6b, 0x68, 0x2f, 0xf8, 0x01, 0x09, + 0xaf, 0xbb, 0x12, 0x4c, 0xef, 0x91, 0x27, 0xf8, 0x01, 0x4c, 0x5b, 0x92, + 0x23, 0xf8, 0x01, 0x50, 0x66, 0x68, 0x33, 0xf8, 0x41, 0x49, 0xea, 0x01, + 0xa0, 0x2b, 0x00, 0x4a, 0xb3, 0x02, 0xa1, 0x2b, 0x40, 0x4f, 0xe7, 0x66, + 0x53, 0xf8, 0x01, 0x4c, 0xe7, 0x93, 0x3b, 0xf8, 0x41, 0x11, 0x91, 0x05, + 0x11, 0x05, 0x6e, 0x15, 0x01, 0xff, 0x45, 0xce, 0x00, 0x47, 0xf8, 0x01, + 0x50, 0x86, 0x61, 0x43, 0xf8, 0x41, 0x04, 0xc3, 0x00, 0x19, 0x05, 0xc8, + 0x00, 0x01, 0xff, 0x80, 0x06, 0x45, 0xa9, 0x01, 0xc2, 0x21, 0x40, 0x48, + 0x57, 0xb4, 0x5d, 0x29, 0x00, 0x46, 0xd1, 0x14, 0x55, 0x29, 0x40, 0x80, + 0x06, 0x45, 0xa9, 0x01, 0xc3, 0x21, 0x40, 0x07, 0x92, 0x0a, 0x0c, 0x48, + 0x57, 0xb4, 0x61, 0x29, 0x00, 0x46, 0xd1, 0x14, 0x59, 0x29, 0x40, 0x61, + 0xc9, 0x0d, 0x65, 0x29, 0x00, 0x5f, 0x08, 0x12, 0x6f, 0x29, 0x40, 0x4b, + 0xc4, 0x8d, 0xe3, 0x21, 0x00, 0x4b, 0x30, 0x8e, 0xd3, 0x21, 0x40, 0x45, + 0xce, 0x00, 0x07, 0x2b, 0x80, 0x06, 0x53, 0xd3, 0x48, 0x8b, 0x2b, 0x40, + 0x47, 0xd0, 0x14, 0xb3, 0xf8, 0x41, 0x45, 0xf8, 0xe8, 0x14, 0x2e, 0x00, + 0x44, 0xcf, 0x00, 0x93, 0x21, 0xc0, 0x00, 0x80, 0x01, 0xff, 0x5a, 0x2e, + 0x1f, 0xb7, 0xfb, 0x01, 0x48, 0x57, 0xb4, 0xa7, 0x21, 0x00, 0x5a, 0xb4, + 0x20, 0xf5, 0x21, 0x00, 0x46, 0xd1, 0x14, 0x13, 0x29, 0x00, 0x05, 0x51, + 0x00, 0x01, 0xff, 0x50, 0xb6, 0x61, 0xb5, 0x21, 0x00, 0x4d, 0x36, 0x82, + 0xdf, 0x21, 0x00, 0x55, 0xd5, 0x01, 0x17, 0xf8, 0x01, 0x51, 0x47, 0x05, + 0x08, 0x29, 0x00, 0x58, 0x76, 0x29, 0x0b, 0xf8, 0x01, 0x59, 0xe3, 0x24, + 0x07, 0xf8, 0x01, 0x4c, 0xd3, 0x92, 0x9b, 0xf8, 0x01, 0x06, 0x5d, 0x07, + 0x11, 0x04, 0x49, 0x0c, 0x01, 0xff, 0x49, 0xea, 0x01, 0xb2, 0x21, 0x00, + 0x4a, 0xb3, 0x02, 0xb3, 0x21, 0x40, 0x55, 0xd5, 0x01, 0x13, 0xf8, 0x01, + 0x52, 0x2e, 0x06, 0x03, 0xf8, 0x41, 0x44, 0xac, 0x0e, 0x08, 0xf9, 0x81, + 0x0d, 0x4c, 0xc7, 0x92, 0x09, 0xf9, 0xc1, 0x00, 0x49, 0x75, 0x3b, 0x0b, + 0xf9, 0x41, 0x49, 0x75, 0x3b, 0x0a, 0xf9, 0x41, 0x17, 0x6f, 0x2e, 0x58, + 0x09, 0x9c, 0x01, 0x01, 0xff, 0xa1, 0x45, 0x4b, 0xaa, 0x9b, 0x7b, 0xcc, + 0x01, 0x44, 0xd5, 0xef, 0xfc, 0xcd, 0x01, 0xb2, 0x1f, 0xb3, 0x11, 0x0e, + 0x6b, 0x7d, 0x01, 0xff, 0x4f, 0x78, 0x6f, 0xe8, 0x29, 0x00, 0x50, 0xb6, + 0x66, 0xe9, 0x29, 0x40, 0x51, 0xe9, 0x5b, 0x3d, 0xf5, 0x01, 0x4b, 0x74, + 0x95, 0x04, 0xcc, 0x41, 0x49, 0x9a, 0xb5, 0x9a, 0xcc, 0x01, 0x4b, 0x90, + 0x06, 0x3b, 0xf5, 0x01, 0x44, 0xc5, 0xac, 0x68, 0xcc, 0x01, 0x4a, 0x9d, + 0xae, 0x59, 0xcc, 0x41, 0x47, 0x12, 0x34, 0xf8, 0xcd, 0x01, 0x4a, 0x03, + 0xb2, 0x63, 0xcc, 0x41, 0x4c, 0x7b, 0x8d, 0x77, 0xcc, 0x01, 0x4a, 0x3c, + 0x29, 0x73, 0xcc, 0x41, 0x49, 0xe1, 0x01, 0x04, 0x23, 0x00, 0x49, 0xfa, + 0xb8, 0x7f, 0x29, 0x00, 0x57, 0xae, 0x30, 0xf1, 0x22, 0x00, 0x44, 0xf5, + 0x38, 0xa4, 0x22, 0xc0, 0x00, 0x52, 0xb1, 0x4f, 0xf1, 0x2a, 0x40, 0x03, + 0x3e, 0x01, 0x06, 0x45, 0xa5, 0xe6, 0x69, 0xf3, 0x41, 0x80, 0xba, 0x01, + 0x8d, 0x17, 0x02, 0x06, 0x00, 0x01, 0xff, 0x4b, 0x13, 0x27, 0xa2, 0x26, + 0x00, 0x49, 0x61, 0x21, 0xa3, 0x26, 0x00, 0x46, 0x16, 0x08, 0xfc, 0x2b, + 0x40, 0x4e, 0x59, 0x77, 0xdf, 0x29, 0x00, 0x05, 0xed, 0x07, 0x66, 0x07, + 0x1a, 0x77, 0x01, 0xff, 0x08, 0xe4, 0x05, 0x36, 0x07, 0x0b, 0xd2, 0x17, + 0x4f, 0x68, 0x70, 0x40, 0x21, 0x00, 0x06, 0x5d, 0x07, 0x01, 0xff, 0x45, + 0x2c, 0x58, 0x3d, 0x21, 0x00, 0x42, 0xe6, 0x05, 0x3c, 0x21, 0x40, 0x49, + 0x02, 0xb7, 0x45, 0x21, 0x00, 0x06, 0x5d, 0x07, 0x01, 0xff, 0xe4, 0x46, + 0x21, 0x00, 0xe5, 0x47, 0x21, 0x00, 0xe9, 0x48, 0x21, 0x00, 0xea, 0x49, + 0x21, 0x40, 0xe3, 0x02, 0x21, 0x00, 0x45, 0x2c, 0x58, 0x3e, 0x21, 0x00, + 0xe8, 0x0d, 0x21, 0x00, 0xee, 0x15, 0x21, 0x00, 0xf0, 0x19, 0x21, 0x80, + 0x0c, 0xf1, 0x1a, 0x21, 0x00, 0xf2, 0x1d, 0x21, 0x00, 0xfa, 0x24, 0x21, + 0x40, 0xe9, 0x3f, 0x21, 0x40, 0x0c, 0x86, 0x28, 0x21, 0x08, 0x9a, 0x00, + 0x01, 0xff, 0x0c, 0x86, 0x28, 0x0c, 0x58, 0xe6, 0x28, 0xfa, 0x2a, 0x00, + 0x55, 0xaa, 0x3c, 0xf9, 0x2a, 0x40, 0x4c, 0x87, 0x00, 0x9c, 0x2a, 0x00, + 0x49, 0xec, 0x00, 0x9b, 0x2a, 0x40, 0x4c, 0x87, 0x00, 0x9a, 0x2a, 0x00, + 0x49, 0xec, 0x00, 0x99, 0x2a, 0x40, 0x4c, 0xfb, 0x8b, 0xdd, 0x02, 0x00, + 0xa3, 0xb1, 0x02, 0xa4, 0xa2, 0x02, 0x50, 0xad, 0x00, 0x3c, 0x20, 0x00, + 0xa8, 0x8d, 0x02, 0x04, 0x35, 0x08, 0xfc, 0x01, 0xac, 0xc8, 0x01, 0x07, + 0x7e, 0xd3, 0xb0, 0x01, 0x4e, 0x31, 0x7a, 0x17, 0x2e, 0x00, 0xb0, 0x8b, + 0x01, 0x4d, 0xa6, 0x34, 0x47, 0x20, 0x00, 0x5b, 0x50, 0x1d, 0x96, 0x29, + 0x00, 0xb3, 0x3e, 0xb5, 0x30, 0x09, 0x32, 0x00, 0x06, 0x4d, 0x7d, 0x8a, + 0x4c, 0xfe, 0x40, 0x43, 0x16, 0x00, 0xf8, 0x23, 0x80, 0x06, 0x44, 0xed, + 0x07, 0x16, 0x20, 0x40, 0x80, 0x01, 0xff, 0x07, 0x3b, 0x01, 0x06, 0x4e, + 0x50, 0x3a, 0xe3, 0x2a, 0x40, 0x4e, 0x50, 0x3a, 0xe5, 0x2a, 0x00, 0x4f, + 0x56, 0x01, 0xab, 0x22, 0x40, 0x44, 0x4e, 0x17, 0xd3, 0x22, 0x00, 0x46, + 0xea, 0xd6, 0xeb, 0x2a, 0x40, 0x4f, 0x1c, 0x71, 0xfd, 0x2a, 0x00, 0x06, + 0xbc, 0x24, 0x29, 0xb4, 0x1b, 0xb5, 0x01, 0xff, 0x44, 0x9b, 0x12, 0xd0, + 0x22, 0x00, 0x46, 0x32, 0xcb, 0xbc, 0x2a, 0x00, 0x46, 0x29, 0x36, 0xd1, + 0x22, 0x00, 0x4d, 0x3e, 0x7e, 0x44, 0x2e, 0x40, 0x4b, 0xb3, 0x98, 0x49, + 0x2e, 0x00, 0x4d, 0x85, 0x73, 0xec, 0x2a, 0x40, 0x4c, 0xa9, 0x0a, 0x4e, + 0x2a, 0x00, 0x45, 0x4d, 0x17, 0x4f, 0x2a, 0x40, 0x43, 0x59, 0x28, 0xfa, + 0x29, 0x00, 0xb2, 0x01, 0xff, 0x46, 0xea, 0xc9, 0xbb, 0x2a, 0x00, 0x43, + 0x29, 0x02, 0x33, 0x20, 0xc0, 0x00, 0x4f, 0x18, 0x05, 0x1e, 0x30, 0x40, + 0x4c, 0x87, 0x00, 0xa2, 0x2a, 0x00, 0x49, 0xec, 0x00, 0xa1, 0x2a, 0xc0, + 0x00, 0x4e, 0x2d, 0x5f, 0xa3, 0x2a, 0x40, 0x5c, 0xa6, 0x17, 0x95, 0x29, + 0x00, 0xaf, 0x01, 0xff, 0x06, 0x2d, 0x22, 0x18, 0xb7, 0x01, 0xff, 0x45, + 0xec, 0x07, 0x17, 0x20, 0x00, 0x8d, 0x01, 0xff, 0x50, 0x61, 0x13, 0x1e, + 0x20, 0x00, 0x59, 0x58, 0x13, 0x42, 0x2e, 0x40, 0x43, 0x1a, 0x00, 0x53, + 0x2a, 0x00, 0x42, 0x0c, 0x00, 0x54, 0x2a, 0x40, 0x44, 0x98, 0x26, 0x2c, + 0x22, 0x00, 0x48, 0xad, 0x0a, 0xd2, 0x22, 0x40, 0x5d, 0x54, 0x13, 0x1f, + 0x20, 0x00, 0x45, 0x97, 0x63, 0x40, 0x2e, 0x40, 0x45, 0xd7, 0xda, 0x21, + 0x20, 0x00, 0x48, 0xf1, 0x38, 0xea, 0x2a, 0x40, 0x07, 0xf6, 0x22, 0x0c, + 0x4a, 0xbb, 0xae, 0x74, 0x2a, 0x00, 0x49, 0x92, 0xc0, 0xbf, 0x27, 0x40, + 0x06, 0xef, 0x06, 0x06, 0x4a, 0x89, 0xae, 0xfe, 0x24, 0x40, 0x45, 0x12, + 0x0b, 0xfc, 0x24, 0x00, 0xa6, 0x29, 0x44, 0xcf, 0x2a, 0xfd, 0x24, 0x00, + 0x43, 0x0e, 0x0b, 0xf5, 0x24, 0x00, 0xb3, 0x0f, 0xb4, 0x01, 0xff, 0x44, + 0x25, 0x01, 0xf7, 0x24, 0x00, 0x42, 0x15, 0x02, 0xf6, 0x24, 0x40, 0x44, + 0xc9, 0x1d, 0xfb, 0x24, 0x00, 0x42, 0x01, 0x26, 0xfa, 0x24, 0x40, 0x43, + 0xd2, 0x05, 0xf9, 0x24, 0x00, 0x43, 0xf6, 0x06, 0xf8, 0x24, 0x40, 0x80, + 0x3f, 0x04, 0x77, 0x00, 0x01, 0xff, 0xa3, 0x2c, 0x45, 0xfa, 0x96, 0x99, + 0x29, 0x00, 0x49, 0x70, 0xbb, 0xe5, 0xfa, 0x01, 0x46, 0x9c, 0xde, 0x13, + 0x2e, 0x00, 0x54, 0x87, 0x0b, 0x16, 0x2e, 0x00, 0xb3, 0x06, 0x54, 0x40, + 0x46, 0x08, 0x2e, 0x40, 0x46, 0x50, 0x31, 0x4a, 0x2e, 0x00, 0x45, 0xd7, + 0x05, 0x1a, 0x2b, 0x40, 0x45, 0x13, 0x03, 0xcc, 0x25, 0x00, 0x44, 0x96, + 0x10, 0x5c, 0x20, 0x40, 0x45, 0x5c, 0x00, 0xd9, 0x02, 0x00, 0x45, 0x91, + 0x1f, 0x38, 0x22, 0x00, 0x48, 0x7e, 0x1d, 0xc5, 0x22, 0x00, 0x44, 0x58, + 0x28, 0x14, 0x22, 0x40, 0x46, 0x8a, 0xbc, 0xab, 0x20, 0x00, 0x43, 0x09, + 0x24, 0xcf, 0xfa, 0x41, 0x0a, 0x0b, 0x00, 0xf4, 0x01, 0x08, 0x32, 0x00, + 0x01, 0xff, 0x45, 0x43, 0x0e, 0x62, 0xf0, 0x01, 0x02, 0x1f, 0x40, 0x01, + 0xff, 0x03, 0x77, 0xf3, 0xc3, 0x01, 0x03, 0x83, 0xf3, 0xa2, 0x01, 0x03, + 0x95, 0xf3, 0x81, 0x01, 0x03, 0xa7, 0xf3, 0x61, 0x03, 0xb3, 0xf3, 0x41, + 0x03, 0xb9, 0xf3, 0x21, 0x03, 0xc5, 0xf3, 0x01, 0xff, 0xd0, 0x8d, 0xf0, + 0x01, 0xd1, 0x8e, 0xf0, 0x01, 0xd2, 0x8f, 0xf0, 0x01, 0xd3, 0x90, 0xf0, + 0x01, 0xd4, 0x91, 0xf0, 0x01, 0xd5, 0x92, 0xf0, 0x01, 0xd6, 0x93, 0xf0, + 0x41, 0xd0, 0x86, 0xf0, 0x01, 0xd1, 0x87, 0xf0, 0x01, 0xd2, 0x88, 0xf0, + 0x01, 0xd3, 0x89, 0xf0, 0x01, 0xd4, 0x8a, 0xf0, 0x01, 0xd5, 0x8b, 0xf0, + 0x01, 0xd6, 0x8c, 0xf0, 0x41, 0xd0, 0x7f, 0xf0, 0x01, 0xd1, 0x80, 0xf0, + 0x01, 0xd2, 0x81, 0xf0, 0x01, 0xd3, 0x82, 0xf0, 0x01, 0xd4, 0x83, 0xf0, + 0x01, 0xd5, 0x84, 0xf0, 0x01, 0xd6, 0x85, 0xf0, 0x41, 0xd0, 0x78, 0xf0, + 0x01, 0xd1, 0x79, 0xf0, 0x01, 0xd2, 0x7a, 0xf0, 0x01, 0xd3, 0x7b, 0xf0, + 0x01, 0xd4, 0x7c, 0xf0, 0x01, 0xd5, 0x7d, 0xf0, 0x01, 0xd6, 0x7e, 0xf0, + 0x41, 0xd0, 0x71, 0xf0, 0x01, 0xd1, 0x72, 0xf0, 0x01, 0xd2, 0x73, 0xf0, + 0x01, 0xd3, 0x74, 0xf0, 0x01, 0xd4, 0x75, 0xf0, 0x01, 0xd5, 0x76, 0xf0, + 0x01, 0xd6, 0x77, 0xf0, 0x41, 0xd0, 0x6a, 0xf0, 0x01, 0xd1, 0x6b, 0xf0, + 0x01, 0xd2, 0x6c, 0xf0, 0x01, 0xd3, 0x6d, 0xf0, 0x01, 0xd4, 0x6e, 0xf0, + 0x01, 0xd5, 0x6f, 0xf0, 0x01, 0xd6, 0x70, 0xf0, 0x41, 0xd0, 0x63, 0xf0, + 0x01, 0xd1, 0x64, 0xf0, 0x01, 0xd2, 0x65, 0xf0, 0x01, 0xd3, 0x66, 0xf0, + 0x01, 0xd4, 0x67, 0xf0, 0x01, 0xd5, 0x68, 0xf0, 0x01, 0xd6, 0x69, 0xf0, + 0x41, 0x45, 0x43, 0x0e, 0x30, 0xf0, 0x01, 0x02, 0x1f, 0x40, 0x01, 0xff, + 0x03, 0x77, 0xf3, 0xc3, 0x01, 0x03, 0x83, 0xf3, 0xa2, 0x01, 0x03, 0x95, + 0xf3, 0x81, 0x01, 0x03, 0xa7, 0xf3, 0x61, 0x03, 0xb3, 0xf3, 0x41, 0x03, + 0xb9, 0xf3, 0x21, 0x03, 0xc5, 0xf3, 0x01, 0xff, 0xd0, 0x5b, 0xf0, 0x01, + 0xd1, 0x5c, 0xf0, 0x01, 0xd2, 0x5d, 0xf0, 0x01, 0xd3, 0x5e, 0xf0, 0x01, + 0xd4, 0x5f, 0xf0, 0x01, 0xd5, 0x60, 0xf0, 0x01, 0xd6, 0x61, 0xf0, 0x41, + 0xd0, 0x54, 0xf0, 0x01, 0xd1, 0x55, 0xf0, 0x01, 0xd2, 0x56, 0xf0, 0x01, + 0xd3, 0x57, 0xf0, 0x01, 0xd4, 0x58, 0xf0, 0x01, 0xd5, 0x59, 0xf0, 0x01, + 0xd6, 0x5a, 0xf0, 0x41, 0xd0, 0x4d, 0xf0, 0x01, 0xd1, 0x4e, 0xf0, 0x01, + 0xd2, 0x4f, 0xf0, 0x01, 0xd3, 0x50, 0xf0, 0x01, 0xd4, 0x51, 0xf0, 0x01, + 0xd5, 0x52, 0xf0, 0x01, 0xd6, 0x53, 0xf0, 0x41, 0xd0, 0x46, 0xf0, 0x01, + 0xd1, 0x47, 0xf0, 0x01, 0xd2, 0x48, 0xf0, 0x01, 0xd3, 0x49, 0xf0, 0x01, + 0xd4, 0x4a, 0xf0, 0x01, 0xd5, 0x4b, 0xf0, 0x01, 0xd6, 0x4c, 0xf0, 0x41, + 0xd0, 0x3f, 0xf0, 0x01, 0xd1, 0x40, 0xf0, 0x01, 0xd2, 0x41, 0xf0, 0x01, + 0xd3, 0x42, 0xf0, 0x01, 0xd4, 0x43, 0xf0, 0x01, 0xd5, 0x44, 0xf0, 0x01, + 0xd6, 0x45, 0xf0, 0x41, 0xd0, 0x38, 0xf0, 0x01, 0xd1, 0x39, 0xf0, 0x01, + 0xd2, 0x3a, 0xf0, 0x01, 0xd3, 0x3b, 0xf0, 0x01, 0xd4, 0x3c, 0xf0, 0x01, + 0xd5, 0x3d, 0xf0, 0x01, 0xd6, 0x3e, 0xf0, 0x41, 0xd0, 0x31, 0xf0, 0x01, + 0xd1, 0x32, 0xf0, 0x01, 0xd2, 0x33, 0xf0, 0x01, 0xd3, 0x34, 0xf0, 0x01, + 0xd4, 0x35, 0xf0, 0x01, 0xd5, 0x36, 0xf0, 0x01, 0xd6, 0x37, 0xf0, 0x41, + 0x48, 0x2d, 0x0e, 0x24, 0x00, 0x00, 0x44, 0x11, 0xf2, 0x2c, 0xf4, 0x41, + 0x45, 0x0b, 0x08, 0x36, 0xf4, 0x01, 0x03, 0x71, 0x00, 0x01, 0xff, 0x51, + 0xdc, 0x57, 0x3b, 0x18, 0x01, 0x07, 0xec, 0x05, 0x59, 0x05, 0x5a, 0x03, + 0x38, 0x0b, 0x40, 0x77, 0x01, 0xff, 0xa1, 0x25, 0xe5, 0x33, 0x18, 0x01, + 0xe9, 0x2d, 0x18, 0x81, 0x18, 0xef, 0x35, 0x18, 0x01, 0xf5, 0x2f, 0x18, + 0x81, 0x0b, 0x49, 0x22, 0xc1, 0x31, 0x18, 0xc1, 0x00, 0xf2, 0x32, 0x18, + 0x41, 0xf5, 0x30, 0x18, 0x41, 0xe9, 0x2e, 0x18, 0x41, 0xe1, 0x2c, 0x18, + 0x01, 0xe9, 0x34, 0x18, 0x01, 0xf5, 0x36, 0x18, 0x41, 0x48, 0x3c, 0x16, + 0x37, 0x18, 0x01, 0x45, 0x3f, 0x3f, 0x3a, 0x18, 0x01, 0x02, 0x02, 0x00, + 0x01, 0xff, 0x44, 0xe5, 0x23, 0x39, 0x18, 0x01, 0x45, 0xec, 0x4b, 0x38, + 0x18, 0x41, 0xe1, 0x00, 0x18, 0x81, 0xee, 0x01, 0xa2, 0xe1, 0x01, 0xa3, + 0xd4, 0x01, 0xa4, 0xbb, 0x01, 0xe5, 0x06, 0x18, 0x01, 0xa7, 0xaa, 0x01, + 0x42, 0x22, 0x00, 0x2a, 0x18, 0x01, 0xe9, 0x02, 0x18, 0x81, 0x9a, 0x01, + 0xaa, 0x8d, 0x01, 0xab, 0x80, 0x01, 0x42, 0x74, 0x00, 0x25, 0x18, 0x01, + 0x42, 0x6c, 0x00, 0x22, 0x18, 0x01, 0xae, 0x5c, 0xef, 0x08, 0x18, 0x01, + 0xb0, 0x4c, 0xb2, 0x40, 0xb3, 0x2e, 0xb4, 0x15, 0xf5, 0x04, 0x18, 0x81, + 0x0c, 0x42, 0xf5, 0x0a, 0x26, 0x18, 0x01, 0x42, 0xbc, 0x22, 0x23, 0x18, + 0x41, 0xf5, 0x05, 0x18, 0x41, 0xe1, 0x19, 0x18, 0x01, 0x42, 0x22, 0x00, + 0x1a, 0x18, 0x01, 0xb4, 0x01, 0xff, 0xe1, 0x14, 0x18, 0x01, 0x42, 0x22, + 0x00, 0x15, 0x18, 0x41, 0xe1, 0x29, 0x18, 0x01, 0x42, 0x22, 0x00, 0x27, + 0x18, 0x01, 0x42, 0x40, 0x06, 0x28, 0x18, 0x41, 0xe1, 0x24, 0x18, 0x01, + 0x42, 0x71, 0x00, 0x2b, 0x18, 0x41, 0xe1, 0x1e, 0x18, 0x01, 0x42, 0x22, + 0x00, 0x1f, 0x18, 0x41, 0xe1, 0x1d, 0x18, 0x01, 0x42, 0x24, 0x02, 0x0e, + 0x18, 0x01, 0x42, 0x2a, 0x05, 0x18, 0x18, 0x01, 0x42, 0xbc, 0x22, 0x13, + 0x18, 0x41, 0xe1, 0x0a, 0x18, 0x01, 0x42, 0x22, 0x00, 0x0b, 0x18, 0x41, + 0xe1, 0x11, 0x18, 0x01, 0x42, 0x22, 0x00, 0x12, 0x18, 0x41, 0xe9, 0x03, + 0x18, 0x41, 0xe1, 0x0c, 0x18, 0x01, 0x42, 0x22, 0x00, 0x0d, 0x18, 0x41, + 0xe1, 0x1b, 0x18, 0x01, 0xa4, 0x06, 0x42, 0x22, 0x00, 0x1c, 0x18, 0x41, + 0xe1, 0x16, 0x18, 0x01, 0x42, 0x22, 0x00, 0x17, 0x18, 0x41, 0xe1, 0x0f, + 0x18, 0x01, 0x42, 0x22, 0x00, 0x10, 0x18, 0x41, 0xe1, 0x20, 0x18, 0x01, + 0x42, 0x22, 0x00, 0x21, 0x18, 0x41, 0xe1, 0x01, 0x18, 0x01, 0xe9, 0x07, + 0x18, 0x01, 0xf5, 0x09, 0x18, 0x41, 0x0b, 0x4a, 0x9a, 0x37, 0x46, 0x00, + 0x00, 0x24, 0x22, 0x80, 0x2a, 0x45, 0x78, 0xe6, 0xae, 0x22, 0x00, 0x02, + 0xdf, 0x0c, 0x0d, 0x47, 0x30, 0xcb, 0x81, 0x22, 0xc0, 0x00, 0x49, 0xf2, + 0x28, 0xe1, 0x22, 0x40, 0x45, 0x57, 0x36, 0x80, 0x22, 0x80, 0x06, 0x43, + 0x5e, 0x00, 0xac, 0x22, 0x40, 0x49, 0xf2, 0x28, 0xe0, 0x22, 0x40, 0x5d, + 0xd7, 0x14, 0xee, 0x2a, 0x40, 0x46, 0xb4, 0x05, 0x0c, 0x22, 0x00, 0x4f, + 0xe9, 0x53, 0xeb, 0x22, 0xc0, 0x00, 0x49, 0xf2, 0x28, 0xed, 0x22, 0x40, + 0x06, 0x50, 0x00, 0x01, 0xff, 0x47, 0x04, 0x8b, 0xbb, 0xf5, 0x01, 0x44, + 0x7c, 0x30, 0xb9, 0xf5, 0xc1, 0x00, 0x4c, 0xff, 0x8a, 0xba, 0xf5, 0x41, + 0xa1, 0xaa, 0x09, 0xa5, 0x85, 0x09, 0x50, 0x36, 0x63, 0x4f, 0x22, 0x00, + 0xa7, 0xc7, 0x06, 0x4e, 0xdd, 0x79, 0x31, 0x23, 0x00, 0x06, 0x42, 0xde, + 0xce, 0x04, 0x05, 0x89, 0x0d, 0xbd, 0x04, 0xb3, 0x8f, 0x04, 0x48, 0xd0, + 0xcb, 0x03, 0x30, 0x00, 0xb6, 0x17, 0x47, 0xc2, 0xd7, 0x94, 0xfa, 0x01, + 0x04, 0x6d, 0xf3, 0x01, 0xff, 0x44, 0x0c, 0x08, 0x35, 0xf6, 0x01, 0x46, + 0x16, 0x08, 0xab, 0xf4, 0x41, 0x09, 0x97, 0xb8, 0x2d, 0xa9, 0x06, 0x4b, + 0xe8, 0xa0, 0xae, 0x26, 0x40, 0x43, 0xf6, 0x27, 0x23, 0x22, 0x00, 0x47, + 0x85, 0xd3, 0x3f, 0xf9, 0x01, 0x05, 0x8b, 0x30, 0x01, 0xff, 0xb3, 0x06, + 0x45, 0x28, 0x02, 0xc7, 0x22, 0x40, 0x43, 0x5b, 0x03, 0xf7, 0x00, 0x00, + 0x44, 0x49, 0x0e, 0x15, 0x22, 0x40, 0xa4, 0xf0, 0x02, 0x50, 0xb6, 0x62, + 0x46, 0x19, 0x01, 0x4a, 0x39, 0x9c, 0x45, 0x19, 0x01, 0x4a, 0xeb, 0xab, + 0x41, 0x19, 0x01, 0x07, 0xec, 0x05, 0x64, 0x07, 0x4c, 0x33, 0x54, 0x53, + 0x2a, 0x4c, 0x3f, 0x19, 0x01, 0x05, 0x5a, 0x03, 0x32, 0xb6, 0x01, 0xff, + 0x45, 0xe4, 0x23, 0x3e, 0x19, 0x01, 0x0a, 0x41, 0x77, 0x01, 0xff, 0xa1, + 0x1a, 0xe5, 0x35, 0x19, 0x01, 0xe9, 0x31, 0x19, 0x81, 0x0d, 0xef, 0x38, + 0x19, 0x01, 0xf5, 0x33, 0x19, 0xc1, 0x00, 0xf5, 0x34, 0x19, 0x41, 0xe9, + 0x32, 0x19, 0x41, 0xe1, 0x30, 0x19, 0x01, 0xe9, 0x37, 0x19, 0x41, 0x48, + 0x3c, 0x16, 0x3b, 0x19, 0x01, 0x4b, 0xd7, 0x23, 0x3c, 0x19, 0x01, 0x47, + 0x71, 0xd1, 0x3d, 0x19, 0x01, 0x45, 0x3f, 0x3f, 0x43, 0x19, 0x41, 0x42, + 0x71, 0x00, 0x42, 0x19, 0x01, 0x42, 0xbc, 0x22, 0x40, 0x19, 0x41, 0xe1, + 0x00, 0x19, 0x81, 0xec, 0x01, 0xa2, 0xdf, 0x01, 0xa3, 0xd2, 0x01, 0xa4, + 0xb9, 0x01, 0xe5, 0x06, 0x19, 0x01, 0xa7, 0xa8, 0x01, 0x42, 0x22, 0x00, + 0x2d, 0x19, 0x01, 0xe9, 0x02, 0x19, 0x81, 0x98, 0x01, 0x42, 0x56, 0x19, + 0x13, 0x19, 0x01, 0xab, 0x85, 0x01, 0xac, 0x79, 0x42, 0x6c, 0x00, 0x24, + 0x19, 0x01, 0xae, 0x5b, 0xef, 0x09, 0x19, 0x01, 0xb0, 0x4b, 0x42, 0x71, + 0x00, 0x27, 0x19, 0x01, 0xb3, 0x33, 0xb4, 0x21, 0xf5, 0x04, 0x19, 0x81, + 0x18, 0x42, 0xf5, 0x0a, 0x29, 0x19, 0x01, 0xb9, 0x06, 0x42, 0x59, 0x00, + 0x2f, 0x19, 0x41, 0xe1, 0x25, 0x19, 0x01, 0x42, 0xbc, 0x22, 0x26, 0x19, + 0x41, 0xf5, 0x05, 0x19, 0x41, 0xe1, 0x1b, 0x19, 0x01, 0x42, 0x22, 0x00, + 0x1c, 0x19, 0x01, 0x42, 0x12, 0x00, 0x16, 0x19, 0x41, 0xe1, 0x2c, 0x19, + 0x01, 0x42, 0x22, 0x00, 0x2a, 0x19, 0x01, 0x42, 0x40, 0x06, 0x2b, 0x19, + 0x41, 0xe1, 0x20, 0x19, 0x01, 0x42, 0x22, 0x00, 0x21, 0x19, 0x41, 0xe1, + 0x1f, 0x19, 0x01, 0x42, 0x24, 0x02, 0x10, 0x19, 0x01, 0x42, 0x2a, 0x05, + 0x1a, 0x19, 0x01, 0x42, 0xbc, 0x22, 0x15, 0x19, 0x41, 0xe1, 0x28, 0x19, + 0x01, 0x42, 0x74, 0x00, 0x2e, 0x19, 0x41, 0xe1, 0x0c, 0x19, 0x01, 0x42, + 0x22, 0x00, 0x0d, 0x19, 0x41, 0xe9, 0x03, 0x19, 0x41, 0xe1, 0x0e, 0x19, + 0x01, 0x42, 0x22, 0x00, 0x0f, 0x19, 0x41, 0xe1, 0x1d, 0x19, 0x01, 0xa4, + 0x06, 0x42, 0x22, 0x00, 0x1e, 0x19, 0x41, 0xe1, 0x18, 0x19, 0x01, 0x42, + 0x22, 0x00, 0x19, 0x19, 0x41, 0xe1, 0x11, 0x19, 0x01, 0x42, 0x22, 0x00, + 0x12, 0x19, 0x41, 0xe1, 0x22, 0x19, 0x01, 0x42, 0x22, 0x00, 0x23, 0x19, + 0x41, 0xe1, 0x01, 0x19, 0x41, 0x05, 0xf0, 0x06, 0x06, 0x4b, 0x09, 0xa1, + 0x44, 0x19, 0x41, 0x45, 0x12, 0x0b, 0x58, 0x19, 0x01, 0xa6, 0x2e, 0x44, + 0xcf, 0x2a, 0x59, 0x19, 0x01, 0x43, 0x0e, 0x0b, 0x51, 0x19, 0x01, 0xb3, + 0x14, 0xb4, 0x06, 0x44, 0x43, 0x1e, 0x50, 0x19, 0x41, 0x44, 0x25, 0x01, + 0x53, 0x19, 0x01, 0x42, 0x15, 0x02, 0x52, 0x19, 0x41, 0x44, 0xc9, 0x1d, + 0x57, 0x19, 0x01, 0x42, 0x01, 0x26, 0x56, 0x19, 0x41, 0x43, 0xd2, 0x05, + 0x55, 0x19, 0x01, 0x43, 0xf6, 0x06, 0x54, 0x19, 0x41, 0xa1, 0x12, 0x5b, + 0xc8, 0x1a, 0x82, 0x23, 0x00, 0x4b, 0x9c, 0x9c, 0x78, 0xf9, 0x01, 0x4b, + 0xa8, 0xa3, 0xea, 0xfa, 0x41, 0x48, 0x30, 0xc4, 0xcd, 0x26, 0x00, 0x09, + 0x25, 0xbe, 0x01, 0xff, 0x51, 0xdb, 0x58, 0x25, 0xf6, 0x01, 0x44, 0x0c, + 0x08, 0x1e, 0xf6, 0x41, 0x57, 0x13, 0x2e, 0x93, 0x23, 0x00, 0x43, 0xae, + 0x02, 0xaf, 0xf3, 0x41, 0x13, 0xc0, 0x48, 0x9d, 0x01, 0x11, 0xa4, 0x5c, + 0x01, 0xff, 0x06, 0xef, 0x06, 0x57, 0x4a, 0x89, 0xae, 0x7f, 0x27, 0x00, + 0x0b, 0xc8, 0x48, 0x01, 0xff, 0x06, 0xef, 0x06, 0x06, 0x4a, 0x89, 0xae, + 0x93, 0x27, 0x40, 0x45, 0x12, 0x0b, 0x91, 0x27, 0x00, 0xa6, 0x2e, 0x44, + 0xcf, 0x2a, 0x92, 0x27, 0x00, 0x43, 0x0e, 0x0b, 0x8a, 0x27, 0x00, 0xb3, + 0x14, 0xb4, 0x06, 0x44, 0x43, 0x1e, 0x0c, 0xf1, 0x41, 0x44, 0x25, 0x01, + 0x8c, 0x27, 0x00, 0x42, 0x15, 0x02, 0x8b, 0x27, 0x40, 0x44, 0xc9, 0x1d, + 0x90, 0x27, 0x00, 0x42, 0x01, 0x26, 0x8f, 0x27, 0x40, 0x43, 0xd2, 0x05, + 0x8e, 0x27, 0x00, 0x43, 0xf6, 0x06, 0x8d, 0x27, 0x40, 0x45, 0x12, 0x0b, + 0x7d, 0x27, 0x00, 0xa6, 0x29, 0x44, 0xcf, 0x2a, 0x7e, 0x27, 0x00, 0x43, + 0x0e, 0x0b, 0x76, 0x27, 0x00, 0xb3, 0x0f, 0xb4, 0x01, 0xff, 0x44, 0x25, + 0x01, 0x78, 0x27, 0x00, 0x42, 0x15, 0x02, 0x77, 0x27, 0x40, 0x44, 0xc9, + 0x1d, 0x7c, 0x27, 0x00, 0x42, 0x01, 0x26, 0x7b, 0x27, 0x40, 0x43, 0xd2, + 0x05, 0x7a, 0x27, 0x00, 0x43, 0xf6, 0x06, 0x79, 0x27, 0x40, 0x06, 0xef, + 0x06, 0x06, 0x4a, 0x89, 0xae, 0x89, 0x27, 0x40, 0x45, 0x12, 0x0b, 0x87, + 0x27, 0x00, 0xa6, 0x2e, 0x44, 0xcf, 0x2a, 0x88, 0x27, 0x00, 0x43, 0x0e, + 0x0b, 0x80, 0x27, 0x00, 0xb3, 0x14, 0xb4, 0x06, 0x44, 0x43, 0x1e, 0x0b, + 0xf1, 0x41, 0x44, 0x25, 0x01, 0x82, 0x27, 0x00, 0x42, 0x15, 0x02, 0x81, + 0x27, 0x40, 0x44, 0xc9, 0x1d, 0x86, 0x27, 0x00, 0x42, 0x01, 0x26, 0x85, + 0x27, 0x40, 0x43, 0xd2, 0x05, 0x84, 0x27, 0x00, 0x43, 0xf6, 0x06, 0x83, + 0x27, 0x40, 0x03, 0xf2, 0x06, 0x4c, 0x08, 0x07, 0x96, 0x01, 0xff, 0x45, + 0x52, 0x72, 0x05, 0xd3, 0x81, 0x2f, 0x09, 0x39, 0xb9, 0x1f, 0xa8, 0x11, + 0x08, 0xb8, 0xc7, 0x01, 0xff, 0x43, 0x1c, 0x01, 0x8e, 0x26, 0x00, 0x42, + 0x9e, 0x01, 0x8d, 0x26, 0x40, 0x4d, 0x50, 0x82, 0x01, 0xd3, 0x01, 0x4a, + 0xa3, 0xb2, 0x02, 0xd3, 0x41, 0x43, 0x1c, 0x01, 0x8c, 0x26, 0x00, 0x42, + 0x9e, 0x01, 0x8f, 0x26, 0x40, 0x04, 0x7a, 0x8e, 0x01, 0xff, 0x45, 0x8a, + 0x7b, 0x03, 0xd3, 0x01, 0x44, 0x4d, 0xa4, 0x04, 0xd3, 0x41, 0x45, 0x12, + 0x0b, 0x38, 0x00, 0x80, 0xce, 0x01, 0xa6, 0x9f, 0x01, 0x44, 0xcf, 0x2a, + 0x39, 0x00, 0x80, 0x88, 0x01, 0x43, 0x0e, 0x0b, 0x31, 0x00, 0x80, 0x72, + 0xb3, 0x44, 0xb4, 0x16, 0x44, 0x43, 0x1e, 0x30, 0x00, 0xc0, 0x00, 0x80, + 0x01, 0xff, 0x45, 0x13, 0x05, 0x01, 0xf1, 0x01, 0x49, 0x81, 0x16, 0x00, + 0xf1, 0x41, 0x44, 0x25, 0x01, 0x33, 0x00, 0x80, 0x16, 0x42, 0x15, 0x02, + 0x32, 0x00, 0xc0, 0x00, 0x80, 0x01, 0xff, 0x45, 0x13, 0x05, 0x03, 0xf1, + 0x01, 0x49, 0x81, 0x16, 0x89, 0x24, 0x40, 0x80, 0x01, 0xff, 0x45, 0x13, + 0x05, 0x04, 0xf1, 0x01, 0x49, 0x81, 0x16, 0x8a, 0x24, 0x40, 0x44, 0xc9, + 0x1d, 0x37, 0x00, 0x80, 0x16, 0x42, 0x01, 0x26, 0x36, 0x00, 0xc0, 0x00, + 0x80, 0x01, 0xff, 0x45, 0x13, 0x05, 0x07, 0xf1, 0x01, 0x49, 0x81, 0x16, + 0x8d, 0x24, 0x40, 0x80, 0x01, 0xff, 0x45, 0x13, 0x05, 0x08, 0xf1, 0x01, + 0x49, 0x81, 0x16, 0x8e, 0x24, 0x40, 0x80, 0x01, 0xff, 0x45, 0x13, 0x05, + 0x02, 0xf1, 0x01, 0x49, 0x81, 0x16, 0x88, 0x24, 0x40, 0x80, 0x01, 0xff, + 0x45, 0x13, 0x05, 0x0a, 0xf1, 0x01, 0x49, 0x81, 0x16, 0x90, 0x24, 0x40, + 0x43, 0xd2, 0x05, 0x35, 0x00, 0x80, 0x16, 0x43, 0xf6, 0x06, 0x34, 0x00, + 0xc0, 0x00, 0x80, 0x01, 0xff, 0x45, 0x13, 0x05, 0x05, 0xf1, 0x01, 0x49, + 0x81, 0x16, 0x8b, 0x24, 0x40, 0x80, 0x01, 0xff, 0x45, 0x13, 0x05, 0x06, + 0xf1, 0x01, 0x49, 0x81, 0x16, 0x8c, 0x24, 0x40, 0x80, 0x01, 0xff, 0x45, + 0x13, 0x05, 0x09, 0xf1, 0x01, 0x49, 0x81, 0x16, 0x8f, 0x24, 0x40, 0x06, + 0x12, 0xd8, 0x06, 0x4e, 0xf1, 0x7b, 0xf2, 0xf6, 0x41, 0xd1, 0x80, 0x26, + 0x00, 0xd2, 0x81, 0x26, 0x00, 0xd3, 0x82, 0x26, 0x00, 0xd4, 0x83, 0x26, + 0x00, 0xd5, 0x84, 0x26, 0x00, 0xd6, 0x85, 0x26, 0x40, 0x46, 0xba, 0x23, + 0xa8, 0x00, 0x00, 0x55, 0x89, 0x21, 0x43, 0xcc, 0x01, 0xad, 0x01, 0xff, + 0x49, 0xa9, 0xb8, 0x00, 0x23, 0x00, 0x04, 0x62, 0x57, 0x01, 0xff, 0x48, + 0x7e, 0x1d, 0xc4, 0x22, 0x00, 0x57, 0x21, 0x31, 0xa0, 0xf4, 0x01, 0x46, + 0x64, 0xe0, 0x9c, 0xf7, 0x01, 0x05, 0x51, 0x00, 0x01, 0xff, 0x51, 0xa8, + 0x58, 0x19, 0x2b, 0x00, 0x4f, 0x78, 0x6f, 0x16, 0x2b, 0x00, 0x50, 0xb6, + 0x66, 0x17, 0x2b, 0x00, 0x4e, 0x33, 0x7d, 0x18, 0x2b, 0x40, 0x49, 0xb5, + 0xb5, 0xcf, 0xf9, 0x01, 0xa3, 0x9f, 0x0d, 0x42, 0x33, 0x00, 0x8c, 0xf9, + 0x01, 0x05, 0xf1, 0xaa, 0x82, 0x0d, 0xac, 0xed, 0x0c, 0xae, 0xd8, 0x0b, + 0x4e, 0x03, 0x7b, 0xec, 0xf3, 0x01, 0x55, 0xa6, 0x3d, 0xda, 0xf3, 0x01, + 0xb3, 0xe5, 0x07, 0xb6, 0x01, 0xff, 0x08, 0xd2, 0xc0, 0x26, 0x0c, 0x4a, + 0x8a, 0x01, 0xff, 0x44, 0xf5, 0x06, 0x14, 0x00, 0x00, 0x43, 0x0e, 0x0b, + 0x11, 0x00, 0x00, 0x46, 0x96, 0x67, 0x90, 0x00, 0x00, 0xb4, 0x01, 0xff, + 0x44, 0x25, 0x01, 0x13, 0x00, 0x00, 0x42, 0x15, 0x02, 0x12, 0x00, 0x40, + 0xa1, 0xa9, 0x07, 0x45, 0x66, 0x7d, 0xfa, 0xa8, 0x00, 0xa4, 0xce, 0x06, + 0xa7, 0xbf, 0x06, 0x04, 0xe6, 0x01, 0xa7, 0x06, 0x47, 0x20, 0xd2, 0xfd, + 0xa8, 0x00, 0x07, 0xec, 0x05, 0xc9, 0x02, 0x42, 0x14, 0x05, 0x50, 0x09, + 0x00, 0xb3, 0x84, 0x01, 0x0b, 0x40, 0x77, 0x01, 0xff, 0xa1, 0x69, 0x07, + 0x36, 0x61, 0x57, 0xe5, 0x47, 0x09, 0x00, 0xe9, 0x3f, 0x09, 0x80, 0x4a, + 0xef, 0x4b, 0x09, 0x80, 0x3b, 0x4f, 0xee, 0x71, 0x4e, 0x09, 0x00, 0x06, + 0x33, 0x07, 0x29, 0xf5, 0x41, 0x09, 0x80, 0x17, 0x08, 0x22, 0xc1, 0x01, + 0xff, 0xec, 0x62, 0x09, 0x80, 0x09, 0xf2, 0x43, 0x09, 0xc0, 0x00, 0xf2, + 0x44, 0x09, 0x40, 0xec, 0x63, 0x09, 0x40, 0xe5, 0x56, 0x09, 0x00, 0xf5, + 0x42, 0x09, 0xc0, 0x00, 0xe5, 0x57, 0x09, 0x40, 0xe5, 0x46, 0x09, 0x00, + 0xef, 0x4a, 0x09, 0x40, 0xe5, 0x3a, 0x09, 0x00, 0x42, 0x60, 0x51, 0x3b, + 0x09, 0x40, 0xe9, 0x40, 0x09, 0x40, 0xe5, 0x45, 0x09, 0x00, 0x46, 0xd6, + 0xdd, 0x55, 0x09, 0x00, 0xef, 0x49, 0x09, 0x40, 0xe1, 0x3e, 0x09, 0x00, + 0xe9, 0x48, 0x09, 0x00, 0xf5, 0x4c, 0x09, 0x00, 0xf7, 0x4f, 0x09, 0x00, + 0xf9, 0xff, 0xa8, 0x40, 0x04, 0x5b, 0x03, 0x11, 0x0b, 0xbe, 0xa3, 0x01, + 0xff, 0x48, 0xc9, 0x7c, 0x52, 0x09, 0x00, 0x46, 0xcb, 0x7c, 0x51, 0x09, + 0x40, 0xa1, 0x98, 0x01, 0x45, 0xd9, 0x2a, 0x02, 0x1b, 0x81, 0x8a, 0x01, + 0x4b, 0xd7, 0x23, 0x01, 0x09, 0x80, 0x66, 0x59, 0xd0, 0x23, 0xf4, 0xa8, + 0x00, 0x4e, 0xad, 0x77, 0x04, 0x1b, 0x81, 0x53, 0x50, 0x66, 0x63, 0x71, + 0x09, 0x00, 0x54, 0x84, 0x43, 0x00, 0x09, 0x00, 0x45, 0xad, 0xe8, 0x09, + 0x1b, 0x01, 0x45, 0x3f, 0x3f, 0x3c, 0x09, 0x00, 0x48, 0x2f, 0x7c, 0xf8, + 0xa8, 0x00, 0x58, 0xc6, 0x2a, 0x08, 0x1b, 0x01, 0xb3, 0x21, 0x02, 0x02, + 0x00, 0x11, 0x08, 0xd9, 0x31, 0x01, 0xff, 0x4f, 0x11, 0x6d, 0x06, 0x1b, + 0x01, 0x4f, 0xcf, 0x2a, 0x07, 0x1b, 0x41, 0x44, 0xe5, 0x23, 0x4d, 0x09, + 0x00, 0x45, 0xec, 0x4b, 0x03, 0x09, 0x40, 0x46, 0xd9, 0xd5, 0xfc, 0xa8, + 0x00, 0x52, 0x79, 0x54, 0xf2, 0xa8, 0x40, 0x4a, 0xa7, 0x24, 0x05, 0x1b, + 0x41, 0x80, 0x01, 0xff, 0x48, 0xae, 0x88, 0xf7, 0xa8, 0x00, 0xb4, 0x06, + 0x46, 0xe3, 0x23, 0xf3, 0xa8, 0x40, 0x44, 0x25, 0x01, 0xf6, 0xa8, 0x00, + 0x42, 0x15, 0x02, 0xf5, 0xa8, 0x40, 0x4a, 0xa7, 0x24, 0x03, 0x1b, 0x41, + 0x47, 0x3d, 0x16, 0x02, 0x09, 0x00, 0x47, 0xaf, 0x88, 0x3d, 0x09, 0x40, + 0xe1, 0x05, 0x09, 0x80, 0xb9, 0x03, 0xa2, 0xa6, 0x03, 0xa3, 0x87, 0x03, + 0xa4, 0xe2, 0x02, 0xe5, 0x0f, 0x09, 0x00, 0x42, 0x0c, 0x08, 0x5e, 0x09, + 0x00, 0xa7, 0xb9, 0x02, 0xa8, 0xac, 0x02, 0xe9, 0x07, 0x09, 0x80, 0xa2, + 0x02, 0xaa, 0x8f, 0x02, 0xab, 0xfb, 0x01, 0xac, 0xe7, 0x01, 0x42, 0x6c, + 0x00, 0x2e, 0x09, 0x80, 0xd9, 0x01, 0xae, 0xba, 0x01, 0xef, 0x13, 0x09, + 0x80, 0xaa, 0x01, 0xb0, 0x9d, 0x01, 0x42, 0x43, 0x14, 0x58, 0x09, 0x00, + 0xb2, 0x84, 0x01, 0xb3, 0x61, 0xb4, 0x48, 0xf5, 0x09, 0x09, 0x80, 0x36, + 0xb6, 0x19, 0xb9, 0x0d, 0xba, 0x01, 0xff, 0xe1, 0x5b, 0x09, 0x00, 0x42, + 0x22, 0x00, 0x79, 0x09, 0x40, 0xe1, 0x2f, 0x09, 0x00, 0x42, 0xbc, 0x22, + 0x5f, 0x09, 0x40, 0xe1, 0x35, 0x09, 0x00, 0x07, 0x23, 0xc1, 0x01, 0xff, + 0xec, 0x0c, 0x09, 0x80, 0x09, 0xf2, 0x0b, 0x09, 0xc0, 0x00, 0xf2, 0x60, + 0x09, 0x40, 0xec, 0x61, 0x09, 0x40, 0xe5, 0x76, 0x09, 0x00, 0xf5, 0x0a, + 0x09, 0xc0, 0x00, 0xe5, 0x77, 0x09, 0x40, 0xe1, 0x24, 0x09, 0x00, 0x42, + 0x22, 0x00, 0x25, 0x09, 0x00, 0xb4, 0x01, 0xff, 0xe1, 0x1f, 0x09, 0x00, + 0x42, 0x22, 0x00, 0x20, 0x09, 0x40, 0xe1, 0x38, 0x09, 0x00, 0xa8, 0x06, + 0x42, 0x40, 0x06, 0x37, 0x09, 0x40, 0xe1, 0x36, 0x09, 0x00, 0x04, 0x35, + 0x07, 0x01, 0xff, 0xe1, 0x04, 0x09, 0x00, 0xe5, 0x0e, 0x09, 0x00, 0xef, + 0x12, 0x09, 0x40, 0xe1, 0x30, 0x09, 0x00, 0x42, 0x22, 0x00, 0x5d, 0x09, + 0x00, 0x42, 0x71, 0x00, 0x31, 0x09, 0x40, 0xe1, 0x2a, 0x09, 0x00, 0x42, + 0x22, 0x00, 0x2b, 0x09, 0x40, 0xe5, 0x73, 0x09, 0x00, 0x42, 0x60, 0x51, + 0x74, 0x09, 0x40, 0xe1, 0x28, 0x09, 0x00, 0x42, 0x24, 0x02, 0x19, 0x09, + 0x00, 0xae, 0x06, 0x42, 0xbc, 0x22, 0x1e, 0x09, 0x40, 0xe1, 0x23, 0x09, + 0x00, 0x42, 0x2a, 0x05, 0x29, 0x09, 0x40, 0x49, 0x0f, 0xbf, 0x78, 0x09, + 0x40, 0xe1, 0x32, 0x09, 0x00, 0xac, 0x01, 0xff, 0xe1, 0x33, 0x09, 0x00, + 0x42, 0x74, 0x00, 0x34, 0x09, 0x40, 0xe1, 0x15, 0x09, 0x00, 0xa8, 0x01, + 0xff, 0xe1, 0x16, 0x09, 0x00, 0x42, 0x22, 0x00, 0x59, 0x09, 0x40, 0xe1, + 0x1c, 0x09, 0x00, 0x42, 0x22, 0x00, 0x1d, 0x09, 0x00, 0x42, 0x56, 0x19, + 0x7c, 0x09, 0x40, 0xe9, 0x08, 0x09, 0x40, 0xe1, 0x39, 0x09, 0x00, 0x47, + 0xa6, 0xd0, 0x7a, 0x09, 0x40, 0xe1, 0x17, 0x09, 0x00, 0x42, 0x24, 0x02, + 0x7b, 0x09, 0x00, 0xa8, 0x06, 0x4b, 0xcf, 0x28, 0x7d, 0x09, 0x40, 0xe1, + 0x18, 0x09, 0x00, 0x42, 0x22, 0x00, 0x5a, 0x09, 0x40, 0xe1, 0x26, 0x09, + 0x00, 0xa4, 0x06, 0x42, 0x22, 0x00, 0x27, 0x09, 0x40, 0xe1, 0x21, 0x09, + 0x00, 0xa4, 0x06, 0x42, 0x22, 0x00, 0x22, 0x09, 0x40, 0xe1, 0x7e, 0x09, + 0x00, 0x42, 0x22, 0x00, 0x5c, 0x09, 0x40, 0xe1, 0x1a, 0x09, 0x80, 0x06, + 0x42, 0x22, 0x00, 0x1b, 0x09, 0x40, 0x05, 0x38, 0x61, 0x01, 0xff, 0xe1, + 0x72, 0x09, 0x00, 0xe5, 0x0d, 0x09, 0x00, 0xef, 0x11, 0x09, 0x40, 0xe1, + 0x2c, 0x09, 0x00, 0x42, 0x16, 0x00, 0x7f, 0x09, 0x00, 0x42, 0x22, 0x00, + 0x2d, 0x09, 0x40, 0xe1, 0x06, 0x09, 0x00, 0xe9, 0x10, 0x09, 0x00, 0xf5, + 0x14, 0x09, 0x00, 0xf7, 0x75, 0x09, 0x00, 0xf9, 0xfe, 0xa8, 0x40, 0x45, + 0xb8, 0x00, 0x00, 0x1b, 0x81, 0x06, 0x46, 0x52, 0x05, 0xfb, 0xa8, 0x40, + 0x50, 0xb6, 0x60, 0x01, 0x1b, 0x41, 0x49, 0x3a, 0x9c, 0xf9, 0xa8, 0x00, + 0x4b, 0x16, 0x23, 0x53, 0x09, 0x40, 0x44, 0x73, 0x20, 0x64, 0x09, 0x00, + 0x05, 0xf0, 0x06, 0x06, 0x4b, 0x09, 0xa1, 0x65, 0x09, 0x40, 0x45, 0x12, + 0x0b, 0x6e, 0x09, 0x00, 0xa6, 0x2e, 0x44, 0xcf, 0x2a, 0x6f, 0x09, 0x00, + 0x43, 0x0e, 0x0b, 0x67, 0x09, 0x00, 0xb3, 0x14, 0xb4, 0x06, 0x44, 0x43, + 0x1e, 0x66, 0x09, 0x40, 0x44, 0x25, 0x01, 0x69, 0x09, 0x00, 0x42, 0x15, + 0x02, 0x68, 0x09, 0x40, 0x44, 0xc9, 0x1d, 0x6d, 0x09, 0x00, 0x42, 0x01, + 0x26, 0x6c, 0x09, 0x40, 0x43, 0xd2, 0x05, 0x6b, 0x09, 0x00, 0x43, 0xf6, + 0x06, 0x6a, 0x09, 0x40, 0x50, 0xdd, 0x57, 0x70, 0x09, 0x00, 0x4b, 0xfc, + 0x8b, 0x54, 0x09, 0x40, 0x4c, 0x33, 0x8d, 0x0b, 0x26, 0x00, 0x02, 0x33, + 0x00, 0x11, 0x05, 0xe5, 0xe7, 0x01, 0xff, 0x48, 0x9c, 0x4b, 0xa5, 0xf5, + 0x01, 0x46, 0x3c, 0xe1, 0xd4, 0xf5, 0x41, 0x03, 0x68, 0x09, 0x0b, 0xf4, + 0xdc, 0xf3, 0xc1, 0x00, 0x47, 0x34, 0xcd, 0xdd, 0xf3, 0x41, 0x0f, 0xe4, + 0x05, 0xdd, 0x01, 0x0d, 0x76, 0x08, 0x01, 0xff, 0x42, 0xed, 0x10, 0x34, + 0x04, 0x01, 0x43, 0x8d, 0xb6, 0x3a, 0x04, 0x01, 0x44, 0x41, 0x4b, 0x3d, + 0x04, 0x01, 0x43, 0x46, 0x81, 0x3c, 0x04, 0x01, 0xa5, 0x91, 0x01, 0x43, + 0x44, 0x9c, 0x40, 0x04, 0x01, 0xe8, 0x38, 0x04, 0x01, 0x43, 0x3e, 0x38, + 0x3e, 0x04, 0x01, 0x43, 0x11, 0x7f, 0x3f, 0x04, 0x01, 0x05, 0xd7, 0x02, + 0x5d, 0xaf, 0x53, 0x43, 0x70, 0x7c, 0x39, 0x04, 0x01, 0x06, 0x33, 0x07, + 0x2f, 0xb4, 0x21, 0x43, 0xfd, 0x06, 0x42, 0x04, 0x01, 0x42, 0x7c, 0x31, + 0x36, 0x04, 0x01, 0x43, 0xcd, 0xa9, 0x37, 0x04, 0x01, 0xba, 0x01, 0xff, + 0x42, 0x27, 0x01, 0x46, 0x04, 0x01, 0x43, 0x2c, 0x13, 0x48, 0x04, 0x41, + 0x42, 0x27, 0x01, 0x3b, 0x04, 0x01, 0x43, 0x2c, 0x13, 0x44, 0x04, 0x41, + 0xe1, 0x30, 0x04, 0x81, 0x11, 0xe5, 0x2f, 0x04, 0x01, 0xe9, 0x2e, 0x04, + 0x01, 0xef, 0x32, 0x04, 0xc1, 0x00, 0xef, 0x33, 0x04, 0x41, 0xe8, 0x31, + 0x04, 0x41, 0xe9, 0x4e, 0x04, 0x01, 0xf7, 0x35, 0x04, 0x41, 0xe1, 0x2a, + 0x04, 0x81, 0x11, 0xe5, 0x29, 0x04, 0x01, 0xe9, 0x28, 0x04, 0x01, 0xef, + 0x2c, 0x04, 0xc1, 0x00, 0xef, 0x2d, 0x04, 0x41, 0xe8, 0x2b, 0x04, 0x41, + 0xe6, 0x41, 0x04, 0x01, 0xec, 0x4a, 0x04, 0x01, 0xed, 0x4b, 0x04, 0x01, + 0xee, 0x4c, 0x04, 0x81, 0x17, 0xf2, 0x49, 0x04, 0x01, 0xf3, 0x45, 0x04, + 0x81, 0x0a, 0x42, 0x53, 0x00, 0x43, 0x04, 0x01, 0xf7, 0x4f, 0x04, 0x41, + 0xe8, 0x47, 0x04, 0x41, 0xe7, 0x4d, 0x04, 0x41, 0x42, 0xed, 0x10, 0x0c, + 0x04, 0x01, 0x43, 0x8d, 0xb6, 0x12, 0x04, 0x01, 0x44, 0x41, 0x4b, 0x15, + 0x04, 0x01, 0x43, 0x46, 0x81, 0x14, 0x04, 0x01, 0xa5, 0x91, 0x01, 0x43, + 0x44, 0x9c, 0x18, 0x04, 0x01, 0xe8, 0x10, 0x04, 0x01, 0x43, 0x3e, 0x38, + 0x16, 0x04, 0x01, 0x43, 0x11, 0x7f, 0x17, 0x04, 0x01, 0x05, 0xd7, 0x02, + 0x5d, 0xaf, 0x53, 0x43, 0x70, 0x7c, 0x11, 0x04, 0x01, 0x06, 0x33, 0x07, + 0x2f, 0xb4, 0x21, 0x43, 0xfd, 0x06, 0x1a, 0x04, 0x01, 0x42, 0x7c, 0x31, + 0x0e, 0x04, 0x01, 0x43, 0xcd, 0xa9, 0x0f, 0x04, 0x01, 0xba, 0x01, 0xff, + 0x42, 0x27, 0x01, 0x1e, 0x04, 0x01, 0x43, 0x2c, 0x13, 0x20, 0x04, 0x41, + 0x42, 0x27, 0x01, 0x13, 0x04, 0x01, 0x43, 0x2c, 0x13, 0x1c, 0x04, 0x41, + 0xe1, 0x08, 0x04, 0x81, 0x11, 0xe5, 0x07, 0x04, 0x01, 0xe9, 0x06, 0x04, + 0x01, 0xef, 0x0a, 0x04, 0xc1, 0x00, 0xef, 0x0b, 0x04, 0x41, 0xe8, 0x09, + 0x04, 0x41, 0xe9, 0x26, 0x04, 0x01, 0xf7, 0x0d, 0x04, 0x41, 0xe1, 0x02, + 0x04, 0x81, 0x11, 0xe5, 0x01, 0x04, 0x01, 0xe9, 0x00, 0x04, 0x01, 0xef, + 0x04, 0x04, 0xc1, 0x00, 0xef, 0x05, 0x04, 0x41, 0xe8, 0x03, 0x04, 0x41, + 0xe6, 0x19, 0x04, 0x01, 0xec, 0x22, 0x04, 0x01, 0xed, 0x23, 0x04, 0x01, + 0xee, 0x24, 0x04, 0x81, 0x17, 0xf2, 0x21, 0x04, 0x01, 0xf3, 0x1d, 0x04, + 0x81, 0x0a, 0x42, 0x53, 0x00, 0x1b, 0x04, 0x01, 0xf7, 0x27, 0x04, 0x41, + 0xe8, 0x1f, 0x04, 0x41, 0xe7, 0x25, 0x04, 0x41, 0x03, 0x41, 0x04, 0x81, + 0x01, 0x14, 0x2c, 0x46, 0x01, 0xff, 0x53, 0x0c, 0x49, 0xc9, 0x23, 0x80, + 0x5e, 0x51, 0xb3, 0x5e, 0xca, 0x23, 0x80, 0x40, 0x09, 0x32, 0x00, 0x01, + 0xff, 0x04, 0x1a, 0x00, 0x11, 0x05, 0x51, 0x00, 0x01, 0xff, 0x46, 0x12, + 0x03, 0xc0, 0x23, 0x00, 0x48, 0x01, 0x02, 0xc3, 0x23, 0x40, 0x07, 0x9b, + 0x0d, 0x16, 0x04, 0x1e, 0x00, 0x06, 0x44, 0x82, 0x57, 0xc6, 0x23, 0x40, + 0x44, 0xc3, 0x00, 0xcb, 0x23, 0x00, 0x45, 0xc8, 0x00, 0xbe, 0x23, 0x40, + 0x44, 0xc3, 0x00, 0xcc, 0x23, 0x00, 0x45, 0xc8, 0x00, 0xbf, 0x23, 0x40, + 0x06, 0x50, 0x00, 0x01, 0xff, 0x46, 0x12, 0x03, 0xc2, 0x23, 0x00, 0x48, + 0x01, 0x02, 0xc5, 0x23, 0x00, 0x44, 0x82, 0x57, 0xc8, 0x23, 0x40, 0x06, + 0x50, 0x00, 0x01, 0xff, 0x46, 0x12, 0x03, 0xc1, 0x23, 0x00, 0x48, 0x01, + 0x02, 0xc4, 0x23, 0x00, 0x44, 0x82, 0x57, 0xc7, 0x23, 0x40, 0x4f, 0x1f, + 0x6e, 0x45, 0xcc, 0x01, 0x4d, 0x2f, 0x8a, 0x44, 0xcc, 0x41, 0x43, 0x1c, + 0x31, 0x7f, 0x00, 0x00, 0x4b, 0xc5, 0x9d, 0x9a, 0xf6, 0x01, 0x4b, 0x24, + 0xa3, 0x5c, 0x22, 0x40, 0x47, 0xdb, 0xcf, 0x03, 0x21, 0x00, 0x4a, 0x47, + 0xaa, 0x09, 0x21, 0x00, 0x44, 0x5a, 0x03, 0xb0, 0x00, 0x40, 0xa9, 0x06, + 0x56, 0x97, 0x36, 0xdb, 0xf5, 0x41, 0x4a, 0x6b, 0xa9, 0x33, 0xf3, 0x01, + 0x04, 0xd7, 0x0f, 0x01, 0xff, 0x4f, 0x02, 0x6d, 0xe8, 0x23, 0x00, 0x54, + 0xc8, 0x45, 0x96, 0x23, 0x40, 0x44, 0xd8, 0xda, 0x20, 0x20, 0x80, 0x53, + 0x4a, 0xe5, 0xac, 0x38, 0x21, 0x00, 0xae, 0x3f, 0x04, 0xa2, 0x44, 0x2f, + 0x02, 0xa4, 0x02, 0x06, 0x4e, 0xe7, 0x6a, 0x10, 0x00, 0x40, 0x80, 0x17, + 0x03, 0x05, 0x00, 0x01, 0xff, 0x48, 0x75, 0x8a, 0x4d, 0xfe, 0x00, 0x48, + 0x82, 0x8a, 0x49, 0xfe, 0x00, 0x60, 0x93, 0x06, 0x9f, 0x27, 0x40, 0x46, + 0x16, 0x08, 0xa8, 0xf4, 0x01, 0x50, 0xd6, 0x68, 0x43, 0x2e, 0x40, 0x44, + 0x4c, 0x04, 0x93, 0x25, 0x00, 0x49, 0x53, 0xc0, 0x76, 0xf5, 0x41, 0x43, + 0x17, 0x20, 0x83, 0xf4, 0x01, 0x42, 0x06, 0x14, 0x61, 0xf3, 0x41, 0x80, + 0x01, 0xff, 0x45, 0xba, 0xa5, 0xe1, 0xf5, 0x01, 0x05, 0x51, 0x00, 0x01, + 0xff, 0x4a, 0x9f, 0xac, 0x36, 0x2e, 0x00, 0x4b, 0xf0, 0xa1, 0x37, 0x2e, + 0x40, 0xa1, 0x8a, 0xaf, 0x01, 0xa5, 0xc4, 0xae, 0x01, 0xa8, 0xa9, 0x9d, + 0x01, 0xa9, 0xf6, 0x8d, 0x01, 0x03, 0x12, 0x33, 0xbe, 0x85, 0x01, 0xac, + 0xc0, 0x81, 0x01, 0xaf, 0x84, 0x5c, 0xb2, 0xcb, 0x5a, 0xb5, 0xaf, 0x1b, + 0xb9, 0x01, 0xff, 0x45, 0x56, 0xe5, 0x00, 0xf3, 0x01, 0x4a, 0x21, 0xad, + 0x2d, 0x23, 0x00, 0x02, 0xdf, 0x0c, 0xe0, 0x15, 0x07, 0xf9, 0xcc, 0x01, + 0xff, 0x09, 0xe4, 0x05, 0xf2, 0x0b, 0x46, 0xed, 0x4f, 0x7e, 0xa6, 0x00, + 0x07, 0xec, 0x05, 0xd5, 0x0b, 0x47, 0x96, 0xd4, 0x7f, 0xa6, 0x00, 0xb3, + 0x06, 0x4e, 0xfb, 0x7c, 0x82, 0x04, 0x40, 0x06, 0x77, 0x08, 0x99, 0x01, + 0x16, 0xb5, 0x37, 0x01, 0xff, 0xe1, 0x51, 0xe0, 0x01, 0xa2, 0x83, 0x01, + 0x43, 0x6d, 0x14, 0x63, 0xe0, 0x01, 0xa4, 0x6a, 0xa5, 0x5c, 0x43, 0x26, + 0x52, 0x54, 0xe0, 0x81, 0x4f, 0x42, 0x22, 0x00, 0x61, 0xe0, 0x81, 0x42, + 0xe9, 0x59, 0xe0, 0x81, 0x39, 0x42, 0x1b, 0x02, 0x5a, 0xe0, 0x01, 0xef, + 0x5c, 0xe0, 0x01, 0x42, 0x6f, 0x02, 0x5d, 0xe0, 0x01, 0x43, 0xa4, 0x02, + 0x64, 0xe0, 0x01, 0x43, 0xd5, 0x5d, 0x62, 0xe0, 0x01, 0xf5, 0x5f, 0xe0, + 0x01, 0x42, 0x32, 0x00, 0x53, 0xe0, 0x01, 0x44, 0x08, 0xd7, 0x66, 0xe0, + 0x01, 0xba, 0x01, 0xff, 0xe5, 0x58, 0xe0, 0x01, 0x42, 0xb0, 0x01, 0x57, + 0xe0, 0x41, 0xe5, 0x56, 0xe0, 0x41, 0x47, 0xfc, 0x92, 0x65, 0xe0, 0x41, + 0x4c, 0xa7, 0x8b, 0x67, 0xe0, 0x41, 0xe6, 0x60, 0xe0, 0x01, 0xec, 0x5b, + 0xe0, 0x01, 0xf3, 0x5e, 0xe0, 0x41, 0xe5, 0x55, 0xe0, 0x01, 0xba, 0x01, + 0xff, 0xe5, 0x69, 0xe0, 0x01, 0x42, 0xb0, 0x01, 0x6a, 0xe0, 0x41, 0xe5, + 0x52, 0xe0, 0x01, 0x57, 0x84, 0x08, 0x68, 0xe0, 0x41, 0x06, 0xed, 0x05, + 0x17, 0x08, 0x9d, 0x1f, 0x01, 0xff, 0x44, 0xd5, 0xee, 0xd5, 0x04, 0x00, + 0x46, 0x48, 0xdb, 0xa5, 0x04, 0x00, 0x46, 0x76, 0xe0, 0xb5, 0x04, 0x40, + 0xe1, 0x30, 0x04, 0x80, 0xd5, 0x09, 0xa2, 0x99, 0x09, 0xa3, 0xe4, 0x08, + 0xa4, 0x8f, 0x08, 0xe5, 0x4d, 0x04, 0x80, 0x94, 0x07, 0x44, 0xd1, 0xef, + 0x73, 0x04, 0x00, 0xa7, 0xda, 0x06, 0xa8, 0xb0, 0x06, 0xe9, 0x38, 0x04, + 0x80, 0xc0, 0x05, 0x42, 0x80, 0x20, 0x58, 0x04, 0x00, 0xab, 0xc7, 0x04, + 0xac, 0xac, 0x04, 0x04, 0xbe, 0x18, 0x9b, 0x04, 0xae, 0x86, 0x04, 0xef, + 0x3e, 0x04, 0x80, 0xe9, 0x03, 0xb0, 0xc4, 0x03, 0x42, 0x43, 0x14, 0x1b, + 0x05, 0x00, 0xb2, 0x88, 0x03, 0xb3, 0x99, 0x02, 0xb4, 0xba, 0x01, 0xf5, + 0x43, 0x04, 0x80, 0x8b, 0x01, 0x42, 0x32, 0x00, 0x32, 0x04, 0x00, 0xb7, + 0x79, 0xb9, 0x46, 0xba, 0x01, 0xff, 0xe5, 0x37, 0x04, 0x80, 0x28, 0xa8, + 0x01, 0xff, 0xe5, 0x36, 0x04, 0x80, 0x06, 0x42, 0x15, 0x01, 0x85, 0xa6, + 0x40, 0x06, 0x50, 0x00, 0x01, 0xff, 0x45, 0x53, 0x23, 0xc2, 0x04, 0x00, + 0xa4, 0x01, 0xff, 0x48, 0x1e, 0x2b, 0x97, 0x04, 0x00, 0x48, 0xb8, 0x23, + 0xdd, 0x04, 0x40, 0x07, 0x82, 0x07, 0x06, 0x44, 0x39, 0xf1, 0x41, 0xa6, + 0x40, 0x48, 0x1e, 0x2b, 0x99, 0x04, 0x00, 0x48, 0xb8, 0x23, 0xdf, 0x04, + 0x40, 0xe1, 0x4f, 0x04, 0x80, 0x24, 0x43, 0x9c, 0x2b, 0x4b, 0x04, 0x80, + 0x0c, 0xe9, 0x57, 0x04, 0x00, 0xee, 0x5f, 0xa6, 0x00, 0xf5, 0x4e, 0x04, + 0x40, 0x06, 0x50, 0x00, 0x01, 0xff, 0x48, 0x83, 0x75, 0x51, 0xa6, 0x00, + 0x49, 0xb7, 0x23, 0xf9, 0x04, 0x40, 0xe5, 0x19, 0x05, 0x00, 0xf4, 0x63, + 0x04, 0x40, 0xe5, 0x1d, 0x05, 0x00, 0x46, 0xc2, 0xdc, 0x83, 0x1c, 0x40, + 0x06, 0x50, 0x00, 0x11, 0xeb, 0x79, 0x04, 0x80, 0x06, 0x4b, 0xe0, 0x9f, + 0x88, 0x1c, 0x40, 0x4a, 0x08, 0x9e, 0x54, 0x04, 0x40, 0xa4, 0x06, 0x46, + 0xad, 0x70, 0xef, 0x04, 0x40, 0x48, 0xb8, 0x23, 0xf1, 0x04, 0x00, 0x4b, + 0xfe, 0xa0, 0xf3, 0x04, 0x40, 0x04, 0x5f, 0x07, 0x46, 0x43, 0x6d, 0x14, + 0x93, 0xa6, 0x00, 0xe5, 0x42, 0x04, 0x80, 0x2a, 0x4e, 0x55, 0x78, 0x85, + 0x1c, 0x00, 0x42, 0x80, 0x20, 0x8a, 0x1c, 0x00, 0xb3, 0x06, 0x42, 0x15, + 0x01, 0x8d, 0xa6, 0x40, 0xe5, 0x46, 0x04, 0x00, 0x42, 0xb0, 0x01, 0x5b, + 0x04, 0x00, 0x42, 0x46, 0x03, 0x91, 0xa6, 0x00, 0x42, 0x15, 0x01, 0x8f, + 0xa6, 0x40, 0x06, 0x50, 0x00, 0x01, 0xff, 0x49, 0x1d, 0x2b, 0xad, 0x04, + 0x00, 0x4b, 0x93, 0x9f, 0x8b, 0xa6, 0x40, 0x49, 0x81, 0xb9, 0x86, 0x1c, + 0x00, 0x42, 0x77, 0x00, 0x84, 0x1c, 0x00, 0x43, 0x9d, 0x32, 0x87, 0x1c, + 0x40, 0x44, 0xb5, 0x7b, 0xd9, 0x04, 0x80, 0x5f, 0x4c, 0x83, 0x8e, 0x8d, + 0x04, 0x00, 0xa8, 0x27, 0x04, 0x03, 0x71, 0x0d, 0x49, 0xf0, 0xbf, 0xaf, + 0x04, 0xc0, 0x00, 0x4c, 0xda, 0x28, 0xb1, 0x04, 0x40, 0x42, 0x04, 0x00, + 0x63, 0xa6, 0x00, 0xa5, 0x06, 0x44, 0x5a, 0x03, 0x4c, 0x04, 0x40, 0xec, + 0x65, 0xa6, 0x00, 0xed, 0x67, 0xa6, 0x40, 0xe1, 0x48, 0x04, 0x00, 0x43, + 0x91, 0x20, 0x49, 0x04, 0x00, 0x42, 0x22, 0x00, 0xbb, 0x04, 0x80, 0x19, + 0x04, 0x35, 0x07, 0x06, 0x42, 0x15, 0x01, 0x97, 0xa6, 0x40, 0xe9, 0x39, + 0x04, 0x80, 0x04, 0xf5, 0x5e, 0x04, 0x40, 0x4a, 0x9b, 0xa6, 0x8b, 0x04, + 0x40, 0x4f, 0xe7, 0x69, 0x27, 0x05, 0x40, 0x4f, 0xf6, 0x69, 0xdb, 0x04, + 0x40, 0x08, 0xde, 0x14, 0x17, 0x42, 0x22, 0x00, 0x17, 0x05, 0x00, 0x04, + 0x41, 0x0b, 0x01, 0xff, 0x46, 0x37, 0xaf, 0x7b, 0x04, 0x00, 0x45, 0x29, + 0x17, 0x80, 0x1c, 0x40, 0x43, 0x28, 0xf4, 0x45, 0xa6, 0x00, 0x43, 0xd5, + 0x5d, 0x61, 0xa6, 0x00, 0x42, 0x2a, 0x4e, 0x55, 0xa6, 0x00, 0x42, 0x4b, + 0x0a, 0x11, 0x05, 0x40, 0x47, 0xc9, 0xc9, 0xcf, 0x04, 0x00, 0xe5, 0x3f, + 0x04, 0x80, 0x06, 0x42, 0x5a, 0x03, 0x71, 0x04, 0x40, 0x06, 0x50, 0x00, + 0x01, 0xff, 0x49, 0x1d, 0x2b, 0x25, 0x05, 0x00, 0x4b, 0x93, 0x9f, 0xa7, + 0x04, 0x40, 0x4f, 0xf6, 0x69, 0xe7, 0x04, 0x00, 0x44, 0xcc, 0x7b, 0x61, + 0x04, 0x80, 0x04, 0xf4, 0x7f, 0x04, 0x40, 0x4b, 0x3a, 0x98, 0x7d, 0x04, + 0x40, 0x47, 0xe5, 0x03, 0x82, 0x1c, 0x00, 0x4a, 0x29, 0xaa, 0x4f, 0xa6, + 0x00, 0x42, 0x80, 0x20, 0x5a, 0x04, 0x40, 0x47, 0x3f, 0x86, 0x69, 0xa6, + 0x00, 0x48, 0x23, 0x92, 0x4b, 0xa6, 0x40, 0x42, 0x22, 0x00, 0x15, 0x05, + 0x00, 0x49, 0x38, 0x59, 0x67, 0x04, 0x00, 0x42, 0x80, 0x20, 0x59, 0x04, + 0x00, 0x4d, 0xfc, 0x86, 0x81, 0x1c, 0x40, 0xe1, 0x3a, 0x04, 0x80, 0x4e, + 0x4d, 0x88, 0x83, 0xcc, 0x04, 0x00, 0x42, 0x80, 0x20, 0x5c, 0x04, 0x00, + 0xaf, 0x06, 0x42, 0x5a, 0x03, 0x6f, 0x04, 0x40, 0x03, 0xb6, 0xd1, 0x06, + 0x43, 0xad, 0x80, 0x81, 0x04, 0x40, 0xa4, 0x1e, 0x43, 0x7f, 0x20, 0x09, + 0x05, 0x00, 0x43, 0xb2, 0x84, 0x0b, 0x05, 0x00, 0x43, 0xda, 0x9d, 0x0d, + 0x05, 0x00, 0x43, 0xa0, 0xf4, 0x0f, 0x05, 0x00, 0x43, 0xd9, 0xf4, 0x05, + 0x05, 0x40, 0xe5, 0x01, 0x05, 0x00, 0x42, 0x80, 0x20, 0x03, 0x05, 0x00, + 0x43, 0xd9, 0xf4, 0x07, 0x05, 0x40, 0x06, 0x50, 0x00, 0x01, 0xff, 0x49, + 0x1d, 0x2b, 0x9b, 0x04, 0x00, 0x44, 0xac, 0x0e, 0xc4, 0x04, 0x00, 0x46, + 0x52, 0x05, 0x9f, 0x04, 0x00, 0x4f, 0x9c, 0x33, 0x9d, 0x04, 0x40, 0x06, + 0x50, 0x00, 0x54, 0xe5, 0x35, 0x04, 0x80, 0x3e, 0xef, 0x51, 0x04, 0x80, + 0x0d, 0x46, 0x90, 0xe1, 0x75, 0x04, 0xc0, 0x00, 0x59, 0x08, 0x23, 0x77, + 0x04, 0x40, 0xb4, 0x01, 0xff, 0xe1, 0x47, 0xa6, 0x00, 0x06, 0xf2, 0x02, + 0x01, 0xff, 0xe1, 0x57, 0xa6, 0x00, 0x47, 0x80, 0xcf, 0x6d, 0x04, 0x00, + 0x51, 0x30, 0x59, 0x5d, 0xa6, 0x00, 0xe5, 0x65, 0x04, 0x00, 0x4a, 0x37, + 0x59, 0x69, 0x04, 0x00, 0x43, 0x9d, 0x32, 0x53, 0xa6, 0x40, 0x06, 0x50, + 0x00, 0x01, 0xff, 0x45, 0x53, 0x23, 0xd7, 0x04, 0x00, 0x45, 0x15, 0x23, + 0x50, 0x04, 0x40, 0x49, 0xb7, 0x23, 0xe5, 0x04, 0x00, 0x45, 0x15, 0x23, + 0x5d, 0x04, 0x00, 0x46, 0xad, 0x70, 0xe3, 0x04, 0x40, 0xe1, 0x45, 0x04, + 0x80, 0x06, 0x42, 0x15, 0x01, 0x95, 0xa6, 0x40, 0x06, 0x50, 0x00, 0x06, + 0x47, 0xfc, 0x92, 0x4a, 0x04, 0x40, 0x49, 0x1d, 0x2b, 0xb3, 0x04, 0x00, + 0x44, 0xac, 0x0e, 0xfd, 0x04, 0x00, 0x46, 0x52, 0x05, 0xff, 0x04, 0x40, + 0x42, 0xb0, 0x01, 0x33, 0x04, 0x80, 0x06, 0x42, 0x80, 0x20, 0x53, 0x04, + 0x40, 0x06, 0x50, 0x00, 0x01, 0xff, 0x49, 0x1d, 0x2b, 0xf7, 0x04, 0x00, + 0x4b, 0x93, 0x9f, 0x95, 0x04, 0x00, 0x46, 0x52, 0x05, 0x93, 0x04, 0x80, + 0x06, 0x46, 0xe0, 0x68, 0x91, 0x04, 0x40, 0x49, 0xc0, 0x23, 0xfb, 0x04, + 0x40, 0x4f, 0xf6, 0x69, 0xed, 0x04, 0x00, 0xe6, 0x44, 0x04, 0x00, 0xec, + 0x3b, 0x04, 0x80, 0x49, 0xed, 0x3c, 0x04, 0x80, 0x3e, 0xee, 0x3d, 0x04, + 0x80, 0x16, 0xf2, 0x40, 0x04, 0x80, 0x0b, 0xf3, 0x41, 0x04, 0xc0, 0x00, + 0x4f, 0xe7, 0x69, 0xab, 0x04, 0x40, 0x4a, 0xa5, 0xa6, 0x8f, 0x04, 0x40, + 0x06, 0x50, 0x00, 0x01, 0xff, 0x49, 0x1d, 0x2b, 0xa3, 0x04, 0x00, 0x44, + 0xac, 0x0e, 0xc8, 0x04, 0x00, 0x49, 0xb1, 0x57, 0x29, 0x05, 0x00, 0x4b, + 0x93, 0x9f, 0x23, 0x05, 0x00, 0x44, 0x8f, 0x17, 0xca, 0x04, 0x40, 0x4a, + 0x9b, 0xa6, 0xce, 0x04, 0x40, 0x06, 0x50, 0x00, 0x01, 0xff, 0x49, 0x1d, + 0x2b, 0x2f, 0x05, 0x00, 0x44, 0xac, 0x0e, 0x13, 0x05, 0x00, 0x4b, 0x93, + 0x9f, 0x21, 0x05, 0x00, 0x44, 0x8f, 0x17, 0xc6, 0x04, 0x40, 0x43, 0x6d, + 0x14, 0x2d, 0x05, 0x00, 0xe5, 0x34, 0x04, 0x00, 0x42, 0x80, 0x20, 0x52, + 0x04, 0x80, 0x3b, 0x06, 0x3c, 0x01, 0x2d, 0x42, 0x15, 0x01, 0x81, 0xa6, + 0x00, 0xba, 0x01, 0xff, 0xe5, 0x55, 0x04, 0x80, 0x19, 0x42, 0xb0, 0x01, + 0x5f, 0x04, 0x00, 0x42, 0x15, 0x01, 0x83, 0xa6, 0x00, 0xba, 0x01, 0xff, + 0xe5, 0x89, 0xa6, 0x00, 0x42, 0xb0, 0x01, 0x2b, 0x05, 0x40, 0x42, 0x13, + 0x01, 0x43, 0xa6, 0x40, 0x4b, 0xa9, 0x9f, 0x6d, 0xa6, 0x00, 0xef, 0x99, + 0xa6, 0x40, 0x42, 0x78, 0x0f, 0x49, 0xa6, 0x40, 0x43, 0x6d, 0x14, 0x87, + 0xa6, 0x00, 0x42, 0xb0, 0x01, 0x47, 0x04, 0x80, 0x0c, 0x50, 0x31, 0x59, + 0x59, 0xa6, 0x00, 0x48, 0x80, 0xca, 0x9b, 0xa6, 0x40, 0x06, 0x50, 0x00, + 0x01, 0xff, 0xa4, 0x06, 0x4f, 0x9c, 0x33, 0xb9, 0x04, 0x40, 0x48, 0x1e, + 0x2b, 0xb7, 0x04, 0x00, 0x48, 0xb8, 0x23, 0xf5, 0x04, 0x40, 0xa1, 0x24, + 0xe5, 0x31, 0x04, 0x00, 0xa9, 0x12, 0x4a, 0xdb, 0xac, 0x5b, 0xa6, 0x00, + 0x4a, 0x7d, 0xb0, 0x4d, 0xa6, 0x00, 0x57, 0x84, 0x08, 0x56, 0x04, 0x40, + 0x45, 0x82, 0xcf, 0x6b, 0x04, 0x00, 0x49, 0xab, 0x9f, 0x6b, 0xa6, 0x40, + 0x46, 0x0a, 0xcf, 0xe9, 0x04, 0x80, 0x06, 0x48, 0xd0, 0xca, 0xa1, 0x04, + 0x40, 0x4f, 0xf6, 0x69, 0xeb, 0x04, 0x40, 0x06, 0x50, 0x00, 0x23, 0x09, + 0xba, 0xb6, 0x06, 0x47, 0xd6, 0xd2, 0x1f, 0x05, 0x40, 0x43, 0x6d, 0x14, + 0xbd, 0x04, 0x80, 0x0c, 0x43, 0x28, 0xf4, 0xe1, 0x04, 0x00, 0x42, 0x22, + 0x00, 0xa9, 0x04, 0x40, 0x4f, 0xe7, 0x69, 0xbf, 0x04, 0x40, 0x45, 0x53, + 0x23, 0xd1, 0x04, 0x00, 0x49, 0xb7, 0x23, 0xd3, 0x04, 0x40, 0x4d, 0x39, + 0x86, 0x6e, 0xa6, 0x00, 0x48, 0xc8, 0xc9, 0xc0, 0x04, 0x00, 0x50, 0x46, + 0x67, 0x2b, 0x1d, 0x40, 0x06, 0xed, 0x05, 0x17, 0x08, 0x9d, 0x1f, 0x01, + 0xff, 0x44, 0xd5, 0xee, 0xd4, 0x04, 0x00, 0x46, 0x48, 0xdb, 0xa4, 0x04, + 0x00, 0x46, 0x76, 0xe0, 0xb4, 0x04, 0x40, 0xe1, 0x10, 0x04, 0x80, 0x90, + 0x09, 0xa2, 0xd4, 0x08, 0xa3, 0x9f, 0x08, 0xa4, 0xca, 0x07, 0xe5, 0x2d, + 0x04, 0x80, 0xcf, 0x06, 0x44, 0xd1, 0xef, 0x72, 0x04, 0x00, 0xa7, 0x95, + 0x06, 0xa8, 0xeb, 0x05, 0xe9, 0x18, 0x04, 0x80, 0xfb, 0x04, 0x42, 0x80, + 0x20, 0x08, 0x04, 0x00, 0xab, 0x82, 0x04, 0xac, 0xed, 0x03, 0x04, 0xbe, + 0x18, 0xdc, 0x03, 0xae, 0xcd, 0x03, 0xef, 0x1e, 0x04, 0x80, 0xb0, 0x03, + 0xb0, 0x91, 0x03, 0x42, 0x43, 0x14, 0x1a, 0x05, 0x00, 0xb2, 0xe0, 0x02, + 0xb3, 0xf1, 0x01, 0xb4, 0xae, 0x01, 0xf5, 0x23, 0x04, 0x80, 0x85, 0x01, + 0x42, 0x32, 0x00, 0x12, 0x04, 0x00, 0x42, 0x15, 0x01, 0x1c, 0x05, 0x00, + 0xb9, 0x46, 0xba, 0x01, 0xff, 0xe5, 0x17, 0x04, 0x80, 0x28, 0xa8, 0x01, + 0xff, 0xe5, 0x16, 0x04, 0x80, 0x06, 0x42, 0x15, 0x01, 0x84, 0xa6, 0x40, + 0x06, 0x50, 0x00, 0x01, 0xff, 0x45, 0x53, 0x23, 0xc1, 0x04, 0x00, 0xa4, + 0x01, 0xff, 0x48, 0x1e, 0x2b, 0x96, 0x04, 0x00, 0x48, 0xb8, 0x23, 0xdc, + 0x04, 0x40, 0x07, 0x82, 0x07, 0x06, 0x44, 0x39, 0xf1, 0x40, 0xa6, 0x40, + 0x48, 0x1e, 0x2b, 0x98, 0x04, 0x00, 0x48, 0xb8, 0x23, 0xde, 0x04, 0x40, + 0xe1, 0x2f, 0x04, 0x80, 0x24, 0x43, 0x9c, 0x2b, 0x2b, 0x04, 0x80, 0x0c, + 0xe9, 0x07, 0x04, 0x00, 0xee, 0x5e, 0xa6, 0x00, 0xf5, 0x2e, 0x04, 0x40, + 0x06, 0x50, 0x00, 0x01, 0xff, 0x48, 0x83, 0x75, 0x50, 0xa6, 0x00, 0x49, + 0xb7, 0x23, 0xf8, 0x04, 0x40, 0xe5, 0x18, 0x05, 0x00, 0xf4, 0x62, 0x04, + 0x40, 0x06, 0x50, 0x00, 0x0b, 0xeb, 0x78, 0x04, 0xc0, 0x00, 0x4a, 0x08, + 0x9e, 0x04, 0x04, 0x40, 0xa4, 0x06, 0x46, 0xad, 0x70, 0xee, 0x04, 0x40, + 0x48, 0xb8, 0x23, 0xf0, 0x04, 0x00, 0x4b, 0xfe, 0xa0, 0xf2, 0x04, 0x40, + 0x43, 0x6d, 0x14, 0x92, 0xa6, 0x00, 0xe5, 0x22, 0x04, 0x80, 0x24, 0x42, + 0x80, 0x20, 0x89, 0x1c, 0x00, 0xb3, 0x06, 0x42, 0x15, 0x01, 0x8c, 0xa6, + 0x40, 0xe5, 0x26, 0x04, 0x00, 0x42, 0xb0, 0x01, 0x0b, 0x04, 0x00, 0x42, + 0x46, 0x03, 0x90, 0xa6, 0x00, 0x42, 0x15, 0x01, 0x8e, 0xa6, 0x40, 0x06, + 0x50, 0x00, 0x01, 0xff, 0x49, 0x1d, 0x2b, 0xac, 0x04, 0x00, 0x4b, 0x93, + 0x9f, 0x8a, 0xa6, 0x40, 0x44, 0xb5, 0x7b, 0xd8, 0x04, 0x80, 0x5f, 0x4c, + 0x83, 0x8e, 0x8c, 0x04, 0x00, 0xa8, 0x27, 0x04, 0x03, 0x71, 0x0d, 0x49, + 0xf0, 0xbf, 0xae, 0x04, 0xc0, 0x00, 0x4c, 0xda, 0x28, 0xb0, 0x04, 0x40, + 0x42, 0x04, 0x00, 0x62, 0xa6, 0x00, 0xa5, 0x06, 0x44, 0x5a, 0x03, 0x2c, + 0x04, 0x40, 0xec, 0x64, 0xa6, 0x00, 0xed, 0x66, 0xa6, 0x40, 0xe1, 0x28, + 0x04, 0x00, 0x43, 0x91, 0x20, 0x29, 0x04, 0x00, 0x42, 0x22, 0x00, 0xba, + 0x04, 0x80, 0x19, 0x04, 0x35, 0x07, 0x06, 0x42, 0x15, 0x01, 0x96, 0xa6, + 0x40, 0xe9, 0x19, 0x04, 0x80, 0x04, 0xf5, 0x0e, 0x04, 0x40, 0x4a, 0x9b, + 0xa6, 0x8a, 0x04, 0x40, 0x4f, 0xe7, 0x69, 0x26, 0x05, 0x40, 0x4f, 0xf6, + 0x69, 0xda, 0x04, 0x40, 0x08, 0xde, 0x14, 0x0c, 0x42, 0x22, 0x00, 0x16, + 0x05, 0x00, 0x4a, 0x33, 0xaf, 0x7a, 0x04, 0x40, 0x43, 0x28, 0xf4, 0x44, + 0xa6, 0x00, 0x43, 0xd5, 0x5d, 0x60, 0xa6, 0x00, 0x42, 0x2a, 0x4e, 0x54, + 0xa6, 0x00, 0x42, 0x4b, 0x0a, 0x10, 0x05, 0x40, 0xe5, 0x1f, 0x04, 0x80, + 0x06, 0x42, 0x5a, 0x03, 0x70, 0x04, 0x40, 0x06, 0x50, 0x00, 0x01, 0xff, + 0x49, 0x1d, 0x2b, 0x24, 0x05, 0x00, 0x4b, 0x93, 0x9f, 0xa6, 0x04, 0x40, + 0x4f, 0xf6, 0x69, 0xe6, 0x04, 0x00, 0x44, 0xcc, 0x7b, 0x60, 0x04, 0x80, + 0x04, 0xf4, 0x7e, 0x04, 0x40, 0x4b, 0x3a, 0x98, 0x7c, 0x04, 0x40, 0x4a, + 0x29, 0xaa, 0x4e, 0xa6, 0x00, 0x42, 0x80, 0x20, 0x0a, 0x04, 0x40, 0x47, + 0x3f, 0x86, 0x68, 0xa6, 0x00, 0x48, 0x23, 0x92, 0x4a, 0xa6, 0x40, 0x42, + 0x22, 0x00, 0x14, 0x05, 0x00, 0x49, 0x38, 0x59, 0x66, 0x04, 0x00, 0x42, + 0x80, 0x20, 0x09, 0x04, 0x40, 0xe1, 0x1a, 0x04, 0x80, 0x4e, 0x4d, 0x88, + 0x83, 0xcb, 0x04, 0x00, 0x42, 0x80, 0x20, 0x0c, 0x04, 0x00, 0xaf, 0x06, + 0x42, 0x5a, 0x03, 0x6e, 0x04, 0x40, 0x03, 0xb6, 0xd1, 0x06, 0x43, 0xad, + 0x80, 0x80, 0x04, 0x40, 0xa4, 0x1e, 0x43, 0x7f, 0x20, 0x08, 0x05, 0x00, + 0x43, 0xb2, 0x84, 0x0a, 0x05, 0x00, 0x43, 0xda, 0x9d, 0x0c, 0x05, 0x00, + 0x43, 0xa0, 0xf4, 0x0e, 0x05, 0x00, 0x43, 0xd9, 0xf4, 0x04, 0x05, 0x40, + 0xe5, 0x00, 0x05, 0x00, 0x42, 0x80, 0x20, 0x02, 0x05, 0x00, 0x43, 0xd9, + 0xf4, 0x06, 0x05, 0x40, 0x06, 0x50, 0x00, 0x01, 0xff, 0x49, 0x1d, 0x2b, + 0x9a, 0x04, 0x00, 0x44, 0xac, 0x0e, 0xc3, 0x04, 0x00, 0x46, 0x52, 0x05, + 0x9e, 0x04, 0x00, 0x4f, 0x9c, 0x33, 0x9c, 0x04, 0x40, 0x06, 0x50, 0x00, + 0x54, 0xe5, 0x15, 0x04, 0x80, 0x3e, 0xef, 0x01, 0x04, 0x80, 0x0d, 0x46, + 0x90, 0xe1, 0x74, 0x04, 0xc0, 0x00, 0x59, 0x08, 0x23, 0x76, 0x04, 0x40, + 0xb4, 0x01, 0xff, 0xe1, 0x46, 0xa6, 0x00, 0x06, 0xf2, 0x02, 0x01, 0xff, + 0xe1, 0x56, 0xa6, 0x00, 0x47, 0x80, 0xcf, 0x6c, 0x04, 0x00, 0x51, 0x30, + 0x59, 0x5c, 0xa6, 0x00, 0xe5, 0x64, 0x04, 0x00, 0x4a, 0x37, 0x59, 0x68, + 0x04, 0x00, 0x43, 0x9d, 0x32, 0x52, 0xa6, 0x40, 0x06, 0x50, 0x00, 0x01, + 0xff, 0x45, 0x53, 0x23, 0xd6, 0x04, 0x00, 0x45, 0x15, 0x23, 0x00, 0x04, + 0x40, 0x49, 0xb7, 0x23, 0xe4, 0x04, 0x00, 0x45, 0x15, 0x23, 0x0d, 0x04, + 0x00, 0x46, 0xad, 0x70, 0xe2, 0x04, 0x40, 0xe1, 0x25, 0x04, 0x80, 0x06, + 0x42, 0x15, 0x01, 0x94, 0xa6, 0x40, 0x06, 0x50, 0x00, 0x06, 0x47, 0xfc, + 0x92, 0x2a, 0x04, 0x40, 0x49, 0x1d, 0x2b, 0xb2, 0x04, 0x00, 0x44, 0xac, + 0x0e, 0xfc, 0x04, 0x00, 0x46, 0x52, 0x05, 0xfe, 0x04, 0x40, 0x42, 0xb0, + 0x01, 0x13, 0x04, 0x80, 0x06, 0x42, 0x80, 0x20, 0x03, 0x04, 0x40, 0x06, + 0x50, 0x00, 0x01, 0xff, 0x49, 0x1d, 0x2b, 0xf6, 0x04, 0x00, 0x4b, 0x93, + 0x9f, 0x94, 0x04, 0x00, 0x46, 0x52, 0x05, 0x92, 0x04, 0x80, 0x06, 0x46, + 0xe0, 0x68, 0x90, 0x04, 0x40, 0x49, 0xc0, 0x23, 0xfa, 0x04, 0x40, 0x4f, + 0xf6, 0x69, 0xec, 0x04, 0x00, 0xe6, 0x24, 0x04, 0x00, 0xec, 0x1b, 0x04, + 0x80, 0x49, 0xed, 0x1c, 0x04, 0x80, 0x3e, 0xee, 0x1d, 0x04, 0x80, 0x16, + 0xf2, 0x20, 0x04, 0x80, 0x0b, 0xf3, 0x21, 0x04, 0xc0, 0x00, 0x4f, 0xe7, + 0x69, 0xaa, 0x04, 0x40, 0x4a, 0xa5, 0xa6, 0x8e, 0x04, 0x40, 0x06, 0x50, + 0x00, 0x01, 0xff, 0x49, 0x1d, 0x2b, 0xa2, 0x04, 0x00, 0x44, 0xac, 0x0e, + 0xc7, 0x04, 0x00, 0x49, 0xb1, 0x57, 0x28, 0x05, 0x00, 0x4b, 0x93, 0x9f, + 0x22, 0x05, 0x00, 0x44, 0x8f, 0x17, 0xc9, 0x04, 0x40, 0x4a, 0x9b, 0xa6, + 0xcd, 0x04, 0x40, 0x06, 0x50, 0x00, 0x01, 0xff, 0x49, 0x1d, 0x2b, 0x2e, + 0x05, 0x00, 0x44, 0xac, 0x0e, 0x12, 0x05, 0x00, 0x4b, 0x93, 0x9f, 0x20, + 0x05, 0x00, 0x44, 0x8f, 0x17, 0xc5, 0x04, 0x40, 0x43, 0x6d, 0x14, 0x2c, + 0x05, 0x00, 0xe5, 0x14, 0x04, 0x00, 0x42, 0x80, 0x20, 0x02, 0x04, 0x80, + 0x3b, 0x06, 0x3c, 0x01, 0x2d, 0x42, 0x15, 0x01, 0x80, 0xa6, 0x00, 0xba, + 0x01, 0xff, 0xe5, 0x05, 0x04, 0x80, 0x19, 0x42, 0xb0, 0x01, 0x0f, 0x04, + 0x00, 0x42, 0x15, 0x01, 0x82, 0xa6, 0x00, 0xba, 0x01, 0xff, 0xe5, 0x88, + 0xa6, 0x00, 0x42, 0xb0, 0x01, 0x2a, 0x05, 0x40, 0x42, 0x13, 0x01, 0x42, + 0xa6, 0x40, 0x4b, 0xa9, 0x9f, 0x6c, 0xa6, 0x00, 0xef, 0x98, 0xa6, 0x40, + 0x42, 0x78, 0x0f, 0x48, 0xa6, 0x40, 0x43, 0x6d, 0x14, 0x86, 0xa6, 0x00, + 0x42, 0xb0, 0x01, 0x27, 0x04, 0x80, 0x0c, 0x50, 0x31, 0x59, 0x58, 0xa6, + 0x00, 0x48, 0x80, 0xca, 0x9a, 0xa6, 0x40, 0x06, 0x50, 0x00, 0x01, 0xff, + 0xa4, 0x06, 0x4f, 0x9c, 0x33, 0xb8, 0x04, 0x40, 0x48, 0x1e, 0x2b, 0xb6, + 0x04, 0x00, 0x48, 0xb8, 0x23, 0xf4, 0x04, 0x40, 0xa1, 0x24, 0xe5, 0x11, + 0x04, 0x00, 0xa9, 0x12, 0x4a, 0xdb, 0xac, 0x5a, 0xa6, 0x00, 0x4a, 0x7d, + 0xb0, 0x4c, 0xa6, 0x00, 0x57, 0x84, 0x08, 0x06, 0x04, 0x40, 0x45, 0x82, + 0xcf, 0x6a, 0x04, 0x00, 0x49, 0xab, 0x9f, 0x6a, 0xa6, 0x40, 0x46, 0x0a, + 0xcf, 0xe8, 0x04, 0x80, 0x06, 0x48, 0xd0, 0xca, 0xa0, 0x04, 0x40, 0x4f, + 0xf6, 0x69, 0xea, 0x04, 0x40, 0x06, 0x50, 0x00, 0x23, 0x09, 0xba, 0xb6, + 0x06, 0x47, 0xd6, 0xd2, 0x1e, 0x05, 0x40, 0x43, 0x6d, 0x14, 0xbc, 0x04, + 0x80, 0x0c, 0x43, 0x28, 0xf4, 0xe0, 0x04, 0x00, 0x42, 0x22, 0x00, 0xa8, + 0x04, 0x40, 0x4f, 0xe7, 0x69, 0xbe, 0x04, 0x40, 0x45, 0x53, 0x23, 0xd0, + 0x04, 0x00, 0x49, 0xb7, 0x23, 0xd2, 0x04, 0x40, 0x0d, 0x65, 0x84, 0xbc, + 0x03, 0x10, 0x76, 0x65, 0x01, 0xff, 0x90, 0x44, 0x91, 0x0d, 0x02, 0xaa, + 0xf3, 0x01, 0xff, 0xd1, 0xf1, 0x2f, 0x01, 0xd2, 0xf2, 0x2f, 0x41, 0x90, + 0x0f, 0x91, 0x01, 0xff, 0xd0, 0xee, 0x2f, 0x01, 0xd2, 0xef, 0x2f, 0x01, + 0xd4, 0xf0, 0x2f, 0x41, 0xd0, 0xe5, 0x2f, 0x01, 0xd1, 0xe6, 0x2f, 0x01, + 0xd2, 0xe7, 0x2f, 0x01, 0xd3, 0xe8, 0x2f, 0x01, 0xd4, 0xe9, 0x2f, 0x01, + 0xd5, 0xea, 0x2f, 0x01, 0xd7, 0xeb, 0x2f, 0x01, 0xd8, 0xec, 0x2f, 0x01, + 0xd9, 0xed, 0x2f, 0x41, 0x90, 0xce, 0x02, 0x91, 0xaa, 0x02, 0x92, 0x87, + 0x02, 0x93, 0xe4, 0x01, 0x94, 0xc9, 0x01, 0x95, 0xa2, 0x01, 0x96, 0x7c, + 0x97, 0x51, 0x98, 0x27, 0x99, 0x01, 0xff, 0xd0, 0xdc, 0x2f, 0x01, 0xd1, + 0xdd, 0x2f, 0x01, 0xd2, 0xde, 0x2f, 0x01, 0xd4, 0xdf, 0x2f, 0x01, 0xd5, + 0xe0, 0x2f, 0x01, 0xd6, 0xe1, 0x2f, 0x01, 0xd7, 0xe2, 0x2f, 0x01, 0xd8, + 0xe3, 0x2f, 0x01, 0xd9, 0xe4, 0x2f, 0x41, 0xd0, 0xd2, 0x2f, 0x01, 0xd1, + 0xd3, 0x2f, 0x01, 0xd2, 0xd4, 0x2f, 0x01, 0xd3, 0xd5, 0x2f, 0x01, 0xd4, + 0xd6, 0x2f, 0x01, 0xd5, 0xd7, 0x2f, 0x01, 0xd6, 0xd8, 0x2f, 0x01, 0xd7, + 0xd9, 0x2f, 0x01, 0xd8, 0xda, 0x2f, 0x01, 0xd9, 0xdb, 0x2f, 0x41, 0xd0, + 0xc8, 0x2f, 0x01, 0xd1, 0xc9, 0x2f, 0x01, 0xd2, 0xca, 0x2f, 0x01, 0xd3, + 0xcb, 0x2f, 0x01, 0xd4, 0xcc, 0x2f, 0x01, 0xd5, 0xcd, 0x2f, 0x81, 0x0c, + 0xd6, 0xcf, 0x2f, 0x01, 0xd8, 0xd0, 0x2f, 0x01, 0xd9, 0xd1, 0x2f, 0x41, + 0xe2, 0xce, 0x2f, 0x41, 0xd0, 0xbf, 0x2f, 0x01, 0xd1, 0xc0, 0x2f, 0x01, + 0xd2, 0xc1, 0x2f, 0x01, 0xd3, 0xc2, 0x2f, 0x01, 0xd4, 0xc3, 0x2f, 0x01, + 0xd6, 0xc4, 0x2f, 0x01, 0xd7, 0xc5, 0x2f, 0x01, 0xd8, 0xc6, 0x2f, 0x01, + 0xd9, 0xc7, 0x2f, 0x41, 0xd0, 0xb6, 0x2f, 0x01, 0xd1, 0xb7, 0x2f, 0x01, + 0xd2, 0xb8, 0x2f, 0x01, 0xd3, 0xb9, 0x2f, 0x01, 0xd4, 0xba, 0x2f, 0x01, + 0xd5, 0xbb, 0x2f, 0x01, 0xd6, 0xbc, 0x2f, 0x01, 0xd8, 0xbd, 0x2f, 0x01, + 0xd9, 0xbe, 0x2f, 0x41, 0xd0, 0xb0, 0x2f, 0x01, 0xd1, 0xb1, 0x2f, 0x01, + 0xd4, 0xb2, 0x2f, 0x01, 0xd6, 0xb3, 0x2f, 0x01, 0xd7, 0xb4, 0x2f, 0x01, + 0xd9, 0xb5, 0x2f, 0x41, 0xd0, 0xa8, 0x2f, 0x01, 0xd3, 0xa9, 0x2f, 0x01, + 0xd4, 0xaa, 0x2f, 0x01, 0xd5, 0xab, 0x2f, 0x01, 0xd6, 0xac, 0x2f, 0x01, + 0xd7, 0xad, 0x2f, 0x01, 0xd8, 0xae, 0x2f, 0x01, 0xd9, 0xaf, 0x2f, 0x41, + 0xd1, 0xa0, 0x2f, 0x01, 0xd3, 0xa1, 0x2f, 0x01, 0xd4, 0xa2, 0x2f, 0x01, + 0xd5, 0xa3, 0x2f, 0x01, 0xd6, 0xa4, 0x2f, 0x01, 0xd7, 0xa5, 0x2f, 0x01, + 0xd8, 0xa6, 0x2f, 0x01, 0xd9, 0xa7, 0x2f, 0x41, 0xd0, 0x98, 0x2f, 0x01, + 0xd1, 0x99, 0x2f, 0x01, 0xd2, 0x9a, 0x2f, 0x81, 0x10, 0xd3, 0x9c, 0x2f, + 0x01, 0xd5, 0x9d, 0x2f, 0x01, 0xd7, 0x9e, 0x2f, 0x01, 0xd9, 0x9f, 0x2f, + 0x41, 0xe2, 0x9b, 0x2f, 0x41, 0xd1, 0x90, 0x2f, 0x01, 0xd2, 0x91, 0x2f, + 0x01, 0xd4, 0x92, 0x2f, 0x01, 0xd5, 0x93, 0x2f, 0x01, 0xd6, 0x94, 0x2f, + 0x01, 0xd7, 0x95, 0x2f, 0x01, 0xd8, 0x96, 0x2f, 0x01, 0xd9, 0x97, 0x2f, + 0x41, 0xe1, 0x00, 0x08, 0x01, 0xe5, 0x01, 0x08, 0x01, 0xe9, 0x02, 0x08, + 0x01, 0xaa, 0xe3, 0x01, 0xab, 0xcc, 0x01, 0xac, 0xb5, 0x01, 0xad, 0x9e, + 0x01, 0xae, 0x87, 0x01, 0xef, 0x03, 0x08, 0x01, 0xb0, 0x6d, 0xb2, 0x57, + 0xb3, 0x41, 0xb4, 0x2b, 0xf5, 0x04, 0x08, 0x01, 0xb7, 0x15, 0xb8, 0x0b, + 0xba, 0x01, 0xff, 0xe1, 0x3c, 0x08, 0x01, 0xef, 0x3f, 0x08, 0x41, 0xe1, + 0x37, 0x08, 0x01, 0xe5, 0x38, 0x08, 0x41, 0xe1, 0x32, 0x08, 0x01, 0xe5, + 0x33, 0x08, 0x01, 0xe9, 0x34, 0x08, 0x01, 0xef, 0x35, 0x08, 0x41, 0xe1, + 0x2d, 0x08, 0x01, 0xe5, 0x2e, 0x08, 0x01, 0xe9, 0x2f, 0x08, 0x01, 0xef, + 0x30, 0x08, 0x01, 0xf5, 0x31, 0x08, 0x41, 0xe1, 0x28, 0x08, 0x01, 0xe5, + 0x29, 0x08, 0x01, 0xe9, 0x2a, 0x08, 0x01, 0xef, 0x2b, 0x08, 0x01, 0xf5, + 0x2c, 0x08, 0x41, 0xe1, 0x23, 0x08, 0x01, 0xe5, 0x24, 0x08, 0x01, 0xe9, + 0x25, 0x08, 0x01, 0xef, 0x26, 0x08, 0x01, 0xf5, 0x27, 0x08, 0x41, 0xe1, + 0x1e, 0x08, 0x01, 0xe5, 0x1f, 0x08, 0x01, 0xe9, 0x20, 0x08, 0x01, 0xef, + 0x21, 0x08, 0x01, 0xf5, 0x22, 0x08, 0x41, 0xe1, 0x19, 0x08, 0x01, 0xe5, + 0x1a, 0x08, 0x01, 0xe9, 0x1b, 0x08, 0x01, 0xef, 0x1c, 0x08, 0x01, 0xf5, + 0x1d, 0x08, 0x41, 0xe1, 0x14, 0x08, 0x01, 0xe5, 0x15, 0x08, 0x01, 0xe9, + 0x16, 0x08, 0x01, 0xef, 0x17, 0x08, 0x01, 0xf5, 0x18, 0x08, 0x41, 0xe1, + 0x0f, 0x08, 0x01, 0xe5, 0x10, 0x08, 0x01, 0xe9, 0x11, 0x08, 0x01, 0xef, + 0x12, 0x08, 0x01, 0xf5, 0x13, 0x08, 0x41, 0xe1, 0x0a, 0x08, 0x01, 0xe5, + 0x0b, 0x08, 0x01, 0xe9, 0x0c, 0x08, 0x01, 0xef, 0x0d, 0x08, 0x01, 0xf5, + 0x0e, 0x08, 0x41, 0xe1, 0x05, 0x08, 0x01, 0xef, 0x08, 0x08, 0x41, 0x47, + 0x8b, 0xb7, 0x1b, 0x22, 0x00, 0x46, 0xc4, 0xda, 0x52, 0xf9, 0x01, 0x08, + 0xa0, 0xc8, 0x80, 0x01, 0xb0, 0x64, 0xb2, 0x16, 0x02, 0x60, 0x01, 0x06, + 0x49, 0x84, 0xbf, 0x69, 0xf9, 0x41, 0x43, 0xaa, 0x01, 0x6e, 0xf3, 0x01, + 0x43, 0x04, 0x67, 0xc3, 0xf6, 0x41, 0xac, 0x1e, 0xb2, 0x06, 0x60, 0x74, + 0x10, 0x61, 0x27, 0x40, 0x05, 0x58, 0x41, 0x06, 0x4a, 0xcf, 0xb3, 0x5b, + 0xf3, 0x41, 0x48, 0x10, 0xc6, 0xb1, 0xf4, 0x01, 0x44, 0x5a, 0x03, 0xa4, + 0x00, 0x40, 0x49, 0x98, 0xba, 0x4c, 0xf9, 0x01, 0x02, 0x09, 0x00, 0x01, + 0xff, 0x51, 0xb9, 0x58, 0xaa, 0x23, 0x00, 0x02, 0x13, 0x01, 0x01, 0xff, + 0x06, 0x2d, 0x22, 0x06, 0x42, 0x1f, 0x00, 0xb0, 0x27, 0x40, 0x43, 0x1a, + 0x00, 0xcf, 0x22, 0x00, 0x42, 0x0c, 0x00, 0xce, 0x22, 0x40, 0x80, 0x0c, + 0x44, 0x5f, 0x2c, 0xc1, 0xf9, 0x01, 0x43, 0x38, 0x66, 0xe0, 0x2b, 0x40, + 0x4f, 0xc5, 0x5f, 0xfe, 0x26, 0x00, 0x4a, 0x9d, 0xb3, 0x64, 0xf9, 0x41, + 0x0d, 0xa1, 0x86, 0xfa, 0x37, 0x11, 0x5f, 0x5d, 0xd3, 0x37, 0x05, 0x5a, + 0x03, 0x01, 0xff, 0xe1, 0x00, 0x20, 0x81, 0xf8, 0x33, 0xa2, 0xd1, 0x32, + 0xa4, 0x9b, 0x2e, 0xe5, 0x8a, 0x20, 0x81, 0x9f, 0x2b, 0xa7, 0xe1, 0x23, + 0xa8, 0xc2, 0x22, 0xe9, 0x3f, 0x21, 0x81, 0xb3, 0x21, 0xab, 0xad, 0x1c, + 0xac, 0x86, 0x13, 0xad, 0xab, 0x11, 0xae, 0xaa, 0x0d, 0xb0, 0xa0, 0x0c, + 0xb2, 0x8c, 0x0c, 0xb3, 0x95, 0x07, 0xb4, 0xb2, 0x05, 0xf5, 0x0b, 0x23, + 0x81, 0x77, 0xba, 0x01, 0xff, 0xe1, 0x5d, 0x23, 0x81, 0x53, 0x42, 0x73, + 0x9b, 0x62, 0x23, 0x01, 0xe9, 0x63, 0x23, 0x81, 0x29, 0xf5, 0x6a, 0x23, + 0xc1, 0x00, 0x51, 0x32, 0x57, 0x42, 0x25, 0x01, 0xd5, 0x6b, 0x23, 0x81, + 0x0a, 0x43, 0x07, 0x36, 0x6d, 0x23, 0x01, 0xed, 0x6e, 0x23, 0x41, 0x07, + 0x27, 0x02, 0x01, 0xff, 0xe1, 0x6c, 0x23, 0x01, 0x4f, 0xa1, 0x73, 0x43, + 0x25, 0x41, 0x48, 0x50, 0xc2, 0x64, 0x23, 0x01, 0xd3, 0x65, 0x23, 0x01, + 0xe2, 0x66, 0x23, 0x81, 0x0a, 0xe7, 0x68, 0x23, 0x01, 0x42, 0x6b, 0xf3, + 0x69, 0x23, 0x41, 0x4a, 0xd3, 0xa5, 0x67, 0x23, 0x41, 0x80, 0x0e, 0xd7, + 0x41, 0x25, 0x01, 0xe7, 0x60, 0x23, 0x01, 0x42, 0xad, 0xf4, 0x61, 0x23, + 0x41, 0x51, 0xf8, 0x5d, 0x5f, 0x23, 0x01, 0x44, 0x82, 0x60, 0x5e, 0x23, + 0x41, 0x80, 0x8c, 0x04, 0xd2, 0x11, 0x23, 0x01, 0xe2, 0x12, 0x23, 0x01, + 0xe4, 0x13, 0x23, 0x81, 0xbf, 0x03, 0xed, 0x1d, 0x23, 0x81, 0xfa, 0x02, + 0xee, 0x26, 0x23, 0x81, 0xee, 0x02, 0xf2, 0x28, 0x23, 0x81, 0x46, 0x42, + 0xa4, 0x02, 0x51, 0x23, 0x81, 0x18, 0x44, 0xc1, 0xf2, 0x59, 0x23, 0x01, + 0xba, 0x01, 0xff, 0xd3, 0x5a, 0x23, 0x81, 0x04, 0xf5, 0x5c, 0x23, 0x41, + 0x4d, 0xac, 0x7f, 0x5b, 0x23, 0x41, 0x07, 0x27, 0x02, 0x0e, 0xd2, 0x57, + 0x23, 0x01, 0x43, 0xac, 0xf4, 0x58, 0x23, 0x01, 0xf8, 0x56, 0x23, 0x41, + 0xe1, 0x52, 0x23, 0x01, 0x42, 0xfe, 0x03, 0x53, 0x23, 0x81, 0x06, 0x44, + 0x10, 0x45, 0x55, 0x23, 0x41, 0xf2, 0x54, 0x23, 0x41, 0x80, 0x94, 0x02, + 0xd2, 0x2b, 0x23, 0x81, 0xc1, 0x01, 0xd4, 0x34, 0x23, 0x01, 0xe9, 0x35, + 0x23, 0x81, 0xb3, 0x01, 0xf5, 0x37, 0x23, 0xc1, 0x00, 0x07, 0x27, 0x02, + 0x0d, 0x42, 0xf0, 0x10, 0x4f, 0x23, 0xc1, 0x00, 0x48, 0x27, 0x02, 0x50, + 0x23, 0x41, 0xe1, 0x38, 0x23, 0x81, 0x91, 0x01, 0x43, 0x16, 0x00, 0x3a, + 0x23, 0x01, 0xa4, 0x7d, 0xa7, 0x64, 0x42, 0x22, 0x00, 0x41, 0x23, 0x01, + 0xa9, 0x4c, 0x42, 0x45, 0x00, 0x45, 0x23, 0x01, 0xac, 0x33, 0x43, 0xcb, + 0x13, 0x47, 0x23, 0x01, 0x42, 0xbb, 0x09, 0x48, 0x23, 0x01, 0xb3, 0x19, + 0x42, 0x5c, 0x01, 0x4b, 0x23, 0x01, 0xb5, 0x01, 0xff, 0x49, 0x95, 0xb4, + 0x4c, 0x23, 0x01, 0xe4, 0x4d, 0x23, 0x01, 0x44, 0xf7, 0xcb, 0x4e, 0x23, + 0x41, 0x42, 0xb0, 0x01, 0x49, 0x23, 0x01, 0x43, 0x85, 0x69, 0x4a, 0x23, + 0x41, 0x46, 0xa4, 0xd9, 0x3f, 0x25, 0x01, 0xb5, 0x01, 0xff, 0xd3, 0x40, + 0x25, 0x01, 0xed, 0x46, 0x23, 0x41, 0x42, 0xf1, 0x06, 0x42, 0x23, 0x01, + 0xed, 0x43, 0x23, 0x01, 0x42, 0xa4, 0x02, 0x44, 0x23, 0x41, 0xe1, 0x3c, + 0x23, 0x81, 0x04, 0xf5, 0x40, 0x23, 0x41, 0xec, 0x3d, 0x23, 0x01, 0x47, + 0x8f, 0x60, 0x3e, 0x23, 0x01, 0xf2, 0x3f, 0x23, 0x41, 0x44, 0x11, 0xef, + 0x3e, 0x25, 0x01, 0x42, 0x42, 0x0b, 0x3b, 0x23, 0x41, 0x45, 0xed, 0xd9, + 0x39, 0x23, 0x41, 0xd3, 0x36, 0x23, 0x41, 0x80, 0x01, 0xff, 0x48, 0x5e, + 0x23, 0x3c, 0x25, 0x01, 0x06, 0x28, 0x02, 0x01, 0xff, 0xa1, 0x29, 0x42, + 0x22, 0x00, 0x2f, 0x23, 0x01, 0x43, 0xdc, 0x22, 0x30, 0x23, 0x01, 0xb5, + 0x01, 0xff, 0xd2, 0x31, 0x23, 0x81, 0x04, 0xe4, 0x3d, 0x25, 0x41, 0x06, + 0x57, 0x28, 0x01, 0xff, 0x43, 0xf9, 0x03, 0x32, 0x23, 0x01, 0x42, 0xe5, + 0x06, 0x33, 0x23, 0x41, 0x06, 0x57, 0x28, 0x04, 0xec, 0x2e, 0x23, 0x41, + 0x42, 0x22, 0x00, 0x2c, 0x23, 0x01, 0x42, 0x2a, 0x05, 0x2d, 0x23, 0x41, + 0x4b, 0x8c, 0x9a, 0x29, 0x23, 0x01, 0x47, 0x1b, 0x7c, 0x2a, 0x23, 0x41, + 0x45, 0xbb, 0x3f, 0x27, 0x23, 0x41, 0x07, 0x27, 0x02, 0x1e, 0x43, 0x35, + 0x16, 0x22, 0x23, 0x01, 0x42, 0x48, 0x04, 0x23, 0x23, 0xc1, 0x00, 0x07, + 0x27, 0x02, 0x01, 0xff, 0x46, 0x1b, 0x02, 0x24, 0x23, 0x01, 0x42, 0xbb, + 0x09, 0x25, 0x23, 0x41, 0x45, 0x22, 0x02, 0x1e, 0x23, 0x01, 0x42, 0x2a, + 0x02, 0x98, 0x23, 0x81, 0x0a, 0x44, 0x49, 0x57, 0x20, 0x23, 0x01, 0xf5, + 0x21, 0x23, 0x41, 0x48, 0xd4, 0x57, 0x1f, 0x23, 0x41, 0x80, 0x06, 0x42, + 0xd2, 0x0e, 0x1c, 0x23, 0x41, 0x44, 0xbc, 0x3f, 0x19, 0x23, 0x01, 0x46, + 0x7c, 0xdd, 0x14, 0x23, 0x01, 0x47, 0x1b, 0x7c, 0x1a, 0x23, 0x81, 0x1e, + 0x06, 0x28, 0x02, 0x01, 0xff, 0x43, 0xe9, 0x70, 0x15, 0x23, 0x01, 0x42, + 0x7d, 0x02, 0x16, 0x23, 0x01, 0x4f, 0x19, 0x74, 0x17, 0x23, 0xc1, 0x00, + 0x45, 0xbb, 0x3f, 0x18, 0x23, 0x41, 0x4a, 0x2c, 0x9d, 0x1b, 0x23, 0x41, + 0x43, 0xec, 0x7a, 0x0c, 0x23, 0x01, 0x07, 0x5f, 0x22, 0x0b, 0xf5, 0x99, + 0x23, 0xc1, 0x00, 0x42, 0x2d, 0x02, 0x0d, 0x23, 0x41, 0x57, 0x52, 0x30, + 0x0e, 0x23, 0x01, 0x4c, 0x7f, 0x95, 0x0f, 0x23, 0x01, 0x5a, 0x54, 0x22, + 0x10, 0x23, 0x41, 0xe1, 0xeb, 0x22, 0x81, 0x69, 0xe5, 0xfc, 0x22, 0x81, + 0x5e, 0xe9, 0xfe, 0x22, 0x81, 0x30, 0xf5, 0x05, 0x23, 0xc1, 0x00, 0x42, + 0xd3, 0x0e, 0x06, 0x23, 0x01, 0xeb, 0x07, 0x23, 0x01, 0xed, 0x08, 0x23, + 0x81, 0x0b, 0xf2, 0x09, 0x23, 0xc1, 0x00, 0x54, 0xc4, 0x3f, 0x0a, 0x23, + 0x41, 0x07, 0x27, 0x02, 0x01, 0xff, 0x49, 0x8d, 0x60, 0x3a, 0x25, 0x01, + 0x4a, 0xa1, 0x73, 0x3b, 0x25, 0x41, 0x45, 0x81, 0x60, 0xff, 0x22, 0x01, + 0xd2, 0x97, 0x23, 0x01, 0xec, 0x00, 0x23, 0x01, 0xf2, 0x01, 0x23, 0xc1, + 0x00, 0x80, 0x01, 0xff, 0x48, 0xa8, 0xc9, 0x03, 0x23, 0x81, 0x06, 0x4a, + 0x0a, 0x45, 0x02, 0x23, 0x41, 0x5a, 0x5e, 0x1e, 0x04, 0x23, 0x41, 0x45, + 0xbb, 0x3f, 0xfd, 0x22, 0x41, 0x80, 0x53, 0xe2, 0xf0, 0x22, 0x81, 0x3f, + 0xe7, 0xf3, 0x22, 0x81, 0x11, 0x42, 0x12, 0x45, 0xfa, 0x22, 0x81, 0x04, + 0xf2, 0xfb, 0x22, 0x41, 0x49, 0xb0, 0xb4, 0x39, 0x25, 0x41, 0x07, 0x27, + 0x02, 0x01, 0xff, 0x42, 0xe5, 0x06, 0xf4, 0x22, 0x01, 0x43, 0xec, 0x7a, + 0xf5, 0x22, 0x01, 0x02, 0xa4, 0x02, 0x0c, 0x44, 0xd1, 0x0e, 0xf8, 0x22, + 0x01, 0x42, 0xb2, 0x0c, 0xf9, 0x22, 0x41, 0xe5, 0xf6, 0x22, 0x01, 0xf5, + 0xf7, 0x22, 0x41, 0x80, 0x01, 0xff, 0x62, 0xbc, 0x0c, 0xf1, 0x22, 0x01, + 0x47, 0xd6, 0x05, 0xf2, 0x22, 0x41, 0x48, 0x3c, 0x0d, 0xec, 0x22, 0x01, + 0x44, 0xbc, 0x3f, 0xef, 0x22, 0x01, 0x06, 0x28, 0x02, 0x01, 0xff, 0x42, + 0x49, 0x00, 0xed, 0x22, 0x01, 0x42, 0x7d, 0x02, 0xee, 0x22, 0x41, 0xe1, + 0x93, 0x22, 0x81, 0xb3, 0x03, 0xa8, 0x5d, 0xe9, 0xdb, 0x22, 0x81, 0x2e, + 0xf5, 0xe2, 0x22, 0xc1, 0x00, 0x48, 0x82, 0x95, 0xe3, 0x22, 0x01, 0xe4, + 0xe4, 0x22, 0x81, 0x1a, 0x43, 0x41, 0x00, 0xe6, 0x22, 0x01, 0xed, 0xe7, + 0x22, 0x81, 0x09, 0xf2, 0xe9, 0x22, 0xc1, 0x00, 0xd9, 0xea, 0x22, 0x41, + 0x43, 0xf9, 0x03, 0xe8, 0x22, 0x41, 0xd2, 0xe5, 0x22, 0x41, 0x80, 0x1c, + 0xe7, 0xdd, 0x22, 0x81, 0x0c, 0x42, 0x45, 0xac, 0xe0, 0x22, 0x01, 0x43, + 0xfd, 0xea, 0xe1, 0x22, 0x41, 0xd4, 0xde, 0x22, 0xc1, 0x00, 0x4f, 0x7e, + 0x69, 0xdf, 0x22, 0x41, 0x44, 0xbc, 0x3f, 0xdc, 0x22, 0x01, 0x4a, 0x0a, + 0x45, 0x38, 0x25, 0x41, 0xe1, 0xad, 0x22, 0x81, 0x80, 0x02, 0xe5, 0xba, + 0x22, 0x81, 0xaa, 0x01, 0xa9, 0x27, 0xf5, 0xd7, 0x22, 0xc1, 0x00, 0x52, + 0x69, 0x4f, 0xd8, 0x22, 0x01, 0xd2, 0xd9, 0x22, 0x81, 0x06, 0x43, 0x07, + 0x36, 0xda, 0x22, 0x41, 0x06, 0x57, 0x28, 0x01, 0xff, 0x4c, 0x53, 0x8e, + 0x36, 0x25, 0x01, 0x4b, 0x73, 0x9b, 0x37, 0x25, 0x41, 0xe4, 0xc3, 0x22, + 0x81, 0x6d, 0xed, 0xc6, 0x22, 0x81, 0x20, 0x43, 0x4e, 0x09, 0xd2, 0x22, + 0x01, 0xf2, 0xd3, 0x22, 0x81, 0x06, 0x42, 0x12, 0x00, 0xd6, 0x22, 0x41, + 0x80, 0x01, 0xff, 0x56, 0x13, 0x36, 0xd5, 0x22, 0x01, 0x44, 0x82, 0x60, + 0xd4, 0x22, 0x41, 0x07, 0x27, 0x02, 0x01, 0xff, 0xe1, 0xc7, 0x22, 0x01, + 0xa2, 0x31, 0x43, 0x04, 0x06, 0xca, 0x22, 0x01, 0x43, 0x6c, 0x1e, 0xcb, + 0x22, 0x01, 0x43, 0xf0, 0x06, 0xcc, 0x22, 0x81, 0x18, 0x46, 0x7c, 0xdd, + 0xce, 0x22, 0x01, 0x43, 0x73, 0xf4, 0xcf, 0x22, 0x01, 0x43, 0x92, 0xb6, + 0xd0, 0x22, 0x01, 0x43, 0x65, 0x0d, 0xd1, 0x22, 0x41, 0x45, 0xbb, 0x3f, + 0xcd, 0x22, 0x41, 0x42, 0x13, 0x00, 0xc8, 0x22, 0x01, 0x44, 0x91, 0x97, + 0xc9, 0x22, 0x41, 0x07, 0x27, 0x02, 0x01, 0xff, 0xe1, 0xc4, 0x22, 0x01, + 0x42, 0x29, 0x02, 0xc5, 0x22, 0x41, 0x80, 0x1b, 0x42, 0x16, 0xf5, 0xbe, + 0x22, 0x01, 0xee, 0xbf, 0x22, 0x01, 0x42, 0xa4, 0x02, 0xc0, 0x22, 0xc1, + 0x00, 0xd2, 0xc1, 0x22, 0x01, 0x43, 0xb0, 0x00, 0xc2, 0x22, 0x41, 0x42, + 0x41, 0x00, 0xbb, 0x22, 0x01, 0x48, 0xa0, 0xc9, 0x32, 0x25, 0x81, 0x17, + 0x05, 0x58, 0x28, 0x01, 0xff, 0x44, 0x5d, 0xf0, 0x33, 0x25, 0x01, 0x44, + 0x5d, 0xf1, 0x34, 0x25, 0x01, 0x43, 0xec, 0x4b, 0x35, 0x25, 0x41, 0x80, + 0x01, 0xff, 0x59, 0x5f, 0x1e, 0xbc, 0x22, 0x01, 0x59, 0x73, 0x26, 0xbd, + 0x22, 0x41, 0xd3, 0xae, 0x22, 0x81, 0x17, 0xd6, 0xb7, 0x22, 0x81, 0x0c, + 0x42, 0xc3, 0xf3, 0xb8, 0x22, 0x01, 0x42, 0xbe, 0x42, 0xb9, 0x22, 0x41, + 0x45, 0x81, 0x60, 0x31, 0x25, 0x41, 0x07, 0x27, 0x02, 0x01, 0xff, 0xe1, + 0xaf, 0x22, 0x01, 0x43, 0xe9, 0x70, 0xb0, 0x22, 0x01, 0x44, 0x05, 0x45, + 0xb1, 0x22, 0x01, 0x42, 0xcd, 0x05, 0xb2, 0x22, 0x01, 0x44, 0x06, 0x67, + 0xb3, 0x22, 0x01, 0x43, 0x5c, 0x01, 0xb4, 0x22, 0x01, 0xf5, 0xb5, 0x22, + 0xc1, 0x00, 0x47, 0x57, 0x28, 0xb6, 0x22, 0x41, 0xe7, 0x95, 0x22, 0x81, + 0x15, 0xec, 0xa9, 0x22, 0x81, 0x0a, 0x44, 0x79, 0xf1, 0xab, 0x22, 0x01, + 0xf2, 0xac, 0x22, 0x41, 0x51, 0x10, 0x57, 0xaa, 0x22, 0x41, 0x80, 0x01, + 0xff, 0x44, 0xbc, 0x3f, 0xa8, 0x22, 0x81, 0x90, 0x01, 0x47, 0x21, 0xc2, + 0x94, 0x22, 0x01, 0x48, 0x98, 0xc9, 0xa7, 0x22, 0x01, 0x06, 0x28, 0x02, + 0x01, 0xff, 0xe1, 0x96, 0x22, 0x01, 0x42, 0x6c, 0x02, 0x97, 0x22, 0x81, + 0x70, 0x42, 0x92, 0x01, 0x2e, 0x25, 0x01, 0x42, 0x22, 0x00, 0x99, 0x22, + 0x01, 0x48, 0xd0, 0x69, 0x96, 0x23, 0x01, 0xab, 0x50, 0x43, 0x89, 0xb4, + 0x9c, 0x22, 0x01, 0x42, 0x7d, 0x02, 0x9d, 0x22, 0x01, 0x43, 0xdc, 0x22, + 0x9e, 0x22, 0x01, 0xb3, 0x27, 0x02, 0x12, 0x00, 0x19, 0xb5, 0x01, 0xff, + 0xd2, 0xa2, 0x22, 0x01, 0xe2, 0xa3, 0x22, 0x01, 0xed, 0xa4, 0x22, 0x01, + 0xf2, 0xa5, 0x22, 0x01, 0x42, 0xa4, 0x02, 0xa6, 0x22, 0x41, 0xe2, 0xa1, + 0x22, 0x01, 0x42, 0x12, 0x45, 0x30, 0x25, 0x41, 0x42, 0x13, 0x00, 0x9f, + 0x22, 0x01, 0xa8, 0x01, 0xff, 0x49, 0xf5, 0xb7, 0x2f, 0x25, 0x01, 0x42, + 0x03, 0x00, 0xa0, 0x22, 0x41, 0x42, 0x6d, 0x00, 0x9a, 0x22, 0x01, 0x42, + 0x42, 0x00, 0x9b, 0x22, 0x41, 0xe2, 0x98, 0x22, 0x41, 0x49, 0xef, 0xb4, + 0x2d, 0x25, 0x41, 0xe1, 0x8f, 0x22, 0x81, 0x08, 0xe9, 0x91, 0x22, 0x01, + 0xf5, 0x92, 0x22, 0x41, 0xe2, 0x90, 0x22, 0x41, 0xe1, 0x7a, 0x22, 0x81, + 0x76, 0x44, 0x6b, 0x75, 0x7e, 0x22, 0x81, 0x69, 0xe9, 0x7f, 0x22, 0xc1, + 0x00, 0x80, 0x2e, 0xb2, 0x01, 0xff, 0xd2, 0x95, 0x23, 0x01, 0x42, 0x3f, + 0x00, 0x8a, 0x22, 0xc1, 0x00, 0x80, 0x01, 0xff, 0x4e, 0x77, 0x7a, 0x8e, + 0x22, 0x01, 0x06, 0x28, 0x02, 0x01, 0xff, 0x43, 0x1e, 0x02, 0x8b, 0x22, + 0x01, 0x42, 0xb2, 0x0c, 0x8c, 0x22, 0x01, 0x42, 0x59, 0x00, 0x8d, 0x22, + 0x41, 0x4b, 0x81, 0x9a, 0x89, 0x22, 0x01, 0x06, 0x28, 0x02, 0x01, 0xff, + 0xe1, 0x80, 0x22, 0x81, 0x20, 0xa2, 0x16, 0xe5, 0x84, 0x22, 0x01, 0xe9, + 0x85, 0x22, 0x81, 0x09, 0xf5, 0x87, 0x22, 0xc1, 0x00, 0xd2, 0x88, 0x22, + 0x41, 0xe2, 0x86, 0x22, 0x41, 0xe9, 0x82, 0x22, 0x01, 0xf5, 0x83, 0x22, + 0x41, 0xe2, 0x81, 0x22, 0x41, 0x49, 0x3b, 0x0d, 0x94, 0x23, 0x41, 0xe4, + 0x7b, 0x22, 0x01, 0xee, 0x7c, 0x22, 0x01, 0xf0, 0x7d, 0x22, 0x41, 0xe1, + 0x3e, 0x22, 0x81, 0xc2, 0x03, 0xe5, 0x48, 0x22, 0x81, 0xa4, 0x03, 0xe9, + 0x4c, 0x22, 0x81, 0xbc, 0x01, 0xf5, 0x61, 0x22, 0xc1, 0x00, 0x42, 0x04, + 0x36, 0x62, 0x22, 0x81, 0x9a, 0x01, 0xee, 0x63, 0x22, 0xc1, 0x00, 0x80, + 0x57, 0x42, 0xac, 0x52, 0x6d, 0x22, 0xc1, 0x00, 0x80, 0x01, 0xff, 0x0a, + 0x45, 0xa7, 0x0d, 0x4f, 0x1e, 0x6f, 0x78, 0x22, 0xc1, 0x00, 0x42, 0x2d, + 0x02, 0x79, 0x22, 0x41, 0x46, 0xec, 0xd9, 0x6e, 0x22, 0x01, 0x42, 0xe5, + 0x06, 0x6f, 0x22, 0x01, 0x43, 0x53, 0x8e, 0x70, 0x22, 0x01, 0x43, 0xec, + 0x7a, 0x71, 0x22, 0x01, 0x48, 0xd0, 0x69, 0x72, 0x22, 0x01, 0x44, 0xc1, + 0xf0, 0x73, 0x22, 0x01, 0x42, 0x74, 0x00, 0x74, 0x22, 0x01, 0x42, 0xcd, + 0x05, 0x75, 0x22, 0x01, 0x45, 0xfb, 0xea, 0x76, 0x22, 0x01, 0x42, 0x08, + 0x67, 0x77, 0x22, 0x41, 0x4c, 0xb7, 0x8d, 0x6b, 0x22, 0x81, 0x2f, 0x0c, + 0xe0, 0x22, 0x0c, 0x48, 0xd7, 0x22, 0x6a, 0x22, 0x01, 0x44, 0x82, 0x60, + 0x69, 0x22, 0x41, 0x43, 0x6c, 0x1e, 0x64, 0x22, 0x01, 0x44, 0x8c, 0x06, + 0x65, 0x22, 0x01, 0x43, 0x65, 0x0d, 0x66, 0x22, 0x81, 0x06, 0x43, 0x30, + 0x7c, 0x68, 0x22, 0x41, 0x59, 0xd6, 0x22, 0x67, 0x22, 0x41, 0x51, 0x21, + 0x57, 0x6c, 0x22, 0x41, 0x80, 0x01, 0xff, 0x56, 0xfd, 0x35, 0xd5, 0x22, + 0x01, 0x56, 0xa4, 0x2c, 0x93, 0x23, 0x01, 0x44, 0x82, 0x60, 0xd4, 0x22, + 0x41, 0x48, 0xd7, 0x97, 0x4d, 0x22, 0x01, 0xd2, 0x4e, 0x22, 0x01, 0xed, + 0x4f, 0x22, 0x81, 0xc1, 0x01, 0xee, 0x8f, 0x23, 0x81, 0x06, 0x43, 0xeb, + 0x88, 0x60, 0x22, 0x41, 0xd9, 0x90, 0x23, 0x01, 0x43, 0x19, 0xf4, 0x52, + 0x22, 0xc1, 0x00, 0x07, 0x27, 0x02, 0x01, 0xff, 0xa1, 0x92, 0x01, 0x43, + 0xcd, 0x1c, 0x91, 0x23, 0x01, 0x48, 0x20, 0xc5, 0x22, 0x25, 0x01, 0xa7, + 0x6e, 0x42, 0x49, 0x00, 0x25, 0x25, 0x01, 0x45, 0xd1, 0xe7, 0x26, 0x25, + 0x01, 0x47, 0xa5, 0xd2, 0x27, 0x25, 0x01, 0xad, 0x4e, 0xae, 0x42, 0x4c, + 0x7c, 0x3d, 0x29, 0x25, 0x01, 0x43, 0x8e, 0x06, 0x5a, 0x22, 0x81, 0x1d, + 0xf5, 0x2a, 0x25, 0xc1, 0x00, 0x47, 0x1a, 0x74, 0x2b, 0x25, 0x01, 0x4a, + 0xeb, 0xa6, 0x5e, 0x22, 0x01, 0x44, 0xf7, 0xcb, 0x2c, 0x25, 0x01, 0x42, + 0xa4, 0x02, 0x5f, 0x22, 0x41, 0x07, 0x57, 0x28, 0x01, 0xff, 0x43, 0x19, + 0x00, 0x5b, 0x22, 0x01, 0x42, 0xa4, 0x02, 0x5c, 0x22, 0xc1, 0x00, 0x49, + 0x18, 0x4d, 0x5d, 0x22, 0x41, 0xe5, 0x58, 0x22, 0x01, 0x42, 0x42, 0x0b, + 0x59, 0x22, 0x41, 0x43, 0xf9, 0x03, 0x28, 0x25, 0x01, 0x50, 0x76, 0x62, + 0x57, 0x22, 0x41, 0xe9, 0x92, 0x23, 0x81, 0x0b, 0xb5, 0x01, 0xff, 0xe4, + 0x56, 0x22, 0x01, 0xec, 0x24, 0x25, 0x41, 0x42, 0xa4, 0x02, 0x23, 0x25, + 0x41, 0xee, 0x53, 0x22, 0x01, 0x42, 0xa4, 0x02, 0x54, 0x22, 0xc1, 0x00, + 0x49, 0x18, 0x4d, 0x55, 0x22, 0x41, 0x09, 0xc0, 0x42, 0x01, 0xff, 0x47, + 0x8f, 0x60, 0x50, 0x22, 0x01, 0x50, 0x26, 0x66, 0x51, 0x22, 0x41, 0x80, + 0x01, 0xff, 0x47, 0x1b, 0x7c, 0x4b, 0x22, 0x01, 0x06, 0x28, 0x02, 0x01, + 0xff, 0xe1, 0x49, 0x22, 0x01, 0x42, 0xb2, 0x0c, 0x4a, 0x22, 0x41, 0xd2, + 0x3f, 0x22, 0x01, 0xd4, 0x8e, 0x23, 0x01, 0x42, 0x24, 0x02, 0x40, 0x22, + 0x81, 0x0f, 0xed, 0x46, 0x22, 0xc1, 0x00, 0x48, 0x20, 0xc2, 0x45, 0x22, + 0x01, 0xd2, 0x47, 0x22, 0x41, 0x80, 0x04, 0xf2, 0x44, 0x22, 0x41, 0x48, + 0x5e, 0x23, 0x41, 0x22, 0x01, 0x4d, 0x23, 0x87, 0x43, 0x22, 0x01, 0x4e, + 0x25, 0x7d, 0x42, 0x22, 0x41, 0xe1, 0x20, 0x22, 0x81, 0xad, 0x01, 0xe5, + 0x28, 0x22, 0x81, 0x9e, 0x01, 0xe9, 0x2a, 0x22, 0x81, 0x8e, 0x01, 0xf5, + 0x2c, 0x22, 0xc1, 0x00, 0x48, 0x48, 0xc2, 0x2d, 0x22, 0x01, 0xe7, 0x2e, + 0x22, 0x81, 0x78, 0x44, 0x99, 0xf1, 0x30, 0x22, 0x01, 0x44, 0x49, 0xf2, + 0x31, 0x22, 0x01, 0x42, 0xa4, 0x02, 0x32, 0x22, 0xc1, 0x00, 0x80, 0x2a, + 0xd3, 0x39, 0x22, 0xc1, 0x00, 0x80, 0x01, 0xff, 0x44, 0xbc, 0x3f, 0x3d, + 0x22, 0x01, 0x06, 0x28, 0x02, 0x01, 0xff, 0xe1, 0x3a, 0x22, 0x81, 0x0c, + 0x42, 0x00, 0x00, 0x3c, 0x22, 0x01, 0x42, 0x59, 0x00, 0x8d, 0x23, 0x41, + 0x48, 0x58, 0xc2, 0x3b, 0x22, 0x41, 0x4d, 0xc1, 0x81, 0x38, 0x22, 0x01, + 0x49, 0xb9, 0xbd, 0x36, 0x22, 0x81, 0x15, 0x06, 0x28, 0x02, 0x01, 0xff, + 0xe1, 0x33, 0x22, 0x01, 0x43, 0x06, 0x5e, 0x34, 0x22, 0x01, 0x42, 0x59, + 0x00, 0x35, 0x22, 0x41, 0x07, 0x27, 0x02, 0x01, 0xff, 0x49, 0x7f, 0xb5, + 0x37, 0x22, 0x01, 0x42, 0x24, 0x02, 0x20, 0x25, 0x01, 0x43, 0x5c, 0x60, + 0x21, 0x25, 0x41, 0x45, 0xbb, 0x3f, 0x2f, 0x22, 0x41, 0x49, 0xc2, 0xb4, + 0x1f, 0x25, 0x01, 0xee, 0x2b, 0x22, 0x41, 0xf3, 0x29, 0x22, 0xc1, 0x00, + 0xe8, 0x8c, 0x23, 0x41, 0x80, 0x17, 0xd2, 0x23, 0x22, 0x01, 0xe8, 0x24, + 0x22, 0x01, 0xf2, 0x25, 0x22, 0x01, 0x42, 0xa4, 0x02, 0x26, 0x22, 0xc1, + 0x00, 0xd2, 0x27, 0x22, 0x41, 0x44, 0xbc, 0x3f, 0x22, 0x22, 0x01, 0x4a, + 0x0a, 0x45, 0x21, 0x22, 0x41, 0xe1, 0xb7, 0x21, 0x81, 0xca, 0x02, 0xe9, + 0xf7, 0x21, 0x81, 0xb4, 0x02, 0xf5, 0xfb, 0x21, 0xc1, 0x00, 0x4a, 0x2c, + 0x9d, 0xfc, 0x21, 0x01, 0xd2, 0xfd, 0x21, 0x81, 0x3c, 0xd3, 0x16, 0x22, + 0x01, 0x43, 0xc7, 0x42, 0x17, 0x22, 0x81, 0x1a, 0xe8, 0x1b, 0x22, 0x01, + 0xec, 0x1c, 0x22, 0x01, 0xed, 0x1d, 0x22, 0xc1, 0x00, 0x49, 0x83, 0xb4, + 0x1e, 0x22, 0xc1, 0x00, 0x4d, 0x6b, 0x1e, 0x1f, 0x22, 0x41, 0x80, 0x01, + 0xff, 0xaf, 0x06, 0x47, 0x1b, 0x7c, 0x1a, 0x22, 0x41, 0x4d, 0x8b, 0x87, + 0x19, 0x22, 0x01, 0x49, 0xe3, 0xc0, 0x18, 0x22, 0x41, 0x80, 0x01, 0xff, + 0x4c, 0xab, 0x8d, 0x12, 0x22, 0x01, 0x4e, 0x1d, 0x78, 0x19, 0x25, 0x01, + 0x4c, 0x57, 0x93, 0x13, 0x22, 0x01, 0xb3, 0xbd, 0x01, 0xb4, 0x01, 0xff, + 0x43, 0x83, 0x60, 0x11, 0x22, 0x01, 0x05, 0x29, 0x02, 0x01, 0xff, 0x42, + 0x13, 0x00, 0xfe, 0x21, 0x01, 0x43, 0xe9, 0x70, 0xff, 0x21, 0x01, 0x44, + 0xd0, 0x0c, 0x1a, 0x25, 0x01, 0x44, 0x6b, 0x75, 0x00, 0x22, 0x81, 0x86, + 0x01, 0x49, 0x8d, 0x60, 0x02, 0x22, 0x01, 0xa8, 0x72, 0x42, 0x29, 0x02, + 0x04, 0x22, 0x01, 0xab, 0x53, 0x02, 0x74, 0x00, 0x43, 0x4a, 0xc1, 0xad, + 0x0b, 0x22, 0x01, 0xae, 0x33, 0x43, 0xef, 0x0e, 0x1c, 0x25, 0x81, 0x26, + 0xb3, 0x0f, 0xb4, 0x01, 0xff, 0x43, 0x11, 0x45, 0x1e, 0x25, 0x01, 0x43, + 0xd2, 0x0e, 0x10, 0x22, 0x41, 0x42, 0x41, 0x00, 0x8b, 0x23, 0x01, 0xa9, + 0x01, 0xff, 0x49, 0x18, 0x4d, 0x0e, 0x22, 0x01, 0x4a, 0x45, 0xac, 0x0f, + 0x22, 0x41, 0x52, 0x7f, 0x3d, 0x1d, 0x25, 0x41, 0xe5, 0x0c, 0x22, 0x01, + 0xf5, 0x0d, 0x22, 0x41, 0x49, 0x18, 0x4d, 0x09, 0x22, 0x01, 0x43, 0x24, + 0x02, 0x0a, 0x22, 0x41, 0x02, 0xe8, 0x01, 0x04, 0xe9, 0x08, 0x22, 0x41, + 0xd2, 0x05, 0x22, 0x01, 0xd3, 0x06, 0x22, 0xc1, 0x00, 0x49, 0x18, 0x4d, + 0x07, 0x22, 0x41, 0x42, 0x13, 0x00, 0x1b, 0x25, 0x01, 0x4b, 0x2b, 0x9d, + 0x03, 0x22, 0x41, 0x80, 0x01, 0xff, 0x48, 0xa8, 0xb4, 0x8a, 0x23, 0x01, + 0x44, 0x82, 0x60, 0x01, 0x22, 0x41, 0x46, 0x1c, 0x7c, 0x15, 0x22, 0x81, + 0x06, 0x46, 0xd7, 0x05, 0x14, 0x22, 0x41, 0x4a, 0x2c, 0x9d, 0x89, 0x23, + 0x41, 0xec, 0xf8, 0x21, 0x01, 0x44, 0x3d, 0xf1, 0xf9, 0x21, 0x01, 0x42, + 0xa4, 0x02, 0xfa, 0x21, 0x41, 0x02, 0x24, 0x02, 0xd0, 0x03, 0x44, 0x59, + 0xf0, 0xf1, 0x21, 0x01, 0x02, 0xb5, 0x10, 0x1d, 0xec, 0xf2, 0x21, 0x81, + 0x12, 0xed, 0xf4, 0x21, 0xc1, 0x00, 0x4a, 0xff, 0x5d, 0xf5, 0x21, 0xc1, + 0x00, 0x48, 0x68, 0xc2, 0xf6, 0x21, 0x41, 0x4a, 0x29, 0x9e, 0xf3, 0x21, + 0x41, 0x90, 0xe8, 0x02, 0x91, 0xd9, 0x02, 0x92, 0xad, 0x02, 0x93, 0x8c, + 0x02, 0x94, 0xae, 0x01, 0x43, 0xbc, 0xf3, 0xff, 0x24, 0x01, 0x96, 0x0f, + 0x97, 0x01, 0xff, 0x42, 0x52, 0xb5, 0x17, 0x25, 0x01, 0x42, 0xfc, 0xf4, + 0x18, 0x25, 0x41, 0x42, 0xb2, 0x75, 0x00, 0x25, 0x01, 0x42, 0xea, 0xf4, + 0x01, 0x25, 0x81, 0x4a, 0x42, 0xf2, 0xf4, 0x0c, 0x25, 0x01, 0x42, 0xfa, + 0xf4, 0x0d, 0x25, 0xc1, 0x00, 0x07, 0x27, 0x02, 0x01, 0xff, 0x43, 0x25, + 0xf4, 0x0e, 0x25, 0x01, 0x42, 0x24, 0x02, 0x0f, 0x25, 0x01, 0x43, 0xf0, + 0x06, 0x10, 0x25, 0x81, 0x1f, 0x42, 0x51, 0x03, 0x12, 0x25, 0x01, 0x55, + 0x7c, 0x3d, 0x13, 0x25, 0x01, 0x4d, 0x8f, 0x88, 0x14, 0x25, 0x01, 0xb5, + 0x01, 0xff, 0xe4, 0x15, 0x25, 0x01, 0x44, 0xf7, 0xcb, 0x16, 0x25, 0x41, + 0x45, 0xbb, 0x3f, 0x11, 0x25, 0x41, 0x07, 0x27, 0x02, 0x01, 0xff, 0x43, + 0xf9, 0x03, 0x02, 0x25, 0x01, 0x43, 0xe9, 0x70, 0x03, 0x25, 0x01, 0x4e, + 0x21, 0x77, 0x04, 0x25, 0x01, 0x43, 0xa4, 0xb4, 0x05, 0x25, 0x01, 0x42, + 0x74, 0x00, 0x06, 0x25, 0x01, 0xb4, 0x11, 0xb5, 0x01, 0xff, 0xd2, 0x09, + 0x25, 0x01, 0xe4, 0x0a, 0x25, 0x01, 0x44, 0xf7, 0xcb, 0x0b, 0x25, 0x41, + 0x42, 0x17, 0x00, 0x07, 0x25, 0x01, 0xe5, 0x08, 0x25, 0x41, 0x94, 0x29, + 0x95, 0x1f, 0x42, 0x17, 0xf4, 0xf9, 0x24, 0x01, 0x42, 0xf5, 0xf4, 0xfa, + 0x24, 0x01, 0x99, 0x01, 0xff, 0xd0, 0xfb, 0x24, 0x01, 0xd2, 0xfc, 0x24, + 0x01, 0xd3, 0xfd, 0x24, 0x01, 0xd5, 0xfe, 0x24, 0x41, 0xd0, 0xf7, 0x24, + 0x01, 0xd7, 0xf8, 0x24, 0x41, 0xd1, 0xf0, 0x24, 0x01, 0xd9, 0xf1, 0x24, + 0xc1, 0x00, 0x07, 0x27, 0x02, 0x01, 0xff, 0x42, 0x1e, 0x01, 0xf2, 0x24, + 0x01, 0x43, 0xf0, 0x06, 0xf3, 0x24, 0x01, 0x09, 0x7c, 0x3d, 0x06, 0x4a, + 0x71, 0xb2, 0xf6, 0x24, 0x41, 0x43, 0x8e, 0x3d, 0xf4, 0x24, 0x01, 0x4c, + 0x85, 0x3d, 0xf5, 0x24, 0x41, 0x94, 0x10, 0x98, 0x06, 0x42, 0x06, 0xf5, + 0xef, 0x24, 0x41, 0xd3, 0xed, 0x24, 0x01, 0xd4, 0xee, 0x24, 0x41, 0xd3, + 0xea, 0x24, 0x01, 0xd7, 0xeb, 0x24, 0x01, 0xd8, 0xec, 0x24, 0x41, 0x91, + 0x1f, 0x92, 0x11, 0x42, 0xf4, 0xf4, 0xe7, 0x24, 0x01, 0x96, 0x01, 0xff, + 0xd5, 0xe8, 0x24, 0x01, 0xd6, 0xe9, 0x24, 0x41, 0xd0, 0xe4, 0x24, 0x01, + 0xd5, 0xe5, 0x24, 0x01, 0xd8, 0xe6, 0x24, 0x41, 0xd0, 0xe2, 0x24, 0x01, + 0xd9, 0xe3, 0x24, 0x41, 0x42, 0xaa, 0xf3, 0xe0, 0x24, 0x01, 0x42, 0x14, + 0xf4, 0xe1, 0x24, 0x41, 0x42, 0xa9, 0xf3, 0xd5, 0x24, 0x01, 0x92, 0x2e, + 0x42, 0xaa, 0xf3, 0xd8, 0x24, 0x01, 0x95, 0x1e, 0x42, 0xc8, 0xf3, 0xdb, + 0x24, 0x01, 0x54, 0x14, 0x40, 0xdc, 0x24, 0x01, 0x98, 0x06, 0x42, 0x08, + 0xf5, 0xdf, 0x24, 0x41, 0xd0, 0xdd, 0x24, 0x01, 0x4e, 0xa7, 0x75, 0xde, + 0x24, 0x41, 0xd0, 0xd9, 0x24, 0x01, 0xd1, 0xda, 0x24, 0x41, 0xd1, 0xd6, + 0x24, 0x01, 0xd5, 0xd7, 0x24, 0x41, 0xe2, 0xb8, 0x21, 0x81, 0x22, 0xf2, + 0xec, 0x21, 0xc1, 0x00, 0x80, 0x01, 0xff, 0x44, 0xbc, 0x3f, 0xef, 0x21, + 0x81, 0x0d, 0x49, 0x38, 0xa6, 0xed, 0x21, 0xc1, 0x00, 0x49, 0x76, 0xa9, + 0xee, 0x21, 0x41, 0x54, 0xb0, 0x3f, 0xf0, 0x21, 0x41, 0x80, 0x01, 0xff, + 0x47, 0xd6, 0x05, 0xeb, 0x21, 0x01, 0x06, 0x28, 0x02, 0x01, 0xff, 0xe1, + 0xb9, 0x21, 0x81, 0xa0, 0x02, 0xa2, 0x93, 0x02, 0x43, 0x27, 0x18, 0xc2, + 0x21, 0x01, 0x42, 0x92, 0x01, 0xc3, 0x21, 0x01, 0xa7, 0xea, 0x01, 0xa8, + 0xd8, 0x01, 0xa9, 0xb9, 0x01, 0xab, 0x9b, 0x01, 0xac, 0x83, 0x01, 0xad, + 0x70, 0x42, 0xcd, 0x05, 0xdb, 0x21, 0x01, 0xb3, 0x3d, 0xb4, 0x29, 0xf5, + 0xe5, 0x21, 0x81, 0x06, 0x4a, 0x1f, 0xb4, 0xd4, 0x24, 0x41, 0x06, 0x57, + 0x28, 0x10, 0x4a, 0xeb, 0xa6, 0xe8, 0x21, 0x01, 0xe4, 0xe9, 0x21, 0x01, + 0x42, 0xa4, 0x02, 0xea, 0x21, 0x41, 0xe1, 0xe6, 0x21, 0x01, 0x48, 0x19, + 0x74, 0xe7, 0x21, 0x41, 0xa1, 0x06, 0x58, 0x56, 0x28, 0xe4, 0x21, 0x41, + 0xe7, 0xe2, 0x21, 0x01, 0x42, 0x12, 0x45, 0xe3, 0x21, 0x41, 0xa8, 0x06, + 0x42, 0x48, 0x04, 0xe1, 0x21, 0x41, 0x4a, 0x75, 0xa9, 0xdc, 0x21, 0x01, + 0x0e, 0xef, 0x78, 0x0d, 0x42, 0x08, 0x67, 0xdf, 0x21, 0xc1, 0x00, 0x4a, + 0xfb, 0xa5, 0xe0, 0x21, 0x41, 0x4a, 0x8d, 0xaf, 0xdd, 0x21, 0x01, 0x44, + 0x82, 0x60, 0xde, 0x21, 0x41, 0xe5, 0xd8, 0x21, 0x81, 0x06, 0x43, 0x30, + 0x7c, 0xda, 0x21, 0x41, 0x48, 0xc3, 0xad, 0xd9, 0x21, 0x41, 0x44, 0x23, + 0x02, 0xd4, 0x21, 0x01, 0x43, 0xd1, 0x0c, 0xd5, 0x21, 0x01, 0xf5, 0xd6, + 0x21, 0xc1, 0x00, 0xec, 0xd7, 0x21, 0x41, 0xe9, 0xcf, 0x21, 0x81, 0x12, + 0xb5, 0x01, 0xff, 0xd3, 0xd1, 0x21, 0x01, 0xec, 0xd2, 0x21, 0xc1, 0x00, + 0x4f, 0x9c, 0x69, 0xd3, 0x21, 0x41, 0xee, 0xd0, 0x21, 0x41, 0x47, 0xd1, + 0x69, 0xcb, 0x21, 0x01, 0xed, 0xcc, 0x21, 0xc1, 0x00, 0x06, 0x57, 0x28, + 0x01, 0xff, 0x42, 0x22, 0x00, 0xcd, 0x21, 0x01, 0x42, 0xc7, 0x15, 0xce, + 0x21, 0x41, 0xe1, 0xc8, 0x21, 0x81, 0x06, 0x4b, 0x36, 0x9d, 0xca, 0x21, + 0x41, 0xec, 0xc9, 0x21, 0x41, 0xe1, 0xc4, 0x21, 0x81, 0x11, 0xe9, 0x88, + 0x23, 0x01, 0x42, 0xb2, 0x0c, 0xc6, 0x21, 0xc1, 0x00, 0x49, 0x95, 0xb4, + 0xc7, 0x21, 0x41, 0xf2, 0xc5, 0x21, 0x41, 0x42, 0xe8, 0x01, 0xc0, 0x21, + 0x01, 0xe9, 0xc1, 0x21, 0x41, 0x06, 0x57, 0x28, 0x0e, 0xec, 0xbd, 0x21, + 0x01, 0xee, 0xbe, 0x21, 0x01, 0x4c, 0x1f, 0x95, 0xbf, 0x21, 0x41, 0x4a, + 0x25, 0xa9, 0xba, 0x21, 0x01, 0x43, 0x6c, 0x1e, 0xbb, 0x21, 0x01, 0x43, + 0xe9, 0x20, 0xbc, 0x21, 0x41, 0xe1, 0x57, 0x21, 0x81, 0x84, 0x01, 0x44, + 0x6b, 0x75, 0x9f, 0x21, 0x01, 0xe9, 0xa0, 0x21, 0x81, 0x44, 0xf5, 0xaa, + 0x21, 0x81, 0x06, 0x45, 0x68, 0xec, 0xb6, 0x21, 0x41, 0x69, 0xea, 0x03, + 0xab, 0x21, 0x01, 0xd3, 0xac, 0x21, 0x01, 0xd4, 0xad, 0x21, 0x81, 0x24, + 0xd7, 0xaf, 0x21, 0x01, 0xec, 0xb0, 0x21, 0x81, 0x15, 0xee, 0xb2, 0x21, + 0x01, 0xf2, 0xb3, 0x21, 0x81, 0x06, 0x44, 0x06, 0x67, 0xb5, 0x21, 0x41, + 0x4d, 0x9f, 0x7f, 0xb4, 0x21, 0x41, 0x45, 0xbb, 0x3f, 0xb1, 0x21, 0x41, + 0x4d, 0xb9, 0x7f, 0xae, 0x21, 0x41, 0x07, 0x27, 0x02, 0x22, 0xe4, 0xa4, + 0x21, 0x01, 0xee, 0xa5, 0x21, 0x01, 0xb3, 0x01, 0xff, 0x42, 0x13, 0x00, + 0xa6, 0x21, 0x01, 0xe8, 0xa7, 0x21, 0x01, 0x43, 0x21, 0x6f, 0xa8, 0x21, + 0xc1, 0x00, 0x4c, 0x5f, 0x8b, 0xa9, 0x21, 0x41, 0x43, 0xe9, 0x70, 0xa1, + 0x21, 0x01, 0xf5, 0xa2, 0x21, 0xc1, 0x00, 0xe4, 0xa3, 0x21, 0x41, 0x07, + 0x27, 0x02, 0x72, 0xd2, 0x8d, 0x21, 0x81, 0x67, 0xe2, 0x8f, 0x21, 0x01, + 0xa4, 0x4a, 0xeb, 0x95, 0x21, 0x81, 0x3f, 0xec, 0x97, 0x21, 0x81, 0x26, + 0xad, 0x1c, 0x49, 0xd4, 0xbd, 0x6f, 0x23, 0x01, 0x44, 0x1d, 0x02, 0x9c, + 0x21, 0xc1, 0x00, 0x80, 0x01, 0xff, 0x60, 0x22, 0x02, 0x9d, 0x21, 0x01, + 0x6c, 0x16, 0x02, 0x9e, 0x21, 0x41, 0xd2, 0x9a, 0x21, 0x01, 0xd4, 0x9b, + 0x21, 0x41, 0x80, 0x06, 0x42, 0x57, 0x00, 0x27, 0x23, 0x41, 0x4c, 0x9f, + 0x8d, 0x99, 0x21, 0x01, 0x49, 0x2d, 0x9d, 0x98, 0x21, 0x41, 0x4f, 0xc9, + 0x69, 0x96, 0x21, 0x41, 0xd2, 0x90, 0x21, 0x01, 0xd3, 0x91, 0x21, 0x01, + 0xd4, 0x92, 0x21, 0x01, 0xd5, 0x93, 0x21, 0xc1, 0x00, 0x4a, 0xf1, 0xa5, + 0x94, 0x21, 0x41, 0x4d, 0x5e, 0x7f, 0x8e, 0x21, 0x41, 0xe1, 0x58, 0x21, + 0x81, 0xdf, 0x02, 0xa2, 0xc4, 0x02, 0xa5, 0xb5, 0x02, 0xa7, 0xe8, 0x01, + 0x4d, 0xf0, 0x03, 0x82, 0x23, 0x01, 0xa9, 0xd5, 0x01, 0xab, 0xc0, 0x01, + 0xac, 0xb0, 0x01, 0xad, 0x86, 0x01, 0xae, 0x7a, 0xb0, 0x70, 0x42, 0x3d, + 0x00, 0x7d, 0x21, 0x01, 0xb3, 0x3a, 0xb4, 0x2e, 0xf5, 0x87, 0x21, 0x81, + 0x06, 0x42, 0xe1, 0x33, 0x8c, 0x21, 0x41, 0x44, 0xab, 0xeb, 0xd2, 0x24, + 0x01, 0xd2, 0x88, 0x21, 0x01, 0xe4, 0x89, 0x21, 0x01, 0x4c, 0x43, 0x92, + 0x8a, 0x21, 0x01, 0xf2, 0xd3, 0x24, 0x81, 0x06, 0x42, 0xa4, 0x02, 0x8b, + 0x21, 0x41, 0xd2, 0x87, 0x23, 0x41, 0x42, 0x17, 0x00, 0x86, 0x21, 0x01, + 0xf5, 0x86, 0x23, 0x41, 0xe1, 0x7e, 0x21, 0x81, 0x25, 0xa8, 0x0c, 0x42, + 0x3f, 0x00, 0x84, 0x21, 0x01, 0x44, 0xd1, 0xf2, 0x85, 0x21, 0x41, 0xe1, + 0x80, 0x21, 0x01, 0xe5, 0x81, 0x21, 0x01, 0x42, 0x03, 0x00, 0x82, 0x21, + 0x01, 0xf5, 0x83, 0x21, 0xc1, 0x00, 0xec, 0x85, 0x23, 0x41, 0xf2, 0x7f, + 0x21, 0x41, 0xe1, 0x84, 0x23, 0x01, 0xe9, 0x7c, 0x21, 0x41, 0xe5, 0x7a, + 0x21, 0x01, 0x42, 0x42, 0x0b, 0x7b, 0x21, 0x41, 0xe5, 0x74, 0x21, 0x81, + 0x0b, 0xe9, 0x78, 0x21, 0xc1, 0x00, 0x4b, 0xab, 0x97, 0x79, 0x21, 0x41, + 0x06, 0x57, 0x28, 0x01, 0xff, 0x42, 0x6c, 0x02, 0x75, 0x21, 0x01, 0x42, + 0xf1, 0x06, 0x76, 0x21, 0x01, 0x42, 0x77, 0x00, 0x77, 0x21, 0x41, 0xe9, + 0x72, 0x21, 0x01, 0xf5, 0x73, 0x21, 0xc1, 0x00, 0xed, 0x83, 0x23, 0x41, + 0xe1, 0xd1, 0x24, 0x81, 0x09, 0xe9, 0x70, 0x21, 0xc1, 0x00, 0xe4, 0x71, + 0x21, 0x41, 0xeb, 0x6f, 0x21, 0x41, 0x42, 0xf1, 0x06, 0x6d, 0x21, 0x01, + 0xed, 0x6e, 0x21, 0x41, 0xe1, 0x62, 0x21, 0x81, 0x30, 0xe9, 0x67, 0x21, + 0x81, 0x0f, 0xf5, 0x6b, 0x21, 0xc1, 0x00, 0xe4, 0x81, 0x23, 0x01, 0x42, + 0x1a, 0xf5, 0x6c, 0x21, 0x41, 0x42, 0xbe, 0x42, 0x68, 0x21, 0x01, 0x42, + 0xa4, 0x02, 0x80, 0x23, 0xc1, 0x00, 0x80, 0x01, 0xff, 0x4d, 0x08, 0x52, + 0x6a, 0x21, 0x01, 0x48, 0x3b, 0x57, 0x69, 0x21, 0x41, 0xec, 0x63, 0x21, + 0x01, 0x47, 0x8f, 0x60, 0x64, 0x21, 0x01, 0xf2, 0x65, 0x21, 0xc1, 0x00, + 0x51, 0x43, 0x57, 0x66, 0x21, 0x41, 0x44, 0x93, 0xaf, 0x60, 0x21, 0x01, + 0x43, 0xfa, 0x03, 0x61, 0x21, 0x41, 0xa1, 0x08, 0xe9, 0x5f, 0x21, 0x01, + 0xf5, 0xd0, 0x24, 0x41, 0xe4, 0x5c, 0x21, 0x01, 0x43, 0x22, 0x02, 0x5d, + 0x21, 0x01, 0xf2, 0x5e, 0x21, 0x41, 0xe4, 0x59, 0x21, 0x81, 0x13, 0x44, + 0x95, 0xf1, 0x7e, 0x23, 0x01, 0x02, 0xa4, 0x02, 0x01, 0xff, 0xd2, 0x5b, + 0x21, 0x01, 0xd3, 0x7f, 0x23, 0x41, 0x49, 0x9e, 0xb4, 0x5a, 0x21, 0x41, + 0x42, 0x19, 0x00, 0x40, 0x21, 0x01, 0xe2, 0x41, 0x21, 0x01, 0x43, 0x6c, + 0x7f, 0x42, 0x21, 0x81, 0x67, 0xe7, 0x45, 0x21, 0x81, 0x42, 0xec, 0x4b, + 0x21, 0x81, 0x33, 0xed, 0x4e, 0x21, 0x81, 0x0e, 0xee, 0x54, 0x21, 0x01, + 0xf2, 0x55, 0x21, 0x01, 0x42, 0xa4, 0x02, 0x56, 0x21, 0x41, 0x80, 0x06, + 0x42, 0x9e, 0x01, 0x53, 0x21, 0x41, 0x4b, 0x76, 0x9a, 0x50, 0x21, 0x01, + 0x4b, 0xd2, 0xa0, 0x51, 0x21, 0x01, 0x47, 0xd6, 0x05, 0x52, 0x21, 0x01, + 0x4a, 0x0a, 0x45, 0x4f, 0x21, 0x41, 0x50, 0x86, 0x60, 0x4c, 0x21, 0x01, + 0xd2, 0x4d, 0x21, 0x41, 0xe9, 0x46, 0x21, 0xc1, 0x00, 0x80, 0x01, 0xff, + 0x43, 0x1f, 0xf4, 0x47, 0x21, 0x01, 0x44, 0xbc, 0x3f, 0x4a, 0x21, 0x01, + 0x62, 0x9a, 0x0c, 0x49, 0x21, 0x01, 0x42, 0x0d, 0x00, 0x48, 0x21, 0x41, + 0x0b, 0x95, 0x97, 0x01, 0xff, 0x43, 0x07, 0x36, 0x43, 0x21, 0x01, 0x47, + 0xd6, 0x05, 0x44, 0x21, 0x41, 0xe1, 0x29, 0x21, 0x81, 0x7e, 0xe9, 0x2d, + 0x21, 0x81, 0x3b, 0xf5, 0x37, 0x21, 0xc1, 0x00, 0x42, 0x06, 0x61, 0x38, + 0x21, 0x81, 0x0c, 0x42, 0x53, 0xed, 0x3e, 0x21, 0x01, 0x42, 0xa4, 0x02, + 0x7d, 0x23, 0x41, 0x07, 0x27, 0x02, 0x01, 0xff, 0x42, 0x1a, 0x00, 0x39, + 0x21, 0x01, 0x43, 0x22, 0x00, 0x3a, 0x21, 0x01, 0x46, 0x1b, 0x02, 0x3b, + 0x21, 0x01, 0x44, 0xdb, 0x91, 0x3c, 0x21, 0x01, 0x42, 0xb2, 0x0c, 0x3d, + 0x21, 0x41, 0x07, 0x27, 0x02, 0x01, 0xff, 0x43, 0xf9, 0x03, 0x2e, 0x21, + 0x81, 0x28, 0x43, 0xe9, 0x70, 0x30, 0x21, 0x01, 0x44, 0xd0, 0x0c, 0x31, + 0x21, 0x01, 0x43, 0x5f, 0x1e, 0x32, 0x21, 0x01, 0x43, 0x3b, 0x04, 0x33, + 0x21, 0x01, 0x43, 0xdc, 0x22, 0x34, 0x21, 0x01, 0x43, 0x8e, 0x06, 0x35, + 0x21, 0x01, 0xf5, 0x36, 0x21, 0x41, 0x52, 0xea, 0x03, 0xcf, 0x24, 0x01, + 0xd2, 0x2f, 0x21, 0x41, 0x80, 0x04, 0xec, 0x2c, 0x21, 0x41, 0x44, 0xbc, + 0x3f, 0x2b, 0x21, 0x01, 0x44, 0x82, 0x60, 0x2a, 0x21, 0xc1, 0x00, 0x45, + 0xbb, 0x3f, 0xce, 0x24, 0x41, 0xe1, 0xb5, 0x20, 0x81, 0xcc, 0x02, 0xa5, + 0xad, 0x02, 0xe9, 0x00, 0x21, 0x81, 0x87, 0x01, 0xf5, 0x16, 0x21, 0xc1, + 0x00, 0x4c, 0x17, 0x8b, 0x17, 0x21, 0x01, 0xd2, 0x18, 0x21, 0x81, 0x4a, + 0xe4, 0x1e, 0x21, 0x81, 0x25, 0xec, 0x22, 0x21, 0x01, 0xed, 0x23, 0x21, + 0x81, 0x16, 0xf2, 0x25, 0x21, 0xc1, 0x00, 0xd7, 0x26, 0x21, 0x01, 0xb5, + 0x01, 0xff, 0xee, 0x27, 0x21, 0x01, 0x42, 0xa4, 0x02, 0x28, 0x21, 0x41, + 0x4a, 0x37, 0xa6, 0x24, 0x21, 0x41, 0x80, 0x01, 0xff, 0x4e, 0xe7, 0x7a, + 0x21, 0x21, 0x01, 0x54, 0x00, 0x45, 0xcd, 0x24, 0x01, 0x06, 0x28, 0x02, + 0x01, 0xff, 0x4a, 0x31, 0xa7, 0x1f, 0x21, 0x01, 0x43, 0x06, 0x5e, 0x20, + 0x21, 0x41, 0x80, 0x01, 0xff, 0x44, 0xbc, 0x3f, 0x1d, 0x21, 0x01, 0x06, + 0x28, 0x02, 0x01, 0xff, 0x48, 0xd0, 0x69, 0xcc, 0x24, 0x01, 0x43, 0x5c, + 0x60, 0x19, 0x21, 0x81, 0x0c, 0x43, 0xdc, 0x22, 0x1b, 0x21, 0x01, 0x4d, + 0x68, 0x88, 0x1c, 0x21, 0x41, 0x4f, 0xc9, 0x69, 0x1a, 0x21, 0x41, 0x80, + 0x8a, 0x01, 0xd4, 0x04, 0x21, 0x81, 0x76, 0x43, 0x6c, 0x7f, 0x07, 0x21, + 0x01, 0xe7, 0x7c, 0x23, 0x01, 0xb2, 0x37, 0xb3, 0x01, 0xff, 0x42, 0x13, + 0x00, 0x10, 0x21, 0x01, 0xe8, 0x11, 0x21, 0xc1, 0x00, 0x80, 0x01, 0xff, + 0x4d, 0x08, 0x52, 0x12, 0x21, 0x01, 0xb4, 0x01, 0xff, 0x43, 0x83, 0x60, + 0x15, 0x21, 0x01, 0x05, 0x29, 0x02, 0x01, 0xff, 0x43, 0xe9, 0x70, 0x13, + 0x21, 0x01, 0x52, 0x03, 0x52, 0xcb, 0x24, 0x01, 0x44, 0x10, 0x45, 0x14, + 0x21, 0x41, 0xd2, 0x08, 0x21, 0x81, 0x28, 0xd3, 0x0a, 0x21, 0xc1, 0x00, + 0x07, 0x27, 0x02, 0x01, 0xff, 0x4a, 0x27, 0xa7, 0x0b, 0x21, 0x01, 0x49, + 0x8d, 0x60, 0x0c, 0x21, 0x01, 0x43, 0xf0, 0x06, 0x0d, 0x21, 0x01, 0x4b, + 0x25, 0x9f, 0x0e, 0x21, 0x01, 0x42, 0xbb, 0x09, 0x0f, 0x21, 0x41, 0x45, + 0xbb, 0x3f, 0x09, 0x21, 0x41, 0x80, 0x01, 0xff, 0x4c, 0x93, 0x8d, 0x06, + 0x21, 0x01, 0x48, 0x90, 0xc9, 0x05, 0x21, 0x41, 0x4b, 0x08, 0x52, 0x03, + 0x21, 0x01, 0x06, 0x28, 0x02, 0x01, 0xff, 0xe5, 0x01, 0x21, 0x01, 0xf5, + 0x02, 0x21, 0x41, 0x42, 0x54, 0xed, 0x7b, 0x23, 0x01, 0x45, 0xf1, 0xea, + 0xfe, 0x20, 0xc1, 0x00, 0x07, 0x27, 0x02, 0x01, 0xff, 0x43, 0x06, 0x5e, + 0xff, 0x20, 0x01, 0xf5, 0xca, 0x24, 0x41, 0x45, 0xbb, 0x3f, 0xb6, 0x20, + 0x01, 0xd2, 0xb7, 0x20, 0x81, 0x64, 0x42, 0x16, 0x00, 0xee, 0x20, 0x81, + 0x4e, 0xe4, 0xf0, 0x20, 0x81, 0x43, 0xec, 0xf2, 0x20, 0x81, 0x32, 0xed, + 0xf5, 0x20, 0x01, 0xee, 0xf6, 0x20, 0x81, 0x0f, 0xf2, 0xfb, 0x20, 0x81, + 0x06, 0x44, 0x36, 0x39, 0xfd, 0x20, 0x41, 0xd3, 0xfc, 0x20, 0x41, 0xd2, + 0xf7, 0x20, 0xc1, 0x00, 0x80, 0x01, 0xff, 0x4d, 0xb4, 0x81, 0xfa, 0x20, + 0x01, 0x49, 0xb0, 0xbd, 0xf9, 0x20, 0x01, 0x44, 0x82, 0x60, 0xf8, 0x20, + 0x41, 0x5a, 0x5e, 0x1e, 0xf3, 0x20, 0x01, 0x42, 0x57, 0x00, 0xf4, 0x20, + 0x41, 0x56, 0x62, 0x1e, 0xf1, 0x20, 0x41, 0x80, 0x01, 0xff, 0x4d, 0xa7, + 0x81, 0xef, 0x20, 0x01, 0x56, 0xa4, 0x2c, 0xc9, 0x24, 0x41, 0x80, 0x01, + 0xff, 0x48, 0x88, 0xc9, 0xed, 0x20, 0x01, 0x06, 0x28, 0x02, 0x01, 0xff, + 0xa1, 0xb0, 0x03, 0xa2, 0x8e, 0x03, 0xa4, 0xd9, 0x02, 0xa5, 0xba, 0x02, + 0xa7, 0x80, 0x02, 0xa8, 0xd6, 0x01, 0xa9, 0xc7, 0x01, 0xab, 0x9c, 0x01, + 0xac, 0x83, 0x01, 0xad, 0x71, 0xae, 0x4c, 0x42, 0xbb, 0x09, 0xe2, 0x20, + 0x01, 0xb3, 0x1c, 0x44, 0x10, 0x45, 0xe9, 0x20, 0x01, 0xf5, 0xea, 0x20, + 0x81, 0x06, 0x44, 0x69, 0xf3, 0xc8, 0x24, 0x41, 0xe4, 0xeb, 0x20, 0xc1, + 0x00, 0x48, 0x60, 0xc2, 0xec, 0x20, 0x41, 0xa1, 0x1e, 0xa8, 0x06, 0x42, + 0x48, 0x04, 0xe8, 0x20, 0x41, 0xe5, 0xe5, 0x20, 0x81, 0x0b, 0xa9, 0x01, + 0xff, 0xe4, 0xe7, 0x20, 0x01, 0xed, 0xc7, 0x24, 0x41, 0x49, 0xb9, 0xb4, + 0xe6, 0x20, 0x41, 0xec, 0xe3, 0x20, 0x01, 0xf2, 0xe4, 0x20, 0x41, 0xe5, + 0xc4, 0x24, 0x81, 0x0d, 0x42, 0x42, 0x0b, 0xe0, 0x20, 0xc1, 0x00, 0x49, + 0xd6, 0x22, 0xe1, 0x20, 0x41, 0x06, 0x57, 0x28, 0x01, 0xff, 0x42, 0x73, + 0x9b, 0xc5, 0x24, 0x01, 0x42, 0xf1, 0x06, 0xc6, 0x24, 0x41, 0x49, 0xc2, + 0xad, 0xde, 0x20, 0x01, 0xe9, 0xdf, 0x20, 0x01, 0x43, 0x30, 0x7c, 0xc3, + 0x24, 0x41, 0xe1, 0xdd, 0x20, 0x81, 0x06, 0x42, 0x1c, 0x58, 0xc2, 0x24, + 0x41, 0xed, 0xc0, 0x24, 0xc1, 0x00, 0x4a, 0xff, 0x5d, 0xc1, 0x24, 0x41, + 0xa1, 0x1c, 0x42, 0x03, 0x00, 0xda, 0x20, 0x81, 0x0f, 0xb5, 0x01, 0xff, + 0x49, 0x5b, 0xb5, 0xdc, 0x20, 0x01, 0x50, 0x06, 0x67, 0xbf, 0x24, 0x41, + 0x49, 0xa7, 0xb4, 0xdb, 0x20, 0x41, 0xeb, 0xd8, 0x20, 0x01, 0x44, 0x1d, + 0x02, 0xd9, 0x20, 0x41, 0x47, 0xd1, 0x69, 0xd6, 0x20, 0x01, 0x53, 0x0e, + 0x4d, 0xd7, 0x20, 0x41, 0xa1, 0x0c, 0x49, 0xdb, 0xb9, 0xd4, 0x20, 0x01, + 0x43, 0x5e, 0xf0, 0xd5, 0x20, 0x41, 0x06, 0x57, 0x28, 0x0b, 0xec, 0xd2, + 0x20, 0xc1, 0x00, 0x48, 0xa7, 0xb4, 0xd3, 0x20, 0x41, 0xe1, 0xbe, 0x24, + 0x01, 0x4c, 0x83, 0x91, 0xd1, 0x20, 0x41, 0xe1, 0xbb, 0x24, 0x81, 0x16, + 0xe9, 0xcd, 0x20, 0xc1, 0x00, 0xd4, 0xce, 0x20, 0x81, 0x06, 0x4a, 0xdd, + 0xaf, 0xd0, 0x20, 0x41, 0x47, 0x57, 0x28, 0xcf, 0x20, 0x41, 0x47, 0x8f, + 0x60, 0xcb, 0x20, 0x01, 0xf2, 0xcc, 0x20, 0xc1, 0x00, 0x06, 0x57, 0x28, + 0x01, 0xff, 0x42, 0x00, 0x00, 0xbc, 0x24, 0x01, 0x42, 0xcd, 0x05, 0xbd, + 0x24, 0x41, 0xec, 0xc7, 0x20, 0x81, 0x11, 0xee, 0xc9, 0x20, 0x81, 0x06, + 0x43, 0xda, 0x21, 0xba, 0x24, 0x41, 0x50, 0x86, 0x60, 0xca, 0x20, 0x41, + 0x48, 0xa7, 0xb4, 0xc8, 0x20, 0x41, 0xe1, 0xc3, 0x20, 0x01, 0xe9, 0xc4, + 0x20, 0x81, 0x18, 0xb5, 0x01, 0xff, 0xe2, 0xc6, 0x20, 0x01, 0x08, 0x21, + 0x7c, 0x01, 0xff, 0x48, 0xd0, 0x69, 0xb8, 0x24, 0x01, 0x46, 0x1b, 0x02, + 0xb9, 0x24, 0x41, 0x02, 0x49, 0x04, 0x01, 0xff, 0x44, 0xbc, 0x3f, 0xb7, + 0x24, 0x01, 0x49, 0x38, 0xa6, 0xc5, 0x20, 0x41, 0xa1, 0x0d, 0x42, 0x42, + 0x00, 0xc1, 0x20, 0xc1, 0x00, 0x48, 0x65, 0xbe, 0xc2, 0x20, 0x41, 0xe4, + 0xbf, 0x20, 0x01, 0x44, 0xbc, 0x42, 0xb6, 0x24, 0x01, 0x49, 0x64, 0xbe, + 0xc0, 0x20, 0x41, 0x06, 0x57, 0x28, 0x23, 0x50, 0x06, 0x61, 0xbb, 0x20, + 0x01, 0xee, 0xbc, 0x20, 0x81, 0x12, 0x42, 0xa4, 0x02, 0xbd, 0x20, 0xc1, + 0x00, 0xd2, 0x7a, 0x23, 0xc1, 0x00, 0x49, 0x8c, 0xb4, 0xbe, 0x20, 0x41, + 0x50, 0x56, 0x60, 0x79, 0x23, 0x41, 0x4a, 0x25, 0xa9, 0xb8, 0x20, 0x01, + 0x42, 0x22, 0x00, 0xb9, 0x20, 0x01, 0x43, 0xf0, 0x06, 0xba, 0x20, 0x41, + 0x80, 0xe7, 0x02, 0xd2, 0x8d, 0x20, 0x81, 0xac, 0x02, 0x43, 0x04, 0x06, + 0x94, 0x20, 0x01, 0x43, 0x8f, 0xe7, 0x95, 0x20, 0x01, 0xec, 0x96, 0x20, + 0x01, 0xee, 0x97, 0x20, 0x81, 0xe9, 0x01, 0xb2, 0xd3, 0x01, 0x43, 0xfa, + 0x03, 0xa0, 0x20, 0x81, 0xc5, 0x01, 0x43, 0x4b, 0x0a, 0xa1, 0x20, 0xc1, + 0x00, 0x80, 0x01, 0xff, 0x0e, 0x1b, 0x7c, 0x88, 0x01, 0x06, 0x28, 0x02, + 0x01, 0xff, 0xe1, 0xa2, 0x20, 0x81, 0x6d, 0x43, 0xe9, 0x70, 0xa6, 0x20, + 0x01, 0x49, 0x21, 0x77, 0xa7, 0x20, 0x81, 0x5a, 0x43, 0xec, 0x7a, 0x77, + 0x23, 0x01, 0x42, 0x22, 0x00, 0xa9, 0x20, 0x81, 0x47, 0x48, 0xd0, 0x69, + 0xab, 0x20, 0x01, 0xab, 0x2c, 0xac, 0x17, 0xb3, 0x0b, 0xb5, 0x01, 0xff, + 0xd2, 0xb3, 0x20, 0x01, 0xe4, 0xb4, 0x20, 0x41, 0x42, 0xb0, 0x01, 0x78, + 0x23, 0x01, 0xf5, 0xb5, 0x24, 0x41, 0xe1, 0xaf, 0x20, 0x81, 0x08, 0xe9, + 0xb1, 0x20, 0x01, 0xf5, 0xb2, 0x20, 0x41, 0x4b, 0x28, 0x9e, 0xb0, 0x20, + 0x41, 0x45, 0x1c, 0x02, 0xac, 0x20, 0x81, 0x06, 0x42, 0x8f, 0x3d, 0xae, + 0x20, 0x41, 0x48, 0xd5, 0x05, 0xad, 0x20, 0x41, 0x45, 0xbb, 0x3f, 0xaa, + 0x20, 0x41, 0x45, 0xbb, 0x3f, 0xa8, 0x20, 0x41, 0x49, 0xa7, 0xb4, 0xa3, + 0x20, 0x81, 0x04, 0xee, 0xa5, 0x20, 0x41, 0x4a, 0x29, 0x9e, 0xa4, 0x20, + 0x41, 0x43, 0xf9, 0x03, 0xad, 0x24, 0x01, 0x42, 0x49, 0x00, 0xae, 0x24, + 0x01, 0x48, 0xd0, 0x69, 0xaf, 0x24, 0x01, 0x42, 0x74, 0x00, 0xb0, 0x24, + 0x81, 0x11, 0x42, 0x2a, 0x02, 0xb2, 0x24, 0x81, 0x06, 0x42, 0x6f, 0x00, + 0xb4, 0x24, 0x41, 0xf3, 0xb3, 0x24, 0x41, 0xec, 0xb1, 0x24, 0x41, 0x4e, + 0x61, 0x75, 0xac, 0x24, 0x41, 0x42, 0x92, 0x01, 0x9e, 0x20, 0x01, 0x43, + 0x94, 0xaf, 0x9f, 0x20, 0xc1, 0x00, 0x42, 0x2b, 0x64, 0xab, 0x24, 0x41, + 0x80, 0x01, 0xff, 0x4b, 0x6b, 0x9a, 0x9b, 0x20, 0x01, 0x4b, 0xc7, 0xa0, + 0x9c, 0x20, 0x01, 0x47, 0xd6, 0x05, 0x9d, 0x20, 0x01, 0x06, 0x28, 0x02, + 0x01, 0xff, 0x44, 0x8d, 0x60, 0x98, 0x20, 0x81, 0x06, 0x42, 0x2a, 0x02, + 0x9a, 0x20, 0x41, 0x45, 0x81, 0x60, 0x99, 0x20, 0x41, 0x07, 0x27, 0x02, + 0x01, 0xff, 0x51, 0xcb, 0x57, 0x8e, 0x20, 0x01, 0x43, 0x6c, 0x1e, 0x8f, + 0x20, 0x01, 0x43, 0x06, 0x5e, 0xa9, 0x24, 0x01, 0x42, 0x7d, 0x02, 0x90, + 0x20, 0x01, 0x43, 0xef, 0x0e, 0xaa, 0x24, 0x01, 0xb3, 0x04, 0xf5, 0x93, + 0x20, 0x41, 0x42, 0x13, 0x00, 0x91, 0x20, 0x01, 0x42, 0xb0, 0x01, 0x92, + 0x20, 0x41, 0x53, 0xf1, 0x4b, 0x8c, 0x20, 0x01, 0x49, 0xd5, 0xbf, 0x8b, + 0x20, 0x41, 0xe1, 0x55, 0x20, 0x81, 0xe6, 0x02, 0xe9, 0x72, 0x20, 0x81, + 0x9e, 0x02, 0xf5, 0x7a, 0x20, 0xc1, 0x00, 0x80, 0x84, 0x02, 0xe2, 0x7e, + 0x20, 0x81, 0xea, 0x01, 0xe7, 0x81, 0x20, 0x81, 0x25, 0xe8, 0x83, 0x20, + 0x01, 0xee, 0x84, 0x20, 0x81, 0x06, 0x42, 0xbe, 0x42, 0x89, 0x20, 0x41, + 0xd3, 0x85, 0x20, 0x81, 0x04, 0xd4, 0x88, 0x20, 0x41, 0x45, 0xbb, 0x3f, + 0x86, 0x20, 0xc1, 0x00, 0x45, 0xbb, 0x3f, 0x87, 0x20, 0x41, 0x07, 0x27, + 0x02, 0x06, 0x42, 0xb2, 0x0c, 0x82, 0x20, 0x41, 0xa1, 0xa0, 0x01, 0xa4, + 0x91, 0x01, 0x45, 0x92, 0xaf, 0x92, 0x24, 0x01, 0xa7, 0x74, 0xa8, 0x6a, + 0x48, 0xd0, 0x69, 0x99, 0x24, 0x01, 0xab, 0x48, 0xac, 0x2d, 0xad, 0x1b, + 0x42, 0x51, 0x03, 0xa5, 0x24, 0x01, 0x42, 0xe6, 0x05, 0xa6, 0x24, 0x01, + 0xb3, 0x01, 0xff, 0x42, 0xb0, 0x01, 0xa7, 0x24, 0x01, 0x46, 0xd2, 0x69, + 0xa8, 0x24, 0x41, 0x43, 0xf9, 0x03, 0xa2, 0x24, 0x01, 0x42, 0xed, 0x00, + 0xa3, 0x24, 0x01, 0xe9, 0xa4, 0x24, 0x41, 0xa1, 0x06, 0x4c, 0x4b, 0x96, + 0xa1, 0x24, 0x41, 0x45, 0xbd, 0xe7, 0x9e, 0x24, 0x01, 0xed, 0x9f, 0x24, + 0xc1, 0x00, 0x4a, 0xff, 0x5d, 0xa0, 0x24, 0x41, 0x45, 0x1c, 0x02, 0x9a, + 0x24, 0x01, 0xb5, 0x01, 0xff, 0xf2, 0x9b, 0x24, 0x01, 0x44, 0x06, 0x67, + 0x9c, 0x24, 0xc1, 0x00, 0x4c, 0x0a, 0x67, 0x9d, 0x24, 0x41, 0xe1, 0x97, + 0x24, 0x01, 0xe9, 0x98, 0x24, 0x41, 0xe1, 0x93, 0x24, 0x01, 0xe9, 0x94, + 0x24, 0xc1, 0x00, 0x47, 0x0d, 0xd5, 0x95, 0x24, 0x01, 0x42, 0xa4, 0x02, + 0x96, 0x24, 0x41, 0x42, 0x9e, 0x01, 0x90, 0x24, 0x01, 0x42, 0x42, 0x0b, + 0x91, 0x24, 0x41, 0x44, 0x95, 0xf1, 0x8d, 0x24, 0x01, 0x42, 0xa4, 0x02, + 0x8e, 0x24, 0xc1, 0x00, 0x48, 0xf6, 0x16, 0x8f, 0x24, 0x41, 0x07, 0x27, + 0x02, 0x04, 0xd2, 0x80, 0x20, 0x41, 0x44, 0x6b, 0x75, 0x7f, 0x20, 0x01, + 0x43, 0x8e, 0x06, 0x76, 0x23, 0x41, 0x44, 0xbc, 0x3f, 0x7c, 0x20, 0x01, + 0x47, 0x49, 0xd4, 0x7b, 0x20, 0x01, 0x47, 0x1b, 0x7c, 0x7d, 0x20, 0x41, + 0xe2, 0x73, 0x20, 0x01, 0xed, 0x74, 0x20, 0x81, 0x18, 0xee, 0x77, 0x20, + 0x81, 0x0d, 0x42, 0xa4, 0x02, 0x79, 0x20, 0xc1, 0x00, 0x49, 0xfb, 0xa5, + 0x75, 0x23, 0x41, 0x53, 0x90, 0x47, 0x78, 0x20, 0x41, 0x07, 0x27, 0x02, + 0x0b, 0xd2, 0x76, 0x20, 0xc1, 0x00, 0x49, 0xf8, 0xb4, 0x8c, 0x24, 0x41, + 0x43, 0xf0, 0x06, 0x8a, 0x24, 0x01, 0x43, 0x8e, 0x06, 0x75, 0x20, 0x01, + 0x45, 0xaa, 0xeb, 0x8b, 0x24, 0x41, 0x4b, 0x09, 0x45, 0x88, 0x24, 0x01, + 0xe7, 0x56, 0x20, 0x81, 0x14, 0xed, 0x6e, 0x20, 0x01, 0xf2, 0x6f, 0x20, + 0xc1, 0x00, 0xa1, 0x01, 0xff, 0xd3, 0x70, 0x20, 0x01, 0xd4, 0x71, 0x20, + 0x41, 0x80, 0x04, 0xd3, 0x74, 0x23, 0x41, 0x0d, 0x1e, 0x6f, 0x06, 0x49, + 0x00, 0x5e, 0x89, 0x24, 0x41, 0xa1, 0x89, 0x01, 0xa2, 0x7d, 0xa7, 0x5f, + 0x42, 0x22, 0x00, 0x60, 0x20, 0x01, 0x42, 0x46, 0x00, 0x61, 0x20, 0x81, + 0x4c, 0x43, 0x5c, 0x60, 0x63, 0x20, 0x01, 0xac, 0x31, 0x42, 0xcd, 0x05, + 0x68, 0x20, 0x01, 0x4c, 0x7c, 0x3d, 0x69, 0x20, 0x01, 0x42, 0x5a, 0x03, + 0x6a, 0x20, 0x01, 0x44, 0x10, 0x45, 0x6b, 0x20, 0x01, 0xb5, 0x01, 0xff, + 0x07, 0x09, 0x67, 0x06, 0x42, 0xa4, 0x02, 0x6d, 0x20, 0x41, 0x44, 0x05, + 0xf0, 0x6c, 0x20, 0x01, 0x44, 0x8c, 0x06, 0x73, 0x23, 0x41, 0xe1, 0x64, + 0x20, 0x01, 0xf5, 0x65, 0x20, 0xc1, 0x00, 0x4b, 0xa0, 0x97, 0x66, 0x20, + 0x01, 0xed, 0x67, 0x20, 0x41, 0x48, 0x88, 0x3d, 0x62, 0x20, 0x41, 0xe1, + 0x5b, 0x20, 0x81, 0x11, 0xe9, 0x5d, 0x20, 0x81, 0x06, 0x42, 0xb2, 0x0c, + 0x5f, 0x20, 0x41, 0x42, 0xbe, 0x42, 0x5e, 0x20, 0x41, 0x4a, 0xa0, 0x97, + 0x5c, 0x20, 0x41, 0x44, 0xa3, 0xe4, 0x59, 0x20, 0x01, 0xe9, 0x5a, 0x20, + 0x41, 0x4a, 0xa0, 0x97, 0x57, 0x20, 0x01, 0x43, 0xb9, 0x00, 0x58, 0x20, + 0x41, 0xe1, 0x40, 0x20, 0x81, 0x54, 0xe9, 0x49, 0x20, 0x81, 0x3a, 0xf5, + 0x4d, 0x20, 0xc1, 0x00, 0x80, 0x16, 0x43, 0xf0, 0x7a, 0x51, 0x20, 0x81, + 0x09, 0xf2, 0x53, 0x20, 0xc1, 0x00, 0xd2, 0x54, 0x20, 0x41, 0x4b, 0x8a, + 0x97, 0x52, 0x20, 0x41, 0x4b, 0x60, 0x9a, 0x50, 0x20, 0x01, 0x08, 0x80, + 0xc9, 0x01, 0xff, 0x42, 0x5c, 0x00, 0x4e, 0x20, 0x01, 0x49, 0xcc, 0xbf, + 0x87, 0x24, 0x01, 0x42, 0x42, 0x0b, 0x4f, 0x20, 0x41, 0x07, 0x27, 0x02, + 0x01, 0xff, 0xe1, 0x4a, 0x20, 0x01, 0x43, 0x6c, 0x1e, 0x4b, 0x20, 0x01, + 0x48, 0xd0, 0x69, 0x4c, 0x20, 0x41, 0xe4, 0x41, 0x20, 0x81, 0x40, 0x42, + 0x14, 0xf5, 0x42, 0x20, 0x01, 0x44, 0xbc, 0x42, 0x43, 0x20, 0x81, 0x1c, + 0xec, 0x44, 0x20, 0x81, 0x0b, 0xf2, 0x47, 0x20, 0xc1, 0x00, 0x42, 0x69, + 0x7f, 0x48, 0x20, 0x41, 0x49, 0x7a, 0xb4, 0x45, 0x20, 0x01, 0x42, 0x23, + 0x02, 0x46, 0x20, 0x41, 0x07, 0x27, 0x02, 0x01, 0xff, 0x43, 0x45, 0xa7, + 0x84, 0x24, 0x01, 0x42, 0x51, 0x03, 0x85, 0x24, 0x01, 0x42, 0x59, 0x00, + 0x86, 0x24, 0x41, 0x50, 0x76, 0x60, 0x83, 0x24, 0x41, 0x07, 0x27, 0x02, + 0x9d, 0x03, 0xd2, 0x09, 0x20, 0x01, 0xe2, 0x0a, 0x20, 0x81, 0x83, 0x02, + 0xe4, 0x1c, 0x20, 0x81, 0xf7, 0x01, 0xeb, 0x1d, 0x20, 0x81, 0xe0, 0x01, + 0xec, 0x20, 0x20, 0x81, 0x9a, 0x01, 0x43, 0xb9, 0x00, 0x2b, 0x20, 0x81, + 0x81, 0x01, 0xee, 0x2d, 0x20, 0x81, 0x58, 0x43, 0x28, 0x13, 0x33, 0x20, + 0x01, 0xb2, 0x3d, 0xb3, 0x01, 0xff, 0x43, 0xe9, 0xf3, 0x37, 0x20, 0x01, + 0xe8, 0x38, 0x20, 0xc1, 0x00, 0x80, 0x0a, 0xd2, 0x3e, 0x20, 0x01, 0x43, + 0x24, 0x02, 0x3f, 0x20, 0x41, 0x49, 0xd4, 0xa5, 0x3a, 0x20, 0x01, 0x09, + 0xa2, 0x10, 0x06, 0x49, 0x22, 0x95, 0x39, 0x20, 0x41, 0x48, 0xa2, 0x10, + 0x3c, 0x20, 0x81, 0x06, 0x61, 0xd1, 0x0e, 0x3b, 0x20, 0x41, 0x5f, 0x94, + 0x10, 0x3d, 0x20, 0x41, 0x42, 0xe8, 0x01, 0x34, 0x20, 0x81, 0x06, 0x43, + 0x1a, 0x9e, 0x36, 0x20, 0x41, 0x4a, 0xff, 0x5d, 0x35, 0x20, 0x41, 0x80, + 0x06, 0x43, 0x8e, 0x06, 0x32, 0x20, 0x41, 0x47, 0x42, 0xd4, 0x2e, 0x20, + 0x01, 0x0a, 0x97, 0xaf, 0x06, 0x4b, 0x7c, 0xa3, 0x2f, 0x20, 0x41, 0x55, + 0x67, 0x3d, 0x30, 0x20, 0x01, 0x47, 0xd6, 0x05, 0x31, 0x20, 0x41, 0x07, + 0x27, 0x02, 0x01, 0xff, 0x43, 0x6a, 0xf4, 0x72, 0x23, 0x01, 0x43, 0x8e, + 0x06, 0x2c, 0x20, 0x41, 0x07, 0x27, 0x02, 0x0c, 0x42, 0x1a, 0x00, 0x29, + 0x20, 0x01, 0x43, 0x19, 0x3d, 0x2a, 0x20, 0x41, 0x42, 0x13, 0x00, 0x21, + 0x20, 0x01, 0x44, 0x8d, 0xef, 0x22, 0x20, 0x01, 0x44, 0x05, 0x45, 0x23, + 0x20, 0x01, 0x42, 0x22, 0x00, 0x24, 0x20, 0x01, 0xab, 0x0c, 0x43, 0x8e, + 0x06, 0x27, 0x20, 0x01, 0x43, 0x30, 0x7c, 0x28, 0x20, 0x41, 0x43, 0xc2, + 0xf0, 0x25, 0x20, 0x01, 0xe9, 0x26, 0x20, 0x41, 0x07, 0x27, 0x02, 0x01, + 0xff, 0x45, 0x92, 0xaf, 0x1e, 0x20, 0x01, 0x4f, 0xfc, 0x72, 0x1f, 0x20, + 0x41, 0x4b, 0xd7, 0x97, 0x82, 0x24, 0x41, 0x80, 0x2c, 0xd2, 0x16, 0x20, + 0xc1, 0x00, 0x07, 0x27, 0x02, 0x01, 0xff, 0xe1, 0x71, 0x23, 0x01, 0x45, + 0xa2, 0xe4, 0x17, 0x20, 0x01, 0x49, 0x8d, 0x60, 0x18, 0x20, 0x01, 0x4a, + 0xc1, 0xad, 0x19, 0x20, 0x01, 0x44, 0x49, 0x57, 0x1a, 0x20, 0x01, 0x44, + 0x10, 0x45, 0x1b, 0x20, 0x41, 0x44, 0xbc, 0x3f, 0x15, 0x20, 0x01, 0x06, + 0x28, 0x02, 0x01, 0xff, 0x44, 0xf9, 0x03, 0x0b, 0x20, 0x01, 0x49, 0x21, + 0x77, 0x0c, 0x20, 0x01, 0x02, 0x24, 0x02, 0x3d, 0x42, 0x22, 0x00, 0x0f, + 0x20, 0x01, 0xa9, 0x29, 0x45, 0x22, 0x02, 0x12, 0x20, 0x01, 0x43, 0xdc, + 0x22, 0x70, 0x23, 0x81, 0x16, 0x02, 0xa4, 0x02, 0x06, 0x4f, 0x19, 0x74, + 0x14, 0x20, 0x41, 0x43, 0x93, 0x5a, 0x13, 0x20, 0x01, 0x42, 0x08, 0x67, + 0x81, 0x24, 0x41, 0x45, 0x81, 0x60, 0x80, 0x24, 0x41, 0x47, 0xd1, 0x69, + 0x10, 0x20, 0x01, 0x43, 0xcb, 0x13, 0x11, 0x20, 0x41, 0xec, 0x0d, 0x20, + 0x01, 0x47, 0x8f, 0x60, 0x0e, 0x20, 0x41, 0xe1, 0x01, 0x20, 0x01, 0x43, + 0xe9, 0x70, 0x02, 0x20, 0x01, 0x49, 0x8d, 0x60, 0x03, 0x20, 0x01, 0x42, + 0x22, 0x00, 0x04, 0x20, 0x01, 0x43, 0xf0, 0x06, 0x05, 0x20, 0x01, 0x4a, + 0xb6, 0x3f, 0x06, 0x20, 0x01, 0x44, 0xca, 0x81, 0x07, 0x20, 0x01, 0x43, + 0xeb, 0x88, 0x08, 0x20, 0x41, 0x09, 0xe3, 0x25, 0x0c, 0x59, 0x2e, 0x25, + 0x70, 0x24, 0x01, 0x4e, 0x67, 0x7e, 0x71, 0x24, 0x41, 0x45, 0x94, 0x3b, + 0x72, 0x24, 0x01, 0x49, 0x40, 0xbe, 0x74, 0x24, 0x01, 0x48, 0xc0, 0xcb, + 0x73, 0x24, 0x41, 0xa5, 0xb5, 0x05, 0xa6, 0xf6, 0x03, 0x02, 0x51, 0x03, + 0xa4, 0x03, 0xaf, 0xb7, 0x02, 0xb3, 0xb5, 0x01, 0xb4, 0x01, 0xff, 0x05, + 0x25, 0x01, 0x4f, 0x03, 0x20, 0x0a, 0x01, 0xff, 0x43, 0xf9, 0x03, 0x00, + 0x24, 0x81, 0x3d, 0xa2, 0x2f, 0x45, 0x1e, 0xe6, 0x59, 0x24, 0x01, 0x04, + 0xe7, 0x6b, 0x1d, 0x04, 0x5f, 0x19, 0x11, 0x07, 0xee, 0x74, 0x01, 0xff, + 0x44, 0xd0, 0x0c, 0x5b, 0x24, 0x01, 0x4e, 0xf7, 0x5e, 0x5e, 0x24, 0x41, + 0xd2, 0x23, 0x24, 0x01, 0xf5, 0x2d, 0x24, 0x41, 0xd2, 0x16, 0x24, 0x01, + 0xf5, 0x1f, 0x24, 0x41, 0x43, 0x8e, 0x60, 0x50, 0x24, 0x01, 0x43, 0xb9, + 0xaa, 0x35, 0x24, 0x41, 0x45, 0x81, 0x60, 0x4a, 0x24, 0x41, 0x43, 0xf9, + 0x03, 0x01, 0x24, 0x81, 0x52, 0xa2, 0x3d, 0x44, 0xd0, 0x0c, 0x08, 0x24, + 0x01, 0x04, 0xe7, 0x6b, 0x2b, 0x04, 0x5f, 0x19, 0x11, 0x10, 0x56, 0x68, + 0x01, 0xff, 0x42, 0xe8, 0xf4, 0x3a, 0x24, 0x01, 0x42, 0x8f, 0xd8, 0x3b, + 0x24, 0x41, 0xd2, 0x24, 0x24, 0x81, 0x0b, 0xf5, 0x2e, 0x24, 0xc1, 0x00, + 0x4d, 0xb9, 0x7f, 0x2f, 0x24, 0x41, 0x4d, 0xb9, 0x7f, 0x25, 0x24, 0x41, + 0xd2, 0x17, 0x24, 0x01, 0xf5, 0x20, 0x24, 0x41, 0x43, 0x8e, 0x60, 0x51, + 0x24, 0x01, 0x43, 0xb9, 0xaa, 0x36, 0x24, 0xc1, 0x00, 0x4d, 0xb9, 0x7f, + 0x37, 0x24, 0x41, 0x45, 0x81, 0x60, 0x4b, 0x24, 0x41, 0x05, 0x70, 0x22, + 0x45, 0x14, 0xbc, 0x42, 0x35, 0x03, 0xff, 0x52, 0x01, 0xff, 0x43, 0xf9, + 0x03, 0x04, 0x24, 0x81, 0x23, 0x44, 0xd0, 0x0c, 0x0b, 0x24, 0x01, 0x45, + 0xa0, 0xe6, 0x1a, 0x24, 0x01, 0x45, 0xd8, 0xea, 0x28, 0x24, 0x01, 0xf5, + 0x11, 0x24, 0x81, 0x06, 0x51, 0xf7, 0x5e, 0x40, 0x24, 0x41, 0x4d, 0xb9, + 0x7f, 0x6b, 0x24, 0x41, 0x45, 0x81, 0x60, 0x4e, 0x24, 0x41, 0x44, 0xd0, + 0x0c, 0x32, 0x24, 0x01, 0x43, 0xcb, 0x13, 0x33, 0x24, 0x41, 0x43, 0xf9, + 0x03, 0x05, 0x24, 0x01, 0x44, 0xd0, 0x0c, 0x0c, 0x24, 0x01, 0x45, 0xa0, + 0xe6, 0x1b, 0x24, 0x01, 0x45, 0xd8, 0xea, 0x29, 0x24, 0x01, 0xf5, 0x12, + 0x24, 0x81, 0x13, 0x11, 0x08, 0x5f, 0x01, 0xff, 0x80, 0x04, 0xd3, 0x41, + 0x24, 0x41, 0xe1, 0x42, 0x24, 0x01, 0xe2, 0x43, 0x24, 0x41, 0x4d, 0xb9, + 0x7f, 0x6c, 0x24, 0x41, 0x10, 0x66, 0x64, 0x5a, 0x03, 0xef, 0x07, 0x01, + 0xff, 0xa2, 0x47, 0xa5, 0x39, 0x04, 0xe7, 0x6b, 0x2d, 0x48, 0x90, 0xc6, + 0x64, 0x24, 0x01, 0x08, 0x04, 0x03, 0x17, 0x45, 0xe2, 0xea, 0x2c, 0x24, + 0x01, 0x06, 0x38, 0x89, 0x01, 0xff, 0x44, 0xd0, 0x0c, 0x5a, 0x24, 0x01, + 0x4e, 0xf7, 0x5e, 0x5d, 0x24, 0x41, 0x43, 0xf9, 0x03, 0x60, 0x24, 0x01, + 0x43, 0x84, 0x80, 0x63, 0x24, 0x41, 0xd2, 0x15, 0x24, 0x01, 0xf5, 0x1e, + 0x24, 0x41, 0x49, 0x1a, 0xba, 0x5f, 0x24, 0x01, 0x44, 0x1f, 0xe6, 0x58, + 0x24, 0x41, 0x43, 0x8e, 0x60, 0x4f, 0x24, 0x01, 0x43, 0xb9, 0xaa, 0x34, + 0x24, 0x41, 0x47, 0x2a, 0x01, 0x62, 0x24, 0x01, 0x45, 0xe6, 0xdf, 0x61, + 0x24, 0x41, 0x04, 0xfd, 0xef, 0x3d, 0x03, 0xef, 0x07, 0x01, 0xff, 0x43, + 0xf9, 0x03, 0x07, 0x24, 0x01, 0x44, 0xd0, 0x0c, 0x0e, 0x24, 0x01, 0x45, + 0xa0, 0xe6, 0x1d, 0x24, 0x01, 0x45, 0xd8, 0xea, 0x2b, 0x24, 0x01, 0xf5, + 0x14, 0x24, 0x81, 0x15, 0x53, 0x64, 0x4e, 0x46, 0x24, 0xc1, 0x00, 0x42, + 0x19, 0x00, 0x49, 0x24, 0x01, 0xd3, 0x47, 0x24, 0x01, 0xd4, 0x48, 0x24, + 0x41, 0x4d, 0xb9, 0x7f, 0x6e, 0x24, 0x41, 0x43, 0x93, 0x5a, 0x57, 0x24, + 0x01, 0x43, 0xcb, 0x13, 0x56, 0x24, 0x41, 0x04, 0xd2, 0x05, 0x65, 0x04, + 0xf6, 0x06, 0x01, 0xff, 0x43, 0xf9, 0x03, 0x02, 0x24, 0x81, 0x53, 0xa2, + 0x3e, 0x44, 0xd0, 0x0c, 0x09, 0x24, 0x01, 0x04, 0xe7, 0x6b, 0x2c, 0x04, + 0x5f, 0x19, 0x20, 0xf5, 0x0f, 0x24, 0x81, 0x15, 0x52, 0x5f, 0x56, 0x3c, + 0x24, 0xc1, 0x00, 0x80, 0x04, 0xd4, 0x3d, 0x24, 0x41, 0xe1, 0x3e, 0x24, + 0x01, 0xe2, 0x3f, 0x24, 0x41, 0x4d, 0xb9, 0x7f, 0x69, 0x24, 0x41, 0xd2, + 0x26, 0x24, 0x01, 0xf5, 0x30, 0x24, 0x41, 0xd2, 0x18, 0x24, 0x01, 0xf5, + 0x21, 0x24, 0x41, 0x43, 0x8e, 0x60, 0x52, 0x24, 0x81, 0x06, 0x43, 0xb9, + 0xaa, 0x38, 0x24, 0x41, 0x4d, 0xb9, 0x7f, 0x53, 0x24, 0x41, 0x45, 0x81, + 0x60, 0x4c, 0x24, 0x41, 0x43, 0xf9, 0x03, 0x03, 0x24, 0x81, 0x46, 0xa2, + 0x31, 0x44, 0xd0, 0x0c, 0x0a, 0x24, 0x01, 0x04, 0xe7, 0x6b, 0x1f, 0xb3, + 0x0b, 0xf5, 0x10, 0x24, 0xc1, 0x00, 0x4d, 0xb9, 0x7f, 0x6a, 0x24, 0x41, + 0x03, 0xc9, 0x02, 0x06, 0x4a, 0x27, 0xac, 0x5c, 0x24, 0x41, 0xd2, 0x27, + 0x24, 0x01, 0xf5, 0x31, 0x24, 0x41, 0xd2, 0x19, 0x24, 0x01, 0xf5, 0x22, + 0x24, 0x41, 0x43, 0x8e, 0x60, 0x54, 0x24, 0x81, 0x06, 0x43, 0xb9, 0xaa, + 0x39, 0x24, 0x41, 0x4d, 0xb9, 0x7f, 0x55, 0x24, 0x41, 0x45, 0x81, 0x60, + 0x4d, 0x24, 0x41, 0x05, 0xc9, 0x00, 0x1f, 0x07, 0xac, 0xd2, 0x01, 0xff, + 0xa6, 0x0c, 0x49, 0x29, 0xbd, 0x65, 0x24, 0x01, 0x4a, 0x53, 0xb2, 0x66, + 0x24, 0x41, 0x44, 0x51, 0x4d, 0x68, 0x24, 0x01, 0x44, 0xce, 0x51, 0x67, + 0x24, 0x41, 0x43, 0xf9, 0x03, 0x06, 0x24, 0x01, 0x44, 0xd0, 0x0c, 0x0d, + 0x24, 0x01, 0x45, 0xa0, 0xe6, 0x1c, 0x24, 0x01, 0x45, 0xd8, 0xea, 0x2a, + 0x24, 0x01, 0xf5, 0x13, 0x24, 0x81, 0x0b, 0x51, 0x19, 0x5f, 0x44, 0x24, + 0xc1, 0x00, 0xd3, 0x45, 0x24, 0x41, 0x4d, 0xb9, 0x7f, 0x6d, 0x24, 0x41, + 0x42, 0x5c, 0x00, 0x80, 0xf9, 0x01, 0xa5, 0xa1, 0x01, 0x45, 0xe9, 0x78, + 0x97, 0xf9, 0x81, 0x93, 0x01, 0xaf, 0x27, 0xb5, 0x19, 0xb9, 0x01, 0xff, + 0x04, 0xa1, 0x01, 0x06, 0x49, 0x69, 0xbf, 0x2e, 0xf5, 0x41, 0x48, 0x62, + 0x1f, 0x3f, 0xf6, 0x01, 0x44, 0x0c, 0x08, 0x22, 0xf6, 0x41, 0x43, 0x96, + 0x21, 0x7c, 0xfa, 0x01, 0x4a, 0x0b, 0xb4, 0xa2, 0x20, 0x40, 0x46, 0xb2, + 0xda, 0x0a, 0xf4, 0x01, 0x46, 0x16, 0xdd, 0x50, 0xf9, 0x01, 0x02, 0xee, + 0x00, 0x06, 0x42, 0xa7, 0x01, 0x51, 0xf4, 0x41, 0x80, 0x1c, 0x03, 0x05, + 0x00, 0x06, 0x49, 0x8f, 0xba, 0xcc, 0x26, 0x40, 0x45, 0x69, 0xe6, 0x8c, + 0xf3, 0x01, 0x67, 0xcd, 0x05, 0x8a, 0xf1, 0x01, 0x46, 0x40, 0xe0, 0x94, + 0x26, 0x40, 0x44, 0xb9, 0x00, 0x4c, 0x27, 0x00, 0x03, 0xf4, 0x01, 0x20, + 0xb0, 0x01, 0xff, 0x0a, 0x0d, 0xa8, 0x0d, 0x45, 0x3f, 0xdf, 0x42, 0xf5, + 0xc1, 0x00, 0x57, 0xba, 0x2c, 0x41, 0xf5, 0x41, 0x4d, 0x01, 0x85, 0x51, + 0x2e, 0x00, 0x4e, 0xb9, 0x7b, 0x50, 0x2e, 0x40, 0x49, 0xe0, 0xba, 0x29, + 0x26, 0x00, 0x48, 0xf0, 0xc7, 0x28, 0x26, 0x40, 0x4d, 0x44, 0x7f, 0xcf, + 0xf3, 0x41, 0x48, 0x28, 0xc5, 0xb3, 0xf4, 0x01, 0x4a, 0x43, 0x41, 0x19, + 0xf3, 0x41, 0x42, 0x8a, 0x00, 0xe5, 0xf9, 0x01, 0xa3, 0x9c, 0x25, 0x44, + 0xc9, 0xef, 0xb0, 0x26, 0x00, 0x42, 0x9e, 0x01, 0x99, 0xfa, 0x01, 0xac, + 0xf1, 0x24, 0xad, 0xbd, 0x0c, 0xae, 0xad, 0x0b, 0x02, 0x55, 0x05, 0x95, + 0x0b, 0xb0, 0xcb, 0x01, 0xb2, 0xb6, 0x01, 0xb5, 0x0b, 0xf7, 0x04, 0xf4, + 0xc1, 0x00, 0x45, 0x0b, 0x08, 0x2e, 0xf4, 0x41, 0x4b, 0x13, 0x9a, 0xcb, + 0xf6, 0x01, 0x02, 0x11, 0x00, 0x06, 0x4e, 0x1f, 0x7b, 0x91, 0xf4, 0x41, + 0x02, 0x33, 0x00, 0x88, 0x01, 0x08, 0x20, 0xc7, 0x01, 0xff, 0x0b, 0x3a, + 0xa3, 0x42, 0x0b, 0x58, 0xa4, 0x01, 0xff, 0x45, 0x12, 0x0b, 0x67, 0xd3, + 0x01, 0xa6, 0x29, 0x44, 0xcf, 0x2a, 0x68, 0xd3, 0x01, 0x43, 0x0e, 0x0b, + 0x60, 0xd3, 0x01, 0xb3, 0x0f, 0xb4, 0x01, 0xff, 0x44, 0x25, 0x01, 0x62, + 0xd3, 0x01, 0x42, 0x15, 0x02, 0x61, 0xd3, 0x41, 0x44, 0xc9, 0x1d, 0x66, + 0xd3, 0x01, 0x42, 0x01, 0x26, 0x65, 0xd3, 0x41, 0x43, 0xd2, 0x05, 0x64, + 0xd3, 0x01, 0x43, 0xf6, 0x06, 0x63, 0xd3, 0x41, 0x45, 0x12, 0x0b, 0x70, + 0xd3, 0x01, 0xa6, 0x29, 0x44, 0xcf, 0x2a, 0x71, 0xd3, 0x01, 0x43, 0x0e, + 0x0b, 0x69, 0xd3, 0x01, 0xb3, 0x0f, 0xb4, 0x01, 0xff, 0x44, 0x25, 0x01, + 0x6b, 0xd3, 0x01, 0x42, 0x15, 0x02, 0x6a, 0xd3, 0x41, 0x44, 0xc9, 0x1d, + 0x6f, 0xd3, 0x01, 0x42, 0x01, 0x26, 0x6e, 0xd3, 0x41, 0x43, 0xd2, 0x05, + 0x6d, 0xd3, 0x01, 0x43, 0xf6, 0x06, 0x6c, 0xd3, 0x41, 0x44, 0x49, 0xef, + 0x34, 0x23, 0x00, 0x44, 0xad, 0xf2, 0x35, 0x23, 0x40, 0x42, 0x13, 0x00, + 0xb8, 0xfa, 0x01, 0x52, 0xd7, 0x53, 0x4f, 0x2e, 0x00, 0x4b, 0xe5, 0xa1, + 0x58, 0x22, 0x40, 0x04, 0x26, 0x20, 0x0f, 0xb9, 0x01, 0xff, 0x4b, 0xa1, + 0x9e, 0x2f, 0xf1, 0x01, 0x4a, 0x55, 0xb0, 0xa9, 0x00, 0x40, 0xa3, 0xed, + 0x05, 0x06, 0x5a, 0xdb, 0x90, 0x04, 0xa6, 0x81, 0x04, 0x55, 0xfe, 0x3c, + 0xff, 0x2c, 0x00, 0x0b, 0x9b, 0xa0, 0xde, 0x03, 0xb3, 0x01, 0xff, 0x0c, + 0x77, 0x08, 0x33, 0x06, 0x60, 0x16, 0x01, 0xff, 0xab, 0x20, 0x45, 0xa3, + 0xe8, 0xe5, 0x2c, 0x00, 0x45, 0xe3, 0xe9, 0xe6, 0x2c, 0x00, 0xb3, 0x06, + 0x46, 0x6a, 0xe0, 0xe8, 0x2c, 0x40, 0x49, 0x9c, 0xb9, 0xea, 0x2c, 0x00, + 0x46, 0x70, 0xe0, 0xe7, 0x2c, 0x40, 0x42, 0x56, 0x07, 0xe4, 0x2c, 0x00, + 0x45, 0x7d, 0xca, 0xe9, 0x2c, 0x40, 0xa1, 0x95, 0x03, 0x4d, 0x25, 0x81, + 0xf3, 0x2c, 0x00, 0x02, 0x75, 0x06, 0xe7, 0x02, 0xa4, 0xbb, 0x02, 0x43, + 0x31, 0xf4, 0x89, 0x2c, 0x00, 0xa6, 0xa8, 0x02, 0x02, 0x24, 0x02, 0x97, + 0x02, 0xa8, 0x88, 0x02, 0x45, 0x40, 0xe7, 0x93, 0x2c, 0x00, 0xab, 0xe7, + 0x01, 0xac, 0xd8, 0x01, 0x42, 0x7d, 0x02, 0x99, 0x2c, 0x00, 0x42, 0x51, + 0x03, 0x9b, 0x2c, 0x00, 0xef, 0x9f, 0x2c, 0x80, 0x54, 0xb0, 0x48, 0x42, + 0xd0, 0x00, 0xa3, 0x2c, 0x00, 0xb3, 0x20, 0xb4, 0x12, 0x42, 0x7d, 0x00, + 0xa9, 0x2c, 0x00, 0x44, 0x05, 0xf3, 0x83, 0x2c, 0x00, 0x44, 0x55, 0xf3, + 0x8d, 0x2c, 0x40, 0x42, 0x5f, 0x24, 0xa7, 0x2c, 0x00, 0x45, 0xfa, 0xe6, + 0x91, 0x2c, 0x40, 0x44, 0x37, 0x94, 0xc1, 0x2c, 0x00, 0xa8, 0x0c, 0x43, + 0xe3, 0x0c, 0xa5, 0x2c, 0x00, 0x42, 0x3c, 0x01, 0x8b, 0x2c, 0x40, 0x42, + 0x12, 0x0b, 0xe3, 0x03, 0x00, 0x43, 0xe3, 0x0c, 0xed, 0x03, 0x40, 0xe9, + 0xa1, 0x2c, 0x00, 0x42, 0x5a, 0x03, 0xaf, 0x2c, 0x40, 0x03, 0x03, 0x24, + 0x06, 0x42, 0x3c, 0x01, 0xb1, 0x2c, 0x40, 0x07, 0x1a, 0xd0, 0x1f, 0x07, + 0x9f, 0xa0, 0x01, 0xff, 0xae, 0x0c, 0x45, 0xe7, 0xea, 0xdd, 0x2c, 0x00, + 0x43, 0x09, 0xa4, 0xe3, 0x2c, 0x40, 0x42, 0xf1, 0x06, 0xdf, 0x2c, 0x00, + 0x42, 0x7e, 0x1a, 0xe1, 0x2c, 0x40, 0x43, 0x56, 0x07, 0xb5, 0x2c, 0x00, + 0x43, 0x22, 0xf4, 0xd9, 0x2c, 0x00, 0x43, 0x93, 0x5a, 0xc7, 0x2c, 0x00, + 0x46, 0xde, 0xdb, 0xd7, 0x2c, 0x00, 0xa8, 0x17, 0x43, 0x7a, 0x93, 0xbf, + 0x2c, 0x00, 0x02, 0xa4, 0x02, 0x01, 0xff, 0x42, 0x12, 0x0b, 0xc5, 0x2c, + 0x00, 0x43, 0xe3, 0x0c, 0xdb, 0x2c, 0x40, 0xe1, 0xcf, 0x2c, 0x80, 0x0c, + 0x42, 0x12, 0x0b, 0xd3, 0x2c, 0x00, 0x43, 0x0c, 0x00, 0xcd, 0x2c, 0x40, + 0xf4, 0xd5, 0x2c, 0x40, 0x4a, 0xb9, 0xa6, 0xd1, 0x2c, 0x00, 0x44, 0x29, + 0xef, 0x97, 0x2c, 0x40, 0x43, 0x7b, 0x3d, 0x95, 0x2c, 0x00, 0xa8, 0x06, + 0x42, 0x5a, 0x03, 0x9d, 0x2c, 0x40, 0x42, 0x12, 0x0b, 0xe7, 0x03, 0x00, + 0xe9, 0xad, 0x2c, 0x40, 0x43, 0x8a, 0x00, 0x8f, 0x2c, 0x00, 0x43, 0x0c, + 0x00, 0xe9, 0x03, 0x40, 0x43, 0x15, 0x05, 0x85, 0x2c, 0x00, 0x44, 0xe0, + 0xdb, 0xeb, 0x03, 0x40, 0x42, 0x12, 0x0b, 0xe5, 0x03, 0x00, 0xe9, 0xab, + 0x2c, 0x40, 0x44, 0xf5, 0xee, 0x87, 0x2c, 0x00, 0x42, 0x12, 0x0b, 0xef, + 0x03, 0x00, 0x09, 0xed, 0xb9, 0x01, 0xff, 0x44, 0x67, 0x00, 0xb3, 0x2c, + 0x00, 0x44, 0x0b, 0x00, 0xcb, 0x2c, 0x00, 0x44, 0xce, 0xc9, 0xb9, 0x2c, + 0x00, 0x42, 0x51, 0x03, 0xbb, 0x2c, 0x40, 0x4a, 0x15, 0xaf, 0xc3, 0x2c, + 0x00, 0x0c, 0xd4, 0x24, 0x01, 0xff, 0x43, 0x31, 0xf4, 0xb7, 0x2c, 0x00, + 0x46, 0xde, 0xdb, 0xee, 0x2c, 0x00, 0x42, 0x51, 0x03, 0xbd, 0x2c, 0x00, + 0x44, 0x1b, 0xaf, 0xec, 0x2c, 0x40, 0x4c, 0xab, 0x90, 0xc9, 0x2c, 0x00, + 0x43, 0x6d, 0xf4, 0x81, 0x2c, 0x40, 0x54, 0x9f, 0x34, 0xfa, 0x2c, 0x00, + 0x49, 0x81, 0x16, 0xf9, 0x2c, 0x00, 0x56, 0x9d, 0x34, 0xfb, 0x2c, 0x00, + 0x4d, 0xdc, 0x53, 0xfc, 0x2c, 0x40, 0x50, 0x1f, 0x5a, 0xfd, 0x2c, 0x00, + 0x48, 0x82, 0x16, 0xfe, 0x2c, 0x40, 0x06, 0xef, 0x06, 0x96, 0x01, 0x07, + 0xff, 0x39, 0x06, 0x4e, 0xed, 0x7c, 0xe0, 0x02, 0x41, 0x05, 0x12, 0x0b, + 0x7e, 0xa6, 0x5f, 0x04, 0xcf, 0x2a, 0x4f, 0x4b, 0x6d, 0x11, 0xf3, 0x02, + 0x01, 0xb3, 0x26, 0xb4, 0x01, 0xff, 0x42, 0x92, 0x01, 0xea, 0x02, 0x01, + 0xa8, 0x0f, 0xb7, 0x01, 0xff, 0x44, 0xcb, 0x1d, 0xeb, 0x02, 0x01, 0x49, + 0xbe, 0x1d, 0xf4, 0x02, 0x41, 0x44, 0x7b, 0x11, 0xec, 0x02, 0x01, 0x4b, + 0xfb, 0x17, 0xf5, 0x02, 0x41, 0x04, 0xc9, 0x1d, 0x11, 0x02, 0x01, 0x26, + 0x01, 0xff, 0x48, 0x70, 0x11, 0xf8, 0x02, 0x01, 0x42, 0x7d, 0x11, 0xef, + 0x02, 0x41, 0x48, 0x70, 0x11, 0xf9, 0x02, 0x01, 0x42, 0x7d, 0x11, 0xf0, + 0x02, 0x41, 0x48, 0x70, 0x11, 0xfb, 0x02, 0x01, 0x42, 0x7d, 0x11, 0xf2, + 0x02, 0x41, 0xa9, 0x0f, 0xaf, 0x01, 0xff, 0x43, 0x7c, 0x11, 0xed, 0x02, + 0x01, 0x4a, 0xf3, 0xb2, 0xf6, 0x02, 0x41, 0x43, 0x52, 0x4d, 0xee, 0x02, + 0x01, 0x4a, 0x82, 0x39, 0xf7, 0x02, 0x41, 0x48, 0x70, 0x11, 0xfa, 0x02, + 0x01, 0xf9, 0xf1, 0x02, 0x41, 0x45, 0x12, 0x0b, 0xe8, 0x02, 0x01, 0xa6, + 0x29, 0x44, 0xcf, 0x2a, 0xe9, 0x02, 0x01, 0x43, 0x0e, 0x0b, 0xe1, 0x02, + 0x01, 0xb3, 0x0f, 0xb4, 0x01, 0xff, 0x44, 0x25, 0x01, 0xe3, 0x02, 0x01, + 0x42, 0x15, 0x02, 0xe2, 0x02, 0x41, 0x44, 0xc9, 0x1d, 0xe7, 0x02, 0x01, + 0x42, 0x01, 0x26, 0xe6, 0x02, 0x41, 0x43, 0xd2, 0x05, 0xe5, 0x02, 0x01, + 0x43, 0xf6, 0x06, 0xe4, 0x02, 0x41, 0x0e, 0xe5, 0x05, 0x1c, 0x09, 0x33, + 0x16, 0x01, 0xff, 0x48, 0xb0, 0xc8, 0xef, 0x2c, 0x00, 0x09, 0x57, 0xbf, + 0x01, 0xff, 0x45, 0x7a, 0xe4, 0xf0, 0x2c, 0x00, 0x45, 0x2b, 0xe8, 0xf1, + 0x2c, 0x40, 0xa1, 0x95, 0x03, 0x4d, 0x25, 0x81, 0xf2, 0x2c, 0x00, 0x02, + 0x75, 0x06, 0xe7, 0x02, 0xa4, 0xbb, 0x02, 0x43, 0x31, 0xf4, 0x88, 0x2c, + 0x00, 0xa6, 0xa8, 0x02, 0x02, 0x24, 0x02, 0x97, 0x02, 0xa8, 0x88, 0x02, + 0x45, 0x40, 0xe7, 0x92, 0x2c, 0x00, 0xab, 0xe7, 0x01, 0xac, 0xd8, 0x01, + 0x42, 0x7d, 0x02, 0x98, 0x2c, 0x00, 0x42, 0x51, 0x03, 0x9a, 0x2c, 0x00, + 0xef, 0x9e, 0x2c, 0x80, 0x54, 0xb0, 0x48, 0x42, 0xd0, 0x00, 0xa2, 0x2c, + 0x00, 0xb3, 0x20, 0xb4, 0x12, 0x42, 0x7d, 0x00, 0xa8, 0x2c, 0x00, 0x44, + 0x05, 0xf3, 0x82, 0x2c, 0x00, 0x44, 0x55, 0xf3, 0x8c, 0x2c, 0x40, 0x42, + 0x5f, 0x24, 0xa6, 0x2c, 0x00, 0x45, 0xfa, 0xe6, 0x90, 0x2c, 0x40, 0x44, + 0x37, 0x94, 0xc0, 0x2c, 0x00, 0xa8, 0x0c, 0x43, 0xe3, 0x0c, 0xa4, 0x2c, + 0x00, 0x42, 0x3c, 0x01, 0x8a, 0x2c, 0x40, 0x42, 0x12, 0x0b, 0xe2, 0x03, + 0x00, 0x43, 0xe3, 0x0c, 0xec, 0x03, 0x40, 0xe9, 0xa0, 0x2c, 0x00, 0x42, + 0x5a, 0x03, 0xae, 0x2c, 0x40, 0x03, 0x03, 0x24, 0x06, 0x42, 0x3c, 0x01, + 0xb0, 0x2c, 0x40, 0x07, 0x1a, 0xd0, 0x1f, 0x07, 0x9f, 0xa0, 0x01, 0xff, + 0xae, 0x0c, 0x45, 0xe7, 0xea, 0xdc, 0x2c, 0x00, 0x43, 0x09, 0xa4, 0xe2, + 0x2c, 0x40, 0x42, 0xf1, 0x06, 0xde, 0x2c, 0x00, 0x42, 0x7e, 0x1a, 0xe0, + 0x2c, 0x40, 0x43, 0x56, 0x07, 0xb4, 0x2c, 0x00, 0x43, 0x22, 0xf4, 0xd8, + 0x2c, 0x00, 0x43, 0x93, 0x5a, 0xc6, 0x2c, 0x00, 0x46, 0xde, 0xdb, 0xd6, + 0x2c, 0x00, 0xa8, 0x17, 0x43, 0x7a, 0x93, 0xbe, 0x2c, 0x00, 0x02, 0xa4, + 0x02, 0x01, 0xff, 0x42, 0x12, 0x0b, 0xc4, 0x2c, 0x00, 0x43, 0xe3, 0x0c, + 0xda, 0x2c, 0x40, 0xe1, 0xce, 0x2c, 0x80, 0x0c, 0x42, 0x12, 0x0b, 0xd2, + 0x2c, 0x00, 0x43, 0x0c, 0x00, 0xcc, 0x2c, 0x40, 0xf4, 0xd4, 0x2c, 0x40, + 0x4a, 0xb9, 0xa6, 0xd0, 0x2c, 0x00, 0x44, 0x29, 0xef, 0x96, 0x2c, 0x40, + 0x43, 0x7b, 0x3d, 0x94, 0x2c, 0x00, 0xa8, 0x06, 0x42, 0x5a, 0x03, 0x9c, + 0x2c, 0x40, 0x42, 0x12, 0x0b, 0xe6, 0x03, 0x00, 0xe9, 0xac, 0x2c, 0x40, + 0x43, 0x8a, 0x00, 0x8e, 0x2c, 0x00, 0x43, 0x0c, 0x00, 0xe8, 0x03, 0x40, + 0x43, 0x15, 0x05, 0x84, 0x2c, 0x00, 0x44, 0xe0, 0xdb, 0xea, 0x03, 0x40, + 0x42, 0x12, 0x0b, 0xe4, 0x03, 0x00, 0xe9, 0xaa, 0x2c, 0x40, 0x44, 0xf5, + 0xee, 0x86, 0x2c, 0x00, 0x42, 0x12, 0x0b, 0xee, 0x03, 0x00, 0x09, 0xed, + 0xb9, 0x01, 0xff, 0x44, 0x67, 0x00, 0xb2, 0x2c, 0x00, 0x44, 0x0b, 0x00, + 0xca, 0x2c, 0x00, 0x44, 0xce, 0xc9, 0xb8, 0x2c, 0x00, 0x42, 0x51, 0x03, + 0xba, 0x2c, 0x40, 0x4a, 0x15, 0xaf, 0xc2, 0x2c, 0x00, 0x0c, 0xd4, 0x24, + 0x01, 0xff, 0x43, 0x31, 0xf4, 0xb6, 0x2c, 0x00, 0x46, 0xde, 0xdb, 0xed, + 0x2c, 0x00, 0x42, 0x51, 0x03, 0xbc, 0x2c, 0x00, 0x44, 0x1b, 0xaf, 0xeb, + 0x2c, 0x40, 0x4c, 0xab, 0x90, 0xc8, 0x2c, 0x00, 0x43, 0x6d, 0xf4, 0x80, + 0x2c, 0x40, 0x47, 0xb4, 0xd0, 0x5a, 0xf3, 0x01, 0xa9, 0x01, 0xff, 0xe5, + 0x6a, 0xf3, 0x01, 0x42, 0x1d, 0x01, 0x73, 0xf3, 0x41, 0xa6, 0x79, 0x55, + 0x6f, 0x3b, 0x6d, 0x2a, 0x00, 0x4a, 0x69, 0xab, 0x32, 0x23, 0x00, 0x48, + 0x60, 0xc7, 0x0c, 0x26, 0x00, 0x0a, 0x77, 0xb1, 0x57, 0xb4, 0x06, 0x4e, + 0x4b, 0x7e, 0xea, 0xf3, 0x41, 0x05, 0x7a, 0x69, 0x1d, 0x57, 0xcc, 0x1a, + 0x81, 0x23, 0x00, 0x4c, 0x5b, 0x71, 0x2e, 0x22, 0x00, 0x04, 0x52, 0x8a, + 0x01, 0xff, 0x45, 0xdb, 0xe7, 0x9b, 0xf3, 0x01, 0x53, 0xe8, 0x4c, 0x9b, + 0x00, 0x40, 0x03, 0x4a, 0x03, 0x17, 0x05, 0x51, 0x00, 0x01, 0xff, 0x56, + 0x79, 0x35, 0xfa, 0x22, 0x00, 0x47, 0xe6, 0x7f, 0xfd, 0x22, 0x00, 0x68, + 0x30, 0x05, 0xfb, 0x22, 0x40, 0x46, 0xb4, 0x05, 0x0b, 0x22, 0x00, 0x4f, + 0xe9, 0x53, 0xb3, 0x22, 0xc0, 0x00, 0x4c, 0xf2, 0x28, 0xb5, 0x22, 0x40, + 0x44, 0x5a, 0x03, 0xa7, 0xf6, 0x01, 0x46, 0x54, 0xe1, 0x77, 0xf4, 0x41, + 0x49, 0xbb, 0xb8, 0x8a, 0xf3, 0x01, 0x4b, 0x14, 0xa1, 0x16, 0xf6, 0x01, + 0x49, 0x0d, 0x99, 0x15, 0xf6, 0x41, 0x07, 0x35, 0x16, 0x38, 0x42, 0xed, + 0x05, 0x04, 0x26, 0x00, 0xad, 0x1b, 0xb0, 0x01, 0xff, 0x43, 0x1d, 0x20, + 0xed, 0xf9, 0x01, 0x46, 0x52, 0x92, 0x01, 0x22, 0x00, 0x4e, 0xa1, 0x7a, + 0x84, 0x23, 0x00, 0x47, 0x86, 0x66, 0xdc, 0xf5, 0x41, 0xe1, 0x2c, 0x00, + 0x00, 0x07, 0x85, 0xb8, 0x01, 0xff, 0x42, 0x8a, 0x00, 0x40, 0x00, 0x00, + 0x4a, 0x67, 0x98, 0x52, 0x20, 0x40, 0xa1, 0x8a, 0x17, 0xa2, 0xda, 0x16, + 0xa3, 0x8a, 0x13, 0xa4, 0xae, 0x0f, 0xa5, 0xe9, 0x0e, 0xa6, 0xd4, 0x0e, + 0xa7, 0x8f, 0x0b, 0x02, 0x0b, 0x00, 0xf8, 0x0a, 0xa9, 0xaf, 0x0a, 0x02, + 0x1b, 0x02, 0x89, 0x0a, 0xac, 0xed, 0x05, 0xad, 0x8e, 0x05, 0xae, 0xff, + 0x04, 0xaf, 0xc1, 0x04, 0xb0, 0x8e, 0x04, 0xb2, 0xda, 0x02, 0xb3, 0xfb, + 0x01, 0xb4, 0xb4, 0x01, 0xb5, 0x82, 0x01, 0x08, 0x32, 0x00, 0x41, 0x02, + 0x51, 0x00, 0x27, 0xb8, 0x11, 0x07, 0xe1, 0x33, 0x01, 0xff, 0x45, 0x5c, + 0x00, 0x5b, 0x03, 0x00, 0x45, 0x20, 0x07, 0xcf, 0x1d, 0x40, 0x80, 0x06, + 0x48, 0xd8, 0xc2, 0xb5, 0x1a, 0x40, 0x45, 0x5c, 0x00, 0x3d, 0x03, 0x00, + 0x45, 0x20, 0x07, 0x53, 0x03, 0x40, 0x03, 0x4e, 0x04, 0x06, 0x4f, 0x98, + 0x6d, 0xb6, 0x1a, 0x40, 0x4c, 0xeb, 0x8c, 0xe9, 0x20, 0x00, 0x55, 0x2c, + 0x3c, 0xf9, 0x1d, 0x40, 0x80, 0x25, 0x06, 0x66, 0xd8, 0x01, 0xff, 0x45, + 0xf9, 0x38, 0xd0, 0x1a, 0x80, 0x13, 0x45, 0x15, 0x23, 0xd2, 0x1a, 0x80, + 0x06, 0x46, 0xad, 0x70, 0xd4, 0x1a, 0x40, 0x46, 0x8b, 0x9c, 0xd7, 0x1a, + 0x40, 0x46, 0xce, 0x98, 0xd6, 0x1a, 0x40, 0x05, 0xed, 0x07, 0x06, 0x45, + 0x35, 0x23, 0x3e, 0x03, 0x40, 0x45, 0x5c, 0x00, 0x0d, 0x03, 0x00, 0x45, + 0x20, 0x07, 0x29, 0x03, 0x40, 0xb0, 0x0c, 0x47, 0xf8, 0x06, 0xd1, 0x1d, + 0x00, 0x47, 0xf9, 0x0e, 0xd2, 0x1d, 0x40, 0x06, 0x48, 0xd8, 0x11, 0x0c, + 0xdf, 0x03, 0x01, 0xff, 0x45, 0x5c, 0x00, 0xea, 0x1a, 0x00, 0x45, 0x20, + 0x07, 0x4e, 0x03, 0x40, 0x45, 0x5c, 0x00, 0xf5, 0x1d, 0x00, 0x45, 0x20, + 0x07, 0x1d, 0x03, 0x40, 0x4f, 0xae, 0x12, 0xdb, 0x20, 0x00, 0x44, 0x36, + 0x23, 0x03, 0x03, 0x80, 0x1c, 0x06, 0x6b, 0x1d, 0x06, 0x51, 0xd5, 0x5e, + 0x12, 0x03, 0x40, 0x4c, 0xfb, 0x8b, 0xcb, 0x1a, 0x00, 0x43, 0x23, 0x0a, + 0xb4, 0x1a, 0x00, 0x48, 0x10, 0xcc, 0xe8, 0x20, 0x40, 0x80, 0x01, 0xff, + 0x45, 0x20, 0x07, 0x30, 0x03, 0x00, 0x4f, 0x69, 0x6f, 0x29, 0xfe, 0x00, + 0x47, 0x01, 0x23, 0x34, 0x03, 0x00, 0x50, 0xa6, 0x66, 0x2a, 0xfe, 0x40, + 0x07, 0x9f, 0xd0, 0x4c, 0xa8, 0x2b, 0x4a, 0x2f, 0xae, 0xc2, 0x1d, 0x00, + 0x06, 0xbc, 0x24, 0x0c, 0x61, 0xb0, 0x0e, 0xba, 0x1a, 0x00, 0x4e, 0x3d, + 0x7e, 0xc3, 0x1d, 0x40, 0x45, 0x5c, 0x00, 0xe4, 0x1a, 0x00, 0xa2, 0x01, + 0xff, 0x44, 0x21, 0x07, 0x3b, 0x03, 0x00, 0x4d, 0xb2, 0x87, 0xc5, 0x1a, + 0x40, 0x48, 0xf7, 0xb0, 0xd9, 0x1a, 0x00, 0x04, 0x35, 0x07, 0x01, 0xff, + 0xb3, 0x06, 0x55, 0xcc, 0x3e, 0xd3, 0x20, 0x40, 0x4e, 0x87, 0x33, 0x37, + 0x03, 0x00, 0x4d, 0xf6, 0x49, 0x35, 0x03, 0x40, 0x45, 0x5c, 0x00, 0xe5, + 0x1a, 0x00, 0x45, 0x20, 0x07, 0x3c, 0x03, 0x40, 0xa5, 0x97, 0x01, 0xa9, + 0x01, 0xff, 0x03, 0xca, 0x00, 0x17, 0x03, 0xa2, 0x01, 0x01, 0xff, 0x45, + 0x5c, 0x00, 0x0a, 0x03, 0x00, 0x45, 0x20, 0x07, 0x25, 0x03, 0x00, 0x47, + 0x01, 0x23, 0xd8, 0x20, 0x40, 0x80, 0x06, 0x61, 0x13, 0x0f, 0xec, 0x20, + 0x40, 0x05, 0xce, 0x00, 0x3b, 0x02, 0x22, 0x00, 0x21, 0x0c, 0xd8, 0x21, + 0x11, 0x05, 0x49, 0xd8, 0x01, 0xff, 0x45, 0x5c, 0x00, 0xe1, 0x1a, 0x00, + 0x45, 0x20, 0x07, 0x19, 0x03, 0x40, 0x4b, 0x7f, 0x05, 0xc2, 0x1a, 0x00, + 0x4b, 0x8f, 0x99, 0xc4, 0x1a, 0x40, 0x08, 0xc0, 0xc7, 0x06, 0x4b, 0xcb, + 0x02, 0xd1, 0x20, 0x40, 0x45, 0x5c, 0x00, 0x57, 0x03, 0x00, 0x45, 0x20, + 0x07, 0x39, 0x03, 0x40, 0x80, 0x24, 0x05, 0xa0, 0x1b, 0x01, 0xff, 0xa1, + 0x06, 0x45, 0x20, 0x07, 0x55, 0x03, 0x40, 0x44, 0x5d, 0x00, 0x50, 0x03, + 0x00, 0x03, 0x1b, 0x00, 0x01, 0xff, 0x54, 0xcc, 0x41, 0xff, 0x1d, 0x00, + 0x52, 0x29, 0x56, 0x56, 0x03, 0x40, 0x45, 0x5c, 0x00, 0xd7, 0x20, 0x00, + 0x45, 0x20, 0x07, 0xef, 0x20, 0x40, 0x52, 0xe1, 0x55, 0x22, 0x03, 0x00, + 0x05, 0x3e, 0x04, 0x01, 0xff, 0x50, 0x85, 0x33, 0xe5, 0x20, 0x00, 0x4d, + 0xd9, 0x5e, 0x14, 0x03, 0x40, 0xa1, 0x11, 0x09, 0xe0, 0x71, 0x01, 0xff, + 0x45, 0x5c, 0x00, 0xc8, 0x1a, 0x00, 0x45, 0x20, 0x07, 0x1f, 0x03, 0x40, + 0x54, 0x10, 0x44, 0x21, 0x03, 0x00, 0x0a, 0xf7, 0x60, 0x01, 0xff, 0x45, + 0x5c, 0x00, 0xbb, 0x1a, 0x00, 0x45, 0x20, 0x07, 0xbd, 0x1a, 0x00, 0x47, + 0x01, 0x23, 0xbe, 0x1a, 0x40, 0x45, 0xbb, 0xde, 0x28, 0x03, 0x80, 0x2e, + 0x11, 0xb6, 0x5b, 0x0c, 0x4e, 0x11, 0x7b, 0xb7, 0x1a, 0x00, 0x47, 0x83, + 0x8a, 0x05, 0x03, 0x40, 0x42, 0x1a, 0x00, 0x76, 0x03, 0x01, 0x43, 0x30, + 0x6c, 0x77, 0x03, 0x01, 0x45, 0x07, 0xe9, 0x79, 0x03, 0x01, 0x43, 0x9a, + 0xf4, 0x7a, 0x03, 0x01, 0x44, 0x55, 0xf3, 0x78, 0x03, 0x41, 0x46, 0x5b, + 0x00, 0xce, 0x1d, 0x40, 0x4e, 0xaf, 0x7a, 0x4a, 0x03, 0x00, 0x50, 0x06, + 0x68, 0xc6, 0x1a, 0x40, 0x45, 0xae, 0x70, 0x04, 0x03, 0x80, 0x11, 0x0a, + 0xf5, 0xab, 0x01, 0xff, 0x45, 0x5c, 0x00, 0xe2, 0x1a, 0x00, 0x45, 0x20, + 0x07, 0x20, 0x03, 0x40, 0x80, 0x22, 0x8d, 0x01, 0xff, 0x45, 0xf9, 0x38, + 0xc4, 0x1d, 0x80, 0x12, 0x45, 0x53, 0x23, 0xcc, 0x1d, 0x00, 0x45, 0x15, + 0x23, 0xc6, 0x1d, 0x00, 0x4d, 0x3c, 0x8a, 0xd5, 0x1a, 0x40, 0x46, 0xce, + 0x98, 0xd8, 0x1a, 0x40, 0x45, 0x20, 0x07, 0x31, 0x03, 0x00, 0x49, 0xf9, + 0x13, 0x24, 0xfe, 0x80, 0x0d, 0x4a, 0x55, 0x04, 0x25, 0xfe, 0xc0, 0x00, + 0x46, 0x1f, 0x07, 0x2c, 0xfe, 0x40, 0x46, 0x1f, 0x07, 0x2b, 0xfe, 0x40, + 0x05, 0xdf, 0x05, 0xed, 0x01, 0x03, 0xc4, 0x00, 0x4f, 0x02, 0x3f, 0x00, + 0x27, 0xaf, 0x01, 0xff, 0x03, 0xa2, 0x01, 0x06, 0x46, 0x77, 0x8a, 0x32, + 0x03, 0x40, 0x56, 0x7f, 0x33, 0xeb, 0x20, 0x00, 0xb3, 0x06, 0x55, 0xcc, + 0x3e, 0xd2, 0x20, 0x40, 0x4e, 0x87, 0x33, 0x38, 0x03, 0x00, 0x4d, 0xf6, + 0x49, 0x36, 0x03, 0x40, 0x06, 0x9f, 0x1f, 0x06, 0x5e, 0x71, 0x13, 0xb9, + 0x1a, 0x40, 0x49, 0xf9, 0x13, 0x20, 0xfe, 0x80, 0x0d, 0x4a, 0x55, 0x04, + 0x21, 0xfe, 0xc0, 0x00, 0x46, 0x1f, 0x07, 0x28, 0xfe, 0x40, 0x46, 0x1f, + 0x07, 0x27, 0xfe, 0x40, 0x80, 0x11, 0x06, 0xa9, 0x01, 0x01, 0xff, 0x4d, + 0xd7, 0x80, 0xea, 0x20, 0x00, 0x5b, 0x19, 0x0f, 0xed, 0x20, 0x40, 0xa1, + 0x4b, 0x02, 0x22, 0x00, 0x31, 0x0c, 0xd8, 0x21, 0x21, 0x0c, 0xc8, 0x00, + 0x11, 0x05, 0x49, 0xd8, 0x01, 0xff, 0x45, 0x5c, 0x00, 0xe0, 0x1a, 0x00, + 0x45, 0x20, 0x07, 0x18, 0x03, 0x40, 0x45, 0x5c, 0x00, 0xe1, 0x20, 0x00, + 0x45, 0x20, 0x07, 0x4d, 0x03, 0x40, 0x4a, 0x41, 0x06, 0xc1, 0x1a, 0x00, + 0x4a, 0x35, 0xa8, 0xc3, 0x1a, 0x40, 0x08, 0xc0, 0xc7, 0x06, 0x4b, 0xcb, + 0x02, 0xd0, 0x20, 0x40, 0x45, 0x5c, 0x00, 0x51, 0x03, 0x00, 0x45, 0x20, + 0x07, 0x1c, 0x03, 0x40, 0x05, 0x32, 0x06, 0x24, 0x04, 0xcf, 0x00, 0x01, + 0xff, 0x80, 0x11, 0x05, 0xa0, 0x1b, 0x01, 0xff, 0x45, 0x5c, 0x00, 0xfe, + 0x1d, 0x00, 0x45, 0x20, 0x07, 0x54, 0x03, 0x40, 0x45, 0x5c, 0x00, 0xd6, + 0x20, 0x00, 0x45, 0x20, 0x07, 0xee, 0x20, 0x40, 0x45, 0x5c, 0x00, 0x1a, + 0x03, 0x00, 0x45, 0x20, 0x07, 0x49, 0x03, 0x00, 0x4d, 0x59, 0x81, 0xe9, + 0x1a, 0x40, 0x15, 0xbf, 0x3c, 0x8e, 0x02, 0x0d, 0x76, 0x08, 0x01, 0xff, + 0xe1, 0x63, 0x03, 0x80, 0xeb, 0x01, 0xe2, 0xe8, 0x1d, 0x80, 0xdf, 0x01, + 0xe3, 0x68, 0x03, 0x80, 0xd3, 0x01, 0xe4, 0x69, 0x03, 0x00, 0xe5, 0x64, + 0x03, 0x80, 0xbd, 0x01, 0xe6, 0xeb, 0x1d, 0x80, 0xb1, 0x01, 0xe7, 0xda, + 0x1d, 0x00, 0xe8, 0x6a, 0x03, 0x00, 0xe9, 0x65, 0x03, 0x80, 0x8e, 0x01, + 0xeb, 0xdc, 0x1d, 0x00, 0xec, 0xdd, 0x1d, 0x80, 0x79, 0xed, 0x6b, 0x03, + 0x00, 0xee, 0xe0, 0x1d, 0x00, 0xef, 0x66, 0x03, 0x80, 0x5b, 0xf0, 0xee, + 0x1d, 0x00, 0xf2, 0x6c, 0x03, 0x80, 0x43, 0xf3, 0xe4, 0x1d, 0x80, 0x38, + 0xf4, 0x6d, 0x03, 0x80, 0x2d, 0xf5, 0x67, 0x03, 0x80, 0x17, 0xf6, 0x6e, + 0x03, 0x00, 0xf7, 0xf1, 0x1d, 0x80, 0x08, 0xf8, 0x6f, 0x03, 0x00, 0xfa, + 0xe6, 0x1d, 0x40, 0x46, 0x1f, 0x07, 0xbf, 0x1a, 0x40, 0x06, 0x50, 0x00, + 0x01, 0xff, 0x49, 0xb7, 0x23, 0xf4, 0x1d, 0x00, 0x5b, 0x5d, 0x1c, 0xf0, + 0x1d, 0x40, 0x4d, 0xc7, 0x89, 0xc0, 0x1a, 0x40, 0x44, 0xb5, 0x7b, 0xea, + 0x1d, 0x40, 0x80, 0x01, 0xff, 0x45, 0x20, 0x07, 0xca, 0x1d, 0x00, 0x47, + 0x9c, 0xb2, 0xe3, 0x1d, 0x40, 0x06, 0x50, 0x00, 0x01, 0xff, 0x49, 0xb7, + 0x23, 0xf3, 0x1d, 0x00, 0x5b, 0x5d, 0x1c, 0xed, 0x1d, 0x40, 0x59, 0x21, + 0x23, 0xec, 0x1d, 0x00, 0x45, 0x54, 0xad, 0xe5, 0x1d, 0x40, 0x07, 0x15, + 0x70, 0x01, 0xff, 0xe4, 0xd8, 0x1d, 0x00, 0xe7, 0xcc, 0x1a, 0x00, 0xf2, + 0xcd, 0x1a, 0x00, 0xf4, 0xce, 0x1a, 0x40, 0x55, 0x95, 0x3c, 0xd3, 0x1d, + 0x40, 0x42, 0xa4, 0x02, 0xef, 0x1d, 0x00, 0x42, 0x53, 0x00, 0xd9, 0x1d, + 0x40, 0x48, 0xf8, 0xc1, 0xd7, 0x1d, 0x40, 0x43, 0x94, 0x0f, 0xe9, 0x1d, + 0x40, 0x4f, 0xf6, 0x69, 0xf2, 0x1d, 0x00, 0xe5, 0xd4, 0x1d, 0x00, 0x44, + 0x3f, 0xe4, 0xe7, 0x1d, 0x00, 0xef, 0xd5, 0x1d, 0x00, 0xf6, 0xd6, 0x1d, + 0x40, 0xe7, 0xdb, 0x1d, 0x00, 0xec, 0xde, 0x1d, 0x00, 0xed, 0xdf, 0x1d, + 0x00, 0xee, 0xe1, 0x1d, 0x00, 0xf2, 0xe2, 0x1d, 0x40, 0x10, 0xb6, 0x67, + 0x11, 0x0b, 0xe7, 0xa4, 0x01, 0xff, 0x44, 0xc3, 0x00, 0xf7, 0x1d, 0x00, + 0x45, 0xc8, 0x00, 0xf6, 0x1d, 0x40, 0x56, 0x1b, 0x37, 0x9a, 0x30, 0x00, + 0x51, 0x20, 0x37, 0x99, 0x30, 0x40, 0xae, 0x06, 0x47, 0x0c, 0x0f, 0xd0, + 0x1d, 0x40, 0x46, 0x93, 0x6c, 0xb2, 0x1a, 0x00, 0x07, 0x60, 0x23, 0x01, + 0xff, 0x02, 0x63, 0x09, 0x11, 0x0c, 0x23, 0x8e, 0x01, 0xff, 0x45, 0x5c, + 0x00, 0xc7, 0x1a, 0x00, 0x45, 0x20, 0x07, 0x2b, 0x03, 0x40, 0x43, 0x59, + 0x13, 0x11, 0x03, 0x80, 0x11, 0x05, 0x37, 0x3c, 0x01, 0xff, 0x45, 0x5c, + 0x00, 0xe3, 0x1a, 0x00, 0x45, 0x20, 0x07, 0x3a, 0x03, 0x40, 0x46, 0x1f, + 0x07, 0x2f, 0x03, 0x40, 0x4e, 0xf9, 0x79, 0x4b, 0x03, 0x00, 0x48, 0x39, + 0xab, 0x09, 0x03, 0x00, 0x42, 0x5e, 0x01, 0x1b, 0x03, 0x40, 0x11, 0x83, + 0x5b, 0xc7, 0x01, 0xb2, 0x01, 0xff, 0xa1, 0x36, 0x04, 0x88, 0x2e, 0x01, + 0xff, 0x4f, 0x12, 0x6c, 0x44, 0x03, 0x00, 0x47, 0x7b, 0xd2, 0x43, 0x03, + 0x00, 0x08, 0x01, 0x28, 0x0c, 0x4b, 0x40, 0xa1, 0x42, 0x03, 0x00, 0x4d, + 0x38, 0x4f, 0x45, 0x03, 0x40, 0x49, 0x01, 0xbe, 0x44, 0xd2, 0x01, 0xb4, + 0x01, 0xff, 0x48, 0xf0, 0xc5, 0x43, 0xd2, 0x01, 0x46, 0x98, 0xdf, 0x42, + 0xd2, 0x41, 0x05, 0x43, 0xe9, 0x35, 0x4c, 0x9f, 0x93, 0x4f, 0x03, 0x00, + 0x02, 0x32, 0x00, 0x01, 0xff, 0x80, 0x15, 0x8d, 0x01, 0xff, 0x4b, 0xc9, + 0x98, 0xc8, 0x1d, 0x00, 0x46, 0xad, 0x70, 0xc5, 0x1d, 0x00, 0x4d, 0x3c, + 0x8a, 0xd1, 0x1a, 0x40, 0x46, 0xda, 0x04, 0x00, 0x03, 0x80, 0x06, 0x49, + 0x3b, 0x2d, 0x40, 0x03, 0x40, 0x46, 0x1f, 0x07, 0x16, 0x03, 0x40, 0x06, + 0xef, 0x06, 0x21, 0x07, 0xec, 0x05, 0x01, 0xff, 0xe1, 0x70, 0x13, 0x01, + 0x42, 0x1b, 0x02, 0x71, 0x13, 0x01, 0x42, 0x2a, 0x05, 0x72, 0x13, 0x01, + 0x42, 0xbb, 0x09, 0x74, 0x13, 0x01, 0x42, 0x02, 0x00, 0x73, 0x13, 0x41, + 0xa6, 0x20, 0x43, 0x0e, 0x0b, 0x67, 0x13, 0x01, 0x43, 0x00, 0x26, 0x6c, + 0x13, 0x01, 0xb4, 0x06, 0x44, 0x43, 0x1e, 0x66, 0x13, 0x41, 0x44, 0x25, + 0x01, 0x69, 0x13, 0x01, 0x42, 0x15, 0x02, 0x68, 0x13, 0x41, 0x43, 0xd2, + 0x05, 0x6b, 0x13, 0x01, 0x43, 0xf6, 0x06, 0x6a, 0x13, 0x41, 0x43, 0xf2, + 0xf3, 0x00, 0xe0, 0x01, 0xa2, 0xe1, 0x01, 0x46, 0xeb, 0x80, 0x1d, 0xe0, + 0x01, 0xa4, 0xcc, 0x01, 0xa6, 0xbd, 0x01, 0x47, 0x4e, 0xd1, 0x03, 0xe0, + 0x01, 0x44, 0x2d, 0xf0, 0x18, 0xe0, 0x01, 0xe9, 0x0b, 0xe0, 0x81, 0x8f, + 0x01, 0x44, 0xc5, 0xf0, 0x0d, 0xe0, 0x01, 0x47, 0xf2, 0xd2, 0x0e, 0xe0, + 0x01, 0x47, 0xfd, 0x6a, 0x0f, 0xe0, 0x01, 0x45, 0xf3, 0xe8, 0x10, 0xe0, + 0x01, 0x43, 0x64, 0x31, 0x11, 0xe0, 0x01, 0x46, 0x32, 0xdf, 0x12, 0xe0, + 0x01, 0x45, 0x6f, 0xea, 0x13, 0xe0, 0x01, 0xb3, 0x4b, 0xb4, 0x3d, 0x43, + 0x0a, 0xd6, 0x16, 0xe0, 0x01, 0x44, 0xf5, 0xf2, 0x02, 0xe0, 0x01, 0xb9, + 0x0f, 0xba, 0x01, 0xff, 0x45, 0xf1, 0xe5, 0x08, 0xe0, 0x01, 0x46, 0x8c, + 0xdc, 0x06, 0xe0, 0x41, 0x43, 0xb3, 0x00, 0x21, 0xe0, 0x01, 0xa5, 0x08, + 0xef, 0x26, 0xe0, 0x01, 0xf5, 0x23, 0xe0, 0x41, 0xb2, 0x06, 0x43, 0x26, + 0x0a, 0x05, 0xe0, 0x41, 0xe9, 0x20, 0xe0, 0x01, 0xf5, 0x1f, 0xe0, 0x41, + 0x42, 0x5a, 0x03, 0x1c, 0xe0, 0x01, 0x45, 0x27, 0xec, 0x15, 0xe0, 0x41, + 0xa8, 0x0c, 0x44, 0x15, 0xf1, 0x14, 0xe0, 0x01, 0x48, 0x46, 0xbf, 0x24, + 0xe0, 0x41, 0xe1, 0x1e, 0xe0, 0x01, 0x42, 0x12, 0x00, 0x1b, 0xe0, 0x41, + 0x4b, 0x22, 0xa0, 0x0a, 0xe0, 0x01, 0x07, 0x9e, 0x21, 0x06, 0x43, 0x54, + 0x28, 0x09, 0xe0, 0x41, 0x47, 0x80, 0xcf, 0x29, 0xe0, 0x01, 0x49, 0x45, + 0xbf, 0x27, 0xe0, 0x41, 0x43, 0xe7, 0x05, 0x2a, 0xe0, 0x01, 0x44, 0x5a, + 0xbf, 0x17, 0xe0, 0x41, 0x45, 0xa9, 0xe7, 0x0c, 0xe0, 0x01, 0x44, 0xb9, + 0xf1, 0x04, 0xe0, 0x41, 0x46, 0x81, 0xcf, 0x28, 0xe0, 0x01, 0x43, 0x8f, + 0xd2, 0x01, 0xe0, 0x41, 0x46, 0x60, 0xdb, 0x52, 0x03, 0x00, 0x48, 0x04, + 0xb9, 0xda, 0x1a, 0x00, 0x4e, 0xd2, 0x46, 0xdc, 0x20, 0x40, 0x09, 0x2d, + 0xbc, 0x11, 0x0b, 0x82, 0xa1, 0x01, 0xff, 0x45, 0x5c, 0x00, 0xe8, 0x1a, + 0x00, 0x45, 0x20, 0x07, 0x47, 0x03, 0x40, 0x46, 0x12, 0x03, 0xdd, 0x20, + 0x80, 0x20, 0x47, 0x95, 0x44, 0xdf, 0x20, 0x00, 0x46, 0x5e, 0xdd, 0xe3, + 0x20, 0x00, 0xb3, 0x06, 0x58, 0xb6, 0x2b, 0xe4, 0x20, 0x40, 0x45, 0xce, + 0x59, 0xe2, 0x20, 0x00, 0x45, 0xd7, 0x05, 0xde, 0x20, 0x40, 0x4a, 0x43, + 0x0e, 0xe0, 0x20, 0x40, 0xa5, 0xd5, 0x02, 0x48, 0xb8, 0x23, 0x08, 0x03, + 0x80, 0xb9, 0x02, 0xaf, 0x01, 0xff, 0xb4, 0xf7, 0x01, 0x04, 0x3d, 0x01, + 0x1b, 0x02, 0xa7, 0x01, 0x01, 0xff, 0x06, 0x48, 0xd8, 0x06, 0x4b, 0xb8, + 0x02, 0xb3, 0x1a, 0x40, 0x45, 0x5c, 0x00, 0xdb, 0x1a, 0x00, 0x45, 0x20, + 0x07, 0x1e, 0x03, 0x40, 0x80, 0x06, 0x53, 0xe6, 0x48, 0xb0, 0x1a, 0x40, + 0xa1, 0xb6, 0x01, 0x45, 0x53, 0x23, 0x5d, 0x03, 0x80, 0xa8, 0x01, 0xa3, + 0x99, 0x01, 0x4c, 0x15, 0x23, 0x0f, 0x03, 0x00, 0x4e, 0x5e, 0x23, 0x61, + 0x03, 0x80, 0x85, 0x01, 0x48, 0x75, 0x8a, 0x33, 0x03, 0x00, 0x46, 0xad, + 0x70, 0x5e, 0x03, 0x80, 0x72, 0xaf, 0x64, 0xb0, 0x4b, 0x02, 0x0d, 0x00, + 0x31, 0x45, 0x35, 0x23, 0x60, 0x03, 0x80, 0x1b, 0x09, 0x32, 0x00, 0x01, + 0xff, 0x05, 0xed, 0x07, 0x06, 0x4e, 0xf5, 0x49, 0xe6, 0x20, 0x40, 0x45, + 0x5c, 0x00, 0x0e, 0x03, 0x00, 0x45, 0x20, 0x07, 0x48, 0x03, 0x40, 0x80, + 0x01, 0xff, 0x49, 0xf9, 0x13, 0x22, 0xfe, 0x00, 0x4a, 0x55, 0x04, 0x23, + 0xfe, 0x40, 0x0f, 0xdc, 0x03, 0x06, 0x48, 0x1b, 0x6a, 0x5a, 0x03, 0x40, + 0x45, 0x5c, 0x00, 0xeb, 0x1a, 0x00, 0x45, 0x20, 0x07, 0x62, 0x03, 0x40, + 0x50, 0xf6, 0x60, 0xbc, 0x1a, 0x00, 0x09, 0xe0, 0x71, 0x01, 0xff, 0x45, + 0x5c, 0x00, 0xc9, 0x1a, 0x00, 0x45, 0x20, 0x07, 0xca, 0x1a, 0x40, 0x4e, + 0x11, 0x7b, 0xb8, 0x1a, 0x00, 0x47, 0x83, 0x8a, 0x3f, 0x03, 0x40, 0x46, + 0x1f, 0x07, 0x5f, 0x03, 0x40, 0x46, 0x1f, 0x07, 0xfc, 0x1d, 0x40, 0x44, + 0xe7, 0x6c, 0xcf, 0x1a, 0x00, 0x4f, 0x68, 0x32, 0xcd, 0x1d, 0x40, 0x46, + 0x1f, 0x07, 0x5c, 0x03, 0x40, 0x4b, 0xfc, 0x8b, 0x0b, 0x03, 0x00, 0x04, + 0x2b, 0x8e, 0x01, 0xff, 0x45, 0x5c, 0x00, 0xe7, 0x1a, 0x00, 0x45, 0x20, + 0x07, 0xe6, 0x1a, 0x40, 0x80, 0x17, 0x4f, 0x14, 0x6a, 0xdd, 0x1a, 0x00, + 0x04, 0x77, 0x00, 0x01, 0xff, 0x4c, 0xfb, 0x8b, 0xc1, 0x1d, 0x00, 0x4c, + 0x15, 0x23, 0xc0, 0x1d, 0x40, 0x45, 0x5c, 0x00, 0x07, 0x03, 0x80, 0x0d, + 0x45, 0x20, 0x07, 0x23, 0x03, 0xc0, 0x00, 0x45, 0xc2, 0x00, 0xfa, 0x1d, + 0x40, 0x80, 0x01, 0xff, 0x44, 0xc3, 0x00, 0xf8, 0x1d, 0x00, 0x45, 0xc8, + 0x00, 0x58, 0x03, 0x40, 0x80, 0x06, 0x45, 0x18, 0x6a, 0xb1, 0x1a, 0x40, + 0x45, 0x20, 0x07, 0x24, 0x03, 0x00, 0x54, 0xe0, 0x46, 0xdc, 0x1a, 0x40, + 0x4b, 0xac, 0x9e, 0xfb, 0x1d, 0x00, 0x09, 0xd1, 0xc0, 0x01, 0xff, 0x06, + 0xef, 0x06, 0x30, 0x07, 0xec, 0x05, 0x06, 0x4d, 0xa9, 0x88, 0xf1, 0xa8, + 0x40, 0xe1, 0xea, 0xa8, 0x00, 0x42, 0x1b, 0x02, 0xec, 0xa8, 0x00, 0x42, + 0x2a, 0x05, 0xed, 0xa8, 0x00, 0x42, 0xbb, 0x09, 0xee, 0xa8, 0x00, 0x42, + 0x71, 0x00, 0xef, 0xa8, 0x00, 0xf5, 0xeb, 0xa8, 0x00, 0x42, 0x02, 0x00, + 0xf0, 0xa8, 0x40, 0x45, 0x12, 0x0b, 0xe8, 0xa8, 0x00, 0xa6, 0x2e, 0x44, + 0xcf, 0x2a, 0xe9, 0xa8, 0x00, 0x43, 0x0e, 0x0b, 0xe1, 0xa8, 0x00, 0xb3, + 0x14, 0xb4, 0x06, 0x44, 0x43, 0x1e, 0xe0, 0xa8, 0x40, 0x44, 0x25, 0x01, + 0xe3, 0xa8, 0x00, 0x42, 0x15, 0x02, 0xe2, 0xa8, 0x40, 0x44, 0xc9, 0x1d, + 0xe7, 0xa8, 0x00, 0x42, 0x01, 0x26, 0xe6, 0xa8, 0x40, 0x43, 0xd2, 0x05, + 0xe5, 0xa8, 0x00, 0x43, 0xf6, 0x06, 0xe4, 0xa8, 0x40, 0xa1, 0xb7, 0x03, + 0x46, 0xfa, 0xc1, 0x27, 0x03, 0x00, 0x50, 0xd0, 0x04, 0x02, 0x03, 0x80, + 0xa3, 0x03, 0x09, 0x66, 0x10, 0x92, 0x03, 0xaf, 0xeb, 0x02, 0x08, 0xf8, + 0xcc, 0x01, 0xff, 0x4e, 0xb1, 0x76, 0x85, 0x04, 0x00, 0x08, 0x71, 0x11, + 0xcf, 0x02, 0x46, 0xed, 0x4f, 0x7c, 0xa6, 0x00, 0x07, 0xec, 0x05, 0x52, + 0x4d, 0xf5, 0x3b, 0x89, 0x04, 0x00, 0xb0, 0x30, 0x65, 0x76, 0x08, 0x8f, + 0xe0, 0x01, 0xb4, 0x06, 0x45, 0x2c, 0xec, 0x6f, 0xa6, 0x40, 0x50, 0xa6, + 0x62, 0x70, 0xa6, 0x00, 0x55, 0xed, 0x3b, 0x72, 0xa6, 0x00, 0x44, 0x41, + 0x98, 0x83, 0x04, 0xc0, 0x00, 0x80, 0x01, 0xff, 0x49, 0xf9, 0x13, 0x2e, + 0xfe, 0x00, 0x4a, 0x55, 0x04, 0x2f, 0xfe, 0x40, 0xa1, 0x0c, 0x47, 0xcb, + 0xd3, 0x87, 0x04, 0x00, 0x4d, 0xc3, 0x88, 0x86, 0x04, 0x40, 0x4c, 0xdb, + 0x90, 0x84, 0x04, 0x00, 0x45, 0x98, 0xd4, 0x7d, 0xa6, 0x40, 0xe1, 0xf6, + 0x2d, 0x00, 0xa2, 0xe2, 0x01, 0x43, 0x6d, 0x14, 0xf1, 0x2d, 0x00, 0xa4, + 0xcf, 0x01, 0xa5, 0xad, 0x01, 0x44, 0xd1, 0xef, 0xf4, 0x2d, 0x00, 0x43, + 0x26, 0x52, 0xe2, 0x2d, 0x00, 0x42, 0x22, 0x00, 0xef, 0x2d, 0x80, 0x93, + 0x01, 0xe9, 0x75, 0xa6, 0x80, 0x77, 0x42, 0x1b, 0x02, 0xe6, 0x2d, 0x00, + 0x4a, 0x37, 0x59, 0xfd, 0x2d, 0x00, 0x4c, 0x1f, 0x92, 0xf9, 0x2d, 0x00, + 0xef, 0xea, 0x2d, 0x80, 0x5a, 0x42, 0x6f, 0x02, 0xeb, 0x2d, 0x00, 0xb3, + 0x40, 0xb4, 0x34, 0xf5, 0x77, 0xa6, 0x80, 0x29, 0x42, 0x32, 0x00, 0xe1, + 0x2d, 0x00, 0xb9, 0x0d, 0xba, 0x01, 0xff, 0xe5, 0xe5, 0x2d, 0x00, 0x42, + 0xb0, 0x01, 0xe4, 0x2d, 0x40, 0x42, 0x8a, 0x00, 0xfa, 0x2d, 0x00, 0x43, + 0x9c, 0x2b, 0x79, 0xa6, 0x00, 0xe9, 0x76, 0xa6, 0x00, 0xf5, 0xfb, 0x2d, + 0x40, 0x4b, 0x07, 0x9e, 0x74, 0xa6, 0x40, 0xe5, 0xee, 0x2d, 0x00, 0x42, + 0x46, 0x03, 0xf0, 0x2d, 0x40, 0xa8, 0x06, 0x48, 0x87, 0x8e, 0x7a, 0xa6, + 0x40, 0xe1, 0xf2, 0x2d, 0x00, 0x43, 0x91, 0x20, 0xf3, 0x2d, 0x40, 0x44, + 0xcc, 0x7b, 0x7b, 0xa6, 0x40, 0xe5, 0xf7, 0x2d, 0x00, 0x08, 0x78, 0xc9, + 0x01, 0xff, 0xe1, 0xfc, 0x2d, 0x00, 0x47, 0x80, 0xcf, 0xff, 0x2d, 0x00, + 0xe5, 0x9f, 0xa6, 0x40, 0x47, 0xfc, 0x92, 0x78, 0xa6, 0x40, 0xe6, 0x9e, + 0xa6, 0x00, 0xec, 0xe7, 0x2d, 0x00, 0xed, 0xe8, 0x2d, 0x00, 0xee, 0xe9, + 0x2d, 0x00, 0xf2, 0xec, 0x2d, 0x00, 0xf3, 0xed, 0x2d, 0xc0, 0x00, 0x43, + 0xb4, 0x7c, 0xf5, 0x2d, 0x40, 0xe5, 0xe3, 0x2d, 0x00, 0x44, 0xa9, 0xe7, + 0xf8, 0x2d, 0x40, 0xe5, 0xe0, 0x2d, 0x00, 0x46, 0x81, 0xcf, 0xfe, 0x2d, + 0x40, 0x4d, 0xf5, 0x3b, 0x71, 0xa6, 0x00, 0x4e, 0xfb, 0x7c, 0x88, 0x04, + 0x40, 0x04, 0x15, 0x05, 0x0d, 0x4f, 0xa4, 0x70, 0x26, 0xfe, 0xc0, 0x00, + 0x46, 0x1f, 0x07, 0x2d, 0xfe, 0x40, 0x45, 0x5c, 0x00, 0x13, 0x03, 0x80, + 0x06, 0x45, 0x20, 0x07, 0x26, 0x03, 0x40, 0x46, 0xc7, 0x00, 0x15, 0x03, + 0x40, 0x4b, 0xce, 0x00, 0xd5, 0x20, 0x00, 0x4c, 0x9b, 0x94, 0xd9, 0x20, + 0x40, 0x46, 0x1f, 0x07, 0x2d, 0x03, 0x40, 0x49, 0xd9, 0x23, 0x10, 0x03, + 0x00, 0x43, 0xb1, 0x0e, 0x0c, 0x03, 0xc0, 0x00, 0x46, 0x1f, 0x07, 0x2c, + 0x03, 0x40, 0x4a, 0xc3, 0xab, 0x3b, 0x13, 0x01, 0xb2, 0x01, 0xff, 0x43, + 0x59, 0x13, 0x06, 0x03, 0x80, 0x11, 0x05, 0x37, 0x3c, 0x01, 0xff, 0x45, + 0x5c, 0x00, 0x46, 0x03, 0x00, 0x45, 0x20, 0x07, 0x2a, 0x03, 0x40, 0x46, + 0x1f, 0x07, 0x2e, 0x03, 0x00, 0x47, 0xc7, 0xcd, 0xcb, 0x1d, 0x40, 0x04, + 0xfa, 0x38, 0x3a, 0x0f, 0xd2, 0x6f, 0x2a, 0xae, 0x11, 0x08, 0x66, 0x67, + 0x01, 0xff, 0x45, 0x5c, 0x00, 0xf0, 0x20, 0x00, 0x45, 0x20, 0x07, 0x59, + 0x03, 0x40, 0x4c, 0xdf, 0x92, 0xe7, 0x20, 0x00, 0x0c, 0x63, 0x10, 0x01, + 0xff, 0x4b, 0xce, 0x00, 0xd4, 0x20, 0x00, 0x4c, 0x9b, 0x94, 0xda, 0x20, + 0x40, 0x45, 0x5c, 0x00, 0x4c, 0x03, 0x00, 0x45, 0x20, 0x07, 0xfd, 0x1d, + 0x40, 0x80, 0x15, 0x8d, 0x01, 0xff, 0x4b, 0x86, 0x9c, 0xc9, 0x1d, 0x00, + 0x46, 0xad, 0x70, 0xc7, 0x1d, 0x00, 0x4d, 0x3c, 0x8a, 0xd3, 0x1a, 0x40, + 0x46, 0xda, 0x04, 0x01, 0x03, 0x80, 0x06, 0x49, 0x3b, 0x2d, 0x41, 0x03, + 0x40, 0x46, 0x1f, 0x07, 0x17, 0x03, 0x40, 0x4d, 0x1b, 0x85, 0xa5, 0xf4, + 0x01, 0x42, 0x10, 0x00, 0x3a, 0x00, 0xc0, 0x00, 0x80, 0x01, 0xff, 0x46, + 0x48, 0x13, 0x54, 0x22, 0x00, 0x44, 0x5a, 0x03, 0xa1, 0x20, 0x40, 0xab, + 0x06, 0x44, 0xd1, 0xf1, 0x65, 0xf9, 0x41, 0x45, 0xd7, 0xd4, 0xb3, 0xfa, + 0x01, 0x4a, 0x95, 0xb1, 0x78, 0xf3, 0x41, 0xa1, 0xdb, 0x03, 0x51, 0xc9, + 0x59, 0x9a, 0x23, 0x00, 0xa9, 0xbc, 0x03, 0xaf, 0x01, 0xff, 0x02, 0x36, + 0x01, 0x8f, 0x01, 0x02, 0x46, 0x03, 0x2a, 0x42, 0xb2, 0x0c, 0x01, 0x26, + 0x80, 0x06, 0x47, 0x3e, 0x7c, 0x21, 0xf9, 0x41, 0x06, 0x50, 0x00, 0x01, + 0xff, 0x49, 0x67, 0xbb, 0x29, 0xf3, 0x01, 0x44, 0x92, 0x08, 0x27, 0xf3, + 0x01, 0x44, 0xd9, 0x2e, 0x28, 0xf3, 0x01, 0x47, 0x72, 0xd6, 0x2a, 0xf3, + 0x41, 0x43, 0x4f, 0x02, 0x50, 0x20, 0x00, 0x02, 0x06, 0x00, 0x01, 0xff, + 0x44, 0x45, 0xef, 0xd5, 0xf4, 0x01, 0x58, 0x46, 0x29, 0x4d, 0x2a, 0x00, + 0x4d, 0x35, 0x85, 0x10, 0xf5, 0x01, 0x0d, 0x76, 0x85, 0x34, 0x02, 0x6f, + 0x00, 0x16, 0xb5, 0x01, 0xff, 0x47, 0x5f, 0x61, 0x02, 0xf3, 0x01, 0x50, + 0x56, 0x65, 0x4c, 0x2a, 0xc0, 0x00, 0x52, 0x21, 0x4f, 0x50, 0x2a, 0x40, + 0x44, 0x9b, 0x12, 0xcf, 0x2a, 0x80, 0x0d, 0x46, 0x29, 0x36, 0xd0, 0x2a, + 0xc0, 0x00, 0x4c, 0xf2, 0x28, 0xd2, 0x2a, 0x40, 0x4c, 0xf2, 0x28, 0xd1, + 0x2a, 0x40, 0x4c, 0x77, 0x91, 0xea, 0xf4, 0x01, 0x4b, 0xb9, 0xa1, 0xeb, + 0xf4, 0x41, 0x06, 0x0b, 0x08, 0x51, 0x05, 0x6a, 0x10, 0x01, 0xff, 0xa3, + 0x3e, 0x68, 0xe0, 0x04, 0x03, 0xf5, 0x01, 0x53, 0xa4, 0x49, 0xf3, 0x27, + 0x00, 0x48, 0x94, 0x26, 0x31, 0x22, 0x00, 0x51, 0xf6, 0x04, 0xbb, 0x21, + 0x00, 0x05, 0xc8, 0x00, 0x0f, 0xb4, 0x01, 0xff, 0x53, 0xcb, 0x4b, 0xb7, + 0x21, 0x00, 0x60, 0xf4, 0x0f, 0x6e, 0x2b, 0x40, 0x5b, 0xba, 0x19, 0xd8, + 0xf5, 0x01, 0x66, 0x97, 0x07, 0x01, 0xf5, 0xc1, 0x00, 0x59, 0xef, 0x22, + 0x02, 0xf5, 0x41, 0x52, 0x7d, 0x53, 0x41, 0x29, 0x00, 0x4f, 0x58, 0x71, + 0x32, 0x22, 0x40, 0xa5, 0xac, 0x01, 0xa6, 0x88, 0x01, 0x04, 0xcf, 0x2a, + 0x78, 0x03, 0x0e, 0x0b, 0x68, 0xb3, 0x45, 0xb4, 0x01, 0xff, 0x02, 0x92, + 0x01, 0x32, 0x04, 0x25, 0x01, 0x22, 0xb7, 0x01, 0xff, 0x04, 0xe7, 0x2b, + 0x0f, 0xaf, 0x01, 0xff, 0x47, 0x6c, 0xcd, 0x51, 0xf5, 0x01, 0x47, 0xdc, + 0xcd, 0x5d, 0xf5, 0x41, 0x47, 0x6c, 0xcd, 0x5b, 0xf5, 0x01, 0x47, 0xdc, + 0xcd, 0x67, 0xf5, 0x41, 0x47, 0x6c, 0xcd, 0x52, 0xf5, 0x01, 0x47, 0xdc, + 0xcd, 0x5e, 0xf5, 0x41, 0x47, 0x6c, 0xcd, 0x59, 0xf5, 0x01, 0x47, 0xdc, + 0xcd, 0x65, 0xf5, 0x41, 0x04, 0xc9, 0x1d, 0x11, 0x02, 0x01, 0x26, 0x01, + 0xff, 0x47, 0x6c, 0xcd, 0x55, 0xf5, 0x01, 0x47, 0xdc, 0xcd, 0x61, 0xf5, + 0x41, 0x47, 0x6c, 0xcd, 0x56, 0xf5, 0x01, 0x47, 0xdc, 0xcd, 0x62, 0xf5, + 0x41, 0x47, 0x6c, 0xcd, 0x50, 0xf5, 0x01, 0x47, 0xdc, 0xcd, 0x5c, 0xf5, + 0x41, 0x47, 0x6c, 0xcd, 0x58, 0xf5, 0x01, 0x47, 0xdc, 0xcd, 0x64, 0xf5, + 0x41, 0x03, 0xd2, 0x05, 0x11, 0x03, 0xf6, 0x06, 0x01, 0xff, 0x47, 0x6c, + 0xcd, 0x53, 0xf5, 0x01, 0x47, 0xdc, 0xcd, 0x5f, 0xf5, 0x41, 0x47, 0x6c, + 0xcd, 0x54, 0xf5, 0x01, 0x47, 0xdc, 0xcd, 0x60, 0xf5, 0x41, 0x04, 0xc9, + 0x00, 0x11, 0x05, 0xb4, 0x6f, 0x01, 0xff, 0x47, 0x6c, 0xcd, 0x5a, 0xf5, + 0x01, 0x47, 0xdc, 0xcd, 0x66, 0xf5, 0x41, 0x47, 0x6c, 0xcd, 0x57, 0xf5, + 0x01, 0x47, 0xdc, 0xcd, 0x63, 0xf5, 0x41, 0x06, 0x49, 0x91, 0x06, 0x46, + 0x02, 0xdf, 0xcb, 0xf4, 0x41, 0x49, 0x8d, 0xb6, 0x7b, 0xf3, 0x01, 0x47, + 0x55, 0xc0, 0x42, 0xf9, 0x41, 0x53, 0x46, 0x4b, 0x81, 0xf5, 0x01, 0x02, + 0x6e, 0x02, 0x06, 0x4f, 0x29, 0x73, 0xdb, 0xf3, 0x41, 0x48, 0x72, 0x14, + 0xac, 0xf3, 0x01, 0x4e, 0x7f, 0x78, 0x4f, 0xf4, 0x41, 0x58, 0xae, 0x27, + 0x06, 0xd8, 0x00, 0x08, 0x58, 0xa5, 0xbb, 0x01, 0x07, 0xc5, 0x0e, 0x06, + 0x52, 0x15, 0x33, 0x01, 0xd8, 0x40, 0x43, 0xfe, 0xf3, 0xc3, 0x31, 0x00, + 0xe4, 0xd4, 0x31, 0x00, 0xe8, 0xd0, 0x31, 0x80, 0x5f, 0xee, 0xcf, 0x31, + 0x00, 0xf0, 0xd2, 0x31, 0x80, 0x4a, 0xf1, 0xe3, 0x31, 0x00, 0xf3, 0xd1, + 0x31, 0x80, 0x15, 0xf4, 0xc0, 0x31, 0x80, 0x0c, 0x42, 0xb6, 0x49, 0xc1, + 0x31, 0x00, 0x42, 0xff, 0xf3, 0xc2, 0x31, 0x40, 0xee, 0xdd, 0x31, 0x40, + 0xe7, 0xda, 0x31, 0x00, 0xf0, 0xd3, 0x31, 0x00, 0xf4, 0xd9, 0x31, 0x00, + 0xf7, 0xc4, 0x31, 0x80, 0x13, 0xfa, 0xd7, 0x31, 0xc0, 0x00, 0xf0, 0xe5, + 0x31, 0x00, 0x42, 0xb6, 0x49, 0xc9, 0x31, 0x00, 0xfa, 0xde, 0x31, 0x40, + 0xe7, 0xdf, 0x31, 0x00, 0xfa, 0xd8, 0x31, 0x40, 0xe4, 0xdb, 0x31, 0x00, + 0xe7, 0xe2, 0x31, 0x00, 0xfa, 0xdc, 0x31, 0x40, 0xe7, 0xd6, 0x31, 0x00, + 0xf0, 0xc7, 0x31, 0x80, 0x34, 0xb8, 0x28, 0xfa, 0xd5, 0x31, 0xc0, 0x00, + 0xe7, 0xc6, 0x31, 0x00, 0xf4, 0xca, 0x31, 0x00, 0xf7, 0xcd, 0x31, 0x80, + 0x12, 0xfa, 0xc5, 0x31, 0xc0, 0x00, 0xf0, 0xcb, 0x31, 0x00, 0xfa, 0xce, + 0x31, 0xc0, 0x00, 0xe7, 0xe1, 0x31, 0x40, 0xe7, 0xc8, 0x31, 0x40, 0xe7, + 0xe4, 0x31, 0x00, 0x42, 0xb6, 0x49, 0xe0, 0x31, 0x40, 0x42, 0xb6, 0x49, + 0xcc, 0x31, 0x40, 0xa2, 0xba, 0x06, 0xa3, 0xfb, 0x04, 0xa4, 0xe6, 0x04, + 0xa5, 0xbe, 0x04, 0xa6, 0xaf, 0x04, 0xa7, 0x8c, 0x04, 0xa8, 0xe4, 0x03, + 0xaa, 0xbc, 0x03, 0x06, 0xba, 0xa5, 0xab, 0x03, 0xac, 0xf8, 0x02, 0xad, + 0xc1, 0x02, 0x04, 0x44, 0x49, 0xa1, 0x02, 0x43, 0xe1, 0x1a, 0xb9, 0x2e, + 0x00, 0xb0, 0x82, 0x02, 0xb2, 0xe9, 0x01, 0xb3, 0x51, 0xb4, 0x37, 0xb7, + 0x01, 0xff, 0xa1, 0x11, 0x04, 0xbf, 0x1a, 0x01, 0xff, 0x43, 0x0e, 0x0b, + 0xc3, 0x2e, 0x00, 0x43, 0x1f, 0x0a, 0xc4, 0x2e, 0x40, 0x03, 0x70, 0xf4, + 0x11, 0x04, 0x08, 0x03, 0x01, 0xff, 0x43, 0x0e, 0x0b, 0xa1, 0x2e, 0x00, + 0x43, 0x1f, 0x0a, 0xa2, 0x2e, 0x40, 0x43, 0x0e, 0x0b, 0xcd, 0x2e, 0x00, + 0x43, 0x1f, 0x0a, 0xce, 0x2e, 0x40, 0x44, 0x1e, 0x18, 0x87, 0x2e, 0x00, + 0x45, 0x23, 0x9e, 0x93, 0x2e, 0x00, 0x44, 0x7d, 0xf0, 0xc1, 0x2e, 0x00, + 0x45, 0xf5, 0xeb, 0xf1, 0x2e, 0x40, 0xa5, 0x74, 0x44, 0x25, 0xf0, 0xb6, + 0x2e, 0x00, 0xa9, 0x3f, 0x05, 0x5e, 0x07, 0x2f, 0xae, 0x16, 0x06, 0x2c, + 0xdf, 0x06, 0x42, 0x42, 0x0b, 0x9c, 0x2e, 0x40, 0x43, 0x0e, 0x0b, 0xac, + 0x2e, 0x00, 0x43, 0x1f, 0x0a, 0xad, 0x2e, 0x40, 0x43, 0x92, 0x27, 0x92, + 0x2e, 0x00, 0x04, 0xfd, 0x50, 0x01, 0xff, 0x43, 0x0e, 0x0b, 0x94, 0x2e, + 0x00, 0x43, 0x1f, 0x0a, 0x95, 0x2e, 0x40, 0x43, 0x0e, 0x0b, 0x8c, 0x2e, + 0x00, 0x43, 0x1f, 0x0a, 0x8d, 0x2e, 0x40, 0x42, 0x60, 0x5b, 0xaf, 0x2e, + 0x00, 0x09, 0xd2, 0x88, 0x01, 0xff, 0xa8, 0x14, 0xb7, 0x06, 0x46, 0xde, + 0xd7, 0xe9, 0x2e, 0x40, 0x43, 0x5f, 0x5b, 0xcc, 0x2e, 0x00, 0x44, 0xc8, + 0x9c, 0xe8, 0x2e, 0x40, 0x4e, 0xc3, 0x75, 0xa6, 0x2e, 0x00, 0x43, 0x28, + 0x05, 0xc6, 0x2e, 0x40, 0x42, 0x13, 0x00, 0x8b, 0x2e, 0x00, 0x05, 0xe5, + 0x7b, 0x01, 0xff, 0x43, 0x0e, 0x0b, 0x82, 0x2e, 0x00, 0xb4, 0x01, 0xff, + 0x44, 0x25, 0x01, 0x84, 0x2e, 0x00, 0x42, 0x15, 0x02, 0x83, 0x2e, 0x40, + 0xa1, 0x06, 0x45, 0x9e, 0x6c, 0x80, 0x2e, 0x40, 0x42, 0x9e, 0x01, 0xd7, + 0x2e, 0x00, 0xed, 0xb7, 0x2e, 0x00, 0xf0, 0x99, 0x2e, 0x40, 0x03, 0xa7, + 0x44, 0x06, 0x45, 0x1f, 0x1d, 0x85, 0x2e, 0x40, 0x43, 0x0e, 0x0b, 0xa4, + 0x2e, 0x00, 0x43, 0x1f, 0x0a, 0xa5, 0x2e, 0x40, 0x44, 0xf5, 0x06, 0xb4, + 0x2e, 0x00, 0x43, 0x0e, 0x0b, 0xb1, 0x2e, 0x00, 0xb4, 0x01, 0xff, 0x44, + 0x25, 0x01, 0xb3, 0x2e, 0x00, 0x42, 0x15, 0x02, 0xb2, 0x2e, 0x40, 0xa5, + 0x26, 0xaf, 0x01, 0xff, 0x42, 0x10, 0x00, 0x9d, 0x2e, 0x00, 0x44, 0x6c, + 0x4d, 0xbd, 0x2e, 0x00, 0x44, 0x0f, 0x1a, 0x9f, 0x2e, 0x00, 0x04, 0x5b, + 0x12, 0x01, 0xff, 0x43, 0x0e, 0x0b, 0xd5, 0x2e, 0x00, 0x43, 0x1f, 0x0a, + 0xd6, 0x2e, 0x40, 0x42, 0x8a, 0x00, 0xbc, 0x2e, 0x00, 0x42, 0xa4, 0x02, + 0xb5, 0x2e, 0x40, 0x04, 0xa2, 0xb8, 0x11, 0x04, 0xd8, 0x02, 0x01, 0xff, + 0x43, 0x0e, 0x0b, 0xd1, 0x2e, 0x00, 0x43, 0x1f, 0x0a, 0xd2, 0x2e, 0x40, + 0x44, 0xf5, 0x06, 0x91, 0x2e, 0x00, 0x43, 0x0e, 0x0b, 0x8e, 0x2e, 0x00, + 0xb4, 0x01, 0xff, 0x44, 0x25, 0x01, 0x90, 0x2e, 0x00, 0x42, 0x15, 0x02, + 0x8f, 0x2e, 0x40, 0x43, 0x0e, 0x0b, 0x88, 0x2e, 0x00, 0x43, 0x1f, 0x0a, + 0x89, 0x2e, 0x40, 0x0c, 0xd7, 0x8b, 0x06, 0x43, 0x0c, 0x02, 0xa9, 0x2e, + 0x40, 0x46, 0x55, 0x8f, 0xef, 0x2e, 0x00, 0x44, 0xc9, 0x1d, 0xeb, 0x2e, + 0x00, 0xb4, 0x01, 0xff, 0x44, 0xd9, 0xf1, 0xed, 0x2e, 0x00, 0x45, 0xf5, + 0xeb, 0xf2, 0x2e, 0x40, 0x43, 0x1a, 0x00, 0x98, 0x2e, 0x00, 0x02, 0x89, + 0x00, 0x06, 0x43, 0x28, 0x05, 0xc7, 0x2e, 0x40, 0xe4, 0xe1, 0x2e, 0x00, + 0x03, 0x36, 0x07, 0x01, 0xff, 0x43, 0x0e, 0x0b, 0x96, 0x2e, 0x00, 0x43, + 0x1f, 0x0a, 0x97, 0x2e, 0x40, 0x44, 0xc0, 0x7c, 0xe4, 0x2e, 0x00, 0x05, + 0x1c, 0x20, 0x01, 0xff, 0x43, 0x0e, 0x0b, 0xbe, 0x2e, 0x00, 0xb4, 0x01, + 0xff, 0x44, 0x25, 0x01, 0xc0, 0x2e, 0x00, 0x42, 0x15, 0x02, 0xbf, 0x2e, + 0x40, 0x43, 0x88, 0x0d, 0xa3, 0x2e, 0x00, 0x43, 0xbf, 0x6c, 0xca, 0x2e, + 0x40, 0x03, 0x3d, 0x05, 0x0c, 0x42, 0x15, 0x01, 0xb8, 0x2e, 0x00, 0x42, + 0x4d, 0x00, 0xab, 0x2e, 0x40, 0x43, 0x0e, 0x0b, 0xdd, 0x2e, 0x00, 0xb4, + 0x01, 0xff, 0x44, 0x25, 0x01, 0xdf, 0x2e, 0x00, 0x42, 0x15, 0x02, 0xde, + 0x2e, 0x40, 0x44, 0x73, 0x0f, 0x9e, 0x2e, 0x00, 0x49, 0xd7, 0xba, 0x8a, + 0x2e, 0x00, 0x42, 0xc1, 0x18, 0xa8, 0x2e, 0x40, 0x0c, 0xd7, 0x8b, 0x28, + 0x44, 0x5c, 0xdd, 0x9b, 0x2e, 0x00, 0xa9, 0x14, 0xac, 0x06, 0x42, 0xd1, + 0x00, 0xa7, 0x2e, 0x40, 0x43, 0x56, 0x48, 0x81, 0x2e, 0x00, 0x45, 0x49, + 0x88, 0xc2, 0x2e, 0x40, 0x42, 0x7d, 0x11, 0xcf, 0x2e, 0x00, 0x46, 0x24, + 0xe1, 0xa0, 0x2e, 0x40, 0x44, 0x87, 0xa7, 0xe6, 0x2e, 0x00, 0x44, 0x36, + 0x6c, 0xcb, 0x2e, 0x00, 0x46, 0x55, 0x8f, 0xf0, 0x2e, 0x00, 0xa5, 0x70, + 0xa6, 0x5c, 0xa7, 0x4e, 0x45, 0x20, 0xb3, 0xe2, 0x2e, 0x00, 0xac, 0x3a, + 0xb3, 0x1a, 0xb4, 0x06, 0x44, 0x8e, 0x13, 0xdb, 0x2e, 0x40, 0x4d, 0x6f, + 0x80, 0xd9, 0x2e, 0x00, 0x44, 0xd9, 0xf1, 0xee, 0x2e, 0x00, 0x45, 0xf5, + 0xeb, 0xf3, 0x2e, 0x40, 0x43, 0xf1, 0x11, 0xe7, 0x2e, 0x00, 0x42, 0x27, + 0x01, 0xc5, 0x2e, 0x00, 0x44, 0x5e, 0x09, 0xc9, 0x2e, 0x00, 0x43, 0x38, + 0xb1, 0xb0, 0x2e, 0x00, 0x45, 0x70, 0x7c, 0xc8, 0x2e, 0x40, 0x43, 0x3a, + 0x51, 0xda, 0x2e, 0x00, 0x43, 0xd8, 0x02, 0xd3, 0x2e, 0x40, 0x43, 0x8a, + 0x00, 0xd4, 0x2e, 0x00, 0x43, 0xe1, 0x1a, 0xd0, 0x2e, 0x40, 0x43, 0xd1, + 0x0c, 0xe5, 0x2e, 0x00, 0x42, 0x75, 0x0b, 0xdc, 0x2e, 0x00, 0x43, 0xeb, + 0x2e, 0xea, 0x2e, 0x40, 0x42, 0x8a, 0x00, 0xe0, 0x2e, 0x00, 0x43, 0xca, + 0x1d, 0xec, 0x2e, 0x40, 0x45, 0x5e, 0xcf, 0xae, 0x2e, 0x00, 0x43, 0xd4, + 0x8c, 0xd8, 0x2e, 0x00, 0xaf, 0x11, 0x05, 0xa1, 0xea, 0x01, 0xff, 0x43, + 0x0e, 0x0b, 0xba, 0x2e, 0x00, 0x43, 0x1f, 0x0a, 0xbb, 0x2e, 0x40, 0x4b, + 0xf9, 0x9e, 0xaa, 0x2e, 0x00, 0x42, 0xcd, 0x05, 0xe3, 0x2e, 0x00, 0xf8, + 0x86, 0x2e, 0x40, 0x44, 0x71, 0xf1, 0xa6, 0xf3, 0x01, 0x02, 0x14, 0x03, + 0x0d, 0x47, 0xa3, 0xd6, 0xd9, 0xf3, 0xc1, 0x00, 0x48, 0xf0, 0xc1, 0x06, + 0xf3, 0x41, 0x02, 0x68, 0x00, 0x15, 0xb5, 0x01, 0xff, 0x4f, 0x3c, 0x6f, + 0x10, 0x2a, 0x00, 0x4c, 0xd4, 0x04, 0x5e, 0x00, 0x00, 0x46, 0xc8, 0xdf, + 0xaa, 0xf3, 0x41, 0x80, 0xa7, 0x0e, 0x02, 0x06, 0x00, 0x01, 0xff, 0xa1, + 0x89, 0x0e, 0xa2, 0xfa, 0x0d, 0xa3, 0xbe, 0x0d, 0xa4, 0xcd, 0x0c, 0x46, + 0x48, 0x13, 0x9c, 0x22, 0x00, 0x4c, 0x87, 0x00, 0xc1, 0x29, 0x00, 0xa8, + 0xe1, 0x0a, 0xa9, 0xc7, 0x07, 0xab, 0xdd, 0x05, 0xac, 0xf7, 0x03, 0xad, + 0xe8, 0x03, 0x07, 0xff, 0x39, 0x6f, 0x5e, 0x25, 0x14, 0x42, 0x27, 0x00, + 0xb0, 0x4f, 0xb2, 0x41, 0x46, 0xd6, 0x05, 0xd7, 0xf7, 0x01, 0xb4, 0x26, + 0x4c, 0x32, 0x00, 0xb6, 0x29, 0x00, 0xb7, 0x0a, 0xf8, 0xbe, 0x2b, 0x00, + 0x4f, 0x36, 0x75, 0x0d, 0xf1, 0x41, 0x05, 0xae, 0x02, 0x04, 0xfa, 0x2e, + 0xf1, 0x41, 0x46, 0xb2, 0x21, 0xbe, 0x29, 0x00, 0x44, 0x31, 0x13, 0x2a, + 0x27, 0x40, 0x44, 0x29, 0x02, 0x97, 0x22, 0x00, 0x47, 0x02, 0x02, 0xd5, + 0xf7, 0xc1, 0x00, 0x45, 0xa4, 0x01, 0x8a, 0x23, 0x40, 0x4e, 0x67, 0x72, + 0xb8, 0x29, 0x00, 0x4c, 0x33, 0x90, 0x9a, 0x22, 0x40, 0x47, 0x89, 0x38, + 0xb7, 0x29, 0x00, 0x4c, 0xa7, 0x8e, 0xb9, 0x29, 0x00, 0x43, 0x59, 0x28, + 0x95, 0x22, 0x00, 0x4a, 0x1f, 0xaf, 0x36, 0x30, 0x40, 0xa5, 0xdc, 0x02, + 0xa6, 0xec, 0x01, 0x48, 0xc5, 0x53, 0x72, 0x24, 0x00, 0xb3, 0xc2, 0x01, + 0xb4, 0x01, 0xff, 0x42, 0x92, 0x01, 0x69, 0x24, 0x80, 0xb1, 0x01, 0x04, + 0x7a, 0x11, 0x5a, 0x02, 0x15, 0x01, 0x01, 0xff, 0x43, 0xe8, 0x2b, 0x6b, + 0x24, 0x00, 0x43, 0xcc, 0x1d, 0x73, 0x24, 0xc0, 0x00, 0x80, 0x01, 0xff, + 0x45, 0x12, 0x0b, 0x58, 0x32, 0x00, 0xa6, 0x31, 0x44, 0xcf, 0x2a, 0x59, 0x32, 0x00, 0x02, 0x10, 0x00, 0x1d, 0xb3, 0x0f, 0xb4, 0x01, 0xff, 0x44, - 0x25, 0x01, 0xb8, 0x32, 0x00, 0x42, 0x15, 0x02, 0xb7, 0x32, 0x40, 0x44, - 0x27, 0x1d, 0xbc, 0x32, 0x00, 0x42, 0x60, 0x25, 0xbb, 0x32, 0x40, 0x4d, - 0xf2, 0x10, 0x4b, 0x32, 0x00, 0xe5, 0xb6, 0x32, 0x40, 0x43, 0xa7, 0x05, - 0xba, 0x32, 0x00, 0x43, 0xcb, 0x06, 0xb9, 0x32, 0x40, 0x43, 0x75, 0x09, - 0x6e, 0x24, 0x00, 0xf9, 0xbf, 0x32, 0xc0, 0x00, 0x50, 0x48, 0x5e, 0x4c, - 0x32, 0x40, 0x04, 0xc9, 0x00, 0x06, 0x45, 0x0b, 0x6e, 0x6a, 0x24, 0x40, - 0x43, 0x75, 0x09, 0x71, 0x24, 0x00, 0x51, 0x47, 0x5e, 0x4f, 0x32, 0x40, - 0x44, 0xf0, 0x1e, 0x96, 0x22, 0x00, 0x69, 0x8c, 0x04, 0x36, 0x2a, 0x40, - 0x05, 0xb4, 0x05, 0x06, 0x48, 0xed, 0x00, 0xc0, 0x29, 0x40, 0x0f, 0xb9, - 0x05, 0x6d, 0x0d, 0x4b, 0x08, 0x01, 0xff, 0xe1, 0xd0, 0x24, 0x00, 0xe2, - 0xd1, 0x24, 0x00, 0xe3, 0xd2, 0x24, 0x00, 0xe4, 0xd3, 0x24, 0x00, 0xe5, - 0xd4, 0x24, 0x00, 0xe6, 0xd5, 0x24, 0x00, 0xe7, 0xd6, 0x24, 0x00, 0xe8, - 0xd7, 0x24, 0x00, 0xe9, 0xd8, 0x24, 0x00, 0xea, 0xd9, 0x24, 0x00, 0xeb, - 0xda, 0x24, 0x00, 0xec, 0xdb, 0x24, 0x00, 0xed, 0xdc, 0x24, 0x00, 0xee, - 0xdd, 0x24, 0x00, 0xef, 0xde, 0x24, 0x00, 0xf0, 0xdf, 0x24, 0x00, 0xf1, - 0xe0, 0x24, 0x00, 0xf2, 0xe1, 0x24, 0x00, 0xf3, 0xe2, 0x24, 0x00, 0xf4, - 0xe3, 0x24, 0x00, 0xf5, 0xe4, 0x24, 0x00, 0xf6, 0xe5, 0x24, 0x00, 0xf7, - 0xe6, 0x24, 0x00, 0xf8, 0xe7, 0x24, 0x00, 0xf9, 0xe8, 0x24, 0x00, 0xfa, - 0xe9, 0x24, 0x40, 0xe1, 0xb6, 0x24, 0x00, 0xe2, 0xb7, 0x24, 0x00, 0xe3, - 0xb8, 0x24, 0x00, 0xe4, 0xb9, 0x24, 0x00, 0xe5, 0xba, 0x24, 0x00, 0xe6, - 0xbb, 0x24, 0x00, 0xe7, 0xbc, 0x24, 0x00, 0xe8, 0xbd, 0x24, 0x00, 0xe9, - 0xbe, 0x24, 0x00, 0xea, 0xbf, 0x24, 0x00, 0xeb, 0xc0, 0x24, 0x00, 0xec, - 0xc1, 0x24, 0x00, 0xed, 0xc2, 0x24, 0x00, 0xee, 0xc3, 0x24, 0x00, 0xef, - 0xc4, 0x24, 0x00, 0xf0, 0xc5, 0x24, 0x00, 0xf1, 0xc6, 0x24, 0x00, 0xf2, - 0xc7, 0x24, 0x00, 0xf3, 0xc8, 0x24, 0x00, 0xf4, 0xc9, 0x24, 0x00, 0xf5, - 0xca, 0x24, 0x00, 0xf6, 0xcb, 0x24, 0x00, 0xf7, 0xcc, 0x24, 0x00, 0xf8, - 0xcd, 0x24, 0x00, 0xf9, 0xce, 0x24, 0x00, 0xfa, 0xcf, 0x24, 0x40, 0x08, - 0x2a, 0xc1, 0x11, 0x10, 0xff, 0x51, 0x01, 0xff, 0x46, 0x90, 0xd7, 0x7c, - 0x32, 0x00, 0x45, 0xa3, 0xe4, 0x7d, 0x32, 0x40, 0xe1, 0xd0, 0x32, 0x00, - 0xe5, 0xd3, 0x32, 0x00, 0xa8, 0xb3, 0x01, 0xe9, 0xd1, 0x32, 0x00, 0xab, - 0x98, 0x01, 0xad, 0x81, 0x01, 0xae, 0x6b, 0xef, 0xd4, 0x32, 0x00, 0xb2, - 0x51, 0xb3, 0x3b, 0xb4, 0x25, 0xf5, 0xd2, 0x32, 0x00, 0xb7, 0x0f, 0xb9, - 0x01, 0xff, 0xe1, 0xf3, 0x32, 0x00, 0xef, 0xf5, 0x32, 0x00, 0xf5, 0xf4, - 0x32, 0x40, 0xe1, 0xfb, 0x32, 0x00, 0xe5, 0xfd, 0x32, 0x00, 0xe9, 0xfc, - 0x32, 0x00, 0xef, 0xfe, 0x32, 0x40, 0xe1, 0xdf, 0x32, 0x00, 0xe5, 0xe2, - 0x32, 0x00, 0xe9, 0xe0, 0x32, 0x00, 0xef, 0xe3, 0x32, 0x00, 0xf5, 0xe1, - 0x32, 0x40, 0xe1, 0xda, 0x32, 0x00, 0xe5, 0xdd, 0x32, 0x00, 0xe9, 0xdb, - 0x32, 0x00, 0xef, 0xde, 0x32, 0x00, 0xf5, 0xdc, 0x32, 0x40, 0xe1, 0xf6, - 0x32, 0x00, 0xe5, 0xf9, 0x32, 0x00, 0xe9, 0xf7, 0x32, 0x00, 0xef, 0xfa, - 0x32, 0x00, 0xf5, 0xf8, 0x32, 0x40, 0xe1, 0xe4, 0x32, 0x00, 0xe5, 0xe7, - 0x32, 0x00, 0xe9, 0xe5, 0x32, 0x00, 0xef, 0xe8, 0x32, 0x00, 0xf5, 0xe6, - 0x32, 0x40, 0xe1, 0xee, 0x32, 0x00, 0xe5, 0xf1, 0x32, 0x00, 0xe9, 0xef, - 0x32, 0x00, 0xef, 0xf2, 0x32, 0x00, 0xf5, 0xf0, 0x32, 0x40, 0xe1, 0xd5, - 0x32, 0x00, 0xe5, 0xd8, 0x32, 0x00, 0xe9, 0xd6, 0x32, 0x00, 0xef, 0xd9, - 0x32, 0x00, 0xf5, 0xd7, 0x32, 0x40, 0xe1, 0xe9, 0x32, 0x00, 0xe5, 0xec, - 0x32, 0x00, 0xe9, 0xea, 0x32, 0x00, 0xef, 0xed, 0x32, 0x00, 0xf5, 0xeb, - 0x32, 0x40, 0x09, 0x42, 0xa9, 0x13, 0x51, 0x4a, 0x5b, 0xc8, 0xf6, 0x01, - 0x1b, 0xff, 0x1c, 0x01, 0xff, 0xe3, 0x2b, 0xf1, 0x01, 0xf2, 0x2c, 0xf1, - 0x41, 0xa1, 0xe5, 0x02, 0xa3, 0xc7, 0x02, 0xa5, 0xac, 0x02, 0xa6, 0x89, - 0x02, 0xa8, 0xfa, 0x01, 0x44, 0xee, 0xbe, 0xa0, 0x32, 0x00, 0xab, 0xe5, - 0x01, 0xac, 0xd0, 0x01, 0xad, 0xb3, 0x01, 0xae, 0x9b, 0x01, 0x43, 0xbf, - 0x0a, 0x80, 0x32, 0x00, 0x45, 0xdd, 0xc3, 0x9e, 0x32, 0x00, 0x48, 0xd6, - 0x33, 0x44, 0x32, 0x00, 0xb2, 0x6c, 0xb3, 0x23, 0xb4, 0x0f, 0xb7, 0x01, - 0xff, 0x44, 0x8a, 0x00, 0x8c, 0x32, 0x00, 0x43, 0xfc, 0x2c, 0x8d, 0x32, - 0x40, 0x42, 0x92, 0x01, 0x89, 0x32, 0x00, 0x44, 0x25, 0x01, 0x82, 0x32, - 0x00, 0x42, 0x15, 0x02, 0x81, 0x32, 0x40, 0x45, 0x28, 0xe2, 0x46, 0x32, - 0x00, 0xa5, 0x33, 0x42, 0x60, 0x25, 0x85, 0x32, 0x00, 0x46, 0xb0, 0xdb, - 0x93, 0x32, 0x00, 0x46, 0x10, 0xdc, 0x95, 0x32, 0x00, 0xb4, 0x13, 0xb5, - 0x01, 0xff, 0x46, 0x36, 0xda, 0x9c, 0x32, 0x00, 0xee, 0x90, 0x32, 0x00, - 0x47, 0xdf, 0xd1, 0xac, 0x32, 0x40, 0x43, 0x35, 0x01, 0x91, 0x32, 0x00, - 0x43, 0x59, 0xf1, 0xab, 0x32, 0x40, 0x44, 0x36, 0xec, 0x99, 0x32, 0x00, - 0x43, 0x28, 0x1d, 0x86, 0x32, 0x40, 0xa5, 0x06, 0x44, 0xc9, 0x00, 0xa8, - 0x32, 0x40, 0x46, 0xba, 0xda, 0xaa, 0x32, 0x00, 0xb3, 0x01, 0xff, 0x45, - 0x56, 0x5b, 0xae, 0x32, 0x00, 0xf4, 0xa1, 0x32, 0x40, 0x43, 0x00, 0x05, - 0x94, 0x32, 0x00, 0xa9, 0x01, 0xff, 0x43, 0xca, 0x00, 0xb0, 0x32, 0x00, - 0x42, 0xa2, 0x05, 0x88, 0x32, 0x40, 0x43, 0x67, 0x00, 0x9a, 0x32, 0x00, - 0xa5, 0x06, 0x43, 0x69, 0x05, 0x8a, 0x32, 0x40, 0x46, 0x08, 0xd8, 0xa9, - 0x32, 0x00, 0x43, 0x12, 0x00, 0x8e, 0x32, 0x40, 0x44, 0xf4, 0xe4, 0x98, - 0x32, 0x00, 0x43, 0xc4, 0x00, 0xa7, 0x32, 0x00, 0x42, 0xd1, 0x00, 0xa6, - 0x32, 0x40, 0x4b, 0x5d, 0x9b, 0x45, 0x32, 0x00, 0x43, 0x4a, 0x8c, 0x47, - 0x32, 0x40, 0x43, 0x04, 0x08, 0x92, 0x32, 0x00, 0x43, 0x3f, 0x00, 0xa4, - 0x32, 0x40, 0x45, 0xb5, 0x20, 0x9b, 0x32, 0x00, 0xa9, 0x06, 0x43, 0xcb, - 0x06, 0x83, 0x32, 0x40, 0x47, 0x96, 0xd0, 0x96, 0x32, 0x00, 0x42, 0x88, - 0x00, 0x8b, 0x32, 0x00, 0x42, 0x32, 0x00, 0x84, 0x32, 0x40, 0x44, 0xb9, - 0x70, 0x8f, 0x32, 0x00, 0x44, 0xc9, 0x00, 0x87, 0x32, 0x00, 0x49, 0x3f, - 0xba, 0xad, 0x32, 0x00, 0x48, 0xea, 0xc9, 0x9d, 0x32, 0x40, 0x45, 0x74, - 0x02, 0xa5, 0x32, 0x00, 0xaf, 0x01, 0xff, 0x4c, 0x4d, 0x85, 0x97, 0x32, - 0x00, 0x42, 0x79, 0x1c, 0xa2, 0x32, 0x00, 0x45, 0xa3, 0xd2, 0xa3, 0x32, - 0x40, 0x45, 0xf6, 0xe1, 0x51, 0xf2, 0x01, 0x48, 0xc2, 0xc2, 0x50, 0xf2, - 0x01, 0x47, 0xbb, 0xc0, 0xaf, 0x32, 0x00, 0x48, 0x12, 0xc9, 0x9f, 0x32, - 0x40, 0x06, 0x9f, 0xce, 0x12, 0x5b, 0x77, 0x1a, 0xb2, 0x27, 0x00, 0x58, - 0xc5, 0x29, 0x89, 0x23, 0x00, 0x4b, 0x11, 0xa2, 0x6f, 0xf1, 0x41, 0xa3, - 0xaa, 0x01, 0x45, 0x35, 0xa3, 0x6d, 0x32, 0x80, 0x9c, 0x01, 0x45, 0x68, - 0xc9, 0x67, 0x32, 0x80, 0x89, 0x01, 0xab, 0x6d, 0x45, 0x8e, 0xe5, 0x64, - 0x32, 0x80, 0x60, 0x45, 0xfc, 0xe5, 0x61, 0x32, 0x80, 0x53, 0xb0, 0x37, - 0x45, 0x41, 0xe7, 0x63, 0x32, 0x80, 0x2a, 0x44, 0xf0, 0xbc, 0x66, 0x32, - 0x80, 0x1d, 0xb4, 0x01, 0xff, 0x46, 0x8b, 0xd3, 0x6b, 0x32, 0x80, 0x0d, - 0x45, 0x20, 0xcb, 0x62, 0x32, 0xc0, 0x00, 0x42, 0x19, 0x00, 0x70, 0x32, - 0x40, 0x42, 0x19, 0x00, 0x79, 0x32, 0x40, 0x42, 0x19, 0x00, 0x74, 0x32, - 0x40, 0x42, 0x19, 0x00, 0x71, 0x32, 0x40, 0x46, 0x4c, 0xc0, 0x6c, 0x32, - 0x80, 0x0d, 0x44, 0x33, 0x83, 0x65, 0x32, 0xc0, 0x00, 0x42, 0x19, 0x00, - 0x73, 0x32, 0x40, 0x42, 0x19, 0x00, 0x7a, 0x32, 0x40, 0x42, 0x19, 0x00, - 0x6f, 0x32, 0x40, 0x42, 0x19, 0x00, 0x72, 0x32, 0x40, 0x46, 0x44, 0xc0, - 0x6a, 0x32, 0x80, 0x0d, 0x45, 0xb7, 0xa0, 0x60, 0x32, 0xc0, 0x00, 0x42, - 0x19, 0x00, 0x6e, 0x32, 0x40, 0x42, 0x19, 0x00, 0x78, 0x32, 0x40, 0x80, - 0x01, 0xff, 0xe1, 0x75, 0x32, 0x00, 0xf5, 0x7e, 0x32, 0x40, 0x42, 0x19, - 0x00, 0x7b, 0x32, 0x40, 0x46, 0x17, 0xcd, 0x69, 0x32, 0x80, 0x0d, 0x44, - 0x18, 0xcd, 0x68, 0x32, 0xc0, 0x00, 0x42, 0x19, 0x00, 0x76, 0x32, 0x40, - 0x42, 0x19, 0x00, 0x77, 0x32, 0x40, 0x43, 0xce, 0x03, 0x9d, 0x22, 0x00, - 0xa9, 0x0f, 0xaf, 0x01, 0xff, 0x61, 0xdd, 0x0d, 0x0f, 0xf1, 0x01, 0x4a, - 0x2b, 0x36, 0x99, 0x22, 0x40, 0x04, 0xc6, 0x06, 0x11, 0x08, 0xf4, 0x31, - 0x01, 0xff, 0x43, 0x30, 0x03, 0x38, 0x2a, 0x00, 0x44, 0xfa, 0x0d, 0x98, - 0x22, 0x40, 0x45, 0xc3, 0x0a, 0x67, 0x24, 0x00, 0xa6, 0x2e, 0x44, 0x46, - 0x2a, 0x68, 0x24, 0x00, 0x43, 0xbf, 0x0a, 0x60, 0x24, 0x00, 0xb3, 0x14, - 0xb4, 0x06, 0x44, 0xa1, 0x1d, 0xea, 0x24, 0x40, 0x44, 0x25, 0x01, 0x62, - 0x24, 0x00, 0x42, 0x15, 0x02, 0x61, 0x24, 0x40, 0x44, 0x27, 0x1d, 0x66, - 0x24, 0x00, 0x42, 0x60, 0x25, 0x65, 0x24, 0x40, 0x43, 0xa7, 0x05, 0x64, - 0x24, 0x00, 0x43, 0xcb, 0x06, 0x63, 0x24, 0x40, 0x58, 0xe6, 0x0d, 0x6e, - 0xf1, 0x01, 0xe3, 0x6d, 0xf1, 0x01, 0xe4, 0x2d, 0xf1, 0x01, 0x04, 0x47, - 0x10, 0x01, 0xff, 0x80, 0x06, 0x49, 0x23, 0xb8, 0xd2, 0x26, 0x40, 0x46, - 0xda, 0xd8, 0x02, 0xf9, 0x81, 0x06, 0x46, 0x3a, 0xdc, 0x40, 0xf5, 0x41, - 0x06, 0x50, 0x00, 0x01, 0xff, 0x49, 0x9c, 0x45, 0x00, 0xf9, 0x01, 0x48, - 0xd0, 0x09, 0x01, 0xf9, 0x41, 0x45, 0x65, 0xe6, 0xbf, 0x2b, 0x00, 0x45, - 0x2b, 0x21, 0xbf, 0x29, 0x40, 0x0c, 0xe6, 0x0a, 0x06, 0x50, 0xea, 0x65, - 0x9b, 0x22, 0x40, 0x46, 0xcd, 0x00, 0x0e, 0xf1, 0x01, 0x56, 0xe9, 0x31, - 0xbc, 0x29, 0x40, 0x7e, 0x00, 0x00, 0xba, 0x29, 0x00, 0x05, 0x51, 0x00, - 0x01, 0xff, 0x61, 0x17, 0x0d, 0xd5, 0x25, 0x00, 0x4e, 0x0b, 0x00, 0xb5, - 0x29, 0x00, 0xac, 0x30, 0x50, 0x3a, 0x65, 0xd1, 0x25, 0x00, 0xb3, 0x1c, - 0x63, 0x5b, 0x0b, 0xc3, 0x29, 0x00, 0x06, 0x6d, 0x02, 0x06, 0x4d, 0x72, - 0x88, 0xcd, 0x25, 0x40, 0x4a, 0x4b, 0x25, 0xd3, 0x25, 0x00, 0x54, 0x43, - 0x44, 0xd4, 0x25, 0x40, 0x58, 0x65, 0x29, 0xc2, 0x29, 0x00, 0x4d, 0xd6, - 0x87, 0xbb, 0x29, 0x40, 0x4e, 0xd0, 0x6d, 0xd0, 0x25, 0x00, 0x4f, 0x09, - 0x70, 0xd2, 0x25, 0x40, 0xa1, 0xdf, 0x08, 0xa5, 0x82, 0x02, 0xa9, 0xda, - 0x01, 0xaf, 0x0c, 0x4c, 0xe9, 0x92, 0x84, 0xf3, 0x01, 0x44, 0xbc, 0xd7, - 0xea, 0x26, 0x40, 0x4a, 0x85, 0xa6, 0x6b, 0xf3, 0x01, 0x47, 0x10, 0xd2, - 0x62, 0xf9, 0x01, 0x08, 0x7a, 0xc7, 0x01, 0xff, 0x07, 0xc1, 0x05, 0x34, - 0x07, 0x2f, 0x39, 0x01, 0xff, 0x44, 0xca, 0x06, 0xc8, 0x0f, 0x01, 0x43, - 0xbf, 0x0a, 0xc5, 0x0f, 0x81, 0x1c, 0xb4, 0x01, 0xff, 0x42, 0x92, 0x01, - 0xc9, 0x0f, 0x01, 0x44, 0x25, 0x01, 0xc7, 0x0f, 0x01, 0xb7, 0x01, 0xff, - 0x44, 0x29, 0x1d, 0xca, 0x0f, 0x01, 0xef, 0xc6, 0x0f, 0x41, 0x48, 0x21, - 0x11, 0xcb, 0x0f, 0x41, 0xa1, 0x75, 0x44, 0x0a, 0xec, 0xb2, 0x0f, 0x01, - 0x4a, 0xb7, 0xa6, 0xb7, 0x0f, 0x01, 0x46, 0xda, 0x48, 0xb4, 0x0f, 0x01, - 0x45, 0xa1, 0xa8, 0xb3, 0x0f, 0x01, 0x42, 0xb0, 0x01, 0xb5, 0x0f, 0x81, - 0x50, 0x44, 0x8e, 0xed, 0xbb, 0x0f, 0x01, 0x46, 0x9c, 0xda, 0xbc, 0x0f, - 0x01, 0x43, 0x89, 0x05, 0xbd, 0x0f, 0x01, 0x43, 0x54, 0x22, 0xbe, 0x0f, - 0x01, 0x42, 0x6f, 0x02, 0xc1, 0x0f, 0x01, 0x44, 0xfa, 0x64, 0xc2, 0x0f, - 0x01, 0xb3, 0x18, 0x43, 0x1e, 0xc2, 0xc4, 0x0f, 0x01, 0x43, 0xc0, 0x88, - 0xb6, 0x0f, 0x01, 0x44, 0x58, 0x51, 0xba, 0x0f, 0x01, 0x45, 0x52, 0x51, - 0xb8, 0x0f, 0x41, 0x45, 0x38, 0xe1, 0xbf, 0x0f, 0x01, 0x43, 0x0e, 0x16, - 0xc3, 0x0f, 0x01, 0x4a, 0x53, 0xab, 0xb1, 0x0f, 0x41, 0x42, 0x53, 0x00, - 0xb9, 0x0f, 0x41, 0x44, 0x48, 0x3c, 0xb0, 0x0f, 0x01, 0x43, 0xf7, 0x19, - 0xc0, 0x0f, 0x41, 0x44, 0x0a, 0x89, 0x27, 0x26, 0x00, 0x44, 0x90, 0x01, - 0x14, 0xf4, 0x01, 0x42, 0x5b, 0x1a, 0xd2, 0xf9, 0x81, 0x0c, 0x45, 0xd8, - 0xe6, 0x3f, 0xf4, 0x01, 0x43, 0x62, 0x0e, 0xb7, 0x26, 0x40, 0x4c, 0x89, - 0x92, 0xb8, 0xf6, 0x41, 0x02, 0x36, 0x01, 0xc2, 0x06, 0xa5, 0xb3, 0x06, - 0x4b, 0x51, 0x9f, 0xc1, 0xf3, 0x01, 0xb2, 0x06, 0x45, 0xf5, 0xe7, 0x30, - 0xf3, 0x41, 0x05, 0x60, 0xe6, 0x0f, 0xb2, 0x01, 0xff, 0x43, 0xee, 0x9b, - 0x52, 0xf3, 0x01, 0x49, 0xfe, 0xbe, 0x38, 0xf3, 0x41, 0x07, 0xc1, 0x05, - 0x89, 0x03, 0x0d, 0x4b, 0x08, 0x01, 0xff, 0xe1, 0x70, 0xab, 0x00, 0xa4, - 0xdf, 0x02, 0xe5, 0x71, 0xab, 0x00, 0xa7, 0xc0, 0x02, 0xa8, 0x9f, 0x02, - 0xe9, 0x72, 0xab, 0x00, 0x42, 0x1b, 0x02, 0x77, 0xab, 0x00, 0xac, 0xfa, - 0x01, 0xad, 0xdf, 0x01, 0xae, 0xbf, 0x01, 0xef, 0x73, 0xab, 0x00, 0x02, - 0x7c, 0x00, 0x9e, 0x01, 0xf3, 0x9d, 0xab, 0x80, 0x80, 0x01, 0xb4, 0x3d, - 0xf5, 0x74, 0xab, 0x00, 0xf6, 0x75, 0xab, 0x00, 0xb7, 0x1b, 0xb9, 0x01, - 0xff, 0xe1, 0xbf, 0xab, 0x00, 0xe5, 0xf8, 0x13, 0x00, 0xe9, 0xf9, 0x13, - 0x00, 0xef, 0xfa, 0x13, 0x00, 0xf5, 0xfb, 0x13, 0x00, 0xf6, 0xfc, 0x13, - 0x40, 0xe1, 0xb9, 0xab, 0x00, 0xe5, 0xba, 0xab, 0x00, 0xe9, 0xbb, 0xab, - 0x00, 0xef, 0xbc, 0xab, 0x00, 0xf5, 0xbd, 0xab, 0x00, 0xf6, 0xbe, 0xab, - 0x40, 0xe1, 0xa4, 0xab, 0x00, 0xe5, 0xa6, 0xab, 0x00, 0xe9, 0xa8, 0xab, - 0x00, 0xac, 0x1b, 0xb3, 0x01, 0xff, 0xe1, 0xb3, 0xab, 0x00, 0xe5, 0xb4, - 0xab, 0x00, 0xe9, 0xb5, 0xab, 0x00, 0xef, 0xb6, 0xab, 0x00, 0xf5, 0xb7, - 0xab, 0x00, 0xf6, 0xb8, 0xab, 0x40, 0xe1, 0xad, 0xab, 0x00, 0xe5, 0xae, - 0xab, 0x00, 0xe9, 0xaf, 0xab, 0x00, 0xef, 0xb0, 0xab, 0x00, 0xf5, 0xb1, - 0xab, 0x00, 0xf6, 0xb2, 0xab, 0x40, 0xe1, 0x9c, 0xab, 0x00, 0xe5, 0x9e, - 0xab, 0x00, 0xe9, 0x9f, 0xab, 0x00, 0xef, 0xa0, 0xab, 0x00, 0xf5, 0xa1, - 0xab, 0x00, 0xf6, 0xa2, 0xab, 0x40, 0xe1, 0x96, 0xab, 0x00, 0xe5, 0x97, - 0xab, 0x00, 0xe9, 0x98, 0xab, 0x00, 0xef, 0x99, 0xab, 0x00, 0xf5, 0x9a, - 0xab, 0x00, 0xf6, 0x9b, 0xab, 0x40, 0xe1, 0x8e, 0xab, 0x80, 0x14, 0xe5, - 0x91, 0xab, 0x00, 0xe9, 0x92, 0xab, 0x00, 0xef, 0x93, 0xab, 0x00, 0xf5, - 0x94, 0xab, 0x00, 0xf6, 0x95, 0xab, 0x40, 0xe8, 0x90, 0xab, 0x40, 0xe1, - 0x89, 0xab, 0x00, 0xe5, 0x8a, 0xab, 0x00, 0xe9, 0x8b, 0xab, 0x00, 0xef, - 0x8c, 0xab, 0x00, 0xf5, 0x8d, 0xab, 0x00, 0xf6, 0xfd, 0x13, 0x40, 0xe1, - 0x83, 0xab, 0x00, 0xe5, 0x84, 0xab, 0x00, 0xe9, 0x85, 0xab, 0x00, 0xef, - 0x86, 0xab, 0x00, 0xf5, 0x87, 0xab, 0x00, 0xf6, 0x88, 0xab, 0x40, 0xe1, - 0x7d, 0xab, 0x00, 0xe5, 0x7e, 0xab, 0x00, 0xe9, 0x7f, 0xab, 0x00, 0x42, - 0xff, 0x04, 0x8f, 0xab, 0x00, 0xef, 0x80, 0xab, 0x00, 0xf5, 0x81, 0xab, - 0x00, 0xf6, 0x82, 0xab, 0x40, 0xe1, 0x76, 0xab, 0x00, 0xe5, 0x78, 0xab, - 0x00, 0xe9, 0x79, 0xab, 0x00, 0xef, 0x7a, 0xab, 0x00, 0xf5, 0x7b, 0xab, - 0x00, 0xf6, 0x7c, 0xab, 0x40, 0xe1, 0xa3, 0xab, 0x00, 0xe5, 0xa5, 0xab, - 0x00, 0xe9, 0xa7, 0xab, 0x00, 0x42, 0x74, 0x00, 0xac, 0xab, 0x00, 0xef, - 0xa9, 0xab, 0x00, 0xf5, 0xaa, 0xab, 0x00, 0xf6, 0xab, 0xab, 0x40, 0xe1, - 0xa0, 0x13, 0x00, 0xa4, 0xdf, 0x02, 0xe5, 0xa1, 0x13, 0x00, 0xa7, 0xc0, - 0x02, 0xa8, 0x9f, 0x02, 0xe9, 0xa2, 0x13, 0x00, 0x42, 0x1b, 0x02, 0xa7, - 0x13, 0x00, 0xac, 0xfa, 0x01, 0xad, 0xdf, 0x01, 0xae, 0xbf, 0x01, 0xef, - 0xa3, 0x13, 0x00, 0x02, 0x7c, 0x00, 0x9e, 0x01, 0xf3, 0xcd, 0x13, 0x80, - 0x80, 0x01, 0xb4, 0x3d, 0xf5, 0xa4, 0x13, 0x00, 0xf6, 0xa5, 0x13, 0x00, - 0xb7, 0x1b, 0xb9, 0x01, 0xff, 0xe1, 0xef, 0x13, 0x00, 0xe5, 0xf0, 0x13, - 0x00, 0xe9, 0xf1, 0x13, 0x00, 0xef, 0xf2, 0x13, 0x00, 0xf5, 0xf3, 0x13, - 0x00, 0xf6, 0xf4, 0x13, 0x40, 0xe1, 0xe9, 0x13, 0x00, 0xe5, 0xea, 0x13, - 0x00, 0xe9, 0xeb, 0x13, 0x00, 0xef, 0xec, 0x13, 0x00, 0xf5, 0xed, 0x13, - 0x00, 0xf6, 0xee, 0x13, 0x40, 0xe1, 0xd4, 0x13, 0x00, 0xe5, 0xd6, 0x13, - 0x00, 0xe9, 0xd8, 0x13, 0x00, 0xac, 0x1b, 0xb3, 0x01, 0xff, 0xe1, 0xe3, - 0x13, 0x00, 0xe5, 0xe4, 0x13, 0x00, 0xe9, 0xe5, 0x13, 0x00, 0xef, 0xe6, - 0x13, 0x00, 0xf5, 0xe7, 0x13, 0x00, 0xf6, 0xe8, 0x13, 0x40, 0xe1, 0xdd, - 0x13, 0x00, 0xe5, 0xde, 0x13, 0x00, 0xe9, 0xdf, 0x13, 0x00, 0xef, 0xe0, - 0x13, 0x00, 0xf5, 0xe1, 0x13, 0x00, 0xf6, 0xe2, 0x13, 0x40, 0xe1, 0xcc, - 0x13, 0x00, 0xe5, 0xce, 0x13, 0x00, 0xe9, 0xcf, 0x13, 0x00, 0xef, 0xd0, - 0x13, 0x00, 0xf5, 0xd1, 0x13, 0x00, 0xf6, 0xd2, 0x13, 0x40, 0xe1, 0xc6, - 0x13, 0x00, 0xe5, 0xc7, 0x13, 0x00, 0xe9, 0xc8, 0x13, 0x00, 0xef, 0xc9, - 0x13, 0x00, 0xf5, 0xca, 0x13, 0x00, 0xf6, 0xcb, 0x13, 0x40, 0xe1, 0xbe, - 0x13, 0x80, 0x14, 0xe5, 0xc1, 0x13, 0x00, 0xe9, 0xc2, 0x13, 0x00, 0xef, - 0xc3, 0x13, 0x00, 0xf5, 0xc4, 0x13, 0x00, 0xf6, 0xc5, 0x13, 0x40, 0xe8, - 0xc0, 0x13, 0x40, 0xe1, 0xb9, 0x13, 0x00, 0xe5, 0xba, 0x13, 0x00, 0xe9, - 0xbb, 0x13, 0x00, 0xef, 0xbc, 0x13, 0x00, 0xf5, 0xbd, 0x13, 0x00, 0xf6, - 0xf5, 0x13, 0x40, 0xe1, 0xb3, 0x13, 0x00, 0xe5, 0xb4, 0x13, 0x00, 0xe9, - 0xb5, 0x13, 0x00, 0xef, 0xb6, 0x13, 0x00, 0xf5, 0xb7, 0x13, 0x00, 0xf6, - 0xb8, 0x13, 0x40, 0xe1, 0xad, 0x13, 0x00, 0xe5, 0xae, 0x13, 0x00, 0xe9, - 0xaf, 0x13, 0x00, 0x42, 0xff, 0x04, 0xbf, 0x13, 0x00, 0xef, 0xb0, 0x13, - 0x00, 0xf5, 0xb1, 0x13, 0x00, 0xf6, 0xb2, 0x13, 0x40, 0xe1, 0xa6, 0x13, - 0x00, 0xe5, 0xa8, 0x13, 0x00, 0xe9, 0xa9, 0x13, 0x00, 0xef, 0xaa, 0x13, - 0x00, 0xf5, 0xab, 0x13, 0x00, 0xf6, 0xac, 0x13, 0x40, 0xe1, 0xd3, 0x13, - 0x00, 0xe5, 0xd5, 0x13, 0x00, 0xe9, 0xd7, 0x13, 0x00, 0x42, 0x74, 0x00, - 0xdc, 0x13, 0x00, 0xef, 0xd9, 0x13, 0x00, 0xf5, 0xda, 0x13, 0x00, 0xf6, - 0xdb, 0x13, 0x40, 0x4e, 0x66, 0x7a, 0xe3, 0xf4, 0x01, 0x48, 0x0a, 0xc8, - 0xc0, 0xf9, 0x41, 0x45, 0xb8, 0x00, 0x13, 0x27, 0x00, 0x48, 0x23, 0x14, - 0x7e, 0xf6, 0xc1, 0x00, 0x45, 0x07, 0x0b, 0x95, 0xfb, 0x41, 0xa9, 0x8d, - 0x08, 0x04, 0xa2, 0xed, 0xb5, 0x04, 0x02, 0x1e, 0x04, 0x3b, 0xb2, 0x01, - 0xff, 0x07, 0xbf, 0xcb, 0x18, 0x07, 0x45, 0x0d, 0x01, 0xff, 0x4f, 0xc3, - 0x6a, 0xc9, 0xf4, 0x01, 0x4d, 0xfd, 0x87, 0xc8, 0xf4, 0xc1, 0x00, 0x4d, - 0xbb, 0x7d, 0xb9, 0xf4, 0x41, 0x49, 0x14, 0x3b, 0x09, 0x00, 0x80, 0x06, - 0x42, 0xc9, 0x02, 0x40, 0x20, 0x40, 0x80, 0x01, 0xff, 0x43, 0x4d, 0x12, - 0x88, 0x00, 0x00, 0x52, 0x5e, 0x55, 0x89, 0x00, 0x40, 0x0f, 0x6d, 0x32, - 0xc7, 0x03, 0x06, 0xc4, 0x06, 0x80, 0x03, 0x07, 0xc1, 0x05, 0x52, 0x0c, - 0x01, 0x16, 0x34, 0x0b, 0xd1, 0x75, 0x01, 0xff, 0xa1, 0x21, 0x42, 0xc3, - 0x0a, 0x2c, 0xaa, 0x00, 0xe9, 0x2a, 0xaa, 0x80, 0x12, 0xef, 0x2f, 0xaa, - 0x80, 0x09, 0xf5, 0x2d, 0xaa, 0xc0, 0x00, 0xe5, 0x32, 0xaa, 0x40, 0xe5, - 0x2e, 0xaa, 0x40, 0xe9, 0x2b, 0xaa, 0x40, 0xe1, 0x29, 0xaa, 0x00, 0xe9, - 0x30, 0xaa, 0x00, 0xf5, 0x31, 0xaa, 0x40, 0xa4, 0x0c, 0x46, 0xa6, 0x83, - 0x5c, 0xaa, 0x00, 0x4c, 0x2d, 0x94, 0x5f, 0xaa, 0x40, 0x44, 0xd1, 0x1f, - 0x5d, 0xaa, 0x00, 0x4b, 0xd8, 0x9e, 0x5e, 0xaa, 0x40, 0xe1, 0x00, 0xaa, - 0x80, 0xa0, 0x02, 0xa2, 0x8d, 0x02, 0x02, 0x1e, 0x14, 0xfe, 0x01, 0xa4, - 0xeb, 0x01, 0xe5, 0x03, 0xaa, 0x00, 0x06, 0x3d, 0x2c, 0xb1, 0x01, 0xa7, - 0xa4, 0x01, 0x42, 0x22, 0x00, 0x28, 0xaa, 0x00, 0xe9, 0x01, 0xaa, 0x00, - 0xaa, 0x8d, 0x01, 0xab, 0x80, 0x01, 0x42, 0x74, 0x00, 0x24, 0xaa, 0x00, - 0xad, 0x6e, 0xae, 0x44, 0xef, 0x05, 0xaa, 0x00, 0xb0, 0x2e, 0x42, 0x71, - 0x00, 0x23, 0xaa, 0x00, 0xb3, 0x1c, 0xb4, 0x10, 0xf5, 0x02, 0xaa, 0x00, - 0x42, 0xa6, 0x0a, 0x25, 0xaa, 0x00, 0x42, 0x34, 0x22, 0x22, 0xaa, 0x40, - 0xe1, 0x13, 0xaa, 0x00, 0x42, 0x22, 0x00, 0x14, 0xaa, 0x40, 0xe1, 0x27, - 0xaa, 0x00, 0x42, 0x15, 0x06, 0x26, 0xaa, 0x40, 0xe1, 0x1a, 0xaa, 0x00, - 0x42, 0x22, 0x00, 0x1c, 0xaa, 0x00, 0x42, 0x6c, 0x09, 0x1b, 0xaa, 0x40, - 0xe1, 0x18, 0xaa, 0x00, 0xa7, 0x18, 0xa8, 0x06, 0x42, 0x87, 0x13, 0x17, - 0xaa, 0x40, 0xe1, 0x11, 0xaa, 0x00, 0x42, 0xbd, 0x26, 0x12, 0xaa, 0x00, - 0x42, 0x87, 0x13, 0x10, 0xaa, 0x40, 0xe1, 0x0b, 0xaa, 0x00, 0x42, 0x87, - 0x13, 0x0a, 0xaa, 0x40, 0xe1, 0x20, 0xaa, 0x00, 0x42, 0x87, 0x13, 0x1f, - 0xaa, 0x40, 0xe1, 0x06, 0xaa, 0x00, 0x42, 0x22, 0x00, 0x07, 0xaa, 0x40, - 0xe1, 0x0e, 0xaa, 0x00, 0x42, 0x22, 0x00, 0x0f, 0xaa, 0x40, 0xe1, 0x08, - 0xaa, 0x00, 0x42, 0x22, 0x00, 0x09, 0xaa, 0x40, 0x42, 0x1e, 0x14, 0x44, - 0xaa, 0x00, 0xe7, 0x41, 0xaa, 0x00, 0xeb, 0x40, 0xaa, 0x00, 0xec, 0x4a, - 0xaa, 0x00, 0xee, 0x46, 0xaa, 0x80, 0x16, 0xf0, 0x47, 0xaa, 0x00, 0xf2, - 0x49, 0xaa, 0x00, 0x42, 0xee, 0x00, 0x4b, 0xaa, 0x00, 0xf4, 0x45, 0xaa, - 0x00, 0xf9, 0x48, 0xaa, 0x40, 0xe7, 0x42, 0xaa, 0x40, 0xe1, 0x15, 0xaa, - 0x00, 0x42, 0xa1, 0x10, 0x19, 0xaa, 0x00, 0x42, 0x22, 0x00, 0x16, 0xaa, - 0x40, 0xe1, 0x0c, 0xaa, 0x00, 0x42, 0x22, 0x00, 0x0d, 0xaa, 0x40, 0xe1, - 0x1d, 0xaa, 0x00, 0x42, 0x16, 0x00, 0x21, 0xaa, 0x00, 0x42, 0x22, 0x00, - 0x1e, 0xaa, 0x40, 0xe9, 0x04, 0xaa, 0x40, 0x45, 0xc3, 0x0a, 0x58, 0xaa, - 0x00, 0xa6, 0x2e, 0x44, 0x46, 0x2a, 0x59, 0xaa, 0x00, 0x43, 0xbf, 0x0a, - 0x51, 0xaa, 0x00, 0xb3, 0x14, 0xb4, 0x06, 0x44, 0xa1, 0x1d, 0x50, 0xaa, - 0x40, 0x44, 0x25, 0x01, 0x53, 0xaa, 0x00, 0x42, 0x15, 0x02, 0x52, 0xaa, - 0x40, 0x44, 0x27, 0x1d, 0x57, 0xaa, 0x00, 0x42, 0x60, 0x25, 0x56, 0xaa, - 0x40, 0x43, 0xa7, 0x05, 0x55, 0xaa, 0x00, 0x43, 0xcb, 0x06, 0x54, 0xaa, - 0x40, 0x06, 0x3d, 0x2c, 0x18, 0x42, 0x74, 0x00, 0x35, 0xaa, 0x00, 0x42, - 0x71, 0x00, 0x34, 0xaa, 0x00, 0x42, 0xa9, 0x01, 0x36, 0xaa, 0x00, 0x42, - 0x34, 0x22, 0x33, 0xaa, 0x40, 0xe8, 0x4d, 0xaa, 0x00, 0xed, 0x4c, 0xaa, - 0x00, 0x42, 0x1d, 0x01, 0x43, 0xaa, 0x40, 0x47, 0x6e, 0xcc, 0x32, 0x11, - 0x01, 0xa4, 0xf8, 0x02, 0x07, 0xc1, 0x05, 0x74, 0x47, 0x3b, 0xd0, 0x34, - 0x11, 0x01, 0x46, 0x1c, 0xc9, 0x31, 0x11, 0x01, 0x4d, 0xd6, 0x33, 0x43, - 0x11, 0x01, 0xb3, 0x43, 0xb6, 0x01, 0xff, 0x45, 0x5c, 0x23, 0x33, 0x11, - 0x01, 0x0a, 0xd2, 0x75, 0x01, 0xff, 0xe1, 0x27, 0x11, 0x81, 0x24, 0xe5, - 0x2c, 0x11, 0x81, 0x1b, 0xe9, 0x28, 0x11, 0x81, 0x12, 0xef, 0x2e, 0x11, - 0x81, 0x09, 0xf5, 0x2a, 0x11, 0xc1, 0x00, 0xf5, 0x2b, 0x11, 0x41, 0xe9, - 0x30, 0x11, 0x41, 0xe9, 0x29, 0x11, 0x41, 0xe9, 0x46, 0x11, 0x41, 0xe1, - 0x45, 0x11, 0x01, 0xe9, 0x2d, 0x11, 0x01, 0xf5, 0x2f, 0x11, 0x41, 0x4b, - 0x58, 0x26, 0x40, 0x11, 0x01, 0x04, 0x30, 0x03, 0x01, 0xff, 0x48, 0xd0, - 0x15, 0x01, 0x11, 0x01, 0x4b, 0x4f, 0x23, 0x00, 0x11, 0x01, 0x47, 0xa1, - 0x4a, 0x02, 0x11, 0x41, 0x42, 0x31, 0x12, 0x03, 0x11, 0x01, 0xa2, 0xeb, - 0x01, 0xa3, 0xdc, 0x01, 0xa4, 0xbf, 0x01, 0xe5, 0x06, 0x11, 0x01, 0xa7, - 0xac, 0x01, 0x43, 0x42, 0x40, 0x26, 0x11, 0x01, 0xe9, 0x04, 0x11, 0x01, - 0xaa, 0x93, 0x01, 0xab, 0x84, 0x01, 0xac, 0x76, 0x43, 0xd5, 0x56, 0x1f, - 0x11, 0x01, 0xae, 0x56, 0xb0, 0x48, 0x43, 0xcd, 0xa8, 0x22, 0x11, 0x01, - 0x43, 0xc4, 0xdc, 0x25, 0x11, 0x01, 0xb4, 0x1f, 0xf5, 0x05, 0x11, 0x01, - 0x43, 0xe5, 0xe8, 0x47, 0x11, 0x01, 0x43, 0xe7, 0x18, 0x24, 0x11, 0x01, - 0xb9, 0x01, 0xff, 0x42, 0x31, 0x12, 0x21, 0x11, 0x01, 0x43, 0x4e, 0xb7, - 0x20, 0x11, 0x41, 0x42, 0x31, 0x12, 0x16, 0x11, 0x01, 0x43, 0x42, 0x40, - 0x17, 0x11, 0x01, 0xb4, 0x01, 0xff, 0x42, 0x31, 0x12, 0x11, 0x11, 0x01, - 0x43, 0x42, 0x40, 0x12, 0x11, 0x41, 0x42, 0x31, 0x12, 0x1b, 0x11, 0x01, - 0x43, 0x42, 0x40, 0x1c, 0x11, 0x41, 0x42, 0x31, 0x12, 0x1a, 0x11, 0x01, - 0x43, 0x50, 0x56, 0x0b, 0x11, 0x01, 0x43, 0xe2, 0x51, 0x15, 0x11, 0x01, - 0x43, 0x4e, 0xb7, 0x10, 0x11, 0x41, 0x42, 0x31, 0x12, 0x23, 0x11, 0x01, - 0x43, 0x42, 0x40, 0x44, 0x11, 0x41, 0x42, 0x31, 0x12, 0x07, 0x11, 0x01, - 0x43, 0x42, 0x40, 0x08, 0x11, 0x41, 0x42, 0x31, 0x12, 0x0e, 0x11, 0x01, - 0x43, 0x42, 0x40, 0x0f, 0x11, 0x41, 0x42, 0x31, 0x12, 0x09, 0x11, 0x01, - 0x43, 0x42, 0x40, 0x0a, 0x11, 0x41, 0x42, 0x31, 0x12, 0x18, 0x11, 0x01, - 0xa4, 0x06, 0x43, 0x42, 0x40, 0x19, 0x11, 0x41, 0x42, 0x31, 0x12, 0x13, - 0x11, 0x01, 0x43, 0x42, 0x40, 0x14, 0x11, 0x41, 0x42, 0x31, 0x12, 0x0c, - 0x11, 0x01, 0x43, 0x42, 0x40, 0x0d, 0x11, 0x41, 0x42, 0x31, 0x12, 0x1d, - 0x11, 0x01, 0x43, 0x42, 0x40, 0x1e, 0x11, 0x41, 0x44, 0xd1, 0x1f, 0x41, - 0x11, 0x01, 0x05, 0xc5, 0x06, 0x06, 0x4b, 0xd8, 0x9e, 0x42, 0x11, 0x41, - 0x45, 0xc3, 0x0a, 0x3e, 0x11, 0x01, 0xa6, 0x2e, 0x44, 0x46, 0x2a, 0x3f, - 0x11, 0x01, 0x43, 0xbf, 0x0a, 0x37, 0x11, 0x01, 0xb3, 0x14, 0xb4, 0x06, - 0x44, 0xa1, 0x1d, 0x36, 0x11, 0x41, 0x44, 0x25, 0x01, 0x39, 0x11, 0x01, - 0x42, 0x15, 0x02, 0x38, 0x11, 0x41, 0x44, 0x27, 0x1d, 0x3d, 0x11, 0x01, - 0x42, 0x60, 0x25, 0x3c, 0x11, 0x41, 0x43, 0xa7, 0x05, 0x3b, 0x11, 0x01, - 0x43, 0xcb, 0x06, 0x3a, 0x11, 0x41, 0x42, 0x5f, 0x01, 0xd3, 0x26, 0x00, - 0xf2, 0x91, 0xfa, 0x41, 0x02, 0x00, 0x00, 0x32, 0x4a, 0x35, 0xab, 0x48, - 0xf5, 0x01, 0x02, 0x11, 0x00, 0x06, 0x43, 0x33, 0x23, 0xb3, 0x26, 0x40, - 0x45, 0x2e, 0x03, 0xa2, 0x00, 0x00, 0x02, 0x88, 0x00, 0x01, 0xff, 0x4c, - 0x71, 0x89, 0x04, 0x21, 0x00, 0x05, 0xc2, 0x07, 0x01, 0xff, 0x48, 0xab, - 0x88, 0x4e, 0xfe, 0x00, 0x48, 0xb8, 0x88, 0x4a, 0xfe, 0x40, 0x45, 0x2e, - 0x03, 0xb5, 0x20, 0x00, 0x43, 0xdd, 0x0d, 0xb8, 0x00, 0x40, 0x44, 0xa6, - 0xd2, 0x35, 0xf3, 0x01, 0xa4, 0xfb, 0x22, 0xac, 0xec, 0x22, 0xad, 0xd6, - 0x22, 0xae, 0xf4, 0x05, 0xb0, 0xe5, 0x05, 0xb2, 0x9a, 0x03, 0x44, 0xbc, - 0x01, 0xeb, 0x26, 0x00, 0xf4, 0x08, 0xf4, 0x81, 0xf6, 0x02, 0xb5, 0x01, - 0xff, 0x10, 0xca, 0x5f, 0x06, 0x49, 0x95, 0x04, 0x21, 0x26, 0x40, 0x4d, - 0xf7, 0x7f, 0x6f, 0x05, 0x01, 0x07, 0xc1, 0x05, 0x01, 0xff, 0xa1, 0xcf, - 0x02, 0x43, 0x71, 0x09, 0x31, 0x05, 0x01, 0xa3, 0x98, 0x02, 0xa4, 0xfa, - 0x01, 0xa5, 0xed, 0x01, 0x43, 0xc8, 0xd8, 0x54, 0x05, 0x01, 0xa7, 0xd8, - 0x01, 0x44, 0xfa, 0xec, 0x46, 0x05, 0x01, 0xa9, 0xbd, 0x01, 0xaa, 0xae, - 0x01, 0xab, 0x9f, 0x01, 0xac, 0x90, 0x01, 0x43, 0x61, 0xe5, 0x4c, 0x05, - 0x01, 0x44, 0x46, 0xee, 0x4e, 0x05, 0x01, 0x42, 0x10, 0x00, 0x52, 0x05, - 0x01, 0xb0, 0x70, 0x02, 0xf4, 0x13, 0x64, 0x43, 0x3a, 0x0e, 0x59, 0x05, - 0x01, 0xb3, 0x44, 0xb4, 0x30, 0x44, 0xb2, 0xef, 0x5b, 0x05, 0x01, 0x44, - 0xe6, 0xef, 0x40, 0x05, 0x01, 0xb9, 0x16, 0xba, 0x01, 0xff, 0x43, 0x65, - 0x34, 0x35, 0x05, 0x01, 0xa8, 0x01, 0xff, 0xe1, 0x3b, 0x05, 0x01, 0x42, - 0x62, 0x01, 0x37, 0x05, 0x41, 0x43, 0xc3, 0x32, 0x61, 0x05, 0x01, 0x43, - 0x2d, 0x23, 0x3a, 0x05, 0x41, 0x42, 0xbb, 0x01, 0x38, 0x05, 0x01, 0x43, - 0x08, 0xf1, 0x5c, 0x05, 0x01, 0x43, 0xe8, 0x51, 0x53, 0x05, 0x41, 0x43, - 0xe1, 0xf0, 0x5a, 0x05, 0x01, 0xa8, 0x01, 0xff, 0xe1, 0x3d, 0x05, 0x81, - 0x06, 0x42, 0xdc, 0x67, 0x5d, 0x05, 0x41, 0xeb, 0x50, 0x05, 0x41, 0xf2, - 0x4d, 0x05, 0x01, 0xf9, 0x47, 0x05, 0x41, 0x42, 0x92, 0x01, 0x57, 0x05, - 0x01, 0x43, 0x08, 0xf1, 0x62, 0x05, 0x41, 0x42, 0x1a, 0x00, 0x3e, 0x05, - 0x01, 0x43, 0xa3, 0x51, 0x45, 0x05, 0x41, 0x42, 0x17, 0x00, 0x44, 0x05, - 0x01, 0x42, 0x4f, 0x3e, 0x63, 0x05, 0x41, 0x43, 0xee, 0x7e, 0x51, 0x05, - 0x01, 0x43, 0xff, 0xf0, 0x43, 0x05, 0x41, 0x43, 0xd6, 0x34, 0x3f, 0x05, - 0x01, 0x42, 0x74, 0x05, 0x3c, 0x05, 0x01, 0x42, 0xa7, 0x01, 0x5e, 0x05, - 0x41, 0x44, 0xf6, 0xec, 0x58, 0x05, 0x01, 0x42, 0x29, 0x02, 0x32, 0x05, - 0x41, 0xe2, 0x34, 0x05, 0x01, 0x42, 0x61, 0x1c, 0x36, 0x05, 0x41, 0x42, - 0x8a, 0x00, 0x33, 0x05, 0x01, 0x43, 0xe8, 0x34, 0x41, 0x05, 0x01, 0xba, - 0x01, 0xff, 0x42, 0x9e, 0x10, 0x55, 0x05, 0x01, 0x43, 0xe8, 0x51, 0x4f, - 0x05, 0x41, 0xa1, 0x22, 0xa8, 0x0d, 0x02, 0x34, 0x22, 0x01, 0xff, 0xf7, - 0x5f, 0x05, 0x01, 0xf9, 0x4b, 0x05, 0x41, 0xe1, 0x39, 0x05, 0x81, 0x0a, - 0xe9, 0x4a, 0x05, 0x01, 0x42, 0xdc, 0x67, 0x49, 0x05, 0x41, 0xf4, 0x56, - 0x05, 0x41, 0xf2, 0x42, 0x05, 0x01, 0x42, 0x61, 0x1c, 0x60, 0x05, 0x41, - 0x42, 0x8d, 0x04, 0x30, 0x05, 0x01, 0x42, 0x0c, 0x00, 0x48, 0x05, 0x41, - 0x45, 0xe0, 0x07, 0x31, 0xf4, 0xc1, 0x00, 0x06, 0x50, 0x00, 0x01, 0xff, - 0x4c, 0xd9, 0x93, 0x39, 0xf6, 0x01, 0x49, 0xe3, 0xbe, 0x3c, 0xf6, 0x41, - 0x48, 0x12, 0xc0, 0xd0, 0x26, 0x00, 0x02, 0x06, 0x00, 0xaa, 0x02, 0xa5, - 0x96, 0x02, 0x0b, 0x8e, 0x8b, 0x29, 0xaf, 0x1d, 0xb0, 0x0f, 0xb2, 0x01, - 0xff, 0x4b, 0x6c, 0x86, 0x0d, 0x00, 0x00, 0x42, 0xf0, 0x04, 0x55, 0xf9, - 0x41, 0x49, 0x8c, 0xb2, 0x8f, 0xf3, 0x01, 0x49, 0x22, 0xb6, 0x9a, 0xfa, - 0x41, 0xee, 0xc7, 0x02, 0x00, 0x4a, 0xcb, 0xb0, 0xa0, 0xf3, 0x41, 0xe1, - 0xa0, 0x02, 0x81, 0xdf, 0x01, 0xe2, 0xa9, 0x02, 0x01, 0x02, 0xbc, 0x06, - 0xca, 0x01, 0xe4, 0xa2, 0x02, 0x81, 0xc0, 0x01, 0xe5, 0xba, 0x02, 0x81, - 0xb6, 0x01, 0xe7, 0xc0, 0x02, 0x81, 0xac, 0x01, 0xe9, 0xb9, 0x02, 0x81, - 0xa2, 0x01, 0xeb, 0xbc, 0x02, 0x81, 0x98, 0x01, 0xec, 0xa3, 0x02, 0x81, - 0x89, 0x01, 0xed, 0xaa, 0x02, 0x81, 0x73, 0xee, 0xb5, 0x02, 0x81, 0x62, - 0xef, 0xab, 0x02, 0x01, 0xf0, 0xb7, 0x02, 0x81, 0x55, 0xf1, 0xa8, 0x02, - 0x01, 0xf2, 0xa5, 0x02, 0x81, 0x48, 0xf3, 0xb0, 0x02, 0x81, 0x2d, 0xf4, - 0xad, 0x02, 0x81, 0x1f, 0xf5, 0xb2, 0x02, 0x81, 0x04, 0xf8, 0xb4, 0x02, - 0x41, 0xf5, 0xbf, 0x02, 0xc1, 0x00, 0xf5, 0xa4, 0x02, 0xc1, 0x00, 0xd2, - 0xc8, 0x02, 0x01, 0xd3, 0xd0, 0x02, 0x01, 0xf5, 0xbb, 0x02, 0x41, 0xf4, - 0xc7, 0x02, 0xc1, 0x00, 0xd2, 0xb6, 0x02, 0x41, 0xe8, 0xae, 0x02, 0x81, - 0x0d, 0xf3, 0xb8, 0x02, 0x01, 0xf4, 0xc2, 0x02, 0xc1, 0x00, 0xd2, 0xc3, - 0x02, 0x41, 0xd2, 0xaf, 0x02, 0x41, 0xf2, 0xc9, 0x02, 0x41, 0xd2, 0xa1, - 0x02, 0x41, 0xe4, 0xbe, 0x02, 0x01, 0xe7, 0xc4, 0x02, 0x01, 0xee, 0xb3, - 0x02, 0x41, 0xe2, 0xca, 0x02, 0xc1, 0x00, 0xd2, 0xcb, 0x02, 0x01, 0xd3, - 0xcc, 0x02, 0x01, 0xd4, 0xcd, 0x02, 0x41, 0xe4, 0xa6, 0x02, 0xc1, 0x00, - 0xd2, 0xce, 0x02, 0x41, 0xd2, 0xbd, 0x02, 0x41, 0xe9, 0xc5, 0x02, 0x41, - 0xd2, 0xc1, 0x02, 0x41, 0xd2, 0xcf, 0x02, 0x41, 0xd2, 0xac, 0x02, 0x41, - 0x42, 0x4e, 0xdf, 0xb1, 0x02, 0x01, 0x42, 0xac, 0xf1, 0xc6, 0x02, 0x41, - 0xd2, 0xa7, 0x02, 0x41, 0x43, 0xf3, 0x01, 0x05, 0x21, 0x00, 0xf4, 0x38, - 0x20, 0xc0, 0x00, 0x50, 0xaa, 0x5e, 0x41, 0x20, 0x40, 0x48, 0x92, 0xc3, - 0xc3, 0xf5, 0x01, 0x45, 0x40, 0x13, 0xc7, 0xf4, 0xc1, 0x00, 0x49, 0xf3, - 0xb1, 0xc2, 0xf5, 0x41, 0x46, 0x42, 0xda, 0x3f, 0x2e, 0x00, 0x46, 0x88, - 0xdc, 0x51, 0x26, 0x40, 0x10, 0x4a, 0x5f, 0x39, 0x02, 0x73, 0x02, 0x18, - 0xa4, 0x0c, 0x48, 0xfa, 0xc5, 0x6b, 0xf9, 0x01, 0x42, 0x17, 0x50, 0xf6, - 0xf6, 0x41, 0x42, 0x68, 0x00, 0x6f, 0xf5, 0x01, 0xf9, 0x6c, 0xf3, 0x41, - 0xec, 0x18, 0x00, 0x80, 0x04, 0xf2, 0x4b, 0x26, 0x40, 0x80, 0x06, 0x48, - 0xfa, 0xc4, 0xd9, 0xf5, 0x41, 0x49, 0xef, 0x1f, 0x94, 0x00, 0x00, 0x43, - 0x13, 0x1b, 0x7f, 0x00, 0x4e, 0xe1, 0x0a, 0x14, 0x80, 0xf0, 0x1b, 0xa2, - 0x89, 0x1b, 0xe3, 0xa1, 0x14, 0x80, 0xe0, 0x13, 0xe5, 0x01, 0x14, 0x80, - 0xd0, 0x13, 0xe6, 0x5d, 0x15, 0x80, 0xb1, 0x12, 0x4c, 0x2d, 0x28, 0x1e, - 0x14, 0x00, 0xa8, 0x9e, 0x12, 0xe9, 0x03, 0x14, 0x80, 0x90, 0x12, 0xeb, - 0x83, 0x14, 0x80, 0xba, 0x11, 0xec, 0xea, 0x14, 0x80, 0xca, 0x10, 0xed, - 0xbb, 0x14, 0x80, 0xe1, 0x0f, 0xee, 0xd0, 0x14, 0x80, 0xd6, 0x0c, 0xef, - 0x05, 0x14, 0x80, 0x89, 0x0c, 0xf0, 0x49, 0x14, 0x80, 0xb1, 0x0b, 0xf1, - 0x85, 0x15, 0x80, 0x87, 0x0b, 0xf2, 0x50, 0x15, 0x80, 0xa7, 0x0a, 0xf3, - 0x05, 0x15, 0x80, 0xf5, 0x07, 0xf4, 0x66, 0x14, 0x80, 0xe0, 0x05, 0xb7, - 0x9f, 0x01, 0xf9, 0x3e, 0x15, 0xc0, 0x00, 0x06, 0x1f, 0x9b, 0x4e, 0xe1, - 0x2d, 0x15, 0x80, 0x3c, 0xe5, 0x26, 0x15, 0x00, 0xe9, 0x28, 0x15, 0x80, - 0x2f, 0xef, 0x2a, 0x15, 0x80, 0x22, 0xb7, 0x01, 0xff, 0xe1, 0x39, 0x15, - 0x80, 0x16, 0xe5, 0x2f, 0x15, 0x00, 0xe9, 0x31, 0x15, 0x80, 0x09, 0xef, - 0x35, 0x15, 0xc0, 0x00, 0xef, 0x37, 0x15, 0x40, 0xe9, 0x33, 0x15, 0x40, - 0xe1, 0x3b, 0x15, 0x40, 0xef, 0x2b, 0x15, 0x00, 0xf9, 0xc3, 0x18, 0x40, - 0xe9, 0x29, 0x15, 0x40, 0xe1, 0x2e, 0x15, 0x80, 0x04, 0xf9, 0xc4, 0x18, - 0x40, 0xe9, 0x27, 0x15, 0x40, 0x43, 0xb3, 0xa1, 0x8f, 0x14, 0x00, 0x43, - 0x27, 0xe0, 0x71, 0x14, 0x00, 0x43, 0x49, 0x1c, 0xd9, 0x14, 0x00, 0x43, - 0x28, 0x1b, 0xa9, 0x14, 0x00, 0x43, 0x10, 0x16, 0xc6, 0x14, 0x00, 0x42, - 0x69, 0x05, 0x07, 0x14, 0x00, 0xb0, 0x16, 0x43, 0xe1, 0x20, 0xf3, 0x14, - 0x00, 0x43, 0x0e, 0x2f, 0x52, 0x14, 0x00, 0xf7, 0x1d, 0x14, 0x00, 0x43, - 0xb9, 0x52, 0x2c, 0x15, 0x40, 0x42, 0x69, 0x05, 0x35, 0x14, 0x00, 0x43, - 0xe7, 0x18, 0x48, 0x14, 0x40, 0xe1, 0x17, 0x14, 0x80, 0xb0, 0x04, 0xe5, - 0x0c, 0x14, 0x80, 0x59, 0xe9, 0x0e, 0x14, 0x80, 0x50, 0xef, 0x12, 0x14, - 0xc0, 0x00, 0xef, 0x14, 0x14, 0xc0, 0x00, 0x08, 0xb2, 0xc2, 0x01, 0xff, - 0x48, 0x9a, 0xc3, 0x7e, 0x16, 0x00, 0x42, 0x53, 0x00, 0x9f, 0x15, 0xc0, - 0x00, 0xe1, 0x9e, 0x15, 0x00, 0xe5, 0x9b, 0x15, 0x00, 0xe9, 0x9c, 0x15, - 0x00, 0xef, 0x9d, 0x15, 0x00, 0xb7, 0x01, 0xff, 0xe1, 0x7c, 0x16, 0x80, - 0x18, 0x42, 0x27, 0x01, 0x77, 0x16, 0x00, 0xe9, 0x78, 0x16, 0x80, 0x09, - 0xef, 0x7a, 0x16, 0xc0, 0x00, 0xef, 0x7b, 0x16, 0x40, 0xe9, 0x79, 0x16, - 0x40, 0xe1, 0x7d, 0x16, 0x40, 0xe9, 0x10, 0x14, 0x40, 0x02, 0x60, 0x01, - 0x01, 0xff, 0x06, 0x1f, 0x9b, 0x06, 0x45, 0x25, 0xc1, 0xdd, 0x18, 0x40, - 0x02, 0x3a, 0xec, 0x9f, 0x03, 0x44, 0x9e, 0xec, 0x5c, 0x15, 0x00, 0x02, - 0xed, 0x0a, 0xf5, 0x02, 0xec, 0xeb, 0x14, 0x80, 0xb7, 0x02, 0xed, 0xbc, - 0x14, 0x80, 0x8f, 0x02, 0x02, 0xa8, 0x01, 0xfd, 0x01, 0xf0, 0x4a, 0x14, - 0x80, 0xd5, 0x01, 0xf2, 0x51, 0x15, 0x80, 0xb9, 0x01, 0xb3, 0x72, 0xb4, - 0x48, 0xb7, 0x27, 0xf9, 0x40, 0x15, 0xc0, 0x00, 0xb7, 0x01, 0xff, 0xe1, - 0x3a, 0x15, 0x80, 0x16, 0xe5, 0x30, 0x15, 0x00, 0xe9, 0x32, 0x15, 0x80, - 0x09, 0xef, 0x36, 0x15, 0xc0, 0x00, 0xef, 0x38, 0x15, 0x40, 0xe9, 0x34, - 0x15, 0x40, 0xe1, 0x3c, 0x15, 0x40, 0xe1, 0x18, 0x14, 0x80, 0x16, 0xe5, - 0x0d, 0x14, 0x00, 0xe9, 0x0f, 0x14, 0x80, 0x09, 0xef, 0x13, 0x14, 0xc0, - 0x00, 0xef, 0x15, 0x14, 0x40, 0xe9, 0x11, 0x14, 0x40, 0xe1, 0x1a, 0x14, - 0x40, 0x44, 0x2a, 0xed, 0x69, 0x15, 0x00, 0xb7, 0x01, 0xff, 0xe1, 0x62, - 0x14, 0x80, 0x16, 0xe5, 0x58, 0x14, 0x00, 0xe9, 0x5a, 0x14, 0x80, 0x09, - 0xef, 0x5e, 0x14, 0xc0, 0x00, 0xef, 0x60, 0x14, 0x40, 0xe9, 0x5c, 0x14, - 0x40, 0xe1, 0x64, 0x14, 0x40, 0x02, 0x36, 0x1a, 0x22, 0xb7, 0x01, 0xff, - 0xe1, 0x01, 0x15, 0x80, 0x16, 0xe5, 0xf7, 0x14, 0x00, 0xe9, 0xf9, 0x14, - 0x80, 0x09, 0xef, 0xfd, 0x14, 0xc0, 0x00, 0xef, 0xff, 0x14, 0x40, 0xe9, - 0xfb, 0x14, 0x40, 0xe1, 0x03, 0x15, 0x40, 0xe1, 0x22, 0x15, 0x80, 0x16, - 0xe5, 0x18, 0x15, 0x00, 0xe9, 0x1a, 0x15, 0x80, 0x09, 0xef, 0x1e, 0x15, - 0xc0, 0x00, 0xef, 0x20, 0x15, 0x40, 0xe9, 0x1c, 0x15, 0x40, 0xe1, 0x24, - 0x15, 0x40, 0xe1, 0x8d, 0x15, 0x00, 0xe5, 0x8a, 0x15, 0x00, 0xe9, 0x8b, - 0x15, 0x00, 0xef, 0x8c, 0x15, 0x00, 0x43, 0xe7, 0x18, 0x4f, 0x15, 0x40, - 0xb7, 0x01, 0xff, 0xe1, 0x45, 0x14, 0x80, 0x16, 0xe5, 0x3b, 0x14, 0x00, - 0xe9, 0x3d, 0x14, 0x80, 0x09, 0xef, 0x41, 0x14, 0xc0, 0x00, 0xef, 0x43, - 0x14, 0x40, 0xe9, 0x3f, 0x14, 0x40, 0xe1, 0x47, 0x14, 0x40, 0xe1, 0xcc, - 0x14, 0x80, 0x04, 0xe5, 0xca, 0x14, 0x40, 0xe1, 0xce, 0x14, 0x40, 0xb7, - 0x01, 0xff, 0xe1, 0xb7, 0x14, 0x80, 0x16, 0xe5, 0xad, 0x14, 0x00, 0xe9, - 0xaf, 0x14, 0x80, 0x09, 0xef, 0xb3, 0x14, 0xc0, 0x00, 0xef, 0xb5, 0x14, - 0x40, 0xe9, 0xb1, 0x14, 0x40, 0xe1, 0xb9, 0x14, 0x40, 0xe1, 0x4d, 0x15, - 0x80, 0x2f, 0xe5, 0x44, 0x15, 0x00, 0xef, 0x4a, 0x15, 0x80, 0x22, 0xb7, - 0x01, 0xff, 0xe1, 0xe7, 0x14, 0x80, 0x16, 0xe5, 0xdd, 0x14, 0x00, 0xe9, - 0xdf, 0x14, 0x80, 0x09, 0xef, 0xe3, 0x14, 0xc0, 0x00, 0xef, 0xe5, 0x14, - 0x40, 0xe9, 0xe1, 0x14, 0x40, 0xe1, 0xe9, 0x14, 0x40, 0xef, 0xe1, 0x18, - 0x40, 0xe1, 0xe2, 0x18, 0x40, 0xe1, 0x7f, 0x14, 0x80, 0x16, 0xe5, 0x75, - 0x14, 0x00, 0xe9, 0x77, 0x14, 0x80, 0x09, 0xef, 0x7b, 0x14, 0xc0, 0x00, - 0xef, 0x7d, 0x14, 0x40, 0xe9, 0x79, 0x14, 0x40, 0xe1, 0x81, 0x14, 0x40, - 0xe1, 0x9d, 0x14, 0x80, 0x16, 0xe5, 0x93, 0x14, 0x00, 0xe9, 0x95, 0x14, - 0x80, 0x09, 0xef, 0x99, 0x14, 0xc0, 0x00, 0xef, 0x9b, 0x14, 0x40, 0xe9, - 0x97, 0x14, 0x40, 0xe1, 0x9f, 0x14, 0x40, 0xe1, 0x19, 0x14, 0x00, 0xf9, - 0xb3, 0x18, 0x40, 0xe1, 0x55, 0x14, 0x80, 0xfc, 0x01, 0xe5, 0x4c, 0x14, - 0x00, 0xe8, 0x6a, 0x15, 0x80, 0x9d, 0x01, 0xe9, 0x4e, 0x14, 0x80, 0x93, - 0x01, 0x02, 0xf1, 0x33, 0x74, 0xef, 0x50, 0x14, 0x80, 0x6b, 0xb4, 0x34, - 0xb7, 0x13, 0xb9, 0x01, 0xff, 0xe1, 0x73, 0x15, 0x00, 0xe5, 0x70, 0x15, - 0x00, 0xe9, 0x71, 0x15, 0x00, 0xef, 0x72, 0x15, 0x40, 0xe1, 0x61, 0x14, - 0x80, 0x16, 0xe5, 0x57, 0x14, 0x00, 0xe9, 0x59, 0x14, 0x80, 0x09, 0xef, - 0x5d, 0x14, 0xc0, 0x00, 0xef, 0x5f, 0x14, 0x40, 0xe9, 0x5b, 0x14, 0x40, - 0xe1, 0x63, 0x14, 0x40, 0xe1, 0x6a, 0x14, 0x00, 0xe5, 0x67, 0x14, 0x00, - 0xe8, 0x6f, 0x15, 0x80, 0x08, 0xe9, 0x68, 0x14, 0x00, 0xef, 0x69, 0x14, - 0x40, 0xe1, 0x6e, 0x15, 0x80, 0x17, 0xe5, 0x6b, 0x15, 0x00, 0xe9, 0x6c, - 0x15, 0x00, 0xef, 0x6d, 0x15, 0x80, 0x06, 0x42, 0x15, 0x01, 0xe5, 0x18, - 0x40, 0xef, 0xe6, 0x18, 0x40, 0xe1, 0xe7, 0x18, 0x40, 0xef, 0x51, 0x14, - 0x40, 0xe1, 0x89, 0x15, 0x00, 0xe5, 0x86, 0x15, 0x00, 0xe9, 0x87, 0x15, - 0x00, 0xef, 0x88, 0x15, 0x80, 0x06, 0x42, 0x15, 0x01, 0xe8, 0x18, 0x40, - 0xef, 0xe9, 0x18, 0x40, 0xe9, 0x4f, 0x14, 0x40, 0x48, 0x32, 0xc0, 0xae, - 0x15, 0x80, 0x2f, 0xe1, 0x66, 0x15, 0x80, 0x26, 0xe5, 0x5e, 0x15, 0x00, - 0xe9, 0x60, 0x15, 0x80, 0x19, 0xef, 0x64, 0x15, 0x80, 0x10, 0xb7, 0x01, - 0xff, 0xe1, 0xe4, 0x18, 0x80, 0x04, 0xe5, 0xe3, 0x18, 0x40, 0xe1, 0x68, - 0x15, 0x40, 0xef, 0x65, 0x15, 0x40, 0xe9, 0x62, 0x15, 0x40, 0xe1, 0x67, - 0x15, 0x40, 0xe1, 0xac, 0x15, 0x80, 0x16, 0xe5, 0xa7, 0x15, 0x00, 0xe9, - 0xa8, 0x15, 0x80, 0x09, 0xef, 0xaa, 0x15, 0xc0, 0x00, 0xef, 0xab, 0x15, - 0x40, 0xe9, 0xa9, 0x15, 0x40, 0xe1, 0xad, 0x15, 0x40, 0xe1, 0x56, 0x14, - 0x80, 0x04, 0xf9, 0xb7, 0x18, 0x40, 0xe9, 0x4d, 0x14, 0x40, 0xe1, 0xf4, - 0x14, 0x80, 0xbe, 0x01, 0xe5, 0xed, 0x14, 0x00, 0xe8, 0x25, 0x15, 0x80, - 0x68, 0xe9, 0xef, 0x14, 0x80, 0x5f, 0xef, 0xf1, 0x14, 0x80, 0x36, 0xb0, - 0x24, 0xf7, 0x07, 0x15, 0xc0, 0x00, 0xe1, 0x00, 0x15, 0x80, 0x16, 0xe5, - 0xf6, 0x14, 0x00, 0xe9, 0xf8, 0x14, 0x80, 0x09, 0xef, 0xfc, 0x14, 0xc0, - 0x00, 0xef, 0xfe, 0x14, 0x40, 0xe9, 0xfa, 0x14, 0x40, 0xe1, 0x02, 0x15, - 0x40, 0xe1, 0xbf, 0x1a, 0x01, 0xe5, 0xbc, 0x1a, 0x01, 0xe9, 0xbd, 0x1a, - 0x01, 0xef, 0xbe, 0x1a, 0x41, 0xef, 0xf2, 0x14, 0x00, 0x0c, 0xbd, 0x94, - 0x04, 0xf9, 0xbe, 0x18, 0x40, 0x42, 0xc9, 0x09, 0x88, 0x14, 0x00, 0x42, - 0x4e, 0x00, 0x85, 0x14, 0x00, 0x42, 0xec, 0x18, 0x86, 0x14, 0x00, 0x42, - 0x5c, 0x28, 0x87, 0x14, 0x40, 0xe9, 0xf0, 0x14, 0x40, 0xe1, 0x15, 0x15, - 0x80, 0x40, 0xe5, 0x10, 0x15, 0x00, 0xe9, 0x11, 0x15, 0x80, 0x33, 0xef, - 0x13, 0x15, 0x80, 0x26, 0xb7, 0x01, 0xff, 0xe1, 0x21, 0x15, 0x80, 0x1a, - 0xe5, 0x17, 0x15, 0x00, 0xe9, 0x19, 0x15, 0x80, 0x0d, 0xef, 0x1d, 0x15, - 0xc0, 0x00, 0xef, 0x1f, 0x15, 0x00, 0xf9, 0xc2, 0x18, 0x40, 0xe9, 0x1b, - 0x15, 0x40, 0xe1, 0x23, 0x15, 0x40, 0xef, 0x14, 0x15, 0x00, 0xf9, 0xc0, - 0x18, 0x40, 0xe9, 0x12, 0x15, 0x40, 0xe1, 0x16, 0x15, 0x00, 0xf9, 0xc1, - 0x18, 0x40, 0xe1, 0xf5, 0x14, 0x80, 0x5f, 0xf9, 0xbf, 0x18, 0xc0, 0x00, - 0x04, 0x6a, 0xed, 0x01, 0xff, 0xa8, 0x3e, 0xaa, 0x2f, 0xed, 0xbf, 0x14, - 0x00, 0x02, 0xa4, 0x02, 0x0c, 0x42, 0x53, 0x00, 0xa2, 0x14, 0x00, 0x42, - 0xf7, 0x19, 0x41, 0x15, 0x40, 0xe1, 0x9a, 0x15, 0x00, 0xe5, 0x97, 0x15, - 0x00, 0xe9, 0x98, 0x15, 0x00, 0xef, 0x99, 0x15, 0x80, 0x06, 0x42, 0x15, - 0x01, 0xea, 0x18, 0x40, 0xef, 0xeb, 0x18, 0x40, 0xe9, 0x1a, 0x16, 0x00, - 0xf5, 0x15, 0x16, 0xc0, 0x00, 0xf5, 0xf1, 0x18, 0x40, 0xe1, 0xc3, 0x15, - 0x00, 0xe5, 0xc0, 0x15, 0x00, 0xe9, 0xc1, 0x15, 0x00, 0xef, 0xc2, 0x15, - 0xc0, 0x00, 0xef, 0xec, 0x18, 0x40, 0xe9, 0xee, 0x14, 0x40, 0x07, 0xf4, - 0xca, 0x4c, 0xe1, 0x4b, 0x15, 0x80, 0x3a, 0xe5, 0x42, 0x15, 0x00, 0xe9, - 0x46, 0x15, 0x80, 0x2d, 0xef, 0x48, 0x15, 0x80, 0x24, 0xb7, 0x01, 0xff, - 0xe1, 0xd3, 0x18, 0x80, 0x18, 0x42, 0x27, 0x01, 0xce, 0x18, 0x00, 0xe9, - 0xcf, 0x18, 0x80, 0x09, 0xef, 0xd1, 0x18, 0xc0, 0x00, 0xef, 0xd2, 0x18, - 0x40, 0xe9, 0xd0, 0x18, 0x40, 0xe1, 0x4e, 0x15, 0x40, 0xef, 0x49, 0x15, - 0x40, 0xe9, 0x47, 0x15, 0x40, 0xe1, 0x4c, 0x15, 0x80, 0x04, 0xf9, 0xc5, - 0x18, 0x40, 0xe9, 0x45, 0x15, 0x40, 0xe5, 0x43, 0x15, 0x00, 0x42, 0x15, - 0x01, 0xe0, 0x18, 0x40, 0xe1, 0x83, 0x15, 0x80, 0x12, 0xe9, 0x7f, 0x15, - 0x80, 0x09, 0xef, 0x81, 0x15, 0xc0, 0x00, 0xef, 0x82, 0x15, 0x40, 0xe9, - 0x80, 0x15, 0x40, 0xe1, 0x84, 0x15, 0x80, 0x04, 0xe9, 0x6f, 0x16, 0x40, - 0xe9, 0x7e, 0x15, 0x40, 0xe1, 0x38, 0x14, 0x80, 0x40, 0xe5, 0x2f, 0x14, - 0x00, 0xe9, 0x31, 0x14, 0x80, 0x33, 0xef, 0x33, 0x14, 0x80, 0x26, 0xb7, - 0x01, 0xff, 0xe1, 0x44, 0x14, 0x80, 0x1a, 0xe5, 0x3a, 0x14, 0x00, 0xe9, - 0x3c, 0x14, 0x80, 0x0d, 0xef, 0x40, 0x14, 0xc0, 0x00, 0xef, 0x42, 0x14, - 0x00, 0xf9, 0xb6, 0x18, 0x40, 0xe9, 0x3e, 0x14, 0x40, 0xe1, 0x46, 0x14, - 0x40, 0xef, 0x34, 0x14, 0x00, 0xf9, 0xb4, 0x18, 0x40, 0xe9, 0x32, 0x14, - 0x40, 0xe1, 0x39, 0x14, 0x80, 0x04, 0xf9, 0xb5, 0x18, 0x40, 0xe9, 0x30, - 0x14, 0x40, 0x07, 0x70, 0xcf, 0x0c, 0xee, 0x2d, 0x14, 0x00, 0xef, 0x06, - 0x14, 0x00, 0xf9, 0xb0, 0x18, 0x40, 0xe3, 0xd7, 0x18, 0x00, 0xeb, 0xd6, - 0x18, 0x00, 0xed, 0xd8, 0x18, 0x00, 0xee, 0xd9, 0x18, 0x80, 0x11, 0xf0, - 0xd4, 0x18, 0x00, 0xf3, 0xda, 0x18, 0x80, 0x04, 0xf4, 0xd5, 0x18, 0x40, - 0xe8, 0xdb, 0x18, 0x40, 0xb7, 0x01, 0xff, 0xe9, 0xc7, 0x18, 0x80, 0x09, - 0xef, 0xcb, 0x18, 0xc0, 0x00, 0xef, 0xcd, 0x18, 0x40, 0xe9, 0xc9, 0x18, - 0x40, 0x08, 0x32, 0xc0, 0xf3, 0x02, 0xe1, 0xc7, 0x14, 0x80, 0xbd, 0x01, - 0xe5, 0xc0, 0x14, 0x00, 0xe7, 0x95, 0x15, 0x80, 0x8f, 0x01, 0xe8, 0xd2, - 0x14, 0x00, 0xe9, 0xc2, 0x14, 0x80, 0x81, 0x01, 0x42, 0x1d, 0x01, 0x96, - 0x15, 0x80, 0x5f, 0xef, 0xc4, 0x14, 0x80, 0x52, 0x04, 0x8a, 0xef, 0x22, - 0xb7, 0x01, 0xff, 0xe1, 0xcb, 0x14, 0x80, 0x16, 0xe5, 0xc9, 0x14, 0x00, - 0xe9, 0xc6, 0x18, 0x80, 0x09, 0xef, 0xca, 0x18, 0xc0, 0x00, 0xef, 0xcc, - 0x18, 0x40, 0xe9, 0xc8, 0x18, 0x40, 0xe1, 0xcd, 0x14, 0x40, 0x44, 0x46, - 0xed, 0x7b, 0x15, 0x80, 0x06, 0x44, 0xb5, 0x4f, 0x7c, 0x15, 0x40, 0xe1, - 0x79, 0x15, 0x80, 0x16, 0xe5, 0x74, 0x15, 0x00, 0xe9, 0x75, 0x15, 0x80, - 0x09, 0xef, 0x77, 0x15, 0xc0, 0x00, 0xef, 0x78, 0x15, 0x40, 0xe9, 0x76, - 0x15, 0x40, 0xe1, 0x7a, 0x15, 0x40, 0xef, 0xc5, 0x14, 0x00, 0xf9, 0xbb, - 0x18, 0x40, 0xe1, 0x75, 0x16, 0x80, 0x12, 0xe9, 0x71, 0x16, 0x80, 0x09, - 0xef, 0x73, 0x16, 0xc0, 0x00, 0xef, 0x74, 0x16, 0x40, 0xe9, 0x72, 0x16, - 0x40, 0xe1, 0x76, 0x16, 0x40, 0xe9, 0xc3, 0x14, 0x40, 0xe1, 0x93, 0x15, - 0x80, 0x12, 0xe9, 0x8f, 0x15, 0x80, 0x09, 0xef, 0x91, 0x15, 0xc0, 0x00, - 0xef, 0x92, 0x15, 0x40, 0xe9, 0x90, 0x15, 0x40, 0xe1, 0x94, 0x15, 0x80, - 0x04, 0xe9, 0x70, 0x16, 0x40, 0xe9, 0x8e, 0x15, 0x40, 0xe1, 0xc8, 0x14, - 0x80, 0xa6, 0x01, 0x06, 0xe2, 0xdc, 0x45, 0x07, 0xd0, 0xd3, 0x04, 0xf9, - 0xbc, 0x18, 0x40, 0xa8, 0x20, 0x03, 0x14, 0x5c, 0x01, 0xff, 0xe1, 0xba, - 0x1a, 0x81, 0x12, 0xe9, 0xb6, 0x1a, 0x81, 0x09, 0xef, 0xb8, 0x1a, 0xc1, - 0x00, 0xef, 0xb9, 0x1a, 0x41, 0xe9, 0xb7, 0x1a, 0x41, 0xe1, 0xbb, 0x1a, - 0x41, 0xe1, 0xb4, 0x1a, 0x81, 0x12, 0xe9, 0xb0, 0x1a, 0x81, 0x09, 0xef, - 0xb2, 0x1a, 0xc1, 0x00, 0xef, 0xb3, 0x1a, 0x41, 0xe9, 0xb1, 0x1a, 0x41, - 0xe1, 0xb5, 0x1a, 0x41, 0x44, 0x3a, 0xec, 0xa0, 0x14, 0x00, 0x44, 0xb6, - 0xed, 0x82, 0x14, 0x00, 0x44, 0x0e, 0xee, 0xba, 0x14, 0x00, 0x44, 0x6a, - 0xee, 0xcf, 0x14, 0x00, 0xb3, 0x1a, 0x44, 0x07, 0xe9, 0x65, 0x14, 0x00, - 0xb7, 0x06, 0x44, 0xfe, 0xef, 0x3d, 0x15, 0x40, 0x42, 0x31, 0x12, 0x1b, - 0x14, 0x00, 0x42, 0x69, 0x05, 0x16, 0x14, 0x40, 0x42, 0x61, 0x1f, 0x0b, - 0x15, 0x00, 0x43, 0x3a, 0xec, 0x0f, 0x15, 0x00, 0x42, 0xed, 0x0a, 0x0a, - 0x15, 0x80, 0x12, 0x43, 0x51, 0x02, 0x0c, 0x15, 0x00, 0x43, 0xed, 0x01, - 0x0d, 0x15, 0x00, 0x43, 0xe7, 0x18, 0x04, 0x15, 0x40, 0xe1, 0x0e, 0x15, - 0x40, 0xe9, 0xc1, 0x14, 0x40, 0xe5, 0x5f, 0x15, 0x00, 0xe9, 0x61, 0x15, - 0xc0, 0x00, 0xe9, 0x63, 0x15, 0x40, 0xe1, 0xaa, 0x14, 0x80, 0x51, 0xe5, - 0xa3, 0x14, 0x80, 0x3f, 0xe8, 0xbd, 0x14, 0x00, 0xe9, 0xa5, 0x14, 0x80, - 0x32, 0xef, 0xa7, 0x14, 0x80, 0x22, 0xb7, 0x01, 0xff, 0xe1, 0xb6, 0x14, - 0x80, 0x16, 0xe5, 0xac, 0x14, 0x00, 0xe9, 0xae, 0x14, 0x80, 0x09, 0xef, - 0xb2, 0x14, 0xc0, 0x00, 0xef, 0xb4, 0x14, 0x40, 0xe9, 0xb0, 0x14, 0x40, - 0xe1, 0xb8, 0x14, 0x40, 0xef, 0xa8, 0x14, 0xc0, 0x00, 0x4a, 0x87, 0xae, - 0x09, 0x15, 0x40, 0xe9, 0xa6, 0x14, 0x40, 0x05, 0x7e, 0x32, 0x01, 0xff, - 0xec, 0xec, 0x14, 0x00, 0xf2, 0x52, 0x15, 0x40, 0xe1, 0xab, 0x14, 0x80, - 0x04, 0xf9, 0xba, 0x18, 0x40, 0xe9, 0xa4, 0x14, 0x40, 0xe1, 0xda, 0x14, - 0x80, 0x58, 0xe5, 0xd3, 0x14, 0x00, 0xe8, 0xa6, 0x15, 0x80, 0x34, 0xe9, - 0xd5, 0x14, 0x80, 0x2b, 0xef, 0xd7, 0x14, 0x80, 0x22, 0xb7, 0x01, 0xff, - 0xe1, 0xe6, 0x14, 0x80, 0x16, 0xe5, 0xdc, 0x14, 0x00, 0xe9, 0xde, 0x14, - 0x80, 0x09, 0xef, 0xe2, 0x14, 0xc0, 0x00, 0xef, 0xe4, 0x14, 0x40, 0xe9, - 0xe0, 0x14, 0x40, 0xe1, 0xe8, 0x14, 0x40, 0xef, 0xd8, 0x14, 0x40, 0xe9, - 0xd6, 0x14, 0x40, 0xe1, 0xa4, 0x15, 0x80, 0x12, 0xe9, 0xa0, 0x15, 0x80, - 0x09, 0xef, 0xa2, 0x15, 0xc0, 0x00, 0xef, 0xa3, 0x15, 0x40, 0xe9, 0xa1, - 0x15, 0x40, 0xe1, 0xa5, 0x15, 0x40, 0xe1, 0xdb, 0x14, 0x80, 0x04, 0xf9, - 0xbd, 0x18, 0x40, 0xe9, 0xd4, 0x14, 0x40, 0xe1, 0x72, 0x14, 0x80, 0x3e, - 0xe5, 0x6b, 0x14, 0x00, 0xe9, 0x6d, 0x14, 0x80, 0x31, 0xef, 0x6f, 0x14, - 0x80, 0x28, 0xf7, 0x84, 0x14, 0xc0, 0x00, 0xe1, 0x7e, 0x14, 0x80, 0x16, - 0xe5, 0x74, 0x14, 0x00, 0xe9, 0x76, 0x14, 0x80, 0x09, 0xef, 0x7a, 0x14, - 0xc0, 0x00, 0xef, 0x7c, 0x14, 0x40, 0xe9, 0x78, 0x14, 0x40, 0xe1, 0x80, - 0x14, 0x00, 0xf9, 0xb9, 0x18, 0x40, 0xef, 0x70, 0x14, 0x40, 0xe9, 0x6e, - 0x14, 0x40, 0xe1, 0x73, 0x14, 0x80, 0x04, 0xf9, 0xb8, 0x18, 0x40, 0xe9, - 0x6c, 0x14, 0x40, 0xe9, 0x04, 0x14, 0x00, 0xee, 0x2c, 0x14, 0x40, 0xeb, - 0x7d, 0x15, 0x00, 0x45, 0x1b, 0x62, 0x00, 0x14, 0x40, 0xe1, 0x59, 0x15, - 0x80, 0x8a, 0x01, 0xe5, 0x53, 0x15, 0x00, 0xe9, 0x55, 0x15, 0x80, 0x15, - 0xef, 0x57, 0x15, 0x80, 0x0c, 0x48, 0x16, 0x16, 0x6e, 0x16, 0x00, 0x43, - 0xe7, 0x18, 0x5b, 0x15, 0x40, 0xef, 0x58, 0x15, 0x40, 0xe9, 0x56, 0x15, - 0x00, 0x04, 0x3b, 0x06, 0x01, 0xff, 0x45, 0x29, 0x38, 0x1f, 0x14, 0x00, - 0x50, 0xaa, 0x5f, 0x21, 0x14, 0x00, 0x02, 0x3b, 0x01, 0x3d, 0x45, 0x8d, - 0x22, 0x20, 0x14, 0x00, 0x4a, 0xb1, 0x44, 0x27, 0x14, 0x00, 0x44, 0xb7, - 0x27, 0x29, 0x14, 0x00, 0xb2, 0x14, 0xb3, 0x06, 0x4d, 0x88, 0x87, 0x22, - 0x14, 0x40, 0x56, 0x75, 0x33, 0x28, 0x14, 0x00, 0x49, 0x79, 0xb9, 0xde, - 0x18, 0x40, 0x49, 0x76, 0xb3, 0xdf, 0x18, 0x00, 0xa9, 0x01, 0xff, 0x4d, - 0xec, 0x70, 0x23, 0x14, 0x00, 0x42, 0x1d, 0x01, 0x24, 0x14, 0x40, 0x05, - 0x3d, 0x01, 0x06, 0x47, 0x22, 0x38, 0x2a, 0x14, 0x40, 0x45, 0x29, 0x38, - 0x25, 0x14, 0x00, 0x56, 0x77, 0x36, 0x26, 0x14, 0x40, 0xe1, 0x5a, 0x15, - 0xc0, 0x00, 0xe9, 0x54, 0x15, 0x40, 0x48, 0x22, 0xc1, 0xdc, 0x18, 0x00, - 0xee, 0x2b, 0x14, 0x40, 0xe1, 0x90, 0x14, 0x80, 0x3e, 0xe5, 0x89, 0x14, - 0x00, 0x47, 0xba, 0xce, 0x6d, 0x16, 0x00, 0xe9, 0x8b, 0x14, 0x80, 0x2b, - 0xef, 0x8d, 0x14, 0x80, 0x22, 0xb7, 0x01, 0xff, 0xe1, 0x9c, 0x14, 0x80, - 0x16, 0xe5, 0x92, 0x14, 0x00, 0xe9, 0x94, 0x14, 0x80, 0x09, 0xef, 0x98, - 0x14, 0xc0, 0x00, 0xef, 0x9a, 0x14, 0x40, 0xe9, 0x96, 0x14, 0x40, 0xe1, - 0x9e, 0x14, 0x40, 0xef, 0x8e, 0x14, 0x40, 0xe9, 0x8c, 0x14, 0x40, 0xe1, - 0x91, 0x14, 0x80, 0xd6, 0x06, 0x06, 0x9b, 0x68, 0x01, 0xff, 0x02, 0x1e, - 0x14, 0xb3, 0x06, 0xa4, 0xe0, 0x05, 0x42, 0x27, 0x01, 0x08, 0x14, 0x00, - 0xa7, 0x93, 0x05, 0xe8, 0x4b, 0x14, 0x80, 0xe7, 0x04, 0xe9, 0x09, 0x14, - 0x80, 0xdb, 0x04, 0xaa, 0x9e, 0x04, 0xab, 0xe2, 0x03, 0xac, 0xab, 0x03, - 0xad, 0x8f, 0x03, 0xae, 0xef, 0x02, 0xf0, 0xee, 0x15, 0x80, 0xd0, 0x02, - 0xb2, 0xb4, 0x02, 0xb3, 0xfa, 0x01, 0xb4, 0x54, 0xb7, 0x39, 0xb9, 0x1e, - 0xfa, 0x46, 0x16, 0xc0, 0x00, 0xe1, 0x45, 0x16, 0x00, 0xe5, 0x42, 0x16, - 0x80, 0x0c, 0xe9, 0x44, 0x16, 0x00, 0xef, 0x41, 0x16, 0x00, 0xf5, 0x40, - 0x16, 0x40, 0xe5, 0x43, 0x16, 0x40, 0xe1, 0x13, 0x16, 0x00, 0xe5, 0x10, - 0x16, 0x80, 0x0c, 0xe9, 0x12, 0x16, 0x00, 0xef, 0x0f, 0x16, 0x00, 0xf5, - 0x0e, 0x16, 0x40, 0xe5, 0x11, 0x16, 0x40, 0xe1, 0xd5, 0x15, 0x00, 0xe5, - 0xd2, 0x15, 0x80, 0x0c, 0xe9, 0xd4, 0x15, 0x00, 0xef, 0xd1, 0x15, 0x00, - 0xf5, 0xd0, 0x15, 0x40, 0xe5, 0xd3, 0x15, 0x40, 0xa8, 0x88, 0x01, 0xac, - 0x52, 0xb3, 0x37, 0xb4, 0x01, 0xff, 0xe1, 0xe7, 0x15, 0x00, 0xe5, 0xe4, - 0x15, 0x80, 0x27, 0xe9, 0xe6, 0x15, 0x00, 0xef, 0xe3, 0x15, 0x00, 0xb3, - 0x04, 0xf5, 0xe2, 0x15, 0x40, 0xe1, 0x6c, 0x16, 0x00, 0xe5, 0x69, 0x16, - 0x80, 0x0c, 0xe9, 0x6b, 0x16, 0x00, 0xef, 0x68, 0x16, 0x00, 0xf5, 0x67, - 0x16, 0x40, 0xe5, 0x6a, 0x16, 0x40, 0xe5, 0xe5, 0x15, 0x40, 0xe1, 0x60, - 0x16, 0x00, 0xe5, 0x5d, 0x16, 0x80, 0x0c, 0xe9, 0x5f, 0x16, 0x00, 0xef, - 0x5c, 0x16, 0x00, 0xf5, 0x5b, 0x16, 0x40, 0xe5, 0x5e, 0x16, 0x40, 0xe1, - 0x3f, 0x16, 0x00, 0xe5, 0x3c, 0x16, 0x80, 0x27, 0xa8, 0x0c, 0xe9, 0x3e, - 0x16, 0x00, 0xef, 0x3b, 0x16, 0x00, 0xf5, 0x3a, 0x16, 0x40, 0xe1, 0x39, - 0x16, 0x00, 0xe5, 0x36, 0x16, 0x80, 0x0c, 0xe9, 0x38, 0x16, 0x00, 0xef, - 0x35, 0x16, 0x00, 0xf5, 0x34, 0x16, 0x40, 0xe5, 0x37, 0x16, 0x40, 0xe5, - 0x3d, 0x16, 0x40, 0xe1, 0xe1, 0x15, 0x00, 0xe5, 0xde, 0x15, 0x80, 0x0c, - 0xe9, 0xe0, 0x15, 0x00, 0xef, 0xdd, 0x15, 0x00, 0xf5, 0xdc, 0x15, 0x40, - 0xe5, 0xdf, 0x15, 0x40, 0xe1, 0x53, 0x16, 0x00, 0xe5, 0x50, 0x16, 0x80, - 0x2a, 0xe8, 0x5a, 0x16, 0x80, 0x0c, 0xe9, 0x52, 0x16, 0x00, 0xef, 0x4f, - 0x16, 0x00, 0xf5, 0x4e, 0x16, 0x40, 0xe1, 0x59, 0x16, 0x00, 0xe5, 0x56, - 0x16, 0x80, 0x0c, 0xe9, 0x58, 0x16, 0x00, 0xef, 0x55, 0x16, 0x00, 0xf5, - 0x54, 0x16, 0x40, 0xe5, 0x57, 0x16, 0x40, 0xe5, 0x51, 0x16, 0x40, 0xe1, - 0xcf, 0x15, 0x00, 0xe5, 0xcc, 0x15, 0x80, 0x0c, 0xe9, 0xce, 0x15, 0x00, - 0xef, 0xcb, 0x15, 0x00, 0xf5, 0xca, 0x15, 0x40, 0xe5, 0xcd, 0x15, 0x40, - 0xe1, 0xed, 0x15, 0x00, 0xe5, 0xea, 0x15, 0x80, 0x0c, 0xe9, 0xec, 0x15, - 0x00, 0xef, 0xe9, 0x15, 0x00, 0xf5, 0xe8, 0x15, 0x40, 0xe5, 0xeb, 0x15, - 0x40, 0xe1, 0x07, 0x16, 0x00, 0xe5, 0x04, 0x16, 0x80, 0x10, 0xe7, 0xd1, - 0x14, 0x00, 0xe9, 0x06, 0x16, 0x00, 0xef, 0x03, 0x16, 0x00, 0xf5, 0x02, - 0x16, 0x40, 0xe5, 0x05, 0x16, 0x40, 0xe1, 0x0d, 0x16, 0x00, 0xe5, 0x0a, - 0x16, 0x80, 0x0c, 0xe9, 0x0c, 0x16, 0x00, 0xef, 0x09, 0x16, 0x00, 0xf5, - 0x08, 0x16, 0x40, 0xe5, 0x0b, 0x16, 0x40, 0xe1, 0x27, 0x16, 0x00, 0xe5, - 0x24, 0x16, 0x80, 0x27, 0xa8, 0x0c, 0xe9, 0x26, 0x16, 0x00, 0xef, 0x23, - 0x16, 0x00, 0xf5, 0x22, 0x16, 0x40, 0xe1, 0x33, 0x16, 0x00, 0xe5, 0x30, - 0x16, 0x80, 0x0c, 0xe9, 0x32, 0x16, 0x00, 0xef, 0x2f, 0x16, 0x00, 0xf5, - 0x2e, 0x16, 0x40, 0xe5, 0x31, 0x16, 0x40, 0xe5, 0x25, 0x16, 0x40, 0xa8, - 0x1e, 0xeb, 0x01, 0x16, 0xc0, 0x00, 0xe1, 0x00, 0x16, 0x00, 0xe5, 0xfd, - 0x15, 0x80, 0x0c, 0xe9, 0xff, 0x15, 0x00, 0xef, 0xfc, 0x15, 0x00, 0xf5, - 0xfb, 0x15, 0x40, 0xe5, 0xfe, 0x15, 0x40, 0xe1, 0xfa, 0x15, 0x00, 0xe5, - 0xf7, 0x15, 0x80, 0x0c, 0xe9, 0xf9, 0x15, 0x00, 0xef, 0xf6, 0x15, 0x00, - 0xf5, 0xf5, 0x15, 0x40, 0xe5, 0xf8, 0x15, 0x40, 0xe1, 0x1b, 0x16, 0x00, - 0xe5, 0x17, 0x16, 0x80, 0x2d, 0xe9, 0x19, 0x16, 0x00, 0xaa, 0x0e, 0xef, - 0x16, 0x16, 0x00, 0xf5, 0x14, 0x16, 0x00, 0x42, 0xa9, 0x01, 0xf2, 0x18, - 0x40, 0xe1, 0x21, 0x16, 0x00, 0xe5, 0x1e, 0x16, 0x80, 0x0c, 0xe9, 0x20, - 0x16, 0x00, 0xef, 0x1d, 0x16, 0x00, 0xf5, 0x1c, 0x16, 0x40, 0xe5, 0x1f, - 0x16, 0x40, 0xe5, 0x18, 0x16, 0x40, 0x48, 0x22, 0xc6, 0x47, 0x16, 0x40, - 0x42, 0x27, 0x01, 0x36, 0x14, 0x00, 0xe9, 0x37, 0x14, 0x00, 0xb7, 0x01, - 0xff, 0xe1, 0xdb, 0x15, 0x00, 0xe5, 0xd8, 0x15, 0x80, 0x0c, 0xe9, 0xda, - 0x15, 0x00, 0xef, 0xd7, 0x15, 0x00, 0xf5, 0xd6, 0x15, 0x40, 0xe5, 0xd9, - 0x15, 0x40, 0xe1, 0xf4, 0x15, 0x80, 0x3b, 0xe5, 0xf1, 0x15, 0x80, 0x32, - 0xa8, 0x17, 0xe9, 0xf3, 0x15, 0x00, 0xef, 0xf0, 0x15, 0x00, 0xf5, 0xef, - 0x15, 0x00, 0xb7, 0x01, 0xff, 0xe1, 0xf0, 0x18, 0x00, 0xf5, 0xed, 0x18, - 0x40, 0xe1, 0xc9, 0x15, 0x00, 0xe5, 0xc6, 0x15, 0x80, 0x0c, 0xe9, 0xc8, - 0x15, 0x00, 0xef, 0xc5, 0x15, 0x00, 0xf5, 0xc4, 0x15, 0x40, 0xe5, 0xc7, - 0x15, 0x40, 0xe5, 0xf2, 0x15, 0x40, 0xe1, 0xef, 0x18, 0x40, 0xa5, 0x3b, - 0xe9, 0x54, 0x14, 0x00, 0xac, 0x1c, 0xba, 0x01, 0xff, 0xe1, 0x4d, 0x16, - 0x00, 0xe5, 0x4a, 0x16, 0x80, 0x0c, 0xe9, 0x4c, 0x16, 0x00, 0xef, 0x49, - 0x16, 0x00, 0xf5, 0x48, 0x16, 0x40, 0xe5, 0x4b, 0x16, 0x40, 0xe1, 0x2d, - 0x16, 0x00, 0xe5, 0x2a, 0x16, 0x80, 0x0c, 0xe9, 0x2c, 0x16, 0x00, 0xef, - 0x29, 0x16, 0x00, 0xf5, 0x28, 0x16, 0x40, 0xe5, 0x2b, 0x16, 0x40, 0xe5, - 0x53, 0x14, 0x00, 0xae, 0x01, 0xff, 0x45, 0xa5, 0xe2, 0xee, 0x18, 0x00, - 0x45, 0x23, 0x05, 0xf5, 0x18, 0x40, 0xe1, 0x66, 0x16, 0x00, 0xe5, 0x63, - 0x16, 0x80, 0x0c, 0xe9, 0x65, 0x16, 0x00, 0xef, 0x62, 0x16, 0x00, 0xf5, - 0x61, 0x16, 0x40, 0xe5, 0x64, 0x16, 0x40, 0xe9, 0x8a, 0x14, 0x40, 0x0b, - 0x63, 0x99, 0x58, 0x4b, 0x1b, 0x9b, 0x3f, 0x15, 0x00, 0x09, 0xce, 0xb8, - 0x01, 0xff, 0xe1, 0xb3, 0x15, 0x00, 0xe5, 0xb0, 0x15, 0x00, 0xe9, 0xb1, - 0x15, 0x00, 0xab, 0x2f, 0xae, 0x1d, 0xef, 0xb2, 0x15, 0x00, 0xf3, 0x08, - 0x15, 0x00, 0xf7, 0x7f, 0x16, 0xc0, 0x00, 0xe1, 0xb7, 0x15, 0x00, 0xe5, - 0xb4, 0x15, 0x00, 0xe9, 0xb5, 0x15, 0x00, 0xef, 0xb6, 0x15, 0x40, 0xe1, - 0xbb, 0x15, 0x00, 0xe5, 0xb8, 0x15, 0x00, 0xe9, 0xb9, 0x15, 0x00, 0xef, - 0xba, 0x15, 0x40, 0xe1, 0xbf, 0x15, 0x00, 0xe5, 0xbc, 0x15, 0x00, 0xe9, - 0xbd, 0x15, 0x00, 0xef, 0xbe, 0x15, 0x40, 0xec, 0xf3, 0x18, 0x00, 0xf2, - 0xf4, 0x18, 0x40, 0xe1, 0x0b, 0x14, 0x80, 0x1f, 0xe9, 0x1c, 0x14, 0x80, - 0x14, 0xee, 0x2e, 0x14, 0x00, 0x0a, 0x81, 0xaf, 0x04, 0xf9, 0xb1, 0x18, - 0x40, 0xed, 0xbe, 0x14, 0x00, 0xf3, 0x06, 0x15, 0x40, 0x47, 0x78, 0xd4, - 0xaf, 0x15, 0x40, 0xe9, 0x02, 0x14, 0x00, 0xf9, 0xb2, 0x18, 0x40, 0x43, - 0xdc, 0x01, 0xf7, 0xf4, 0x81, 0x06, 0x44, 0x45, 0x2f, 0xd5, 0xf3, 0x41, - 0x4b, 0x14, 0x96, 0xf8, 0xf4, 0x41, 0x45, 0xad, 0x7e, 0xc5, 0xf4, 0x01, - 0x49, 0xc5, 0xb8, 0x19, 0xf9, 0x41, 0x45, 0xe3, 0xe0, 0x06, 0x21, 0x00, - 0x45, 0x1b, 0xd8, 0x24, 0x26, 0x40, 0xa1, 0xe6, 0x55, 0xa5, 0xc2, 0x4f, - 0x09, 0xf1, 0xb6, 0xd6, 0x4a, 0xa9, 0xf8, 0x49, 0xac, 0x8c, 0x34, 0xaf, - 0xdf, 0x22, 0xb2, 0xe9, 0x12, 0xb5, 0xc0, 0x0f, 0xb9, 0x01, 0xff, 0x4d, - 0x54, 0x87, 0xff, 0xfe, 0x00, 0x17, 0x38, 0x31, 0x01, 0xff, 0xa1, 0xba, - 0x0d, 0x02, 0x1e, 0x14, 0x80, 0x0d, 0xa4, 0xd9, 0x0b, 0xa5, 0xa0, 0x0b, - 0xa6, 0xf4, 0x09, 0xa7, 0x91, 0x09, 0xa9, 0xcc, 0x08, 0xab, 0xf4, 0x06, - 0xac, 0xbe, 0x06, 0xad, 0xc9, 0x05, 0x44, 0x1e, 0xee, 0x40, 0xd0, 0x01, - 0xaf, 0xfb, 0x04, 0xb0, 0xd4, 0x03, 0xb2, 0xc5, 0x03, 0xb3, 0xa3, 0x02, - 0xb4, 0x8b, 0x01, 0x02, 0xa6, 0x0a, 0x63, 0x4c, 0x1d, 0x95, 0x6a, 0xd0, - 0x01, 0xb9, 0x01, 0xff, 0x02, 0xa0, 0x19, 0x1e, 0xb0, 0x01, 0xff, 0xaf, - 0x06, 0x44, 0x06, 0x87, 0x50, 0xd0, 0x41, 0x46, 0x78, 0xda, 0x0a, 0xd0, - 0x81, 0x06, 0x44, 0x16, 0xef, 0x53, 0xd0, 0x41, 0x46, 0x26, 0xd5, 0x0b, - 0xd0, 0x41, 0x02, 0x92, 0x00, 0x28, 0x04, 0x58, 0x21, 0x01, 0xff, 0x51, - 0xe8, 0x56, 0xd4, 0xd0, 0x01, 0x55, 0x64, 0x39, 0xd6, 0xd0, 0x01, 0x5c, - 0x52, 0x18, 0xd5, 0xd0, 0x01, 0x03, 0x19, 0x01, 0x01, 0xff, 0x55, 0x8a, - 0x3a, 0xd7, 0xd0, 0x01, 0x48, 0x99, 0x33, 0xcd, 0xd0, 0x41, 0x43, 0x36, - 0x6f, 0x7d, 0xd0, 0x01, 0x44, 0xa9, 0x9d, 0x7c, 0xd0, 0x41, 0x04, 0xf6, - 0xee, 0x06, 0x43, 0xb7, 0x52, 0x19, 0xd0, 0x41, 0x80, 0x06, 0x4a, 0x23, - 0xa9, 0x21, 0xd0, 0x41, 0x45, 0x27, 0xd5, 0x06, 0xd0, 0x01, 0x4b, 0x79, - 0x7d, 0x05, 0xd0, 0x01, 0x43, 0x1c, 0x53, 0x58, 0xd0, 0x41, 0xa5, 0x80, - 0x01, 0xa8, 0x52, 0x46, 0xee, 0xd9, 0x27, 0xd0, 0x01, 0xb2, 0x01, 0xff, - 0xa9, 0x37, 0x05, 0xaa, 0xb2, 0x01, 0xff, 0x47, 0x34, 0xd0, 0x6d, 0xd0, - 0x01, 0x02, 0x92, 0x00, 0x14, 0xb0, 0x06, 0x47, 0x44, 0xd3, 0x70, 0xd0, - 0x41, 0x4a, 0x05, 0x9f, 0x6e, 0xd0, 0x01, 0x48, 0x3a, 0xc8, 0x6b, 0xd0, - 0x41, 0xa1, 0x06, 0x43, 0x1c, 0x53, 0x63, 0xd0, 0x41, 0x43, 0x48, 0x1c, - 0x43, 0xd0, 0x01, 0x47, 0x26, 0xa9, 0x36, 0xd0, 0x41, 0xe1, 0x30, 0xd0, - 0x01, 0x46, 0x34, 0xd9, 0x96, 0xd0, 0x01, 0x43, 0x90, 0x04, 0x87, 0xd0, - 0x41, 0xa5, 0x06, 0x43, 0xbc, 0x05, 0x14, 0xd0, 0x41, 0x42, 0x6c, 0x00, - 0x2d, 0xd0, 0x81, 0x06, 0x4d, 0x84, 0x86, 0x79, 0xd0, 0x41, 0x47, 0x5a, - 0xca, 0x78, 0xd0, 0x01, 0x08, 0xea, 0xc8, 0x01, 0xff, 0x42, 0x35, 0x03, - 0x76, 0xd0, 0x01, 0x42, 0xe1, 0x2e, 0x77, 0xd0, 0x41, 0x44, 0x5b, 0x59, - 0x0f, 0xd0, 0x01, 0x45, 0x60, 0x18, 0x31, 0xd0, 0x01, 0x46, 0xa2, 0xdd, - 0x88, 0xd0, 0x41, 0x47, 0x83, 0xcc, 0x1d, 0xd0, 0x01, 0x45, 0xd2, 0xe2, - 0x29, 0xd0, 0x81, 0x8b, 0x01, 0x08, 0x5a, 0xc4, 0x49, 0xb4, 0x2e, 0xb9, - 0x01, 0xff, 0xae, 0x0d, 0x43, 0x60, 0x06, 0x66, 0xd0, 0xc1, 0x00, 0x44, - 0xce, 0xda, 0x08, 0xd0, 0x41, 0x05, 0x15, 0xe1, 0x06, 0x44, 0x39, 0xd1, - 0x13, 0xd0, 0x41, 0x48, 0x25, 0xa9, 0x2a, 0xd0, 0x01, 0x4c, 0x49, 0x90, - 0x2b, 0xd0, 0x01, 0x43, 0x1c, 0x53, 0x65, 0xd0, 0x41, 0x45, 0x79, 0xe1, - 0x7e, 0xd0, 0x81, 0x0c, 0x44, 0x1d, 0x1f, 0xe8, 0xd0, 0x01, 0x4a, 0x97, - 0xad, 0x44, 0xd0, 0x41, 0x49, 0xea, 0xb1, 0x1f, 0xd0, 0x41, 0x46, 0x00, - 0xd7, 0xe2, 0xd0, 0x81, 0x1f, 0x47, 0x83, 0xd3, 0xde, 0xd0, 0xc1, 0x00, - 0x80, 0x01, 0xff, 0x47, 0x94, 0xcd, 0xdf, 0xd0, 0x01, 0xb4, 0x01, 0xff, - 0x49, 0x61, 0xb6, 0xe1, 0xd0, 0x01, 0x47, 0x8e, 0xd2, 0xe0, 0xd0, 0x41, - 0x80, 0x01, 0xff, 0x47, 0x94, 0xcd, 0xe3, 0xd0, 0x01, 0xb4, 0x01, 0xff, - 0x49, 0x61, 0xb6, 0xe5, 0xd0, 0x01, 0x47, 0x8e, 0xd2, 0xe4, 0xd0, 0x41, - 0x44, 0x50, 0x87, 0x69, 0xd0, 0x41, 0x46, 0xe2, 0xd6, 0x3c, 0xd0, 0x01, - 0x44, 0x39, 0xd1, 0x25, 0xd0, 0x41, 0x02, 0x17, 0x00, 0x70, 0xa5, 0x43, - 0x06, 0xbe, 0xd9, 0x33, 0x02, 0x2f, 0x03, 0x01, 0xff, 0x05, 0x3c, 0xc8, - 0x0d, 0xac, 0x01, 0xff, 0xe9, 0x00, 0xd0, 0x01, 0x42, 0x10, 0x00, 0x17, - 0xd0, 0x41, 0x47, 0x34, 0xd0, 0x6c, 0xd0, 0x01, 0xee, 0x39, 0xd0, 0x81, - 0x0c, 0x4b, 0x04, 0x9f, 0x6f, 0xd0, 0x01, 0x47, 0x44, 0xd3, 0x71, 0xd0, - 0x41, 0x44, 0x50, 0x87, 0x5a, 0xd0, 0x41, 0x48, 0x25, 0xa9, 0x26, 0xd0, - 0x01, 0x43, 0x1c, 0x53, 0x59, 0xd0, 0x41, 0x46, 0xa8, 0xda, 0x38, 0xd0, - 0x81, 0x1e, 0x49, 0x11, 0x9f, 0x02, 0xd0, 0x01, 0x03, 0xb9, 0x2c, 0x01, - 0xff, 0x42, 0x6c, 0x00, 0x41, 0xd0, 0x01, 0xb4, 0x01, 0xff, 0xe9, 0x49, - 0xd0, 0x01, 0x49, 0x99, 0xba, 0x4b, 0xd0, 0x41, 0x44, 0x50, 0x87, 0x4d, - 0xd0, 0x41, 0x02, 0x6d, 0x00, 0x06, 0x45, 0x35, 0xe4, 0x1e, 0xd0, 0x41, - 0x07, 0xe2, 0xcb, 0x16, 0x46, 0xcc, 0xda, 0x09, 0xd0, 0xc1, 0x00, 0x80, - 0x01, 0xff, 0x48, 0x25, 0xa9, 0x3e, 0xd0, 0x01, 0x43, 0x1c, 0x53, 0x5e, - 0xd0, 0x41, 0x48, 0x25, 0xa9, 0x3d, 0xd0, 0x01, 0x43, 0x1c, 0x53, 0x5f, - 0xd0, 0x41, 0x06, 0xc0, 0xda, 0x35, 0x45, 0x5c, 0xe5, 0x5b, 0xd0, 0x01, - 0x04, 0xe2, 0xef, 0x11, 0x09, 0x2b, 0xbf, 0x01, 0xff, 0x48, 0x25, 0xa9, - 0x2c, 0xd0, 0x01, 0x43, 0x1c, 0x53, 0x75, 0xd0, 0x41, 0x80, 0x06, 0x4a, - 0x23, 0xa9, 0x20, 0xd0, 0x41, 0x45, 0x27, 0xd5, 0x04, 0xd0, 0x01, 0x4b, - 0x79, 0x7d, 0x03, 0xd0, 0x01, 0x43, 0x1c, 0x53, 0x48, 0xd0, 0x41, 0x48, - 0x25, 0xa9, 0x15, 0xd0, 0x01, 0x43, 0x1c, 0x53, 0x47, 0xd0, 0x41, 0x08, - 0x12, 0xc1, 0x06, 0x4a, 0x69, 0xa9, 0x57, 0xd0, 0x41, 0x05, 0x24, 0xe1, - 0x58, 0x4e, 0x42, 0x75, 0xa4, 0xd0, 0x01, 0x4d, 0x5e, 0x83, 0xaa, 0xd0, - 0x01, 0xb0, 0x29, 0xb4, 0x06, 0x4b, 0x7f, 0xa2, 0xb1, 0xd0, 0x41, 0x08, - 0x55, 0x7b, 0x11, 0x02, 0x0d, 0x00, 0x01, 0xff, 0x46, 0x19, 0xa1, 0xa7, - 0xd0, 0x01, 0x49, 0x59, 0x7b, 0xa6, 0xd0, 0x41, 0x45, 0x4b, 0x75, 0xa8, - 0xd0, 0x01, 0x4d, 0x5e, 0x83, 0xa9, 0xd0, 0x41, 0x07, 0xcb, 0xcf, 0x11, - 0x04, 0x1e, 0x92, 0x01, 0xff, 0x47, 0x49, 0x75, 0xa2, 0xd0, 0x01, 0x4b, - 0x7f, 0xa2, 0xb2, 0xd0, 0x41, 0x45, 0x4b, 0x75, 0xab, 0xd0, 0x01, 0x4e, - 0x54, 0x7b, 0xb3, 0xd0, 0x41, 0x4e, 0x42, 0x75, 0xa5, 0xd0, 0x01, 0x4c, - 0x1d, 0x92, 0xa3, 0xd0, 0x41, 0xa5, 0x06, 0x46, 0x35, 0xd0, 0x5d, 0xd0, - 0x41, 0x05, 0x58, 0xe4, 0x06, 0x43, 0x54, 0xc4, 0x2e, 0xd0, 0x41, 0x4b, - 0x42, 0x99, 0x8b, 0xd0, 0x01, 0x4c, 0xe9, 0x8c, 0x8a, 0xd0, 0x01, 0x4f, - 0xd0, 0x6c, 0x8e, 0xd0, 0x01, 0xb4, 0x01, 0xff, 0x4f, 0x4a, 0x6b, 0x8d, - 0xd0, 0x01, 0x4c, 0xdd, 0x92, 0x8c, 0xd0, 0x41, 0x02, 0x8a, 0x00, 0xba, - 0x01, 0x06, 0x68, 0xd8, 0x70, 0x45, 0x24, 0x95, 0x24, 0xd0, 0x81, 0x5a, - 0xaf, 0x3f, 0xb2, 0x06, 0x46, 0xbe, 0xcf, 0x61, 0xd0, 0x41, 0x04, 0xea, - 0xeb, 0x06, 0x46, 0x50, 0xd8, 0x0c, 0xd0, 0x41, 0xa1, 0x0f, 0xaf, 0x01, - 0xff, 0x48, 0x9a, 0xba, 0x4c, 0xd0, 0x01, 0x48, 0x32, 0xca, 0x54, 0xd0, - 0x41, 0x80, 0x06, 0x42, 0x12, 0x00, 0x32, 0xd0, 0x41, 0xa1, 0x06, 0x43, - 0x1c, 0x53, 0x83, 0xd0, 0x41, 0x43, 0x48, 0x1c, 0x82, 0xd0, 0x01, 0x47, - 0x26, 0xa9, 0x81, 0xd0, 0x41, 0x46, 0x92, 0xdb, 0x3a, 0xd0, 0x81, 0x0c, - 0x45, 0x75, 0x60, 0x89, 0xd0, 0x01, 0x46, 0x9c, 0xba, 0x4a, 0xd0, 0x41, - 0x45, 0xe8, 0xcb, 0x42, 0xd0, 0x41, 0x80, 0x01, 0xff, 0x43, 0x36, 0x6f, - 0x7f, 0xd0, 0x01, 0x44, 0xa9, 0x9d, 0xf4, 0xd0, 0x41, 0x80, 0x27, 0x42, - 0x12, 0x00, 0x10, 0xd0, 0xc1, 0x00, 0x80, 0x01, 0xff, 0x48, 0x25, 0xa9, - 0x1c, 0xd0, 0x01, 0x04, 0x32, 0xee, 0x01, 0xff, 0x43, 0x36, 0x6f, 0x4e, - 0xd0, 0x01, 0x44, 0xa9, 0x9d, 0xf2, 0xd0, 0x01, 0x44, 0xe6, 0xed, 0xf0, - 0xd0, 0x41, 0x48, 0x25, 0xa9, 0x1b, 0xd0, 0x01, 0x04, 0x32, 0xee, 0x01, - 0xff, 0x43, 0x36, 0x6f, 0x4f, 0xd0, 0x01, 0x44, 0xa9, 0x9d, 0xf3, 0xd0, - 0x01, 0x44, 0xe6, 0xed, 0xf1, 0xd0, 0x41, 0x03, 0x18, 0x12, 0x06, 0x45, - 0xf9, 0xe3, 0x07, 0xd0, 0x41, 0x49, 0xa7, 0xb2, 0x37, 0xd0, 0x01, 0x43, - 0x0c, 0x07, 0x7a, 0xd0, 0x41, 0x46, 0x8a, 0xd7, 0x3f, 0xd0, 0x01, 0x02, - 0x7d, 0x02, 0x1a, 0xb3, 0x01, 0xff, 0x55, 0x3e, 0x38, 0xac, 0xd0, 0x01, - 0x03, 0xb6, 0x00, 0x01, 0xff, 0x48, 0x25, 0xa9, 0x1a, 0xd0, 0x01, 0x43, - 0x1c, 0x53, 0x46, 0xd0, 0x41, 0x47, 0x86, 0xcd, 0x98, 0xd0, 0x01, 0xa6, - 0x01, 0xff, 0x44, 0x55, 0x6b, 0xb7, 0xd0, 0x01, 0x04, 0xc3, 0x29, 0x01, - 0xff, 0xe1, 0x35, 0xd0, 0x01, 0x42, 0x10, 0x00, 0xb8, 0xd0, 0x41, 0x06, - 0x62, 0xd8, 0x50, 0x02, 0x0c, 0x00, 0x06, 0x4b, 0x17, 0xa0, 0x45, 0xd0, - 0x41, 0x02, 0xb7, 0x13, 0x11, 0x0a, 0x95, 0xaf, 0x01, 0xff, 0x46, 0x5b, - 0xca, 0xb4, 0xd0, 0x01, 0x47, 0x8d, 0xcd, 0xb5, 0xd0, 0x41, 0x02, 0x92, - 0x00, 0x06, 0x49, 0x38, 0x7f, 0x72, 0xd0, 0x41, 0x48, 0x25, 0xa9, 0x16, - 0xd0, 0x01, 0x04, 0x32, 0xee, 0x11, 0x0e, 0x12, 0x68, 0x01, 0xff, 0x48, - 0xf4, 0xb3, 0x90, 0xd0, 0x01, 0x45, 0xee, 0xb1, 0x91, 0xd0, 0x41, 0x43, - 0x36, 0x6f, 0x8f, 0xd0, 0x01, 0x44, 0xa9, 0x9d, 0xf5, 0xd0, 0x41, 0x46, - 0x0e, 0xd8, 0xd8, 0xd0, 0x01, 0x46, 0x8d, 0x33, 0xd9, 0xd0, 0x41, 0x09, - 0xac, 0xb3, 0x92, 0x01, 0x5a, 0x90, 0x1f, 0xc5, 0xd0, 0x01, 0x06, 0xc6, - 0x3f, 0x01, 0xff, 0x48, 0x25, 0xa9, 0x34, 0xd0, 0x81, 0x7a, 0x0a, 0x07, - 0xa7, 0x45, 0x54, 0x0f, 0x41, 0xcc, 0xd0, 0x01, 0x56, 0x8b, 0x33, 0xcb, - 0xd0, 0x01, 0x0f, 0x74, 0x6e, 0x29, 0xae, 0x1b, 0x08, 0x96, 0x1f, 0x01, - 0xff, 0x07, 0x9e, 0x1f, 0x06, 0x4b, 0xdf, 0x98, 0xbe, 0xd0, 0x41, 0x46, - 0x3c, 0xdd, 0xc6, 0xd0, 0x01, 0x45, 0xa5, 0x1f, 0xc5, 0xd0, 0x41, 0x49, - 0xe2, 0xb3, 0xbc, 0xd0, 0x01, 0x45, 0xeb, 0xe2, 0xc7, 0xd0, 0x41, 0x48, - 0x92, 0xc2, 0xc3, 0xd0, 0x01, 0x4a, 0x99, 0xab, 0xc4, 0xd0, 0x41, 0x42, - 0x00, 0x00, 0xbd, 0xd0, 0x01, 0x42, 0x37, 0x01, 0xbf, 0xd0, 0x01, 0xae, - 0x0c, 0x42, 0x6c, 0x09, 0xba, 0xd0, 0x01, 0x42, 0x0f, 0x00, 0xc0, 0xd0, - 0x41, 0x43, 0xfc, 0x11, 0xbb, 0xd0, 0x01, 0x02, 0xc6, 0x03, 0x01, 0xff, - 0x43, 0x36, 0x6f, 0xc2, 0xd0, 0x01, 0x44, 0xa9, 0x9d, 0xc1, 0xd0, 0x41, - 0x4f, 0xc6, 0x67, 0xb9, 0xd0, 0x41, 0x48, 0x92, 0xc2, 0xb0, 0xd0, 0x01, - 0x4a, 0x99, 0xab, 0xaf, 0xd0, 0x01, 0x4b, 0x14, 0xa1, 0xae, 0xd0, 0x41, - 0x49, 0xaa, 0xb8, 0x64, 0xd0, 0x01, 0x46, 0x90, 0xda, 0x55, 0xd0, 0x01, - 0xae, 0x1c, 0x47, 0xd1, 0xd1, 0x68, 0xd0, 0x01, 0x06, 0x78, 0xdd, 0x06, - 0x4e, 0x76, 0x7d, 0x0e, 0xd0, 0x41, 0x4d, 0x34, 0x7f, 0x74, 0xd0, 0x01, - 0x4b, 0x04, 0x9f, 0x60, 0xd0, 0x41, 0x54, 0xbb, 0x3f, 0xb6, 0xd0, 0x01, - 0x47, 0x9b, 0xcd, 0x7b, 0xd0, 0x41, 0x45, 0x60, 0xe1, 0x01, 0xd0, 0x01, - 0xa9, 0x06, 0x42, 0x60, 0x46, 0x2f, 0xd0, 0x41, 0xa1, 0x6d, 0x05, 0x57, - 0x21, 0x3d, 0x4a, 0x47, 0xa8, 0xe7, 0xd0, 0x01, 0xa7, 0x0d, 0x43, 0x90, - 0x04, 0x86, 0xd0, 0xc1, 0x00, 0x49, 0x24, 0xa9, 0x80, 0xd0, 0x41, 0x45, - 0x35, 0xd9, 0x92, 0xd0, 0x81, 0x06, 0x48, 0x72, 0xc7, 0xe6, 0xd0, 0x41, - 0x0f, 0x11, 0x68, 0x01, 0xff, 0x09, 0xf4, 0xb3, 0x06, 0x45, 0xee, 0xb1, - 0x95, 0xd0, 0x41, 0x43, 0x36, 0x6f, 0x94, 0xd0, 0x01, 0x44, 0xa9, 0x9d, - 0x93, 0xd0, 0x41, 0x51, 0xe8, 0x56, 0xd0, 0xd0, 0x01, 0x55, 0x64, 0x39, - 0xd2, 0xd0, 0x01, 0x5c, 0x52, 0x18, 0xd1, 0xd0, 0x01, 0xb4, 0x01, 0xff, - 0x4c, 0x95, 0x33, 0xcf, 0xd0, 0x01, 0x02, 0x0d, 0x00, 0x01, 0xff, 0x55, - 0x8a, 0x3a, 0xd3, 0xd0, 0x01, 0x48, 0x99, 0x33, 0xce, 0xd0, 0x41, 0x44, - 0x89, 0xcd, 0x99, 0xd0, 0x01, 0x06, 0x18, 0xdd, 0x01, 0xff, 0x06, 0xe8, - 0xd6, 0x0c, 0x45, 0x27, 0xd5, 0xdc, 0xd0, 0x01, 0x47, 0x83, 0xd3, 0xdd, - 0xd0, 0x41, 0x45, 0xbe, 0xe2, 0xdb, 0xd0, 0x01, 0x44, 0x74, 0x93, 0xda, - 0xd0, 0x41, 0x04, 0xff, 0x63, 0x27, 0x07, 0x37, 0xd1, 0x17, 0x04, 0x02, - 0xef, 0x01, 0xff, 0x46, 0x72, 0xda, 0xc9, 0xd0, 0x01, 0x46, 0xf4, 0xdc, - 0xca, 0xd0, 0x01, 0x45, 0x85, 0xe9, 0xc8, 0xd0, 0x41, 0x48, 0x25, 0xa9, - 0x3b, 0xd0, 0x01, 0x43, 0x1c, 0x53, 0x67, 0xd0, 0x41, 0xe9, 0x56, 0xd0, - 0x01, 0x42, 0x10, 0x00, 0x18, 0xd0, 0x41, 0x05, 0x9a, 0xe3, 0xb3, 0x01, - 0xae, 0x99, 0x01, 0xb0, 0x40, 0xb2, 0x01, 0xff, 0x02, 0xb7, 0x13, 0x2f, - 0x06, 0x7e, 0xda, 0x01, 0xff, 0x42, 0x00, 0x00, 0xec, 0xd0, 0x01, 0x42, - 0x24, 0x02, 0xeb, 0xd0, 0x01, 0x42, 0x37, 0x01, 0xed, 0xd0, 0x01, 0x42, - 0x26, 0x03, 0xef, 0xd0, 0x01, 0x42, 0x6c, 0x09, 0xe9, 0xd0, 0x01, 0x43, - 0xe9, 0x2c, 0xea, 0xd0, 0x01, 0x42, 0x0f, 0x00, 0xee, 0xd0, 0x41, 0xee, - 0x97, 0xd0, 0x01, 0x49, 0x38, 0x7f, 0x73, 0xd0, 0x41, 0x05, 0x18, 0xe3, - 0x47, 0x42, 0xc3, 0x01, 0x85, 0xd0, 0x01, 0xaf, 0x01, 0xff, 0x06, 0xfc, - 0xd7, 0x2e, 0x06, 0x1e, 0xdd, 0x06, 0x45, 0x5a, 0x52, 0x23, 0xd0, 0x41, - 0x02, 0xc6, 0x03, 0x14, 0xf3, 0x11, 0xd0, 0xc1, 0x00, 0x80, 0x01, 0xff, - 0x45, 0x27, 0xd5, 0x12, 0xd0, 0x01, 0x43, 0x1c, 0x53, 0x51, 0xd0, 0x41, - 0x4d, 0x47, 0x87, 0x52, 0xd0, 0x01, 0x50, 0x43, 0x38, 0xad, 0xd0, 0x41, - 0x48, 0x25, 0xa9, 0x22, 0xd0, 0x01, 0x43, 0x1c, 0x53, 0x84, 0xd0, 0x41, - 0x4a, 0x7a, 0x7d, 0x0d, 0xd0, 0x01, 0x46, 0x5c, 0xde, 0x33, 0xd0, 0x41, - 0x4a, 0xc7, 0xa5, 0x28, 0xd0, 0x01, 0x06, 0x8a, 0xdd, 0x01, 0xff, 0x47, - 0xbd, 0xcf, 0x62, 0xd0, 0x01, 0x42, 0x6c, 0x00, 0x5c, 0xd0, 0x41, 0x03, - 0xe4, 0x12, 0x2f, 0x04, 0x34, 0xd9, 0x21, 0x02, 0x2a, 0x02, 0x11, 0x05, - 0xdd, 0xe6, 0x01, 0xff, 0x44, 0xde, 0xeb, 0x9a, 0xd0, 0x01, 0x45, 0x9f, - 0xe3, 0xa1, 0xd0, 0x41, 0x42, 0x2f, 0x03, 0x9e, 0xd0, 0x01, 0x44, 0x19, - 0x01, 0x9d, 0xd0, 0x41, 0xe9, 0x9f, 0xd0, 0x01, 0x45, 0x83, 0xe6, 0xa0, - 0xd0, 0x41, 0xe9, 0x9c, 0xd0, 0x01, 0x45, 0x83, 0xe6, 0x9b, 0xd0, 0x41, - 0x04, 0x17, 0x7b, 0x97, 0x03, 0x44, 0x17, 0x09, 0xa3, 0xfa, 0x01, 0xe7, - 0x1b, 0xf4, 0x81, 0xd2, 0x01, 0x04, 0x02, 0xed, 0x57, 0x53, 0xe0, 0x48, - 0xd7, 0xf3, 0x01, 0x02, 0x0f, 0x07, 0x2d, 0x45, 0x64, 0xe7, 0x2f, 0xf3, - 0x01, 0xf3, 0x8c, 0xf6, 0x81, 0x0d, 0x44, 0xc3, 0x05, 0xc8, 0xf9, 0xc1, - 0x00, 0x43, 0xf0, 0xf0, 0x8b, 0xf9, 0x41, 0x45, 0x29, 0x03, 0x8f, 0xf6, - 0x01, 0xb4, 0x01, 0xff, 0x4e, 0xeb, 0x33, 0x64, 0xf4, 0x01, 0x4f, 0x53, - 0x71, 0x65, 0xf4, 0x41, 0x42, 0xc2, 0x05, 0x22, 0x20, 0x80, 0x13, 0x44, - 0xa8, 0x2c, 0x6b, 0xf5, 0x81, 0x06, 0x44, 0x46, 0xef, 0xce, 0x25, 0x40, - 0x51, 0x2d, 0x56, 0x6c, 0xf5, 0x41, 0x49, 0xdb, 0x1c, 0x19, 0x22, 0x40, - 0x07, 0xc1, 0x05, 0x0d, 0x0b, 0xd1, 0x75, 0x01, 0xff, 0xe9, 0x52, 0x17, - 0x00, 0xf5, 0x53, 0x17, 0x40, 0xe1, 0x40, 0x17, 0x00, 0x42, 0x16, 0x00, - 0x4a, 0x17, 0x00, 0x42, 0xa1, 0x10, 0x47, 0x17, 0x00, 0x42, 0x24, 0x02, - 0x44, 0x17, 0x00, 0x42, 0x22, 0x00, 0x51, 0x17, 0x00, 0xe9, 0x41, 0x17, - 0x00, 0x42, 0x1b, 0x02, 0x43, 0x17, 0x00, 0x42, 0x74, 0x00, 0x4e, 0x17, - 0x00, 0x42, 0x6c, 0x00, 0x4b, 0x17, 0x00, 0xae, 0x28, 0x42, 0x6c, 0x09, - 0x49, 0x17, 0x00, 0x42, 0x71, 0x00, 0x4d, 0x17, 0x00, 0x42, 0x15, 0x06, - 0x50, 0x17, 0x00, 0x42, 0x12, 0x00, 0x46, 0x17, 0x00, 0xf5, 0x42, 0x17, - 0x00, 0x42, 0xa9, 0x01, 0x4f, 0x17, 0x00, 0x42, 0x34, 0x22, 0x4c, 0x17, - 0x40, 0xe1, 0x48, 0x17, 0x00, 0x42, 0x24, 0x02, 0x45, 0x17, 0x40, 0x06, - 0x27, 0x82, 0x01, 0xff, 0x4e, 0xdc, 0x75, 0x1f, 0x1a, 0x00, 0x07, 0xc1, - 0x05, 0x21, 0x47, 0xa0, 0xd1, 0x1e, 0x1a, 0x00, 0x0b, 0xd1, 0x75, 0x01, - 0xff, 0x42, 0x44, 0x0f, 0x1b, 0x1a, 0x00, 0xe5, 0x19, 0x1a, 0x00, 0xe9, - 0x17, 0x1a, 0x00, 0xef, 0x1a, 0x1a, 0x00, 0xf5, 0x18, 0x1a, 0x40, 0xe1, - 0x15, 0x1a, 0x00, 0x42, 0x16, 0x00, 0x05, 0x1a, 0x00, 0x42, 0x37, 0x00, - 0x0c, 0x1a, 0x00, 0x42, 0xa1, 0x10, 0x09, 0x1a, 0x00, 0x42, 0x24, 0x02, - 0x01, 0x1a, 0x00, 0x42, 0x22, 0x00, 0x16, 0x1a, 0x00, 0x42, 0xbd, 0x26, - 0x0d, 0x1a, 0x00, 0x42, 0x1b, 0x02, 0x00, 0x1a, 0x00, 0x42, 0x74, 0x00, - 0x12, 0x1a, 0x00, 0xad, 0x49, 0xae, 0x24, 0x42, 0x6c, 0x09, 0x04, 0x1a, - 0x00, 0x42, 0x71, 0x00, 0x11, 0x1a, 0x00, 0x42, 0x15, 0x06, 0x14, 0x1a, - 0x00, 0x42, 0x12, 0x00, 0x08, 0x1a, 0x00, 0x42, 0xa6, 0x0a, 0x13, 0x1a, - 0x00, 0x42, 0x34, 0x22, 0x10, 0x1a, 0x40, 0xe1, 0x0a, 0x1a, 0x00, 0xa7, - 0x13, 0x42, 0x71, 0x00, 0x0b, 0x1a, 0x00, 0xb9, 0x01, 0xff, 0xe1, 0x0e, - 0x1a, 0x00, 0x42, 0x37, 0x00, 0x0f, 0x1a, 0x40, 0xe1, 0x02, 0x1a, 0x00, - 0x42, 0x1b, 0x02, 0x03, 0x1a, 0x40, 0xe1, 0x06, 0x1a, 0x00, 0x42, 0x6c, - 0x09, 0x07, 0x1a, 0x40, 0x44, 0x0e, 0x51, 0xcb, 0xf9, 0x01, 0xf3, 0xe7, - 0xfa, 0x41, 0xa1, 0x6a, 0xa5, 0x50, 0xa9, 0x2b, 0xaf, 0x01, 0xff, 0x45, - 0xfb, 0xe1, 0x66, 0xf9, 0x01, 0x04, 0x24, 0xa6, 0x0c, 0x42, 0xe9, 0x04, - 0xf9, 0xf9, 0x01, 0x48, 0xc2, 0xc9, 0x0e, 0xf9, 0x41, 0x43, 0x16, 0x00, - 0xa6, 0x00, 0x00, 0x5b, 0x26, 0x1a, 0x8b, 0x23, 0x00, 0x45, 0x24, 0x21, - 0x94, 0xf4, 0x41, 0x42, 0x36, 0x01, 0xf1, 0xf9, 0x01, 0xa4, 0x0f, 0x02, - 0x69, 0x00, 0x01, 0xff, 0x44, 0x22, 0xec, 0xbc, 0xf4, 0x01, 0xf3, 0x72, - 0xfa, 0x41, 0x4b, 0x4d, 0x99, 0x70, 0xf4, 0x01, 0x4b, 0x34, 0x9a, 0x09, - 0xf3, 0x41, 0xa1, 0x06, 0x42, 0x32, 0x00, 0xd8, 0x02, 0x40, 0xe4, 0x5e, - 0xf3, 0x01, 0x50, 0xda, 0x62, 0x82, 0x00, 0x00, 0x4a, 0x09, 0xaf, 0x31, - 0xf9, 0x41, 0x04, 0x0a, 0xed, 0x98, 0x09, 0xa9, 0x01, 0xff, 0x0c, 0xad, - 0x8f, 0x04, 0xee, 0xe0, 0xf9, 0x41, 0x45, 0xbe, 0xbd, 0x00, 0x28, 0x00, - 0x05, 0x96, 0xe2, 0x01, 0xff, 0xd1, 0x01, 0x28, 0x80, 0xbe, 0x04, 0xd2, - 0x02, 0x28, 0x80, 0x9c, 0x02, 0xd3, 0x04, 0x28, 0x80, 0x8b, 0x01, 0xd4, - 0x08, 0x28, 0x80, 0x43, 0xd5, 0x10, 0x28, 0x80, 0x1f, 0xd6, 0x20, 0x28, - 0x80, 0x0d, 0xd7, 0x40, 0x28, 0x80, 0x04, 0xd8, 0x80, 0x28, 0x40, 0xd8, - 0xc0, 0x28, 0x40, 0xd7, 0x60, 0x28, 0x80, 0x04, 0xd8, 0xa0, 0x28, 0x40, - 0xd8, 0xe0, 0x28, 0x40, 0xd6, 0x30, 0x28, 0x80, 0x0d, 0xd7, 0x50, 0x28, - 0x80, 0x04, 0xd8, 0x90, 0x28, 0x40, 0xd8, 0xd0, 0x28, 0x40, 0xd7, 0x70, - 0x28, 0x80, 0x04, 0xd8, 0xb0, 0x28, 0x40, 0xd8, 0xf0, 0x28, 0x40, 0xd5, - 0x18, 0x28, 0x80, 0x1f, 0xd6, 0x28, 0x28, 0x80, 0x0d, 0xd7, 0x48, 0x28, - 0x80, 0x04, 0xd8, 0x88, 0x28, 0x40, 0xd8, 0xc8, 0x28, 0x40, 0xd7, 0x68, - 0x28, 0x80, 0x04, 0xd8, 0xa8, 0x28, 0x40, 0xd8, 0xe8, 0x28, 0x40, 0xd6, - 0x38, 0x28, 0x80, 0x0d, 0xd7, 0x58, 0x28, 0x80, 0x04, 0xd8, 0x98, 0x28, - 0x40, 0xd8, 0xd8, 0x28, 0x40, 0xd7, 0x78, 0x28, 0x80, 0x04, 0xd8, 0xb8, - 0x28, 0x40, 0xd8, 0xf8, 0x28, 0x40, 0xd4, 0x0c, 0x28, 0x80, 0x43, 0xd5, - 0x14, 0x28, 0x80, 0x1f, 0xd6, 0x24, 0x28, 0x80, 0x0d, 0xd7, 0x44, 0x28, - 0x80, 0x04, 0xd8, 0x84, 0x28, 0x40, 0xd8, 0xc4, 0x28, 0x40, 0xd7, 0x64, - 0x28, 0x80, 0x04, 0xd8, 0xa4, 0x28, 0x40, 0xd8, 0xe4, 0x28, 0x40, 0xd6, - 0x34, 0x28, 0x80, 0x0d, 0xd7, 0x54, 0x28, 0x80, 0x04, 0xd8, 0x94, 0x28, - 0x40, 0xd8, 0xd4, 0x28, 0x40, 0xd7, 0x74, 0x28, 0x80, 0x04, 0xd8, 0xb4, - 0x28, 0x40, 0xd8, 0xf4, 0x28, 0x40, 0xd5, 0x1c, 0x28, 0x80, 0x1f, 0xd6, - 0x2c, 0x28, 0x80, 0x0d, 0xd7, 0x4c, 0x28, 0x80, 0x04, 0xd8, 0x8c, 0x28, - 0x40, 0xd8, 0xcc, 0x28, 0x40, 0xd7, 0x6c, 0x28, 0x80, 0x04, 0xd8, 0xac, - 0x28, 0x40, 0xd8, 0xec, 0x28, 0x40, 0xd6, 0x3c, 0x28, 0x80, 0x0d, 0xd7, - 0x5c, 0x28, 0x80, 0x04, 0xd8, 0x9c, 0x28, 0x40, 0xd8, 0xdc, 0x28, 0x40, - 0xd7, 0x7c, 0x28, 0x80, 0x04, 0xd8, 0xbc, 0x28, 0x40, 0xd8, 0xfc, 0x28, - 0x40, 0xd3, 0x06, 0x28, 0x80, 0x8b, 0x01, 0xd4, 0x0a, 0x28, 0x80, 0x43, - 0xd5, 0x12, 0x28, 0x80, 0x1f, 0xd6, 0x22, 0x28, 0x80, 0x0d, 0xd7, 0x42, - 0x28, 0x80, 0x04, 0xd8, 0x82, 0x28, 0x40, 0xd8, 0xc2, 0x28, 0x40, 0xd7, - 0x62, 0x28, 0x80, 0x04, 0xd8, 0xa2, 0x28, 0x40, 0xd8, 0xe2, 0x28, 0x40, - 0xd6, 0x32, 0x28, 0x80, 0x0d, 0xd7, 0x52, 0x28, 0x80, 0x04, 0xd8, 0x92, - 0x28, 0x40, 0xd8, 0xd2, 0x28, 0x40, 0xd7, 0x72, 0x28, 0x80, 0x04, 0xd8, - 0xb2, 0x28, 0x40, 0xd8, 0xf2, 0x28, 0x40, 0xd5, 0x1a, 0x28, 0x80, 0x1f, - 0xd6, 0x2a, 0x28, 0x80, 0x0d, 0xd7, 0x4a, 0x28, 0x80, 0x04, 0xd8, 0x8a, - 0x28, 0x40, 0xd8, 0xca, 0x28, 0x40, 0xd7, 0x6a, 0x28, 0x80, 0x04, 0xd8, - 0xaa, 0x28, 0x40, 0xd8, 0xea, 0x28, 0x40, 0xd6, 0x3a, 0x28, 0x80, 0x0d, - 0xd7, 0x5a, 0x28, 0x80, 0x04, 0xd8, 0x9a, 0x28, 0x40, 0xd8, 0xda, 0x28, - 0x40, 0xd7, 0x7a, 0x28, 0x80, 0x04, 0xd8, 0xba, 0x28, 0x40, 0xd8, 0xfa, - 0x28, 0x40, 0xd4, 0x0e, 0x28, 0x80, 0x43, 0xd5, 0x16, 0x28, 0x80, 0x1f, - 0xd6, 0x26, 0x28, 0x80, 0x0d, 0xd7, 0x46, 0x28, 0x80, 0x04, 0xd8, 0x86, - 0x28, 0x40, 0xd8, 0xc6, 0x28, 0x40, 0xd7, 0x66, 0x28, 0x80, 0x04, 0xd8, - 0xa6, 0x28, 0x40, 0xd8, 0xe6, 0x28, 0x40, 0xd6, 0x36, 0x28, 0x80, 0x0d, - 0xd7, 0x56, 0x28, 0x80, 0x04, 0xd8, 0x96, 0x28, 0x40, 0xd8, 0xd6, 0x28, - 0x40, 0xd7, 0x76, 0x28, 0x80, 0x04, 0xd8, 0xb6, 0x28, 0x40, 0xd8, 0xf6, - 0x28, 0x40, 0xd5, 0x1e, 0x28, 0x80, 0x1f, 0xd6, 0x2e, 0x28, 0x80, 0x0d, - 0xd7, 0x4e, 0x28, 0x80, 0x04, 0xd8, 0x8e, 0x28, 0x40, 0xd8, 0xce, 0x28, - 0x40, 0xd7, 0x6e, 0x28, 0x80, 0x04, 0xd8, 0xae, 0x28, 0x40, 0xd8, 0xee, - 0x28, 0x40, 0xd6, 0x3e, 0x28, 0x80, 0x0d, 0xd7, 0x5e, 0x28, 0x80, 0x04, - 0xd8, 0x9e, 0x28, 0x40, 0xd8, 0xde, 0x28, 0x40, 0xd7, 0x7e, 0x28, 0x80, - 0x04, 0xd8, 0xbe, 0x28, 0x40, 0xd8, 0xfe, 0x28, 0x40, 0xd2, 0x03, 0x28, - 0x80, 0x9c, 0x02, 0xd3, 0x05, 0x28, 0x80, 0x8b, 0x01, 0xd4, 0x09, 0x28, - 0x80, 0x43, 0xd5, 0x11, 0x28, 0x80, 0x1f, 0xd6, 0x21, 0x28, 0x80, 0x0d, - 0xd7, 0x41, 0x28, 0x80, 0x04, 0xd8, 0x81, 0x28, 0x40, 0xd8, 0xc1, 0x28, - 0x40, 0xd7, 0x61, 0x28, 0x80, 0x04, 0xd8, 0xa1, 0x28, 0x40, 0xd8, 0xe1, - 0x28, 0x40, 0xd6, 0x31, 0x28, 0x80, 0x0d, 0xd7, 0x51, 0x28, 0x80, 0x04, - 0xd8, 0x91, 0x28, 0x40, 0xd8, 0xd1, 0x28, 0x40, 0xd7, 0x71, 0x28, 0x80, - 0x04, 0xd8, 0xb1, 0x28, 0x40, 0xd8, 0xf1, 0x28, 0x40, 0xd5, 0x19, 0x28, - 0x80, 0x1f, 0xd6, 0x29, 0x28, 0x80, 0x0d, 0xd7, 0x49, 0x28, 0x80, 0x04, - 0xd8, 0x89, 0x28, 0x40, 0xd8, 0xc9, 0x28, 0x40, 0xd7, 0x69, 0x28, 0x80, - 0x04, 0xd8, 0xa9, 0x28, 0x40, 0xd8, 0xe9, 0x28, 0x40, 0xd6, 0x39, 0x28, - 0x80, 0x0d, 0xd7, 0x59, 0x28, 0x80, 0x04, 0xd8, 0x99, 0x28, 0x40, 0xd8, - 0xd9, 0x28, 0x40, 0xd7, 0x79, 0x28, 0x80, 0x04, 0xd8, 0xb9, 0x28, 0x40, - 0xd8, 0xf9, 0x28, 0x40, 0xd4, 0x0d, 0x28, 0x80, 0x43, 0xd5, 0x15, 0x28, - 0x80, 0x1f, 0xd6, 0x25, 0x28, 0x80, 0x0d, 0xd7, 0x45, 0x28, 0x80, 0x04, - 0xd8, 0x85, 0x28, 0x40, 0xd8, 0xc5, 0x28, 0x40, 0xd7, 0x65, 0x28, 0x80, - 0x04, 0xd8, 0xa5, 0x28, 0x40, 0xd8, 0xe5, 0x28, 0x40, 0xd6, 0x35, 0x28, - 0x80, 0x0d, 0xd7, 0x55, 0x28, 0x80, 0x04, 0xd8, 0x95, 0x28, 0x40, 0xd8, - 0xd5, 0x28, 0x40, 0xd7, 0x75, 0x28, 0x80, 0x04, 0xd8, 0xb5, 0x28, 0x40, - 0xd8, 0xf5, 0x28, 0x40, 0xd5, 0x1d, 0x28, 0x80, 0x1f, 0xd6, 0x2d, 0x28, - 0x80, 0x0d, 0xd7, 0x4d, 0x28, 0x80, 0x04, 0xd8, 0x8d, 0x28, 0x40, 0xd8, - 0xcd, 0x28, 0x40, 0xd7, 0x6d, 0x28, 0x80, 0x04, 0xd8, 0xad, 0x28, 0x40, - 0xd8, 0xed, 0x28, 0x40, 0xd6, 0x3d, 0x28, 0x80, 0x0d, 0xd7, 0x5d, 0x28, - 0x80, 0x04, 0xd8, 0x9d, 0x28, 0x40, 0xd8, 0xdd, 0x28, 0x40, 0xd7, 0x7d, - 0x28, 0x80, 0x04, 0xd8, 0xbd, 0x28, 0x40, 0xd8, 0xfd, 0x28, 0x40, 0xd3, - 0x07, 0x28, 0x80, 0x8b, 0x01, 0xd4, 0x0b, 0x28, 0x80, 0x43, 0xd5, 0x13, - 0x28, 0x80, 0x1f, 0xd6, 0x23, 0x28, 0x80, 0x0d, 0xd7, 0x43, 0x28, 0x80, - 0x04, 0xd8, 0x83, 0x28, 0x40, 0xd8, 0xc3, 0x28, 0x40, 0xd7, 0x63, 0x28, - 0x80, 0x04, 0xd8, 0xa3, 0x28, 0x40, 0xd8, 0xe3, 0x28, 0x40, 0xd6, 0x33, - 0x28, 0x80, 0x0d, 0xd7, 0x53, 0x28, 0x80, 0x04, 0xd8, 0x93, 0x28, 0x40, - 0xd8, 0xd3, 0x28, 0x40, 0xd7, 0x73, 0x28, 0x80, 0x04, 0xd8, 0xb3, 0x28, - 0x40, 0xd8, 0xf3, 0x28, 0x40, 0xd5, 0x1b, 0x28, 0x80, 0x1f, 0xd6, 0x2b, - 0x28, 0x80, 0x0d, 0xd7, 0x4b, 0x28, 0x80, 0x04, 0xd8, 0x8b, 0x28, 0x40, - 0xd8, 0xcb, 0x28, 0x40, 0xd7, 0x6b, 0x28, 0x80, 0x04, 0xd8, 0xab, 0x28, - 0x40, 0xd8, 0xeb, 0x28, 0x40, 0xd6, 0x3b, 0x28, 0x80, 0x0d, 0xd7, 0x5b, - 0x28, 0x80, 0x04, 0xd8, 0x9b, 0x28, 0x40, 0xd8, 0xdb, 0x28, 0x40, 0xd7, - 0x7b, 0x28, 0x80, 0x04, 0xd8, 0xbb, 0x28, 0x40, 0xd8, 0xfb, 0x28, 0x40, - 0xd4, 0x0f, 0x28, 0x80, 0x43, 0xd5, 0x17, 0x28, 0x80, 0x1f, 0xd6, 0x27, - 0x28, 0x80, 0x0d, 0xd7, 0x47, 0x28, 0x80, 0x04, 0xd8, 0x87, 0x28, 0x40, - 0xd8, 0xc7, 0x28, 0x40, 0xd7, 0x67, 0x28, 0x80, 0x04, 0xd8, 0xa7, 0x28, - 0x40, 0xd8, 0xe7, 0x28, 0x40, 0xd6, 0x37, 0x28, 0x80, 0x0d, 0xd7, 0x57, - 0x28, 0x80, 0x04, 0xd8, 0x97, 0x28, 0x40, 0xd8, 0xd7, 0x28, 0x40, 0xd7, - 0x77, 0x28, 0x80, 0x04, 0xd8, 0xb7, 0x28, 0x40, 0xd8, 0xf7, 0x28, 0x40, - 0xd5, 0x1f, 0x28, 0x80, 0x1f, 0xd6, 0x2f, 0x28, 0x80, 0x0d, 0xd7, 0x4f, - 0x28, 0x80, 0x04, 0xd8, 0x8f, 0x28, 0x40, 0xd8, 0xcf, 0x28, 0x40, 0xd7, - 0x6f, 0x28, 0x80, 0x04, 0xd8, 0xaf, 0x28, 0x40, 0xd8, 0xef, 0x28, 0x40, - 0xd6, 0x3f, 0x28, 0x80, 0x0d, 0xd7, 0x5f, 0x28, 0x80, 0x04, 0xd8, 0x9f, - 0x28, 0x40, 0xd8, 0xdf, 0x28, 0x40, 0xd7, 0x7f, 0x28, 0x80, 0x04, 0xd8, - 0xbf, 0x28, 0x40, 0xd8, 0xff, 0x28, 0x40, 0xa4, 0x95, 0x05, 0x07, 0xc1, - 0x05, 0xca, 0x02, 0x07, 0x2f, 0x39, 0xb1, 0x01, 0x0c, 0x01, 0x16, 0x89, - 0x01, 0x05, 0x2f, 0x03, 0x61, 0xb6, 0x01, 0xff, 0x45, 0x5c, 0x23, 0x46, - 0x10, 0x01, 0x0a, 0xd2, 0x75, 0x01, 0xff, 0xa1, 0x45, 0x4e, 0xb6, 0x74, - 0x39, 0x10, 0x01, 0xe5, 0x42, 0x10, 0x01, 0xe9, 0x3a, 0x10, 0x81, 0x32, - 0xef, 0x44, 0x10, 0x81, 0x20, 0xf5, 0x3c, 0x10, 0x81, 0x17, 0x08, 0x9b, - 0xbe, 0x01, 0xff, 0xec, 0x40, 0x10, 0x81, 0x09, 0xf2, 0x3e, 0x10, 0xc1, - 0x00, 0xf2, 0x3f, 0x10, 0x41, 0xec, 0x41, 0x10, 0x41, 0xf5, 0x3d, 0x10, - 0x41, 0x0f, 0xa2, 0x6d, 0x01, 0xff, 0xe5, 0x73, 0x10, 0x01, 0xef, 0x74, - 0x10, 0x41, 0xe9, 0x3b, 0x10, 0x41, 0xe1, 0x38, 0x10, 0x01, 0xe9, 0x43, - 0x10, 0x01, 0xf5, 0x45, 0x10, 0x41, 0x48, 0xd0, 0x15, 0x01, 0x10, 0x01, - 0x4b, 0x4f, 0x23, 0x00, 0x10, 0x01, 0x4b, 0xc0, 0x9b, 0x03, 0x10, 0x01, - 0x50, 0xfa, 0x63, 0x70, 0x10, 0x01, 0x4b, 0x32, 0xa2, 0x04, 0x10, 0x01, - 0x47, 0xa1, 0x4a, 0x02, 0x10, 0x41, 0x4c, 0xc9, 0x8b, 0x4c, 0x10, 0x01, - 0x02, 0x3b, 0x01, 0x0f, 0xac, 0x01, 0xff, 0x43, 0xc3, 0x07, 0x4b, 0x10, - 0x01, 0x44, 0x45, 0x78, 0x4d, 0x10, 0x41, 0xf4, 0x49, 0x10, 0x01, 0x48, - 0xad, 0x40, 0x4a, 0x10, 0x41, 0x45, 0xc3, 0x0a, 0x59, 0x10, 0x81, 0x88, - 0x01, 0xa6, 0x69, 0x46, 0x24, 0x60, 0x7f, 0x10, 0x01, 0x44, 0x46, 0x2a, - 0x5a, 0x10, 0x81, 0x56, 0x43, 0xbf, 0x0a, 0x52, 0x10, 0x81, 0x40, 0xb3, - 0x24, 0xb4, 0x01, 0xff, 0x42, 0x92, 0x01, 0x5b, 0x10, 0x01, 0xa8, 0x0d, - 0xb7, 0x01, 0xff, 0x44, 0x29, 0x1d, 0x5c, 0x10, 0x01, 0xef, 0x53, 0x10, - 0x41, 0x44, 0x2c, 0x11, 0x5d, 0x10, 0x01, 0x43, 0x26, 0x01, 0x54, 0x10, - 0x41, 0x44, 0x27, 0x1d, 0x58, 0x10, 0x81, 0x0d, 0x42, 0x60, 0x25, 0x57, - 0x10, 0xc1, 0x00, 0x42, 0x2e, 0x11, 0x60, 0x10, 0x41, 0x42, 0x2e, 0x11, - 0x61, 0x10, 0x41, 0x80, 0x01, 0xff, 0x47, 0x22, 0x11, 0x64, 0x10, 0x01, - 0x48, 0xd5, 0x5c, 0x65, 0x10, 0x41, 0x42, 0x2e, 0x11, 0x63, 0x10, 0x41, - 0xa9, 0x0f, 0xaf, 0x01, 0xff, 0x43, 0x2d, 0x11, 0x5e, 0x10, 0x01, 0x42, - 0x42, 0x00, 0x55, 0x10, 0x41, 0x43, 0x09, 0x4c, 0x5f, 0x10, 0x01, 0x42, - 0x32, 0x00, 0x56, 0x10, 0x41, 0xf9, 0x62, 0x10, 0x41, 0xe1, 0x05, 0x10, - 0x81, 0xb4, 0x02, 0xa2, 0xa7, 0x02, 0xa3, 0x9a, 0x02, 0xa4, 0x81, 0x02, - 0xe5, 0x0f, 0x10, 0x01, 0xa7, 0xf0, 0x01, 0x42, 0x22, 0x00, 0x33, 0x10, - 0x01, 0xe9, 0x07, 0x10, 0x81, 0xe0, 0x01, 0xaa, 0xd3, 0x01, 0xab, 0xc6, - 0x01, 0xac, 0xb9, 0x01, 0x42, 0x6c, 0x00, 0x2b, 0x10, 0x01, 0xae, 0x9a, - 0x01, 0xef, 0x11, 0x10, 0x81, 0x69, 0xb0, 0x5d, 0x42, 0x71, 0x00, 0x2d, - 0x10, 0x01, 0xb3, 0x45, 0xb4, 0x2c, 0xf5, 0x09, 0x10, 0x81, 0x23, 0xb6, - 0x06, 0x42, 0x34, 0x22, 0x2c, 0x10, 0x41, 0xe1, 0x2f, 0x10, 0x01, 0x07, - 0x9c, 0xbe, 0x01, 0xff, 0xec, 0x0d, 0x10, 0x81, 0x09, 0xf2, 0x0b, 0x10, - 0xc1, 0x00, 0xf2, 0x0c, 0x10, 0x41, 0xec, 0x0e, 0x10, 0x41, 0xf5, 0x0a, - 0x10, 0x41, 0xe1, 0x22, 0x10, 0x01, 0x42, 0x22, 0x00, 0x23, 0x10, 0x01, - 0xb4, 0x01, 0xff, 0xe1, 0x1d, 0x10, 0x01, 0x42, 0x22, 0x00, 0x1e, 0x10, - 0x41, 0xe1, 0x32, 0x10, 0x01, 0x42, 0x22, 0x00, 0x30, 0x10, 0x01, 0x42, - 0x15, 0x06, 0x31, 0x10, 0x41, 0xe1, 0x27, 0x10, 0x01, 0x42, 0x22, 0x00, - 0x28, 0x10, 0x41, 0x09, 0xfb, 0x63, 0x01, 0xff, 0x02, 0x0f, 0x07, 0x19, - 0x44, 0x42, 0xee, 0x37, 0x10, 0x01, 0x43, 0xc9, 0x64, 0x36, 0x10, 0x01, - 0x06, 0x61, 0x36, 0x01, 0xff, 0xe5, 0x71, 0x10, 0x01, 0xef, 0x72, 0x10, - 0x41, 0xe1, 0x75, 0x10, 0x01, 0x42, 0x74, 0x00, 0x35, 0x10, 0x41, 0xe1, - 0x26, 0x10, 0x01, 0x42, 0x24, 0x02, 0x17, 0x10, 0x01, 0x42, 0xff, 0x04, - 0x21, 0x10, 0x01, 0x42, 0x34, 0x22, 0x1c, 0x10, 0x41, 0xe1, 0x2e, 0x10, - 0x01, 0x42, 0x74, 0x00, 0x34, 0x10, 0x41, 0xe1, 0x13, 0x10, 0x01, 0x42, - 0x22, 0x00, 0x14, 0x10, 0x41, 0xe1, 0x1a, 0x10, 0x01, 0x42, 0x22, 0x00, - 0x1b, 0x10, 0x41, 0xe9, 0x08, 0x10, 0x41, 0xe1, 0x15, 0x10, 0x01, 0x42, - 0x22, 0x00, 0x16, 0x10, 0x41, 0xe1, 0x24, 0x10, 0x01, 0xa4, 0x06, 0x42, - 0x22, 0x00, 0x25, 0x10, 0x41, 0xe1, 0x1f, 0x10, 0x01, 0x42, 0x22, 0x00, - 0x20, 0x10, 0x41, 0xe1, 0x18, 0x10, 0x01, 0x42, 0x22, 0x00, 0x19, 0x10, - 0x41, 0xe1, 0x29, 0x10, 0x01, 0x42, 0x22, 0x00, 0x2a, 0x10, 0x41, 0xe1, - 0x06, 0x10, 0x01, 0xe9, 0x10, 0x10, 0x01, 0xf5, 0x12, 0x10, 0x41, 0x44, - 0xd1, 0x1f, 0x47, 0x10, 0x01, 0x05, 0xc5, 0x06, 0x06, 0x4b, 0xd8, 0x9e, - 0x48, 0x10, 0x41, 0x45, 0xc3, 0x0a, 0x6e, 0x10, 0x01, 0xa6, 0x2e, 0x44, - 0x46, 0x2a, 0x6f, 0x10, 0x01, 0x43, 0xbf, 0x0a, 0x67, 0x10, 0x01, 0xb3, - 0x14, 0xb4, 0x06, 0x44, 0xa1, 0x1d, 0x66, 0x10, 0x41, 0x44, 0x25, 0x01, - 0x69, 0x10, 0x01, 0x42, 0x15, 0x02, 0x68, 0x10, 0x41, 0x44, 0x27, 0x1d, - 0x6d, 0x10, 0x01, 0x42, 0x60, 0x25, 0x6c, 0x10, 0x41, 0x43, 0xa7, 0x05, - 0x6b, 0x10, 0x01, 0x43, 0xcb, 0x06, 0x6a, 0x10, 0x41, 0x42, 0x17, 0x00, - 0x17, 0xf4, 0x01, 0x03, 0x7b, 0x23, 0xee, 0x10, 0x42, 0x8b, 0x05, 0xa3, - 0xf4, 0x01, 0x42, 0xa2, 0x05, 0xb4, 0xf9, 0x01, 0xaf, 0xc3, 0x10, 0x07, - 0xf4, 0xd1, 0xe0, 0x0d, 0x02, 0xc3, 0x05, 0xe6, 0x0b, 0x45, 0xbd, 0xe8, - 0x90, 0xf4, 0x81, 0xd8, 0x0b, 0xb7, 0xa1, 0x0b, 0xb8, 0x0b, 0xf9, 0x66, - 0xf4, 0xc1, 0x00, 0x48, 0x2e, 0x4a, 0xc9, 0xf6, 0x41, 0x0a, 0x8d, 0xa3, - 0x06, 0x49, 0x1a, 0xb8, 0x4a, 0xf9, 0x41, 0x02, 0x3b, 0x01, 0xf6, 0x08, - 0x06, 0x01, 0x15, 0xc2, 0x07, 0xac, 0xae, 0x02, 0x06, 0xc8, 0x00, 0xf1, - 0x01, 0x03, 0x11, 0x15, 0x5e, 0x09, 0x32, 0x00, 0x01, 0xff, 0x0b, 0x0b, - 0x99, 0x43, 0x0a, 0x01, 0x15, 0x2d, 0x0a, 0x1a, 0x63, 0x17, 0x0b, 0x85, - 0xa0, 0x01, 0xff, 0x51, 0x3b, 0x59, 0x6a, 0x25, 0x00, 0x4b, 0x65, 0x9c, - 0x61, 0x25, 0x00, 0x4c, 0xb9, 0x92, 0x5e, 0x25, 0x40, 0x50, 0x93, 0x39, - 0x3f, 0x25, 0x00, 0x4a, 0x59, 0xaa, 0x25, 0x25, 0x00, 0x4b, 0xca, 0x9f, - 0x1d, 0x25, 0x40, 0x50, 0xa8, 0x39, 0x42, 0x25, 0x00, 0x4a, 0x63, 0xaa, - 0x28, 0x25, 0x00, 0x4b, 0x24, 0x63, 0x20, 0x25, 0x40, 0x51, 0x4c, 0x59, - 0x6b, 0x25, 0x00, 0x4b, 0x70, 0x9c, 0x62, 0x25, 0x00, 0x4c, 0xc5, 0x92, - 0x5f, 0x25, 0x40, 0x0b, 0x0b, 0x99, 0x79, 0x0a, 0x01, 0x15, 0x48, 0x0a, - 0x1a, 0x63, 0x17, 0x0b, 0x85, 0xa0, 0x01, 0xff, 0x51, 0x3b, 0x59, 0x67, - 0x25, 0x00, 0x4b, 0x65, 0x9c, 0x5b, 0x25, 0x00, 0x4c, 0xb9, 0x92, 0x58, - 0x25, 0x40, 0x55, 0x8e, 0x39, 0x48, 0x25, 0x00, 0x50, 0x93, 0x39, 0x37, - 0x25, 0x00, 0x05, 0xc3, 0x00, 0x11, 0x06, 0xc8, 0x00, 0x01, 0xff, 0x4a, - 0xfc, 0x14, 0x22, 0x25, 0x00, 0x45, 0x01, 0x15, 0x15, 0x25, 0x40, 0x4a, - 0xfc, 0x14, 0x2a, 0x25, 0x00, 0x45, 0x01, 0x15, 0x19, 0x25, 0x40, 0x55, - 0xa3, 0x39, 0x40, 0x25, 0x00, 0x50, 0xa8, 0x39, 0x38, 0x25, 0x00, 0x05, - 0xc3, 0x00, 0x11, 0x06, 0xc8, 0x00, 0x01, 0xff, 0x4a, 0x6b, 0x16, 0x1e, - 0x25, 0x00, 0x45, 0xc3, 0x01, 0x16, 0x25, 0x40, 0x4a, 0x6b, 0x16, 0x26, - 0x25, 0x00, 0x45, 0xc3, 0x01, 0x1a, 0x25, 0x40, 0x51, 0x4c, 0x59, 0x68, - 0x25, 0x00, 0x4b, 0x70, 0x9c, 0x5c, 0x25, 0x00, 0x4c, 0xc5, 0x92, 0x59, - 0x25, 0x40, 0x5c, 0x02, 0x17, 0x46, 0x25, 0x00, 0x0f, 0x07, 0x17, 0x1c, - 0x0f, 0x1a, 0x6e, 0x06, 0x5c, 0xfa, 0x18, 0x44, 0x25, 0x40, 0x4a, 0xfc, - 0x14, 0x31, 0x25, 0x00, 0x48, 0x58, 0x16, 0x39, 0x25, 0x00, 0x4e, 0x06, - 0x7d, 0x49, 0x25, 0x40, 0x4a, 0x6b, 0x16, 0x2e, 0x25, 0x00, 0x48, 0x11, - 0x15, 0x36, 0x25, 0x00, 0x4e, 0x14, 0x7d, 0x3e, 0x25, 0x40, 0x04, 0xc4, - 0x00, 0xd4, 0x04, 0x05, 0xc9, 0x00, 0x01, 0xff, 0x04, 0x3e, 0x17, 0xa9, - 0x04, 0x55, 0xd1, 0x38, 0x1e, 0xcc, 0x01, 0xa4, 0xc4, 0x01, 0x4a, 0x0b, - 0x00, 0x00, 0x25, 0x80, 0xa3, 0x01, 0x44, 0xc3, 0x00, 0x74, 0x25, 0x80, - 0x95, 0x01, 0x0f, 0x81, 0x70, 0x84, 0x01, 0x45, 0xc8, 0x00, 0x76, 0x25, - 0x00, 0xb4, 0x65, 0x42, 0x50, 0x02, 0x75, 0x25, 0x80, 0x3f, 0x48, 0x32, - 0x00, 0x02, 0x25, 0xc0, 0x00, 0x05, 0x19, 0x00, 0x01, 0xff, 0x07, 0x4c, - 0x0d, 0x23, 0x4a, 0x0b, 0x00, 0x3c, 0x25, 0x00, 0x44, 0xc3, 0x00, 0x24, - 0x25, 0x00, 0x45, 0xc8, 0x00, 0x1c, 0x25, 0x00, 0x04, 0x1e, 0x00, 0x01, - 0xff, 0x44, 0xc3, 0x00, 0x18, 0xce, 0x01, 0x45, 0xc8, 0x00, 0x16, 0xce, - 0x41, 0x44, 0xc3, 0x00, 0x19, 0xce, 0x01, 0x45, 0xc8, 0x00, 0x17, 0xce, - 0x41, 0x05, 0x19, 0x00, 0x01, 0xff, 0xa8, 0x0c, 0x44, 0xc3, 0x00, 0x18, - 0x25, 0x00, 0x45, 0xc8, 0x00, 0x14, 0x25, 0x40, 0x49, 0xad, 0xb5, 0x7d, - 0x25, 0x00, 0x49, 0x0c, 0x00, 0x34, 0x25, 0x40, 0x51, 0x7d, 0x5b, 0x1d, - 0xcc, 0x01, 0x0b, 0xa4, 0x36, 0x01, 0xff, 0x4a, 0x0b, 0x00, 0x04, 0x25, - 0x00, 0x48, 0x32, 0x00, 0x06, 0x25, 0x40, 0x4a, 0x0b, 0x00, 0x08, 0x25, - 0x00, 0x48, 0x32, 0x00, 0x0a, 0x25, 0x40, 0x50, 0x7a, 0x5e, 0x7c, 0x25, - 0x40, 0x80, 0x01, 0xff, 0x04, 0x1a, 0x00, 0x06, 0x54, 0xd6, 0x37, 0xaf, - 0xfb, 0x41, 0x4b, 0xcd, 0x02, 0x1c, 0xcc, 0x01, 0x4b, 0x98, 0x02, 0x1b, - 0xcc, 0x41, 0x08, 0x43, 0x25, 0x31, 0xaf, 0x01, 0xff, 0x0a, 0x3f, 0xb0, - 0x1e, 0x42, 0xa7, 0x01, 0x77, 0x25, 0xc0, 0x00, 0x05, 0x19, 0x00, 0x01, - 0xff, 0x4a, 0x0b, 0x00, 0x2c, 0x25, 0x00, 0x44, 0xc3, 0x00, 0x10, 0x25, - 0x00, 0x45, 0xc8, 0x00, 0x0c, 0x25, 0x40, 0x4a, 0x0b, 0x00, 0x4c, 0x25, - 0x00, 0x48, 0x32, 0x00, 0x4e, 0x25, 0x40, 0x45, 0x46, 0x10, 0x73, 0x25, - 0x00, 0x47, 0x88, 0x43, 0xae, 0xfb, 0x01, 0x0e, 0x6b, 0x03, 0x8a, 0x02, - 0x07, 0x7d, 0x02, 0xc2, 0x01, 0x06, 0x6d, 0x02, 0x01, 0xff, 0x0a, 0x73, - 0x02, 0x6a, 0x08, 0x84, 0x02, 0x2d, 0x09, 0x10, 0x0f, 0x01, 0xff, 0x06, - 0x13, 0x01, 0x18, 0x07, 0x7d, 0x02, 0x01, 0xff, 0x55, 0x80, 0x03, 0xd9, - 0xfb, 0x01, 0x44, 0xc3, 0x00, 0xd1, 0xfb, 0xc1, 0x00, 0x4f, 0x86, 0x03, - 0xdd, 0xfb, 0x41, 0x46, 0x73, 0x02, 0xd6, 0xfb, 0x01, 0x44, 0xc3, 0x00, - 0x71, 0x25, 0x40, 0x06, 0x13, 0x01, 0x22, 0x07, 0x7d, 0x02, 0x01, 0xff, - 0x0a, 0x73, 0x02, 0x0d, 0x45, 0xc8, 0x00, 0xd2, 0xfb, 0xc1, 0x00, 0x4e, - 0x6b, 0x4b, 0xdf, 0xfb, 0x41, 0x4a, 0x6b, 0x03, 0xdb, 0xfb, 0x01, 0x4b, - 0x98, 0x02, 0xd8, 0xfb, 0x41, 0x46, 0x73, 0x02, 0xd4, 0xfb, 0x81, 0x06, - 0x45, 0xc8, 0x00, 0x72, 0x25, 0x40, 0x4f, 0x27, 0x18, 0xdc, 0xfb, 0x41, - 0x06, 0x13, 0x01, 0x3f, 0x07, 0x7d, 0x02, 0x01, 0xff, 0x44, 0xc3, 0x00, - 0xa0, 0xfb, 0x81, 0x1d, 0x45, 0xc8, 0x00, 0xa1, 0xfb, 0xc1, 0x00, 0x80, - 0x01, 0xff, 0x5f, 0xa2, 0x10, 0xa9, 0xfb, 0x01, 0x4f, 0x89, 0x02, 0xa5, - 0xfb, 0xc1, 0x00, 0x4f, 0x79, 0x02, 0xaa, 0xfb, 0x41, 0x80, 0x01, 0xff, - 0x60, 0x05, 0x0f, 0xa8, 0xfb, 0x01, 0x4f, 0x89, 0x02, 0xa4, 0xfb, 0xc1, - 0x00, 0x50, 0x22, 0x19, 0xab, 0xfb, 0x41, 0x44, 0xc3, 0x00, 0xd7, 0xfb, - 0x01, 0x45, 0xc8, 0x00, 0xd5, 0xfb, 0x41, 0x08, 0x84, 0x02, 0x1b, 0x09, - 0x10, 0x0f, 0x01, 0xff, 0x06, 0x13, 0x01, 0x06, 0x6b, 0x6d, 0x02, 0xad, - 0xfb, 0x41, 0x46, 0x73, 0x02, 0xa3, 0xfb, 0x01, 0x44, 0xc3, 0x00, 0xd0, - 0xfb, 0x41, 0x06, 0x13, 0x01, 0x0d, 0x5c, 0x16, 0x19, 0xa7, 0xfb, 0xc1, - 0x00, 0x50, 0x88, 0x02, 0xac, 0xfb, 0x41, 0x46, 0x73, 0x02, 0xa2, 0xfb, - 0x81, 0x06, 0x45, 0xc8, 0x00, 0xd3, 0xfb, 0x41, 0x50, 0x22, 0x19, 0xa6, - 0xfb, 0x41, 0x5c, 0x79, 0x03, 0xda, 0xfb, 0x01, 0x5b, 0x35, 0x1d, 0xde, - 0xfb, 0x41, 0x09, 0xc3, 0x47, 0x11, 0x07, 0x48, 0x5d, 0x01, 0xff, 0x44, - 0xc3, 0x00, 0x6f, 0x25, 0x00, 0x45, 0xc8, 0x00, 0x70, 0x25, 0x40, 0x44, - 0xc3, 0x00, 0x6e, 0x25, 0x00, 0x45, 0xc8, 0x00, 0x6d, 0x25, 0x40, 0x5d, - 0xfc, 0x14, 0x45, 0x25, 0x00, 0x10, 0x01, 0x15, 0x1c, 0x10, 0x1a, 0x63, - 0x06, 0x5d, 0x58, 0x16, 0x43, 0x25, 0x40, 0x4a, 0xfc, 0x14, 0x32, 0x25, - 0x00, 0x48, 0x58, 0x16, 0x3a, 0x25, 0x00, 0x4e, 0x06, 0x7d, 0x4a, 0x25, - 0x40, 0x4a, 0x6b, 0x16, 0x2d, 0x25, 0x00, 0x48, 0x11, 0x15, 0x35, 0x25, - 0x00, 0x4e, 0x14, 0x7d, 0x3d, 0x25, 0x40, 0x02, 0x3b, 0x01, 0x7d, 0x4a, - 0x0b, 0x00, 0x01, 0x25, 0x00, 0x44, 0xc3, 0x00, 0x78, 0x25, 0x80, 0x6a, - 0x0f, 0x81, 0x70, 0x5a, 0x45, 0xc8, 0x00, 0x7a, 0x25, 0x00, 0x0c, 0xa3, - 0x36, 0x44, 0x42, 0x50, 0x02, 0x79, 0x25, 0x80, 0x1e, 0x48, 0x32, 0x00, - 0x03, 0x25, 0xc0, 0x00, 0x05, 0x19, 0x00, 0x01, 0xff, 0x4a, 0x0b, 0x00, - 0x4b, 0x25, 0x00, 0x44, 0xc3, 0x00, 0x2b, 0x25, 0x00, 0x45, 0xc8, 0x00, - 0x23, 0x25, 0x40, 0x05, 0x19, 0x00, 0x01, 0xff, 0x4a, 0x0b, 0x00, 0x3b, - 0x25, 0x00, 0xac, 0x06, 0x45, 0xc8, 0x00, 0x17, 0x25, 0x40, 0x43, 0xc4, - 0x00, 0x1b, 0x25, 0x00, 0x49, 0x66, 0x16, 0x7f, 0x25, 0x40, 0x4a, 0x0b, - 0x00, 0x05, 0x25, 0x00, 0x48, 0x32, 0x00, 0x07, 0x25, 0x40, 0x4a, 0x0b, - 0x00, 0x09, 0x25, 0x00, 0x48, 0x32, 0x00, 0x0b, 0x25, 0x40, 0x50, 0x8a, - 0x5e, 0x7e, 0x25, 0x40, 0x0a, 0x3f, 0xb0, 0x1e, 0x42, 0xa7, 0x01, 0x7b, - 0x25, 0xc0, 0x00, 0x05, 0x19, 0x00, 0x01, 0xff, 0x4a, 0x0b, 0x00, 0x33, - 0x25, 0x00, 0x44, 0xc3, 0x00, 0x13, 0x25, 0x00, 0x45, 0xc8, 0x00, 0x0f, - 0x25, 0x40, 0x4a, 0x0b, 0x00, 0x4d, 0x25, 0x00, 0x48, 0x32, 0x00, 0x4f, - 0x25, 0x40, 0x05, 0x3d, 0x01, 0x92, 0x01, 0x03, 0x51, 0x14, 0x01, 0xff, - 0x0b, 0x0b, 0x99, 0x77, 0x0a, 0x01, 0x15, 0x47, 0x0a, 0x1a, 0x63, 0x17, - 0x0b, 0x85, 0xa0, 0x01, 0xff, 0x51, 0x3b, 0x59, 0x64, 0x25, 0x00, 0x4b, - 0x65, 0x9c, 0x55, 0x25, 0x00, 0x4c, 0xb9, 0x92, 0x52, 0x25, 0x40, 0x50, - 0x93, 0x39, 0x2f, 0x25, 0x00, 0x05, 0xc3, 0x00, 0x16, 0x06, 0xc8, 0x00, - 0x06, 0x53, 0xcf, 0x4c, 0x47, 0x25, 0x40, 0x45, 0x01, 0x15, 0x0d, 0x25, - 0x00, 0x48, 0x58, 0x16, 0x21, 0x25, 0x40, 0x45, 0x01, 0x15, 0x11, 0x25, - 0x00, 0x48, 0x58, 0x16, 0x29, 0x25, 0x40, 0x50, 0xa8, 0x39, 0x30, 0x25, - 0x00, 0x05, 0xc3, 0x00, 0x16, 0x06, 0xc8, 0x00, 0x06, 0x53, 0xe2, 0x4c, - 0x41, 0x25, 0x40, 0x45, 0xc3, 0x01, 0x0e, 0x25, 0x00, 0x48, 0x11, 0x15, - 0x1f, 0x25, 0x40, 0x45, 0xc3, 0x01, 0x12, 0x25, 0x00, 0x48, 0x11, 0x15, - 0x27, 0x25, 0x40, 0x51, 0x4c, 0x59, 0x65, 0x25, 0x00, 0x4b, 0x70, 0x9c, - 0x56, 0x25, 0x00, 0x4c, 0xc5, 0x92, 0x53, 0x25, 0x40, 0xa4, 0x3a, 0x4a, - 0x0b, 0x00, 0x50, 0x25, 0x00, 0x07, 0x48, 0x5d, 0x1e, 0x48, 0x32, 0x00, - 0x51, 0x25, 0xc0, 0x00, 0x05, 0x19, 0x00, 0x01, 0xff, 0x4a, 0x0b, 0x00, - 0x6c, 0x25, 0x00, 0x44, 0xc3, 0x00, 0x63, 0x25, 0x00, 0x45, 0xc8, 0x00, - 0x60, 0x25, 0x40, 0x4a, 0x0b, 0x00, 0x69, 0x25, 0x00, 0x44, 0xc3, 0x00, - 0x5d, 0x25, 0x00, 0x45, 0xc8, 0x00, 0x5a, 0x25, 0x40, 0x08, 0x43, 0x25, - 0x17, 0x08, 0xc4, 0x47, 0x01, 0xff, 0x4a, 0x0b, 0x00, 0x66, 0x25, 0x00, - 0x44, 0xc3, 0x00, 0x57, 0x25, 0x00, 0x45, 0xc8, 0x00, 0x54, 0x25, 0x40, - 0x6a, 0x6b, 0x03, 0x09, 0xce, 0x01, 0x06, 0x6d, 0x02, 0x01, 0xff, 0x08, - 0x84, 0x02, 0x06, 0x53, 0x66, 0x4b, 0x1f, 0xcc, 0x41, 0x4b, 0xcd, 0x02, - 0x20, 0xcc, 0x01, 0x5c, 0x1a, 0x18, 0x0a, 0xce, 0x41, 0x4a, 0x65, 0xa3, - 0xf9, 0xf3, 0x01, 0xac, 0x18, 0x43, 0x37, 0x25, 0xc8, 0x22, 0xc0, 0x00, - 0x06, 0x50, 0x00, 0x01, 0xff, 0x4f, 0xcf, 0x6d, 0xd1, 0x29, 0x00, 0x50, - 0x3a, 0x65, 0xd2, 0x29, 0x40, 0x80, 0x06, 0x43, 0xa1, 0x01, 0xb3, 0xf3, - 0x41, 0x4a, 0x57, 0xac, 0x4f, 0xf5, 0x01, 0x4a, 0x43, 0xb1, 0x63, 0xf9, - 0x41, 0x4b, 0x7a, 0x95, 0x95, 0xf3, 0x41, 0x54, 0x17, 0x43, 0x7e, 0xf3, - 0x01, 0x03, 0x81, 0x05, 0x01, 0xff, 0x57, 0x38, 0x1b, 0x3b, 0x29, 0x00, - 0x4d, 0x23, 0x0b, 0xdf, 0x23, 0x00, 0x05, 0x22, 0x00, 0x65, 0x15, 0xb0, - 0x3b, 0x55, 0x05, 0xc3, 0x00, 0x37, 0x4b, 0x50, 0x21, 0xdd, 0x23, 0x00, - 0x06, 0xc8, 0x00, 0x13, 0x4e, 0x27, 0x26, 0xb5, 0x23, 0x80, 0x06, 0x56, - 0x05, 0x09, 0xe1, 0x23, 0x40, 0x58, 0x1d, 0x26, 0xb6, 0x23, 0x40, 0xa3, - 0x0c, 0x4c, 0xcd, 0x8d, 0x25, 0x2e, 0x00, 0x69, 0x63, 0x04, 0xee, 0xfb, - 0x41, 0x45, 0xcf, 0x0a, 0x1f, 0x23, 0x00, 0x43, 0xd8, 0x0c, 0x0c, 0x23, - 0x40, 0xa3, 0x0c, 0x4c, 0xcd, 0x8d, 0x24, 0x2e, 0x00, 0x6a, 0xed, 0x02, - 0xed, 0xfb, 0x41, 0x45, 0xcf, 0x0a, 0x1e, 0x23, 0x00, 0x43, 0xd8, 0x0c, - 0x0d, 0x23, 0x40, 0x4c, 0xe1, 0x02, 0xea, 0xfb, 0x01, 0x4c, 0xe3, 0x10, - 0xe2, 0xfb, 0x41, 0x4c, 0xe1, 0x02, 0xcb, 0x2b, 0x00, 0x10, 0xda, 0x61, - 0x50, 0x48, 0xf3, 0x25, 0x21, 0x23, 0x00, 0x04, 0xc3, 0x00, 0x28, 0x05, - 0xc8, 0x00, 0x06, 0x4f, 0xda, 0x71, 0xe7, 0xcd, 0x41, 0x4c, 0x4f, 0x21, - 0x5c, 0x2e, 0x00, 0x09, 0xe1, 0x61, 0x01, 0xff, 0x44, 0xf8, 0x42, 0x5f, - 0xcc, 0x01, 0x0c, 0x8d, 0x94, 0x01, 0xff, 0xd1, 0xe9, 0xcd, 0x01, 0xd2, - 0xeb, 0xcd, 0x41, 0x4c, 0x4f, 0x21, 0x5b, 0x2e, 0x00, 0x09, 0xe1, 0x61, - 0x01, 0xff, 0x44, 0xf8, 0x42, 0x5d, 0xcc, 0x01, 0x0c, 0x8d, 0x94, 0x01, - 0xff, 0xd1, 0xed, 0xcd, 0x01, 0xd2, 0xef, 0xcd, 0x41, 0x44, 0xf8, 0x42, - 0x5e, 0xcc, 0x01, 0x0c, 0x8d, 0x94, 0x01, 0xff, 0xd1, 0xf1, 0xcd, 0x01, - 0xd2, 0xf2, 0xcd, 0x01, 0xd3, 0xf3, 0xcd, 0x01, 0xd4, 0xf4, 0xcd, 0x41, - 0x0d, 0x49, 0x81, 0xc5, 0x02, 0x07, 0xc1, 0x05, 0x01, 0xff, 0xe1, 0x1a, - 0x31, 0x80, 0x8f, 0x02, 0xe2, 0x05, 0x31, 0x80, 0x85, 0x02, 0xe3, 0x18, - 0x31, 0x80, 0xfb, 0x01, 0xe4, 0x09, 0x31, 0x00, 0xe5, 0x1c, 0x31, 0x80, - 0xd4, 0x01, 0xe6, 0x08, 0x31, 0x00, 0xe7, 0x0d, 0x31, 0x80, 0xba, 0x01, - 0xe8, 0x0f, 0x31, 0x00, 0xe9, 0x27, 0x31, 0x80, 0x95, 0x01, 0xea, 0x10, - 0x31, 0x80, 0x8b, 0x01, 0xeb, 0x0e, 0x31, 0x80, 0x81, 0x01, 0xec, 0x0c, - 0x31, 0x80, 0x78, 0xed, 0x07, 0x31, 0x00, 0xee, 0x0b, 0x31, 0x80, 0x62, - 0xef, 0x1b, 0x31, 0x80, 0x3d, 0xf0, 0x06, 0x31, 0x00, 0xf1, 0x11, 0x31, - 0x00, 0xf2, 0x16, 0x31, 0x00, 0xf3, 0x19, 0x31, 0x80, 0x28, 0xf4, 0x0a, - 0x31, 0x00, 0xf5, 0x28, 0x31, 0x80, 0x19, 0xf6, 0x2a, 0x31, 0x00, 0xf8, - 0x12, 0x31, 0x00, 0xfa, 0x17, 0x31, 0xc0, 0x00, 0xe8, 0x13, 0x31, 0x00, - 0xe9, 0xa1, 0x31, 0x00, 0xf9, 0xba, 0x31, 0x40, 0x42, 0xac, 0x1e, 0xab, - 0x31, 0x40, 0xe8, 0x15, 0x31, 0x40, 0x4f, 0xa5, 0x3a, 0x2e, 0x31, 0x00, - 0xe5, 0xbe, 0x31, 0x00, 0xed, 0xb1, 0x31, 0x00, 0xae, 0x08, 0xef, 0xa6, - 0x31, 0x00, 0xf5, 0x21, 0x31, 0x40, 0xe7, 0xb2, 0x31, 0x00, 0xee, 0xa7, - 0x31, 0x40, 0xe7, 0x2b, 0x31, 0x80, 0x04, 0xee, 0x2f, 0x31, 0x40, 0xe7, - 0xad, 0x31, 0x40, 0xe8, 0xb9, 0x31, 0x40, 0xf7, 0xbd, 0x31, 0x40, 0xe9, - 0xa2, 0x31, 0x40, 0xe8, 0x2d, 0x31, 0x00, 0xed, 0xac, 0x31, 0x00, 0x42, - 0xac, 0x1e, 0xaa, 0x31, 0x80, 0x08, 0xf2, 0xa8, 0x31, 0x00, 0xf5, 0x29, - 0x31, 0x40, 0xee, 0xb3, 0x31, 0x40, 0xe8, 0xb8, 0x31, 0x00, 0xee, 0x2c, - 0x31, 0x00, 0xf5, 0xa3, 0x31, 0x00, 0xf7, 0xbc, 0x31, 0x40, 0xe5, 0xa4, - 0x31, 0x00, 0xe8, 0x1d, 0x31, 0x00, 0xe9, 0x1f, 0x31, 0x00, 0xee, 0x23, - 0x31, 0x80, 0x04, 0xf2, 0x26, 0x31, 0x40, 0xe7, 0x25, 0x31, 0x00, 0xee, - 0xa5, 0x31, 0x40, 0xe8, 0x14, 0x31, 0x40, 0xf5, 0xa0, 0x31, 0x40, 0xe8, - 0xbf, 0x31, 0x00, 0xe9, 0x1e, 0x31, 0x80, 0x1c, 0xed, 0xb0, 0x31, 0x00, - 0xee, 0x22, 0x31, 0x80, 0x0b, 0xf5, 0x20, 0x31, 0xc0, 0x00, 0x42, 0xac, - 0x1e, 0xaf, 0x31, 0x40, 0xe7, 0x24, 0x31, 0x00, 0xee, 0xa9, 0x31, 0x40, - 0x42, 0xac, 0x1e, 0xae, 0x31, 0x40, 0xe7, 0xbb, 0x31, 0x00, 0xe8, 0xb7, - 0x31, 0x00, 0xeb, 0xb6, 0x31, 0x00, 0xf0, 0xb4, 0x31, 0x00, 0xf4, 0xb5, - 0x31, 0x40, 0xeb, 0x6e, 0xf5, 0x81, 0x06, 0x46, 0x07, 0xd1, 0x83, 0xfa, - 0x41, 0x44, 0xb9, 0x00, 0x16, 0xf5, 0x81, 0x04, 0xf3, 0xda, 0xf4, 0x41, - 0x45, 0xd1, 0xde, 0xd1, 0xf4, 0x41, 0x55, 0xf7, 0x39, 0xbd, 0xf7, 0x01, - 0x54, 0x4b, 0x41, 0xb1, 0xf7, 0x01, 0x4b, 0x9f, 0x5f, 0xa4, 0xf7, 0x01, - 0xb3, 0x11, 0x06, 0xad, 0x02, 0x01, 0xff, 0x46, 0xe7, 0x02, 0x86, 0xf7, - 0x01, 0x46, 0xab, 0x05, 0x90, 0xf7, 0x41, 0x46, 0xa7, 0x18, 0xab, 0xf7, - 0x01, 0x52, 0xb6, 0x51, 0xb7, 0xf7, 0x41, 0xa1, 0xe8, 0x0a, 0xaf, 0x19, - 0x02, 0x87, 0x13, 0x01, 0xff, 0x80, 0x06, 0x47, 0xad, 0xcc, 0xd0, 0xfa, - 0x41, 0x44, 0x0e, 0xec, 0xd8, 0xf4, 0x01, 0x45, 0x24, 0x21, 0x99, 0xf4, - 0x41, 0x03, 0xe4, 0x02, 0x0c, 0x44, 0x03, 0xbf, 0x3c, 0xf3, 0x01, 0x45, - 0x1c, 0xe9, 0x21, 0xf4, 0x41, 0x07, 0xd5, 0xd0, 0x95, 0x02, 0x08, 0x1a, - 0xc8, 0x01, 0xff, 0xd1, 0x00, 0xfb, 0x81, 0x87, 0x01, 0xd2, 0x01, 0xfb, - 0x81, 0x43, 0xd3, 0x03, 0xfb, 0x81, 0x1f, 0xd4, 0x07, 0xfb, 0x81, 0x0d, - 0xd5, 0x0f, 0xfb, 0x81, 0x04, 0xd6, 0x1e, 0xfb, 0x41, 0xd6, 0x2d, 0xfb, - 0x41, 0xd5, 0x16, 0xfb, 0x81, 0x04, 0xd6, 0x26, 0xfb, 0x41, 0xd6, 0x35, - 0xfb, 0x41, 0xd4, 0x0b, 0xfb, 0x81, 0x0d, 0xd5, 0x13, 0xfb, 0x81, 0x04, - 0xd6, 0x22, 0xfb, 0x41, 0xd6, 0x31, 0xfb, 0x41, 0xd5, 0x1a, 0xfb, 0x81, - 0x04, 0xd6, 0x29, 0xfb, 0x41, 0xd6, 0x39, 0xfb, 0x41, 0xd3, 0x05, 0xfb, - 0x81, 0x1b, 0xd4, 0x09, 0xfb, 0x81, 0x0d, 0xd5, 0x11, 0xfb, 0x81, 0x04, - 0xd6, 0x20, 0xfb, 0x41, 0xd6, 0x2f, 0xfb, 0x41, 0xd5, 0x18, 0xfb, 0xc1, - 0x00, 0xd6, 0x37, 0xfb, 0x41, 0xd4, 0x0d, 0xfb, 0x81, 0x0d, 0xd5, 0x14, - 0xfb, 0x81, 0x04, 0xd6, 0x24, 0xfb, 0x41, 0xd6, 0x33, 0xfb, 0x41, 0xd5, - 0x1c, 0xfb, 0x81, 0x04, 0xd6, 0x2b, 0xfb, 0x41, 0xd6, 0x3b, 0xfb, 0x41, - 0xd2, 0x02, 0xfb, 0x81, 0x40, 0xd3, 0x04, 0xfb, 0x81, 0x1f, 0xd4, 0x08, - 0xfb, 0x81, 0x0d, 0xd5, 0x10, 0xfb, 0x81, 0x04, 0xd6, 0x1f, 0xfb, 0x41, - 0xd6, 0x2e, 0xfb, 0x41, 0xd5, 0x17, 0xfb, 0x81, 0x04, 0xd6, 0x27, 0xfb, - 0x41, 0xd6, 0x36, 0xfb, 0x41, 0xd4, 0x0c, 0xfb, 0x81, 0x0a, 0x42, 0x7a, - 0xc0, 0x32, 0xfb, 0x01, 0xd6, 0x23, 0xfb, 0x41, 0xd5, 0x1b, 0xfb, 0x81, - 0x04, 0xd6, 0x2a, 0xfb, 0x41, 0xd6, 0x3a, 0xfb, 0x41, 0xd3, 0x06, 0xfb, - 0x81, 0x1f, 0xd4, 0x0a, 0xfb, 0x81, 0x0d, 0xd5, 0x12, 0xfb, 0x81, 0x04, - 0xd6, 0x21, 0xfb, 0x41, 0xd6, 0x30, 0xfb, 0x41, 0xd5, 0x19, 0xfb, 0x81, - 0x04, 0xd6, 0x28, 0xfb, 0x41, 0xd6, 0x38, 0xfb, 0x41, 0xd4, 0x0e, 0xfb, - 0x81, 0x0d, 0xd5, 0x15, 0xfb, 0x81, 0x04, 0xd6, 0x25, 0xfb, 0x41, 0xd6, - 0x34, 0xfb, 0x41, 0xd5, 0x1d, 0xfb, 0x01, 0xd6, 0x2c, 0xfb, 0x41, 0x91, - 0x86, 0x04, 0x92, 0xf7, 0x01, 0xd3, 0x00, 0xcd, 0x81, 0x6f, 0xd4, 0x03, - 0xcd, 0x81, 0x2a, 0xd5, 0x09, 0xcd, 0x81, 0x0e, 0xd6, 0x18, 0xcd, 0xc1, - 0x00, 0xd7, 0x51, 0xcd, 0xc1, 0x00, 0xd8, 0xcb, 0xcd, 0x41, 0xd6, 0x27, - 0xcd, 0x81, 0x0a, 0x42, 0xba, 0xf1, 0xbb, 0xcd, 0x01, 0xd8, 0x80, 0xcd, - 0x41, 0xd7, 0x61, 0xcd, 0x01, 0xd8, 0x9c, 0xcd, 0x41, 0xd5, 0x10, 0xcd, - 0x81, 0x1c, 0x96, 0x0d, 0xd7, 0x3d, 0xcd, 0x81, 0x04, 0xd8, 0x78, 0xcd, - 0x41, 0xd8, 0xb3, 0xcd, 0x41, 0xd7, 0x59, 0xcd, 0x81, 0x04, 0xd8, 0x96, - 0xcd, 0x41, 0xd8, 0xd3, 0xcd, 0x41, 0xd6, 0x2f, 0xcd, 0x81, 0x0d, 0xd7, - 0x4b, 0xcd, 0x81, 0x04, 0xd8, 0x88, 0xcd, 0x41, 0xd8, 0xc3, 0xcd, 0x41, - 0xd7, 0x69, 0xcd, 0x81, 0x04, 0xd8, 0xa4, 0xcd, 0x41, 0xd8, 0xe1, 0xcd, - 0x41, 0xd4, 0x06, 0xcd, 0x81, 0x40, 0x95, 0x1f, 0xd6, 0x1c, 0xcd, 0x81, - 0x0d, 0xd7, 0x39, 0xcd, 0x81, 0x04, 0xd8, 0x74, 0xcd, 0x41, 0xd8, 0xaf, - 0xcd, 0x41, 0xd7, 0x55, 0xcd, 0x81, 0x04, 0xd8, 0x93, 0xcd, 0x41, 0xd8, - 0xcf, 0xcd, 0x41, 0xd6, 0x2b, 0xcd, 0x81, 0x0d, 0xd7, 0x48, 0xcd, 0x81, - 0x04, 0xd8, 0x84, 0xcd, 0x41, 0xd8, 0xbf, 0xcd, 0x41, 0xd7, 0x65, 0xcd, - 0x81, 0x04, 0xd8, 0xa0, 0xcd, 0x41, 0xd8, 0xde, 0xcd, 0x41, 0xd5, 0x14, - 0xcd, 0x81, 0x1f, 0xd6, 0x23, 0xcd, 0x81, 0x0d, 0xd7, 0x41, 0xcd, 0x81, - 0x04, 0xd8, 0x7c, 0xcd, 0x41, 0xd8, 0xb7, 0xcd, 0x41, 0xd7, 0x5d, 0xcd, - 0x81, 0x04, 0xd8, 0x99, 0xcd, 0x41, 0xd8, 0xd7, 0xcd, 0x41, 0xd6, 0x33, - 0xcd, 0x81, 0x0d, 0xd7, 0x4e, 0xcd, 0x81, 0x04, 0xd8, 0x8c, 0xcd, 0x41, - 0xd8, 0xc7, 0xcd, 0x41, 0xd7, 0x6d, 0xcd, 0x01, 0xd8, 0xa8, 0xcd, 0x41, - 0xd3, 0x01, 0xcd, 0x81, 0x7c, 0x94, 0x43, 0xd5, 0x0b, 0xcd, 0x81, 0x1f, - 0xd6, 0x1a, 0xcd, 0x81, 0x0d, 0xd7, 0x37, 0xcd, 0x81, 0x04, 0xd8, 0x72, - 0xcd, 0x41, 0xd8, 0xad, 0xcd, 0x41, 0xd7, 0x53, 0xcd, 0x81, 0x04, 0xd8, - 0x91, 0xcd, 0x41, 0xd8, 0xcd, 0xcd, 0x41, 0xd6, 0x29, 0xcd, 0x81, 0x0d, - 0xd7, 0x46, 0xcd, 0x81, 0x04, 0xd8, 0x82, 0xcd, 0x41, 0xd8, 0xbd, 0xcd, - 0x41, 0xd7, 0x63, 0xcd, 0x81, 0x04, 0xd8, 0x9e, 0xcd, 0x41, 0xd8, 0xdc, - 0xcd, 0x41, 0xd5, 0x12, 0xcd, 0x81, 0x1b, 0xd6, 0x21, 0xcd, 0x81, 0x0d, - 0xd7, 0x3f, 0xcd, 0x81, 0x04, 0xd8, 0x7a, 0xcd, 0x41, 0xd8, 0xb5, 0xcd, - 0x41, 0xd7, 0x5b, 0xcd, 0xc1, 0x00, 0xd8, 0xd5, 0xcd, 0x41, 0xd6, 0x31, - 0xcd, 0x81, 0x0a, 0x42, 0xba, 0xf1, 0xc5, 0xcd, 0x01, 0xd8, 0x8a, 0xcd, - 0x41, 0xd7, 0x6b, 0xcd, 0x01, 0xd8, 0xa6, 0xcd, 0x41, 0xd4, 0x08, 0xcd, - 0x81, 0x43, 0xd5, 0x0e, 0xcd, 0x81, 0x1f, 0xd6, 0x1e, 0xcd, 0x81, 0x0d, - 0xd7, 0x3b, 0xcd, 0x81, 0x04, 0xd8, 0x76, 0xcd, 0x41, 0xd8, 0xb1, 0xcd, - 0x41, 0xd7, 0x57, 0xcd, 0x81, 0x04, 0xd8, 0x94, 0xcd, 0x41, 0xd8, 0xd1, - 0xcd, 0x41, 0xd6, 0x2d, 0xcd, 0x81, 0x0d, 0xd7, 0x49, 0xcd, 0x81, 0x04, - 0xd8, 0x86, 0xcd, 0x41, 0xd8, 0xc1, 0xcd, 0x41, 0xd7, 0x67, 0xcd, 0x81, - 0x04, 0xd8, 0xa2, 0xcd, 0x41, 0xd8, 0xdf, 0xcd, 0x41, 0xd5, 0x16, 0xcd, - 0x81, 0x1f, 0xd6, 0x25, 0xcd, 0x81, 0x0d, 0xd7, 0x43, 0xcd, 0x81, 0x04, - 0xd8, 0x7e, 0xcd, 0x41, 0xd8, 0xb9, 0xcd, 0x41, 0xd7, 0x5f, 0xcd, 0x81, - 0x04, 0xd8, 0x9b, 0xcd, 0x41, 0xd8, 0xd9, 0xcd, 0x41, 0xd6, 0x35, 0xcd, - 0x81, 0x0d, 0xd7, 0x50, 0xcd, 0x81, 0x04, 0xd8, 0x8e, 0xcd, 0x41, 0xd8, - 0xc9, 0xcd, 0x41, 0xd7, 0x6f, 0xcd, 0x81, 0x04, 0xd8, 0xaa, 0xcd, 0x41, - 0xd8, 0xe5, 0xcd, 0x41, 0x92, 0x8d, 0x02, 0x93, 0x8b, 0x01, 0xd4, 0x04, - 0xcd, 0x81, 0x43, 0xd5, 0x0a, 0xcd, 0x81, 0x1f, 0xd6, 0x19, 0xcd, 0x81, - 0x0d, 0xd7, 0x36, 0xcd, 0x81, 0x04, 0xd8, 0x71, 0xcd, 0x41, 0xd8, 0xac, - 0xcd, 0x41, 0xd7, 0x52, 0xcd, 0x81, 0x04, 0xd8, 0x90, 0xcd, 0x41, 0xd8, - 0xcc, 0xcd, 0x41, 0xd6, 0x28, 0xcd, 0x81, 0x0d, 0xd7, 0x45, 0xcd, 0x81, - 0x04, 0xd8, 0x81, 0xcd, 0x41, 0xd8, 0xbc, 0xcd, 0x41, 0xd7, 0x62, 0xcd, - 0x81, 0x04, 0xd8, 0x9d, 0xcd, 0x41, 0xd8, 0xdb, 0xcd, 0x41, 0xd5, 0x11, - 0xcd, 0x81, 0x1f, 0xd6, 0x20, 0xcd, 0x81, 0x0d, 0xd7, 0x3e, 0xcd, 0x81, - 0x04, 0xd8, 0x79, 0xcd, 0x41, 0xd8, 0xb4, 0xcd, 0x41, 0xd7, 0x5a, 0xcd, - 0x81, 0x04, 0xd8, 0x97, 0xcd, 0x41, 0xd8, 0xd4, 0xcd, 0x41, 0xd6, 0x30, - 0xcd, 0x81, 0x0d, 0xd7, 0x4c, 0xcd, 0x81, 0x04, 0xd8, 0x89, 0xcd, 0x41, - 0xd8, 0xc4, 0xcd, 0x41, 0xd7, 0x6a, 0xcd, 0x81, 0x04, 0xd8, 0xa5, 0xcd, - 0x41, 0xd8, 0xe2, 0xcd, 0x41, 0xd4, 0x07, 0xcd, 0x81, 0x37, 0xd5, 0x0d, - 0xcd, 0x81, 0x1b, 0xd6, 0x1d, 0xcd, 0x81, 0x0d, 0xd7, 0x3a, 0xcd, 0x81, - 0x04, 0xd8, 0x75, 0xcd, 0x41, 0xd8, 0xb0, 0xcd, 0x41, 0xd7, 0x56, 0xcd, - 0xc1, 0x00, 0xd8, 0xd0, 0xcd, 0x41, 0xd6, 0x2c, 0xcd, 0x81, 0x0a, 0x42, - 0xba, 0xf1, 0xc0, 0xcd, 0x01, 0xd8, 0x85, 0xcd, 0x41, 0xd7, 0x66, 0xcd, - 0x01, 0xd8, 0xa1, 0xcd, 0x41, 0xd5, 0x15, 0xcd, 0x81, 0x1f, 0xd6, 0x24, - 0xcd, 0x81, 0x0d, 0xd7, 0x42, 0xcd, 0x81, 0x04, 0xd8, 0x7d, 0xcd, 0x41, - 0xd8, 0xb8, 0xcd, 0x41, 0xd7, 0x5e, 0xcd, 0x81, 0x04, 0xd8, 0x9a, 0xcd, - 0x41, 0xd8, 0xd8, 0xcd, 0x41, 0xd6, 0x34, 0xcd, 0x81, 0x0d, 0xd7, 0x4f, - 0xcd, 0x81, 0x04, 0xd8, 0x8d, 0xcd, 0x41, 0xd8, 0xc8, 0xcd, 0x41, 0xd7, - 0x6e, 0xcd, 0x81, 0x04, 0xd8, 0xa9, 0xcd, 0x41, 0xd8, 0xe4, 0xcd, 0x41, - 0xd3, 0x02, 0xcd, 0x81, 0x8b, 0x01, 0xd4, 0x05, 0xcd, 0x81, 0x43, 0xd5, - 0x0c, 0xcd, 0x81, 0x1f, 0xd6, 0x1b, 0xcd, 0x81, 0x0d, 0xd7, 0x38, 0xcd, - 0x81, 0x04, 0xd8, 0x73, 0xcd, 0x41, 0xd8, 0xae, 0xcd, 0x41, 0xd7, 0x54, - 0xcd, 0x81, 0x04, 0xd8, 0x92, 0xcd, 0x41, 0xd8, 0xce, 0xcd, 0x41, 0xd6, - 0x2a, 0xcd, 0x81, 0x0d, 0xd7, 0x47, 0xcd, 0x81, 0x04, 0xd8, 0x83, 0xcd, - 0x41, 0xd8, 0xbe, 0xcd, 0x41, 0xd7, 0x64, 0xcd, 0x81, 0x04, 0xd8, 0x9f, - 0xcd, 0x41, 0xd8, 0xdd, 0xcd, 0x41, 0xd5, 0x13, 0xcd, 0x81, 0x1f, 0xd6, - 0x22, 0xcd, 0x81, 0x0d, 0xd7, 0x40, 0xcd, 0x81, 0x04, 0xd8, 0x7b, 0xcd, - 0x41, 0xd8, 0xb6, 0xcd, 0x41, 0xd7, 0x5c, 0xcd, 0x81, 0x04, 0xd8, 0x98, - 0xcd, 0x41, 0xd8, 0xd6, 0xcd, 0x41, 0xd6, 0x32, 0xcd, 0x81, 0x0d, 0xd7, - 0x4d, 0xcd, 0x81, 0x04, 0xd8, 0x8b, 0xcd, 0x41, 0xd8, 0xc6, 0xcd, 0x41, - 0xd7, 0x6c, 0xcd, 0x81, 0x04, 0xd8, 0xa7, 0xcd, 0x41, 0xd8, 0xe3, 0xcd, - 0x41, 0x94, 0x43, 0xd5, 0x0f, 0xcd, 0x81, 0x1f, 0xd6, 0x1f, 0xcd, 0x81, - 0x0d, 0xd7, 0x3c, 0xcd, 0x81, 0x04, 0xd8, 0x77, 0xcd, 0x41, 0xd8, 0xb2, - 0xcd, 0x41, 0xd7, 0x58, 0xcd, 0x81, 0x04, 0xd8, 0x95, 0xcd, 0x41, 0xd8, - 0xd2, 0xcd, 0x41, 0xd6, 0x2e, 0xcd, 0x81, 0x0d, 0xd7, 0x4a, 0xcd, 0x81, - 0x04, 0xd8, 0x87, 0xcd, 0x41, 0xd8, 0xc2, 0xcd, 0x41, 0xd7, 0x68, 0xcd, - 0x81, 0x04, 0xd8, 0xa3, 0xcd, 0x41, 0xd8, 0xe0, 0xcd, 0x41, 0xd5, 0x17, - 0xcd, 0x81, 0x1b, 0xd6, 0x26, 0xcd, 0x81, 0x0d, 0xd7, 0x44, 0xcd, 0x81, - 0x04, 0xd8, 0x7f, 0xcd, 0x41, 0xd8, 0xba, 0xcd, 0x41, 0xd7, 0x60, 0xcd, - 0xc1, 0x00, 0xd8, 0xda, 0xcd, 0x41, 0x96, 0x0a, 0x42, 0xba, 0xf1, 0xca, - 0xcd, 0x01, 0xd8, 0x8f, 0xcd, 0x41, 0xd7, 0x70, 0xcd, 0x01, 0xd8, 0xab, - 0xcd, 0x41, 0x02, 0x36, 0x01, 0x06, 0x49, 0x76, 0x97, 0x22, 0x24, 0x40, - 0x80, 0x32, 0x8d, 0x01, 0xff, 0x0a, 0xa0, 0x19, 0x19, 0x0f, 0xed, 0x6d, - 0x01, 0xff, 0xe3, 0x2d, 0x21, 0x00, 0xe8, 0x0c, 0x21, 0x00, 0xe9, 0x11, - 0x21, 0x00, 0xf2, 0x1c, 0x21, 0x00, 0xfa, 0x28, 0x21, 0x40, 0x50, 0x1f, - 0x23, 0xb6, 0x27, 0x00, 0x50, 0xb3, 0x02, 0xb5, 0x27, 0x00, 0x50, 0x83, - 0x3f, 0xb4, 0x27, 0x40, 0x46, 0x5a, 0xd7, 0xd3, 0x29, 0x00, 0xa3, 0xb4, - 0x07, 0xa4, 0xc4, 0x06, 0xa6, 0xa4, 0x06, 0xa8, 0xf7, 0x05, 0xac, 0xd4, - 0x04, 0xad, 0xe5, 0x03, 0xae, 0xd6, 0x03, 0x47, 0xce, 0xd0, 0xc4, 0x2b, - 0x00, 0xb0, 0xb1, 0x03, 0x56, 0xb1, 0x35, 0x53, 0x27, 0x00, 0xb2, 0xaa, - 0x02, 0xb3, 0x9f, 0x01, 0xb4, 0x6f, 0xb5, 0x2c, 0x03, 0x32, 0x00, 0x01, - 0xff, 0x06, 0x35, 0x00, 0x17, 0x08, 0x35, 0x0a, 0x01, 0xff, 0x47, 0x88, - 0x43, 0x98, 0xf7, 0x01, 0x47, 0x19, 0x0a, 0x9e, 0xf7, 0x01, 0x46, 0xab, - 0x05, 0x1d, 0x2b, 0x40, 0x47, 0x63, 0x65, 0x2e, 0x2b, 0x00, 0x49, 0x3a, - 0x46, 0xae, 0x25, 0x40, 0x59, 0x8d, 0x24, 0x7b, 0x26, 0x00, 0xb0, 0x01, - 0xff, 0x58, 0x35, 0x26, 0xa2, 0xf5, 0x01, 0x0a, 0x3d, 0x0b, 0x16, 0x04, - 0x6f, 0x02, 0x06, 0x5b, 0xcf, 0x01, 0x9d, 0x2b, 0x40, 0x4d, 0x7d, 0x34, - 0xe4, 0x25, 0x00, 0x4e, 0xc7, 0x28, 0xe5, 0x25, 0x40, 0x4f, 0xa5, 0x6a, - 0xeb, 0x23, 0x00, 0x58, 0xbd, 0x28, 0x81, 0xf7, 0x01, 0x4e, 0xd7, 0x0b, - 0xb4, 0x25, 0x00, 0x48, 0x01, 0x02, 0xb2, 0x25, 0x40, 0x48, 0x47, 0x3c, - 0x0e, 0x26, 0x00, 0x04, 0x5a, 0xed, 0x12, 0x52, 0x0c, 0x53, 0x7f, 0xf5, - 0x01, 0x44, 0xad, 0x75, 0xdf, 0x26, 0x00, 0x57, 0x21, 0x31, 0xd6, 0x26, - 0x40, 0x47, 0x88, 0x43, 0x97, 0xf7, 0x01, 0x47, 0x19, 0x0a, 0x9d, 0xf7, - 0x01, 0x46, 0xab, 0x05, 0x8c, 0xf7, 0x41, 0x4e, 0x2a, 0x74, 0x00, 0x27, - 0x00, 0x47, 0x62, 0x3d, 0x02, 0x27, 0x00, 0x4a, 0x1b, 0x5e, 0x17, 0x26, - 0x00, 0x53, 0x78, 0x49, 0x71, 0xf5, 0x01, 0x0e, 0x28, 0x78, 0x60, 0xad, - 0x34, 0x46, 0x7a, 0xdb, 0xc7, 0x26, 0x00, 0x49, 0x7a, 0xbb, 0x60, 0x26, - 0x00, 0x45, 0xac, 0x05, 0xa0, 0x25, 0x80, 0x0c, 0x43, 0xe3, 0x12, 0x05, - 0x26, 0x00, 0x4c, 0x81, 0x94, 0x00, 0x26, 0x40, 0x80, 0x01, 0xff, 0x46, - 0x45, 0x8b, 0x32, 0xf5, 0x01, 0x47, 0x3f, 0x67, 0xc0, 0x2b, 0x00, 0x48, - 0xaa, 0xc3, 0xf9, 0x23, 0x40, 0x04, 0x0e, 0x07, 0x06, 0x4a, 0x93, 0x93, - 0x3b, 0x26, 0x40, 0x47, 0x88, 0x43, 0x29, 0x2b, 0x00, 0x47, 0x19, 0x0a, - 0x2a, 0x2b, 0x00, 0xb3, 0x06, 0x53, 0xf5, 0x4c, 0xcd, 0xfb, 0x41, 0x45, - 0xac, 0x05, 0xaa, 0x25, 0x00, 0x43, 0xe3, 0x12, 0x51, 0x2b, 0x40, 0x46, - 0xe7, 0x02, 0x84, 0xf7, 0x01, 0x46, 0xab, 0x05, 0x8d, 0xf7, 0x41, 0x48, - 0x3b, 0x46, 0xac, 0x25, 0x00, 0x04, 0xc9, 0x00, 0x06, 0x46, 0xf2, 0xdb, - 0xf6, 0xf3, 0x41, 0x80, 0x56, 0x0a, 0x3d, 0x0b, 0x1e, 0x06, 0xa9, 0x01, - 0x01, 0xff, 0x45, 0xce, 0x00, 0xa1, 0x27, 0x80, 0x0c, 0x46, 0x2a, 0x21, - 0x4d, 0x20, 0x00, 0x55, 0xd5, 0x01, 0x9e, 0x2b, 0x40, 0x44, 0xe6, 0x01, - 0xa4, 0x27, 0x40, 0x4f, 0xa5, 0x6a, 0xe9, 0x23, 0x80, 0x27, 0x58, 0xbd, - 0x28, 0x82, 0xf7, 0x01, 0xb0, 0x13, 0x4e, 0xd7, 0x0b, 0xb8, 0x25, 0x00, - 0x48, 0x01, 0x02, 0xb6, 0x25, 0xc0, 0x00, 0x59, 0xb2, 0x22, 0xef, 0x23, - 0x40, 0x47, 0x3b, 0xc7, 0x53, 0x2b, 0x00, 0x46, 0xa1, 0x48, 0xba, 0x25, - 0x40, 0x52, 0xf8, 0x1d, 0xed, 0x23, 0x40, 0x09, 0x9c, 0x01, 0x06, 0x4e, - 0xee, 0x7b, 0xb3, 0xce, 0x41, 0x4e, 0x3f, 0x26, 0x9d, 0xf5, 0x01, 0x45, - 0x40, 0x13, 0x1b, 0x26, 0x40, 0x4c, 0xa9, 0x8a, 0xb0, 0x25, 0x00, 0x02, - 0x92, 0x01, 0x06, 0x46, 0x26, 0xd2, 0x88, 0xf5, 0x41, 0x44, 0x5c, 0x32, - 0xf2, 0xf3, 0x01, 0x45, 0x3d, 0xc7, 0x1f, 0x2b, 0x40, 0x4b, 0xe6, 0x90, - 0x6f, 0xcc, 0x01, 0x42, 0xaa, 0x17, 0x12, 0x27, 0x40, 0x06, 0x1a, 0x04, - 0x06, 0x4a, 0x89, 0xac, 0xb8, 0x26, 0x40, 0xa4, 0x4d, 0xac, 0x38, 0x57, - 0x0d, 0x30, 0xf5, 0x23, 0x80, 0x2b, 0xb3, 0x0d, 0x54, 0x47, 0x45, 0xf6, - 0x23, 0xc0, 0x00, 0x48, 0x3e, 0x67, 0xc5, 0x2b, 0x40, 0x05, 0x0d, 0x07, - 0x06, 0x45, 0xac, 0x05, 0xfc, 0x25, 0x40, 0x47, 0x88, 0x43, 0x99, 0xf7, - 0x01, 0x47, 0x19, 0x0a, 0x9f, 0xf7, 0x01, 0x46, 0xab, 0x05, 0xfe, 0x25, - 0x40, 0x48, 0x3e, 0x67, 0xc8, 0x2b, 0x40, 0x55, 0x94, 0x34, 0xf4, 0x23, - 0x80, 0x06, 0x46, 0x1a, 0x0a, 0x27, 0x2b, 0x40, 0x48, 0x3e, 0x67, 0xc7, - 0x2b, 0x40, 0x46, 0x89, 0x43, 0x25, 0x2b, 0x00, 0x55, 0xf2, 0x32, 0xf7, - 0x23, 0xc0, 0x00, 0x48, 0x3e, 0x67, 0xc6, 0x2b, 0x40, 0x05, 0xa1, 0x1b, - 0x70, 0x03, 0xc4, 0x00, 0x19, 0xaf, 0x01, 0xff, 0x04, 0x15, 0x01, 0x06, - 0x45, 0xfc, 0x09, 0xeb, 0x29, 0x40, 0x4d, 0x7d, 0x34, 0xe3, 0x25, 0x00, - 0x4e, 0xc7, 0x28, 0xe2, 0x25, 0x40, 0x80, 0x3a, 0x0a, 0x3d, 0x0b, 0x11, - 0x06, 0xa9, 0x01, 0x01, 0xff, 0x46, 0x2a, 0x21, 0x4c, 0x20, 0x00, 0x55, - 0xd5, 0x01, 0x9c, 0x2b, 0x40, 0x4f, 0xa5, 0x6a, 0xea, 0x23, 0x80, 0x18, - 0x58, 0xbd, 0x28, 0x80, 0xf7, 0x01, 0x47, 0xa0, 0x48, 0xc4, 0x25, 0x00, - 0x4e, 0xd7, 0x0b, 0xc2, 0x25, 0x00, 0x48, 0x01, 0x02, 0xc0, 0x25, 0x40, - 0x52, 0xf8, 0x1d, 0xee, 0x23, 0x40, 0x4a, 0x31, 0xaa, 0xd8, 0x26, 0x00, - 0x09, 0x9c, 0x01, 0x01, 0xff, 0x4e, 0x3f, 0x26, 0x9c, 0xf5, 0x01, 0x45, - 0x40, 0x13, 0x1a, 0x26, 0x40, 0x46, 0xe7, 0x02, 0x24, 0x2b, 0x80, 0x06, - 0x46, 0xab, 0x05, 0x1b, 0x2b, 0x40, 0x07, 0x99, 0xca, 0x01, 0xff, 0xac, - 0x0c, 0x55, 0x00, 0x3d, 0x6d, 0xcc, 0x01, 0x55, 0xd2, 0x3d, 0x6c, 0xcc, - 0x41, 0x53, 0xe9, 0x47, 0x6b, 0xcc, 0x01, 0x54, 0xcb, 0x43, 0x6e, 0xcc, - 0x41, 0x55, 0x7d, 0x38, 0xaa, 0xf5, 0x01, 0xa5, 0x0f, 0xaf, 0x01, 0xff, - 0x50, 0x5a, 0x65, 0x2c, 0x2b, 0x00, 0x47, 0x2b, 0xd4, 0xd7, 0x29, 0x40, - 0x43, 0x2c, 0x01, 0xa4, 0xf5, 0x81, 0x06, 0x45, 0xb5, 0xce, 0x22, 0x2b, - 0x40, 0x45, 0xfd, 0x26, 0x65, 0x26, 0x40, 0xac, 0x0f, 0xaf, 0x01, 0xff, - 0x44, 0x79, 0x1d, 0xbf, 0xf5, 0x01, 0x4f, 0xd9, 0x72, 0x26, 0x27, 0x40, - 0x42, 0x23, 0x02, 0x91, 0x26, 0x00, 0x46, 0x5f, 0x0f, 0x3f, 0x27, 0x40, - 0x46, 0x89, 0x43, 0xc6, 0x25, 0x80, 0x45, 0x03, 0xa6, 0x01, 0x19, 0xb2, - 0x01, 0xff, 0x07, 0x8b, 0xc7, 0x06, 0x45, 0x74, 0xe6, 0x22, 0xf3, 0x41, - 0x44, 0xe2, 0x33, 0xc3, 0x26, 0x00, 0x43, 0xd5, 0x17, 0xc2, 0x26, 0x40, - 0x58, 0x35, 0x26, 0xa3, 0xf5, 0x01, 0x0a, 0x3d, 0x0b, 0x06, 0x5b, 0xcf, - 0x01, 0x9f, 0x2b, 0x40, 0x4f, 0xa5, 0x6a, 0xec, 0x23, 0x00, 0x58, 0xbd, - 0x28, 0x83, 0xf7, 0x01, 0x4e, 0xd7, 0x0b, 0xbe, 0x25, 0x00, 0x48, 0x01, - 0x02, 0xbc, 0x25, 0x40, 0x80, 0x01, 0xff, 0x47, 0x3f, 0x67, 0xc1, 0x2b, - 0x00, 0x4d, 0x55, 0x84, 0x56, 0x27, 0x00, 0x48, 0xa2, 0xc6, 0xde, 0x2b, - 0x00, 0x44, 0xfe, 0x26, 0x66, 0x26, 0x00, 0x4f, 0x42, 0x73, 0xea, 0x29, - 0x40, 0x50, 0x4a, 0x61, 0x2c, 0x27, 0x00, 0x05, 0x8e, 0x86, 0x79, 0x45, - 0xe8, 0x02, 0xcf, 0x25, 0x80, 0x52, 0x48, 0x6a, 0xc5, 0x63, 0x26, 0x00, - 0x4e, 0x74, 0x7a, 0xe8, 0x26, 0x00, 0x06, 0x70, 0x40, 0x01, 0xff, 0x0e, - 0xb5, 0x04, 0x31, 0x0e, 0xe2, 0x77, 0x21, 0x0f, 0x08, 0x71, 0x11, 0x0c, - 0x32, 0x19, 0x01, 0xff, 0x4f, 0x37, 0x07, 0xaa, 0x2b, 0x00, 0x50, 0xb3, - 0x02, 0xab, 0x2b, 0x40, 0x4f, 0xe5, 0x0b, 0xaf, 0x2b, 0x00, 0x4d, 0x1f, - 0x20, 0xad, 0x2b, 0x40, 0x4f, 0xe5, 0x0b, 0xae, 0x2b, 0x00, 0x4d, 0x1f, - 0x20, 0xac, 0x2b, 0x40, 0x4f, 0x37, 0x07, 0xa8, 0x2b, 0x00, 0x50, 0xb3, - 0x02, 0xa9, 0x2b, 0x40, 0x80, 0x01, 0xff, 0x4a, 0x29, 0xa8, 0xfa, 0x23, - 0x00, 0x05, 0x51, 0x00, 0x01, 0xff, 0x4a, 0xbf, 0x40, 0xed, 0x29, 0x00, - 0x4e, 0x42, 0x7c, 0x89, 0x26, 0x00, 0x4f, 0x33, 0x73, 0x88, 0x26, 0x40, - 0x46, 0x48, 0xd7, 0x5d, 0x26, 0x80, 0xe7, 0x01, 0x4a, 0xd9, 0xa7, 0x49, - 0xfa, 0x81, 0xd9, 0x01, 0xab, 0x73, 0x44, 0xb6, 0xee, 0x5f, 0x26, 0x80, - 0x5b, 0x45, 0xe6, 0xbb, 0x5b, 0x26, 0x80, 0x43, 0x44, 0x0a, 0xef, 0x5c, - 0x26, 0x80, 0x2b, 0x07, 0xd8, 0x09, 0x01, 0xff, 0x46, 0x48, 0xd7, 0x27, - 0xfa, 0x01, 0xab, 0x12, 0x44, 0xb6, 0xee, 0x29, 0xfa, 0x01, 0x45, 0xe6, - 0xbb, 0x25, 0xfa, 0x01, 0x44, 0x0a, 0xef, 0x26, 0xfa, 0x41, 0x43, 0xa1, - 0x01, 0x24, 0xfa, 0x01, 0x45, 0xd5, 0x71, 0x28, 0xfa, 0x41, 0x09, 0x02, - 0x2c, 0x01, 0xff, 0x4e, 0x0b, 0x2c, 0x11, 0xfa, 0x01, 0x5b, 0x1a, 0x1d, - 0x3b, 0xfa, 0x41, 0x09, 0x02, 0x2c, 0x01, 0xff, 0x4e, 0x0b, 0x2c, 0x10, - 0xfa, 0x01, 0x5b, 0x1a, 0x1d, 0x3a, 0xfa, 0x41, 0x09, 0x02, 0x2c, 0x01, - 0xff, 0x4e, 0x0b, 0x2c, 0x14, 0xfa, 0x01, 0x5b, 0x1a, 0x1d, 0x3e, 0xfa, - 0x41, 0x43, 0xa1, 0x01, 0x5a, 0x26, 0x80, 0x4c, 0x45, 0xd5, 0x71, 0x5e, - 0x26, 0xc0, 0x00, 0x09, 0x02, 0x2c, 0x15, 0x8d, 0x01, 0xff, 0x46, 0x48, - 0xd7, 0x53, 0xfa, 0x01, 0x45, 0xe6, 0xbb, 0x51, 0xfa, 0x01, 0x44, 0x0a, - 0xef, 0x52, 0xfa, 0x41, 0x52, 0x84, 0x50, 0x07, 0xfa, 0x01, 0x4e, 0x0b, - 0x2c, 0x13, 0xfa, 0x01, 0x5f, 0x1e, 0x11, 0x1c, 0xfa, 0x01, 0xb4, 0x01, - 0xff, 0x5c, 0x8e, 0x17, 0x46, 0xfa, 0x01, 0x0b, 0x1b, 0x1d, 0x01, 0xff, - 0x4f, 0x26, 0x1d, 0x3d, 0xfa, 0x01, 0x53, 0xa9, 0x4c, 0x31, 0xfa, 0x41, - 0x09, 0x02, 0x2c, 0x01, 0xff, 0x4e, 0x0b, 0x2c, 0x0f, 0xfa, 0x01, 0x5b, - 0x1a, 0x1d, 0x39, 0xfa, 0x41, 0x57, 0x02, 0x2c, 0x4c, 0xfa, 0x41, 0x09, - 0x02, 0x2c, 0x01, 0xff, 0x4e, 0x0b, 0x2c, 0x12, 0xfa, 0x01, 0x5b, 0x1a, - 0x1d, 0x3c, 0xfa, 0x41, 0x04, 0x98, 0x24, 0x4d, 0x02, 0xa3, 0x01, 0x3d, - 0x44, 0x9e, 0xed, 0x59, 0xf4, 0x01, 0x02, 0x0f, 0x07, 0x27, 0x4c, 0x45, - 0x91, 0x23, 0x26, 0x00, 0xb2, 0x15, 0x43, 0x7f, 0x1c, 0xac, 0xf9, 0x01, - 0xb4, 0x01, 0xff, 0x49, 0xf9, 0xb4, 0xbf, 0x20, 0x00, 0x47, 0x75, 0x8f, - 0xe6, 0xfa, 0x41, 0xe4, 0x26, 0xf4, 0x01, 0x4a, 0x8b, 0xaf, 0x82, 0xf3, - 0x41, 0x46, 0x32, 0xd8, 0xe2, 0xf9, 0x01, 0x45, 0x2b, 0xe4, 0xb1, 0xf3, - 0x41, 0x4f, 0xcc, 0x70, 0xf9, 0x29, 0x00, 0x47, 0x69, 0x30, 0xf8, 0x29, - 0x40, 0xe5, 0xb2, 0xf6, 0x01, 0x43, 0xa3, 0x23, 0xb4, 0xf6, 0x41, 0xa4, - 0x92, 0x04, 0x0b, 0x1e, 0x9a, 0x85, 0x04, 0x52, 0x38, 0x51, 0x6c, 0x1c, - 0x01, 0x07, 0xc1, 0x05, 0xee, 0x01, 0x07, 0x2f, 0x39, 0x6d, 0x05, 0x2f, - 0x03, 0x44, 0x0b, 0xd1, 0x75, 0x06, 0x4e, 0x68, 0x7d, 0x43, 0x1c, 0x41, - 0xa1, 0x2c, 0xe5, 0x38, 0x1c, 0x01, 0xe9, 0x30, 0x1c, 0x81, 0x1f, 0xef, - 0x3a, 0x1c, 0x01, 0xf5, 0x32, 0x1c, 0x81, 0x12, 0x08, 0x9b, 0xbe, 0x01, - 0xff, 0xec, 0x36, 0x1c, 0x01, 0xf2, 0x34, 0x1c, 0xc1, 0x00, 0xf2, 0x35, - 0x1c, 0x41, 0xf5, 0x33, 0x1c, 0x41, 0xe9, 0x31, 0x1c, 0x41, 0xe1, 0x2f, - 0x1c, 0x01, 0xe9, 0x39, 0x1c, 0x01, 0xf5, 0x3b, 0x1c, 0x41, 0xa1, 0x17, - 0x4b, 0x4f, 0x23, 0x3c, 0x1c, 0x01, 0x02, 0x02, 0x00, 0x01, 0xff, 0x44, - 0x5d, 0x23, 0x3f, 0x1c, 0x01, 0x45, 0xa3, 0x4a, 0x3e, 0x1c, 0x41, 0x47, - 0xd1, 0x15, 0x3d, 0x1c, 0x01, 0x47, 0xf2, 0x86, 0x40, 0x1c, 0x41, 0x45, - 0xc3, 0x0a, 0x61, 0x1c, 0x81, 0x72, 0xa6, 0x53, 0x44, 0x46, 0x2a, 0x62, - 0x1c, 0x81, 0x46, 0x43, 0xbf, 0x0a, 0x5a, 0x1c, 0x01, 0xb3, 0x24, 0xb4, - 0x01, 0xff, 0x42, 0x92, 0x01, 0x63, 0x1c, 0x01, 0xa8, 0x0d, 0xb7, 0x01, - 0xff, 0x44, 0x29, 0x1d, 0x64, 0x1c, 0x01, 0xef, 0x5b, 0x1c, 0x41, 0x44, - 0x2c, 0x11, 0x65, 0x1c, 0x01, 0x43, 0x26, 0x01, 0x5c, 0x1c, 0x41, 0x44, - 0x27, 0x1d, 0x60, 0x1c, 0x81, 0x0d, 0x42, 0x60, 0x25, 0x5f, 0x1c, 0xc1, - 0x00, 0x42, 0x2e, 0x11, 0x68, 0x1c, 0x41, 0x42, 0x2e, 0x11, 0x69, 0x1c, - 0x41, 0x42, 0x2e, 0x11, 0x6b, 0x1c, 0x41, 0xa9, 0x0f, 0xaf, 0x01, 0xff, - 0x43, 0x2d, 0x11, 0x66, 0x1c, 0x01, 0x42, 0x42, 0x00, 0x5d, 0x1c, 0x41, - 0x43, 0x09, 0x4c, 0x67, 0x1c, 0x01, 0x42, 0x32, 0x00, 0x5e, 0x1c, 0x41, - 0xf9, 0x6a, 0x1c, 0x41, 0xe1, 0x00, 0x1c, 0x81, 0xfa, 0x01, 0xa2, 0xed, - 0x01, 0xa3, 0xe0, 0x01, 0xa4, 0xc7, 0x01, 0xe5, 0x0a, 0x1c, 0x01, 0xa7, - 0xb6, 0x01, 0x42, 0x22, 0x00, 0x2e, 0x1c, 0x01, 0xe9, 0x02, 0x1c, 0x81, - 0xa6, 0x01, 0xaa, 0x99, 0x01, 0xab, 0x8c, 0x01, 0x42, 0x74, 0x00, 0x29, - 0x1c, 0x01, 0x42, 0x6c, 0x00, 0x26, 0x1c, 0x01, 0xae, 0x68, 0xef, 0x0c, - 0x1c, 0x01, 0xb0, 0x58, 0x42, 0x71, 0x00, 0x28, 0x1c, 0x01, 0xb3, 0x40, - 0xb4, 0x27, 0xf5, 0x04, 0x1c, 0x81, 0x1e, 0xb6, 0x06, 0x42, 0x34, 0x22, - 0x27, 0x1c, 0x41, 0xe1, 0x2a, 0x1c, 0x01, 0x07, 0x9c, 0xbe, 0x01, 0xff, - 0xec, 0x08, 0x1c, 0x01, 0xf2, 0x06, 0x1c, 0xc1, 0x00, 0xf2, 0x07, 0x1c, - 0x41, 0xf5, 0x05, 0x1c, 0x41, 0xe1, 0x1d, 0x1c, 0x01, 0x42, 0x22, 0x00, - 0x1e, 0x1c, 0x01, 0xb4, 0x01, 0xff, 0xe1, 0x18, 0x1c, 0x01, 0x42, 0x22, - 0x00, 0x19, 0x1c, 0x41, 0xe1, 0x2d, 0x1c, 0x01, 0x42, 0x22, 0x00, 0x2b, - 0x1c, 0x01, 0x42, 0x15, 0x06, 0x2c, 0x1c, 0x41, 0xe1, 0x22, 0x1c, 0x01, - 0x42, 0x22, 0x00, 0x23, 0x1c, 0x41, 0xe1, 0x21, 0x1c, 0x01, 0x42, 0x24, - 0x02, 0x12, 0x1c, 0x01, 0x42, 0xff, 0x04, 0x1c, 0x1c, 0x01, 0x42, 0x34, - 0x22, 0x17, 0x1c, 0x41, 0xe1, 0x0e, 0x1c, 0x01, 0x42, 0x22, 0x00, 0x0f, - 0x1c, 0x41, 0xe1, 0x15, 0x1c, 0x01, 0x42, 0x22, 0x00, 0x16, 0x1c, 0x41, - 0xe9, 0x03, 0x1c, 0x41, 0xe1, 0x10, 0x1c, 0x01, 0x42, 0x22, 0x00, 0x11, - 0x1c, 0x41, 0xe1, 0x1f, 0x1c, 0x01, 0xa4, 0x06, 0x42, 0x22, 0x00, 0x20, - 0x1c, 0x41, 0xe1, 0x1a, 0x1c, 0x01, 0x42, 0x22, 0x00, 0x1b, 0x1c, 0x41, - 0xe1, 0x13, 0x1c, 0x01, 0x42, 0x22, 0x00, 0x14, 0x1c, 0x41, 0xe1, 0x24, - 0x1c, 0x01, 0x42, 0x22, 0x00, 0x25, 0x1c, 0x41, 0xe1, 0x01, 0x1c, 0x01, - 0xe9, 0x0b, 0x1c, 0x01, 0xf5, 0x0d, 0x1c, 0x41, 0xd1, 0x44, 0x1c, 0x01, - 0xd2, 0x45, 0x1c, 0x41, 0x44, 0xd1, 0x1f, 0x41, 0x1c, 0x01, 0x05, 0xc5, - 0x06, 0x06, 0x4b, 0xd8, 0x9e, 0x42, 0x1c, 0x41, 0x45, 0xc3, 0x0a, 0x58, - 0x1c, 0x01, 0xa6, 0x2e, 0x44, 0x46, 0x2a, 0x59, 0x1c, 0x01, 0x43, 0xbf, - 0x0a, 0x51, 0x1c, 0x01, 0xb3, 0x14, 0xb4, 0x06, 0x44, 0xa1, 0x1d, 0x50, - 0x1c, 0x41, 0x44, 0x25, 0x01, 0x53, 0x1c, 0x01, 0x42, 0x15, 0x02, 0x52, - 0x1c, 0x41, 0x44, 0x27, 0x1d, 0x57, 0x1c, 0x01, 0x42, 0x60, 0x25, 0x56, - 0x1c, 0x41, 0x43, 0xa7, 0x05, 0x55, 0x1c, 0x01, 0x43, 0xcb, 0x06, 0x54, - 0x1c, 0x41, 0xa1, 0xdc, 0x05, 0x45, 0xf1, 0xe1, 0x35, 0x22, 0x00, 0xe4, - 0xcf, 0xf6, 0x01, 0xa5, 0xc3, 0x05, 0x42, 0x0f, 0x07, 0x14, 0xf5, 0x81, - 0xa1, 0x05, 0xae, 0x14, 0xb4, 0x06, 0x4a, 0xf3, 0xb0, 0xc3, 0xf9, 0x41, - 0x47, 0xea, 0x07, 0x36, 0x21, 0x00, 0x44, 0x74, 0x09, 0x6c, 0x22, 0x40, - 0x05, 0x9e, 0xb3, 0x1b, 0xb4, 0x0d, 0x49, 0x4f, 0xbf, 0x2c, 0x23, 0xc0, - 0x00, 0x4c, 0x67, 0x22, 0xe3, 0x23, 0x40, 0x69, 0x95, 0x01, 0x5e, 0x2b, - 0x00, 0x45, 0x38, 0xe6, 0x71, 0xf3, 0x41, 0xa1, 0xd7, 0x04, 0x09, 0x5b, - 0x40, 0xa5, 0x04, 0x06, 0xc4, 0x06, 0xde, 0x03, 0x4a, 0x65, 0xa8, 0xfb, - 0x09, 0x00, 0x46, 0x2a, 0xda, 0xfa, 0x09, 0x00, 0x07, 0xc1, 0x05, 0x8c, - 0x01, 0x06, 0xf6, 0x7e, 0x7c, 0xb3, 0x44, 0x0b, 0xd1, 0x75, 0x01, 0xff, - 0xa1, 0x31, 0xe5, 0xc7, 0x09, 0x00, 0xe9, 0xbf, 0x09, 0x80, 0x24, 0xef, - 0xcb, 0x09, 0x00, 0xf5, 0xc1, 0x09, 0x80, 0x17, 0x08, 0x9b, 0xbe, 0x01, - 0xff, 0xec, 0xe2, 0x09, 0x80, 0x09, 0xf2, 0xc3, 0x09, 0xc0, 0x00, 0xf2, - 0xc4, 0x09, 0x40, 0xec, 0xe3, 0x09, 0x40, 0xf5, 0xc2, 0x09, 0x40, 0xe9, - 0xc0, 0x09, 0x40, 0xe1, 0xbe, 0x09, 0x00, 0xe9, 0xc8, 0x09, 0x00, 0xf5, - 0xcc, 0x09, 0x40, 0x4a, 0x81, 0xa5, 0xfe, 0x09, 0x00, 0x04, 0x30, 0x03, - 0x01, 0xff, 0xa1, 0x1d, 0x4b, 0x4f, 0x23, 0x81, 0x09, 0x00, 0x45, 0x5a, - 0x3e, 0xbc, 0x09, 0x00, 0x02, 0x02, 0x00, 0x01, 0xff, 0x44, 0x5d, 0x23, - 0xcd, 0x09, 0x00, 0x45, 0xa3, 0x4a, 0x83, 0x09, 0x40, 0x47, 0xd1, 0x15, - 0x82, 0x09, 0x00, 0x47, 0xf2, 0x86, 0xbd, 0x09, 0x40, 0x44, 0xb9, 0x00, - 0xf2, 0x09, 0x00, 0x44, 0x2f, 0x03, 0xf3, 0x09, 0x40, 0xe1, 0x85, 0x09, - 0x80, 0xaf, 0x02, 0xa2, 0xa2, 0x02, 0xa3, 0x95, 0x02, 0xa4, 0xfc, 0x01, - 0xe5, 0x8f, 0x09, 0x00, 0xa7, 0xeb, 0x01, 0x42, 0x22, 0x00, 0xb9, 0x09, - 0x00, 0xe9, 0x87, 0x09, 0x80, 0xdb, 0x01, 0xaa, 0xce, 0x01, 0xab, 0xba, - 0x01, 0x42, 0x74, 0x00, 0xb2, 0x09, 0x00, 0x42, 0x6c, 0x00, 0xae, 0x09, - 0x00, 0xae, 0x95, 0x01, 0xef, 0x93, 0x09, 0x00, 0xb0, 0x84, 0x01, 0xb2, - 0x60, 0xb3, 0x4e, 0xb4, 0x35, 0xf5, 0x89, 0x09, 0x80, 0x2c, 0xb6, 0x0d, - 0xb9, 0x01, 0xff, 0xe1, 0xaf, 0x09, 0x00, 0x42, 0x34, 0x22, 0xdf, 0x09, - 0x40, 0x4d, 0xd4, 0x80, 0xfc, 0x09, 0x00, 0x07, 0x9c, 0xbe, 0x01, 0xff, - 0xec, 0x8c, 0x09, 0x80, 0x09, 0xf2, 0x8b, 0x09, 0xc0, 0x00, 0xf2, 0xe0, - 0x09, 0x40, 0xec, 0xe1, 0x09, 0x40, 0xf5, 0x8a, 0x09, 0x40, 0xe1, 0xa4, - 0x09, 0x00, 0x42, 0x22, 0x00, 0xa5, 0x09, 0x00, 0xb4, 0x01, 0xff, 0xe1, - 0x9f, 0x09, 0x00, 0x42, 0x22, 0x00, 0xa0, 0x09, 0x40, 0xe1, 0xb8, 0x09, - 0x00, 0x42, 0x22, 0x00, 0xb6, 0x09, 0x00, 0x42, 0x15, 0x06, 0xb7, 0x09, - 0x40, 0xe1, 0xb0, 0x09, 0x80, 0x0c, 0x42, 0x22, 0x00, 0xdd, 0x09, 0x00, - 0x42, 0x71, 0x00, 0xdc, 0x09, 0x40, 0x06, 0x50, 0x00, 0x01, 0xff, 0x4e, - 0x52, 0x78, 0xf1, 0x09, 0x00, 0x4f, 0xa1, 0x6e, 0xf0, 0x09, 0x40, 0xe1, - 0xaa, 0x09, 0x00, 0x42, 0x22, 0x00, 0xab, 0x09, 0x40, 0xe1, 0xa8, 0x09, - 0x00, 0x42, 0x24, 0x02, 0x99, 0x09, 0x00, 0x42, 0xff, 0x04, 0xa3, 0x09, - 0x00, 0x42, 0x34, 0x22, 0x9e, 0x09, 0x40, 0xe1, 0x95, 0x09, 0x00, 0x42, - 0x22, 0x00, 0x96, 0x09, 0xc0, 0x00, 0x46, 0x3e, 0xdb, 0xce, 0x09, 0x40, - 0xe1, 0x9c, 0x09, 0x00, 0x42, 0x22, 0x00, 0x9d, 0x09, 0x40, 0xe9, 0x88, - 0x09, 0x40, 0xe1, 0x97, 0x09, 0x00, 0x42, 0x22, 0x00, 0x98, 0x09, 0x40, - 0xe1, 0xa6, 0x09, 0x00, 0xa4, 0x06, 0x42, 0x22, 0x00, 0xa7, 0x09, 0x40, - 0xe1, 0xa1, 0x09, 0x00, 0x42, 0x22, 0x00, 0xa2, 0x09, 0x40, 0xe1, 0x9a, - 0x09, 0x00, 0x42, 0x22, 0x00, 0x9b, 0x09, 0x40, 0xe1, 0xac, 0x09, 0x00, - 0x42, 0x22, 0x00, 0xad, 0x09, 0x40, 0xe1, 0x86, 0x09, 0x00, 0xe9, 0x90, - 0x09, 0x00, 0xf5, 0x94, 0x09, 0x40, 0x45, 0xc3, 0x0a, 0xee, 0x09, 0x00, - 0xa6, 0x2e, 0x44, 0x46, 0x2a, 0xef, 0x09, 0x00, 0x43, 0xbf, 0x0a, 0xe7, - 0x09, 0x00, 0xb3, 0x14, 0xb4, 0x06, 0x44, 0xa1, 0x1d, 0xe6, 0x09, 0x40, - 0x44, 0x25, 0x01, 0xe9, 0x09, 0x00, 0x42, 0x15, 0x02, 0xe8, 0x09, 0x40, - 0x44, 0x27, 0x1d, 0xed, 0x09, 0x00, 0x42, 0x60, 0x25, 0xec, 0x09, 0x40, - 0x43, 0xa7, 0x05, 0xeb, 0x09, 0x00, 0x43, 0xcb, 0x06, 0xea, 0x09, 0x40, - 0x53, 0xb0, 0x47, 0xf9, 0x09, 0x00, 0x0a, 0xd7, 0x84, 0x01, 0xff, 0x44, - 0xca, 0x06, 0xf7, 0x09, 0x00, 0x43, 0xbf, 0x0a, 0xf4, 0x09, 0x80, 0x0f, - 0xb4, 0x01, 0xff, 0x44, 0x25, 0x01, 0xf6, 0x09, 0x00, 0x42, 0x15, 0x02, - 0xf5, 0x09, 0x40, 0x5a, 0xd6, 0x1d, 0xf8, 0x09, 0x40, 0x50, 0x94, 0x56, - 0xfd, 0x09, 0x00, 0x43, 0x9d, 0x85, 0x80, 0x09, 0x00, 0x4d, 0x9b, 0x74, - 0xd7, 0x09, 0x40, 0x80, 0x06, 0x48, 0x2a, 0xc4, 0xce, 0xf6, 0x41, 0x46, - 0x1c, 0xdc, 0xd1, 0xfa, 0x01, 0x46, 0xeb, 0x07, 0x7e, 0x23, 0x00, 0x58, - 0x5d, 0x2b, 0x15, 0xf5, 0x41, 0x45, 0x3f, 0xb4, 0x7a, 0xf3, 0x01, 0x43, - 0xbd, 0x01, 0xb2, 0xfa, 0x41, 0x50, 0xda, 0x5f, 0xd6, 0xf3, 0x01, 0x04, - 0x41, 0x9d, 0x20, 0x42, 0x5f, 0x01, 0xd8, 0xfa, 0x01, 0xb2, 0x0c, 0x4a, - 0xa9, 0xaf, 0x93, 0xf4, 0x01, 0x43, 0x32, 0x00, 0xab, 0xf9, 0x41, 0x45, - 0xe0, 0x07, 0x3b, 0xf4, 0x01, 0x4a, 0xfd, 0xa6, 0xd4, 0xf9, 0x41, 0x57, - 0xba, 0x2c, 0x9c, 0xf3, 0x01, 0x58, 0x55, 0x27, 0x9d, 0xf3, 0x01, 0x4c, - 0xb9, 0x8c, 0x6b, 0x26, 0x00, 0x4f, 0x8f, 0x71, 0x6c, 0x26, 0x40, 0x42, - 0x08, 0x00, 0x76, 0xf4, 0x81, 0x8b, 0x30, 0xa3, 0xcd, 0x2f, 0xa4, 0xbe, - 0x2f, 0xa7, 0xa9, 0x2f, 0xac, 0x8b, 0x27, 0x04, 0x91, 0x90, 0xca, 0x05, - 0xae, 0x99, 0x05, 0xb2, 0x82, 0x05, 0xb3, 0x80, 0x03, 0xf4, 0x87, 0xf9, - 0xc1, 0x00, 0x03, 0x84, 0x4b, 0x11, 0xe8, 0xc0, 0xf6, 0x81, 0x06, 0x44, - 0x14, 0xd7, 0x0b, 0xf5, 0x41, 0x43, 0x10, 0xb3, 0xc1, 0xf6, 0x41, 0x0f, - 0x6d, 0x32, 0xd7, 0x02, 0x07, 0xc1, 0x05, 0x6b, 0x03, 0xa6, 0x42, 0x5b, - 0xb3, 0x33, 0x0b, 0xd1, 0x75, 0x01, 0xff, 0xe5, 0xe7, 0x1b, 0x80, 0x25, - 0xe9, 0xea, 0x1b, 0x00, 0x05, 0x77, 0xcf, 0x15, 0xef, 0xec, 0x1b, 0x00, - 0x48, 0x1a, 0xc7, 0xe8, 0x1b, 0x00, 0xf5, 0xee, 0x1b, 0xc0, 0x00, 0x52, - 0xfc, 0x4d, 0xef, 0x1b, 0x40, 0xe9, 0xeb, 0x1b, 0x00, 0xef, 0xed, 0x1b, - 0x40, 0xe5, 0xe9, 0x1b, 0x40, 0x49, 0xd2, 0xb7, 0xe6, 0x1b, 0x00, 0x0c, - 0x35, 0x95, 0x01, 0xff, 0x45, 0x9e, 0xe4, 0xfe, 0x1b, 0x00, 0x48, 0xda, - 0xc5, 0xfc, 0x1b, 0x00, 0xb0, 0x01, 0xff, 0x47, 0x28, 0xcc, 0xff, 0x1b, - 0x00, 0x49, 0xff, 0xb7, 0xfd, 0x1b, 0x40, 0x45, 0x2a, 0xcc, 0xf2, 0x1b, - 0x00, 0x47, 0x1b, 0xd1, 0xf3, 0x1b, 0x40, 0xe1, 0xc0, 0x1b, 0x00, 0x42, - 0x16, 0x00, 0xc5, 0x1b, 0x00, 0x42, 0x37, 0x00, 0xe1, 0x1b, 0x00, 0x42, - 0xa1, 0x10, 0xd1, 0x1b, 0x00, 0x42, 0x24, 0x02, 0xce, 0x1b, 0x00, 0x42, - 0x22, 0x00, 0xc2, 0x1b, 0x00, 0xe9, 0xe4, 0x1b, 0x00, 0x42, 0xbd, 0x26, - 0xd0, 0x1b, 0x00, 0x47, 0x77, 0xcf, 0xc6, 0x1b, 0x00, 0x42, 0x74, 0x00, - 0xde, 0x1b, 0x00, 0xad, 0x8b, 0x01, 0xae, 0x6d, 0x42, 0x6c, 0x09, 0xc7, - 0x1b, 0x80, 0x60, 0x42, 0x71, 0x00, 0xd2, 0x1b, 0x00, 0xb3, 0x10, 0xf5, - 0xe5, 0x1b, 0x00, 0x42, 0xa9, 0x01, 0xcb, 0x1b, 0x00, 0x42, 0x34, 0x22, - 0xdb, 0x1b, 0x40, 0xe1, 0xd8, 0x1b, 0x00, 0x0a, 0x02, 0x4e, 0x06, 0x4a, - 0x0b, 0xad, 0xd6, 0x1b, 0x40, 0xe1, 0xc1, 0x1b, 0x00, 0x42, 0x24, 0x02, - 0xcf, 0x1b, 0x00, 0x42, 0x22, 0x00, 0xc3, 0x1b, 0x00, 0x42, 0x74, 0x00, - 0xdf, 0x1b, 0x00, 0x42, 0x6c, 0x00, 0xd5, 0x1b, 0x00, 0x42, 0x6c, 0x09, - 0xc8, 0x1b, 0x00, 0x42, 0x71, 0x00, 0xd3, 0x1b, 0x00, 0x42, 0x15, 0x06, - 0xd9, 0x1b, 0x00, 0x42, 0xa9, 0x01, 0xcc, 0x1b, 0x00, 0x42, 0x34, 0x22, - 0xdc, 0x1b, 0x40, 0x47, 0xaf, 0xcf, 0xcd, 0x1b, 0x40, 0xe1, 0xc9, 0x1b, - 0x00, 0x42, 0xa1, 0x10, 0xe2, 0x1b, 0x00, 0x42, 0x24, 0x02, 0xdd, 0x1b, - 0x00, 0x4a, 0xbb, 0xac, 0xd7, 0x1b, 0x00, 0x42, 0x34, 0x22, 0xe0, 0x1b, - 0x40, 0xe1, 0xd4, 0x1b, 0x80, 0x06, 0x42, 0x16, 0x00, 0xe3, 0x1b, 0x40, - 0x09, 0xd3, 0xb9, 0x01, 0xff, 0x42, 0x22, 0x00, 0xc4, 0x1b, 0x00, 0x42, - 0xff, 0x04, 0xca, 0x1b, 0x00, 0x42, 0x15, 0x06, 0xda, 0x1b, 0x40, 0xe8, - 0xf1, 0x1b, 0x00, 0x42, 0x1d, 0x01, 0xf0, 0x1b, 0x40, 0x45, 0xb4, 0xe2, - 0xbe, 0x26, 0x00, 0x43, 0x18, 0x09, 0xfa, 0xf9, 0x81, 0xeb, 0x01, 0x07, - 0xbf, 0xd2, 0x01, 0xff, 0x0a, 0xd6, 0x57, 0xbb, 0x01, 0x49, 0x15, 0x16, - 0xf5, 0x6a, 0x01, 0x07, 0xc1, 0x05, 0x01, 0xff, 0xe1, 0xe7, 0x6a, 0x01, - 0x42, 0x16, 0x00, 0xe2, 0x6a, 0x01, 0x42, 0x73, 0x02, 0xdf, 0x6a, 0x01, - 0xa4, 0x93, 0x01, 0xe5, 0xec, 0x6a, 0x81, 0x83, 0x01, 0x42, 0xe1, 0x07, - 0xd3, 0x6a, 0x01, 0xa7, 0x6f, 0x44, 0xff, 0xec, 0xda, 0x6a, 0x01, 0xe9, - 0xed, 0x6a, 0x01, 0x42, 0x4e, 0x0a, 0xd9, 0x6a, 0x01, 0xab, 0x53, 0x43, - 0x8b, 0x05, 0xd4, 0x6a, 0x01, 0xef, 0xe8, 0x6a, 0x81, 0x44, 0x42, 0x6c, - 0x09, 0xe5, 0x6a, 0x01, 0x42, 0x1b, 0x03, 0xd2, 0x6a, 0x01, 0x42, 0x1e, - 0x00, 0xe1, 0x6a, 0x01, 0xf5, 0xea, 0x6a, 0x81, 0x27, 0x42, 0xeb, 0x60, - 0xe3, 0x6a, 0x01, 0x42, 0xa9, 0x01, 0xdb, 0x6a, 0x81, 0x14, 0xb9, 0x06, - 0x42, 0x0f, 0x00, 0xdc, 0x6a, 0x41, 0x43, 0xdf, 0x10, 0xe4, 0x6a, 0x01, - 0x42, 0xc9, 0x02, 0xd5, 0x6a, 0x41, 0x43, 0xaa, 0x35, 0xe6, 0x6a, 0x41, - 0x42, 0x45, 0x07, 0xe0, 0x6a, 0x41, 0xef, 0xe9, 0x6a, 0x41, 0xe1, 0xd1, - 0x6a, 0x01, 0x43, 0xe9, 0x41, 0xd8, 0x6a, 0x41, 0x42, 0xc9, 0x09, 0xd6, - 0x6a, 0x01, 0x42, 0x1b, 0x0d, 0xdd, 0x6a, 0x41, 0xe5, 0xeb, 0x6a, 0x01, - 0x43, 0xac, 0x1e, 0xd0, 0x6a, 0x41, 0x43, 0x06, 0xed, 0xd7, 0x6a, 0x01, - 0xef, 0xde, 0x6a, 0x41, 0x04, 0xf9, 0x0a, 0x16, 0x03, 0x13, 0x01, 0x06, - 0x48, 0xcc, 0xb2, 0xf2, 0x6a, 0x41, 0x45, 0x82, 0x2c, 0xf1, 0x6a, 0x01, - 0x49, 0xcb, 0xb2, 0xf3, 0x6a, 0x41, 0x45, 0x82, 0x2c, 0xf0, 0x6a, 0x01, - 0x49, 0xc2, 0xb2, 0xf4, 0x6a, 0x41, 0x4d, 0x8f, 0x7f, 0xc0, 0xf3, 0x41, - 0x80, 0x06, 0x48, 0x7a, 0xc1, 0x88, 0xf4, 0x41, 0x45, 0x2d, 0xc2, 0xca, - 0xf4, 0x01, 0x47, 0xe3, 0xd0, 0xfc, 0xf9, 0x41, 0x43, 0xfc, 0x11, 0x4c, - 0xf3, 0x01, 0x42, 0x4e, 0x0a, 0x95, 0xfa, 0x01, 0xeb, 0xe6, 0xf3, 0xc1, - 0x00, 0x0a, 0x1b, 0xac, 0x01, 0xff, 0x4b, 0xf5, 0x98, 0xb5, 0xf4, 0x01, - 0x49, 0x73, 0xb6, 0xb6, 0xf4, 0x01, 0x4a, 0x5b, 0xad, 0xb7, 0xf4, 0x01, - 0x48, 0xc0, 0x7d, 0xb4, 0xf4, 0x41, 0x02, 0xe8, 0x04, 0x98, 0x21, 0x49, - 0x15, 0x16, 0xf3, 0xa6, 0x00, 0x07, 0xc1, 0x05, 0x12, 0x47, 0xc0, 0xd0, - 0xf2, 0xa6, 0x00, 0x4d, 0xd6, 0x33, 0xf7, 0xa6, 0x00, 0x49, 0xac, 0xbc, - 0xf6, 0xa6, 0x40, 0xe1, 0xa0, 0xa6, 0x00, 0x42, 0x27, 0x01, 0xa4, 0xa6, - 0x00, 0xa6, 0xd9, 0x20, 0xe9, 0xa9, 0xa6, 0x00, 0xab, 0x99, 0x20, 0xac, - 0xfe, 0x1f, 0xed, 0xb3, 0xa6, 0x80, 0xce, 0x1f, 0xae, 0xf2, 0x1e, 0xef, - 0xa7, 0xa6, 0x00, 0xb0, 0x93, 0x01, 0xb2, 0x6b, 0xb3, 0x3d, 0xb4, 0x23, - 0xf5, 0xa2, 0xa6, 0x00, 0xb7, 0x13, 0xb9, 0x01, 0xff, 0xe1, 0xc2, 0xa6, - 0x00, 0x42, 0xb1, 0x91, 0xbf, 0xa6, 0x00, 0x42, 0xf0, 0x99, 0xc1, 0xa6, - 0x40, 0xe1, 0xda, 0xa6, 0x00, 0x42, 0x87, 0x13, 0xc9, 0xa6, 0x40, 0xa1, - 0x0e, 0xa5, 0x04, 0xe9, 0xe4, 0xa6, 0x40, 0xee, 0xea, 0xa6, 0x00, 0xf4, - 0xe8, 0xa6, 0x40, 0xe1, 0xb0, 0xa6, 0x00, 0xe5, 0xa6, 0xa6, 0x40, 0x44, - 0xc5, 0xca, 0xec, 0xa6, 0x00, 0x43, 0xd3, 0xe8, 0xb9, 0xa6, 0x00, 0xa8, - 0x0a, 0xe9, 0xb7, 0xa6, 0x00, 0x42, 0x9c, 0x72, 0xb4, 0xa6, 0x40, 0x43, - 0xd3, 0xe8, 0xb8, 0xa6, 0x00, 0x42, 0xb1, 0x27, 0xb6, 0xa6, 0x00, 0xef, - 0xd6, 0xa6, 0x00, 0xf5, 0xc0, 0xa6, 0x40, 0x42, 0x44, 0x0f, 0xd1, 0xa6, - 0x00, 0xa5, 0x10, 0xa9, 0x04, 0xf5, 0xcc, 0xa6, 0x40, 0x42, 0x27, 0x01, - 0xad, 0xa6, 0x00, 0xe9, 0xac, 0xa6, 0x40, 0xe5, 0xa5, 0xa6, 0x00, 0xee, - 0xe1, 0xa6, 0x00, 0x42, 0xb5, 0xdd, 0xd0, 0xa6, 0x40, 0xe1, 0xab, 0xa6, - 0x00, 0xa5, 0xc7, 0x1d, 0x05, 0xd6, 0xe3, 0x11, 0xe9, 0xdd, 0xa6, 0x00, - 0xb5, 0x01, 0xff, 0x42, 0x44, 0x0f, 0xd7, 0xa6, 0x00, 0xe5, 0xc8, 0xa6, - 0x40, 0x02, 0x5a, 0x00, 0xc1, 0x18, 0x02, 0x26, 0x02, 0xac, 0x15, 0x02, - 0x28, 0x03, 0x8e, 0x10, 0x02, 0x06, 0x00, 0x90, 0x0a, 0x02, 0x60, 0x00, - 0xc2, 0x02, 0x02, 0x25, 0x00, 0x01, 0xff, 0x42, 0x27, 0x01, 0x06, 0x6a, - 0x01, 0x43, 0xf3, 0xf0, 0x2b, 0x6a, 0x01, 0xab, 0x8c, 0x02, 0xac, 0xfb, - 0x01, 0xed, 0x11, 0x6a, 0x81, 0xd9, 0x01, 0xae, 0x93, 0x01, 0xb0, 0x7f, - 0xb2, 0x5d, 0xb3, 0x35, 0xb4, 0x23, 0xf5, 0x04, 0x6a, 0x01, 0x44, 0xc2, - 0xef, 0x38, 0x6a, 0x01, 0xb7, 0x0d, 0xb9, 0x01, 0xff, 0xe1, 0x1d, 0x6a, - 0x01, 0x42, 0xb1, 0x91, 0x1b, 0x6a, 0x41, 0xe1, 0x2c, 0x6a, 0x01, 0x42, - 0x87, 0x13, 0x21, 0x6a, 0x41, 0xa1, 0x06, 0x42, 0xc2, 0x05, 0x35, 0x6a, - 0x41, 0xe1, 0x0e, 0x6a, 0x01, 0xe5, 0x08, 0x6a, 0x41, 0x44, 0xc5, 0xca, - 0x37, 0x6a, 0x01, 0x43, 0xd3, 0xe8, 0x15, 0x6a, 0x01, 0xa8, 0x0a, 0xe9, - 0x14, 0x6a, 0x01, 0x42, 0x9c, 0x72, 0x12, 0x6a, 0x41, 0x42, 0xb1, 0x27, - 0x13, 0x6a, 0x01, 0xef, 0x29, 0x6a, 0x01, 0xf5, 0x1c, 0x6a, 0x41, 0xa5, - 0x10, 0xa9, 0x04, 0xf5, 0x23, 0x6a, 0x41, 0x42, 0x27, 0x01, 0x0c, 0x6a, - 0x01, 0xe9, 0x0b, 0x6a, 0x41, 0xe5, 0x07, 0x6a, 0x01, 0xee, 0x31, 0x6a, - 0x01, 0x42, 0xb5, 0xdd, 0x25, 0x6a, 0x41, 0xa5, 0x06, 0x43, 0xc9, 0x93, - 0x2a, 0x6a, 0x41, 0xe5, 0x22, 0x6a, 0x01, 0x42, 0xb5, 0xdd, 0x1f, 0x6a, - 0x41, 0x43, 0x5c, 0x56, 0x0f, 0x6a, 0x01, 0xa7, 0x2f, 0xe9, 0x24, 0x6a, - 0x01, 0xaa, 0x1d, 0x43, 0xa4, 0x02, 0x1e, 0x6a, 0x01, 0x43, 0x9e, 0x17, - 0x20, 0x6a, 0x01, 0xf5, 0x19, 0x6a, 0x81, 0x06, 0x42, 0xf7, 0x19, 0x09, - 0x6a, 0x41, 0x42, 0x44, 0x0f, 0x18, 0x6a, 0x41, 0x43, 0xa4, 0x85, 0x10, - 0x6a, 0x01, 0x43, 0xc9, 0x93, 0x1a, 0x6a, 0x41, 0x42, 0x24, 0x02, 0x28, - 0x6a, 0x01, 0x45, 0xdf, 0xe4, 0x27, 0x6a, 0x41, 0xe1, 0x32, 0x6a, 0x01, - 0xa2, 0x0a, 0x44, 0x61, 0xec, 0x0d, 0x6a, 0x01, 0xef, 0x33, 0x6a, 0x41, - 0x42, 0x31, 0x12, 0x34, 0x6a, 0x01, 0x42, 0x92, 0x01, 0x30, 0x6a, 0x41, - 0xe1, 0x0a, 0x6a, 0x01, 0xe9, 0x2d, 0x6a, 0x01, 0x42, 0xb1, 0x91, 0x2e, - 0x6a, 0x41, 0xe1, 0x03, 0x6a, 0x01, 0xa5, 0x14, 0xef, 0x2f, 0x6a, 0x01, - 0x42, 0x6c, 0x09, 0x36, 0x6a, 0x01, 0xf5, 0x05, 0x6a, 0x01, 0x43, 0x91, - 0xa7, 0x16, 0x6a, 0x41, 0xee, 0x26, 0x6a, 0x01, 0xf4, 0x17, 0x6a, 0x41, - 0xe1, 0xd5, 0x69, 0x01, 0xa6, 0x8f, 0x07, 0xa7, 0xd8, 0x06, 0xe9, 0xd8, - 0x69, 0x01, 0xab, 0x9d, 0x06, 0xac, 0xec, 0x05, 0xad, 0x8e, 0x05, 0xae, - 0x81, 0x03, 0xef, 0xd7, 0x69, 0x01, 0xb0, 0x98, 0x02, 0xb2, 0xff, 0x01, - 0xb3, 0xc9, 0x01, 0xb4, 0x7a, 0xb6, 0x66, 0xb7, 0x53, 0xb9, 0x01, 0xff, - 0x42, 0xba, 0x05, 0xac, 0x69, 0x01, 0x02, 0x97, 0x02, 0x33, 0xa9, 0x27, - 0x03, 0xb1, 0x91, 0x17, 0xb5, 0x01, 0xff, 0x43, 0x0e, 0x41, 0xe1, 0x69, - 0x01, 0x42, 0x7b, 0x00, 0xb2, 0x69, 0x01, 0xee, 0xe5, 0x69, 0x01, 0xf1, - 0xe4, 0x69, 0x41, 0x45, 0xf3, 0x07, 0xe3, 0x69, 0x01, 0x48, 0x92, 0xc8, - 0xe2, 0x69, 0x41, 0x42, 0x27, 0x01, 0x94, 0x69, 0x01, 0xf4, 0xae, 0x69, - 0x41, 0x42, 0x44, 0x0f, 0x97, 0x69, 0x81, 0x08, 0xed, 0xbe, 0x69, 0x01, - 0xf8, 0xdf, 0x69, 0x41, 0xf4, 0xcf, 0x69, 0x41, 0x43, 0xd3, 0xe8, 0x9e, - 0x69, 0x01, 0xb5, 0x01, 0xff, 0xe5, 0xea, 0x69, 0x01, 0xef, 0x75, 0x69, - 0x41, 0xa5, 0x06, 0x42, 0xe9, 0x04, 0x6a, 0x69, 0x41, 0xe5, 0xec, 0x69, - 0x01, 0x43, 0xc9, 0x93, 0x9d, 0x69, 0x41, 0xa1, 0x34, 0xa5, 0x23, 0xaf, - 0x14, 0xb5, 0x01, 0xff, 0x42, 0x44, 0x0f, 0x96, 0x69, 0x01, 0xed, 0xaa, - 0x69, 0xc1, 0x00, 0x42, 0x44, 0x0f, 0x99, 0x69, 0x41, 0xef, 0x79, 0x69, - 0x81, 0x04, 0xf1, 0xd6, 0x69, 0x41, 0xee, 0x67, 0x69, 0x41, 0xee, 0x00, - 0x6a, 0x01, 0xf5, 0xfd, 0x69, 0xc1, 0x00, 0x43, 0xca, 0x93, 0x9c, 0x69, - 0x41, 0xe1, 0xdb, 0x69, 0x81, 0x0e, 0x48, 0x0a, 0xc3, 0x8f, 0x69, 0x01, - 0xed, 0x72, 0x69, 0x01, 0xf1, 0xdc, 0x69, 0x41, 0xf1, 0xa1, 0x69, 0x41, - 0x42, 0x31, 0x12, 0x85, 0x69, 0x01, 0xa5, 0x23, 0xa8, 0x0c, 0x42, 0xe9, - 0x04, 0x6d, 0x69, 0x01, 0x44, 0x70, 0xbe, 0x9b, 0x69, 0x41, 0x45, 0xc8, - 0x93, 0xa4, 0x69, 0x01, 0x42, 0xff, 0x17, 0xde, 0x69, 0x01, 0xef, 0xf3, - 0x69, 0xc1, 0x00, 0xf1, 0xf4, 0x69, 0x41, 0xe5, 0x76, 0x69, 0x01, 0xf4, - 0x90, 0x69, 0x41, 0xa1, 0x0c, 0x43, 0xd3, 0xe8, 0xef, 0x69, 0x01, 0x45, - 0x53, 0xe4, 0x82, 0x69, 0x41, 0xe5, 0xf0, 0x69, 0x01, 0xf1, 0x6e, 0x69, - 0x41, 0xa1, 0x47, 0xa5, 0x34, 0xe9, 0xf7, 0x69, 0x81, 0x22, 0xef, 0x98, - 0x69, 0x81, 0x17, 0xf5, 0xa0, 0x69, 0xc1, 0x00, 0xa1, 0x08, 0xe5, 0xe9, - 0x69, 0x01, 0xed, 0x91, 0x69, 0x41, 0xe5, 0x71, 0x69, 0x01, 0xf1, 0xca, - 0x69, 0x41, 0x42, 0x10, 0x00, 0xc2, 0x69, 0x41, 0xa5, 0x01, 0xff, 0x42, - 0x7b, 0x00, 0xb1, 0x69, 0x01, 0xf4, 0xcd, 0x69, 0x41, 0x42, 0x8a, 0x05, - 0x84, 0x69, 0x01, 0xb5, 0x01, 0xff, 0xf4, 0xbd, 0x69, 0x01, 0xf8, 0xe7, - 0x69, 0x41, 0x02, 0x9b, 0x01, 0x09, 0xe1, 0x6c, 0x69, 0xc1, 0x00, 0xed, - 0x78, 0x69, 0x41, 0x45, 0x04, 0xe3, 0xd1, 0x69, 0x01, 0x45, 0x2f, 0xe5, - 0xda, 0x69, 0x41, 0xe1, 0xf6, 0x69, 0x81, 0x80, 0x02, 0xa4, 0xd5, 0x01, - 0xa7, 0x66, 0xaa, 0x4a, 0x43, 0xe7, 0xc7, 0xa8, 0x69, 0x01, 0x02, 0xa4, - 0x02, 0x2d, 0xb4, 0x1f, 0x03, 0xc3, 0x78, 0x0f, 0xba, 0x01, 0xff, 0x42, - 0xb0, 0x35, 0xa7, 0x69, 0x01, 0x42, 0xf0, 0x99, 0xc1, 0x69, 0x41, 0x47, - 0x71, 0x09, 0xc0, 0x69, 0x01, 0x47, 0x24, 0xcd, 0xad, 0x69, 0x41, 0x42, - 0xba, 0x05, 0xce, 0x69, 0x01, 0x42, 0x1d, 0x04, 0xbc, 0x69, 0x41, 0x43, - 0x57, 0xa1, 0x7c, 0x69, 0x01, 0xb5, 0x01, 0xff, 0xe5, 0x81, 0x69, 0x01, - 0x42, 0x1f, 0x00, 0x6f, 0x69, 0x41, 0x45, 0xc2, 0xd0, 0x8a, 0x69, 0x01, - 0xa5, 0x01, 0xff, 0xe5, 0xd4, 0x69, 0x81, 0x06, 0x42, 0xb5, 0xdd, 0x83, - 0x69, 0x41, 0x46, 0x2c, 0xd5, 0xe8, 0x69, 0x41, 0xe1, 0xf2, 0x69, 0x01, - 0x46, 0x9e, 0xd8, 0xa3, 0x69, 0x01, 0xa7, 0x3b, 0xab, 0x15, 0xaf, 0x0b, - 0x43, 0xc9, 0x93, 0xe0, 0x69, 0xc1, 0x00, 0xf4, 0xf1, 0x69, 0x41, 0xf0, - 0x7d, 0x69, 0x01, 0xf1, 0x80, 0x69, 0x41, 0xe1, 0x73, 0x69, 0x81, 0x19, - 0x02, 0x97, 0x02, 0x0b, 0xb5, 0x01, 0xff, 0xed, 0xcb, 0x69, 0x01, 0xf0, - 0xb6, 0x69, 0x41, 0x43, 0xa4, 0x85, 0x89, 0x69, 0x01, 0xf8, 0x7f, 0x69, - 0x41, 0x43, 0x4d, 0x60, 0xb9, 0x69, 0x41, 0xa5, 0x13, 0xb5, 0x01, 0xff, - 0x4b, 0xda, 0x96, 0x93, 0x69, 0x01, 0xf0, 0xd0, 0x69, 0x01, 0x43, 0xdf, - 0x80, 0x86, 0x69, 0x41, 0x43, 0x37, 0xa7, 0x8d, 0x69, 0x01, 0x43, 0xc9, - 0x93, 0xbf, 0x69, 0xc1, 0x00, 0xf4, 0x77, 0x69, 0x41, 0xa1, 0x12, 0xa9, - 0x06, 0x42, 0xf3, 0x0a, 0x70, 0x69, 0x41, 0x42, 0xb0, 0x35, 0xb0, 0x69, - 0x01, 0xf1, 0x8e, 0x69, 0x41, 0x02, 0x5a, 0x00, 0x04, 0xf0, 0x66, 0x69, - 0x41, 0x48, 0xca, 0xc5, 0xdd, 0x69, 0x01, 0x48, 0x6a, 0xc8, 0x92, 0x69, - 0x41, 0xe5, 0xc5, 0x69, 0x41, 0xe1, 0xfb, 0x69, 0x81, 0x45, 0x02, 0x8c, - 0x05, 0x37, 0x42, 0x92, 0x01, 0xfa, 0x69, 0x01, 0x44, 0x8a, 0xec, 0xaf, - 0x69, 0x01, 0x02, 0x50, 0x47, 0x1d, 0xe9, 0xee, 0x69, 0x81, 0x12, 0x42, - 0x10, 0x00, 0xff, 0x69, 0x01, 0x43, 0xc9, 0x93, 0xc6, 0x69, 0x01, 0x42, - 0x02, 0x00, 0xc9, 0x69, 0x41, 0x42, 0x27, 0x01, 0xc3, 0x69, 0x41, 0xe1, - 0x87, 0x69, 0x01, 0x42, 0x92, 0x01, 0xa5, 0x69, 0x41, 0xe5, 0xa6, 0x69, - 0x01, 0x42, 0x1d, 0x04, 0x68, 0x69, 0x41, 0xe5, 0xb8, 0x69, 0x81, 0x08, - 0xf0, 0x8b, 0x69, 0x01, 0xf1, 0xfc, 0x69, 0x41, 0xed, 0x7e, 0x69, 0x41, - 0xa1, 0x1e, 0x45, 0x22, 0xe3, 0xb3, 0x69, 0x01, 0xaf, 0x04, 0xf5, 0xed, - 0x69, 0x41, 0xed, 0x7b, 0x69, 0x01, 0xaf, 0x04, 0xf1, 0xf8, 0x69, 0x41, - 0xee, 0x6b, 0x69, 0x01, 0xf4, 0x8c, 0x69, 0x41, 0x42, 0x57, 0x00, 0x9f, - 0x69, 0x01, 0xf0, 0x69, 0x69, 0x01, 0xf1, 0xd9, 0x69, 0x41, 0xa5, 0x21, - 0xe9, 0xfe, 0x69, 0x01, 0xef, 0xf9, 0x69, 0x01, 0x44, 0xc2, 0xee, 0x74, - 0x69, 0x01, 0xb5, 0x01, 0xff, 0x42, 0xc2, 0x05, 0xab, 0x69, 0x01, 0x42, - 0x1f, 0x00, 0x7a, 0x69, 0x01, 0xf4, 0xcc, 0x69, 0x41, 0xf4, 0xb7, 0x69, - 0x01, 0xb5, 0x01, 0xff, 0x42, 0x44, 0x0f, 0x9a, 0x69, 0x01, 0xf8, 0xe6, - 0x69, 0x41, 0x02, 0x8c, 0x05, 0x26, 0xa8, 0x01, 0xff, 0x45, 0xf2, 0xe0, - 0xa2, 0x69, 0x01, 0xa5, 0x06, 0x42, 0xe9, 0x04, 0x02, 0x6a, 0x41, 0xf4, - 0xba, 0x69, 0x01, 0xb5, 0x01, 0xff, 0x42, 0x44, 0x0f, 0xc7, 0x69, 0x01, - 0xee, 0x95, 0x69, 0x01, 0xf8, 0x88, 0x69, 0x41, 0xf4, 0xa9, 0x69, 0x01, - 0x42, 0xb5, 0xdd, 0xb5, 0x69, 0x41, 0xe1, 0xbb, 0x69, 0x81, 0x2a, 0x42, - 0x27, 0x01, 0xeb, 0x69, 0x01, 0x42, 0xe9, 0x04, 0xd3, 0x69, 0x01, 0xb5, - 0x01, 0xff, 0x80, 0x09, 0xe5, 0xb4, 0x69, 0xc1, 0x00, 0xf4, 0xc4, 0x69, - 0x41, 0x44, 0xc5, 0x16, 0xd2, 0x69, 0x01, 0xe9, 0xc8, 0x69, 0x01, 0x46, - 0x7c, 0xdc, 0xf5, 0x69, 0x41, 0xf1, 0x01, 0x6a, 0x41, 0xa6, 0xea, 0x05, - 0x02, 0x40, 0x00, 0xd9, 0x05, 0xab, 0x9a, 0x05, 0xac, 0xec, 0x04, 0xed, - 0x51, 0x69, 0x81, 0xeb, 0x03, 0xae, 0xfb, 0x01, 0xb0, 0xd3, 0x01, 0xb2, - 0xb4, 0x01, 0xb3, 0x66, 0xb4, 0x30, 0xb7, 0x22, 0xb9, 0x01, 0xff, 0x46, - 0x94, 0xd6, 0x05, 0x69, 0x01, 0x42, 0x92, 0x01, 0x0d, 0x69, 0x01, 0xb5, - 0x01, 0xff, 0xaf, 0x06, 0x43, 0x7a, 0xf1, 0x25, 0x69, 0x41, 0xed, 0x34, - 0x69, 0x01, 0xf0, 0x36, 0x69, 0x41, 0x42, 0xba, 0x05, 0xf2, 0x68, 0x01, - 0x44, 0x70, 0xbe, 0xfb, 0x68, 0x41, 0x42, 0x44, 0x0f, 0x4b, 0x69, 0x01, - 0xa5, 0x15, 0xe9, 0x61, 0x69, 0x01, 0x42, 0xb1, 0x91, 0x4c, 0x69, 0x01, - 0xf5, 0x11, 0x69, 0xc1, 0x00, 0x42, 0xf0, 0x04, 0x3d, 0x69, 0x41, 0x43, - 0x37, 0xa7, 0x28, 0x69, 0x01, 0xb5, 0x01, 0xff, 0x43, 0x0e, 0x41, 0x23, - 0x69, 0x01, 0xee, 0x41, 0x69, 0x01, 0xf4, 0x00, 0x69, 0x41, 0xa1, 0x42, - 0x45, 0xc8, 0x93, 0x0c, 0x69, 0x01, 0xa8, 0x17, 0x42, 0xf0, 0x04, 0x24, - 0x69, 0x01, 0xb5, 0x01, 0xff, 0x42, 0x44, 0x0f, 0x39, 0x69, 0x01, 0xe5, - 0x03, 0x69, 0x01, 0xf5, 0x52, 0x69, 0x41, 0xa5, 0x10, 0x42, 0xb1, 0x27, - 0x54, 0x69, 0x01, 0x42, 0xb1, 0x91, 0x5c, 0x69, 0x01, 0xf5, 0x58, 0x69, - 0x41, 0xe5, 0xfd, 0x68, 0x01, 0xb5, 0x01, 0xff, 0x42, 0x44, 0x0f, 0x01, - 0x69, 0x01, 0xf8, 0x55, 0x69, 0x41, 0xf0, 0x07, 0x69, 0x01, 0xf1, 0x64, - 0x69, 0x41, 0x43, 0xa4, 0x85, 0x27, 0x69, 0x01, 0x03, 0xb1, 0x01, 0x06, - 0x42, 0xb1, 0x27, 0x4e, 0x69, 0x41, 0x44, 0xb6, 0xe5, 0x60, 0x69, 0x01, - 0x43, 0x5a, 0x1a, 0x4a, 0x69, 0x41, 0x42, 0xba, 0x05, 0x35, 0x69, 0x01, - 0xa5, 0x13, 0x42, 0x8f, 0x04, 0x2d, 0x69, 0x01, 0xb5, 0x01, 0xff, 0xf1, - 0x5d, 0x69, 0x01, 0x42, 0xfe, 0x07, 0x1b, 0x69, 0x41, 0xe5, 0x5a, 0x69, - 0x01, 0x44, 0x9a, 0xef, 0x2e, 0x69, 0x41, 0xa4, 0xd2, 0x01, 0xa7, 0x7e, - 0xe9, 0x5b, 0x69, 0x01, 0xaa, 0x53, 0xb3, 0x31, 0xb4, 0x1d, 0xf5, 0x57, - 0x69, 0x01, 0xb9, 0x01, 0xff, 0x42, 0x57, 0x00, 0xfa, 0x68, 0x01, 0x42, - 0xc2, 0x05, 0x22, 0x69, 0x01, 0xe9, 0x4d, 0x69, 0x01, 0x42, 0x87, 0x13, - 0x2f, 0x69, 0x41, 0xa5, 0x06, 0x42, 0x9c, 0x72, 0x62, 0x69, 0x41, 0xe5, - 0x59, 0x69, 0x01, 0x42, 0x1d, 0x04, 0x38, 0x69, 0x41, 0xa8, 0x12, 0x03, - 0x57, 0xa1, 0x06, 0x42, 0x1d, 0x04, 0x40, 0x69, 0x41, 0xf0, 0x1f, 0x69, - 0x01, 0xf4, 0x2b, 0x69, 0x41, 0x42, 0x27, 0x01, 0xf8, 0x68, 0x01, 0x42, - 0xfe, 0x07, 0x46, 0x69, 0x41, 0x42, 0xba, 0x05, 0x02, 0x69, 0x01, 0x02, - 0x97, 0x02, 0x11, 0xe9, 0xf3, 0x68, 0x81, 0x06, 0x43, 0xc3, 0xef, 0x47, - 0x69, 0x41, 0x42, 0x27, 0x01, 0xf5, 0x68, 0x41, 0x43, 0xa4, 0x85, 0x0e, - 0x69, 0x01, 0xf4, 0xf7, 0x68, 0x41, 0xa7, 0x2b, 0xab, 0x01, 0xff, 0x42, - 0xba, 0x05, 0xfe, 0x68, 0x01, 0x02, 0x97, 0x02, 0x12, 0x43, 0x57, 0xa1, - 0x3c, 0x69, 0x01, 0x42, 0xf3, 0x0a, 0xfc, 0x68, 0x01, 0x43, 0x91, 0xa7, - 0x13, 0x69, 0x41, 0x43, 0xca, 0x93, 0x29, 0x69, 0x01, 0x42, 0x0d, 0x00, - 0x10, 0x69, 0x41, 0xa1, 0x12, 0x43, 0xd3, 0xe8, 0x3b, 0x69, 0x01, 0x43, - 0xa2, 0xca, 0x45, 0x69, 0x01, 0x44, 0xc8, 0xd4, 0x33, 0x69, 0x41, 0x42, - 0x57, 0x00, 0x31, 0x69, 0x81, 0x04, 0xf0, 0x43, 0x69, 0x41, 0x42, 0x44, - 0x0f, 0xf9, 0x68, 0x41, 0x42, 0x57, 0x00, 0x37, 0x69, 0x01, 0xa5, 0x06, - 0x42, 0x10, 0x00, 0x18, 0x69, 0x41, 0xe5, 0x15, 0x69, 0x01, 0x42, 0xb5, - 0xdd, 0x09, 0x69, 0x41, 0xa1, 0x6d, 0xa2, 0x58, 0xa5, 0x45, 0xa6, 0x26, - 0x02, 0x50, 0x47, 0x10, 0x43, 0x99, 0x07, 0x19, 0x69, 0x01, 0xf5, 0x53, - 0x69, 0x01, 0x43, 0x1a, 0xaa, 0x5e, 0x69, 0x41, 0x43, 0x87, 0x67, 0x1a, - 0x69, 0x01, 0x43, 0x57, 0xa1, 0x1c, 0x69, 0x01, 0x44, 0x7e, 0xee, 0x16, - 0x69, 0x41, 0x02, 0x97, 0x02, 0x0f, 0x43, 0x57, 0xa1, 0x32, 0x69, 0x01, - 0xef, 0x1d, 0x69, 0xc1, 0x00, 0xee, 0xf4, 0x68, 0x41, 0x42, 0x44, 0x0f, - 0x2a, 0x69, 0x01, 0xf4, 0x08, 0x69, 0x41, 0x43, 0x37, 0xa7, 0x50, 0x69, - 0x01, 0xb5, 0x01, 0xff, 0xee, 0x3e, 0x69, 0x01, 0xf4, 0x0b, 0x69, 0x41, - 0x42, 0x31, 0x12, 0x20, 0x69, 0x81, 0x06, 0x42, 0xef, 0x04, 0xf1, 0x68, - 0x41, 0x46, 0x25, 0x1d, 0x63, 0x69, 0x41, 0x45, 0xfa, 0xe2, 0x42, 0x69, - 0x01, 0x45, 0x07, 0xe3, 0x0a, 0x69, 0x41, 0xa5, 0x12, 0x43, 0x57, 0xa1, - 0xf6, 0x68, 0x01, 0x42, 0xb1, 0x91, 0x5f, 0x69, 0x01, 0x42, 0x1d, 0x04, - 0x1e, 0x69, 0x41, 0x43, 0x37, 0xa7, 0x4f, 0x69, 0x01, 0xf4, 0x30, 0x69, - 0x01, 0xb5, 0x01, 0xff, 0x43, 0x6d, 0xd8, 0x17, 0x69, 0x01, 0xed, 0x44, - 0x69, 0x41, 0xa5, 0x1f, 0xf5, 0x49, 0x69, 0x81, 0x0c, 0x44, 0xca, 0xef, - 0x21, 0x69, 0x01, 0x43, 0x91, 0xa7, 0x56, 0x69, 0x41, 0xee, 0x3a, 0x69, - 0x01, 0x42, 0xe9, 0x04, 0x06, 0x69, 0x01, 0xf1, 0x3f, 0x69, 0x41, 0xf4, - 0x04, 0x69, 0x01, 0xb5, 0x01, 0xff, 0x47, 0xd4, 0xcb, 0xff, 0x68, 0x01, - 0xed, 0x26, 0x69, 0x01, 0x48, 0xca, 0xc6, 0x0f, 0x69, 0x01, 0xf0, 0x2c, - 0x69, 0x41, 0x42, 0x31, 0x12, 0x12, 0x69, 0x01, 0x44, 0xc8, 0x93, 0x48, - 0x69, 0x41, 0x42, 0x31, 0x12, 0x65, 0x69, 0x01, 0x48, 0x6a, 0xc3, 0x14, - 0x69, 0x41, 0x44, 0x16, 0xec, 0xc0, 0x68, 0x01, 0x43, 0xf6, 0xf0, 0xbc, - 0x68, 0x01, 0xa7, 0xf5, 0x04, 0xab, 0xa7, 0x04, 0xac, 0x90, 0x04, 0xad, - 0x8d, 0x03, 0xae, 0xa3, 0x01, 0xb0, 0x8d, 0x01, 0x42, 0x3d, 0x00, 0xc3, - 0x68, 0x01, 0xb3, 0x63, 0xb4, 0x3e, 0x03, 0x79, 0x5d, 0x30, 0xb7, 0x22, - 0xb9, 0x01, 0xff, 0x42, 0x31, 0x12, 0xd9, 0x68, 0x01, 0x43, 0xef, 0x99, - 0xa7, 0x68, 0x01, 0xb5, 0x01, 0xff, 0x47, 0xa0, 0xca, 0xa2, 0x68, 0x01, - 0xed, 0x91, 0x68, 0x01, 0x43, 0x7a, 0xf1, 0xe4, 0x68, 0x41, 0x47, 0x13, - 0xcc, 0x92, 0x68, 0x01, 0x42, 0x50, 0x02, 0xd1, 0x68, 0x41, 0x45, 0x0b, - 0xe1, 0xc1, 0x68, 0x01, 0xf8, 0xb1, 0x68, 0x41, 0x46, 0x88, 0xd6, 0xac, - 0x68, 0x01, 0xa5, 0x11, 0x02, 0x52, 0x00, 0x01, 0xff, 0x45, 0xe8, 0xe0, - 0xae, 0x68, 0x01, 0x44, 0x7e, 0xd9, 0xc6, 0x68, 0x41, 0xf4, 0xf0, 0x68, - 0x01, 0x45, 0xd1, 0xe8, 0xba, 0x68, 0x41, 0xa5, 0x14, 0xa8, 0x06, 0x44, - 0xd1, 0xab, 0xaf, 0x68, 0x41, 0x42, 0xff, 0x17, 0xe8, 0x68, 0x01, 0x43, - 0xc3, 0xef, 0xdb, 0x68, 0x41, 0x44, 0x6e, 0xef, 0xdc, 0x68, 0x01, 0x42, - 0xb5, 0xdd, 0xaa, 0x68, 0x41, 0x42, 0x92, 0x01, 0xef, 0x68, 0x01, 0xa9, - 0x01, 0xff, 0xee, 0xee, 0x68, 0x01, 0x45, 0x3c, 0xe7, 0x9c, 0x68, 0x41, - 0xa1, 0xda, 0x01, 0xa4, 0xb3, 0x01, 0xa7, 0x74, 0xaa, 0x52, 0xb3, 0x2d, - 0xb4, 0x13, 0x50, 0x7a, 0x67, 0x99, 0x68, 0x01, 0xba, 0x01, 0xff, 0xe1, - 0x90, 0x68, 0x01, 0x43, 0xa5, 0x56, 0xa3, 0x68, 0x41, 0x42, 0x31, 0x12, - 0xb4, 0x68, 0x01, 0xa5, 0x06, 0x46, 0xba, 0xdd, 0x9a, 0x68, 0x41, 0xee, - 0xd4, 0x68, 0x01, 0x45, 0xae, 0xe8, 0xb9, 0x68, 0x41, 0xe1, 0xbe, 0x68, - 0x01, 0x45, 0x6f, 0xbe, 0xa5, 0x68, 0x01, 0x43, 0xf9, 0xf0, 0xbf, 0x68, - 0x01, 0x42, 0xe9, 0x04, 0xd3, 0x68, 0x01, 0xb5, 0x01, 0xff, 0xee, 0xd6, - 0x68, 0x01, 0x47, 0x4c, 0xd1, 0xc7, 0x68, 0x41, 0xa1, 0x14, 0xa5, 0x06, - 0x43, 0xc3, 0xef, 0xad, 0x68, 0x41, 0x43, 0x37, 0xa7, 0xc8, 0x68, 0x01, - 0x42, 0xb5, 0xdd, 0xe5, 0x68, 0x41, 0x42, 0x8a, 0x05, 0xc4, 0x68, 0x01, - 0xed, 0xcf, 0x68, 0x41, 0x42, 0xb0, 0x35, 0xeb, 0x68, 0x01, 0xa7, 0x14, - 0xab, 0x06, 0x42, 0xe9, 0x04, 0xd0, 0x68, 0x41, 0x42, 0xb0, 0x35, 0x95, - 0x68, 0x01, 0x49, 0xb1, 0xbd, 0x8f, 0x68, 0x41, 0x42, 0x92, 0x01, 0x93, - 0x68, 0x01, 0xf5, 0xca, 0x68, 0xc1, 0x00, 0x48, 0xaa, 0xc0, 0xb0, 0x68, - 0x01, 0x43, 0xc0, 0x10, 0xd2, 0x68, 0x01, 0xed, 0xbb, 0x68, 0x01, 0x42, - 0x10, 0x00, 0xb5, 0x68, 0x41, 0xa1, 0x1a, 0x02, 0x97, 0x02, 0x0c, 0x43, - 0x59, 0x93, 0xab, 0x68, 0x01, 0x44, 0x9b, 0xcf, 0x9d, 0x68, 0x41, 0x45, - 0x10, 0xe1, 0x94, 0x68, 0x01, 0xf4, 0xbd, 0x68, 0x41, 0xed, 0xd7, 0x68, - 0x01, 0xf0, 0xda, 0x68, 0x41, 0x46, 0x86, 0xdb, 0xb2, 0x68, 0x01, 0xf1, - 0xec, 0x68, 0x41, 0xa1, 0x61, 0xa2, 0x12, 0x46, 0xf2, 0xd8, 0xb8, 0x68, - 0x01, 0x43, 0x57, 0xa1, 0xe6, 0x68, 0x01, 0x43, 0xc9, 0x93, 0xe7, 0x68, - 0x41, 0xa1, 0x35, 0xa5, 0x1c, 0xe9, 0xdd, 0x68, 0x81, 0x0d, 0xb5, 0x01, - 0xff, 0x43, 0xa4, 0x85, 0xcc, 0x68, 0x01, 0xe5, 0xa4, 0x68, 0x41, 0x45, - 0x3c, 0xe7, 0xb7, 0x68, 0x01, 0xf4, 0xa6, 0x68, 0x41, 0x45, 0xd7, 0xe2, - 0x97, 0x68, 0x01, 0x43, 0xdf, 0x80, 0xc2, 0x68, 0x01, 0xb5, 0x01, 0xff, - 0xed, 0x9b, 0x68, 0x01, 0xf8, 0xe1, 0x68, 0x41, 0x02, 0x5a, 0x00, 0x06, - 0x43, 0xf6, 0x19, 0xdf, 0x68, 0x41, 0x4c, 0x5d, 0x8b, 0x9e, 0x68, 0x01, - 0x46, 0x22, 0xdc, 0xe3, 0x68, 0x41, 0x80, 0x0f, 0xa5, 0x01, 0xff, 0x43, - 0x20, 0x9d, 0xde, 0x68, 0x01, 0x42, 0x2f, 0x03, 0xcb, 0x68, 0x41, 0x47, - 0x85, 0xcf, 0xb3, 0x68, 0x01, 0x45, 0x10, 0xe6, 0xd8, 0x68, 0x41, 0xa1, - 0x0a, 0x42, 0xff, 0x17, 0xed, 0x68, 0x01, 0xf5, 0xcd, 0x68, 0x41, 0xed, - 0xc5, 0x68, 0x01, 0xf0, 0xb6, 0x68, 0x41, 0x42, 0x31, 0x12, 0xa9, 0x68, - 0x01, 0xa5, 0x13, 0x45, 0x80, 0x67, 0xa8, 0x68, 0x01, 0xb5, 0x01, 0xff, - 0x4a, 0x9d, 0xac, 0xd5, 0x68, 0x01, 0xf4, 0xce, 0x68, 0x41, 0x02, 0x92, - 0x00, 0x20, 0xf4, 0xc9, 0x68, 0x01, 0xb5, 0x01, 0xff, 0x43, 0x17, 0xf1, - 0xa1, 0x68, 0x01, 0xed, 0xe2, 0x68, 0x01, 0xb3, 0x01, 0xff, 0x43, 0xd3, - 0xe8, 0xe0, 0x68, 0x01, 0x46, 0x7c, 0xd9, 0x9f, 0x68, 0x41, 0x47, 0x35, - 0xce, 0xea, 0x68, 0x01, 0x43, 0xa3, 0xd1, 0xe9, 0x68, 0x41, 0x44, 0xfe, - 0xeb, 0x98, 0x68, 0x01, 0x02, 0x22, 0x00, 0x01, 0xff, 0xf0, 0xa0, 0x68, - 0x01, 0x43, 0xdf, 0x80, 0x96, 0x68, 0x41, 0x02, 0xa0, 0x19, 0x81, 0x03, - 0x07, 0x6d, 0xce, 0xf2, 0x02, 0xab, 0xc6, 0x02, 0xac, 0xa9, 0x02, 0xad, - 0xcc, 0x01, 0xae, 0x78, 0xb0, 0x5e, 0xb3, 0x34, 0xb4, 0x1b, 0x44, 0xaa, - 0xef, 0x73, 0x68, 0x01, 0x45, 0x3a, 0xe9, 0x76, 0x68, 0x01, 0xb9, 0x01, - 0xff, 0x4c, 0x49, 0x8a, 0x62, 0x68, 0x01, 0x45, 0x27, 0xe3, 0x5e, 0x68, - 0x41, 0x43, 0x9f, 0x87, 0x78, 0x68, 0x01, 0x02, 0x2e, 0x02, 0x01, 0xff, - 0x49, 0x70, 0xb9, 0x58, 0x68, 0x01, 0x45, 0x10, 0xe6, 0x68, 0x68, 0x41, - 0x46, 0x84, 0xcf, 0x77, 0x68, 0x01, 0x45, 0x1d, 0xe3, 0x5a, 0x68, 0x01, - 0x02, 0xb0, 0x01, 0x0c, 0x43, 0x57, 0xa1, 0x59, 0x68, 0x01, 0x42, 0x87, - 0x13, 0x7d, 0x68, 0x41, 0x46, 0x48, 0xdd, 0x69, 0x68, 0x01, 0x46, 0xc0, - 0xdd, 0x6a, 0x68, 0x41, 0x44, 0xe6, 0xeb, 0x72, 0x68, 0x01, 0x45, 0xb9, - 0xe2, 0x61, 0x68, 0x01, 0x42, 0x52, 0x00, 0x67, 0x68, 0x01, 0x46, 0xe4, - 0xdd, 0x81, 0x68, 0x41, 0x47, 0xa9, 0xcd, 0x65, 0x68, 0x01, 0xa7, 0x23, - 0xb3, 0x15, 0x4b, 0x56, 0xa1, 0x64, 0x68, 0x01, 0xb9, 0x01, 0xff, 0x45, - 0x06, 0xe1, 0x80, 0x68, 0x01, 0x47, 0xd6, 0xce, 0x6d, 0x68, 0x41, 0x42, - 0x92, 0x01, 0x8b, 0x68, 0x01, 0x44, 0x00, 0xce, 0x57, 0x68, 0x41, 0xa7, - 0x0c, 0x4a, 0x13, 0xaa, 0x74, 0x68, 0x01, 0x42, 0xe9, 0x04, 0x8e, 0x68, - 0x41, 0x43, 0x9f, 0x87, 0x8a, 0x68, 0x01, 0x46, 0x8c, 0xd8, 0x75, 0x68, - 0x01, 0x43, 0x5e, 0xa1, 0x7a, 0x68, 0xc1, 0x00, 0x46, 0x2a, 0x1c, 0x7b, - 0x68, 0x41, 0xe1, 0x8c, 0x68, 0x81, 0x44, 0xa2, 0x22, 0x02, 0x97, 0x02, - 0x14, 0xa6, 0x06, 0x47, 0x22, 0xd1, 0x7f, 0x68, 0x41, 0x44, 0xae, 0x35, - 0x7c, 0x68, 0x01, 0x49, 0xb4, 0xba, 0x6b, 0x68, 0x41, 0xf1, 0x79, 0x68, - 0x01, 0x48, 0x9a, 0xc8, 0x82, 0x68, 0x41, 0xa1, 0x12, 0x44, 0xc6, 0xe8, - 0x7e, 0x68, 0x01, 0x4a, 0xcd, 0xa9, 0x6c, 0x68, 0x01, 0x43, 0x5e, 0xa1, - 0x84, 0x68, 0x41, 0x47, 0x8b, 0xca, 0x5c, 0x68, 0x01, 0x44, 0xde, 0x80, - 0x5f, 0x68, 0x41, 0x03, 0x9c, 0x85, 0x01, 0xff, 0x46, 0x92, 0xd8, 0x87, - 0x68, 0x01, 0x43, 0x65, 0xf1, 0x88, 0x68, 0x41, 0xa1, 0x0c, 0x42, 0xc2, - 0x05, 0x89, 0x68, 0x01, 0x48, 0x8a, 0xc6, 0x5b, 0x68, 0x41, 0x44, 0xce, - 0xeb, 0x71, 0x68, 0x01, 0x4c, 0xf5, 0x8f, 0x63, 0x68, 0x41, 0x42, 0x57, - 0x00, 0x60, 0x68, 0x01, 0x02, 0x97, 0x02, 0x0d, 0xa9, 0x01, 0xff, 0x43, - 0xdf, 0x17, 0x5d, 0x68, 0x01, 0xf1, 0x8d, 0x68, 0x41, 0x43, 0xa4, 0x85, - 0x86, 0x68, 0x01, 0x43, 0x35, 0xf1, 0x6e, 0x68, 0x01, 0x44, 0xee, 0xef, - 0x70, 0x68, 0x41, 0xee, 0x6f, 0x68, 0x01, 0x44, 0x23, 0xe3, 0x66, 0x68, - 0x41, 0xe5, 0x85, 0x68, 0x01, 0x42, 0xb5, 0xdd, 0x83, 0x68, 0x41, 0x44, - 0x92, 0xec, 0x39, 0x68, 0x01, 0xa7, 0xcc, 0x04, 0xab, 0xa5, 0x04, 0xac, - 0x85, 0x04, 0xad, 0x8a, 0x03, 0xae, 0xdc, 0x01, 0xb0, 0x88, 0x01, 0x43, - 0x80, 0x05, 0x3a, 0x68, 0x01, 0xb3, 0x3b, 0xb4, 0x14, 0xb5, 0x06, 0x43, - 0xd2, 0x06, 0x52, 0x68, 0x41, 0x48, 0x2a, 0xc0, 0x20, 0x68, 0x01, 0x46, - 0x68, 0xdb, 0x44, 0x68, 0x41, 0x02, 0x97, 0x02, 0x15, 0x48, 0xaa, 0xc4, - 0x06, 0x68, 0x01, 0xb5, 0x01, 0xff, 0x47, 0xb3, 0xbd, 0x0c, 0x68, 0x01, - 0x43, 0x6d, 0xd8, 0x2e, 0x68, 0x41, 0x43, 0x0e, 0x41, 0x4a, 0x68, 0x01, - 0x46, 0x7e, 0xdd, 0x31, 0x68, 0x41, 0x46, 0x98, 0xd8, 0x11, 0x68, 0x01, - 0xa8, 0x1c, 0x43, 0xbd, 0x48, 0x23, 0x68, 0x01, 0xaf, 0x06, 0x42, 0x9c, - 0x72, 0x15, 0x68, 0x41, 0x44, 0x3e, 0xee, 0x30, 0x68, 0x01, 0xf1, 0x3c, - 0x68, 0x01, 0xf4, 0x4b, 0x68, 0x41, 0xa9, 0x13, 0x4c, 0xb1, 0x91, 0x40, - 0x68, 0x01, 0xb5, 0x01, 0xff, 0x47, 0xfd, 0xcd, 0x05, 0x68, 0x01, 0xed, - 0x37, 0x68, 0x41, 0x4a, 0xf3, 0xab, 0x08, 0x68, 0x01, 0x43, 0xdf, 0x80, - 0x3e, 0x68, 0x41, 0xa1, 0x31, 0x42, 0xc2, 0x05, 0x2a, 0x68, 0x01, 0x03, - 0xb6, 0x00, 0x06, 0x42, 0x50, 0x02, 0x2d, 0x68, 0x41, 0x0b, 0x4c, 0x9d, - 0x11, 0x0d, 0x9a, 0x85, 0x01, 0xff, 0x42, 0x16, 0x00, 0x0a, 0x68, 0x01, - 0x45, 0x74, 0xb9, 0x09, 0x68, 0x41, 0x42, 0x16, 0x00, 0x03, 0x68, 0x01, - 0x45, 0x74, 0xb9, 0x02, 0x68, 0x41, 0x49, 0x4c, 0x8a, 0x28, 0x68, 0x01, - 0xa1, 0x0c, 0x45, 0xb1, 0xe5, 0x1d, 0x68, 0x01, 0x44, 0xdc, 0x96, 0x1b, - 0x68, 0x41, 0xed, 0x4c, 0x68, 0x01, 0x43, 0xdf, 0x80, 0x42, 0x68, 0x41, - 0xa1, 0x9e, 0x01, 0x02, 0xa1, 0x10, 0x8d, 0x01, 0x42, 0x92, 0x01, 0x54, - 0x68, 0x01, 0xa7, 0x68, 0x43, 0xb0, 0x42, 0x2c, 0x68, 0x01, 0x43, 0x3f, - 0xee, 0x47, 0x68, 0x01, 0xab, 0x4e, 0x02, 0xa4, 0x02, 0x40, 0xb4, 0x22, - 0xb9, 0x0f, 0xba, 0x01, 0xff, 0x46, 0xac, 0xc4, 0x07, 0x68, 0x01, 0x47, - 0xf3, 0xd3, 0x1f, 0x68, 0x41, 0x42, 0xc2, 0x05, 0x49, 0x68, 0x01, 0xe9, - 0x4f, 0x68, 0xc1, 0x00, 0x4c, 0xc1, 0x93, 0x41, 0x68, 0x41, 0x42, 0xba, - 0x05, 0x3f, 0x68, 0x81, 0x06, 0x45, 0x79, 0xe6, 0x12, 0x68, 0x41, 0x80, - 0x01, 0xff, 0x44, 0xea, 0xed, 0x19, 0x68, 0x01, 0x44, 0x5a, 0xee, 0x22, - 0x68, 0x41, 0xe1, 0x51, 0x68, 0x01, 0x43, 0x57, 0xa1, 0x4d, 0x68, 0x41, - 0x45, 0xa2, 0xac, 0x43, 0x68, 0x01, 0x44, 0xbe, 0x06, 0x14, 0x68, 0x41, - 0x44, 0x1c, 0x01, 0x0d, 0x68, 0x01, 0x43, 0xd5, 0x58, 0x45, 0x68, 0x01, - 0x03, 0x1a, 0xf1, 0x01, 0xff, 0x45, 0xad, 0xc4, 0x00, 0x68, 0x01, 0x45, - 0x2e, 0xe6, 0x16, 0x68, 0x41, 0x49, 0x4c, 0x8a, 0x29, 0x68, 0x01, 0x49, - 0xbe, 0xb3, 0x34, 0x68, 0x41, 0x46, 0xac, 0xc4, 0x04, 0x68, 0x01, 0xf1, - 0x55, 0x68, 0x41, 0xa1, 0x39, 0x02, 0x16, 0x00, 0x2b, 0x4b, 0xe7, 0x99, - 0x25, 0x68, 0x01, 0x45, 0xf2, 0xd8, 0x24, 0x68, 0x01, 0xaf, 0x06, 0x49, - 0x6e, 0xbe, 0x10, 0x68, 0x41, 0x4a, 0xcb, 0xab, 0x1e, 0x68, 0x01, 0x02, - 0xe9, 0x04, 0x01, 0xff, 0x43, 0x8f, 0x8c, 0x36, 0x68, 0x01, 0x43, 0x35, - 0xf1, 0x26, 0x68, 0x41, 0x43, 0xf6, 0x19, 0x48, 0x68, 0x01, 0xf1, 0x56, - 0x68, 0x41, 0xa5, 0x0c, 0x45, 0x15, 0xe6, 0x0f, 0x68, 0x01, 0x47, 0x99, - 0xd1, 0x3d, 0x68, 0x41, 0x44, 0x96, 0xed, 0x1a, 0x68, 0x01, 0xed, 0x4e, - 0x68, 0x81, 0x0c, 0x43, 0xf6, 0x19, 0x32, 0x68, 0x01, 0x42, 0x2f, 0x03, - 0x46, 0x68, 0x41, 0x46, 0x3c, 0xd7, 0x0b, 0x68, 0x01, 0x45, 0x74, 0xb9, - 0x0b, 0x68, 0x01, 0x44, 0x17, 0x70, 0x2b, 0x68, 0x01, 0x44, 0xae, 0xef, - 0x0e, 0x68, 0x41, 0x44, 0xd2, 0xeb, 0x17, 0x68, 0x01, 0x46, 0x86, 0xd8, - 0x18, 0x68, 0x01, 0x45, 0x6f, 0xe6, 0x38, 0x68, 0x01, 0xf5, 0x53, 0x68, - 0xc1, 0x00, 0x43, 0x6d, 0xd8, 0x2f, 0x68, 0x41, 0xa1, 0x18, 0xa5, 0x0c, - 0x43, 0x32, 0xf1, 0x3b, 0x68, 0x01, 0x43, 0x5e, 0xa1, 0x35, 0x68, 0x41, - 0xf4, 0x33, 0x68, 0x01, 0x48, 0x4a, 0xc9, 0x13, 0x68, 0x41, 0x42, 0xe1, - 0x07, 0x27, 0x68, 0x01, 0xf1, 0x50, 0x68, 0x41, 0x48, 0x8a, 0xc1, 0x01, - 0x68, 0x01, 0x05, 0x17, 0xd9, 0x01, 0xff, 0x46, 0x16, 0xd9, 0x21, 0x68, - 0x01, 0x43, 0xdf, 0x80, 0x1c, 0x68, 0x41, 0xe5, 0xca, 0xa6, 0x00, 0x42, - 0xb5, 0xdd, 0xc5, 0xa6, 0x40, 0xe1, 0xdb, 0xa6, 0x00, 0x43, 0x5c, 0x56, - 0xb1, 0xa6, 0x00, 0xa7, 0x3d, 0xe9, 0xcf, 0xa6, 0x00, 0xaa, 0x25, 0x43, - 0xa4, 0x02, 0xc3, 0xa6, 0x00, 0xb4, 0x11, 0xf5, 0xbd, 0xa6, 0x80, 0x06, - 0x42, 0xf7, 0x19, 0xa8, 0xa6, 0x40, 0x42, 0x44, 0x0f, 0xbc, 0xa6, 0x40, - 0x42, 0x27, 0x01, 0xc7, 0xa6, 0x00, 0x42, 0x9c, 0x72, 0xeb, 0xa6, 0x40, - 0x43, 0xa4, 0x85, 0xb2, 0xa6, 0x00, 0x42, 0x27, 0x01, 0xc6, 0xa6, 0x00, - 0x43, 0xc9, 0x93, 0xbe, 0xa6, 0x40, 0xe1, 0xd5, 0xa6, 0x00, 0x42, 0x24, - 0x02, 0xd4, 0xa6, 0x00, 0x45, 0xdf, 0xe4, 0xd3, 0xa6, 0x40, 0xe1, 0xe3, - 0xa6, 0x00, 0xa2, 0x18, 0xa5, 0x0c, 0xe9, 0xce, 0xa6, 0x00, 0xef, 0xe6, - 0xa6, 0x00, 0xf5, 0xb5, 0xa6, 0x40, 0x43, 0x37, 0xa7, 0xaf, 0xa6, 0x00, - 0xee, 0xe2, 0xa6, 0x40, 0x42, 0x31, 0x12, 0xe7, 0xa6, 0x00, 0x42, 0x92, - 0x01, 0xe0, 0xa6, 0x40, 0xe1, 0xaa, 0xa6, 0x00, 0x44, 0x62, 0xec, 0xae, - 0xa6, 0x00, 0xe9, 0xdc, 0xa6, 0x00, 0x42, 0xb1, 0x91, 0xde, 0xa6, 0x00, - 0xf5, 0xcd, 0xa6, 0x40, 0xe1, 0xa1, 0xa6, 0x00, 0xa5, 0x25, 0xe9, 0xe5, - 0xa6, 0x00, 0xef, 0xdf, 0xa6, 0x80, 0x10, 0x42, 0x6c, 0x09, 0xe9, 0xa6, - 0x00, 0xf5, 0xa3, 0xa6, 0x00, 0x43, 0x91, 0xa7, 0xba, 0xa6, 0x40, 0x44, - 0xb2, 0xec, 0xef, 0xa6, 0x00, 0x43, 0x74, 0xf1, 0xee, 0xa6, 0x40, 0xee, - 0xd2, 0xa6, 0x00, 0xf4, 0xbb, 0xa6, 0x00, 0x42, 0xb5, 0xdd, 0xc4, 0xa6, - 0x40, 0x45, 0xf2, 0xe0, 0xed, 0xa6, 0x00, 0x42, 0x27, 0x01, 0xcb, 0xa6, - 0x00, 0x42, 0xe9, 0x04, 0xd9, 0xa6, 0x00, 0xf5, 0xd8, 0xa6, 0x40, 0x43, - 0x03, 0x12, 0xf4, 0xa6, 0x00, 0xad, 0x01, 0xff, 0x0c, 0xfd, 0x8a, 0x06, - 0x42, 0x6c, 0x00, 0xf5, 0xa6, 0x40, 0x47, 0xa1, 0xcf, 0xf0, 0xa6, 0x00, - 0x49, 0x96, 0xbd, 0xf1, 0xa6, 0x40, 0x06, 0x27, 0x82, 0x71, 0xac, 0x01, - 0xff, 0x48, 0xaa, 0xbf, 0xf6, 0xf9, 0x01, 0x48, 0x52, 0xc3, 0x70, 0xfa, - 0x01, 0xaf, 0x01, 0xff, 0x42, 0x10, 0x00, 0x88, 0xf3, 0x81, 0x52, 0x02, - 0xc6, 0x00, 0x01, 0xff, 0x02, 0x5d, 0x00, 0x0a, 0x48, 0x47, 0x9c, 0xf4, - 0xf5, 0x01, 0xf8, 0x17, 0x27, 0x40, 0x4b, 0x44, 0x9c, 0xf6, 0xf5, 0x01, - 0xf8, 0x10, 0x26, 0xc0, 0x00, 0x06, 0x50, 0x00, 0x01, 0xff, 0xa2, 0x16, - 0x45, 0x1e, 0x14, 0x11, 0x26, 0x00, 0x47, 0x18, 0xd0, 0xbd, 0x2b, 0x00, - 0x48, 0x47, 0x9c, 0xf5, 0xf5, 0x01, 0xf8, 0x12, 0x26, 0x40, 0x45, 0xe9, - 0xcb, 0xf3, 0xf5, 0x01, 0x04, 0xa6, 0x24, 0x01, 0xff, 0x45, 0x1e, 0x14, - 0xf9, 0xf5, 0x01, 0x48, 0x47, 0x9c, 0xf7, 0xf5, 0x41, 0x50, 0x4d, 0x1c, - 0x49, 0x27, 0x40, 0x49, 0x49, 0xb3, 0x44, 0x1b, 0x00, 0x06, 0x24, 0x6d, - 0x85, 0x07, 0x06, 0xc4, 0x06, 0xbe, 0x06, 0x0f, 0x1b, 0x6d, 0xad, 0x06, - 0x07, 0xc1, 0x05, 0xaa, 0x03, 0x0f, 0x40, 0x31, 0xcd, 0x01, 0x02, 0x6c, - 0x09, 0x9d, 0x01, 0x05, 0x2f, 0x03, 0x70, 0x0b, 0xd1, 0x75, 0x06, 0x45, - 0x26, 0xe9, 0x5c, 0x1b, 0x40, 0x48, 0xf2, 0xc4, 0x3c, 0x1b, 0x80, 0x59, - 0x45, 0xba, 0xe6, 0x42, 0x1b, 0x80, 0x4c, 0x47, 0x41, 0xd2, 0x3a, 0x1b, - 0x80, 0x3f, 0x44, 0x3d, 0xd3, 0x38, 0x1b, 0x80, 0x32, 0xb4, 0x0d, 0x43, - 0x97, 0x95, 0x36, 0x1b, 0xc0, 0x00, 0x45, 0xcc, 0xde, 0x37, 0x1b, 0x40, - 0x45, 0xa3, 0x27, 0x3e, 0x1b, 0x80, 0x06, 0x45, 0xe1, 0xca, 0x35, 0x1b, - 0x40, 0x80, 0x01, 0xff, 0x44, 0x59, 0xcb, 0x3f, 0x1b, 0x80, 0x06, 0x46, - 0xe0, 0xca, 0x40, 0x1b, 0x40, 0x47, 0xdf, 0xca, 0x41, 0x1b, 0x40, 0x45, - 0xb3, 0xde, 0x39, 0x1b, 0x40, 0x47, 0xdf, 0xca, 0x3b, 0x1b, 0x40, 0x47, - 0xdf, 0xca, 0x43, 0x1b, 0x40, 0x47, 0xdf, 0xca, 0x3d, 0x1b, 0x40, 0x45, - 0xb5, 0xe1, 0x04, 0x1b, 0x00, 0x45, 0x05, 0xe2, 0x02, 0x1b, 0x00, 0x47, - 0x79, 0xd2, 0x34, 0x1b, 0x00, 0x46, 0x2a, 0xdd, 0x03, 0x1b, 0x00, 0x04, - 0x86, 0xef, 0x01, 0xff, 0x46, 0x4f, 0x23, 0x01, 0x1b, 0x00, 0x45, 0x37, - 0xe7, 0x00, 0x1b, 0x40, 0xad, 0x16, 0x43, 0x9f, 0x01, 0x5a, 0x1b, 0xc0, - 0x00, 0x80, 0x01, 0xff, 0x45, 0x9c, 0xe1, 0x7f, 0x1b, 0x00, 0x47, 0x9b, - 0xbf, 0x7d, 0x1b, 0x40, 0x43, 0x3c, 0x1e, 0x5b, 0x1b, 0x80, 0x06, 0x45, - 0xf5, 0xe2, 0x60, 0x1b, 0x40, 0x48, 0x9a, 0xbf, 0x7e, 0x1b, 0x40, 0x0a, - 0xd6, 0x57, 0x97, 0x01, 0xa4, 0x51, 0x0a, 0x77, 0xaa, 0x26, 0x0b, 0xd5, - 0x9f, 0x01, 0xff, 0x08, 0xfa, 0x5f, 0x11, 0x06, 0xe0, 0xdb, 0x01, 0xff, - 0x42, 0x23, 0x02, 0x75, 0x1b, 0x00, 0x42, 0x83, 0x0e, 0x74, 0x1b, 0x40, - 0x42, 0x6d, 0x00, 0x77, 0x1b, 0x00, 0x42, 0x65, 0x08, 0x76, 0x1b, 0x40, - 0x09, 0xf0, 0xb4, 0x17, 0x06, 0xe6, 0xdb, 0x01, 0xff, 0x43, 0x1c, 0x01, - 0x78, 0x1b, 0x00, 0x43, 0xa1, 0x01, 0x7c, 0x1b, 0x00, 0x43, 0x75, 0x44, - 0x79, 0x1b, 0x40, 0x42, 0x6d, 0x00, 0x7a, 0x1b, 0x00, 0x42, 0x65, 0x08, - 0x7b, 0x1b, 0x40, 0xa1, 0x20, 0xa5, 0x12, 0x43, 0xa1, 0x01, 0x66, 0x1b, - 0x00, 0x43, 0x63, 0x0e, 0x61, 0x1b, 0x00, 0x43, 0x75, 0x44, 0x63, 0x1b, - 0x40, 0x42, 0x1d, 0x01, 0x62, 0x1b, 0x00, 0x43, 0x75, 0x44, 0x68, 0x1b, - 0x40, 0x43, 0xfd, 0x09, 0x67, 0x1b, 0x00, 0x43, 0xa1, 0x01, 0x69, 0x1b, - 0x00, 0x42, 0x1d, 0x01, 0x64, 0x1b, 0xc0, 0x00, 0x80, 0x01, 0xff, 0x44, - 0xaa, 0xec, 0x6a, 0x1b, 0x00, 0x46, 0x2a, 0xdd, 0x65, 0x1b, 0x40, 0x45, - 0xa6, 0xe1, 0x72, 0x1b, 0x00, 0x45, 0xf0, 0xe2, 0x6c, 0x1b, 0x00, 0x44, - 0x3e, 0x85, 0x73, 0x1b, 0x00, 0x47, 0x6a, 0x7e, 0x6f, 0x1b, 0x00, 0x04, - 0x98, 0xb8, 0x06, 0x45, 0x0e, 0xe8, 0x6b, 0x1b, 0x40, 0x42, 0xc3, 0x01, - 0x6e, 0x1b, 0x80, 0x0d, 0x42, 0x1f, 0x01, 0x6d, 0x1b, 0xc0, 0x00, 0x4d, - 0x64, 0x7e, 0x70, 0x1b, 0x40, 0x4d, 0x64, 0x7e, 0x71, 0x1b, 0x40, 0xa1, - 0xdc, 0x02, 0x42, 0x16, 0x00, 0x29, 0x1b, 0x80, 0xce, 0x02, 0x42, 0x37, - 0x00, 0x18, 0x1b, 0x80, 0xc0, 0x02, 0x42, 0xa1, 0x10, 0x24, 0x1b, 0x80, - 0x9c, 0x02, 0xa5, 0x8d, 0x02, 0x42, 0x24, 0x02, 0x15, 0x1b, 0x80, 0xff, - 0x01, 0x42, 0x22, 0x00, 0x33, 0x1b, 0x00, 0x45, 0x44, 0xe4, 0x07, 0x1b, - 0x80, 0xeb, 0x01, 0x42, 0xbd, 0x26, 0x1a, 0x1b, 0x80, 0xdd, 0x01, 0xab, - 0xc3, 0x01, 0x42, 0x74, 0x00, 0x2e, 0x1b, 0x80, 0xae, 0x01, 0x42, 0x6c, - 0x00, 0x2b, 0x1b, 0x00, 0xae, 0x8e, 0x01, 0x45, 0x5b, 0xe6, 0x11, 0x1b, - 0x80, 0x80, 0x01, 0x42, 0x6c, 0x09, 0x27, 0x1b, 0x80, 0x73, 0x42, 0x71, - 0x00, 0x2d, 0x1b, 0x80, 0x5f, 0x42, 0x15, 0x06, 0x32, 0x1b, 0x80, 0x47, - 0xb4, 0x25, 0x45, 0xa4, 0xe8, 0x09, 0x1b, 0x80, 0x18, 0x48, 0x82, 0xc9, - 0x49, 0x1b, 0x00, 0x42, 0xa9, 0x01, 0x2f, 0x1b, 0x00, 0x42, 0x34, 0x22, - 0x2c, 0x1b, 0x00, 0x49, 0x46, 0xbf, 0x4a, 0x1b, 0x40, 0x47, 0xdf, 0xca, - 0x0a, 0x1b, 0x40, 0xe1, 0x22, 0x1b, 0x80, 0x06, 0x49, 0x61, 0xbf, 0x47, - 0x1b, 0x40, 0x80, 0x01, 0xff, 0x45, 0x02, 0xe5, 0x1d, 0x1b, 0x00, 0x4f, - 0xb0, 0x6e, 0x1e, 0x1b, 0x00, 0x44, 0x1e, 0xc2, 0x23, 0x1b, 0x40, 0x03, - 0x63, 0x22, 0x01, 0xff, 0x42, 0x24, 0x02, 0x30, 0x1b, 0x00, 0x42, 0x6c, - 0x09, 0x31, 0x1b, 0x40, 0x45, 0x43, 0xd2, 0x0b, 0x1b, 0xc0, 0x00, 0x47, - 0xdf, 0xca, 0x0c, 0x1b, 0x40, 0x46, 0x44, 0xd5, 0x28, 0x1b, 0x40, 0x47, - 0xdf, 0xca, 0x12, 0x1b, 0x40, 0xe1, 0x26, 0x1b, 0x80, 0x0c, 0x42, 0x24, - 0x02, 0x17, 0x1b, 0x00, 0x42, 0x34, 0x22, 0x1c, 0x1b, 0x40, 0x47, 0xc3, - 0xca, 0x21, 0x1b, 0x40, 0x46, 0xf4, 0xc4, 0x0d, 0x1b, 0xc0, 0x00, 0x47, - 0xdf, 0xca, 0x0e, 0x1b, 0x40, 0xe1, 0x13, 0x1b, 0x80, 0x06, 0x49, 0x5d, - 0xb7, 0x46, 0x1b, 0x40, 0x4a, 0xb5, 0x6e, 0x14, 0x1b, 0x00, 0x47, 0x2e, - 0xce, 0x45, 0x1b, 0x40, 0x45, 0xb8, 0xde, 0x1b, 0x1b, 0x40, 0x47, 0xdf, - 0xca, 0x08, 0x1b, 0x40, 0x45, 0xa4, 0xde, 0x16, 0x1b, 0x40, 0x47, 0x2e, - 0xce, 0x48, 0x1b, 0x00, 0x44, 0x8b, 0x2c, 0x0f, 0x1b, 0x40, 0x02, 0x6b, - 0x00, 0x01, 0xff, 0x43, 0x6b, 0x02, 0x25, 0x1b, 0x00, 0x05, 0xb1, 0x6e, - 0x01, 0xff, 0x49, 0xa3, 0xb3, 0x1f, 0x1b, 0x00, 0x49, 0xb6, 0x6e, 0x20, - 0x1b, 0x40, 0x45, 0xc2, 0xde, 0x19, 0x1b, 0x40, 0x48, 0x92, 0xbf, 0x2a, - 0x1b, 0x40, 0x45, 0x44, 0xe4, 0x10, 0x1b, 0x00, 0x44, 0x8b, 0x2c, 0x05, - 0x1b, 0x80, 0x0c, 0x4b, 0x9e, 0x9f, 0x4c, 0x1b, 0x00, 0x4b, 0xe8, 0xa0, - 0x4b, 0x1b, 0x40, 0x47, 0xdf, 0xca, 0x06, 0x1b, 0x40, 0x47, 0xb5, 0xd1, - 0x4f, 0x1b, 0x00, 0x44, 0x56, 0xef, 0x4e, 0x1b, 0x40, 0x45, 0xc3, 0x0a, - 0x58, 0x1b, 0x00, 0xa6, 0x2e, 0x44, 0x46, 0x2a, 0x59, 0x1b, 0x00, 0x43, - 0xbf, 0x0a, 0x51, 0x1b, 0x00, 0xb3, 0x14, 0xb4, 0x06, 0x44, 0xa1, 0x1d, - 0x50, 0x1b, 0x40, 0x44, 0x25, 0x01, 0x53, 0x1b, 0x00, 0x42, 0x15, 0x02, - 0x52, 0x1b, 0x40, 0x44, 0x27, 0x1d, 0x57, 0x1b, 0x00, 0x42, 0x60, 0x25, - 0x56, 0x1b, 0x40, 0x43, 0xa7, 0x05, 0x55, 0x1b, 0x00, 0x43, 0xcb, 0x06, - 0x54, 0x1b, 0x40, 0x02, 0x6c, 0x09, 0x06, 0x44, 0x56, 0xef, 0x5e, 0x1b, - 0x40, 0x47, 0x8f, 0xd0, 0x5d, 0x1b, 0x00, 0x45, 0xff, 0x70, 0x5f, 0x1b, - 0x40, 0x42, 0xd8, 0x00, 0x6f, 0xf9, 0x01, 0x4a, 0x5b, 0xa8, 0xc4, 0xf6, - 0x01, 0x4b, 0xe5, 0xa1, 0x56, 0xf9, 0x41, 0x43, 0x8c, 0x09, 0xa1, 0xf9, - 0x01, 0x5e, 0x7c, 0x13, 0xf8, 0xf3, 0x41, 0xab, 0x0c, 0x42, 0x10, 0x00, - 0x53, 0xf9, 0x01, 0x4b, 0x98, 0xa1, 0x2b, 0xf4, 0x41, 0x80, 0x1f, 0x67, - 0x2d, 0x05, 0xab, 0x27, 0x00, 0xb3, 0x01, 0xff, 0x1a, 0xf8, 0x1f, 0x06, - 0x44, 0x88, 0x4b, 0x08, 0x00, 0x40, 0x49, 0x90, 0xba, 0x5b, 0x2b, 0x00, - 0x4d, 0x36, 0x86, 0x5d, 0x2b, 0x40, 0x4b, 0x49, 0x9e, 0x82, 0xf5, 0x01, - 0x5a, 0x1a, 0x22, 0x19, 0xf5, 0x41, 0x80, 0x01, 0xff, 0x45, 0x3d, 0xe1, - 0x7c, 0xf4, 0x01, 0x46, 0xf9, 0x59, 0x7c, 0xf3, 0x01, 0x45, 0x8c, 0x58, - 0x24, 0xf4, 0x01, 0x46, 0xeb, 0x07, 0xbc, 0xf6, 0x41, 0x45, 0x88, 0xe1, - 0xee, 0xf9, 0x01, 0xa3, 0x96, 0x8a, 0x01, 0xa4, 0xaf, 0x85, 0x01, 0xa5, - 0xfa, 0x81, 0x01, 0x4b, 0xf2, 0x99, 0x0b, 0x06, 0x00, 0x04, 0x0e, 0xed, - 0xcc, 0x7e, 0x47, 0x42, 0x33, 0x08, 0x27, 0x80, 0xb5, 0x7e, 0x4b, 0xec, - 0x9b, 0x4d, 0x21, 0x00, 0xac, 0xb3, 0x76, 0xad, 0x8f, 0x76, 0xae, 0xda, - 0x60, 0xb0, 0xff, 0x5b, 0x47, 0x2c, 0xd2, 0x52, 0x26, 0x00, 0xb2, 0xcf, - 0x03, 0xb3, 0x88, 0x03, 0xb4, 0xf9, 0x02, 0xb5, 0xd0, 0x02, 0xb6, 0x06, - 0x42, 0x60, 0x42, 0x93, 0xfa, 0x41, 0x06, 0x80, 0xd8, 0x06, 0x45, 0x51, - 0xe6, 0x51, 0xf9, 0x41, 0x51, 0xb0, 0x4e, 0x39, 0x0b, 0x01, 0x07, 0xc1, - 0x05, 0x01, 0xff, 0xe1, 0x00, 0x0b, 0x81, 0x8f, 0x02, 0xa2, 0x82, 0x02, - 0x42, 0x73, 0x02, 0x17, 0x0b, 0x01, 0xa4, 0xef, 0x01, 0xe5, 0x08, 0x0b, - 0x81, 0xe5, 0x01, 0x42, 0xa0, 0x19, 0x1f, 0x0b, 0x01, 0xa7, 0xcc, 0x01, - 0xa8, 0xbf, 0x01, 0xe9, 0x0c, 0x0b, 0x81, 0xb5, 0x01, 0x42, 0xde, 0x1f, - 0x18, 0x0b, 0x01, 0x42, 0x37, 0x01, 0x10, 0x0b, 0x01, 0x42, 0x68, 0x00, - 0x2e, 0x0b, 0x01, 0x42, 0x2a, 0x02, 0x28, 0x0b, 0x01, 0xae, 0x79, 0xef, - 0x0a, 0x0b, 0x81, 0x70, 0x42, 0x6f, 0x02, 0x1e, 0x0b, 0x01, 0x42, 0x88, - 0x00, 0x2d, 0x0b, 0x01, 0xb3, 0x4c, 0xb4, 0x3a, 0xf5, 0x0e, 0x0b, 0x81, - 0x31, 0x42, 0x32, 0x00, 0x2c, 0x0b, 0x01, 0xb8, 0x19, 0xb9, 0x0d, 0xba, - 0x01, 0xff, 0xe5, 0x30, 0x0b, 0x01, 0x42, 0xb0, 0x01, 0x32, 0x0b, 0x41, - 0xe5, 0x2b, 0x0b, 0x01, 0x42, 0x4d, 0x00, 0x2a, 0x0b, 0x41, 0xe5, 0x11, - 0x0b, 0x01, 0x42, 0x32, 0x00, 0x13, 0x0b, 0x01, 0x42, 0x4d, 0x00, 0x12, - 0x0b, 0x41, 0xf5, 0x0f, 0x0b, 0x41, 0xe5, 0x19, 0x0b, 0x01, 0x42, 0xb0, - 0x01, 0x1a, 0x0b, 0x01, 0x42, 0x77, 0x00, 0x1d, 0x0b, 0x41, 0xe5, 0x2f, - 0x0b, 0x01, 0xa8, 0x06, 0x43, 0x63, 0x06, 0x34, 0x0b, 0x41, 0xe5, 0x31, - 0x0b, 0x01, 0x42, 0x4d, 0x00, 0x33, 0x0b, 0x41, 0xef, 0x0b, 0x0b, 0x41, - 0xe5, 0x25, 0x0b, 0x01, 0xa7, 0x0c, 0x42, 0xa2, 0x05, 0x27, 0x0b, 0x01, - 0x42, 0x4d, 0x00, 0x26, 0x0b, 0x41, 0xe5, 0x22, 0x0b, 0x01, 0x42, 0x32, - 0x00, 0x24, 0x0b, 0x01, 0x42, 0x4d, 0x00, 0x23, 0x0b, 0x41, 0xe9, 0x0d, - 0x0b, 0x41, 0xe5, 0x35, 0x0b, 0x01, 0x42, 0x2a, 0x02, 0x29, 0x0b, 0x41, - 0xe5, 0x14, 0x0b, 0x01, 0x42, 0x8c, 0x09, 0x15, 0x0b, 0x01, 0x42, 0xb0, - 0x01, 0x16, 0x0b, 0x41, 0xe5, 0x09, 0x0b, 0x41, 0xe5, 0x1b, 0x0b, 0x01, - 0x42, 0xb0, 0x01, 0x1c, 0x0b, 0x41, 0xe5, 0x20, 0x0b, 0x01, 0x42, 0xb0, - 0x01, 0x21, 0x0b, 0x41, 0xe1, 0x01, 0x0b, 0x81, 0x11, 0xe5, 0x06, 0x0b, - 0x81, 0x08, 0xee, 0x04, 0x0b, 0x01, 0xef, 0x02, 0x0b, 0x41, 0xe5, 0x07, - 0x0b, 0x41, 0xee, 0x05, 0x0b, 0x01, 0xef, 0x03, 0x0b, 0x41, 0x47, 0xa6, - 0xcc, 0x46, 0xf3, 0x01, 0x4a, 0x13, 0xaf, 0xb3, 0x20, 0x00, 0x02, 0x1e, - 0x00, 0x01, 0xff, 0x49, 0x7a, 0xb2, 0xfa, 0xf6, 0x01, 0xad, 0x01, 0xff, - 0x53, 0x2b, 0x47, 0xe7, 0xf3, 0x01, 0x45, 0x05, 0x4a, 0x97, 0xf6, 0x41, - 0x4b, 0xd9, 0x9a, 0x5f, 0xf4, 0x01, 0x49, 0xa2, 0xba, 0x9b, 0x26, 0x40, - 0xa3, 0x36, 0x47, 0xad, 0x5e, 0xa6, 0x22, 0x00, 0xb4, 0x06, 0x55, 0x8e, - 0x36, 0x43, 0x22, 0x40, 0x04, 0xf0, 0x0c, 0x15, 0x4c, 0x81, 0x91, 0x32, - 0xf6, 0x01, 0xb2, 0x01, 0xff, 0x43, 0xcc, 0x27, 0xd9, 0x2b, 0x00, 0x5a, - 0xc8, 0x20, 0xe2, 0x26, 0x40, 0xeb, 0x2a, 0x00, 0x80, 0x04, 0xed, 0x42, - 0x20, 0x40, 0x49, 0xdb, 0x1c, 0x17, 0x22, 0x40, 0x4b, 0x76, 0x8b, 0x0a, - 0x26, 0x00, 0x49, 0x81, 0xb7, 0x9c, 0x01, 0x41, 0x04, 0xb9, 0x06, 0xbd, - 0x05, 0xe3, 0x12, 0x23, 0x00, 0x43, 0xee, 0x9b, 0x48, 0x26, 0x00, 0x07, - 0x17, 0x32, 0x4b, 0x03, 0xd0, 0x00, 0x11, 0x02, 0x35, 0x00, 0x01, 0xff, - 0x4d, 0x45, 0x80, 0x9b, 0xf6, 0x01, 0x4a, 0xff, 0xae, 0xa8, 0xf3, 0x41, - 0x0a, 0x9b, 0x01, 0x06, 0x53, 0x94, 0x48, 0xb0, 0xfb, 0x41, 0x17, 0x72, - 0x2d, 0x1c, 0x18, 0x55, 0x2a, 0x06, 0x57, 0xc5, 0x30, 0xb0, 0xf8, 0x41, - 0x49, 0xa5, 0x01, 0x35, 0x29, 0x00, 0x4a, 0x97, 0x3f, 0xb1, 0xf8, 0x01, - 0x47, 0x50, 0x02, 0x34, 0x29, 0x40, 0x49, 0xea, 0x01, 0x36, 0x29, 0x00, - 0x4a, 0xb3, 0x02, 0x37, 0x29, 0x40, 0xa1, 0xd5, 0x04, 0xa3, 0xdc, 0x02, - 0x49, 0x92, 0xb5, 0x8f, 0x05, 0x00, 0xa5, 0xc7, 0x02, 0x49, 0x15, 0x16, - 0x89, 0x05, 0x00, 0x46, 0x1a, 0x62, 0x8a, 0x05, 0x00, 0x5e, 0x9a, 0x13, - 0x59, 0x05, 0x00, 0x4d, 0xd6, 0x33, 0x5e, 0x05, 0x00, 0x07, 0x4b, 0x08, - 0x01, 0xff, 0x06, 0xc2, 0x05, 0x2d, 0x08, 0xfb, 0x1e, 0x01, 0xff, 0x48, - 0xe2, 0xc2, 0x87, 0x05, 0x00, 0x04, 0xb5, 0x4d, 0x06, 0x47, 0x71, 0xd4, - 0x16, 0xfb, 0x40, 0x43, 0x0a, 0x40, 0x14, 0xfb, 0x00, 0x43, 0x06, 0x07, - 0x15, 0xfb, 0x00, 0x43, 0x0b, 0x2e, 0x13, 0xfb, 0x00, 0x43, 0x83, 0xf1, - 0x17, 0xfb, 0x40, 0x43, 0x1a, 0xbe, 0x61, 0x05, 0x00, 0x43, 0xfa, 0x1a, - 0x62, 0x05, 0x00, 0xa3, 0xd6, 0x01, 0x42, 0xa1, 0x10, 0x64, 0x05, 0x00, - 0xa5, 0xbf, 0x01, 0x43, 0x85, 0xb6, 0x86, 0x05, 0x00, 0xa7, 0xaa, 0x01, - 0x42, 0x0b, 0x00, 0x70, 0x05, 0x00, 0x43, 0x06, 0x07, 0x6b, 0x05, 0x00, - 0xaa, 0x91, 0x01, 0x02, 0x37, 0x01, 0x84, 0x01, 0x44, 0xca, 0xed, 0x6c, - 0x05, 0x00, 0x43, 0x01, 0x05, 0x74, 0x05, 0x00, 0x43, 0x0b, 0x2e, 0x76, - 0x05, 0x00, 0x42, 0x5c, 0x28, 0x85, 0x05, 0x00, 0xb0, 0x5e, 0xb2, 0x52, - 0xb3, 0x44, 0xb4, 0x32, 0xb6, 0x26, 0x43, 0x83, 0xf1, 0x6d, 0x05, 0x00, - 0x42, 0xf7, 0x19, 0x75, 0x05, 0x80, 0x0d, 0xba, 0x01, 0xff, 0xe1, 0x66, - 0x05, 0x00, 0x42, 0xb0, 0x01, 0x6a, 0x05, 0x40, 0x4c, 0x39, 0x28, 0x88, - 0x05, 0x00, 0x42, 0xa7, 0x01, 0x82, 0x05, 0x40, 0x42, 0x85, 0x1d, 0x7e, - 0x05, 0x00, 0xef, 0x78, 0x05, 0x40, 0x43, 0xe7, 0xc2, 0x7f, 0x05, 0x00, - 0xef, 0x69, 0x05, 0x00, 0x49, 0x14, 0xbe, 0x60, 0x05, 0x40, 0x42, 0x4e, - 0x00, 0x7d, 0x05, 0x00, 0x42, 0x22, 0x00, 0x77, 0x05, 0x40, 0xe1, 0x7c, - 0x05, 0x00, 0x42, 0x4e, 0x00, 0x80, 0x05, 0x40, 0x42, 0x4e, 0x00, 0x7a, - 0x05, 0x00, 0x43, 0x08, 0xf1, 0x83, 0x05, 0x40, 0xe8, 0x84, 0x05, 0x00, - 0xee, 0x6f, 0x05, 0x40, 0xe1, 0x71, 0x05, 0x00, 0x43, 0xfd, 0x41, 0x7b, - 0x05, 0x40, 0x43, 0xa5, 0x02, 0x72, 0x05, 0x00, 0x42, 0x29, 0x02, 0x63, - 0x05, 0x40, 0x42, 0x1e, 0x14, 0x65, 0x05, 0x00, 0xe8, 0x67, 0x05, 0x00, - 0xf4, 0x68, 0x05, 0x40, 0xe1, 0x6e, 0x05, 0x00, 0xa8, 0x04, 0xef, 0x81, - 0x05, 0x40, 0xe1, 0x79, 0x05, 0x00, 0x42, 0x4e, 0x00, 0x73, 0x05, 0x40, - 0x4c, 0x79, 0x90, 0x5b, 0x05, 0x00, 0x4f, 0xae, 0x00, 0x5c, 0x05, 0x40, - 0x0e, 0xba, 0x05, 0x06, 0x44, 0xe9, 0x04, 0x5d, 0x05, 0x40, 0x43, 0x1a, - 0xbe, 0x31, 0x05, 0x00, 0x43, 0xfa, 0x1a, 0x32, 0x05, 0x00, 0xa3, 0xc9, - 0x01, 0x42, 0xa1, 0x10, 0x34, 0x05, 0x00, 0xa5, 0xb2, 0x01, 0x43, 0x85, - 0xb6, 0x56, 0x05, 0x00, 0xa7, 0x9d, 0x01, 0x42, 0x0b, 0x00, 0x40, 0x05, - 0x00, 0x43, 0x06, 0x07, 0x3b, 0x05, 0x00, 0xaa, 0x84, 0x01, 0x02, 0x37, - 0x01, 0x78, 0x44, 0xca, 0xed, 0x3c, 0x05, 0x00, 0x43, 0x01, 0x05, 0x44, - 0x05, 0x00, 0x43, 0x0b, 0x2e, 0x46, 0x05, 0x00, 0x42, 0x5c, 0x28, 0x55, - 0x05, 0x00, 0xb0, 0x52, 0xb2, 0x46, 0xb3, 0x38, 0xb4, 0x2c, 0xb6, 0x20, - 0x43, 0x83, 0xf1, 0x3d, 0x05, 0x00, 0x42, 0xf7, 0x19, 0x45, 0x05, 0x80, - 0x0d, 0xba, 0x01, 0xff, 0xe1, 0x36, 0x05, 0x00, 0x42, 0xb0, 0x01, 0x3a, - 0x05, 0x40, 0x42, 0xa7, 0x01, 0x52, 0x05, 0x40, 0x42, 0x85, 0x1d, 0x4e, - 0x05, 0x00, 0xef, 0x48, 0x05, 0x40, 0x43, 0xe7, 0xc2, 0x4f, 0x05, 0x00, - 0xef, 0x39, 0x05, 0x40, 0x42, 0x4e, 0x00, 0x4d, 0x05, 0x00, 0x42, 0x22, - 0x00, 0x47, 0x05, 0x40, 0xe1, 0x4c, 0x05, 0x00, 0x42, 0x4e, 0x00, 0x50, - 0x05, 0x40, 0x42, 0x4e, 0x00, 0x4a, 0x05, 0x00, 0x43, 0x08, 0xf1, 0x53, - 0x05, 0x40, 0xe8, 0x54, 0x05, 0x00, 0xee, 0x3f, 0x05, 0x40, 0xe1, 0x41, - 0x05, 0x00, 0x43, 0xfd, 0x41, 0x4b, 0x05, 0x40, 0x43, 0xa5, 0x02, 0x42, - 0x05, 0x00, 0x42, 0x29, 0x02, 0x33, 0x05, 0x40, 0x42, 0x1e, 0x14, 0x35, - 0x05, 0x00, 0xe8, 0x37, 0x05, 0x00, 0xf4, 0x38, 0x05, 0x40, 0xe1, 0x3e, - 0x05, 0x00, 0xa8, 0x04, 0xef, 0x51, 0x05, 0x40, 0xe1, 0x49, 0x05, 0x00, - 0x42, 0x4e, 0x00, 0x43, 0x05, 0x40, 0x50, 0xb1, 0x4e, 0x5f, 0x05, 0x00, - 0x49, 0x92, 0x35, 0x5a, 0x05, 0x40, 0x80, 0x68, 0x07, 0xbd, 0x06, 0x01, - 0xff, 0x49, 0x2f, 0xb5, 0x06, 0x06, 0x00, 0x06, 0xc4, 0x06, 0x17, 0x4b, - 0x13, 0x9a, 0x07, 0x06, 0x00, 0x04, 0x6f, 0x02, 0x01, 0xff, 0x4a, 0x85, - 0xab, 0x09, 0x06, 0x00, 0x51, 0xd1, 0x5c, 0x0a, 0x06, 0x40, 0x45, 0xc3, - 0x0a, 0x68, 0x06, 0x00, 0xa6, 0x2e, 0x44, 0x46, 0x2a, 0x69, 0x06, 0x00, - 0x43, 0xbf, 0x0a, 0x61, 0x06, 0x00, 0xb3, 0x14, 0xb4, 0x06, 0x44, 0xa1, - 0x1d, 0x60, 0x06, 0x40, 0x44, 0x25, 0x01, 0x63, 0x06, 0x00, 0x42, 0x15, - 0x02, 0x62, 0x06, 0x40, 0x44, 0x27, 0x1d, 0x67, 0x06, 0x00, 0x42, 0x60, - 0x25, 0x66, 0x06, 0x40, 0x43, 0xa7, 0x05, 0x65, 0x06, 0x00, 0x43, 0xcb, - 0x06, 0x64, 0x06, 0x40, 0x52, 0x40, 0x4f, 0x87, 0x08, 0x00, 0xa3, 0xb6, - 0x51, 0xa4, 0xdf, 0x50, 0xa5, 0xbb, 0x50, 0xa6, 0xed, 0x4f, 0x02, 0x22, - 0x00, 0xd1, 0x4f, 0x4e, 0x56, 0x77, 0x57, 0x06, 0x00, 0x45, 0x5f, 0x4f, - 0x50, 0x06, 0x80, 0xa2, 0x4f, 0xac, 0xe8, 0x0f, 0x02, 0x6c, 0x00, 0xeb, - 0x07, 0x07, 0x2f, 0x39, 0xda, 0x07, 0x05, 0xcb, 0x04, 0xc3, 0x07, 0xb0, - 0x97, 0x07, 0x4d, 0xd6, 0x33, 0x1f, 0x06, 0x00, 0xb2, 0xdf, 0x06, 0xb3, - 0xa4, 0x01, 0xb4, 0x2b, 0xb6, 0x0c, 0x50, 0x2a, 0x67, 0x5f, 0x06, 0x00, - 0x48, 0x4a, 0xca, 0x59, 0x06, 0x40, 0x4c, 0x87, 0x46, 0x8e, 0x08, 0x00, - 0x0a, 0xd2, 0x75, 0x01, 0xff, 0x49, 0x50, 0x12, 0x5c, 0x06, 0x00, 0x56, - 0xf9, 0x33, 0x5b, 0x06, 0x00, 0x4d, 0x02, 0x34, 0x5a, 0x06, 0x40, 0xa1, - 0x47, 0x52, 0x26, 0x51, 0x6c, 0x06, 0x00, 0x04, 0xbf, 0x0a, 0x0c, 0x5a, - 0x7e, 0x21, 0x1e, 0x06, 0x00, 0x51, 0x7b, 0x5d, 0xe3, 0x08, 0x40, 0x05, - 0x25, 0xe5, 0x21, 0x08, 0xb0, 0x0b, 0x11, 0x09, 0xa2, 0x0b, 0x01, 0xff, - 0x45, 0x5c, 0x00, 0xeb, 0x08, 0x00, 0x45, 0xf5, 0x06, 0xee, 0x08, 0x40, - 0x45, 0x5c, 0x00, 0xea, 0x08, 0x00, 0x45, 0xf5, 0x06, 0xed, 0x08, 0x40, - 0x45, 0x5c, 0x00, 0xec, 0x08, 0x00, 0x45, 0xf5, 0x06, 0xef, 0x08, 0x40, - 0x4b, 0x26, 0x9b, 0x73, 0xfe, 0x00, 0x45, 0x8f, 0x20, 0x40, 0x06, 0xc0, - 0x00, 0x06, 0x50, 0x00, 0x01, 0xff, 0x4e, 0x4c, 0x76, 0x71, 0xfe, 0x00, - 0x0b, 0xf9, 0x9e, 0x06, 0x4e, 0xb6, 0x0e, 0x85, 0x08, 0x40, 0x45, 0x56, - 0x00, 0x83, 0x08, 0x00, 0x43, 0xc0, 0x88, 0x84, 0x08, 0x40, 0x48, 0x6f, - 0x58, 0x1b, 0x06, 0x00, 0x45, 0xb8, 0xe3, 0x51, 0x06, 0x80, 0x9b, 0x05, - 0x04, 0x30, 0x03, 0xc7, 0x04, 0x05, 0x0d, 0x07, 0xc1, 0x01, 0x53, 0x24, - 0x4c, 0xde, 0x06, 0x00, 0xb5, 0x90, 0x01, 0x06, 0xf4, 0x15, 0x01, 0xff, - 0x02, 0x3b, 0x01, 0x71, 0x0a, 0x9c, 0x45, 0x61, 0x44, 0xf7, 0x07, 0xbf, - 0xfb, 0x00, 0x0a, 0xcd, 0x73, 0x4b, 0xb4, 0x06, 0x4b, 0xb6, 0xa2, 0xc2, - 0xfb, 0x40, 0x0a, 0x5f, 0x12, 0x22, 0x08, 0xa3, 0x0b, 0x01, 0xff, 0x45, - 0x5c, 0x00, 0xb4, 0xfb, 0x00, 0x45, 0xf5, 0x06, 0xb5, 0xfb, 0x00, 0x0b, - 0x95, 0x2b, 0x01, 0xff, 0x45, 0x5c, 0x00, 0xbd, 0xfb, 0x00, 0x45, 0xf5, - 0x06, 0xbe, 0xfb, 0x40, 0x45, 0x5c, 0x00, 0xb6, 0xfb, 0x00, 0x45, 0xf5, - 0x06, 0xb7, 0xfb, 0x00, 0x13, 0x9c, 0x01, 0x01, 0xff, 0x45, 0x5c, 0x00, - 0xb8, 0xfb, 0x00, 0x45, 0xf5, 0x06, 0xb9, 0xfb, 0x40, 0x45, 0x5c, 0x00, - 0xc0, 0xfb, 0x00, 0x45, 0xf5, 0x06, 0xc1, 0xfb, 0x40, 0x45, 0x5c, 0x00, - 0xba, 0xfb, 0x00, 0x45, 0xf5, 0x06, 0xbb, 0xfb, 0x40, 0x02, 0xc6, 0x00, - 0x06, 0x57, 0x80, 0x30, 0xbc, 0xfb, 0x40, 0x45, 0x5c, 0x00, 0xb2, 0xfb, - 0x00, 0x45, 0xf5, 0x06, 0xb3, 0xfb, 0x40, 0x4c, 0x39, 0x8b, 0x56, 0x06, - 0x00, 0x43, 0xa7, 0x35, 0x52, 0x06, 0x80, 0x06, 0x58, 0x0d, 0x2a, 0x9d, - 0x08, 0x40, 0x80, 0x01, 0xff, 0x45, 0xf5, 0x06, 0xd0, 0x08, 0x00, 0x4d, - 0x34, 0x03, 0x7e, 0xfe, 0x00, 0x4b, 0x4d, 0x6c, 0x7f, 0xfe, 0x40, 0x45, - 0x81, 0x5d, 0x19, 0x06, 0x00, 0x02, 0xe1, 0x07, 0xea, 0x02, 0x05, 0xf9, - 0x0a, 0x5c, 0x45, 0x5f, 0x4f, 0x1a, 0x06, 0x00, 0x04, 0xdd, 0x04, 0x0c, - 0x43, 0xc0, 0x88, 0xe5, 0x06, 0x00, 0x43, 0x4d, 0x00, 0xe6, 0x06, 0x40, - 0x44, 0x7a, 0x20, 0xed, 0x06, 0x00, 0x4f, 0x28, 0x6f, 0xd9, 0x08, 0x00, - 0x44, 0x3a, 0xef, 0xe3, 0x06, 0x00, 0xb7, 0x01, 0xff, 0x42, 0x9a, 0x43, - 0xd3, 0x08, 0x00, 0x04, 0xb4, 0x24, 0x01, 0xff, 0xa9, 0x18, 0x45, 0xc7, - 0x49, 0xff, 0x0e, 0x01, 0x44, 0xe2, 0xee, 0xfe, 0x0e, 0x01, 0x45, 0x91, - 0xe7, 0xfd, 0x0e, 0x01, 0x47, 0x67, 0xd3, 0x9b, 0x08, 0x40, 0x45, 0x43, - 0xe5, 0x9a, 0x08, 0x00, 0x46, 0xd0, 0xdc, 0x99, 0x08, 0x40, 0x43, 0x05, - 0x07, 0xd6, 0x08, 0x00, 0x54, 0x83, 0x40, 0xe1, 0x06, 0x00, 0xa6, 0xef, - 0x01, 0x44, 0x6e, 0x37, 0xda, 0x06, 0x00, 0xac, 0xbf, 0x01, 0xad, 0xa5, - 0x01, 0x44, 0xc4, 0x44, 0xe8, 0x06, 0x80, 0x97, 0x01, 0x43, 0xf4, 0x13, - 0xd7, 0x08, 0x00, 0x4c, 0x0d, 0x93, 0xdf, 0x06, 0x00, 0xb3, 0x77, 0xb4, - 0x69, 0x58, 0xfd, 0x2a, 0xe0, 0x06, 0x00, 0xb7, 0x1c, 0x43, 0x4d, 0x00, - 0xe7, 0x06, 0x80, 0x0f, 0x02, 0x59, 0x00, 0x01, 0xff, 0xe8, 0xcd, 0x08, - 0x00, 0x42, 0x9e, 0x01, 0x17, 0x06, 0x40, 0x5b, 0x69, 0x19, 0xcb, 0x08, - 0x40, 0x42, 0x9a, 0x43, 0xf3, 0x08, 0x00, 0x04, 0xb4, 0x24, 0x01, 0xff, - 0xa1, 0x1a, 0x43, 0x3e, 0xf1, 0xde, 0x08, 0x00, 0x02, 0x15, 0x06, 0x06, - 0x45, 0x0d, 0xe9, 0xdf, 0x08, 0x40, 0xe8, 0xcc, 0x08, 0x00, 0x43, 0x5c, - 0x3e, 0xdd, 0x08, 0x40, 0x45, 0xe9, 0xe4, 0x98, 0x08, 0x00, 0x46, 0x2c, - 0xdb, 0xdc, 0x08, 0x00, 0x45, 0x00, 0xe7, 0xd4, 0x08, 0x00, 0x47, 0xb8, - 0xd2, 0xdb, 0x08, 0x00, 0x4b, 0x1f, 0xa1, 0xda, 0x08, 0x40, 0x42, 0xc9, - 0x09, 0x15, 0x06, 0x00, 0x49, 0xdc, 0x0f, 0xdb, 0x06, 0x40, 0x42, 0xe8, - 0x01, 0xd5, 0x08, 0x00, 0x43, 0x75, 0x09, 0xdc, 0x06, 0x00, 0x49, 0xc9, - 0xb7, 0xe1, 0x08, 0x40, 0x4b, 0x2c, 0x6f, 0xd8, 0x08, 0x40, 0x44, 0xc8, - 0x49, 0xe4, 0x06, 0x00, 0x05, 0x6f, 0x37, 0x01, 0xff, 0x4b, 0x4d, 0x16, - 0xd8, 0x06, 0x00, 0x4c, 0x35, 0x03, 0xe2, 0x06, 0x40, 0x47, 0xf7, 0xcb, - 0xd9, 0x06, 0x00, 0x08, 0xfb, 0x1e, 0x01, 0xff, 0x0a, 0x63, 0xa5, 0x0c, - 0x5e, 0xf4, 0x13, 0xd7, 0x06, 0x00, 0x5e, 0x30, 0x14, 0xd6, 0x06, 0x40, - 0x4c, 0x05, 0x8f, 0x16, 0x06, 0x00, 0x4a, 0x89, 0xb1, 0x16, 0x06, 0x40, - 0x48, 0x0a, 0xc1, 0xca, 0x08, 0x00, 0x4e, 0xfa, 0x78, 0xe0, 0x08, 0x40, - 0x47, 0x0b, 0xc1, 0xc9, 0x08, 0x00, 0x43, 0x8f, 0x00, 0x18, 0x06, 0x40, - 0x4f, 0xf2, 0x68, 0x11, 0x06, 0x00, 0x45, 0x9d, 0xe5, 0x0f, 0x06, 0x00, - 0x02, 0x71, 0x00, 0x33, 0xb3, 0x06, 0x49, 0x2a, 0xbd, 0x14, 0x06, 0x40, - 0xa1, 0x11, 0x06, 0xfa, 0xd9, 0x01, 0xff, 0x49, 0x2d, 0x3d, 0xfd, 0x06, - 0x00, 0x50, 0x5a, 0x64, 0xfe, 0x06, 0x40, 0x43, 0xcf, 0xb7, 0x03, 0x06, - 0x00, 0x5a, 0x46, 0x20, 0x10, 0x06, 0x00, 0x44, 0x0a, 0xee, 0x04, 0x06, - 0x00, 0x43, 0x24, 0x45, 0x01, 0x06, 0x40, 0x4f, 0x69, 0x6a, 0x13, 0x06, - 0x00, 0x50, 0xfa, 0x61, 0x12, 0x06, 0x40, 0x80, 0x01, 0xff, 0x4d, 0x34, - 0x03, 0x7c, 0xfe, 0x00, 0x4b, 0x4d, 0x6c, 0x7d, 0xfe, 0x40, 0xa1, 0x23, - 0x4d, 0x2f, 0x81, 0x5d, 0x06, 0x00, 0x0f, 0x67, 0x31, 0x06, 0x63, 0xf2, - 0x0a, 0xec, 0x06, 0x40, 0x45, 0x5c, 0x00, 0xf8, 0x08, 0x80, 0x06, 0x45, - 0xf5, 0x06, 0xfa, 0x08, 0x40, 0x49, 0xa5, 0x3a, 0xfd, 0x08, 0x40, 0x4e, - 0x72, 0x77, 0x88, 0x08, 0x00, 0xf9, 0x08, 0x06, 0x40, 0xa5, 0x1b, 0x51, - 0x5d, 0x59, 0x91, 0x08, 0x00, 0x4e, 0xd4, 0x77, 0xe9, 0x06, 0x00, 0xaf, - 0x01, 0xff, 0x4f, 0x59, 0x6b, 0x0e, 0x06, 0x00, 0x4e, 0x6c, 0x7c, 0x90, - 0x08, 0x40, 0x43, 0xa8, 0x2a, 0x97, 0x08, 0x00, 0x4a, 0xc7, 0x99, 0x6a, - 0x06, 0x40, 0x48, 0x72, 0xc2, 0xf1, 0x08, 0x00, 0x48, 0x4c, 0x76, 0xf0, - 0x08, 0x00, 0x48, 0xd2, 0xc4, 0xf2, 0x08, 0x40, 0x4a, 0x10, 0x4b, 0x05, - 0x06, 0x00, 0x44, 0x2f, 0x03, 0x00, 0x06, 0x40, 0x03, 0xaa, 0x35, 0xe7, - 0x07, 0x03, 0xbb, 0x00, 0xd6, 0x07, 0x0b, 0x5a, 0x52, 0x01, 0xff, 0xa1, - 0xc2, 0x07, 0x43, 0xe5, 0x8a, 0x01, 0xee, 0x01, 0xa4, 0xe8, 0x05, 0x43, - 0x85, 0xb6, 0x10, 0xee, 0x01, 0x45, 0x4a, 0x9a, 0x1b, 0xee, 0x01, 0x43, - 0x84, 0x20, 0x07, 0xee, 0x01, 0x08, 0x4c, 0x16, 0xd1, 0x04, 0x44, 0x6e, - 0x37, 0x02, 0xee, 0x01, 0xab, 0xbc, 0x04, 0xac, 0xfc, 0x02, 0x44, 0x7a, - 0x20, 0x0c, 0xee, 0x01, 0x44, 0xc4, 0x44, 0x0d, 0xee, 0x01, 0x09, 0x99, - 0x3d, 0xdf, 0x02, 0x43, 0xf4, 0x13, 0x12, 0xee, 0x01, 0x43, 0xee, 0x50, - 0x13, 0xee, 0x01, 0xb3, 0xa0, 0x01, 0xb4, 0x1b, 0x43, 0xc0, 0x88, 0x05, - 0xee, 0x01, 0x43, 0x4d, 0x00, 0x09, 0xee, 0x01, 0x02, 0x59, 0x00, 0x01, - 0xff, 0xe8, 0x1a, 0xee, 0x01, 0x42, 0x9e, 0x01, 0x06, 0xee, 0x41, 0xa1, - 0x15, 0x42, 0x4e, 0x00, 0x15, 0xee, 0x01, 0xa8, 0x01, 0xff, 0x42, 0x13, - 0x00, 0x18, 0xee, 0x01, 0x42, 0x4e, 0x00, 0x16, 0xee, 0x41, 0xe8, 0x08, - 0xee, 0x01, 0x05, 0x25, 0x17, 0x01, 0xff, 0x43, 0x05, 0x07, 0x4f, 0xee, - 0x01, 0xa4, 0x44, 0x45, 0x4a, 0x9a, 0x5b, 0xee, 0x01, 0x43, 0x84, 0x20, - 0x47, 0xee, 0x01, 0x44, 0x6e, 0x37, 0x42, 0xee, 0x01, 0x44, 0x93, 0x40, - 0x57, 0xee, 0x01, 0x43, 0xb0, 0x00, 0x4b, 0xee, 0x01, 0x44, 0xc4, 0x44, - 0x4d, 0xee, 0x01, 0x43, 0xf4, 0x13, 0x52, 0xee, 0x01, 0xb3, 0x06, 0x43, - 0x4d, 0x00, 0x49, 0xee, 0x41, 0x42, 0xe8, 0x01, 0x51, 0xee, 0x01, 0x43, - 0x75, 0x09, 0x4e, 0xee, 0x01, 0x44, 0x60, 0xd8, 0x54, 0xee, 0x41, 0x42, - 0xe8, 0x01, 0x59, 0xee, 0x01, 0x07, 0x84, 0x40, 0x01, 0xff, 0x44, 0xc4, - 0x44, 0x5d, 0xee, 0x01, 0x43, 0xf4, 0x13, 0x5f, 0xee, 0x41, 0x42, 0xe8, - 0x01, 0x11, 0xee, 0x01, 0x43, 0x75, 0x09, 0x0e, 0xee, 0x01, 0x44, 0x60, - 0xd8, 0x14, 0xee, 0x01, 0x09, 0xdb, 0xaf, 0x01, 0xff, 0x43, 0x05, 0x07, - 0x6f, 0xee, 0x01, 0x43, 0xe5, 0x8a, 0x61, 0xee, 0x01, 0xa4, 0x74, 0x43, - 0x85, 0xb6, 0x70, 0xee, 0x01, 0x45, 0x4a, 0x9a, 0x7b, 0xee, 0x01, 0xa8, - 0x5a, 0x44, 0x6e, 0x37, 0x62, 0xee, 0x01, 0xab, 0x46, 0x44, 0x7a, 0x20, - 0x6c, 0xee, 0x01, 0x44, 0xc4, 0x44, 0x6d, 0xee, 0x01, 0x43, 0xf4, 0x13, - 0x72, 0xee, 0x01, 0xb3, 0x20, 0xb4, 0x0c, 0x43, 0x4d, 0x00, 0x69, 0xee, - 0x01, 0x43, 0x92, 0x7d, 0x7a, 0xee, 0x41, 0x42, 0xc9, 0x09, 0x68, 0xee, - 0x01, 0x42, 0x4e, 0x00, 0x75, 0xee, 0x01, 0x43, 0xfd, 0x41, 0x76, 0xee, - 0x41, 0x42, 0xe8, 0x01, 0x71, 0xee, 0x01, 0x43, 0x75, 0x09, 0x6e, 0xee, - 0x01, 0x44, 0x60, 0xd8, 0x74, 0xee, 0x41, 0x42, 0xf5, 0x13, 0x6a, 0xee, - 0x01, 0x43, 0x84, 0x20, 0x77, 0xee, 0x41, 0x42, 0xc9, 0x09, 0x67, 0xee, - 0x01, 0x42, 0x4e, 0x00, 0x64, 0xee, 0x41, 0x42, 0xe8, 0x01, 0x79, 0xee, - 0x01, 0x07, 0x84, 0x40, 0x01, 0xff, 0x43, 0xe5, 0x8a, 0x7c, 0xee, 0x01, - 0x43, 0x85, 0xb6, 0x7e, 0xee, 0x41, 0x4c, 0xc1, 0x8d, 0xf1, 0xee, 0x01, - 0x5a, 0x7a, 0x20, 0xf0, 0xee, 0x41, 0x42, 0x57, 0x00, 0x0b, 0xee, 0x01, - 0x06, 0x93, 0x83, 0x01, 0xff, 0xa1, 0xa3, 0x01, 0x43, 0xe5, 0x8a, 0x81, - 0xee, 0x01, 0x02, 0xa1, 0x10, 0x90, 0x01, 0x43, 0x85, 0xb6, 0x90, 0xee, - 0x01, 0x45, 0x4a, 0x9a, 0x9b, 0xee, 0x01, 0xa8, 0x76, 0x44, 0x6e, 0x37, - 0x82, 0xee, 0x01, 0x44, 0x93, 0x40, 0x97, 0xee, 0x01, 0x43, 0xb0, 0x00, - 0x8b, 0xee, 0x01, 0x44, 0x7a, 0x20, 0x8c, 0xee, 0x01, 0x44, 0xc4, 0x44, - 0x8d, 0xee, 0x01, 0x43, 0xf4, 0x13, 0x92, 0xee, 0x01, 0x43, 0xee, 0x50, - 0x93, 0xee, 0x01, 0xb3, 0x38, 0xb4, 0x1b, 0x43, 0xc0, 0x88, 0x85, 0xee, - 0x01, 0x43, 0x4d, 0x00, 0x89, 0xee, 0x01, 0x02, 0x59, 0x00, 0x01, 0xff, - 0xe8, 0x9a, 0xee, 0x01, 0x42, 0x9e, 0x01, 0x86, 0xee, 0x41, 0x42, 0xc9, - 0x09, 0x88, 0xee, 0x01, 0x42, 0x4e, 0x00, 0x95, 0xee, 0x01, 0xa8, 0x01, - 0xff, 0x42, 0x13, 0x00, 0x98, 0xee, 0x01, 0x42, 0x4e, 0x00, 0x96, 0xee, - 0x41, 0x42, 0xe8, 0x01, 0x91, 0xee, 0x01, 0x43, 0x75, 0x09, 0x8e, 0xee, - 0x01, 0x44, 0x60, 0xd8, 0x94, 0xee, 0x41, 0x42, 0xc9, 0x09, 0x87, 0xee, - 0x01, 0x42, 0x4e, 0x00, 0x84, 0xee, 0x41, 0xe4, 0x99, 0xee, 0x01, 0xec, - 0x83, 0xee, 0x41, 0x42, 0x9e, 0x01, 0x8f, 0xee, 0x01, 0x43, 0x68, 0x00, - 0x80, 0xee, 0x41, 0x42, 0xf5, 0x13, 0x0a, 0xee, 0x01, 0x43, 0x84, 0x20, - 0x17, 0xee, 0x41, 0x43, 0x05, 0x07, 0x2f, 0xee, 0x01, 0x43, 0xe5, 0x8a, - 0x21, 0xee, 0x01, 0x43, 0x4a, 0xb5, 0x39, 0xee, 0x01, 0x43, 0x85, 0xb6, - 0x30, 0xee, 0x01, 0x45, 0x4a, 0x9a, 0x3b, 0xee, 0x01, 0xa8, 0x54, 0x44, - 0x6e, 0x37, 0x22, 0xee, 0x01, 0xab, 0x40, 0x43, 0xb0, 0x00, 0x2b, 0xee, - 0x01, 0x44, 0x7a, 0x20, 0x2c, 0xee, 0x01, 0x44, 0xc4, 0x44, 0x2d, 0xee, - 0x01, 0x43, 0xf4, 0x13, 0x32, 0xee, 0x01, 0xb3, 0x14, 0xb4, 0x06, 0x43, - 0x4d, 0x00, 0x29, 0xee, 0x41, 0x42, 0x4e, 0x00, 0x35, 0xee, 0x01, 0x43, - 0xfd, 0x41, 0x36, 0xee, 0x41, 0x42, 0xe8, 0x01, 0x31, 0xee, 0x01, 0x43, - 0x75, 0x09, 0x2e, 0xee, 0x01, 0x44, 0x60, 0xd8, 0x34, 0xee, 0x41, 0x42, - 0xf5, 0x13, 0x2a, 0xee, 0x01, 0x43, 0x84, 0x20, 0x37, 0xee, 0x41, 0x42, - 0xc9, 0x09, 0x27, 0xee, 0x01, 0x42, 0x4e, 0x00, 0x24, 0xee, 0x41, 0xa1, - 0xc6, 0x01, 0xaf, 0x01, 0xff, 0x06, 0x85, 0x40, 0xa6, 0x01, 0x0c, 0xa6, - 0x75, 0x01, 0xff, 0x43, 0x05, 0x07, 0xaf, 0xee, 0x01, 0x43, 0xe5, 0x8a, - 0xa1, 0xee, 0x01, 0x02, 0xa1, 0x10, 0x88, 0x01, 0x43, 0x85, 0xb6, 0xb0, - 0xee, 0x01, 0x45, 0x4a, 0x9a, 0xbb, 0xee, 0x01, 0x43, 0x84, 0x20, 0xa7, - 0xee, 0x01, 0x44, 0x6e, 0x37, 0xa2, 0xee, 0x01, 0x44, 0x93, 0x40, 0xb7, - 0xee, 0x01, 0x43, 0xb0, 0x00, 0xab, 0xee, 0x01, 0x44, 0x7a, 0x20, 0xac, - 0xee, 0x01, 0x44, 0xc4, 0x44, 0xad, 0xee, 0x01, 0x43, 0xf4, 0x13, 0xb2, - 0xee, 0x01, 0x43, 0xee, 0x50, 0xb3, 0xee, 0x01, 0xb3, 0x38, 0xb4, 0x1b, - 0x43, 0xc0, 0x88, 0xa5, 0xee, 0x01, 0x43, 0x4d, 0x00, 0xa9, 0xee, 0x01, - 0x02, 0x59, 0x00, 0x01, 0xff, 0xe8, 0xba, 0xee, 0x01, 0x42, 0x9e, 0x01, - 0xa6, 0xee, 0x41, 0x42, 0xc9, 0x09, 0xa8, 0xee, 0x01, 0x42, 0x4e, 0x00, - 0xb5, 0xee, 0x01, 0xa8, 0x01, 0xff, 0x42, 0x13, 0x00, 0xb8, 0xee, 0x01, - 0x42, 0x4e, 0x00, 0xb6, 0xee, 0x41, 0x42, 0xe8, 0x01, 0xb1, 0xee, 0x01, - 0x43, 0x75, 0x09, 0xae, 0xee, 0x01, 0x44, 0x60, 0xd8, 0xb4, 0xee, 0x41, - 0xe4, 0xb9, 0xee, 0x01, 0xec, 0xa3, 0xee, 0x41, 0x43, 0xe5, 0x8a, 0x1c, - 0xee, 0x01, 0x43, 0x85, 0xb6, 0x1e, 0xee, 0x01, 0x44, 0xc4, 0x44, 0x1d, - 0xee, 0x01, 0x43, 0xf4, 0x13, 0x1f, 0xee, 0x41, 0xe4, 0x19, 0xee, 0x01, - 0xec, 0x03, 0xee, 0x41, 0x42, 0x9e, 0x01, 0x0f, 0xee, 0x01, 0x43, 0x68, - 0x00, 0x00, 0xee, 0x41, 0x4b, 0xc4, 0x44, 0x58, 0x06, 0x00, 0x54, 0xbb, - 0x44, 0xff, 0x08, 0x40, 0x47, 0xe6, 0xca, 0x9c, 0x08, 0x00, 0x47, 0x9c, - 0x2c, 0x53, 0x06, 0x40, 0x05, 0xa1, 0x1b, 0x95, 0x3f, 0xa5, 0xc6, 0x20, - 0x08, 0xfb, 0x1e, 0x01, 0xff, 0xa1, 0xda, 0x1e, 0xa2, 0xa9, 0x1d, 0x09, - 0x4a, 0xb5, 0x8c, 0x1c, 0x09, 0x85, 0xb6, 0x8b, 0x1b, 0x0b, 0x4a, 0x9a, - 0xac, 0x1a, 0xa8, 0xff, 0x18, 0xaa, 0xfa, 0x17, 0xab, 0xec, 0x15, 0x09, - 0xfd, 0x13, 0xa5, 0x13, 0xad, 0xe2, 0x11, 0x0a, 0x28, 0x6f, 0xeb, 0x0f, - 0xb1, 0xf2, 0x0e, 0xb2, 0xb0, 0x0e, 0xb3, 0x83, 0x08, 0xb4, 0x92, 0x04, - 0x36, 0x3e, 0x00, 0xf8, 0x03, 0x56, 0x3d, 0x37, 0xf8, 0xfd, 0x00, 0x09, - 0x4d, 0x00, 0x19, 0x0e, 0x92, 0x7d, 0x01, 0xff, 0xa9, 0x06, 0x4b, 0x4d, - 0x6c, 0x3b, 0xfd, 0x40, 0x4b, 0x4d, 0x16, 0xb9, 0xfc, 0x00, 0x4c, 0x35, - 0x03, 0x28, 0xfc, 0x40, 0x0d, 0x67, 0x00, 0xc4, 0x03, 0xa8, 0x83, 0x01, - 0x05, 0x6e, 0x37, 0x6b, 0x06, 0x07, 0x5a, 0x5b, 0x05, 0x7a, 0x20, 0x22, - 0x4f, 0x19, 0x6f, 0x94, 0xfc, 0x00, 0x4e, 0x3c, 0x7a, 0x91, 0xfc, 0x00, - 0x04, 0x4d, 0x00, 0x06, 0x4f, 0x9c, 0x73, 0x92, 0xfc, 0x40, 0x4a, 0x3d, - 0x2c, 0x96, 0xfc, 0x00, 0x4d, 0x34, 0x03, 0x5a, 0xfc, 0x40, 0x4a, 0x3d, - 0x2c, 0x93, 0xfc, 0x00, 0xa9, 0x21, 0x4b, 0x4d, 0x6c, 0xf0, 0xfc, 0x00, - 0x05, 0x51, 0x00, 0x01, 0xff, 0x05, 0x7a, 0x20, 0x06, 0x4e, 0xa5, 0x4d, - 0xb0, 0xfd, 0x40, 0x4a, 0x3d, 0x2c, 0x9c, 0xfd, 0x00, 0x4c, 0x4c, 0x16, - 0x9d, 0xfd, 0x40, 0x4b, 0x4d, 0x16, 0xdd, 0xfc, 0x00, 0x4c, 0x35, 0x03, - 0x58, 0xfc, 0x40, 0x4b, 0x4d, 0x16, 0xdc, 0xfc, 0x00, 0x4c, 0x35, 0x03, - 0x57, 0xfc, 0x40, 0xa9, 0x06, 0x53, 0xa0, 0x4d, 0xaf, 0xfd, 0x40, 0x4b, - 0x4d, 0x16, 0xda, 0xfc, 0x00, 0x4c, 0x35, 0x03, 0x55, 0xfc, 0x40, 0xa1, - 0x11, 0x03, 0x4e, 0x00, 0x01, 0xff, 0x4c, 0x4c, 0x16, 0xde, 0xfc, 0x00, - 0x4b, 0x4d, 0x6c, 0xf1, 0xfc, 0x40, 0x02, 0x4f, 0x00, 0x92, 0x02, 0x0f, - 0x58, 0x00, 0x01, 0xff, 0xa1, 0xd8, 0x01, 0x02, 0x60, 0x00, 0xbe, 0x01, - 0xa8, 0x9a, 0x01, 0x06, 0x6e, 0x37, 0x89, 0x01, 0x51, 0x07, 0x5a, 0x99, - 0xfc, 0x00, 0x05, 0x7a, 0x20, 0x65, 0x4f, 0x19, 0x6f, 0x67, 0xfc, 0x00, - 0x03, 0xd5, 0x95, 0x4f, 0x4e, 0x3c, 0x7a, 0x64, 0xfc, 0x00, 0x02, 0x2e, - 0x02, 0x39, 0x04, 0xd6, 0xef, 0x29, 0xb9, 0x06, 0x4f, 0x9c, 0x73, 0x65, - 0xfc, 0x40, 0x03, 0x4e, 0x00, 0x11, 0x02, 0x2e, 0x02, 0x01, 0xff, 0x4a, - 0x3d, 0x2c, 0xf5, 0xfb, 0x00, 0x4d, 0x34, 0x03, 0xf4, 0xfb, 0x40, 0x4a, - 0x3d, 0x2c, 0x69, 0xfc, 0x00, 0x4d, 0x34, 0x03, 0x04, 0xfc, 0x40, 0x4a, - 0x3d, 0x2c, 0xef, 0xfb, 0x00, 0x4d, 0x34, 0x03, 0xee, 0xfb, 0x40, 0x4a, - 0x3d, 0x2c, 0xf1, 0xfb, 0x00, 0x4d, 0x34, 0x03, 0xf0, 0xfb, 0x40, 0x4a, - 0x3d, 0x2c, 0xf3, 0xfb, 0x00, 0x4d, 0x34, 0x03, 0xf2, 0xfb, 0x40, 0x4a, - 0x3d, 0x2c, 0x66, 0xfc, 0x00, 0xa9, 0x06, 0x4b, 0x4d, 0x6c, 0xdf, 0xfc, - 0x40, 0x4b, 0x4d, 0x16, 0x9a, 0xfc, 0x00, 0x4c, 0x35, 0x03, 0x02, 0xfc, - 0x40, 0x4b, 0x4d, 0x16, 0x97, 0xfc, 0x00, 0x4c, 0x35, 0x03, 0x00, 0xfc, - 0x40, 0x04, 0x09, 0x59, 0x11, 0x03, 0x4e, 0x00, 0x01, 0xff, 0x4c, 0x4c, - 0x16, 0x9b, 0xfc, 0x00, 0x4b, 0x4d, 0x6c, 0xe0, 0xfc, 0x40, 0x4b, 0x4d, - 0x16, 0x98, 0xfc, 0x00, 0x4c, 0x35, 0x03, 0x01, 0xfc, 0x40, 0x4a, 0x3d, - 0x2c, 0xf7, 0xfb, 0x00, 0xa9, 0x01, 0xff, 0x4b, 0x4d, 0x16, 0xf8, 0xfb, - 0x00, 0x4c, 0x35, 0x03, 0xf6, 0xfb, 0x40, 0x02, 0x60, 0x00, 0x22, 0x04, - 0x68, 0x00, 0x01, 0xff, 0x4a, 0x3d, 0x2c, 0xeb, 0xfb, 0x00, 0x4d, 0x34, - 0x03, 0xea, 0xfb, 0x00, 0x08, 0x6c, 0x00, 0x01, 0xff, 0x4a, 0x3d, 0x2c, - 0x68, 0xfc, 0x00, 0x4d, 0x34, 0x03, 0x03, 0xfc, 0x40, 0x4a, 0x3d, 0x2c, - 0xed, 0xfb, 0x00, 0x4d, 0x34, 0x03, 0xec, 0xfb, 0x40, 0xa9, 0x06, 0x53, - 0xa0, 0x4d, 0xae, 0xfd, 0x40, 0x4b, 0x4d, 0x16, 0xdb, 0xfc, 0x00, 0x4c, - 0x35, 0x03, 0x56, 0xfc, 0x40, 0x4a, 0x3d, 0x2c, 0x95, 0xfc, 0x00, 0x4d, - 0x34, 0x03, 0x59, 0xfc, 0x40, 0x4a, 0x3d, 0x2c, 0xfa, 0xfb, 0x00, 0xa9, - 0x01, 0xff, 0x4b, 0x4d, 0x16, 0xfb, 0xfb, 0x00, 0x4c, 0x35, 0x03, 0xf9, - 0xfb, 0x40, 0xa1, 0xf6, 0x02, 0x08, 0x4e, 0x00, 0x6a, 0xa8, 0x01, 0xff, - 0x66, 0x3c, 0x06, 0x5b, 0xfc, 0x00, 0x08, 0x4e, 0x00, 0x01, 0xff, 0x0d, - 0x67, 0x00, 0x4c, 0x4f, 0x49, 0x6c, 0xe6, 0xfc, 0x00, 0x52, 0xc8, 0x51, - 0x11, 0xfc, 0x00, 0x05, 0x7a, 0x20, 0x22, 0x4f, 0x19, 0x6f, 0x79, 0xfc, - 0x00, 0x4e, 0x3c, 0x7a, 0x76, 0xfc, 0x00, 0x04, 0x4d, 0x00, 0x06, 0x4f, - 0x9c, 0x73, 0x77, 0xfc, 0x40, 0x4a, 0x3d, 0x2c, 0x7b, 0xfc, 0x00, 0x4d, - 0x34, 0x03, 0x14, 0xfc, 0x40, 0x4a, 0x3d, 0x2c, 0x78, 0xfc, 0x00, 0xa9, - 0x06, 0x4b, 0x4d, 0x6c, 0xe5, 0xfc, 0x40, 0x4b, 0x4d, 0x16, 0xa6, 0xfc, - 0x00, 0x4c, 0x35, 0x03, 0x12, 0xfc, 0x40, 0x4a, 0x3d, 0x2c, 0x7a, 0xfc, - 0x00, 0x4d, 0x34, 0x03, 0x13, 0xfc, 0x40, 0x0d, 0x67, 0x00, 0xf7, 0x01, - 0xa8, 0xb6, 0x01, 0x05, 0x6e, 0x37, 0x8c, 0x01, 0x05, 0x07, 0x5a, 0x63, - 0x05, 0x7a, 0x20, 0x22, 0x4f, 0x19, 0x6f, 0x73, 0xfc, 0x00, 0x4e, 0x3c, - 0x7a, 0x70, 0xfc, 0x00, 0x04, 0x4d, 0x00, 0x06, 0x4f, 0x9c, 0x73, 0x71, - 0xfc, 0x40, 0x4a, 0x3d, 0x2c, 0x75, 0xfc, 0x00, 0x4d, 0x34, 0x03, 0x10, - 0xfc, 0x40, 0x4a, 0x3d, 0x2c, 0x72, 0xfc, 0x00, 0xa9, 0x29, 0x4b, 0x4d, - 0x6c, 0xe3, 0xfc, 0x00, 0x05, 0x51, 0x00, 0x01, 0xff, 0x57, 0x30, 0x2c, - 0xa4, 0xfd, 0x00, 0x50, 0x08, 0x5a, 0x56, 0xfd, 0x00, 0x51, 0x6e, 0x37, - 0x55, 0xfd, 0x00, 0x51, 0x07, 0x5a, 0x57, 0xfd, 0x00, 0x4e, 0xa5, 0x4d, - 0xa3, 0xfd, 0x40, 0x4b, 0x4d, 0x16, 0xa4, 0xfc, 0x00, 0x4c, 0x35, 0x03, - 0x0e, 0xfc, 0x40, 0xa9, 0x17, 0x05, 0x51, 0x00, 0x01, 0xff, 0x57, 0x30, - 0x2c, 0xa2, 0xfd, 0x00, 0x51, 0xd3, 0x5a, 0x54, 0xfd, 0x00, 0x4e, 0xa5, - 0x4d, 0xa1, 0xfd, 0x40, 0x4b, 0x4d, 0x16, 0xa3, 0xfc, 0x00, 0x4c, 0x35, - 0x03, 0x0d, 0xfc, 0x40, 0xa9, 0x17, 0x05, 0x51, 0x00, 0x01, 0xff, 0x57, - 0x30, 0x2c, 0xa0, 0xfd, 0x00, 0x51, 0xd3, 0x5a, 0x50, 0xfd, 0x00, 0x4e, - 0xa5, 0x4d, 0x9f, 0xfd, 0x40, 0x4b, 0x4d, 0x16, 0xa1, 0xfc, 0x00, 0x4c, - 0x35, 0x03, 0x0b, 0xfc, 0x40, 0x03, 0xc9, 0x09, 0x11, 0x03, 0x4e, 0x00, - 0x01, 0xff, 0x4c, 0x4c, 0x16, 0xa5, 0xfc, 0x00, 0x4b, 0x4d, 0x6c, 0xe4, - 0xfc, 0x40, 0xa9, 0x1b, 0x05, 0x51, 0x00, 0x01, 0xff, 0x05, 0x6e, 0x37, - 0x06, 0x51, 0xd3, 0x5a, 0x53, 0xfd, 0x40, 0x4a, 0x3d, 0x2c, 0x51, 0xfd, - 0x00, 0x4c, 0x4c, 0x16, 0x52, 0xfd, 0x40, 0x4b, 0x4d, 0x16, 0xa2, 0xfc, - 0x00, 0x4c, 0x35, 0x03, 0x0c, 0xfc, 0x40, 0x4a, 0x3d, 0x2c, 0x74, 0xfc, - 0x00, 0x4d, 0x34, 0x03, 0x0f, 0xfc, 0x40, 0x52, 0x2e, 0x4f, 0x4e, 0xfd, - 0x00, 0x07, 0x4f, 0x00, 0x01, 0xff, 0x0d, 0x67, 0x00, 0x5a, 0x05, 0x08, - 0x59, 0x4a, 0x05, 0x7a, 0x20, 0x11, 0x04, 0x4d, 0x00, 0x01, 0xff, 0x4a, - 0x3d, 0x2c, 0x12, 0xfd, 0x00, 0x4d, 0x34, 0x03, 0xf6, 0xfc, 0x40, 0xa9, - 0x27, 0x4b, 0x4d, 0x6c, 0x3a, 0xfd, 0x00, 0x05, 0x51, 0x00, 0x01, 0xff, - 0x04, 0x84, 0x20, 0x0c, 0x51, 0xd3, 0x5a, 0x73, 0xfd, 0x00, 0x4e, 0xa5, - 0x4d, 0x74, 0xfd, 0x40, 0x4a, 0x3d, 0x2c, 0x71, 0xfd, 0x00, 0x4c, 0x4c, - 0x16, 0x72, 0xfd, 0x40, 0x4b, 0x4d, 0x16, 0x33, 0xfd, 0x00, 0x4c, 0x35, - 0x03, 0x27, 0xfc, 0x40, 0x4b, 0x4d, 0x16, 0xb8, 0xfc, 0x00, 0x4c, 0x35, - 0x03, 0x26, 0xfc, 0x40, 0x4a, 0x3d, 0x2c, 0x11, 0xfd, 0x00, 0x4d, 0x34, - 0x03, 0xf5, 0xfc, 0x40, 0xa1, 0xde, 0x04, 0x09, 0xd1, 0xb5, 0xde, 0x02, - 0xa8, 0x06, 0x54, 0x1f, 0x45, 0xfe, 0xfd, 0x40, 0x0a, 0x31, 0xa5, 0x8b, - 0x02, 0x09, 0xd1, 0xb5, 0x01, 0xff, 0x0d, 0x67, 0x00, 0xf5, 0x01, 0xa8, - 0xa8, 0x01, 0x05, 0x6e, 0x37, 0x83, 0x01, 0x05, 0x07, 0x5a, 0x65, 0x05, - 0x7a, 0x20, 0x21, 0x04, 0x3c, 0x7a, 0x11, 0x04, 0x4d, 0x00, 0x01, 0xff, - 0x4a, 0x3d, 0x2c, 0x1a, 0xfd, 0x00, 0x4d, 0x34, 0x03, 0xfe, 0xfc, 0x40, - 0x4a, 0x3d, 0x2c, 0x29, 0xfd, 0x00, 0x4d, 0x34, 0x03, 0x0d, 0xfd, 0x40, - 0x4a, 0x3d, 0x2c, 0x28, 0xfd, 0x00, 0xa9, 0x2c, 0x4b, 0x4d, 0x6c, 0xe9, - 0xfc, 0x00, 0x05, 0x51, 0x00, 0x01, 0xff, 0x05, 0x07, 0x5a, 0x11, 0x05, - 0x7a, 0x20, 0x01, 0xff, 0x4a, 0x3d, 0x2c, 0x6c, 0xfd, 0x00, 0x4c, 0x4c, - 0x16, 0x6d, 0xfd, 0x40, 0x4a, 0x3d, 0x2c, 0x6a, 0xfd, 0x00, 0x4c, 0x4c, - 0x16, 0x6b, 0xfd, 0x40, 0x4b, 0x4d, 0x16, 0x30, 0xfd, 0x00, 0x4c, 0x35, - 0x03, 0x0c, 0xfd, 0x40, 0x4a, 0x3d, 0x2c, 0x27, 0xfd, 0x00, 0xa9, 0x06, - 0x4b, 0x4d, 0x6c, 0x39, 0xfd, 0x40, 0x4b, 0x4d, 0x16, 0x2f, 0xfd, 0x00, - 0x4c, 0x35, 0x03, 0x0b, 0xfd, 0x40, 0x4a, 0x3d, 0x2c, 0x25, 0xfd, 0x00, - 0xa9, 0x0c, 0x4b, 0x4d, 0x6c, 0x37, 0xfd, 0x00, 0x53, 0xa0, 0x4d, 0x69, - 0xfd, 0x40, 0x4b, 0x4d, 0x16, 0x2d, 0xfd, 0x00, 0x4c, 0x35, 0x03, 0x09, - 0xfd, 0x40, 0x03, 0xc9, 0x09, 0x11, 0x03, 0x4e, 0x00, 0x01, 0xff, 0x4c, - 0x4c, 0x16, 0x32, 0xfd, 0x00, 0x4b, 0x4d, 0x6c, 0xea, 0xfc, 0x40, 0x4a, - 0x3d, 0x2c, 0x26, 0xfd, 0x00, 0xa9, 0x21, 0x4b, 0x4d, 0x6c, 0x38, 0xfd, - 0x00, 0x05, 0x51, 0x00, 0x01, 0xff, 0x05, 0x7a, 0x20, 0x06, 0x4e, 0xa5, - 0x4d, 0xaa, 0xfd, 0x40, 0x4a, 0x3d, 0x2c, 0x67, 0xfd, 0x00, 0x4c, 0x4c, - 0x16, 0x68, 0xfd, 0x40, 0x4b, 0x4d, 0x16, 0x2e, 0xfd, 0x00, 0x4c, 0x35, - 0x03, 0x0a, 0xfd, 0x40, 0x4a, 0x3d, 0x2c, 0x19, 0xfd, 0x00, 0x4d, 0x34, - 0x03, 0xfd, 0xfc, 0x40, 0x05, 0x81, 0x5d, 0x2e, 0x06, 0xce, 0xd8, 0x1e, - 0x05, 0x5f, 0x4f, 0x06, 0x5e, 0x44, 0x06, 0x63, 0xfc, 0x40, 0x80, 0x06, - 0x51, 0xaf, 0x5c, 0x5f, 0xfc, 0x40, 0x4d, 0x34, 0x03, 0x62, 0xfc, 0x00, - 0x4b, 0x4d, 0x6c, 0xf4, 0xfc, 0x40, 0x4d, 0x34, 0x03, 0x60, 0xfc, 0x00, - 0x4b, 0x4d, 0x6c, 0xf2, 0xfc, 0x40, 0x80, 0x06, 0x51, 0xaf, 0x5c, 0x5e, - 0xfc, 0x40, 0x4d, 0x34, 0x03, 0x61, 0xfc, 0x00, 0x4b, 0x4d, 0x6c, 0xf3, - 0xfc, 0x40, 0x0d, 0x67, 0x00, 0xea, 0x01, 0xa8, 0xb8, 0x01, 0x05, 0x6e, - 0x37, 0x8e, 0x01, 0x05, 0x07, 0x5a, 0x65, 0x05, 0x7a, 0x20, 0x21, 0x04, - 0x3c, 0x7a, 0x11, 0x04, 0x4d, 0x00, 0x01, 0xff, 0x4a, 0x3d, 0x2c, 0x18, - 0xfd, 0x00, 0x4d, 0x34, 0x03, 0xfc, 0xfc, 0x40, 0x4a, 0x3d, 0x2c, 0x2a, - 0xfd, 0x00, 0x4d, 0x34, 0x03, 0x0e, 0xfd, 0x40, 0xa9, 0x32, 0x4b, 0x4d, - 0x6c, 0xe7, 0xfc, 0x00, 0x05, 0x51, 0x00, 0x01, 0xff, 0x04, 0x84, 0x20, - 0x17, 0x51, 0x6e, 0x37, 0x61, 0xfd, 0x00, 0x05, 0x7a, 0x20, 0x01, 0xff, - 0x4a, 0x3d, 0x2c, 0x62, 0xfd, 0x00, 0x4c, 0x4c, 0x16, 0x63, 0xfd, 0x40, - 0x4a, 0x3d, 0x2c, 0x5f, 0xfd, 0x00, 0x4c, 0x4c, 0x16, 0x60, 0xfd, 0x40, - 0x4b, 0x4d, 0x16, 0xb0, 0xfc, 0x00, 0x4c, 0x35, 0x03, 0x1f, 0xfc, 0x40, - 0xa9, 0x17, 0x4b, 0x4d, 0x6c, 0x36, 0xfd, 0x00, 0x05, 0x51, 0x00, 0x01, - 0xff, 0x57, 0x30, 0x2c, 0xa8, 0xfd, 0x00, 0x4e, 0xa5, 0x4d, 0xc6, 0xfd, - 0x40, 0x4b, 0x4d, 0x16, 0xaf, 0xfc, 0x00, 0x4c, 0x35, 0x03, 0x1e, 0xfc, - 0x40, 0xa9, 0x17, 0x4b, 0x4d, 0x6c, 0x34, 0xfd, 0x00, 0x05, 0x51, 0x00, - 0x01, 0xff, 0x57, 0x30, 0x2c, 0x5e, 0xfd, 0x00, 0x50, 0x08, 0x5a, 0x5d, - 0xfd, 0x40, 0x4b, 0x4d, 0x16, 0xad, 0xfc, 0x00, 0x4c, 0x35, 0x03, 0x1c, - 0xfc, 0x40, 0x03, 0xc9, 0x09, 0x11, 0x03, 0x4e, 0x00, 0x01, 0xff, 0x4c, - 0x4c, 0x16, 0x31, 0xfd, 0x00, 0x4b, 0x4d, 0x6c, 0xe8, 0xfc, 0x40, 0xa9, - 0x0c, 0x4b, 0x4d, 0x6c, 0x35, 0xfd, 0x00, 0x56, 0x69, 0x37, 0x5c, 0xfd, - 0x40, 0x4b, 0x4d, 0x16, 0xae, 0xfc, 0x00, 0x4c, 0x35, 0x03, 0x1d, 0xfc, - 0x40, 0x4a, 0x3d, 0x2c, 0x17, 0xfd, 0x00, 0x4d, 0x34, 0x03, 0xfb, 0xfc, - 0x40, 0x07, 0x53, 0x0a, 0x3e, 0xac, 0x01, 0xff, 0xa1, 0x2d, 0x02, 0x74, - 0x00, 0x01, 0xff, 0x80, 0x1a, 0x03, 0xdd, 0x0d, 0x01, 0xff, 0x53, 0xa6, - 0x46, 0x46, 0xfd, 0x00, 0xa8, 0x01, 0xff, 0x52, 0xfa, 0x52, 0xfa, 0xfd, - 0x00, 0x5c, 0xde, 0x18, 0x4c, 0xfd, 0x40, 0x4d, 0x34, 0x03, 0xf9, 0xfd, - 0x00, 0x67, 0x1a, 0x03, 0xf0, 0xfd, 0x40, 0x4d, 0xe6, 0x7e, 0xcf, 0xfd, - 0x00, 0x4f, 0x44, 0x37, 0xf5, 0xfd, 0x40, 0x0d, 0x67, 0x00, 0x77, 0x04, - 0x84, 0x20, 0x4a, 0x51, 0x07, 0x5a, 0xb2, 0xfc, 0x00, 0x05, 0x7a, 0x20, - 0x21, 0x04, 0x3c, 0x7a, 0x11, 0x04, 0x4d, 0x00, 0x01, 0xff, 0x4a, 0x3d, - 0x2c, 0x22, 0xfd, 0x00, 0x4d, 0x34, 0x03, 0x06, 0xfd, 0x40, 0x4a, 0x3d, - 0x2c, 0x2b, 0xfd, 0x00, 0x4d, 0x34, 0x03, 0x0f, 0xfd, 0x40, 0xa9, 0x11, - 0x0a, 0x96, 0x7d, 0x01, 0xff, 0x4a, 0x3d, 0x2c, 0x66, 0xfd, 0x00, 0x4c, - 0x4c, 0x16, 0xc5, 0xfd, 0x40, 0x4b, 0x4d, 0x16, 0xb3, 0xfc, 0x00, 0x4c, - 0x35, 0x03, 0x21, 0xfc, 0x40, 0xa9, 0x1b, 0x05, 0x51, 0x00, 0x01, 0xff, - 0x04, 0x84, 0x20, 0x06, 0x4e, 0xa5, 0x4d, 0xa9, 0xfd, 0x40, 0x4a, 0x3d, - 0x2c, 0x64, 0xfd, 0x00, 0x4c, 0x4c, 0x16, 0x65, 0xfd, 0x40, 0x4b, 0x4d, - 0x16, 0xb1, 0xfc, 0x00, 0x4c, 0x35, 0x03, 0x20, 0xfc, 0x40, 0x4a, 0x3d, - 0x2c, 0x21, 0xfd, 0x00, 0x4d, 0x34, 0x03, 0x05, 0xfd, 0x40, 0xa1, 0x06, - 0x66, 0x88, 0x06, 0x5c, 0xfc, 0x40, 0x4e, 0x50, 0x75, 0x41, 0xfd, 0x80, - 0x16, 0x06, 0x88, 0xd9, 0x06, 0x52, 0x3e, 0x54, 0xf6, 0xfd, 0x40, 0x47, - 0x52, 0x75, 0x40, 0xfd, 0x00, 0x48, 0x72, 0xc5, 0x4f, 0xfd, 0x40, 0x42, - 0x31, 0x12, 0x42, 0xfd, 0x00, 0xb5, 0x01, 0xff, 0xed, 0x43, 0xfd, 0x80, - 0x06, 0x43, 0xcc, 0x44, 0x45, 0xfd, 0x40, 0x42, 0x31, 0x12, 0x44, 0xfd, - 0x40, 0xa1, 0x06, 0x4d, 0xaf, 0x87, 0x4b, 0xfd, 0x40, 0x07, 0xf6, 0x13, - 0x06, 0x6a, 0x17, 0x03, 0xf1, 0xfd, 0x40, 0x0d, 0x67, 0x00, 0x54, 0x05, - 0x08, 0x59, 0x44, 0x05, 0x7a, 0x20, 0x11, 0x04, 0x4d, 0x00, 0x01, 0xff, - 0x4a, 0x3d, 0x2c, 0x7f, 0xfc, 0x00, 0x4d, 0x34, 0x03, 0x36, 0xfc, 0x40, - 0xa9, 0x21, 0x05, 0x51, 0x00, 0x01, 0xff, 0x04, 0x84, 0x20, 0x0c, 0x4f, - 0x92, 0x6e, 0x7f, 0xfd, 0x00, 0x4e, 0xa5, 0x4d, 0xb2, 0xfd, 0x40, 0x4a, - 0x3d, 0x2c, 0x7e, 0xfd, 0x00, 0x4c, 0x4c, 0x16, 0xb4, 0xfd, 0x40, 0x4b, - 0x4d, 0x16, 0xc3, 0xfc, 0x00, 0x4c, 0x35, 0x03, 0x34, 0xfc, 0x40, 0x4b, - 0x4d, 0x16, 0xc2, 0xfc, 0x00, 0x4c, 0x35, 0x03, 0x33, 0xfc, 0x40, 0x4a, - 0x3d, 0x2c, 0x7e, 0xfc, 0x00, 0x4d, 0x34, 0x03, 0x35, 0xfc, 0x40, 0x0d, - 0x67, 0x00, 0xe1, 0x01, 0xa8, 0xa4, 0x01, 0x05, 0x6e, 0x37, 0x61, 0x06, - 0x07, 0x5a, 0x51, 0x05, 0x7a, 0x20, 0x22, 0x4f, 0x19, 0x6f, 0x8d, 0xfc, - 0x00, 0x4e, 0x3c, 0x7a, 0x8a, 0xfc, 0x00, 0x04, 0x4d, 0x00, 0x06, 0x4f, - 0x9c, 0x73, 0x8b, 0xfc, 0x40, 0x4a, 0x3d, 0x2c, 0x8f, 0xfc, 0x00, 0x4d, - 0x34, 0x03, 0x50, 0xfc, 0x40, 0x4a, 0x3d, 0x2c, 0x8c, 0xfc, 0x00, 0xa9, - 0x17, 0x4b, 0x4d, 0x6c, 0xee, 0xfc, 0x00, 0x05, 0x51, 0x00, 0x01, 0xff, - 0x57, 0x30, 0x2c, 0x9b, 0xfd, 0x00, 0x4e, 0xa5, 0x4d, 0x9a, 0xfd, 0x40, - 0x4b, 0x4d, 0x16, 0xd5, 0xfc, 0x00, 0x4c, 0x35, 0x03, 0x4e, 0xfc, 0x40, - 0x4b, 0x4d, 0x16, 0xd4, 0xfc, 0x00, 0x4c, 0x35, 0x03, 0x4d, 0xfc, 0x40, - 0xa9, 0x31, 0x05, 0x51, 0x00, 0x01, 0xff, 0x57, 0x30, 0x2c, 0x99, 0xfd, - 0x00, 0x04, 0x84, 0x20, 0x16, 0x05, 0x7a, 0x20, 0x06, 0x4e, 0xa5, 0x4d, - 0xc7, 0xfd, 0x40, 0x4a, 0x3d, 0x2c, 0x97, 0xfd, 0x00, 0x4c, 0x4c, 0x16, - 0x98, 0xfd, 0x40, 0x4a, 0x3d, 0x2c, 0xbd, 0xfd, 0x00, 0x4c, 0x4c, 0x16, - 0xb8, 0xfd, 0x40, 0x4b, 0x4d, 0x16, 0xd2, 0xfc, 0x00, 0x4c, 0x35, 0x03, - 0x4b, 0xfc, 0x40, 0x03, 0xc9, 0x09, 0x11, 0x03, 0x4e, 0x00, 0x01, 0xff, - 0x4c, 0x4c, 0x16, 0xd6, 0xfc, 0x00, 0x4b, 0x4d, 0x6c, 0xef, 0xfc, 0x40, - 0xa9, 0x17, 0x05, 0x51, 0x00, 0x01, 0xff, 0x57, 0x30, 0x2c, 0x96, 0xfd, - 0x00, 0x51, 0xd3, 0x5a, 0x95, 0xfd, 0x00, 0x4e, 0xa5, 0x4d, 0xb3, 0xfd, - 0x40, 0x4b, 0x4d, 0x16, 0xd3, 0xfc, 0x00, 0x4c, 0x35, 0x03, 0x4c, 0xfc, - 0x40, 0x4a, 0x3d, 0x2c, 0x8e, 0xfc, 0x00, 0x4d, 0x34, 0x03, 0x4f, 0xfc, - 0x40, 0x09, 0x7b, 0x20, 0x06, 0x55, 0x6d, 0x3c, 0xf4, 0xfd, 0x40, 0x05, - 0x67, 0x00, 0xa5, 0x01, 0x04, 0x84, 0x20, 0x7c, 0x05, 0x6e, 0x37, 0x4d, - 0x05, 0x07, 0x5a, 0x24, 0x05, 0x7a, 0x20, 0x06, 0x51, 0x58, 0x5e, 0x4a, - 0xfc, 0x40, 0x4a, 0x3d, 0x2c, 0x89, 0xfc, 0x00, 0xa9, 0x06, 0x53, 0xa0, - 0x4d, 0xb1, 0xfd, 0x40, 0x4b, 0x4d, 0x16, 0xd1, 0xfc, 0x00, 0x4c, 0x35, - 0x03, 0x48, 0xfc, 0x40, 0xa9, 0x17, 0x05, 0x51, 0x00, 0x01, 0xff, 0x51, - 0x6e, 0x37, 0x8e, 0xfd, 0x00, 0x51, 0xd3, 0x5a, 0x8f, 0xfd, 0x00, 0x4e, - 0xa5, 0x4d, 0xb9, 0xfd, 0x40, 0x4b, 0x4d, 0x16, 0xd0, 0xfc, 0x00, 0x4c, - 0x35, 0x03, 0x47, 0xfc, 0x40, 0xa9, 0x1d, 0x05, 0x51, 0x00, 0x01, 0xff, - 0x50, 0x08, 0x5a, 0x8c, 0xfd, 0x00, 0x51, 0x07, 0x5a, 0x92, 0xfd, 0x00, - 0x51, 0xd3, 0x5a, 0x8d, 0xfd, 0x00, 0x4e, 0xa5, 0x4d, 0xc0, 0xfd, 0x40, - 0x4b, 0x4d, 0x16, 0xce, 0xfc, 0x00, 0x4c, 0x35, 0x03, 0x45, 0xfc, 0x40, - 0xa9, 0x17, 0x05, 0x51, 0x00, 0x01, 0xff, 0x51, 0x6e, 0x37, 0x89, 0xfd, - 0x00, 0x51, 0xd3, 0x5a, 0x8a, 0xfd, 0x00, 0x4e, 0xa5, 0x4d, 0x8b, 0xfd, - 0x40, 0x4b, 0x4d, 0x16, 0xcf, 0xfc, 0x00, 0x4c, 0x35, 0x03, 0x46, 0xfc, - 0x40, 0x4a, 0x3d, 0x2c, 0x88, 0xfc, 0x00, 0x55, 0x43, 0x1e, 0x49, 0xfc, - 0x40, 0x05, 0x67, 0x00, 0xe6, 0x01, 0xa8, 0xaa, 0x01, 0x05, 0x6e, 0x37, - 0x6d, 0x05, 0x07, 0x5a, 0x4a, 0x05, 0x7a, 0x20, 0x11, 0x04, 0x4d, 0x00, - 0x01, 0xff, 0x4a, 0x3d, 0x2c, 0x87, 0xfc, 0x00, 0x4d, 0x34, 0x03, 0x44, - 0xfc, 0x40, 0x4a, 0x3d, 0x2c, 0x85, 0xfc, 0x00, 0xa9, 0x21, 0x4b, 0x4d, - 0x6c, 0xed, 0xfc, 0x00, 0x05, 0x51, 0x00, 0x01, 0xff, 0x04, 0x84, 0x20, - 0x06, 0x4e, 0xa5, 0x4d, 0xad, 0xfd, 0x40, 0x4a, 0x3d, 0x2c, 0x87, 0xfd, - 0x00, 0x4c, 0x4c, 0x16, 0x88, 0xfd, 0x40, 0x4b, 0x4d, 0x16, 0xcc, 0xfc, - 0x00, 0x4c, 0x35, 0x03, 0x42, 0xfc, 0x40, 0xa9, 0x11, 0x0a, 0x96, 0x7d, - 0x01, 0xff, 0x4a, 0x3d, 0x2c, 0x85, 0xfd, 0x00, 0x4c, 0x4c, 0x16, 0x86, - 0xfd, 0x40, 0x4b, 0x4d, 0x16, 0xcb, 0xfc, 0x00, 0x4c, 0x35, 0x03, 0x41, - 0xfc, 0x40, 0xa9, 0x2b, 0x05, 0x51, 0x00, 0x01, 0xff, 0x05, 0x6e, 0x37, - 0x16, 0x05, 0x7a, 0x20, 0x06, 0x4e, 0xa5, 0x4d, 0xac, 0xfd, 0x40, 0x4a, - 0x3d, 0x2c, 0xbc, 0xfd, 0x00, 0x4c, 0x4c, 0x16, 0xba, 0xfd, 0x40, 0x4a, - 0x3d, 0x2c, 0x84, 0xfd, 0x00, 0x4c, 0x4c, 0x16, 0x83, 0xfd, 0x40, 0x4b, - 0x4d, 0x16, 0xc9, 0xfc, 0x00, 0x4c, 0x35, 0x03, 0x3f, 0xfc, 0x40, 0x03, - 0xc9, 0x09, 0x06, 0x4f, 0x0e, 0x6b, 0xcd, 0xfc, 0x40, 0xa9, 0x21, 0x05, - 0x51, 0x00, 0x01, 0xff, 0x57, 0x30, 0x2c, 0x82, 0xfd, 0x00, 0x05, 0x7a, - 0x20, 0x06, 0x4e, 0xa5, 0x4d, 0x81, 0xfd, 0x40, 0x4a, 0x3d, 0x2c, 0x80, - 0xfd, 0x00, 0x4c, 0x4c, 0x16, 0xb5, 0xfd, 0x40, 0x4b, 0x4d, 0x16, 0xca, - 0xfc, 0x00, 0x4c, 0x35, 0x03, 0x40, 0xfc, 0x40, 0x4a, 0x3d, 0x2c, 0xfc, - 0xfe, 0x00, 0x4d, 0x34, 0x03, 0xfb, 0xfe, 0x00, 0x08, 0x6c, 0x00, 0x3b, - 0x05, 0x51, 0x00, 0x01, 0xff, 0x06, 0x56, 0x00, 0x11, 0x0c, 0x01, 0x90, - 0x01, 0xff, 0x4a, 0x3d, 0x2c, 0xf6, 0xfe, 0x00, 0x4d, 0x34, 0x03, 0xf5, - 0xfe, 0x40, 0x06, 0x5c, 0x00, 0x11, 0x06, 0x54, 0x12, 0x01, 0xff, 0x4a, - 0x3d, 0x2c, 0xfa, 0xfe, 0x00, 0x4d, 0x34, 0x03, 0xf9, 0xfe, 0x40, 0x4a, - 0x3d, 0x2c, 0xf8, 0xfe, 0x00, 0x4d, 0x34, 0x03, 0xf7, 0xfe, 0x40, 0x4a, - 0x3d, 0x2c, 0x86, 0xfc, 0x00, 0x4d, 0x34, 0x03, 0x43, 0xfc, 0x40, 0x08, - 0xf5, 0x13, 0x4c, 0x09, 0x84, 0x20, 0x01, 0xff, 0x0d, 0x67, 0x00, 0x37, - 0x51, 0x08, 0x59, 0x1a, 0xfc, 0x00, 0x06, 0x6e, 0x37, 0x21, 0x06, 0xd3, - 0x5a, 0x11, 0x04, 0x4d, 0x00, 0x01, 0xff, 0x4a, 0x3d, 0x2c, 0x20, 0xfd, - 0x00, 0x4d, 0x34, 0x03, 0x04, 0xfd, 0x40, 0x4b, 0x4d, 0x16, 0xac, 0xfc, - 0x00, 0x4c, 0x35, 0x03, 0x1b, 0xfc, 0x40, 0x4b, 0x4d, 0x16, 0xab, 0xfc, - 0x00, 0x4c, 0x35, 0x03, 0x19, 0xfc, 0x40, 0x4a, 0x3d, 0x2c, 0x1f, 0xfd, - 0x00, 0x4d, 0x34, 0x03, 0x03, 0xfd, 0x40, 0x05, 0x67, 0x00, 0x99, 0x01, - 0x05, 0x08, 0x59, 0x88, 0x01, 0x06, 0x6e, 0x37, 0x78, 0x06, 0x07, 0x5a, - 0x68, 0x04, 0xfd, 0x13, 0x4a, 0x05, 0x7a, 0x20, 0x11, 0x04, 0x4d, 0x00, - 0x01, 0xff, 0x4a, 0x3d, 0x2c, 0x84, 0xfc, 0x00, 0x4d, 0x34, 0x03, 0x3e, - 0xfc, 0x40, 0x4a, 0x3d, 0x2c, 0x82, 0xfc, 0x00, 0xa9, 0x21, 0x4b, 0x4d, - 0x6c, 0xec, 0xfc, 0x00, 0x05, 0x51, 0x00, 0x01, 0xff, 0x05, 0x7a, 0x20, - 0x06, 0x4e, 0xa5, 0x4d, 0xb7, 0xfd, 0x40, 0x4a, 0x3d, 0x2c, 0xbb, 0xfd, - 0x00, 0x4c, 0x4c, 0x16, 0xc3, 0xfd, 0x40, 0x4b, 0x4d, 0x16, 0xc8, 0xfc, - 0x00, 0x4c, 0x35, 0x03, 0x3c, 0xfc, 0x40, 0x4a, 0x3d, 0x2c, 0x81, 0xfc, - 0x00, 0xa9, 0x06, 0x4b, 0x4d, 0x6c, 0xeb, 0xfc, 0x40, 0x4b, 0x4d, 0x16, - 0xc7, 0xfc, 0x00, 0x4c, 0x35, 0x03, 0x3b, 0xfc, 0x40, 0x4b, 0x4d, 0x16, - 0xc6, 0xfc, 0x00, 0x4c, 0x35, 0x03, 0x3a, 0xfc, 0x40, 0x4b, 0x4d, 0x16, - 0xc4, 0xfc, 0x00, 0x4c, 0x35, 0x03, 0x38, 0xfc, 0x40, 0x4b, 0x4d, 0x16, - 0xc5, 0xfc, 0x00, 0x4c, 0x35, 0x03, 0x39, 0xfc, 0x40, 0x4a, 0x3d, 0x2c, - 0x80, 0xfc, 0x00, 0x4d, 0x34, 0x03, 0x37, 0xfc, 0x00, 0x08, 0x6c, 0x00, - 0x01, 0xff, 0x4a, 0x3d, 0x2c, 0x83, 0xfc, 0x00, 0x4d, 0x34, 0x03, 0x3d, - 0xfc, 0x40, 0x4e, 0x54, 0x74, 0xfb, 0xfd, 0x00, 0x09, 0x7b, 0x20, 0x01, - 0xff, 0x0d, 0x67, 0x00, 0x67, 0x04, 0x84, 0x20, 0x44, 0x05, 0x7a, 0x20, - 0x11, 0x04, 0x4d, 0x00, 0x01, 0xff, 0x4a, 0x3d, 0x2c, 0x1e, 0xfd, 0x00, - 0x4d, 0x34, 0x03, 0x02, 0xfd, 0x40, 0xa9, 0x21, 0x05, 0x51, 0x00, 0x01, - 0xff, 0x57, 0x30, 0x2c, 0xa7, 0xfd, 0x00, 0x04, 0x84, 0x20, 0x06, 0x4e, - 0xa5, 0x4d, 0xa5, 0xfd, 0x40, 0x4a, 0x3d, 0x2c, 0x58, 0xfd, 0x00, 0x4c, - 0x4c, 0x16, 0x59, 0xfd, 0x40, 0x4b, 0x4d, 0x16, 0xa8, 0xfc, 0x00, 0x4c, - 0x35, 0x03, 0x16, 0xfc, 0x40, 0xa9, 0x11, 0x05, 0x51, 0x00, 0x01, 0xff, - 0x57, 0x30, 0x2c, 0xa6, 0xfd, 0x00, 0x4e, 0xa5, 0x4d, 0xbe, 0xfd, 0x40, - 0x4b, 0x4d, 0x16, 0xa7, 0xfc, 0x00, 0x4c, 0x35, 0x03, 0x15, 0xfc, 0x40, - 0x4a, 0x3d, 0x2c, 0x1d, 0xfd, 0x00, 0x4d, 0x34, 0x03, 0x01, 0xfd, 0x40, - 0x08, 0x85, 0x20, 0x4a, 0x08, 0x4e, 0x00, 0x01, 0xff, 0x5a, 0x3e, 0x1e, - 0x53, 0xfc, 0x00, 0x06, 0x6e, 0x37, 0x2f, 0x05, 0x7a, 0x20, 0x0c, 0x5d, - 0x3b, 0x16, 0xd9, 0xfc, 0x00, 0x51, 0x58, 0x5e, 0x54, 0xfc, 0x40, 0xa9, - 0x11, 0x05, 0x51, 0x00, 0x01, 0xff, 0x51, 0x6e, 0x37, 0x93, 0xfd, 0x00, - 0x51, 0xd3, 0x5a, 0x94, 0xfd, 0x40, 0x4b, 0x4d, 0x16, 0xd8, 0xfc, 0x00, - 0x4c, 0x35, 0x03, 0x52, 0xfc, 0x40, 0x4b, 0x4d, 0x16, 0xd7, 0xfc, 0x00, - 0x4c, 0x35, 0x03, 0x51, 0xfc, 0x40, 0x0d, 0x67, 0x00, 0x4c, 0x05, 0x6e, - 0x37, 0x34, 0x05, 0x7a, 0x20, 0x11, 0x04, 0x4d, 0x00, 0x01, 0xff, 0x4a, - 0x3d, 0x2c, 0x1c, 0xfd, 0x00, 0x4d, 0x34, 0x03, 0x00, 0xfd, 0x40, 0xa9, - 0x11, 0x05, 0x51, 0x00, 0x01, 0xff, 0x57, 0x30, 0x2c, 0x5b, 0xfd, 0x00, - 0x4e, 0xa5, 0x4d, 0x5a, 0xfd, 0x40, 0x4b, 0x4d, 0x16, 0xaa, 0xfc, 0x00, - 0x4c, 0x35, 0x03, 0x18, 0xfc, 0x40, 0xa9, 0x06, 0x53, 0xa0, 0x4d, 0xbf, - 0xfd, 0x40, 0x4b, 0x4d, 0x16, 0xa9, 0xfc, 0x00, 0x4c, 0x35, 0x03, 0x17, - 0xfc, 0x40, 0x4a, 0x3d, 0x2c, 0x1b, 0xfd, 0x00, 0x4d, 0x34, 0x03, 0xff, - 0xfc, 0x40, 0x0d, 0x67, 0x00, 0x4a, 0x06, 0x6e, 0x37, 0x3a, 0x05, 0x7a, - 0x20, 0x11, 0x04, 0x4d, 0x00, 0x01, 0xff, 0x4a, 0x3d, 0x2c, 0x16, 0xfd, - 0x00, 0x4d, 0x34, 0x03, 0xfa, 0xfc, 0x40, 0xa9, 0x17, 0x05, 0x51, 0x00, - 0x01, 0xff, 0x57, 0x30, 0x2c, 0x7b, 0xfd, 0x00, 0x4f, 0x92, 0x6e, 0x79, - 0xfd, 0x00, 0x4e, 0xa5, 0x4d, 0x7a, 0xfd, 0x40, 0x4b, 0x4d, 0x16, 0xbd, - 0xfc, 0x00, 0x4c, 0x35, 0x03, 0x2c, 0xfc, 0x40, 0x4b, 0x4d, 0x16, 0xbc, - 0xfc, 0x00, 0x4c, 0x35, 0x03, 0x2b, 0xfc, 0x40, 0x4a, 0x3d, 0x2c, 0x15, - 0xfd, 0x00, 0x4d, 0x34, 0x03, 0xf9, 0xfc, 0x40, 0x0d, 0x67, 0x00, 0x6c, - 0x05, 0x08, 0x59, 0x5c, 0x06, 0x6e, 0x37, 0x4c, 0x05, 0x07, 0x5a, 0x29, - 0x05, 0x7a, 0x20, 0x11, 0x04, 0x4d, 0x00, 0x01, 0xff, 0x4a, 0x3d, 0x2c, - 0x7d, 0xfc, 0x00, 0x4d, 0x34, 0x03, 0x32, 0xfc, 0x40, 0xa9, 0x06, 0x53, - 0xa0, 0x4d, 0xc1, 0xfd, 0x40, 0x4b, 0x4d, 0x16, 0xc1, 0xfc, 0x00, 0x4c, - 0x35, 0x03, 0x30, 0xfc, 0x40, 0xa9, 0x11, 0x0a, 0x96, 0x7d, 0x01, 0xff, - 0x4a, 0x3d, 0x2c, 0x7c, 0xfd, 0x00, 0x4c, 0x4c, 0x16, 0x7d, 0xfd, 0x40, - 0x4b, 0x4d, 0x16, 0xc0, 0xfc, 0x00, 0x4c, 0x35, 0x03, 0x2f, 0xfc, 0x40, - 0x4b, 0x4d, 0x16, 0xbe, 0xfc, 0x00, 0x4c, 0x35, 0x03, 0x2d, 0xfc, 0x40, - 0x4b, 0x4d, 0x16, 0xbf, 0xfc, 0x00, 0x4c, 0x35, 0x03, 0x2e, 0xfc, 0x40, - 0x4a, 0x3d, 0x2c, 0x7c, 0xfc, 0x00, 0x4d, 0x34, 0x03, 0x31, 0xfc, 0x40, - 0x0d, 0x67, 0x00, 0x87, 0x01, 0x04, 0x84, 0x20, 0x64, 0x06, 0x6e, 0x37, - 0x54, 0x05, 0x07, 0x5a, 0x31, 0x06, 0xd3, 0x5a, 0x21, 0x04, 0x3c, 0x7a, - 0x11, 0x04, 0x4d, 0x00, 0x01, 0xff, 0x4a, 0x3d, 0x2c, 0x24, 0xfd, 0x00, - 0x4d, 0x34, 0x03, 0x08, 0xfd, 0x40, 0x4a, 0x3d, 0x2c, 0x2c, 0xfd, 0x00, - 0x4d, 0x34, 0x03, 0x10, 0xfd, 0x40, 0x4b, 0x4d, 0x16, 0xb7, 0xfc, 0x00, - 0x4c, 0x35, 0x03, 0x25, 0xfc, 0x40, 0xa9, 0x11, 0x0a, 0x96, 0x7d, 0x01, - 0xff, 0x4a, 0x3d, 0x2c, 0x6f, 0xfd, 0x00, 0x4c, 0x4c, 0x16, 0x70, 0xfd, - 0x40, 0x4b, 0x4d, 0x16, 0xb6, 0xfc, 0x00, 0x4c, 0x35, 0x03, 0x24, 0xfc, - 0x40, 0x4b, 0x4d, 0x16, 0xb4, 0xfc, 0x00, 0x4c, 0x35, 0x03, 0x22, 0xfc, - 0x40, 0xa9, 0x11, 0x05, 0x51, 0x00, 0x01, 0xff, 0x57, 0x30, 0x2c, 0x6e, - 0xfd, 0x00, 0x4e, 0xa5, 0x4d, 0xab, 0xfd, 0x40, 0x4b, 0x4d, 0x16, 0xb5, - 0xfc, 0x00, 0x4c, 0x35, 0x03, 0x23, 0xfc, 0x40, 0x4a, 0x3d, 0x2c, 0x23, - 0xfd, 0x00, 0x4d, 0x34, 0x03, 0x07, 0xfd, 0x40, 0x08, 0x4e, 0x00, 0x06, - 0x5c, 0xc6, 0x17, 0xfd, 0xfd, 0x40, 0x0d, 0x67, 0x00, 0x93, 0x01, 0xa8, - 0x68, 0x06, 0x6e, 0x37, 0x58, 0x05, 0x07, 0x5a, 0x40, 0x05, 0x7a, 0x20, - 0x22, 0x4f, 0x19, 0x6f, 0x6d, 0xfc, 0x00, 0x4e, 0x3c, 0x7a, 0x6a, 0xfc, - 0x00, 0x04, 0x4d, 0x00, 0x06, 0x4f, 0x9c, 0x73, 0x6b, 0xfc, 0x40, 0x4a, - 0x3d, 0x2c, 0x6f, 0xfc, 0x00, 0x4d, 0x34, 0x03, 0x0a, 0xfc, 0x40, 0x4a, - 0x3d, 0x2c, 0x6c, 0xfc, 0x00, 0xa9, 0x06, 0x4b, 0x4d, 0x6c, 0xe1, 0xfc, - 0x40, 0x4b, 0x4d, 0x16, 0x9f, 0xfc, 0x00, 0x4c, 0x35, 0x03, 0x08, 0xfc, - 0x40, 0xa9, 0x06, 0x53, 0xa0, 0x4d, 0x9e, 0xfd, 0x40, 0x4b, 0x4d, 0x16, - 0x9e, 0xfc, 0x00, 0x4c, 0x35, 0x03, 0x07, 0xfc, 0x40, 0x4b, 0x4d, 0x16, - 0x9c, 0xfc, 0x00, 0x4c, 0x35, 0x03, 0x05, 0xfc, 0x40, 0x03, 0xc9, 0x09, - 0x11, 0x03, 0x4e, 0x00, 0x01, 0xff, 0x4c, 0x4c, 0x16, 0xa0, 0xfc, 0x00, - 0x4b, 0x4d, 0x6c, 0xe2, 0xfc, 0x40, 0xa9, 0x06, 0x53, 0xa0, 0x4d, 0xc2, - 0xfd, 0x40, 0x4b, 0x4d, 0x16, 0x9d, 0xfc, 0x00, 0x4c, 0x35, 0x03, 0x06, - 0xfc, 0x40, 0x4a, 0x3d, 0x2c, 0x6e, 0xfc, 0x00, 0x4d, 0x34, 0x03, 0x09, - 0xfc, 0x40, 0x08, 0x4d, 0x9a, 0x69, 0x52, 0xec, 0x51, 0xf3, 0xfd, 0x00, - 0xac, 0x06, 0x4b, 0x50, 0xa3, 0xff, 0xfd, 0x40, 0x03, 0xe2, 0x18, 0x2b, - 0x03, 0x69, 0x00, 0x06, 0x51, 0x29, 0x5a, 0xf2, 0xfd, 0x40, 0x1e, 0x5e, - 0x13, 0x11, 0x0e, 0x4c, 0x7d, 0x01, 0xff, 0x4a, 0x3d, 0x2c, 0x3c, 0xfd, - 0x00, 0x4d, 0x34, 0x03, 0x3d, 0xfd, 0x40, 0x4a, 0x3d, 0x2c, 0x90, 0xfc, - 0x00, 0x4d, 0x34, 0x03, 0x5d, 0xfc, 0x40, 0x4c, 0x25, 0x8a, 0x4d, 0xfd, - 0x00, 0x4f, 0xd2, 0x6a, 0xf7, 0xfd, 0x00, 0xa9, 0x01, 0xff, 0x09, 0x27, - 0x8a, 0x0f, 0xad, 0x01, 0xff, 0x4a, 0x27, 0x8a, 0x48, 0xfd, 0x00, 0x4c, - 0x25, 0x8a, 0x49, 0xfd, 0x40, 0xed, 0x47, 0xfd, 0x00, 0x4d, 0x95, 0x87, - 0x4a, 0xfd, 0x40, 0x0d, 0x67, 0x00, 0x67, 0x05, 0x6e, 0x37, 0x44, 0x05, - 0x7a, 0x20, 0x11, 0x04, 0x4d, 0x00, 0x01, 0xff, 0x4a, 0x3d, 0x2c, 0x14, - 0xfd, 0x00, 0x4d, 0x34, 0x03, 0xf8, 0xfc, 0x40, 0xa9, 0x21, 0x05, 0x51, - 0x00, 0x01, 0xff, 0x57, 0x30, 0x2c, 0x78, 0xfd, 0x00, 0x05, 0x7a, 0x20, - 0x06, 0x4e, 0xa5, 0x4d, 0xb6, 0xfd, 0x40, 0x4a, 0x3d, 0x2c, 0x76, 0xfd, - 0x00, 0x4c, 0x4c, 0x16, 0x77, 0xfd, 0x40, 0x4b, 0x4d, 0x16, 0xbb, 0xfc, - 0x00, 0x4c, 0x35, 0x03, 0x2a, 0xfc, 0x40, 0xa9, 0x11, 0x0a, 0x96, 0x7d, - 0x01, 0xff, 0x4a, 0x3d, 0x2c, 0x75, 0xfd, 0x00, 0x4c, 0x4c, 0x16, 0xc4, - 0xfd, 0x40, 0x4b, 0x4d, 0x16, 0xba, 0xfc, 0x00, 0x4c, 0x35, 0x03, 0x29, - 0xfc, 0x40, 0x4a, 0x3d, 0x2c, 0x13, 0xfd, 0x00, 0x4d, 0x34, 0x03, 0xf7, - 0xfc, 0x40, 0x0d, 0x8a, 0x81, 0xbb, 0x1e, 0x05, 0xc3, 0x05, 0x01, 0xff, - 0xa1, 0xf5, 0x1a, 0x02, 0x8c, 0x05, 0xba, 0x19, 0xa4, 0x99, 0x17, 0xe5, - 0xd0, 0x06, 0x80, 0xf6, 0x16, 0xa6, 0xc3, 0x15, 0xa7, 0x9d, 0x14, 0xa8, - 0xe6, 0x11, 0x02, 0xde, 0x1f, 0x8e, 0x11, 0xab, 0xf7, 0x0e, 0xac, 0x90, - 0x0e, 0xad, 0xc8, 0x0d, 0xae, 0xed, 0x0b, 0x42, 0x17, 0x50, 0xc6, 0x06, - 0x80, 0xd6, 0x0b, 0x43, 0x72, 0xe4, 0x7e, 0x06, 0x80, 0xff, 0x0a, 0x43, - 0xf4, 0x13, 0x42, 0x06, 0x80, 0xb8, 0x0a, 0xb2, 0xfb, 0x08, 0xb3, 0x9f, - 0x07, 0xb4, 0xdb, 0x03, 0xf5, 0xc7, 0x06, 0x80, 0xa9, 0x03, 0x42, 0x32, - 0x00, 0xcb, 0x06, 0x80, 0xf1, 0x02, 0x43, 0xc0, 0x88, 0x48, 0x06, 0x80, - 0x93, 0x02, 0xb9, 0x43, 0x02, 0x59, 0x00, 0x01, 0xff, 0xe8, 0x38, 0x06, - 0x80, 0x1c, 0x42, 0x9e, 0x01, 0x32, 0x06, 0xc0, 0x00, 0x80, 0x01, 0xff, - 0x4a, 0x3d, 0x2c, 0xb0, 0xfe, 0x00, 0x4d, 0x34, 0x03, 0xaf, 0xfe, 0x00, - 0x55, 0x26, 0x3e, 0xb2, 0x08, 0x40, 0x80, 0x01, 0xff, 0x4a, 0x3d, 0x2c, - 0xc6, 0xfe, 0x00, 0xa9, 0x06, 0x4b, 0x4d, 0x6c, 0xc8, 0xfe, 0x40, 0x4b, - 0x4d, 0x16, 0xc7, 0xfe, 0x00, 0x4c, 0x35, 0x03, 0xc5, 0xfe, 0x40, 0x42, - 0x4e, 0x00, 0x4a, 0x06, 0x80, 0x14, 0xf5, 0xc8, 0x06, 0xc0, 0x00, 0x80, - 0x01, 0xff, 0x4a, 0x3d, 0x2c, 0xdc, 0xfb, 0x00, 0x4d, 0x34, 0x03, 0xdb, - 0xfb, 0x40, 0x80, 0x01, 0xff, 0x46, 0x6a, 0x19, 0xd2, 0x06, 0x80, 0x6f, - 0x4a, 0x3d, 0x2c, 0xf2, 0xfe, 0x00, 0xa9, 0x5b, 0x4b, 0x4d, 0x6c, 0xf4, - 0xfe, 0x00, 0x05, 0x51, 0x00, 0x01, 0xff, 0x4b, 0x56, 0x00, 0x26, 0x06, - 0x80, 0x2c, 0x47, 0x02, 0x34, 0xce, 0x06, 0x00, 0xb4, 0x01, 0xff, 0x43, - 0x24, 0x17, 0xcd, 0x06, 0x00, 0x4f, 0x94, 0x6c, 0xd1, 0x06, 0x00, 0x12, - 0x86, 0x1d, 0x01, 0xff, 0x49, 0x98, 0x1d, 0xa9, 0x08, 0x00, 0x4b, 0x56, - 0x00, 0xa8, 0x08, 0x00, 0x50, 0xda, 0x65, 0xba, 0x08, 0x40, 0x80, 0x01, - 0xff, 0x4a, 0x3d, 0x2c, 0x8a, 0xfe, 0x00, 0xa9, 0x06, 0x4b, 0x4d, 0x6c, - 0x8c, 0xfe, 0x40, 0x4b, 0x4d, 0x16, 0x8b, 0xfe, 0x00, 0x4c, 0x35, 0x03, - 0x89, 0xfe, 0x40, 0x4b, 0x4d, 0x16, 0xf3, 0xfe, 0x00, 0x4c, 0x35, 0x03, - 0xf1, 0xfe, 0x40, 0x80, 0x01, 0xff, 0x4a, 0x3d, 0x2c, 0xaf, 0xfb, 0x00, - 0x4d, 0x34, 0x03, 0xae, 0xfb, 0x00, 0x05, 0x51, 0x00, 0x01, 0xff, 0x1d, - 0x70, 0x15, 0x16, 0x4b, 0x56, 0x00, 0xd3, 0x06, 0xc0, 0x00, 0x80, 0x01, - 0xff, 0x4a, 0x3d, 0x2c, 0xb1, 0xfb, 0x00, 0x4d, 0x34, 0x03, 0xb0, 0xfb, - 0x40, 0x4a, 0x0f, 0xa9, 0x7b, 0x07, 0x00, 0x48, 0xca, 0xc9, 0x7a, 0x07, - 0x40, 0x80, 0x01, 0xff, 0x4a, 0x3d, 0x2c, 0xee, 0xfe, 0x00, 0x4d, 0x34, - 0x03, 0xed, 0xfe, 0x00, 0x05, 0x51, 0x00, 0x01, 0xff, 0x04, 0xb4, 0x0b, - 0x32, 0x1d, 0x70, 0x15, 0x22, 0x4b, 0x56, 0x00, 0x24, 0x06, 0x80, 0x0c, - 0x44, 0xf7, 0x07, 0xc4, 0x06, 0x00, 0x4e, 0xa3, 0x0e, 0xca, 0x06, 0x40, - 0x80, 0x01, 0xff, 0x4a, 0x3d, 0x2c, 0x86, 0xfe, 0x00, 0x4d, 0x34, 0x03, - 0x85, 0xfe, 0x40, 0x4a, 0x0f, 0xa9, 0x79, 0x07, 0x00, 0x48, 0xca, 0xc9, - 0x78, 0x07, 0x40, 0x45, 0x5c, 0x00, 0xcf, 0x06, 0x00, 0x46, 0x25, 0x1e, - 0xab, 0x08, 0x40, 0x80, 0x22, 0xe8, 0xa4, 0x06, 0xc0, 0x00, 0x80, 0x01, - 0xff, 0x4a, 0x3d, 0x2c, 0x6b, 0xfb, 0x00, 0xa9, 0x06, 0x4b, 0x4d, 0x6c, - 0x6d, 0xfb, 0x40, 0x4b, 0x4d, 0x16, 0x6c, 0xfb, 0x00, 0x4c, 0x35, 0x03, - 0x6a, 0xfb, 0x40, 0x4a, 0x3d, 0x2c, 0xdf, 0xfb, 0x00, 0x4d, 0x34, 0x03, - 0xde, 0xfb, 0x40, 0x80, 0x11, 0x22, 0x07, 0x0c, 0x01, 0xff, 0x4c, 0x4c, - 0x16, 0xe8, 0xfb, 0x00, 0x4b, 0x4d, 0x6c, 0xe9, 0xfb, 0x40, 0x4a, 0x3d, - 0x2c, 0xd8, 0xfb, 0x00, 0x4d, 0x34, 0x03, 0xd7, 0xfb, 0x00, 0x50, 0x51, - 0x00, 0x77, 0x06, 0xc0, 0x00, 0x4e, 0x33, 0x03, 0xdd, 0xfb, 0x40, 0x42, - 0xc9, 0x09, 0x37, 0x06, 0x80, 0xed, 0x02, 0x44, 0xfc, 0x81, 0x86, 0x06, - 0x80, 0x94, 0x02, 0x42, 0x4e, 0x00, 0x2a, 0x06, 0x80, 0x8f, 0x01, 0xa8, - 0x4d, 0x43, 0x63, 0x0f, 0x79, 0x06, 0xc0, 0x00, 0x80, 0x24, 0x42, 0x4e, - 0x00, 0x7a, 0x06, 0xc0, 0x00, 0x80, 0x01, 0xff, 0x4a, 0x3d, 0x2c, 0x5f, - 0xfb, 0x00, 0xa9, 0x06, 0x4b, 0x4d, 0x6c, 0x61, 0xfb, 0x40, 0x4b, 0x4d, - 0x16, 0x60, 0xfb, 0x00, 0x4c, 0x35, 0x03, 0x5e, 0xfb, 0x40, 0x4a, 0x3d, - 0x2c, 0x67, 0xfb, 0x00, 0xa9, 0x0c, 0x4b, 0x4d, 0x6c, 0x69, 0xfb, 0x00, - 0x4c, 0x11, 0x95, 0xc0, 0x08, 0x40, 0x4b, 0x4d, 0x16, 0x68, 0xfb, 0x00, - 0x4c, 0x35, 0x03, 0x66, 0xfb, 0x40, 0x42, 0x13, 0x00, 0x30, 0x06, 0x80, - 0x2a, 0x42, 0x4e, 0x00, 0x2b, 0x06, 0x80, 0x06, 0x46, 0xe8, 0xd9, 0x86, - 0x08, 0x40, 0x80, 0x01, 0xff, 0x4a, 0x3d, 0x2c, 0x9a, 0xfe, 0x00, 0xa9, - 0x06, 0x4b, 0x4d, 0x6c, 0x9c, 0xfe, 0x40, 0x4b, 0x4d, 0x16, 0x9b, 0xfe, - 0x00, 0x4c, 0x35, 0x03, 0x99, 0xfe, 0x40, 0x80, 0x01, 0xff, 0x4a, 0x3d, - 0x2c, 0xac, 0xfe, 0x00, 0x4d, 0x34, 0x03, 0xab, 0xfe, 0x40, 0x80, 0x24, - 0x42, 0x4e, 0x00, 0x7f, 0x06, 0xc0, 0x00, 0x80, 0x01, 0xff, 0x4a, 0x3d, - 0x2c, 0x63, 0xfb, 0x00, 0xa9, 0x06, 0x4b, 0x4d, 0x6c, 0x65, 0xfb, 0x40, - 0x4b, 0x4d, 0x16, 0x64, 0xfb, 0x00, 0x4c, 0x35, 0x03, 0x62, 0xfb, 0x40, - 0x4a, 0x3d, 0x2c, 0x96, 0xfe, 0x00, 0xa9, 0x43, 0xad, 0x1f, 0x05, 0x51, - 0x00, 0x01, 0xff, 0x44, 0xf7, 0x07, 0x7c, 0x06, 0x00, 0x06, 0x0c, 0x07, - 0x06, 0x5a, 0xb2, 0x21, 0x7d, 0x06, 0x40, 0x49, 0x45, 0xbd, 0xb8, 0x08, - 0x00, 0xf6, 0xbf, 0x08, 0x40, 0x46, 0xfa, 0xd6, 0x29, 0x06, 0x80, 0x06, - 0x4a, 0x4e, 0x6c, 0x98, 0xfe, 0x40, 0x80, 0x01, 0xff, 0x4a, 0x3d, 0x2c, - 0x94, 0xfe, 0x00, 0x44, 0xca, 0xec, 0xc3, 0x06, 0x00, 0x4d, 0x34, 0x03, - 0x93, 0xfe, 0x40, 0x4b, 0x4d, 0x16, 0x97, 0xfe, 0x00, 0x4c, 0x35, 0x03, - 0x95, 0xfe, 0x40, 0x80, 0x24, 0x42, 0x4e, 0x00, 0x87, 0x06, 0xc0, 0x00, - 0x80, 0x01, 0xff, 0x4a, 0x3d, 0x2c, 0x7f, 0xfb, 0x00, 0xa9, 0x06, 0x4b, - 0x4d, 0x6c, 0x81, 0xfb, 0x40, 0x4b, 0x4d, 0x16, 0x80, 0xfb, 0x00, 0x4c, - 0x35, 0x03, 0x7e, 0xfb, 0x40, 0x4a, 0x3d, 0x2c, 0x7b, 0xfb, 0x00, 0xa9, - 0x17, 0x4b, 0x4d, 0x6c, 0x7d, 0xfb, 0x00, 0x05, 0x51, 0x00, 0x01, 0xff, - 0x49, 0x98, 0x1d, 0xbf, 0x06, 0x00, 0x47, 0x02, 0x34, 0xc1, 0x08, 0x40, - 0x4b, 0x4d, 0x16, 0x7c, 0xfb, 0x00, 0x4c, 0x35, 0x03, 0x7a, 0xfb, 0x40, - 0x80, 0x01, 0xff, 0x4a, 0x3d, 0x2c, 0xc2, 0xfe, 0x00, 0xa9, 0x35, 0x4b, - 0x4d, 0x6c, 0xc4, 0xfe, 0x00, 0x05, 0x51, 0x00, 0x01, 0xff, 0x49, 0x50, - 0x12, 0x8b, 0x08, 0x00, 0xb4, 0x01, 0xff, 0x0a, 0x5f, 0x12, 0x11, 0x08, - 0xa3, 0x0b, 0x01, 0xff, 0x45, 0x5c, 0x00, 0xa3, 0x08, 0x00, 0x50, 0xad, - 0x2b, 0xc3, 0x0e, 0x41, 0x45, 0x5c, 0x00, 0x9f, 0x06, 0x00, 0x45, 0xf5, - 0x06, 0x8c, 0x08, 0x40, 0x4b, 0x4d, 0x16, 0xc3, 0xfe, 0x00, 0x4c, 0x35, - 0x03, 0xc1, 0xfe, 0x40, 0x42, 0xe8, 0x01, 0x35, 0x06, 0x80, 0x99, 0x01, - 0x43, 0x75, 0x09, 0x33, 0x06, 0x80, 0x3c, 0x44, 0x60, 0xd8, 0x34, 0x06, - 0x80, 0x12, 0x4b, 0x77, 0xa1, 0xb1, 0x08, 0x00, 0x4f, 0x45, 0x06, 0x70, - 0x06, 0x00, 0x48, 0xb2, 0xc9, 0xaa, 0x06, 0x40, 0x80, 0x01, 0xff, 0x4a, - 0x3d, 0x2c, 0xb6, 0xfe, 0x00, 0xa9, 0x0c, 0x4b, 0x4d, 0x6c, 0xb8, 0xfe, - 0x00, 0x4e, 0x3e, 0x7d, 0xfa, 0x06, 0x40, 0x4b, 0x4d, 0x16, 0xb7, 0xfe, - 0x00, 0x4c, 0x35, 0x03, 0xb5, 0xfe, 0x40, 0x80, 0x01, 0xff, 0x4a, 0x3d, - 0x2c, 0xb2, 0xfe, 0x00, 0xa9, 0x3f, 0x4b, 0x4d, 0x6c, 0xb4, 0xfe, 0x00, - 0x05, 0x51, 0x00, 0x01, 0xff, 0x57, 0x5b, 0x2d, 0x9a, 0x06, 0x00, 0x66, - 0xae, 0x06, 0x7d, 0x07, 0x00, 0x4f, 0x9c, 0x45, 0x5c, 0x07, 0x00, 0x4a, - 0x2b, 0x3e, 0x7e, 0x07, 0x00, 0x64, 0xb4, 0x09, 0x70, 0x07, 0x00, 0xb4, - 0x01, 0xff, 0x4f, 0x94, 0x6c, 0x9b, 0x06, 0x80, 0x06, 0x58, 0x8d, 0x2b, - 0x6d, 0x07, 0x40, 0x55, 0x59, 0x12, 0x9c, 0x06, 0x40, 0x4b, 0x4d, 0x16, - 0xb3, 0xfe, 0x00, 0x4c, 0x35, 0x03, 0xb1, 0xfe, 0x40, 0x80, 0x01, 0xff, - 0x4a, 0x3d, 0x2c, 0xba, 0xfe, 0x00, 0xa9, 0x21, 0x4b, 0x4d, 0x6c, 0xbc, - 0xfe, 0x00, 0x06, 0xfe, 0x05, 0x01, 0xff, 0x0a, 0x5f, 0x12, 0x06, 0x4d, - 0xb7, 0x0e, 0x9d, 0x06, 0x40, 0x45, 0x5c, 0x00, 0x9e, 0x06, 0x00, 0x45, - 0xf5, 0x06, 0xaf, 0x08, 0x40, 0x4b, 0x4d, 0x16, 0xbb, 0xfe, 0x00, 0x4c, - 0x35, 0x03, 0xb9, 0xfe, 0x40, 0x42, 0x4e, 0x00, 0x31, 0x06, 0x80, 0x40, - 0x44, 0xc4, 0x44, 0xbb, 0x06, 0x80, 0x1c, 0x4b, 0x5f, 0x9e, 0xac, 0x08, - 0x00, 0x43, 0xee, 0x50, 0x91, 0x06, 0xc0, 0x00, 0x80, 0x01, 0xff, 0x4a, - 0x3d, 0x2c, 0x8d, 0xfb, 0x00, 0x4d, 0x34, 0x03, 0x8c, 0xfb, 0x40, 0x80, - 0x01, 0xff, 0x4a, 0x3d, 0x2c, 0xa1, 0xfb, 0x00, 0xa9, 0x06, 0x4b, 0x4d, - 0x6c, 0xa3, 0xfb, 0x40, 0x4b, 0x4d, 0x16, 0xa2, 0xfb, 0x00, 0x4c, 0x35, - 0x03, 0xa0, 0xfb, 0x40, 0x80, 0x01, 0xff, 0x4a, 0x3d, 0x2c, 0xae, 0xfe, - 0x00, 0x4d, 0x34, 0x03, 0xad, 0xfe, 0x00, 0x05, 0x51, 0x00, 0x01, 0xff, - 0x49, 0x50, 0x12, 0x94, 0x06, 0x80, 0x52, 0x4f, 0x9c, 0x45, 0x99, 0x06, - 0x00, 0x4b, 0x56, 0x00, 0x6c, 0x07, 0x00, 0x4a, 0x2b, 0x3e, 0xef, 0x06, - 0x00, 0x44, 0x92, 0x83, 0xaa, 0x08, 0x00, 0x44, 0xf7, 0x07, 0x93, 0x06, - 0x00, 0xb3, 0x11, 0x09, 0xa2, 0x0b, 0x01, 0xff, 0x45, 0x5c, 0x00, 0x97, - 0x06, 0x00, 0x50, 0x95, 0x2b, 0x6b, 0x07, 0x40, 0x05, 0x0d, 0x07, 0x06, - 0x45, 0x28, 0x05, 0x5b, 0x07, 0x40, 0x5e, 0xba, 0x09, 0x71, 0x07, 0x00, - 0x4a, 0xe0, 0x65, 0xb9, 0x08, 0x00, 0xf6, 0x92, 0x06, 0xc0, 0x00, 0x46, - 0xf4, 0x06, 0x95, 0x06, 0x40, 0x4e, 0x93, 0x1d, 0x96, 0x06, 0x40, 0x80, - 0x01, 0xff, 0x4a, 0x3d, 0x2c, 0xd6, 0xfe, 0x00, 0xa9, 0x28, 0x4b, 0x4d, - 0x6c, 0xd8, 0xfe, 0x00, 0x05, 0x51, 0x00, 0x01, 0xff, 0x04, 0xb4, 0x0b, - 0x06, 0x50, 0x5e, 0x12, 0xa8, 0x06, 0x40, 0x45, 0x5c, 0x00, 0xa7, 0x06, - 0x00, 0x45, 0xf5, 0x06, 0xa5, 0x08, 0xc0, 0x00, 0x52, 0xc6, 0x4d, 0xb5, - 0x08, 0x40, 0x4b, 0x4d, 0x16, 0xd7, 0xfe, 0x00, 0x4c, 0x35, 0x03, 0xd5, - 0xfe, 0x40, 0x80, 0x24, 0x42, 0x4e, 0x00, 0xa6, 0x06, 0xc0, 0x00, 0x80, - 0x01, 0xff, 0x4a, 0x3d, 0x2c, 0x6f, 0xfb, 0x00, 0xa9, 0x06, 0x4b, 0x4d, - 0x6c, 0x71, 0xfb, 0x40, 0x4b, 0x4d, 0x16, 0x70, 0xfb, 0x00, 0x4c, 0x35, - 0x03, 0x6e, 0xfb, 0x40, 0x4a, 0x3d, 0x2c, 0x57, 0xfb, 0x00, 0xa9, 0x15, - 0x4b, 0x4d, 0x6c, 0x59, 0xfb, 0x00, 0x0b, 0x11, 0x95, 0x01, 0xff, 0x4a, - 0x71, 0xab, 0xb7, 0x08, 0x00, 0xf6, 0xbe, 0x08, 0x40, 0x4b, 0x4d, 0x16, - 0x58, 0xfb, 0x00, 0x4c, 0x35, 0x03, 0x56, 0xfb, 0x40, 0x80, 0x01, 0xff, - 0x4a, 0x3d, 0x2c, 0xda, 0xfb, 0x00, 0x4d, 0x34, 0x03, 0xd9, 0xfb, 0x40, - 0xe7, 0xad, 0x06, 0x80, 0x92, 0x01, 0x43, 0x69, 0x05, 0x46, 0x06, 0x80, - 0x24, 0x43, 0x4d, 0x00, 0x83, 0x06, 0xc0, 0x00, 0x80, 0x01, 0xff, 0x4a, - 0x3d, 0x2c, 0x77, 0xfb, 0x00, 0xa9, 0x06, 0x4b, 0x4d, 0x6c, 0x79, 0xfb, - 0x40, 0x4b, 0x4d, 0x16, 0x78, 0xfb, 0x00, 0x4c, 0x35, 0x03, 0x76, 0xfb, - 0x40, 0x80, 0x01, 0xff, 0x4a, 0x3d, 0x2c, 0xe6, 0xfe, 0x00, 0x46, 0xc9, - 0x44, 0xba, 0x06, 0x80, 0x48, 0xa9, 0x3a, 0x4b, 0x4d, 0x6c, 0xe8, 0xfe, - 0x00, 0x05, 0x51, 0x00, 0x01, 0xff, 0x49, 0x50, 0x12, 0xb9, 0x06, 0x00, - 0x50, 0xf9, 0x33, 0x89, 0x08, 0x00, 0x44, 0xf7, 0x07, 0xbc, 0x06, 0x00, - 0x06, 0x0c, 0x07, 0x0f, 0xb4, 0x01, 0xff, 0x4f, 0x5f, 0x12, 0xbd, 0x06, - 0x00, 0x4d, 0xb7, 0x0e, 0x67, 0x07, 0x40, 0x43, 0xc8, 0x09, 0x68, 0x07, - 0x00, 0xf6, 0x69, 0x07, 0x40, 0x4b, 0x4d, 0x16, 0xe7, 0xfe, 0x00, 0x4c, - 0x35, 0x03, 0xe5, 0xfe, 0x40, 0x80, 0x01, 0xff, 0x4a, 0x3d, 0x2c, 0x9f, - 0xfb, 0x00, 0x4d, 0x34, 0x03, 0x9e, 0xfb, 0x40, 0x80, 0x24, 0x43, 0xc1, - 0x9a, 0xb1, 0x06, 0xc0, 0x00, 0x80, 0x01, 0xff, 0x4a, 0x3d, 0x2c, 0x9b, - 0xfb, 0x00, 0xa9, 0x06, 0x4b, 0x4d, 0x6c, 0x9d, 0xfb, 0x40, 0x4b, 0x4d, - 0x16, 0x9c, 0xfb, 0x00, 0x4c, 0x35, 0x03, 0x9a, 0xfb, 0x40, 0x4a, 0x3d, - 0x2c, 0xd4, 0xfb, 0x00, 0xa9, 0x06, 0x4b, 0x4d, 0x6c, 0xd6, 0xfb, 0x40, - 0x4b, 0x4d, 0x16, 0xd5, 0xfb, 0x00, 0x4c, 0x35, 0x03, 0xd3, 0xfb, 0x40, - 0x43, 0xba, 0x00, 0x1c, 0x06, 0x00, 0x43, 0xdf, 0x17, 0x45, 0x06, 0xc0, - 0x00, 0x80, 0x01, 0xff, 0x4a, 0x3d, 0x2c, 0xe2, 0xfe, 0x00, 0xa9, 0x21, - 0x4b, 0x4d, 0x6c, 0xe4, 0xfe, 0x00, 0x05, 0x51, 0x00, 0x01, 0xff, 0x04, - 0xb4, 0x0b, 0x06, 0x50, 0x5e, 0x12, 0xa7, 0x08, 0x40, 0x45, 0x5c, 0x00, - 0x65, 0x07, 0x00, 0x45, 0xf5, 0x06, 0x66, 0x07, 0x40, 0x4b, 0x4d, 0x16, - 0xe3, 0xfe, 0x00, 0x4c, 0x35, 0x03, 0xe1, 0xfe, 0x40, 0x42, 0x57, 0x00, - 0x44, 0x06, 0x80, 0x06, 0x47, 0x7d, 0xd1, 0xad, 0x08, 0x40, 0x80, 0x01, - 0xff, 0x4a, 0x3d, 0x2c, 0xde, 0xfe, 0x00, 0xa9, 0x40, 0x4b, 0x4d, 0x6c, - 0xe0, 0xfe, 0x00, 0x05, 0x51, 0x00, 0x01, 0xff, 0x43, 0x16, 0x00, 0x6a, - 0x07, 0x00, 0x02, 0x3b, 0x01, 0x1f, 0x06, 0x0c, 0x07, 0x11, 0x0b, 0x5e, - 0x12, 0x01, 0xff, 0x45, 0x5c, 0x00, 0xb7, 0x06, 0x00, 0x45, 0xf5, 0x06, - 0xb8, 0x06, 0x40, 0x57, 0x8c, 0x2c, 0xc7, 0x08, 0x00, 0xf6, 0xb5, 0x06, - 0x40, 0x47, 0x9a, 0x1d, 0xb6, 0x06, 0x00, 0x48, 0x27, 0xa7, 0xa6, 0x08, - 0x40, 0x4b, 0x4d, 0x16, 0xdf, 0xfe, 0x00, 0x4c, 0x35, 0x03, 0xdd, 0xfe, - 0x40, 0xa1, 0xb4, 0x01, 0x44, 0x6a, 0xec, 0xa9, 0x06, 0x80, 0x55, 0x43, - 0x84, 0x20, 0x2e, 0x06, 0x80, 0x31, 0x07, 0x46, 0x00, 0x01, 0xff, 0x42, - 0x17, 0x50, 0xc5, 0x06, 0x80, 0x16, 0x42, 0xe1, 0x4c, 0xc9, 0x06, 0xc0, - 0x00, 0x80, 0x01, 0xff, 0x4a, 0x3d, 0x2c, 0xe3, 0xfb, 0x00, 0x4d, 0x34, - 0x03, 0xe2, 0xfb, 0x40, 0x80, 0x01, 0xff, 0x4a, 0x3d, 0x2c, 0xe1, 0xfb, - 0x00, 0x4d, 0x34, 0x03, 0xe0, 0xfb, 0x40, 0x80, 0x01, 0xff, 0x4a, 0x3d, - 0x2c, 0xa6, 0xfe, 0x00, 0xa9, 0x06, 0x4b, 0x4d, 0x6c, 0xa8, 0xfe, 0x40, - 0x4b, 0x4d, 0x16, 0xa7, 0xfe, 0x00, 0x4c, 0x35, 0x03, 0xa5, 0xfe, 0x40, - 0x80, 0x01, 0xff, 0x4a, 0x3d, 0x2c, 0x8f, 0xfb, 0x00, 0xa9, 0x41, 0x4b, - 0x4d, 0x6c, 0x91, 0xfb, 0x00, 0x05, 0x51, 0x00, 0x01, 0xff, 0x49, 0x98, - 0x1d, 0x62, 0x07, 0x00, 0x47, 0x02, 0x34, 0xc2, 0x08, 0x00, 0xb4, 0x01, - 0xff, 0x0a, 0x5f, 0x12, 0x11, 0x08, 0xa3, 0x0b, 0x01, 0xff, 0x45, 0x5c, - 0x00, 0x3b, 0x06, 0x00, 0x50, 0xad, 0x2b, 0x8d, 0x08, 0x40, 0x45, 0x5c, - 0x00, 0x63, 0x07, 0x00, 0x45, 0xf5, 0x06, 0x3c, 0x06, 0x00, 0x56, 0x6f, - 0x35, 0x64, 0x07, 0x40, 0x4b, 0x4d, 0x16, 0x90, 0xfb, 0x00, 0x4c, 0x35, - 0x03, 0x8e, 0xfb, 0x40, 0xe6, 0x43, 0x06, 0x80, 0x06, 0x4a, 0xaf, 0xae, - 0x20, 0x06, 0x40, 0x80, 0x01, 0xff, 0x4a, 0x3d, 0x2c, 0xda, 0xfe, 0x00, - 0xa9, 0x3b, 0x4b, 0x4d, 0x6c, 0xdc, 0xfe, 0x00, 0x05, 0x51, 0x00, 0x01, - 0xff, 0x04, 0xb4, 0x0b, 0x20, 0x44, 0xf7, 0x07, 0xab, 0x06, 0x00, 0xb4, - 0x01, 0xff, 0x4f, 0x94, 0x6c, 0xae, 0x06, 0x00, 0x08, 0xa3, 0x0b, 0x01, - 0xff, 0x45, 0x5c, 0x00, 0x7f, 0x07, 0x00, 0x50, 0xad, 0x2b, 0xc4, 0x0e, - 0x41, 0x45, 0x5c, 0x00, 0xac, 0x06, 0x00, 0x45, 0xf5, 0x06, 0xb4, 0x08, - 0x40, 0x4b, 0x4d, 0x16, 0xdb, 0xfe, 0x00, 0x4c, 0x35, 0x03, 0xd9, 0xfe, - 0x40, 0x42, 0x8a, 0x05, 0x2c, 0x06, 0x80, 0x14, 0xe8, 0x98, 0x06, 0xc0, - 0x00, 0x80, 0x01, 0xff, 0x4a, 0x3d, 0x2c, 0x8b, 0xfb, 0x00, 0x4d, 0x34, - 0x03, 0x8a, 0xfb, 0x40, 0x80, 0x01, 0xff, 0x4a, 0x3d, 0x2c, 0x9e, 0xfe, - 0x00, 0xa9, 0x21, 0x4b, 0x4d, 0x6c, 0xa0, 0xfe, 0x00, 0x06, 0xfe, 0x05, - 0x01, 0xff, 0x0a, 0x5f, 0x12, 0x06, 0x4d, 0xa4, 0x0e, 0xa2, 0x08, 0x40, - 0x45, 0x5c, 0x00, 0xc5, 0x08, 0x00, 0x45, 0xf5, 0x06, 0xc6, 0x08, 0x40, - 0x4b, 0x4d, 0x16, 0x9f, 0xfe, 0x00, 0x4c, 0x35, 0x03, 0x9d, 0xfe, 0x40, - 0xa1, 0xaf, 0x01, 0x42, 0x4e, 0x00, 0x47, 0x06, 0x80, 0x1c, 0x49, 0xae, - 0xb7, 0x74, 0x06, 0xc0, 0x00, 0x80, 0x01, 0xff, 0x44, 0x67, 0x00, 0x75, - 0x06, 0x00, 0x43, 0xc0, 0x88, 0x76, 0x06, 0x00, 0x43, 0x4d, 0x00, 0x78, - 0x06, 0x40, 0x80, 0x01, 0xff, 0x4b, 0xea, 0x98, 0xbe, 0x06, 0x80, 0x65, - 0x4a, 0x3d, 0x2c, 0xea, 0xfe, 0x00, 0x44, 0xca, 0xec, 0xc1, 0x06, 0x80, - 0x35, 0xa9, 0x27, 0x4b, 0x4d, 0x6c, 0xec, 0xfe, 0x00, 0x05, 0x51, 0x00, - 0x01, 0xff, 0x4a, 0x2b, 0x3e, 0xff, 0x06, 0x00, 0x49, 0x22, 0xbf, 0xc0, - 0x06, 0xc0, 0x00, 0x80, 0x01, 0xff, 0x4a, 0x3d, 0x2c, 0xa5, 0xfb, 0x00, - 0x4d, 0x34, 0x03, 0xa4, 0xfb, 0x40, 0x4b, 0x4d, 0x16, 0xeb, 0xfe, 0x00, - 0x4c, 0x35, 0x03, 0xe9, 0xfe, 0x40, 0x80, 0x01, 0xff, 0x4a, 0x3d, 0x2c, - 0xa7, 0xfb, 0x00, 0xa9, 0x0c, 0x4b, 0x4d, 0x6c, 0xa9, 0xfb, 0x00, 0x50, - 0x51, 0x00, 0xc2, 0x06, 0x40, 0x4b, 0x4d, 0x16, 0xa8, 0xfb, 0x00, 0x4c, - 0x35, 0x03, 0xa6, 0xfb, 0x40, 0x80, 0x01, 0xff, 0x4a, 0x3d, 0x2c, 0xab, - 0xfb, 0x00, 0xa9, 0x06, 0x4b, 0x4d, 0x6c, 0xad, 0xfb, 0x40, 0x4b, 0x4d, - 0x16, 0xac, 0xfb, 0x00, 0x4c, 0x35, 0x03, 0xaa, 0xfb, 0x40, 0xe8, 0x2d, - 0x06, 0x80, 0x0d, 0x43, 0x58, 0x00, 0x21, 0x06, 0xc0, 0x00, 0x4e, 0x33, - 0x03, 0x80, 0xfe, 0x40, 0x80, 0x01, 0xff, 0x4a, 0x3d, 0x2c, 0xa2, 0xfe, - 0x00, 0xa9, 0x59, 0x4b, 0x4d, 0x6c, 0xa4, 0xfe, 0x00, 0x05, 0x51, 0x00, - 0x01, 0xff, 0x66, 0xd4, 0x06, 0x7c, 0x07, 0x00, 0x4b, 0x56, 0x00, 0x81, - 0x06, 0x00, 0x56, 0x0f, 0x34, 0x8a, 0x08, 0x00, 0x18, 0xb4, 0x09, 0x24, - 0xb4, 0x01, 0xff, 0x0a, 0x5f, 0x12, 0x11, 0x08, 0xa3, 0x0b, 0x01, 0xff, - 0x45, 0x5c, 0x00, 0x57, 0x07, 0x00, 0x4e, 0xea, 0x7c, 0x82, 0x06, 0x40, - 0x45, 0x5c, 0x00, 0x85, 0x06, 0x00, 0x56, 0x6f, 0x35, 0x58, 0x07, 0x40, - 0xa1, 0x06, 0x45, 0xf5, 0x06, 0x6e, 0x07, 0x40, 0x44, 0x5d, 0x00, 0x72, - 0x07, 0x00, 0x4b, 0xcd, 0x09, 0x6f, 0x07, 0x40, 0x4b, 0x4d, 0x16, 0xa3, - 0xfe, 0x00, 0x4c, 0x35, 0x03, 0xa1, 0xfe, 0x40, 0x42, 0xf5, 0x13, 0xaf, - 0x06, 0x80, 0x5f, 0x44, 0x4b, 0x9a, 0x3a, 0x06, 0x80, 0x2a, 0x43, 0x70, - 0x1f, 0xc8, 0x08, 0x00, 0x43, 0x69, 0xec, 0xb3, 0x06, 0xc0, 0x00, 0x80, - 0x01, 0xff, 0x4a, 0x3d, 0x2c, 0x97, 0xfb, 0x00, 0xa9, 0x06, 0x4b, 0x4d, - 0x6c, 0x99, 0xfb, 0x40, 0x4b, 0x4d, 0x16, 0x98, 0xfb, 0x00, 0x4c, 0x35, - 0x03, 0x96, 0xfb, 0x40, 0x80, 0x01, 0xff, 0x4a, 0x3d, 0x2c, 0xce, 0xfe, - 0x00, 0xa9, 0x17, 0x4b, 0x4d, 0x6c, 0xd0, 0xfe, 0x00, 0x05, 0x51, 0x00, - 0x01, 0xff, 0x49, 0x50, 0x12, 0xfc, 0x06, 0x00, 0x50, 0x5e, 0x12, 0xc3, - 0x08, 0x40, 0x4b, 0x4d, 0x16, 0xcf, 0xfe, 0x00, 0x4c, 0x35, 0x03, 0xcd, - 0xfe, 0x40, 0x80, 0x01, 0xff, 0x4a, 0x3d, 0x2c, 0x93, 0xfb, 0x00, 0xa9, - 0x26, 0x4b, 0x4d, 0x6c, 0x95, 0xfb, 0x00, 0x05, 0x51, 0x00, 0x01, 0xff, - 0x4f, 0x39, 0x6d, 0xb0, 0x08, 0x00, 0x44, 0xf7, 0x07, 0xb0, 0x06, 0x00, - 0xb4, 0x01, 0xff, 0x4f, 0x5f, 0x12, 0xb4, 0x06, 0x00, 0x4d, 0xb7, 0x0e, - 0xb2, 0x06, 0x40, 0x4b, 0x4d, 0x16, 0x94, 0xfb, 0x00, 0x4c, 0x35, 0x03, - 0x92, 0xfb, 0x40, 0x48, 0x0a, 0xc1, 0xcc, 0x06, 0x80, 0x59, 0x42, 0x4e, - 0x00, 0x41, 0x06, 0xc0, 0x00, 0x80, 0x01, 0xff, 0x4a, 0x3d, 0x2c, 0xd2, - 0xfe, 0x00, 0xa9, 0x3b, 0x4b, 0x4d, 0x6c, 0xd4, 0xfe, 0x00, 0x05, 0x51, - 0x00, 0x01, 0xff, 0x04, 0xb4, 0x0b, 0x19, 0xb4, 0x01, 0xff, 0x0a, 0x5f, - 0x12, 0x06, 0x4d, 0xb7, 0x0e, 0x60, 0x07, 0x40, 0x45, 0xf5, 0x06, 0xa5, - 0x06, 0x00, 0x56, 0x6f, 0x35, 0x61, 0x07, 0x40, 0x45, 0xf5, 0x06, 0xa3, - 0x06, 0x80, 0x06, 0x4b, 0x8e, 0x9d, 0xa2, 0x06, 0x40, 0x55, 0x59, 0x12, - 0xa4, 0x08, 0x40, 0x4b, 0x4d, 0x16, 0xd3, 0xfe, 0x00, 0x4c, 0x35, 0x03, - 0xd1, 0xfe, 0x40, 0x80, 0x01, 0xff, 0x4a, 0x3d, 0x2c, 0xfd, 0xfb, 0x00, - 0xa9, 0x39, 0x4b, 0x4d, 0x6c, 0xff, 0xfb, 0x00, 0x05, 0x51, 0x00, 0x01, - 0xff, 0x1c, 0xae, 0x06, 0x15, 0x4a, 0x2b, 0x3e, 0x3d, 0x06, 0x00, 0xb4, - 0x01, 0xff, 0x4f, 0x5f, 0x12, 0x3f, 0x06, 0x00, 0x4d, 0xa4, 0x0e, 0x3e, - 0x06, 0x40, 0x4a, 0xf0, 0x06, 0x77, 0x07, 0x00, 0xb4, 0x01, 0xff, 0x4a, - 0x0f, 0xa9, 0x76, 0x07, 0x00, 0x48, 0xca, 0xc9, 0x75, 0x07, 0x40, 0x4b, - 0x4d, 0x16, 0xfe, 0xfb, 0x00, 0x4c, 0x35, 0x03, 0xfc, 0xfb, 0x40, 0x80, - 0x01, 0xff, 0x4a, 0x3d, 0x2c, 0xe5, 0xfb, 0x00, 0xa9, 0x06, 0x4b, 0x4d, - 0x6c, 0xe7, 0xfb, 0x40, 0x4b, 0x4d, 0x16, 0xe6, 0xfb, 0x00, 0x4c, 0x35, - 0x03, 0xe4, 0xfb, 0x40, 0xa1, 0x7e, 0x02, 0xa1, 0x10, 0x50, 0x07, 0x84, - 0x40, 0x3a, 0x42, 0x1f, 0x01, 0x8e, 0x06, 0x80, 0x24, 0x43, 0x4d, 0x00, - 0x84, 0x06, 0xc0, 0x00, 0x80, 0x01, 0xff, 0x4a, 0x3d, 0x2c, 0x73, 0xfb, - 0x00, 0xa9, 0x06, 0x4b, 0x4d, 0x6c, 0x75, 0xfb, 0x40, 0x4b, 0x4d, 0x16, - 0x74, 0xfb, 0x00, 0x4c, 0x35, 0x03, 0x72, 0xfb, 0x40, 0x80, 0x01, 0xff, - 0x4a, 0x3d, 0x2c, 0x87, 0xfb, 0x00, 0x4d, 0x34, 0x03, 0x86, 0xfb, 0x40, - 0x43, 0xe5, 0x8a, 0x6e, 0x06, 0x00, 0x43, 0x85, 0xb6, 0xa1, 0x06, 0x00, - 0x43, 0xf4, 0x13, 0x6f, 0x06, 0x40, 0x43, 0x22, 0x00, 0x8d, 0x06, 0x80, - 0x14, 0xec, 0x88, 0x06, 0xc0, 0x00, 0x80, 0x01, 0xff, 0x4a, 0x3d, 0x2c, - 0x89, 0xfb, 0x00, 0x4d, 0x34, 0x03, 0x88, 0xfb, 0x40, 0x80, 0x01, 0xff, - 0x4a, 0x3d, 0x2c, 0x83, 0xfb, 0x00, 0x4d, 0x34, 0x03, 0x82, 0xfb, 0x40, - 0xe4, 0x36, 0x06, 0x80, 0x76, 0x43, 0x22, 0x00, 0x8c, 0x06, 0x80, 0x60, - 0xec, 0x2f, 0x06, 0xc0, 0x00, 0x80, 0x01, 0xff, 0x4a, 0x3d, 0x2c, 0xaa, - 0xfe, 0x00, 0x4d, 0x34, 0x03, 0xa9, 0xfe, 0x00, 0x05, 0x51, 0x00, 0x01, - 0xff, 0x49, 0x50, 0x12, 0x8a, 0x06, 0x80, 0x3a, 0x4f, 0x9c, 0x45, 0x90, - 0x06, 0x00, 0x09, 0xd6, 0x22, 0x26, 0x44, 0xf7, 0x07, 0x89, 0x06, 0x00, - 0xb4, 0x01, 0xff, 0x0a, 0x5f, 0x12, 0x0d, 0x58, 0xa5, 0x2b, 0xc2, 0x0e, - 0xc1, 0x00, 0x4e, 0xc8, 0x73, 0x59, 0x07, 0x40, 0x4f, 0xbd, 0x21, 0x8f, - 0x06, 0x00, 0x45, 0xf5, 0x06, 0xae, 0x08, 0x40, 0x4d, 0x18, 0x34, 0x5a, - 0x07, 0x00, 0xf6, 0xee, 0x06, 0x40, 0x4e, 0xc8, 0x73, 0x8b, 0x06, 0x40, - 0x80, 0x01, 0xff, 0x4a, 0x3d, 0x2c, 0x85, 0xfb, 0x00, 0x4d, 0x34, 0x03, - 0x84, 0xfb, 0x40, 0x80, 0x01, 0xff, 0x4a, 0x3d, 0x2c, 0xbe, 0xfe, 0x00, - 0xa9, 0x0c, 0x4b, 0x4d, 0x6c, 0xc0, 0xfe, 0x00, 0x4e, 0x3e, 0x7d, 0xfb, - 0x06, 0x40, 0x4b, 0x4d, 0x16, 0xbf, 0xfe, 0x00, 0x4c, 0x35, 0x03, 0xbd, - 0xfe, 0x40, 0x42, 0x4e, 0x00, 0x7b, 0x06, 0x80, 0x91, 0x01, 0xe8, 0x28, - 0x06, 0xc0, 0x00, 0x80, 0x24, 0x42, 0x4e, 0x00, 0x80, 0x06, 0xc0, 0x00, - 0x80, 0x01, 0xff, 0x4a, 0x3d, 0x2c, 0x5b, 0xfb, 0x00, 0xa9, 0x06, 0x4b, - 0x4d, 0x6c, 0x5d, 0xfb, 0x40, 0x4b, 0x4d, 0x16, 0x5c, 0xfb, 0x00, 0x4c, - 0x35, 0x03, 0x5a, 0xfb, 0x40, 0x4a, 0x3d, 0x2c, 0x90, 0xfe, 0x00, 0xa9, - 0x52, 0x4b, 0x4d, 0x6c, 0x92, 0xfe, 0x00, 0x05, 0x51, 0x00, 0x01, 0xff, - 0x5e, 0x50, 0x12, 0x51, 0x07, 0x00, 0x4b, 0x56, 0x00, 0xa1, 0x08, 0x00, - 0x56, 0x0f, 0x34, 0x55, 0x07, 0x00, 0x06, 0x0c, 0x07, 0x20, 0xb4, 0x01, - 0xff, 0x0a, 0x5f, 0x12, 0x06, 0x5b, 0x86, 0x1d, 0x54, 0x07, 0x40, 0x52, - 0x14, 0x51, 0x50, 0x07, 0x00, 0x56, 0x6f, 0x35, 0x52, 0x07, 0xc0, 0x00, - 0x53, 0xbf, 0x25, 0x53, 0x07, 0x40, 0x4a, 0x71, 0xab, 0xb6, 0x08, 0x00, - 0xf6, 0x56, 0x07, 0xc0, 0x00, 0x46, 0xf4, 0x06, 0xa0, 0x08, 0x40, 0x4b, - 0x4d, 0x16, 0x91, 0xfe, 0x00, 0x4c, 0x35, 0x03, 0x8f, 0xfe, 0x40, 0x80, - 0x01, 0xff, 0x4a, 0x3d, 0x2c, 0x53, 0xfb, 0x00, 0xa9, 0x06, 0x4b, 0x4d, - 0x6c, 0x55, 0xfb, 0x40, 0x4b, 0x4d, 0x16, 0x54, 0xfb, 0x00, 0x4c, 0x35, - 0x03, 0x52, 0xfb, 0x40, 0xe5, 0xd5, 0x06, 0x00, 0x07, 0xba, 0xc3, 0x9c, - 0x03, 0x42, 0x9e, 0x01, 0x39, 0x06, 0x80, 0xcb, 0x02, 0x43, 0x68, 0x00, - 0x27, 0x06, 0xc0, 0x00, 0x80, 0x01, 0xff, 0x4a, 0x3d, 0x2c, 0x8e, 0xfe, - 0x00, 0x4d, 0x34, 0x03, 0x8d, 0xfe, 0x00, 0x47, 0x6c, 0x00, 0x49, 0x06, - 0x80, 0x9e, 0x02, 0xb7, 0x01, 0xff, 0x44, 0xb7, 0xa2, 0x71, 0x06, 0x80, - 0x84, 0x02, 0x04, 0x52, 0x00, 0x01, 0xff, 0x09, 0x18, 0xb4, 0x8b, 0x01, - 0x49, 0x98, 0x1d, 0x7a, 0x08, 0x00, 0x1d, 0x70, 0x15, 0x75, 0x06, 0x56, - 0x00, 0x45, 0x52, 0x10, 0x52, 0x73, 0x08, 0x00, 0x4b, 0x01, 0x90, 0x22, - 0x06, 0x80, 0x29, 0x53, 0x53, 0x4b, 0x72, 0x08, 0x80, 0x11, 0x0b, 0x2a, - 0x67, 0x01, 0xff, 0x45, 0x5c, 0x00, 0x72, 0x06, 0x00, 0x45, 0xf5, 0x06, - 0x73, 0x06, 0x40, 0x05, 0x19, 0x00, 0x01, 0xff, 0x49, 0x98, 0x1d, 0x7c, - 0x08, 0x00, 0x49, 0xe9, 0xb8, 0x7f, 0x08, 0x40, 0x80, 0x01, 0xff, 0x4a, - 0x3d, 0x2c, 0x82, 0xfe, 0x00, 0x4d, 0x34, 0x03, 0x81, 0xfe, 0x40, 0x45, - 0x5c, 0x00, 0x23, 0x06, 0x80, 0x16, 0x45, 0xf5, 0x06, 0x25, 0x06, 0xc0, - 0x00, 0x80, 0x01, 0xff, 0x4a, 0x3d, 0x2c, 0x88, 0xfe, 0x00, 0x4d, 0x34, - 0x03, 0x87, 0xfe, 0x40, 0x80, 0x01, 0xff, 0x4a, 0x3d, 0x2c, 0x84, 0xfe, - 0x00, 0x4d, 0x34, 0x03, 0x83, 0xfe, 0x40, 0x4a, 0x0f, 0xa9, 0x74, 0x07, - 0x00, 0x48, 0xca, 0xc9, 0x73, 0x07, 0x40, 0x52, 0x52, 0x4f, 0x75, 0x08, - 0x80, 0x57, 0x45, 0x5c, 0x72, 0x70, 0x08, 0x00, 0x45, 0x5f, 0x4f, 0x74, - 0x08, 0x00, 0x05, 0xc3, 0x00, 0x3b, 0xb2, 0x18, 0x4f, 0x52, 0x72, 0x71, - 0x08, 0xc0, 0x00, 0x05, 0x19, 0x00, 0x01, 0xff, 0x49, 0x98, 0x1d, 0x7b, - 0x08, 0x00, 0x49, 0xe9, 0xb8, 0x7e, 0x08, 0x40, 0x05, 0xc9, 0x00, 0x11, - 0x09, 0x42, 0xae, 0x01, 0xff, 0x45, 0x5c, 0x00, 0x76, 0x08, 0x00, 0x45, - 0xf5, 0x06, 0x79, 0x08, 0x40, 0x45, 0x56, 0x00, 0x81, 0x08, 0x00, 0x49, - 0x49, 0x4f, 0x77, 0x08, 0x40, 0x45, 0x56, 0x00, 0x82, 0x08, 0x00, 0x49, - 0x49, 0x4f, 0x78, 0x08, 0x40, 0x05, 0x19, 0x00, 0x01, 0xff, 0x49, 0x98, - 0x1d, 0x7d, 0x08, 0x00, 0x49, 0xe9, 0xb8, 0x80, 0x08, 0x40, 0x80, 0x01, - 0xff, 0x4a, 0x3d, 0x2c, 0x51, 0xfb, 0x00, 0x4d, 0x34, 0x03, 0x50, 0xfb, - 0x40, 0x80, 0x01, 0xff, 0x4a, 0x3d, 0x2c, 0xf0, 0xfe, 0x00, 0x4d, 0x34, - 0x03, 0xef, 0xfe, 0x40, 0x80, 0x01, 0xff, 0x4a, 0x3d, 0x2c, 0xca, 0xfe, - 0x00, 0xa9, 0x32, 0x4b, 0x4d, 0x6c, 0xcc, 0xfe, 0x00, 0x06, 0xfe, 0x05, - 0x01, 0xff, 0x0a, 0x5f, 0x12, 0x11, 0x08, 0xa3, 0x0b, 0x01, 0xff, 0x45, - 0x5c, 0x00, 0x5d, 0x07, 0x00, 0x50, 0x95, 0x2b, 0x5f, 0x07, 0x40, 0x45, - 0x5c, 0x00, 0xa0, 0x06, 0x00, 0x45, 0xf5, 0x06, 0xb3, 0x08, 0x00, 0x58, - 0x25, 0x2a, 0x5e, 0x07, 0x40, 0x4b, 0x4d, 0x16, 0xcb, 0xfe, 0x00, 0x4c, - 0x35, 0x03, 0xc9, 0xfe, 0x40, 0x43, 0x85, 0xb6, 0xbb, 0x08, 0x00, 0x44, - 0xc4, 0x44, 0xbd, 0x08, 0x00, 0x43, 0xf4, 0x13, 0xbc, 0x08, 0xc0, 0x00, - 0x56, 0xd3, 0x31, 0xc4, 0x08, 0x40, 0x45, 0x5c, 0x00, 0xf7, 0x08, 0x00, - 0x45, 0xf5, 0x06, 0xf9, 0x08, 0x40, 0x4c, 0x24, 0x2c, 0xd1, 0x08, 0x00, - 0x0a, 0x41, 0xae, 0x01, 0xff, 0x45, 0x5c, 0x00, 0xce, 0x08, 0x00, 0x45, - 0xf5, 0x06, 0xcf, 0x08, 0x00, 0x53, 0x3f, 0x49, 0xd2, 0x08, 0x40, 0x80, - 0x0d, 0x43, 0xaa, 0x0a, 0x4d, 0x06, 0xc0, 0x00, 0x4e, 0x33, 0x03, 0x74, - 0xfe, 0x40, 0x4d, 0x34, 0x03, 0x7a, 0xfe, 0x00, 0x4b, 0x4d, 0x6c, 0x7b, - 0xfe, 0x00, 0x4e, 0x3e, 0x7d, 0xf6, 0x08, 0x40, 0x53, 0xc4, 0x49, 0x9f, - 0x08, 0x00, 0x04, 0x58, 0x00, 0x01, 0xff, 0x45, 0x5c, 0x00, 0x54, 0x06, - 0x00, 0x45, 0xf5, 0x06, 0x55, 0x06, 0x40, 0x44, 0x25, 0x0f, 0x4e, 0x06, - 0x80, 0x12, 0x50, 0xca, 0x62, 0x6d, 0x06, 0x00, 0x4e, 0xfa, 0x78, 0x02, - 0x06, 0x00, 0x48, 0x16, 0x16, 0xd4, 0x06, 0x40, 0x80, 0x0d, 0x43, 0xaa, - 0x0a, 0x4b, 0x06, 0xc0, 0x00, 0x4e, 0x33, 0x03, 0x70, 0xfe, 0x40, 0x4d, - 0x34, 0x03, 0x76, 0xfe, 0x00, 0x4b, 0x4d, 0x6c, 0x77, 0xfe, 0x00, 0x05, - 0x51, 0x00, 0x01, 0xff, 0x49, 0x98, 0x1d, 0xf5, 0x08, 0x00, 0x44, 0xf7, - 0x07, 0xf4, 0x08, 0x00, 0x48, 0xd0, 0x09, 0x5e, 0x06, 0x40, 0x0c, 0x85, - 0x90, 0x11, 0x06, 0x16, 0x05, 0x01, 0xff, 0x44, 0x61, 0x49, 0xdd, 0x06, - 0x00, 0x49, 0x41, 0x61, 0x1d, 0x06, 0x40, 0x49, 0xf9, 0x0a, 0xeb, 0x06, - 0x00, 0x48, 0x52, 0xc5, 0xea, 0x06, 0x40, 0xa1, 0x24, 0x50, 0x0a, 0x61, - 0x6b, 0x06, 0x00, 0x53, 0x52, 0x49, 0xe2, 0x08, 0x00, 0x05, 0x3c, 0x01, - 0x01, 0xff, 0x56, 0x65, 0x31, 0xfb, 0x08, 0x80, 0x06, 0x47, 0x55, 0xcd, - 0x9e, 0x08, 0x40, 0x49, 0xa5, 0x3a, 0xfc, 0x08, 0x40, 0x43, 0xea, 0x04, - 0x4f, 0x06, 0x80, 0x06, 0x4c, 0xcd, 0x93, 0x0d, 0x06, 0x40, 0x80, 0x0d, - 0x43, 0xaa, 0x0a, 0x4c, 0x06, 0xc0, 0x00, 0x4e, 0x33, 0x03, 0x72, 0xfe, - 0x40, 0x4d, 0x34, 0x03, 0x78, 0xfe, 0x00, 0x4b, 0x4d, 0x6c, 0x79, 0xfe, - 0x00, 0x48, 0xa6, 0x3a, 0xfe, 0x08, 0x40, 0x02, 0xe9, 0x04, 0x2c, 0x05, - 0x24, 0x0b, 0x01, 0xff, 0x45, 0x81, 0x5d, 0xe5, 0x08, 0x80, 0x1a, 0x45, - 0x5c, 0x72, 0xe4, 0x08, 0x80, 0x0d, 0x45, 0x5f, 0x4f, 0xe6, 0x08, 0xc0, - 0x00, 0x43, 0xaa, 0x0a, 0xe9, 0x08, 0x40, 0x43, 0xaa, 0x0a, 0xe7, 0x08, - 0x40, 0x43, 0xaa, 0x0a, 0xe8, 0x08, 0x40, 0x53, 0x51, 0x47, 0xfc, 0x0e, - 0x01, 0x42, 0x6c, 0x00, 0x0c, 0x06, 0x40, 0x14, 0xdb, 0x42, 0x45, 0xaf, - 0x37, 0xb0, 0x01, 0xff, 0x58, 0x1d, 0x29, 0x9f, 0x00, 0x00, 0x02, 0xd0, - 0x00, 0x01, 0xff, 0x4f, 0xd4, 0x68, 0x50, 0x22, 0x00, 0x09, 0x93, 0x0c, - 0x01, 0xff, 0x59, 0xe4, 0x22, 0x46, 0x22, 0x00, 0x06, 0x7b, 0x00, 0x01, - 0xff, 0x4b, 0x52, 0x28, 0x70, 0x2a, 0x00, 0x42, 0x1e, 0x00, 0x45, 0x22, - 0xc0, 0x00, 0x50, 0xca, 0x5e, 0x52, 0x22, 0x40, 0x44, 0x79, 0x43, 0xe4, - 0x2b, 0x00, 0x47, 0x94, 0x35, 0x27, 0x00, 0x40, 0x45, 0x2e, 0xe1, 0x7a, - 0x23, 0x80, 0x81, 0x04, 0x4d, 0x82, 0x7f, 0x40, 0x23, 0x00, 0xa3, 0xc6, - 0x03, 0xa4, 0xea, 0x02, 0x50, 0x6a, 0x61, 0x77, 0x23, 0x00, 0x56, 0x49, - 0x33, 0x69, 0x23, 0x00, 0xa9, 0xc8, 0x02, 0x04, 0x76, 0xed, 0xb7, 0x02, - 0x04, 0xc3, 0x00, 0xa6, 0x02, 0x45, 0xe8, 0xac, 0x75, 0x23, 0x80, 0x98, - 0x02, 0x02, 0x7c, 0x00, 0x6c, 0xb2, 0x5e, 0xb3, 0x3b, 0x4f, 0x34, 0x72, - 0x68, 0x23, 0x00, 0x02, 0x50, 0x02, 0x06, 0x45, 0x7b, 0xe9, 0x6c, 0x23, - 0x40, 0x80, 0x06, 0x4a, 0xf8, 0x76, 0x4f, 0x23, 0x40, 0x4b, 0xd7, 0x97, - 0x72, 0x23, 0x00, 0x48, 0x2a, 0xc8, 0x5d, 0x23, 0x00, 0x05, 0xde, 0x95, - 0x01, 0xff, 0x49, 0x2f, 0x23, 0x61, 0x23, 0x00, 0x43, 0x2f, 0xc8, 0x55, - 0x23, 0x00, 0x47, 0x77, 0x7e, 0x51, 0x23, 0x40, 0x51, 0x6f, 0x58, 0x6e, - 0x23, 0x00, 0x48, 0x87, 0x7f, 0x3f, 0x23, 0x00, 0x4a, 0x83, 0xad, 0x37, - 0x23, 0x00, 0xb4, 0x01, 0xff, 0x4c, 0x9d, 0x8a, 0x63, 0x23, 0x00, 0x49, - 0xdb, 0xb7, 0x6d, 0x23, 0x40, 0x42, 0x0b, 0x00, 0x74, 0x23, 0x00, 0x4e, - 0xf4, 0x76, 0x46, 0x23, 0x40, 0x42, 0xe8, 0x01, 0x95, 0x23, 0x80, 0x11, - 0x04, 0x6f, 0x53, 0x01, 0xff, 0x44, 0x2a, 0x0d, 0x5e, 0x23, 0x00, 0x48, - 0x78, 0x58, 0x58, 0x23, 0x40, 0x80, 0x01, 0xff, 0x49, 0xf5, 0x0d, 0x42, + 0x25, 0x01, 0x53, 0x32, 0x00, 0x42, 0x15, 0x02, 0x52, 0x32, 0x40, 0x44, + 0xc9, 0x1d, 0x57, 0x32, 0x00, 0x42, 0x01, 0x26, 0x56, 0x32, 0x40, 0x4d, + 0x41, 0x11, 0x49, 0x32, 0x00, 0xe5, 0x51, 0x32, 0x40, 0x43, 0xd2, 0x05, + 0x55, 0x32, 0x00, 0x43, 0xf6, 0x06, 0x54, 0x32, 0x40, 0x43, 0xc4, 0x09, + 0x6c, 0x24, 0x00, 0xf9, 0x5a, 0x32, 0xc0, 0x00, 0x80, 0x01, 0xff, 0x45, + 0x12, 0x0b, 0xb3, 0x32, 0x00, 0xa6, 0x31, 0x44, 0xcf, 0x2a, 0xb4, 0x32, + 0x00, 0x02, 0x10, 0x00, 0x1d, 0xb3, 0x0f, 0xb4, 0x01, 0xff, 0x44, 0x25, + 0x01, 0x5d, 0x32, 0x00, 0x42, 0x15, 0x02, 0x5c, 0x32, 0x40, 0x44, 0xc9, + 0x1d, 0xb2, 0x32, 0x00, 0x42, 0x01, 0x26, 0xb1, 0x32, 0x40, 0x4d, 0x41, + 0x11, 0x4a, 0x32, 0x00, 0xe5, 0x5b, 0x32, 0x40, 0x43, 0xd2, 0x05, 0x5f, + 0x32, 0x00, 0x43, 0xf6, 0x06, 0x5e, 0x32, 0x40, 0x50, 0xc4, 0x5f, 0x48, + 0x32, 0x40, 0x05, 0xc9, 0x1d, 0x11, 0x03, 0x01, 0x26, 0x01, 0xff, 0x43, + 0xc4, 0x09, 0x6f, 0x24, 0x00, 0x51, 0xc3, 0x5f, 0x4d, 0x32, 0x40, 0x43, + 0xc4, 0x09, 0x70, 0x24, 0x00, 0x51, 0xc3, 0x5f, 0x4e, 0x32, 0x40, 0x03, + 0x08, 0x18, 0x58, 0xaf, 0x01, 0xff, 0x43, 0x7c, 0x11, 0xb5, 0x32, 0x80, + 0x06, 0x46, 0x0b, 0x5d, 0x6d, 0x24, 0x40, 0x80, 0x01, 0xff, 0x45, 0x12, + 0x0b, 0xbd, 0x32, 0x00, 0xa6, 0x31, 0x44, 0xcf, 0x2a, 0xbe, 0x32, 0x00, + 0x02, 0x10, 0x00, 0x1d, 0xb3, 0x0f, 0xb4, 0x01, 0xff, 0x44, 0x25, 0x01, + 0xb8, 0x32, 0x00, 0x42, 0x15, 0x02, 0xb7, 0x32, 0x40, 0x44, 0xc9, 0x1d, + 0xbc, 0x32, 0x00, 0x42, 0x01, 0x26, 0xbb, 0x32, 0x40, 0x4d, 0x41, 0x11, + 0x4b, 0x32, 0x00, 0xe5, 0xb6, 0x32, 0x40, 0x43, 0xd2, 0x05, 0xba, 0x32, + 0x00, 0x43, 0xf6, 0x06, 0xb9, 0x32, 0x40, 0x43, 0xc4, 0x09, 0x6e, 0x24, + 0x00, 0xf9, 0xbf, 0x32, 0xc0, 0x00, 0x50, 0xc4, 0x5f, 0x4c, 0x32, 0x40, + 0x04, 0xc9, 0x00, 0x06, 0x45, 0xb4, 0x6f, 0x6a, 0x24, 0x40, 0x43, 0xc4, + 0x09, 0x71, 0x24, 0x00, 0x51, 0xc3, 0x5f, 0x4f, 0x32, 0x40, 0x44, 0x92, + 0x1f, 0x96, 0x22, 0x00, 0x69, 0xb7, 0x04, 0x36, 0x2a, 0x40, 0x05, 0xdf, + 0x05, 0x06, 0x48, 0xed, 0x00, 0xc0, 0x29, 0x40, 0x0f, 0xe4, 0x05, 0x6d, + 0x0d, 0x76, 0x08, 0x01, 0xff, 0xe1, 0xd0, 0x24, 0x00, 0xe2, 0xd1, 0x24, + 0x00, 0xe3, 0xd2, 0x24, 0x00, 0xe4, 0xd3, 0x24, 0x00, 0xe5, 0xd4, 0x24, + 0x00, 0xe6, 0xd5, 0x24, 0x00, 0xe7, 0xd6, 0x24, 0x00, 0xe8, 0xd7, 0x24, + 0x00, 0xe9, 0xd8, 0x24, 0x00, 0xea, 0xd9, 0x24, 0x00, 0xeb, 0xda, 0x24, + 0x00, 0xec, 0xdb, 0x24, 0x00, 0xed, 0xdc, 0x24, 0x00, 0xee, 0xdd, 0x24, + 0x00, 0xef, 0xde, 0x24, 0x00, 0xf0, 0xdf, 0x24, 0x00, 0xf1, 0xe0, 0x24, + 0x00, 0xf2, 0xe1, 0x24, 0x00, 0xf3, 0xe2, 0x24, 0x00, 0xf4, 0xe3, 0x24, + 0x00, 0xf5, 0xe4, 0x24, 0x00, 0xf6, 0xe5, 0x24, 0x00, 0xf7, 0xe6, 0x24, + 0x00, 0xf8, 0xe7, 0x24, 0x00, 0xf9, 0xe8, 0x24, 0x00, 0xfa, 0xe9, 0x24, + 0x40, 0xe1, 0xb6, 0x24, 0x00, 0xe2, 0xb7, 0x24, 0x00, 0xe3, 0xb8, 0x24, + 0x00, 0xe4, 0xb9, 0x24, 0x00, 0xe5, 0xba, 0x24, 0x00, 0xe6, 0xbb, 0x24, + 0x00, 0xe7, 0xbc, 0x24, 0x00, 0xe8, 0xbd, 0x24, 0x00, 0xe9, 0xbe, 0x24, + 0x00, 0xea, 0xbf, 0x24, 0x00, 0xeb, 0xc0, 0x24, 0x00, 0xec, 0xc1, 0x24, + 0x00, 0xed, 0xc2, 0x24, 0x00, 0xee, 0xc3, 0x24, 0x00, 0xef, 0xc4, 0x24, + 0x00, 0xf0, 0xc5, 0x24, 0x00, 0xf1, 0xc6, 0x24, 0x00, 0xf2, 0xc7, 0x24, + 0x00, 0xf3, 0xc8, 0x24, 0x00, 0xf4, 0xc9, 0x24, 0x00, 0xf5, 0xca, 0x24, + 0x00, 0xf6, 0xcb, 0x24, 0x00, 0xf7, 0xcc, 0x24, 0x00, 0xf8, 0xcd, 0x24, + 0x00, 0xf9, 0xce, 0x24, 0x00, 0xfa, 0xcf, 0x24, 0x40, 0x08, 0xb0, 0xc3, + 0x11, 0x10, 0x48, 0x53, 0x01, 0xff, 0x46, 0x76, 0xda, 0x7c, 0x32, 0x00, + 0x45, 0xb8, 0xe7, 0x7d, 0x32, 0x40, 0xe1, 0xd0, 0x32, 0x00, 0xe5, 0xd3, + 0x32, 0x00, 0xa8, 0xb3, 0x01, 0xe9, 0xd1, 0x32, 0x00, 0xab, 0x98, 0x01, + 0xad, 0x81, 0x01, 0xae, 0x6b, 0xef, 0xd4, 0x32, 0x00, 0xb2, 0x51, 0xb3, + 0x3b, 0xb4, 0x25, 0xf5, 0xd2, 0x32, 0x00, 0xb7, 0x0f, 0xb9, 0x01, 0xff, + 0xe1, 0xf3, 0x32, 0x00, 0xef, 0xf5, 0x32, 0x00, 0xf5, 0xf4, 0x32, 0x40, + 0xe1, 0xfb, 0x32, 0x00, 0xe5, 0xfd, 0x32, 0x00, 0xe9, 0xfc, 0x32, 0x00, + 0xef, 0xfe, 0x32, 0x40, 0xe1, 0xdf, 0x32, 0x00, 0xe5, 0xe2, 0x32, 0x00, + 0xe9, 0xe0, 0x32, 0x00, 0xef, 0xe3, 0x32, 0x00, 0xf5, 0xe1, 0x32, 0x40, + 0xe1, 0xda, 0x32, 0x00, 0xe5, 0xdd, 0x32, 0x00, 0xe9, 0xdb, 0x32, 0x00, + 0xef, 0xde, 0x32, 0x00, 0xf5, 0xdc, 0x32, 0x40, 0xe1, 0xf6, 0x32, 0x00, + 0xe5, 0xf9, 0x32, 0x00, 0xe9, 0xf7, 0x32, 0x00, 0xef, 0xfa, 0x32, 0x00, + 0xf5, 0xf8, 0x32, 0x40, 0xe1, 0xe4, 0x32, 0x00, 0xe5, 0xe7, 0x32, 0x00, + 0xe9, 0xe5, 0x32, 0x00, 0xef, 0xe8, 0x32, 0x00, 0xf5, 0xe6, 0x32, 0x40, + 0xe1, 0xee, 0x32, 0x00, 0xe5, 0xf1, 0x32, 0x00, 0xe9, 0xef, 0x32, 0x00, + 0xef, 0xf2, 0x32, 0x00, 0xf5, 0xf0, 0x32, 0x40, 0xe1, 0xd5, 0x32, 0x00, + 0xe5, 0xd8, 0x32, 0x00, 0xe9, 0xd6, 0x32, 0x00, 0xef, 0xd9, 0x32, 0x00, + 0xf5, 0xd7, 0x32, 0x40, 0xe1, 0xe9, 0x32, 0x00, 0xe5, 0xec, 0x32, 0x00, + 0xe9, 0xea, 0x32, 0x00, 0xef, 0xed, 0x32, 0x00, 0xf5, 0xeb, 0x32, 0x40, + 0x09, 0x7e, 0xab, 0x13, 0x51, 0xb5, 0x5c, 0xc8, 0xf6, 0x01, 0x1b, 0xa1, + 0x1d, 0x01, 0xff, 0xe3, 0x2b, 0xf1, 0x01, 0xf2, 0x2c, 0xf1, 0x41, 0xa1, + 0xe5, 0x02, 0xa3, 0xc7, 0x02, 0xa5, 0xac, 0x02, 0xa6, 0x89, 0x02, 0xa8, + 0xfa, 0x01, 0x44, 0x75, 0xc1, 0xa0, 0x32, 0x00, 0xab, 0xe5, 0x01, 0xac, + 0xd0, 0x01, 0xad, 0xb3, 0x01, 0xae, 0x9b, 0x01, 0x43, 0x0e, 0x0b, 0x80, + 0x32, 0x00, 0x45, 0x6b, 0xc6, 0x9e, 0x32, 0x00, 0x48, 0xa6, 0x34, 0x44, + 0x32, 0x00, 0xb2, 0x6c, 0xb3, 0x23, 0xb4, 0x0f, 0xb7, 0x01, 0xff, 0x44, + 0x8a, 0x00, 0x8c, 0x32, 0x00, 0x43, 0xb4, 0x2d, 0x8d, 0x32, 0x40, 0x42, + 0x92, 0x01, 0x89, 0x32, 0x00, 0x44, 0x25, 0x01, 0x82, 0x32, 0x00, 0x42, + 0x15, 0x02, 0x81, 0x32, 0x40, 0x45, 0x33, 0xe5, 0x46, 0x32, 0x00, 0xa5, + 0x33, 0x42, 0x01, 0x26, 0x85, 0x32, 0x00, 0x46, 0xa8, 0xde, 0x93, 0x32, + 0x00, 0x46, 0x0e, 0xdf, 0x95, 0x32, 0x00, 0xb4, 0x13, 0xb5, 0x01, 0xff, + 0x46, 0x28, 0xdd, 0x9c, 0x32, 0x00, 0xee, 0x90, 0x32, 0x00, 0x47, 0xb2, + 0xd4, 0xac, 0x32, 0x40, 0x43, 0x35, 0x01, 0x91, 0x32, 0x00, 0x43, 0xa6, + 0xf4, 0xab, 0x32, 0x40, 0x44, 0x6d, 0xef, 0x99, 0x32, 0x00, 0x43, 0xca, + 0x1d, 0x86, 0x32, 0x40, 0xa5, 0x06, 0x44, 0xc9, 0x00, 0xa8, 0x32, 0x40, + 0x46, 0xb2, 0xdd, 0xaa, 0x32, 0x00, 0xb3, 0x01, 0xff, 0x45, 0xc1, 0x5c, + 0xae, 0x32, 0x00, 0xf4, 0xa1, 0x32, 0x40, 0x43, 0x2b, 0x05, 0x94, 0x32, + 0x00, 0xa9, 0x01, 0xff, 0x43, 0xca, 0x00, 0xb0, 0x32, 0x00, 0x42, 0xcd, + 0x05, 0x88, 0x32, 0x40, 0x43, 0x67, 0x00, 0x9a, 0x32, 0x00, 0xa5, 0x06, + 0x43, 0xcd, 0x02, 0x8a, 0x32, 0x40, 0x46, 0xee, 0xda, 0xa9, 0x32, 0x00, + 0x43, 0x12, 0x00, 0x8e, 0x32, 0x40, 0x44, 0x09, 0xe8, 0x98, 0x32, 0x00, + 0x43, 0xc4, 0x00, 0xa7, 0x32, 0x00, 0x42, 0xd1, 0x00, 0xa6, 0x32, 0x40, + 0x4b, 0x83, 0x9d, 0x45, 0x32, 0x00, 0x43, 0x08, 0x8e, 0x47, 0x32, 0x40, + 0x43, 0x2f, 0x08, 0x92, 0x32, 0x00, 0x43, 0x3f, 0x00, 0xa4, 0x32, 0x40, + 0x45, 0x57, 0x21, 0x9b, 0x32, 0x00, 0xa9, 0x06, 0x43, 0xf6, 0x06, 0x83, + 0x32, 0x40, 0x47, 0x69, 0xd3, 0x96, 0x32, 0x00, 0x42, 0x88, 0x00, 0x8b, + 0x32, 0x00, 0x42, 0x32, 0x00, 0x84, 0x32, 0x40, 0x44, 0x53, 0x72, 0x8f, + 0x32, 0x00, 0x44, 0xc9, 0x00, 0x87, 0x32, 0x00, 0x49, 0xa2, 0xbc, 0xad, + 0x32, 0x00, 0x48, 0xa8, 0xcc, 0x9d, 0x32, 0x40, 0x45, 0x74, 0x02, 0xa5, + 0x32, 0x00, 0xaf, 0x01, 0xff, 0x4c, 0x0a, 0x87, 0x97, 0x32, 0x00, 0x42, + 0x1b, 0x1d, 0xa2, 0x32, 0x00, 0x45, 0x76, 0xd5, 0xa3, 0x32, 0x40, 0x45, + 0x06, 0xe5, 0x51, 0xf2, 0x01, 0x48, 0x48, 0xc5, 0x50, 0xf2, 0x01, 0x47, + 0x41, 0xc3, 0xaf, 0x32, 0x00, 0x48, 0xc8, 0xcb, 0x9f, 0x32, 0x40, 0x06, + 0x79, 0xd1, 0x12, 0x5b, 0xfe, 0x1a, 0xb2, 0x27, 0x00, 0x58, 0x4e, 0x2a, + 0x89, 0x23, 0x00, 0x4b, 0x4d, 0xa4, 0x6f, 0xf1, 0x41, 0xa3, 0xaa, 0x01, + 0x45, 0x71, 0xa5, 0x6d, 0x32, 0x80, 0x9c, 0x01, 0x45, 0x1e, 0xcc, 0x67, + 0x32, 0x80, 0x89, 0x01, 0xab, 0x6d, 0x45, 0xa8, 0xe8, 0x64, 0x32, 0x80, + 0x60, 0x45, 0x1b, 0xe9, 0x61, 0x32, 0x80, 0x53, 0xb0, 0x37, 0x45, 0x65, + 0xea, 0x63, 0x32, 0x80, 0x2a, 0x44, 0x65, 0xbf, 0x66, 0x32, 0x80, 0x1d, + 0xb4, 0x01, 0xff, 0x46, 0x57, 0xd6, 0x6b, 0x32, 0x80, 0x0d, 0x45, 0xe5, + 0xcd, 0x62, 0x32, 0xc0, 0x00, 0x42, 0x19, 0x00, 0x70, 0x32, 0x40, 0x42, + 0x19, 0x00, 0x79, 0x32, 0x40, 0x42, 0x19, 0x00, 0x74, 0x32, 0x40, 0x42, + 0x19, 0x00, 0x71, 0x32, 0x40, 0x46, 0xd2, 0xc2, 0x6c, 0x32, 0x80, 0x0d, + 0x44, 0xe3, 0x84, 0x65, 0x32, 0xc0, 0x00, 0x42, 0x19, 0x00, 0x73, 0x32, + 0x40, 0x42, 0x19, 0x00, 0x7a, 0x32, 0x40, 0x42, 0x19, 0x00, 0x6f, 0x32, + 0x40, 0x42, 0x19, 0x00, 0x72, 0x32, 0x40, 0x46, 0xca, 0xc2, 0x6a, 0x32, + 0x80, 0x0d, 0x45, 0xdd, 0xa2, 0x60, 0x32, 0xc0, 0x00, 0x42, 0x19, 0x00, + 0x6e, 0x32, 0x40, 0x42, 0x19, 0x00, 0x78, 0x32, 0x40, 0x80, 0x01, 0xff, + 0xe1, 0x75, 0x32, 0x00, 0xf5, 0x7e, 0x32, 0x40, 0x42, 0x19, 0x00, 0x7b, + 0x32, 0x40, 0x46, 0xea, 0xcf, 0x69, 0x32, 0x80, 0x0d, 0x44, 0xeb, 0xcf, + 0x68, 0x32, 0xc0, 0x00, 0x42, 0x19, 0x00, 0x76, 0x32, 0x40, 0x42, 0x19, + 0x00, 0x77, 0x32, 0x40, 0x43, 0xf9, 0x03, 0x9d, 0x22, 0x00, 0xa9, 0x0f, + 0xaf, 0x01, 0xff, 0x61, 0x2c, 0x0e, 0x0f, 0xf1, 0x01, 0x4a, 0xfb, 0x36, + 0x99, 0x22, 0x40, 0x04, 0xf1, 0x06, 0x11, 0x08, 0xc4, 0x32, 0x01, 0xff, + 0x43, 0x5b, 0x03, 0x38, 0x2a, 0x00, 0x44, 0x49, 0x0e, 0x98, 0x22, 0x40, + 0x45, 0x12, 0x0b, 0x67, 0x24, 0x00, 0xa6, 0x2e, 0x44, 0xcf, 0x2a, 0x68, + 0x24, 0x00, 0x43, 0x0e, 0x0b, 0x60, 0x24, 0x00, 0xb3, 0x14, 0xb4, 0x06, + 0x44, 0x43, 0x1e, 0xea, 0x24, 0x40, 0x44, 0x25, 0x01, 0x62, 0x24, 0x00, + 0x42, 0x15, 0x02, 0x61, 0x24, 0x40, 0x44, 0xc9, 0x1d, 0x66, 0x24, 0x00, + 0x42, 0x01, 0x26, 0x65, 0x24, 0x40, 0x43, 0xd2, 0x05, 0x64, 0x24, 0x00, + 0x43, 0xf6, 0x06, 0x63, 0x24, 0x40, 0x58, 0x35, 0x0e, 0x6e, 0xf1, 0x01, + 0xe3, 0x6d, 0xf1, 0x01, 0xe4, 0x2d, 0xf1, 0x01, 0x04, 0x96, 0x10, 0x01, + 0xff, 0x80, 0x06, 0x49, 0x8f, 0xba, 0xd2, 0x26, 0x40, 0x46, 0xcc, 0xdb, + 0x02, 0xf9, 0x81, 0x06, 0x46, 0x3e, 0xdf, 0x40, 0xf5, 0x41, 0x06, 0x50, + 0x00, 0x01, 0xff, 0x49, 0xd1, 0x46, 0x00, 0xf9, 0x01, 0x48, 0x1f, 0x0a, + 0x01, 0xf9, 0x41, 0x45, 0x89, 0xe9, 0xbf, 0x2b, 0x00, 0x45, 0xb3, 0x21, + 0xbf, 0x29, 0x40, 0x0c, 0x35, 0x0b, 0x06, 0x50, 0x66, 0x67, 0x9b, 0x22, + 0x40, 0x46, 0xcd, 0x00, 0x0e, 0xf1, 0x01, 0x56, 0xb9, 0x32, 0xbc, 0x29, + 0x40, 0x7e, 0x00, 0x00, 0xba, 0x29, 0x00, 0x05, 0x51, 0x00, 0x01, 0xff, + 0x61, 0x66, 0x0d, 0xd5, 0x25, 0x00, 0x4e, 0x0b, 0x00, 0xb5, 0x29, 0x00, + 0xac, 0x30, 0x50, 0xb6, 0x66, 0xd1, 0x25, 0x00, 0xb3, 0x1c, 0x63, 0xaa, + 0x0b, 0xc3, 0x29, 0x00, 0x06, 0x6d, 0x02, 0x06, 0x4d, 0x2f, 0x8a, 0xcd, + 0x25, 0x40, 0x4a, 0xec, 0x25, 0xd3, 0x25, 0x00, 0x54, 0x64, 0x45, 0xd4, + 0x25, 0x40, 0x58, 0xee, 0x29, 0xc2, 0x29, 0x00, 0x4d, 0x93, 0x89, 0xbb, + 0x29, 0x40, 0x4e, 0x79, 0x6f, 0xd0, 0x25, 0x00, 0x4f, 0xa3, 0x71, 0xd2, + 0x25, 0x40, 0xa1, 0xfa, 0x08, 0xa5, 0x92, 0x02, 0xa9, 0xda, 0x01, 0xaf, + 0x0c, 0x4c, 0xb3, 0x94, 0x84, 0xf3, 0x01, 0x44, 0xa2, 0xda, 0xea, 0x26, + 0x40, 0x4a, 0xc1, 0xa8, 0x6b, 0xf3, 0x01, 0x47, 0xe3, 0xd4, 0x62, 0xf9, + 0x01, 0x08, 0x28, 0xca, 0x01, 0xff, 0x07, 0xec, 0x05, 0x34, 0x07, 0xff, + 0x39, 0x01, 0xff, 0x44, 0xf5, 0x06, 0xc8, 0x0f, 0x01, 0x43, 0x0e, 0x0b, + 0xc5, 0x0f, 0x81, 0x1c, 0xb4, 0x01, 0xff, 0x42, 0x92, 0x01, 0xc9, 0x0f, + 0x01, 0x44, 0x25, 0x01, 0xc7, 0x0f, 0x01, 0xb7, 0x01, 0xff, 0x44, 0xcb, + 0x1d, 0xca, 0x0f, 0x01, 0xef, 0xc6, 0x0f, 0x41, 0x48, 0x70, 0x11, 0xcb, + 0x0f, 0x41, 0xa1, 0x75, 0x44, 0x41, 0xef, 0xb2, 0x0f, 0x01, 0x4a, 0xf3, + 0xa8, 0xb7, 0x0f, 0x01, 0x46, 0x23, 0x4a, 0xb4, 0x0f, 0x01, 0x45, 0xdd, + 0xaa, 0xb3, 0x0f, 0x01, 0x42, 0xb0, 0x01, 0xb5, 0x0f, 0x81, 0x50, 0x44, + 0xcd, 0xf0, 0xbb, 0x0f, 0x01, 0x46, 0x94, 0xdd, 0xbc, 0x0f, 0x01, 0x43, + 0xb4, 0x05, 0xbd, 0x0f, 0x01, 0x43, 0xdc, 0x22, 0xbe, 0x0f, 0x01, 0x42, + 0x6f, 0x02, 0xc1, 0x0f, 0x01, 0x44, 0x76, 0x66, 0xc2, 0x0f, 0x01, 0xb3, + 0x18, 0x43, 0xa4, 0xc4, 0xc4, 0x0f, 0x01, 0x43, 0x8a, 0x8a, 0xb6, 0x0f, + 0x01, 0x44, 0xa1, 0x52, 0xba, 0x0f, 0x01, 0x45, 0x9b, 0x52, 0xb8, 0x0f, + 0x41, 0x45, 0x48, 0xe4, 0xbf, 0x0f, 0x01, 0x43, 0x7a, 0x16, 0xc3, 0x0f, + 0x01, 0x4a, 0xad, 0xad, 0xb1, 0x0f, 0x41, 0x42, 0x53, 0x00, 0xb9, 0x0f, + 0x41, 0x44, 0x18, 0x3d, 0xb0, 0x0f, 0x01, 0x43, 0x7e, 0x1a, 0xc0, 0x0f, + 0x41, 0x44, 0xd4, 0x8a, 0x27, 0x26, 0x00, 0x44, 0x90, 0x01, 0x14, 0xf4, + 0x01, 0x42, 0xe2, 0x1a, 0xd2, 0xf9, 0x81, 0x1c, 0x0b, 0x01, 0xa0, 0x0c, + 0x45, 0xfc, 0xe9, 0x3f, 0xf4, 0x01, 0x43, 0xb1, 0x0e, 0xb7, 0x26, 0x40, + 0x4d, 0xd0, 0x88, 0xf2, 0x6f, 0x01, 0x4e, 0x41, 0x7d, 0xf3, 0x6f, 0x41, + 0x4c, 0x53, 0x94, 0xb8, 0xf6, 0x41, 0x02, 0x36, 0x01, 0xcd, 0x06, 0xa5, + 0xbe, 0x06, 0x4b, 0x8d, 0xa1, 0xc1, 0xf3, 0x01, 0xb2, 0x06, 0x45, 0x19, + 0xeb, 0x30, 0xf3, 0x41, 0x05, 0x84, 0xe9, 0x1a, 0xb2, 0x01, 0xff, 0x43, + 0x14, 0x9e, 0x52, 0xf3, 0x01, 0x02, 0x09, 0x00, 0x01, 0xff, 0x47, 0x8e, + 0xcf, 0x38, 0xf3, 0x01, 0x46, 0x16, 0x08, 0xbe, 0xce, 0x41, 0x07, 0xec, + 0x05, 0x89, 0x03, 0x0d, 0x76, 0x08, 0x01, 0xff, 0xe1, 0x70, 0xab, 0x00, + 0xa4, 0xdf, 0x02, 0xe5, 0x71, 0xab, 0x00, 0xa7, 0xc0, 0x02, 0xa8, 0x9f, + 0x02, 0xe9, 0x72, 0xab, 0x00, 0x42, 0x1b, 0x02, 0x77, 0xab, 0x00, 0xac, + 0xfa, 0x01, 0xad, 0xdf, 0x01, 0xae, 0xbf, 0x01, 0xef, 0x73, 0xab, 0x00, + 0x02, 0x7c, 0x00, 0x9e, 0x01, 0xf3, 0x9d, 0xab, 0x80, 0x80, 0x01, 0xb4, + 0x3d, 0xf5, 0x74, 0xab, 0x00, 0xf6, 0x75, 0xab, 0x00, 0xb7, 0x1b, 0xb9, + 0x01, 0xff, 0xe1, 0xbf, 0xab, 0x00, 0xe5, 0xf8, 0x13, 0x00, 0xe9, 0xf9, + 0x13, 0x00, 0xef, 0xfa, 0x13, 0x00, 0xf5, 0xfb, 0x13, 0x00, 0xf6, 0xfc, + 0x13, 0x40, 0xe1, 0xb9, 0xab, 0x00, 0xe5, 0xba, 0xab, 0x00, 0xe9, 0xbb, + 0xab, 0x00, 0xef, 0xbc, 0xab, 0x00, 0xf5, 0xbd, 0xab, 0x00, 0xf6, 0xbe, + 0xab, 0x40, 0xe1, 0xa4, 0xab, 0x00, 0xe5, 0xa6, 0xab, 0x00, 0xe9, 0xa8, + 0xab, 0x00, 0xac, 0x1b, 0xb3, 0x01, 0xff, 0xe1, 0xb3, 0xab, 0x00, 0xe5, + 0xb4, 0xab, 0x00, 0xe9, 0xb5, 0xab, 0x00, 0xef, 0xb6, 0xab, 0x00, 0xf5, + 0xb7, 0xab, 0x00, 0xf6, 0xb8, 0xab, 0x40, 0xe1, 0xad, 0xab, 0x00, 0xe5, + 0xae, 0xab, 0x00, 0xe9, 0xaf, 0xab, 0x00, 0xef, 0xb0, 0xab, 0x00, 0xf5, + 0xb1, 0xab, 0x00, 0xf6, 0xb2, 0xab, 0x40, 0xe1, 0x9c, 0xab, 0x00, 0xe5, + 0x9e, 0xab, 0x00, 0xe9, 0x9f, 0xab, 0x00, 0xef, 0xa0, 0xab, 0x00, 0xf5, + 0xa1, 0xab, 0x00, 0xf6, 0xa2, 0xab, 0x40, 0xe1, 0x96, 0xab, 0x00, 0xe5, + 0x97, 0xab, 0x00, 0xe9, 0x98, 0xab, 0x00, 0xef, 0x99, 0xab, 0x00, 0xf5, + 0x9a, 0xab, 0x00, 0xf6, 0x9b, 0xab, 0x40, 0xe1, 0x8e, 0xab, 0x80, 0x14, + 0xe5, 0x91, 0xab, 0x00, 0xe9, 0x92, 0xab, 0x00, 0xef, 0x93, 0xab, 0x00, + 0xf5, 0x94, 0xab, 0x00, 0xf6, 0x95, 0xab, 0x40, 0xe8, 0x90, 0xab, 0x40, + 0xe1, 0x89, 0xab, 0x00, 0xe5, 0x8a, 0xab, 0x00, 0xe9, 0x8b, 0xab, 0x00, + 0xef, 0x8c, 0xab, 0x00, 0xf5, 0x8d, 0xab, 0x00, 0xf6, 0xfd, 0x13, 0x40, + 0xe1, 0x83, 0xab, 0x00, 0xe5, 0x84, 0xab, 0x00, 0xe9, 0x85, 0xab, 0x00, + 0xef, 0x86, 0xab, 0x00, 0xf5, 0x87, 0xab, 0x00, 0xf6, 0x88, 0xab, 0x40, + 0xe1, 0x7d, 0xab, 0x00, 0xe5, 0x7e, 0xab, 0x00, 0xe9, 0x7f, 0xab, 0x00, + 0x42, 0x2a, 0x05, 0x8f, 0xab, 0x00, 0xef, 0x80, 0xab, 0x00, 0xf5, 0x81, + 0xab, 0x00, 0xf6, 0x82, 0xab, 0x40, 0xe1, 0x76, 0xab, 0x00, 0xe5, 0x78, + 0xab, 0x00, 0xe9, 0x79, 0xab, 0x00, 0xef, 0x7a, 0xab, 0x00, 0xf5, 0x7b, + 0xab, 0x00, 0xf6, 0x7c, 0xab, 0x40, 0xe1, 0xa3, 0xab, 0x00, 0xe5, 0xa5, + 0xab, 0x00, 0xe9, 0xa7, 0xab, 0x00, 0x42, 0x74, 0x00, 0xac, 0xab, 0x00, + 0xef, 0xa9, 0xab, 0x00, 0xf5, 0xaa, 0xab, 0x00, 0xf6, 0xab, 0xab, 0x40, + 0xe1, 0xa0, 0x13, 0x00, 0xa4, 0xdf, 0x02, 0xe5, 0xa1, 0x13, 0x00, 0xa7, + 0xc0, 0x02, 0xa8, 0x9f, 0x02, 0xe9, 0xa2, 0x13, 0x00, 0x42, 0x1b, 0x02, + 0xa7, 0x13, 0x00, 0xac, 0xfa, 0x01, 0xad, 0xdf, 0x01, 0xae, 0xbf, 0x01, + 0xef, 0xa3, 0x13, 0x00, 0x02, 0x7c, 0x00, 0x9e, 0x01, 0xf3, 0xcd, 0x13, + 0x80, 0x80, 0x01, 0xb4, 0x3d, 0xf5, 0xa4, 0x13, 0x00, 0xf6, 0xa5, 0x13, + 0x00, 0xb7, 0x1b, 0xb9, 0x01, 0xff, 0xe1, 0xef, 0x13, 0x00, 0xe5, 0xf0, + 0x13, 0x00, 0xe9, 0xf1, 0x13, 0x00, 0xef, 0xf2, 0x13, 0x00, 0xf5, 0xf3, + 0x13, 0x00, 0xf6, 0xf4, 0x13, 0x40, 0xe1, 0xe9, 0x13, 0x00, 0xe5, 0xea, + 0x13, 0x00, 0xe9, 0xeb, 0x13, 0x00, 0xef, 0xec, 0x13, 0x00, 0xf5, 0xed, + 0x13, 0x00, 0xf6, 0xee, 0x13, 0x40, 0xe1, 0xd4, 0x13, 0x00, 0xe5, 0xd6, + 0x13, 0x00, 0xe9, 0xd8, 0x13, 0x00, 0xac, 0x1b, 0xb3, 0x01, 0xff, 0xe1, + 0xe3, 0x13, 0x00, 0xe5, 0xe4, 0x13, 0x00, 0xe9, 0xe5, 0x13, 0x00, 0xef, + 0xe6, 0x13, 0x00, 0xf5, 0xe7, 0x13, 0x00, 0xf6, 0xe8, 0x13, 0x40, 0xe1, + 0xdd, 0x13, 0x00, 0xe5, 0xde, 0x13, 0x00, 0xe9, 0xdf, 0x13, 0x00, 0xef, + 0xe0, 0x13, 0x00, 0xf5, 0xe1, 0x13, 0x00, 0xf6, 0xe2, 0x13, 0x40, 0xe1, + 0xcc, 0x13, 0x00, 0xe5, 0xce, 0x13, 0x00, 0xe9, 0xcf, 0x13, 0x00, 0xef, + 0xd0, 0x13, 0x00, 0xf5, 0xd1, 0x13, 0x00, 0xf6, 0xd2, 0x13, 0x40, 0xe1, + 0xc6, 0x13, 0x00, 0xe5, 0xc7, 0x13, 0x00, 0xe9, 0xc8, 0x13, 0x00, 0xef, + 0xc9, 0x13, 0x00, 0xf5, 0xca, 0x13, 0x00, 0xf6, 0xcb, 0x13, 0x40, 0xe1, + 0xbe, 0x13, 0x80, 0x14, 0xe5, 0xc1, 0x13, 0x00, 0xe9, 0xc2, 0x13, 0x00, + 0xef, 0xc3, 0x13, 0x00, 0xf5, 0xc4, 0x13, 0x00, 0xf6, 0xc5, 0x13, 0x40, + 0xe8, 0xc0, 0x13, 0x40, 0xe1, 0xb9, 0x13, 0x00, 0xe5, 0xba, 0x13, 0x00, + 0xe9, 0xbb, 0x13, 0x00, 0xef, 0xbc, 0x13, 0x00, 0xf5, 0xbd, 0x13, 0x00, + 0xf6, 0xf5, 0x13, 0x40, 0xe1, 0xb3, 0x13, 0x00, 0xe5, 0xb4, 0x13, 0x00, + 0xe9, 0xb5, 0x13, 0x00, 0xef, 0xb6, 0x13, 0x00, 0xf5, 0xb7, 0x13, 0x00, + 0xf6, 0xb8, 0x13, 0x40, 0xe1, 0xad, 0x13, 0x00, 0xe5, 0xae, 0x13, 0x00, + 0xe9, 0xaf, 0x13, 0x00, 0x42, 0x2a, 0x05, 0xbf, 0x13, 0x00, 0xef, 0xb0, + 0x13, 0x00, 0xf5, 0xb1, 0x13, 0x00, 0xf6, 0xb2, 0x13, 0x40, 0xe1, 0xa6, + 0x13, 0x00, 0xe5, 0xa8, 0x13, 0x00, 0xe9, 0xa9, 0x13, 0x00, 0xef, 0xaa, + 0x13, 0x00, 0xf5, 0xab, 0x13, 0x00, 0xf6, 0xac, 0x13, 0x40, 0xe1, 0xd3, + 0x13, 0x00, 0xe5, 0xd5, 0x13, 0x00, 0xe9, 0xd7, 0x13, 0x00, 0x42, 0x74, + 0x00, 0xdc, 0x13, 0x00, 0xef, 0xd9, 0x13, 0x00, 0xf5, 0xda, 0x13, 0x00, + 0xf6, 0xdb, 0x13, 0x40, 0x4e, 0xc7, 0x7b, 0xe3, 0xf4, 0x01, 0x48, 0xb8, + 0xca, 0xc0, 0xf9, 0x41, 0x45, 0xb8, 0x00, 0x13, 0x27, 0x00, 0x48, 0x72, + 0x14, 0x7e, 0xf6, 0xc1, 0x00, 0x45, 0x56, 0x0b, 0x95, 0xfb, 0x41, 0xa9, + 0x8d, 0x08, 0x04, 0xe1, 0xf0, 0xb5, 0x04, 0x02, 0x49, 0x04, 0x3b, 0xb2, + 0x01, 0xff, 0x07, 0x84, 0xce, 0x18, 0x07, 0x94, 0x0d, 0x01, 0xff, 0x4f, + 0x5d, 0x6c, 0xc9, 0xf4, 0x01, 0x4d, 0xba, 0x89, 0xc8, 0xf4, 0xc1, 0x00, + 0x4d, 0x2a, 0x7f, 0xb9, 0xf4, 0x41, 0x49, 0xe4, 0x3b, 0x09, 0x00, 0x80, + 0x06, 0x42, 0xf4, 0x02, 0x40, 0x20, 0x40, 0x80, 0x01, 0xff, 0x43, 0x9c, + 0x12, 0x88, 0x00, 0x00, 0x52, 0xa7, 0x56, 0x89, 0x00, 0x40, 0x0f, 0x3d, + 0x33, 0xc7, 0x03, 0x06, 0xef, 0x06, 0x80, 0x03, 0x07, 0xec, 0x05, 0x52, + 0x0c, 0x6d, 0x16, 0x34, 0x0b, 0x40, 0x77, 0x01, 0xff, 0xa1, 0x21, 0x42, + 0x12, 0x0b, 0x2c, 0xaa, 0x00, 0xe9, 0x2a, 0xaa, 0x80, 0x12, 0xef, 0x2f, + 0xaa, 0x80, 0x09, 0xf5, 0x2d, 0xaa, 0xc0, 0x00, 0xe5, 0x32, 0xaa, 0x40, + 0xe5, 0x2e, 0xaa, 0x40, 0xe9, 0x2b, 0xaa, 0x40, 0xe1, 0x29, 0xaa, 0x00, + 0xe9, 0x30, 0xaa, 0x00, 0xf5, 0x31, 0xaa, 0x40, 0xa4, 0x0c, 0x46, 0x56, + 0x85, 0x5c, 0xaa, 0x00, 0x4c, 0x0f, 0x96, 0x5f, 0xaa, 0x40, 0x44, 0x73, + 0x20, 0x5d, 0xaa, 0x00, 0x4b, 0x09, 0xa1, 0x5e, 0xaa, 0x40, 0xe1, 0x00, + 0xaa, 0x80, 0xa0, 0x02, 0xa2, 0x8d, 0x02, 0x02, 0x6d, 0x14, 0xfe, 0x01, + 0xa4, 0xeb, 0x01, 0xe5, 0x03, 0xaa, 0x00, 0x06, 0xf5, 0x2c, 0xb1, 0x01, + 0xa7, 0xa4, 0x01, 0x42, 0x22, 0x00, 0x28, 0xaa, 0x00, 0xe9, 0x01, 0xaa, + 0x00, 0xaa, 0x8d, 0x01, 0xab, 0x80, 0x01, 0x42, 0x74, 0x00, 0x24, 0xaa, + 0x00, 0xad, 0x6e, 0xae, 0x44, 0xef, 0x05, 0xaa, 0x00, 0xb0, 0x2e, 0x42, + 0x71, 0x00, 0x23, 0xaa, 0x00, 0xb3, 0x1c, 0xb4, 0x10, 0xf5, 0x02, 0xaa, + 0x00, 0x42, 0xf5, 0x0a, 0x25, 0xaa, 0x00, 0x42, 0xbc, 0x22, 0x22, 0xaa, + 0x40, 0xe1, 0x13, 0xaa, 0x00, 0x42, 0x22, 0x00, 0x14, 0xaa, 0x40, 0xe1, + 0x27, 0xaa, 0x00, 0x42, 0x40, 0x06, 0x26, 0xaa, 0x40, 0xe1, 0x1a, 0xaa, + 0x00, 0x42, 0x22, 0x00, 0x1c, 0xaa, 0x00, 0x42, 0xbb, 0x09, 0x1b, 0xaa, + 0x40, 0xe1, 0x18, 0xaa, 0x00, 0xa7, 0x18, 0xa8, 0x06, 0x42, 0xd6, 0x13, + 0x17, 0xaa, 0x40, 0xe1, 0x11, 0xaa, 0x00, 0x42, 0x56, 0x19, 0x12, 0xaa, + 0x00, 0x42, 0xd6, 0x13, 0x10, 0xaa, 0x40, 0xe1, 0x0b, 0xaa, 0x00, 0x42, + 0xd6, 0x13, 0x0a, 0xaa, 0x40, 0xe1, 0x20, 0xaa, 0x00, 0x42, 0xd6, 0x13, + 0x1f, 0xaa, 0x40, 0xe1, 0x06, 0xaa, 0x00, 0x42, 0x22, 0x00, 0x07, 0xaa, + 0x40, 0xe1, 0x0e, 0xaa, 0x00, 0x42, 0x22, 0x00, 0x0f, 0xaa, 0x40, 0xe1, + 0x08, 0xaa, 0x00, 0x42, 0x22, 0x00, 0x09, 0xaa, 0x40, 0x42, 0x6d, 0x14, + 0x44, 0xaa, 0x00, 0xe7, 0x41, 0xaa, 0x00, 0xeb, 0x40, 0xaa, 0x00, 0xec, + 0x4a, 0xaa, 0x00, 0xee, 0x46, 0xaa, 0x80, 0x16, 0xf0, 0x47, 0xaa, 0x00, + 0xf2, 0x49, 0xaa, 0x00, 0x42, 0xee, 0x00, 0x4b, 0xaa, 0x00, 0xf4, 0x45, + 0xaa, 0x00, 0xf9, 0x48, 0xaa, 0x40, 0xe7, 0x42, 0xaa, 0x40, 0xe1, 0x15, + 0xaa, 0x00, 0x42, 0xf0, 0x10, 0x19, 0xaa, 0x00, 0x42, 0x22, 0x00, 0x16, + 0xaa, 0x40, 0xe1, 0x0c, 0xaa, 0x00, 0x42, 0x22, 0x00, 0x0d, 0xaa, 0x40, + 0xe1, 0x1d, 0xaa, 0x00, 0x42, 0x16, 0x00, 0x21, 0xaa, 0x00, 0x42, 0x22, + 0x00, 0x1e, 0xaa, 0x40, 0xe9, 0x04, 0xaa, 0x40, 0x45, 0x12, 0x0b, 0x58, + 0xaa, 0x00, 0xa6, 0x2e, 0x44, 0xcf, 0x2a, 0x59, 0xaa, 0x00, 0x43, 0x0e, + 0x0b, 0x51, 0xaa, 0x00, 0xb3, 0x14, 0xb4, 0x06, 0x44, 0x43, 0x1e, 0x50, + 0xaa, 0x40, 0x44, 0x25, 0x01, 0x53, 0xaa, 0x00, 0x42, 0x15, 0x02, 0x52, + 0xaa, 0x40, 0x44, 0xc9, 0x1d, 0x57, 0xaa, 0x00, 0x42, 0x01, 0x26, 0x56, + 0xaa, 0x40, 0x43, 0xd2, 0x05, 0x55, 0xaa, 0x00, 0x43, 0xf6, 0x06, 0x54, + 0xaa, 0x40, 0x06, 0xf5, 0x2c, 0x18, 0x42, 0x74, 0x00, 0x35, 0xaa, 0x00, + 0x42, 0x71, 0x00, 0x34, 0xaa, 0x00, 0x42, 0xa9, 0x01, 0x36, 0xaa, 0x00, + 0x42, 0xbc, 0x22, 0x33, 0xaa, 0x40, 0xe8, 0x4d, 0xaa, 0x00, 0xed, 0x4c, + 0xaa, 0x00, 0x42, 0x1d, 0x01, 0x43, 0xaa, 0x40, 0x47, 0x33, 0xcf, 0x32, + 0x11, 0x01, 0xa4, 0xf8, 0x02, 0x07, 0xec, 0x05, 0x74, 0x47, 0x0e, 0xd3, + 0x34, 0x11, 0x01, 0x46, 0xd2, 0xcb, 0x31, 0x11, 0x01, 0x4d, 0xa6, 0x34, + 0x43, 0x11, 0x01, 0xb3, 0x43, 0xb6, 0x01, 0xff, 0x45, 0xe4, 0x23, 0x33, + 0x11, 0x01, 0x0a, 0x41, 0x77, 0x01, 0xff, 0xe1, 0x27, 0x11, 0x81, 0x24, + 0xe5, 0x2c, 0x11, 0x81, 0x1b, 0xe9, 0x28, 0x11, 0x81, 0x12, 0xef, 0x2e, + 0x11, 0x81, 0x09, 0xf5, 0x2a, 0x11, 0xc1, 0x00, 0xf5, 0x2b, 0x11, 0x41, + 0xe9, 0x30, 0x11, 0x41, 0xe9, 0x29, 0x11, 0x41, 0xe9, 0x46, 0x11, 0x41, + 0xe1, 0x45, 0x11, 0x01, 0xe9, 0x2d, 0x11, 0x01, 0xf5, 0x2f, 0x11, 0x41, + 0x4b, 0xf9, 0x26, 0x40, 0x11, 0x01, 0x04, 0x5b, 0x03, 0x01, 0xff, 0x48, + 0x3c, 0x16, 0x01, 0x11, 0x01, 0x4b, 0xd7, 0x23, 0x00, 0x11, 0x01, 0x47, + 0xea, 0x4b, 0x02, 0x11, 0x41, 0x42, 0x80, 0x12, 0x03, 0x11, 0x01, 0xa2, + 0xeb, 0x01, 0xa3, 0xdc, 0x01, 0xa4, 0xbf, 0x01, 0xe5, 0x06, 0x11, 0x01, + 0xa7, 0xac, 0x01, 0x43, 0x3b, 0x41, 0x26, 0x11, 0x01, 0xe9, 0x04, 0x11, + 0x01, 0xaa, 0x93, 0x01, 0xab, 0x84, 0x01, 0xac, 0x76, 0x43, 0x2f, 0x58, + 0x1f, 0x11, 0x01, 0xae, 0x56, 0xb0, 0x48, 0x43, 0x8f, 0x95, 0x22, 0x11, + 0x01, 0x43, 0xce, 0xdf, 0x25, 0x11, 0x01, 0xb4, 0x1f, 0xf5, 0x05, 0x11, + 0x01, 0x43, 0x0e, 0xec, 0x47, 0x11, 0x01, 0x43, 0x11, 0x8c, 0x24, 0x11, + 0x01, 0xb9, 0x01, 0xff, 0x42, 0x80, 0x12, 0x21, 0x11, 0x01, 0x43, 0xb1, + 0xb9, 0x20, 0x11, 0x41, 0x42, 0x80, 0x12, 0x16, 0x11, 0x01, 0x43, 0x3b, + 0x41, 0x17, 0x11, 0x01, 0xb4, 0x01, 0xff, 0x42, 0x80, 0x12, 0x11, 0x11, + 0x01, 0x43, 0x3b, 0x41, 0x12, 0x11, 0x41, 0x42, 0x80, 0x12, 0x1b, 0x11, + 0x01, 0x43, 0x3b, 0x41, 0x1c, 0x11, 0x41, 0x42, 0x80, 0x12, 0x1a, 0x11, + 0x01, 0x43, 0x99, 0x57, 0x0b, 0x11, 0x01, 0x43, 0x72, 0x48, 0x15, 0x11, + 0x01, 0x43, 0xb1, 0xb9, 0x10, 0x11, 0x41, 0x42, 0x80, 0x12, 0x23, 0x11, + 0x01, 0x43, 0x3b, 0x41, 0x44, 0x11, 0x41, 0x42, 0x80, 0x12, 0x07, 0x11, + 0x01, 0x43, 0x3b, 0x41, 0x08, 0x11, 0x41, 0x42, 0x80, 0x12, 0x0e, 0x11, + 0x01, 0x43, 0x3b, 0x41, 0x0f, 0x11, 0x41, 0x42, 0x80, 0x12, 0x09, 0x11, + 0x01, 0x43, 0x3b, 0x41, 0x0a, 0x11, 0x41, 0x42, 0x80, 0x12, 0x18, 0x11, + 0x01, 0xa4, 0x06, 0x43, 0x3b, 0x41, 0x19, 0x11, 0x41, 0x42, 0x80, 0x12, + 0x13, 0x11, 0x01, 0x43, 0x3b, 0x41, 0x14, 0x11, 0x41, 0x42, 0x80, 0x12, + 0x0c, 0x11, 0x01, 0x43, 0x3b, 0x41, 0x0d, 0x11, 0x41, 0x42, 0x80, 0x12, + 0x1d, 0x11, 0x01, 0x43, 0x3b, 0x41, 0x1e, 0x11, 0x41, 0x44, 0x73, 0x20, + 0x41, 0x11, 0x01, 0x05, 0xf0, 0x06, 0x06, 0x4b, 0x09, 0xa1, 0x42, 0x11, + 0x41, 0x45, 0x12, 0x0b, 0x3e, 0x11, 0x01, 0xa6, 0x2e, 0x44, 0xcf, 0x2a, + 0x3f, 0x11, 0x01, 0x43, 0x0e, 0x0b, 0x37, 0x11, 0x01, 0xb3, 0x14, 0xb4, + 0x06, 0x44, 0x43, 0x1e, 0x36, 0x11, 0x41, 0x44, 0x25, 0x01, 0x39, 0x11, + 0x01, 0x42, 0x15, 0x02, 0x38, 0x11, 0x41, 0x44, 0xc9, 0x1d, 0x3d, 0x11, + 0x01, 0x42, 0x01, 0x26, 0x3c, 0x11, 0x41, 0x43, 0xd2, 0x05, 0x3b, 0x11, + 0x01, 0x43, 0xf6, 0x06, 0x3a, 0x11, 0x41, 0x42, 0x5f, 0x01, 0xd3, 0x26, + 0x00, 0xf2, 0x91, 0xfa, 0x41, 0x02, 0x00, 0x00, 0x32, 0x4a, 0x8f, 0xad, + 0x48, 0xf5, 0x01, 0x02, 0x11, 0x00, 0x06, 0x43, 0xbb, 0x23, 0xb3, 0x26, + 0x40, 0x45, 0x59, 0x03, 0xa2, 0x00, 0x00, 0x02, 0x88, 0x00, 0x01, 0xff, + 0x4c, 0x3b, 0x8b, 0x04, 0x21, 0x00, 0x05, 0xed, 0x07, 0x01, 0xff, 0x48, + 0x75, 0x8a, 0x4e, 0xfe, 0x00, 0x48, 0x82, 0x8a, 0x4a, 0xfe, 0x40, 0x45, + 0x59, 0x03, 0xb5, 0x20, 0x00, 0x43, 0x2c, 0x0e, 0xb8, 0x00, 0x40, 0x44, + 0x79, 0xd5, 0x35, 0xf3, 0x01, 0xa4, 0xfb, 0x22, 0xac, 0xec, 0x22, 0xad, + 0xd6, 0x22, 0xae, 0xf4, 0x05, 0xb0, 0xe5, 0x05, 0xb2, 0x9a, 0x03, 0x44, + 0xbc, 0x01, 0xeb, 0x26, 0x00, 0xf4, 0x08, 0xf4, 0x81, 0xf6, 0x02, 0xb5, + 0x01, 0xff, 0x10, 0x46, 0x61, 0x06, 0x49, 0xc0, 0x04, 0x21, 0x26, 0x40, + 0x4d, 0x80, 0x81, 0x6f, 0x05, 0x01, 0x07, 0xec, 0x05, 0x01, 0xff, 0xa1, + 0xcf, 0x02, 0x43, 0xc0, 0x09, 0x31, 0x05, 0x01, 0xa3, 0x98, 0x02, 0xa4, + 0xfa, 0x01, 0xa5, 0xed, 0x01, 0x43, 0xb4, 0xdb, 0x54, 0x05, 0x01, 0xa7, + 0xd8, 0x01, 0x44, 0x39, 0xf0, 0x46, 0x05, 0x01, 0xa9, 0xbd, 0x01, 0xaa, + 0xae, 0x01, 0xab, 0x9f, 0x01, 0xac, 0x90, 0x01, 0x43, 0x76, 0xe8, 0x4c, + 0x05, 0x01, 0x44, 0x89, 0xf1, 0x4e, 0x05, 0x01, 0x42, 0x10, 0x00, 0x52, + 0x05, 0x01, 0xb0, 0x70, 0x02, 0x43, 0x14, 0x64, 0x43, 0x89, 0x0e, 0x59, + 0x05, 0x01, 0xb3, 0x44, 0xb4, 0x30, 0x44, 0x01, 0xf3, 0x5b, 0x05, 0x01, + 0x44, 0x35, 0xf3, 0x40, 0x05, 0x01, 0xb9, 0x16, 0xba, 0x01, 0xff, 0x43, + 0x35, 0x35, 0x35, 0x05, 0x01, 0xa8, 0x01, 0xff, 0xe1, 0x3b, 0x05, 0x01, + 0x42, 0x62, 0x01, 0x37, 0x05, 0x41, 0x43, 0x93, 0x33, 0x61, 0x05, 0x01, + 0x43, 0xb5, 0x23, 0x3a, 0x05, 0x41, 0x42, 0xbb, 0x01, 0x38, 0x05, 0x01, + 0x43, 0x5b, 0xf4, 0x5c, 0x05, 0x01, 0x43, 0x31, 0x53, 0x53, 0x05, 0x41, + 0x43, 0x34, 0xf4, 0x5a, 0x05, 0x01, 0xa8, 0x01, 0xff, 0xe1, 0x3d, 0x05, + 0x81, 0x06, 0x42, 0x58, 0x69, 0x5d, 0x05, 0x41, 0xeb, 0x50, 0x05, 0x41, + 0xf2, 0x4d, 0x05, 0x01, 0xf9, 0x47, 0x05, 0x41, 0x42, 0x92, 0x01, 0x57, + 0x05, 0x01, 0x43, 0x5b, 0xf4, 0x62, 0x05, 0x41, 0x42, 0x1a, 0x00, 0x3e, + 0x05, 0x01, 0x43, 0xec, 0x52, 0x45, 0x05, 0x41, 0x42, 0x17, 0x00, 0x44, + 0x05, 0x01, 0x42, 0x34, 0x3f, 0x63, 0x05, 0x41, 0x43, 0x5d, 0x80, 0x51, + 0x05, 0x01, 0x43, 0x52, 0xf4, 0x43, 0x05, 0x41, 0x43, 0xa6, 0x35, 0x3f, + 0x05, 0x01, 0x42, 0x9f, 0x05, 0x3c, 0x05, 0x01, 0x42, 0xa7, 0x01, 0x5e, + 0x05, 0x41, 0x44, 0x35, 0xf0, 0x58, 0x05, 0x01, 0x42, 0x29, 0x02, 0x32, + 0x05, 0x41, 0xe2, 0x34, 0x05, 0x01, 0x42, 0x03, 0x1d, 0x36, 0x05, 0x41, + 0x42, 0x8a, 0x00, 0x33, 0x05, 0x01, 0x43, 0xb8, 0x35, 0x41, 0x05, 0x01, + 0xba, 0x01, 0xff, 0x42, 0xed, 0x10, 0x55, 0x05, 0x01, 0x43, 0x31, 0x53, + 0x4f, 0x05, 0x41, 0xa1, 0x22, 0xa8, 0x0d, 0x02, 0xbc, 0x22, 0x01, 0xff, + 0xf7, 0x5f, 0x05, 0x01, 0xf9, 0x4b, 0x05, 0x41, 0xe1, 0x39, 0x05, 0x81, + 0x0a, 0xe9, 0x4a, 0x05, 0x01, 0x42, 0x58, 0x69, 0x49, 0x05, 0x41, 0xf4, + 0x56, 0x05, 0x41, 0xf2, 0x42, 0x05, 0x01, 0x42, 0x03, 0x1d, 0x60, 0x05, + 0x41, 0x42, 0xb8, 0x04, 0x30, 0x05, 0x01, 0x42, 0x0c, 0x00, 0x48, 0x05, + 0x41, 0x45, 0x0b, 0x08, 0x31, 0xf4, 0xc1, 0x00, 0x06, 0x50, 0x00, 0x01, + 0xff, 0x4c, 0xaf, 0x95, 0x39, 0xf6, 0x01, 0x49, 0x6a, 0xc1, 0x3c, 0xf6, + 0x41, 0x48, 0x90, 0xc2, 0xd0, 0x26, 0x00, 0x02, 0x06, 0x00, 0xaa, 0x02, + 0xa5, 0x96, 0x02, 0x0b, 0x4c, 0x8d, 0x29, 0xaf, 0x1d, 0xb0, 0x0f, 0xb2, + 0x01, 0xff, 0x4b, 0x29, 0x88, 0x0d, 0x00, 0x00, 0x42, 0x1b, 0x05, 0x55, + 0xf9, 0x41, 0x49, 0xe6, 0xb4, 0x8f, 0xf3, 0x01, 0x49, 0x73, 0xb8, 0x9a, + 0xfa, 0x41, 0xee, 0xc7, 0x02, 0x00, 0x4a, 0x1b, 0xb3, 0xa0, 0xf3, 0x41, + 0xe1, 0xa0, 0x02, 0x81, 0xdf, 0x01, 0xe2, 0xa9, 0x02, 0x01, 0x02, 0xe7, + 0x06, 0xca, 0x01, 0xe4, 0xa2, 0x02, 0x81, 0xc0, 0x01, 0xe5, 0xba, 0x02, + 0x81, 0xb6, 0x01, 0xe7, 0xc0, 0x02, 0x81, 0xac, 0x01, 0xe9, 0xb9, 0x02, + 0x81, 0xa2, 0x01, 0xeb, 0xbc, 0x02, 0x81, 0x98, 0x01, 0xec, 0xa3, 0x02, + 0x81, 0x89, 0x01, 0xed, 0xaa, 0x02, 0x81, 0x73, 0xee, 0xb5, 0x02, 0x81, + 0x62, 0xef, 0xab, 0x02, 0x01, 0xf0, 0xb7, 0x02, 0x81, 0x55, 0xf1, 0xa8, + 0x02, 0x01, 0xf2, 0xa5, 0x02, 0x81, 0x48, 0xf3, 0xb0, 0x02, 0x81, 0x2d, + 0xf4, 0xad, 0x02, 0x81, 0x1f, 0xf5, 0xb2, 0x02, 0x81, 0x04, 0xf8, 0xb4, + 0x02, 0x41, 0xf5, 0xbf, 0x02, 0xc1, 0x00, 0xf5, 0xa4, 0x02, 0xc1, 0x00, + 0xd2, 0xc8, 0x02, 0x01, 0xd3, 0xd0, 0x02, 0x01, 0xf5, 0xbb, 0x02, 0x41, + 0xf4, 0xc7, 0x02, 0xc1, 0x00, 0xd2, 0xb6, 0x02, 0x41, 0xe8, 0xae, 0x02, + 0x81, 0x0d, 0xf3, 0xb8, 0x02, 0x01, 0xf4, 0xc2, 0x02, 0xc1, 0x00, 0xd2, + 0xc3, 0x02, 0x41, 0xd2, 0xaf, 0x02, 0x41, 0xf2, 0xc9, 0x02, 0x41, 0xd2, + 0xa1, 0x02, 0x41, 0xe4, 0xbe, 0x02, 0x01, 0xe7, 0xc4, 0x02, 0x01, 0xee, + 0xb3, 0x02, 0x41, 0xe2, 0xca, 0x02, 0xc1, 0x00, 0xd2, 0xcb, 0x02, 0x01, + 0xd3, 0xcc, 0x02, 0x01, 0xd4, 0xcd, 0x02, 0x41, 0xe4, 0xa6, 0x02, 0xc1, + 0x00, 0xd2, 0xce, 0x02, 0x41, 0xd2, 0xbd, 0x02, 0x41, 0xe9, 0xc5, 0x02, + 0x41, 0xd2, 0xc1, 0x02, 0x41, 0xd2, 0xcf, 0x02, 0x41, 0xd2, 0xac, 0x02, + 0x41, 0x42, 0x59, 0xe2, 0xb1, 0x02, 0x01, 0x42, 0xf6, 0xf4, 0xc6, 0x02, + 0x41, 0xd2, 0xa7, 0x02, 0x41, 0x43, 0xf3, 0x01, 0x05, 0x21, 0x00, 0xf4, + 0x38, 0x20, 0xc0, 0x00, 0x50, 0x26, 0x60, 0x41, 0x20, 0x40, 0x48, 0x20, + 0xc6, 0xc3, 0xf5, 0x01, 0x45, 0x8f, 0x13, 0xc7, 0xf4, 0xc1, 0x00, 0x49, + 0x4d, 0xb4, 0xc2, 0xf5, 0x41, 0x46, 0x3a, 0xdd, 0x3f, 0x2e, 0x00, 0x46, + 0x8c, 0xdf, 0x51, 0x26, 0x40, 0x10, 0xc6, 0x60, 0x39, 0x02, 0x73, 0x02, + 0x18, 0xa4, 0x0c, 0x48, 0x98, 0xc8, 0x6b, 0xf9, 0x01, 0x42, 0x60, 0x51, + 0xf6, 0xf6, 0x41, 0x42, 0x68, 0x00, 0x6f, 0xf5, 0x01, 0xf9, 0x6c, 0xf3, + 0x41, 0xec, 0x18, 0x00, 0x80, 0x04, 0xf2, 0x4b, 0x26, 0x40, 0x80, 0x06, + 0x48, 0xa0, 0xc7, 0xd9, 0xf5, 0x41, 0x49, 0x91, 0x20, 0x94, 0x00, 0x00, + 0x43, 0x9a, 0x1b, 0x7f, 0x00, 0x4e, 0xe1, 0x0a, 0x14, 0x80, 0xf0, 0x1b, + 0xa2, 0x89, 0x1b, 0xe3, 0xa1, 0x14, 0x80, 0xe0, 0x13, 0xe5, 0x01, 0x14, + 0x80, 0xd0, 0x13, 0xe6, 0x5d, 0x15, 0x80, 0xb1, 0x12, 0x4c, 0xce, 0x28, + 0x1e, 0x14, 0x00, 0xa8, 0x9e, 0x12, 0xe9, 0x03, 0x14, 0x80, 0x90, 0x12, + 0xeb, 0x83, 0x14, 0x80, 0xba, 0x11, 0xec, 0xea, 0x14, 0x80, 0xca, 0x10, + 0xed, 0xbb, 0x14, 0x80, 0xe1, 0x0f, 0xee, 0xd0, 0x14, 0x80, 0xd6, 0x0c, + 0xef, 0x05, 0x14, 0x80, 0x89, 0x0c, 0xf0, 0x49, 0x14, 0x80, 0xb1, 0x0b, + 0xf1, 0x85, 0x15, 0x80, 0x87, 0x0b, 0xf2, 0x50, 0x15, 0x80, 0xa7, 0x0a, + 0xf3, 0x05, 0x15, 0x80, 0xf5, 0x07, 0xf4, 0x66, 0x14, 0x80, 0xe0, 0x05, + 0xb7, 0x9f, 0x01, 0xf9, 0x3e, 0x15, 0xc0, 0x00, 0x06, 0x45, 0x9d, 0x4e, + 0xe1, 0x2d, 0x15, 0x80, 0x3c, 0xe5, 0x26, 0x15, 0x00, 0xe9, 0x28, 0x15, + 0x80, 0x2f, 0xef, 0x2a, 0x15, 0x80, 0x22, 0xb7, 0x01, 0xff, 0xe1, 0x39, + 0x15, 0x80, 0x16, 0xe5, 0x2f, 0x15, 0x00, 0xe9, 0x31, 0x15, 0x80, 0x09, + 0xef, 0x35, 0x15, 0xc0, 0x00, 0xef, 0x37, 0x15, 0x40, 0xe9, 0x33, 0x15, + 0x40, 0xe1, 0x3b, 0x15, 0x40, 0xef, 0x2b, 0x15, 0x00, 0xf9, 0xc3, 0x18, + 0x40, 0xe9, 0x29, 0x15, 0x40, 0xe1, 0x2e, 0x15, 0x80, 0x04, 0xf9, 0xc4, + 0x18, 0x40, 0xe9, 0x27, 0x15, 0x40, 0x43, 0x5a, 0xc5, 0x8f, 0x14, 0x00, + 0x43, 0x32, 0xe3, 0x71, 0x14, 0x00, 0x43, 0xd0, 0x1c, 0xd9, 0x14, 0x00, + 0x43, 0xaf, 0x1b, 0xa9, 0x14, 0x00, 0x43, 0x7c, 0x16, 0xc6, 0x14, 0x00, + 0x42, 0xcd, 0x02, 0x07, 0x14, 0x00, 0xb0, 0x16, 0x43, 0x41, 0xe3, 0xf3, + 0x14, 0x00, 0x43, 0xf4, 0x2f, 0x52, 0x14, 0x00, 0xf7, 0x1d, 0x14, 0x00, + 0x43, 0x02, 0x54, 0x2c, 0x15, 0x40, 0x42, 0xcd, 0x02, 0x35, 0x14, 0x00, + 0x43, 0x11, 0x8c, 0x48, 0x14, 0x40, 0xe1, 0x17, 0x14, 0x80, 0xb0, 0x04, + 0xe5, 0x0c, 0x14, 0x80, 0x59, 0xe9, 0x0e, 0x14, 0x80, 0x50, 0xef, 0x12, + 0x14, 0xc0, 0x00, 0xef, 0x14, 0x14, 0xc0, 0x00, 0x08, 0x38, 0xc5, 0x01, + 0xff, 0x48, 0x28, 0xc6, 0x7e, 0x16, 0x00, 0x42, 0x53, 0x00, 0x9f, 0x15, + 0xc0, 0x00, 0xe1, 0x9e, 0x15, 0x00, 0xe5, 0x9b, 0x15, 0x00, 0xe9, 0x9c, + 0x15, 0x00, 0xef, 0x9d, 0x15, 0x00, 0xb7, 0x01, 0xff, 0xe1, 0x7c, 0x16, + 0x80, 0x18, 0x42, 0x27, 0x01, 0x77, 0x16, 0x00, 0xe9, 0x78, 0x16, 0x80, + 0x09, 0xef, 0x7a, 0x16, 0xc0, 0x00, 0xef, 0x7b, 0x16, 0x40, 0xe9, 0x79, + 0x16, 0x40, 0xe1, 0x7d, 0x16, 0x40, 0xe9, 0x10, 0x14, 0x40, 0x02, 0x60, + 0x01, 0x01, 0xff, 0x06, 0x45, 0x9d, 0x06, 0x45, 0xab, 0xc3, 0xdd, 0x18, + 0x40, 0x02, 0x71, 0xef, 0x9f, 0x03, 0x44, 0xd9, 0xef, 0x5c, 0x15, 0x00, + 0x02, 0x3c, 0x0b, 0xf5, 0x02, 0xec, 0xeb, 0x14, 0x80, 0xb7, 0x02, 0xed, + 0xbc, 0x14, 0x80, 0x8f, 0x02, 0x02, 0xa8, 0x01, 0xfd, 0x01, 0xf0, 0x4a, + 0x14, 0x80, 0xd5, 0x01, 0xf2, 0x51, 0x15, 0x80, 0xb9, 0x01, 0xb3, 0x72, + 0xb4, 0x48, 0xb7, 0x27, 0xf9, 0x40, 0x15, 0xc0, 0x00, 0xb7, 0x01, 0xff, + 0xe1, 0x3a, 0x15, 0x80, 0x16, 0xe5, 0x30, 0x15, 0x00, 0xe9, 0x32, 0x15, + 0x80, 0x09, 0xef, 0x36, 0x15, 0xc0, 0x00, 0xef, 0x38, 0x15, 0x40, 0xe9, + 0x34, 0x15, 0x40, 0xe1, 0x3c, 0x15, 0x40, 0xe1, 0x18, 0x14, 0x80, 0x16, + 0xe5, 0x0d, 0x14, 0x00, 0xe9, 0x0f, 0x14, 0x80, 0x09, 0xef, 0x13, 0x14, + 0xc0, 0x00, 0xef, 0x15, 0x14, 0x40, 0xe9, 0x11, 0x14, 0x40, 0xe1, 0x1a, + 0x14, 0x40, 0x44, 0x69, 0xf0, 0x69, 0x15, 0x00, 0xb7, 0x01, 0xff, 0xe1, + 0x62, 0x14, 0x80, 0x16, 0xe5, 0x58, 0x14, 0x00, 0xe9, 0x5a, 0x14, 0x80, + 0x09, 0xef, 0x5e, 0x14, 0xc0, 0x00, 0xef, 0x60, 0x14, 0x40, 0xe9, 0x5c, + 0x14, 0x40, 0xe1, 0x64, 0x14, 0x40, 0x02, 0xbd, 0x1a, 0x22, 0xb7, 0x01, + 0xff, 0xe1, 0x01, 0x15, 0x80, 0x16, 0xe5, 0xf7, 0x14, 0x00, 0xe9, 0xf9, + 0x14, 0x80, 0x09, 0xef, 0xfd, 0x14, 0xc0, 0x00, 0xef, 0xff, 0x14, 0x40, + 0xe9, 0xfb, 0x14, 0x40, 0xe1, 0x03, 0x15, 0x40, 0xe1, 0x22, 0x15, 0x80, + 0x16, 0xe5, 0x18, 0x15, 0x00, 0xe9, 0x1a, 0x15, 0x80, 0x09, 0xef, 0x1e, + 0x15, 0xc0, 0x00, 0xef, 0x20, 0x15, 0x40, 0xe9, 0x1c, 0x15, 0x40, 0xe1, + 0x24, 0x15, 0x40, 0xe1, 0x8d, 0x15, 0x00, 0xe5, 0x8a, 0x15, 0x00, 0xe9, + 0x8b, 0x15, 0x00, 0xef, 0x8c, 0x15, 0x00, 0x43, 0x11, 0x8c, 0x4f, 0x15, + 0x40, 0xb7, 0x01, 0xff, 0xe1, 0x45, 0x14, 0x80, 0x16, 0xe5, 0x3b, 0x14, + 0x00, 0xe9, 0x3d, 0x14, 0x80, 0x09, 0xef, 0x41, 0x14, 0xc0, 0x00, 0xef, + 0x43, 0x14, 0x40, 0xe9, 0x3f, 0x14, 0x40, 0xe1, 0x47, 0x14, 0x40, 0xe1, + 0xcc, 0x14, 0x80, 0x04, 0xe5, 0xca, 0x14, 0x40, 0xe1, 0xce, 0x14, 0x40, + 0xb7, 0x01, 0xff, 0xe1, 0xb7, 0x14, 0x80, 0x16, 0xe5, 0xad, 0x14, 0x00, + 0xe9, 0xaf, 0x14, 0x80, 0x09, 0xef, 0xb3, 0x14, 0xc0, 0x00, 0xef, 0xb5, + 0x14, 0x40, 0xe9, 0xb1, 0x14, 0x40, 0xe1, 0xb9, 0x14, 0x40, 0xe1, 0x4d, + 0x15, 0x80, 0x2f, 0xe5, 0x44, 0x15, 0x00, 0xef, 0x4a, 0x15, 0x80, 0x22, + 0xb7, 0x01, 0xff, 0xe1, 0xe7, 0x14, 0x80, 0x16, 0xe5, 0xdd, 0x14, 0x00, + 0xe9, 0xdf, 0x14, 0x80, 0x09, 0xef, 0xe3, 0x14, 0xc0, 0x00, 0xef, 0xe5, + 0x14, 0x40, 0xe9, 0xe1, 0x14, 0x40, 0xe1, 0xe9, 0x14, 0x40, 0xef, 0xe1, + 0x18, 0x40, 0xe1, 0xe2, 0x18, 0x40, 0xe1, 0x7f, 0x14, 0x80, 0x16, 0xe5, + 0x75, 0x14, 0x00, 0xe9, 0x77, 0x14, 0x80, 0x09, 0xef, 0x7b, 0x14, 0xc0, + 0x00, 0xef, 0x7d, 0x14, 0x40, 0xe9, 0x79, 0x14, 0x40, 0xe1, 0x81, 0x14, + 0x40, 0xe1, 0x9d, 0x14, 0x80, 0x16, 0xe5, 0x93, 0x14, 0x00, 0xe9, 0x95, + 0x14, 0x80, 0x09, 0xef, 0x99, 0x14, 0xc0, 0x00, 0xef, 0x9b, 0x14, 0x40, + 0xe9, 0x97, 0x14, 0x40, 0xe1, 0x9f, 0x14, 0x40, 0xe1, 0x19, 0x14, 0x00, + 0xf9, 0xb3, 0x18, 0x40, 0xe1, 0x55, 0x14, 0x80, 0xfc, 0x01, 0xe5, 0x4c, + 0x14, 0x00, 0xe8, 0x6a, 0x15, 0x80, 0x9d, 0x01, 0xe9, 0x4e, 0x14, 0x80, + 0x93, 0x01, 0x02, 0x2a, 0x09, 0x74, 0xef, 0x50, 0x14, 0x80, 0x6b, 0xb4, + 0x34, 0xb7, 0x13, 0xb9, 0x01, 0xff, 0xe1, 0x73, 0x15, 0x00, 0xe5, 0x70, + 0x15, 0x00, 0xe9, 0x71, 0x15, 0x00, 0xef, 0x72, 0x15, 0x40, 0xe1, 0x61, + 0x14, 0x80, 0x16, 0xe5, 0x57, 0x14, 0x00, 0xe9, 0x59, 0x14, 0x80, 0x09, + 0xef, 0x5d, 0x14, 0xc0, 0x00, 0xef, 0x5f, 0x14, 0x40, 0xe9, 0x5b, 0x14, + 0x40, 0xe1, 0x63, 0x14, 0x40, 0xe1, 0x6a, 0x14, 0x00, 0xe5, 0x67, 0x14, + 0x00, 0xe8, 0x6f, 0x15, 0x80, 0x08, 0xe9, 0x68, 0x14, 0x00, 0xef, 0x69, + 0x14, 0x40, 0xe1, 0x6e, 0x15, 0x80, 0x17, 0xe5, 0x6b, 0x15, 0x00, 0xe9, + 0x6c, 0x15, 0x00, 0xef, 0x6d, 0x15, 0x80, 0x06, 0x42, 0x15, 0x01, 0xe5, + 0x18, 0x40, 0xef, 0xe6, 0x18, 0x40, 0xe1, 0xe7, 0x18, 0x40, 0xef, 0x51, + 0x14, 0x40, 0xe1, 0x89, 0x15, 0x00, 0xe5, 0x86, 0x15, 0x00, 0xe9, 0x87, + 0x15, 0x00, 0xef, 0x88, 0x15, 0x80, 0x06, 0x42, 0x15, 0x01, 0xe8, 0x18, + 0x40, 0xef, 0xe9, 0x18, 0x40, 0xe9, 0x4f, 0x14, 0x40, 0x48, 0xb8, 0xc2, + 0xae, 0x15, 0x80, 0x2f, 0xe1, 0x66, 0x15, 0x80, 0x26, 0xe5, 0x5e, 0x15, + 0x00, 0xe9, 0x60, 0x15, 0x80, 0x19, 0xef, 0x64, 0x15, 0x80, 0x10, 0xb7, + 0x01, 0xff, 0xe1, 0xe4, 0x18, 0x80, 0x04, 0xe5, 0xe3, 0x18, 0x40, 0xe1, + 0x68, 0x15, 0x40, 0xef, 0x65, 0x15, 0x40, 0xe9, 0x62, 0x15, 0x40, 0xe1, + 0x67, 0x15, 0x40, 0xe1, 0xac, 0x15, 0x80, 0x16, 0xe5, 0xa7, 0x15, 0x00, + 0xe9, 0xa8, 0x15, 0x80, 0x09, 0xef, 0xaa, 0x15, 0xc0, 0x00, 0xef, 0xab, + 0x15, 0x40, 0xe9, 0xa9, 0x15, 0x40, 0xe1, 0xad, 0x15, 0x40, 0xe1, 0x56, + 0x14, 0x80, 0x04, 0xf9, 0xb7, 0x18, 0x40, 0xe9, 0x4d, 0x14, 0x40, 0xe1, + 0xf4, 0x14, 0x80, 0xbe, 0x01, 0xe5, 0xed, 0x14, 0x00, 0xe8, 0x25, 0x15, + 0x80, 0x68, 0xe9, 0xef, 0x14, 0x80, 0x5f, 0xef, 0xf1, 0x14, 0x80, 0x36, + 0xb0, 0x24, 0xf7, 0x07, 0x15, 0xc0, 0x00, 0xe1, 0x00, 0x15, 0x80, 0x16, + 0xe5, 0xf6, 0x14, 0x00, 0xe9, 0xf8, 0x14, 0x80, 0x09, 0xef, 0xfc, 0x14, + 0xc0, 0x00, 0xef, 0xfe, 0x14, 0x40, 0xe9, 0xfa, 0x14, 0x40, 0xe1, 0x02, + 0x15, 0x40, 0xe1, 0xbf, 0x1a, 0x01, 0xe5, 0xbc, 0x1a, 0x01, 0xe9, 0xbd, + 0x1a, 0x01, 0xef, 0xbe, 0x1a, 0x41, 0xef, 0xf2, 0x14, 0x00, 0x0c, 0xab, + 0x96, 0x04, 0xf9, 0xbe, 0x18, 0x40, 0x42, 0x18, 0x0a, 0x88, 0x14, 0x00, + 0x42, 0x4e, 0x00, 0x85, 0x14, 0x00, 0x42, 0xda, 0x2c, 0x86, 0x14, 0x00, + 0x42, 0xfd, 0x28, 0x87, 0x14, 0x40, 0xe9, 0xf0, 0x14, 0x40, 0xe1, 0x15, + 0x15, 0x80, 0x40, 0xe5, 0x10, 0x15, 0x00, 0xe9, 0x11, 0x15, 0x80, 0x33, + 0xef, 0x13, 0x15, 0x80, 0x26, 0xb7, 0x01, 0xff, 0xe1, 0x21, 0x15, 0x80, + 0x1a, 0xe5, 0x17, 0x15, 0x00, 0xe9, 0x19, 0x15, 0x80, 0x0d, 0xef, 0x1d, + 0x15, 0xc0, 0x00, 0xef, 0x1f, 0x15, 0x00, 0xf9, 0xc2, 0x18, 0x40, 0xe9, + 0x1b, 0x15, 0x40, 0xe1, 0x23, 0x15, 0x40, 0xef, 0x14, 0x15, 0x00, 0xf9, + 0xc0, 0x18, 0x40, 0xe9, 0x12, 0x15, 0x40, 0xe1, 0x16, 0x15, 0x00, 0xf9, + 0xc1, 0x18, 0x40, 0xe1, 0xf5, 0x14, 0x80, 0x5f, 0xf9, 0xbf, 0x18, 0xc0, + 0x00, 0x04, 0xa9, 0xf0, 0x01, 0xff, 0xa8, 0x3e, 0xaa, 0x2f, 0xed, 0xbf, + 0x14, 0x00, 0x02, 0xa4, 0x02, 0x0c, 0x42, 0x53, 0x00, 0xa2, 0x14, 0x00, + 0x42, 0x7e, 0x1a, 0x41, 0x15, 0x40, 0xe1, 0x9a, 0x15, 0x00, 0xe5, 0x97, + 0x15, 0x00, 0xe9, 0x98, 0x15, 0x00, 0xef, 0x99, 0x15, 0x80, 0x06, 0x42, + 0x15, 0x01, 0xea, 0x18, 0x40, 0xef, 0xeb, 0x18, 0x40, 0xe9, 0x1a, 0x16, + 0x00, 0xf5, 0x15, 0x16, 0xc0, 0x00, 0xf5, 0xf1, 0x18, 0x40, 0xe1, 0xc3, + 0x15, 0x00, 0xe5, 0xc0, 0x15, 0x00, 0xe9, 0xc1, 0x15, 0x00, 0xef, 0xc2, + 0x15, 0xc0, 0x00, 0xef, 0xec, 0x18, 0x40, 0xe9, 0xee, 0x14, 0x40, 0x07, + 0xb9, 0xcd, 0x4c, 0xe1, 0x4b, 0x15, 0x80, 0x3a, 0xe5, 0x42, 0x15, 0x00, + 0xe9, 0x46, 0x15, 0x80, 0x2d, 0xef, 0x48, 0x15, 0x80, 0x24, 0xb7, 0x01, + 0xff, 0xe1, 0xd3, 0x18, 0x80, 0x18, 0x42, 0x27, 0x01, 0xce, 0x18, 0x00, + 0xe9, 0xcf, 0x18, 0x80, 0x09, 0xef, 0xd1, 0x18, 0xc0, 0x00, 0xef, 0xd2, + 0x18, 0x40, 0xe9, 0xd0, 0x18, 0x40, 0xe1, 0x4e, 0x15, 0x40, 0xef, 0x49, + 0x15, 0x40, 0xe9, 0x47, 0x15, 0x40, 0xe1, 0x4c, 0x15, 0x80, 0x04, 0xf9, + 0xc5, 0x18, 0x40, 0xe9, 0x45, 0x15, 0x40, 0xe5, 0x43, 0x15, 0x00, 0x42, + 0x15, 0x01, 0xe0, 0x18, 0x40, 0xe1, 0x83, 0x15, 0x80, 0x12, 0xe9, 0x7f, + 0x15, 0x80, 0x09, 0xef, 0x81, 0x15, 0xc0, 0x00, 0xef, 0x82, 0x15, 0x40, + 0xe9, 0x80, 0x15, 0x40, 0xe1, 0x84, 0x15, 0x80, 0x04, 0xe9, 0x6f, 0x16, + 0x40, 0xe9, 0x7e, 0x15, 0x40, 0xe1, 0x38, 0x14, 0x80, 0x40, 0xe5, 0x2f, + 0x14, 0x00, 0xe9, 0x31, 0x14, 0x80, 0x33, 0xef, 0x33, 0x14, 0x80, 0x26, + 0xb7, 0x01, 0xff, 0xe1, 0x44, 0x14, 0x80, 0x1a, 0xe5, 0x3a, 0x14, 0x00, + 0xe9, 0x3c, 0x14, 0x80, 0x0d, 0xef, 0x40, 0x14, 0xc0, 0x00, 0xef, 0x42, + 0x14, 0x00, 0xf9, 0xb6, 0x18, 0x40, 0xe9, 0x3e, 0x14, 0x40, 0xe1, 0x46, + 0x14, 0x40, 0xef, 0x34, 0x14, 0x00, 0xf9, 0xb4, 0x18, 0x40, 0xe9, 0x32, + 0x14, 0x40, 0xe1, 0x39, 0x14, 0x80, 0x04, 0xf9, 0xb5, 0x18, 0x40, 0xe9, + 0x30, 0x14, 0x40, 0x07, 0x43, 0xd2, 0x0c, 0xee, 0x2d, 0x14, 0x00, 0xef, + 0x06, 0x14, 0x00, 0xf9, 0xb0, 0x18, 0x40, 0xe3, 0xd7, 0x18, 0x00, 0xeb, + 0xd6, 0x18, 0x00, 0xed, 0xd8, 0x18, 0x00, 0xee, 0xd9, 0x18, 0x80, 0x11, + 0xf0, 0xd4, 0x18, 0x00, 0xf3, 0xda, 0x18, 0x80, 0x04, 0xf4, 0xd5, 0x18, + 0x40, 0xe8, 0xdb, 0x18, 0x40, 0xb7, 0x01, 0xff, 0xe9, 0xc7, 0x18, 0x80, + 0x09, 0xef, 0xcb, 0x18, 0xc0, 0x00, 0xef, 0xcd, 0x18, 0x40, 0xe9, 0xc9, + 0x18, 0x40, 0x08, 0xb8, 0xc2, 0xf3, 0x02, 0xe1, 0xc7, 0x14, 0x80, 0xbd, + 0x01, 0xe5, 0xc0, 0x14, 0x00, 0xe7, 0x95, 0x15, 0x80, 0x8f, 0x01, 0xe8, + 0xd2, 0x14, 0x00, 0xe9, 0xc2, 0x14, 0x80, 0x81, 0x01, 0x42, 0x1d, 0x01, + 0x96, 0x15, 0x80, 0x5f, 0xef, 0xc4, 0x14, 0x80, 0x52, 0x04, 0xd9, 0xf2, + 0x22, 0xb7, 0x01, 0xff, 0xe1, 0xcb, 0x14, 0x80, 0x16, 0xe5, 0xc9, 0x14, + 0x00, 0xe9, 0xc6, 0x18, 0x80, 0x09, 0xef, 0xca, 0x18, 0xc0, 0x00, 0xef, + 0xcc, 0x18, 0x40, 0xe9, 0xc8, 0x18, 0x40, 0xe1, 0xcd, 0x14, 0x40, 0x44, + 0x85, 0xf0, 0x7b, 0x15, 0x80, 0x06, 0x44, 0xfe, 0x50, 0x7c, 0x15, 0x40, + 0xe1, 0x79, 0x15, 0x80, 0x16, 0xe5, 0x74, 0x15, 0x00, 0xe9, 0x75, 0x15, + 0x80, 0x09, 0xef, 0x77, 0x15, 0xc0, 0x00, 0xef, 0x78, 0x15, 0x40, 0xe9, + 0x76, 0x15, 0x40, 0xe1, 0x7a, 0x15, 0x40, 0xef, 0xc5, 0x14, 0x00, 0xf9, + 0xbb, 0x18, 0x40, 0xe1, 0x75, 0x16, 0x80, 0x12, 0xe9, 0x71, 0x16, 0x80, + 0x09, 0xef, 0x73, 0x16, 0xc0, 0x00, 0xef, 0x74, 0x16, 0x40, 0xe9, 0x72, + 0x16, 0x40, 0xe1, 0x76, 0x16, 0x40, 0xe9, 0xc3, 0x14, 0x40, 0xe1, 0x93, + 0x15, 0x80, 0x12, 0xe9, 0x8f, 0x15, 0x80, 0x09, 0xef, 0x91, 0x15, 0xc0, + 0x00, 0xef, 0x92, 0x15, 0x40, 0xe9, 0x90, 0x15, 0x40, 0xe1, 0x94, 0x15, + 0x80, 0x04, 0xe9, 0x70, 0x16, 0x40, 0xe9, 0x8e, 0x15, 0x40, 0xe1, 0xc8, + 0x14, 0x80, 0xa6, 0x01, 0x06, 0xec, 0xdf, 0x45, 0x07, 0x9c, 0xd6, 0x04, + 0xf9, 0xbc, 0x18, 0x40, 0xa8, 0x20, 0x03, 0x7f, 0x5d, 0x01, 0xff, 0xe1, + 0xba, 0x1a, 0x81, 0x12, 0xe9, 0xb6, 0x1a, 0x81, 0x09, 0xef, 0xb8, 0x1a, + 0xc1, 0x00, 0xef, 0xb9, 0x1a, 0x41, 0xe9, 0xb7, 0x1a, 0x41, 0xe1, 0xbb, + 0x1a, 0x41, 0xe1, 0xb4, 0x1a, 0x81, 0x12, 0xe9, 0xb0, 0x1a, 0x81, 0x09, + 0xef, 0xb2, 0x1a, 0xc1, 0x00, 0xef, 0xb3, 0x1a, 0x41, 0xe9, 0xb1, 0x1a, + 0x41, 0xe1, 0xb5, 0x1a, 0x41, 0x44, 0x71, 0xef, 0xa0, 0x14, 0x00, 0x44, + 0xf5, 0xf0, 0x82, 0x14, 0x00, 0x44, 0x51, 0xf1, 0xba, 0x14, 0x00, 0x44, + 0xad, 0xf1, 0xcf, 0x14, 0x00, 0xb3, 0x1a, 0x44, 0x30, 0xec, 0x65, 0x14, + 0x00, 0xb7, 0x06, 0x44, 0x51, 0xf3, 0x3d, 0x15, 0x40, 0x42, 0x80, 0x12, + 0x1b, 0x14, 0x00, 0x42, 0xcd, 0x02, 0x16, 0x14, 0x40, 0x42, 0x03, 0x20, + 0x0b, 0x15, 0x00, 0x43, 0x71, 0xef, 0x0f, 0x15, 0x00, 0x42, 0x3c, 0x0b, + 0x0a, 0x15, 0x80, 0x12, 0x43, 0x51, 0x02, 0x0c, 0x15, 0x00, 0x43, 0xed, + 0x01, 0x0d, 0x15, 0x00, 0x43, 0x11, 0x8c, 0x04, 0x15, 0x40, 0xe1, 0x0e, + 0x15, 0x40, 0xe9, 0xc1, 0x14, 0x40, 0xe5, 0x5f, 0x15, 0x00, 0xe9, 0x61, + 0x15, 0xc0, 0x00, 0xe9, 0x63, 0x15, 0x40, 0xe1, 0xaa, 0x14, 0x80, 0x51, + 0xe5, 0xa3, 0x14, 0x80, 0x3f, 0xe8, 0xbd, 0x14, 0x00, 0xe9, 0xa5, 0x14, + 0x80, 0x32, 0xef, 0xa7, 0x14, 0x80, 0x22, 0xb7, 0x01, 0xff, 0xe1, 0xb6, + 0x14, 0x80, 0x16, 0xe5, 0xac, 0x14, 0x00, 0xe9, 0xae, 0x14, 0x80, 0x09, + 0xef, 0xb2, 0x14, 0xc0, 0x00, 0xef, 0xb4, 0x14, 0x40, 0xe9, 0xb0, 0x14, + 0x40, 0xe1, 0xb8, 0x14, 0x40, 0xef, 0xa8, 0x14, 0xc0, 0x00, 0x4a, 0xd7, + 0xb0, 0x09, 0x15, 0x40, 0xe9, 0xa6, 0x14, 0x40, 0x05, 0x4e, 0x33, 0x01, + 0xff, 0xec, 0xec, 0x14, 0x00, 0xf2, 0x52, 0x15, 0x40, 0xe1, 0xab, 0x14, + 0x80, 0x04, 0xf9, 0xba, 0x18, 0x40, 0xe9, 0xa4, 0x14, 0x40, 0xe1, 0xda, + 0x14, 0x80, 0x58, 0xe5, 0xd3, 0x14, 0x00, 0xe8, 0xa6, 0x15, 0x80, 0x34, + 0xe9, 0xd5, 0x14, 0x80, 0x2b, 0xef, 0xd7, 0x14, 0x80, 0x22, 0xb7, 0x01, + 0xff, 0xe1, 0xe6, 0x14, 0x80, 0x16, 0xe5, 0xdc, 0x14, 0x00, 0xe9, 0xde, + 0x14, 0x80, 0x09, 0xef, 0xe2, 0x14, 0xc0, 0x00, 0xef, 0xe4, 0x14, 0x40, + 0xe9, 0xe0, 0x14, 0x40, 0xe1, 0xe8, 0x14, 0x40, 0xef, 0xd8, 0x14, 0x40, + 0xe9, 0xd6, 0x14, 0x40, 0xe1, 0xa4, 0x15, 0x80, 0x12, 0xe9, 0xa0, 0x15, + 0x80, 0x09, 0xef, 0xa2, 0x15, 0xc0, 0x00, 0xef, 0xa3, 0x15, 0x40, 0xe9, + 0xa1, 0x15, 0x40, 0xe1, 0xa5, 0x15, 0x40, 0xe1, 0xdb, 0x14, 0x80, 0x04, + 0xf9, 0xbd, 0x18, 0x40, 0xe9, 0xd4, 0x14, 0x40, 0xe1, 0x72, 0x14, 0x80, + 0x3e, 0xe5, 0x6b, 0x14, 0x00, 0xe9, 0x6d, 0x14, 0x80, 0x31, 0xef, 0x6f, + 0x14, 0x80, 0x28, 0xf7, 0x84, 0x14, 0xc0, 0x00, 0xe1, 0x7e, 0x14, 0x80, + 0x16, 0xe5, 0x74, 0x14, 0x00, 0xe9, 0x76, 0x14, 0x80, 0x09, 0xef, 0x7a, + 0x14, 0xc0, 0x00, 0xef, 0x7c, 0x14, 0x40, 0xe9, 0x78, 0x14, 0x40, 0xe1, + 0x80, 0x14, 0x00, 0xf9, 0xb9, 0x18, 0x40, 0xef, 0x70, 0x14, 0x40, 0xe9, + 0x6e, 0x14, 0x40, 0xe1, 0x73, 0x14, 0x80, 0x04, 0xf9, 0xb8, 0x18, 0x40, + 0xe9, 0x6c, 0x14, 0x40, 0xe9, 0x04, 0x14, 0x00, 0xee, 0x2c, 0x14, 0x40, + 0xeb, 0x7d, 0x15, 0x00, 0x45, 0x97, 0x63, 0x00, 0x14, 0x40, 0xe1, 0x59, + 0x15, 0x80, 0x8a, 0x01, 0xe5, 0x53, 0x15, 0x00, 0xe9, 0x55, 0x15, 0x80, + 0x15, 0xef, 0x57, 0x15, 0x80, 0x0c, 0x48, 0x82, 0x16, 0x6e, 0x16, 0x00, + 0x43, 0x11, 0x8c, 0x5b, 0x15, 0x40, 0xef, 0x58, 0x15, 0x40, 0xe9, 0x56, + 0x15, 0x00, 0x04, 0x66, 0x06, 0x01, 0xff, 0x45, 0xf9, 0x38, 0x1f, 0x14, + 0x00, 0x50, 0x26, 0x61, 0x21, 0x14, 0x00, 0x02, 0x3b, 0x01, 0x3d, 0x45, + 0x15, 0x23, 0x20, 0x14, 0x00, 0x4a, 0xe6, 0x45, 0x27, 0x14, 0x00, 0x44, + 0x58, 0x28, 0x29, 0x14, 0x00, 0xb2, 0x14, 0xb3, 0x06, 0x4d, 0x52, 0x89, + 0x22, 0x14, 0x40, 0x56, 0x45, 0x34, 0x28, 0x14, 0x00, 0x49, 0xdc, 0xbb, + 0xde, 0x18, 0x40, 0x49, 0xd0, 0xb5, 0xdf, 0x18, 0x00, 0xa9, 0x01, 0xff, + 0x4d, 0x86, 0x72, 0x23, 0x14, 0x00, 0x42, 0x1d, 0x01, 0x24, 0x14, 0x40, + 0x05, 0x3d, 0x01, 0x06, 0x47, 0xf2, 0x38, 0x2a, 0x14, 0x40, 0x45, 0xf9, + 0x38, 0x25, 0x14, 0x00, 0x56, 0x47, 0x37, 0x26, 0x14, 0x40, 0xe1, 0x5a, + 0x15, 0xc0, 0x00, 0xe9, 0x54, 0x15, 0x40, 0x48, 0xa8, 0xc3, 0xdc, 0x18, + 0x00, 0xee, 0x2b, 0x14, 0x40, 0xe1, 0x90, 0x14, 0x80, 0x3e, 0xe5, 0x89, + 0x14, 0x00, 0x47, 0x94, 0xd1, 0x6d, 0x16, 0x00, 0xe9, 0x8b, 0x14, 0x80, + 0x2b, 0xef, 0x8d, 0x14, 0x80, 0x22, 0xb7, 0x01, 0xff, 0xe1, 0x9c, 0x14, + 0x80, 0x16, 0xe5, 0x92, 0x14, 0x00, 0xe9, 0x94, 0x14, 0x80, 0x09, 0xef, + 0x98, 0x14, 0xc0, 0x00, 0xef, 0x9a, 0x14, 0x40, 0xe9, 0x96, 0x14, 0x40, + 0xe1, 0x9e, 0x14, 0x40, 0xef, 0x8e, 0x14, 0x40, 0xe9, 0x8c, 0x14, 0x40, + 0xe1, 0x91, 0x14, 0x80, 0xd6, 0x06, 0x06, 0x26, 0x6a, 0x01, 0xff, 0x02, + 0x6d, 0x14, 0xb3, 0x06, 0xa4, 0xe0, 0x05, 0x42, 0x27, 0x01, 0x08, 0x14, + 0x00, 0xa7, 0x93, 0x05, 0xe8, 0x4b, 0x14, 0x80, 0xe7, 0x04, 0xe9, 0x09, + 0x14, 0x80, 0xdb, 0x04, 0xaa, 0x9e, 0x04, 0xab, 0xe2, 0x03, 0xac, 0xab, + 0x03, 0xad, 0x8f, 0x03, 0xae, 0xef, 0x02, 0xf0, 0xee, 0x15, 0x80, 0xd0, + 0x02, 0xb2, 0xb4, 0x02, 0xb3, 0xfa, 0x01, 0xb4, 0x54, 0xb7, 0x39, 0xb9, + 0x1e, 0xfa, 0x46, 0x16, 0xc0, 0x00, 0xe1, 0x45, 0x16, 0x00, 0xe5, 0x42, + 0x16, 0x80, 0x0c, 0xe9, 0x44, 0x16, 0x00, 0xef, 0x41, 0x16, 0x00, 0xf5, + 0x40, 0x16, 0x40, 0xe5, 0x43, 0x16, 0x40, 0xe1, 0x13, 0x16, 0x00, 0xe5, + 0x10, 0x16, 0x80, 0x0c, 0xe9, 0x12, 0x16, 0x00, 0xef, 0x0f, 0x16, 0x00, + 0xf5, 0x0e, 0x16, 0x40, 0xe5, 0x11, 0x16, 0x40, 0xe1, 0xd5, 0x15, 0x00, + 0xe5, 0xd2, 0x15, 0x80, 0x0c, 0xe9, 0xd4, 0x15, 0x00, 0xef, 0xd1, 0x15, + 0x00, 0xf5, 0xd0, 0x15, 0x40, 0xe5, 0xd3, 0x15, 0x40, 0xa8, 0x88, 0x01, + 0xac, 0x52, 0xb3, 0x37, 0xb4, 0x01, 0xff, 0xe1, 0xe7, 0x15, 0x00, 0xe5, + 0xe4, 0x15, 0x80, 0x27, 0xe9, 0xe6, 0x15, 0x00, 0xef, 0xe3, 0x15, 0x00, + 0xb3, 0x04, 0xf5, 0xe2, 0x15, 0x40, 0xe1, 0x6c, 0x16, 0x00, 0xe5, 0x69, + 0x16, 0x80, 0x0c, 0xe9, 0x6b, 0x16, 0x00, 0xef, 0x68, 0x16, 0x00, 0xf5, + 0x67, 0x16, 0x40, 0xe5, 0x6a, 0x16, 0x40, 0xe5, 0xe5, 0x15, 0x40, 0xe1, + 0x60, 0x16, 0x00, 0xe5, 0x5d, 0x16, 0x80, 0x0c, 0xe9, 0x5f, 0x16, 0x00, + 0xef, 0x5c, 0x16, 0x00, 0xf5, 0x5b, 0x16, 0x40, 0xe5, 0x5e, 0x16, 0x40, + 0xe1, 0x3f, 0x16, 0x00, 0xe5, 0x3c, 0x16, 0x80, 0x27, 0xa8, 0x0c, 0xe9, + 0x3e, 0x16, 0x00, 0xef, 0x3b, 0x16, 0x00, 0xf5, 0x3a, 0x16, 0x40, 0xe1, + 0x39, 0x16, 0x00, 0xe5, 0x36, 0x16, 0x80, 0x0c, 0xe9, 0x38, 0x16, 0x00, + 0xef, 0x35, 0x16, 0x00, 0xf5, 0x34, 0x16, 0x40, 0xe5, 0x37, 0x16, 0x40, + 0xe5, 0x3d, 0x16, 0x40, 0xe1, 0xe1, 0x15, 0x00, 0xe5, 0xde, 0x15, 0x80, + 0x0c, 0xe9, 0xe0, 0x15, 0x00, 0xef, 0xdd, 0x15, 0x00, 0xf5, 0xdc, 0x15, + 0x40, 0xe5, 0xdf, 0x15, 0x40, 0xe1, 0x53, 0x16, 0x00, 0xe5, 0x50, 0x16, + 0x80, 0x2a, 0xe8, 0x5a, 0x16, 0x80, 0x0c, 0xe9, 0x52, 0x16, 0x00, 0xef, + 0x4f, 0x16, 0x00, 0xf5, 0x4e, 0x16, 0x40, 0xe1, 0x59, 0x16, 0x00, 0xe5, + 0x56, 0x16, 0x80, 0x0c, 0xe9, 0x58, 0x16, 0x00, 0xef, 0x55, 0x16, 0x00, + 0xf5, 0x54, 0x16, 0x40, 0xe5, 0x57, 0x16, 0x40, 0xe5, 0x51, 0x16, 0x40, + 0xe1, 0xcf, 0x15, 0x00, 0xe5, 0xcc, 0x15, 0x80, 0x0c, 0xe9, 0xce, 0x15, + 0x00, 0xef, 0xcb, 0x15, 0x00, 0xf5, 0xca, 0x15, 0x40, 0xe5, 0xcd, 0x15, + 0x40, 0xe1, 0xed, 0x15, 0x00, 0xe5, 0xea, 0x15, 0x80, 0x0c, 0xe9, 0xec, + 0x15, 0x00, 0xef, 0xe9, 0x15, 0x00, 0xf5, 0xe8, 0x15, 0x40, 0xe5, 0xeb, + 0x15, 0x40, 0xe1, 0x07, 0x16, 0x00, 0xe5, 0x04, 0x16, 0x80, 0x10, 0xe7, + 0xd1, 0x14, 0x00, 0xe9, 0x06, 0x16, 0x00, 0xef, 0x03, 0x16, 0x00, 0xf5, + 0x02, 0x16, 0x40, 0xe5, 0x05, 0x16, 0x40, 0xe1, 0x0d, 0x16, 0x00, 0xe5, + 0x0a, 0x16, 0x80, 0x0c, 0xe9, 0x0c, 0x16, 0x00, 0xef, 0x09, 0x16, 0x00, + 0xf5, 0x08, 0x16, 0x40, 0xe5, 0x0b, 0x16, 0x40, 0xe1, 0x27, 0x16, 0x00, + 0xe5, 0x24, 0x16, 0x80, 0x27, 0xa8, 0x0c, 0xe9, 0x26, 0x16, 0x00, 0xef, + 0x23, 0x16, 0x00, 0xf5, 0x22, 0x16, 0x40, 0xe1, 0x33, 0x16, 0x00, 0xe5, + 0x30, 0x16, 0x80, 0x0c, 0xe9, 0x32, 0x16, 0x00, 0xef, 0x2f, 0x16, 0x00, + 0xf5, 0x2e, 0x16, 0x40, 0xe5, 0x31, 0x16, 0x40, 0xe5, 0x25, 0x16, 0x40, + 0xa8, 0x1e, 0xeb, 0x01, 0x16, 0xc0, 0x00, 0xe1, 0x00, 0x16, 0x00, 0xe5, + 0xfd, 0x15, 0x80, 0x0c, 0xe9, 0xff, 0x15, 0x00, 0xef, 0xfc, 0x15, 0x00, + 0xf5, 0xfb, 0x15, 0x40, 0xe5, 0xfe, 0x15, 0x40, 0xe1, 0xfa, 0x15, 0x00, + 0xe5, 0xf7, 0x15, 0x80, 0x0c, 0xe9, 0xf9, 0x15, 0x00, 0xef, 0xf6, 0x15, + 0x00, 0xf5, 0xf5, 0x15, 0x40, 0xe5, 0xf8, 0x15, 0x40, 0xe1, 0x1b, 0x16, + 0x00, 0xe5, 0x17, 0x16, 0x80, 0x2d, 0xe9, 0x19, 0x16, 0x00, 0xaa, 0x0e, + 0xef, 0x16, 0x16, 0x00, 0xf5, 0x14, 0x16, 0x00, 0x42, 0xa9, 0x01, 0xf2, + 0x18, 0x40, 0xe1, 0x21, 0x16, 0x00, 0xe5, 0x1e, 0x16, 0x80, 0x0c, 0xe9, + 0x20, 0x16, 0x00, 0xef, 0x1d, 0x16, 0x00, 0xf5, 0x1c, 0x16, 0x40, 0xe5, + 0x1f, 0x16, 0x40, 0xe5, 0x18, 0x16, 0x40, 0x48, 0xc0, 0xc8, 0x47, 0x16, + 0x40, 0x42, 0x27, 0x01, 0x36, 0x14, 0x00, 0xe9, 0x37, 0x14, 0x00, 0xb7, + 0x01, 0xff, 0xe1, 0xdb, 0x15, 0x00, 0xe5, 0xd8, 0x15, 0x80, 0x0c, 0xe9, + 0xda, 0x15, 0x00, 0xef, 0xd7, 0x15, 0x00, 0xf5, 0xd6, 0x15, 0x40, 0xe5, + 0xd9, 0x15, 0x40, 0xe1, 0xf4, 0x15, 0x80, 0x3b, 0xe5, 0xf1, 0x15, 0x80, + 0x32, 0xa8, 0x17, 0xe9, 0xf3, 0x15, 0x00, 0xef, 0xf0, 0x15, 0x00, 0xf5, + 0xef, 0x15, 0x00, 0xb7, 0x01, 0xff, 0xe1, 0xf0, 0x18, 0x00, 0xf5, 0xed, + 0x18, 0x40, 0xe1, 0xc9, 0x15, 0x00, 0xe5, 0xc6, 0x15, 0x80, 0x0c, 0xe9, + 0xc8, 0x15, 0x00, 0xef, 0xc5, 0x15, 0x00, 0xf5, 0xc4, 0x15, 0x40, 0xe5, + 0xc7, 0x15, 0x40, 0xe5, 0xf2, 0x15, 0x40, 0xe1, 0xef, 0x18, 0x40, 0xa5, + 0x3b, 0xe9, 0x54, 0x14, 0x00, 0xac, 0x1c, 0xba, 0x01, 0xff, 0xe1, 0x4d, + 0x16, 0x00, 0xe5, 0x4a, 0x16, 0x80, 0x0c, 0xe9, 0x4c, 0x16, 0x00, 0xef, + 0x49, 0x16, 0x00, 0xf5, 0x48, 0x16, 0x40, 0xe5, 0x4b, 0x16, 0x40, 0xe1, + 0x2d, 0x16, 0x00, 0xe5, 0x2a, 0x16, 0x80, 0x0c, 0xe9, 0x2c, 0x16, 0x00, + 0xef, 0x29, 0x16, 0x00, 0xf5, 0x28, 0x16, 0x40, 0xe5, 0x2b, 0x16, 0x40, + 0xe5, 0x53, 0x14, 0x00, 0xae, 0x01, 0xff, 0x45, 0xb0, 0xe5, 0xee, 0x18, + 0x00, 0x45, 0x4e, 0x05, 0xf5, 0x18, 0x40, 0xe1, 0x66, 0x16, 0x00, 0xe5, + 0x63, 0x16, 0x80, 0x0c, 0xe9, 0x65, 0x16, 0x00, 0xef, 0x62, 0x16, 0x00, + 0xf5, 0x61, 0x16, 0x40, 0xe5, 0x64, 0x16, 0x40, 0xe9, 0x8a, 0x14, 0x40, + 0x0b, 0x7e, 0x9b, 0x58, 0x4b, 0x41, 0x9d, 0x3f, 0x15, 0x00, 0x09, 0x3a, + 0xbb, 0x01, 0xff, 0xe1, 0xb3, 0x15, 0x00, 0xe5, 0xb0, 0x15, 0x00, 0xe9, + 0xb1, 0x15, 0x00, 0xab, 0x2f, 0xae, 0x1d, 0xef, 0xb2, 0x15, 0x00, 0xf3, + 0x08, 0x15, 0x00, 0xf7, 0x7f, 0x16, 0xc0, 0x00, 0xe1, 0xb7, 0x15, 0x00, + 0xe5, 0xb4, 0x15, 0x00, 0xe9, 0xb5, 0x15, 0x00, 0xef, 0xb6, 0x15, 0x40, + 0xe1, 0xbb, 0x15, 0x00, 0xe5, 0xb8, 0x15, 0x00, 0xe9, 0xb9, 0x15, 0x00, + 0xef, 0xba, 0x15, 0x40, 0xe1, 0xbf, 0x15, 0x00, 0xe5, 0xbc, 0x15, 0x00, + 0xe9, 0xbd, 0x15, 0x00, 0xef, 0xbe, 0x15, 0x40, 0xec, 0xf3, 0x18, 0x00, + 0xf2, 0xf4, 0x18, 0x40, 0xe1, 0x0b, 0x14, 0x80, 0x1f, 0xe9, 0x1c, 0x14, + 0x80, 0x14, 0xee, 0x2e, 0x14, 0x00, 0x0a, 0xd1, 0xb1, 0x04, 0xf9, 0xb1, + 0x18, 0x40, 0xed, 0xbe, 0x14, 0x00, 0xf3, 0x06, 0x15, 0x40, 0x47, 0x4b, + 0xd7, 0xaf, 0x15, 0x40, 0xe9, 0x02, 0x14, 0x00, 0xf9, 0xb2, 0x18, 0x40, + 0x43, 0xdc, 0x01, 0xf7, 0xf4, 0x81, 0x06, 0x44, 0x2b, 0x30, 0xd5, 0xf3, + 0x41, 0x4b, 0x03, 0x98, 0xf8, 0xf4, 0x41, 0x45, 0x1c, 0x80, 0xc5, 0xf4, + 0x01, 0x49, 0x31, 0xbb, 0x19, 0xf9, 0x41, 0x45, 0xee, 0xe3, 0x06, 0x21, + 0x00, 0x45, 0x07, 0xdb, 0x24, 0x26, 0x40, 0xa1, 0xc3, 0x58, 0xa5, 0xce, + 0x4f, 0x09, 0x54, 0xb9, 0xe2, 0x4a, 0xa9, 0x84, 0x4a, 0xac, 0x8c, 0x34, + 0xaf, 0xdf, 0x22, 0xb2, 0xe9, 0x12, 0xb5, 0xc0, 0x0f, 0xb9, 0x01, 0xff, + 0x4d, 0x1e, 0x89, 0xff, 0xfe, 0x00, 0x17, 0x1e, 0x32, 0x01, 0xff, 0xa1, + 0xba, 0x0d, 0x02, 0x6d, 0x14, 0x80, 0x0d, 0xa4, 0xd9, 0x0b, 0xa5, 0xa0, + 0x0b, 0xa6, 0xf4, 0x09, 0xa7, 0x91, 0x09, 0xa9, 0xcc, 0x08, 0xab, 0xf4, + 0x06, 0xac, 0xbe, 0x06, 0xad, 0xc9, 0x05, 0x44, 0x61, 0xf1, 0x40, 0xd0, + 0x01, 0xaf, 0xfb, 0x04, 0xb0, 0xd4, 0x03, 0xb2, 0xc5, 0x03, 0xb3, 0xa3, + 0x02, 0xb4, 0x8b, 0x01, 0x02, 0xf5, 0x0a, 0x63, 0x4c, 0x0b, 0x97, 0x6a, + 0xd0, 0x01, 0xb9, 0x01, 0xff, 0x02, 0x0c, 0x1a, 0x1e, 0xb0, 0x01, 0xff, + 0xaf, 0x06, 0x44, 0xc3, 0x88, 0x50, 0xd0, 0x41, 0x46, 0x70, 0xdd, 0x0a, + 0xd0, 0x81, 0x06, 0x44, 0x69, 0xf2, 0x53, 0xd0, 0x41, 0x46, 0x00, 0xd8, + 0x0b, 0xd0, 0x41, 0x02, 0x92, 0x00, 0x28, 0x04, 0xe0, 0x21, 0x01, 0xff, + 0x51, 0x42, 0x58, 0xd4, 0xd0, 0x01, 0x55, 0x34, 0x3a, 0xd6, 0xd0, 0x01, + 0x5c, 0xbe, 0x18, 0xd5, 0xd0, 0x01, 0x03, 0x19, 0x01, 0x01, 0xff, 0x55, + 0x5a, 0x3b, 0xd7, 0xd0, 0x01, 0x48, 0x69, 0x34, 0xcd, 0xd0, 0x41, 0x43, + 0x14, 0x7a, 0x7d, 0xd0, 0x01, 0x44, 0xcf, 0x9f, 0x7c, 0xd0, 0x41, 0x04, + 0x41, 0xf2, 0x06, 0x43, 0x00, 0x54, 0x19, 0xd0, 0x41, 0x80, 0x06, 0x4a, + 0x5f, 0xab, 0x21, 0xd0, 0x41, 0x45, 0x01, 0xd8, 0x06, 0xd0, 0x01, 0x4b, + 0xe8, 0x7e, 0x05, 0xd0, 0x01, 0x43, 0x65, 0x54, 0x58, 0xd0, 0x41, 0xa5, + 0x80, 0x01, 0xa8, 0x52, 0x46, 0xe0, 0xdc, 0x27, 0xd0, 0x01, 0xb2, 0x01, + 0xff, 0xa9, 0x37, 0x05, 0x04, 0xb5, 0x01, 0xff, 0x47, 0x07, 0xd3, 0x6d, + 0xd0, 0x01, 0x02, 0x92, 0x00, 0x14, 0xb0, 0x06, 0x47, 0x10, 0xd6, 0x70, + 0xd0, 0x41, 0x4a, 0x36, 0xa1, 0x6e, 0xd0, 0x01, 0x48, 0xe8, 0xca, 0x6b, + 0xd0, 0x41, 0xa1, 0x06, 0x43, 0x65, 0x54, 0x63, 0xd0, 0x41, 0x43, 0xcf, + 0x1c, 0x43, 0xd0, 0x01, 0x47, 0x62, 0xab, 0x36, 0xd0, 0x41, 0xe1, 0x30, + 0xd0, 0x01, 0x46, 0x26, 0xdc, 0x96, 0xd0, 0x01, 0x43, 0xbb, 0x04, 0x87, + 0xd0, 0x41, 0xa5, 0x06, 0x43, 0xe7, 0x05, 0x14, 0xd0, 0x41, 0x42, 0x6c, + 0x00, 0x2d, 0xd0, 0x81, 0x06, 0x4d, 0x41, 0x88, 0x79, 0xd0, 0x41, 0x47, + 0x18, 0xcd, 0x78, 0xd0, 0x01, 0x08, 0xa0, 0xcb, 0x01, 0xff, 0x42, 0x60, + 0x03, 0x76, 0xd0, 0x01, 0x42, 0xc7, 0x2f, 0x77, 0xd0, 0x41, 0x44, 0xc6, + 0x5a, 0x0f, 0xd0, 0x01, 0x45, 0xcc, 0x18, 0x31, 0xd0, 0x01, 0x46, 0xac, + 0xe0, 0x88, 0xd0, 0x41, 0x47, 0x48, 0xcf, 0x1d, 0xd0, 0x01, 0x45, 0xdd, + 0xe5, 0x29, 0xd0, 0x81, 0x8b, 0x01, 0x08, 0xf8, 0xc6, 0x49, 0xb4, 0x2e, + 0xb9, 0x01, 0xff, 0xae, 0x0d, 0x43, 0x8b, 0x06, 0x66, 0xd0, 0xc1, 0x00, + 0x44, 0xc6, 0xdd, 0x08, 0xd0, 0x41, 0x05, 0x20, 0xe4, 0x06, 0x44, 0x0c, + 0xd4, 0x13, 0xd0, 0x41, 0x48, 0x61, 0xab, 0x2a, 0xd0, 0x01, 0x4c, 0xfb, + 0x91, 0x2b, 0xd0, 0x01, 0x43, 0x65, 0x54, 0x65, 0xd0, 0x41, 0x45, 0x8e, + 0xe4, 0x7e, 0xd0, 0x81, 0x0c, 0x44, 0xbf, 0x1f, 0xe8, 0xd0, 0x01, 0x4a, + 0xe7, 0xaf, 0x44, 0xd0, 0x41, 0x49, 0x44, 0xb4, 0x1f, 0xd0, 0x41, 0x46, + 0xe6, 0xd9, 0xe2, 0xd0, 0x81, 0x1f, 0x47, 0x4f, 0xd6, 0xde, 0xd0, 0xc1, + 0x00, 0x80, 0x01, 0xff, 0x47, 0x67, 0xd0, 0xdf, 0xd0, 0x01, 0xb4, 0x01, + 0xff, 0x49, 0xb2, 0xb8, 0xe1, 0xd0, 0x01, 0x47, 0x61, 0xd5, 0xe0, 0xd0, + 0x41, 0x80, 0x01, 0xff, 0x47, 0x67, 0xd0, 0xe3, 0xd0, 0x01, 0xb4, 0x01, + 0xff, 0x49, 0xb2, 0xb8, 0xe5, 0xd0, 0x01, 0x47, 0x61, 0xd5, 0xe4, 0xd0, + 0x41, 0x44, 0x1a, 0x89, 0x69, 0xd0, 0x41, 0x46, 0xc8, 0xd9, 0x3c, 0xd0, + 0x01, 0x44, 0x0c, 0xd4, 0x25, 0xd0, 0x41, 0x02, 0x17, 0x00, 0x70, 0xa5, + 0x43, 0x06, 0xb6, 0xdc, 0x33, 0x02, 0x5a, 0x03, 0x01, 0xff, 0x05, 0xea, + 0xca, 0x0d, 0xac, 0x01, 0xff, 0xe9, 0x00, 0xd0, 0x01, 0x42, 0x10, 0x00, + 0x17, 0xd0, 0x41, 0x47, 0x07, 0xd3, 0x6c, 0xd0, 0x01, 0xee, 0x39, 0xd0, + 0x81, 0x0c, 0x4b, 0x35, 0xa1, 0x6f, 0xd0, 0x01, 0x47, 0x10, 0xd6, 0x71, + 0xd0, 0x41, 0x44, 0x1a, 0x89, 0x5a, 0xd0, 0x41, 0x48, 0x61, 0xab, 0x26, + 0xd0, 0x01, 0x43, 0x65, 0x54, 0x59, 0xd0, 0x41, 0x46, 0xa0, 0xdd, 0x38, + 0xd0, 0x81, 0x1e, 0x49, 0x42, 0xa1, 0x02, 0xd0, 0x01, 0x03, 0x71, 0x2d, + 0x01, 0xff, 0x42, 0x6c, 0x00, 0x41, 0xd0, 0x01, 0xb4, 0x01, 0xff, 0xe9, + 0x49, 0xd0, 0x01, 0x49, 0xfc, 0xbc, 0x4b, 0xd0, 0x41, 0x44, 0x1a, 0x89, + 0x4d, 0xd0, 0x41, 0x02, 0x6d, 0x00, 0x06, 0x45, 0x45, 0xe7, 0x1e, 0xd0, + 0x41, 0x07, 0xa7, 0xce, 0x16, 0x46, 0xc4, 0xdd, 0x09, 0xd0, 0xc1, 0x00, + 0x80, 0x01, 0xff, 0x48, 0x61, 0xab, 0x3e, 0xd0, 0x01, 0x43, 0x65, 0x54, + 0x5e, 0xd0, 0x41, 0x48, 0x61, 0xab, 0x3d, 0xd0, 0x01, 0x43, 0x65, 0x54, + 0x5f, 0xd0, 0x41, 0x06, 0xb8, 0xdd, 0x35, 0x45, 0x71, 0xe8, 0x5b, 0xd0, + 0x01, 0x04, 0x31, 0xf3, 0x11, 0x09, 0xa9, 0xc1, 0x01, 0xff, 0x48, 0x61, + 0xab, 0x2c, 0xd0, 0x01, 0x43, 0x65, 0x54, 0x75, 0xd0, 0x41, 0x80, 0x06, + 0x4a, 0x5f, 0xab, 0x20, 0xd0, 0x41, 0x45, 0x01, 0xd8, 0x04, 0xd0, 0x01, + 0x4b, 0xe8, 0x7e, 0x03, 0xd0, 0x01, 0x43, 0x65, 0x54, 0x48, 0xd0, 0x41, + 0x48, 0x61, 0xab, 0x15, 0xd0, 0x01, 0x43, 0x65, 0x54, 0x47, 0xd0, 0x41, + 0x08, 0x98, 0xc3, 0x06, 0x4a, 0xa5, 0xab, 0x57, 0xd0, 0x41, 0x05, 0x34, + 0xe4, 0x58, 0x4e, 0xbf, 0x76, 0xa4, 0xd0, 0x01, 0x4d, 0x0e, 0x85, 0xaa, + 0xd0, 0x01, 0xb0, 0x29, 0xb4, 0x06, 0x4b, 0xbb, 0xa4, 0xb1, 0xd0, 0x41, + 0x08, 0xb6, 0x7c, 0x11, 0x02, 0x0d, 0x00, 0x01, 0xff, 0x46, 0x4a, 0xa3, + 0xa7, 0xd0, 0x01, 0x49, 0xba, 0x7c, 0xa6, 0xd0, 0x41, 0x45, 0xc8, 0x76, + 0xa8, 0xd0, 0x01, 0x4d, 0x0e, 0x85, 0xa9, 0xd0, 0x41, 0x07, 0x9e, 0xd2, + 0x11, 0x04, 0xd0, 0x93, 0x01, 0xff, 0x47, 0xc6, 0x76, 0xa2, 0xd0, 0x01, + 0x4b, 0xbb, 0xa4, 0xb2, 0xd0, 0x41, 0x45, 0xc8, 0x76, 0xab, 0xd0, 0x01, + 0x4e, 0xb5, 0x7c, 0xb3, 0xd0, 0x41, 0x4e, 0xbf, 0x76, 0xa5, 0xd0, 0x01, + 0x4c, 0xcf, 0x93, 0xa3, 0xd0, 0x41, 0xa5, 0x06, 0x46, 0x08, 0xd3, 0x5d, + 0xd0, 0x41, 0x05, 0x6d, 0xe7, 0x06, 0x43, 0xf2, 0xc6, 0x2e, 0xd0, 0x41, + 0x4b, 0x5d, 0x9b, 0x8b, 0xd0, 0x01, 0x4c, 0x9b, 0x8e, 0x8a, 0xd0, 0x01, + 0x4f, 0x88, 0x6e, 0x8e, 0xd0, 0x01, 0xb4, 0x01, 0xff, 0x4f, 0xe4, 0x6c, + 0x8d, 0xd0, 0x01, 0x4c, 0xa7, 0x94, 0x8c, 0xd0, 0x41, 0x02, 0x8a, 0x00, + 0xba, 0x01, 0x06, 0x54, 0xdb, 0x70, 0x45, 0x12, 0x97, 0x24, 0xd0, 0x81, + 0x5a, 0xaf, 0x3f, 0xb2, 0x06, 0x46, 0x91, 0xd2, 0x61, 0xd0, 0x41, 0x04, + 0x21, 0xef, 0x06, 0x46, 0x3c, 0xdb, 0x0c, 0xd0, 0x41, 0xa1, 0x0f, 0xaf, + 0x01, 0xff, 0x48, 0xfd, 0xbc, 0x4c, 0xd0, 0x01, 0x48, 0xf0, 0xcc, 0x54, + 0xd0, 0x41, 0x80, 0x06, 0x42, 0x12, 0x00, 0x32, 0xd0, 0x41, 0xa1, 0x06, + 0x43, 0x65, 0x54, 0x83, 0xd0, 0x41, 0x43, 0xcf, 0x1c, 0x82, 0xd0, 0x01, + 0x47, 0x62, 0xab, 0x81, 0xd0, 0x41, 0x46, 0x8a, 0xde, 0x3a, 0xd0, 0x81, + 0x0c, 0x45, 0xf1, 0x61, 0x89, 0xd0, 0x01, 0x46, 0xff, 0xbc, 0x4a, 0xd0, + 0x41, 0x45, 0xad, 0xce, 0x42, 0xd0, 0x41, 0x80, 0x01, 0xff, 0x43, 0x14, + 0x7a, 0x7f, 0xd0, 0x01, 0x44, 0xcf, 0x9f, 0xf4, 0xd0, 0x41, 0x80, 0x27, + 0x42, 0x12, 0x00, 0x10, 0xd0, 0xc1, 0x00, 0x80, 0x01, 0xff, 0x48, 0x61, + 0xab, 0x1c, 0xd0, 0x01, 0x04, 0x75, 0xf1, 0x01, 0xff, 0x43, 0x14, 0x7a, + 0x4e, 0xd0, 0x01, 0x44, 0xcf, 0x9f, 0xf2, 0xd0, 0x01, 0x44, 0x29, 0xf1, + 0xf0, 0xd0, 0x41, 0x48, 0x61, 0xab, 0x1b, 0xd0, 0x01, 0x04, 0x75, 0xf1, + 0x01, 0xff, 0x43, 0x14, 0x7a, 0x4f, 0xd0, 0x01, 0x44, 0xcf, 0x9f, 0xf3, + 0xd0, 0x01, 0x44, 0x29, 0xf1, 0xf1, 0xd0, 0x41, 0x03, 0x67, 0x12, 0x06, + 0x45, 0x09, 0xe7, 0x07, 0xd0, 0x41, 0x49, 0x01, 0xb5, 0x37, 0xd0, 0x01, + 0x43, 0x5d, 0x07, 0x7a, 0xd0, 0x41, 0x46, 0x70, 0xda, 0x3f, 0xd0, 0x01, + 0x02, 0x7d, 0x02, 0x1a, 0xb3, 0x01, 0xff, 0x55, 0x0e, 0x39, 0xac, 0xd0, + 0x01, 0x03, 0xb6, 0x00, 0x01, 0xff, 0x48, 0x61, 0xab, 0x1a, 0xd0, 0x01, + 0x43, 0x65, 0x54, 0x46, 0xd0, 0x41, 0x47, 0x59, 0xd0, 0x98, 0xd0, 0x01, + 0xa6, 0x01, 0xff, 0x44, 0xef, 0x6c, 0xb7, 0xd0, 0x01, 0x04, 0x4c, 0x2a, + 0x01, 0xff, 0xe1, 0x35, 0xd0, 0x01, 0x42, 0x10, 0x00, 0xb8, 0xd0, 0x41, + 0x06, 0x4e, 0xdb, 0x50, 0x02, 0x0c, 0x00, 0x06, 0x4b, 0x48, 0xa2, 0x45, + 0xd0, 0x41, 0x02, 0x06, 0x14, 0x11, 0x0a, 0xe5, 0xb1, 0x01, 0xff, 0x46, + 0x19, 0xcd, 0xb4, 0xd0, 0x01, 0x47, 0x60, 0xd0, 0xb5, 0xd0, 0x41, 0x02, + 0x92, 0x00, 0x06, 0x49, 0xb4, 0x80, 0x72, 0xd0, 0x41, 0x48, 0x61, 0xab, + 0x16, 0xd0, 0x01, 0x04, 0x75, 0xf1, 0x11, 0x0e, 0x8e, 0x69, 0x01, 0xff, + 0x48, 0x4e, 0xb6, 0x90, 0xd0, 0x01, 0x45, 0x48, 0xb4, 0x91, 0xd0, 0x41, + 0x43, 0x14, 0x7a, 0x8f, 0xd0, 0x01, 0x44, 0xcf, 0x9f, 0xf5, 0xd0, 0x41, + 0x46, 0xf4, 0xda, 0xd8, 0xd0, 0x01, 0x46, 0x5d, 0x34, 0xd9, 0xd0, 0x41, + 0x09, 0x06, 0xb6, 0x92, 0x01, 0x5a, 0x32, 0x20, 0xc5, 0xd0, 0x01, 0x06, + 0xbf, 0x40, 0x01, 0xff, 0x48, 0x61, 0xab, 0x34, 0xd0, 0x81, 0x7a, 0x0a, + 0x43, 0xa9, 0x45, 0x54, 0x1c, 0x42, 0xcc, 0xd0, 0x01, 0x56, 0x5b, 0x34, + 0xcb, 0xd0, 0x01, 0x0f, 0x1d, 0x70, 0x29, 0xae, 0x1b, 0x08, 0x38, 0x20, + 0x01, 0xff, 0x07, 0x40, 0x20, 0x06, 0x4b, 0xfa, 0x9a, 0xbe, 0xd0, 0x41, + 0x46, 0x46, 0xe0, 0xc6, 0xd0, 0x01, 0x45, 0x47, 0x20, 0xc5, 0xd0, 0x41, + 0x49, 0x3c, 0xb6, 0xbc, 0xd0, 0x01, 0x45, 0xf6, 0xe5, 0xc7, 0xd0, 0x41, + 0x48, 0x18, 0xc5, 0xc3, 0xd0, 0x01, 0x4a, 0xf3, 0xad, 0xc4, 0xd0, 0x41, + 0x42, 0x00, 0x00, 0xbd, 0xd0, 0x01, 0x42, 0x37, 0x01, 0xbf, 0xd0, 0x01, + 0xae, 0x0c, 0x42, 0xbb, 0x09, 0xba, 0xd0, 0x01, 0x42, 0x0f, 0x00, 0xc0, + 0xd0, 0x41, 0x43, 0x4b, 0x12, 0xbb, 0xd0, 0x01, 0x02, 0xf1, 0x03, 0x01, + 0xff, 0x43, 0x14, 0x7a, 0xc2, 0xd0, 0x01, 0x44, 0xcf, 0x9f, 0xc1, 0xd0, + 0x41, 0x4f, 0x42, 0x69, 0xb9, 0xd0, 0x41, 0x48, 0x18, 0xc5, 0xb0, 0xd0, + 0x01, 0x4a, 0xf3, 0xad, 0xaf, 0xd0, 0x01, 0x4b, 0x45, 0xa3, 0xae, 0xd0, + 0x41, 0x49, 0x16, 0xbb, 0x64, 0xd0, 0x01, 0x46, 0x88, 0xdd, 0x55, 0xd0, + 0x01, 0xae, 0x1c, 0x47, 0xa4, 0xd4, 0x68, 0xd0, 0x01, 0x06, 0x82, 0xe0, + 0x06, 0x4e, 0xe5, 0x7e, 0x0e, 0xd0, 0x41, 0x4d, 0xb0, 0x80, 0x74, 0xd0, + 0x01, 0x4b, 0x35, 0xa1, 0x60, 0xd0, 0x41, 0x54, 0xb4, 0x40, 0xb6, 0xd0, + 0x01, 0x47, 0x6e, 0xd0, 0x7b, 0xd0, 0x41, 0x45, 0x75, 0xe4, 0x01, 0xd0, + 0x01, 0xa9, 0x06, 0x42, 0xa9, 0x47, 0x2f, 0xd0, 0x41, 0xa1, 0x6d, 0x05, + 0xdf, 0x21, 0x3d, 0x4a, 0x83, 0xaa, 0xe7, 0xd0, 0x01, 0xa7, 0x0d, 0x43, + 0xbb, 0x04, 0x86, 0xd0, 0xc1, 0x00, 0x49, 0x60, 0xab, 0x80, 0xd0, 0x41, + 0x45, 0x27, 0xdc, 0x92, 0xd0, 0x81, 0x06, 0x48, 0x20, 0xca, 0xe6, 0xd0, + 0x41, 0x0f, 0x8d, 0x69, 0x01, 0xff, 0x09, 0x4e, 0xb6, 0x06, 0x45, 0x48, + 0xb4, 0x95, 0xd0, 0x41, 0x43, 0x14, 0x7a, 0x94, 0xd0, 0x01, 0x44, 0xcf, + 0x9f, 0x93, 0xd0, 0x41, 0x51, 0x42, 0x58, 0xd0, 0xd0, 0x01, 0x55, 0x34, + 0x3a, 0xd2, 0xd0, 0x01, 0x5c, 0xbe, 0x18, 0xd1, 0xd0, 0x01, 0xb4, 0x01, + 0xff, 0x4c, 0x65, 0x34, 0xcf, 0xd0, 0x01, 0x02, 0x0d, 0x00, 0x01, 0xff, + 0x55, 0x5a, 0x3b, 0xd3, 0xd0, 0x01, 0x48, 0x69, 0x34, 0xce, 0xd0, 0x41, + 0x44, 0x5c, 0xd0, 0x99, 0xd0, 0x01, 0x06, 0x22, 0xe0, 0x01, 0xff, 0x06, + 0xce, 0xd9, 0x0c, 0x45, 0x01, 0xd8, 0xdc, 0xd0, 0x01, 0x47, 0x4f, 0xd6, + 0xdd, 0xd0, 0x41, 0x45, 0xc9, 0xe5, 0xdb, 0xd0, 0x01, 0x44, 0x3e, 0x95, + 0xda, 0xd0, 0x41, 0x04, 0x8b, 0x65, 0x27, 0x07, 0x0a, 0xd4, 0x17, 0x04, + 0x55, 0xf2, 0x01, 0xff, 0x46, 0x6a, 0xdd, 0xc9, 0xd0, 0x01, 0x46, 0xfe, + 0xdf, 0xca, 0xd0, 0x01, 0x45, 0xb8, 0xec, 0xc8, 0xd0, 0x41, 0x48, 0x61, + 0xab, 0x3b, 0xd0, 0x01, 0x43, 0x65, 0x54, 0x67, 0xd0, 0x41, 0xe9, 0x56, + 0xd0, 0x01, 0x42, 0x10, 0x00, 0x18, 0xd0, 0x41, 0x05, 0xaf, 0xe6, 0xb3, + 0x01, 0xae, 0x99, 0x01, 0xb0, 0x40, 0xb2, 0x01, 0xff, 0x02, 0x06, 0x14, + 0x2f, 0x06, 0x76, 0xdd, 0x01, 0xff, 0x42, 0x00, 0x00, 0xec, 0xd0, 0x01, + 0x42, 0x24, 0x02, 0xeb, 0xd0, 0x01, 0x42, 0x37, 0x01, 0xed, 0xd0, 0x01, + 0x42, 0x51, 0x03, 0xef, 0xd0, 0x01, 0x42, 0xbb, 0x09, 0xe9, 0xd0, 0x01, + 0x43, 0xa1, 0x2d, 0xea, 0xd0, 0x01, 0x42, 0x0f, 0x00, 0xee, 0xd0, 0x41, + 0xee, 0x97, 0xd0, 0x01, 0x49, 0xb4, 0x80, 0x73, 0xd0, 0x41, 0x05, 0x23, + 0xe6, 0x47, 0x42, 0xc3, 0x01, 0x85, 0xd0, 0x01, 0xaf, 0x01, 0xff, 0x06, + 0xe2, 0xda, 0x2e, 0x06, 0x28, 0xe0, 0x06, 0x45, 0xa3, 0x53, 0x23, 0xd0, + 0x41, 0x02, 0xf1, 0x03, 0x14, 0xf3, 0x11, 0xd0, 0xc1, 0x00, 0x80, 0x01, + 0xff, 0x45, 0x01, 0xd8, 0x12, 0xd0, 0x01, 0x43, 0x65, 0x54, 0x51, 0xd0, + 0x41, 0x4d, 0x11, 0x89, 0x52, 0xd0, 0x01, 0x50, 0x13, 0x39, 0xad, 0xd0, + 0x41, 0x48, 0x61, 0xab, 0x22, 0xd0, 0x01, 0x43, 0x65, 0x54, 0x84, 0xd0, + 0x41, 0x4a, 0xe9, 0x7e, 0x0d, 0xd0, 0x01, 0x46, 0x6c, 0xe1, 0x33, 0xd0, + 0x41, 0x4a, 0x03, 0xa8, 0x28, 0xd0, 0x01, 0x06, 0x94, 0xe0, 0x01, 0xff, + 0x47, 0x90, 0xd2, 0x62, 0xd0, 0x01, 0x42, 0x6c, 0x00, 0x5c, 0xd0, 0x41, + 0x03, 0x33, 0x13, 0x2f, 0x04, 0x26, 0xdc, 0x21, 0x02, 0x2a, 0x02, 0x11, + 0x05, 0x01, 0xea, 0x01, 0xff, 0x44, 0x15, 0xef, 0x9a, 0xd0, 0x01, 0x45, + 0xb4, 0xe6, 0xa1, 0xd0, 0x41, 0x42, 0x5a, 0x03, 0x9e, 0xd0, 0x01, 0x44, + 0x19, 0x01, 0x9d, 0xd0, 0x41, 0xe9, 0x9f, 0xd0, 0x01, 0x45, 0xa7, 0xe9, + 0xa0, 0xd0, 0x41, 0xe9, 0x9c, 0xd0, 0x01, 0x45, 0xa7, 0xe9, 0x9b, 0xd0, + 0x41, 0x04, 0x78, 0x7c, 0x97, 0x03, 0x44, 0x66, 0x09, 0xa3, 0xfa, 0x01, + 0xe7, 0x1b, 0xf4, 0x81, 0xd2, 0x01, 0x04, 0x41, 0xf0, 0x57, 0x53, 0x29, + 0x4a, 0xd7, 0xf3, 0x01, 0x02, 0x60, 0x07, 0x2d, 0x45, 0x88, 0xea, 0x2f, + 0xf3, 0x01, 0xf3, 0x8c, 0xf6, 0x81, 0x0d, 0x44, 0xee, 0x05, 0xc8, 0xf9, + 0xc1, 0x00, 0x43, 0x43, 0xf4, 0x8b, 0xf9, 0x41, 0x45, 0x54, 0x03, 0x8f, + 0xf6, 0x01, 0xb4, 0x01, 0xff, 0x4e, 0xbb, 0x34, 0x64, 0xf4, 0x01, 0x4f, + 0xed, 0x72, 0x65, 0xf4, 0x41, 0x42, 0xed, 0x05, 0x22, 0x20, 0x80, 0x13, + 0x44, 0x60, 0x2d, 0x6b, 0xf5, 0x81, 0x06, 0x44, 0x9d, 0xf2, 0xce, 0x25, + 0x40, 0x51, 0x76, 0x57, 0x6c, 0xf5, 0x41, 0x49, 0x7d, 0x1d, 0x19, 0x22, + 0x40, 0x07, 0xec, 0x05, 0x0d, 0x0b, 0x40, 0x77, 0x01, 0xff, 0xe9, 0x52, + 0x17, 0x00, 0xf5, 0x53, 0x17, 0x40, 0xe1, 0x40, 0x17, 0x00, 0x42, 0x16, + 0x00, 0x4a, 0x17, 0x00, 0x42, 0xf0, 0x10, 0x47, 0x17, 0x00, 0x42, 0x24, + 0x02, 0x44, 0x17, 0x00, 0x42, 0x22, 0x00, 0x51, 0x17, 0x00, 0xe9, 0x41, + 0x17, 0x00, 0x42, 0x1b, 0x02, 0x43, 0x17, 0x00, 0x42, 0x74, 0x00, 0x4e, + 0x17, 0x00, 0x42, 0x6c, 0x00, 0x4b, 0x17, 0x00, 0xae, 0x28, 0x42, 0xbb, + 0x09, 0x49, 0x17, 0x00, 0x42, 0x71, 0x00, 0x4d, 0x17, 0x00, 0x42, 0x40, + 0x06, 0x50, 0x17, 0x00, 0x42, 0x12, 0x00, 0x46, 0x17, 0x00, 0xf5, 0x42, + 0x17, 0x00, 0x42, 0xa9, 0x01, 0x4f, 0x17, 0x00, 0x42, 0xbc, 0x22, 0x4c, + 0x17, 0x40, 0xe1, 0x48, 0x17, 0x00, 0x42, 0x24, 0x02, 0x45, 0x17, 0x40, + 0x06, 0xbd, 0x83, 0x01, 0xff, 0x4e, 0x4b, 0x77, 0x1f, 0x1a, 0x00, 0x07, + 0xec, 0x05, 0x21, 0x47, 0x73, 0xd4, 0x1e, 0x1a, 0x00, 0x0b, 0x40, 0x77, + 0x01, 0xff, 0x42, 0x93, 0x0f, 0x1b, 0x1a, 0x00, 0xe5, 0x19, 0x1a, 0x00, + 0xe9, 0x17, 0x1a, 0x00, 0xef, 0x1a, 0x1a, 0x00, 0xf5, 0x18, 0x1a, 0x40, + 0xe1, 0x15, 0x1a, 0x00, 0x42, 0x16, 0x00, 0x05, 0x1a, 0x00, 0x42, 0x37, + 0x00, 0x0c, 0x1a, 0x00, 0x42, 0xf0, 0x10, 0x09, 0x1a, 0x00, 0x42, 0x24, + 0x02, 0x01, 0x1a, 0x00, 0x42, 0x22, 0x00, 0x16, 0x1a, 0x00, 0x42, 0x56, + 0x19, 0x0d, 0x1a, 0x00, 0x42, 0x1b, 0x02, 0x00, 0x1a, 0x00, 0x42, 0x74, + 0x00, 0x12, 0x1a, 0x00, 0xad, 0x49, 0xae, 0x24, 0x42, 0xbb, 0x09, 0x04, + 0x1a, 0x00, 0x42, 0x71, 0x00, 0x11, 0x1a, 0x00, 0x42, 0x40, 0x06, 0x14, + 0x1a, 0x00, 0x42, 0x12, 0x00, 0x08, 0x1a, 0x00, 0x42, 0xf5, 0x0a, 0x13, + 0x1a, 0x00, 0x42, 0xbc, 0x22, 0x10, 0x1a, 0x40, 0xe1, 0x0a, 0x1a, 0x00, + 0xa7, 0x13, 0x42, 0x71, 0x00, 0x0b, 0x1a, 0x00, 0xb9, 0x01, 0xff, 0xe1, + 0x0e, 0x1a, 0x00, 0x42, 0x37, 0x00, 0x0f, 0x1a, 0x40, 0xe1, 0x02, 0x1a, + 0x00, 0x42, 0x1b, 0x02, 0x03, 0x1a, 0x40, 0xe1, 0x06, 0x1a, 0x00, 0x42, + 0xbb, 0x09, 0x07, 0x1a, 0x40, 0x44, 0x57, 0x52, 0xcb, 0xf9, 0x01, 0xf3, + 0xe7, 0xfa, 0x41, 0xa1, 0x6a, 0xa5, 0x50, 0xa9, 0x2b, 0xaf, 0x01, 0xff, + 0x45, 0x0b, 0xe5, 0x66, 0xf9, 0x01, 0x04, 0x60, 0xa8, 0x0c, 0x42, 0x14, + 0x05, 0xf9, 0xf9, 0x01, 0x48, 0x78, 0xcc, 0x0e, 0xf9, 0x41, 0x43, 0x16, + 0x00, 0xa6, 0x00, 0x00, 0x5b, 0xad, 0x1a, 0x8b, 0x23, 0x00, 0x45, 0xac, + 0x21, 0x94, 0xf4, 0x41, 0x42, 0x36, 0x01, 0xf1, 0xf9, 0x01, 0xa4, 0x0f, + 0x02, 0x69, 0x00, 0x01, 0xff, 0x44, 0x59, 0xef, 0xbc, 0xf4, 0x01, 0xf3, + 0x72, 0xfa, 0x41, 0x4b, 0x68, 0x9b, 0x70, 0xf4, 0x01, 0x4b, 0x4f, 0x9c, + 0x09, 0xf3, 0x41, 0xa1, 0x06, 0x42, 0x32, 0x00, 0xd8, 0x02, 0x40, 0xe4, + 0x5e, 0xf3, 0x01, 0x50, 0x56, 0x64, 0x82, 0x00, 0x00, 0x4a, 0x59, 0xb1, + 0x31, 0xf9, 0x41, 0x04, 0x49, 0xf0, 0x98, 0x09, 0xa9, 0x01, 0xff, 0x0c, + 0x5f, 0x91, 0x04, 0xee, 0xe0, 0xf9, 0x41, 0x45, 0x45, 0xc0, 0x00, 0x28, + 0x00, 0x05, 0xa1, 0xe5, 0x01, 0xff, 0xd1, 0x01, 0x28, 0x80, 0xbe, 0x04, + 0xd2, 0x02, 0x28, 0x80, 0x9c, 0x02, 0xd3, 0x04, 0x28, 0x80, 0x8b, 0x01, + 0xd4, 0x08, 0x28, 0x80, 0x43, 0xd5, 0x10, 0x28, 0x80, 0x1f, 0xd6, 0x20, + 0x28, 0x80, 0x0d, 0xd7, 0x40, 0x28, 0x80, 0x04, 0xd8, 0x80, 0x28, 0x40, + 0xd8, 0xc0, 0x28, 0x40, 0xd7, 0x60, 0x28, 0x80, 0x04, 0xd8, 0xa0, 0x28, + 0x40, 0xd8, 0xe0, 0x28, 0x40, 0xd6, 0x30, 0x28, 0x80, 0x0d, 0xd7, 0x50, + 0x28, 0x80, 0x04, 0xd8, 0x90, 0x28, 0x40, 0xd8, 0xd0, 0x28, 0x40, 0xd7, + 0x70, 0x28, 0x80, 0x04, 0xd8, 0xb0, 0x28, 0x40, 0xd8, 0xf0, 0x28, 0x40, + 0xd5, 0x18, 0x28, 0x80, 0x1f, 0xd6, 0x28, 0x28, 0x80, 0x0d, 0xd7, 0x48, + 0x28, 0x80, 0x04, 0xd8, 0x88, 0x28, 0x40, 0xd8, 0xc8, 0x28, 0x40, 0xd7, + 0x68, 0x28, 0x80, 0x04, 0xd8, 0xa8, 0x28, 0x40, 0xd8, 0xe8, 0x28, 0x40, + 0xd6, 0x38, 0x28, 0x80, 0x0d, 0xd7, 0x58, 0x28, 0x80, 0x04, 0xd8, 0x98, + 0x28, 0x40, 0xd8, 0xd8, 0x28, 0x40, 0xd7, 0x78, 0x28, 0x80, 0x04, 0xd8, + 0xb8, 0x28, 0x40, 0xd8, 0xf8, 0x28, 0x40, 0xd4, 0x0c, 0x28, 0x80, 0x43, + 0xd5, 0x14, 0x28, 0x80, 0x1f, 0xd6, 0x24, 0x28, 0x80, 0x0d, 0xd7, 0x44, + 0x28, 0x80, 0x04, 0xd8, 0x84, 0x28, 0x40, 0xd8, 0xc4, 0x28, 0x40, 0xd7, + 0x64, 0x28, 0x80, 0x04, 0xd8, 0xa4, 0x28, 0x40, 0xd8, 0xe4, 0x28, 0x40, + 0xd6, 0x34, 0x28, 0x80, 0x0d, 0xd7, 0x54, 0x28, 0x80, 0x04, 0xd8, 0x94, + 0x28, 0x40, 0xd8, 0xd4, 0x28, 0x40, 0xd7, 0x74, 0x28, 0x80, 0x04, 0xd8, + 0xb4, 0x28, 0x40, 0xd8, 0xf4, 0x28, 0x40, 0xd5, 0x1c, 0x28, 0x80, 0x1f, + 0xd6, 0x2c, 0x28, 0x80, 0x0d, 0xd7, 0x4c, 0x28, 0x80, 0x04, 0xd8, 0x8c, + 0x28, 0x40, 0xd8, 0xcc, 0x28, 0x40, 0xd7, 0x6c, 0x28, 0x80, 0x04, 0xd8, + 0xac, 0x28, 0x40, 0xd8, 0xec, 0x28, 0x40, 0xd6, 0x3c, 0x28, 0x80, 0x0d, + 0xd7, 0x5c, 0x28, 0x80, 0x04, 0xd8, 0x9c, 0x28, 0x40, 0xd8, 0xdc, 0x28, + 0x40, 0xd7, 0x7c, 0x28, 0x80, 0x04, 0xd8, 0xbc, 0x28, 0x40, 0xd8, 0xfc, + 0x28, 0x40, 0xd3, 0x06, 0x28, 0x80, 0x8b, 0x01, 0xd4, 0x0a, 0x28, 0x80, + 0x43, 0xd5, 0x12, 0x28, 0x80, 0x1f, 0xd6, 0x22, 0x28, 0x80, 0x0d, 0xd7, + 0x42, 0x28, 0x80, 0x04, 0xd8, 0x82, 0x28, 0x40, 0xd8, 0xc2, 0x28, 0x40, + 0xd7, 0x62, 0x28, 0x80, 0x04, 0xd8, 0xa2, 0x28, 0x40, 0xd8, 0xe2, 0x28, + 0x40, 0xd6, 0x32, 0x28, 0x80, 0x0d, 0xd7, 0x52, 0x28, 0x80, 0x04, 0xd8, + 0x92, 0x28, 0x40, 0xd8, 0xd2, 0x28, 0x40, 0xd7, 0x72, 0x28, 0x80, 0x04, + 0xd8, 0xb2, 0x28, 0x40, 0xd8, 0xf2, 0x28, 0x40, 0xd5, 0x1a, 0x28, 0x80, + 0x1f, 0xd6, 0x2a, 0x28, 0x80, 0x0d, 0xd7, 0x4a, 0x28, 0x80, 0x04, 0xd8, + 0x8a, 0x28, 0x40, 0xd8, 0xca, 0x28, 0x40, 0xd7, 0x6a, 0x28, 0x80, 0x04, + 0xd8, 0xaa, 0x28, 0x40, 0xd8, 0xea, 0x28, 0x40, 0xd6, 0x3a, 0x28, 0x80, + 0x0d, 0xd7, 0x5a, 0x28, 0x80, 0x04, 0xd8, 0x9a, 0x28, 0x40, 0xd8, 0xda, + 0x28, 0x40, 0xd7, 0x7a, 0x28, 0x80, 0x04, 0xd8, 0xba, 0x28, 0x40, 0xd8, + 0xfa, 0x28, 0x40, 0xd4, 0x0e, 0x28, 0x80, 0x43, 0xd5, 0x16, 0x28, 0x80, + 0x1f, 0xd6, 0x26, 0x28, 0x80, 0x0d, 0xd7, 0x46, 0x28, 0x80, 0x04, 0xd8, + 0x86, 0x28, 0x40, 0xd8, 0xc6, 0x28, 0x40, 0xd7, 0x66, 0x28, 0x80, 0x04, + 0xd8, 0xa6, 0x28, 0x40, 0xd8, 0xe6, 0x28, 0x40, 0xd6, 0x36, 0x28, 0x80, + 0x0d, 0xd7, 0x56, 0x28, 0x80, 0x04, 0xd8, 0x96, 0x28, 0x40, 0xd8, 0xd6, + 0x28, 0x40, 0xd7, 0x76, 0x28, 0x80, 0x04, 0xd8, 0xb6, 0x28, 0x40, 0xd8, + 0xf6, 0x28, 0x40, 0xd5, 0x1e, 0x28, 0x80, 0x1f, 0xd6, 0x2e, 0x28, 0x80, + 0x0d, 0xd7, 0x4e, 0x28, 0x80, 0x04, 0xd8, 0x8e, 0x28, 0x40, 0xd8, 0xce, + 0x28, 0x40, 0xd7, 0x6e, 0x28, 0x80, 0x04, 0xd8, 0xae, 0x28, 0x40, 0xd8, + 0xee, 0x28, 0x40, 0xd6, 0x3e, 0x28, 0x80, 0x0d, 0xd7, 0x5e, 0x28, 0x80, + 0x04, 0xd8, 0x9e, 0x28, 0x40, 0xd8, 0xde, 0x28, 0x40, 0xd7, 0x7e, 0x28, + 0x80, 0x04, 0xd8, 0xbe, 0x28, 0x40, 0xd8, 0xfe, 0x28, 0x40, 0xd2, 0x03, + 0x28, 0x80, 0x9c, 0x02, 0xd3, 0x05, 0x28, 0x80, 0x8b, 0x01, 0xd4, 0x09, + 0x28, 0x80, 0x43, 0xd5, 0x11, 0x28, 0x80, 0x1f, 0xd6, 0x21, 0x28, 0x80, + 0x0d, 0xd7, 0x41, 0x28, 0x80, 0x04, 0xd8, 0x81, 0x28, 0x40, 0xd8, 0xc1, + 0x28, 0x40, 0xd7, 0x61, 0x28, 0x80, 0x04, 0xd8, 0xa1, 0x28, 0x40, 0xd8, + 0xe1, 0x28, 0x40, 0xd6, 0x31, 0x28, 0x80, 0x0d, 0xd7, 0x51, 0x28, 0x80, + 0x04, 0xd8, 0x91, 0x28, 0x40, 0xd8, 0xd1, 0x28, 0x40, 0xd7, 0x71, 0x28, + 0x80, 0x04, 0xd8, 0xb1, 0x28, 0x40, 0xd8, 0xf1, 0x28, 0x40, 0xd5, 0x19, + 0x28, 0x80, 0x1f, 0xd6, 0x29, 0x28, 0x80, 0x0d, 0xd7, 0x49, 0x28, 0x80, + 0x04, 0xd8, 0x89, 0x28, 0x40, 0xd8, 0xc9, 0x28, 0x40, 0xd7, 0x69, 0x28, + 0x80, 0x04, 0xd8, 0xa9, 0x28, 0x40, 0xd8, 0xe9, 0x28, 0x40, 0xd6, 0x39, + 0x28, 0x80, 0x0d, 0xd7, 0x59, 0x28, 0x80, 0x04, 0xd8, 0x99, 0x28, 0x40, + 0xd8, 0xd9, 0x28, 0x40, 0xd7, 0x79, 0x28, 0x80, 0x04, 0xd8, 0xb9, 0x28, + 0x40, 0xd8, 0xf9, 0x28, 0x40, 0xd4, 0x0d, 0x28, 0x80, 0x43, 0xd5, 0x15, + 0x28, 0x80, 0x1f, 0xd6, 0x25, 0x28, 0x80, 0x0d, 0xd7, 0x45, 0x28, 0x80, + 0x04, 0xd8, 0x85, 0x28, 0x40, 0xd8, 0xc5, 0x28, 0x40, 0xd7, 0x65, 0x28, + 0x80, 0x04, 0xd8, 0xa5, 0x28, 0x40, 0xd8, 0xe5, 0x28, 0x40, 0xd6, 0x35, + 0x28, 0x80, 0x0d, 0xd7, 0x55, 0x28, 0x80, 0x04, 0xd8, 0x95, 0x28, 0x40, + 0xd8, 0xd5, 0x28, 0x40, 0xd7, 0x75, 0x28, 0x80, 0x04, 0xd8, 0xb5, 0x28, + 0x40, 0xd8, 0xf5, 0x28, 0x40, 0xd5, 0x1d, 0x28, 0x80, 0x1f, 0xd6, 0x2d, + 0x28, 0x80, 0x0d, 0xd7, 0x4d, 0x28, 0x80, 0x04, 0xd8, 0x8d, 0x28, 0x40, + 0xd8, 0xcd, 0x28, 0x40, 0xd7, 0x6d, 0x28, 0x80, 0x04, 0xd8, 0xad, 0x28, + 0x40, 0xd8, 0xed, 0x28, 0x40, 0xd6, 0x3d, 0x28, 0x80, 0x0d, 0xd7, 0x5d, + 0x28, 0x80, 0x04, 0xd8, 0x9d, 0x28, 0x40, 0xd8, 0xdd, 0x28, 0x40, 0xd7, + 0x7d, 0x28, 0x80, 0x04, 0xd8, 0xbd, 0x28, 0x40, 0xd8, 0xfd, 0x28, 0x40, + 0xd3, 0x07, 0x28, 0x80, 0x8b, 0x01, 0xd4, 0x0b, 0x28, 0x80, 0x43, 0xd5, + 0x13, 0x28, 0x80, 0x1f, 0xd6, 0x23, 0x28, 0x80, 0x0d, 0xd7, 0x43, 0x28, + 0x80, 0x04, 0xd8, 0x83, 0x28, 0x40, 0xd8, 0xc3, 0x28, 0x40, 0xd7, 0x63, + 0x28, 0x80, 0x04, 0xd8, 0xa3, 0x28, 0x40, 0xd8, 0xe3, 0x28, 0x40, 0xd6, + 0x33, 0x28, 0x80, 0x0d, 0xd7, 0x53, 0x28, 0x80, 0x04, 0xd8, 0x93, 0x28, + 0x40, 0xd8, 0xd3, 0x28, 0x40, 0xd7, 0x73, 0x28, 0x80, 0x04, 0xd8, 0xb3, + 0x28, 0x40, 0xd8, 0xf3, 0x28, 0x40, 0xd5, 0x1b, 0x28, 0x80, 0x1f, 0xd6, + 0x2b, 0x28, 0x80, 0x0d, 0xd7, 0x4b, 0x28, 0x80, 0x04, 0xd8, 0x8b, 0x28, + 0x40, 0xd8, 0xcb, 0x28, 0x40, 0xd7, 0x6b, 0x28, 0x80, 0x04, 0xd8, 0xab, + 0x28, 0x40, 0xd8, 0xeb, 0x28, 0x40, 0xd6, 0x3b, 0x28, 0x80, 0x0d, 0xd7, + 0x5b, 0x28, 0x80, 0x04, 0xd8, 0x9b, 0x28, 0x40, 0xd8, 0xdb, 0x28, 0x40, + 0xd7, 0x7b, 0x28, 0x80, 0x04, 0xd8, 0xbb, 0x28, 0x40, 0xd8, 0xfb, 0x28, + 0x40, 0xd4, 0x0f, 0x28, 0x80, 0x43, 0xd5, 0x17, 0x28, 0x80, 0x1f, 0xd6, + 0x27, 0x28, 0x80, 0x0d, 0xd7, 0x47, 0x28, 0x80, 0x04, 0xd8, 0x87, 0x28, + 0x40, 0xd8, 0xc7, 0x28, 0x40, 0xd7, 0x67, 0x28, 0x80, 0x04, 0xd8, 0xa7, + 0x28, 0x40, 0xd8, 0xe7, 0x28, 0x40, 0xd6, 0x37, 0x28, 0x80, 0x0d, 0xd7, + 0x57, 0x28, 0x80, 0x04, 0xd8, 0x97, 0x28, 0x40, 0xd8, 0xd7, 0x28, 0x40, + 0xd7, 0x77, 0x28, 0x80, 0x04, 0xd8, 0xb7, 0x28, 0x40, 0xd8, 0xf7, 0x28, + 0x40, 0xd5, 0x1f, 0x28, 0x80, 0x1f, 0xd6, 0x2f, 0x28, 0x80, 0x0d, 0xd7, + 0x4f, 0x28, 0x80, 0x04, 0xd8, 0x8f, 0x28, 0x40, 0xd8, 0xcf, 0x28, 0x40, + 0xd7, 0x6f, 0x28, 0x80, 0x04, 0xd8, 0xaf, 0x28, 0x40, 0xd8, 0xef, 0x28, + 0x40, 0xd6, 0x3f, 0x28, 0x80, 0x0d, 0xd7, 0x5f, 0x28, 0x80, 0x04, 0xd8, + 0x9f, 0x28, 0x40, 0xd8, 0xdf, 0x28, 0x40, 0xd7, 0x7f, 0x28, 0x80, 0x04, + 0xd8, 0xbf, 0x28, 0x40, 0xd8, 0xff, 0x28, 0x40, 0xa4, 0x95, 0x05, 0x07, + 0xec, 0x05, 0xca, 0x02, 0x07, 0xff, 0x39, 0xb1, 0x01, 0x0c, 0x6d, 0x16, + 0x89, 0x01, 0x05, 0x5a, 0x03, 0x61, 0xb6, 0x01, 0xff, 0x45, 0xe4, 0x23, + 0x46, 0x10, 0x01, 0x0a, 0x41, 0x77, 0x01, 0xff, 0xa1, 0x45, 0x4e, 0x33, + 0x76, 0x39, 0x10, 0x01, 0xe5, 0x42, 0x10, 0x01, 0xe9, 0x3a, 0x10, 0x81, + 0x32, 0xef, 0x44, 0x10, 0x81, 0x20, 0xf5, 0x3c, 0x10, 0x81, 0x17, 0x08, + 0x22, 0xc1, 0x01, 0xff, 0xec, 0x40, 0x10, 0x81, 0x09, 0xf2, 0x3e, 0x10, + 0xc1, 0x00, 0xf2, 0x3f, 0x10, 0x41, 0xec, 0x41, 0x10, 0x41, 0xf5, 0x3d, + 0x10, 0x41, 0x0f, 0x4b, 0x6f, 0x01, 0xff, 0xe5, 0x73, 0x10, 0x01, 0xef, + 0x74, 0x10, 0x41, 0xe9, 0x3b, 0x10, 0x41, 0xe1, 0x38, 0x10, 0x01, 0xe9, + 0x43, 0x10, 0x01, 0xf5, 0x45, 0x10, 0x41, 0x48, 0x3c, 0x16, 0x01, 0x10, + 0x01, 0x4b, 0xd7, 0x23, 0x00, 0x10, 0x01, 0x4b, 0xe6, 0x9d, 0x03, 0x10, + 0x01, 0x50, 0x86, 0x65, 0x70, 0x10, 0x01, 0x4b, 0x6e, 0xa4, 0x04, 0x10, + 0x01, 0x47, 0xea, 0x4b, 0x02, 0x10, 0x41, 0x4c, 0x87, 0x8d, 0x4c, 0x10, + 0x01, 0x02, 0x3b, 0x01, 0x0f, 0xac, 0x01, 0xff, 0x43, 0xee, 0x07, 0x4b, + 0x10, 0x01, 0x44, 0xa6, 0x79, 0x4d, 0x10, 0x41, 0xf4, 0x49, 0x10, 0x01, + 0x48, 0xba, 0x41, 0x4a, 0x10, 0x41, 0x45, 0x12, 0x0b, 0x59, 0x10, 0x81, + 0x88, 0x01, 0xa6, 0x69, 0x46, 0xa0, 0x61, 0x7f, 0x10, 0x01, 0x44, 0xcf, + 0x2a, 0x5a, 0x10, 0x81, 0x56, 0x43, 0x0e, 0x0b, 0x52, 0x10, 0x81, 0x40, + 0xb3, 0x24, 0xb4, 0x01, 0xff, 0x42, 0x92, 0x01, 0x5b, 0x10, 0x01, 0xa8, + 0x0d, 0xb7, 0x01, 0xff, 0x44, 0xcb, 0x1d, 0x5c, 0x10, 0x01, 0xef, 0x53, + 0x10, 0x41, 0x44, 0x7b, 0x11, 0x5d, 0x10, 0x01, 0x43, 0x26, 0x01, 0x54, + 0x10, 0x41, 0x44, 0xc9, 0x1d, 0x58, 0x10, 0x81, 0x0d, 0x42, 0x01, 0x26, + 0x57, 0x10, 0xc1, 0x00, 0x42, 0x7d, 0x11, 0x60, 0x10, 0x41, 0x42, 0x7d, + 0x11, 0x61, 0x10, 0x41, 0x80, 0x01, 0xff, 0x47, 0x71, 0x11, 0x64, 0x10, + 0x01, 0x48, 0x40, 0x5e, 0x65, 0x10, 0x41, 0x42, 0x7d, 0x11, 0x63, 0x10, + 0x41, 0xa9, 0x0f, 0xaf, 0x01, 0xff, 0x43, 0x7c, 0x11, 0x5e, 0x10, 0x01, + 0x42, 0x42, 0x00, 0x55, 0x10, 0x41, 0x43, 0x52, 0x4d, 0x5f, 0x10, 0x01, + 0x42, 0x32, 0x00, 0x56, 0x10, 0x41, 0xf9, 0x62, 0x10, 0x41, 0xe1, 0x05, + 0x10, 0x81, 0xb4, 0x02, 0xa2, 0xa7, 0x02, 0xa3, 0x9a, 0x02, 0xa4, 0x81, + 0x02, 0xe5, 0x0f, 0x10, 0x01, 0xa7, 0xf0, 0x01, 0x42, 0x22, 0x00, 0x33, + 0x10, 0x01, 0xe9, 0x07, 0x10, 0x81, 0xe0, 0x01, 0xaa, 0xd3, 0x01, 0xab, + 0xc6, 0x01, 0xac, 0xb9, 0x01, 0x42, 0x6c, 0x00, 0x2b, 0x10, 0x01, 0xae, + 0x9a, 0x01, 0xef, 0x11, 0x10, 0x81, 0x69, 0xb0, 0x5d, 0x42, 0x71, 0x00, + 0x2d, 0x10, 0x01, 0xb3, 0x45, 0xb4, 0x2c, 0xf5, 0x09, 0x10, 0x81, 0x23, + 0xb6, 0x06, 0x42, 0xbc, 0x22, 0x2c, 0x10, 0x41, 0xe1, 0x2f, 0x10, 0x01, + 0x07, 0x23, 0xc1, 0x01, 0xff, 0xec, 0x0d, 0x10, 0x81, 0x09, 0xf2, 0x0b, + 0x10, 0xc1, 0x00, 0xf2, 0x0c, 0x10, 0x41, 0xec, 0x0e, 0x10, 0x41, 0xf5, + 0x0a, 0x10, 0x41, 0xe1, 0x22, 0x10, 0x01, 0x42, 0x22, 0x00, 0x23, 0x10, + 0x01, 0xb4, 0x01, 0xff, 0xe1, 0x1d, 0x10, 0x01, 0x42, 0x22, 0x00, 0x1e, + 0x10, 0x41, 0xe1, 0x32, 0x10, 0x01, 0x42, 0x22, 0x00, 0x30, 0x10, 0x01, + 0x42, 0x40, 0x06, 0x31, 0x10, 0x41, 0xe1, 0x27, 0x10, 0x01, 0x42, 0x22, + 0x00, 0x28, 0x10, 0x41, 0x09, 0x87, 0x65, 0x01, 0xff, 0x02, 0x60, 0x07, + 0x19, 0x44, 0x85, 0xf1, 0x37, 0x10, 0x01, 0x43, 0x8c, 0x41, 0x36, 0x10, + 0x01, 0x06, 0x33, 0x07, 0x01, 0xff, 0xe5, 0x71, 0x10, 0x01, 0xef, 0x72, + 0x10, 0x41, 0xe1, 0x75, 0x10, 0x01, 0x42, 0x74, 0x00, 0x35, 0x10, 0x41, + 0xe1, 0x26, 0x10, 0x01, 0x42, 0x24, 0x02, 0x17, 0x10, 0x01, 0x42, 0x2a, + 0x05, 0x21, 0x10, 0x01, 0x42, 0xbc, 0x22, 0x1c, 0x10, 0x41, 0xe1, 0x2e, + 0x10, 0x01, 0x42, 0x74, 0x00, 0x34, 0x10, 0x41, 0xe1, 0x13, 0x10, 0x01, + 0x42, 0x22, 0x00, 0x14, 0x10, 0x41, 0xe1, 0x1a, 0x10, 0x01, 0x42, 0x22, + 0x00, 0x1b, 0x10, 0x41, 0xe9, 0x08, 0x10, 0x41, 0xe1, 0x15, 0x10, 0x01, + 0x42, 0x22, 0x00, 0x16, 0x10, 0x41, 0xe1, 0x24, 0x10, 0x01, 0xa4, 0x06, + 0x42, 0x22, 0x00, 0x25, 0x10, 0x41, 0xe1, 0x1f, 0x10, 0x01, 0x42, 0x22, + 0x00, 0x20, 0x10, 0x41, 0xe1, 0x18, 0x10, 0x01, 0x42, 0x22, 0x00, 0x19, + 0x10, 0x41, 0xe1, 0x29, 0x10, 0x01, 0x42, 0x22, 0x00, 0x2a, 0x10, 0x41, + 0xe1, 0x06, 0x10, 0x01, 0xe9, 0x10, 0x10, 0x01, 0xf5, 0x12, 0x10, 0x41, + 0x44, 0x73, 0x20, 0x47, 0x10, 0x01, 0x05, 0xf0, 0x06, 0x06, 0x4b, 0x09, + 0xa1, 0x48, 0x10, 0x41, 0x45, 0x12, 0x0b, 0x6e, 0x10, 0x01, 0xa6, 0x2e, + 0x44, 0xcf, 0x2a, 0x6f, 0x10, 0x01, 0x43, 0x0e, 0x0b, 0x67, 0x10, 0x01, + 0xb3, 0x14, 0xb4, 0x06, 0x44, 0x43, 0x1e, 0x66, 0x10, 0x41, 0x44, 0x25, + 0x01, 0x69, 0x10, 0x01, 0x42, 0x15, 0x02, 0x68, 0x10, 0x41, 0x44, 0xc9, + 0x1d, 0x6d, 0x10, 0x01, 0x42, 0x01, 0x26, 0x6c, 0x10, 0x41, 0x43, 0xd2, + 0x05, 0x6b, 0x10, 0x01, 0x43, 0xf6, 0x06, 0x6a, 0x10, 0x41, 0x42, 0x17, + 0x00, 0x17, 0xf4, 0x01, 0x03, 0x03, 0x24, 0xee, 0x10, 0x42, 0xb6, 0x05, + 0xa3, 0xf4, 0x01, 0x42, 0xcd, 0x05, 0xb4, 0xf9, 0x01, 0xaf, 0xc3, 0x10, + 0x07, 0xc7, 0xd4, 0xe0, 0x0d, 0x02, 0xee, 0x05, 0xe6, 0x0b, 0x45, 0xe6, + 0xeb, 0x90, 0xf4, 0x81, 0xd8, 0x0b, 0xb7, 0xa1, 0x0b, 0xb8, 0x0b, 0xf9, + 0x66, 0xf4, 0xc1, 0x00, 0x48, 0x77, 0x4b, 0xc9, 0xf6, 0x41, 0x0a, 0xc9, + 0xa5, 0x06, 0x49, 0x86, 0xba, 0x4a, 0xf9, 0x41, 0x02, 0x3b, 0x01, 0xf6, + 0x08, 0x06, 0x6d, 0x15, 0xc2, 0x07, 0xac, 0xae, 0x02, 0x06, 0xc8, 0x00, + 0xf1, 0x01, 0x03, 0x7d, 0x15, 0x5e, 0x09, 0x32, 0x00, 0x01, 0xff, 0x0b, + 0x26, 0x9b, 0x43, 0x0a, 0x6d, 0x15, 0x2d, 0x0a, 0x96, 0x64, 0x17, 0x0b, + 0xab, 0xa2, 0x01, 0xff, 0x51, 0xa6, 0x5a, 0x6a, 0x25, 0x00, 0x4b, 0x8b, + 0x9e, 0x61, 0x25, 0x00, 0x4c, 0x83, 0x94, 0x5e, 0x25, 0x40, 0x50, 0x63, + 0x3a, 0x3f, 0x25, 0x00, 0x4a, 0xa9, 0xac, 0x25, 0x25, 0x00, 0x4b, 0xfb, + 0xa1, 0x1d, 0x25, 0x40, 0x50, 0x78, 0x3a, 0x42, 0x25, 0x00, 0x4a, 0xb3, + 0xac, 0x28, 0x25, 0x00, 0x4b, 0xa0, 0x64, 0x20, 0x25, 0x40, 0x51, 0xb7, + 0x5a, 0x6b, 0x25, 0x00, 0x4b, 0x96, 0x9e, 0x62, 0x25, 0x00, 0x4c, 0x8f, + 0x94, 0x5f, 0x25, 0x40, 0x0b, 0x26, 0x9b, 0x79, 0x0a, 0x6d, 0x15, 0x48, + 0x0a, 0x96, 0x64, 0x17, 0x0b, 0xab, 0xa2, 0x01, 0xff, 0x51, 0xa6, 0x5a, + 0x67, 0x25, 0x00, 0x4b, 0x8b, 0x9e, 0x5b, 0x25, 0x00, 0x4c, 0x83, 0x94, + 0x58, 0x25, 0x40, 0x55, 0x5e, 0x3a, 0x48, 0x25, 0x00, 0x50, 0x63, 0x3a, + 0x37, 0x25, 0x00, 0x05, 0xc3, 0x00, 0x11, 0x06, 0xc8, 0x00, 0x01, 0xff, + 0x4a, 0x68, 0x15, 0x22, 0x25, 0x00, 0x45, 0x6d, 0x15, 0x15, 0x25, 0x40, + 0x4a, 0x68, 0x15, 0x2a, 0x25, 0x00, 0x45, 0x6d, 0x15, 0x19, 0x25, 0x40, + 0x55, 0x73, 0x3a, 0x40, 0x25, 0x00, 0x50, 0x78, 0x3a, 0x38, 0x25, 0x00, + 0x05, 0xc3, 0x00, 0x11, 0x06, 0xc8, 0x00, 0x01, 0xff, 0x4a, 0xd7, 0x16, + 0x1e, 0x25, 0x00, 0x45, 0xc3, 0x01, 0x16, 0x25, 0x40, 0x4a, 0xd7, 0x16, + 0x26, 0x25, 0x00, 0x45, 0xc3, 0x01, 0x1a, 0x25, 0x40, 0x51, 0xb7, 0x5a, + 0x68, 0x25, 0x00, 0x4b, 0x96, 0x9e, 0x5c, 0x25, 0x00, 0x4c, 0x8f, 0x94, + 0x59, 0x25, 0x40, 0x5c, 0x6e, 0x17, 0x46, 0x25, 0x00, 0x0f, 0x73, 0x17, + 0x1c, 0x0f, 0xc3, 0x6f, 0x06, 0x5c, 0x66, 0x19, 0x44, 0x25, 0x40, 0x4a, + 0x68, 0x15, 0x31, 0x25, 0x00, 0x48, 0xc4, 0x16, 0x39, 0x25, 0x00, 0x4e, + 0x75, 0x7e, 0x49, 0x25, 0x40, 0x4a, 0xd7, 0x16, 0x2e, 0x25, 0x00, 0x48, + 0x7d, 0x15, 0x36, 0x25, 0x00, 0x4e, 0x83, 0x7e, 0x3e, 0x25, 0x40, 0x04, + 0xc4, 0x00, 0xd4, 0x04, 0x05, 0xc9, 0x00, 0x01, 0xff, 0x04, 0xaa, 0x17, + 0xa9, 0x04, 0x55, 0xa1, 0x39, 0x1e, 0xcc, 0x01, 0xa4, 0xc4, 0x01, 0x4a, + 0x0b, 0x00, 0x00, 0x25, 0x80, 0xa3, 0x01, 0x44, 0xc3, 0x00, 0x74, 0x25, + 0x80, 0x95, 0x01, 0x0f, 0x1b, 0x72, 0x84, 0x01, 0x45, 0xc8, 0x00, 0x76, + 0x25, 0x00, 0xb4, 0x65, 0x42, 0x50, 0x02, 0x75, 0x25, 0x80, 0x3f, 0x48, + 0x32, 0x00, 0x02, 0x25, 0xc0, 0x00, 0x05, 0x19, 0x00, 0x01, 0xff, 0x07, + 0x9b, 0x0d, 0x23, 0x4a, 0x0b, 0x00, 0x3c, 0x25, 0x00, 0x44, 0xc3, 0x00, + 0x24, 0x25, 0x00, 0x45, 0xc8, 0x00, 0x1c, 0x25, 0x00, 0x04, 0x1e, 0x00, + 0x01, 0xff, 0x44, 0xc3, 0x00, 0x18, 0xce, 0x01, 0x45, 0xc8, 0x00, 0x16, + 0xce, 0x41, 0x44, 0xc3, 0x00, 0x19, 0xce, 0x01, 0x45, 0xc8, 0x00, 0x17, + 0xce, 0x41, 0x05, 0x19, 0x00, 0x01, 0xff, 0xa8, 0x0c, 0x44, 0xc3, 0x00, + 0x18, 0x25, 0x00, 0x45, 0xc8, 0x00, 0x14, 0x25, 0x40, 0x49, 0xfe, 0xb7, + 0x7d, 0x25, 0x00, 0x49, 0x0c, 0x00, 0x34, 0x25, 0x40, 0x51, 0xe8, 0x5c, + 0x1d, 0xcc, 0x01, 0x0b, 0x74, 0x37, 0x01, 0xff, 0x4a, 0x0b, 0x00, 0x04, + 0x25, 0x00, 0x48, 0x32, 0x00, 0x06, 0x25, 0x40, 0x4a, 0x0b, 0x00, 0x08, + 0x25, 0x00, 0x48, 0x32, 0x00, 0x0a, 0x25, 0x40, 0x50, 0xf6, 0x5f, 0x7c, + 0x25, 0x40, 0x80, 0x01, 0xff, 0x04, 0x1a, 0x00, 0x06, 0x54, 0xa6, 0x38, + 0xaf, 0xfb, 0x41, 0x4b, 0xf8, 0x02, 0x1c, 0xcc, 0x01, 0x4b, 0x98, 0x02, + 0x1b, 0xcc, 0x41, 0x08, 0xe4, 0x25, 0x31, 0xaf, 0x01, 0xff, 0x0a, 0x8f, + 0xb2, 0x1e, 0x42, 0xa7, 0x01, 0x77, 0x25, 0xc0, 0x00, 0x05, 0x19, 0x00, + 0x01, 0xff, 0x4a, 0x0b, 0x00, 0x2c, 0x25, 0x00, 0x44, 0xc3, 0x00, 0x10, + 0x25, 0x00, 0x45, 0xc8, 0x00, 0x0c, 0x25, 0x40, 0x4a, 0x0b, 0x00, 0x4c, + 0x25, 0x00, 0x48, 0x32, 0x00, 0x4e, 0x25, 0x40, 0x45, 0x95, 0x10, 0x73, + 0x25, 0x00, 0x47, 0x95, 0x44, 0xae, 0xfb, 0x01, 0x0e, 0x96, 0x03, 0x8a, + 0x02, 0x07, 0x7d, 0x02, 0xc2, 0x01, 0x06, 0x6d, 0x02, 0x01, 0xff, 0x0a, + 0x73, 0x02, 0x6a, 0x08, 0x84, 0x02, 0x2d, 0x09, 0x5f, 0x0f, 0x01, 0xff, + 0x06, 0x13, 0x01, 0x18, 0x07, 0x7d, 0x02, 0x01, 0xff, 0x55, 0xab, 0x03, + 0xd9, 0xfb, 0x01, 0x44, 0xc3, 0x00, 0xd1, 0xfb, 0xc1, 0x00, 0x4f, 0xb1, + 0x03, 0xdd, 0xfb, 0x41, 0x46, 0x73, 0x02, 0xd6, 0xfb, 0x01, 0x44, 0xc3, + 0x00, 0x71, 0x25, 0x40, 0x06, 0x13, 0x01, 0x22, 0x07, 0x7d, 0x02, 0x01, + 0xff, 0x0a, 0x73, 0x02, 0x0d, 0x45, 0xc8, 0x00, 0xd2, 0xfb, 0xc1, 0x00, + 0x4e, 0xb4, 0x4c, 0xdf, 0xfb, 0x41, 0x4a, 0x96, 0x03, 0xdb, 0xfb, 0x01, + 0x4b, 0x98, 0x02, 0xd8, 0xfb, 0x41, 0x46, 0x73, 0x02, 0xd4, 0xfb, 0x81, + 0x06, 0x45, 0xc8, 0x00, 0x72, 0x25, 0x40, 0x4f, 0x93, 0x18, 0xdc, 0xfb, + 0x41, 0x06, 0x13, 0x01, 0x3f, 0x07, 0x7d, 0x02, 0x01, 0xff, 0x44, 0xc3, + 0x00, 0xa0, 0xfb, 0x81, 0x1d, 0x45, 0xc8, 0x00, 0xa1, 0xfb, 0xc1, 0x00, + 0x80, 0x01, 0xff, 0x5f, 0xf1, 0x10, 0xa9, 0xfb, 0x01, 0x4f, 0x89, 0x02, + 0xa5, 0xfb, 0xc1, 0x00, 0x4f, 0x79, 0x02, 0xaa, 0xfb, 0x41, 0x80, 0x01, + 0xff, 0x60, 0x54, 0x0f, 0xa8, 0xfb, 0x01, 0x4f, 0x89, 0x02, 0xa4, 0xfb, + 0xc1, 0x00, 0x50, 0x8e, 0x19, 0xab, 0xfb, 0x41, 0x44, 0xc3, 0x00, 0xd7, + 0xfb, 0x01, 0x45, 0xc8, 0x00, 0xd5, 0xfb, 0x41, 0x08, 0x84, 0x02, 0x1b, + 0x09, 0x5f, 0x0f, 0x01, 0xff, 0x06, 0x13, 0x01, 0x06, 0x6b, 0x6d, 0x02, + 0xad, 0xfb, 0x41, 0x46, 0x73, 0x02, 0xa3, 0xfb, 0x01, 0x44, 0xc3, 0x00, + 0xd0, 0xfb, 0x41, 0x06, 0x13, 0x01, 0x0d, 0x5c, 0x82, 0x19, 0xa7, 0xfb, + 0xc1, 0x00, 0x50, 0x88, 0x02, 0xac, 0xfb, 0x41, 0x46, 0x73, 0x02, 0xa2, + 0xfb, 0x81, 0x06, 0x45, 0xc8, 0x00, 0xd3, 0xfb, 0x41, 0x50, 0x8e, 0x19, + 0xa6, 0xfb, 0x41, 0x5c, 0xa4, 0x03, 0xda, 0xfb, 0x01, 0x5b, 0xd7, 0x1d, + 0xde, 0xfb, 0x41, 0x09, 0x0c, 0x49, 0x11, 0x07, 0xb3, 0x5e, 0x01, 0xff, + 0x44, 0xc3, 0x00, 0x6f, 0x25, 0x00, 0x45, 0xc8, 0x00, 0x70, 0x25, 0x40, + 0x44, 0xc3, 0x00, 0x6e, 0x25, 0x00, 0x45, 0xc8, 0x00, 0x6d, 0x25, 0x40, + 0x5d, 0x68, 0x15, 0x45, 0x25, 0x00, 0x10, 0x6d, 0x15, 0x1c, 0x10, 0x96, + 0x64, 0x06, 0x5d, 0xc4, 0x16, 0x43, 0x25, 0x40, 0x4a, 0x68, 0x15, 0x32, + 0x25, 0x00, 0x48, 0xc4, 0x16, 0x3a, 0x25, 0x00, 0x4e, 0x75, 0x7e, 0x4a, + 0x25, 0x40, 0x4a, 0xd7, 0x16, 0x2d, 0x25, 0x00, 0x48, 0x7d, 0x15, 0x35, + 0x25, 0x00, 0x4e, 0x83, 0x7e, 0x3d, 0x25, 0x40, 0x02, 0x3b, 0x01, 0x7d, + 0x4a, 0x0b, 0x00, 0x01, 0x25, 0x00, 0x44, 0xc3, 0x00, 0x78, 0x25, 0x80, + 0x6a, 0x0f, 0x1b, 0x72, 0x5a, 0x45, 0xc8, 0x00, 0x7a, 0x25, 0x00, 0x0c, + 0x73, 0x37, 0x44, 0x42, 0x50, 0x02, 0x79, 0x25, 0x80, 0x1e, 0x48, 0x32, + 0x00, 0x03, 0x25, 0xc0, 0x00, 0x05, 0x19, 0x00, 0x01, 0xff, 0x4a, 0x0b, + 0x00, 0x4b, 0x25, 0x00, 0x44, 0xc3, 0x00, 0x2b, 0x25, 0x00, 0x45, 0xc8, + 0x00, 0x23, 0x25, 0x40, 0x05, 0x19, 0x00, 0x01, 0xff, 0x4a, 0x0b, 0x00, + 0x3b, 0x25, 0x00, 0xac, 0x06, 0x45, 0xc8, 0x00, 0x17, 0x25, 0x40, 0x43, + 0xc4, 0x00, 0x1b, 0x25, 0x00, 0x49, 0xd2, 0x16, 0x7f, 0x25, 0x40, 0x4a, + 0x0b, 0x00, 0x05, 0x25, 0x00, 0x48, 0x32, 0x00, 0x07, 0x25, 0x40, 0x4a, + 0x0b, 0x00, 0x09, 0x25, 0x00, 0x48, 0x32, 0x00, 0x0b, 0x25, 0x40, 0x50, + 0x06, 0x60, 0x7e, 0x25, 0x40, 0x0a, 0x8f, 0xb2, 0x1e, 0x42, 0xa7, 0x01, + 0x7b, 0x25, 0xc0, 0x00, 0x05, 0x19, 0x00, 0x01, 0xff, 0x4a, 0x0b, 0x00, + 0x33, 0x25, 0x00, 0x44, 0xc3, 0x00, 0x13, 0x25, 0x00, 0x45, 0xc8, 0x00, + 0x0f, 0x25, 0x40, 0x4a, 0x0b, 0x00, 0x4d, 0x25, 0x00, 0x48, 0x32, 0x00, + 0x4f, 0x25, 0x40, 0x05, 0x3d, 0x01, 0x92, 0x01, 0x03, 0xa0, 0x14, 0x01, + 0xff, 0x0b, 0x26, 0x9b, 0x77, 0x0a, 0x6d, 0x15, 0x47, 0x0a, 0x96, 0x64, + 0x17, 0x0b, 0xab, 0xa2, 0x01, 0xff, 0x51, 0xa6, 0x5a, 0x64, 0x25, 0x00, + 0x4b, 0x8b, 0x9e, 0x55, 0x25, 0x00, 0x4c, 0x83, 0x94, 0x52, 0x25, 0x40, + 0x50, 0x63, 0x3a, 0x2f, 0x25, 0x00, 0x05, 0xc3, 0x00, 0x16, 0x06, 0xc8, + 0x00, 0x06, 0x53, 0x18, 0x4e, 0x47, 0x25, 0x40, 0x45, 0x6d, 0x15, 0x0d, + 0x25, 0x00, 0x48, 0xc4, 0x16, 0x21, 0x25, 0x40, 0x45, 0x6d, 0x15, 0x11, + 0x25, 0x00, 0x48, 0xc4, 0x16, 0x29, 0x25, 0x40, 0x50, 0x78, 0x3a, 0x30, + 0x25, 0x00, 0x05, 0xc3, 0x00, 0x16, 0x06, 0xc8, 0x00, 0x06, 0x53, 0x2b, + 0x4e, 0x41, 0x25, 0x40, 0x45, 0xc3, 0x01, 0x0e, 0x25, 0x00, 0x48, 0x7d, + 0x15, 0x1f, 0x25, 0x40, 0x45, 0xc3, 0x01, 0x12, 0x25, 0x00, 0x48, 0x7d, + 0x15, 0x27, 0x25, 0x40, 0x51, 0xb7, 0x5a, 0x65, 0x25, 0x00, 0x4b, 0x96, + 0x9e, 0x56, 0x25, 0x00, 0x4c, 0x8f, 0x94, 0x53, 0x25, 0x40, 0xa4, 0x3a, + 0x4a, 0x0b, 0x00, 0x50, 0x25, 0x00, 0x07, 0xb3, 0x5e, 0x1e, 0x48, 0x32, + 0x00, 0x51, 0x25, 0xc0, 0x00, 0x05, 0x19, 0x00, 0x01, 0xff, 0x4a, 0x0b, + 0x00, 0x6c, 0x25, 0x00, 0x44, 0xc3, 0x00, 0x63, 0x25, 0x00, 0x45, 0xc8, + 0x00, 0x60, 0x25, 0x40, 0x4a, 0x0b, 0x00, 0x69, 0x25, 0x00, 0x44, 0xc3, + 0x00, 0x5d, 0x25, 0x00, 0x45, 0xc8, 0x00, 0x5a, 0x25, 0x40, 0x08, 0xe4, + 0x25, 0x17, 0x08, 0x0d, 0x49, 0x01, 0xff, 0x4a, 0x0b, 0x00, 0x66, 0x25, + 0x00, 0x44, 0xc3, 0x00, 0x57, 0x25, 0x00, 0x45, 0xc8, 0x00, 0x54, 0x25, + 0x40, 0x6a, 0x96, 0x03, 0x09, 0xce, 0x01, 0x06, 0x6d, 0x02, 0x01, 0xff, + 0x08, 0x84, 0x02, 0x06, 0x53, 0xaf, 0x4c, 0x1f, 0xcc, 0x41, 0x4b, 0xf8, + 0x02, 0x20, 0xcc, 0x01, 0x5c, 0x86, 0x18, 0x0a, 0xce, 0x41, 0x4a, 0xa1, + 0xa5, 0xf9, 0xf3, 0x01, 0xac, 0x18, 0x43, 0xd8, 0x25, 0xc8, 0x22, 0xc0, + 0x00, 0x06, 0x50, 0x00, 0x01, 0xff, 0x4f, 0x78, 0x6f, 0xd1, 0x29, 0x00, + 0x50, 0xb6, 0x66, 0xd2, 0x29, 0x40, 0x80, 0x06, 0x43, 0xa1, 0x01, 0xb3, + 0xf3, 0x41, 0x4a, 0xa7, 0xae, 0x4f, 0xf5, 0x01, 0x4a, 0x93, 0xb3, 0x63, + 0xf9, 0x41, 0x4b, 0x74, 0x97, 0x95, 0xf3, 0x41, 0x54, 0x24, 0x44, 0x7e, + 0xf3, 0x01, 0x03, 0xac, 0x05, 0x01, 0xff, 0x57, 0xbf, 0x1b, 0x3b, 0x29, + 0x00, 0x4d, 0x72, 0x0b, 0xdf, 0x23, 0x00, 0x05, 0x22, 0x00, 0x65, 0x15, + 0x80, 0x3c, 0x55, 0x05, 0xc3, 0x00, 0x37, 0x4b, 0xd8, 0x21, 0xdd, 0x23, + 0x00, 0x06, 0xc8, 0x00, 0x13, 0x4e, 0xc8, 0x26, 0xb5, 0x23, 0x80, 0x06, + 0x56, 0x54, 0x09, 0xe1, 0x23, 0x40, 0x58, 0xbe, 0x26, 0xb6, 0x23, 0x40, + 0xa3, 0x0c, 0x4c, 0x7f, 0x8f, 0x25, 0x2e, 0x00, 0x69, 0x8e, 0x04, 0xee, + 0xfb, 0x41, 0x45, 0x1e, 0x0b, 0x1f, 0x23, 0x00, 0x43, 0x27, 0x0d, 0x0c, + 0x23, 0x40, 0xa3, 0x0c, 0x4c, 0x7f, 0x8f, 0x24, 0x2e, 0x00, 0x6a, 0x18, + 0x03, 0xed, 0xfb, 0x41, 0x45, 0x1e, 0x0b, 0x1e, 0x23, 0x00, 0x43, 0x27, + 0x0d, 0x0d, 0x23, 0x40, 0x4c, 0x0c, 0x03, 0xea, 0xfb, 0x01, 0x4c, 0x32, + 0x11, 0xe2, 0xfb, 0x41, 0x4c, 0x0c, 0x03, 0xcb, 0x2b, 0x00, 0x10, 0x56, + 0x63, 0x50, 0x48, 0x94, 0x26, 0x21, 0x23, 0x00, 0x04, 0xc3, 0x00, 0x28, + 0x05, 0xc8, 0x00, 0x06, 0x4f, 0x65, 0x73, 0xe7, 0xcd, 0x41, 0x4c, 0xd7, + 0x21, 0x5c, 0x2e, 0x00, 0x09, 0x5d, 0x63, 0x01, 0xff, 0x44, 0x05, 0x44, + 0x5f, 0xcc, 0x01, 0x0c, 0x7b, 0x96, 0x01, 0xff, 0xd1, 0xe9, 0xcd, 0x01, + 0xd2, 0xeb, 0xcd, 0x41, 0x4c, 0xd7, 0x21, 0x5b, 0x2e, 0x00, 0x09, 0x5d, + 0x63, 0x01, 0xff, 0x44, 0x05, 0x44, 0x5d, 0xcc, 0x01, 0x0c, 0x7b, 0x96, + 0x01, 0xff, 0xd1, 0xed, 0xcd, 0x01, 0xd2, 0xef, 0xcd, 0x41, 0x44, 0x05, + 0x44, 0x5e, 0xcc, 0x01, 0x0c, 0x7b, 0x96, 0x01, 0xff, 0xd1, 0xf1, 0xcd, + 0x01, 0xd2, 0xf2, 0xcd, 0x01, 0xd3, 0xf3, 0xcd, 0x01, 0xd4, 0xf4, 0xcd, + 0x41, 0x0d, 0xdf, 0x82, 0xc5, 0x02, 0x07, 0xec, 0x05, 0x01, 0xff, 0xe1, + 0x1a, 0x31, 0x80, 0x8f, 0x02, 0xe2, 0x05, 0x31, 0x80, 0x85, 0x02, 0xe3, + 0x18, 0x31, 0x80, 0xfb, 0x01, 0xe4, 0x09, 0x31, 0x00, 0xe5, 0x1c, 0x31, + 0x80, 0xd4, 0x01, 0xe6, 0x08, 0x31, 0x00, 0xe7, 0x0d, 0x31, 0x80, 0xba, + 0x01, 0xe8, 0x0f, 0x31, 0x00, 0xe9, 0x27, 0x31, 0x80, 0x95, 0x01, 0xea, + 0x10, 0x31, 0x80, 0x8b, 0x01, 0xeb, 0x0e, 0x31, 0x80, 0x81, 0x01, 0xec, + 0x0c, 0x31, 0x80, 0x78, 0xed, 0x07, 0x31, 0x00, 0xee, 0x0b, 0x31, 0x80, + 0x62, 0xef, 0x1b, 0x31, 0x80, 0x3d, 0xf0, 0x06, 0x31, 0x00, 0xf1, 0x11, + 0x31, 0x00, 0xf2, 0x16, 0x31, 0x00, 0xf3, 0x19, 0x31, 0x80, 0x28, 0xf4, + 0x0a, 0x31, 0x00, 0xf5, 0x28, 0x31, 0x80, 0x19, 0xf6, 0x2a, 0x31, 0x00, + 0xf8, 0x12, 0x31, 0x00, 0xfa, 0x17, 0x31, 0xc0, 0x00, 0xe8, 0x13, 0x31, + 0x00, 0xe9, 0xa1, 0x31, 0x00, 0xf9, 0xba, 0x31, 0x40, 0x42, 0x4e, 0x1f, + 0xab, 0x31, 0x40, 0xe8, 0x15, 0x31, 0x40, 0x4f, 0x75, 0x3b, 0x2e, 0x31, + 0x00, 0xe5, 0xbe, 0x31, 0x00, 0xed, 0xb1, 0x31, 0x00, 0xae, 0x08, 0xef, + 0xa6, 0x31, 0x00, 0xf5, 0x21, 0x31, 0x40, 0xe7, 0xb2, 0x31, 0x00, 0xee, + 0xa7, 0x31, 0x40, 0xe7, 0x2b, 0x31, 0x80, 0x04, 0xee, 0x2f, 0x31, 0x40, + 0xe7, 0xad, 0x31, 0x40, 0xe8, 0xb9, 0x31, 0x40, 0xf7, 0xbd, 0x31, 0x40, + 0xe9, 0xa2, 0x31, 0x40, 0xe8, 0x2d, 0x31, 0x00, 0xed, 0xac, 0x31, 0x00, + 0x42, 0x4e, 0x1f, 0xaa, 0x31, 0x80, 0x08, 0xf2, 0xa8, 0x31, 0x00, 0xf5, + 0x29, 0x31, 0x40, 0xee, 0xb3, 0x31, 0x40, 0xe8, 0xb8, 0x31, 0x00, 0xee, + 0x2c, 0x31, 0x00, 0xf5, 0xa3, 0x31, 0x00, 0xf7, 0xbc, 0x31, 0x40, 0xe5, + 0xa4, 0x31, 0x00, 0xe8, 0x1d, 0x31, 0x00, 0xe9, 0x1f, 0x31, 0x00, 0xee, + 0x23, 0x31, 0x80, 0x04, 0xf2, 0x26, 0x31, 0x40, 0xe7, 0x25, 0x31, 0x00, + 0xee, 0xa5, 0x31, 0x40, 0xe8, 0x14, 0x31, 0x40, 0xf5, 0xa0, 0x31, 0x40, + 0xe8, 0xbf, 0x31, 0x00, 0xe9, 0x1e, 0x31, 0x80, 0x1c, 0xed, 0xb0, 0x31, + 0x00, 0xee, 0x22, 0x31, 0x80, 0x0b, 0xf5, 0x20, 0x31, 0xc0, 0x00, 0x42, + 0x4e, 0x1f, 0xaf, 0x31, 0x40, 0xe7, 0x24, 0x31, 0x00, 0xee, 0xa9, 0x31, + 0x40, 0x42, 0x4e, 0x1f, 0xae, 0x31, 0x40, 0xe7, 0xbb, 0x31, 0x00, 0xe8, + 0xb7, 0x31, 0x00, 0xeb, 0xb6, 0x31, 0x00, 0xf0, 0xb4, 0x31, 0x00, 0xf4, + 0xb5, 0x31, 0x40, 0xeb, 0x6e, 0xf5, 0x81, 0x06, 0x46, 0xda, 0xd3, 0x83, + 0xfa, 0x41, 0x44, 0xb9, 0x00, 0x16, 0xf5, 0x81, 0x04, 0xf3, 0xda, 0xf4, + 0x41, 0x45, 0xe1, 0xe1, 0xd1, 0xf4, 0x41, 0x55, 0xc7, 0x3a, 0xbd, 0xf7, + 0x01, 0x54, 0x58, 0x42, 0xb1, 0xf7, 0x01, 0x4b, 0x1b, 0x61, 0xa4, 0xf7, + 0x01, 0xb3, 0x11, 0x06, 0xad, 0x02, 0x01, 0xff, 0x46, 0x12, 0x03, 0x86, + 0xf7, 0x01, 0x46, 0xd6, 0x05, 0x90, 0xf7, 0x41, 0x46, 0x13, 0x19, 0xab, + 0xf7, 0x01, 0x52, 0xff, 0x52, 0xb7, 0xf7, 0x41, 0xa1, 0xe8, 0x0a, 0xaf, + 0x19, 0x02, 0xd6, 0x13, 0x01, 0xff, 0x80, 0x06, 0x47, 0x79, 0xcf, 0xd0, + 0xfa, 0x41, 0x44, 0x45, 0xef, 0xd8, 0xf4, 0x01, 0x45, 0xac, 0x21, 0x99, + 0xf4, 0x41, 0x03, 0x0f, 0x03, 0x0c, 0x44, 0x91, 0xcf, 0x3c, 0xf3, 0x01, + 0x45, 0x4a, 0xec, 0x21, 0xf4, 0x41, 0x07, 0xa8, 0xd3, 0x95, 0x02, 0x08, + 0xc8, 0xca, 0x01, 0xff, 0xd1, 0x00, 0xfb, 0x81, 0x87, 0x01, 0xd2, 0x01, + 0xfb, 0x81, 0x43, 0xd3, 0x03, 0xfb, 0x81, 0x1f, 0xd4, 0x07, 0xfb, 0x81, + 0x0d, 0xd5, 0x0f, 0xfb, 0x81, 0x04, 0xd6, 0x1e, 0xfb, 0x41, 0xd6, 0x2d, + 0xfb, 0x41, 0xd5, 0x16, 0xfb, 0x81, 0x04, 0xd6, 0x26, 0xfb, 0x41, 0xd6, + 0x35, 0xfb, 0x41, 0xd4, 0x0b, 0xfb, 0x81, 0x0d, 0xd5, 0x13, 0xfb, 0x81, + 0x04, 0xd6, 0x22, 0xfb, 0x41, 0xd6, 0x31, 0xfb, 0x41, 0xd5, 0x1a, 0xfb, + 0x81, 0x04, 0xd6, 0x29, 0xfb, 0x41, 0xd6, 0x39, 0xfb, 0x41, 0xd3, 0x05, + 0xfb, 0x81, 0x1b, 0xd4, 0x09, 0xfb, 0x81, 0x0d, 0xd5, 0x11, 0xfb, 0x81, + 0x04, 0xd6, 0x20, 0xfb, 0x41, 0xd6, 0x2f, 0xfb, 0x41, 0xd5, 0x18, 0xfb, + 0xc1, 0x00, 0xd6, 0x37, 0xfb, 0x41, 0xd4, 0x0d, 0xfb, 0x81, 0x0d, 0xd5, + 0x14, 0xfb, 0x81, 0x04, 0xd6, 0x24, 0xfb, 0x41, 0xd6, 0x33, 0xfb, 0x41, + 0xd5, 0x1c, 0xfb, 0x81, 0x04, 0xd6, 0x2b, 0xfb, 0x41, 0xd6, 0x3b, 0xfb, + 0x41, 0xd2, 0x02, 0xfb, 0x81, 0x40, 0xd3, 0x04, 0xfb, 0x81, 0x1f, 0xd4, + 0x08, 0xfb, 0x81, 0x0d, 0xd5, 0x10, 0xfb, 0x81, 0x04, 0xd6, 0x1f, 0xfb, + 0x41, 0xd6, 0x2e, 0xfb, 0x41, 0xd5, 0x17, 0xfb, 0x81, 0x04, 0xd6, 0x27, + 0xfb, 0x41, 0xd6, 0x36, 0xfb, 0x41, 0xd4, 0x0c, 0xfb, 0x81, 0x0a, 0x42, + 0x00, 0xc3, 0x32, 0xfb, 0x01, 0xd6, 0x23, 0xfb, 0x41, 0xd5, 0x1b, 0xfb, + 0x81, 0x04, 0xd6, 0x2a, 0xfb, 0x41, 0xd6, 0x3a, 0xfb, 0x41, 0xd3, 0x06, + 0xfb, 0x81, 0x1f, 0xd4, 0x0a, 0xfb, 0x81, 0x0d, 0xd5, 0x12, 0xfb, 0x81, + 0x04, 0xd6, 0x21, 0xfb, 0x41, 0xd6, 0x30, 0xfb, 0x41, 0xd5, 0x19, 0xfb, + 0x81, 0x04, 0xd6, 0x28, 0xfb, 0x41, 0xd6, 0x38, 0xfb, 0x41, 0xd4, 0x0e, + 0xfb, 0x81, 0x0d, 0xd5, 0x15, 0xfb, 0x81, 0x04, 0xd6, 0x25, 0xfb, 0x41, + 0xd6, 0x34, 0xfb, 0x41, 0xd5, 0x1d, 0xfb, 0x01, 0xd6, 0x2c, 0xfb, 0x41, + 0x91, 0x86, 0x04, 0x92, 0xf7, 0x01, 0xd3, 0x00, 0xcd, 0x81, 0x6f, 0xd4, + 0x03, 0xcd, 0x81, 0x2a, 0xd5, 0x09, 0xcd, 0x81, 0x0e, 0xd6, 0x18, 0xcd, + 0xc1, 0x00, 0xd7, 0x51, 0xcd, 0xc1, 0x00, 0xd8, 0xcb, 0xcd, 0x41, 0xd6, + 0x27, 0xcd, 0x81, 0x0a, 0x42, 0x04, 0xf5, 0xbb, 0xcd, 0x01, 0xd8, 0x80, + 0xcd, 0x41, 0xd7, 0x61, 0xcd, 0x01, 0xd8, 0x9c, 0xcd, 0x41, 0xd5, 0x10, + 0xcd, 0x81, 0x1c, 0x96, 0x0d, 0xd7, 0x3d, 0xcd, 0x81, 0x04, 0xd8, 0x78, + 0xcd, 0x41, 0xd8, 0xb3, 0xcd, 0x41, 0xd7, 0x59, 0xcd, 0x81, 0x04, 0xd8, + 0x96, 0xcd, 0x41, 0xd8, 0xd3, 0xcd, 0x41, 0xd6, 0x2f, 0xcd, 0x81, 0x0d, + 0xd7, 0x4b, 0xcd, 0x81, 0x04, 0xd8, 0x88, 0xcd, 0x41, 0xd8, 0xc3, 0xcd, + 0x41, 0xd7, 0x69, 0xcd, 0x81, 0x04, 0xd8, 0xa4, 0xcd, 0x41, 0xd8, 0xe1, + 0xcd, 0x41, 0xd4, 0x06, 0xcd, 0x81, 0x40, 0x95, 0x1f, 0xd6, 0x1c, 0xcd, + 0x81, 0x0d, 0xd7, 0x39, 0xcd, 0x81, 0x04, 0xd8, 0x74, 0xcd, 0x41, 0xd8, + 0xaf, 0xcd, 0x41, 0xd7, 0x55, 0xcd, 0x81, 0x04, 0xd8, 0x93, 0xcd, 0x41, + 0xd8, 0xcf, 0xcd, 0x41, 0xd6, 0x2b, 0xcd, 0x81, 0x0d, 0xd7, 0x48, 0xcd, + 0x81, 0x04, 0xd8, 0x84, 0xcd, 0x41, 0xd8, 0xbf, 0xcd, 0x41, 0xd7, 0x65, + 0xcd, 0x81, 0x04, 0xd8, 0xa0, 0xcd, 0x41, 0xd8, 0xde, 0xcd, 0x41, 0xd5, + 0x14, 0xcd, 0x81, 0x1f, 0xd6, 0x23, 0xcd, 0x81, 0x0d, 0xd7, 0x41, 0xcd, + 0x81, 0x04, 0xd8, 0x7c, 0xcd, 0x41, 0xd8, 0xb7, 0xcd, 0x41, 0xd7, 0x5d, + 0xcd, 0x81, 0x04, 0xd8, 0x99, 0xcd, 0x41, 0xd8, 0xd7, 0xcd, 0x41, 0xd6, + 0x33, 0xcd, 0x81, 0x0d, 0xd7, 0x4e, 0xcd, 0x81, 0x04, 0xd8, 0x8c, 0xcd, + 0x41, 0xd8, 0xc7, 0xcd, 0x41, 0xd7, 0x6d, 0xcd, 0x01, 0xd8, 0xa8, 0xcd, + 0x41, 0xd3, 0x01, 0xcd, 0x81, 0x7c, 0x94, 0x43, 0xd5, 0x0b, 0xcd, 0x81, + 0x1f, 0xd6, 0x1a, 0xcd, 0x81, 0x0d, 0xd7, 0x37, 0xcd, 0x81, 0x04, 0xd8, + 0x72, 0xcd, 0x41, 0xd8, 0xad, 0xcd, 0x41, 0xd7, 0x53, 0xcd, 0x81, 0x04, + 0xd8, 0x91, 0xcd, 0x41, 0xd8, 0xcd, 0xcd, 0x41, 0xd6, 0x29, 0xcd, 0x81, + 0x0d, 0xd7, 0x46, 0xcd, 0x81, 0x04, 0xd8, 0x82, 0xcd, 0x41, 0xd8, 0xbd, + 0xcd, 0x41, 0xd7, 0x63, 0xcd, 0x81, 0x04, 0xd8, 0x9e, 0xcd, 0x41, 0xd8, + 0xdc, 0xcd, 0x41, 0xd5, 0x12, 0xcd, 0x81, 0x1b, 0xd6, 0x21, 0xcd, 0x81, + 0x0d, 0xd7, 0x3f, 0xcd, 0x81, 0x04, 0xd8, 0x7a, 0xcd, 0x41, 0xd8, 0xb5, + 0xcd, 0x41, 0xd7, 0x5b, 0xcd, 0xc1, 0x00, 0xd8, 0xd5, 0xcd, 0x41, 0xd6, + 0x31, 0xcd, 0x81, 0x0a, 0x42, 0x04, 0xf5, 0xc5, 0xcd, 0x01, 0xd8, 0x8a, + 0xcd, 0x41, 0xd7, 0x6b, 0xcd, 0x01, 0xd8, 0xa6, 0xcd, 0x41, 0xd4, 0x08, + 0xcd, 0x81, 0x43, 0xd5, 0x0e, 0xcd, 0x81, 0x1f, 0xd6, 0x1e, 0xcd, 0x81, + 0x0d, 0xd7, 0x3b, 0xcd, 0x81, 0x04, 0xd8, 0x76, 0xcd, 0x41, 0xd8, 0xb1, + 0xcd, 0x41, 0xd7, 0x57, 0xcd, 0x81, 0x04, 0xd8, 0x94, 0xcd, 0x41, 0xd8, + 0xd1, 0xcd, 0x41, 0xd6, 0x2d, 0xcd, 0x81, 0x0d, 0xd7, 0x49, 0xcd, 0x81, + 0x04, 0xd8, 0x86, 0xcd, 0x41, 0xd8, 0xc1, 0xcd, 0x41, 0xd7, 0x67, 0xcd, + 0x81, 0x04, 0xd8, 0xa2, 0xcd, 0x41, 0xd8, 0xdf, 0xcd, 0x41, 0xd5, 0x16, + 0xcd, 0x81, 0x1f, 0xd6, 0x25, 0xcd, 0x81, 0x0d, 0xd7, 0x43, 0xcd, 0x81, + 0x04, 0xd8, 0x7e, 0xcd, 0x41, 0xd8, 0xb9, 0xcd, 0x41, 0xd7, 0x5f, 0xcd, + 0x81, 0x04, 0xd8, 0x9b, 0xcd, 0x41, 0xd8, 0xd9, 0xcd, 0x41, 0xd6, 0x35, + 0xcd, 0x81, 0x0d, 0xd7, 0x50, 0xcd, 0x81, 0x04, 0xd8, 0x8e, 0xcd, 0x41, + 0xd8, 0xc9, 0xcd, 0x41, 0xd7, 0x6f, 0xcd, 0x81, 0x04, 0xd8, 0xaa, 0xcd, + 0x41, 0xd8, 0xe5, 0xcd, 0x41, 0x92, 0x8d, 0x02, 0x93, 0x8b, 0x01, 0xd4, + 0x04, 0xcd, 0x81, 0x43, 0xd5, 0x0a, 0xcd, 0x81, 0x1f, 0xd6, 0x19, 0xcd, + 0x81, 0x0d, 0xd7, 0x36, 0xcd, 0x81, 0x04, 0xd8, 0x71, 0xcd, 0x41, 0xd8, + 0xac, 0xcd, 0x41, 0xd7, 0x52, 0xcd, 0x81, 0x04, 0xd8, 0x90, 0xcd, 0x41, + 0xd8, 0xcc, 0xcd, 0x41, 0xd6, 0x28, 0xcd, 0x81, 0x0d, 0xd7, 0x45, 0xcd, + 0x81, 0x04, 0xd8, 0x81, 0xcd, 0x41, 0xd8, 0xbc, 0xcd, 0x41, 0xd7, 0x62, + 0xcd, 0x81, 0x04, 0xd8, 0x9d, 0xcd, 0x41, 0xd8, 0xdb, 0xcd, 0x41, 0xd5, + 0x11, 0xcd, 0x81, 0x1f, 0xd6, 0x20, 0xcd, 0x81, 0x0d, 0xd7, 0x3e, 0xcd, + 0x81, 0x04, 0xd8, 0x79, 0xcd, 0x41, 0xd8, 0xb4, 0xcd, 0x41, 0xd7, 0x5a, + 0xcd, 0x81, 0x04, 0xd8, 0x97, 0xcd, 0x41, 0xd8, 0xd4, 0xcd, 0x41, 0xd6, + 0x30, 0xcd, 0x81, 0x0d, 0xd7, 0x4c, 0xcd, 0x81, 0x04, 0xd8, 0x89, 0xcd, + 0x41, 0xd8, 0xc4, 0xcd, 0x41, 0xd7, 0x6a, 0xcd, 0x81, 0x04, 0xd8, 0xa5, + 0xcd, 0x41, 0xd8, 0xe2, 0xcd, 0x41, 0xd4, 0x07, 0xcd, 0x81, 0x37, 0xd5, + 0x0d, 0xcd, 0x81, 0x1b, 0xd6, 0x1d, 0xcd, 0x81, 0x0d, 0xd7, 0x3a, 0xcd, + 0x81, 0x04, 0xd8, 0x75, 0xcd, 0x41, 0xd8, 0xb0, 0xcd, 0x41, 0xd7, 0x56, + 0xcd, 0xc1, 0x00, 0xd8, 0xd0, 0xcd, 0x41, 0xd6, 0x2c, 0xcd, 0x81, 0x0a, + 0x42, 0x04, 0xf5, 0xc0, 0xcd, 0x01, 0xd8, 0x85, 0xcd, 0x41, 0xd7, 0x66, + 0xcd, 0x01, 0xd8, 0xa1, 0xcd, 0x41, 0xd5, 0x15, 0xcd, 0x81, 0x1f, 0xd6, + 0x24, 0xcd, 0x81, 0x0d, 0xd7, 0x42, 0xcd, 0x81, 0x04, 0xd8, 0x7d, 0xcd, + 0x41, 0xd8, 0xb8, 0xcd, 0x41, 0xd7, 0x5e, 0xcd, 0x81, 0x04, 0xd8, 0x9a, + 0xcd, 0x41, 0xd8, 0xd8, 0xcd, 0x41, 0xd6, 0x34, 0xcd, 0x81, 0x0d, 0xd7, + 0x4f, 0xcd, 0x81, 0x04, 0xd8, 0x8d, 0xcd, 0x41, 0xd8, 0xc8, 0xcd, 0x41, + 0xd7, 0x6e, 0xcd, 0x81, 0x04, 0xd8, 0xa9, 0xcd, 0x41, 0xd8, 0xe4, 0xcd, + 0x41, 0xd3, 0x02, 0xcd, 0x81, 0x8b, 0x01, 0xd4, 0x05, 0xcd, 0x81, 0x43, + 0xd5, 0x0c, 0xcd, 0x81, 0x1f, 0xd6, 0x1b, 0xcd, 0x81, 0x0d, 0xd7, 0x38, + 0xcd, 0x81, 0x04, 0xd8, 0x73, 0xcd, 0x41, 0xd8, 0xae, 0xcd, 0x41, 0xd7, + 0x54, 0xcd, 0x81, 0x04, 0xd8, 0x92, 0xcd, 0x41, 0xd8, 0xce, 0xcd, 0x41, + 0xd6, 0x2a, 0xcd, 0x81, 0x0d, 0xd7, 0x47, 0xcd, 0x81, 0x04, 0xd8, 0x83, + 0xcd, 0x41, 0xd8, 0xbe, 0xcd, 0x41, 0xd7, 0x64, 0xcd, 0x81, 0x04, 0xd8, + 0x9f, 0xcd, 0x41, 0xd8, 0xdd, 0xcd, 0x41, 0xd5, 0x13, 0xcd, 0x81, 0x1f, + 0xd6, 0x22, 0xcd, 0x81, 0x0d, 0xd7, 0x40, 0xcd, 0x81, 0x04, 0xd8, 0x7b, + 0xcd, 0x41, 0xd8, 0xb6, 0xcd, 0x41, 0xd7, 0x5c, 0xcd, 0x81, 0x04, 0xd8, + 0x98, 0xcd, 0x41, 0xd8, 0xd6, 0xcd, 0x41, 0xd6, 0x32, 0xcd, 0x81, 0x0d, + 0xd7, 0x4d, 0xcd, 0x81, 0x04, 0xd8, 0x8b, 0xcd, 0x41, 0xd8, 0xc6, 0xcd, + 0x41, 0xd7, 0x6c, 0xcd, 0x81, 0x04, 0xd8, 0xa7, 0xcd, 0x41, 0xd8, 0xe3, + 0xcd, 0x41, 0x94, 0x43, 0xd5, 0x0f, 0xcd, 0x81, 0x1f, 0xd6, 0x1f, 0xcd, + 0x81, 0x0d, 0xd7, 0x3c, 0xcd, 0x81, 0x04, 0xd8, 0x77, 0xcd, 0x41, 0xd8, + 0xb2, 0xcd, 0x41, 0xd7, 0x58, 0xcd, 0x81, 0x04, 0xd8, 0x95, 0xcd, 0x41, + 0xd8, 0xd2, 0xcd, 0x41, 0xd6, 0x2e, 0xcd, 0x81, 0x0d, 0xd7, 0x4a, 0xcd, + 0x81, 0x04, 0xd8, 0x87, 0xcd, 0x41, 0xd8, 0xc2, 0xcd, 0x41, 0xd7, 0x68, + 0xcd, 0x81, 0x04, 0xd8, 0xa3, 0xcd, 0x41, 0xd8, 0xe0, 0xcd, 0x41, 0xd5, + 0x17, 0xcd, 0x81, 0x1b, 0xd6, 0x26, 0xcd, 0x81, 0x0d, 0xd7, 0x44, 0xcd, + 0x81, 0x04, 0xd8, 0x7f, 0xcd, 0x41, 0xd8, 0xba, 0xcd, 0x41, 0xd7, 0x60, + 0xcd, 0xc1, 0x00, 0xd8, 0xda, 0xcd, 0x41, 0x96, 0x0a, 0x42, 0x04, 0xf5, + 0xca, 0xcd, 0x01, 0xd8, 0x8f, 0xcd, 0x41, 0xd7, 0x70, 0xcd, 0x01, 0xd8, + 0xab, 0xcd, 0x41, 0x02, 0x36, 0x01, 0x06, 0x49, 0x7b, 0x99, 0x22, 0x24, + 0x40, 0x80, 0x32, 0x8d, 0x01, 0xff, 0x0a, 0x0c, 0x1a, 0x19, 0x0f, 0x96, + 0x6f, 0x01, 0xff, 0xe3, 0x2d, 0x21, 0x00, 0xe8, 0x0c, 0x21, 0x00, 0xe9, + 0x11, 0x21, 0x00, 0xf2, 0x1c, 0x21, 0x00, 0xfa, 0x28, 0x21, 0x40, 0x50, + 0xa7, 0x23, 0xb6, 0x27, 0x00, 0x50, 0xb3, 0x02, 0xb5, 0x27, 0x00, 0x50, + 0x7c, 0x40, 0xb4, 0x27, 0x40, 0x46, 0x40, 0xda, 0xd3, 0x29, 0x00, 0xa3, + 0xb4, 0x07, 0xa4, 0xc4, 0x06, 0xa6, 0xa4, 0x06, 0xa8, 0xf7, 0x05, 0xac, + 0xd4, 0x04, 0xad, 0xe5, 0x03, 0xae, 0xd6, 0x03, 0x47, 0xa1, 0xd3, 0xc4, + 0x2b, 0x00, 0xb0, 0xb1, 0x03, 0x56, 0x81, 0x36, 0x53, 0x27, 0x00, 0xb2, + 0xaa, 0x02, 0xb3, 0x9f, 0x01, 0xb4, 0x6f, 0xb5, 0x2c, 0x03, 0x32, 0x00, + 0x01, 0xff, 0x06, 0x35, 0x00, 0x17, 0x08, 0x84, 0x0a, 0x01, 0xff, 0x47, + 0x95, 0x44, 0x98, 0xf7, 0x01, 0x47, 0x68, 0x0a, 0x9e, 0xf7, 0x01, 0x46, + 0xd6, 0x05, 0x1d, 0x2b, 0x40, 0x47, 0xdf, 0x66, 0x2e, 0x2b, 0x00, 0x49, + 0x83, 0x47, 0xae, 0x25, 0x40, 0x59, 0x15, 0x25, 0x7b, 0x26, 0x00, 0xb0, + 0x01, 0xff, 0x58, 0xd6, 0x26, 0xa2, 0xf5, 0x01, 0x0a, 0x8c, 0x0b, 0x16, + 0x04, 0x6f, 0x02, 0x06, 0x5b, 0xcf, 0x01, 0x9d, 0x2b, 0x40, 0x4d, 0x4d, + 0x35, 0xe4, 0x25, 0x00, 0x4e, 0x68, 0x29, 0xe5, 0x25, 0x40, 0x4f, 0x3f, + 0x6c, 0xeb, 0x23, 0x00, 0x58, 0x5e, 0x29, 0x81, 0xf7, 0x01, 0x4e, 0x26, + 0x0c, 0xb4, 0x25, 0x00, 0x48, 0x01, 0x02, 0xb2, 0x25, 0x40, 0x48, 0x17, + 0x3d, 0x0e, 0x26, 0x00, 0x04, 0x99, 0xf0, 0x12, 0x52, 0x55, 0x54, 0x7f, + 0xf5, 0x01, 0x44, 0x1c, 0x77, 0xdf, 0x26, 0x00, 0x57, 0x07, 0x32, 0xd6, + 0x26, 0x40, 0x47, 0x95, 0x44, 0x97, 0xf7, 0x01, 0x47, 0x68, 0x0a, 0x9d, + 0xf7, 0x01, 0x46, 0xd6, 0x05, 0x8c, 0xf7, 0x41, 0x4e, 0xb5, 0x75, 0x00, + 0x27, 0x00, 0x47, 0x47, 0x3e, 0x02, 0x27, 0x00, 0x4a, 0x86, 0x5f, 0x17, + 0x26, 0x00, 0x53, 0xc1, 0x4a, 0x71, 0xf5, 0x01, 0x0e, 0x89, 0x79, 0x60, + 0xad, 0x34, 0x46, 0x72, 0xde, 0xc7, 0x26, 0x00, 0x49, 0xe6, 0xbd, 0x60, + 0x26, 0x00, 0x45, 0xd7, 0x05, 0xa0, 0x25, 0x80, 0x0c, 0x43, 0x32, 0x13, + 0x05, 0x26, 0x00, 0x4c, 0x6f, 0x96, 0x00, 0x26, 0x40, 0x80, 0x01, 0xff, + 0x46, 0x03, 0x8d, 0x32, 0xf5, 0x01, 0x47, 0xbb, 0x68, 0xc0, 0x2b, 0x00, + 0x48, 0x38, 0xc6, 0xf9, 0x23, 0x40, 0x04, 0x5f, 0x07, 0x06, 0x4a, 0x5d, + 0x95, 0x3b, 0x26, 0x40, 0x47, 0x95, 0x44, 0x29, 0x2b, 0x00, 0x47, 0x68, + 0x0a, 0x2a, 0x2b, 0x00, 0xb3, 0x06, 0x53, 0x3e, 0x4e, 0xcd, 0xfb, 0x41, + 0x45, 0xd7, 0x05, 0xaa, 0x25, 0x00, 0x43, 0x32, 0x13, 0x51, 0x2b, 0x40, + 0x46, 0x12, 0x03, 0x84, 0xf7, 0x01, 0x46, 0xd6, 0x05, 0x8d, 0xf7, 0x41, + 0x48, 0x84, 0x47, 0xac, 0x25, 0x00, 0x04, 0xc9, 0x00, 0x06, 0x46, 0xf0, + 0xde, 0xf6, 0xf3, 0x41, 0x80, 0x56, 0x0a, 0x8c, 0x0b, 0x1e, 0x06, 0xa9, + 0x01, 0x01, 0xff, 0x45, 0xce, 0x00, 0xa1, 0x27, 0x80, 0x0c, 0x46, 0xb2, + 0x21, 0x4d, 0x20, 0x00, 0x55, 0xd5, 0x01, 0x9e, 0x2b, 0x40, 0x44, 0xe6, + 0x01, 0xa4, 0x27, 0x40, 0x4f, 0x3f, 0x6c, 0xe9, 0x23, 0x80, 0x27, 0x58, + 0x5e, 0x29, 0x82, 0xf7, 0x01, 0xb0, 0x13, 0x4e, 0x26, 0x0c, 0xb8, 0x25, + 0x00, 0x48, 0x01, 0x02, 0xb6, 0x25, 0xc0, 0x00, 0x59, 0x3a, 0x23, 0xef, + 0x23, 0x40, 0x47, 0xe1, 0xc9, 0x53, 0x2b, 0x00, 0x46, 0xea, 0x49, 0xba, + 0x25, 0x40, 0x52, 0x9a, 0x1e, 0xed, 0x23, 0x40, 0x09, 0x9c, 0x01, 0x06, + 0x4e, 0x5d, 0x7d, 0xb3, 0xce, 0x41, 0x4e, 0xe0, 0x26, 0x9d, 0xf5, 0x01, + 0x45, 0x8f, 0x13, 0x1b, 0x26, 0x40, 0x4c, 0x67, 0x8c, 0xb0, 0x25, 0x00, + 0x02, 0x92, 0x01, 0x06, 0x46, 0xf9, 0xd4, 0x88, 0xf5, 0x41, 0x44, 0x2c, + 0x33, 0xf2, 0xf3, 0x01, 0x45, 0xe3, 0xc9, 0x1f, 0x2b, 0x40, 0x4b, 0x98, + 0x92, 0x6f, 0xcc, 0x01, 0x42, 0x16, 0x18, 0x12, 0x27, 0x40, 0x06, 0x45, + 0x04, 0x06, 0x4a, 0xd9, 0xae, 0xb8, 0x26, 0x40, 0xa4, 0x4d, 0xac, 0x38, + 0x57, 0xf3, 0x30, 0xf5, 0x23, 0x80, 0x2b, 0xb3, 0x0d, 0x54, 0x7c, 0x46, + 0xf6, 0x23, 0xc0, 0x00, 0x48, 0xba, 0x68, 0xc5, 0x2b, 0x40, 0x05, 0x5e, + 0x07, 0x06, 0x45, 0xd7, 0x05, 0xfc, 0x25, 0x40, 0x47, 0x95, 0x44, 0x99, + 0xf7, 0x01, 0x47, 0x68, 0x0a, 0x9f, 0xf7, 0x01, 0x46, 0xd6, 0x05, 0xfe, + 0x25, 0x40, 0x48, 0xba, 0x68, 0xc8, 0x2b, 0x40, 0x55, 0x64, 0x35, 0xf4, + 0x23, 0x80, 0x06, 0x46, 0x69, 0x0a, 0x27, 0x2b, 0x40, 0x48, 0xba, 0x68, + 0xc7, 0x2b, 0x40, 0x46, 0x96, 0x44, 0x25, 0x2b, 0x00, 0x55, 0xc2, 0x33, + 0xf7, 0x23, 0xc0, 0x00, 0x48, 0xba, 0x68, 0xc6, 0x2b, 0x40, 0x05, 0x28, + 0x1c, 0x70, 0x03, 0xc4, 0x00, 0x19, 0xaf, 0x01, 0xff, 0x04, 0x15, 0x01, + 0x06, 0x45, 0x4b, 0x0a, 0xeb, 0x29, 0x40, 0x4d, 0x4d, 0x35, 0xe3, 0x25, + 0x00, 0x4e, 0x68, 0x29, 0xe2, 0x25, 0x40, 0x80, 0x3a, 0x0a, 0x8c, 0x0b, + 0x11, 0x06, 0xa9, 0x01, 0x01, 0xff, 0x46, 0xb2, 0x21, 0x4c, 0x20, 0x00, + 0x55, 0xd5, 0x01, 0x9c, 0x2b, 0x40, 0x4f, 0x3f, 0x6c, 0xea, 0x23, 0x80, + 0x18, 0x58, 0x5e, 0x29, 0x80, 0xf7, 0x01, 0x47, 0xe9, 0x49, 0xc4, 0x25, + 0x00, 0x4e, 0x26, 0x0c, 0xc2, 0x25, 0x00, 0x48, 0x01, 0x02, 0xc0, 0x25, + 0x40, 0x52, 0x9a, 0x1e, 0xee, 0x23, 0x40, 0x4a, 0x81, 0xac, 0xd8, 0x26, + 0x00, 0x09, 0x9c, 0x01, 0x01, 0xff, 0x4e, 0xe0, 0x26, 0x9c, 0xf5, 0x01, + 0x45, 0x8f, 0x13, 0x1a, 0x26, 0x40, 0x46, 0x12, 0x03, 0x24, 0x2b, 0x80, + 0x06, 0x46, 0xd6, 0x05, 0x1b, 0x2b, 0x40, 0x07, 0x57, 0xcd, 0x01, 0xff, + 0xac, 0x0c, 0x55, 0xe5, 0x3d, 0x6d, 0xcc, 0x01, 0x55, 0xb7, 0x3e, 0x6c, + 0xcc, 0x41, 0x53, 0x32, 0x49, 0x6b, 0xcc, 0x01, 0x54, 0xec, 0x44, 0x6e, + 0xcc, 0x41, 0x55, 0x4d, 0x39, 0xaa, 0xf5, 0x01, 0xa5, 0x0f, 0xaf, 0x01, + 0xff, 0x50, 0xd6, 0x66, 0x2c, 0x2b, 0x00, 0x47, 0xfe, 0xd6, 0xd7, 0x29, + 0x40, 0x43, 0x2c, 0x01, 0xa4, 0xf5, 0x81, 0x06, 0x45, 0x8f, 0xd1, 0x22, + 0x2b, 0x40, 0x45, 0x9e, 0x27, 0x65, 0x26, 0x40, 0xac, 0x0f, 0xaf, 0x01, + 0xff, 0x44, 0x1b, 0x1e, 0xbf, 0xf5, 0x01, 0x4f, 0x64, 0x74, 0x26, 0x27, + 0x40, 0x42, 0x23, 0x02, 0x91, 0x26, 0x00, 0x46, 0xae, 0x0f, 0x3f, 0x27, + 0x40, 0x46, 0x96, 0x44, 0xc6, 0x25, 0x80, 0x45, 0x03, 0xa6, 0x01, 0x19, + 0xb2, 0x01, 0xff, 0x07, 0x39, 0xca, 0x06, 0x45, 0x98, 0xe9, 0x22, 0xf3, + 0x41, 0x44, 0xb2, 0x34, 0xc3, 0x26, 0x00, 0x43, 0x41, 0x18, 0xc2, 0x26, + 0x40, 0x58, 0xd6, 0x26, 0xa3, 0xf5, 0x01, 0x0a, 0x8c, 0x0b, 0x06, 0x5b, + 0xcf, 0x01, 0x9f, 0x2b, 0x40, 0x4f, 0x3f, 0x6c, 0xec, 0x23, 0x00, 0x58, + 0x5e, 0x29, 0x83, 0xf7, 0x01, 0x4e, 0x26, 0x0c, 0xbe, 0x25, 0x00, 0x48, + 0x01, 0x02, 0xbc, 0x25, 0x40, 0x80, 0x01, 0xff, 0x47, 0xbb, 0x68, 0xc1, + 0x2b, 0x00, 0x4d, 0x12, 0x86, 0x56, 0x27, 0x00, 0x48, 0x40, 0xc9, 0xde, + 0x2b, 0x00, 0x44, 0x9f, 0x27, 0x66, 0x26, 0x00, 0x4f, 0xcd, 0x74, 0xea, + 0x29, 0x40, 0x50, 0xc6, 0x62, 0x2c, 0x27, 0x00, 0x05, 0x4b, 0x88, 0x79, + 0x45, 0x13, 0x03, 0xcf, 0x25, 0x80, 0x52, 0x48, 0x10, 0xc8, 0x63, 0x26, + 0x00, 0x4e, 0xd5, 0x7b, 0xe8, 0x26, 0x00, 0x06, 0x69, 0x41, 0x01, 0xff, + 0x0e, 0xe0, 0x04, 0x31, 0x0e, 0x43, 0x79, 0x21, 0x0f, 0xa2, 0x72, 0x11, + 0x0c, 0x9e, 0x19, 0x01, 0xff, 0x4f, 0x4d, 0x1a, 0xaa, 0x2b, 0x00, 0x50, + 0xb3, 0x02, 0xab, 0x2b, 0x40, 0x4f, 0x34, 0x0c, 0xaf, 0x2b, 0x00, 0x4d, + 0xc1, 0x20, 0xad, 0x2b, 0x40, 0x4f, 0x34, 0x0c, 0xae, 0x2b, 0x00, 0x4d, + 0xc1, 0x20, 0xac, 0x2b, 0x40, 0x4f, 0x4d, 0x1a, 0xa8, 0x2b, 0x00, 0x50, + 0xb3, 0x02, 0xa9, 0x2b, 0x40, 0x80, 0x01, 0xff, 0x4a, 0x65, 0xaa, 0xfa, + 0x23, 0x00, 0x05, 0x51, 0x00, 0x01, 0xff, 0x4a, 0xcc, 0x41, 0xed, 0x29, + 0x00, 0x4e, 0xb1, 0x7d, 0x89, 0x26, 0x00, 0x4f, 0xbe, 0x74, 0x88, 0x26, + 0x40, 0x45, 0x25, 0xe4, 0x57, 0xfa, 0x01, 0x46, 0x2e, 0xda, 0x5d, 0x26, + 0x80, 0xed, 0x01, 0x4a, 0x15, 0xaa, 0x49, 0xfa, 0x81, 0xdf, 0x01, 0x44, + 0xbd, 0xef, 0x56, 0xfa, 0x01, 0xab, 0x73, 0x44, 0xfd, 0xf1, 0x5f, 0x26, + 0x80, 0x5b, 0x45, 0x52, 0xbe, 0x5b, 0x26, 0x80, 0x43, 0x44, 0x5d, 0xf2, + 0x5c, 0x26, 0x80, 0x2b, 0x07, 0x27, 0x0a, 0x01, 0xff, 0x46, 0x2e, 0xda, + 0x27, 0xfa, 0x01, 0xab, 0x12, 0x44, 0xfd, 0xf1, 0x29, 0xfa, 0x01, 0x45, + 0x52, 0xbe, 0x25, 0xfa, 0x01, 0x44, 0x5d, 0xf2, 0x26, 0xfa, 0x41, 0x43, + 0xa1, 0x01, 0x24, 0xfa, 0x01, 0x45, 0x4e, 0x09, 0x28, 0xfa, 0x41, 0x09, + 0xa3, 0x2c, 0x01, 0xff, 0x4e, 0xac, 0x2c, 0x11, 0xfa, 0x01, 0x5b, 0xbc, + 0x1d, 0x3b, 0xfa, 0x41, 0x09, 0xa3, 0x2c, 0x01, 0xff, 0x4e, 0xac, 0x2c, + 0x10, 0xfa, 0x01, 0x5b, 0xbc, 0x1d, 0x3a, 0xfa, 0x41, 0x09, 0xa3, 0x2c, + 0x01, 0xff, 0x4e, 0xac, 0x2c, 0x14, 0xfa, 0x01, 0x5b, 0xbc, 0x1d, 0x3e, + 0xfa, 0x41, 0x43, 0xa1, 0x01, 0x5a, 0x26, 0x80, 0x4c, 0x45, 0x4e, 0x09, + 0x5e, 0x26, 0xc0, 0x00, 0x09, 0xa3, 0x2c, 0x15, 0x8d, 0x01, 0xff, 0x46, + 0x2e, 0xda, 0x53, 0xfa, 0x01, 0x45, 0x52, 0xbe, 0x51, 0xfa, 0x01, 0x44, + 0x5d, 0xf2, 0x52, 0xfa, 0x41, 0x52, 0xcd, 0x51, 0x07, 0xfa, 0x01, 0x4e, + 0xac, 0x2c, 0x13, 0xfa, 0x01, 0x5f, 0x6d, 0x11, 0x1c, 0xfa, 0x01, 0xb4, + 0x01, 0xff, 0x5c, 0xfa, 0x17, 0x46, 0xfa, 0x01, 0x0b, 0xbd, 0x1d, 0x01, + 0xff, 0x4f, 0xc8, 0x1d, 0x3d, 0xfa, 0x01, 0x53, 0xf2, 0x4d, 0x31, 0xfa, + 0x41, 0x09, 0xa3, 0x2c, 0x01, 0xff, 0x4e, 0xac, 0x2c, 0x0f, 0xfa, 0x01, + 0x5b, 0xbc, 0x1d, 0x39, 0xfa, 0x41, 0x57, 0xa3, 0x2c, 0x4c, 0xfa, 0x41, + 0x09, 0xa3, 0x2c, 0x01, 0xff, 0x4e, 0xac, 0x2c, 0x12, 0xfa, 0x01, 0x5b, + 0xbc, 0x1d, 0x3c, 0xfa, 0x41, 0x04, 0x20, 0x25, 0x4d, 0x02, 0xa3, 0x01, + 0x3d, 0x44, 0xdd, 0xf0, 0x59, 0xf4, 0x01, 0x02, 0x60, 0x07, 0x27, 0x4c, + 0xf7, 0x92, 0x23, 0x26, 0x00, 0xb2, 0x15, 0x43, 0x21, 0x1d, 0xac, 0xf9, + 0x01, 0xb4, 0x01, 0xff, 0x49, 0x4a, 0xb7, 0xbf, 0x20, 0x00, 0x47, 0x27, + 0x91, 0xe6, 0xfa, 0x41, 0xe4, 0x26, 0xf4, 0x01, 0x4a, 0xdb, 0xb1, 0x82, + 0xf3, 0x41, 0x46, 0x1e, 0xdb, 0xe2, 0xf9, 0x01, 0x45, 0x3b, 0xe7, 0xb1, + 0xf3, 0x41, 0x4f, 0x66, 0x72, 0xf9, 0x29, 0x00, 0x47, 0x4f, 0x31, 0xf8, + 0x29, 0x40, 0xe5, 0xb2, 0xf6, 0x01, 0x43, 0x2b, 0x24, 0xb4, 0xf6, 0x41, + 0xa4, 0x92, 0x04, 0x0b, 0x39, 0x9c, 0x85, 0x04, 0x52, 0x81, 0x52, 0x6c, + 0x1c, 0x01, 0x07, 0xec, 0x05, 0xee, 0x01, 0x07, 0xff, 0x39, 0x6d, 0x05, + 0x5a, 0x03, 0x44, 0x0b, 0x40, 0x77, 0x06, 0x4e, 0xd7, 0x7e, 0x43, 0x1c, + 0x41, 0xa1, 0x2c, 0xe5, 0x38, 0x1c, 0x01, 0xe9, 0x30, 0x1c, 0x81, 0x1f, + 0xef, 0x3a, 0x1c, 0x01, 0xf5, 0x32, 0x1c, 0x81, 0x12, 0x08, 0x22, 0xc1, + 0x01, 0xff, 0xec, 0x36, 0x1c, 0x01, 0xf2, 0x34, 0x1c, 0xc1, 0x00, 0xf2, + 0x35, 0x1c, 0x41, 0xf5, 0x33, 0x1c, 0x41, 0xe9, 0x31, 0x1c, 0x41, 0xe1, + 0x2f, 0x1c, 0x01, 0xe9, 0x39, 0x1c, 0x01, 0xf5, 0x3b, 0x1c, 0x41, 0xa1, + 0x17, 0x4b, 0xd7, 0x23, 0x3c, 0x1c, 0x01, 0x02, 0x02, 0x00, 0x01, 0xff, + 0x44, 0xe5, 0x23, 0x3f, 0x1c, 0x01, 0x45, 0xec, 0x4b, 0x3e, 0x1c, 0x41, + 0x47, 0x3d, 0x16, 0x3d, 0x1c, 0x01, 0x47, 0xaf, 0x88, 0x40, 0x1c, 0x41, + 0x45, 0x12, 0x0b, 0x61, 0x1c, 0x81, 0x72, 0xa6, 0x53, 0x44, 0xcf, 0x2a, + 0x62, 0x1c, 0x81, 0x46, 0x43, 0x0e, 0x0b, 0x5a, 0x1c, 0x01, 0xb3, 0x24, + 0xb4, 0x01, 0xff, 0x42, 0x92, 0x01, 0x63, 0x1c, 0x01, 0xa8, 0x0d, 0xb7, + 0x01, 0xff, 0x44, 0xcb, 0x1d, 0x64, 0x1c, 0x01, 0xef, 0x5b, 0x1c, 0x41, + 0x44, 0x7b, 0x11, 0x65, 0x1c, 0x01, 0x43, 0x26, 0x01, 0x5c, 0x1c, 0x41, + 0x44, 0xc9, 0x1d, 0x60, 0x1c, 0x81, 0x0d, 0x42, 0x01, 0x26, 0x5f, 0x1c, + 0xc1, 0x00, 0x42, 0x7d, 0x11, 0x68, 0x1c, 0x41, 0x42, 0x7d, 0x11, 0x69, + 0x1c, 0x41, 0x42, 0x7d, 0x11, 0x6b, 0x1c, 0x41, 0xa9, 0x0f, 0xaf, 0x01, + 0xff, 0x43, 0x7c, 0x11, 0x66, 0x1c, 0x01, 0x42, 0x42, 0x00, 0x5d, 0x1c, + 0x41, 0x43, 0x52, 0x4d, 0x67, 0x1c, 0x01, 0x42, 0x32, 0x00, 0x5e, 0x1c, + 0x41, 0xf9, 0x6a, 0x1c, 0x41, 0xe1, 0x00, 0x1c, 0x81, 0xfa, 0x01, 0xa2, + 0xed, 0x01, 0xa3, 0xe0, 0x01, 0xa4, 0xc7, 0x01, 0xe5, 0x0a, 0x1c, 0x01, + 0xa7, 0xb6, 0x01, 0x42, 0x22, 0x00, 0x2e, 0x1c, 0x01, 0xe9, 0x02, 0x1c, + 0x81, 0xa6, 0x01, 0xaa, 0x99, 0x01, 0xab, 0x8c, 0x01, 0x42, 0x74, 0x00, + 0x29, 0x1c, 0x01, 0x42, 0x6c, 0x00, 0x26, 0x1c, 0x01, 0xae, 0x68, 0xef, + 0x0c, 0x1c, 0x01, 0xb0, 0x58, 0x42, 0x71, 0x00, 0x28, 0x1c, 0x01, 0xb3, + 0x40, 0xb4, 0x27, 0xf5, 0x04, 0x1c, 0x81, 0x1e, 0xb6, 0x06, 0x42, 0xbc, + 0x22, 0x27, 0x1c, 0x41, 0xe1, 0x2a, 0x1c, 0x01, 0x07, 0x23, 0xc1, 0x01, + 0xff, 0xec, 0x08, 0x1c, 0x01, 0xf2, 0x06, 0x1c, 0xc1, 0x00, 0xf2, 0x07, + 0x1c, 0x41, 0xf5, 0x05, 0x1c, 0x41, 0xe1, 0x1d, 0x1c, 0x01, 0x42, 0x22, + 0x00, 0x1e, 0x1c, 0x01, 0xb4, 0x01, 0xff, 0xe1, 0x18, 0x1c, 0x01, 0x42, + 0x22, 0x00, 0x19, 0x1c, 0x41, 0xe1, 0x2d, 0x1c, 0x01, 0x42, 0x22, 0x00, + 0x2b, 0x1c, 0x01, 0x42, 0x40, 0x06, 0x2c, 0x1c, 0x41, 0xe1, 0x22, 0x1c, + 0x01, 0x42, 0x22, 0x00, 0x23, 0x1c, 0x41, 0xe1, 0x21, 0x1c, 0x01, 0x42, + 0x24, 0x02, 0x12, 0x1c, 0x01, 0x42, 0x2a, 0x05, 0x1c, 0x1c, 0x01, 0x42, + 0xbc, 0x22, 0x17, 0x1c, 0x41, 0xe1, 0x0e, 0x1c, 0x01, 0x42, 0x22, 0x00, + 0x0f, 0x1c, 0x41, 0xe1, 0x15, 0x1c, 0x01, 0x42, 0x22, 0x00, 0x16, 0x1c, + 0x41, 0xe9, 0x03, 0x1c, 0x41, 0xe1, 0x10, 0x1c, 0x01, 0x42, 0x22, 0x00, + 0x11, 0x1c, 0x41, 0xe1, 0x1f, 0x1c, 0x01, 0xa4, 0x06, 0x42, 0x22, 0x00, + 0x20, 0x1c, 0x41, 0xe1, 0x1a, 0x1c, 0x01, 0x42, 0x22, 0x00, 0x1b, 0x1c, + 0x41, 0xe1, 0x13, 0x1c, 0x01, 0x42, 0x22, 0x00, 0x14, 0x1c, 0x41, 0xe1, + 0x24, 0x1c, 0x01, 0x42, 0x22, 0x00, 0x25, 0x1c, 0x41, 0xe1, 0x01, 0x1c, + 0x01, 0xe9, 0x0b, 0x1c, 0x01, 0xf5, 0x0d, 0x1c, 0x41, 0xd1, 0x44, 0x1c, + 0x01, 0xd2, 0x45, 0x1c, 0x41, 0x44, 0x73, 0x20, 0x41, 0x1c, 0x01, 0x05, + 0xf0, 0x06, 0x06, 0x4b, 0x09, 0xa1, 0x42, 0x1c, 0x41, 0x45, 0x12, 0x0b, + 0x58, 0x1c, 0x01, 0xa6, 0x2e, 0x44, 0xcf, 0x2a, 0x59, 0x1c, 0x01, 0x43, + 0x0e, 0x0b, 0x51, 0x1c, 0x01, 0xb3, 0x14, 0xb4, 0x06, 0x44, 0x43, 0x1e, + 0x50, 0x1c, 0x41, 0x44, 0x25, 0x01, 0x53, 0x1c, 0x01, 0x42, 0x15, 0x02, + 0x52, 0x1c, 0x41, 0x44, 0xc9, 0x1d, 0x57, 0x1c, 0x01, 0x42, 0x01, 0x26, + 0x56, 0x1c, 0x41, 0x43, 0xd2, 0x05, 0x55, 0x1c, 0x01, 0x43, 0xf6, 0x06, + 0x54, 0x1c, 0x41, 0xa1, 0xad, 0x08, 0x45, 0x01, 0xe5, 0x35, 0x22, 0x00, + 0xe4, 0xcf, 0xf6, 0x01, 0xa5, 0x94, 0x08, 0x42, 0x60, 0x07, 0x14, 0xf5, + 0x81, 0xec, 0x07, 0xae, 0xde, 0x02, 0x09, 0xb5, 0xbe, 0x14, 0xb4, 0x06, + 0x4a, 0x43, 0xb3, 0xc3, 0xf9, 0x41, 0x47, 0x15, 0x08, 0x36, 0x21, 0x00, + 0x44, 0xc3, 0x09, 0x6c, 0x22, 0x40, 0x0f, 0xe4, 0x05, 0xa3, 0x01, 0x0d, + 0x76, 0x08, 0x01, 0xff, 0xa1, 0x91, 0x01, 0x47, 0x6b, 0xcf, 0xbc, 0x6e, + 0x01, 0xa4, 0x7d, 0xa5, 0x6a, 0x45, 0x64, 0xe6, 0xbf, 0x6e, 0x01, 0xa7, + 0x56, 0x48, 0xb8, 0xc6, 0xc1, 0x6e, 0x01, 0xe9, 0xc2, 0x6e, 0x01, 0x44, + 0xd2, 0xe4, 0xc4, 0x6e, 0x01, 0x45, 0x12, 0xe8, 0xc5, 0x6e, 0x01, 0x44, + 0x8e, 0x58, 0xc6, 0x6e, 0x01, 0xae, 0x2c, 0x42, 0x9d, 0x01, 0xca, 0x6e, + 0x01, 0x42, 0xe6, 0x05, 0xcb, 0x6e, 0x01, 0xb3, 0x12, 0x48, 0x68, 0xcb, + 0xd0, 0x6e, 0x01, 0x42, 0x3e, 0x00, 0xd1, 0x6e, 0x01, 0x45, 0x3b, 0xec, + 0xd2, 0x6e, 0x41, 0x43, 0x21, 0x08, 0xce, 0x6e, 0x01, 0x43, 0x69, 0x36, + 0xcf, 0x6e, 0x41, 0x43, 0x44, 0x9c, 0xc9, 0x6e, 0x01, 0x43, 0x57, 0x07, + 0xc7, 0x6e, 0x41, 0x42, 0x2a, 0x05, 0xc8, 0x6e, 0x01, 0x44, 0xf1, 0xf1, + 0xc0, 0x6e, 0x41, 0xe8, 0xbe, 0x6e, 0x01, 0x44, 0x82, 0x7a, 0xcc, 0x6e, + 0xc1, 0x00, 0x47, 0x9d, 0xcd, 0xcd, 0x6e, 0x41, 0x45, 0x61, 0xe4, 0xbd, + 0x6e, 0x01, 0x43, 0x20, 0xd2, 0xc3, 0x6e, 0x41, 0x44, 0x51, 0xf2, 0xbb, + 0x6e, 0x01, 0xf9, 0xd3, 0x6e, 0x41, 0xa1, 0x91, 0x01, 0x47, 0x6b, 0xcf, + 0xa1, 0x6e, 0x01, 0xa4, 0x7d, 0xa5, 0x6a, 0x45, 0x64, 0xe6, 0xa4, 0x6e, + 0x01, 0xa7, 0x56, 0x48, 0xb8, 0xc6, 0xa6, 0x6e, 0x01, 0xe9, 0xa7, 0x6e, + 0x01, 0x44, 0xd2, 0xe4, 0xa9, 0x6e, 0x01, 0x45, 0x12, 0xe8, 0xaa, 0x6e, + 0x01, 0x44, 0x8e, 0x58, 0xab, 0x6e, 0x01, 0xae, 0x2c, 0x42, 0x9d, 0x01, + 0xaf, 0x6e, 0x01, 0x42, 0xe6, 0x05, 0xb0, 0x6e, 0x01, 0xb3, 0x12, 0x48, + 0x68, 0xcb, 0xb5, 0x6e, 0x01, 0x42, 0x3e, 0x00, 0xb6, 0x6e, 0x01, 0x45, + 0x3b, 0xec, 0xb7, 0x6e, 0x41, 0x43, 0x21, 0x08, 0xb3, 0x6e, 0x01, 0x43, + 0x69, 0x36, 0xb4, 0x6e, 0x41, 0x43, 0x44, 0x9c, 0xae, 0x6e, 0x01, 0x43, + 0x57, 0x07, 0xac, 0x6e, 0x41, 0x42, 0x2a, 0x05, 0xad, 0x6e, 0x01, 0x44, + 0xf1, 0xf1, 0xa5, 0x6e, 0x41, 0xe8, 0xa3, 0x6e, 0x01, 0x44, 0x82, 0x7a, + 0xb1, 0x6e, 0xc1, 0x00, 0x47, 0x9d, 0xcd, 0xb2, 0x6e, 0x41, 0x45, 0x61, + 0xe4, 0xa2, 0x6e, 0x01, 0x43, 0x20, 0xd2, 0xa8, 0x6e, 0x41, 0x44, 0x51, + 0xf2, 0xa0, 0x6e, 0x01, 0xf9, 0xb8, 0x6e, 0x41, 0x05, 0xf8, 0xb5, 0x1b, + 0xb4, 0x0d, 0x49, 0xcd, 0xc1, 0x2c, 0x23, 0xc0, 0x00, 0x4c, 0xef, 0x22, + 0xe3, 0x23, 0x40, 0x69, 0x95, 0x01, 0x5e, 0x2b, 0x00, 0x45, 0x5c, 0xe9, + 0x71, 0xf3, 0x41, 0xa1, 0xd7, 0x04, 0x09, 0x54, 0x41, 0xa5, 0x04, 0x06, + 0xef, 0x06, 0xde, 0x03, 0x4a, 0xa1, 0xaa, 0xfb, 0x09, 0x00, 0x46, 0x1c, + 0xdd, 0xfa, 0x09, 0x00, 0x07, 0xec, 0x05, 0x8c, 0x01, 0x06, 0x65, 0x80, + 0x7c, 0xb3, 0x44, 0x0b, 0x40, 0x77, 0x01, 0xff, 0xa1, 0x31, 0xe5, 0xc7, + 0x09, 0x00, 0xe9, 0xbf, 0x09, 0x80, 0x24, 0xef, 0xcb, 0x09, 0x00, 0xf5, + 0xc1, 0x09, 0x80, 0x17, 0x08, 0x22, 0xc1, 0x01, 0xff, 0xec, 0xe2, 0x09, + 0x80, 0x09, 0xf2, 0xc3, 0x09, 0xc0, 0x00, 0xf2, 0xc4, 0x09, 0x40, 0xec, + 0xe3, 0x09, 0x40, 0xf5, 0xc2, 0x09, 0x40, 0xe9, 0xc0, 0x09, 0x40, 0xe1, + 0xbe, 0x09, 0x00, 0xe9, 0xc8, 0x09, 0x00, 0xf5, 0xcc, 0x09, 0x40, 0x4a, + 0xbd, 0xa7, 0xfe, 0x09, 0x00, 0x04, 0x5b, 0x03, 0x01, 0xff, 0xa1, 0x1d, + 0x4b, 0xd7, 0x23, 0x81, 0x09, 0x00, 0x45, 0x3f, 0x3f, 0xbc, 0x09, 0x00, + 0x02, 0x02, 0x00, 0x01, 0xff, 0x44, 0xe5, 0x23, 0xcd, 0x09, 0x00, 0x45, + 0xec, 0x4b, 0x83, 0x09, 0x40, 0x47, 0x3d, 0x16, 0x82, 0x09, 0x00, 0x47, + 0xaf, 0x88, 0xbd, 0x09, 0x40, 0x44, 0xb9, 0x00, 0xf2, 0x09, 0x00, 0x44, + 0x5a, 0x03, 0xf3, 0x09, 0x40, 0xe1, 0x85, 0x09, 0x80, 0xaf, 0x02, 0xa2, + 0xa2, 0x02, 0xa3, 0x95, 0x02, 0xa4, 0xfc, 0x01, 0xe5, 0x8f, 0x09, 0x00, + 0xa7, 0xeb, 0x01, 0x42, 0x22, 0x00, 0xb9, 0x09, 0x00, 0xe9, 0x87, 0x09, + 0x80, 0xdb, 0x01, 0xaa, 0xce, 0x01, 0xab, 0xba, 0x01, 0x42, 0x74, 0x00, + 0xb2, 0x09, 0x00, 0x42, 0x6c, 0x00, 0xae, 0x09, 0x00, 0xae, 0x95, 0x01, + 0xef, 0x93, 0x09, 0x00, 0xb0, 0x84, 0x01, 0xb2, 0x60, 0xb3, 0x4e, 0xb4, + 0x35, 0xf5, 0x89, 0x09, 0x80, 0x2c, 0xb6, 0x0d, 0xb9, 0x01, 0xff, 0xe1, + 0xaf, 0x09, 0x00, 0x42, 0xbc, 0x22, 0xdf, 0x09, 0x40, 0x4d, 0x6a, 0x82, + 0xfc, 0x09, 0x00, 0x07, 0x23, 0xc1, 0x01, 0xff, 0xec, 0x8c, 0x09, 0x80, + 0x09, 0xf2, 0x8b, 0x09, 0xc0, 0x00, 0xf2, 0xe0, 0x09, 0x40, 0xec, 0xe1, + 0x09, 0x40, 0xf5, 0x8a, 0x09, 0x40, 0xe1, 0xa4, 0x09, 0x00, 0x42, 0x22, + 0x00, 0xa5, 0x09, 0x00, 0xb4, 0x01, 0xff, 0xe1, 0x9f, 0x09, 0x00, 0x42, + 0x22, 0x00, 0xa0, 0x09, 0x40, 0xe1, 0xb8, 0x09, 0x00, 0x42, 0x22, 0x00, + 0xb6, 0x09, 0x00, 0x42, 0x40, 0x06, 0xb7, 0x09, 0x40, 0xe1, 0xb0, 0x09, + 0x80, 0x0c, 0x42, 0x22, 0x00, 0xdd, 0x09, 0x00, 0x42, 0x71, 0x00, 0xdc, + 0x09, 0x40, 0x06, 0x50, 0x00, 0x01, 0xff, 0x4e, 0xb3, 0x79, 0xf1, 0x09, + 0x00, 0x4f, 0x4a, 0x70, 0xf0, 0x09, 0x40, 0xe1, 0xaa, 0x09, 0x00, 0x42, + 0x22, 0x00, 0xab, 0x09, 0x40, 0xe1, 0xa8, 0x09, 0x00, 0x42, 0x24, 0x02, + 0x99, 0x09, 0x00, 0x42, 0x2a, 0x05, 0xa3, 0x09, 0x00, 0x42, 0xbc, 0x22, + 0x9e, 0x09, 0x40, 0xe1, 0x95, 0x09, 0x00, 0x42, 0x22, 0x00, 0x96, 0x09, + 0xc0, 0x00, 0x46, 0x36, 0xde, 0xce, 0x09, 0x40, 0xe1, 0x9c, 0x09, 0x00, + 0x42, 0x22, 0x00, 0x9d, 0x09, 0x40, 0xe9, 0x88, 0x09, 0x40, 0xe1, 0x97, + 0x09, 0x00, 0x42, 0x22, 0x00, 0x98, 0x09, 0x40, 0xe1, 0xa6, 0x09, 0x00, + 0xa4, 0x06, 0x42, 0x22, 0x00, 0xa7, 0x09, 0x40, 0xe1, 0xa1, 0x09, 0x00, + 0x42, 0x22, 0x00, 0xa2, 0x09, 0x40, 0xe1, 0x9a, 0x09, 0x00, 0x42, 0x22, + 0x00, 0x9b, 0x09, 0x40, 0xe1, 0xac, 0x09, 0x00, 0x42, 0x22, 0x00, 0xad, + 0x09, 0x40, 0xe1, 0x86, 0x09, 0x00, 0xe9, 0x90, 0x09, 0x00, 0xf5, 0x94, + 0x09, 0x40, 0x45, 0x12, 0x0b, 0xee, 0x09, 0x00, 0xa6, 0x2e, 0x44, 0xcf, + 0x2a, 0xef, 0x09, 0x00, 0x43, 0x0e, 0x0b, 0xe7, 0x09, 0x00, 0xb3, 0x14, + 0xb4, 0x06, 0x44, 0x43, 0x1e, 0xe6, 0x09, 0x40, 0x44, 0x25, 0x01, 0xe9, + 0x09, 0x00, 0x42, 0x15, 0x02, 0xe8, 0x09, 0x40, 0x44, 0xc9, 0x1d, 0xed, + 0x09, 0x00, 0x42, 0x01, 0x26, 0xec, 0x09, 0x40, 0x43, 0xd2, 0x05, 0xeb, + 0x09, 0x00, 0x43, 0xf6, 0x06, 0xea, 0x09, 0x40, 0x53, 0xf9, 0x48, 0xf9, + 0x09, 0x00, 0x0a, 0x94, 0x86, 0x01, 0xff, 0x44, 0xf5, 0x06, 0xf7, 0x09, + 0x00, 0x43, 0x0e, 0x0b, 0xf4, 0x09, 0x80, 0x0f, 0xb4, 0x01, 0xff, 0x44, + 0x25, 0x01, 0xf6, 0x09, 0x00, 0x42, 0x15, 0x02, 0xf5, 0x09, 0x40, 0x5a, + 0x78, 0x1e, 0xf8, 0x09, 0x40, 0x50, 0xdd, 0x57, 0xfd, 0x09, 0x00, 0x43, + 0x5a, 0x87, 0x80, 0x09, 0x00, 0x4d, 0x18, 0x76, 0xd7, 0x09, 0x40, 0x80, + 0x0c, 0x48, 0xc0, 0xc6, 0xce, 0xf6, 0x01, 0x43, 0x50, 0x16, 0xce, 0xce, + 0x41, 0x46, 0x1a, 0xdf, 0xd1, 0xfa, 0x01, 0x46, 0x16, 0x08, 0x7e, 0x23, + 0x00, 0x58, 0xfe, 0x2b, 0x15, 0xf5, 0x41, 0x45, 0x90, 0xb6, 0x7a, 0xf3, + 0x01, 0x43, 0xbd, 0x01, 0xb2, 0xfa, 0x41, 0x50, 0x56, 0x61, 0xd6, 0xf3, + 0x01, 0x04, 0x67, 0x9f, 0x20, 0x42, 0x5f, 0x01, 0xd8, 0xfa, 0x01, 0xb2, + 0x0c, 0x4a, 0xf9, 0xb1, 0x93, 0xf4, 0x01, 0x43, 0x32, 0x00, 0xab, 0xf9, + 0x41, 0x45, 0x0b, 0x08, 0x3b, 0xf4, 0x01, 0x4a, 0x39, 0xa9, 0xd4, 0xf9, + 0x41, 0x57, 0x72, 0x2d, 0x9c, 0xf3, 0x01, 0x58, 0xf6, 0x27, 0x9d, 0xf3, + 0x01, 0x4c, 0x6b, 0x8e, 0x6b, 0x26, 0x00, 0x4f, 0x1a, 0x73, 0x6c, 0x26, + 0x40, 0x42, 0x08, 0x00, 0x76, 0xf4, 0x81, 0xa9, 0x30, 0xa3, 0xeb, 0x2f, + 0xa4, 0xdc, 0x2f, 0xa7, 0xc7, 0x2f, 0xac, 0xa9, 0x27, 0x04, 0x43, 0x92, + 0xca, 0x05, 0xae, 0x99, 0x05, 0xb2, 0x82, 0x05, 0xb3, 0x80, 0x03, 0xf4, + 0x87, 0xf9, 0xc1, 0x00, 0x03, 0xcd, 0x4c, 0x11, 0xe8, 0xc0, 0xf6, 0x81, + 0x06, 0x44, 0xfa, 0xd9, 0x0b, 0xf5, 0x41, 0x43, 0x6a, 0xb5, 0xc1, 0xf6, + 0x41, 0x0f, 0x3d, 0x33, 0xd7, 0x02, 0x07, 0xec, 0x05, 0x6b, 0x03, 0xb3, + 0x43, 0x5b, 0xb3, 0x33, 0x0b, 0x40, 0x77, 0x01, 0xff, 0xe5, 0xe7, 0x1b, + 0x80, 0x25, 0xe9, 0xea, 0x1b, 0x00, 0x05, 0x4a, 0xd2, 0x15, 0xef, 0xec, + 0x1b, 0x00, 0x48, 0xc0, 0xc9, 0xe8, 0x1b, 0x00, 0xf5, 0xee, 0x1b, 0xc0, + 0x00, 0x52, 0x45, 0x4f, 0xef, 0x1b, 0x40, 0xe9, 0xeb, 0x1b, 0x00, 0xef, + 0xed, 0x1b, 0x40, 0xe5, 0xe9, 0x1b, 0x40, 0x49, 0x35, 0xba, 0xe6, 0x1b, + 0x00, 0x0c, 0x23, 0x97, 0x01, 0xff, 0x45, 0xb3, 0xe7, 0xfe, 0x1b, 0x00, + 0x48, 0x78, 0xc8, 0xfc, 0x1b, 0x00, 0xb0, 0x01, 0xff, 0x47, 0xed, 0xce, + 0xff, 0x1b, 0x00, 0x49, 0x62, 0xba, 0xfd, 0x1b, 0x40, 0x45, 0xef, 0xce, + 0xf2, 0x1b, 0x00, 0x47, 0xee, 0xd3, 0xf3, 0x1b, 0x40, 0xe1, 0xc0, 0x1b, + 0x00, 0x42, 0x16, 0x00, 0xc5, 0x1b, 0x00, 0x42, 0x37, 0x00, 0xe1, 0x1b, + 0x00, 0x42, 0xf0, 0x10, 0xd1, 0x1b, 0x00, 0x42, 0x24, 0x02, 0xce, 0x1b, + 0x00, 0x42, 0x22, 0x00, 0xc2, 0x1b, 0x00, 0xe9, 0xe4, 0x1b, 0x00, 0x42, + 0x56, 0x19, 0xd0, 0x1b, 0x00, 0x47, 0x4a, 0xd2, 0xc6, 0x1b, 0x00, 0x42, + 0x74, 0x00, 0xde, 0x1b, 0x00, 0xad, 0x8b, 0x01, 0xae, 0x6d, 0x42, 0xbb, + 0x09, 0xc7, 0x1b, 0x80, 0x60, 0x42, 0x71, 0x00, 0xd2, 0x1b, 0x00, 0xb3, + 0x10, 0xf5, 0xe5, 0x1b, 0x00, 0x42, 0xa9, 0x01, 0xcb, 0x1b, 0x00, 0x42, + 0xbc, 0x22, 0xdb, 0x1b, 0x40, 0xe1, 0xd8, 0x1b, 0x00, 0x0a, 0x4b, 0x4f, + 0x06, 0x4a, 0x5b, 0xaf, 0xd6, 0x1b, 0x40, 0xe1, 0xc1, 0x1b, 0x00, 0x42, + 0x24, 0x02, 0xcf, 0x1b, 0x00, 0x42, 0x22, 0x00, 0xc3, 0x1b, 0x00, 0x42, + 0x74, 0x00, 0xdf, 0x1b, 0x00, 0x42, 0x6c, 0x00, 0xd5, 0x1b, 0x00, 0x42, + 0xbb, 0x09, 0xc8, 0x1b, 0x00, 0x42, 0x71, 0x00, 0xd3, 0x1b, 0x00, 0x42, + 0x40, 0x06, 0xd9, 0x1b, 0x00, 0x42, 0xa9, 0x01, 0xcc, 0x1b, 0x00, 0x42, + 0xbc, 0x22, 0xdc, 0x1b, 0x40, 0x47, 0x82, 0xd2, 0xcd, 0x1b, 0x40, 0xe1, + 0xc9, 0x1b, 0x00, 0x42, 0xf0, 0x10, 0xe2, 0x1b, 0x00, 0x42, 0x24, 0x02, + 0xdd, 0x1b, 0x00, 0x4a, 0x0b, 0xaf, 0xd7, 0x1b, 0x00, 0x42, 0xbc, 0x22, + 0xe0, 0x1b, 0x40, 0xe1, 0xd4, 0x1b, 0x80, 0x06, 0x42, 0x16, 0x00, 0xe3, + 0x1b, 0x40, 0x09, 0x36, 0xbc, 0x01, 0xff, 0x42, 0x22, 0x00, 0xc4, 0x1b, + 0x00, 0x42, 0x2a, 0x05, 0xca, 0x1b, 0x00, 0x42, 0x40, 0x06, 0xda, 0x1b, + 0x40, 0xe8, 0xf1, 0x1b, 0x00, 0x42, 0x1d, 0x01, 0xf0, 0x1b, 0x40, 0x45, + 0xbf, 0xe5, 0xbe, 0x26, 0x00, 0x43, 0x67, 0x09, 0xfa, 0xf9, 0x81, 0xeb, + 0x01, 0x07, 0x92, 0xd5, 0x01, 0xff, 0x0a, 0x41, 0x59, 0xbb, 0x01, 0x49, + 0x81, 0x16, 0xf5, 0x6a, 0x01, 0x07, 0xec, 0x05, 0x01, 0xff, 0xe1, 0xe7, + 0x6a, 0x01, 0x42, 0x16, 0x00, 0xe2, 0x6a, 0x01, 0x42, 0x73, 0x02, 0xdf, + 0x6a, 0x01, 0xa4, 0x93, 0x01, 0xe5, 0xec, 0x6a, 0x81, 0x83, 0x01, 0x42, + 0x0c, 0x08, 0xd3, 0x6a, 0x01, 0xa7, 0x6f, 0x44, 0x3e, 0xf0, 0xda, 0x6a, + 0x01, 0xe9, 0xed, 0x6a, 0x01, 0x42, 0x9d, 0x0a, 0xd9, 0x6a, 0x01, 0xab, + 0x53, 0x43, 0xb6, 0x05, 0xd4, 0x6a, 0x01, 0xef, 0xe8, 0x6a, 0x81, 0x44, + 0x42, 0xbb, 0x09, 0xe5, 0x6a, 0x01, 0x42, 0x46, 0x03, 0xd2, 0x6a, 0x01, + 0x42, 0x1e, 0x00, 0xe1, 0x6a, 0x01, 0xf5, 0xea, 0x6a, 0x81, 0x27, 0x42, + 0x67, 0x62, 0xe3, 0x6a, 0x01, 0x42, 0xa9, 0x01, 0xdb, 0x6a, 0x81, 0x14, + 0xb9, 0x06, 0x42, 0x0f, 0x00, 0xdc, 0x6a, 0x41, 0x43, 0x2e, 0x11, 0xe4, + 0x6a, 0x01, 0x42, 0xf4, 0x02, 0xd5, 0x6a, 0x41, 0x43, 0x7a, 0x36, 0xe6, + 0x6a, 0x41, 0x42, 0x7c, 0x31, 0xe0, 0x6a, 0x41, 0xef, 0xe9, 0x6a, 0x41, + 0xe1, 0xd1, 0x6a, 0x01, 0x43, 0xe2, 0x42, 0xd8, 0x6a, 0x41, 0x42, 0x18, + 0x0a, 0xd6, 0x6a, 0x01, 0x42, 0x6a, 0x0d, 0xdd, 0x6a, 0x41, 0xe5, 0xeb, + 0x6a, 0x01, 0x43, 0x4e, 0x1f, 0xd0, 0x6a, 0x41, 0x43, 0x45, 0xf0, 0xd7, + 0x6a, 0x01, 0xef, 0xde, 0x6a, 0x41, 0x04, 0x48, 0x0b, 0x16, 0x03, 0x13, + 0x01, 0x06, 0x48, 0x26, 0xb5, 0xf2, 0x6a, 0x41, 0x45, 0x3a, 0x2d, 0xf1, + 0x6a, 0x01, 0x49, 0x25, 0xb5, 0xf3, 0x6a, 0x41, 0x45, 0x3a, 0x2d, 0xf0, + 0x6a, 0x01, 0x49, 0x1c, 0xb5, 0xf4, 0x6a, 0x41, 0x4d, 0x0b, 0x81, 0xc0, + 0xf3, 0x41, 0x80, 0x06, 0x48, 0x00, 0xc4, 0x88, 0xf4, 0x41, 0x45, 0xb3, + 0xc4, 0xca, 0xf4, 0x01, 0x47, 0xb6, 0xd3, 0xfc, 0xf9, 0x41, 0x43, 0x4b, + 0x12, 0x4c, 0xf3, 0x01, 0x42, 0x9d, 0x0a, 0x95, 0xfa, 0x01, 0xeb, 0xe6, + 0xf3, 0xc1, 0x00, 0x0a, 0x6b, 0xae, 0x01, 0xff, 0x4b, 0x10, 0x9b, 0xb5, + 0xf4, 0x01, 0x49, 0xc4, 0xb8, 0xb6, 0xf4, 0x01, 0x4a, 0xab, 0xaf, 0xb7, + 0xf4, 0x01, 0x48, 0x2f, 0x7f, 0xb4, 0xf4, 0x41, 0x02, 0x13, 0x05, 0xb6, + 0x21, 0x49, 0x81, 0x16, 0xf3, 0xa6, 0x00, 0x07, 0xec, 0x05, 0x12, 0x47, + 0x93, 0xd3, 0xf2, 0xa6, 0x00, 0x4d, 0xa6, 0x34, 0xf7, 0xa6, 0x00, 0x49, + 0x21, 0xbf, 0xf6, 0xa6, 0x40, 0xe1, 0xa0, 0xa6, 0x00, 0x42, 0x27, 0x01, + 0xa4, 0xa6, 0x00, 0xa6, 0xf7, 0x20, 0xe9, 0xa9, 0xa6, 0x00, 0xab, 0xb7, + 0x20, 0xac, 0x9c, 0x20, 0xed, 0xb3, 0xa6, 0x80, 0xec, 0x1f, 0xae, 0x90, + 0x1f, 0xef, 0xa7, 0xa6, 0x00, 0xb0, 0x93, 0x01, 0xb2, 0x6b, 0xb3, 0x3d, + 0xb4, 0x23, 0xf5, 0xa2, 0xa6, 0x00, 0xb7, 0x13, 0xb9, 0x01, 0xff, 0xe1, + 0xc2, 0xa6, 0x00, 0x42, 0x63, 0x93, 0xbf, 0xa6, 0x00, 0x42, 0x0b, 0x9c, + 0xc1, 0xa6, 0x40, 0xe1, 0xda, 0xa6, 0x00, 0x42, 0xd6, 0x13, 0xc9, 0xa6, + 0x40, 0xa1, 0x0e, 0xa5, 0x04, 0xe9, 0xe4, 0xa6, 0x40, 0xee, 0xea, 0xa6, + 0x00, 0xf4, 0xe8, 0xa6, 0x40, 0xe1, 0xb0, 0xa6, 0x00, 0xe5, 0xa6, 0xa6, + 0x40, 0x44, 0x83, 0xcd, 0xec, 0xa6, 0x00, 0x43, 0xfc, 0xeb, 0xb9, 0xa6, + 0x00, 0xa8, 0x0a, 0xe9, 0xb7, 0xa6, 0x00, 0x42, 0x27, 0x74, 0xb4, 0xa6, + 0x40, 0x43, 0xfc, 0xeb, 0xb8, 0xa6, 0x00, 0x42, 0x52, 0x28, 0xb6, 0xa6, + 0x00, 0xef, 0xd6, 0xa6, 0x00, 0xf5, 0xc0, 0xa6, 0x40, 0x42, 0x93, 0x0f, + 0xd1, 0xa6, 0x00, 0xa5, 0x10, 0xa9, 0x04, 0xf5, 0xcc, 0xa6, 0x40, 0x42, + 0x27, 0x01, 0xad, 0xa6, 0x00, 0xe9, 0xac, 0xa6, 0x40, 0xe5, 0xa5, 0xa6, + 0x00, 0xee, 0xe1, 0xa6, 0x00, 0x42, 0xbf, 0xe0, 0xd0, 0xa6, 0x40, 0xe1, + 0xab, 0xa6, 0x00, 0xa5, 0xe5, 0x1d, 0x05, 0xe6, 0xe6, 0x11, 0xe9, 0xdd, + 0xa6, 0x00, 0xb5, 0x01, 0xff, 0x42, 0x93, 0x0f, 0xd7, 0xa6, 0x00, 0xe5, + 0xc8, 0xa6, 0x40, 0x02, 0x5a, 0x00, 0xdf, 0x18, 0x02, 0x26, 0x02, 0xb8, + 0x15, 0x02, 0x53, 0x03, 0x94, 0x10, 0x02, 0x06, 0x00, 0x96, 0x0a, 0x02, + 0x60, 0x00, 0xc2, 0x02, 0x02, 0x25, 0x00, 0x01, 0xff, 0x42, 0x27, 0x01, + 0x06, 0x6a, 0x01, 0x43, 0x46, 0xf4, 0x2b, 0x6a, 0x01, 0xab, 0x8c, 0x02, + 0xac, 0xfb, 0x01, 0xed, 0x11, 0x6a, 0x81, 0xd9, 0x01, 0xae, 0x93, 0x01, + 0xb0, 0x7f, 0xb2, 0x5d, 0xb3, 0x35, 0xb4, 0x23, 0xf5, 0x04, 0x6a, 0x01, + 0x44, 0x11, 0xf3, 0x38, 0x6a, 0x01, 0xb7, 0x0d, 0xb9, 0x01, 0xff, 0xe1, + 0x1d, 0x6a, 0x01, 0x42, 0x63, 0x93, 0x1b, 0x6a, 0x41, 0xe1, 0x2c, 0x6a, + 0x01, 0x42, 0xd6, 0x13, 0x21, 0x6a, 0x41, 0xa1, 0x06, 0x42, 0xed, 0x05, + 0x35, 0x6a, 0x41, 0xe1, 0x0e, 0x6a, 0x01, 0xe5, 0x08, 0x6a, 0x41, 0x44, + 0x83, 0xcd, 0x37, 0x6a, 0x01, 0x43, 0xfc, 0xeb, 0x15, 0x6a, 0x01, 0xa8, + 0x0a, 0xe9, 0x14, 0x6a, 0x01, 0x42, 0x27, 0x74, 0x12, 0x6a, 0x41, 0x42, + 0x52, 0x28, 0x13, 0x6a, 0x01, 0xef, 0x29, 0x6a, 0x01, 0xf5, 0x1c, 0x6a, + 0x41, 0xa5, 0x10, 0xa9, 0x04, 0xf5, 0x23, 0x6a, 0x41, 0x42, 0x27, 0x01, + 0x0c, 0x6a, 0x01, 0xe9, 0x0b, 0x6a, 0x41, 0xe5, 0x07, 0x6a, 0x01, 0xee, + 0x31, 0x6a, 0x01, 0x42, 0xbf, 0xe0, 0x25, 0x6a, 0x41, 0xa5, 0x06, 0x43, + 0x9f, 0x95, 0x2a, 0x6a, 0x41, 0xe5, 0x22, 0x6a, 0x01, 0x42, 0xbf, 0xe0, + 0x1f, 0x6a, 0x41, 0x43, 0xa5, 0x57, 0x0f, 0x6a, 0x01, 0xa7, 0x2f, 0xe9, + 0x24, 0x6a, 0x01, 0xaa, 0x1d, 0x43, 0xa4, 0x02, 0x1e, 0x6a, 0x01, 0x43, + 0x0a, 0x18, 0x20, 0x6a, 0x01, 0xf5, 0x19, 0x6a, 0x81, 0x06, 0x42, 0x7e, + 0x1a, 0x09, 0x6a, 0x41, 0x42, 0x93, 0x0f, 0x18, 0x6a, 0x41, 0x43, 0x61, + 0x87, 0x10, 0x6a, 0x01, 0x43, 0x9f, 0x95, 0x1a, 0x6a, 0x41, 0x42, 0x24, + 0x02, 0x28, 0x6a, 0x01, 0x45, 0xf4, 0xe7, 0x27, 0x6a, 0x41, 0xe1, 0x32, + 0x6a, 0x01, 0xa2, 0x0a, 0x44, 0x98, 0xef, 0x0d, 0x6a, 0x01, 0xef, 0x33, + 0x6a, 0x41, 0x42, 0x80, 0x12, 0x34, 0x6a, 0x01, 0x42, 0x92, 0x01, 0x30, + 0x6a, 0x41, 0xe1, 0x0a, 0x6a, 0x01, 0xe9, 0x2d, 0x6a, 0x01, 0x42, 0x63, + 0x93, 0x2e, 0x6a, 0x41, 0xe1, 0x03, 0x6a, 0x01, 0xa5, 0x14, 0xef, 0x2f, + 0x6a, 0x01, 0x42, 0xbb, 0x09, 0x36, 0x6a, 0x01, 0xf5, 0x05, 0x6a, 0x01, + 0x43, 0xcd, 0xa9, 0x16, 0x6a, 0x41, 0xee, 0x26, 0x6a, 0x01, 0xf4, 0x17, + 0x6a, 0x41, 0xe1, 0xd5, 0x69, 0x01, 0xa6, 0x95, 0x07, 0xa7, 0xde, 0x06, + 0xe9, 0xd8, 0x69, 0x01, 0xab, 0xa3, 0x06, 0xac, 0xf2, 0x05, 0xad, 0x94, + 0x05, 0xae, 0x81, 0x03, 0xef, 0xd7, 0x69, 0x01, 0xb0, 0x98, 0x02, 0xb2, + 0xff, 0x01, 0xb3, 0xc9, 0x01, 0xb4, 0x7a, 0xb6, 0x66, 0xb7, 0x53, 0xb9, + 0x01, 0xff, 0x42, 0xe5, 0x05, 0xac, 0x69, 0x01, 0x02, 0x97, 0x02, 0x33, + 0xa9, 0x27, 0x03, 0x63, 0x93, 0x17, 0xb5, 0x01, 0xff, 0x43, 0x1b, 0x42, + 0xe1, 0x69, 0x01, 0x42, 0x7b, 0x00, 0xb2, 0x69, 0x01, 0xee, 0xe5, 0x69, + 0x01, 0xf1, 0xe4, 0x69, 0x41, 0x45, 0x1e, 0x08, 0xe3, 0x69, 0x01, 0x48, + 0x40, 0xcb, 0xe2, 0x69, 0x41, 0x42, 0x27, 0x01, 0x94, 0x69, 0x01, 0xf4, + 0xae, 0x69, 0x41, 0x42, 0x93, 0x0f, 0x97, 0x69, 0x81, 0x08, 0xed, 0xbe, + 0x69, 0x01, 0xf8, 0xdf, 0x69, 0x41, 0xf4, 0xcf, 0x69, 0x41, 0x43, 0xfc, + 0xeb, 0x9e, 0x69, 0x01, 0xb5, 0x01, 0xff, 0xe5, 0xea, 0x69, 0x01, 0xef, + 0x75, 0x69, 0x41, 0xa5, 0x06, 0x42, 0x14, 0x05, 0x6a, 0x69, 0x41, 0xe5, + 0xec, 0x69, 0x01, 0x43, 0x9f, 0x95, 0x9d, 0x69, 0x41, 0xa1, 0x34, 0xa5, + 0x23, 0xaf, 0x14, 0xb5, 0x01, 0xff, 0x42, 0x93, 0x0f, 0x96, 0x69, 0x01, + 0xed, 0xaa, 0x69, 0xc1, 0x00, 0x42, 0x93, 0x0f, 0x99, 0x69, 0x41, 0xef, + 0x79, 0x69, 0x81, 0x04, 0xf1, 0xd6, 0x69, 0x41, 0xee, 0x67, 0x69, 0x41, + 0xee, 0x00, 0x6a, 0x01, 0xf5, 0xfd, 0x69, 0xc1, 0x00, 0x43, 0xa0, 0x95, + 0x9c, 0x69, 0x41, 0xe1, 0xdb, 0x69, 0x81, 0x0e, 0x48, 0x98, 0xc5, 0x8f, + 0x69, 0x01, 0xed, 0x72, 0x69, 0x01, 0xf1, 0xdc, 0x69, 0x41, 0xf1, 0xa1, + 0x69, 0x41, 0x42, 0x80, 0x12, 0x85, 0x69, 0x01, 0xa5, 0x23, 0xa8, 0x0c, + 0x42, 0x14, 0x05, 0x6d, 0x69, 0x01, 0x44, 0xf7, 0xc0, 0x9b, 0x69, 0x41, + 0x45, 0x9e, 0x95, 0xa4, 0x69, 0x01, 0x42, 0x6b, 0x18, 0xde, 0x69, 0x01, + 0xef, 0xf3, 0x69, 0xc1, 0x00, 0xf1, 0xf4, 0x69, 0x41, 0xe5, 0x76, 0x69, + 0x01, 0xf4, 0x90, 0x69, 0x41, 0xa1, 0x0c, 0x43, 0xfc, 0xeb, 0xef, 0x69, + 0x01, 0x45, 0x68, 0xe7, 0x82, 0x69, 0x41, 0xe5, 0xf0, 0x69, 0x01, 0xf1, + 0x6e, 0x69, 0x41, 0xa1, 0x47, 0xa5, 0x34, 0xe9, 0xf7, 0x69, 0x81, 0x22, + 0xef, 0x98, 0x69, 0x81, 0x17, 0xf5, 0xa0, 0x69, 0xc1, 0x00, 0xa1, 0x08, + 0xe5, 0xe9, 0x69, 0x01, 0xed, 0x91, 0x69, 0x41, 0xe5, 0x71, 0x69, 0x01, + 0xf1, 0xca, 0x69, 0x41, 0x42, 0x10, 0x00, 0xc2, 0x69, 0x41, 0xa5, 0x01, + 0xff, 0x42, 0x7b, 0x00, 0xb1, 0x69, 0x01, 0xf4, 0xcd, 0x69, 0x41, 0x42, + 0xb5, 0x05, 0x84, 0x69, 0x01, 0xb5, 0x01, 0xff, 0xf4, 0xbd, 0x69, 0x01, + 0xf8, 0xe7, 0x69, 0x41, 0x02, 0x9b, 0x01, 0x09, 0xe1, 0x6c, 0x69, 0xc1, + 0x00, 0xed, 0x78, 0x69, 0x41, 0x45, 0x0f, 0xe6, 0xd1, 0x69, 0x01, 0x45, + 0x44, 0xe8, 0xda, 0x69, 0x41, 0xe1, 0xf6, 0x69, 0x81, 0x86, 0x02, 0xa4, + 0xdb, 0x01, 0xa7, 0x66, 0xaa, 0x4a, 0x43, 0x95, 0xca, 0xa8, 0x69, 0x01, + 0x02, 0xa4, 0x02, 0x2d, 0xb4, 0x1f, 0x03, 0x24, 0x7a, 0x0f, 0xba, 0x01, + 0xff, 0x42, 0x80, 0x36, 0xa7, 0x69, 0x01, 0x42, 0x0b, 0x9c, 0xc1, 0x69, + 0x41, 0x47, 0xc0, 0x09, 0xc0, 0x69, 0x01, 0x47, 0xf7, 0xcf, 0xad, 0x69, + 0x41, 0x42, 0xe5, 0x05, 0xce, 0x69, 0x01, 0x42, 0x48, 0x04, 0xbc, 0x69, + 0x41, 0x43, 0x5e, 0x8e, 0x7c, 0x69, 0x01, 0xb5, 0x01, 0xff, 0xe5, 0x81, + 0x69, 0x01, 0x42, 0x1f, 0x00, 0x6f, 0x69, 0x41, 0x45, 0x95, 0xd3, 0x8a, + 0x69, 0x01, 0xa5, 0x01, 0xff, 0xe5, 0xd4, 0x69, 0x81, 0x06, 0x42, 0xbf, + 0xe0, 0x83, 0x69, 0x41, 0x46, 0x06, 0xd8, 0xe8, 0x69, 0x41, 0xe1, 0xf2, + 0x69, 0x01, 0x46, 0x8a, 0xdb, 0xa3, 0x69, 0x01, 0xa7, 0x3b, 0xab, 0x15, + 0xaf, 0x0b, 0x43, 0x9f, 0x95, 0xe0, 0x69, 0xc1, 0x00, 0xf4, 0xf1, 0x69, + 0x41, 0xf0, 0x7d, 0x69, 0x01, 0xf1, 0x80, 0x69, 0x41, 0xe1, 0x73, 0x69, + 0x81, 0x19, 0x02, 0x97, 0x02, 0x0b, 0xb5, 0x01, 0xff, 0xed, 0xcb, 0x69, + 0x01, 0xf0, 0xb6, 0x69, 0x41, 0x43, 0x61, 0x87, 0x89, 0x69, 0x01, 0xf8, + 0x7f, 0x69, 0x41, 0x43, 0xc9, 0x61, 0xb9, 0x69, 0x41, 0xa5, 0x19, 0x42, + 0x1f, 0x00, 0x7d, 0x69, 0x01, 0xb5, 0x01, 0xff, 0x4b, 0xdf, 0x98, 0x93, + 0x69, 0x01, 0xf0, 0xd0, 0x69, 0x01, 0x43, 0x75, 0x82, 0x86, 0x69, 0x41, + 0x43, 0x73, 0xa9, 0x8d, 0x69, 0x01, 0x43, 0x9f, 0x95, 0xbf, 0x69, 0xc1, + 0x00, 0xf4, 0x77, 0x69, 0x41, 0xa1, 0x12, 0xa9, 0x06, 0x42, 0x42, 0x0b, + 0x70, 0x69, 0x41, 0x42, 0x80, 0x36, 0xb0, 0x69, 0x01, 0xf1, 0x8e, 0x69, + 0x41, 0x02, 0x5a, 0x00, 0x04, 0xf0, 0x66, 0x69, 0x41, 0x48, 0x68, 0xc8, + 0xdd, 0x69, 0x01, 0x48, 0x18, 0xcb, 0x92, 0x69, 0x41, 0xe5, 0xc5, 0x69, + 0x41, 0xe1, 0xfb, 0x69, 0x81, 0x45, 0x02, 0xb7, 0x05, 0x37, 0x42, 0x92, + 0x01, 0xfa, 0x69, 0x01, 0x44, 0xc5, 0xef, 0xaf, 0x69, 0x01, 0x02, 0x99, + 0x48, 0x1d, 0xe9, 0xee, 0x69, 0x81, 0x12, 0x42, 0x10, 0x00, 0xff, 0x69, + 0x01, 0x43, 0x9f, 0x95, 0xc6, 0x69, 0x01, 0x42, 0x02, 0x00, 0xc9, 0x69, + 0x41, 0x42, 0x27, 0x01, 0xc3, 0x69, 0x41, 0xe1, 0x87, 0x69, 0x01, 0x42, + 0x92, 0x01, 0xa5, 0x69, 0x41, 0xe5, 0xa6, 0x69, 0x01, 0x42, 0x48, 0x04, + 0x68, 0x69, 0x41, 0xe5, 0xb8, 0x69, 0x81, 0x08, 0xf0, 0x8b, 0x69, 0x01, + 0xf1, 0xfc, 0x69, 0x41, 0xed, 0x7e, 0x69, 0x41, 0xa1, 0x1e, 0x45, 0x32, + 0xe6, 0xb3, 0x69, 0x01, 0xaf, 0x04, 0xf5, 0xed, 0x69, 0x41, 0xed, 0x7b, + 0x69, 0x01, 0xaf, 0x04, 0xf1, 0xf8, 0x69, 0x41, 0xee, 0x6b, 0x69, 0x01, + 0xf4, 0x8c, 0x69, 0x41, 0x42, 0x57, 0x00, 0x9f, 0x69, 0x01, 0xf0, 0x69, + 0x69, 0x01, 0xf1, 0xd9, 0x69, 0x41, 0xa5, 0x21, 0xe9, 0xfe, 0x69, 0x01, + 0xef, 0xf9, 0x69, 0x01, 0x44, 0x09, 0xf2, 0x74, 0x69, 0x01, 0xb5, 0x01, + 0xff, 0x42, 0xed, 0x05, 0xab, 0x69, 0x01, 0x42, 0x1f, 0x00, 0x7a, 0x69, + 0x01, 0xf4, 0xcc, 0x69, 0x41, 0xf4, 0xb7, 0x69, 0x01, 0xb5, 0x01, 0xff, + 0x42, 0x93, 0x0f, 0x9a, 0x69, 0x01, 0xf8, 0xe6, 0x69, 0x41, 0x02, 0xb7, + 0x05, 0x26, 0xa8, 0x01, 0xff, 0x45, 0xfd, 0xe3, 0xa2, 0x69, 0x01, 0xa5, + 0x06, 0x42, 0x14, 0x05, 0x02, 0x6a, 0x41, 0xf4, 0xba, 0x69, 0x01, 0xb5, + 0x01, 0xff, 0x42, 0x93, 0x0f, 0xc7, 0x69, 0x01, 0xee, 0x95, 0x69, 0x01, + 0xf8, 0x88, 0x69, 0x41, 0xf4, 0xa9, 0x69, 0x01, 0x42, 0xbf, 0xe0, 0xb5, + 0x69, 0x41, 0xe1, 0xbb, 0x69, 0x81, 0x2a, 0x42, 0x27, 0x01, 0xeb, 0x69, + 0x01, 0x42, 0x14, 0x05, 0xd3, 0x69, 0x01, 0xb5, 0x01, 0xff, 0x80, 0x09, + 0xe5, 0xb4, 0x69, 0xc1, 0x00, 0xf4, 0xc4, 0x69, 0x41, 0x44, 0x31, 0x17, + 0xd2, 0x69, 0x01, 0xe9, 0xc8, 0x69, 0x01, 0x46, 0x80, 0xdf, 0xf5, 0x69, + 0x41, 0xf1, 0x01, 0x6a, 0x41, 0xa6, 0xea, 0x05, 0x02, 0x40, 0x00, 0xd9, + 0x05, 0xab, 0x9a, 0x05, 0xac, 0xec, 0x04, 0xed, 0x51, 0x69, 0x81, 0xeb, + 0x03, 0xae, 0xfb, 0x01, 0xb0, 0xd3, 0x01, 0xb2, 0xb4, 0x01, 0xb3, 0x66, + 0xb4, 0x30, 0xb7, 0x22, 0xb9, 0x01, 0xff, 0x46, 0x7a, 0xd9, 0x05, 0x69, + 0x01, 0x42, 0x92, 0x01, 0x0d, 0x69, 0x01, 0xb5, 0x01, 0xff, 0xaf, 0x06, + 0x43, 0xc4, 0xf4, 0x25, 0x69, 0x41, 0xed, 0x34, 0x69, 0x01, 0xf0, 0x36, + 0x69, 0x41, 0x42, 0xe5, 0x05, 0xf2, 0x68, 0x01, 0x44, 0xf7, 0xc0, 0xfb, + 0x68, 0x41, 0x42, 0x93, 0x0f, 0x4b, 0x69, 0x01, 0xa5, 0x15, 0xe9, 0x61, + 0x69, 0x01, 0x42, 0x63, 0x93, 0x4c, 0x69, 0x01, 0xf5, 0x11, 0x69, 0xc1, + 0x00, 0x42, 0x1b, 0x05, 0x3d, 0x69, 0x41, 0x43, 0x73, 0xa9, 0x28, 0x69, + 0x01, 0xb5, 0x01, 0xff, 0x43, 0x1b, 0x42, 0x23, 0x69, 0x01, 0xee, 0x41, + 0x69, 0x01, 0xf4, 0x00, 0x69, 0x41, 0xa1, 0x42, 0x45, 0x9e, 0x95, 0x0c, + 0x69, 0x01, 0xa8, 0x17, 0x42, 0x1b, 0x05, 0x24, 0x69, 0x01, 0xb5, 0x01, + 0xff, 0x42, 0x93, 0x0f, 0x39, 0x69, 0x01, 0xe5, 0x03, 0x69, 0x01, 0xf5, + 0x52, 0x69, 0x41, 0xa5, 0x10, 0x42, 0x52, 0x28, 0x54, 0x69, 0x01, 0x42, + 0x63, 0x93, 0x5c, 0x69, 0x01, 0xf5, 0x58, 0x69, 0x41, 0xe5, 0xfd, 0x68, + 0x01, 0xb5, 0x01, 0xff, 0x42, 0x93, 0x0f, 0x01, 0x69, 0x01, 0xf8, 0x55, + 0x69, 0x41, 0xf0, 0x07, 0x69, 0x01, 0xf1, 0x64, 0x69, 0x41, 0x43, 0x61, + 0x87, 0x27, 0x69, 0x01, 0x03, 0xb1, 0x01, 0x06, 0x42, 0x52, 0x28, 0x4e, + 0x69, 0x41, 0x44, 0xd5, 0xe8, 0x60, 0x69, 0x01, 0x43, 0xe1, 0x1a, 0x4a, + 0x69, 0x41, 0x42, 0xe5, 0x05, 0x35, 0x69, 0x01, 0xa5, 0x13, 0x42, 0xba, + 0x04, 0x2d, 0x69, 0x01, 0xb5, 0x01, 0xff, 0xf1, 0x5d, 0x69, 0x01, 0x42, + 0x29, 0x08, 0x1b, 0x69, 0x41, 0xe5, 0x5a, 0x69, 0x01, 0x44, 0xe9, 0xf2, + 0x2e, 0x69, 0x41, 0xa4, 0xd2, 0x01, 0xa7, 0x7e, 0xe9, 0x5b, 0x69, 0x01, + 0xaa, 0x53, 0xb3, 0x31, 0xb4, 0x1d, 0xf5, 0x57, 0x69, 0x01, 0xb9, 0x01, + 0xff, 0x42, 0x57, 0x00, 0xfa, 0x68, 0x01, 0x42, 0xed, 0x05, 0x22, 0x69, + 0x01, 0xe9, 0x4d, 0x69, 0x01, 0x42, 0xd6, 0x13, 0x2f, 0x69, 0x41, 0xa5, + 0x06, 0x42, 0x27, 0x74, 0x62, 0x69, 0x41, 0xe5, 0x59, 0x69, 0x01, 0x42, + 0x48, 0x04, 0x38, 0x69, 0x41, 0xa8, 0x12, 0x03, 0x5e, 0x8e, 0x06, 0x42, + 0x48, 0x04, 0x40, 0x69, 0x41, 0xf0, 0x1f, 0x69, 0x01, 0xf4, 0x2b, 0x69, + 0x41, 0x42, 0x27, 0x01, 0xf8, 0x68, 0x01, 0x42, 0x29, 0x08, 0x46, 0x69, + 0x41, 0x42, 0xe5, 0x05, 0x02, 0x69, 0x01, 0x02, 0x97, 0x02, 0x11, 0xe9, + 0xf3, 0x68, 0x81, 0x06, 0x43, 0x12, 0xf3, 0x47, 0x69, 0x41, 0x42, 0x27, + 0x01, 0xf5, 0x68, 0x41, 0x43, 0x61, 0x87, 0x0e, 0x69, 0x01, 0xf4, 0xf7, + 0x68, 0x41, 0xa7, 0x2b, 0xab, 0x01, 0xff, 0x42, 0xe5, 0x05, 0xfe, 0x68, + 0x01, 0x02, 0x97, 0x02, 0x12, 0x43, 0x5e, 0x8e, 0x3c, 0x69, 0x01, 0x42, + 0x42, 0x0b, 0xfc, 0x68, 0x01, 0x43, 0xcd, 0xa9, 0x13, 0x69, 0x41, 0x43, + 0xa0, 0x95, 0x29, 0x69, 0x01, 0x42, 0x0d, 0x00, 0x10, 0x69, 0x41, 0xa1, + 0x12, 0x43, 0xfc, 0xeb, 0x3b, 0x69, 0x01, 0x43, 0x60, 0xcd, 0x45, 0x69, + 0x01, 0x44, 0x9b, 0xd7, 0x33, 0x69, 0x41, 0x42, 0x57, 0x00, 0x31, 0x69, + 0x81, 0x04, 0xf0, 0x43, 0x69, 0x41, 0x42, 0x93, 0x0f, 0xf9, 0x68, 0x41, + 0x42, 0x57, 0x00, 0x37, 0x69, 0x01, 0xa5, 0x06, 0x42, 0x10, 0x00, 0x18, + 0x69, 0x41, 0xe5, 0x15, 0x69, 0x01, 0x42, 0xbf, 0xe0, 0x09, 0x69, 0x41, + 0xa1, 0x6d, 0xa2, 0x58, 0xa5, 0x45, 0xa6, 0x26, 0x02, 0x99, 0x48, 0x10, + 0x43, 0x49, 0x07, 0x19, 0x69, 0x01, 0xf5, 0x53, 0x69, 0x01, 0x43, 0x6a, + 0xac, 0x5e, 0x69, 0x41, 0x43, 0x03, 0x69, 0x1a, 0x69, 0x01, 0x43, 0x5e, + 0x8e, 0x1c, 0x69, 0x01, 0x44, 0xc1, 0xf1, 0x16, 0x69, 0x41, 0x02, 0x97, + 0x02, 0x0f, 0x43, 0x5e, 0x8e, 0x32, 0x69, 0x01, 0xef, 0x1d, 0x69, 0xc1, + 0x00, 0xee, 0xf4, 0x68, 0x41, 0x42, 0x93, 0x0f, 0x2a, 0x69, 0x01, 0xf4, + 0x08, 0x69, 0x41, 0x43, 0x73, 0xa9, 0x50, 0x69, 0x01, 0xb5, 0x01, 0xff, + 0xee, 0x3e, 0x69, 0x01, 0xf4, 0x0b, 0x69, 0x41, 0x42, 0x80, 0x12, 0x20, + 0x69, 0x81, 0x06, 0x42, 0x1a, 0x05, 0xf1, 0x68, 0x41, 0x46, 0xc7, 0x1d, + 0x63, 0x69, 0x41, 0x45, 0x05, 0xe6, 0x42, 0x69, 0x01, 0x45, 0x12, 0xe6, + 0x0a, 0x69, 0x41, 0xa5, 0x12, 0x43, 0x5e, 0x8e, 0xf6, 0x68, 0x01, 0x42, + 0x63, 0x93, 0x5f, 0x69, 0x01, 0x42, 0x48, 0x04, 0x1e, 0x69, 0x41, 0x43, + 0x73, 0xa9, 0x4f, 0x69, 0x01, 0xf4, 0x30, 0x69, 0x01, 0xb5, 0x01, 0xff, + 0x43, 0x59, 0xdb, 0x17, 0x69, 0x01, 0xed, 0x44, 0x69, 0x41, 0xa5, 0x1f, + 0xf5, 0x49, 0x69, 0x81, 0x0c, 0x44, 0x19, 0xf3, 0x21, 0x69, 0x01, 0x43, + 0xcd, 0xa9, 0x56, 0x69, 0x41, 0xee, 0x3a, 0x69, 0x01, 0x42, 0x14, 0x05, + 0x06, 0x69, 0x01, 0xf1, 0x3f, 0x69, 0x41, 0xf4, 0x04, 0x69, 0x01, 0xb5, + 0x01, 0xff, 0x47, 0x99, 0xce, 0xff, 0x68, 0x01, 0xed, 0x26, 0x69, 0x01, + 0x48, 0x70, 0xc9, 0x0f, 0x69, 0x01, 0xf0, 0x2c, 0x69, 0x41, 0x42, 0x80, + 0x12, 0x12, 0x69, 0x01, 0x44, 0x9e, 0x95, 0x48, 0x69, 0x41, 0x42, 0x80, + 0x12, 0x65, 0x69, 0x01, 0x48, 0xf8, 0xc5, 0x14, 0x69, 0x41, 0x44, 0x4d, + 0xef, 0xc0, 0x68, 0x01, 0x43, 0x49, 0xf4, 0xbc, 0x68, 0x01, 0xa7, 0xfb, + 0x04, 0xab, 0xad, 0x04, 0xac, 0x96, 0x04, 0xad, 0x93, 0x03, 0xae, 0xa9, + 0x01, 0xb0, 0x93, 0x01, 0x42, 0x3d, 0x00, 0xc3, 0x68, 0x01, 0xb3, 0x63, + 0xb4, 0x3e, 0x03, 0xe4, 0x5e, 0x30, 0xb7, 0x22, 0xb9, 0x01, 0xff, 0x42, + 0x80, 0x12, 0xd9, 0x68, 0x01, 0x43, 0x0a, 0x9c, 0xa7, 0x68, 0x01, 0xb5, + 0x01, 0xff, 0x47, 0x5e, 0xcd, 0xa2, 0x68, 0x01, 0xed, 0x91, 0x68, 0x01, + 0x43, 0xc4, 0xf4, 0xe4, 0x68, 0x41, 0x47, 0xd8, 0xce, 0x92, 0x68, 0x01, + 0x42, 0x50, 0x02, 0xd1, 0x68, 0x41, 0x45, 0x16, 0xe4, 0xc1, 0x68, 0x01, + 0xf8, 0xb1, 0x68, 0x41, 0x46, 0x6e, 0xd9, 0xac, 0x68, 0x01, 0xa5, 0x11, + 0x02, 0x52, 0x00, 0x01, 0xff, 0x45, 0xf3, 0xe3, 0xae, 0x68, 0x01, 0x44, + 0x7c, 0xdc, 0xc6, 0x68, 0x41, 0xf4, 0xf0, 0x68, 0x01, 0x45, 0xfa, 0xeb, + 0xba, 0x68, 0x41, 0xa5, 0x1a, 0xa8, 0x06, 0x44, 0x2b, 0xae, 0xaf, 0x68, + 0x41, 0x45, 0x2d, 0xe6, 0xdc, 0x68, 0x01, 0x42, 0x6b, 0x18, 0xe8, 0x68, + 0x01, 0x43, 0x12, 0xf3, 0xdb, 0x68, 0x41, 0x44, 0x2e, 0xe6, 0xdc, 0x68, + 0x01, 0x42, 0xbf, 0xe0, 0xaa, 0x68, 0x41, 0x42, 0x92, 0x01, 0xef, 0x68, + 0x01, 0xa9, 0x01, 0xff, 0xee, 0xee, 0x68, 0x01, 0x45, 0x60, 0xea, 0x9c, + 0x68, 0x41, 0xa1, 0xda, 0x01, 0xa4, 0xb3, 0x01, 0xa7, 0x74, 0xaa, 0x52, + 0xb3, 0x2d, 0xb4, 0x13, 0x50, 0xf6, 0x68, 0x99, 0x68, 0x01, 0xba, 0x01, + 0xff, 0xe1, 0x90, 0x68, 0x01, 0x43, 0xee, 0x57, 0xa3, 0x68, 0x41, 0x42, + 0x80, 0x12, 0xb4, 0x68, 0x01, 0xa5, 0x06, 0x46, 0xc4, 0xe0, 0x9a, 0x68, + 0x41, 0xee, 0xd4, 0x68, 0x01, 0x45, 0xd2, 0xeb, 0xb9, 0x68, 0x41, 0xe1, + 0xbe, 0x68, 0x01, 0x45, 0xf6, 0xc0, 0xa5, 0x68, 0x01, 0x43, 0x4c, 0xf4, + 0xbf, 0x68, 0x01, 0x42, 0x14, 0x05, 0xd3, 0x68, 0x01, 0xb5, 0x01, 0xff, + 0xee, 0xd6, 0x68, 0x01, 0x47, 0x1f, 0xd4, 0xc7, 0x68, 0x41, 0xa1, 0x14, + 0xa5, 0x06, 0x43, 0x12, 0xf3, 0xad, 0x68, 0x41, 0x43, 0x73, 0xa9, 0xc8, + 0x68, 0x01, 0x42, 0xbf, 0xe0, 0xe5, 0x68, 0x41, 0x42, 0xb5, 0x05, 0xc4, + 0x68, 0x01, 0xed, 0xcf, 0x68, 0x41, 0x42, 0x80, 0x36, 0xeb, 0x68, 0x01, + 0xa7, 0x14, 0xab, 0x06, 0x42, 0x14, 0x05, 0xd0, 0x68, 0x41, 0x42, 0x80, + 0x36, 0x95, 0x68, 0x01, 0x49, 0x38, 0xc0, 0x8f, 0x68, 0x41, 0x42, 0x92, + 0x01, 0x93, 0x68, 0x01, 0xf5, 0xca, 0x68, 0xc1, 0x00, 0x48, 0x30, 0xc3, + 0xb0, 0x68, 0x01, 0x43, 0x0f, 0x11, 0xd2, 0x68, 0x01, 0xed, 0xbb, 0x68, + 0x01, 0x42, 0x10, 0x00, 0xb5, 0x68, 0x41, 0xa1, 0x1a, 0x02, 0x97, 0x02, + 0x0c, 0x43, 0x23, 0x95, 0xab, 0x68, 0x01, 0x44, 0x6e, 0xd2, 0x9d, 0x68, + 0x41, 0x45, 0x1b, 0xe4, 0x94, 0x68, 0x01, 0xf4, 0xbd, 0x68, 0x41, 0xed, + 0xd7, 0x68, 0x01, 0xf0, 0xda, 0x68, 0x41, 0x46, 0x7e, 0xde, 0xb2, 0x68, + 0x01, 0xf1, 0xec, 0x68, 0x41, 0xa1, 0x61, 0xa2, 0x12, 0x46, 0xe4, 0xdb, + 0xb8, 0x68, 0x01, 0x43, 0x5e, 0x8e, 0xe6, 0x68, 0x01, 0x43, 0x9f, 0x95, + 0xe7, 0x68, 0x41, 0xa1, 0x35, 0xa5, 0x1c, 0xe9, 0xdd, 0x68, 0x81, 0x0d, + 0xb5, 0x01, 0xff, 0x43, 0x61, 0x87, 0xcc, 0x68, 0x01, 0xe5, 0xa4, 0x68, + 0x41, 0x45, 0x60, 0xea, 0xb7, 0x68, 0x01, 0xf4, 0xa6, 0x68, 0x41, 0x45, + 0xe2, 0xe5, 0x97, 0x68, 0x01, 0x43, 0x75, 0x82, 0xc2, 0x68, 0x01, 0xb5, + 0x01, 0xff, 0xed, 0x9b, 0x68, 0x01, 0xf8, 0xe1, 0x68, 0x41, 0x02, 0x5a, + 0x00, 0x06, 0x43, 0x7d, 0x1a, 0xdf, 0x68, 0x41, 0x4c, 0x1b, 0x8d, 0x9e, + 0x68, 0x01, 0x46, 0x20, 0xdf, 0xe3, 0x68, 0x41, 0x80, 0x0f, 0xa5, 0x01, + 0xff, 0x43, 0x46, 0x9f, 0xde, 0x68, 0x01, 0x42, 0x5a, 0x03, 0xcb, 0x68, + 0x41, 0x47, 0x58, 0xd2, 0xb3, 0x68, 0x01, 0x45, 0x34, 0xe9, 0xd8, 0x68, + 0x41, 0xa1, 0x0a, 0x42, 0x6b, 0x18, 0xed, 0x68, 0x01, 0xf5, 0xcd, 0x68, + 0x41, 0xed, 0xc5, 0x68, 0x01, 0xf0, 0xb6, 0x68, 0x41, 0x42, 0x80, 0x12, + 0xa9, 0x68, 0x01, 0xa5, 0x13, 0x45, 0xfc, 0x68, 0xa8, 0x68, 0x01, 0xb5, + 0x01, 0xff, 0x4a, 0xed, 0xae, 0xd5, 0x68, 0x01, 0xf4, 0xce, 0x68, 0x41, + 0x02, 0x92, 0x00, 0x20, 0xf4, 0xc9, 0x68, 0x01, 0xb5, 0x01, 0xff, 0x43, + 0x64, 0xf4, 0xa1, 0x68, 0x01, 0xed, 0xe2, 0x68, 0x01, 0xb3, 0x01, 0xff, + 0x43, 0xfc, 0xeb, 0xe0, 0x68, 0x01, 0x46, 0x7a, 0xdc, 0x9f, 0x68, 0x41, + 0x47, 0x0f, 0xd1, 0xea, 0x68, 0x01, 0x43, 0x76, 0xd4, 0xe9, 0x68, 0x41, + 0x44, 0x35, 0xef, 0x98, 0x68, 0x01, 0x02, 0x22, 0x00, 0x01, 0xff, 0xf0, + 0xa0, 0x68, 0x01, 0x43, 0x75, 0x82, 0x96, 0x68, 0x41, 0x02, 0x0c, 0x1a, + 0x93, 0x03, 0x07, 0x47, 0xd1, 0x84, 0x03, 0xab, 0xd8, 0x02, 0xac, 0xbb, + 0x02, 0xad, 0xde, 0x01, 0xae, 0x83, 0x01, 0xb0, 0x5e, 0xb3, 0x34, 0xb4, + 0x1b, 0x44, 0xf9, 0xf2, 0x73, 0x68, 0x01, 0x45, 0x6d, 0xec, 0x76, 0x68, + 0x01, 0xb9, 0x01, 0xff, 0x4c, 0x07, 0x8c, 0x62, 0x68, 0x01, 0x45, 0x37, + 0xe6, 0x5e, 0x68, 0x41, 0x43, 0x69, 0x89, 0x78, 0x68, 0x01, 0x02, 0x2e, + 0x02, 0x01, 0xff, 0x49, 0xd3, 0xbb, 0x58, 0x68, 0x01, 0x45, 0x34, 0xe9, + 0x68, 0x68, 0x41, 0x46, 0x57, 0xd2, 0x77, 0x68, 0x01, 0x45, 0x28, 0xe6, + 0x5a, 0x68, 0x01, 0x02, 0xb0, 0x01, 0x0c, 0x43, 0x5e, 0x8e, 0x59, 0x68, + 0x01, 0x42, 0xd6, 0x13, 0x7d, 0x68, 0x41, 0x46, 0x52, 0xe0, 0x69, 0x68, + 0x01, 0x46, 0xca, 0xe0, 0x6a, 0x68, 0x41, 0x44, 0x1d, 0xef, 0x72, 0x68, + 0x01, 0x45, 0xc4, 0xe5, 0x61, 0x68, 0x01, 0x42, 0x52, 0x00, 0x67, 0x68, + 0x01, 0x03, 0xaa, 0x45, 0x01, 0xff, 0x43, 0x69, 0x89, 0x81, 0x68, 0x01, + 0x44, 0xdd, 0xef, 0x81, 0x68, 0x41, 0x47, 0x7c, 0xd0, 0x65, 0x68, 0x01, + 0xa7, 0x23, 0xb3, 0x15, 0x4b, 0x87, 0xa3, 0x64, 0x68, 0x01, 0xb9, 0x01, + 0xff, 0x45, 0x11, 0xe4, 0x80, 0x68, 0x01, 0x47, 0xb0, 0xd1, 0x6d, 0x68, + 0x41, 0x42, 0x92, 0x01, 0x8b, 0x68, 0x01, 0x44, 0xda, 0xd0, 0x57, 0x68, + 0x41, 0xa7, 0x0c, 0x4a, 0x63, 0xac, 0x74, 0x68, 0x01, 0x42, 0x14, 0x05, + 0x8e, 0x68, 0x41, 0x43, 0x69, 0x89, 0x8a, 0x68, 0x01, 0x46, 0x78, 0xdb, + 0x75, 0x68, 0x01, 0x42, 0x14, 0x05, 0x8e, 0x68, 0x01, 0x43, 0x8f, 0xa3, + 0x7a, 0x68, 0xc1, 0x00, 0x46, 0xb1, 0x1c, 0x7b, 0x68, 0x41, 0xe1, 0x8c, + 0x68, 0x81, 0x44, 0xa2, 0x22, 0x02, 0x97, 0x02, 0x14, 0xa6, 0x06, 0x47, + 0xf5, 0xd3, 0x7f, 0x68, 0x41, 0x44, 0x7e, 0x36, 0x7c, 0x68, 0x01, 0x49, + 0x17, 0xbd, 0x6b, 0x68, 0x41, 0xf1, 0x79, 0x68, 0x01, 0x48, 0x48, 0xcb, + 0x82, 0x68, 0x41, 0xa1, 0x12, 0x44, 0xef, 0xeb, 0x7e, 0x68, 0x01, 0x4a, + 0x13, 0xac, 0x6c, 0x68, 0x01, 0x43, 0x8f, 0xa3, 0x84, 0x68, 0x41, 0x47, + 0x49, 0xcd, 0x5c, 0x68, 0x01, 0x44, 0x74, 0x82, 0x5f, 0x68, 0x41, 0x03, + 0x59, 0x87, 0x01, 0xff, 0x46, 0x7e, 0xdb, 0x87, 0x68, 0x01, 0x43, 0xb2, + 0xf4, 0x88, 0x68, 0x41, 0xa1, 0x0c, 0x42, 0xed, 0x05, 0x89, 0x68, 0x01, + 0x48, 0x28, 0xc9, 0x5b, 0x68, 0x41, 0x44, 0x05, 0xef, 0x71, 0x68, 0x01, + 0x4c, 0xa7, 0x91, 0x63, 0x68, 0x41, 0x42, 0x57, 0x00, 0x60, 0x68, 0x01, + 0x02, 0x97, 0x02, 0x0d, 0xa9, 0x01, 0xff, 0x43, 0x4b, 0x18, 0x5d, 0x68, + 0x01, 0xf1, 0x8d, 0x68, 0x41, 0x43, 0x61, 0x87, 0x86, 0x68, 0x01, 0x43, + 0x82, 0xf4, 0x6e, 0x68, 0x01, 0x44, 0x41, 0xf3, 0x70, 0x68, 0x41, 0xee, + 0x6f, 0x68, 0x01, 0x44, 0x33, 0xe6, 0x66, 0x68, 0x41, 0xe5, 0x85, 0x68, + 0x01, 0x42, 0xbf, 0xe0, 0x83, 0x68, 0x41, 0x44, 0xcd, 0xef, 0x39, 0x68, + 0x01, 0xa7, 0xcc, 0x04, 0xab, 0xa5, 0x04, 0xac, 0x85, 0x04, 0xad, 0x8a, + 0x03, 0xae, 0xdc, 0x01, 0xb0, 0x88, 0x01, 0x43, 0xab, 0x05, 0x3a, 0x68, + 0x01, 0xb3, 0x3b, 0xb4, 0x14, 0xb5, 0x06, 0x43, 0xfd, 0x06, 0x52, 0x68, + 0x41, 0x48, 0xb0, 0xc2, 0x20, 0x68, 0x01, 0x46, 0x60, 0xde, 0x44, 0x68, + 0x41, 0x02, 0x97, 0x02, 0x15, 0x48, 0x48, 0xc7, 0x06, 0x68, 0x01, 0xb5, + 0x01, 0xff, 0x47, 0x3a, 0xc0, 0x0c, 0x68, 0x01, 0x43, 0x59, 0xdb, 0x2e, + 0x68, 0x41, 0x43, 0x1b, 0x42, 0x4a, 0x68, 0x01, 0x46, 0x88, 0xe0, 0x31, + 0x68, 0x41, 0x46, 0x84, 0xdb, 0x11, 0x68, 0x01, 0xa8, 0x1c, 0x43, 0x06, + 0x4a, 0x23, 0x68, 0x01, 0xaf, 0x06, 0x42, 0x27, 0x74, 0x15, 0x68, 0x41, + 0x44, 0x81, 0xf1, 0x30, 0x68, 0x01, 0xf1, 0x3c, 0x68, 0x01, 0xf4, 0x4b, + 0x68, 0x41, 0xa9, 0x13, 0x4c, 0x63, 0x93, 0x40, 0x68, 0x01, 0xb5, 0x01, + 0xff, 0x47, 0xd7, 0xd0, 0x05, 0x68, 0x01, 0xed, 0x37, 0x68, 0x41, 0x4a, + 0x4d, 0xae, 0x08, 0x68, 0x01, 0x43, 0x75, 0x82, 0x3e, 0x68, 0x41, 0xa1, + 0x31, 0x42, 0xed, 0x05, 0x2a, 0x68, 0x01, 0x03, 0xb6, 0x00, 0x06, 0x42, + 0x50, 0x02, 0x2d, 0x68, 0x41, 0x0b, 0x72, 0x9f, 0x11, 0x0d, 0x57, 0x87, + 0x01, 0xff, 0x42, 0x16, 0x00, 0x0a, 0x68, 0x01, 0x45, 0xd7, 0xbb, 0x09, + 0x68, 0x41, 0x42, 0x16, 0x00, 0x03, 0x68, 0x01, 0x45, 0xd7, 0xbb, 0x02, + 0x68, 0x41, 0x49, 0x0a, 0x8c, 0x28, 0x68, 0x01, 0xa1, 0x0c, 0x45, 0xd0, + 0xe8, 0x1d, 0x68, 0x01, 0x44, 0xe1, 0x98, 0x1b, 0x68, 0x41, 0xed, 0x4c, + 0x68, 0x01, 0x43, 0x75, 0x82, 0x42, 0x68, 0x41, 0xa1, 0x9e, 0x01, 0x02, + 0xf0, 0x10, 0x8d, 0x01, 0x42, 0x92, 0x01, 0x54, 0x68, 0x01, 0xa7, 0x68, + 0x43, 0xbd, 0x43, 0x2c, 0x68, 0x01, 0x43, 0x82, 0xf1, 0x47, 0x68, 0x01, + 0xab, 0x4e, 0x02, 0xa4, 0x02, 0x40, 0xb4, 0x22, 0xb9, 0x0f, 0xba, 0x01, + 0xff, 0x46, 0x4a, 0xc7, 0x07, 0x68, 0x01, 0x47, 0xc6, 0xd6, 0x1f, 0x68, + 0x41, 0x42, 0xed, 0x05, 0x49, 0x68, 0x01, 0xe9, 0x4f, 0x68, 0xc1, 0x00, + 0x4c, 0x97, 0x95, 0x41, 0x68, 0x41, 0x42, 0xe5, 0x05, 0x3f, 0x68, 0x81, + 0x06, 0x45, 0x9d, 0xe9, 0x12, 0x68, 0x41, 0x80, 0x01, 0xff, 0x44, 0x2d, + 0xf1, 0x19, 0x68, 0x01, 0x44, 0x9d, 0xf1, 0x22, 0x68, 0x41, 0xe1, 0x51, + 0x68, 0x01, 0x43, 0x5e, 0x8e, 0x4d, 0x68, 0x41, 0x45, 0xf2, 0xae, 0x43, + 0x68, 0x01, 0x44, 0xe9, 0x06, 0x14, 0x68, 0x41, 0x44, 0x1c, 0x01, 0x0d, + 0x68, 0x01, 0x43, 0x40, 0x5a, 0x45, 0x68, 0x01, 0x03, 0x67, 0xf4, 0x01, + 0xff, 0x45, 0x4b, 0xc7, 0x00, 0x68, 0x01, 0x45, 0x52, 0xe9, 0x16, 0x68, + 0x41, 0x49, 0x0a, 0x8c, 0x29, 0x68, 0x01, 0x49, 0x18, 0xb6, 0x34, 0x68, + 0x41, 0x46, 0x4a, 0xc7, 0x04, 0x68, 0x01, 0xf1, 0x55, 0x68, 0x41, 0xa1, + 0x39, 0x02, 0x16, 0x00, 0x2b, 0x4b, 0x02, 0x9c, 0x25, 0x68, 0x01, 0x45, + 0xe4, 0xdb, 0x24, 0x68, 0x01, 0xaf, 0x06, 0x49, 0xf5, 0xc0, 0x10, 0x68, + 0x41, 0x4a, 0x25, 0xae, 0x1e, 0x68, 0x01, 0x02, 0x14, 0x05, 0x01, 0xff, + 0x43, 0x4d, 0x8e, 0x36, 0x68, 0x01, 0x43, 0x82, 0xf4, 0x26, 0x68, 0x41, + 0x43, 0x7d, 0x1a, 0x48, 0x68, 0x01, 0xf1, 0x56, 0x68, 0x41, 0xa5, 0x0c, + 0x45, 0x39, 0xe9, 0x0f, 0x68, 0x01, 0x47, 0x6c, 0xd4, 0x3d, 0x68, 0x41, + 0x44, 0xd5, 0xf0, 0x1a, 0x68, 0x01, 0xed, 0x4e, 0x68, 0x81, 0x0c, 0x43, + 0x7d, 0x1a, 0x32, 0x68, 0x01, 0x42, 0x5a, 0x03, 0x46, 0x68, 0x41, 0x46, + 0x22, 0xda, 0x0b, 0x68, 0x01, 0x45, 0xd7, 0xbb, 0x0b, 0x68, 0x01, 0x44, + 0xb1, 0x71, 0x2b, 0x68, 0x01, 0x44, 0xfd, 0xf2, 0x0e, 0x68, 0x41, 0x44, + 0x09, 0xef, 0x17, 0x68, 0x01, 0x46, 0x72, 0xdb, 0x18, 0x68, 0x01, 0x45, + 0x93, 0xe9, 0x38, 0x68, 0x01, 0xf5, 0x53, 0x68, 0xc1, 0x00, 0x43, 0x59, + 0xdb, 0x2f, 0x68, 0x41, 0xa1, 0x18, 0xa5, 0x0c, 0x43, 0x7f, 0xf4, 0x3b, + 0x68, 0x01, 0x43, 0x8f, 0xa3, 0x35, 0x68, 0x41, 0xf4, 0x33, 0x68, 0x01, + 0x48, 0x00, 0xcc, 0x13, 0x68, 0x41, 0x42, 0x0c, 0x08, 0x27, 0x68, 0x01, + 0xf1, 0x50, 0x68, 0x41, 0x48, 0x10, 0xc4, 0x01, 0x68, 0x01, 0x05, 0x09, + 0xdc, 0x01, 0xff, 0x46, 0x08, 0xdc, 0x21, 0x68, 0x01, 0x43, 0x75, 0x82, + 0x1c, 0x68, 0x41, 0xe5, 0xca, 0xa6, 0x00, 0x42, 0xbf, 0xe0, 0xc5, 0xa6, + 0x40, 0xe1, 0xdb, 0xa6, 0x00, 0x43, 0xa5, 0x57, 0xb1, 0xa6, 0x00, 0xa7, + 0x3d, 0xe9, 0xcf, 0xa6, 0x00, 0xaa, 0x25, 0x43, 0xa4, 0x02, 0xc3, 0xa6, + 0x00, 0xb4, 0x11, 0xf5, 0xbd, 0xa6, 0x80, 0x06, 0x42, 0x7e, 0x1a, 0xa8, + 0xa6, 0x40, 0x42, 0x93, 0x0f, 0xbc, 0xa6, 0x40, 0x42, 0x27, 0x01, 0xc7, + 0xa6, 0x00, 0x42, 0x27, 0x74, 0xeb, 0xa6, 0x40, 0x43, 0x61, 0x87, 0xb2, + 0xa6, 0x00, 0x42, 0x27, 0x01, 0xc6, 0xa6, 0x00, 0x43, 0x9f, 0x95, 0xbe, + 0xa6, 0x40, 0xe1, 0xd5, 0xa6, 0x00, 0x42, 0x24, 0x02, 0xd4, 0xa6, 0x00, + 0x45, 0xf4, 0xe7, 0xd3, 0xa6, 0x40, 0xe1, 0xe3, 0xa6, 0x00, 0xa2, 0x18, + 0xa5, 0x0c, 0xe9, 0xce, 0xa6, 0x00, 0xef, 0xe6, 0xa6, 0x00, 0xf5, 0xb5, + 0xa6, 0x40, 0x43, 0x73, 0xa9, 0xaf, 0xa6, 0x00, 0xee, 0xe2, 0xa6, 0x40, + 0x42, 0x80, 0x12, 0xe7, 0xa6, 0x00, 0x42, 0x92, 0x01, 0xe0, 0xa6, 0x40, + 0xe1, 0xaa, 0xa6, 0x00, 0x44, 0x99, 0xef, 0xae, 0xa6, 0x00, 0xe9, 0xdc, + 0xa6, 0x00, 0x42, 0x63, 0x93, 0xde, 0xa6, 0x00, 0xf5, 0xcd, 0xa6, 0x40, + 0xe1, 0xa1, 0xa6, 0x00, 0xa5, 0x25, 0xe9, 0xe5, 0xa6, 0x00, 0xef, 0xdf, + 0xa6, 0x80, 0x10, 0x42, 0xbb, 0x09, 0xe9, 0xa6, 0x00, 0xf5, 0xa3, 0xa6, + 0x00, 0x43, 0xcd, 0xa9, 0xba, 0xa6, 0x40, 0x44, 0xf1, 0xef, 0xef, 0xa6, + 0x00, 0x43, 0xc1, 0xf4, 0xee, 0xa6, 0x40, 0xee, 0xd2, 0xa6, 0x00, 0xf4, + 0xbb, 0xa6, 0x00, 0x42, 0xbf, 0xe0, 0xc4, 0xa6, 0x40, 0x45, 0xfd, 0xe3, + 0xed, 0xa6, 0x00, 0x42, 0x27, 0x01, 0xcb, 0xa6, 0x00, 0x42, 0x14, 0x05, + 0xd9, 0xa6, 0x00, 0xf5, 0xd8, 0xa6, 0x40, 0x43, 0xd7, 0x02, 0xf4, 0xa6, + 0x00, 0xad, 0x01, 0xff, 0x0c, 0xbb, 0x8c, 0x06, 0x42, 0x6c, 0x00, 0xf5, + 0xa6, 0x40, 0x47, 0x74, 0xd2, 0xf0, 0xa6, 0x00, 0x49, 0x1d, 0xc0, 0xf1, + 0xa6, 0x40, 0x06, 0xbd, 0x83, 0x71, 0xac, 0x01, 0xff, 0x48, 0x28, 0xc2, + 0xf6, 0xf9, 0x01, 0x48, 0xe0, 0xc5, 0x70, 0xfa, 0x01, 0xaf, 0x01, 0xff, + 0x42, 0x10, 0x00, 0x88, 0xf3, 0x81, 0x52, 0x02, 0xc6, 0x00, 0x01, 0xff, + 0x02, 0x5d, 0x00, 0x0a, 0x48, 0x6d, 0x9e, 0xf4, 0xf5, 0x01, 0xf8, 0x17, + 0x27, 0x40, 0x4b, 0x6a, 0x9e, 0xf6, 0xf5, 0x01, 0xf8, 0x10, 0x26, 0xc0, + 0x00, 0x06, 0x50, 0x00, 0x01, 0xff, 0xa2, 0x16, 0x45, 0x6d, 0x14, 0x11, + 0x26, 0x00, 0x47, 0xeb, 0xd2, 0xbd, 0x2b, 0x00, 0x48, 0x6d, 0x9e, 0xf5, + 0xf5, 0x01, 0xf8, 0x12, 0x26, 0x40, 0x45, 0xae, 0xce, 0xf3, 0xf5, 0x01, + 0x04, 0x2e, 0x25, 0x01, 0xff, 0x45, 0x6d, 0x14, 0xf9, 0xf5, 0x01, 0x48, + 0x6d, 0x9e, 0xf7, 0xf5, 0x41, 0x50, 0xd4, 0x1c, 0x49, 0x27, 0x40, 0x49, + 0xa3, 0xb5, 0x44, 0x1b, 0x00, 0x06, 0xcd, 0x6e, 0x85, 0x07, 0x06, 0xef, + 0x06, 0xbe, 0x06, 0x0f, 0xc4, 0x6e, 0xad, 0x06, 0x07, 0xec, 0x05, 0xaa, + 0x03, 0x0f, 0x26, 0x32, 0xcd, 0x01, 0x02, 0xbb, 0x09, 0x9d, 0x01, 0x05, + 0x5a, 0x03, 0x70, 0x0b, 0x40, 0x77, 0x06, 0x45, 0x59, 0xec, 0x5c, 0x1b, + 0x40, 0x48, 0x90, 0xc7, 0x3c, 0x1b, 0x80, 0x59, 0x45, 0xde, 0xe9, 0x42, + 0x1b, 0x80, 0x4c, 0x47, 0x14, 0xd5, 0x3a, 0x1b, 0x80, 0x3f, 0x44, 0x09, + 0xd6, 0x38, 0x1b, 0x80, 0x32, 0xb4, 0x0d, 0x43, 0x91, 0x97, 0x36, 0x1b, + 0xc0, 0x00, 0x45, 0xdc, 0xe1, 0x37, 0x1b, 0x40, 0x45, 0x44, 0x28, 0x3e, + 0x1b, 0x80, 0x06, 0x45, 0xa6, 0xcd, 0x35, 0x1b, 0x40, 0x80, 0x01, 0xff, + 0x44, 0x1e, 0xce, 0x3f, 0x1b, 0x80, 0x06, 0x46, 0xa5, 0xcd, 0x40, 0x1b, + 0x40, 0x47, 0xa4, 0xcd, 0x41, 0x1b, 0x40, 0x45, 0xc3, 0xe1, 0x39, 0x1b, + 0x40, 0x47, 0xa4, 0xcd, 0x3b, 0x1b, 0x40, 0x47, 0xa4, 0xcd, 0x43, 0x1b, + 0x40, 0x47, 0xa4, 0xcd, 0x3d, 0x1b, 0x40, 0x45, 0xca, 0xe4, 0x04, 0x1b, + 0x00, 0x45, 0x15, 0xe5, 0x02, 0x1b, 0x00, 0x47, 0x4c, 0xd5, 0x34, 0x1b, + 0x00, 0x46, 0x34, 0xe0, 0x03, 0x1b, 0x00, 0x04, 0xd5, 0xf2, 0x01, 0xff, + 0x46, 0xd7, 0x23, 0x01, 0x1b, 0x00, 0x45, 0x5b, 0xea, 0x00, 0x1b, 0x40, + 0xad, 0x16, 0x43, 0x9f, 0x01, 0x5a, 0x1b, 0xc0, 0x00, 0x80, 0x01, 0xff, + 0x45, 0xb1, 0xe4, 0x7f, 0x1b, 0x00, 0x47, 0x19, 0xc2, 0x7d, 0x1b, 0x40, + 0x43, 0xde, 0x1e, 0x5b, 0x1b, 0x80, 0x06, 0x45, 0x00, 0xe6, 0x60, 0x1b, + 0x40, 0x48, 0x18, 0xc2, 0x7e, 0x1b, 0x40, 0x0a, 0x41, 0x59, 0x97, 0x01, + 0xa4, 0x51, 0x0a, 0xc7, 0xac, 0x26, 0x0b, 0x06, 0xa2, 0x01, 0xff, 0x08, + 0x76, 0x61, 0x11, 0x06, 0xd8, 0xde, 0x01, 0xff, 0x42, 0x23, 0x02, 0x75, + 0x1b, 0x00, 0x42, 0xd2, 0x0e, 0x74, 0x1b, 0x40, 0x42, 0x6d, 0x00, 0x77, + 0x1b, 0x00, 0x42, 0x90, 0x08, 0x76, 0x1b, 0x40, 0x09, 0x41, 0xb7, 0x17, + 0x06, 0xde, 0xde, 0x01, 0xff, 0x43, 0x1c, 0x01, 0x78, 0x1b, 0x00, 0x43, + 0xa1, 0x01, 0x7c, 0x1b, 0x00, 0x43, 0xaa, 0x45, 0x79, 0x1b, 0x40, 0x42, + 0x6d, 0x00, 0x7a, 0x1b, 0x00, 0x42, 0x90, 0x08, 0x7b, 0x1b, 0x40, 0xa1, + 0x20, 0xa5, 0x12, 0x43, 0xa1, 0x01, 0x66, 0x1b, 0x00, 0x43, 0xd8, 0x02, + 0x61, 0x1b, 0x00, 0x43, 0xaa, 0x45, 0x63, 0x1b, 0x40, 0x42, 0x1d, 0x01, + 0x62, 0x1b, 0x00, 0x43, 0xaa, 0x45, 0x68, 0x1b, 0x40, 0x43, 0x4c, 0x0a, + 0x67, 0x1b, 0x00, 0x43, 0xa1, 0x01, 0x69, 0x1b, 0x00, 0x42, 0x1d, 0x01, + 0x64, 0x1b, 0xc0, 0x00, 0x80, 0x01, 0xff, 0x44, 0xe9, 0xef, 0x6a, 0x1b, + 0x00, 0x46, 0x34, 0xe0, 0x65, 0x1b, 0x40, 0x45, 0xbb, 0xe4, 0x72, 0x1b, + 0x00, 0x45, 0xfb, 0xe5, 0x6c, 0x1b, 0x00, 0x44, 0xfb, 0x86, 0x73, 0x1b, + 0x00, 0x47, 0xd9, 0x7f, 0x6f, 0x1b, 0x00, 0x04, 0x04, 0xbb, 0x06, 0x45, + 0x32, 0xeb, 0x6b, 0x1b, 0x40, 0x42, 0xc3, 0x01, 0x6e, 0x1b, 0x80, 0x0d, + 0x42, 0x1f, 0x01, 0x6d, 0x1b, 0xc0, 0x00, 0x4d, 0xd3, 0x7f, 0x70, 0x1b, + 0x40, 0x4d, 0xd3, 0x7f, 0x71, 0x1b, 0x40, 0xa1, 0xdc, 0x02, 0x42, 0x16, + 0x00, 0x29, 0x1b, 0x80, 0xce, 0x02, 0x42, 0x37, 0x00, 0x18, 0x1b, 0x80, + 0xc0, 0x02, 0x42, 0xf0, 0x10, 0x24, 0x1b, 0x80, 0x9c, 0x02, 0xa5, 0x8d, + 0x02, 0x42, 0x24, 0x02, 0x15, 0x1b, 0x80, 0xff, 0x01, 0x42, 0x22, 0x00, + 0x33, 0x1b, 0x00, 0x45, 0x54, 0xe7, 0x07, 0x1b, 0x80, 0xeb, 0x01, 0x42, + 0x56, 0x19, 0x1a, 0x1b, 0x80, 0xdd, 0x01, 0xab, 0xc3, 0x01, 0x42, 0x74, + 0x00, 0x2e, 0x1b, 0x80, 0xae, 0x01, 0x42, 0x6c, 0x00, 0x2b, 0x1b, 0x00, + 0xae, 0x8e, 0x01, 0x45, 0x7f, 0xe9, 0x11, 0x1b, 0x80, 0x80, 0x01, 0x42, + 0xbb, 0x09, 0x27, 0x1b, 0x80, 0x73, 0x42, 0x71, 0x00, 0x2d, 0x1b, 0x80, + 0x5f, 0x42, 0x40, 0x06, 0x32, 0x1b, 0x80, 0x47, 0xb4, 0x25, 0x45, 0xc8, + 0xeb, 0x09, 0x1b, 0x80, 0x18, 0x48, 0x38, 0xcc, 0x49, 0x1b, 0x00, 0x42, + 0xa9, 0x01, 0x2f, 0x1b, 0x00, 0x42, 0xbc, 0x22, 0x2c, 0x1b, 0x00, 0x49, + 0xc4, 0xc1, 0x4a, 0x1b, 0x40, 0x47, 0xa4, 0xcd, 0x0a, 0x1b, 0x40, 0xe1, + 0x22, 0x1b, 0x80, 0x06, 0x49, 0xdf, 0xc1, 0x47, 0x1b, 0x40, 0x80, 0x01, + 0xff, 0x45, 0x1c, 0xe8, 0x1d, 0x1b, 0x00, 0x4f, 0x59, 0x70, 0x1e, 0x1b, + 0x00, 0x44, 0xa4, 0xc4, 0x23, 0x1b, 0x40, 0x03, 0xeb, 0x22, 0x01, 0xff, + 0x42, 0x24, 0x02, 0x30, 0x1b, 0x00, 0x42, 0xbb, 0x09, 0x31, 0x1b, 0x40, + 0x45, 0x16, 0xd5, 0x0b, 0x1b, 0xc0, 0x00, 0x47, 0xa4, 0xcd, 0x0c, 0x1b, + 0x40, 0x46, 0x1e, 0xd8, 0x28, 0x1b, 0x40, 0x47, 0xa4, 0xcd, 0x12, 0x1b, + 0x40, 0xe1, 0x26, 0x1b, 0x80, 0x0c, 0x42, 0x24, 0x02, 0x17, 0x1b, 0x00, + 0x42, 0xbc, 0x22, 0x1c, 0x1b, 0x40, 0x47, 0x81, 0xcd, 0x21, 0x1b, 0x40, + 0x46, 0x92, 0xc7, 0x0d, 0x1b, 0xc0, 0x00, 0x47, 0xa4, 0xcd, 0x0e, 0x1b, + 0x40, 0xe1, 0x13, 0x1b, 0x80, 0x06, 0x49, 0xc0, 0xb9, 0x46, 0x1b, 0x40, + 0x4a, 0x5e, 0x70, 0x14, 0x1b, 0x00, 0x47, 0x08, 0xd1, 0x45, 0x1b, 0x40, + 0x45, 0xc8, 0xe1, 0x1b, 0x1b, 0x40, 0x47, 0xa4, 0xcd, 0x08, 0x1b, 0x40, + 0x45, 0xb4, 0xe1, 0x16, 0x1b, 0x40, 0x47, 0x08, 0xd1, 0x48, 0x1b, 0x00, + 0x44, 0x43, 0x2d, 0x0f, 0x1b, 0x40, 0x02, 0x6b, 0x00, 0x01, 0xff, 0x43, + 0x6b, 0x02, 0x25, 0x1b, 0x00, 0x05, 0x5a, 0x70, 0x01, 0xff, 0x49, 0xfd, + 0xb5, 0x1f, 0x1b, 0x00, 0x49, 0x5f, 0x70, 0x20, 0x1b, 0x40, 0x45, 0xd2, + 0xe1, 0x19, 0x1b, 0x40, 0x48, 0x10, 0xc2, 0x2a, 0x1b, 0x40, 0x45, 0x54, + 0xe7, 0x10, 0x1b, 0x00, 0x44, 0x43, 0x2d, 0x05, 0x1b, 0x80, 0x0c, 0x4b, + 0xcf, 0xa1, 0x4c, 0x1b, 0x00, 0x4b, 0x0e, 0xa3, 0x4b, 0x1b, 0x40, 0x47, + 0xa4, 0xcd, 0x06, 0x1b, 0x40, 0x47, 0x88, 0xd4, 0x4f, 0x1b, 0x00, 0x44, + 0x58, 0xad, 0x4e, 0x1b, 0x40, 0x45, 0x12, 0x0b, 0x58, 0x1b, 0x00, 0xa6, + 0x2e, 0x44, 0xcf, 0x2a, 0x59, 0x1b, 0x00, 0x43, 0x0e, 0x0b, 0x51, 0x1b, + 0x00, 0xb3, 0x14, 0xb4, 0x06, 0x44, 0x43, 0x1e, 0x50, 0x1b, 0x40, 0x44, + 0x25, 0x01, 0x53, 0x1b, 0x00, 0x42, 0x15, 0x02, 0x52, 0x1b, 0x40, 0x44, + 0xc9, 0x1d, 0x57, 0x1b, 0x00, 0x42, 0x01, 0x26, 0x56, 0x1b, 0x40, 0x43, + 0xd2, 0x05, 0x55, 0x1b, 0x00, 0x43, 0xf6, 0x06, 0x54, 0x1b, 0x40, 0x02, + 0xbb, 0x09, 0x06, 0x44, 0x58, 0xad, 0x5e, 0x1b, 0x40, 0x47, 0x62, 0xd3, + 0x5d, 0x1b, 0x00, 0x45, 0x99, 0x72, 0x5f, 0x1b, 0x40, 0x42, 0xd8, 0x00, + 0x6f, 0xf9, 0x01, 0x4a, 0x97, 0xaa, 0xc4, 0xf6, 0x01, 0x4b, 0x21, 0xa4, + 0x56, 0xf9, 0x41, 0x43, 0xdb, 0x09, 0xa1, 0xf9, 0x01, 0x5e, 0xcb, 0x13, + 0xf8, 0xf3, 0x41, 0xab, 0x0c, 0x42, 0x10, 0x00, 0x53, 0xf9, 0x01, 0x4b, + 0xd4, 0xa3, 0x2b, 0xf4, 0x41, 0x80, 0x1f, 0x67, 0x58, 0x05, 0xab, 0x27, + 0x00, 0xb3, 0x01, 0xff, 0x1a, 0x9a, 0x20, 0x06, 0x44, 0xd1, 0x4c, 0x08, + 0x00, 0x40, 0x49, 0xf3, 0xbc, 0x5b, 0x2b, 0x00, 0x4d, 0xf3, 0x87, 0x5d, + 0x2b, 0x40, 0x4b, 0x7a, 0xa0, 0x82, 0xf5, 0x01, 0x5a, 0xa2, 0x22, 0x19, + 0xf5, 0x41, 0x80, 0x01, 0xff, 0x45, 0x4d, 0xe4, 0x7c, 0xf4, 0x01, 0x46, + 0x64, 0x5b, 0x7c, 0xf3, 0x01, 0x45, 0xf7, 0x59, 0x24, 0xf4, 0x01, 0x46, + 0x16, 0x08, 0xbc, 0xf6, 0x41, 0x45, 0x9d, 0xe4, 0xee, 0xf9, 0x01, 0xa3, + 0x96, 0x8d, 0x01, 0xa4, 0xaf, 0x88, 0x01, 0xa5, 0xfa, 0x84, 0x01, 0x4b, + 0x0d, 0x9c, 0x0b, 0x06, 0x00, 0x04, 0x4d, 0xf0, 0xcb, 0x81, 0x01, 0x47, + 0x12, 0x34, 0x08, 0x27, 0x80, 0xb3, 0x81, 0x01, 0x4b, 0x12, 0x9e, 0x4d, + 0x21, 0x00, 0xac, 0xa6, 0x79, 0xad, 0xf9, 0x78, 0xae, 0xc4, 0x63, 0xb0, + 0xe1, 0x5e, 0x47, 0xff, 0xd4, 0x52, 0x26, 0x00, 0xb2, 0xe1, 0x03, 0xb3, + 0x88, 0x03, 0xb4, 0xf9, 0x02, 0xb5, 0xd0, 0x02, 0xb6, 0x06, 0x42, 0x6d, + 0x43, 0x93, 0xfa, 0x41, 0x06, 0x6c, 0xdb, 0x06, 0x45, 0x75, 0xe9, 0x51, + 0xf9, 0x41, 0x51, 0x0b, 0x50, 0x39, 0x0b, 0x01, 0x07, 0xec, 0x05, 0x01, + 0xff, 0xe1, 0x00, 0x0b, 0x81, 0x8f, 0x02, 0xa2, 0x82, 0x02, 0x42, 0x73, + 0x02, 0x17, 0x0b, 0x01, 0xa4, 0xef, 0x01, 0xe5, 0x08, 0x0b, 0x81, 0xe5, + 0x01, 0x42, 0x0c, 0x1a, 0x1f, 0x0b, 0x01, 0xa7, 0xcc, 0x01, 0xa8, 0xbf, + 0x01, 0xe9, 0x0c, 0x0b, 0x81, 0xb5, 0x01, 0x42, 0x80, 0x20, 0x18, 0x0b, + 0x01, 0x42, 0x37, 0x01, 0x10, 0x0b, 0x01, 0x42, 0x68, 0x00, 0x2e, 0x0b, + 0x01, 0x42, 0x2a, 0x02, 0x28, 0x0b, 0x01, 0xae, 0x79, 0xef, 0x0a, 0x0b, + 0x81, 0x70, 0x42, 0x6f, 0x02, 0x1e, 0x0b, 0x01, 0x42, 0x88, 0x00, 0x2d, + 0x0b, 0x01, 0xb3, 0x4c, 0xb4, 0x3a, 0xf5, 0x0e, 0x0b, 0x81, 0x31, 0x42, + 0x32, 0x00, 0x2c, 0x0b, 0x01, 0xb8, 0x19, 0xb9, 0x0d, 0xba, 0x01, 0xff, + 0xe5, 0x30, 0x0b, 0x01, 0x42, 0xb0, 0x01, 0x32, 0x0b, 0x41, 0xe5, 0x2b, + 0x0b, 0x01, 0x42, 0x4d, 0x00, 0x2a, 0x0b, 0x41, 0xe5, 0x11, 0x0b, 0x01, + 0x42, 0x32, 0x00, 0x13, 0x0b, 0x01, 0x42, 0x4d, 0x00, 0x12, 0x0b, 0x41, + 0xf5, 0x0f, 0x0b, 0x41, 0xe5, 0x19, 0x0b, 0x01, 0x42, 0xb0, 0x01, 0x1a, + 0x0b, 0x01, 0x42, 0x77, 0x00, 0x1d, 0x0b, 0x41, 0xe5, 0x2f, 0x0b, 0x01, + 0xa8, 0x06, 0x43, 0x8e, 0x06, 0x34, 0x0b, 0x41, 0xe5, 0x31, 0x0b, 0x01, + 0x42, 0x4d, 0x00, 0x33, 0x0b, 0x41, 0xef, 0x0b, 0x0b, 0x41, 0xe5, 0x25, + 0x0b, 0x01, 0xa7, 0x0c, 0x42, 0xcd, 0x05, 0x27, 0x0b, 0x01, 0x42, 0x4d, + 0x00, 0x26, 0x0b, 0x41, 0xe5, 0x22, 0x0b, 0x01, 0x42, 0x32, 0x00, 0x24, + 0x0b, 0x01, 0x42, 0x4d, 0x00, 0x23, 0x0b, 0x41, 0xe9, 0x0d, 0x0b, 0x41, + 0xe5, 0x35, 0x0b, 0x01, 0x42, 0x2a, 0x02, 0x29, 0x0b, 0x41, 0xe5, 0x14, + 0x0b, 0x01, 0x42, 0xdb, 0x09, 0x15, 0x0b, 0x01, 0x42, 0xb0, 0x01, 0x16, + 0x0b, 0x41, 0xe5, 0x09, 0x0b, 0x41, 0xe5, 0x1b, 0x0b, 0x01, 0x42, 0xb0, + 0x01, 0x1c, 0x0b, 0x41, 0xe5, 0x20, 0x0b, 0x01, 0x42, 0xb0, 0x01, 0x21, + 0x0b, 0x41, 0xe1, 0x01, 0x0b, 0x81, 0x11, 0xe5, 0x06, 0x0b, 0x81, 0x08, + 0xee, 0x04, 0x0b, 0x01, 0xef, 0x02, 0x0b, 0x41, 0xe5, 0x07, 0x0b, 0x41, + 0xee, 0x05, 0x0b, 0x01, 0xef, 0x03, 0x0b, 0x41, 0x47, 0x72, 0xcf, 0x46, + 0xf3, 0x01, 0x4a, 0x63, 0xb1, 0xb3, 0x20, 0x00, 0x02, 0x1e, 0x00, 0x01, + 0xff, 0x49, 0xd4, 0xb4, 0xfa, 0xf6, 0x01, 0xad, 0x01, 0xff, 0x53, 0x74, + 0x48, 0xe7, 0xf3, 0x01, 0x45, 0x4e, 0x4b, 0x97, 0xf6, 0x41, 0x4b, 0xff, + 0x9c, 0x5f, 0xf4, 0x01, 0x49, 0x05, 0xbd, 0x9b, 0x26, 0x40, 0xa3, 0x48, + 0x47, 0x29, 0x60, 0xa6, 0x22, 0x00, 0xb4, 0x06, 0x55, 0x5e, 0x37, 0x43, + 0x22, 0x40, 0x04, 0x3f, 0x0d, 0x27, 0x4c, 0x33, 0x93, 0x32, 0xf6, 0x01, + 0xb2, 0x01, 0xff, 0x43, 0x6d, 0x28, 0xd9, 0x2b, 0x80, 0x11, 0x14, 0xb0, + 0x44, 0x01, 0xff, 0x53, 0x61, 0x48, 0xcd, 0xce, 0x01, 0x46, 0x00, 0xe1, + 0xe2, 0x26, 0x40, 0x49, 0x21, 0x2e, 0x78, 0xf7, 0x41, 0xeb, 0x2a, 0x00, + 0x80, 0x04, 0xed, 0x42, 0x20, 0x40, 0x49, 0x7d, 0x1d, 0x17, 0x22, 0x40, + 0x4b, 0x34, 0x8d, 0x0a, 0x26, 0x00, 0x49, 0xe4, 0xb9, 0x9c, 0x01, 0x41, + 0x04, 0xe4, 0x06, 0xbd, 0x05, 0xe3, 0x12, 0x23, 0x00, 0x43, 0x14, 0x9e, + 0x48, 0x26, 0x00, 0x07, 0xe7, 0x32, 0x4b, 0x03, 0xd0, 0x00, 0x11, 0x02, + 0x35, 0x00, 0x01, 0xff, 0x4d, 0xce, 0x81, 0x9b, 0xf6, 0x01, 0x4a, 0x4f, + 0xb1, 0xa8, 0xf3, 0x41, 0x0a, 0x9b, 0x01, 0x06, 0x53, 0xdd, 0x49, 0xb0, + 0xfb, 0x41, 0x17, 0x41, 0x2e, 0x1c, 0x18, 0xde, 0x2a, 0x06, 0x57, 0xab, + 0x31, 0xb0, 0xf8, 0x41, 0x49, 0xa5, 0x01, 0x35, 0x29, 0x00, 0x4a, 0x90, + 0x40, 0xb1, 0xf8, 0x01, 0x47, 0x50, 0x02, 0x34, 0x29, 0x40, 0x49, 0xea, + 0x01, 0x36, 0x29, 0x00, 0x4a, 0xb3, 0x02, 0x37, 0x29, 0x40, 0xa1, 0xd5, + 0x04, 0xa3, 0xdc, 0x02, 0x49, 0xe3, 0xb7, 0x8f, 0x05, 0x00, 0xa5, 0xc7, + 0x02, 0x49, 0x81, 0x16, 0x89, 0x05, 0x00, 0x46, 0x96, 0x63, 0x8a, 0x05, + 0x00, 0x5e, 0xe9, 0x13, 0x59, 0x05, 0x00, 0x4d, 0xa6, 0x34, 0x5e, 0x05, + 0x00, 0x07, 0x76, 0x08, 0x01, 0xff, 0x06, 0xed, 0x05, 0x2d, 0x08, 0x9d, + 0x1f, 0x01, 0xff, 0x48, 0x70, 0xc5, 0x87, 0x05, 0x00, 0x04, 0xfe, 0x4e, + 0x06, 0x47, 0x44, 0xd7, 0x16, 0xfb, 0x40, 0x43, 0x03, 0x41, 0x14, 0xfb, + 0x00, 0x43, 0x57, 0x07, 0x15, 0xfb, 0x00, 0x43, 0xda, 0x2e, 0x13, 0xfb, + 0x00, 0x43, 0xcd, 0xf4, 0x17, 0xfb, 0x40, 0x43, 0xa1, 0xc0, 0x61, 0x05, + 0x00, 0x43, 0x81, 0x1b, 0x62, 0x05, 0x00, 0xa3, 0xd6, 0x01, 0x42, 0xf0, + 0x10, 0x64, 0x05, 0x00, 0xa5, 0xbf, 0x01, 0x43, 0xd6, 0xb8, 0x86, 0x05, + 0x00, 0xa7, 0xaa, 0x01, 0x42, 0x0b, 0x00, 0x70, 0x05, 0x00, 0x43, 0x57, + 0x07, 0x6b, 0x05, 0x00, 0xaa, 0x91, 0x01, 0x02, 0x37, 0x01, 0x84, 0x01, + 0x44, 0x0d, 0xf1, 0x6c, 0x05, 0x00, 0x43, 0x2c, 0x05, 0x74, 0x05, 0x00, + 0x43, 0xda, 0x2e, 0x76, 0x05, 0x00, 0x42, 0xfd, 0x28, 0x85, 0x05, 0x00, + 0xb0, 0x5e, 0xb2, 0x52, 0xb3, 0x44, 0xb4, 0x32, 0xb6, 0x26, 0x43, 0xcd, + 0xf4, 0x6d, 0x05, 0x00, 0x42, 0x7e, 0x1a, 0x75, 0x05, 0x80, 0x0d, 0xba, + 0x01, 0xff, 0xe1, 0x66, 0x05, 0x00, 0x42, 0xb0, 0x01, 0x6a, 0x05, 0x40, + 0x4c, 0xda, 0x28, 0x88, 0x05, 0x00, 0x42, 0xa7, 0x01, 0x82, 0x05, 0x40, + 0x42, 0x27, 0x1e, 0x7e, 0x05, 0x00, 0xef, 0x78, 0x05, 0x40, 0x43, 0x75, + 0xc5, 0x7f, 0x05, 0x00, 0xef, 0x69, 0x05, 0x00, 0x49, 0x9b, 0xc0, 0x60, + 0x05, 0x40, 0x42, 0x4e, 0x00, 0x7d, 0x05, 0x00, 0x42, 0x22, 0x00, 0x77, + 0x05, 0x40, 0xe1, 0x7c, 0x05, 0x00, 0x42, 0x4e, 0x00, 0x80, 0x05, 0x40, + 0x42, 0x4e, 0x00, 0x7a, 0x05, 0x00, 0x43, 0x5b, 0xf4, 0x83, 0x05, 0x40, + 0xe8, 0x84, 0x05, 0x00, 0xee, 0x6f, 0x05, 0x40, 0xe1, 0x71, 0x05, 0x00, + 0x43, 0xf6, 0x42, 0x7b, 0x05, 0x40, 0x43, 0xa5, 0x02, 0x72, 0x05, 0x00, + 0x42, 0x29, 0x02, 0x63, 0x05, 0x40, 0x42, 0x6d, 0x14, 0x65, 0x05, 0x00, + 0xe8, 0x67, 0x05, 0x00, 0xf4, 0x68, 0x05, 0x40, 0xe1, 0x6e, 0x05, 0x00, + 0xa8, 0x04, 0xef, 0x81, 0x05, 0x40, 0xe1, 0x79, 0x05, 0x00, 0x42, 0x4e, + 0x00, 0x73, 0x05, 0x40, 0x4c, 0x2b, 0x92, 0x5b, 0x05, 0x00, 0x4f, 0xae, + 0x00, 0x5c, 0x05, 0x40, 0x0e, 0xe5, 0x05, 0x06, 0x44, 0x14, 0x05, 0x5d, + 0x05, 0x40, 0x43, 0xa1, 0xc0, 0x31, 0x05, 0x00, 0x43, 0x81, 0x1b, 0x32, + 0x05, 0x00, 0xa3, 0xc9, 0x01, 0x42, 0xf0, 0x10, 0x34, 0x05, 0x00, 0xa5, + 0xb2, 0x01, 0x43, 0xd6, 0xb8, 0x56, 0x05, 0x00, 0xa7, 0x9d, 0x01, 0x42, + 0x0b, 0x00, 0x40, 0x05, 0x00, 0x43, 0x57, 0x07, 0x3b, 0x05, 0x00, 0xaa, + 0x84, 0x01, 0x02, 0x37, 0x01, 0x78, 0x44, 0x0d, 0xf1, 0x3c, 0x05, 0x00, + 0x43, 0x2c, 0x05, 0x44, 0x05, 0x00, 0x43, 0xda, 0x2e, 0x46, 0x05, 0x00, + 0x42, 0xfd, 0x28, 0x55, 0x05, 0x00, 0xb0, 0x52, 0xb2, 0x46, 0xb3, 0x38, + 0xb4, 0x2c, 0xb6, 0x20, 0x43, 0xcd, 0xf4, 0x3d, 0x05, 0x00, 0x42, 0x7e, + 0x1a, 0x45, 0x05, 0x80, 0x0d, 0xba, 0x01, 0xff, 0xe1, 0x36, 0x05, 0x00, + 0x42, 0xb0, 0x01, 0x3a, 0x05, 0x40, 0x42, 0xa7, 0x01, 0x52, 0x05, 0x40, + 0x42, 0x27, 0x1e, 0x4e, 0x05, 0x00, 0xef, 0x48, 0x05, 0x40, 0x43, 0x75, + 0xc5, 0x4f, 0x05, 0x00, 0xef, 0x39, 0x05, 0x40, 0x42, 0x4e, 0x00, 0x4d, + 0x05, 0x00, 0x42, 0x22, 0x00, 0x47, 0x05, 0x40, 0xe1, 0x4c, 0x05, 0x00, + 0x42, 0x4e, 0x00, 0x50, 0x05, 0x40, 0x42, 0x4e, 0x00, 0x4a, 0x05, 0x00, + 0x43, 0x5b, 0xf4, 0x53, 0x05, 0x40, 0xe8, 0x54, 0x05, 0x00, 0xee, 0x3f, + 0x05, 0x40, 0xe1, 0x41, 0x05, 0x00, 0x43, 0xf6, 0x42, 0x4b, 0x05, 0x40, + 0x43, 0xa5, 0x02, 0x42, 0x05, 0x00, 0x42, 0x29, 0x02, 0x33, 0x05, 0x40, + 0x42, 0x6d, 0x14, 0x35, 0x05, 0x00, 0xe8, 0x37, 0x05, 0x00, 0xf4, 0x38, + 0x05, 0x40, 0xe1, 0x3e, 0x05, 0x00, 0xa8, 0x04, 0xef, 0x51, 0x05, 0x40, + 0xe1, 0x49, 0x05, 0x00, 0x42, 0x4e, 0x00, 0x43, 0x05, 0x40, 0x50, 0x0c, + 0x50, 0x5f, 0x05, 0x00, 0x49, 0x62, 0x36, 0x5a, 0x05, 0x40, 0x80, 0x68, + 0x07, 0xe8, 0x06, 0x01, 0xff, 0x49, 0x89, 0xb7, 0x06, 0x06, 0x00, 0x06, + 0xef, 0x06, 0x17, 0x4b, 0x2e, 0x9c, 0x07, 0x06, 0x00, 0x04, 0x6f, 0x02, + 0x01, 0xff, 0x4a, 0xdf, 0xad, 0x09, 0x06, 0x00, 0x51, 0x3c, 0x5e, 0x0a, + 0x06, 0x40, 0x45, 0x12, 0x0b, 0x68, 0x06, 0x00, 0xa6, 0x2e, 0x44, 0xcf, + 0x2a, 0x69, 0x06, 0x00, 0x43, 0x0e, 0x0b, 0x61, 0x06, 0x00, 0xb3, 0x14, + 0xb4, 0x06, 0x44, 0x43, 0x1e, 0x60, 0x06, 0x40, 0x44, 0x25, 0x01, 0x63, + 0x06, 0x00, 0x42, 0x15, 0x02, 0x62, 0x06, 0x40, 0x44, 0xc9, 0x1d, 0x67, + 0x06, 0x00, 0x42, 0x01, 0x26, 0x66, 0x06, 0x40, 0x43, 0xd2, 0x05, 0x65, + 0x06, 0x00, 0x43, 0xf6, 0x06, 0x64, 0x06, 0x40, 0xa2, 0xbc, 0x54, 0xa3, + 0xfd, 0x53, 0xa4, 0x9e, 0x53, 0xa5, 0xfa, 0x52, 0xa6, 0xac, 0x52, 0x02, + 0x22, 0x00, 0x90, 0x52, 0x4e, 0xb7, 0x78, 0x57, 0x06, 0x00, 0x45, 0xa8, + 0x50, 0x50, 0x06, 0x80, 0xe1, 0x51, 0xac, 0xf6, 0x0f, 0x02, 0x6c, 0x00, + 0xf9, 0x07, 0x07, 0xff, 0x39, 0xe8, 0x07, 0x05, 0xf6, 0x04, 0xd1, 0x07, + 0xb0, 0xa5, 0x07, 0x4d, 0xa6, 0x34, 0x1f, 0x06, 0x00, 0xb2, 0xed, 0x06, + 0xb3, 0xa4, 0x01, 0xb4, 0x2b, 0xb6, 0x0c, 0x50, 0xa6, 0x68, 0x5f, 0x06, + 0x00, 0x48, 0x08, 0xcd, 0x59, 0x06, 0x40, 0x4c, 0xd0, 0x47, 0x8e, 0x08, + 0x00, 0x0a, 0x41, 0x77, 0x01, 0xff, 0x49, 0x9f, 0x12, 0x5c, 0x06, 0x00, + 0x56, 0xc9, 0x34, 0x5b, 0x06, 0x00, 0x4d, 0xd2, 0x34, 0x5a, 0x06, 0x40, + 0xa1, 0x47, 0x52, 0x6f, 0x52, 0x6c, 0x06, 0x00, 0x04, 0x0e, 0x0b, 0x0c, + 0x5a, 0x06, 0x22, 0x1e, 0x06, 0x00, 0x51, 0xe6, 0x5e, 0xe3, 0x08, 0x40, + 0x05, 0x3a, 0xe8, 0x21, 0x08, 0xff, 0x0b, 0x11, 0x09, 0xf1, 0x0b, 0x01, + 0xff, 0x45, 0x5c, 0x00, 0xeb, 0x08, 0x00, 0x45, 0x20, 0x07, 0xee, 0x08, + 0x40, 0x45, 0x5c, 0x00, 0xea, 0x08, 0x00, 0x45, 0x20, 0x07, 0xed, 0x08, + 0x40, 0x45, 0x5c, 0x00, 0xec, 0x08, 0x00, 0x45, 0x20, 0x07, 0xef, 0x08, + 0x40, 0x4b, 0x4c, 0x9d, 0x73, 0xfe, 0x00, 0x45, 0x31, 0x21, 0x40, 0x06, + 0xc0, 0x00, 0x06, 0x50, 0x00, 0x01, 0xff, 0x4e, 0xbb, 0x77, 0x71, 0xfe, + 0x00, 0x0b, 0x2a, 0xa1, 0x06, 0x4e, 0x05, 0x0f, 0x85, 0x08, 0x40, 0x45, + 0x56, 0x00, 0x83, 0x08, 0x00, 0x43, 0x8a, 0x8a, 0x84, 0x08, 0x40, 0x48, + 0xda, 0x59, 0x1b, 0x06, 0x00, 0x45, 0xc8, 0xe6, 0x51, 0x06, 0x80, 0xa9, + 0x05, 0x04, 0x5b, 0x03, 0xd5, 0x04, 0x05, 0x5e, 0x07, 0xc1, 0x01, 0x53, + 0x6d, 0x4d, 0xde, 0x06, 0x00, 0xb5, 0x90, 0x01, 0x06, 0x60, 0x16, 0x01, + 0xff, 0x02, 0x3b, 0x01, 0x71, 0x0a, 0xd1, 0x46, 0x61, 0x44, 0x22, 0x08, + 0xbf, 0xfb, 0x00, 0x0a, 0x58, 0x75, 0x4b, 0xb4, 0x06, 0x4b, 0xf2, 0xa4, + 0xc2, 0xfb, 0x40, 0x0a, 0xae, 0x12, 0x22, 0x08, 0xf2, 0x0b, 0x01, 0xff, + 0x45, 0x5c, 0x00, 0xb4, 0xfb, 0x00, 0x45, 0x20, 0x07, 0xb5, 0xfb, 0x00, + 0x0b, 0x36, 0x2c, 0x01, 0xff, 0x45, 0x5c, 0x00, 0xbd, 0xfb, 0x00, 0x45, + 0x20, 0x07, 0xbe, 0xfb, 0x40, 0x45, 0x5c, 0x00, 0xb6, 0xfb, 0x00, 0x45, + 0x20, 0x07, 0xb7, 0xfb, 0x00, 0x13, 0x9c, 0x01, 0x01, 0xff, 0x45, 0x5c, + 0x00, 0xb8, 0xfb, 0x00, 0x45, 0x20, 0x07, 0xb9, 0xfb, 0x40, 0x45, 0x5c, + 0x00, 0xc0, 0xfb, 0x00, 0x45, 0x20, 0x07, 0xc1, 0xfb, 0x40, 0x45, 0x5c, + 0x00, 0xba, 0xfb, 0x00, 0x45, 0x20, 0x07, 0xbb, 0xfb, 0x40, 0x02, 0xc6, + 0x00, 0x06, 0x57, 0x66, 0x31, 0xbc, 0xfb, 0x40, 0x45, 0x5c, 0x00, 0xb2, + 0xfb, 0x00, 0x45, 0x20, 0x07, 0xb3, 0xfb, 0x40, 0x4c, 0xf7, 0x8c, 0x56, + 0x06, 0x00, 0x43, 0x77, 0x36, 0x52, 0x06, 0x80, 0x06, 0x58, 0x96, 0x2a, + 0x9d, 0x08, 0x40, 0x80, 0x01, 0xff, 0x45, 0x20, 0x07, 0xd0, 0x08, 0x00, + 0x4d, 0x5f, 0x03, 0x7e, 0xfe, 0x00, 0x4b, 0xf6, 0x6d, 0x7f, 0xfe, 0x40, + 0x45, 0xec, 0x5e, 0x19, 0x06, 0x00, 0x02, 0x0c, 0x08, 0xf8, 0x02, 0x05, + 0x48, 0x0b, 0x6a, 0x45, 0xa8, 0x50, 0x1a, 0x06, 0x00, 0x04, 0x08, 0x05, + 0x13, 0x43, 0x8a, 0x8a, 0xe5, 0x06, 0x00, 0x43, 0x4d, 0x00, 0xe6, 0x06, + 0xc0, 0x00, 0x5b, 0xd5, 0x19, 0xc5, 0x0e, 0x41, 0x44, 0x1c, 0x21, 0xed, + 0x06, 0x00, 0x44, 0xf9, 0x45, 0xfb, 0x0e, 0x81, 0x3a, 0x44, 0x8d, 0xf2, + 0xe3, 0x06, 0x00, 0xb7, 0x01, 0xff, 0x42, 0xb7, 0x2d, 0xd3, 0x08, 0x00, + 0x04, 0x3c, 0x25, 0x01, 0xff, 0xa9, 0x18, 0x45, 0x10, 0x4b, 0xff, 0x0e, + 0x01, 0x44, 0x29, 0xf2, 0xfe, 0x0e, 0x01, 0x45, 0xb5, 0xea, 0xfd, 0x0e, + 0x01, 0x47, 0x33, 0xd6, 0x9b, 0x08, 0x40, 0x45, 0x58, 0xe8, 0x9a, 0x08, + 0x00, 0x46, 0xda, 0xdf, 0x99, 0x08, 0x40, 0x4b, 0x19, 0x98, 0xd9, 0x08, + 0x40, 0x43, 0x56, 0x07, 0xd6, 0x08, 0x00, 0x54, 0x90, 0x41, 0xe1, 0x06, + 0x00, 0xa6, 0xef, 0x01, 0x44, 0x3e, 0x38, 0xda, 0x06, 0x00, 0xac, 0xbf, + 0x01, 0xad, 0xa5, 0x01, 0x44, 0xf9, 0x45, 0xe8, 0x06, 0x80, 0x97, 0x01, + 0x43, 0x43, 0x14, 0xd7, 0x08, 0x00, 0x4c, 0xd7, 0x94, 0xdf, 0x06, 0x00, + 0xb3, 0x77, 0xb4, 0x69, 0x58, 0x9e, 0x2b, 0xe0, 0x06, 0x00, 0xb7, 0x1c, + 0x43, 0x4d, 0x00, 0xe7, 0x06, 0x80, 0x0f, 0x02, 0x59, 0x00, 0x01, 0xff, + 0xe8, 0xcd, 0x08, 0x00, 0x42, 0x9e, 0x01, 0x17, 0x06, 0x40, 0x5b, 0xd5, + 0x19, 0xcb, 0x08, 0x40, 0x42, 0xb7, 0x2d, 0xf3, 0x08, 0x00, 0x04, 0x3c, + 0x25, 0x01, 0xff, 0xa1, 0x1a, 0x43, 0x8b, 0xf4, 0xde, 0x08, 0x00, 0x02, + 0x40, 0x06, 0x06, 0x45, 0x36, 0xec, 0xdf, 0x08, 0x40, 0xe8, 0xcc, 0x08, + 0x00, 0x43, 0x41, 0x3f, 0xdd, 0x08, 0x40, 0x45, 0xfe, 0xe7, 0x98, 0x08, + 0x00, 0x46, 0x24, 0xde, 0xdc, 0x08, 0x00, 0x45, 0x24, 0xea, 0xd4, 0x08, + 0x00, 0x47, 0x8b, 0xd5, 0xdb, 0x08, 0x00, 0x4b, 0x50, 0xa3, 0xda, 0x08, + 0x40, 0x42, 0x18, 0x0a, 0x15, 0x06, 0x00, 0x49, 0x2b, 0x10, 0xdb, 0x06, + 0x40, 0x42, 0xe8, 0x01, 0xd5, 0x08, 0x00, 0x43, 0xc4, 0x09, 0xdc, 0x06, + 0x00, 0x49, 0x2c, 0xba, 0xe1, 0x08, 0x40, 0x4b, 0x19, 0x98, 0xd8, 0x08, + 0x40, 0x44, 0x11, 0x4b, 0xe4, 0x06, 0x00, 0x05, 0x3f, 0x38, 0x01, 0xff, + 0x4b, 0xb9, 0x16, 0xd8, 0x06, 0x00, 0x4c, 0x60, 0x03, 0xe2, 0x06, 0x40, + 0x47, 0xbc, 0xce, 0xd9, 0x06, 0x00, 0x08, 0x9d, 0x1f, 0x01, 0xff, 0x0a, + 0x9f, 0xa7, 0x0c, 0x5e, 0x43, 0x14, 0xd7, 0x06, 0x00, 0x5e, 0x7f, 0x14, + 0xd6, 0x06, 0x40, 0x4c, 0xb7, 0x90, 0x16, 0x06, 0x00, 0x4a, 0xe3, 0xb3, + 0x16, 0x06, 0x40, 0x48, 0x90, 0xc3, 0xca, 0x08, 0x00, 0x4e, 0x5b, 0x7a, + 0xe0, 0x08, 0x40, 0x47, 0x91, 0xc3, 0xc9, 0x08, 0x00, 0x43, 0x8f, 0x00, + 0x18, 0x06, 0x40, 0x4f, 0x7d, 0x6a, 0x11, 0x06, 0x00, 0x45, 0xb7, 0xe8, + 0x0f, 0x06, 0x00, 0x02, 0x71, 0x00, 0x33, 0xb3, 0x06, 0x49, 0x9f, 0xbf, + 0x14, 0x06, 0x40, 0xa1, 0x11, 0x06, 0xec, 0xdc, 0x01, 0xff, 0x49, 0x12, + 0x3e, 0xfd, 0x06, 0x00, 0x50, 0xe6, 0x65, 0xfe, 0x06, 0x40, 0x43, 0x32, + 0xba, 0x03, 0x06, 0x00, 0x5a, 0xe8, 0x20, 0x10, 0x06, 0x00, 0x44, 0x4d, + 0xf1, 0x04, 0x06, 0x00, 0x43, 0x59, 0x46, 0x01, 0x06, 0x40, 0x4f, 0x03, + 0x6c, 0x13, 0x06, 0x00, 0x50, 0x76, 0x63, 0x12, 0x06, 0x40, 0x80, 0x01, + 0xff, 0x4d, 0x5f, 0x03, 0x7c, 0xfe, 0x00, 0x4b, 0xf6, 0x6d, 0x7d, 0xfe, + 0x40, 0xa1, 0x23, 0x4d, 0xc5, 0x82, 0x5d, 0x06, 0x00, 0x0f, 0xd1, 0x3d, + 0x06, 0x63, 0x41, 0x0b, 0xec, 0x06, 0x40, 0x45, 0x5c, 0x00, 0xf8, 0x08, + 0x80, 0x06, 0x45, 0x20, 0x07, 0xfa, 0x08, 0x40, 0x49, 0x75, 0x3b, 0xfd, + 0x08, 0x40, 0x4e, 0xd3, 0x78, 0x88, 0x08, 0x00, 0xf9, 0x08, 0x06, 0x40, + 0xa5, 0x1b, 0x51, 0xc8, 0x5a, 0x91, 0x08, 0x00, 0x4e, 0x35, 0x79, 0xe9, + 0x06, 0x00, 0xaf, 0x01, 0xff, 0x4f, 0xf3, 0x6c, 0x0e, 0x06, 0x00, 0x4e, + 0xdb, 0x7d, 0x90, 0x08, 0x40, 0x43, 0x31, 0x2b, 0x97, 0x08, 0x00, 0x4a, + 0xe2, 0x9b, 0x6a, 0x06, 0x40, 0x48, 0xf8, 0xc4, 0xf1, 0x08, 0x00, 0x48, + 0xbb, 0x77, 0xf0, 0x08, 0x00, 0x48, 0x70, 0xc7, 0xf2, 0x08, 0x40, 0x4a, + 0x59, 0x4c, 0x05, 0x06, 0x00, 0x44, 0x5a, 0x03, 0x00, 0x06, 0x40, 0x03, + 0x7a, 0x36, 0xe7, 0x07, 0x03, 0xbb, 0x00, 0xd6, 0x07, 0x0b, 0xa3, 0x53, + 0x01, 0xff, 0xa1, 0xc2, 0x07, 0x43, 0xa3, 0x8c, 0x01, 0xee, 0x01, 0xa4, + 0xe8, 0x05, 0x43, 0xd6, 0xb8, 0x10, 0xee, 0x01, 0x45, 0x65, 0x9c, 0x1b, + 0xee, 0x01, 0x43, 0x26, 0x21, 0x07, 0xee, 0x01, 0x08, 0xb8, 0x16, 0xd1, + 0x04, 0x44, 0x3e, 0x38, 0x02, 0xee, 0x01, 0xab, 0xbc, 0x04, 0xac, 0xfc, + 0x02, 0x44, 0x1c, 0x21, 0x0c, 0xee, 0x01, 0x44, 0xf9, 0x45, 0x0d, 0xee, + 0x01, 0x09, 0x7e, 0x3e, 0xdf, 0x02, 0x43, 0x43, 0x14, 0x12, 0xee, 0x01, + 0x43, 0x37, 0x52, 0x13, 0xee, 0x01, 0xb3, 0xa0, 0x01, 0xb4, 0x1b, 0x43, + 0x8a, 0x8a, 0x05, 0xee, 0x01, 0x43, 0x4d, 0x00, 0x09, 0xee, 0x01, 0x02, + 0x59, 0x00, 0x01, 0xff, 0xe8, 0x1a, 0xee, 0x01, 0x42, 0x9e, 0x01, 0x06, + 0xee, 0x41, 0xa1, 0x15, 0x42, 0x4e, 0x00, 0x15, 0xee, 0x01, 0xa8, 0x01, + 0xff, 0x42, 0x13, 0x00, 0x18, 0xee, 0x01, 0x42, 0x4e, 0x00, 0x16, 0xee, + 0x41, 0xe8, 0x08, 0xee, 0x01, 0x05, 0x91, 0x17, 0x01, 0xff, 0x43, 0x56, + 0x07, 0x4f, 0xee, 0x01, 0xa4, 0x44, 0x45, 0x65, 0x9c, 0x5b, 0xee, 0x01, + 0x43, 0x26, 0x21, 0x47, 0xee, 0x01, 0x44, 0x3e, 0x38, 0x42, 0xee, 0x01, + 0x44, 0xa0, 0x41, 0x57, 0xee, 0x01, 0x43, 0xb0, 0x00, 0x4b, 0xee, 0x01, + 0x44, 0xf9, 0x45, 0x4d, 0xee, 0x01, 0x43, 0x43, 0x14, 0x52, 0xee, 0x01, + 0xb3, 0x06, 0x43, 0x4d, 0x00, 0x49, 0xee, 0x41, 0x42, 0xe8, 0x01, 0x51, + 0xee, 0x01, 0x43, 0xc4, 0x09, 0x4e, 0xee, 0x01, 0x44, 0x4c, 0xdb, 0x54, + 0xee, 0x41, 0x42, 0xe8, 0x01, 0x59, 0xee, 0x01, 0x07, 0x91, 0x41, 0x01, + 0xff, 0x44, 0xf9, 0x45, 0x5d, 0xee, 0x01, 0x43, 0x43, 0x14, 0x5f, 0xee, + 0x41, 0x42, 0xe8, 0x01, 0x11, 0xee, 0x01, 0x43, 0xc4, 0x09, 0x0e, 0xee, + 0x01, 0x44, 0x4c, 0xdb, 0x14, 0xee, 0x01, 0x09, 0x2b, 0xb2, 0x01, 0xff, + 0x43, 0x56, 0x07, 0x6f, 0xee, 0x01, 0x43, 0xa3, 0x8c, 0x61, 0xee, 0x01, + 0xa4, 0x74, 0x43, 0xd6, 0xb8, 0x70, 0xee, 0x01, 0x45, 0x65, 0x9c, 0x7b, + 0xee, 0x01, 0xa8, 0x5a, 0x44, 0x3e, 0x38, 0x62, 0xee, 0x01, 0xab, 0x46, + 0x44, 0x1c, 0x21, 0x6c, 0xee, 0x01, 0x44, 0xf9, 0x45, 0x6d, 0xee, 0x01, + 0x43, 0x43, 0x14, 0x72, 0xee, 0x01, 0xb3, 0x20, 0xb4, 0x0c, 0x43, 0x4d, + 0x00, 0x69, 0xee, 0x01, 0x43, 0x01, 0x7f, 0x7a, 0xee, 0x41, 0x42, 0x18, + 0x0a, 0x68, 0xee, 0x01, 0x42, 0x4e, 0x00, 0x75, 0xee, 0x01, 0x43, 0xf6, + 0x42, 0x76, 0xee, 0x41, 0x42, 0xe8, 0x01, 0x71, 0xee, 0x01, 0x43, 0xc4, + 0x09, 0x6e, 0xee, 0x01, 0x44, 0x4c, 0xdb, 0x74, 0xee, 0x41, 0x42, 0x44, + 0x14, 0x6a, 0xee, 0x01, 0x43, 0x26, 0x21, 0x77, 0xee, 0x41, 0x42, 0x18, + 0x0a, 0x67, 0xee, 0x01, 0x42, 0x4e, 0x00, 0x64, 0xee, 0x41, 0x42, 0xe8, + 0x01, 0x79, 0xee, 0x01, 0x07, 0x91, 0x41, 0x01, 0xff, 0x43, 0xa3, 0x8c, + 0x7c, 0xee, 0x01, 0x43, 0xd6, 0xb8, 0x7e, 0xee, 0x41, 0x4c, 0x73, 0x8f, + 0xf1, 0xee, 0x01, 0x5a, 0x1c, 0x21, 0xf0, 0xee, 0x41, 0x42, 0x57, 0x00, + 0x0b, 0xee, 0x01, 0x06, 0x43, 0x85, 0x01, 0xff, 0xa1, 0xa3, 0x01, 0x43, + 0xa3, 0x8c, 0x81, 0xee, 0x01, 0x02, 0xf0, 0x10, 0x90, 0x01, 0x43, 0xd6, + 0xb8, 0x90, 0xee, 0x01, 0x45, 0x65, 0x9c, 0x9b, 0xee, 0x01, 0xa8, 0x76, + 0x44, 0x3e, 0x38, 0x82, 0xee, 0x01, 0x44, 0xa0, 0x41, 0x97, 0xee, 0x01, + 0x43, 0xb0, 0x00, 0x8b, 0xee, 0x01, 0x44, 0x1c, 0x21, 0x8c, 0xee, 0x01, + 0x44, 0xf9, 0x45, 0x8d, 0xee, 0x01, 0x43, 0x43, 0x14, 0x92, 0xee, 0x01, + 0x43, 0x37, 0x52, 0x93, 0xee, 0x01, 0xb3, 0x38, 0xb4, 0x1b, 0x43, 0x8a, + 0x8a, 0x85, 0xee, 0x01, 0x43, 0x4d, 0x00, 0x89, 0xee, 0x01, 0x02, 0x59, + 0x00, 0x01, 0xff, 0xe8, 0x9a, 0xee, 0x01, 0x42, 0x9e, 0x01, 0x86, 0xee, + 0x41, 0x42, 0x18, 0x0a, 0x88, 0xee, 0x01, 0x42, 0x4e, 0x00, 0x95, 0xee, + 0x01, 0xa8, 0x01, 0xff, 0x42, 0x13, 0x00, 0x98, 0xee, 0x01, 0x42, 0x4e, + 0x00, 0x96, 0xee, 0x41, 0x42, 0xe8, 0x01, 0x91, 0xee, 0x01, 0x43, 0xc4, + 0x09, 0x8e, 0xee, 0x01, 0x44, 0x4c, 0xdb, 0x94, 0xee, 0x41, 0x42, 0x18, + 0x0a, 0x87, 0xee, 0x01, 0x42, 0x4e, 0x00, 0x84, 0xee, 0x41, 0xe4, 0x99, + 0xee, 0x01, 0xec, 0x83, 0xee, 0x41, 0x42, 0x9e, 0x01, 0x8f, 0xee, 0x01, + 0x43, 0x68, 0x00, 0x80, 0xee, 0x41, 0x42, 0x44, 0x14, 0x0a, 0xee, 0x01, + 0x43, 0x26, 0x21, 0x17, 0xee, 0x41, 0x43, 0x56, 0x07, 0x2f, 0xee, 0x01, + 0x43, 0xa3, 0x8c, 0x21, 0xee, 0x01, 0x43, 0x2d, 0xd0, 0x39, 0xee, 0x01, + 0x43, 0xd6, 0xb8, 0x30, 0xee, 0x01, 0x45, 0x65, 0x9c, 0x3b, 0xee, 0x01, + 0xa8, 0x54, 0x44, 0x3e, 0x38, 0x22, 0xee, 0x01, 0xab, 0x40, 0x43, 0xb0, + 0x00, 0x2b, 0xee, 0x01, 0x44, 0x1c, 0x21, 0x2c, 0xee, 0x01, 0x44, 0xf9, + 0x45, 0x2d, 0xee, 0x01, 0x43, 0x43, 0x14, 0x32, 0xee, 0x01, 0xb3, 0x14, + 0xb4, 0x06, 0x43, 0x4d, 0x00, 0x29, 0xee, 0x41, 0x42, 0x4e, 0x00, 0x35, + 0xee, 0x01, 0x43, 0xf6, 0x42, 0x36, 0xee, 0x41, 0x42, 0xe8, 0x01, 0x31, + 0xee, 0x01, 0x43, 0xc4, 0x09, 0x2e, 0xee, 0x01, 0x44, 0x4c, 0xdb, 0x34, + 0xee, 0x41, 0x42, 0x44, 0x14, 0x2a, 0xee, 0x01, 0x43, 0x26, 0x21, 0x37, + 0xee, 0x41, 0x42, 0x18, 0x0a, 0x27, 0xee, 0x01, 0x42, 0x4e, 0x00, 0x24, + 0xee, 0x41, 0xa1, 0xc6, 0x01, 0xaf, 0x01, 0xff, 0x06, 0x92, 0x41, 0xa6, + 0x01, 0x0c, 0x15, 0x77, 0x01, 0xff, 0x43, 0x56, 0x07, 0xaf, 0xee, 0x01, + 0x43, 0xa3, 0x8c, 0xa1, 0xee, 0x01, 0x02, 0xf0, 0x10, 0x88, 0x01, 0x43, + 0xd6, 0xb8, 0xb0, 0xee, 0x01, 0x45, 0x65, 0x9c, 0xbb, 0xee, 0x01, 0x43, + 0x26, 0x21, 0xa7, 0xee, 0x01, 0x44, 0x3e, 0x38, 0xa2, 0xee, 0x01, 0x44, + 0xa0, 0x41, 0xb7, 0xee, 0x01, 0x43, 0xb0, 0x00, 0xab, 0xee, 0x01, 0x44, + 0x1c, 0x21, 0xac, 0xee, 0x01, 0x44, 0xf9, 0x45, 0xad, 0xee, 0x01, 0x43, + 0x43, 0x14, 0xb2, 0xee, 0x01, 0x43, 0x37, 0x52, 0xb3, 0xee, 0x01, 0xb3, + 0x38, 0xb4, 0x1b, 0x43, 0x8a, 0x8a, 0xa5, 0xee, 0x01, 0x43, 0x4d, 0x00, + 0xa9, 0xee, 0x01, 0x02, 0x59, 0x00, 0x01, 0xff, 0xe8, 0xba, 0xee, 0x01, + 0x42, 0x9e, 0x01, 0xa6, 0xee, 0x41, 0x42, 0x18, 0x0a, 0xa8, 0xee, 0x01, + 0x42, 0x4e, 0x00, 0xb5, 0xee, 0x01, 0xa8, 0x01, 0xff, 0x42, 0x13, 0x00, + 0xb8, 0xee, 0x01, 0x42, 0x4e, 0x00, 0xb6, 0xee, 0x41, 0x42, 0xe8, 0x01, + 0xb1, 0xee, 0x01, 0x43, 0xc4, 0x09, 0xae, 0xee, 0x01, 0x44, 0x4c, 0xdb, + 0xb4, 0xee, 0x41, 0xe4, 0xb9, 0xee, 0x01, 0xec, 0xa3, 0xee, 0x41, 0x43, + 0xa3, 0x8c, 0x1c, 0xee, 0x01, 0x43, 0xd6, 0xb8, 0x1e, 0xee, 0x01, 0x44, + 0xf9, 0x45, 0x1d, 0xee, 0x01, 0x43, 0x43, 0x14, 0x1f, 0xee, 0x41, 0xe4, + 0x19, 0xee, 0x01, 0xec, 0x03, 0xee, 0x41, 0x42, 0x9e, 0x01, 0x0f, 0xee, + 0x01, 0x43, 0x68, 0x00, 0x00, 0xee, 0x41, 0x4b, 0xf9, 0x45, 0x58, 0x06, + 0x00, 0x54, 0xf0, 0x45, 0xff, 0x08, 0x40, 0x47, 0xab, 0xcd, 0x9c, 0x08, + 0x00, 0x47, 0x54, 0x2d, 0x53, 0x06, 0x40, 0x05, 0x28, 0x1c, 0xc6, 0x41, + 0xa5, 0xdf, 0x22, 0x08, 0x9d, 0x1f, 0x01, 0xff, 0xa1, 0xbd, 0x20, 0xa2, + 0x8c, 0x1f, 0x02, 0xf0, 0x10, 0xe4, 0x1d, 0x09, 0xd6, 0xb8, 0xe3, 0x1c, + 0x0b, 0x65, 0x9c, 0x84, 0x1c, 0xa8, 0xb4, 0x1a, 0xaa, 0xa5, 0x19, 0xab, + 0x8f, 0x17, 0x09, 0x4c, 0x14, 0xc8, 0x14, 0xad, 0x85, 0x13, 0xae, 0x85, + 0x11, 0xb1, 0xea, 0x0f, 0xb2, 0xc5, 0x0e, 0xb3, 0x83, 0x08, 0xb4, 0x92, + 0x04, 0x36, 0x3e, 0x00, 0xf8, 0x03, 0x56, 0x0d, 0x38, 0xf8, 0xfd, 0x00, + 0x09, 0x4d, 0x00, 0x19, 0x0e, 0x01, 0x7f, 0x01, 0xff, 0xa9, 0x06, 0x4b, + 0xf6, 0x6d, 0x3b, 0xfd, 0x40, 0x4b, 0xb9, 0x16, 0xb9, 0xfc, 0x00, 0x4c, + 0x60, 0x03, 0x28, 0xfc, 0x40, 0x0d, 0x67, 0x00, 0xc4, 0x03, 0xa8, 0x83, + 0x01, 0x05, 0x3e, 0x38, 0x6b, 0x06, 0x72, 0x5b, 0x5b, 0x05, 0x1c, 0x21, + 0x22, 0x4f, 0xc2, 0x70, 0x94, 0xfc, 0x00, 0x4e, 0x9d, 0x7b, 0x91, 0xfc, + 0x00, 0x04, 0x4d, 0x00, 0x06, 0x4f, 0x27, 0x75, 0x92, 0xfc, 0x40, 0x4a, + 0xf5, 0x2c, 0x96, 0xfc, 0x00, 0x4d, 0x5f, 0x03, 0x5a, 0xfc, 0x40, 0x4a, + 0xf5, 0x2c, 0x93, 0xfc, 0x00, 0xa9, 0x21, 0x4b, 0xf6, 0x6d, 0xf0, 0xfc, + 0x00, 0x05, 0x51, 0x00, 0x01, 0xff, 0x05, 0x1c, 0x21, 0x06, 0x4e, 0xee, + 0x4e, 0xb0, 0xfd, 0x40, 0x4a, 0xf5, 0x2c, 0x9c, 0xfd, 0x00, 0x4c, 0xb8, + 0x16, 0x9d, 0xfd, 0x40, 0x4b, 0xb9, 0x16, 0xdd, 0xfc, 0x00, 0x4c, 0x60, + 0x03, 0x58, 0xfc, 0x40, 0x4b, 0xb9, 0x16, 0xdc, 0xfc, 0x00, 0x4c, 0x60, + 0x03, 0x57, 0xfc, 0x40, 0xa9, 0x06, 0x53, 0xe9, 0x4e, 0xaf, 0xfd, 0x40, + 0x4b, 0xb9, 0x16, 0xda, 0xfc, 0x00, 0x4c, 0x60, 0x03, 0x55, 0xfc, 0x40, + 0xa1, 0x11, 0x03, 0x4e, 0x00, 0x01, 0xff, 0x4c, 0xb8, 0x16, 0xde, 0xfc, + 0x00, 0x4b, 0xf6, 0x6d, 0xf1, 0xfc, 0x40, 0x02, 0x4f, 0x00, 0x92, 0x02, + 0x0f, 0x58, 0x00, 0x01, 0xff, 0xa1, 0xd8, 0x01, 0x02, 0x60, 0x00, 0xbe, + 0x01, 0xa8, 0x9a, 0x01, 0x06, 0x3e, 0x38, 0x89, 0x01, 0x51, 0x72, 0x5b, + 0x99, 0xfc, 0x00, 0x05, 0x1c, 0x21, 0x65, 0x4f, 0xc2, 0x70, 0x67, 0xfc, + 0x00, 0x03, 0xcf, 0x97, 0x4f, 0x4e, 0x9d, 0x7b, 0x64, 0xfc, 0x00, 0x02, + 0x2e, 0x02, 0x39, 0x04, 0x25, 0xf3, 0x29, 0xb9, 0x06, 0x4f, 0x27, 0x75, + 0x65, 0xfc, 0x40, 0x03, 0x4e, 0x00, 0x11, 0x02, 0x2e, 0x02, 0x01, 0xff, + 0x4a, 0xf5, 0x2c, 0xf5, 0xfb, 0x00, 0x4d, 0x5f, 0x03, 0xf4, 0xfb, 0x40, + 0x4a, 0xf5, 0x2c, 0x69, 0xfc, 0x00, 0x4d, 0x5f, 0x03, 0x04, 0xfc, 0x40, + 0x4a, 0xf5, 0x2c, 0xef, 0xfb, 0x00, 0x4d, 0x5f, 0x03, 0xee, 0xfb, 0x40, + 0x4a, 0xf5, 0x2c, 0xf1, 0xfb, 0x00, 0x4d, 0x5f, 0x03, 0xf0, 0xfb, 0x40, + 0x4a, 0xf5, 0x2c, 0xf3, 0xfb, 0x00, 0x4d, 0x5f, 0x03, 0xf2, 0xfb, 0x40, + 0x4a, 0xf5, 0x2c, 0x66, 0xfc, 0x00, 0xa9, 0x06, 0x4b, 0xf6, 0x6d, 0xdf, + 0xfc, 0x40, 0x4b, 0xb9, 0x16, 0x9a, 0xfc, 0x00, 0x4c, 0x60, 0x03, 0x02, + 0xfc, 0x40, 0x4b, 0xb9, 0x16, 0x97, 0xfc, 0x00, 0x4c, 0x60, 0x03, 0x00, + 0xfc, 0x40, 0x04, 0x74, 0x5a, 0x11, 0x03, 0x4e, 0x00, 0x01, 0xff, 0x4c, + 0xb8, 0x16, 0x9b, 0xfc, 0x00, 0x4b, 0xf6, 0x6d, 0xe0, 0xfc, 0x40, 0x4b, + 0xb9, 0x16, 0x98, 0xfc, 0x00, 0x4c, 0x60, 0x03, 0x01, 0xfc, 0x40, 0x4a, + 0xf5, 0x2c, 0xf7, 0xfb, 0x00, 0xa9, 0x01, 0xff, 0x4b, 0xb9, 0x16, 0xf8, + 0xfb, 0x00, 0x4c, 0x60, 0x03, 0xf6, 0xfb, 0x40, 0x02, 0x60, 0x00, 0x22, + 0x04, 0x68, 0x00, 0x01, 0xff, 0x4a, 0xf5, 0x2c, 0xeb, 0xfb, 0x00, 0x4d, + 0x5f, 0x03, 0xea, 0xfb, 0x00, 0x08, 0x6c, 0x00, 0x01, 0xff, 0x4a, 0xf5, + 0x2c, 0x68, 0xfc, 0x00, 0x4d, 0x5f, 0x03, 0x03, 0xfc, 0x40, 0x4a, 0xf5, + 0x2c, 0xed, 0xfb, 0x00, 0x4d, 0x5f, 0x03, 0xec, 0xfb, 0x40, 0xa9, 0x06, + 0x53, 0xe9, 0x4e, 0xae, 0xfd, 0x40, 0x4b, 0xb9, 0x16, 0xdb, 0xfc, 0x00, + 0x4c, 0x60, 0x03, 0x56, 0xfc, 0x40, 0x4a, 0xf5, 0x2c, 0x95, 0xfc, 0x00, + 0x4d, 0x5f, 0x03, 0x59, 0xfc, 0x40, 0x4a, 0xf5, 0x2c, 0xfa, 0xfb, 0x00, + 0xa9, 0x01, 0xff, 0x4b, 0xb9, 0x16, 0xfb, 0xfb, 0x00, 0x4c, 0x60, 0x03, + 0xf9, 0xfb, 0x40, 0xa1, 0xf6, 0x02, 0x08, 0x4e, 0x00, 0x6a, 0xa8, 0x01, + 0xff, 0x66, 0x67, 0x06, 0x5b, 0xfc, 0x00, 0x08, 0x4e, 0x00, 0x01, 0xff, + 0x0d, 0x67, 0x00, 0x4c, 0x4f, 0xf2, 0x6d, 0xe6, 0xfc, 0x00, 0x52, 0x11, + 0x53, 0x11, 0xfc, 0x00, 0x05, 0x1c, 0x21, 0x22, 0x4f, 0xc2, 0x70, 0x79, + 0xfc, 0x00, 0x4e, 0x9d, 0x7b, 0x76, 0xfc, 0x00, 0x04, 0x4d, 0x00, 0x06, + 0x4f, 0x27, 0x75, 0x77, 0xfc, 0x40, 0x4a, 0xf5, 0x2c, 0x7b, 0xfc, 0x00, + 0x4d, 0x5f, 0x03, 0x14, 0xfc, 0x40, 0x4a, 0xf5, 0x2c, 0x78, 0xfc, 0x00, + 0xa9, 0x06, 0x4b, 0xf6, 0x6d, 0xe5, 0xfc, 0x40, 0x4b, 0xb9, 0x16, 0xa6, + 0xfc, 0x00, 0x4c, 0x60, 0x03, 0x12, 0xfc, 0x40, 0x4a, 0xf5, 0x2c, 0x7a, + 0xfc, 0x00, 0x4d, 0x5f, 0x03, 0x13, 0xfc, 0x40, 0x0d, 0x67, 0x00, 0xf7, + 0x01, 0xa8, 0xb6, 0x01, 0x05, 0x3e, 0x38, 0x8c, 0x01, 0x05, 0x72, 0x5b, + 0x63, 0x05, 0x1c, 0x21, 0x22, 0x4f, 0xc2, 0x70, 0x73, 0xfc, 0x00, 0x4e, + 0x9d, 0x7b, 0x70, 0xfc, 0x00, 0x04, 0x4d, 0x00, 0x06, 0x4f, 0x27, 0x75, + 0x71, 0xfc, 0x40, 0x4a, 0xf5, 0x2c, 0x75, 0xfc, 0x00, 0x4d, 0x5f, 0x03, + 0x10, 0xfc, 0x40, 0x4a, 0xf5, 0x2c, 0x72, 0xfc, 0x00, 0xa9, 0x29, 0x4b, + 0xf6, 0x6d, 0xe3, 0xfc, 0x00, 0x05, 0x51, 0x00, 0x01, 0xff, 0x57, 0xe8, + 0x2c, 0xa4, 0xfd, 0x00, 0x50, 0x73, 0x5b, 0x56, 0xfd, 0x00, 0x51, 0x3e, + 0x38, 0x55, 0xfd, 0x00, 0x51, 0x72, 0x5b, 0x57, 0xfd, 0x00, 0x4e, 0xee, + 0x4e, 0xa3, 0xfd, 0x40, 0x4b, 0xb9, 0x16, 0xa4, 0xfc, 0x00, 0x4c, 0x60, + 0x03, 0x0e, 0xfc, 0x40, 0xa9, 0x17, 0x05, 0x51, 0x00, 0x01, 0xff, 0x57, + 0xe8, 0x2c, 0xa2, 0xfd, 0x00, 0x51, 0x3e, 0x5c, 0x54, 0xfd, 0x00, 0x4e, + 0xee, 0x4e, 0xa1, 0xfd, 0x40, 0x4b, 0xb9, 0x16, 0xa3, 0xfc, 0x00, 0x4c, + 0x60, 0x03, 0x0d, 0xfc, 0x40, 0xa9, 0x17, 0x05, 0x51, 0x00, 0x01, 0xff, + 0x57, 0xe8, 0x2c, 0xa0, 0xfd, 0x00, 0x51, 0x3e, 0x5c, 0x50, 0xfd, 0x00, + 0x4e, 0xee, 0x4e, 0x9f, 0xfd, 0x40, 0x4b, 0xb9, 0x16, 0xa1, 0xfc, 0x00, + 0x4c, 0x60, 0x03, 0x0b, 0xfc, 0x40, 0x03, 0x18, 0x0a, 0x11, 0x03, 0x4e, + 0x00, 0x01, 0xff, 0x4c, 0xb8, 0x16, 0xa5, 0xfc, 0x00, 0x4b, 0xf6, 0x6d, + 0xe4, 0xfc, 0x40, 0xa9, 0x1b, 0x05, 0x51, 0x00, 0x01, 0xff, 0x05, 0x3e, + 0x38, 0x06, 0x51, 0x3e, 0x5c, 0x53, 0xfd, 0x40, 0x4a, 0xf5, 0x2c, 0x51, + 0xfd, 0x00, 0x4c, 0xb8, 0x16, 0x52, 0xfd, 0x40, 0x4b, 0xb9, 0x16, 0xa2, + 0xfc, 0x00, 0x4c, 0x60, 0x03, 0x0c, 0xfc, 0x40, 0x4a, 0xf5, 0x2c, 0x74, + 0xfc, 0x00, 0x4d, 0x5f, 0x03, 0x0f, 0xfc, 0x40, 0x52, 0x89, 0x50, 0x4e, + 0xfd, 0x00, 0x07, 0x4f, 0x00, 0x01, 0xff, 0x0d, 0x67, 0x00, 0x5a, 0x05, + 0x73, 0x5a, 0x4a, 0x05, 0x1c, 0x21, 0x11, 0x04, 0x4d, 0x00, 0x01, 0xff, + 0x4a, 0xf5, 0x2c, 0x12, 0xfd, 0x00, 0x4d, 0x5f, 0x03, 0xf6, 0xfc, 0x40, + 0xa9, 0x27, 0x4b, 0xf6, 0x6d, 0x3a, 0xfd, 0x00, 0x05, 0x51, 0x00, 0x01, + 0xff, 0x04, 0x26, 0x21, 0x0c, 0x51, 0x3e, 0x5c, 0x73, 0xfd, 0x00, 0x4e, + 0xee, 0x4e, 0x74, 0xfd, 0x40, 0x4a, 0xf5, 0x2c, 0x71, 0xfd, 0x00, 0x4c, + 0xb8, 0x16, 0x72, 0xfd, 0x40, 0x4b, 0xb9, 0x16, 0x33, 0xfd, 0x00, 0x4c, + 0x60, 0x03, 0x27, 0xfc, 0x40, 0x4b, 0xb9, 0x16, 0xb8, 0xfc, 0x00, 0x4c, + 0x60, 0x03, 0x26, 0xfc, 0x40, 0x4a, 0xf5, 0x2c, 0x11, 0xfd, 0x00, 0x4d, + 0x5f, 0x03, 0xf5, 0xfc, 0x40, 0xa1, 0xde, 0x04, 0x09, 0x22, 0xb8, 0xde, + 0x02, 0xa8, 0x06, 0x54, 0x54, 0x46, 0xfe, 0xfd, 0x40, 0x0a, 0x6d, 0xa7, + 0x8b, 0x02, 0x09, 0x22, 0xb8, 0x01, 0xff, 0x0d, 0x67, 0x00, 0xf5, 0x01, + 0xa8, 0xa8, 0x01, 0x05, 0x3e, 0x38, 0x83, 0x01, 0x05, 0x72, 0x5b, 0x65, + 0x05, 0x1c, 0x21, 0x21, 0x04, 0x9d, 0x7b, 0x11, 0x04, 0x4d, 0x00, 0x01, + 0xff, 0x4a, 0xf5, 0x2c, 0x1a, 0xfd, 0x00, 0x4d, 0x5f, 0x03, 0xfe, 0xfc, + 0x40, 0x4a, 0xf5, 0x2c, 0x29, 0xfd, 0x00, 0x4d, 0x5f, 0x03, 0x0d, 0xfd, + 0x40, 0x4a, 0xf5, 0x2c, 0x28, 0xfd, 0x00, 0xa9, 0x2c, 0x4b, 0xf6, 0x6d, + 0xe9, 0xfc, 0x00, 0x05, 0x51, 0x00, 0x01, 0xff, 0x05, 0x72, 0x5b, 0x11, + 0x05, 0x1c, 0x21, 0x01, 0xff, 0x4a, 0xf5, 0x2c, 0x6c, 0xfd, 0x00, 0x4c, + 0xb8, 0x16, 0x6d, 0xfd, 0x40, 0x4a, 0xf5, 0x2c, 0x6a, 0xfd, 0x00, 0x4c, + 0xb8, 0x16, 0x6b, 0xfd, 0x40, 0x4b, 0xb9, 0x16, 0x30, 0xfd, 0x00, 0x4c, + 0x60, 0x03, 0x0c, 0xfd, 0x40, 0x4a, 0xf5, 0x2c, 0x27, 0xfd, 0x00, 0xa9, + 0x06, 0x4b, 0xf6, 0x6d, 0x39, 0xfd, 0x40, 0x4b, 0xb9, 0x16, 0x2f, 0xfd, + 0x00, 0x4c, 0x60, 0x03, 0x0b, 0xfd, 0x40, 0x4a, 0xf5, 0x2c, 0x25, 0xfd, + 0x00, 0xa9, 0x0c, 0x4b, 0xf6, 0x6d, 0x37, 0xfd, 0x00, 0x53, 0xe9, 0x4e, + 0x69, 0xfd, 0x40, 0x4b, 0xb9, 0x16, 0x2d, 0xfd, 0x00, 0x4c, 0x60, 0x03, + 0x09, 0xfd, 0x40, 0x03, 0x18, 0x0a, 0x11, 0x03, 0x4e, 0x00, 0x01, 0xff, + 0x4c, 0xb8, 0x16, 0x32, 0xfd, 0x00, 0x4b, 0xf6, 0x6d, 0xea, 0xfc, 0x40, + 0x4a, 0xf5, 0x2c, 0x26, 0xfd, 0x00, 0xa9, 0x21, 0x4b, 0xf6, 0x6d, 0x38, + 0xfd, 0x00, 0x05, 0x51, 0x00, 0x01, 0xff, 0x05, 0x1c, 0x21, 0x06, 0x4e, + 0xee, 0x4e, 0xaa, 0xfd, 0x40, 0x4a, 0xf5, 0x2c, 0x67, 0xfd, 0x00, 0x4c, + 0xb8, 0x16, 0x68, 0xfd, 0x40, 0x4b, 0xb9, 0x16, 0x2e, 0xfd, 0x00, 0x4c, + 0x60, 0x03, 0x0a, 0xfd, 0x40, 0x4a, 0xf5, 0x2c, 0x19, 0xfd, 0x00, 0x4d, + 0x5f, 0x03, 0xfd, 0xfc, 0x40, 0x05, 0xec, 0x5e, 0x2e, 0x06, 0xba, 0xdb, + 0x1e, 0x05, 0xa8, 0x50, 0x06, 0x5e, 0x6f, 0x06, 0x63, 0xfc, 0x40, 0x80, + 0x06, 0x51, 0x1a, 0x5e, 0x5f, 0xfc, 0x40, 0x4d, 0x5f, 0x03, 0x62, 0xfc, + 0x00, 0x4b, 0xf6, 0x6d, 0xf4, 0xfc, 0x40, 0x4d, 0x5f, 0x03, 0x60, 0xfc, + 0x00, 0x4b, 0xf6, 0x6d, 0xf2, 0xfc, 0x40, 0x80, 0x06, 0x51, 0x1a, 0x5e, + 0x5e, 0xfc, 0x40, 0x4d, 0x5f, 0x03, 0x61, 0xfc, 0x00, 0x4b, 0xf6, 0x6d, + 0xf3, 0xfc, 0x40, 0x0d, 0x67, 0x00, 0xea, 0x01, 0xa8, 0xb8, 0x01, 0x05, + 0x3e, 0x38, 0x8e, 0x01, 0x05, 0x72, 0x5b, 0x65, 0x05, 0x1c, 0x21, 0x21, + 0x04, 0x9d, 0x7b, 0x11, 0x04, 0x4d, 0x00, 0x01, 0xff, 0x4a, 0xf5, 0x2c, + 0x18, 0xfd, 0x00, 0x4d, 0x5f, 0x03, 0xfc, 0xfc, 0x40, 0x4a, 0xf5, 0x2c, + 0x2a, 0xfd, 0x00, 0x4d, 0x5f, 0x03, 0x0e, 0xfd, 0x40, 0xa9, 0x32, 0x4b, + 0xf6, 0x6d, 0xe7, 0xfc, 0x00, 0x05, 0x51, 0x00, 0x01, 0xff, 0x04, 0x26, + 0x21, 0x17, 0x51, 0x3e, 0x38, 0x61, 0xfd, 0x00, 0x05, 0x1c, 0x21, 0x01, + 0xff, 0x4a, 0xf5, 0x2c, 0x62, 0xfd, 0x00, 0x4c, 0xb8, 0x16, 0x63, 0xfd, + 0x40, 0x4a, 0xf5, 0x2c, 0x5f, 0xfd, 0x00, 0x4c, 0xb8, 0x16, 0x60, 0xfd, + 0x40, 0x4b, 0xb9, 0x16, 0xb0, 0xfc, 0x00, 0x4c, 0x60, 0x03, 0x1f, 0xfc, + 0x40, 0xa9, 0x17, 0x4b, 0xf6, 0x6d, 0x36, 0xfd, 0x00, 0x05, 0x51, 0x00, + 0x01, 0xff, 0x57, 0xe8, 0x2c, 0xa8, 0xfd, 0x00, 0x4e, 0xee, 0x4e, 0xc6, + 0xfd, 0x40, 0x4b, 0xb9, 0x16, 0xaf, 0xfc, 0x00, 0x4c, 0x60, 0x03, 0x1e, + 0xfc, 0x40, 0xa9, 0x17, 0x4b, 0xf6, 0x6d, 0x34, 0xfd, 0x00, 0x05, 0x51, + 0x00, 0x01, 0xff, 0x57, 0xe8, 0x2c, 0x5e, 0xfd, 0x00, 0x50, 0x73, 0x5b, + 0x5d, 0xfd, 0x40, 0x4b, 0xb9, 0x16, 0xad, 0xfc, 0x00, 0x4c, 0x60, 0x03, + 0x1c, 0xfc, 0x40, 0x03, 0x18, 0x0a, 0x11, 0x03, 0x4e, 0x00, 0x01, 0xff, + 0x4c, 0xb8, 0x16, 0x31, 0xfd, 0x00, 0x4b, 0xf6, 0x6d, 0xe8, 0xfc, 0x40, + 0xa9, 0x0c, 0x4b, 0xf6, 0x6d, 0x35, 0xfd, 0x00, 0x56, 0x39, 0x38, 0x5c, + 0xfd, 0x40, 0x4b, 0xb9, 0x16, 0xae, 0xfc, 0x00, 0x4c, 0x60, 0x03, 0x1d, + 0xfc, 0x40, 0x4a, 0xf5, 0x2c, 0x17, 0xfd, 0x00, 0x4d, 0x5f, 0x03, 0xfb, + 0xfc, 0x40, 0x07, 0xa2, 0x0a, 0x53, 0xac, 0x01, 0xff, 0xa1, 0x42, 0x02, + 0x74, 0x00, 0x01, 0xff, 0x80, 0x2f, 0x03, 0x2c, 0x0e, 0x01, 0xff, 0x04, + 0x57, 0x19, 0x1a, 0xa8, 0x01, 0xff, 0x52, 0x43, 0x54, 0xfa, 0xfd, 0x00, + 0x0b, 0x00, 0xa4, 0x01, 0xff, 0x57, 0xd1, 0x2c, 0xcc, 0xfd, 0x00, 0x51, + 0xd7, 0x2c, 0x4c, 0xfd, 0x40, 0x4f, 0x8c, 0x6a, 0x46, 0xfd, 0x00, 0x58, + 0x56, 0x2b, 0xd0, 0xfb, 0x40, 0x4d, 0x5f, 0x03, 0xf9, 0xfd, 0x00, 0x67, + 0x45, 0x03, 0xf0, 0xfd, 0x40, 0x4d, 0x55, 0x80, 0xcf, 0xfd, 0x00, 0x4f, + 0x14, 0x38, 0xf5, 0xfd, 0x40, 0x0d, 0x67, 0x00, 0x77, 0x04, 0x26, 0x21, + 0x4a, 0x51, 0x72, 0x5b, 0xb2, 0xfc, 0x00, 0x05, 0x1c, 0x21, 0x21, 0x04, + 0x9d, 0x7b, 0x11, 0x04, 0x4d, 0x00, 0x01, 0xff, 0x4a, 0xf5, 0x2c, 0x22, + 0xfd, 0x00, 0x4d, 0x5f, 0x03, 0x06, 0xfd, 0x40, 0x4a, 0xf5, 0x2c, 0x2b, + 0xfd, 0x00, 0x4d, 0x5f, 0x03, 0x0f, 0xfd, 0x40, 0xa9, 0x11, 0x0a, 0x05, + 0x7f, 0x01, 0xff, 0x4a, 0xf5, 0x2c, 0x66, 0xfd, 0x00, 0x4c, 0xb8, 0x16, + 0xc5, 0xfd, 0x40, 0x4b, 0xb9, 0x16, 0xb3, 0xfc, 0x00, 0x4c, 0x60, 0x03, + 0x21, 0xfc, 0x40, 0xa9, 0x1b, 0x05, 0x51, 0x00, 0x01, 0xff, 0x04, 0x26, + 0x21, 0x06, 0x4e, 0xee, 0x4e, 0xa9, 0xfd, 0x40, 0x4a, 0xf5, 0x2c, 0x64, + 0xfd, 0x00, 0x4c, 0xb8, 0x16, 0x65, 0xfd, 0x40, 0x4b, 0xb9, 0x16, 0xb1, + 0xfc, 0x00, 0x4c, 0x60, 0x03, 0x20, 0xfc, 0x40, 0x4a, 0xf5, 0x2c, 0x21, + 0xfd, 0x00, 0x4d, 0x5f, 0x03, 0x05, 0xfd, 0x40, 0xa1, 0x06, 0x66, 0xb3, + 0x06, 0x5c, 0xfc, 0x40, 0x0b, 0xef, 0x9a, 0x5b, 0xa8, 0x06, 0x52, 0x87, + 0x55, 0xf6, 0xfd, 0x40, 0x05, 0x63, 0xe7, 0x25, 0x0d, 0xb7, 0x85, 0x01, + 0xff, 0x45, 0xf2, 0x20, 0x90, 0xfd, 0x80, 0x06, 0x4d, 0x56, 0x2b, 0xc5, + 0xfb, 0x40, 0x42, 0x80, 0x12, 0x91, 0xfd, 0x00, 0x42, 0x29, 0x02, 0xc6, + 0xfb, 0xc0, 0x00, 0x42, 0x80, 0x12, 0xc7, 0xfb, 0x40, 0x47, 0xbd, 0x2d, + 0x40, 0xfd, 0x80, 0x1d, 0xad, 0x01, 0xff, 0x47, 0xbd, 0x2d, 0x4f, 0xfd, + 0x80, 0x0d, 0x49, 0xf9, 0x4f, 0xc9, 0xfb, 0xc0, 0x00, 0x49, 0x02, 0x50, + 0xca, 0xfb, 0x40, 0x49, 0x02, 0x50, 0xc8, 0xfb, 0x40, 0x48, 0x60, 0x46, + 0xc8, 0xfd, 0x40, 0x43, 0x0e, 0x6c, 0x41, 0xfd, 0x80, 0x1a, 0x4b, 0x2f, + 0xa3, 0xc9, 0xfd, 0xc0, 0x00, 0x42, 0x80, 0x12, 0xca, 0xfd, 0x00, 0x42, + 0x48, 0x04, 0xcb, 0xfb, 0xc0, 0x00, 0x42, 0x80, 0x12, 0xcb, 0xfd, 0x40, + 0x42, 0x80, 0x12, 0x42, 0xfd, 0x00, 0xb5, 0x01, 0xff, 0xed, 0x43, 0xfd, + 0x80, 0x06, 0x43, 0x01, 0x46, 0x45, 0xfd, 0x40, 0x42, 0x80, 0x12, 0x44, + 0xfd, 0x40, 0xa1, 0x22, 0x06, 0xe8, 0xe0, 0x01, 0xff, 0x05, 0x89, 0x41, + 0x06, 0x4c, 0x8b, 0x95, 0xd7, 0x0e, 0x41, 0x42, 0x18, 0x0a, 0x4b, 0xfd, + 0x00, 0x44, 0x1c, 0x58, 0xd5, 0x0e, 0xc1, 0x00, 0x42, 0x80, 0x12, 0xd6, + 0x0e, 0x41, 0x54, 0x7c, 0x41, 0xd4, 0x0e, 0x01, 0x07, 0x45, 0x14, 0x06, + 0x6a, 0x42, 0x03, 0xf1, 0xfd, 0x40, 0x0d, 0x67, 0x00, 0x54, 0x05, 0x73, + 0x5a, 0x44, 0x05, 0x1c, 0x21, 0x11, 0x04, 0x4d, 0x00, 0x01, 0xff, 0x4a, + 0xf5, 0x2c, 0x7f, 0xfc, 0x00, 0x4d, 0x5f, 0x03, 0x36, 0xfc, 0x40, 0xa9, + 0x21, 0x05, 0x51, 0x00, 0x01, 0xff, 0x04, 0x26, 0x21, 0x0c, 0x4f, 0x3b, + 0x70, 0x7f, 0xfd, 0x00, 0x4e, 0xee, 0x4e, 0xb2, 0xfd, 0x40, 0x4a, 0xf5, + 0x2c, 0x7e, 0xfd, 0x00, 0x4c, 0xb8, 0x16, 0xb4, 0xfd, 0x40, 0x4b, 0xb9, + 0x16, 0xc3, 0xfc, 0x00, 0x4c, 0x60, 0x03, 0x34, 0xfc, 0x40, 0x4b, 0xb9, + 0x16, 0xc2, 0xfc, 0x00, 0x4c, 0x60, 0x03, 0x33, 0xfc, 0x40, 0x4a, 0xf5, + 0x2c, 0x7e, 0xfc, 0x00, 0x4d, 0x5f, 0x03, 0x35, 0xfc, 0x40, 0x57, 0xb7, + 0x2d, 0xd8, 0x0e, 0x01, 0x09, 0x94, 0x05, 0x01, 0xff, 0x0d, 0x67, 0x00, + 0xe1, 0x01, 0xa8, 0xa4, 0x01, 0x05, 0x3e, 0x38, 0x61, 0x06, 0x72, 0x5b, + 0x51, 0x05, 0x1c, 0x21, 0x22, 0x4f, 0xc2, 0x70, 0x8d, 0xfc, 0x00, 0x4e, + 0x9d, 0x7b, 0x8a, 0xfc, 0x00, 0x04, 0x4d, 0x00, 0x06, 0x4f, 0x27, 0x75, + 0x8b, 0xfc, 0x40, 0x4a, 0xf5, 0x2c, 0x8f, 0xfc, 0x00, 0x4d, 0x5f, 0x03, + 0x50, 0xfc, 0x40, 0x4a, 0xf5, 0x2c, 0x8c, 0xfc, 0x00, 0xa9, 0x17, 0x4b, + 0xf6, 0x6d, 0xee, 0xfc, 0x00, 0x05, 0x51, 0x00, 0x01, 0xff, 0x57, 0xe8, + 0x2c, 0x9b, 0xfd, 0x00, 0x4e, 0xee, 0x4e, 0x9a, 0xfd, 0x40, 0x4b, 0xb9, + 0x16, 0xd5, 0xfc, 0x00, 0x4c, 0x60, 0x03, 0x4e, 0xfc, 0x40, 0x4b, 0xb9, + 0x16, 0xd4, 0xfc, 0x00, 0x4c, 0x60, 0x03, 0x4d, 0xfc, 0x40, 0xa9, 0x31, + 0x05, 0x51, 0x00, 0x01, 0xff, 0x57, 0xe8, 0x2c, 0x99, 0xfd, 0x00, 0x04, + 0x26, 0x21, 0x16, 0x05, 0x1c, 0x21, 0x06, 0x4e, 0xee, 0x4e, 0xc7, 0xfd, + 0x40, 0x4a, 0xf5, 0x2c, 0x97, 0xfd, 0x00, 0x4c, 0xb8, 0x16, 0x98, 0xfd, + 0x40, 0x4a, 0xf5, 0x2c, 0xbd, 0xfd, 0x00, 0x4c, 0xb8, 0x16, 0xb8, 0xfd, + 0x40, 0x4b, 0xb9, 0x16, 0xd2, 0xfc, 0x00, 0x4c, 0x60, 0x03, 0x4b, 0xfc, + 0x40, 0x03, 0x18, 0x0a, 0x11, 0x03, 0x4e, 0x00, 0x01, 0xff, 0x4c, 0xb8, + 0x16, 0xd6, 0xfc, 0x00, 0x4b, 0xf6, 0x6d, 0xef, 0xfc, 0x40, 0xa9, 0x17, + 0x05, 0x51, 0x00, 0x01, 0xff, 0x57, 0xe8, 0x2c, 0x96, 0xfd, 0x00, 0x51, + 0x3e, 0x5c, 0x95, 0xfd, 0x00, 0x4e, 0xee, 0x4e, 0xb3, 0xfd, 0x40, 0x4b, + 0xb9, 0x16, 0xd3, 0xfc, 0x00, 0x4c, 0x60, 0x03, 0x4c, 0xfc, 0x40, 0x4a, + 0xf5, 0x2c, 0x8e, 0xfc, 0x00, 0x4d, 0x5f, 0x03, 0x4f, 0xfc, 0x40, 0x09, + 0x1d, 0x21, 0x06, 0x55, 0x3d, 0x3d, 0xf4, 0xfd, 0x40, 0x05, 0x67, 0x00, + 0xa5, 0x01, 0x04, 0x26, 0x21, 0x7c, 0x05, 0x3e, 0x38, 0x4d, 0x05, 0x72, + 0x5b, 0x24, 0x05, 0x1c, 0x21, 0x06, 0x51, 0xd4, 0x5f, 0x4a, 0xfc, 0x40, + 0x4a, 0xf5, 0x2c, 0x89, 0xfc, 0x00, 0xa9, 0x06, 0x53, 0xe9, 0x4e, 0xb1, + 0xfd, 0x40, 0x4b, 0xb9, 0x16, 0xd1, 0xfc, 0x00, 0x4c, 0x60, 0x03, 0x48, + 0xfc, 0x40, 0xa9, 0x17, 0x05, 0x51, 0x00, 0x01, 0xff, 0x51, 0x3e, 0x38, + 0x8e, 0xfd, 0x00, 0x51, 0x3e, 0x5c, 0x8f, 0xfd, 0x00, 0x4e, 0xee, 0x4e, + 0xb9, 0xfd, 0x40, 0x4b, 0xb9, 0x16, 0xd0, 0xfc, 0x00, 0x4c, 0x60, 0x03, + 0x47, 0xfc, 0x40, 0xa9, 0x1d, 0x05, 0x51, 0x00, 0x01, 0xff, 0x50, 0x73, + 0x5b, 0x8c, 0xfd, 0x00, 0x51, 0x72, 0x5b, 0x92, 0xfd, 0x00, 0x51, 0x3e, + 0x5c, 0x8d, 0xfd, 0x00, 0x4e, 0xee, 0x4e, 0xc0, 0xfd, 0x40, 0x4b, 0xb9, + 0x16, 0xce, 0xfc, 0x00, 0x4c, 0x60, 0x03, 0x45, 0xfc, 0x40, 0xa9, 0x17, + 0x05, 0x51, 0x00, 0x01, 0xff, 0x51, 0x3e, 0x38, 0x89, 0xfd, 0x00, 0x51, + 0x3e, 0x5c, 0x8a, 0xfd, 0x00, 0x4e, 0xee, 0x4e, 0x8b, 0xfd, 0x40, 0x4b, + 0xb9, 0x16, 0xcf, 0xfc, 0x00, 0x4c, 0x60, 0x03, 0x46, 0xfc, 0x40, 0x4a, + 0xf5, 0x2c, 0x88, 0xfc, 0x00, 0x55, 0xe5, 0x1e, 0x49, 0xfc, 0x40, 0x05, + 0x67, 0x00, 0xe6, 0x01, 0xa8, 0xaa, 0x01, 0x05, 0x3e, 0x38, 0x6d, 0x05, + 0x72, 0x5b, 0x4a, 0x05, 0x1c, 0x21, 0x11, 0x04, 0x4d, 0x00, 0x01, 0xff, + 0x4a, 0xf5, 0x2c, 0x87, 0xfc, 0x00, 0x4d, 0x5f, 0x03, 0x44, 0xfc, 0x40, + 0x4a, 0xf5, 0x2c, 0x85, 0xfc, 0x00, 0xa9, 0x21, 0x4b, 0xf6, 0x6d, 0xed, + 0xfc, 0x00, 0x05, 0x51, 0x00, 0x01, 0xff, 0x04, 0x26, 0x21, 0x06, 0x4e, + 0xee, 0x4e, 0xad, 0xfd, 0x40, 0x4a, 0xf5, 0x2c, 0x87, 0xfd, 0x00, 0x4c, + 0xb8, 0x16, 0x88, 0xfd, 0x40, 0x4b, 0xb9, 0x16, 0xcc, 0xfc, 0x00, 0x4c, + 0x60, 0x03, 0x42, 0xfc, 0x40, 0xa9, 0x11, 0x0a, 0x05, 0x7f, 0x01, 0xff, + 0x4a, 0xf5, 0x2c, 0x85, 0xfd, 0x00, 0x4c, 0xb8, 0x16, 0x86, 0xfd, 0x40, + 0x4b, 0xb9, 0x16, 0xcb, 0xfc, 0x00, 0x4c, 0x60, 0x03, 0x41, 0xfc, 0x40, + 0xa9, 0x2b, 0x05, 0x51, 0x00, 0x01, 0xff, 0x05, 0x3e, 0x38, 0x16, 0x05, + 0x1c, 0x21, 0x06, 0x4e, 0xee, 0x4e, 0xac, 0xfd, 0x40, 0x4a, 0xf5, 0x2c, + 0xbc, 0xfd, 0x00, 0x4c, 0xb8, 0x16, 0xba, 0xfd, 0x40, 0x4a, 0xf5, 0x2c, + 0x84, 0xfd, 0x00, 0x4c, 0xb8, 0x16, 0x83, 0xfd, 0x40, 0x4b, 0xb9, 0x16, + 0xc9, 0xfc, 0x00, 0x4c, 0x60, 0x03, 0x3f, 0xfc, 0x40, 0x03, 0x18, 0x0a, + 0x06, 0x4f, 0xa8, 0x6c, 0xcd, 0xfc, 0x40, 0xa9, 0x21, 0x05, 0x51, 0x00, + 0x01, 0xff, 0x57, 0xe8, 0x2c, 0x82, 0xfd, 0x00, 0x05, 0x1c, 0x21, 0x06, + 0x4e, 0xee, 0x4e, 0x81, 0xfd, 0x40, 0x4a, 0xf5, 0x2c, 0x80, 0xfd, 0x00, + 0x4c, 0xb8, 0x16, 0xb5, 0xfd, 0x40, 0x4b, 0xb9, 0x16, 0xca, 0xfc, 0x00, + 0x4c, 0x60, 0x03, 0x40, 0xfc, 0x40, 0x4a, 0xf5, 0x2c, 0xfc, 0xfe, 0x00, + 0x4d, 0x5f, 0x03, 0xfb, 0xfe, 0x00, 0x08, 0x6c, 0x00, 0x3b, 0x05, 0x51, + 0x00, 0x01, 0xff, 0x06, 0x56, 0x00, 0x11, 0x0c, 0xb3, 0x91, 0x01, 0xff, + 0x4a, 0xf5, 0x2c, 0xf6, 0xfe, 0x00, 0x4d, 0x5f, 0x03, 0xf5, 0xfe, 0x40, + 0x06, 0x5c, 0x00, 0x11, 0x06, 0xa3, 0x12, 0x01, 0xff, 0x4a, 0xf5, 0x2c, + 0xfa, 0xfe, 0x00, 0x4d, 0x5f, 0x03, 0xf9, 0xfe, 0x40, 0x4a, 0xf5, 0x2c, + 0xf8, 0xfe, 0x00, 0x4d, 0x5f, 0x03, 0xf7, 0xfe, 0x40, 0x4a, 0xf5, 0x2c, + 0x86, 0xfc, 0x00, 0x4d, 0x5f, 0x03, 0x43, 0xfc, 0x40, 0xa1, 0x4c, 0x09, + 0x26, 0x21, 0x01, 0xff, 0x0d, 0x67, 0x00, 0x37, 0x51, 0x73, 0x5a, 0x1a, + 0xfc, 0x00, 0x06, 0x3e, 0x38, 0x21, 0x06, 0x3e, 0x5c, 0x11, 0x04, 0x4d, + 0x00, 0x01, 0xff, 0x4a, 0xf5, 0x2c, 0x20, 0xfd, 0x00, 0x4d, 0x5f, 0x03, + 0x04, 0xfd, 0x40, 0x4b, 0xb9, 0x16, 0xac, 0xfc, 0x00, 0x4c, 0x60, 0x03, + 0x1b, 0xfc, 0x40, 0x4b, 0xb9, 0x16, 0xab, 0xfc, 0x00, 0x4c, 0x60, 0x03, + 0x19, 0xfc, 0x40, 0x4a, 0xf5, 0x2c, 0x1f, 0xfd, 0x00, 0x4d, 0x5f, 0x03, + 0x03, 0xfd, 0x40, 0x07, 0x45, 0x14, 0x06, 0x54, 0x8c, 0x45, 0xce, 0xfd, + 0x40, 0x05, 0x67, 0x00, 0x99, 0x01, 0x05, 0x73, 0x5a, 0x88, 0x01, 0x06, + 0x3e, 0x38, 0x78, 0x06, 0x72, 0x5b, 0x68, 0x04, 0x4c, 0x14, 0x4a, 0x05, + 0x1c, 0x21, 0x11, 0x04, 0x4d, 0x00, 0x01, 0xff, 0x4a, 0xf5, 0x2c, 0x84, + 0xfc, 0x00, 0x4d, 0x5f, 0x03, 0x3e, 0xfc, 0x40, 0x4a, 0xf5, 0x2c, 0x82, + 0xfc, 0x00, 0xa9, 0x21, 0x4b, 0xf6, 0x6d, 0xec, 0xfc, 0x00, 0x05, 0x51, + 0x00, 0x01, 0xff, 0x05, 0x1c, 0x21, 0x06, 0x4e, 0xee, 0x4e, 0xb7, 0xfd, + 0x40, 0x4a, 0xf5, 0x2c, 0xbb, 0xfd, 0x00, 0x4c, 0xb8, 0x16, 0xc3, 0xfd, + 0x40, 0x4b, 0xb9, 0x16, 0xc8, 0xfc, 0x00, 0x4c, 0x60, 0x03, 0x3c, 0xfc, + 0x40, 0x4a, 0xf5, 0x2c, 0x81, 0xfc, 0x00, 0xa9, 0x06, 0x4b, 0xf6, 0x6d, + 0xeb, 0xfc, 0x40, 0x4b, 0xb9, 0x16, 0xc7, 0xfc, 0x00, 0x4c, 0x60, 0x03, + 0x3b, 0xfc, 0x40, 0x4b, 0xb9, 0x16, 0xc6, 0xfc, 0x00, 0x4c, 0x60, 0x03, + 0x3a, 0xfc, 0x40, 0x4b, 0xb9, 0x16, 0xc4, 0xfc, 0x00, 0x4c, 0x60, 0x03, + 0x38, 0xfc, 0x40, 0x4b, 0xb9, 0x16, 0xc5, 0xfc, 0x00, 0x4c, 0x60, 0x03, + 0x39, 0xfc, 0x40, 0x4a, 0xf5, 0x2c, 0x80, 0xfc, 0x00, 0x4d, 0x5f, 0x03, + 0x37, 0xfc, 0x00, 0x08, 0x6c, 0x00, 0x01, 0xff, 0x4a, 0xf5, 0x2c, 0x83, + 0xfc, 0x00, 0x4d, 0x5f, 0x03, 0x3d, 0xfc, 0x40, 0x04, 0xea, 0x20, 0x7c, + 0x09, 0x1d, 0x21, 0x01, 0xff, 0x0d, 0x67, 0x00, 0x67, 0x04, 0x26, 0x21, + 0x44, 0x05, 0x1c, 0x21, 0x11, 0x04, 0x4d, 0x00, 0x01, 0xff, 0x4a, 0xf5, + 0x2c, 0x1e, 0xfd, 0x00, 0x4d, 0x5f, 0x03, 0x02, 0xfd, 0x40, 0xa9, 0x21, + 0x05, 0x51, 0x00, 0x01, 0xff, 0x57, 0xe8, 0x2c, 0xa7, 0xfd, 0x00, 0x04, + 0x26, 0x21, 0x06, 0x4e, 0xee, 0x4e, 0xa5, 0xfd, 0x40, 0x4a, 0xf5, 0x2c, + 0x58, 0xfd, 0x00, 0x4c, 0xb8, 0x16, 0x59, 0xfd, 0x40, 0x4b, 0xb9, 0x16, + 0xa8, 0xfc, 0x00, 0x4c, 0x60, 0x03, 0x16, 0xfc, 0x40, 0xa9, 0x11, 0x05, + 0x51, 0x00, 0x01, 0xff, 0x57, 0xe8, 0x2c, 0xa6, 0xfd, 0x00, 0x4e, 0xee, + 0x4e, 0xbe, 0xfd, 0x40, 0x4b, 0xb9, 0x16, 0xa7, 0xfc, 0x00, 0x4c, 0x60, + 0x03, 0x15, 0xfc, 0x40, 0x4a, 0xf5, 0x2c, 0x1d, 0xfd, 0x00, 0x4d, 0x5f, + 0x03, 0x01, 0xfd, 0x40, 0x48, 0xa8, 0xc2, 0xc3, 0xfb, 0x00, 0x4a, 0x31, + 0xac, 0xfb, 0xfd, 0x40, 0xa1, 0x4a, 0x08, 0x4e, 0x00, 0x01, 0xff, 0x5a, + 0xe0, 0x1e, 0x53, 0xfc, 0x00, 0x06, 0x3e, 0x38, 0x2f, 0x05, 0x1c, 0x21, + 0x0c, 0x5d, 0xa7, 0x16, 0xd9, 0xfc, 0x00, 0x51, 0xd4, 0x5f, 0x54, 0xfc, + 0x40, 0xa9, 0x11, 0x05, 0x51, 0x00, 0x01, 0xff, 0x51, 0x3e, 0x38, 0x93, + 0xfd, 0x00, 0x51, 0x3e, 0x5c, 0x94, 0xfd, 0x40, 0x4b, 0xb9, 0x16, 0xd8, + 0xfc, 0x00, 0x4c, 0x60, 0x03, 0x52, 0xfc, 0x40, 0x4b, 0xb9, 0x16, 0xd7, + 0xfc, 0x00, 0x4c, 0x60, 0x03, 0x51, 0xfc, 0x40, 0x06, 0xc6, 0xdb, 0x61, + 0x07, 0x4f, 0x00, 0x01, 0xff, 0x0d, 0x67, 0x00, 0x4c, 0x05, 0x3e, 0x38, + 0x34, 0x05, 0x1c, 0x21, 0x11, 0x04, 0x4d, 0x00, 0x01, 0xff, 0x4a, 0xf5, + 0x2c, 0x1c, 0xfd, 0x00, 0x4d, 0x5f, 0x03, 0x00, 0xfd, 0x40, 0xa9, 0x11, + 0x05, 0x51, 0x00, 0x01, 0xff, 0x57, 0xe8, 0x2c, 0x5b, 0xfd, 0x00, 0x4e, + 0xee, 0x4e, 0x5a, 0xfd, 0x40, 0x4b, 0xb9, 0x16, 0xaa, 0xfc, 0x00, 0x4c, + 0x60, 0x03, 0x18, 0xfc, 0x40, 0xa9, 0x06, 0x53, 0xe9, 0x4e, 0xbf, 0xfd, + 0x40, 0x4b, 0xb9, 0x16, 0xa9, 0xfc, 0x00, 0x4c, 0x60, 0x03, 0x17, 0xfc, + 0x40, 0x4a, 0xf5, 0x2c, 0x1b, 0xfd, 0x00, 0x4d, 0x5f, 0x03, 0xff, 0xfc, + 0x40, 0x47, 0xbd, 0x2d, 0xcc, 0xfb, 0x80, 0x0f, 0xad, 0x01, 0xff, 0x50, + 0xfb, 0x4f, 0xce, 0xfb, 0x00, 0x52, 0xf9, 0x4f, 0xcf, 0xfb, 0x40, 0x49, + 0x02, 0x50, 0xcd, 0xfb, 0x40, 0x0d, 0x67, 0x00, 0x4a, 0x06, 0x3e, 0x38, + 0x3a, 0x05, 0x1c, 0x21, 0x11, 0x04, 0x4d, 0x00, 0x01, 0xff, 0x4a, 0xf5, + 0x2c, 0x16, 0xfd, 0x00, 0x4d, 0x5f, 0x03, 0xfa, 0xfc, 0x40, 0xa9, 0x17, + 0x05, 0x51, 0x00, 0x01, 0xff, 0x57, 0xe8, 0x2c, 0x7b, 0xfd, 0x00, 0x4f, + 0x3b, 0x70, 0x79, 0xfd, 0x00, 0x4e, 0xee, 0x4e, 0x7a, 0xfd, 0x40, 0x4b, + 0xb9, 0x16, 0xbd, 0xfc, 0x00, 0x4c, 0x60, 0x03, 0x2c, 0xfc, 0x40, 0x4b, + 0xb9, 0x16, 0xbc, 0xfc, 0x00, 0x4c, 0x60, 0x03, 0x2b, 0xfc, 0x40, 0x4a, + 0xf5, 0x2c, 0x15, 0xfd, 0x00, 0x4d, 0x5f, 0x03, 0xf9, 0xfc, 0x40, 0x0d, + 0x67, 0x00, 0x6c, 0x05, 0x73, 0x5a, 0x5c, 0x06, 0x3e, 0x38, 0x4c, 0x05, + 0x72, 0x5b, 0x29, 0x05, 0x1c, 0x21, 0x11, 0x04, 0x4d, 0x00, 0x01, 0xff, + 0x4a, 0xf5, 0x2c, 0x7d, 0xfc, 0x00, 0x4d, 0x5f, 0x03, 0x32, 0xfc, 0x40, + 0xa9, 0x06, 0x53, 0xe9, 0x4e, 0xc1, 0xfd, 0x40, 0x4b, 0xb9, 0x16, 0xc1, + 0xfc, 0x00, 0x4c, 0x60, 0x03, 0x30, 0xfc, 0x40, 0xa9, 0x11, 0x0a, 0x05, + 0x7f, 0x01, 0xff, 0x4a, 0xf5, 0x2c, 0x7c, 0xfd, 0x00, 0x4c, 0xb8, 0x16, + 0x7d, 0xfd, 0x40, 0x4b, 0xb9, 0x16, 0xc0, 0xfc, 0x00, 0x4c, 0x60, 0x03, + 0x2f, 0xfc, 0x40, 0x4b, 0xb9, 0x16, 0xbe, 0xfc, 0x00, 0x4c, 0x60, 0x03, + 0x2d, 0xfc, 0x40, 0x4b, 0xb9, 0x16, 0xbf, 0xfc, 0x00, 0x4c, 0x60, 0x03, + 0x2e, 0xfc, 0x40, 0x4a, 0xf5, 0x2c, 0x7c, 0xfc, 0x00, 0x4d, 0x5f, 0x03, + 0x31, 0xfc, 0x40, 0x51, 0x0f, 0x58, 0xc4, 0xfb, 0x00, 0x07, 0xa2, 0x0a, + 0x01, 0xff, 0x0d, 0x67, 0x00, 0x87, 0x01, 0x04, 0x26, 0x21, 0x64, 0x06, + 0x3e, 0x38, 0x54, 0x05, 0x72, 0x5b, 0x31, 0x06, 0x3e, 0x5c, 0x21, 0x04, + 0x9d, 0x7b, 0x11, 0x04, 0x4d, 0x00, 0x01, 0xff, 0x4a, 0xf5, 0x2c, 0x24, + 0xfd, 0x00, 0x4d, 0x5f, 0x03, 0x08, 0xfd, 0x40, 0x4a, 0xf5, 0x2c, 0x2c, + 0xfd, 0x00, 0x4d, 0x5f, 0x03, 0x10, 0xfd, 0x40, 0x4b, 0xb9, 0x16, 0xb7, + 0xfc, 0x00, 0x4c, 0x60, 0x03, 0x25, 0xfc, 0x40, 0xa9, 0x11, 0x0a, 0x05, + 0x7f, 0x01, 0xff, 0x4a, 0xf5, 0x2c, 0x6f, 0xfd, 0x00, 0x4c, 0xb8, 0x16, + 0x70, 0xfd, 0x40, 0x4b, 0xb9, 0x16, 0xb6, 0xfc, 0x00, 0x4c, 0x60, 0x03, + 0x24, 0xfc, 0x40, 0x4b, 0xb9, 0x16, 0xb4, 0xfc, 0x00, 0x4c, 0x60, 0x03, + 0x22, 0xfc, 0x40, 0xa9, 0x11, 0x05, 0x51, 0x00, 0x01, 0xff, 0x57, 0xe8, + 0x2c, 0x6e, 0xfd, 0x00, 0x4e, 0xee, 0x4e, 0xab, 0xfd, 0x40, 0x4b, 0xb9, + 0x16, 0xb5, 0xfc, 0x00, 0x4c, 0x60, 0x03, 0x23, 0xfc, 0x40, 0x4a, 0xf5, + 0x2c, 0x23, 0xfd, 0x00, 0x4d, 0x5f, 0x03, 0x07, 0xfd, 0x40, 0x08, 0x4e, + 0x00, 0x06, 0x5c, 0x32, 0x18, 0xfd, 0xfd, 0x40, 0x0d, 0x67, 0x00, 0x93, + 0x01, 0xa8, 0x68, 0x06, 0x3e, 0x38, 0x58, 0x05, 0x72, 0x5b, 0x40, 0x05, + 0x1c, 0x21, 0x22, 0x4f, 0xc2, 0x70, 0x6d, 0xfc, 0x00, 0x4e, 0x9d, 0x7b, + 0x6a, 0xfc, 0x00, 0x04, 0x4d, 0x00, 0x06, 0x4f, 0x27, 0x75, 0x6b, 0xfc, + 0x40, 0x4a, 0xf5, 0x2c, 0x6f, 0xfc, 0x00, 0x4d, 0x5f, 0x03, 0x0a, 0xfc, + 0x40, 0x4a, 0xf5, 0x2c, 0x6c, 0xfc, 0x00, 0xa9, 0x06, 0x4b, 0xf6, 0x6d, + 0xe1, 0xfc, 0x40, 0x4b, 0xb9, 0x16, 0x9f, 0xfc, 0x00, 0x4c, 0x60, 0x03, + 0x08, 0xfc, 0x40, 0xa9, 0x06, 0x53, 0xe9, 0x4e, 0x9e, 0xfd, 0x40, 0x4b, + 0xb9, 0x16, 0x9e, 0xfc, 0x00, 0x4c, 0x60, 0x03, 0x07, 0xfc, 0x40, 0x4b, + 0xb9, 0x16, 0x9c, 0xfc, 0x00, 0x4c, 0x60, 0x03, 0x05, 0xfc, 0x40, 0x03, + 0x18, 0x0a, 0x11, 0x03, 0x4e, 0x00, 0x01, 0xff, 0x4c, 0xb8, 0x16, 0xa0, + 0xfc, 0x00, 0x4b, 0xf6, 0x6d, 0xe2, 0xfc, 0x40, 0xa9, 0x06, 0x53, 0xe9, + 0x4e, 0xc2, 0xfd, 0x40, 0x4b, 0xb9, 0x16, 0x9d, 0xfc, 0x00, 0x4c, 0x60, + 0x03, 0x06, 0xfc, 0x40, 0x4a, 0xf5, 0x2c, 0x6e, 0xfc, 0x00, 0x4d, 0x5f, + 0x03, 0x09, 0xfc, 0x40, 0x08, 0x68, 0x9c, 0x9e, 0x01, 0x0d, 0xc0, 0x84, + 0x8d, 0x01, 0x52, 0x35, 0x53, 0xf3, 0xfd, 0x00, 0xac, 0x06, 0x4b, 0x8c, + 0xa5, 0xff, 0xfd, 0x40, 0x03, 0xf4, 0x20, 0x2b, 0x03, 0x69, 0x00, 0x06, + 0x51, 0x94, 0x5b, 0xf2, 0xfd, 0x40, 0x1e, 0xad, 0x13, 0x11, 0x0e, 0xbb, + 0x7e, 0x01, 0xff, 0x4a, 0xf5, 0x2c, 0x3c, 0xfd, 0x00, 0x4d, 0x5f, 0x03, + 0x3d, 0xfd, 0x40, 0x4a, 0xf5, 0x2c, 0x90, 0xfc, 0x00, 0x4d, 0x5f, 0x03, + 0x5d, 0xfc, 0x40, 0x0b, 0xa8, 0x98, 0x42, 0x4f, 0x6c, 0x6c, 0xf7, 0xfd, + 0x00, 0xa9, 0x01, 0xff, 0x02, 0x19, 0x00, 0x20, 0xad, 0x01, 0xff, 0x09, + 0xaa, 0x98, 0x0f, 0x0b, 0xa8, 0x98, 0x01, 0xff, 0xed, 0x49, 0xfd, 0x00, + 0x4d, 0x5f, 0x89, 0xd3, 0x0e, 0x41, 0xed, 0x48, 0xfd, 0x00, 0x4d, 0x5f, + 0x89, 0xd2, 0x0e, 0x41, 0x48, 0x18, 0xca, 0xd2, 0xfb, 0x00, 0x07, 0x64, + 0x89, 0x01, 0xff, 0xed, 0x47, 0xfd, 0x00, 0x4d, 0x5f, 0x89, 0x4a, 0xfd, + 0x40, 0xed, 0x4d, 0xfd, 0x00, 0x4d, 0x5f, 0x89, 0xd1, 0x0e, 0x41, 0x54, + 0x52, 0x19, 0xd1, 0xfb, 0x00, 0x5c, 0x4a, 0x19, 0xcd, 0xfd, 0x40, 0x0d, + 0x67, 0x00, 0x67, 0x05, 0x3e, 0x38, 0x44, 0x05, 0x1c, 0x21, 0x11, 0x04, + 0x4d, 0x00, 0x01, 0xff, 0x4a, 0xf5, 0x2c, 0x14, 0xfd, 0x00, 0x4d, 0x5f, + 0x03, 0xf8, 0xfc, 0x40, 0xa9, 0x21, 0x05, 0x51, 0x00, 0x01, 0xff, 0x57, + 0xe8, 0x2c, 0x78, 0xfd, 0x00, 0x05, 0x1c, 0x21, 0x06, 0x4e, 0xee, 0x4e, + 0xb6, 0xfd, 0x40, 0x4a, 0xf5, 0x2c, 0x76, 0xfd, 0x00, 0x4c, 0xb8, 0x16, + 0x77, 0xfd, 0x40, 0x4b, 0xb9, 0x16, 0xbb, 0xfc, 0x00, 0x4c, 0x60, 0x03, + 0x2a, 0xfc, 0x40, 0xa9, 0x11, 0x0a, 0x05, 0x7f, 0x01, 0xff, 0x4a, 0xf5, + 0x2c, 0x75, 0xfd, 0x00, 0x4c, 0xb8, 0x16, 0xc4, 0xfd, 0x40, 0x4b, 0xb9, + 0x16, 0xba, 0xfc, 0x00, 0x4c, 0x60, 0x03, 0x29, 0xfc, 0x40, 0x4a, 0xf5, + 0x2c, 0x13, 0xfd, 0x00, 0x4d, 0x5f, 0x03, 0xf7, 0xfc, 0x40, 0x0d, 0x20, + 0x83, 0xd3, 0x1e, 0x05, 0xee, 0x05, 0x01, 0xff, 0xa1, 0x8d, 0x1b, 0x02, + 0xb7, 0x05, 0xd2, 0x19, 0xa4, 0xb1, 0x17, 0xe5, 0xd0, 0x06, 0x80, 0x8e, + 0x17, 0xa6, 0xdb, 0x15, 0xa7, 0xb5, 0x14, 0xa8, 0xfe, 0x11, 0x02, 0x80, + 0x20, 0xa6, 0x11, 0xab, 0x8f, 0x0f, 0xac, 0xa8, 0x0e, 0xad, 0xe0, 0x0d, + 0xae, 0xfe, 0x0b, 0x42, 0x60, 0x51, 0xc6, 0x06, 0x80, 0xe7, 0x0b, 0x43, + 0x72, 0xdc, 0x7e, 0x06, 0x80, 0x90, 0x0b, 0x43, 0x43, 0x14, 0x42, 0x06, + 0x80, 0xc9, 0x0a, 0xb2, 0x8c, 0x09, 0xb3, 0xb0, 0x07, 0xb4, 0xe1, 0x03, + 0xf5, 0xc7, 0x06, 0x80, 0xaf, 0x03, 0x42, 0x32, 0x00, 0xcb, 0x06, 0x80, + 0xf7, 0x02, 0x43, 0x8a, 0x8a, 0x48, 0x06, 0x80, 0x99, 0x02, 0xb9, 0x43, + 0x02, 0x59, 0x00, 0x01, 0xff, 0xe8, 0x38, 0x06, 0x80, 0x1c, 0x42, 0x9e, + 0x01, 0x32, 0x06, 0xc0, 0x00, 0x80, 0x01, 0xff, 0x4a, 0xf5, 0x2c, 0xb0, + 0xfe, 0x00, 0x4d, 0x5f, 0x03, 0xaf, 0xfe, 0x00, 0x55, 0x0b, 0x3f, 0xb2, + 0x08, 0x40, 0x80, 0x01, 0xff, 0x4a, 0xf5, 0x2c, 0xc6, 0xfe, 0x00, 0xa9, + 0x06, 0x4b, 0xf6, 0x6d, 0xc8, 0xfe, 0x40, 0x4b, 0xb9, 0x16, 0xc7, 0xfe, + 0x00, 0x4c, 0x60, 0x03, 0xc5, 0xfe, 0x40, 0x42, 0x4e, 0x00, 0x4a, 0x06, + 0x80, 0x14, 0xf5, 0xc8, 0x06, 0xc0, 0x00, 0x80, 0x01, 0xff, 0x4a, 0xf5, + 0x2c, 0xdc, 0xfb, 0x00, 0x4d, 0x5f, 0x03, 0xdb, 0xfb, 0x40, 0x80, 0x01, + 0xff, 0x46, 0xd6, 0x19, 0xd2, 0x06, 0x80, 0x75, 0x4a, 0xf5, 0x2c, 0xf2, + 0xfe, 0x00, 0xa9, 0x61, 0x4b, 0xf6, 0x6d, 0xf4, 0xfe, 0x00, 0x05, 0x51, + 0x00, 0x01, 0xff, 0x4f, 0x2f, 0x6d, 0xc7, 0x0e, 0x01, 0x4b, 0x56, 0x00, + 0x26, 0x06, 0x80, 0x2c, 0x47, 0xd2, 0x34, 0xce, 0x06, 0x00, 0xb4, 0x01, + 0xff, 0x43, 0x90, 0x17, 0xcd, 0x06, 0x00, 0x4f, 0x3d, 0x6e, 0xd1, 0x06, + 0x00, 0x12, 0x28, 0x1e, 0x01, 0xff, 0x49, 0x3a, 0x1e, 0xa9, 0x08, 0x00, + 0x4b, 0x56, 0x00, 0xa8, 0x08, 0x00, 0x50, 0x56, 0x67, 0xba, 0x08, 0x40, + 0x80, 0x01, 0xff, 0x4a, 0xf5, 0x2c, 0x8a, 0xfe, 0x00, 0xa9, 0x06, 0x4b, + 0xf6, 0x6d, 0x8c, 0xfe, 0x40, 0x4b, 0xb9, 0x16, 0x8b, 0xfe, 0x00, 0x4c, + 0x60, 0x03, 0x89, 0xfe, 0x40, 0x4b, 0xb9, 0x16, 0xf3, 0xfe, 0x00, 0x4c, + 0x60, 0x03, 0xf1, 0xfe, 0x40, 0x80, 0x01, 0xff, 0x4a, 0xf5, 0x2c, 0xaf, + 0xfb, 0x00, 0x4d, 0x5f, 0x03, 0xae, 0xfb, 0x00, 0x05, 0x51, 0x00, 0x01, + 0xff, 0x1d, 0xdc, 0x15, 0x16, 0x4b, 0x56, 0x00, 0xd3, 0x06, 0xc0, 0x00, + 0x80, 0x01, 0xff, 0x4a, 0xf5, 0x2c, 0xb1, 0xfb, 0x00, 0x4d, 0x5f, 0x03, + 0xb0, 0xfb, 0x40, 0x4a, 0x4b, 0xab, 0x7b, 0x07, 0x00, 0x48, 0x80, 0xcc, + 0x7a, 0x07, 0x40, 0x80, 0x01, 0xff, 0x4a, 0xf5, 0x2c, 0xee, 0xfe, 0x00, + 0x4d, 0x5f, 0x03, 0xed, 0xfe, 0x00, 0x05, 0x51, 0x00, 0x01, 0xff, 0x04, + 0x03, 0x0c, 0x32, 0x1d, 0xdc, 0x15, 0x22, 0x4b, 0x56, 0x00, 0x24, 0x06, + 0x80, 0x0c, 0x44, 0x22, 0x08, 0xc4, 0x06, 0x00, 0x4e, 0xf2, 0x0e, 0xca, + 0x06, 0x40, 0x80, 0x01, 0xff, 0x4a, 0xf5, 0x2c, 0x86, 0xfe, 0x00, 0x4d, + 0x5f, 0x03, 0x85, 0xfe, 0x40, 0x4a, 0x4b, 0xab, 0x79, 0x07, 0x00, 0x48, + 0x80, 0xcc, 0x78, 0x07, 0x40, 0x45, 0x5c, 0x00, 0xcf, 0x06, 0x00, 0x46, + 0xc7, 0x1e, 0xab, 0x08, 0x40, 0x80, 0x22, 0xe8, 0xa4, 0x06, 0xc0, 0x00, + 0x80, 0x01, 0xff, 0x4a, 0xf5, 0x2c, 0x6b, 0xfb, 0x00, 0xa9, 0x06, 0x4b, + 0xf6, 0x6d, 0x6d, 0xfb, 0x40, 0x4b, 0xb9, 0x16, 0x6c, 0xfb, 0x00, 0x4c, + 0x60, 0x03, 0x6a, 0xfb, 0x40, 0x4a, 0xf5, 0x2c, 0xdf, 0xfb, 0x00, 0x4d, + 0x5f, 0x03, 0xde, 0xfb, 0x40, 0x80, 0x11, 0x22, 0x56, 0x0c, 0x01, 0xff, + 0x4c, 0xb8, 0x16, 0xe8, 0xfb, 0x00, 0x4b, 0xf6, 0x6d, 0xe9, 0xfb, 0x40, + 0x4a, 0xf5, 0x2c, 0xd8, 0xfb, 0x00, 0x4d, 0x5f, 0x03, 0xd7, 0xfb, 0x00, + 0x50, 0x51, 0x00, 0x77, 0x06, 0xc0, 0x00, 0x4e, 0x5e, 0x03, 0xdd, 0xfb, + 0x40, 0x42, 0x18, 0x0a, 0x37, 0x06, 0x80, 0xf8, 0x02, 0x44, 0x92, 0x83, + 0x86, 0x06, 0x80, 0x9f, 0x02, 0x42, 0x4e, 0x00, 0x2a, 0x06, 0x80, 0x9a, + 0x01, 0xa8, 0x4d, 0x43, 0xb2, 0x0f, 0x79, 0x06, 0xc0, 0x00, 0x80, 0x24, + 0x42, 0x4e, 0x00, 0x7a, 0x06, 0xc0, 0x00, 0x80, 0x01, 0xff, 0x4a, 0xf5, + 0x2c, 0x5f, 0xfb, 0x00, 0xa9, 0x06, 0x4b, 0xf6, 0x6d, 0x61, 0xfb, 0x40, + 0x4b, 0xb9, 0x16, 0x60, 0xfb, 0x00, 0x4c, 0x60, 0x03, 0x5e, 0xfb, 0x40, + 0x4a, 0xf5, 0x2c, 0x67, 0xfb, 0x00, 0xa9, 0x0c, 0x4b, 0xf6, 0x6d, 0x69, + 0xfb, 0x00, 0x4c, 0xff, 0x96, 0xc0, 0x08, 0x40, 0x4b, 0xb9, 0x16, 0x68, + 0xfb, 0x00, 0x4c, 0x60, 0x03, 0x66, 0xfb, 0x40, 0x42, 0x13, 0x00, 0x30, + 0x06, 0x80, 0x35, 0x42, 0x4e, 0x00, 0x2b, 0x06, 0x80, 0x11, 0x03, 0xe1, + 0x05, 0x01, 0xff, 0x44, 0xf9, 0x45, 0xc6, 0x0e, 0x01, 0x43, 0x4d, 0x00, + 0x86, 0x08, 0x40, 0x80, 0x01, 0xff, 0x4a, 0xf5, 0x2c, 0x9a, 0xfe, 0x00, + 0xa9, 0x06, 0x4b, 0xf6, 0x6d, 0x9c, 0xfe, 0x40, 0x4b, 0xb9, 0x16, 0x9b, + 0xfe, 0x00, 0x4c, 0x60, 0x03, 0x99, 0xfe, 0x40, 0x80, 0x01, 0xff, 0x4a, + 0xf5, 0x2c, 0xac, 0xfe, 0x00, 0x4d, 0x5f, 0x03, 0xab, 0xfe, 0x40, 0x80, + 0x24, 0x42, 0x4e, 0x00, 0x7f, 0x06, 0xc0, 0x00, 0x80, 0x01, 0xff, 0x4a, + 0xf5, 0x2c, 0x63, 0xfb, 0x00, 0xa9, 0x06, 0x4b, 0xf6, 0x6d, 0x65, 0xfb, + 0x40, 0x4b, 0xb9, 0x16, 0x64, 0xfb, 0x00, 0x4c, 0x60, 0x03, 0x62, 0xfb, + 0x40, 0x4a, 0xf5, 0x2c, 0x96, 0xfe, 0x00, 0xa9, 0x43, 0xad, 0x1f, 0x05, + 0x51, 0x00, 0x01, 0xff, 0x44, 0x22, 0x08, 0x7c, 0x06, 0x00, 0x06, 0x5d, + 0x07, 0x06, 0x5a, 0x3a, 0x22, 0x7d, 0x06, 0x40, 0x49, 0xba, 0xbf, 0xb8, + 0x08, 0x00, 0xf6, 0xbf, 0x08, 0x40, 0x46, 0xe0, 0xd9, 0x29, 0x06, 0x80, + 0x06, 0x4a, 0xf7, 0x6d, 0x98, 0xfe, 0x40, 0x80, 0x01, 0xff, 0x4a, 0xf5, + 0x2c, 0x94, 0xfe, 0x00, 0x44, 0x09, 0xf0, 0xc3, 0x06, 0x00, 0x4d, 0x5f, + 0x03, 0x93, 0xfe, 0x40, 0x4b, 0xb9, 0x16, 0x97, 0xfe, 0x00, 0x4c, 0x60, + 0x03, 0x95, 0xfe, 0x40, 0x80, 0x24, 0x42, 0x4e, 0x00, 0x87, 0x06, 0xc0, + 0x00, 0x80, 0x01, 0xff, 0x4a, 0xf5, 0x2c, 0x7f, 0xfb, 0x00, 0xa9, 0x06, + 0x4b, 0xf6, 0x6d, 0x81, 0xfb, 0x40, 0x4b, 0xb9, 0x16, 0x80, 0xfb, 0x00, + 0x4c, 0x60, 0x03, 0x7e, 0xfb, 0x40, 0x4a, 0xf5, 0x2c, 0x7b, 0xfb, 0x00, + 0xa9, 0x17, 0x4b, 0xf6, 0x6d, 0x7d, 0xfb, 0x00, 0x05, 0x51, 0x00, 0x01, + 0xff, 0x49, 0x3a, 0x1e, 0xbf, 0x06, 0x00, 0x47, 0xd2, 0x34, 0xc1, 0x08, + 0x40, 0x4b, 0xb9, 0x16, 0x7c, 0xfb, 0x00, 0x4c, 0x60, 0x03, 0x7a, 0xfb, + 0x40, 0x80, 0x01, 0xff, 0x4a, 0xf5, 0x2c, 0xc2, 0xfe, 0x00, 0xa9, 0x35, + 0x4b, 0xf6, 0x6d, 0xc4, 0xfe, 0x00, 0x05, 0x51, 0x00, 0x01, 0xff, 0x49, + 0x9f, 0x12, 0x8b, 0x08, 0x00, 0xb4, 0x01, 0xff, 0x0a, 0xae, 0x12, 0x11, + 0x08, 0xf2, 0x0b, 0x01, 0xff, 0x45, 0x5c, 0x00, 0xa3, 0x08, 0x00, 0x50, + 0x4e, 0x2c, 0xc3, 0x0e, 0x41, 0x45, 0x5c, 0x00, 0x9f, 0x06, 0x00, 0x45, + 0x20, 0x07, 0x8c, 0x08, 0x40, 0x4b, 0xb9, 0x16, 0xc3, 0xfe, 0x00, 0x4c, + 0x60, 0x03, 0xc1, 0xfe, 0x40, 0x42, 0xe8, 0x01, 0x35, 0x06, 0x80, 0x99, + 0x01, 0x43, 0xc4, 0x09, 0x33, 0x06, 0x80, 0x3c, 0x44, 0x4c, 0xdb, 0x34, + 0x06, 0x80, 0x12, 0x4b, 0xb3, 0xa3, 0xb1, 0x08, 0x00, 0x4f, 0x70, 0x06, + 0x70, 0x06, 0x00, 0x48, 0x68, 0xcc, 0xaa, 0x06, 0x40, 0x80, 0x01, 0xff, + 0x4a, 0xf5, 0x2c, 0xb6, 0xfe, 0x00, 0xa9, 0x0c, 0x4b, 0xf6, 0x6d, 0xb8, + 0xfe, 0x00, 0x4e, 0xad, 0x7e, 0xfa, 0x06, 0x40, 0x4b, 0xb9, 0x16, 0xb7, + 0xfe, 0x00, 0x4c, 0x60, 0x03, 0xb5, 0xfe, 0x40, 0x80, 0x01, 0xff, 0x4a, + 0xf5, 0x2c, 0xb2, 0xfe, 0x00, 0xa9, 0x3f, 0x4b, 0xf6, 0x6d, 0xb4, 0xfe, + 0x00, 0x05, 0x51, 0x00, 0x01, 0xff, 0x57, 0x2a, 0x2e, 0x9a, 0x06, 0x00, + 0x66, 0xd9, 0x06, 0x7d, 0x07, 0x00, 0x4f, 0xd1, 0x46, 0x5c, 0x07, 0x00, + 0x4a, 0x10, 0x3f, 0x7e, 0x07, 0x00, 0x64, 0x03, 0x0a, 0x70, 0x07, 0x00, + 0xb4, 0x01, 0xff, 0x4f, 0x3d, 0x6e, 0x9b, 0x06, 0x80, 0x06, 0x58, 0x2e, + 0x2c, 0x6d, 0x07, 0x40, 0x55, 0xa8, 0x12, 0x9c, 0x06, 0x40, 0x4b, 0xb9, + 0x16, 0xb3, 0xfe, 0x00, 0x4c, 0x60, 0x03, 0xb1, 0xfe, 0x40, 0x80, 0x01, + 0xff, 0x4a, 0xf5, 0x2c, 0xba, 0xfe, 0x00, 0xa9, 0x21, 0x4b, 0xf6, 0x6d, + 0xbc, 0xfe, 0x00, 0x06, 0x29, 0x06, 0x01, 0xff, 0x0a, 0xae, 0x12, 0x06, + 0x4d, 0x06, 0x0f, 0x9d, 0x06, 0x40, 0x45, 0x5c, 0x00, 0x9e, 0x06, 0x00, + 0x45, 0x20, 0x07, 0xaf, 0x08, 0x40, 0x4b, 0xb9, 0x16, 0xbb, 0xfe, 0x00, + 0x4c, 0x60, 0x03, 0xb9, 0xfe, 0x40, 0x42, 0x4e, 0x00, 0x31, 0x06, 0x80, + 0x40, 0x44, 0xf9, 0x45, 0xbb, 0x06, 0x80, 0x1c, 0x4b, 0x90, 0xa0, 0xac, + 0x08, 0x00, 0x43, 0x37, 0x52, 0x91, 0x06, 0xc0, 0x00, 0x80, 0x01, 0xff, + 0x4a, 0xf5, 0x2c, 0x8d, 0xfb, 0x00, 0x4d, 0x5f, 0x03, 0x8c, 0xfb, 0x40, + 0x80, 0x01, 0xff, 0x4a, 0xf5, 0x2c, 0xa1, 0xfb, 0x00, 0xa9, 0x06, 0x4b, + 0xf6, 0x6d, 0xa3, 0xfb, 0x40, 0x4b, 0xb9, 0x16, 0xa2, 0xfb, 0x00, 0x4c, + 0x60, 0x03, 0xa0, 0xfb, 0x40, 0x80, 0x01, 0xff, 0x4a, 0xf5, 0x2c, 0xae, + 0xfe, 0x00, 0x4d, 0x5f, 0x03, 0xad, 0xfe, 0x00, 0x05, 0x51, 0x00, 0x01, + 0xff, 0x49, 0x9f, 0x12, 0x94, 0x06, 0x80, 0x52, 0x4f, 0xd1, 0x46, 0x99, + 0x06, 0x00, 0x4b, 0x56, 0x00, 0x6c, 0x07, 0x00, 0x4a, 0x10, 0x3f, 0xef, + 0x06, 0x00, 0x44, 0x42, 0x85, 0xaa, 0x08, 0x00, 0x44, 0x22, 0x08, 0x93, + 0x06, 0x00, 0xb3, 0x11, 0x09, 0xf1, 0x0b, 0x01, 0xff, 0x45, 0x5c, 0x00, + 0x97, 0x06, 0x00, 0x50, 0x36, 0x2c, 0x6b, 0x07, 0x40, 0x05, 0x5e, 0x07, + 0x06, 0x45, 0x53, 0x05, 0x5b, 0x07, 0x40, 0x5e, 0x09, 0x0a, 0x71, 0x07, + 0x00, 0x4a, 0x5c, 0x67, 0xb9, 0x08, 0x00, 0xf6, 0x92, 0x06, 0xc0, 0x00, + 0x46, 0x1f, 0x07, 0x95, 0x06, 0x40, 0x4e, 0x35, 0x1e, 0x96, 0x06, 0x40, + 0x80, 0x01, 0xff, 0x4a, 0xf5, 0x2c, 0xd6, 0xfe, 0x00, 0xa9, 0x28, 0x4b, + 0xf6, 0x6d, 0xd8, 0xfe, 0x00, 0x05, 0x51, 0x00, 0x01, 0xff, 0x04, 0x03, + 0x0c, 0x06, 0x50, 0xad, 0x12, 0xa8, 0x06, 0x40, 0x45, 0x5c, 0x00, 0xa7, + 0x06, 0x00, 0x45, 0x20, 0x07, 0xa5, 0x08, 0xc0, 0x00, 0x52, 0x0f, 0x4f, + 0xb5, 0x08, 0x40, 0x4b, 0xb9, 0x16, 0xd7, 0xfe, 0x00, 0x4c, 0x60, 0x03, + 0xd5, 0xfe, 0x40, 0x80, 0x24, 0x42, 0x4e, 0x00, 0xa6, 0x06, 0xc0, 0x00, + 0x80, 0x01, 0xff, 0x4a, 0xf5, 0x2c, 0x6f, 0xfb, 0x00, 0xa9, 0x06, 0x4b, + 0xf6, 0x6d, 0x71, 0xfb, 0x40, 0x4b, 0xb9, 0x16, 0x70, 0xfb, 0x00, 0x4c, + 0x60, 0x03, 0x6e, 0xfb, 0x40, 0x4a, 0xf5, 0x2c, 0x57, 0xfb, 0x00, 0xa9, + 0x15, 0x4b, 0xf6, 0x6d, 0x59, 0xfb, 0x00, 0x0b, 0xff, 0x96, 0x01, 0xff, + 0x4a, 0xcb, 0xad, 0xb7, 0x08, 0x00, 0xf6, 0xbe, 0x08, 0x40, 0x4b, 0xb9, + 0x16, 0x58, 0xfb, 0x00, 0x4c, 0x60, 0x03, 0x56, 0xfb, 0x40, 0x80, 0x01, + 0xff, 0x4a, 0xf5, 0x2c, 0xda, 0xfb, 0x00, 0x4d, 0x5f, 0x03, 0xd9, 0xfb, + 0x40, 0xe7, 0xad, 0x06, 0x80, 0x99, 0x01, 0x43, 0xcd, 0x02, 0x46, 0x06, + 0x80, 0x24, 0x43, 0x4d, 0x00, 0x83, 0x06, 0xc0, 0x00, 0x80, 0x01, 0xff, + 0x4a, 0xf5, 0x2c, 0x77, 0xfb, 0x00, 0xa9, 0x06, 0x4b, 0xf6, 0x6d, 0x79, + 0xfb, 0x40, 0x4b, 0xb9, 0x16, 0x78, 0xfb, 0x00, 0x4c, 0x60, 0x03, 0x76, + 0xfb, 0x40, 0x80, 0x01, 0xff, 0x4a, 0xf5, 0x2c, 0xe6, 0xfe, 0x00, 0x46, + 0xfe, 0x45, 0xba, 0x06, 0x80, 0x4f, 0xa9, 0x41, 0x4b, 0xf6, 0x6d, 0xe8, + 0xfe, 0x00, 0x05, 0x51, 0x00, 0x01, 0xff, 0x49, 0x9f, 0x12, 0xb9, 0x06, + 0x00, 0x50, 0xc9, 0x34, 0x89, 0x08, 0x00, 0x44, 0x22, 0x08, 0xbc, 0x06, + 0x80, 0x1d, 0x06, 0x5d, 0x07, 0x0f, 0xb4, 0x01, 0xff, 0x4f, 0xae, 0x12, + 0xbd, 0x06, 0x00, 0x4d, 0x06, 0x0f, 0x67, 0x07, 0x40, 0x43, 0x17, 0x0a, + 0x68, 0x07, 0x00, 0xf6, 0x69, 0x07, 0x40, 0x46, 0x5b, 0x00, 0x8f, 0x08, + 0x40, 0x4b, 0xb9, 0x16, 0xe7, 0xfe, 0x00, 0x4c, 0x60, 0x03, 0xe5, 0xfe, + 0x40, 0x80, 0x01, 0xff, 0x4a, 0xf5, 0x2c, 0x9f, 0xfb, 0x00, 0x4d, 0x5f, + 0x03, 0x9e, 0xfb, 0x40, 0x80, 0x24, 0x43, 0xe7, 0x9c, 0xb1, 0x06, 0xc0, + 0x00, 0x80, 0x01, 0xff, 0x4a, 0xf5, 0x2c, 0x9b, 0xfb, 0x00, 0xa9, 0x06, + 0x4b, 0xf6, 0x6d, 0x9d, 0xfb, 0x40, 0x4b, 0xb9, 0x16, 0x9c, 0xfb, 0x00, + 0x4c, 0x60, 0x03, 0x9a, 0xfb, 0x40, 0x4a, 0xf5, 0x2c, 0xd4, 0xfb, 0x00, + 0xa9, 0x06, 0x4b, 0xf6, 0x6d, 0xd6, 0xfb, 0x40, 0x4b, 0xb9, 0x16, 0xd5, + 0xfb, 0x00, 0x4c, 0x60, 0x03, 0xd3, 0xfb, 0x40, 0x43, 0xba, 0x00, 0x1c, + 0x06, 0x00, 0x43, 0x4b, 0x18, 0x45, 0x06, 0xc0, 0x00, 0x80, 0x01, 0xff, + 0x4a, 0xf5, 0x2c, 0xe2, 0xfe, 0x00, 0xa9, 0x21, 0x4b, 0xf6, 0x6d, 0xe4, + 0xfe, 0x00, 0x05, 0x51, 0x00, 0x01, 0xff, 0x04, 0x03, 0x0c, 0x06, 0x50, + 0xad, 0x12, 0xa7, 0x08, 0x40, 0x45, 0x5c, 0x00, 0x65, 0x07, 0x00, 0x45, + 0x20, 0x07, 0x66, 0x07, 0x40, 0x4b, 0xb9, 0x16, 0xe3, 0xfe, 0x00, 0x4c, + 0x60, 0x03, 0xe1, 0xfe, 0x40, 0x42, 0x57, 0x00, 0x44, 0x06, 0x80, 0x06, + 0x47, 0x50, 0xd4, 0xad, 0x08, 0x40, 0x80, 0x01, 0xff, 0x4a, 0xf5, 0x2c, + 0xde, 0xfe, 0x00, 0xa9, 0x40, 0x4b, 0xf6, 0x6d, 0xe0, 0xfe, 0x00, 0x05, + 0x51, 0x00, 0x01, 0xff, 0x43, 0x16, 0x00, 0x6a, 0x07, 0x00, 0x02, 0x3b, + 0x01, 0x1f, 0x06, 0x5d, 0x07, 0x11, 0x0b, 0xad, 0x12, 0x01, 0xff, 0x45, + 0x5c, 0x00, 0xb7, 0x06, 0x00, 0x45, 0x20, 0x07, 0xb8, 0x06, 0x40, 0x57, + 0x44, 0x2d, 0xc7, 0x08, 0x00, 0xf6, 0xb5, 0x06, 0x40, 0x47, 0x3c, 0x1e, + 0xb6, 0x06, 0x00, 0x48, 0x63, 0xa9, 0xa6, 0x08, 0x40, 0x4b, 0xb9, 0x16, + 0xdf, 0xfe, 0x00, 0x4c, 0x60, 0x03, 0xdd, 0xfe, 0x40, 0xa1, 0xb4, 0x01, + 0x44, 0xa1, 0xef, 0xa9, 0x06, 0x80, 0x55, 0x43, 0x26, 0x21, 0x2e, 0x06, + 0x80, 0x31, 0x07, 0x46, 0x00, 0x01, 0xff, 0x42, 0x60, 0x51, 0xc5, 0x06, + 0x80, 0x16, 0x42, 0x2a, 0x4e, 0xc9, 0x06, 0xc0, 0x00, 0x80, 0x01, 0xff, + 0x4a, 0xf5, 0x2c, 0xe3, 0xfb, 0x00, 0x4d, 0x5f, 0x03, 0xe2, 0xfb, 0x40, + 0x80, 0x01, 0xff, 0x4a, 0xf5, 0x2c, 0xe1, 0xfb, 0x00, 0x4d, 0x5f, 0x03, + 0xe0, 0xfb, 0x40, 0x80, 0x01, 0xff, 0x4a, 0xf5, 0x2c, 0xa6, 0xfe, 0x00, + 0xa9, 0x06, 0x4b, 0xf6, 0x6d, 0xa8, 0xfe, 0x40, 0x4b, 0xb9, 0x16, 0xa7, + 0xfe, 0x00, 0x4c, 0x60, 0x03, 0xa5, 0xfe, 0x40, 0x80, 0x01, 0xff, 0x4a, + 0xf5, 0x2c, 0x8f, 0xfb, 0x00, 0xa9, 0x41, 0x4b, 0xf6, 0x6d, 0x91, 0xfb, + 0x00, 0x05, 0x51, 0x00, 0x01, 0xff, 0x49, 0x3a, 0x1e, 0x62, 0x07, 0x00, + 0x47, 0xd2, 0x34, 0xc2, 0x08, 0x00, 0xb4, 0x01, 0xff, 0x0a, 0xae, 0x12, + 0x11, 0x08, 0xf2, 0x0b, 0x01, 0xff, 0x45, 0x5c, 0x00, 0x3b, 0x06, 0x00, + 0x50, 0x4e, 0x2c, 0x8d, 0x08, 0x40, 0x45, 0x5c, 0x00, 0x63, 0x07, 0x00, + 0x45, 0x20, 0x07, 0x3c, 0x06, 0x00, 0x56, 0x3f, 0x36, 0x64, 0x07, 0x40, + 0x4b, 0xb9, 0x16, 0x90, 0xfb, 0x00, 0x4c, 0x60, 0x03, 0x8e, 0xfb, 0x40, + 0xe6, 0x43, 0x06, 0x80, 0x06, 0x4a, 0xff, 0xb0, 0x20, 0x06, 0x40, 0x80, + 0x01, 0xff, 0x4a, 0xf5, 0x2c, 0xda, 0xfe, 0x00, 0xa9, 0x3b, 0x4b, 0xf6, + 0x6d, 0xdc, 0xfe, 0x00, 0x05, 0x51, 0x00, 0x01, 0xff, 0x04, 0x03, 0x0c, + 0x20, 0x44, 0x22, 0x08, 0xab, 0x06, 0x00, 0xb4, 0x01, 0xff, 0x4f, 0x3d, + 0x6e, 0xae, 0x06, 0x00, 0x08, 0xf2, 0x0b, 0x01, 0xff, 0x45, 0x5c, 0x00, + 0x7f, 0x07, 0x00, 0x50, 0x4e, 0x2c, 0xc4, 0x0e, 0x41, 0x45, 0x5c, 0x00, + 0xac, 0x06, 0x00, 0x45, 0x20, 0x07, 0xb4, 0x08, 0x40, 0x4b, 0xb9, 0x16, + 0xdb, 0xfe, 0x00, 0x4c, 0x60, 0x03, 0xd9, 0xfe, 0x40, 0x42, 0xb5, 0x05, + 0x2c, 0x06, 0x80, 0x14, 0xe8, 0x98, 0x06, 0xc0, 0x00, 0x80, 0x01, 0xff, + 0x4a, 0xf5, 0x2c, 0x8b, 0xfb, 0x00, 0x4d, 0x5f, 0x03, 0x8a, 0xfb, 0x40, + 0x80, 0x01, 0xff, 0x4a, 0xf5, 0x2c, 0x9e, 0xfe, 0x00, 0xa9, 0x21, 0x4b, + 0xf6, 0x6d, 0xa0, 0xfe, 0x00, 0x06, 0x29, 0x06, 0x01, 0xff, 0x0a, 0xae, + 0x12, 0x06, 0x4d, 0xf3, 0x0e, 0xa2, 0x08, 0x40, 0x45, 0x5c, 0x00, 0xc5, + 0x08, 0x00, 0x45, 0x20, 0x07, 0xc6, 0x08, 0x40, 0x4b, 0xb9, 0x16, 0x9f, + 0xfe, 0x00, 0x4c, 0x60, 0x03, 0x9d, 0xfe, 0x40, 0xa1, 0xaf, 0x01, 0x42, + 0x4e, 0x00, 0x47, 0x06, 0x80, 0x1c, 0x49, 0x11, 0xba, 0x74, 0x06, 0xc0, + 0x00, 0x80, 0x01, 0xff, 0x44, 0x67, 0x00, 0x75, 0x06, 0x00, 0x43, 0x8a, + 0x8a, 0x76, 0x06, 0x00, 0x43, 0x4d, 0x00, 0x78, 0x06, 0x40, 0x80, 0x01, + 0xff, 0x4b, 0x05, 0x9b, 0xbe, 0x06, 0x80, 0x65, 0x4a, 0xf5, 0x2c, 0xea, + 0xfe, 0x00, 0x44, 0x09, 0xf0, 0xc1, 0x06, 0x80, 0x35, 0xa9, 0x27, 0x4b, + 0xf6, 0x6d, 0xec, 0xfe, 0x00, 0x05, 0x51, 0x00, 0x01, 0xff, 0x4a, 0x10, + 0x3f, 0xff, 0x06, 0x00, 0x49, 0xa0, 0xc1, 0xc0, 0x06, 0xc0, 0x00, 0x80, + 0x01, 0xff, 0x4a, 0xf5, 0x2c, 0xa5, 0xfb, 0x00, 0x4d, 0x5f, 0x03, 0xa4, + 0xfb, 0x40, 0x4b, 0xb9, 0x16, 0xeb, 0xfe, 0x00, 0x4c, 0x60, 0x03, 0xe9, + 0xfe, 0x40, 0x80, 0x01, 0xff, 0x4a, 0xf5, 0x2c, 0xa7, 0xfb, 0x00, 0xa9, + 0x0c, 0x4b, 0xf6, 0x6d, 0xa9, 0xfb, 0x00, 0x50, 0x51, 0x00, 0xc2, 0x06, + 0x40, 0x4b, 0xb9, 0x16, 0xa8, 0xfb, 0x00, 0x4c, 0x60, 0x03, 0xa6, 0xfb, + 0x40, 0x80, 0x01, 0xff, 0x4a, 0xf5, 0x2c, 0xab, 0xfb, 0x00, 0xa9, 0x06, + 0x4b, 0xf6, 0x6d, 0xad, 0xfb, 0x40, 0x4b, 0xb9, 0x16, 0xac, 0xfb, 0x00, + 0x4c, 0x60, 0x03, 0xaa, 0xfb, 0x40, 0xe8, 0x2d, 0x06, 0x80, 0x0d, 0x43, + 0x58, 0x00, 0x21, 0x06, 0xc0, 0x00, 0x4e, 0x5e, 0x03, 0x80, 0xfe, 0x40, + 0x80, 0x01, 0xff, 0x4a, 0xf5, 0x2c, 0xa2, 0xfe, 0x00, 0xa9, 0x59, 0x4b, + 0xf6, 0x6d, 0xa4, 0xfe, 0x00, 0x05, 0x51, 0x00, 0x01, 0xff, 0x66, 0xff, + 0x06, 0x7c, 0x07, 0x00, 0x4b, 0x56, 0x00, 0x81, 0x06, 0x00, 0x56, 0xdf, + 0x34, 0x8a, 0x08, 0x00, 0x18, 0x03, 0x0a, 0x24, 0xb4, 0x01, 0xff, 0x0a, + 0xae, 0x12, 0x11, 0x08, 0xf2, 0x0b, 0x01, 0xff, 0x45, 0x5c, 0x00, 0x57, + 0x07, 0x00, 0x4e, 0x59, 0x7e, 0x82, 0x06, 0x40, 0x45, 0x5c, 0x00, 0x85, + 0x06, 0x00, 0x56, 0x3f, 0x36, 0x58, 0x07, 0x40, 0xa1, 0x06, 0x45, 0x20, + 0x07, 0x6e, 0x07, 0x40, 0x44, 0x5d, 0x00, 0x72, 0x07, 0x00, 0x4b, 0x1c, + 0x0a, 0x6f, 0x07, 0x40, 0x4b, 0xb9, 0x16, 0xa3, 0xfe, 0x00, 0x4c, 0x60, + 0x03, 0xa1, 0xfe, 0x40, 0x42, 0x44, 0x14, 0xaf, 0x06, 0x80, 0x5f, 0x44, + 0x66, 0x9c, 0x3a, 0x06, 0x80, 0x2a, 0x43, 0x12, 0x20, 0xc8, 0x08, 0x00, + 0x43, 0xa0, 0xef, 0xb3, 0x06, 0xc0, 0x00, 0x80, 0x01, 0xff, 0x4a, 0xf5, + 0x2c, 0x97, 0xfb, 0x00, 0xa9, 0x06, 0x4b, 0xf6, 0x6d, 0x99, 0xfb, 0x40, + 0x4b, 0xb9, 0x16, 0x98, 0xfb, 0x00, 0x4c, 0x60, 0x03, 0x96, 0xfb, 0x40, + 0x80, 0x01, 0xff, 0x4a, 0xf5, 0x2c, 0xce, 0xfe, 0x00, 0xa9, 0x17, 0x4b, + 0xf6, 0x6d, 0xd0, 0xfe, 0x00, 0x05, 0x51, 0x00, 0x01, 0xff, 0x49, 0x9f, + 0x12, 0xfc, 0x06, 0x00, 0x50, 0xad, 0x12, 0xc3, 0x08, 0x40, 0x4b, 0xb9, + 0x16, 0xcf, 0xfe, 0x00, 0x4c, 0x60, 0x03, 0xcd, 0xfe, 0x40, 0x80, 0x01, + 0xff, 0x4a, 0xf5, 0x2c, 0x93, 0xfb, 0x00, 0xa9, 0x26, 0x4b, 0xf6, 0x6d, + 0x95, 0xfb, 0x00, 0x05, 0x51, 0x00, 0x01, 0xff, 0x4f, 0xe2, 0x6e, 0xb0, + 0x08, 0x00, 0x44, 0x22, 0x08, 0xb0, 0x06, 0x00, 0xb4, 0x01, 0xff, 0x4f, + 0xae, 0x12, 0xb4, 0x06, 0x00, 0x4d, 0x06, 0x0f, 0xb2, 0x06, 0x40, 0x4b, + 0xb9, 0x16, 0x94, 0xfb, 0x00, 0x4c, 0x60, 0x03, 0x92, 0xfb, 0x40, 0x48, + 0x90, 0xc3, 0xcc, 0x06, 0x80, 0x59, 0x42, 0x4e, 0x00, 0x41, 0x06, 0xc0, + 0x00, 0x80, 0x01, 0xff, 0x4a, 0xf5, 0x2c, 0xd2, 0xfe, 0x00, 0xa9, 0x3b, + 0x4b, 0xf6, 0x6d, 0xd4, 0xfe, 0x00, 0x05, 0x51, 0x00, 0x01, 0xff, 0x04, + 0x03, 0x0c, 0x19, 0xb4, 0x01, 0xff, 0x0a, 0xae, 0x12, 0x06, 0x4d, 0x06, + 0x0f, 0x60, 0x07, 0x40, 0x45, 0x20, 0x07, 0xa5, 0x06, 0x00, 0x56, 0x3f, + 0x36, 0x61, 0x07, 0x40, 0x45, 0x20, 0x07, 0xa3, 0x06, 0x80, 0x06, 0x4b, + 0xb4, 0x9f, 0xa2, 0x06, 0x40, 0x55, 0xa8, 0x12, 0xa4, 0x08, 0x40, 0x4b, + 0xb9, 0x16, 0xd3, 0xfe, 0x00, 0x4c, 0x60, 0x03, 0xd1, 0xfe, 0x40, 0x80, + 0x01, 0xff, 0x4a, 0xf5, 0x2c, 0xfd, 0xfb, 0x00, 0xa9, 0x39, 0x4b, 0xf6, + 0x6d, 0xff, 0xfb, 0x00, 0x05, 0x51, 0x00, 0x01, 0xff, 0x1c, 0xd9, 0x06, + 0x15, 0x4a, 0x10, 0x3f, 0x3d, 0x06, 0x00, 0xb4, 0x01, 0xff, 0x4f, 0xae, + 0x12, 0x3f, 0x06, 0x00, 0x4d, 0xf3, 0x0e, 0x3e, 0x06, 0x40, 0x4a, 0x1b, + 0x07, 0x77, 0x07, 0x00, 0xb4, 0x01, 0xff, 0x4a, 0x4b, 0xab, 0x76, 0x07, + 0x00, 0x48, 0x80, 0xcc, 0x75, 0x07, 0x40, 0x4b, 0xb9, 0x16, 0xfe, 0xfb, + 0x00, 0x4c, 0x60, 0x03, 0xfc, 0xfb, 0x40, 0x80, 0x01, 0xff, 0x4a, 0xf5, + 0x2c, 0xe5, 0xfb, 0x00, 0xa9, 0x06, 0x4b, 0xf6, 0x6d, 0xe7, 0xfb, 0x40, + 0x4b, 0xb9, 0x16, 0xe6, 0xfb, 0x00, 0x4c, 0x60, 0x03, 0xe4, 0xfb, 0x40, + 0xa1, 0x7e, 0x02, 0xf0, 0x10, 0x50, 0x07, 0x91, 0x41, 0x3a, 0x42, 0x1f, + 0x01, 0x8e, 0x06, 0x80, 0x24, 0x43, 0x4d, 0x00, 0x84, 0x06, 0xc0, 0x00, + 0x80, 0x01, 0xff, 0x4a, 0xf5, 0x2c, 0x73, 0xfb, 0x00, 0xa9, 0x06, 0x4b, + 0xf6, 0x6d, 0x75, 0xfb, 0x40, 0x4b, 0xb9, 0x16, 0x74, 0xfb, 0x00, 0x4c, + 0x60, 0x03, 0x72, 0xfb, 0x40, 0x80, 0x01, 0xff, 0x4a, 0xf5, 0x2c, 0x87, + 0xfb, 0x00, 0x4d, 0x5f, 0x03, 0x86, 0xfb, 0x40, 0x43, 0xa3, 0x8c, 0x6e, + 0x06, 0x00, 0x43, 0xd6, 0xb8, 0xa1, 0x06, 0x00, 0x43, 0x43, 0x14, 0x6f, + 0x06, 0x40, 0x43, 0x22, 0x00, 0x8d, 0x06, 0x80, 0x14, 0xec, 0x88, 0x06, + 0xc0, 0x00, 0x80, 0x01, 0xff, 0x4a, 0xf5, 0x2c, 0x89, 0xfb, 0x00, 0x4d, + 0x5f, 0x03, 0x88, 0xfb, 0x40, 0x80, 0x01, 0xff, 0x4a, 0xf5, 0x2c, 0x83, + 0xfb, 0x00, 0x4d, 0x5f, 0x03, 0x82, 0xfb, 0x40, 0xe4, 0x36, 0x06, 0x80, + 0x76, 0x43, 0x22, 0x00, 0x8c, 0x06, 0x80, 0x60, 0xec, 0x2f, 0x06, 0xc0, + 0x00, 0x80, 0x01, 0xff, 0x4a, 0xf5, 0x2c, 0xaa, 0xfe, 0x00, 0x4d, 0x5f, + 0x03, 0xa9, 0xfe, 0x00, 0x05, 0x51, 0x00, 0x01, 0xff, 0x49, 0x9f, 0x12, + 0x8a, 0x06, 0x80, 0x3a, 0x4f, 0xd1, 0x46, 0x90, 0x06, 0x00, 0x09, 0x5e, + 0x23, 0x26, 0x44, 0x22, 0x08, 0x89, 0x06, 0x00, 0xb4, 0x01, 0xff, 0x0a, + 0xae, 0x12, 0x0d, 0x58, 0x46, 0x2c, 0xc2, 0x0e, 0xc1, 0x00, 0x4e, 0x53, + 0x75, 0x59, 0x07, 0x40, 0x4f, 0x45, 0x22, 0x8f, 0x06, 0x00, 0x45, 0x20, + 0x07, 0xae, 0x08, 0x40, 0x4d, 0xe8, 0x34, 0x5a, 0x07, 0x00, 0xf6, 0xee, + 0x06, 0x40, 0x4e, 0x53, 0x75, 0x8b, 0x06, 0x40, 0x80, 0x01, 0xff, 0x4a, + 0xf5, 0x2c, 0x85, 0xfb, 0x00, 0x4d, 0x5f, 0x03, 0x84, 0xfb, 0x40, 0x80, + 0x01, 0xff, 0x4a, 0xf5, 0x2c, 0xbe, 0xfe, 0x00, 0xa9, 0x0c, 0x4b, 0xf6, + 0x6d, 0xc0, 0xfe, 0x00, 0x4e, 0xad, 0x7e, 0xfb, 0x06, 0x40, 0x4b, 0xb9, + 0x16, 0xbf, 0xfe, 0x00, 0x4c, 0x60, 0x03, 0xbd, 0xfe, 0x40, 0x42, 0x4e, + 0x00, 0x7b, 0x06, 0x80, 0x91, 0x01, 0xe8, 0x28, 0x06, 0xc0, 0x00, 0x80, + 0x24, 0x42, 0x4e, 0x00, 0x80, 0x06, 0xc0, 0x00, 0x80, 0x01, 0xff, 0x4a, + 0xf5, 0x2c, 0x5b, 0xfb, 0x00, 0xa9, 0x06, 0x4b, 0xf6, 0x6d, 0x5d, 0xfb, + 0x40, 0x4b, 0xb9, 0x16, 0x5c, 0xfb, 0x00, 0x4c, 0x60, 0x03, 0x5a, 0xfb, + 0x40, 0x4a, 0xf5, 0x2c, 0x90, 0xfe, 0x00, 0xa9, 0x52, 0x4b, 0xf6, 0x6d, + 0x92, 0xfe, 0x00, 0x05, 0x51, 0x00, 0x01, 0xff, 0x5e, 0x9f, 0x12, 0x51, + 0x07, 0x00, 0x4b, 0x56, 0x00, 0xa1, 0x08, 0x00, 0x56, 0xdf, 0x34, 0x55, + 0x07, 0x00, 0x06, 0x5d, 0x07, 0x20, 0xb4, 0x01, 0xff, 0x0a, 0xae, 0x12, + 0x06, 0x5b, 0x28, 0x1e, 0x54, 0x07, 0x40, 0x52, 0x5d, 0x52, 0x50, 0x07, + 0x00, 0x56, 0x3f, 0x36, 0x52, 0x07, 0xc0, 0x00, 0x53, 0x60, 0x26, 0x53, + 0x07, 0x40, 0x4a, 0xcb, 0xad, 0xb6, 0x08, 0x00, 0xf6, 0x56, 0x07, 0xc0, + 0x00, 0x46, 0x1f, 0x07, 0xa0, 0x08, 0x40, 0x4b, 0xb9, 0x16, 0x91, 0xfe, + 0x00, 0x4c, 0x60, 0x03, 0x8f, 0xfe, 0x40, 0x80, 0x01, 0xff, 0x4a, 0xf5, + 0x2c, 0x53, 0xfb, 0x00, 0xa9, 0x06, 0x4b, 0xf6, 0x6d, 0x55, 0xfb, 0x40, + 0x4b, 0xb9, 0x16, 0x54, 0xfb, 0x00, 0x4c, 0x60, 0x03, 0x52, 0xfb, 0x40, + 0xe5, 0xd5, 0x06, 0x00, 0x07, 0x48, 0xc6, 0x9c, 0x03, 0x42, 0x9e, 0x01, + 0x39, 0x06, 0x80, 0xcb, 0x02, 0x43, 0x68, 0x00, 0x27, 0x06, 0xc0, 0x00, + 0x80, 0x01, 0xff, 0x4a, 0xf5, 0x2c, 0x8e, 0xfe, 0x00, 0x4d, 0x5f, 0x03, + 0x8d, 0xfe, 0x00, 0x47, 0x6c, 0x00, 0x49, 0x06, 0x80, 0x9e, 0x02, 0xb7, + 0x01, 0xff, 0x44, 0xf3, 0xa4, 0x71, 0x06, 0x80, 0x84, 0x02, 0x04, 0x52, + 0x00, 0x01, 0xff, 0x09, 0x69, 0xb6, 0x8b, 0x01, 0x49, 0x3a, 0x1e, 0x7a, + 0x08, 0x00, 0x1d, 0xdc, 0x15, 0x75, 0x06, 0x56, 0x00, 0x45, 0x52, 0x59, + 0x53, 0x73, 0x08, 0x00, 0x4b, 0xb3, 0x91, 0x22, 0x06, 0x80, 0x29, 0x53, + 0x9c, 0x4c, 0x72, 0x08, 0x80, 0x11, 0x0b, 0xa6, 0x68, 0x01, 0xff, 0x45, + 0x5c, 0x00, 0x72, 0x06, 0x00, 0x45, 0x20, 0x07, 0x73, 0x06, 0x40, 0x05, + 0x19, 0x00, 0x01, 0xff, 0x49, 0x3a, 0x1e, 0x7c, 0x08, 0x00, 0x49, 0x55, + 0xbb, 0x7f, 0x08, 0x40, 0x80, 0x01, 0xff, 0x4a, 0xf5, 0x2c, 0x82, 0xfe, + 0x00, 0x4d, 0x5f, 0x03, 0x81, 0xfe, 0x40, 0x45, 0x5c, 0x00, 0x23, 0x06, + 0x80, 0x16, 0x45, 0x20, 0x07, 0x25, 0x06, 0xc0, 0x00, 0x80, 0x01, 0xff, + 0x4a, 0xf5, 0x2c, 0x88, 0xfe, 0x00, 0x4d, 0x5f, 0x03, 0x87, 0xfe, 0x40, + 0x80, 0x01, 0xff, 0x4a, 0xf5, 0x2c, 0x84, 0xfe, 0x00, 0x4d, 0x5f, 0x03, + 0x83, 0xfe, 0x40, 0x4a, 0x4b, 0xab, 0x74, 0x07, 0x00, 0x48, 0x80, 0xcc, + 0x73, 0x07, 0x40, 0x52, 0x9b, 0x50, 0x75, 0x08, 0x80, 0x57, 0x45, 0xe7, + 0x73, 0x70, 0x08, 0x00, 0x45, 0xa8, 0x50, 0x74, 0x08, 0x00, 0x05, 0xc3, + 0x00, 0x3b, 0xb2, 0x18, 0x4f, 0xdd, 0x73, 0x71, 0x08, 0xc0, 0x00, 0x05, + 0x19, 0x00, 0x01, 0xff, 0x49, 0x3a, 0x1e, 0x7b, 0x08, 0x00, 0x49, 0x55, + 0xbb, 0x7e, 0x08, 0x40, 0x05, 0xc9, 0x00, 0x11, 0x09, 0x92, 0xb0, 0x01, + 0xff, 0x45, 0x5c, 0x00, 0x76, 0x08, 0x00, 0x45, 0x20, 0x07, 0x79, 0x08, + 0x40, 0x45, 0x56, 0x00, 0x81, 0x08, 0x00, 0x49, 0x5b, 0x58, 0x77, 0x08, + 0x40, 0x45, 0x56, 0x00, 0x82, 0x08, 0x00, 0x49, 0x5b, 0x58, 0x78, 0x08, + 0x40, 0x05, 0x19, 0x00, 0x01, 0xff, 0x49, 0x3a, 0x1e, 0x7d, 0x08, 0x00, + 0x49, 0x55, 0xbb, 0x80, 0x08, 0x40, 0x80, 0x01, 0xff, 0x4a, 0xf5, 0x2c, + 0x51, 0xfb, 0x00, 0x4d, 0x5f, 0x03, 0x50, 0xfb, 0x40, 0x80, 0x01, 0xff, + 0x4a, 0xf5, 0x2c, 0xf0, 0xfe, 0x00, 0x4d, 0x5f, 0x03, 0xef, 0xfe, 0x40, + 0x80, 0x01, 0xff, 0x4a, 0xf5, 0x2c, 0xca, 0xfe, 0x00, 0xa9, 0x32, 0x4b, + 0xf6, 0x6d, 0xcc, 0xfe, 0x00, 0x06, 0x29, 0x06, 0x01, 0xff, 0x0a, 0xae, + 0x12, 0x11, 0x08, 0xf2, 0x0b, 0x01, 0xff, 0x45, 0x5c, 0x00, 0x5d, 0x07, + 0x00, 0x50, 0x36, 0x2c, 0x5f, 0x07, 0x40, 0x45, 0x5c, 0x00, 0xa0, 0x06, + 0x00, 0x45, 0x20, 0x07, 0xb3, 0x08, 0x00, 0x58, 0xae, 0x2a, 0x5e, 0x07, + 0x40, 0x4b, 0xb9, 0x16, 0xcb, 0xfe, 0x00, 0x4c, 0x60, 0x03, 0xc9, 0xfe, + 0x40, 0x43, 0xd6, 0xb8, 0xbb, 0x08, 0x00, 0x44, 0xf9, 0x45, 0xbd, 0x08, + 0x00, 0x43, 0x43, 0x14, 0xbc, 0x08, 0xc0, 0x00, 0x56, 0xa3, 0x32, 0xc4, + 0x08, 0x40, 0x45, 0x5c, 0x00, 0xf7, 0x08, 0x00, 0x45, 0x20, 0x07, 0xf9, + 0x08, 0x40, 0x4c, 0xc5, 0x2c, 0xd1, 0x08, 0x00, 0x0a, 0x91, 0xb0, 0x01, + 0xff, 0x45, 0x5c, 0x00, 0xce, 0x08, 0x00, 0x45, 0x20, 0x07, 0xcf, 0x08, + 0x00, 0x53, 0x88, 0x4a, 0xd2, 0x08, 0x40, 0x80, 0x0d, 0x43, 0xf9, 0x0a, + 0x4d, 0x06, 0xc0, 0x00, 0x4e, 0x5e, 0x03, 0x74, 0xfe, 0x40, 0x4d, 0x5f, + 0x03, 0x7a, 0xfe, 0x00, 0x4b, 0xf6, 0x6d, 0x7b, 0xfe, 0x00, 0x4e, 0xad, + 0x7e, 0xf6, 0x08, 0x40, 0x53, 0x0d, 0x4b, 0x9f, 0x08, 0x00, 0x04, 0x58, + 0x00, 0x01, 0xff, 0x45, 0x5c, 0x00, 0x54, 0x06, 0x00, 0x45, 0x20, 0x07, + 0x55, 0x06, 0x40, 0x44, 0x74, 0x0f, 0x4e, 0x06, 0x80, 0x12, 0x50, 0x46, + 0x64, 0x6d, 0x06, 0x00, 0x4e, 0x5b, 0x7a, 0x02, 0x06, 0x00, 0x48, 0x82, + 0x16, 0xd4, 0x06, 0x40, 0x80, 0x0d, 0x43, 0xf9, 0x0a, 0x4b, 0x06, 0xc0, + 0x00, 0x4e, 0x5e, 0x03, 0x70, 0xfe, 0x40, 0x4d, 0x5f, 0x03, 0x76, 0xfe, + 0x00, 0x4b, 0xf6, 0x6d, 0x77, 0xfe, 0x00, 0x05, 0x51, 0x00, 0x01, 0xff, + 0x49, 0x3a, 0x1e, 0xf5, 0x08, 0x00, 0x44, 0x22, 0x08, 0xf4, 0x08, 0x00, + 0x48, 0x1f, 0x0a, 0x5e, 0x06, 0x40, 0x0c, 0x37, 0x92, 0x11, 0x06, 0x41, + 0x05, 0x01, 0xff, 0x44, 0xaa, 0x4a, 0xdd, 0x06, 0x00, 0x49, 0xbd, 0x62, + 0x1d, 0x06, 0x40, 0x49, 0x48, 0x0b, 0xeb, 0x06, 0x00, 0x48, 0xf8, 0xc7, + 0xea, 0x06, 0x40, 0xa1, 0x2c, 0x50, 0x86, 0x62, 0x6b, 0x06, 0x00, 0x53, + 0x9b, 0x4a, 0xe2, 0x08, 0x00, 0x05, 0x3c, 0x01, 0x01, 0xff, 0x80, 0x06, + 0x47, 0x28, 0xd0, 0x9e, 0x08, 0x40, 0x55, 0xd0, 0x3d, 0xfb, 0x08, 0x80, + 0x06, 0x52, 0x6b, 0x31, 0xfa, 0x0e, 0x41, 0x49, 0x75, 0x3b, 0xfc, 0x08, + 0x40, 0x43, 0x15, 0x05, 0x4f, 0x06, 0x80, 0x06, 0x4c, 0xa3, 0x95, 0x0d, + 0x06, 0x40, 0x80, 0x0d, 0x43, 0xf9, 0x0a, 0x4c, 0x06, 0xc0, 0x00, 0x4e, + 0x5e, 0x03, 0x72, 0xfe, 0x40, 0x4d, 0x5f, 0x03, 0x78, 0xfe, 0x00, 0x4b, + 0xf6, 0x6d, 0x79, 0xfe, 0x00, 0x48, 0x76, 0x3b, 0xfe, 0x08, 0x40, 0x02, + 0x14, 0x05, 0x2c, 0x05, 0x73, 0x0b, 0x01, 0xff, 0x45, 0xec, 0x5e, 0xe5, + 0x08, 0x80, 0x1a, 0x45, 0xe7, 0x73, 0xe4, 0x08, 0x80, 0x0d, 0x45, 0xa8, + 0x50, 0xe6, 0x08, 0xc0, 0x00, 0x43, 0xf9, 0x0a, 0xe9, 0x08, 0x40, 0x43, + 0xf9, 0x0a, 0xe7, 0x08, 0x40, 0x43, 0xf9, 0x0a, 0xe8, 0x08, 0x40, 0x53, + 0x9a, 0x48, 0xfc, 0x0e, 0x01, 0x42, 0x6c, 0x00, 0x0c, 0x06, 0x40, 0x51, + 0x53, 0x58, 0x87, 0x08, 0x00, 0x54, 0x0c, 0x43, 0xd0, 0x0e, 0x41, 0x14, + 0xe8, 0x43, 0x4d, 0xaf, 0x3f, 0xb0, 0x01, 0xff, 0xac, 0x2e, 0x02, 0xd0, + 0x00, 0x01, 0xff, 0x4f, 0x5f, 0x6a, 0x50, 0x22, 0x00, 0x09, 0xe2, 0x0c, + 0x01, 0xff, 0x59, 0x6c, 0x23, 0x46, 0x22, 0x00, 0x06, 0x7b, 0x00, 0x01, + 0xff, 0x4b, 0xf3, 0x28, 0x70, 0x2a, 0x00, 0x42, 0x1e, 0x00, 0x45, 0x22, + 0xc0, 0x00, 0x50, 0x46, 0x60, 0x52, 0x22, 0x40, 0x48, 0x42, 0x19, 0xbd, + 0xce, 0x01, 0x57, 0xe2, 0x2e, 0x9f, 0x00, 0x40, 0x44, 0x86, 0x44, 0xe4, + 0x2b, 0x00, 0x47, 0x64, 0x36, 0x27, 0x00, 0x40, 0x45, 0x3e, 0xe4, 0x7a, + 0x23, 0x80, 0x81, 0x04, 0x4d, 0xfe, 0x80, 0x40, 0x23, 0x00, 0xa3, 0xc6, + 0x03, 0xa4, 0xea, 0x02, 0x50, 0xe6, 0x62, 0x77, 0x23, 0x00, 0x56, 0x19, + 0x34, 0x69, 0x23, 0x00, 0xa9, 0xc8, 0x02, 0x04, 0xb5, 0xf0, 0xb7, 0x02, + 0x04, 0xc3, 0x00, 0xa6, 0x02, 0x45, 0x38, 0xaf, 0x75, 0x23, 0x80, 0x98, + 0x02, 0x02, 0x7c, 0x00, 0x6c, 0xb2, 0x5e, 0xb3, 0x3b, 0x4f, 0xbf, 0x73, + 0x68, 0x23, 0x00, 0x02, 0x50, 0x02, 0x06, 0x45, 0xae, 0xec, 0x6c, 0x23, + 0x40, 0x80, 0x06, 0x4a, 0x67, 0x78, 0x4f, 0x23, 0x40, 0x4b, 0xe7, 0x99, + 0x72, 0x23, 0x00, 0x48, 0xd8, 0xca, 0x5d, 0x23, 0x00, 0x05, 0x49, 0xd8, + 0x01, 0xff, 0x49, 0xb7, 0x23, 0x61, 0x23, 0x00, 0x43, 0xdd, 0xca, 0x55, + 0x23, 0x00, 0x47, 0xe6, 0x7f, 0x51, 0x23, 0x40, 0x51, 0xda, 0x59, 0x6e, + 0x23, 0x00, 0x48, 0x03, 0x81, 0x3f, 0x23, 0x00, 0x4a, 0xd3, 0xaf, 0x37, + 0x23, 0x00, 0xb4, 0x01, 0xff, 0x4c, 0x5b, 0x8c, 0x63, 0x23, 0x00, 0x49, + 0x3e, 0xba, 0x6d, 0x23, 0x40, 0x42, 0x0b, 0x00, 0x74, 0x23, 0x00, 0x4e, + 0x63, 0x78, 0x46, 0x23, 0x40, 0x42, 0xe8, 0x01, 0x95, 0x23, 0x80, 0x11, + 0x04, 0xb8, 0x54, 0x01, 0xff, 0x44, 0x79, 0x0d, 0x5e, 0x23, 0x00, 0x48, + 0xe3, 0x59, 0x58, 0x23, 0x40, 0x80, 0x01, 0xff, 0x49, 0x44, 0x0e, 0x42, 0x23, 0x00, 0xa3, 0x79, 0xa4, 0x4b, 0x45, 0x7b, 0x00, 0x38, 0x23, 0x00, - 0x4c, 0x87, 0x00, 0x44, 0x23, 0x00, 0x43, 0x2f, 0xc8, 0x3b, 0x23, 0x00, - 0x02, 0x68, 0x00, 0x29, 0x49, 0x79, 0x2a, 0x6f, 0x23, 0x00, 0x48, 0xd6, - 0x33, 0x70, 0x23, 0x00, 0x50, 0xb3, 0x02, 0x48, 0x23, 0x00, 0x45, 0xf9, - 0x0d, 0x41, 0x23, 0x00, 0x02, 0x50, 0x02, 0x01, 0xff, 0x46, 0xf6, 0x7b, - 0x53, 0x23, 0x00, 0x4b, 0xb8, 0x02, 0x50, 0x23, 0x40, 0x4d, 0x39, 0x07, + 0x4c, 0x87, 0x00, 0x44, 0x23, 0x00, 0x43, 0xdd, 0xca, 0x3b, 0x23, 0x00, + 0x02, 0x68, 0x00, 0x29, 0x49, 0x02, 0x2b, 0x6f, 0x23, 0x00, 0x48, 0xa6, + 0x34, 0x70, 0x23, 0x00, 0x50, 0xb3, 0x02, 0x48, 0x23, 0x00, 0x45, 0x48, + 0x0e, 0x41, 0x23, 0x00, 0x02, 0x50, 0x02, 0x01, 0xff, 0x46, 0x65, 0x7d, + 0x53, 0x23, 0x00, 0x4b, 0xb8, 0x02, 0x50, 0x23, 0x40, 0x4d, 0x4f, 0x1a, 0x47, 0x23, 0x00, 0x47, 0xee, 0x00, 0x43, 0x23, 0x40, 0x42, 0xd8, 0x00, 0x54, 0x23, 0x80, 0x1f, 0xa9, 0x11, 0x03, 0xa6, 0x01, 0x01, 0xff, 0x46, - 0xf6, 0x7b, 0x4c, 0x23, 0x00, 0x4b, 0xb8, 0x02, 0x57, 0x23, 0x40, 0x45, - 0x8a, 0x43, 0x3a, 0x23, 0x00, 0x44, 0x02, 0x00, 0x39, 0x23, 0x40, 0x42, - 0x12, 0x00, 0x4d, 0x23, 0x40, 0x45, 0xe8, 0x02, 0x3c, 0x23, 0x00, 0x44, - 0x02, 0x12, 0x60, 0x23, 0x40, 0x49, 0x77, 0x58, 0x79, 0x23, 0x40, 0x4b, - 0xd2, 0x95, 0x67, 0x23, 0x00, 0x4a, 0xf8, 0x76, 0x45, 0x23, 0x40, 0x49, - 0x2f, 0x23, 0x64, 0x23, 0x00, 0x48, 0x78, 0x58, 0x5b, 0x23, 0x40, 0x45, - 0xe0, 0xde, 0x36, 0x23, 0x00, 0x43, 0xf0, 0x04, 0x73, 0x23, 0xc0, 0x00, - 0x49, 0x77, 0x58, 0x78, 0x23, 0x40, 0x02, 0xd8, 0x00, 0x30, 0x4f, 0xa3, - 0x6c, 0x5a, 0x23, 0x00, 0x03, 0xa6, 0x01, 0x01, 0xff, 0x80, 0x06, 0x4a, - 0xf8, 0x76, 0x56, 0x23, 0x40, 0x4b, 0xd7, 0x97, 0x71, 0x23, 0x00, 0x4a, - 0xd3, 0x95, 0x66, 0x23, 0x00, 0x05, 0xde, 0x95, 0x01, 0xff, 0x43, 0x2f, - 0xc8, 0x4e, 0x23, 0x00, 0x48, 0x78, 0x58, 0x4a, 0x23, 0x40, 0x80, 0x11, - 0x03, 0x4c, 0x22, 0x01, 0xff, 0x45, 0x60, 0x01, 0x4b, 0x23, 0x00, 0x48, - 0x78, 0x58, 0x59, 0x23, 0x40, 0x49, 0x2f, 0x23, 0x62, 0x23, 0x00, 0x45, - 0x60, 0x01, 0x52, 0x23, 0x00, 0x45, 0xad, 0x22, 0x6b, 0x23, 0x40, 0x06, - 0xd1, 0x04, 0x06, 0x48, 0x9a, 0xc6, 0x6a, 0x23, 0x40, 0x49, 0xf5, 0x0d, - 0x49, 0x23, 0x00, 0x49, 0x2f, 0x23, 0x65, 0x23, 0x00, 0x43, 0x2f, 0xc8, - 0x3e, 0x23, 0x00, 0x02, 0x60, 0x01, 0x06, 0x48, 0x78, 0x58, 0x5c, 0x23, + 0x65, 0x7d, 0x4c, 0x23, 0x00, 0x4b, 0xb8, 0x02, 0x57, 0x23, 0x40, 0x45, + 0x97, 0x44, 0x3a, 0x23, 0x00, 0x44, 0x02, 0x00, 0x39, 0x23, 0x40, 0x42, + 0x12, 0x00, 0x4d, 0x23, 0x40, 0x45, 0x13, 0x03, 0x3c, 0x23, 0x00, 0x44, + 0x51, 0x12, 0x60, 0x23, 0x40, 0x49, 0xe2, 0x59, 0x79, 0x23, 0x40, 0x4b, + 0xcc, 0x97, 0x67, 0x23, 0x00, 0x4a, 0x67, 0x78, 0x45, 0x23, 0x40, 0x49, + 0xb7, 0x23, 0x64, 0x23, 0x00, 0x48, 0xe3, 0x59, 0x5b, 0x23, 0x40, 0x45, + 0xf0, 0xe1, 0x36, 0x23, 0x00, 0x43, 0x1b, 0x05, 0x73, 0x23, 0xc0, 0x00, + 0x49, 0xe2, 0x59, 0x78, 0x23, 0x40, 0x02, 0xd8, 0x00, 0x30, 0x4f, 0x5b, + 0x6e, 0x5a, 0x23, 0x00, 0x03, 0xa6, 0x01, 0x01, 0xff, 0x80, 0x06, 0x4a, + 0x67, 0x78, 0x56, 0x23, 0x40, 0x4b, 0xe7, 0x99, 0x71, 0x23, 0x00, 0x4a, + 0xcd, 0x97, 0x66, 0x23, 0x00, 0x05, 0x49, 0xd8, 0x01, 0xff, 0x43, 0xdd, + 0xca, 0x4e, 0x23, 0x00, 0x48, 0xe3, 0x59, 0x4a, 0x23, 0x40, 0x80, 0x11, + 0x03, 0xd4, 0x22, 0x01, 0xff, 0x45, 0x60, 0x01, 0x4b, 0x23, 0x00, 0x48, + 0xe3, 0x59, 0x59, 0x23, 0x40, 0x49, 0xb7, 0x23, 0x62, 0x23, 0x00, 0x45, + 0x60, 0x01, 0x52, 0x23, 0x00, 0x45, 0x35, 0x23, 0x6b, 0x23, 0x40, 0x06, + 0xfc, 0x04, 0x06, 0x48, 0x38, 0xc9, 0x6a, 0x23, 0x40, 0x49, 0x44, 0x0e, + 0x49, 0x23, 0x00, 0x49, 0xb7, 0x23, 0x65, 0x23, 0x00, 0x43, 0xdd, 0xca, + 0x3e, 0x23, 0x00, 0x02, 0x60, 0x01, 0x06, 0x48, 0xe3, 0x59, 0x5c, 0x23, 0x40, 0x42, 0x17, 0x00, 0x5f, 0x23, 0x00, 0x43, 0x62, 0x01, 0x3d, 0x23, - 0x40, 0x49, 0x77, 0x58, 0x76, 0x23, 0x40, 0x03, 0xee, 0x15, 0xad, 0x01, - 0x44, 0xcc, 0xd6, 0x93, 0x26, 0x00, 0x4a, 0xdf, 0xa6, 0xd1, 0x27, 0x00, - 0xa7, 0x6f, 0x42, 0x11, 0x0c, 0x25, 0x26, 0x00, 0xf4, 0x1c, 0xf4, 0xc1, - 0x00, 0x44, 0x6e, 0xbf, 0x08, 0xcc, 0x81, 0x57, 0x0b, 0x15, 0x10, 0x01, - 0xff, 0xa3, 0x44, 0x68, 0xb5, 0x04, 0x04, 0xf5, 0x01, 0x53, 0x5b, 0x48, - 0xf2, 0x27, 0x00, 0x4b, 0x8d, 0x8e, 0x11, 0x2a, 0x00, 0x51, 0xcb, 0x04, - 0xba, 0x21, 0x00, 0xb4, 0x01, 0xff, 0x53, 0x82, 0x4a, 0xb6, 0x21, 0x00, - 0x0f, 0x02, 0x02, 0x01, 0xff, 0x55, 0xe6, 0x38, 0x8d, 0x2b, 0x00, 0x53, - 0xb1, 0x49, 0x8e, 0x2b, 0x00, 0x51, 0xcb, 0x04, 0x6f, 0x2b, 0x00, 0x54, - 0x57, 0x44, 0x8c, 0x2b, 0x00, 0x52, 0x86, 0x54, 0x8f, 0x2b, 0x40, 0x52, - 0x34, 0x52, 0x40, 0x29, 0x00, 0x4f, 0xbe, 0x6f, 0x33, 0x22, 0x40, 0x4a, - 0x05, 0xa4, 0xf6, 0xf4, 0x41, 0x49, 0x5c, 0x29, 0xa2, 0xf4, 0x01, 0x42, - 0x68, 0x00, 0x20, 0x22, 0x80, 0x12, 0x47, 0xb1, 0xd2, 0x20, 0xf6, 0x01, - 0x4a, 0x1d, 0xaf, 0x2b, 0x21, 0x00, 0x4b, 0xfb, 0xa1, 0x27, 0xf6, 0x41, - 0x06, 0x50, 0x00, 0x01, 0xff, 0x48, 0xae, 0x53, 0x9e, 0x29, 0x00, 0x48, - 0x78, 0x58, 0xa4, 0x29, 0x40, 0x11, 0x6d, 0x5a, 0x06, 0x4b, 0x57, 0x9d, + 0x40, 0x49, 0xe2, 0x59, 0x76, 0x23, 0x40, 0x03, 0x5a, 0x16, 0xad, 0x01, + 0x44, 0xb2, 0xd9, 0x93, 0x26, 0x00, 0x4a, 0x1b, 0xa9, 0xd1, 0x27, 0x00, + 0xa7, 0x6f, 0x42, 0x60, 0x0c, 0x25, 0x26, 0x00, 0xf4, 0x1c, 0xf4, 0xc1, + 0x00, 0x44, 0xec, 0xc1, 0x08, 0xcc, 0x81, 0x57, 0x0b, 0x64, 0x10, 0x01, + 0xff, 0xa3, 0x44, 0x68, 0xe0, 0x04, 0x04, 0xf5, 0x01, 0x53, 0xa4, 0x49, + 0xf2, 0x27, 0x00, 0x4b, 0x3f, 0x90, 0x11, 0x2a, 0x00, 0x51, 0xf6, 0x04, + 0xba, 0x21, 0x00, 0xb4, 0x01, 0xff, 0x53, 0xcb, 0x4b, 0xb6, 0x21, 0x00, + 0x0f, 0x02, 0x02, 0x01, 0xff, 0x55, 0xb6, 0x39, 0x8d, 0x2b, 0x00, 0x53, + 0xfa, 0x4a, 0x8e, 0x2b, 0x00, 0x51, 0xf6, 0x04, 0x6f, 0x2b, 0x00, 0x54, + 0x78, 0x45, 0x8c, 0x2b, 0x00, 0x52, 0xcf, 0x55, 0x8f, 0x2b, 0x40, 0x52, + 0x7d, 0x53, 0x40, 0x29, 0x00, 0x4f, 0x58, 0x71, 0x33, 0x22, 0x40, 0x4a, + 0x41, 0xa6, 0xf6, 0xf4, 0x41, 0x49, 0xe5, 0x29, 0xa2, 0xf4, 0x01, 0x42, + 0x68, 0x00, 0x20, 0x22, 0x80, 0x12, 0x47, 0x84, 0xd5, 0x20, 0xf6, 0x01, + 0x4a, 0x6d, 0xb1, 0x2b, 0x21, 0x00, 0x4b, 0x37, 0xa4, 0x27, 0xf6, 0x41, + 0x06, 0x50, 0x00, 0x01, 0xff, 0x48, 0xf7, 0x54, 0x9e, 0x29, 0x00, 0x48, + 0xe3, 0x59, 0xa4, 0x29, 0x40, 0x11, 0xd8, 0x5b, 0x06, 0x4b, 0x7d, 0x9f, 0xc0, 0xfa, 0x41, 0x90, 0x92, 0x10, 0x91, 0x9a, 0x0c, 0x92, 0xb5, 0x08, 0x93, 0xbd, 0x04, 0x94, 0x83, 0x01, 0x95, 0x01, 0xff, 0x90, 0x5a, 0x91, - 0x30, 0x92, 0x06, 0x42, 0x57, 0xf0, 0x46, 0x46, 0x41, 0xd0, 0x3c, 0x46, + 0x30, 0x92, 0x06, 0x42, 0xaa, 0xf3, 0x46, 0x46, 0x41, 0xd0, 0x3c, 0x46, 0x01, 0xd1, 0x3d, 0x46, 0x01, 0xd2, 0x3e, 0x46, 0x01, 0xd3, 0x3f, 0x46, 0x01, 0xd4, 0x40, 0x46, 0x01, 0xd5, 0x41, 0x46, 0x01, 0xd6, 0x42, 0x46, 0x01, 0xd7, 0x43, 0x46, 0x01, 0xd8, 0x44, 0x46, 0x01, 0xd9, 0x45, 0x46, @@ -18674,21 +18918,21 @@ static const unsigned char uname2c_tree[218382] = { 0x45, 0x01, 0xd9, 0xe2, 0x45, 0x41, 0x90, 0x24, 0xd1, 0xd0, 0x45, 0x01, 0xd2, 0xd1, 0x45, 0x01, 0xd3, 0xd2, 0x45, 0x01, 0xd4, 0xd3, 0x45, 0x01, 0xd5, 0xd4, 0x45, 0x01, 0xd6, 0xd5, 0x45, 0x01, 0xd7, 0xd6, 0x45, 0x01, - 0xd8, 0xd7, 0x45, 0x01, 0xd9, 0xd8, 0x45, 0x41, 0x54, 0xb7, 0x3e, 0xce, - 0x45, 0x01, 0x53, 0x93, 0x46, 0xcf, 0x45, 0x41, 0xd0, 0xc4, 0x45, 0x01, + 0xd8, 0xd7, 0x45, 0x01, 0xd9, 0xd8, 0x45, 0x41, 0x54, 0x9c, 0x3f, 0xce, + 0x45, 0x01, 0x53, 0xdc, 0x47, 0xcf, 0x45, 0x41, 0xd0, 0xc4, 0x45, 0x01, 0xd1, 0xc5, 0x45, 0x01, 0xd2, 0xc6, 0x45, 0x01, 0xd3, 0xc7, 0x45, 0x01, 0xd4, 0xc8, 0x45, 0x01, 0xd5, 0xc9, 0x45, 0x01, 0xd6, 0xca, 0x45, 0x01, 0xd7, 0xcb, 0x45, 0x01, 0xd8, 0xcc, 0x45, 0x01, 0xd9, 0xcd, 0x45, 0x41, 0x90, 0xc5, 0x03, 0x91, 0x9a, 0x03, 0x92, 0xea, 0x02, 0x93, 0xa8, 0x02, 0x94, 0xfd, 0x01, 0x95, 0xcd, 0x01, 0x96, 0x98, 0x01, 0x97, 0x69, 0x98, 0x2d, 0x99, 0x01, 0xff, 0xd0, 0xba, 0x45, 0x01, 0xd1, 0xbb, 0x45, 0x01, - 0xd2, 0xbc, 0x45, 0x01, 0x47, 0x5d, 0xcb, 0xbd, 0x45, 0x01, 0xd4, 0xbe, + 0xd2, 0xbc, 0x45, 0x01, 0x47, 0x22, 0xce, 0xbd, 0x45, 0x01, 0xd4, 0xbe, 0x45, 0x01, 0xd5, 0xbf, 0x45, 0x01, 0xd6, 0xc0, 0x45, 0x01, 0xd7, 0xc1, 0x45, 0x01, 0xd8, 0xc2, 0x45, 0x01, 0xd9, 0xc3, 0x45, 0x41, 0xd0, 0xad, 0x45, 0x01, 0xd1, 0xae, 0x45, 0x81, 0x2d, 0xd2, 0xb0, 0x45, 0x01, 0x93, 0x1d, 0xd4, 0xb3, 0x45, 0x01, 0xd5, 0xb4, 0x45, 0x01, 0xd6, 0xb5, 0x45, 0x81, 0x0c, 0xd7, 0xb7, 0x45, 0x01, 0xd8, 0xb8, 0x45, 0x01, 0xd9, 0xb9, - 0x45, 0x41, 0xe1, 0xb6, 0x45, 0x41, 0x49, 0x71, 0xb2, 0xb1, 0x45, 0x01, + 0x45, 0x41, 0xe1, 0xb6, 0x45, 0x41, 0x49, 0xcb, 0xb4, 0xb1, 0x45, 0x01, 0xe1, 0xb2, 0x45, 0x41, 0xe1, 0xaf, 0x45, 0x41, 0xd0, 0xa2, 0x45, 0x01, 0xd1, 0xa3, 0x45, 0x81, 0x20, 0xd2, 0xa5, 0x45, 0x01, 0xd3, 0xa6, 0x45, 0x01, 0xd4, 0xa7, 0x45, 0x01, 0xd5, 0xa8, 0x45, 0x01, 0xd6, 0xa9, 0x45, @@ -18842,239 +19086,242 @@ static const unsigned char uname2c_tree[218382] = { 0x01, 0xd9, 0x13, 0x44, 0x41, 0xe1, 0x0a, 0x44, 0x41, 0xd1, 0x00, 0x44, 0x01, 0xd2, 0x01, 0x44, 0x01, 0xd3, 0x02, 0x44, 0x01, 0xd4, 0x03, 0x44, 0x01, 0xd5, 0x04, 0x44, 0x01, 0xd6, 0x05, 0x44, 0x01, 0xd7, 0x06, 0x44, - 0x01, 0xd8, 0x07, 0x44, 0x01, 0xd9, 0x08, 0x44, 0x41, 0x57, 0x47, 0x2c, - 0x3f, 0x2a, 0x00, 0x47, 0xec, 0xcc, 0x91, 0xf6, 0x01, 0x4f, 0x1d, 0x6b, - 0xc8, 0xf3, 0x01, 0xb0, 0x01, 0xff, 0x46, 0x30, 0x3d, 0x26, 0x00, 0x00, - 0x44, 0xc7, 0x3f, 0xfa, 0xf3, 0x41, 0x49, 0xfd, 0xb3, 0xf0, 0x23, 0x00, - 0x14, 0x1f, 0x40, 0xa8, 0x01, 0xa5, 0x93, 0x01, 0x04, 0x36, 0xed, 0x38, - 0x02, 0x14, 0x00, 0x28, 0x0b, 0x12, 0x69, 0x11, 0x06, 0xa4, 0x11, 0x01, - 0xff, 0x5a, 0x5c, 0x1f, 0xd5, 0x26, 0x00, 0x4e, 0x9c, 0x77, 0x87, 0x23, - 0x40, 0x4b, 0x52, 0x28, 0x4a, 0x22, 0x00, 0x42, 0x1e, 0x00, 0x48, 0x22, - 0xc0, 0x00, 0x57, 0x9e, 0x04, 0x6f, 0x2a, 0x40, 0x4e, 0x8c, 0x74, 0x2e, - 0x23, 0x00, 0x48, 0xa9, 0x0c, 0x4c, 0x22, 0x40, 0x0e, 0x0a, 0x75, 0x47, - 0x47, 0x81, 0xd0, 0x7e, 0xf4, 0x81, 0x24, 0xb3, 0x01, 0xff, 0x06, 0x28, - 0xdc, 0x11, 0x05, 0x00, 0x18, 0x01, 0xff, 0x50, 0xfa, 0x5f, 0x4f, 0xcc, - 0x01, 0x4e, 0x08, 0x79, 0x4e, 0xcc, 0x41, 0x49, 0x26, 0xb5, 0x52, 0xcc, - 0x01, 0x46, 0x7b, 0x2e, 0x53, 0xcc, 0x41, 0x80, 0x01, 0xff, 0x4b, 0x19, - 0x98, 0x4d, 0xcc, 0x01, 0x49, 0xfc, 0xba, 0x4c, 0xcc, 0x01, 0x05, 0xf0, - 0xe7, 0x01, 0xff, 0xd1, 0x54, 0xcc, 0x01, 0xd2, 0x55, 0xcc, 0x41, 0x44, - 0xc3, 0x00, 0x51, 0xcc, 0x01, 0x45, 0xc8, 0x00, 0x50, 0xcc, 0x41, 0x48, - 0x7a, 0x96, 0x35, 0x21, 0x00, 0x44, 0xe2, 0xe2, 0x97, 0x26, 0x00, 0x42, - 0x34, 0x00, 0x07, 0x00, 0x40, 0xa1, 0xde, 0x05, 0xa2, 0xa7, 0x05, 0xa3, - 0xc6, 0x04, 0xa4, 0xa5, 0x04, 0x45, 0xb8, 0x70, 0x03, 0xf7, 0x01, 0x44, - 0x91, 0x8f, 0x02, 0xf7, 0x01, 0xa7, 0x8a, 0x04, 0xa8, 0xe8, 0x03, 0x04, - 0x99, 0x1f, 0xd0, 0x03, 0xac, 0xc1, 0x03, 0xad, 0xa0, 0x03, 0x02, 0x26, - 0x03, 0x8f, 0x03, 0x43, 0x1e, 0xdf, 0x46, 0xf7, 0x01, 0xb0, 0xd6, 0x02, - 0x03, 0xd6, 0x01, 0xc5, 0x02, 0xb2, 0xf3, 0x01, 0xb3, 0x70, 0xb4, 0x45, - 0x45, 0xc2, 0xe8, 0x55, 0xf7, 0x01, 0xb6, 0x0f, 0x02, 0xa9, 0x01, 0x01, - 0xff, 0x43, 0x8b, 0x00, 0x04, 0xf7, 0x01, 0xf8, 0x4a, 0xf7, 0x41, 0x48, - 0x32, 0xc3, 0x28, 0xf7, 0x01, 0xa9, 0x01, 0xff, 0x45, 0xde, 0xe5, 0x0a, - 0xf7, 0x81, 0x0d, 0x45, 0x59, 0xe8, 0x16, 0xf7, 0xc1, 0x00, 0x42, 0x34, - 0xf0, 0x17, 0xf7, 0x41, 0x4c, 0x7d, 0x89, 0x2f, 0xf7, 0x01, 0x8d, 0x01, - 0xff, 0xd2, 0x0b, 0xf7, 0x01, 0xd3, 0x0c, 0xf7, 0x41, 0x45, 0x56, 0xe1, - 0x3f, 0xf7, 0x81, 0x1c, 0x02, 0x9e, 0x01, 0x0c, 0x46, 0x55, 0x7f, 0x51, - 0xf7, 0x01, 0x44, 0xa2, 0xef, 0x4d, 0xf7, 0x41, 0x44, 0x68, 0x96, 0x29, - 0xf7, 0x01, 0x45, 0x3c, 0x89, 0x48, 0xf7, 0x41, 0x42, 0x34, 0xf0, 0x40, - 0xf7, 0x41, 0x02, 0x13, 0x00, 0x61, 0x4e, 0xe0, 0x74, 0x4f, 0xf7, 0x01, - 0x45, 0x4e, 0xe4, 0x1b, 0xf7, 0x01, 0x43, 0xe7, 0xd0, 0x54, 0xf7, 0x01, - 0x45, 0xe3, 0xbc, 0x47, 0xf7, 0x01, 0xb4, 0x34, 0xb5, 0x01, 0xff, 0x06, - 0x83, 0x61, 0x06, 0x44, 0xfe, 0x50, 0x0d, 0xf7, 0x41, 0x05, 0x17, 0x42, - 0x06, 0x43, 0xb5, 0x00, 0x5e, 0xf7, 0x41, 0x48, 0x81, 0x89, 0x2c, 0xf7, - 0x01, 0x46, 0x88, 0x4f, 0x22, 0xf7, 0x01, 0x08, 0xea, 0xc7, 0x01, 0xff, - 0x48, 0x81, 0x89, 0x2e, 0xf7, 0x01, 0x46, 0x88, 0x4f, 0x27, 0xf7, 0x41, - 0x4d, 0x4e, 0x7f, 0x52, 0xf7, 0x01, 0x53, 0x2d, 0x4b, 0x5c, 0xf7, 0xc1, - 0x00, 0x42, 0x34, 0xf0, 0x5d, 0xf7, 0x41, 0x49, 0xb0, 0xb2, 0x39, 0xf7, - 0x01, 0xf4, 0x14, 0xf7, 0xc1, 0x00, 0x04, 0xf3, 0x01, 0x01, 0xff, 0x48, - 0x81, 0x89, 0x2d, 0xf7, 0x01, 0x52, 0x88, 0x4f, 0x26, 0xf7, 0x41, 0xa5, - 0x0d, 0x48, 0x62, 0xc6, 0x18, 0xf7, 0xc1, 0x00, 0x42, 0x34, 0xf0, 0x19, - 0xf7, 0x41, 0x45, 0x1a, 0xe1, 0x3b, 0xf7, 0x81, 0x33, 0x45, 0xa4, 0xe3, - 0x32, 0xf7, 0x81, 0x06, 0x44, 0x05, 0x09, 0x6d, 0xf7, 0x41, 0x04, 0xf3, - 0x01, 0x0f, 0x8d, 0x01, 0xff, 0xd2, 0x33, 0xf7, 0x01, 0xd3, 0x34, 0xf7, - 0x01, 0xd4, 0x35, 0xf7, 0x41, 0x48, 0x81, 0x89, 0x30, 0xf7, 0x81, 0x06, - 0x44, 0x99, 0x1f, 0x1f, 0xf7, 0x41, 0x42, 0x34, 0xf0, 0x31, 0xf7, 0x41, - 0x42, 0x34, 0xf0, 0x3c, 0xf7, 0x41, 0x47, 0x1d, 0xcd, 0x41, 0xf7, 0x01, - 0x49, 0x48, 0xba, 0x00, 0xf7, 0x41, 0x52, 0xf0, 0x50, 0x0e, 0xf7, 0x01, - 0xaf, 0x15, 0x4a, 0xb5, 0xad, 0x5f, 0xf7, 0x01, 0xb5, 0x01, 0xff, 0x44, - 0xfe, 0xee, 0x63, 0xf7, 0x01, 0x4a, 0xc7, 0xaf, 0x64, 0xf7, 0x41, 0x47, - 0x4b, 0xd3, 0x58, 0xf7, 0x01, 0x44, 0xda, 0xef, 0x4b, 0xf7, 0xc1, 0x00, - 0x48, 0xea, 0xc2, 0x5a, 0xf7, 0x41, 0x43, 0xca, 0x00, 0x6f, 0xf7, 0x01, - 0x43, 0x76, 0x02, 0x15, 0xf7, 0x41, 0x48, 0xf2, 0xc0, 0x38, 0xf7, 0x01, - 0x50, 0x7a, 0x61, 0x10, 0xf7, 0x81, 0x06, 0x44, 0x18, 0xa0, 0x71, 0xf7, - 0x41, 0x8d, 0x01, 0xff, 0xd2, 0x11, 0xf7, 0x01, 0xd3, 0x12, 0xf7, 0x41, - 0x47, 0xc5, 0xcd, 0x2a, 0xf7, 0x01, 0x48, 0x72, 0xc6, 0x53, 0xf7, 0x41, - 0x44, 0x68, 0x96, 0x1c, 0xf7, 0x81, 0x06, 0x4b, 0x61, 0x96, 0x21, 0xf7, - 0x41, 0x42, 0x34, 0xf0, 0x1d, 0xf7, 0x41, 0x04, 0x23, 0x00, 0x0f, 0xaf, - 0x01, 0xff, 0x48, 0xda, 0xc7, 0x56, 0xf7, 0x01, 0x42, 0x42, 0x00, 0x6e, - 0xf7, 0x41, 0x44, 0x92, 0xb5, 0x72, 0xf7, 0x01, 0x45, 0x92, 0xe6, 0x73, - 0xf7, 0x41, 0x43, 0x5a, 0x1a, 0x1a, 0xf7, 0x01, 0x42, 0x1d, 0x04, 0x49, - 0xf7, 0x41, 0x48, 0x52, 0xc1, 0x70, 0xf7, 0x01, 0x02, 0x34, 0x03, 0x01, - 0xff, 0x45, 0xe1, 0xe7, 0x61, 0xf7, 0x81, 0x06, 0x44, 0x2e, 0x34, 0x60, - 0xf7, 0x41, 0x42, 0x34, 0xf0, 0x62, 0xf7, 0x41, 0xa1, 0x4a, 0x47, 0x2a, - 0xcf, 0x13, 0xf7, 0x01, 0x06, 0x89, 0x4f, 0x34, 0xb2, 0x01, 0xff, 0x08, - 0x6a, 0xc6, 0x1a, 0x46, 0xd2, 0xdd, 0x65, 0xf7, 0xc1, 0x00, 0x8d, 0x01, - 0xff, 0xd2, 0x66, 0xf7, 0x01, 0xd3, 0x67, 0xf7, 0x01, 0xd4, 0x68, 0xf7, - 0x01, 0xd5, 0x69, 0xf7, 0x41, 0x46, 0x88, 0x4f, 0x23, 0xf7, 0x81, 0x06, - 0x44, 0x99, 0x1f, 0x1e, 0xf7, 0x41, 0x42, 0x34, 0xf0, 0x24, 0xf7, 0x41, - 0x4b, 0x8f, 0x4f, 0x25, 0xf7, 0x01, 0x43, 0x5f, 0x0f, 0x20, 0xf7, 0x41, - 0x46, 0x1a, 0xd8, 0x50, 0xf7, 0x01, 0x42, 0xce, 0xf1, 0x4c, 0xf7, 0x01, - 0x4b, 0x46, 0x9f, 0x4e, 0xf7, 0x41, 0x07, 0x67, 0xcc, 0x24, 0x4a, 0xc3, - 0xa9, 0x3e, 0xf7, 0x01, 0x4b, 0x0d, 0x9c, 0x0f, 0xf7, 0x01, 0x44, 0xa2, - 0xee, 0x42, 0xf7, 0x81, 0x06, 0x44, 0xa4, 0x20, 0x59, 0xf7, 0x41, 0x8d, - 0x01, 0xff, 0xd2, 0x43, 0xf7, 0x01, 0xd3, 0x44, 0xf7, 0x41, 0x44, 0xe2, - 0xed, 0x6b, 0xf7, 0x01, 0x47, 0x4e, 0xd4, 0x6c, 0xf7, 0x41, 0x42, 0x46, - 0x00, 0x01, 0xf7, 0x01, 0xac, 0x44, 0x46, 0x46, 0x2c, 0x5b, 0xf7, 0x01, - 0x4b, 0x07, 0x9e, 0x2b, 0xf7, 0x01, 0x03, 0x7c, 0x00, 0x12, 0x46, 0xa6, - 0xdc, 0x3a, 0xf7, 0x01, 0x44, 0xba, 0x7a, 0x57, 0xf7, 0x01, 0x4a, 0xb7, - 0xb0, 0x3d, 0xf7, 0x41, 0x80, 0x06, 0x46, 0xe0, 0xd8, 0x05, 0xf7, 0x41, - 0x45, 0x1e, 0xe7, 0x06, 0xf7, 0x81, 0x0d, 0x45, 0xf9, 0xe8, 0x08, 0xf7, - 0xc1, 0x00, 0x42, 0x34, 0xf0, 0x09, 0xf7, 0x41, 0x42, 0x34, 0xf0, 0x07, - 0xf7, 0x41, 0x45, 0xe1, 0xe2, 0x6a, 0xf7, 0x01, 0x44, 0x8a, 0xed, 0x36, - 0xf7, 0x81, 0x06, 0x42, 0x1d, 0x04, 0x45, 0xf7, 0x41, 0x42, 0x34, 0xf0, - 0x37, 0xf7, 0x41, 0x80, 0x01, 0xff, 0x48, 0x02, 0xc1, 0xec, 0xf6, 0x01, - 0x49, 0x5c, 0xb5, 0xeb, 0xf6, 0x41, 0x16, 0x6d, 0x32, 0x8c, 0x03, 0x06, - 0xc4, 0x06, 0xc5, 0x02, 0x07, 0xc1, 0x05, 0x6b, 0x08, 0x39, 0xac, 0x5b, - 0xb3, 0x34, 0x0b, 0xd1, 0x75, 0x01, 0xff, 0xe1, 0x20, 0x17, 0x81, 0x1a, - 0xe5, 0x26, 0x17, 0x01, 0xe9, 0x22, 0x17, 0x81, 0x0d, 0xef, 0x28, 0x17, - 0x01, 0xf5, 0x24, 0x17, 0xc1, 0x00, 0xf5, 0x25, 0x17, 0x41, 0xe9, 0x23, - 0x17, 0x41, 0xe1, 0x21, 0x17, 0x01, 0xe9, 0x29, 0x17, 0x01, 0xed, 0x2a, - 0x17, 0x01, 0xf7, 0x27, 0x17, 0x41, 0x04, 0x30, 0x03, 0x06, 0x48, 0xde, - 0xa0, 0x3f, 0x17, 0x41, 0x46, 0x6c, 0xda, 0x2b, 0x17, 0x01, 0x45, 0x73, - 0xe7, 0x3e, 0x17, 0x01, 0xb3, 0x01, 0xff, 0x46, 0x60, 0x0a, 0x3d, 0x17, - 0x01, 0x4c, 0x0d, 0x90, 0x3c, 0x17, 0x41, 0x42, 0x92, 0x01, 0x3a, 0x17, - 0x01, 0x45, 0xde, 0x2b, 0x3b, 0x17, 0x41, 0xe1, 0x12, 0x17, 0x81, 0xb9, - 0x01, 0xa2, 0xac, 0x01, 0xa3, 0x9f, 0x01, 0xa4, 0x86, 0x01, 0xa7, 0x7a, - 0x42, 0x22, 0x00, 0x11, 0x17, 0x01, 0xaa, 0x68, 0xab, 0x5c, 0xac, 0x50, - 0x42, 0x6c, 0x00, 0x09, 0x17, 0x01, 0xae, 0x32, 0xb0, 0x26, 0x42, 0x71, - 0x00, 0x0d, 0x17, 0x01, 0x42, 0x15, 0x06, 0x0f, 0x17, 0x01, 0xb4, 0x01, - 0xff, 0xe1, 0x04, 0x17, 0x01, 0x42, 0x22, 0x00, 0x0c, 0x17, 0x01, 0xb4, - 0x01, 0xff, 0xe1, 0x41, 0x17, 0x01, 0x42, 0x22, 0x00, 0x42, 0x17, 0x41, - 0xe1, 0x06, 0x17, 0x01, 0x42, 0x22, 0x00, 0x07, 0x17, 0x41, 0xe1, 0x03, - 0x17, 0x01, 0x42, 0x24, 0x02, 0x02, 0x17, 0x01, 0x42, 0xff, 0x04, 0x45, - 0x17, 0x01, 0x42, 0x34, 0x22, 0x10, 0x17, 0x41, 0xe1, 0x0e, 0x17, 0x01, - 0x42, 0x74, 0x00, 0x46, 0x17, 0x41, 0xe1, 0x00, 0x17, 0x01, 0x42, 0x22, - 0x00, 0x01, 0x17, 0x41, 0xe1, 0x0a, 0x17, 0x01, 0x42, 0x22, 0x00, 0x19, - 0x17, 0x41, 0xe1, 0x15, 0x17, 0x01, 0x42, 0x22, 0x00, 0x17, 0x17, 0x41, - 0xe1, 0x13, 0x17, 0x01, 0xa4, 0x06, 0x42, 0x22, 0x00, 0x14, 0x17, 0x41, - 0xe1, 0x43, 0x17, 0x01, 0x42, 0x22, 0x00, 0x44, 0x17, 0x41, 0xe1, 0x40, - 0x17, 0x01, 0x42, 0x22, 0x00, 0x0b, 0x17, 0x41, 0xe1, 0x08, 0x17, 0x01, - 0x42, 0x22, 0x00, 0x18, 0x17, 0x41, 0x09, 0xa3, 0x11, 0x01, 0xff, 0x42, - 0x16, 0x00, 0x1a, 0x17, 0x01, 0x42, 0x24, 0x02, 0x16, 0x17, 0x01, 0x42, - 0x12, 0x00, 0x05, 0x17, 0x41, 0x45, 0xc3, 0x0a, 0x38, 0x17, 0x01, 0xa6, - 0x2e, 0x44, 0x46, 0x2a, 0x39, 0x17, 0x01, 0x43, 0xbf, 0x0a, 0x31, 0x17, - 0x01, 0xb3, 0x14, 0xb4, 0x06, 0x44, 0xa1, 0x1d, 0x30, 0x17, 0x41, 0x44, - 0x25, 0x01, 0x33, 0x17, 0x01, 0x42, 0x15, 0x02, 0x32, 0x17, 0x41, 0x44, - 0x27, 0x1d, 0x37, 0x17, 0x01, 0x42, 0x60, 0x25, 0x36, 0x17, 0x41, 0x43, - 0xa7, 0x05, 0x35, 0x17, 0x01, 0x43, 0xcb, 0x06, 0x34, 0x17, 0x41, 0xac, - 0x06, 0x42, 0x71, 0x00, 0x1e, 0x17, 0x41, 0xe1, 0x1d, 0x17, 0x01, 0x4a, - 0x55, 0xa9, 0x1f, 0x17, 0x41, 0x05, 0x86, 0xe3, 0x06, 0x4c, 0xad, 0x92, - 0xa1, 0xf6, 0x41, 0x4a, 0x67, 0xa6, 0x02, 0x01, 0x01, 0x59, 0x61, 0x23, - 0x3c, 0x01, 0x01, 0x5c, 0xfe, 0x17, 0x3d, 0x01, 0x01, 0x08, 0x05, 0x18, - 0x84, 0x03, 0x07, 0x2f, 0x39, 0x38, 0xb7, 0x01, 0xff, 0x06, 0xe2, 0x13, - 0x11, 0x0e, 0x32, 0x79, 0x01, 0xff, 0x43, 0xd4, 0x09, 0x01, 0x01, 0x01, - 0x44, 0xc2, 0x07, 0x00, 0x01, 0x41, 0x49, 0x33, 0xb4, 0x37, 0x01, 0x01, - 0xa6, 0x0c, 0x4e, 0x82, 0x7a, 0x39, 0x01, 0x01, 0x4d, 0x6e, 0x87, 0x3a, - 0x01, 0x41, 0x4c, 0x0e, 0x18, 0x38, 0x01, 0x01, 0x4d, 0x80, 0x85, 0x3b, - 0x01, 0x41, 0x45, 0xc3, 0x0a, 0x0e, 0x01, 0x81, 0xa7, 0x02, 0xa6, 0xd9, - 0x01, 0x44, 0x46, 0x2a, 0x0f, 0x01, 0x81, 0xb6, 0x01, 0x43, 0xbf, 0x0a, - 0x07, 0x01, 0x81, 0x9f, 0x01, 0xb3, 0x59, 0xb4, 0x01, 0xff, 0x42, 0x92, - 0x01, 0x10, 0x01, 0x81, 0x49, 0xa8, 0x24, 0xb7, 0x01, 0xff, 0x44, 0x29, - 0x1d, 0x11, 0x01, 0x81, 0x14, 0xef, 0x08, 0x01, 0xc1, 0x00, 0x80, 0x01, - 0xff, 0x47, 0x22, 0x11, 0x1a, 0x01, 0x01, 0x48, 0xd5, 0x5c, 0x23, 0x01, - 0x41, 0x49, 0xd4, 0x5c, 0x2c, 0x01, 0x41, 0x44, 0x2c, 0x11, 0x12, 0x01, - 0x81, 0x16, 0x43, 0x26, 0x01, 0x09, 0x01, 0xc1, 0x00, 0x80, 0x01, 0xff, - 0x47, 0x22, 0x11, 0x1b, 0x01, 0x01, 0x48, 0xd5, 0x5c, 0x24, 0x01, 0x41, - 0x49, 0xd4, 0x5c, 0x2d, 0x01, 0x41, 0x49, 0xd4, 0x5c, 0x2b, 0x01, 0x41, - 0x44, 0x27, 0x1d, 0x0d, 0x01, 0x81, 0x22, 0x42, 0x60, 0x25, 0x0c, 0x01, - 0xc1, 0x00, 0x80, 0x0d, 0x42, 0x2e, 0x11, 0x15, 0x01, 0xc1, 0x00, 0x49, - 0xd4, 0x5c, 0x30, 0x01, 0x41, 0x47, 0x22, 0x11, 0x1e, 0x01, 0x01, 0x48, - 0xd5, 0x5c, 0x27, 0x01, 0x41, 0x80, 0x0d, 0x42, 0x2e, 0x11, 0x16, 0x01, - 0xc1, 0x00, 0x49, 0xd4, 0x5c, 0x31, 0x01, 0x41, 0x47, 0x22, 0x11, 0x1f, - 0x01, 0x01, 0x48, 0xd5, 0x5c, 0x28, 0x01, 0x41, 0x80, 0x01, 0xff, 0x47, - 0x22, 0x11, 0x19, 0x01, 0x01, 0x48, 0xd5, 0x5c, 0x22, 0x01, 0x41, 0x80, - 0x0d, 0x42, 0x2e, 0x11, 0x18, 0x01, 0xc1, 0x00, 0x49, 0xd4, 0x5c, 0x33, - 0x01, 0x41, 0x47, 0x22, 0x11, 0x21, 0x01, 0x01, 0x48, 0xd5, 0x5c, 0x2a, - 0x01, 0x41, 0xa9, 0x26, 0xaf, 0x01, 0xff, 0x43, 0x2d, 0x11, 0x13, 0x01, - 0x81, 0x16, 0x42, 0x42, 0x00, 0x0a, 0x01, 0xc1, 0x00, 0x80, 0x01, 0xff, - 0x47, 0x22, 0x11, 0x1c, 0x01, 0x01, 0x48, 0xd5, 0x5c, 0x25, 0x01, 0x41, - 0x49, 0xd4, 0x5c, 0x2e, 0x01, 0x41, 0x43, 0x09, 0x4c, 0x14, 0x01, 0x81, - 0x16, 0x42, 0x32, 0x00, 0x0b, 0x01, 0xc1, 0x00, 0x80, 0x01, 0xff, 0x47, - 0x22, 0x11, 0x1d, 0x01, 0x01, 0x48, 0xd5, 0x5c, 0x26, 0x01, 0x41, 0x49, - 0xd4, 0x5c, 0x2f, 0x01, 0x41, 0x80, 0x0b, 0xf9, 0x17, 0x01, 0xc1, 0x00, - 0x49, 0xd4, 0x5c, 0x32, 0x01, 0x41, 0x47, 0x22, 0x11, 0x20, 0x01, 0x01, - 0x48, 0xd5, 0x5c, 0x29, 0x01, 0x41, 0x4e, 0x82, 0x7a, 0x3e, 0x01, 0x01, - 0x4d, 0x6e, 0x87, 0x3f, 0x01, 0x41, 0x56, 0x1d, 0x33, 0x01, 0x21, 0x00, - 0x4e, 0xca, 0x76, 0x79, 0xfa, 0x01, 0x48, 0x3a, 0xc4, 0x2c, 0x26, 0x00, - 0x04, 0xfd, 0x13, 0x14, 0xad, 0x06, 0x43, 0x8c, 0x04, 0xd1, 0xf9, 0x41, - 0x44, 0x61, 0x83, 0xe5, 0x2b, 0x00, 0x4e, 0x80, 0x77, 0x9f, 0xf3, 0x41, - 0x4f, 0x01, 0x69, 0x44, 0xe9, 0x01, 0xa3, 0xd7, 0x02, 0x06, 0xc4, 0x06, - 0x90, 0x02, 0x07, 0xe0, 0x6b, 0xff, 0x01, 0x45, 0x56, 0x00, 0x47, 0xe9, - 0x01, 0x08, 0x4c, 0x16, 0xe8, 0x01, 0xae, 0xd9, 0x01, 0x0d, 0x4b, 0x08, - 0x06, 0x50, 0x0a, 0x67, 0x45, 0xe9, 0x41, 0x44, 0x01, 0x69, 0x22, 0xe9, - 0x01, 0xa2, 0xbc, 0x01, 0x43, 0x0d, 0x16, 0x37, 0xe9, 0x01, 0xa4, 0xa7, - 0x01, 0xe5, 0x2b, 0xe9, 0x01, 0x42, 0xe1, 0x07, 0x2c, 0xe9, 0x01, 0xa7, - 0x90, 0x01, 0x42, 0x22, 0x00, 0x38, 0xe9, 0x01, 0xe9, 0x2d, 0xe9, 0x01, - 0x44, 0x72, 0xed, 0x36, 0xe9, 0x01, 0xab, 0x6c, 0x44, 0x9e, 0x87, 0x24, - 0xe9, 0x01, 0x44, 0xee, 0xed, 0x25, 0xe9, 0x01, 0xae, 0x4c, 0xef, 0x2e, - 0xe9, 0x01, 0x42, 0x6f, 0x02, 0x28, 0xe9, 0x01, 0x44, 0xf6, 0xe6, 0x39, - 0xe9, 0x01, 0x42, 0x71, 0x00, 0x2a, 0xe9, 0x01, 0xb3, 0x28, 0x42, 0x5c, - 0x01, 0x3c, 0xe9, 0x01, 0xf5, 0x35, 0xe9, 0x01, 0x42, 0xa6, 0x0a, 0x3e, - 0xe9, 0x01, 0x43, 0xc0, 0x88, 0x31, 0xe9, 0x01, 0xb9, 0x06, 0x43, 0x46, - 0xbf, 0x41, 0xe9, 0x41, 0xe1, 0x34, 0xe9, 0x01, 0x42, 0xb0, 0x01, 0x30, - 0xe9, 0x41, 0x42, 0x22, 0x00, 0x43, 0xe9, 0x01, 0x49, 0x3e, 0xb8, 0x27, - 0xe9, 0x41, 0x42, 0x22, 0x00, 0x3d, 0xe9, 0x01, 0x42, 0xf3, 0x0a, 0x32, - 0xe9, 0x01, 0x42, 0x34, 0x22, 0x3b, 0xe9, 0x41, 0x42, 0xf5, 0x13, 0x33, - 0xe9, 0x01, 0x42, 0x22, 0x00, 0x3f, 0xe9, 0x01, 0x42, 0x9c, 0x01, 0x42, - 0xe9, 0x41, 0xe1, 0x3a, 0xe9, 0x01, 0x42, 0x8c, 0x05, 0x40, 0xe9, 0x41, - 0x44, 0xe9, 0x18, 0x23, 0xe9, 0x01, 0x42, 0x22, 0x00, 0x2f, 0xe9, 0x41, - 0xe1, 0x26, 0xe9, 0x01, 0x42, 0xb0, 0x01, 0x29, 0xe9, 0x41, 0x50, 0xf6, - 0x5a, 0x4b, 0xe9, 0x01, 0x44, 0x5b, 0x3e, 0x4a, 0xe9, 0x41, 0x50, 0xad, - 0x00, 0x5e, 0xe9, 0x01, 0x4d, 0xd6, 0x33, 0x5f, 0xe9, 0x41, 0x54, 0xd3, - 0x40, 0x49, 0xe9, 0x01, 0x48, 0xb5, 0x00, 0x46, 0xe9, 0x41, 0x45, 0xc3, - 0x0a, 0x58, 0xe9, 0x01, 0xa6, 0x2e, 0x44, 0x46, 0x2a, 0x59, 0xe9, 0x01, - 0x43, 0xbf, 0x0a, 0x51, 0xe9, 0x01, 0xb3, 0x14, 0xb4, 0x06, 0x44, 0xa1, - 0x1d, 0x50, 0xe9, 0x41, 0x44, 0x25, 0x01, 0x53, 0xe9, 0x01, 0x42, 0x15, - 0x02, 0x52, 0xe9, 0x41, 0x44, 0x27, 0x1d, 0x57, 0xe9, 0x01, 0x42, 0x60, - 0x25, 0x56, 0xe9, 0x41, 0x43, 0xa7, 0x05, 0x55, 0xe9, 0x01, 0x43, 0xcb, - 0x06, 0x54, 0xe9, 0x41, 0x0e, 0xba, 0x05, 0x06, 0x51, 0x58, 0x32, 0x48, - 0xe9, 0x41, 0x44, 0x01, 0x69, 0x00, 0xe9, 0x01, 0xa2, 0xbc, 0x01, 0x43, - 0x0d, 0x16, 0x15, 0xe9, 0x01, 0xa4, 0xa7, 0x01, 0xe5, 0x09, 0xe9, 0x01, - 0x42, 0xe1, 0x07, 0x0a, 0xe9, 0x01, 0xa7, 0x90, 0x01, 0x42, 0x22, 0x00, - 0x16, 0xe9, 0x01, 0xe9, 0x0b, 0xe9, 0x01, 0x44, 0x72, 0xed, 0x14, 0xe9, - 0x01, 0xab, 0x6c, 0x44, 0x9e, 0x87, 0x02, 0xe9, 0x01, 0x44, 0xee, 0xed, - 0x03, 0xe9, 0x01, 0xae, 0x4c, 0xef, 0x0c, 0xe9, 0x01, 0x42, 0x6f, 0x02, - 0x06, 0xe9, 0x01, 0x44, 0xf6, 0xe6, 0x17, 0xe9, 0x01, 0x42, 0x71, 0x00, - 0x08, 0xe9, 0x01, 0xb3, 0x28, 0x42, 0x5c, 0x01, 0x1a, 0xe9, 0x01, 0xf5, - 0x13, 0xe9, 0x01, 0x42, 0xa6, 0x0a, 0x1c, 0xe9, 0x01, 0x43, 0xc0, 0x88, - 0x0f, 0xe9, 0x01, 0xb9, 0x06, 0x43, 0x46, 0xbf, 0x1f, 0xe9, 0x41, 0xe1, - 0x12, 0xe9, 0x01, 0x42, 0xb0, 0x01, 0x0e, 0xe9, 0x41, 0x42, 0x22, 0x00, - 0x21, 0xe9, 0x01, 0x49, 0x3e, 0xb8, 0x05, 0xe9, 0x41, 0x42, 0x22, 0x00, - 0x1b, 0xe9, 0x01, 0x42, 0xf3, 0x0a, 0x10, 0xe9, 0x01, 0x42, 0x34, 0x22, - 0x19, 0xe9, 0x41, 0x42, 0xf5, 0x13, 0x11, 0xe9, 0x01, 0x42, 0x22, 0x00, - 0x1d, 0xe9, 0x01, 0x42, 0x9c, 0x01, 0x20, 0xe9, 0x41, 0xe1, 0x18, 0xe9, - 0x01, 0x42, 0x8c, 0x05, 0x1e, 0xe9, 0x41, 0x44, 0xe9, 0x18, 0x01, 0xe9, - 0x01, 0x42, 0x22, 0x00, 0x0d, 0xe9, 0x41, 0xe1, 0x04, 0xe9, 0x01, 0x42, - 0xb0, 0x01, 0x07, 0xe9, 0x41, 0x48, 0x43, 0x2d, 0xe6, 0x23, 0x00, 0x02, - 0xe8, 0x04, 0x27, 0x49, 0x9f, 0x50, 0x06, 0x00, 0x00, 0x07, 0x9f, 0xd3, - 0x11, 0x05, 0x2b, 0x38, 0x01, 0xff, 0x45, 0xb0, 0x04, 0xb4, 0x00, 0x00, - 0x44, 0x05, 0x02, 0x9f, 0x29, 0x40, 0x53, 0xf2, 0x46, 0x6d, 0x20, 0x00, - 0x52, 0x50, 0x54, 0x6b, 0x20, 0x40, 0x45, 0x19, 0xe7, 0x97, 0xfa, 0x01, - 0x46, 0x31, 0x69, 0x00, 0x21, 0x40 }; + 0x01, 0xd8, 0x07, 0x44, 0x01, 0xd9, 0x08, 0x44, 0x41, 0x57, 0xff, 0x2c, + 0x3f, 0x2a, 0x00, 0x47, 0xbf, 0xcf, 0x91, 0xf6, 0x01, 0x4f, 0xb7, 0x6c, + 0xc8, 0xf3, 0x01, 0xb0, 0x01, 0xff, 0x46, 0x15, 0x3e, 0x26, 0x00, 0x00, + 0xa8, 0x01, 0xff, 0x46, 0x34, 0xdd, 0xcf, 0xce, 0x01, 0x43, 0x4e, 0x03, + 0xfa, 0xf3, 0x41, 0x04, 0xfe, 0x05, 0xf3, 0x07, 0x14, 0x18, 0x41, 0xa8, + 0x01, 0xa5, 0x93, 0x01, 0x04, 0x75, 0xf0, 0x38, 0x02, 0x14, 0x00, 0x28, + 0x0b, 0xac, 0x6a, 0x11, 0x06, 0xf3, 0x11, 0x01, 0xff, 0x5a, 0xfe, 0x1f, + 0xd5, 0x26, 0x00, 0x4e, 0xfd, 0x78, 0x87, 0x23, 0x40, 0x4b, 0xf3, 0x28, + 0x4a, 0x22, 0x00, 0x42, 0x1e, 0x00, 0x48, 0x22, 0xc0, 0x00, 0x57, 0xc9, + 0x04, 0x6f, 0x2a, 0x40, 0x4e, 0x09, 0x76, 0x2e, 0x23, 0x00, 0x48, 0xf8, + 0x0c, 0x4c, 0x22, 0x40, 0x0e, 0x87, 0x76, 0x47, 0x47, 0x54, 0xd3, 0x7e, + 0xf4, 0x81, 0x24, 0xb3, 0x01, 0xff, 0x06, 0x26, 0xdf, 0x11, 0x05, 0x6c, + 0x18, 0x01, 0xff, 0x50, 0x76, 0x61, 0x4f, 0xcc, 0x01, 0x4e, 0x69, 0x7a, + 0x4e, 0xcc, 0x41, 0x49, 0x80, 0xb7, 0x52, 0xcc, 0x01, 0x46, 0x61, 0x2f, + 0x53, 0xcc, 0x41, 0x80, 0x01, 0xff, 0x4b, 0x29, 0x9a, 0x4d, 0xcc, 0x01, + 0x49, 0x68, 0xbd, 0x4c, 0xcc, 0x01, 0x05, 0x14, 0xeb, 0x01, 0xff, 0xd1, + 0x54, 0xcc, 0x01, 0xd2, 0x55, 0xcc, 0x41, 0x44, 0xc3, 0x00, 0x51, 0xcc, + 0x01, 0x45, 0xc8, 0x00, 0x50, 0xcc, 0x41, 0x48, 0x74, 0x98, 0x35, 0x21, + 0x00, 0x44, 0xed, 0xe5, 0x97, 0x26, 0x00, 0x42, 0x34, 0x00, 0x07, 0x00, + 0x40, 0xa1, 0xde, 0x05, 0xa2, 0xa7, 0x05, 0xa3, 0xc6, 0x04, 0xa4, 0xa5, + 0x04, 0x45, 0x52, 0x72, 0x03, 0xf7, 0x01, 0x44, 0x43, 0x91, 0x02, 0xf7, + 0x01, 0xa7, 0x8a, 0x04, 0xa8, 0xe8, 0x03, 0x04, 0x3b, 0x20, 0xd0, 0x03, + 0xac, 0xc1, 0x03, 0xad, 0xa0, 0x03, 0x02, 0x51, 0x03, 0x8f, 0x03, 0x43, + 0x29, 0xe2, 0x46, 0xf7, 0x01, 0xb0, 0xd6, 0x02, 0x03, 0xd6, 0x01, 0xc5, + 0x02, 0xb2, 0xf3, 0x01, 0xb3, 0x70, 0xb4, 0x45, 0x45, 0xeb, 0xeb, 0x55, + 0xf7, 0x01, 0xb6, 0x0f, 0x02, 0xa9, 0x01, 0x01, 0xff, 0x43, 0x8b, 0x00, + 0x04, 0xf7, 0x01, 0xf8, 0x4a, 0xf7, 0x41, 0x48, 0xc0, 0xc5, 0x28, 0xf7, + 0x01, 0xa9, 0x01, 0xff, 0x45, 0xfd, 0xe8, 0x0a, 0xf7, 0x81, 0x0d, 0x45, + 0x7d, 0xeb, 0x16, 0xf7, 0xc1, 0x00, 0x42, 0x87, 0xf3, 0x17, 0xf7, 0x41, + 0x4c, 0x47, 0x8b, 0x2f, 0xf7, 0x01, 0x8d, 0x01, 0xff, 0xd2, 0x0b, 0xf7, + 0x01, 0xd3, 0x0c, 0xf7, 0x41, 0x45, 0x6b, 0xe4, 0x3f, 0xf7, 0x81, 0x1c, + 0x02, 0x9e, 0x01, 0x0c, 0x46, 0xd1, 0x80, 0x51, 0xf7, 0x01, 0x44, 0xf1, + 0xf2, 0x4d, 0xf7, 0x41, 0x44, 0x62, 0x98, 0x29, 0xf7, 0x01, 0x45, 0x06, + 0x8b, 0x48, 0xf7, 0x41, 0x42, 0x87, 0xf3, 0x40, 0xf7, 0x41, 0x02, 0x13, + 0x00, 0x61, 0x4e, 0x5d, 0x76, 0x4f, 0xf7, 0x01, 0x45, 0x5e, 0xe7, 0x1b, + 0xf7, 0x01, 0x43, 0xba, 0xd3, 0x54, 0xf7, 0x01, 0x45, 0x58, 0xbf, 0x47, + 0xf7, 0x01, 0xb4, 0x34, 0xb5, 0x01, 0xff, 0x06, 0xff, 0x62, 0x06, 0x44, + 0x47, 0x52, 0x0d, 0xf7, 0x41, 0x05, 0x24, 0x43, 0x06, 0x43, 0xb5, 0x00, + 0x5e, 0xf7, 0x41, 0x48, 0x4b, 0x8b, 0x2c, 0xf7, 0x01, 0x46, 0xd1, 0x50, + 0x22, 0xf7, 0x01, 0x08, 0x98, 0xca, 0x01, 0xff, 0x48, 0x4b, 0x8b, 0x2e, + 0xf7, 0x01, 0x46, 0xd1, 0x50, 0x27, 0xf7, 0x41, 0x4d, 0xca, 0x80, 0x52, + 0xf7, 0x01, 0x53, 0x76, 0x4c, 0x5c, 0xf7, 0xc1, 0x00, 0x42, 0x87, 0xf3, + 0x5d, 0xf7, 0x41, 0x49, 0x0a, 0xb5, 0x39, 0xf7, 0x01, 0xf4, 0x14, 0xf7, + 0xc1, 0x00, 0x04, 0xf3, 0x01, 0x01, 0xff, 0x48, 0x4b, 0x8b, 0x2d, 0xf7, + 0x01, 0x52, 0xd1, 0x50, 0x26, 0xf7, 0x41, 0xa5, 0x0d, 0x48, 0x00, 0xc9, + 0x18, 0xf7, 0xc1, 0x00, 0x42, 0x87, 0xf3, 0x19, 0xf7, 0x41, 0x45, 0x2a, + 0xe4, 0x3b, 0xf7, 0x81, 0x33, 0x45, 0xb9, 0xe6, 0x32, 0xf7, 0x81, 0x06, + 0x44, 0x54, 0x09, 0x6d, 0xf7, 0x41, 0x04, 0xf3, 0x01, 0x0f, 0x8d, 0x01, + 0xff, 0xd2, 0x33, 0xf7, 0x01, 0xd3, 0x34, 0xf7, 0x01, 0xd4, 0x35, 0xf7, + 0x41, 0x48, 0x4b, 0x8b, 0x30, 0xf7, 0x81, 0x06, 0x44, 0x3b, 0x20, 0x1f, + 0xf7, 0x41, 0x42, 0x87, 0xf3, 0x31, 0xf7, 0x41, 0x42, 0x87, 0xf3, 0x3c, + 0xf7, 0x41, 0x47, 0xf0, 0xcf, 0x41, 0xf7, 0x01, 0x49, 0xab, 0xbc, 0x00, + 0xf7, 0x41, 0x52, 0x39, 0x52, 0x0e, 0xf7, 0x01, 0xaf, 0x15, 0x4a, 0x05, + 0xb0, 0x5f, 0xf7, 0x01, 0xb5, 0x01, 0xff, 0x44, 0x4d, 0xf2, 0x63, 0xf7, + 0x01, 0x4a, 0x17, 0xb2, 0x64, 0xf7, 0x41, 0x47, 0x17, 0xd6, 0x58, 0xf7, + 0x01, 0x44, 0x29, 0xf3, 0x4b, 0xf7, 0xc1, 0x00, 0x48, 0x78, 0xc5, 0x5a, + 0xf7, 0x41, 0x43, 0xca, 0x00, 0x6f, 0xf7, 0x01, 0x43, 0x76, 0x02, 0x15, + 0xf7, 0x41, 0x48, 0x78, 0xc3, 0x38, 0xf7, 0x01, 0x50, 0xf6, 0x62, 0x10, + 0xf7, 0x81, 0x06, 0x44, 0x49, 0xa2, 0x71, 0xf7, 0x41, 0x8d, 0x01, 0xff, + 0xd2, 0x11, 0xf7, 0x01, 0xd3, 0x12, 0xf7, 0x41, 0x47, 0x98, 0xd0, 0x2a, + 0xf7, 0x01, 0x48, 0x10, 0xc9, 0x53, 0xf7, 0x41, 0x44, 0x62, 0x98, 0x1c, + 0xf7, 0x81, 0x06, 0x4b, 0x5b, 0x98, 0x21, 0xf7, 0x41, 0x42, 0x87, 0xf3, + 0x1d, 0xf7, 0x41, 0x04, 0x23, 0x00, 0x0f, 0xaf, 0x01, 0xff, 0x48, 0x88, + 0xca, 0x56, 0xf7, 0x01, 0x42, 0x42, 0x00, 0x6e, 0xf7, 0x41, 0x44, 0xe3, + 0xb7, 0x72, 0xf7, 0x01, 0x45, 0xb6, 0xe9, 0x73, 0xf7, 0x41, 0x43, 0xe1, + 0x1a, 0x1a, 0xf7, 0x01, 0x42, 0x48, 0x04, 0x49, 0xf7, 0x41, 0x48, 0xd8, + 0xc3, 0x70, 0xf7, 0x01, 0x02, 0x5f, 0x03, 0x01, 0xff, 0x45, 0x05, 0xeb, + 0x61, 0xf7, 0x81, 0x06, 0x44, 0xfe, 0x34, 0x60, 0xf7, 0x41, 0x42, 0x87, + 0xf3, 0x62, 0xf7, 0x41, 0xa1, 0x4a, 0x47, 0xfd, 0xd1, 0x13, 0xf7, 0x01, + 0x06, 0xd2, 0x50, 0x34, 0xb2, 0x01, 0xff, 0x08, 0x08, 0xc9, 0x1a, 0x46, + 0xdc, 0xe0, 0x65, 0xf7, 0xc1, 0x00, 0x8d, 0x01, 0xff, 0xd2, 0x66, 0xf7, + 0x01, 0xd3, 0x67, 0xf7, 0x01, 0xd4, 0x68, 0xf7, 0x01, 0xd5, 0x69, 0xf7, + 0x41, 0x46, 0xd1, 0x50, 0x23, 0xf7, 0x81, 0x06, 0x44, 0x3b, 0x20, 0x1e, + 0xf7, 0x41, 0x42, 0x87, 0xf3, 0x24, 0xf7, 0x41, 0x4b, 0xd8, 0x50, 0x25, + 0xf7, 0x01, 0x43, 0xae, 0x0f, 0x20, 0xf7, 0x41, 0x46, 0x06, 0xdb, 0x50, + 0xf7, 0x01, 0x42, 0x18, 0xf5, 0x4c, 0xf7, 0x01, 0x4b, 0x77, 0xa1, 0x4e, + 0xf7, 0x41, 0x07, 0x2c, 0xcf, 0x24, 0x4a, 0x09, 0xac, 0x3e, 0xf7, 0x01, + 0x4b, 0x33, 0x9e, 0x0f, 0xf7, 0x01, 0x44, 0xe5, 0xf1, 0x42, 0xf7, 0x81, + 0x06, 0x44, 0x46, 0x21, 0x59, 0xf7, 0x41, 0x8d, 0x01, 0xff, 0xd2, 0x43, + 0xf7, 0x01, 0xd3, 0x44, 0xf7, 0x41, 0x44, 0x25, 0xf1, 0x6b, 0xf7, 0x01, + 0x47, 0x21, 0xd7, 0x6c, 0xf7, 0x41, 0x42, 0x46, 0x00, 0x01, 0xf7, 0x01, + 0xac, 0x44, 0x46, 0xfe, 0x2c, 0x5b, 0xf7, 0x01, 0x4b, 0x38, 0xa0, 0x2b, + 0xf7, 0x01, 0x03, 0x7c, 0x00, 0x12, 0x46, 0xaa, 0xdf, 0x3a, 0xf7, 0x01, + 0x44, 0x1b, 0x7c, 0x57, 0xf7, 0x01, 0x4a, 0x07, 0xb3, 0x3d, 0xf7, 0x41, + 0x80, 0x06, 0x46, 0xd2, 0xdb, 0x05, 0xf7, 0x41, 0x45, 0x42, 0xea, 0x06, + 0xf7, 0x81, 0x0d, 0x45, 0x22, 0xec, 0x08, 0xf7, 0xc1, 0x00, 0x42, 0x87, + 0xf3, 0x09, 0xf7, 0x41, 0x42, 0x87, 0xf3, 0x07, 0xf7, 0x41, 0x45, 0xec, + 0xe5, 0x6a, 0xf7, 0x01, 0x44, 0xc9, 0xf0, 0x36, 0xf7, 0x81, 0x06, 0x42, + 0x48, 0x04, 0x45, 0xf7, 0x41, 0x42, 0x87, 0xf3, 0x37, 0xf7, 0x41, 0x4b, + 0x84, 0x99, 0xfa, 0xfb, 0x01, 0x45, 0x38, 0x0b, 0xf0, 0x23, 0x40, 0x80, + 0x01, 0xff, 0x48, 0x88, 0xc3, 0xec, 0xf6, 0x01, 0x49, 0xad, 0xb7, 0xeb, + 0xf6, 0x41, 0x16, 0x3d, 0x33, 0x8c, 0x03, 0x06, 0xef, 0x06, 0xc5, 0x02, + 0x07, 0xec, 0x05, 0x6b, 0x08, 0x89, 0xae, 0x5b, 0xb3, 0x34, 0x0b, 0x40, + 0x77, 0x01, 0xff, 0xe1, 0x20, 0x17, 0x81, 0x1a, 0xe5, 0x26, 0x17, 0x01, + 0xe9, 0x22, 0x17, 0x81, 0x0d, 0xef, 0x28, 0x17, 0x01, 0xf5, 0x24, 0x17, + 0xc1, 0x00, 0xf5, 0x25, 0x17, 0x41, 0xe9, 0x23, 0x17, 0x41, 0xe1, 0x21, + 0x17, 0x01, 0xe9, 0x29, 0x17, 0x01, 0xed, 0x2a, 0x17, 0x01, 0xf7, 0x27, + 0x17, 0x41, 0x04, 0x5b, 0x03, 0x06, 0x48, 0x04, 0xa3, 0x3f, 0x17, 0x41, + 0x46, 0x64, 0xdd, 0x2b, 0x17, 0x01, 0x45, 0x97, 0xea, 0x3e, 0x17, 0x01, + 0xb3, 0x01, 0xff, 0x46, 0xaf, 0x0a, 0x3d, 0x17, 0x01, 0x4c, 0xbf, 0x91, + 0x3c, 0x17, 0x41, 0x42, 0x92, 0x01, 0x3a, 0x17, 0x01, 0x45, 0x7f, 0x2c, + 0x3b, 0x17, 0x41, 0xe1, 0x12, 0x17, 0x81, 0xb9, 0x01, 0xa2, 0xac, 0x01, + 0xa3, 0x9f, 0x01, 0xa4, 0x86, 0x01, 0xa7, 0x7a, 0x42, 0x22, 0x00, 0x11, + 0x17, 0x01, 0xaa, 0x68, 0xab, 0x5c, 0xac, 0x50, 0x42, 0x6c, 0x00, 0x09, + 0x17, 0x01, 0xae, 0x32, 0xb0, 0x26, 0x42, 0x71, 0x00, 0x0d, 0x17, 0x01, + 0x42, 0x40, 0x06, 0x0f, 0x17, 0x01, 0xb4, 0x01, 0xff, 0xe1, 0x04, 0x17, + 0x01, 0x42, 0x22, 0x00, 0x0c, 0x17, 0x01, 0xb4, 0x01, 0xff, 0xe1, 0x41, + 0x17, 0x01, 0x42, 0x22, 0x00, 0x42, 0x17, 0x41, 0xe1, 0x06, 0x17, 0x01, + 0x42, 0x22, 0x00, 0x07, 0x17, 0x41, 0xe1, 0x03, 0x17, 0x01, 0x42, 0x24, + 0x02, 0x02, 0x17, 0x01, 0x42, 0x2a, 0x05, 0x45, 0x17, 0x01, 0x42, 0xbc, + 0x22, 0x10, 0x17, 0x41, 0xe1, 0x0e, 0x17, 0x01, 0x42, 0x74, 0x00, 0x46, + 0x17, 0x41, 0xe1, 0x00, 0x17, 0x01, 0x42, 0x22, 0x00, 0x01, 0x17, 0x41, + 0xe1, 0x0a, 0x17, 0x01, 0x42, 0x22, 0x00, 0x19, 0x17, 0x41, 0xe1, 0x15, + 0x17, 0x01, 0x42, 0x22, 0x00, 0x17, 0x17, 0x41, 0xe1, 0x13, 0x17, 0x01, + 0xa4, 0x06, 0x42, 0x22, 0x00, 0x14, 0x17, 0x41, 0xe1, 0x43, 0x17, 0x01, + 0x42, 0x22, 0x00, 0x44, 0x17, 0x41, 0xe1, 0x40, 0x17, 0x01, 0x42, 0x22, + 0x00, 0x0b, 0x17, 0x41, 0xe1, 0x08, 0x17, 0x01, 0x42, 0x22, 0x00, 0x18, + 0x17, 0x41, 0x09, 0xf2, 0x11, 0x01, 0xff, 0x42, 0x16, 0x00, 0x1a, 0x17, + 0x01, 0x42, 0x24, 0x02, 0x16, 0x17, 0x01, 0x42, 0x12, 0x00, 0x05, 0x17, + 0x41, 0x45, 0x12, 0x0b, 0x38, 0x17, 0x01, 0xa6, 0x2e, 0x44, 0xcf, 0x2a, + 0x39, 0x17, 0x01, 0x43, 0x0e, 0x0b, 0x31, 0x17, 0x01, 0xb3, 0x14, 0xb4, + 0x06, 0x44, 0x43, 0x1e, 0x30, 0x17, 0x41, 0x44, 0x25, 0x01, 0x33, 0x17, + 0x01, 0x42, 0x15, 0x02, 0x32, 0x17, 0x41, 0x44, 0xc9, 0x1d, 0x37, 0x17, + 0x01, 0x42, 0x01, 0x26, 0x36, 0x17, 0x41, 0x43, 0xd2, 0x05, 0x35, 0x17, + 0x01, 0x43, 0xf6, 0x06, 0x34, 0x17, 0x41, 0xac, 0x06, 0x42, 0x71, 0x00, + 0x1e, 0x17, 0x41, 0xe1, 0x1d, 0x17, 0x01, 0x4a, 0x91, 0xab, 0x1f, 0x17, + 0x41, 0x05, 0x9b, 0xe6, 0x06, 0x4c, 0x77, 0x94, 0xa1, 0xf6, 0x41, 0x4a, + 0xa3, 0xa8, 0x02, 0x01, 0x01, 0x59, 0xe9, 0x23, 0x3c, 0x01, 0x01, 0x5c, + 0x6a, 0x18, 0x3d, 0x01, 0x01, 0x08, 0x71, 0x18, 0x84, 0x03, 0x07, 0xff, + 0x39, 0x38, 0xb7, 0x01, 0xff, 0x06, 0x31, 0x14, 0x11, 0x0e, 0x93, 0x7a, + 0x01, 0xff, 0x43, 0x23, 0x0a, 0x01, 0x01, 0x01, 0x44, 0xed, 0x07, 0x00, + 0x01, 0x41, 0x49, 0x84, 0xb6, 0x37, 0x01, 0x01, 0xa6, 0x0c, 0x4e, 0xe3, + 0x7b, 0x39, 0x01, 0x01, 0x4d, 0x38, 0x89, 0x3a, 0x01, 0x41, 0x4c, 0x7a, + 0x18, 0x38, 0x01, 0x01, 0x4d, 0x3d, 0x87, 0x3b, 0x01, 0x41, 0x45, 0x12, + 0x0b, 0x0e, 0x01, 0x81, 0xa7, 0x02, 0xa6, 0xd9, 0x01, 0x44, 0xcf, 0x2a, + 0x0f, 0x01, 0x81, 0xb6, 0x01, 0x43, 0x0e, 0x0b, 0x07, 0x01, 0x81, 0x9f, + 0x01, 0xb3, 0x59, 0xb4, 0x01, 0xff, 0x42, 0x92, 0x01, 0x10, 0x01, 0x81, + 0x49, 0xa8, 0x24, 0xb7, 0x01, 0xff, 0x44, 0xcb, 0x1d, 0x11, 0x01, 0x81, + 0x14, 0xef, 0x08, 0x01, 0xc1, 0x00, 0x80, 0x01, 0xff, 0x47, 0x71, 0x11, + 0x1a, 0x01, 0x01, 0x48, 0x40, 0x5e, 0x23, 0x01, 0x41, 0x49, 0x3f, 0x5e, + 0x2c, 0x01, 0x41, 0x44, 0x7b, 0x11, 0x12, 0x01, 0x81, 0x16, 0x43, 0x26, + 0x01, 0x09, 0x01, 0xc1, 0x00, 0x80, 0x01, 0xff, 0x47, 0x71, 0x11, 0x1b, + 0x01, 0x01, 0x48, 0x40, 0x5e, 0x24, 0x01, 0x41, 0x49, 0x3f, 0x5e, 0x2d, + 0x01, 0x41, 0x49, 0x3f, 0x5e, 0x2b, 0x01, 0x41, 0x44, 0xc9, 0x1d, 0x0d, + 0x01, 0x81, 0x22, 0x42, 0x01, 0x26, 0x0c, 0x01, 0xc1, 0x00, 0x80, 0x0d, + 0x42, 0x7d, 0x11, 0x15, 0x01, 0xc1, 0x00, 0x49, 0x3f, 0x5e, 0x30, 0x01, + 0x41, 0x47, 0x71, 0x11, 0x1e, 0x01, 0x01, 0x48, 0x40, 0x5e, 0x27, 0x01, + 0x41, 0x80, 0x0d, 0x42, 0x7d, 0x11, 0x16, 0x01, 0xc1, 0x00, 0x49, 0x3f, + 0x5e, 0x31, 0x01, 0x41, 0x47, 0x71, 0x11, 0x1f, 0x01, 0x01, 0x48, 0x40, + 0x5e, 0x28, 0x01, 0x41, 0x80, 0x01, 0xff, 0x47, 0x71, 0x11, 0x19, 0x01, + 0x01, 0x48, 0x40, 0x5e, 0x22, 0x01, 0x41, 0x80, 0x0d, 0x42, 0x7d, 0x11, + 0x18, 0x01, 0xc1, 0x00, 0x49, 0x3f, 0x5e, 0x33, 0x01, 0x41, 0x47, 0x71, + 0x11, 0x21, 0x01, 0x01, 0x48, 0x40, 0x5e, 0x2a, 0x01, 0x41, 0xa9, 0x26, + 0xaf, 0x01, 0xff, 0x43, 0x7c, 0x11, 0x13, 0x01, 0x81, 0x16, 0x42, 0x42, + 0x00, 0x0a, 0x01, 0xc1, 0x00, 0x80, 0x01, 0xff, 0x47, 0x71, 0x11, 0x1c, + 0x01, 0x01, 0x48, 0x40, 0x5e, 0x25, 0x01, 0x41, 0x49, 0x3f, 0x5e, 0x2e, + 0x01, 0x41, 0x43, 0x52, 0x4d, 0x14, 0x01, 0x81, 0x16, 0x42, 0x32, 0x00, + 0x0b, 0x01, 0xc1, 0x00, 0x80, 0x01, 0xff, 0x47, 0x71, 0x11, 0x1d, 0x01, + 0x01, 0x48, 0x40, 0x5e, 0x26, 0x01, 0x41, 0x49, 0x3f, 0x5e, 0x2f, 0x01, + 0x41, 0x80, 0x0b, 0xf9, 0x17, 0x01, 0xc1, 0x00, 0x49, 0x3f, 0x5e, 0x32, + 0x01, 0x41, 0x47, 0x71, 0x11, 0x20, 0x01, 0x01, 0x48, 0x40, 0x5e, 0x29, + 0x01, 0x41, 0x4e, 0xe3, 0x7b, 0x3e, 0x01, 0x01, 0x4d, 0x38, 0x89, 0x3f, + 0x01, 0x41, 0x56, 0xed, 0x33, 0x01, 0x21, 0x00, 0x4e, 0x39, 0x78, 0x79, + 0xfa, 0x01, 0x48, 0xd8, 0xc6, 0x2c, 0x26, 0x00, 0x04, 0x4c, 0x14, 0x14, + 0xad, 0x06, 0x43, 0xb7, 0x04, 0xd1, 0xf9, 0x41, 0x44, 0x11, 0x85, 0xe5, + 0x2b, 0x00, 0x4e, 0xe1, 0x78, 0x9f, 0xf3, 0x41, 0x4f, 0x9b, 0x6a, 0x44, + 0xe9, 0x01, 0xa3, 0xd7, 0x02, 0x06, 0xef, 0x06, 0x90, 0x02, 0x07, 0x89, + 0x6d, 0xff, 0x01, 0x45, 0x56, 0x00, 0x47, 0xe9, 0x01, 0x08, 0xb8, 0x16, + 0xe8, 0x01, 0xae, 0xd9, 0x01, 0x0d, 0x76, 0x08, 0x06, 0x50, 0x86, 0x68, + 0x45, 0xe9, 0x41, 0x44, 0x9b, 0x6a, 0x22, 0xe9, 0x01, 0xa2, 0xbc, 0x01, + 0x43, 0x79, 0x16, 0x37, 0xe9, 0x01, 0xa4, 0xa7, 0x01, 0xe5, 0x2b, 0xe9, + 0x01, 0x42, 0x0c, 0x08, 0x2c, 0xe9, 0x01, 0xa7, 0x90, 0x01, 0x42, 0x22, + 0x00, 0x38, 0xe9, 0x01, 0xe9, 0x2d, 0xe9, 0x01, 0x44, 0xb1, 0xf0, 0x36, + 0xe9, 0x01, 0xab, 0x6c, 0x44, 0x68, 0x89, 0x24, 0xe9, 0x01, 0x44, 0x31, + 0xf1, 0x25, 0xe9, 0x01, 0xae, 0x4c, 0xef, 0x2e, 0xe9, 0x01, 0x42, 0x6f, + 0x02, 0x28, 0xe9, 0x01, 0x44, 0x1a, 0xea, 0x39, 0xe9, 0x01, 0x42, 0x71, + 0x00, 0x2a, 0xe9, 0x01, 0xb3, 0x28, 0x42, 0x5c, 0x01, 0x3c, 0xe9, 0x01, + 0xf5, 0x35, 0xe9, 0x01, 0x42, 0xf5, 0x0a, 0x3e, 0xe9, 0x01, 0x43, 0x8a, + 0x8a, 0x31, 0xe9, 0x01, 0xb9, 0x06, 0x43, 0xc4, 0xc1, 0x41, 0xe9, 0x41, + 0xe1, 0x34, 0xe9, 0x01, 0x42, 0xb0, 0x01, 0x30, 0xe9, 0x41, 0x42, 0x22, + 0x00, 0x43, 0xe9, 0x01, 0x49, 0xaa, 0xba, 0x27, 0xe9, 0x41, 0x42, 0x22, + 0x00, 0x3d, 0xe9, 0x01, 0x42, 0x42, 0x0b, 0x32, 0xe9, 0x01, 0x42, 0xbc, + 0x22, 0x3b, 0xe9, 0x41, 0x42, 0x44, 0x14, 0x33, 0xe9, 0x01, 0x42, 0x22, + 0x00, 0x3f, 0xe9, 0x01, 0x42, 0x9c, 0x01, 0x42, 0xe9, 0x41, 0xe1, 0x3a, + 0xe9, 0x01, 0x42, 0xb7, 0x05, 0x40, 0xe9, 0x41, 0x44, 0xd7, 0x2c, 0x23, + 0xe9, 0x01, 0x42, 0x22, 0x00, 0x2f, 0xe9, 0x41, 0xe1, 0x26, 0xe9, 0x01, + 0x42, 0xb0, 0x01, 0x29, 0xe9, 0x41, 0x50, 0x61, 0x5c, 0x4b, 0xe9, 0x01, + 0x44, 0x40, 0x3f, 0x4a, 0xe9, 0x41, 0x50, 0xad, 0x00, 0x5e, 0xe9, 0x01, + 0x4d, 0xa6, 0x34, 0x5f, 0xe9, 0x41, 0x54, 0xe0, 0x41, 0x49, 0xe9, 0x01, + 0x48, 0xb5, 0x00, 0x46, 0xe9, 0x41, 0x45, 0x12, 0x0b, 0x58, 0xe9, 0x01, + 0xa6, 0x2e, 0x44, 0xcf, 0x2a, 0x59, 0xe9, 0x01, 0x43, 0x0e, 0x0b, 0x51, + 0xe9, 0x01, 0xb3, 0x14, 0xb4, 0x06, 0x44, 0x43, 0x1e, 0x50, 0xe9, 0x41, + 0x44, 0x25, 0x01, 0x53, 0xe9, 0x01, 0x42, 0x15, 0x02, 0x52, 0xe9, 0x41, + 0x44, 0xc9, 0x1d, 0x57, 0xe9, 0x01, 0x42, 0x01, 0x26, 0x56, 0xe9, 0x41, + 0x43, 0xd2, 0x05, 0x55, 0xe9, 0x01, 0x43, 0xf6, 0x06, 0x54, 0xe9, 0x41, + 0x0e, 0xe5, 0x05, 0x06, 0x51, 0x28, 0x33, 0x48, 0xe9, 0x41, 0x44, 0x9b, + 0x6a, 0x00, 0xe9, 0x01, 0xa2, 0xbc, 0x01, 0x43, 0x79, 0x16, 0x15, 0xe9, + 0x01, 0xa4, 0xa7, 0x01, 0xe5, 0x09, 0xe9, 0x01, 0x42, 0x0c, 0x08, 0x0a, + 0xe9, 0x01, 0xa7, 0x90, 0x01, 0x42, 0x22, 0x00, 0x16, 0xe9, 0x01, 0xe9, + 0x0b, 0xe9, 0x01, 0x44, 0xb1, 0xf0, 0x14, 0xe9, 0x01, 0xab, 0x6c, 0x44, + 0x68, 0x89, 0x02, 0xe9, 0x01, 0x44, 0x31, 0xf1, 0x03, 0xe9, 0x01, 0xae, + 0x4c, 0xef, 0x0c, 0xe9, 0x01, 0x42, 0x6f, 0x02, 0x06, 0xe9, 0x01, 0x44, + 0x1a, 0xea, 0x17, 0xe9, 0x01, 0x42, 0x71, 0x00, 0x08, 0xe9, 0x01, 0xb3, + 0x28, 0x42, 0x5c, 0x01, 0x1a, 0xe9, 0x01, 0xf5, 0x13, 0xe9, 0x01, 0x42, + 0xf5, 0x0a, 0x1c, 0xe9, 0x01, 0x43, 0x8a, 0x8a, 0x0f, 0xe9, 0x01, 0xb9, + 0x06, 0x43, 0xc4, 0xc1, 0x1f, 0xe9, 0x41, 0xe1, 0x12, 0xe9, 0x01, 0x42, + 0xb0, 0x01, 0x0e, 0xe9, 0x41, 0x42, 0x22, 0x00, 0x21, 0xe9, 0x01, 0x49, + 0xaa, 0xba, 0x05, 0xe9, 0x41, 0x42, 0x22, 0x00, 0x1b, 0xe9, 0x01, 0x42, + 0x42, 0x0b, 0x10, 0xe9, 0x01, 0x42, 0xbc, 0x22, 0x19, 0xe9, 0x41, 0x42, + 0x44, 0x14, 0x11, 0xe9, 0x01, 0x42, 0x22, 0x00, 0x1d, 0xe9, 0x01, 0x42, + 0x9c, 0x01, 0x20, 0xe9, 0x41, 0xe1, 0x18, 0xe9, 0x01, 0x42, 0xb7, 0x05, + 0x1e, 0xe9, 0x41, 0x44, 0xd7, 0x2c, 0x01, 0xe9, 0x01, 0x42, 0x22, 0x00, + 0x0d, 0xe9, 0x41, 0xe1, 0x04, 0xe9, 0x01, 0x42, 0xb0, 0x01, 0x07, 0xe9, + 0x41, 0x48, 0x12, 0x2e, 0xe6, 0x23, 0x00, 0x02, 0x13, 0x05, 0x27, 0x49, + 0xe8, 0x51, 0x06, 0x00, 0x00, 0x07, 0x6b, 0xd6, 0x11, 0x05, 0xfb, 0x38, + 0x01, 0xff, 0x45, 0xdb, 0x04, 0xb4, 0x00, 0x00, 0x44, 0x05, 0x02, 0x9f, + 0x29, 0x40, 0x53, 0x28, 0x48, 0x6d, 0x20, 0x00, 0x52, 0x99, 0x55, 0x6b, + 0x20, 0x40, 0x45, 0x3d, 0xea, 0x97, 0xfa, 0x01, 0x46, 0xcb, 0x6a, 0x00, + 0x21, 0x40 }; static const cppchar_t uname2c_pairs[] = { 0xac00, 0xd7a3 /* HANGUL SYLLABLE */, 0, 0x3400, 0x4dbf /* CJK UNIFIED IDEOGRAPH- */, 0x4e00, 0x9fff /* CJK UNIFIED IDEOGRAPH- */, 0x20000, 0x2a6df /* CJK UNIFIED IDEOGRAPH- */, - 0x2a700, 0x2b739 /* CJK UNIFIED IDEOGRAPH- */, + 0x2a700, 0x2b73f /* CJK UNIFIED IDEOGRAPH- */, 0x2b740, 0x2b81d /* CJK UNIFIED IDEOGRAPH- */, - 0x2b820, 0x2cea1 /* CJK UNIFIED IDEOGRAPH- */, + 0x2b820, 0x2cead /* CJK UNIFIED IDEOGRAPH- */, 0x2ceb0, 0x2ebe0 /* CJK UNIFIED IDEOGRAPH- */, 0x2ebf0, 0x2ee5d /* CJK UNIFIED IDEOGRAPH- */, 0x30000, 0x3134a /* CJK UNIFIED IDEOGRAPH- */, - 0x31350, 0x323af /* CJK UNIFIED IDEOGRAPH- */, 0, + 0x31350, 0x323af /* CJK UNIFIED IDEOGRAPH- */, + 0x323b0, 0x33479 /* CJK UNIFIED IDEOGRAPH- */, 0, 0x13460, 0x143fa /* EGYPTIAN HIEROGLYPH- */, 0, - 0x17000, 0x187f7 /* TANGUT IDEOGRAPH- */, - 0x18d00, 0x18d08 /* TANGUT IDEOGRAPH- */, 0, + 0x17000, 0x187ff /* TANGUT IDEOGRAPH- */, + 0x18d00, 0x18d1e /* TANGUT IDEOGRAPH- */, 0, 0x18b00, 0x18cd5 /* KHITAN SMALL SCRIPT CHARACTER- */, 0, 0x1b170, 0x1b2fb /* NUSHU CHARACTER- */, 0, 0xf900, 0xfa6d /* CJK COMPATIBILITY IDEOGRAPH- */, @@ -19084,11 +19331,11 @@ static const cppchar_t uname2c_pairs[] = { static const unsigned char uname2c_generated[] = { 0 /* HANGUL SYLLABLE */, 3 /* CJK UNIFIED IDEOGRAPH- */, - 24 /* EGYPTIAN HIEROGLYPH- */, - 27 /* TANGUT IDEOGRAPH- */, - 32 /* KHITAN SMALL SCRIPT CHARACTER- */, - 35 /* NUSHU CHARACTER- */, - 38 /* CJK COMPATIBILITY IDEOGRAPH- */ }; + 26 /* EGYPTIAN HIEROGLYPH- */, + 29 /* TANGUT IDEOGRAPH- */, + 34 /* KHITAN SMALL SCRIPT CHARACTER- */, + 37 /* NUSHU CHARACTER- */, + 40 /* CJK COMPATIBILITY IDEOGRAPH- */ }; static const unsigned int uname2c_max_name_len = 88; diff --git a/libffi/ChangeLog b/libffi/ChangeLog index aa96baa27144..fa099adcb70b 100644 --- a/libffi/ChangeLog +++ b/libffi/ChangeLog @@ -1,3 +1,12 @@ +2025-10-05 Sam James + + * Makefile.in: Regenerate. + * aclocal.m4: Regenerate. + * configure: Regenerate. + * include/Makefile.in: Regenerate. + * man/Makefile.in: Regenerate. + * testsuite/Makefile.in: Regenerate. + 2024-10-24 Yang Yujie * src/loongarch64/ffi.c: Avoid defining floats diff --git a/libffi/Makefile.in b/libffi/Makefile.in index 1003b58b9443..35c903548213 100644 --- a/libffi/Makefile.in +++ b/libffi/Makefile.in @@ -100,8 +100,10 @@ ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/../config/acx.m4 \ $(top_srcdir)/../config/asmcfi.m4 \ $(top_srcdir)/../config/cet.m4 \ + $(top_srcdir)/../config/clang-plugin.m4 \ $(top_srcdir)/../config/depstand.m4 \ $(top_srcdir)/../config/enable.m4 \ + $(top_srcdir)/../config/gcc-plugin.m4 \ $(top_srcdir)/../config/lead-dot.m4 \ $(top_srcdir)/../config/multi.m4 \ $(top_srcdir)/../config/override.m4 \ @@ -356,6 +358,7 @@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LIPO = @LIPO@ +LLVM_CONFIG = @LLVM_CONFIG@ LN_S = @LN_S@ LTLIBOBJS = @LTLIBOBJS@ MAINT = @MAINT@ diff --git a/libffi/aclocal.m4 b/libffi/aclocal.m4 index 736ec308d5b7..7d21fa0497c9 100644 --- a/libffi/aclocal.m4 +++ b/libffi/aclocal.m4 @@ -1190,8 +1190,10 @@ AC_SUBST([am__untar]) m4_include([../config/acx.m4]) m4_include([../config/asmcfi.m4]) m4_include([../config/cet.m4]) +m4_include([../config/clang-plugin.m4]) m4_include([../config/depstand.m4]) m4_include([../config/enable.m4]) +m4_include([../config/gcc-plugin.m4]) m4_include([../config/lead-dot.m4]) m4_include([../config/multi.m4]) m4_include([../config/override.m4]) diff --git a/libffi/configure b/libffi/configure index f82a45b13bcb..3876ec06201a 100755 --- a/libffi/configure +++ b/libffi/configure @@ -671,7 +671,6 @@ READELF ENABLE_DARWIN_AT_RPATH_FALSE ENABLE_DARWIN_AT_RPATH_TRUE CXXCPP -CPP OTOOL64 OTOOL LIPO @@ -679,6 +678,8 @@ NMEDIT DSYMUTIL RANLIB AR +LLVM_CONFIG +CPP OBJDUMP LN_S NM @@ -1667,6 +1668,43 @@ fi } # ac_fn_cxx_try_compile +# ac_fn_c_try_cpp LINENO +# ---------------------- +# Try to preprocess conftest.$ac_ext, and return whether this succeeded. +ac_fn_c_try_cpp () +{ + as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack + if { { ac_try="$ac_cpp conftest.$ac_ext" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" +$as_echo "$ac_try_echo"; } >&5 + (eval "$ac_cpp conftest.$ac_ext") 2>conftest.err + ac_status=$? + if test -s conftest.err; then + grep -v '^ *+' conftest.err >conftest.er1 + cat conftest.er1 >&5 + mv -f conftest.er1 conftest.err + fi + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } > conftest.i && { + test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" || + test ! -s conftest.err + }; then : + ac_retval=0 +else + $as_echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_retval=1 +fi + eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno + as_fn_set_status $ac_retval + +} # ac_fn_c_try_cpp + # ac_fn_c_try_link LINENO # ----------------------- # Try to link conftest.$ac_ext, and return whether this succeeded. @@ -1744,43 +1782,6 @@ $as_echo "$ac_res" >&6; } } # ac_fn_c_check_header_compile -# ac_fn_c_try_cpp LINENO -# ---------------------- -# Try to preprocess conftest.$ac_ext, and return whether this succeeded. -ac_fn_c_try_cpp () -{ - as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack - if { { ac_try="$ac_cpp conftest.$ac_ext" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" -$as_echo "$ac_try_echo"; } >&5 - (eval "$ac_cpp conftest.$ac_ext") 2>conftest.err - ac_status=$? - if test -s conftest.err; then - grep -v '^ *+' conftest.err >conftest.er1 - cat conftest.er1 >&5 - mv -f conftest.er1 conftest.err - fi - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; } > conftest.i && { - test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" || - test ! -s conftest.err - }; then : - ac_retval=0 -else - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - ac_retval=1 -fi - eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno - as_fn_set_status $ac_retval - -} # ac_fn_c_try_cpp - # ac_fn_c_try_run LINENO # ---------------------- # Try to link conftest.$ac_ext, and return whether this succeeded. Assumes @@ -6390,29 +6391,190 @@ test -z "$deplibs_check_method" && deplibs_check_method=unknown -plugin_option= -plugin_names="liblto_plugin.so liblto_plugin-0.dll cyglto_plugin-0.dll" -for plugin in $plugin_names; do - plugin_so=`${CC} ${CFLAGS} --print-prog-name $plugin` - if test x$plugin_so = x$plugin; then - plugin_so=`${CC} ${CFLAGS} --print-file-name $plugin` - fi - if test x$plugin_so != x$plugin; then - plugin_option="--plugin $plugin_so" - break - fi +ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to run the C preprocessor" >&5 +$as_echo_n "checking how to run the C preprocessor... " >&6; } +# On Suns, sometimes $CPP names a directory. +if test -n "$CPP" && test -d "$CPP"; then + CPP= +fi +if test -z "$CPP"; then + if ${ac_cv_prog_CPP+:} false; then : + $as_echo_n "(cached) " >&6 +else + # Double quotes because CPP needs to be expanded + for CPP in "$CC -E" "$CC -E -traditional-cpp" "/lib/cpp" + do + ac_preproc_ok=false +for ac_c_preproc_warn_flag in '' yes +do + # Use a header file that comes with gcc, so configuring glibc + # with a fresh cross-compiler works. + # Prefer to if __STDC__ is defined, since + # exists even on freestanding compilers. + # On the NeXT, cc -E runs the code through the compiler's parser, + # not just through cpp. "Syntax error" is here to catch this case. + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#ifdef __STDC__ +# include +#else +# include +#endif + Syntax error +_ACEOF +if ac_fn_c_try_cpp "$LINENO"; then : + +else + # Broken: fails on valid input. +continue +fi +rm -f conftest.err conftest.i conftest.$ac_ext + + # OK, works on sane cases. Now check whether nonexistent headers + # can be detected and how. + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include +_ACEOF +if ac_fn_c_try_cpp "$LINENO"; then : + # Broken: success on invalid input. +continue +else + # Passes both tests. +ac_preproc_ok=: +break +fi +rm -f conftest.err conftest.i conftest.$ac_ext + done +# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped. +rm -f conftest.i conftest.err conftest.$ac_ext +if $ac_preproc_ok; then : + break +fi -if test -n "$ac_tool_prefix"; then - # Extract the first word of "${ac_tool_prefix}ar", so it can be a program name with args. -set dummy ${ac_tool_prefix}ar; ac_word=$2 + done + ac_cv_prog_CPP=$CPP + +fi + CPP=$ac_cv_prog_CPP +else + ac_cv_prog_CPP=$CPP +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $CPP" >&5 +$as_echo "$CPP" >&6; } +ac_preproc_ok=false +for ac_c_preproc_warn_flag in '' yes +do + # Use a header file that comes with gcc, so configuring glibc + # with a fresh cross-compiler works. + # Prefer to if __STDC__ is defined, since + # exists even on freestanding compilers. + # On the NeXT, cc -E runs the code through the compiler's parser, + # not just through cpp. "Syntax error" is here to catch this case. + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#ifdef __STDC__ +# include +#else +# include +#endif + Syntax error +_ACEOF +if ac_fn_c_try_cpp "$LINENO"; then : + +else + # Broken: fails on valid input. +continue +fi +rm -f conftest.err conftest.i conftest.$ac_ext + + # OK, works on sane cases. Now check whether nonexistent headers + # can be detected and how. + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include +_ACEOF +if ac_fn_c_try_cpp "$LINENO"; then : + # Broken: success on invalid input. +continue +else + # Passes both tests. +ac_preproc_ok=: +break +fi +rm -f conftest.err conftest.i conftest.$ac_ext + +done +# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped. +rm -f conftest.i conftest.err conftest.$ac_ext +if $ac_preproc_ok; then : + +else + { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 +$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} +as_fn_error $? "C preprocessor \"$CPP\" fails sanity check +See \`config.log' for more details" "$LINENO" 5; } +fi + +ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu + + + +# Try CLANG_PLUGIN_FILE first since GCC_PLUGIN_OPTION may return the +# wrong plugin_option with clang. + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for clang" >&5 +$as_echo_n "checking for clang... " >&6; } +if ${clang_cv_is_clang+:} false; then : + $as_echo_n "(cached) " >&6 +else + + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +#ifdef __clang__ + yes +#endif + +_ACEOF +if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | + $EGREP "yes" >/dev/null 2>&1; then : + clang_cv_is_clang=yes +else + clang_cv_is_clang=no +fi +rm -f conftest* + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $clang_cv_is_clang" >&5 +$as_echo "$clang_cv_is_clang" >&6; } + plugin_file= + if test $clang_cv_is_clang = yes; then + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for clang plugin file" >&5 +$as_echo_n "checking for clang plugin file... " >&6; } + plugin_names="LLVMgold.so" + for plugin in $plugin_names; do + plugin_file=`${CC} ${CFLAGS} --print-file-name $plugin` + if test x$plugin_file = x$plugin; then + if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}llvm-config", so it can be a program name with args. +set dummy ${ac_tool_prefix}llvm-config; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_prog_AR+:} false; then : +if ${ac_cv_prog_LLVM_CONFIG+:} false; then : $as_echo_n "(cached) " >&6 else - if test -n "$AR"; then - ac_cv_prog_AR="$AR" # Let the user override the test. + if test -n "$LLVM_CONFIG"; then + ac_cv_prog_LLVM_CONFIG="$LLVM_CONFIG" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH @@ -6421,7 +6583,7 @@ do test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_prog_AR="${ac_tool_prefix}ar" + ac_cv_prog_LLVM_CONFIG="${ac_tool_prefix}llvm-config" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi @@ -6431,10 +6593,10 @@ IFS=$as_save_IFS fi fi -AR=$ac_cv_prog_AR -if test -n "$AR"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $AR" >&5 -$as_echo "$AR" >&6; } +LLVM_CONFIG=$ac_cv_prog_LLVM_CONFIG +if test -n "$LLVM_CONFIG"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $LLVM_CONFIG" >&5 +$as_echo "$LLVM_CONFIG" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } @@ -6442,13 +6604,120 @@ fi fi -if test -z "$ac_cv_prog_AR"; then - ac_ct_AR=$AR - # Extract the first word of "ar", so it can be a program name with args. -set dummy ar; ac_word=$2 +if test -z "$ac_cv_prog_LLVM_CONFIG"; then + ac_ct_LLVM_CONFIG=$LLVM_CONFIG + # Extract the first word of "llvm-config", so it can be a program name with args. +set dummy llvm-config; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_prog_ac_ct_AR+:} false; then : +if ${ac_cv_prog_ac_ct_LLVM_CONFIG+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$ac_ct_LLVM_CONFIG"; then + ac_cv_prog_ac_ct_LLVM_CONFIG="$ac_ct_LLVM_CONFIG" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_ac_ct_LLVM_CONFIG="llvm-config" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +ac_ct_LLVM_CONFIG=$ac_cv_prog_ac_ct_LLVM_CONFIG +if test -n "$ac_ct_LLVM_CONFIG"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_LLVM_CONFIG" >&5 +$as_echo "$ac_ct_LLVM_CONFIG" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + if test "x$ac_ct_LLVM_CONFIG" = x; then + LLVM_CONFIG="" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + LLVM_CONFIG=$ac_ct_LLVM_CONFIG + fi +else + LLVM_CONFIG="$ac_cv_prog_LLVM_CONFIG" +fi + + if test "$?" != 0; then + as_fn_error $? "Required tool 'llvm-config' not found on PATH." "$LINENO" 5 + fi + clang_lib_dir=`$LLVM_CONFIG --libdir` + if test -f $clang_lib_dir/$plugin; then + plugin_file=$clang_lib_dir/$plugin + fi + if test x$plugin_file != x$plugin; then + break; + fi + fi + done + if test -z $plugin_file; then + as_fn_error $? "Couldn't find clang plugin file for $CC." "$LINENO" 5 + fi + if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}ar", so it can be a program name with args. +set dummy ${ac_tool_prefix}ar; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_AR+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$AR"; then + ac_cv_prog_AR="$AR" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_AR="${ac_tool_prefix}ar" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +AR=$ac_cv_prog_AR +if test -n "$AR"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $AR" >&5 +$as_echo "$AR" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + +fi +if test -z "$ac_cv_prog_AR"; then + ac_ct_AR=$AR + # Extract the first word of "ar", so it can be a program name with args. +set dummy ar; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_ac_ct_AR+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_AR"; then @@ -6481,7 +6750,7 @@ $as_echo "no" >&6; } fi if test "x$ac_ct_AR" = x; then - AR="false" + AR="" else case $cross_compiling:$ac_tool_warned in yes:) @@ -6495,19 +6764,257 @@ else AR="$ac_cv_prog_AR" fi -test -z "$AR" && AR=ar -if test -n "$plugin_option"; then - if $AR --help 2>&1 | grep -q "\--plugin"; then + if test "${AR}" = "" ; then + as_fn_error $? "Required archive tool 'ar' not found on PATH." "$LINENO" 5 + fi + plugin_option="--plugin $plugin_file" touch conftest.c - $AR $plugin_option rc conftest.a conftest.c + ${AR} $plugin_option rc conftest.a conftest.c if test "$?" != 0; then { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Failed: $AR $plugin_option rc" >&5 $as_echo "$as_me: WARNING: Failed: $AR $plugin_option rc" >&2;} - else - AR="$AR $plugin_option" + plugin_file= fi rm -f conftest.* + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $plugin_file" >&5 +$as_echo "$plugin_file" >&6; } + fi + plugin_file="$plugin_file" + +if test -n "$plugin_file"; then + plugin_option="--plugin $plugin_file" +else + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for -plugin option" >&5 +$as_echo_n "checking for -plugin option... " >&6; } + +plugin_names="liblto_plugin.so liblto_plugin-0.dll cyglto_plugin-0.dll" +plugin_option= +for plugin in $plugin_names; do + plugin_so=`${CC} ${CFLAGS} --print-prog-name $plugin` + if test x$plugin_so = x$plugin; then + plugin_so=`${CC} ${CFLAGS} --print-file-name $plugin` + fi + if test x$plugin_so != x$plugin; then + plugin_option="--plugin $plugin_so" + break + fi +done +if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}ar", so it can be a program name with args. +set dummy ${ac_tool_prefix}ar; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_AR+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$AR"; then + ac_cv_prog_AR="$AR" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_AR="${ac_tool_prefix}ar" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +AR=$ac_cv_prog_AR +if test -n "$AR"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $AR" >&5 +$as_echo "$AR" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + +fi +if test -z "$ac_cv_prog_AR"; then + ac_ct_AR=$AR + # Extract the first word of "ar", so it can be a program name with args. +set dummy ar; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_ac_ct_AR+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$ac_ct_AR"; then + ac_cv_prog_ac_ct_AR="$ac_ct_AR" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_ac_ct_AR="ar" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +ac_ct_AR=$ac_cv_prog_ac_ct_AR +if test -n "$ac_ct_AR"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_AR" >&5 +$as_echo "$ac_ct_AR" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + if test "x$ac_ct_AR" = x; then + AR="" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + AR=$ac_ct_AR + fi +else + AR="$ac_cv_prog_AR" +fi + +if test "${AR}" = "" ; then + as_fn_error $? "Required archive tool 'ar' not found on PATH." "$LINENO" 5 +fi +touch conftest.c +${AR} $plugin_option rc conftest.a conftest.c +if test "$?" != 0; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Failed: $AR $plugin_option rc" >&5 +$as_echo "$as_me: WARNING: Failed: $AR $plugin_option rc" >&2;} + plugin_option= +fi +rm -f conftest.* +if test -n "$plugin_option"; then + plugin_option="$plugin_option" + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $plugin_option" >&5 +$as_echo "$plugin_option" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + +fi +if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}ar", so it can be a program name with args. +set dummy ${ac_tool_prefix}ar; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_AR+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$AR"; then + ac_cv_prog_AR="$AR" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_AR="${ac_tool_prefix}ar" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 fi +done + done +IFS=$as_save_IFS + +fi +fi +AR=$ac_cv_prog_AR +if test -n "$AR"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $AR" >&5 +$as_echo "$AR" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + +fi +if test -z "$ac_cv_prog_AR"; then + ac_ct_AR=$AR + # Extract the first word of "ar", so it can be a program name with args. +set dummy ar; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_ac_ct_AR+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$ac_ct_AR"; then + ac_cv_prog_ac_ct_AR="$ac_ct_AR" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_ac_ct_AR="ar" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +ac_ct_AR=$ac_cv_prog_ac_ct_AR +if test -n "$ac_ct_AR"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_AR" >&5 +$as_echo "$ac_ct_AR" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + if test "x$ac_ct_AR" = x; then + AR="false" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + AR=$ac_ct_AR + fi +else + AR="$ac_cv_prog_AR" +fi + +test -z "$AR" && AR=ar +if test -n "$plugin_option"; then + case "$AR" in + *"$plugin_option"*) + ;; + *) + if $AR --help 2>&1 | grep -q "\--plugin"; then + AR="$AR $plugin_option" + fi + ;; + esac fi test -z "$AR_FLAGS" && AR_FLAGS=cru @@ -6714,9 +7221,15 @@ fi test -z "$RANLIB" && RANLIB=: if test -n "$plugin_option" && test "$RANLIB" != ":"; then - if $RANLIB --help 2>&1 | grep -q "\--plugin"; then - RANLIB="$RANLIB $plugin_option" - fi + case "$RANLIB" in + *"$plugin_option"*) + ;; + *) + if $RANLIB --help 2>&1 | grep -q "\--plugin"; then + RANLIB="$RANLIB $plugin_option" + fi + ;; + esac fi @@ -7868,144 +8381,6 @@ $as_echo "$lt_cv_ld_force_load" >&6; } ;; esac -ac_ext=c -ac_cpp='$CPP $CPPFLAGS' -ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' -ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_c_compiler_gnu -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to run the C preprocessor" >&5 -$as_echo_n "checking how to run the C preprocessor... " >&6; } -# On Suns, sometimes $CPP names a directory. -if test -n "$CPP" && test -d "$CPP"; then - CPP= -fi -if test -z "$CPP"; then - if ${ac_cv_prog_CPP+:} false; then : - $as_echo_n "(cached) " >&6 -else - # Double quotes because CPP needs to be expanded - for CPP in "$CC -E" "$CC -E -traditional-cpp" "/lib/cpp" - do - ac_preproc_ok=false -for ac_c_preproc_warn_flag in '' yes -do - # Use a header file that comes with gcc, so configuring glibc - # with a fresh cross-compiler works. - # Prefer to if __STDC__ is defined, since - # exists even on freestanding compilers. - # On the NeXT, cc -E runs the code through the compiler's parser, - # not just through cpp. "Syntax error" is here to catch this case. - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#ifdef __STDC__ -# include -#else -# include -#endif - Syntax error -_ACEOF -if ac_fn_c_try_cpp "$LINENO"; then : - -else - # Broken: fails on valid input. -continue -fi -rm -f conftest.err conftest.i conftest.$ac_ext - - # OK, works on sane cases. Now check whether nonexistent headers - # can be detected and how. - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include -_ACEOF -if ac_fn_c_try_cpp "$LINENO"; then : - # Broken: success on invalid input. -continue -else - # Passes both tests. -ac_preproc_ok=: -break -fi -rm -f conftest.err conftest.i conftest.$ac_ext - -done -# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped. -rm -f conftest.i conftest.err conftest.$ac_ext -if $ac_preproc_ok; then : - break -fi - - done - ac_cv_prog_CPP=$CPP - -fi - CPP=$ac_cv_prog_CPP -else - ac_cv_prog_CPP=$CPP -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $CPP" >&5 -$as_echo "$CPP" >&6; } -ac_preproc_ok=false -for ac_c_preproc_warn_flag in '' yes -do - # Use a header file that comes with gcc, so configuring glibc - # with a fresh cross-compiler works. - # Prefer to if __STDC__ is defined, since - # exists even on freestanding compilers. - # On the NeXT, cc -E runs the code through the compiler's parser, - # not just through cpp. "Syntax error" is here to catch this case. - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#ifdef __STDC__ -# include -#else -# include -#endif - Syntax error -_ACEOF -if ac_fn_c_try_cpp "$LINENO"; then : - -else - # Broken: fails on valid input. -continue -fi -rm -f conftest.err conftest.i conftest.$ac_ext - - # OK, works on sane cases. Now check whether nonexistent headers - # can be detected and how. - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include -_ACEOF -if ac_fn_c_try_cpp "$LINENO"; then : - # Broken: success on invalid input. -continue -else - # Passes both tests. -ac_preproc_ok=: -break -fi -rm -f conftest.err conftest.i conftest.$ac_ext - -done -# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped. -rm -f conftest.i conftest.err conftest.$ac_ext -if $ac_preproc_ok; then : - -else - { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 -$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} -as_fn_error $? "C preprocessor \"$CPP\" fails sanity check -See \`config.log' for more details" "$LINENO" 5; } -fi - -ac_ext=c -ac_cpp='$CPP $CPPFLAGS' -ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' -ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_c_compiler_gnu - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ANSI C header files" >&5 $as_echo_n "checking for ANSI C header files... " >&6; } if ${ac_cv_header_stdc+:} false; then : @@ -11688,7 +12063,7 @@ else lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 lt_status=$lt_dlunknown cat > conftest.$ac_ext <<_LT_EOF -#line 11691 "configure" +#line 12066 "configure" #include "confdefs.h" #if HAVE_DLFCN_H @@ -11794,7 +12169,7 @@ else lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 lt_status=$lt_dlunknown cat > conftest.$ac_ext <<_LT_EOF -#line 11797 "configure" +#line 12172 "configure" #include "confdefs.h" #if HAVE_DLFCN_H diff --git a/libffi/include/Makefile.in b/libffi/include/Makefile.in index 9759f0d91dca..df8b9f64caed 100644 --- a/libffi/include/Makefile.in +++ b/libffi/include/Makefile.in @@ -94,8 +94,10 @@ ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/../config/acx.m4 \ $(top_srcdir)/../config/asmcfi.m4 \ $(top_srcdir)/../config/cet.m4 \ + $(top_srcdir)/../config/clang-plugin.m4 \ $(top_srcdir)/../config/depstand.m4 \ $(top_srcdir)/../config/enable.m4 \ + $(top_srcdir)/../config/gcc-plugin.m4 \ $(top_srcdir)/../config/lead-dot.m4 \ $(top_srcdir)/../config/multi.m4 \ $(top_srcdir)/../config/override.m4 \ @@ -228,6 +230,7 @@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LIPO = @LIPO@ +LLVM_CONFIG = @LLVM_CONFIG@ LN_S = @LN_S@ LTLIBOBJS = @LTLIBOBJS@ MAINT = @MAINT@ diff --git a/libffi/man/Makefile.in b/libffi/man/Makefile.in index 18de1e836f5b..2770d403398f 100644 --- a/libffi/man/Makefile.in +++ b/libffi/man/Makefile.in @@ -93,8 +93,10 @@ ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/../config/acx.m4 \ $(top_srcdir)/../config/asmcfi.m4 \ $(top_srcdir)/../config/cet.m4 \ + $(top_srcdir)/../config/clang-plugin.m4 \ $(top_srcdir)/../config/depstand.m4 \ $(top_srcdir)/../config/enable.m4 \ + $(top_srcdir)/../config/gcc-plugin.m4 \ $(top_srcdir)/../config/lead-dot.m4 \ $(top_srcdir)/../config/multi.m4 \ $(top_srcdir)/../config/override.m4 \ @@ -210,6 +212,7 @@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LIPO = @LIPO@ +LLVM_CONFIG = @LLVM_CONFIG@ LN_S = @LN_S@ LTLIBOBJS = @LTLIBOBJS@ MAINT = @MAINT@ diff --git a/libffi/testsuite/Makefile.in b/libffi/testsuite/Makefile.in index 27d48a7ad7a5..28adf7112c84 100644 --- a/libffi/testsuite/Makefile.in +++ b/libffi/testsuite/Makefile.in @@ -93,8 +93,10 @@ ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/../config/acx.m4 \ $(top_srcdir)/../config/asmcfi.m4 \ $(top_srcdir)/../config/cet.m4 \ + $(top_srcdir)/../config/clang-plugin.m4 \ $(top_srcdir)/../config/depstand.m4 \ $(top_srcdir)/../config/enable.m4 \ + $(top_srcdir)/../config/gcc-plugin.m4 \ $(top_srcdir)/../config/lead-dot.m4 \ $(top_srcdir)/../config/multi.m4 \ $(top_srcdir)/../config/override.m4 \ @@ -183,6 +185,7 @@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LIPO = @LIPO@ +LLVM_CONFIG = @LLVM_CONFIG@ LN_S = @LN_S@ LTLIBOBJS = @LTLIBOBJS@ MAINT = @MAINT@ diff --git a/libgcc/ChangeLog b/libgcc/ChangeLog index 7e401bb1619d..e539f31be44d 100644 --- a/libgcc/ChangeLog +++ b/libgcc/ChangeLog @@ -1,3 +1,17 @@ +2025-10-07 H.J. Lu + + PR target/120691 + * Makefile.in (DECNUMINC): Add -I$(srcdir)/config/$(cpu_type). + * config/i386/dfp-machine.h: New file. + * config/i386/32/dfp-machine.h: Likewise. + * config/i386/64/dfp-machine.h: Likewise. + +2025-09-30 Andre Vieira + + * config/t-softfp: Don't use softfp_wrap for bitint functions. + (softfp_cflags): New parameter that is passed to the building of bitint + functions. + 2025-09-25 John David Anglin * config/pa/sync-libfuncs.c (atomic_store_8): Fix asm. diff --git a/libgcc/Makefile.in b/libgcc/Makefile.in index e258f943dddd..32a5a15813f8 100644 --- a/libgcc/Makefile.in +++ b/libgcc/Makefile.in @@ -232,7 +232,8 @@ version := $(shell @get_gcc_base_ver@ $(srcdir)/../gcc/BASE-VER) ifeq ($(decimal_float),yes) ifeq ($(enable_decimal_float),bid) -DECNUMINC = -I$(srcdir)/config/libbid -DENABLE_DECIMAL_BID_FORMAT +DECNUMINC = -I$(srcdir)/config/$(cpu_type) -I$(srcdir)/config/libbid \ + -DENABLE_DECIMAL_BID_FORMAT else DECNUMINC = -I$(srcdir)/../libdecnumber/$(enable_decimal_float) \ -I$(srcdir)/../libdecnumber diff --git a/libgcc/config/avr/libf7/ChangeLog b/libgcc/config/avr/libf7/ChangeLog index b19b5b489bed..c6e9cc647c88 100644 --- a/libgcc/config/avr/libf7/ChangeLog +++ b/libgcc/config/avr/libf7/ChangeLog @@ -1,3 +1,52 @@ +2025-10-09 Georg-Johann Lay + + PR target/122222 + * libf7-asm.sx (D_floatsidf, D_floatunsidf): New modules. + * libf7-common.mk (F7_ASM_PARTS): Add D_floatsidf, D_floatunsidf. + (F7F, g_dx): Remove floatunsidf, floatsidf. + * libf7.c (f7_set_s32): Don't alias to f7_floatsidf. + (f7_set_u32): Don't alias to f7_floatunsidf. + * f7-renames.h: Rebuild + * f7-wraps.h: Rebuild. + +2025-10-09 Georg-Johann Lay + + PR target/122220 + * libf7-asm.sx (to_integer): Return 0x80... on negative overflow. + +2025-10-09 Georg-Johann Lay + + PR target/122210 + * libf7-common.mk (F7_ASM_PARTS): Add D2 modules. + * libf7-asm.sx: Implement the D2 modules. + +2025-10-09 Georg-Johann Lay + + PR target/122210 + * libf7-common.mk (F7_ASM_PARTS): Add 2D modules. + * libf7-asm.sx: Implement the 2D modules. + +2025-10-06 Georg-Johann Lay + + * libf7-common.mk (F7_ASM_PARTS): Add D_sincos. + * libf7-asm.sx: (D_sincos): New module implements sincos / sincosl. + +2025-10-06 Georg-Johann Lay + + PR target/122177 + * libf7-common.mk (m_ddd): Remove: fmin, fmax. + (F7_ASM_PARTS): Add: D_fminfmax. + * libf7-asm.sx (D_fmanfmax): New module. + * f7-wraps.h: Rebuild. + +2025-10-06 Georg-Johann Lay + + * libf7-common.mk (g_xdd_cmp): Remove le, lt, ge, gt, ne, eq, unord. + (F7_ASM_PARTS): Add D_cmp, D_eq, D_ne, D_ge, D_gt, D_le, D_lt, D_unord. + * libf7-asm.sx (D_cmp, D_eq, D_ne, D_ge, D_gt, D_le, D_lt, D_unord): + New modules. + * f7-wraps.h: Rebuild. + 2025-05-27 Georg-Johann Lay PR target/120442 diff --git a/libgcc/config/avr/libf7/f7-renames.h b/libgcc/config/avr/libf7/f7-renames.h index bce2dd33e8a2..dc098517ada4 100644 --- a/libgcc/config/avr/libf7/f7-renames.h +++ b/libgcc/config/avr/libf7/f7-renames.h @@ -159,8 +159,6 @@ #define f7_min __f7_min #define f7_max __f7_max #define f7_exp10 __f7_exp10 -#define f7_floatunsidf __f7_floatunsidf -#define f7_floatsidf __f7_floatsidf #define f7_extendsfdf2 __f7_extendsfdf2 #define f7_fixdfsi __f7_fixdfsi #define f7_fixdfdi __f7_fixdfdi diff --git a/libgcc/config/avr/libf7/f7-wraps.h b/libgcc/config/avr/libf7/f7-wraps.h index 409492ed1d29..169957f50e02 100644 --- a/libgcc/config/avr/libf7/f7-wraps.h +++ b/libgcc/config/avr/libf7/f7-wraps.h @@ -79,77 +79,7 @@ _ENDF __divdf3 #endif /* F7MOD_D_div_ */ ;; Functions that usually live in libgcc: __df2 for in: -;; le lt ge gt ne eq unord - -;; bool __ledf2 (double, double) ; le -#ifdef F7MOD_D_le_ -_DEFUN __ledf2 - .global F7_NAME(le_impl) - ldi ZH, hi8(gs(F7_NAME(le_impl))) - ldi ZL, lo8(gs(F7_NAME(le_impl))) - F7jmp call_xdd -_ENDF __ledf2 -#endif /* F7MOD_D_le_ */ - -;; bool __ltdf2 (double, double) ; lt -#ifdef F7MOD_D_lt_ -_DEFUN __ltdf2 - .global F7_NAME(lt_impl) - ldi ZH, hi8(gs(F7_NAME(lt_impl))) - ldi ZL, lo8(gs(F7_NAME(lt_impl))) - F7jmp call_xdd -_ENDF __ltdf2 -#endif /* F7MOD_D_lt_ */ - -;; bool __gedf2 (double, double) ; ge -#ifdef F7MOD_D_ge_ -_DEFUN __gedf2 - .global F7_NAME(ge_impl) - ldi ZH, hi8(gs(F7_NAME(ge_impl))) - ldi ZL, lo8(gs(F7_NAME(ge_impl))) - F7jmp call_xdd -_ENDF __gedf2 -#endif /* F7MOD_D_ge_ */ - -;; bool __gtdf2 (double, double) ; gt -#ifdef F7MOD_D_gt_ -_DEFUN __gtdf2 - .global F7_NAME(gt_impl) - ldi ZH, hi8(gs(F7_NAME(gt_impl))) - ldi ZL, lo8(gs(F7_NAME(gt_impl))) - F7jmp call_xdd -_ENDF __gtdf2 -#endif /* F7MOD_D_gt_ */ - -;; bool __nedf2 (double, double) ; ne -#ifdef F7MOD_D_ne_ -_DEFUN __nedf2 - .global F7_NAME(ne_impl) - ldi ZH, hi8(gs(F7_NAME(ne_impl))) - ldi ZL, lo8(gs(F7_NAME(ne_impl))) - F7jmp call_xdd -_ENDF __nedf2 -#endif /* F7MOD_D_ne_ */ - -;; bool __eqdf2 (double, double) ; eq -#ifdef F7MOD_D_eq_ -_DEFUN __eqdf2 - .global F7_NAME(eq_impl) - ldi ZH, hi8(gs(F7_NAME(eq_impl))) - ldi ZL, lo8(gs(F7_NAME(eq_impl))) - F7jmp call_xdd -_ENDF __eqdf2 -#endif /* F7MOD_D_eq_ */ - -;; bool __unorddf2 (double, double) ; unord -#ifdef F7MOD_D_unord_ -_DEFUN __unorddf2 - .global F7_NAME(unord_impl) - ldi ZH, hi8(gs(F7_NAME(unord_impl))) - ldi ZL, lo8(gs(F7_NAME(unord_impl))) - F7jmp call_xdd -_ENDF __unorddf2 -#endif /* F7MOD_D_unord_ */ +;; (none) ;; Functions that usually live in libgcc: __ for in: ;; fixdfsi fixdfdi fixunsdfdi fixunsdfsi truncdfsf2 @@ -205,27 +135,7 @@ _ENDF __truncdfsf2 #endif /* F7MOD_D_truncdfsf2_ */ ;; Functions that usually live in libgcc: __ for in: -;; floatunsidf floatsidf extendsfdf2 - -;; double __floatunsidf (type_t) ; floatunsidf -#ifdef F7MOD_D_floatunsidf_ -_DEFUN __floatunsidf - .global F7_NAME(floatunsidf) - ldi ZH, hi8(gs(F7_NAME(floatunsidf))) - ldi ZL, lo8(gs(F7_NAME(floatunsidf))) - F7jmp call_dx -_ENDF __floatunsidf -#endif /* F7MOD_D_floatunsidf_ */ - -;; double __floatsidf (type_t) ; floatsidf -#ifdef F7MOD_D_floatsidf_ -_DEFUN __floatsidf - .global F7_NAME(floatsidf) - ldi ZH, hi8(gs(F7_NAME(floatsidf))) - ldi ZL, lo8(gs(F7_NAME(floatsidf))) - F7jmp call_dx -_ENDF __floatsidf -#endif /* F7MOD_D_floatsidf_ */ +;; extendsfdf2 ;; double __extendsfdf2 (type_t) ; extendsfdf2 #ifdef F7MOD_D_extendsfdf2_ @@ -239,7 +149,7 @@ _ENDF __extendsfdf2 ;; Functions that usually live in libm: Depending on [long] double layout, ;; define and l as weak alias(es) of __ for in: -;; pow fmin fmax fmod hypot atan2 fdim +;; pow fmod hypot atan2 fdim ;; double __pow (double, double) #ifdef F7MOD_D_pow_ @@ -253,30 +163,6 @@ _DEFUN __pow _ENDF __pow #endif /* F7MOD_D_pow_ */ -;; double __fmin (double, double) -#ifdef F7MOD_D_fmin_ -_DEFUN __fmin - DALIAS fmin - LALIAS fminl - .global F7_NAME(fmin) - ldi ZH, hi8(gs(F7_NAME(fmin))) - ldi ZL, lo8(gs(F7_NAME(fmin))) - F7jmp call_ddd -_ENDF __fmin -#endif /* F7MOD_D_fmin_ */ - -;; double __fmax (double, double) -#ifdef F7MOD_D_fmax_ -_DEFUN __fmax - DALIAS fmax - LALIAS fmaxl - .global F7_NAME(fmax) - ldi ZH, hi8(gs(F7_NAME(fmax))) - ldi ZL, lo8(gs(F7_NAME(fmax))) - F7jmp call_ddd -_ENDF __fmax -#endif /* F7MOD_D_fmax_ */ - ;; double __fmod (double, double) #ifdef F7MOD_D_fmod_ _DEFUN __fmod diff --git a/libgcc/config/avr/libf7/libf7-asm.sx b/libgcc/config/avr/libf7/libf7-asm.sx index a06792d155ff..f390eda73855 100644 --- a/libgcc/config/avr/libf7/libf7-asm.sx +++ b/libgcc/config/avr/libf7/libf7-asm.sx @@ -618,21 +618,7 @@ DEFUN to_integer .Lsaturate.T: #if F7_HAVE_Inf - brtc .Lset_0x7fff - ;; -Inf => return 1 + INTxx_MIN - mov ZL, Flags - .global __clr_8 - XCALL __clr_8 - ldi C6, 0x80 - - ldi CA+0, 0x01 - - sbrs Mask, 5 - ldi CA+4, 0x01 - - sbrs Mask, 4 - ldi CA+6, 0x01 - ret + brts .Lset_0x8000 .Lset_0x7fff: ;; +Inf => return INTxx_MAX @@ -644,7 +630,7 @@ DEFUN to_integer #endif /* F7_HAVE_Inf */ .Lset_0x8000: - ;; NaN => return INTxx_MIN + ;; NaN or -Inf => return INTxx_MIN .global __clr_8 XCALL __clr_8 ldi C6, 0x80 @@ -1727,6 +1713,321 @@ ENDF class_D #endif /* F7MOD_D_class_ */ +#ifdef F7MOD_D_cmp_ + +#define A0 18 +#define A1 A0 + 1 +#define A2 A0 + 2 +#define A3 A0 + 3 +#define A4 A0 + 4 +#define A5 A0 + 5 +#define A6 A0 + 6 +#define A7 A0 + 7 + +#define B0 10 +#define B1 B0 + 1 +#define B2 B0 + 2 +#define B3 B0 + 3 +#define B4 B0 + 4 +#define B5 B0 + 5 +#define B6 B0 + 6 +#define B7 B0 + 7 + +#define AA5 XH +#define AA6 ZL +#define AA7 ZH + +#define BB0 A0 +#define BB1 A1 +#define BB2 A2 +#define BB3 A3 +#define BB4 A4 +#define BB5 A5 +#define BB6 A6 +#define BB7 A7 + +;;; Helper for __df2 and __unorddf2. +;;; T = 1: Comparison is unordered. +;;; T = 0: Comparison is ordered, and Z, N, C, S flags are set according +;;; to compare (double A, double B) as if set by a signed int comparison. +;;; Note that f(+0) = f(-0) = 0. +;;; In any case: +;;; - return R24 = 1. +;;; - return R25.0 = isNaN (A) +;;; - return R25.1 = isNaN (B) +DEFUN D_cmp + rcall D_cmp.map_i64 + bld __tmp_reg__, 0 + push __tmp_reg__ + ;; Save A somewhere else... + wmov AA6, A6 + mov AA5, A5 + push A4 + push A3 + push A2 + push A1 + mov r0, A0 + ;; ... so that we can use D_cmp.map_i64 on B. + wmov BB6, B6 + wmov BB4, B4 + wmov BB2, B2 + wmov BB0, B0 + rcall D_cmp.map_i64 + ;; Run the following code even when B is NaN (T=1) so as to pop the regs. + ;; In the non-NaN case, AA and BB can be compared like int64_t for the + ;; sake of comparing A and B as double. + CP r0, BB0 $ pop r0 + cpc r0, BB1 $ pop r0 + cpc r0, BB2 $ pop r0 + cpc r0, BB3 $ pop r0 + cpc r0, BB4 + cpc AA5, BB5 + cpc AA6, BB6 + cpc AA7, BB7 + pop r25 + ;; R25.0 <=> A is NaN + ;; R25.1 <=> B is NaN + ;; T <=> comparison is unordered + bld r25, 1 + sbrc r25, 0 + set + ldi r24, 1 + ret + +;;; A is NaN: Set T=1. +;;; A is not a NaN: Set T=0, and map double A to int64_t such that +;;; f(A) f(B) iff A B, i.e. we can treat the result +;;; as int64_t for the matter of double comparison. +;;; Clobbers: XL. +D_cmp.map_i64: + bst A7, 7 + cbr A7, 0x80 + ;; If Inf < |A|, then we have a NaN. + CP __zero_reg__, A0 + cpc __zero_reg__, A1 + cpc __zero_reg__, A2 + cpc __zero_reg__, A3 + cpc __zero_reg__, A4 + cpc __zero_reg__, A5 + ldi XL, lo8(0x7ff0) $ cpc XL, A6 + ldi XL, hi8(0x7ff0) $ cpc XL, A7 + brlo .Lunord + brtc 9f + clt + .global __negdi2 + XJMP __negdi2 +.Lunord: + set +9: ret + +ENDF D_cmp +#endif /* F7MOD_D_cmp_ */ + + +;; bool __ledf2 (double, double); +#ifdef F7MOD_D_le_ +_DEFUN __ledf2 + F7call D_cmp + brts 0f + breq 1f + brlt 1f +0: ldi r24, 0 +1: ret +_ENDF __ledf2 +#endif /* F7MOD_D_le_ */ + +;; bool __ltdf2 (double, double); +#ifdef F7MOD_D_lt_ +_DEFUN __ltdf2 + F7call D_cmp + brts 0f + brlt 1f +0: ldi r24, 0 +1: ret +_ENDF __ltdf2 +#endif /* F7MOD_D_lt_ */ + +;; bool __gedf2 (double, double); +#ifdef F7MOD_D_ge_ +_DEFUN __gedf2 + F7call D_cmp + brts 0f + brge 1f +0: ldi r24, 0 +1: ret +_ENDF __gedf2 +#endif /* F7MOD_D_ge_ */ + +;; bool __gtdf2 (double, double); +#ifdef F7MOD_D_gt_ +_DEFUN __gtdf2 + F7call D_cmp + brts 0f + breq 0f + brge 1f +0: ldi r24, 0 +1: ret +_ENDF __gtdf2 +#endif /* F7MOD_D_gt_ */ + +;; bool __nedf2 (double, double); +#ifdef F7MOD_D_ne_ +_DEFUN __nedf2 + F7call D_cmp + brts 0f + brne 1f +0: ldi r24, 0 +1: ret +_ENDF __nedf2 +#endif /* F7MOD_D_ne_ */ + +;; bool __eqdf2 (double, double); +#ifdef F7MOD_D_eq_ +_DEFUN __eqdf2 + F7call D_cmp + brts 0f + breq 1f +0: ldi r24, 0 +1: ret +_ENDF __eqdf2 +#endif /* F7MOD_D_eq_ */ + +;; bool __unorddf2 (double, double); +#ifdef F7MOD_D_unord_ +_DEFUN __unorddf2 + F7call D_cmp + bld r24, 0 + ret +_ENDF __unorddf2 +#endif /* F7MOD_D_unord_ */ + +#ifdef F7MOD_D_fminfmax_ +_DEFUN __fmin +DALIAS fmin +LALIAS fminl + inc __zero_reg__ + +_LABEL __fmax +DALIAS fmax +LALIAS fmaxl + ;; Push A[]. + push r25 + push r24 + push r23 + push r22 + push r21 + push r20 + push r19 + push r18 + ;; fmin or fmax + push __zero_reg__ + clr __zero_reg__ + + XCALL __gedf2 + + pop __tmp_reg__ + andi r25, 0x3 ; NaNs? + brne .Lnan + ;; No NaNs involved. + eor __tmp_reg__, r24 ; (f == fmin) ^ (A >= B) + brne 1f +2: + ;; Return B since the cases are: + ;; fmax && A < B + ;; fmin && A >= B +#ifdef __AVR_XMEGA__ + in XL, __SP_L__ + in XH, __SP_H__ + adiw XL, 8 + out __SP_L__, XL + out __SP_H__, XH +#else + pop r0 $ pop r0 $ pop r0 $ pop r0 + pop r0 $ pop r0 $ pop r0 $ pop r0 +#endif + wmov r24, r16 + wmov r22, r14 + wmov r20, r12 + wmov r18, r10 + ret +1: + ;; Return A since the cases are: + ;; fmax && A >= B + ;; fmin && A < B + pop r18 + pop r19 + pop r20 + pop r21 + pop r22 + pop r23 + pop r24 + pop r25 + ret + +.Lnan: + ;; There are NaNs. + ;; When only the 1st argument is a NaN, then return the 2nd argument + cpi r25, 0x1 + breq 2b + ;; When the 2nd argument is a NaN, then return the 1st argument. + ;; When both arguments are NaNs, then return NaN (e.g. the 1st argument). + rjmp 1b +_ENDF __fmax +#endif /* F7MOD_D_fminfmax_ */ + + +#ifdef F7MOD_D_sincos_ +;;; void sincos (double R18, double *R16, double *R14); +_DEFUN __sincos +DALIAS sincos +LALIAS sincosl + +#define n_pushed 4 +#define n_frame (2 * F7_SIZEOF) + do_prologue_saves n_pushed, n_frame + ;; Y = FramePointer + 1 + adiw Y, 1 + ;; R16 = frame-arg 1 + wmov r16, Y + ;; The double argument is in R18[]. + XCALL F7_NAME (set_double_impl) + ;; void f7_sincos (f7_t *ss, f7_t *cc, const f7_t *aa) + ;; Note that aa may equal ss or cc. + wmov r20, r16 ; aa + wmov r24, r16 ; ss = FP + 1 + subi r16, lo8(-F7_SIZEOF) + sbci r17, hi8(-F7_SIZEOF) + wmov r22, r16 ; cc = FP + 1 + F7_SIZEOF + XCALL F7_NAME (sincos) + + ;; double R18 = get_double (cc) + wmov r24, r16 + XCALL F7_NAME (get_double) + wmov XL, r14 ; double *pcos + rcall store.r18.X ; *pcos = R18 + + ;; double R18 = get_double (ss) + wmov r24, Y + XCALL F7_NAME (get_double) + ldd XL, Y + n_frame + 3 ; Saved R16 + ldd XH, Y + n_frame + 2 ; Saved R17 + rcall store.r18.X ; *psin = R18 + + do_epilogue_restores n_pushed, n_frame + +store.r18.X: + st X+, r18 + st X+, r19 + st X+, r20 + st X+, r21 + st X+, r22 + st X+, r23 + st X+, r24 + st X+, r25 + ret +_ENDF __sincos +#endif /* F7MOD_D_sincos_ */ + #ifdef F7MOD_call_dd_ ;; Provide double wrappers for functions that operate on f7_t and get f7_t*. @@ -1894,4 +2195,277 @@ _DEFUN __powidf2 _ENDF __powidf2 #endif /* F7MOD_D_powi_ */ + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;;; Fixed-point -> double conversions. + +;;; The double exponent starts at bit 52 since the encoded mantissa has 52 bits. +;;; Note that when X is a multiple of 16, then dex_lo(x) evaluates to 0. +#define DEX16(x) (x) << (52 - 48) +#define dex_lo(x) lo8 (DEX16 (x)) +#define dex_hi(x) hi8 (DEX16 (x)) + +#ifdef F7MOD_usa2D_ +_DEFUN __fractusadf + ;; Convert USI to DF. + XCALL __floatunsidf + ;; The MSB indicates a value of 0. + cpse r25, __zero_reg__ + ;; Divide non-zero values by 2^16 in order to adjust for FBIT = 16. + subi r25, dex_hi (16) + ret +_ENDF __fractusadf +#endif /* F7MOD_usa2D_ */ + +#ifdef F7MOD_sa2D_ +_DEFUN __fractsadf + ;; Convert SI to DF. + XCALL __floatsidf + ;; The MSB indicates a value of 0. + tst r25 + breq 0f + ;; Divide non-zero values by 2^15 in order to adjust for FBIT = 15. + subi r24, dex_lo (15) + sbci r25, dex_hi (15) +0: ret +_ENDF __fractsadf +#endif /* F7MOD_sa2D_ */ + +#ifdef F7MOD_uha2D_ +_DEFUN __fractuhadf + ;; Extend UHA to USA. + clr r22 + mov r23, r24 + mov r24, r25 + clr r25 + XJMP __fractusadf +_ENDF __fractuhadf +#endif /* F7MOD_uha2D_ */ + +#ifdef F7MOD_ha2D_ +_DEFUN __fracthadf + ;; Extend HA to SA. + clr r22 + mov r23, r24 + mov r24, r25 + lsl r25 + sbc r25, r25 + XJMP __fractsadf +_ENDF __fracthadf +#endif /* F7MOD_ha2D_ */ + + +#ifdef F7MOD_usq2D_ +_DEFUN __fractusqdf + ;; Convert USI to DF. + XCALL __floatunsidf + ;; The MSB indicates a value of 0. + cpse r25, __zero_reg__ + ;; Divide non-zero values by 2^32 in order to adjust for FBIT = 32. + subi r25, dex_hi (32) + ret +_ENDF __fractusqdf +#endif /* F7MOD_usq2D_ */ + +#ifdef F7MOD_sq2D_ +_DEFUN __fractsqdf + ;; Convert SI to DF. + XCALL __floatsidf + ;; The MSB indicates a value of 0. + tst r25 + breq 0f + ;; Divide non-zero values by 2^31 in order to adjust for FBIT = 31. + subi r24, dex_lo (31) + sbci r25, dex_hi (31) +0: ret +_ENDF __fractsqdf +#endif /* F7MOD_sq2D_ */ + +#ifdef F7MOD_uqq2D_ +_DEFUN __fractuqqdf + ;; Extend UQQ to UHQ. + mov r25, r24 + clr r24 +_LABEL __fractuhqdf + ;; Extend UHQ to USQ. + clr r23 + clr r22 + XJMP __fractusqdf +_ENDF __fractuqqdf +#endif /* F7MOD_uqq2D_ */ + +#ifdef F7MOD_qq2D_ +_DEFUN __fractqqdf + ;; Extend QQ to HQ. + mov r25, r24 + clr r24 +_LABEL __fracthqdf + ;; Extend HQ to SQ. + clr r23 + clr r22 + XJMP __fractsqdf +_ENDF __fractqqdf +#endif /* F7MOD_qq2D_ */ + + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;;; Fixed-point -> double conversions. + +#ifdef F7MOD_D2qq_ +_DEFUN __fractdfqq + ;; Multiply with 2^{24+7} to get a QQ result in r25. + subi r24, dex_lo (-31) + sbci r25, dex_hi (-31) + XCALL __fixdfsi + mov r24, r25 + ret +_ENDF __fractdfqq +#endif /* F7MOD_D2qq_ */ + +#ifdef F7MOD_D2uqq_ +_DEFUN __fractdfuqq + ;; Multiply with 2^{24+8} to get a UQQ result in r25. + subi r25, dex_hi (-32) + XCALL __fixunsdfsi + mov r24, r25 + ret +_ENDF __fractdfuqq +#endif /* F7MOD_D2uqq_ */ + +#ifdef F7MOD_D2ha_ +_DEFUN __fractdfha + ;; Multiply with 2^{16+7} to get a HA result in r25:r24 + subi r24, dex_lo (-23) + sbci r25, dex_hi (-23) + XJMP __fixdfsi +_ENDF __fractdfha +#endif /* F7MOD_D2ha_ */ + +#ifdef F7MOD_D2uha_ +_DEFUN __fractdfuha + ;; Multiply with 2^24 to get a UHA result in r25:r24. + subi r24, dex_lo (-24) + sbci r25, dex_hi (-24) + XJMP __fixunsdfsi +_ENDF __fractdfuha +#endif /* F7MOD_D2uha_ */ + +#ifdef F7MOD_D2hq_ +_DEFUN __fractdfhq + ;; Multiply with 2^{16+15} to get a HQ result in r25:r24 + ;; resp. with 2^31 to get a SQ result in r25:r22. +_LABEL __fractdfsq + subi r24, dex_lo (-31) + sbci r25, dex_hi (-31) + XJMP __fixdfsi +_ENDF __fractdfhq +#endif /* F7MOD_D2hq_ */ + +#ifdef F7MOD_D2uhq_ +_DEFUN __fractdfuhq + ;; Multiply with 2^{16+16} to get a UHQ result in r25:r24 + ;; resp. with 2^32 to get a USQ result in r25:r22. +_LABEL __fractdfusq + subi r25, dex_hi (-32) + XJMP __fixunsdfsi +_ENDF __fractdfuhq +#endif /* F7MOD_D2uhq_ */ + +#ifdef F7MOD_D2sa_ +_DEFUN __fractdfsa + ;; Multiply with 2^15 to get a SA result in r25:r22. + subi r24, dex_lo (-15) + sbci r25, dex_hi (-15) + XJMP __fixdfsi +_ENDF __fractdfsa +#endif /* F7MOD_D2sa_ */ + +#ifdef F7MOD_D2usa_ +_DEFUN __fractdfusa + ;; Multiply with 2^16 to get a USA result in r25:r22. + subi r25, dex_hi (-16) + XJMP __fixunsdfsi +_ENDF __fractdfusa +#endif /* F7MOD_D2usa_ */ + + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;;; [u]int32_t -> double conversions. + +;; double __floatsidf (int32_t); +#ifdef F7MOD_D_floatsidf_ +_DEFUN __floatsidf + bst r25, 7 + brtc 0f + XCALL __negsi2 +0: XJMP __floatunsidf.ge0 +_ENDF __floatsidf +#endif /* F7MOD_D_floatsidf_ */ + +;; double __floatunsidf (uint32_t); +#ifdef F7MOD_D_floatunsidf_ +_DEFUN __floatunsidf + clt +_LABEL __floatunsidf.ge0 + ;; Zero-extend SI at the low end. + clr r18 + clr r19 + wmov r20, r18 + ;; Input is zero? + sbiw r24, 0 + sbci r23, 0 + sbci r22, 0 + breq 9f + ;; No: The double exponent of 0x80000000 is 31 plus a bias of 1023. + ;; Align the SI value such that the MSBit is as R25.4. + ;; For each << we have to subtract 1 from the exponent, and for + ;; each >> we have to add 1. Since we want the MSB in R25.4 and + ;; not in R25.7, the initial exponent must be reduced by 3. + ldi Xl, dex_lo (31 + 1023 - 3) + ldi Xh, dex_hi (31 + 1023 - 3) + ;; Move the MSByte to R25. +1: tst r25 + brne 2f + subi Xl, dex_lo (8) + sbci Xh, dex_hi (8) + mov r25, r24 + mov r24, r23 + mov r23, r22 + clr r22 + rjmp 1b +2: ;; Now we have R25 != 0. + cpi r25, 0x20 + brlo 3f + adiw Xl, DEX16 (1) + lsr r25 + ror r24 + ror r23 + ror r22 + ror r21 + rjmp 2b +3: cpi r25, 0x10 + brsh 4f + sbiw Xl, DEX16 (1) + lsl r22 + rol r23 + rol r24 + rol r25 + rjmp 3b +4: ;; Move the mantissa into place and clear the redundant leading 1. + cbr r25, 0x10 + mov r20, r21 + mov r21, r22 + mov r22, r23 + mov r23, r24 + mov r24, r25 + ;; Insert the biased exponent. + or r24, Xl + mov r25, Xh + ;; Insert the sign. + bld r25, 7 +9: ret +_ENDF __floatunsidf +#endif /* F7MOD_D_floatunsidf_ */ + + #endif /* !AVR_TINY */ diff --git a/libgcc/config/avr/libf7/libf7-common.mk b/libgcc/config/avr/libf7/libf7-common.mk index 644be2cf195f..e2b47409ba80 100644 --- a/libgcc/config/avr/libf7/libf7-common.mk +++ b/libgcc/config/avr/libf7/libf7-common.mk @@ -22,19 +22,31 @@ F7_ASM_PARTS += addsub_mant_scaled store load F7_ASM_PARTS += to_integer to_unsigned clz normalize_with_carry normalize F7_ASM_PARTS += store_expo sqrt16 sqrt_approx div -F7_ASM_PARTS += D_class D_fma D_powi +F7_ASM_PARTS += D_class D_fma D_powi D_sincos F7_ASM_PARTS += D_isnan D_isinf D_isfinite D_signbit D_copysign D_neg D_fabs +F7_ASM_PARTS += D_cmp D_eq D_ne D_ge D_gt D_le D_lt D_unord D_fminfmax F7_ASM_PARTS += call_dd call_ddd +# Fixed-point -> double conversions +F7_ASM_PARTS += qq2D uqq2D sq2D usq2D +F7_ASM_PARTS += ha2D uha2D sa2D usa2D + +# Double -> fixed-point conversions +F7_ASM_PARTS += D2qq D2uqq D2hq D2uhq +F7_ASM_PARTS += D2ha D2uha D2sa D2usa + +# Integer -> double conversions +F7_ASM_PARTS += D_floatsidf D_floatunsidf + # Stuff that will be wrapped in f7-wraps.h (included by libf7-asm.sx) # and give f7_asm_D_*.o modules. g_ddd += add sub mul div -g_xdd_cmp += le lt ge gt ne eq unord -g_dx += floatunsidf floatsidf extendsfdf2 +g_xdd_cmp += +g_dx += extendsfdf2 g_xd += fixdfsi fixdfdi fixunsdfdi fixunsdfsi truncdfsf2 -m_ddd += pow fmin fmax fmod hypot atan2 fdim +m_ddd += pow fmod hypot atan2 fdim m_ddx += ldexp frexp m_dd += sqrt cbrt exp exp10 pow10 log log10 log2 sin cos tan cotan asin acos atan m_dd += ceil floor trunc round sinh cosh tanh @@ -82,7 +94,7 @@ F7F += set_eps set_1pow2 # Renames for ALIASes without own module. F7F += min max exp10 -F7F += floatunsidf floatsidf extendsfdf2 +F7F += extendsfdf2 F7F += fixdfsi fixdfdi fixunsdfdi fixunsdfsi truncdfsf2 # Renames for f7-const.def. diff --git a/libgcc/config/avr/libf7/libf7.c b/libgcc/config/avr/libf7/libf7.c index 78c218a421bb..df738b0d5d0e 100644 --- a/libgcc/config/avr/libf7/libf7.c +++ b/libgcc/config/avr/libf7/libf7.c @@ -207,7 +207,6 @@ f7_t* f7_set_s32 (f7_t *cc, int32_t i32) cc->flags = flags; return cc; } -ALIAS (f7_set_s32, f7_floatsidf) #endif // F7MOD_set_s32_ @@ -219,7 +218,6 @@ f7_t* f7_set_u32 (f7_t *cc, uint32_t u32) cc->expo = 31; return f7_normalize_asm (cc); } -ALIAS (f7_set_u32, f7_floatunsidf) #endif // F7MOD_set_u32_ diff --git a/libgcc/config/i386/32/dfp-machine.h b/libgcc/config/i386/32/dfp-machine.h new file mode 100644 index 000000000000..ef8fa4f3600c --- /dev/null +++ b/libgcc/config/i386/32/dfp-machine.h @@ -0,0 +1,30 @@ +#ifndef _SOFT_FLOAT +/* Get the rounding mode. */ +#define DFP_GET_ROUNDMODE \ + unsigned int _frnd_orig; \ + do \ + { \ + __asm__ __volatile__ ("fnstcw\t%0" : "=m" (_frnd_orig)); \ + _frnd_orig &= FP_RND_MASK; \ + } \ + while (0); + +/* Set the rounding mode. */ +#define DFP_SET_ROUNDMODE(round) \ + do \ + { \ + unsigned int _cw; \ + __asm__ __volatile__ ("fnstcw\t%0" : "=m" (_cw)); \ + _cw &= ~FP_RND_MASK; \ + _cw |= round; \ + __asm__ __volatile__ ("fldcw\t%0" :: "m" (_cw)); \ + if (__builtin_cpu_supports ("sse")) \ + { \ + __asm__ __volatile__ ("%vstmxcsr\t%0" : "=m" (_cw)); \ + _cw &= ~0x6000; \ + _cw |= round << 3; \ + __asm__ __volatile__ ("%vldmxcsr\t%0" :: "m" (_cw)); \ + } \ + } \ + while (0); +#endif diff --git a/libgcc/config/i386/64/dfp-machine.h b/libgcc/config/i386/64/dfp-machine.h new file mode 100644 index 000000000000..19cc16a9f96d --- /dev/null +++ b/libgcc/config/i386/64/dfp-machine.h @@ -0,0 +1,21 @@ +/* Get the rounding mode. */ +#define DFP_GET_ROUNDMODE \ + unsigned int _frnd_orig; \ + do \ + { \ + __asm__ __volatile__ ("%vstmxcsr\t%0" : "=m" (_frnd_orig)); \ + _frnd_orig &= FP_RND_MASK; \ + } \ + while (0); + +/* Set the rounding mode. */ +#define DFP_SET_ROUNDMODE(round) \ + do \ + { \ + unsigned int _cw; \ + __asm__ __volatile__ ("%vstmxcsr\t%0" : "=m" (_cw)); \ + _cw &= ~FP_RND_MASK; \ + _cw |= round; \ + __asm__ __volatile__ ("%vldmxcsr\t%0" :: "m" (_cw)); \ + } \ + while (0); diff --git a/libgcc/config/i386/dfp-machine.h b/libgcc/config/i386/dfp-machine.h new file mode 100644 index 000000000000..f6efacc7299e --- /dev/null +++ b/libgcc/config/i386/dfp-machine.h @@ -0,0 +1,59 @@ +/* Rounding mode macros for DFP libbid. x86 version. + Copyright (C) 2025 Free Software Foundation, Inc. + + This file is part of GCC. + + GCC 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, or (at your option) + any later version. + + GCC 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. + + Under Section 7 of GPL version 3, you are granted additional + permissions described in the GCC Runtime Library Exception, version + 3.1, as published by the Free Software Foundation. + + You should have received a copy of the GNU General Public License and + a copy of the GCC Runtime Library Exception along with this program; + see the files COPYING3 and COPYING.RUNTIME respectively. If not, see + . */ + +#ifndef _X86_DFP_MACHINE_H +#define _X86_DFP_MACHINE_H + +#ifdef _SOFT_FLOAT +#include_next +#else +#include "config/i386/sfp-machine.h" + +#ifdef __x86_64__ +#include "config/i386/64/dfp-machine.h" +#else +#include "config/i386/32/dfp-machine.h" +#endif + +/* Initialize the rounding mode to round-to-nearest if needed. */ +#define DFP_INIT_ROUNDMODE \ + DFP_GET_ROUNDMODE; \ + do \ + { \ + if (_frnd_orig != FP_RND_NEAREST) \ + DFP_SET_ROUNDMODE (FP_RND_NEAREST); \ + } \ + while (0); + +/* Restore the rounding mode to round-to-nearest if changed. */ +#define DFP_RESTORE_ROUNDMODE \ + do \ + { \ + if (_frnd_orig != FP_RND_NEAREST) \ + DFP_SET_ROUNDMODE (_frnd_orig); \ + } \ + while (0); +#endif + +#endif /* _X86_DFP_MACHINE_H */ diff --git a/libgcc/config/libbid/ChangeLog b/libgcc/config/libbid/ChangeLog index e6727365456e..031c7a8bb38b 100644 --- a/libgcc/config/libbid/ChangeLog +++ b/libgcc/config/libbid/ChangeLog @@ -1,3 +1,15 @@ +2025-10-07 H.J. Lu + + PR target/120691 + * bid128_div.c: Run DFP_INIT_ROUNDMODE at function entrace and + DFP_RESTORE_ROUNDMODE at function exit. + * bid128_rem.c: Likewise. + * bid128_sqrt.c: Likewise. + * bid64_div.c (bid64_div): Likewise. + * bid64_sqrt.c (bid64_sqrt): Likewise. + * bid_conf.h: Include . + * dfp-machine.h: New file. + 2025-08-30 liuhongt Revert: diff --git a/libgcc/config/libbid/bid128_div.c b/libgcc/config/libbid/bid128_div.c index 925bf14a3361..f05f9f468252 100644 --- a/libgcc/config/libbid/bid128_div.c +++ b/libgcc/config/libbid/bid128_div.c @@ -49,6 +49,9 @@ BID128_FUNCTION_ARG2 (bid128_div, x, y) fexcept_t binaryflags = 0; #endif + // Set the rounding mode to round-to-nearest (if different). + DFP_INIT_ROUNDMODE; + valid_y = unpack_BID128_value (&sign_y, &exponent_y, &CY, y); // unpack arguments, check for NaN or Infinity @@ -62,6 +65,8 @@ if ((x.w[1] & 0x7c00000000000000ull) == 0x7c00000000000000ull) { #endif res.w[1] = (CX.w[1]) & QUIET_MASK64; res.w[0] = CX.w[0]; + // restore the rounding mode back if it has been changed + DFP_RESTORE_ROUNDMODE; BID_RETURN (res); } // x is Infinity? @@ -75,6 +80,8 @@ if ((x.w[1] & 0x7800000000000000ull) == 0x7800000000000000ull) { #endif res.w[1] = 0x7c00000000000000ull; res.w[0] = 0; + // restore the rounding mode back if it has been changed + DFP_RESTORE_ROUNDMODE; BID_RETURN (res); } // y is NaN? @@ -85,6 +92,8 @@ if ((x.w[1] & 0x7800000000000000ull) == 0x7800000000000000ull) { res.w[1] = ((x.w[1] ^ y.w[1]) & 0x8000000000000000ull) | 0x7800000000000000ull; res.w[0] = 0; + // restore the rounding mode back if it has been changed + DFP_RESTORE_ROUNDMODE; BID_RETURN (res); } } @@ -97,6 +106,8 @@ if ((y.w[1] & 0x7800000000000000ull) < 0x7800000000000000ull) { // x=y=0, return NaN res.w[1] = 0x7c00000000000000ull; res.w[0] = 0; + // restore the rounding mode back if it has been changed + DFP_RESTORE_ROUNDMODE; BID_RETURN (res); } // return 0 @@ -108,6 +119,8 @@ if ((y.w[1] & 0x7800000000000000ull) < 0x7800000000000000ull) { exponent_x = 0; res.w[1] |= (((UINT64) exponent_x) << 49); res.w[0] = 0; + // restore the rounding mode back if it has been changed + DFP_RESTORE_ROUNDMODE; BID_RETURN (res); } } @@ -122,6 +135,8 @@ if (!valid_y) { #endif res.w[1] = CY.w[1] & QUIET_MASK64; res.w[0] = CY.w[0]; + // restore the rounding mode back if it has been changed + DFP_RESTORE_ROUNDMODE; BID_RETURN (res); } // y is Infinity? @@ -129,6 +144,8 @@ if (!valid_y) { // return +/-0 res.w[1] = sign_x ^ sign_y; res.w[0] = 0; + // restore the rounding mode back if it has been changed + DFP_RESTORE_ROUNDMODE; BID_RETURN (res); } // y is 0, return +/-Inf @@ -138,6 +155,8 @@ if (!valid_y) { res.w[1] = ((x.w[1] ^ y.w[1]) & 0x8000000000000000ull) | 0x7800000000000000ull; res.w[0] = 0; + // restore the rounding mode back if it has been changed + DFP_RESTORE_ROUNDMODE; BID_RETURN (res); } #ifdef UNCHANGED_BINARY_STATUS_FLAGS @@ -186,6 +205,8 @@ if (__unsigned_compare_gt_128 (CY, CX)) { #ifdef UNCHANGED_BINARY_STATUS_FLAGS (void) fesetexceptflag (&binaryflags, FE_ALL_FLAGS); #endif + // restore the rounding mode back if it has been changed + DFP_RESTORE_ROUNDMODE; BID_RETURN (res); } // get number of decimal digits in CQ @@ -379,6 +400,8 @@ if (!CA4.w[0] && !CA4.w[1]) #ifdef UNCHANGED_BINARY_STATUS_FLAGS (void) fesetexceptflag (&binaryflags, FE_ALL_FLAGS); #endif + // restore the rounding mode back if it has been changed + DFP_RESTORE_ROUNDMODE; BID_RETURN (res); } #endif @@ -469,6 +492,8 @@ if (diff_expon >= 0) { #ifdef UNCHANGED_BINARY_STATUS_FLAGS (void) fesetexceptflag (&binaryflags, FE_ALL_FLAGS); #endif + // restore the rounding mode back if it has been changed + DFP_RESTORE_ROUNDMODE; BID_RETURN (res); } @@ -477,6 +502,8 @@ get_BID128 (&res, sign_x ^ sign_y, diff_expon, CQ, &rnd_mode, pfpsf); #ifdef UNCHANGED_BINARY_STATUS_FLAGS (void) fesetexceptflag (&binaryflags, FE_ALL_FLAGS); #endif +// restore the rounding mode back if it has been changed +DFP_RESTORE_ROUNDMODE; BID_RETURN (res); } @@ -500,6 +527,9 @@ TYPE0_FUNCTION_ARGTYPE1_ARGTYPE2 (UINT128, bid128dd_div, UINT64, x, fexcept_t binaryflags = 0; #endif + // Set the rounding mode to round-to-nearest (if different). + DFP_INIT_ROUNDMODE; + valid_y = unpack_BID64 (&sign_y, &exponent_y, &CY.w[0], y); // unpack arguments, check for NaN or Infinity @@ -519,6 +549,8 @@ if ((x & NAN_MASK64) == NAN_MASK64) { res.w[0] = (CX.w[0] & 0x0003ffffffffffffull); __mul_64x64_to_128 (res, res.w[0], power10_table_128[18].w[0]); res.w[1] |= ((CX.w[0]) & 0xfc00000000000000ull); + // restore the rounding mode back if it has been changed + DFP_RESTORE_ROUNDMODE; BID_RETURN (res); } // x is Infinity? @@ -532,6 +564,8 @@ if (((x) & 0x7800000000000000ull) == 0x7800000000000000ull) { #endif res.w[1] = 0x7c00000000000000ull; res.w[0] = 0; + // restore the rounding mode back if it has been changed + DFP_RESTORE_ROUNDMODE; BID_RETURN (res); } if ((((y) & 0x7c00000000000000ull) != 0x7c00000000000000ull)) { @@ -539,6 +573,8 @@ if (((x) & 0x7800000000000000ull) == 0x7800000000000000ull) { res.w[1] = (((x) ^ (y)) & 0x8000000000000000ull) | 0x7800000000000000ull; res.w[0] = 0; + // restore the rounding mode back if it has been changed + DFP_RESTORE_ROUNDMODE; BID_RETURN (res); } } @@ -551,6 +587,8 @@ if ((((y) & 0x7800000000000000ull) != 0x7800000000000000ull)) { // x=y=0, return NaN res.w[1] = 0x7c00000000000000ull; res.w[0] = 0; + // restore the rounding mode back if it has been changed + DFP_RESTORE_ROUNDMODE; BID_RETURN (res); } // return 0 @@ -566,6 +604,8 @@ else if (exponent_x < 0) exponent_x = 0; res.w[1] |= (((UINT64) exponent_x) << 49); res.w[0] = 0; +// restore the rounding mode back if it has been changed +DFP_RESTORE_ROUNDMODE; BID_RETURN (res); } } @@ -583,6 +623,8 @@ if (!valid_y) { res.w[0] = (CY.w[0] & 0x0003ffffffffffffull); __mul_64x64_to_128 (res, res.w[0], power10_table_128[18].w[0]); res.w[1] |= ((CY.w[0]) & 0xfc00000000000000ull); + // restore the rounding mode back if it has been changed + DFP_RESTORE_ROUNDMODE; BID_RETURN (res); } // y is Infinity? @@ -590,6 +632,8 @@ if (!valid_y) { // return +/-0 res.w[1] = sign_x ^ sign_y; res.w[0] = 0; + // restore the rounding mode back if it has been changed + DFP_RESTORE_ROUNDMODE; BID_RETURN (res); } // y is 0, return +/-Inf @@ -599,6 +643,8 @@ if (!valid_y) { #ifdef SET_STATUS_FLAGS __set_status_flags (pfpsf, ZERO_DIVIDE_EXCEPTION); #endif + // restore the rounding mode back if it has been changed + DFP_RESTORE_ROUNDMODE; BID_RETURN (res); } #ifdef UNCHANGED_BINARY_STATUS_FLAGS @@ -647,6 +693,8 @@ if (__unsigned_compare_gt_128 (CY, CX)) { #ifdef UNCHANGED_BINARY_STATUS_FLAGS (void) fesetexceptflag (&binaryflags, FE_ALL_FLAGS); #endif + // restore the rounding mode back if it has been changed + DFP_RESTORE_ROUNDMODE; BID_RETURN (res); } // get number of decimal digits in CQ @@ -843,6 +891,8 @@ __div_256_by_128 (&CQ, &CA4, CY); #ifdef UNCHANGED_BINARY_STATUS_FLAGS (void) fesetexceptflag (&binaryflags, FE_ALL_FLAGS); #endif + // restore the rounding mode back if it has been changed + DFP_RESTORE_ROUNDMODE; BID_RETURN (res); } #endif @@ -932,6 +982,8 @@ if (diff_expon >= 0) { #ifdef UNCHANGED_BINARY_STATUS_FLAGS (void) fesetexceptflag (&binaryflags, FE_ALL_FLAGS); #endif + // restore the rounding mode back if it has been changed + DFP_RESTORE_ROUNDMODE; BID_RETURN (res); } @@ -940,6 +992,8 @@ get_BID128 (&res, sign_x ^ sign_y, diff_expon, CQ, &rnd_mode, pfpsf); #ifdef UNCHANGED_BINARY_STATUS_FLAGS (void) fesetexceptflag (&binaryflags, FE_ALL_FLAGS); #endif +// restore the rounding mode back if it has been changed +DFP_RESTORE_ROUNDMODE; BID_RETURN (res); } @@ -959,6 +1013,9 @@ BID128_FUNCTION_ARGTYPE1_ARG128 (bid128dq_div, UINT64, x, y) fexcept_t binaryflags = 0; #endif + // Set the rounding mode to round-to-nearest (if different) + DFP_INIT_ROUNDMODE; + valid_y = unpack_BID128_value (&sign_y, &exponent_y, &CY, y); // unpack arguments, check for NaN or Infinity @@ -978,6 +1035,8 @@ if ((x & NAN_MASK64) == NAN_MASK64) { res.w[0] = (CX.w[0] & 0x0003ffffffffffffull); __mul_64x64_to_128 (res, res.w[0], power10_table_128[18].w[0]); res.w[1] |= ((CX.w[0]) & 0xfc00000000000000ull); + // restore the rounding mode back if it has been changed + DFP_RESTORE_ROUNDMODE; BID_RETURN (res); } // x is Infinity? @@ -991,6 +1050,8 @@ if ((x & 0x7800000000000000ull) == 0x7800000000000000ull) { #endif res.w[1] = 0x7c00000000000000ull; res.w[0] = 0; + // restore the rounding mode back if it has been changed + DFP_RESTORE_ROUNDMODE; BID_RETURN (res); } if (((y.w[1] & 0x7c00000000000000ull) != 0x7c00000000000000ull)) { @@ -998,6 +1059,8 @@ if ((x & 0x7800000000000000ull) == 0x7800000000000000ull) { res.w[1] = ((x ^ y.w[1]) & 0x8000000000000000ull) | 0x7800000000000000ull; res.w[0] = 0; + // restore the rounding mode back if it has been changed + DFP_RESTORE_ROUNDMODE; BID_RETURN (res); } } @@ -1010,6 +1073,8 @@ if ((y.w[1] & INFINITY_MASK64) != INFINITY_MASK64) { // x=y=0, return NaN res.w[1] = 0x7c00000000000000ull; res.w[0] = 0; + // restore the rounding mode back if it has been changed + DFP_RESTORE_ROUNDMODE; BID_RETURN (res); } // return 0 @@ -1021,6 +1086,8 @@ if ((y.w[1] & INFINITY_MASK64) != INFINITY_MASK64) { exponent_x = 0; res.w[1] |= (((UINT64) exponent_x) << 49); res.w[0] = 0; + // restore the rounding mode back if it has been changed + DFP_RESTORE_ROUNDMODE; BID_RETURN (res); } } @@ -1037,6 +1104,8 @@ if (!valid_y) { #endif res.w[1] = CY.w[1] & QUIET_MASK64; res.w[0] = CY.w[0]; + // restore the rounding mode back if it has been changed + DFP_RESTORE_ROUNDMODE; BID_RETURN (res); } // y is Infinity? @@ -1044,6 +1113,8 @@ if (!valid_y) { // return +/-0 res.w[1] = sign_x ^ sign_y; res.w[0] = 0; + // restore the rounding mode back if it has been changed + DFP_RESTORE_ROUNDMODE; BID_RETURN (res); } // y is 0, return +/-Inf @@ -1053,6 +1124,8 @@ if (!valid_y) { #ifdef SET_STATUS_FLAGS __set_status_flags (pfpsf, ZERO_DIVIDE_EXCEPTION); #endif + // restore the rounding mode back if it has been changed + DFP_RESTORE_ROUNDMODE; BID_RETURN (res); } #ifdef UNCHANGED_BINARY_STATUS_FLAGS @@ -1101,6 +1174,8 @@ if (__unsigned_compare_gt_128 (CY, CX)) { #ifdef UNCHANGED_BINARY_STATUS_FLAGS (void) fesetexceptflag (&binaryflags, FE_ALL_FLAGS); #endif + // restore the rounding mode back if it has been changed + DFP_RESTORE_ROUNDMODE; BID_RETURN (res); } // get number of decimal digits in CQ @@ -1300,6 +1375,8 @@ __div_256_by_128 (&CQ, &CA4, CY); #ifdef UNCHANGED_BINARY_STATUS_FLAGS (void) fesetexceptflag (&binaryflags, FE_ALL_FLAGS); #endif + // restore the rounding mode back if it has been changed + DFP_RESTORE_ROUNDMODE; BID_RETURN (res); } #endif @@ -1389,6 +1466,8 @@ if (diff_expon >= 0) { #ifdef UNCHANGED_BINARY_STATUS_FLAGS (void) fesetexceptflag (&binaryflags, FE_ALL_FLAGS); #endif + // restore the rounding mode back if it has been changed + DFP_RESTORE_ROUNDMODE; BID_RETURN (res); } @@ -1396,6 +1475,8 @@ get_BID128 (&res, sign_x ^ sign_y, diff_expon, CQ, &rnd_mode, pfpsf); #ifdef UNCHANGED_BINARY_STATUS_FLAGS (void) fesetexceptflag (&binaryflags, FE_ALL_FLAGS); #endif +// restore the rounding mode back if it has been changed +DFP_RESTORE_ROUNDMODE; BID_RETURN (res); } @@ -1415,6 +1496,8 @@ BID128_FUNCTION_ARG128_ARGTYPE2 (bid128qd_div, x, UINT64, y) fexcept_t binaryflags = 0; #endif + // Set the rounding mode to round-to-nearest (if different) + DFP_INIT_ROUNDMODE; valid_y = unpack_BID64 (&sign_y, &exponent_y, &CY.w[0], y); // unpack arguments, check for NaN or Infinity @@ -1428,6 +1511,8 @@ if ((x.w[1] & 0x7c00000000000000ull) == 0x7c00000000000000ull) { #endif res.w[1] = (CX.w[1]) & QUIET_MASK64; res.w[0] = CX.w[0]; + // restore the rounding mode back if it has been changed + DFP_RESTORE_ROUNDMODE; BID_RETURN (res); } // x is Infinity? @@ -1441,6 +1526,8 @@ if ((x.w[1] & 0x7800000000000000ull) == 0x7800000000000000ull) { #endif res.w[1] = 0x7c00000000000000ull; res.w[0] = 0; + // restore the rounding mode back if it has been changed + DFP_RESTORE_ROUNDMODE; BID_RETURN (res); } // y is NaN? @@ -1451,6 +1538,8 @@ if ((x.w[1] & 0x7800000000000000ull) == 0x7800000000000000ull) { res.w[1] = ((x.w[1] ^ y) & 0x8000000000000000ull) | 0x7800000000000000ull; res.w[0] = 0; + // restore the rounding mode back if it has been changed + DFP_RESTORE_ROUNDMODE; BID_RETURN (res); } } @@ -1463,6 +1552,8 @@ if ((y & 0x7800000000000000ull) < 0x7800000000000000ull) { // x=y=0, return NaN res.w[1] = 0x7c00000000000000ull; res.w[0] = 0; + // restore the rounding mode back if it has been changed + DFP_RESTORE_ROUNDMODE; BID_RETURN (res); } // return 0 @@ -1474,6 +1565,8 @@ if ((y & 0x7800000000000000ull) < 0x7800000000000000ull) { exponent_x = 0; res.w[1] |= (((UINT64) exponent_x) << 49); res.w[0] = 0; + // restore the rounding mode back if it has been changed + DFP_RESTORE_ROUNDMODE; BID_RETURN (res); } } @@ -1490,6 +1583,8 @@ if (!valid_y) { res.w[0] = (CY.w[0] & 0x0003ffffffffffffull); __mul_64x64_to_128 (res, res.w[0], power10_table_128[18].w[0]); res.w[1] |= ((CY.w[0]) & 0xfc00000000000000ull); + // restore the rounding mode back if it has been changed + DFP_RESTORE_ROUNDMODE; BID_RETURN (res); } // y is Infinity? @@ -1497,6 +1592,8 @@ if (!valid_y) { // return +/-0 res.w[1] = ((x.w[1] ^ y) & 0x8000000000000000ull); res.w[0] = 0; + // restore the rounding mode back if it has been changed + DFP_RESTORE_ROUNDMODE; BID_RETURN (res); } // y is 0 @@ -1505,6 +1602,8 @@ if (!valid_y) { #endif res.w[1] = (sign_x ^ sign_y) | INFINITY_MASK64; res.w[0] = 0; + // restore the rounding mode back if it has been changed + DFP_RESTORE_ROUNDMODE; BID_RETURN (res); } #ifdef UNCHANGED_BINARY_STATUS_FLAGS @@ -1553,6 +1652,8 @@ if (__unsigned_compare_gt_128 (CY, CX)) { #ifdef UNCHANGED_BINARY_STATUS_FLAGS (void) fesetexceptflag (&binaryflags, FE_ALL_FLAGS); #endif + // restore the rounding mode back if it has been changed + DFP_RESTORE_ROUNDMODE; BID_RETURN (res); } // get number of decimal digits in CQ @@ -1749,6 +1850,8 @@ __div_256_by_128 (&CQ, &CA4, CY); #ifdef UNCHANGED_BINARY_STATUS_FLAGS (void) fesetexceptflag (&binaryflags, FE_ALL_FLAGS); #endif + // restore the rounding mode back if it has been changed + DFP_RESTORE_ROUNDMODE; BID_RETURN (res); } #endif @@ -1838,6 +1941,8 @@ if (diff_expon >= 0) { #ifdef UNCHANGED_BINARY_STATUS_FLAGS (void) fesetexceptflag (&binaryflags, FE_ALL_FLAGS); #endif + // restore the rounding mode back if it has been changed + DFP_RESTORE_ROUNDMODE; BID_RETURN (res); } @@ -1846,6 +1951,8 @@ get_BID128 (&res, sign_x ^ sign_y, diff_expon, CQ, &rnd_mode, pfpsf); #ifdef UNCHANGED_BINARY_STATUS_FLAGS (void) fesetexceptflag (&binaryflags, FE_ALL_FLAGS); #endif +// restore the rounding mode back if it has been changed +DFP_RESTORE_ROUNDMODE; BID_RETURN (res); } diff --git a/libgcc/config/libbid/bid128_rem.c b/libgcc/config/libbid/bid128_rem.c index f229b2869af3..1c6da70cf590 100644 --- a/libgcc/config/libbid/bid128_rem.c +++ b/libgcc/config/libbid/bid128_rem.c @@ -35,6 +35,9 @@ BID128_FUNCTION_ARG2_NORND_CUSTOMRESTYPE (UINT128, bid128_rem, x, y) int exponent_x, exponent_y, diff_expon, bin_expon_cx, scale, scale0; + // Set the rounding mode to round-to-nearest (if different) + DFP_INIT_ROUNDMODE; + // unpack arguments, check for NaN or Infinity valid_y = unpack_BID128_value (&sign_y, &exponent_y, &CY, y); @@ -52,6 +55,8 @@ if ((x.w[1] & 0x7c00000000000000ull) == 0x7c00000000000000ull) { #endif res.w[1] = CX.w[1] & QUIET_MASK64; res.w[0] = CX.w[0]; + // restore the rounding mode back if it has been changed + DFP_RESTORE_ROUNDMODE; BID_RETURN (res); } // x is Infinity? @@ -66,6 +71,8 @@ if ((x.w[1] & 0x7800000000000000ull) == 0x7800000000000000ull) { #endif res.w[1] = 0x7c00000000000000ull; res.w[0] = 0; + // restore the rounding mode back if it has been changed + DFP_RESTORE_ROUNDMODE; BID_RETURN (res); } @@ -79,6 +86,8 @@ if ((!CY.w[1]) && (!CY.w[0])) { // x=y=0, return NaN res.w[1] = 0x7c00000000000000ull; res.w[0] = 0; + // restore the rounding mode back if it has been changed + DFP_RESTORE_ROUNDMODE; BID_RETURN (res); } if (valid_y || ((y.w[1] & NAN_MASK64) == INFINITY_MASK64)) { @@ -89,6 +98,8 @@ if (valid_y || ((y.w[1] & NAN_MASK64) == INFINITY_MASK64)) { res.w[1] = sign_x | (((UINT64) exponent_x) << 49); res.w[0] = 0; + // restore the rounding mode back if it has been changed + DFP_RESTORE_ROUNDMODE; BID_RETURN (res); } } @@ -103,6 +114,8 @@ if (!valid_y) { #endif res.w[1] = CY.w[1] & QUIET_MASK64; res.w[0] = CY.w[0]; + // restore the rounding mode back if it has been changed + DFP_RESTORE_ROUNDMODE; BID_RETURN (res); } // y is Infinity? @@ -110,6 +123,8 @@ if (!valid_y) { // return x res.w[1] = x.w[1]; res.w[0] = x.w[0]; + // restore the rounding mode back if it has been changed + DFP_RESTORE_ROUNDMODE; BID_RETURN (res); } // y is 0 @@ -119,6 +134,8 @@ if (!valid_y) { #endif res.w[1] = 0x7c00000000000000ull; res.w[0] = 0; + // restore the rounding mode back if it has been changed + DFP_RESTORE_ROUNDMODE; BID_RETURN (res); } @@ -130,6 +147,8 @@ if (diff_expon <= 0) { if (diff_expon > 34) { // |x|<|y| in this case res = x; + // restore the rounding mode back if it has been changed + DFP_RESTORE_ROUNDMODE; BID_RETURN (res); } // set exponent of y to exponent_x, scale coefficient_y @@ -139,6 +158,8 @@ if (diff_expon <= 0) { if (P256.w[2] || P256.w[3]) { // |x|<|y| in this case res = x; + // restore the rounding mode back if it has been changed + DFP_RESTORE_ROUNDMODE; BID_RETURN (res); } @@ -147,6 +168,8 @@ if (diff_expon <= 0) { if (__unsigned_compare_ge_128 (P256, CX2)) { // |x|<|y| in this case res = x; + // restore the rounding mode back if it has been changed + DFP_RESTORE_ROUNDMODE; BID_RETURN (res); } @@ -164,6 +187,8 @@ if (diff_expon <= 0) { } get_BID128_very_fast (&res, sign_x, exponent_x, CR); + // restore the rounding mode back if it has been changed + DFP_RESTORE_ROUNDMODE; BID_RETURN (res); } // 2^64 @@ -200,6 +225,8 @@ while (diff_expon > 0) { // check for remainder == 0 if (!CX.w[1] && !CX.w[0]) { get_BID128_very_fast (&res, sign_x, exponent_y, CX); + // restore the rounding mode back if it has been changed + DFP_RESTORE_ROUNDMODE; BID_RETURN (res); } } @@ -213,5 +240,7 @@ if ((__unsigned_compare_gt_128 (CX2, CY)) } get_BID128_very_fast (&res, sign_x, exponent_y, CX); +// restore the rounding mode back if it has been changed +DFP_RESTORE_ROUNDMODE; BID_RETURN (res); } diff --git a/libgcc/config/libbid/bid128_sqrt.c b/libgcc/config/libbid/bid128_sqrt.c index b28038389ad1..71a033f54fe4 100644 --- a/libgcc/config/libbid/bid128_sqrt.c +++ b/libgcc/config/libbid/bid128_sqrt.c @@ -43,6 +43,9 @@ BID128_FUNCTION_ARG1 (bid128_sqrt, x) fexcept_t binaryflags = 0; #endif + // Set the rounding mode to round-to-nearest (if different) + DFP_INIT_ROUNDMODE; + // unpack arguments, check for NaN or Infinity if (!unpack_BID128_value (&sign_x, &exponent_x, &CX, x)) { res.w[1] = CX.w[1]; @@ -54,6 +57,8 @@ if ((x.w[1] & 0x7c00000000000000ull) == 0x7c00000000000000ull) { __set_status_flags (pfpsf, INVALID_EXCEPTION); #endif res.w[1] = CX.w[1] & QUIET_MASK64; + // restore the rounding mode back if it has been changed + DFP_RESTORE_ROUNDMODE; BID_RETURN (res); } // x is Infinity? @@ -66,6 +71,8 @@ if ((x.w[1] & 0x7800000000000000ull) == 0x7800000000000000ull) { __set_status_flags (pfpsf, INVALID_EXCEPTION); #endif } + // restore the rounding mode back if it has been changed + DFP_RESTORE_ROUNDMODE; BID_RETURN (res); } // x is 0 otherwise @@ -74,6 +81,8 @@ res.w[1] = sign_x | ((((UINT64) (exponent_x + DECIMAL_EXPONENT_BIAS_128)) >> 1) << 49); res.w[0] = 0; +// restore the rounding mode back if it has been changed +DFP_RESTORE_ROUNDMODE; BID_RETURN (res); } if (sign_x) { @@ -82,6 +91,8 @@ if (sign_x) { #ifdef SET_STATUS_FLAGS __set_status_flags (pfpsf, INVALID_EXCEPTION); #endif + // restore the rounding mode back if it has been changed + DFP_RESTORE_ROUNDMODE; BID_RETURN (res); } #ifdef UNCHANGED_BINARY_STATUS_FLAGS @@ -117,6 +128,8 @@ if (CS.w[0] * CS.w[0] == A10.w[0]) { #ifdef UNCHANGED_BINARY_STATUS_FLAGS (void) fesetexceptflag (&binaryflags, FE_ALL_FLAGS); #endif + // restore the rounding mode back if it has been changed + DFP_RESTORE_ROUNDMODE; BID_RETURN (res); } } @@ -288,6 +301,8 @@ get_BID128_fast (&res, 0, #ifdef UNCHANGED_BINARY_STATUS_FLAGS (void) fesetexceptflag (&binaryflags, FE_ALL_FLAGS); #endif +// restore the rounding mode back if it has been changed +DFP_RESTORE_ROUNDMODE; BID_RETURN (res); } @@ -302,10 +317,14 @@ BID128_FUNCTION_ARGTYPE1 (bid128d_sqrt, UINT64, x) int_float fx, f64; int exponent_x, bin_expon_cx; int digits, scale, exponent_q; + #ifdef UNCHANGED_BINARY_STATUS_FLAGS fexcept_t binaryflags = 0; #endif + // Set the rounding mode to round-to-nearest (if different) + DFP_INIT_ROUNDMODE; + // unpack arguments, check for NaN or Infinity // unpack arguments, check for NaN or Infinity CX.w[1] = 0; @@ -321,6 +340,8 @@ if ((x & 0x7c00000000000000ull) == 0x7c00000000000000ull) { res.w[0] = (CX.w[0] & 0x0003ffffffffffffull); __mul_64x64_to_128 (res, res.w[0], power10_table_128[18].w[0]); res.w[1] |= ((CX.w[0]) & 0xfc00000000000000ull); + // restore the rounding mode back if it has been changed + DFP_RESTORE_ROUNDMODE; BID_RETURN (res); } // x is Infinity? @@ -332,6 +353,8 @@ if ((x & 0x7800000000000000ull) == 0x7800000000000000ull) { __set_status_flags (pfpsf, INVALID_EXCEPTION); #endif } + // restore the rounding mode back if it has been changed + DFP_RESTORE_ROUNDMODE; BID_RETURN (res); } // x is 0 otherwise @@ -342,6 +365,8 @@ res.w[1] = sign_x | ((((UINT64) (exponent_x + DECIMAL_EXPONENT_BIAS_128)) >> 1) << 49); res.w[0] = 0; +// restore the rounding mode back if it has been changed +DFP_RESTORE_ROUNDMODE; BID_RETURN (res); } if (sign_x) { @@ -350,6 +375,8 @@ if (sign_x) { #ifdef SET_STATUS_FLAGS __set_status_flags (pfpsf, INVALID_EXCEPTION); #endif + // restore the rounding mode back if it has been changed + DFP_RESTORE_ROUNDMODE; BID_RETURN (res); } #ifdef UNCHANGED_BINARY_STATUS_FLAGS @@ -387,6 +414,8 @@ if (CS.w[0] * CS.w[0] == A10.w[0]) { #ifdef UNCHANGED_BINARY_STATUS_FLAGS (void) fesetexceptflag (&binaryflags, FE_ALL_FLAGS); #endif + // restore the rounding mode back if it has been changed + DFP_RESTORE_ROUNDMODE; BID_RETURN (res); } } @@ -558,6 +587,8 @@ get_BID128_fast (&res, 0, (exponent_q + DECIMAL_EXPONENT_BIAS_128) >> 1, #ifdef UNCHANGED_BINARY_STATUS_FLAGS (void) fesetexceptflag (&binaryflags, FE_ALL_FLAGS); #endif +// restore the rounding mode back if it has been changed +DFP_RESTORE_ROUNDMODE; BID_RETURN (res); diff --git a/libgcc/config/libbid/bid64_div.c b/libgcc/config/libbid/bid64_div.c index 69758482b89e..5de1a4596cc9 100644 --- a/libgcc/config/libbid/bid64_div.c +++ b/libgcc/config/libbid/bid64_div.c @@ -106,6 +106,9 @@ bid64_div (UINT64 x, y = *py; #endif + // Set the rounding mode to round-to-nearest (if different) + DFP_INIT_ROUNDMODE; + valid_x = unpack_BID64 (&sign_x, &exponent_x, &coefficient_x, x); valid_y = unpack_BID64 (&sign_y, &exponent_y, &coefficient_y, y); @@ -123,6 +126,8 @@ bid64_div (UINT64 x, if ((x & SNAN_MASK64) == SNAN_MASK64) // sNaN __set_status_flags (pfpsf, INVALID_EXCEPTION); #endif + // restore the rounding mode back if it has been changed + DFP_RESTORE_ROUNDMODE; BID_RETURN (coefficient_x & QUIET_MASK64); } // x is Infinity? @@ -134,9 +139,13 @@ bid64_div (UINT64 x, #ifdef SET_STATUS_FLAGS __set_status_flags (pfpsf, INVALID_EXCEPTION); #endif + // restore the rounding mode back if it has been changed + DFP_RESTORE_ROUNDMODE; BID_RETURN (NAN_MASK64); } } else { + // restore the rounding mode back if it has been changed + DFP_RESTORE_ROUNDMODE; // otherwise return +/-Inf BID_RETURN (((x ^ y) & 0x8000000000000000ull) | INFINITY_MASK64); @@ -149,6 +158,8 @@ bid64_div (UINT64 x, #ifdef SET_STATUS_FLAGS __set_status_flags (pfpsf, INVALID_EXCEPTION); #endif + // restore the rounding mode back if it has been changed + DFP_RESTORE_ROUNDMODE; BID_RETURN (NAN_MASK64); } if (((y & INFINITY_MASK64) != INFINITY_MASK64)) { @@ -163,6 +174,8 @@ bid64_div (UINT64 x, exponent_x = DECIMAL_MAX_EXPON_64; else if (exponent_x < 0) exponent_x = 0; + // restore the rounding mode back if it has been changed + DFP_RESTORE_ROUNDMODE; BID_RETURN ((sign_x ^ sign_y) | (((UINT64) exponent_x) << 53)); } @@ -176,10 +189,14 @@ bid64_div (UINT64 x, if ((y & SNAN_MASK64) == SNAN_MASK64) // sNaN __set_status_flags (pfpsf, INVALID_EXCEPTION); #endif + // restore the rounding mode back if it has been changed + DFP_RESTORE_ROUNDMODE; BID_RETURN (coefficient_y & QUIET_MASK64); } // y is Infinity? if ((y & INFINITY_MASK64) == INFINITY_MASK64) { + // restore the rounding mode back if it has been changed + DFP_RESTORE_ROUNDMODE; // return +/-0 BID_RETURN (((x ^ y) & 0x8000000000000000ull)); } @@ -187,6 +204,8 @@ bid64_div (UINT64 x, #ifdef SET_STATUS_FLAGS __set_status_flags (pfpsf, ZERO_DIVIDE_EXCEPTION); #endif + // restore the rounding mode back if it has been changed + DFP_RESTORE_ROUNDMODE; BID_RETURN ((sign_x ^ sign_y) | INFINITY_MASK64); } #ifdef UNCHANGED_BINARY_STATUS_FLAGS @@ -255,6 +274,8 @@ bid64_div (UINT64 x, #ifdef UNCHANGED_BINARY_STATUS_FLAGS (void) fesetexceptflag (&binaryflags, FE_ALL_FLAGS); #endif + // restore the rounding mode back if it has been changed + DFP_RESTORE_ROUNDMODE; BID_RETURN (res); } // get decimal digits of Q @@ -424,6 +445,8 @@ bid64_div (UINT64 x, #ifdef UNCHANGED_BINARY_STATUS_FLAGS (void) fesetexceptflag (&binaryflags, FE_ALL_FLAGS); #endif + // restore the rounding mode back if it has been changed + DFP_RESTORE_ROUNDMODE; BID_RETURN (res); } } @@ -494,6 +517,8 @@ bid64_div (UINT64 x, #ifdef UNCHANGED_BINARY_STATUS_FLAGS (void) fesetexceptflag (&binaryflags, FE_ALL_FLAGS); #endif + // restore the rounding mode back if it has been changed + DFP_RESTORE_ROUNDMODE; BID_RETURN (res); } else { // UF occurs @@ -510,6 +535,8 @@ bid64_div (UINT64 x, #ifdef UNCHANGED_BINARY_STATUS_FLAGS (void) fesetexceptflag (&binaryflags, FE_ALL_FLAGS); #endif + // restore the rounding mode back if it has been changed + DFP_RESTORE_ROUNDMODE; BID_RETURN (res); } @@ -532,6 +559,9 @@ unsigned rmode; fexcept_t binaryflags = 0; #endif +// Set the rounding mode to round-to-nearest (if different) +DFP_INIT_ROUNDMODE; + valid_y = unpack_BID128_value (&sign_y, &exponent_y, &CY, y); // unpack arguments, check for NaN or Infinity @@ -545,6 +575,8 @@ if (!unpack_BID64 (&sign_x, &exponent_x, &CX.w[0], (x))) { // test if x is NaN if (((x) & 0x7c00000000000000ull) == 0x7c00000000000000ull) { res = CX.w[0]; + // restore the rounding mode back if it has been changed + DFP_RESTORE_ROUNDMODE; BID_RETURN (res & QUIET_MASK64); } // x is Infinity? @@ -557,12 +589,16 @@ if (!unpack_BID64 (&sign_x, &exponent_x, &CX.w[0], (x))) { __set_status_flags (pfpsf, INVALID_EXCEPTION); #endif res = 0x7c00000000000000ull; + // restore the rounding mode back if it has been changed + DFP_RESTORE_ROUNDMODE; BID_RETURN (res); } if (((y.w[1] & 0x7c00000000000000ull) != 0x7c00000000000000ull)) { // otherwise return +/-Inf res = (((x) ^ y.w[1]) & 0x8000000000000000ull) | 0x7800000000000000ull; + // restore the rounding mode back if it has been changed + DFP_RESTORE_ROUNDMODE; BID_RETURN (res); } } @@ -574,6 +610,8 @@ if (!unpack_BID64 (&sign_x, &exponent_x, &CX.w[0], (x))) { #endif // x=y=0, return NaN res = 0x7c00000000000000ull; + // restore the rounding mode back if it has been changed + DFP_RESTORE_ROUNDMODE; BID_RETURN (res); } // return 0 @@ -584,6 +622,8 @@ if (!unpack_BID64 (&sign_x, &exponent_x, &CX.w[0], (x))) { else if (exponent_x < 0) exponent_x = 0; res |= (((UINT64) exponent_x) << 53); + // restore the rounding mode back if it has been changed + DFP_RESTORE_ROUNDMODE; BID_RETURN (res); } } @@ -604,12 +644,16 @@ if (!valid_y) { amount = recip_scale[18]; __shr_128 (Tmp, Qh, amount); res = (CY.w[1] & 0xfc00000000000000ull) | Tmp.w[0]; + // restore the rounding mode back if it has been changed + DFP_RESTORE_ROUNDMODE; BID_RETURN (res); } // y is Infinity? if ((y.w[1] & 0x7800000000000000ull) == 0x7800000000000000ull) { // return +/-0 res = sign_x ^ sign_y; + // restore the rounding mode back if it has been changed + DFP_RESTORE_ROUNDMODE; BID_RETURN (res); } // y is 0, return +/-Inf @@ -618,6 +662,8 @@ if (!valid_y) { #ifdef SET_STATUS_FLAGS __set_status_flags (pfpsf, ZERO_DIVIDE_EXCEPTION); #endif + // restore the rounding mode back if it has been changed + DFP_RESTORE_ROUNDMODE; BID_RETURN (res); } #ifdef UNCHANGED_BINARY_STATUS_FLAGS @@ -680,6 +726,8 @@ if (__unsigned_compare_gt_128 (CY, CX)) { #ifdef UNCHANGED_BINARY_STATUS_FLAGS (void) fesetexceptflag (&binaryflags, FE_ALL_FLAGS); #endif + // restore the rounding mode back if it has been changed + DFP_RESTORE_ROUNDMODE; BID_RETURN (res); } @@ -823,6 +871,8 @@ if (!done) { #ifdef UNCHANGED_BINARY_STATUS_FLAGS (void) fesetexceptflag (&binaryflags, FE_ALL_FLAGS); #endif + // restore the rounding mode back if it has been changed + DFP_RESTORE_ROUNDMODE; BID_RETURN (res); } } @@ -905,6 +955,8 @@ if (!done) { #ifdef UNCHANGED_BINARY_STATUS_FLAGS (void) fesetexceptflag (&binaryflags, FE_ALL_FLAGS); #endif + // restore the rounding mode back if it has been changed + DFP_RESTORE_ROUNDMODE; BID_RETURN (res); } else { // UF occurs @@ -921,6 +973,8 @@ if (!done) { #ifdef UNCHANGED_BINARY_STATUS_FLAGS (void) fesetexceptflag (&binaryflags, FE_ALL_FLAGS); #endif + // restore the rounding mode back if it has been changed + DFP_RESTORE_ROUNDMODE; BID_RETURN (res); } @@ -946,6 +1000,9 @@ unsigned rmode; fexcept_t binaryflags = 0; #endif +// Set the rounding mode to round-to-nearest (if different) +DFP_INIT_ROUNDMODE; + valid_y = unpack_BID64 (&sign_y, &exponent_y, &CY.w[0], (y)); // unpack arguments, check for NaN or Infinity @@ -964,6 +1021,8 @@ if (!unpack_BID128_value (&sign_x, &exponent_x, &CX, x)) { amount = recip_scale[18]; __shr_128 (Tmp, Qh, amount); res = (CX.w[1] & 0xfc00000000000000ull) | Tmp.w[0]; + // restore the rounding mode back if it has been changed + DFP_RESTORE_ROUNDMODE; BID_RETURN (res); } // x is Infinity? @@ -976,12 +1035,16 @@ if (!unpack_BID128_value (&sign_x, &exponent_x, &CX, x)) { __set_status_flags (pfpsf, INVALID_EXCEPTION); #endif res = 0x7c00000000000000ull; + // restore the rounding mode back if it has been changed + DFP_RESTORE_ROUNDMODE; BID_RETURN (res); } if (((y & 0x7c00000000000000ull) != 0x7c00000000000000ull)) { // otherwise return +/-Inf res = ((x.w[1] ^ (y)) & 0x8000000000000000ull) | 0x7800000000000000ull; + // restore the rounding mode back if it has been changed + DFP_RESTORE_ROUNDMODE; BID_RETURN (res); } } @@ -993,6 +1056,8 @@ if (!unpack_BID128_value (&sign_x, &exponent_x, &CX, x)) { #endif // x=y=0, return NaN res = 0x7c00000000000000ull; + // restore the rounding mode back if it has been changed + DFP_RESTORE_ROUNDMODE; BID_RETURN (res); } // return 0 @@ -1002,6 +1067,8 @@ if (!unpack_BID128_value (&sign_x, &exponent_x, &CX, x)) { __set_status_flags (pfpsf, INVALID_EXCEPTION); #endif res = 0x7c00000000000000ull; + // restore the rounding mode back if it has been changed + DFP_RESTORE_ROUNDMODE; BID_RETURN (res); } exponent_x = @@ -1012,6 +1079,8 @@ if (!unpack_BID128_value (&sign_x, &exponent_x, &CX, x)) { else if (exponent_x < 0) exponent_x = 0; res = (sign_x ^ sign_y) | (((UINT64) exponent_x) << 53); + // restore the rounding mode back if it has been changed + DFP_RESTORE_ROUNDMODE; BID_RETURN (res); } } @@ -1025,12 +1094,16 @@ if (!valid_y) { if ((y & SNAN_MASK64) == SNAN_MASK64) // sNaN __set_status_flags (pfpsf, INVALID_EXCEPTION); #endif + // restore the rounding mode back if it has been changed + DFP_RESTORE_ROUNDMODE; BID_RETURN (CY.w[0] & QUIET_MASK64); } // y is Infinity? if (((y) & 0x7800000000000000ull) == 0x7800000000000000ull) { // return +/-0 res = sign_x ^ sign_y; + // restore the rounding mode back if it has been changed + DFP_RESTORE_ROUNDMODE; BID_RETURN (res); } // y is 0, return +/-Inf @@ -1039,6 +1112,8 @@ if (!valid_y) { #ifdef SET_STATUS_FLAGS __set_status_flags (pfpsf, ZERO_DIVIDE_EXCEPTION); #endif + // restore the rounding mode back if it has been changed + DFP_RESTORE_ROUNDMODE; BID_RETURN (res); } #ifdef UNCHANGED_BINARY_STATUS_FLAGS @@ -1103,6 +1178,8 @@ if (__unsigned_compare_gt_128 (CY, CX)) { #ifdef UNCHANGED_BINARY_STATUS_FLAGS (void) fesetexceptflag (&binaryflags, FE_ALL_FLAGS); #endif + // restore the rounding mode back if it has been changed + DFP_RESTORE_ROUNDMODE; BID_RETURN (res); } @@ -1252,6 +1329,8 @@ if (!done) { #ifdef UNCHANGED_BINARY_STATUS_FLAGS (void) fesetexceptflag (&binaryflags, FE_ALL_FLAGS); #endif + // restore the rounding mode back if it has been changed + DFP_RESTORE_ROUNDMODE; BID_RETURN (res); } } @@ -1337,6 +1416,8 @@ if (!done) { #ifdef UNCHANGED_BINARY_STATUS_FLAGS (void) fesetexceptflag (&binaryflags, FE_ALL_FLAGS); #endif + // restore the rounding mode back if it has been changed + DFP_RESTORE_ROUNDMODE; BID_RETURN (res); } else { // UF occurs @@ -1353,6 +1434,8 @@ if (!done) { #ifdef UNCHANGED_BINARY_STATUS_FLAGS (void) fesetexceptflag (&binaryflags, FE_ALL_FLAGS); #endif + // restore the rounding mode back if it has been changed + DFP_RESTORE_ROUNDMODE; BID_RETURN (res); } @@ -1383,6 +1466,9 @@ unsigned rmode; fexcept_t binaryflags = 0; #endif +// Set the rounding mode to round-to-nearest (if different) +DFP_INIT_ROUNDMODE; + valid_y = unpack_BID128_value (&sign_y, &exponent_y, &CY, y); // unpack arguments, check for NaN or Infinity @@ -1401,6 +1487,8 @@ if (!unpack_BID128_value (&sign_x, &exponent_x, &CX, x)) { amount = recip_scale[18]; __shr_128 (Tmp, Qh, amount); res = (CX.w[1] & 0xfc00000000000000ull) | Tmp.w[0]; + // restore the rounding mode back if it has been changed + DFP_RESTORE_ROUNDMODE; BID_RETURN (res); } // x is Infinity? @@ -1413,6 +1501,8 @@ if (!unpack_BID128_value (&sign_x, &exponent_x, &CX, x)) { __set_status_flags (pfpsf, INVALID_EXCEPTION); #endif res = 0x7c00000000000000ull; + // restore the rounding mode back if it has been changed + DFP_RESTORE_ROUNDMODE; BID_RETURN (res); } if (((y.w[1] & 0x7c00000000000000ull) != 0x7c00000000000000ull)) { @@ -1420,6 +1510,8 @@ if (!unpack_BID128_value (&sign_x, &exponent_x, &CX, x)) { res = ((x.w[1] ^ y. w[1]) & 0x8000000000000000ull) | 0x7800000000000000ull; + // restore the rounding mode back if it has been changed + DFP_RESTORE_ROUNDMODE; BID_RETURN (res); } } @@ -1431,6 +1523,8 @@ if (!unpack_BID128_value (&sign_x, &exponent_x, &CX, x)) { #endif // x=y=0, return NaN res = 0x7c00000000000000ull; + // restore the rounding mode back if it has been changed + DFP_RESTORE_ROUNDMODE; BID_RETURN (res); } // return 0 @@ -1441,6 +1535,8 @@ if (!unpack_BID128_value (&sign_x, &exponent_x, &CX, x)) { else if (exponent_x < 0) exponent_x = 0; res |= (((UINT64) exponent_x) << 53); + // restore the rounding mode back if it has been changed + DFP_RESTORE_ROUNDMODE; BID_RETURN (res); } } @@ -1460,12 +1556,16 @@ if (!valid_y) { amount = recip_scale[18]; __shr_128 (Tmp, Qh, amount); res = (CY.w[1] & 0xfc00000000000000ull) | Tmp.w[0]; + // restore the rounding mode back if it has been changed + DFP_RESTORE_ROUNDMODE; BID_RETURN (res); } // y is Infinity? if ((y.w[1] & 0x7800000000000000ull) == 0x7800000000000000ull) { // return +/-0 res = sign_x ^ sign_y; + // restore the rounding mode back if it has been changed + DFP_RESTORE_ROUNDMODE; BID_RETURN (res); } // y is 0, return +/-Inf @@ -1474,6 +1574,8 @@ if (!valid_y) { #ifdef SET_STATUS_FLAGS __set_status_flags (pfpsf, ZERO_DIVIDE_EXCEPTION); #endif + // restore the rounding mode back if it has been changed + DFP_RESTORE_ROUNDMODE; BID_RETURN (res); } #ifdef UNCHANGED_BINARY_STATUS_FLAGS @@ -1536,6 +1638,8 @@ if (__unsigned_compare_gt_128 (CY, CX)) { #ifdef UNCHANGED_BINARY_STATUS_FLAGS (void) fesetexceptflag (&binaryflags, FE_ALL_FLAGS); #endif + // restore the rounding mode back if it has been changed + DFP_RESTORE_ROUNDMODE; BID_RETURN (res); } @@ -1686,6 +1790,8 @@ if (!done) { #ifdef UNCHANGED_BINARY_STATUS_FLAGS (void) fesetexceptflag (&binaryflags, FE_ALL_FLAGS); #endif + // restore the rounding mode back if it has been changed + DFP_RESTORE_ROUNDMODE; BID_RETURN (res); } } @@ -1772,6 +1878,8 @@ if (!done) { #ifdef UNCHANGED_BINARY_STATUS_FLAGS (void) fesetexceptflag (&binaryflags, FE_ALL_FLAGS); #endif + // restore the rounding mode back if it has been changed + DFP_RESTORE_ROUNDMODE; BID_RETURN (res); } else { // UF occurs @@ -1788,6 +1896,8 @@ if (!done) { #ifdef UNCHANGED_BINARY_STATUS_FLAGS (void) fesetexceptflag (&binaryflags, FE_ALL_FLAGS); #endif + // restore the rounding mode back if it has been changed + DFP_RESTORE_ROUNDMODE; BID_RETURN (res); } diff --git a/libgcc/config/libbid/bid64_sqrt.c b/libgcc/config/libbid/bid64_sqrt.c index 29f4cf1f819f..dbd06eaa153d 100644 --- a/libgcc/config/libbid/bid64_sqrt.c +++ b/libgcc/config/libbid/bid64_sqrt.c @@ -73,6 +73,7 @@ bid64_sqrt (UINT64 x _RND_MODE_PARAM _EXC_FLAGS_PARAM int exponent_x, exponent_q, bin_expon_cx; int digits_x; int scale; + #ifdef UNCHANGED_BINARY_STATUS_FLAGS fexcept_t binaryflags = 0; #endif @@ -84,6 +85,9 @@ bid64_sqrt (UINT64 x _RND_MODE_PARAM _EXC_FLAGS_PARAM x = *px; #endif + // Set the rounding mode to round-to-nearest (if different) + DFP_INIT_ROUNDMODE; + // unpack arguments, check for NaN or Infinity if (!unpack_BID64 (&sign_x, &exponent_x, &coefficient_x, x)) { // x is Inf. or NaN or 0 @@ -100,11 +104,15 @@ bid64_sqrt (UINT64 x _RND_MODE_PARAM _EXC_FLAGS_PARAM if ((x & SNAN_MASK64) == SNAN_MASK64) // sNaN __set_status_flags (pfpsf, INVALID_EXCEPTION); #endif + // restore the rounding mode back if it has been changed + DFP_RESTORE_ROUNDMODE; BID_RETURN (res & QUIET_MASK64); } // x is 0 exponent_x = (exponent_x + DECIMAL_EXPONENT_BIAS) >> 1; res = sign_x | (((UINT64) exponent_x) << 53); + // restore the rounding mode back if it has been changed + DFP_RESTORE_ROUNDMODE; BID_RETURN (res); } // x<0? @@ -113,6 +121,8 @@ bid64_sqrt (UINT64 x _RND_MODE_PARAM _EXC_FLAGS_PARAM #ifdef SET_STATUS_FLAGS __set_status_flags (pfpsf, INVALID_EXCEPTION); #endif + // restore the rounding mode back if it has been changed + DFP_RESTORE_ROUNDMODE; BID_RETURN (res); } #ifdef UNCHANGED_BINARY_STATUS_FLAGS @@ -141,6 +151,8 @@ bid64_sqrt (UINT64 x _RND_MODE_PARAM _EXC_FLAGS_PARAM #ifdef UNCHANGED_BINARY_STATUS_FLAGS (void) fesetexceptflag (&binaryflags, FE_ALL_FLAGS); #endif + // restore the rounding mode back if it has been changed + DFP_RESTORE_ROUNDMODE; BID_RETURN (res); } // if exponent is odd, scale coefficient by 10 @@ -206,6 +218,8 @@ bid64_sqrt (UINT64 x _RND_MODE_PARAM _EXC_FLAGS_PARAM #ifdef UNCHANGED_BINARY_STATUS_FLAGS (void) fesetexceptflag (&binaryflags, FE_ALL_FLAGS); #endif + // restore the rounding mode back if it has been changed + DFP_RESTORE_ROUNDMODE; BID_RETURN (res); } @@ -224,6 +238,9 @@ int digits, scale, exponent_q = 0, exact = 1, amount, extra_digits; fexcept_t binaryflags = 0; #endif +// Set the rounding mode to round-to-nearest (if different) +DFP_INIT_ROUNDMODE; + // unpack arguments, check for NaN or Infinity if (!unpack_BID128_value (&sign_x, &exponent_x, &CX, x)) { res = CX.w[1]; @@ -240,6 +257,8 @@ if (!unpack_BID128_value (&sign_x, &exponent_x, &CX, x)) { amount = recip_scale[18]; __shr_128 (Tmp, Qh, amount); res = (CX.w[1] & 0xfc00000000000000ull) | Tmp.w[0]; + // restore the rounding mode back if it has been changed + DFP_RESTORE_ROUNDMODE; BID_RETURN (res); } // x is Infinity? @@ -251,6 +270,8 @@ if (!unpack_BID128_value (&sign_x, &exponent_x, &CX, x)) { __set_status_flags (pfpsf, INVALID_EXCEPTION); #endif } + // restore the rounding mode back if it has been changed + DFP_RESTORE_ROUNDMODE; BID_RETURN (res); } // x is 0 otherwise @@ -264,6 +285,8 @@ if (!unpack_BID128_value (&sign_x, &exponent_x, &CX, x)) { exponent_x = DECIMAL_MAX_EXPON_64; //res= sign_x | (((UINT64)exponent_x)<<53); res = get_BID64 (sign_x, exponent_x, 0, rnd_mode, pfpsf); + // restore the rounding mode back if it has been changed + DFP_RESTORE_ROUNDMODE; BID_RETURN (res); } if (sign_x) { @@ -271,6 +294,8 @@ if (sign_x) { #ifdef SET_STATUS_FLAGS __set_status_flags (pfpsf, INVALID_EXCEPTION); #endif + // restore the rounding mode back if it has been changed + DFP_RESTORE_ROUNDMODE; BID_RETURN (res); } #ifdef UNCHANGED_BINARY_STATUS_FLAGS @@ -312,6 +337,8 @@ if (CS.w[0] < 10000000000000000ull) { #ifdef UNCHANGED_BINARY_STATUS_FLAGS (void) fesetexceptflag (&binaryflags, FE_ALL_FLAGS); #endif + // restore the rounding mode back if it has been changed + DFP_RESTORE_ROUNDMODE; BID_RETURN (res); } } @@ -546,6 +573,8 @@ res = get_BID64 (0, exponent_q, CS.w[0], rnd_mode, pfpsf); #ifdef UNCHANGED_BINARY_STATUS_FLAGS (void) fesetexceptflag (&binaryflags, FE_ALL_FLAGS); #endif +// restore the rounding mode back if it has been changed +DFP_RESTORE_ROUNDMODE; BID_RETURN (res); diff --git a/libgcc/config/libbid/bid_conf.h b/libgcc/config/libbid/bid_conf.h index 0f39d58d3061..56f2b348ec03 100644 --- a/libgcc/config/libbid/bid_conf.h +++ b/libgcc/config/libbid/bid_conf.h @@ -559,6 +559,8 @@ see the files COPYING3 and COPYING.RUNTIME respectively. If not, see #endif // #define HPUX_OS +#include + // If DECIMAL_CALL_BY_REFERENCE is defined then numerical arguments and results // are passed by reference otherwise they are passed by value (except that // a pointer is always passed to the status flags) diff --git a/libgcc/config/libbid/dfp-machine.h b/libgcc/config/libbid/dfp-machine.h new file mode 100644 index 000000000000..ae961157abba --- /dev/null +++ b/libgcc/config/libbid/dfp-machine.h @@ -0,0 +1,34 @@ +/* Rounding mode macros for DFP libbid. Dummy version. + Copyright (C) 2025 Free Software Foundation, Inc. + + This file is part of GCC. + + GCC 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, or (at your option) + any later version. + + GCC 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. + + Under Section 7 of GPL version 3, you are granted additional + permissions described in the GCC Runtime Library Exception, version + 3.1, as published by the Free Software Foundation. + + You should have received a copy of the GNU General Public License and + a copy of the GCC Runtime Library Exception along with this program; + see the files COPYING3 and COPYING.RUNTIME respectively. If not, see + . */ + +#ifndef _DFP_MACHINE_H +#define _DFP_MACHINE_H + +/* Initialize the rounding mode to round-to-nearest if needed. */ +#define DFP_INIT_ROUNDMODE + +/* Restore the rounding mode to round-to-nearest if changed. */ +#define DFP_RESTORE_ROUNDMODE + +#endif /* _DFP_MACHINE_H */ diff --git a/libgcobol/ChangeLog b/libgcobol/ChangeLog index d6bd7e8121c8..a291753b8ce2 100644 --- a/libgcobol/ChangeLog +++ b/libgcobol/ChangeLog @@ -1,3 +1,9 @@ +2025-10-05 Sam James + + * Makefile.in: Regenerate. + * aclocal.m4: Regenerate. + * configure: Regenerate. + 2025-09-05 Robert Dubner * common-defs.h (enum cbl_field_attr_t): Define register_e. diff --git a/libgcobol/Makefile.in b/libgcobol/Makefile.in index 42dc82323077..61b9e8669d03 100644 --- a/libgcobol/Makefile.in +++ b/libgcobol/Makefile.in @@ -117,7 +117,9 @@ target_triplet = @target@ @BUILD_LIBGCOBOL_TRUE@@ENABLE_DARWIN_AT_RPATH_TRUE@ -Wl,-rpath,@loader_path subdir = . ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 -am__aclocal_m4_deps = $(top_srcdir)/../config/depstand.m4 \ +am__aclocal_m4_deps = $(top_srcdir)/../config/clang-plugin.m4 \ + $(top_srcdir)/../config/depstand.m4 \ + $(top_srcdir)/../config/gcc-plugin.m4 \ $(top_srcdir)/../config/iconv.m4 \ $(top_srcdir)/../config/lead-dot.m4 \ $(top_srcdir)/../config/lib-ld.m4 \ @@ -295,6 +297,7 @@ LIBQUADSPEC = @LIBQUADSPEC@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LIPO = @LIPO@ +LLVM_CONFIG = @LLVM_CONFIG@ LN_S = @LN_S@ LTLIBICONV = @LTLIBICONV@ LTLIBOBJS = @LTLIBOBJS@ diff --git a/libgcobol/aclocal.m4 b/libgcobol/aclocal.m4 index c3c69e6ce4b1..e28744caea2f 100644 --- a/libgcobol/aclocal.m4 +++ b/libgcobol/aclocal.m4 @@ -1167,7 +1167,9 @@ AC_SUBST([am__tar]) AC_SUBST([am__untar]) ]) # _AM_PROG_TAR +m4_include([../config/clang-plugin.m4]) m4_include([../config/depstand.m4]) +m4_include([../config/gcc-plugin.m4]) m4_include([../config/iconv.m4]) m4_include([../config/lead-dot.m4]) m4_include([../config/lib-ld.m4]) diff --git a/libgcobol/configure b/libgcobol/configure index d130002b2b95..ecbfd33732a7 100755 --- a/libgcobol/configure +++ b/libgcobol/configure @@ -669,6 +669,7 @@ OTOOL LIPO NMEDIT DSYMUTIL +LLVM_CONFIG OBJDUMP LN_S ac_ct_DUMPBIN @@ -6747,8 +6748,266 @@ test -z "$deplibs_check_method" && deplibs_check_method=unknown -plugin_option= + +# Try CLANG_PLUGIN_FILE first since GCC_PLUGIN_OPTION may return the +# wrong plugin_option with clang. + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for clang" >&5 +$as_echo_n "checking for clang... " >&6; } +if ${clang_cv_is_clang+:} false; then : + $as_echo_n "(cached) " >&6 +else + + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +#ifdef __clang__ + yes +#endif + +_ACEOF +if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | + $EGREP "yes" >/dev/null 2>&1; then : + clang_cv_is_clang=yes +else + clang_cv_is_clang=no +fi +rm -f conftest* + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $clang_cv_is_clang" >&5 +$as_echo "$clang_cv_is_clang" >&6; } + plugin_file= + if test $clang_cv_is_clang = yes; then + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for clang plugin file" >&5 +$as_echo_n "checking for clang plugin file... " >&6; } + plugin_names="LLVMgold.so" + for plugin in $plugin_names; do + plugin_file=`${CC} ${CFLAGS} --print-file-name $plugin` + if test x$plugin_file = x$plugin; then + if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}llvm-config", so it can be a program name with args. +set dummy ${ac_tool_prefix}llvm-config; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_LLVM_CONFIG+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$LLVM_CONFIG"; then + ac_cv_prog_LLVM_CONFIG="$LLVM_CONFIG" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_LLVM_CONFIG="${ac_tool_prefix}llvm-config" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +LLVM_CONFIG=$ac_cv_prog_LLVM_CONFIG +if test -n "$LLVM_CONFIG"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $LLVM_CONFIG" >&5 +$as_echo "$LLVM_CONFIG" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + +fi +if test -z "$ac_cv_prog_LLVM_CONFIG"; then + ac_ct_LLVM_CONFIG=$LLVM_CONFIG + # Extract the first word of "llvm-config", so it can be a program name with args. +set dummy llvm-config; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_ac_ct_LLVM_CONFIG+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$ac_ct_LLVM_CONFIG"; then + ac_cv_prog_ac_ct_LLVM_CONFIG="$ac_ct_LLVM_CONFIG" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_ac_ct_LLVM_CONFIG="llvm-config" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +ac_ct_LLVM_CONFIG=$ac_cv_prog_ac_ct_LLVM_CONFIG +if test -n "$ac_ct_LLVM_CONFIG"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_LLVM_CONFIG" >&5 +$as_echo "$ac_ct_LLVM_CONFIG" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + if test "x$ac_ct_LLVM_CONFIG" = x; then + LLVM_CONFIG="" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + LLVM_CONFIG=$ac_ct_LLVM_CONFIG + fi +else + LLVM_CONFIG="$ac_cv_prog_LLVM_CONFIG" +fi + + if test "$?" != 0; then + as_fn_error $? "Required tool 'llvm-config' not found on PATH." "$LINENO" 5 + fi + clang_lib_dir=`$LLVM_CONFIG --libdir` + if test -f $clang_lib_dir/$plugin; then + plugin_file=$clang_lib_dir/$plugin + fi + if test x$plugin_file != x$plugin; then + break; + fi + fi + done + if test -z $plugin_file; then + as_fn_error $? "Couldn't find clang plugin file for $CC." "$LINENO" 5 + fi + if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}ar", so it can be a program name with args. +set dummy ${ac_tool_prefix}ar; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_AR+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$AR"; then + ac_cv_prog_AR="$AR" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_AR="${ac_tool_prefix}ar" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +AR=$ac_cv_prog_AR +if test -n "$AR"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $AR" >&5 +$as_echo "$AR" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + +fi +if test -z "$ac_cv_prog_AR"; then + ac_ct_AR=$AR + # Extract the first word of "ar", so it can be a program name with args. +set dummy ar; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_ac_ct_AR+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$ac_ct_AR"; then + ac_cv_prog_ac_ct_AR="$ac_ct_AR" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_ac_ct_AR="ar" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +ac_ct_AR=$ac_cv_prog_ac_ct_AR +if test -n "$ac_ct_AR"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_AR" >&5 +$as_echo "$ac_ct_AR" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + if test "x$ac_ct_AR" = x; then + AR="" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + AR=$ac_ct_AR + fi +else + AR="$ac_cv_prog_AR" +fi + + if test "${AR}" = "" ; then + as_fn_error $? "Required archive tool 'ar' not found on PATH." "$LINENO" 5 + fi + plugin_option="--plugin $plugin_file" + touch conftest.c + ${AR} $plugin_option rc conftest.a conftest.c + if test "$?" != 0; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Failed: $AR $plugin_option rc" >&5 +$as_echo "$as_me: WARNING: Failed: $AR $plugin_option rc" >&2;} + plugin_file= + fi + rm -f conftest.* + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $plugin_file" >&5 +$as_echo "$plugin_file" >&6; } + fi + plugin_file="$plugin_file" + +if test -n "$plugin_file"; then + plugin_option="--plugin $plugin_file" +else + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for -plugin option" >&5 +$as_echo_n "checking for -plugin option... " >&6; } + plugin_names="liblto_plugin.so liblto_plugin-0.dll cyglto_plugin-0.dll" +plugin_option= for plugin in $plugin_names; do plugin_so=`${CC} ${CFLAGS} --print-prog-name $plugin` if test x$plugin_so = x$plugin; then @@ -6759,7 +7018,119 @@ for plugin in $plugin_names; do break fi done +if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}ar", so it can be a program name with args. +set dummy ${ac_tool_prefix}ar; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_AR+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$AR"; then + ac_cv_prog_AR="$AR" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_AR="${ac_tool_prefix}ar" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +AR=$ac_cv_prog_AR +if test -n "$AR"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $AR" >&5 +$as_echo "$AR" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + +fi +if test -z "$ac_cv_prog_AR"; then + ac_ct_AR=$AR + # Extract the first word of "ar", so it can be a program name with args. +set dummy ar; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_ac_ct_AR+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$ac_ct_AR"; then + ac_cv_prog_ac_ct_AR="$ac_ct_AR" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_ac_ct_AR="ar" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS +fi +fi +ac_ct_AR=$ac_cv_prog_ac_ct_AR +if test -n "$ac_ct_AR"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_AR" >&5 +$as_echo "$ac_ct_AR" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + if test "x$ac_ct_AR" = x; then + AR="" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + AR=$ac_ct_AR + fi +else + AR="$ac_cv_prog_AR" +fi + +if test "${AR}" = "" ; then + as_fn_error $? "Required archive tool 'ar' not found on PATH." "$LINENO" 5 +fi +touch conftest.c +${AR} $plugin_option rc conftest.a conftest.c +if test "$?" != 0; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Failed: $AR $plugin_option rc" >&5 +$as_echo "$as_me: WARNING: Failed: $AR $plugin_option rc" >&2;} + plugin_option= +fi +rm -f conftest.* +if test -n "$plugin_option"; then + plugin_option="$plugin_option" + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $plugin_option" >&5 +$as_echo "$plugin_option" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + +fi if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}ar", so it can be a program name with args. set dummy ${ac_tool_prefix}ar; ac_word=$2 @@ -6854,17 +7225,15 @@ fi test -z "$AR" && AR=ar if test -n "$plugin_option"; then - if $AR --help 2>&1 | grep -q "\--plugin"; then - touch conftest.c - $AR $plugin_option rc conftest.a conftest.c - if test "$?" != 0; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Failed: $AR $plugin_option rc" >&5 -$as_echo "$as_me: WARNING: Failed: $AR $plugin_option rc" >&2;} - else + case "$AR" in + *"$plugin_option"*) + ;; + *) + if $AR --help 2>&1 | grep -q "\--plugin"; then AR="$AR $plugin_option" fi - rm -f conftest.* - fi + ;; + esac fi test -z "$AR_FLAGS" && AR_FLAGS=cru @@ -7071,9 +7440,15 @@ fi test -z "$RANLIB" && RANLIB=: if test -n "$plugin_option" && test "$RANLIB" != ":"; then - if $RANLIB --help 2>&1 | grep -q "\--plugin"; then - RANLIB="$RANLIB $plugin_option" - fi + case "$RANLIB" in + *"$plugin_option"*) + ;; + *) + if $RANLIB --help 2>&1 | grep -q "\--plugin"; then + RANLIB="$RANLIB $plugin_option" + fi + ;; + esac fi @@ -11810,7 +12185,7 @@ else lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 lt_status=$lt_dlunknown cat > conftest.$ac_ext <<_LT_EOF -#line 11813 "configure" +#line 12188 "configure" #include "confdefs.h" #if HAVE_DLFCN_H @@ -11916,7 +12291,7 @@ else lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 lt_status=$lt_dlunknown cat > conftest.$ac_ext <<_LT_EOF -#line 11919 "configure" +#line 12294 "configure" #include "confdefs.h" #if HAVE_DLFCN_H diff --git a/libgfortran/ChangeLog b/libgfortran/ChangeLog index dc950cd17431..c4a8b8e982ce 100644 --- a/libgfortran/ChangeLog +++ b/libgfortran/ChangeLog @@ -1,3 +1,9 @@ +2025-10-05 Sam James + + * Makefile.in: Regenerate. + * aclocal.m4: Regenerate. + * configure: Regenerate. + 2025-09-02 Paul Thomas PR fortran/87669 diff --git a/libgfortran/Makefile.in b/libgfortran/Makefile.in index dd88f8893b7f..ce828b2f8d0e 100644 --- a/libgfortran/Makefile.in +++ b/libgfortran/Makefile.in @@ -159,7 +159,9 @@ target_triplet = @target@ subdir = . ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 -am__aclocal_m4_deps = $(top_srcdir)/../config/depstand.m4 \ +am__aclocal_m4_deps = $(top_srcdir)/../config/clang-plugin.m4 \ + $(top_srcdir)/../config/depstand.m4 \ + $(top_srcdir)/../config/gcc-plugin.m4 \ $(top_srcdir)/../config/hwcaps.m4 \ $(top_srcdir)/../config/lead-dot.m4 \ $(top_srcdir)/../config/lthostflags.m4 \ @@ -835,6 +837,7 @@ LIBQUADSPEC = @LIBQUADSPEC@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LIPO = @LIPO@ +LLVM_CONFIG = @LLVM_CONFIG@ LN_S = @LN_S@ LTLIBOBJS = @LTLIBOBJS@ MAINT = @MAINT@ diff --git a/libgfortran/aclocal.m4 b/libgfortran/aclocal.m4 index 89e5496db5ed..9cbf1a8922d9 100644 --- a/libgfortran/aclocal.m4 +++ b/libgfortran/aclocal.m4 @@ -1167,7 +1167,9 @@ AC_SUBST([am__tar]) AC_SUBST([am__untar]) ]) # _AM_PROG_TAR +m4_include([../config/clang-plugin.m4]) m4_include([../config/depstand.m4]) +m4_include([../config/gcc-plugin.m4]) m4_include([../config/hwcaps.m4]) m4_include([../config/lead-dot.m4]) m4_include([../config/lthostflags.m4]) diff --git a/libgfortran/configure b/libgfortran/configure index 9898a94a372a..c6b00a9a2a4e 100755 --- a/libgfortran/configure +++ b/libgfortran/configure @@ -665,6 +665,7 @@ OTOOL LIPO NMEDIT DSYMUTIL +LLVM_CONFIG OBJDUMP LN_S NM @@ -7786,8 +7787,266 @@ test -z "$deplibs_check_method" && deplibs_check_method=unknown -plugin_option= + +# Try CLANG_PLUGIN_FILE first since GCC_PLUGIN_OPTION may return the +# wrong plugin_option with clang. + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for clang" >&5 +$as_echo_n "checking for clang... " >&6; } +if ${clang_cv_is_clang+:} false; then : + $as_echo_n "(cached) " >&6 +else + + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +#ifdef __clang__ + yes +#endif + +_ACEOF +if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | + $EGREP "yes" >/dev/null 2>&1; then : + clang_cv_is_clang=yes +else + clang_cv_is_clang=no +fi +rm -f conftest* + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $clang_cv_is_clang" >&5 +$as_echo "$clang_cv_is_clang" >&6; } + plugin_file= + if test $clang_cv_is_clang = yes; then + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for clang plugin file" >&5 +$as_echo_n "checking for clang plugin file... " >&6; } + plugin_names="LLVMgold.so" + for plugin in $plugin_names; do + plugin_file=`${CC} ${CFLAGS} --print-file-name $plugin` + if test x$plugin_file = x$plugin; then + if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}llvm-config", so it can be a program name with args. +set dummy ${ac_tool_prefix}llvm-config; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_LLVM_CONFIG+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$LLVM_CONFIG"; then + ac_cv_prog_LLVM_CONFIG="$LLVM_CONFIG" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_LLVM_CONFIG="${ac_tool_prefix}llvm-config" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +LLVM_CONFIG=$ac_cv_prog_LLVM_CONFIG +if test -n "$LLVM_CONFIG"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $LLVM_CONFIG" >&5 +$as_echo "$LLVM_CONFIG" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + +fi +if test -z "$ac_cv_prog_LLVM_CONFIG"; then + ac_ct_LLVM_CONFIG=$LLVM_CONFIG + # Extract the first word of "llvm-config", so it can be a program name with args. +set dummy llvm-config; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_ac_ct_LLVM_CONFIG+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$ac_ct_LLVM_CONFIG"; then + ac_cv_prog_ac_ct_LLVM_CONFIG="$ac_ct_LLVM_CONFIG" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_ac_ct_LLVM_CONFIG="llvm-config" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +ac_ct_LLVM_CONFIG=$ac_cv_prog_ac_ct_LLVM_CONFIG +if test -n "$ac_ct_LLVM_CONFIG"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_LLVM_CONFIG" >&5 +$as_echo "$ac_ct_LLVM_CONFIG" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + if test "x$ac_ct_LLVM_CONFIG" = x; then + LLVM_CONFIG="" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + LLVM_CONFIG=$ac_ct_LLVM_CONFIG + fi +else + LLVM_CONFIG="$ac_cv_prog_LLVM_CONFIG" +fi + + if test "$?" != 0; then + as_fn_error $? "Required tool 'llvm-config' not found on PATH." "$LINENO" 5 + fi + clang_lib_dir=`$LLVM_CONFIG --libdir` + if test -f $clang_lib_dir/$plugin; then + plugin_file=$clang_lib_dir/$plugin + fi + if test x$plugin_file != x$plugin; then + break; + fi + fi + done + if test -z $plugin_file; then + as_fn_error $? "Couldn't find clang plugin file for $CC." "$LINENO" 5 + fi + if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}ar", so it can be a program name with args. +set dummy ${ac_tool_prefix}ar; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_AR+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$AR"; then + ac_cv_prog_AR="$AR" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_AR="${ac_tool_prefix}ar" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +AR=$ac_cv_prog_AR +if test -n "$AR"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $AR" >&5 +$as_echo "$AR" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + +fi +if test -z "$ac_cv_prog_AR"; then + ac_ct_AR=$AR + # Extract the first word of "ar", so it can be a program name with args. +set dummy ar; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_ac_ct_AR+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$ac_ct_AR"; then + ac_cv_prog_ac_ct_AR="$ac_ct_AR" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_ac_ct_AR="ar" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +ac_ct_AR=$ac_cv_prog_ac_ct_AR +if test -n "$ac_ct_AR"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_AR" >&5 +$as_echo "$ac_ct_AR" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + if test "x$ac_ct_AR" = x; then + AR="" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + AR=$ac_ct_AR + fi +else + AR="$ac_cv_prog_AR" +fi + + if test "${AR}" = "" ; then + as_fn_error $? "Required archive tool 'ar' not found on PATH." "$LINENO" 5 + fi + plugin_option="--plugin $plugin_file" + touch conftest.c + ${AR} $plugin_option rc conftest.a conftest.c + if test "$?" != 0; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Failed: $AR $plugin_option rc" >&5 +$as_echo "$as_me: WARNING: Failed: $AR $plugin_option rc" >&2;} + plugin_file= + fi + rm -f conftest.* + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $plugin_file" >&5 +$as_echo "$plugin_file" >&6; } + fi + plugin_file="$plugin_file" + +if test -n "$plugin_file"; then + plugin_option="--plugin $plugin_file" +else + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for -plugin option" >&5 +$as_echo_n "checking for -plugin option... " >&6; } + plugin_names="liblto_plugin.so liblto_plugin-0.dll cyglto_plugin-0.dll" +plugin_option= for plugin in $plugin_names; do plugin_so=`${CC} ${CFLAGS} --print-prog-name $plugin` if test x$plugin_so = x$plugin; then @@ -7798,7 +8057,119 @@ for plugin in $plugin_names; do break fi done +if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}ar", so it can be a program name with args. +set dummy ${ac_tool_prefix}ar; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_AR+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$AR"; then + ac_cv_prog_AR="$AR" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_AR="${ac_tool_prefix}ar" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +AR=$ac_cv_prog_AR +if test -n "$AR"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $AR" >&5 +$as_echo "$AR" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + +fi +if test -z "$ac_cv_prog_AR"; then + ac_ct_AR=$AR + # Extract the first word of "ar", so it can be a program name with args. +set dummy ar; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_ac_ct_AR+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$ac_ct_AR"; then + ac_cv_prog_ac_ct_AR="$ac_ct_AR" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_ac_ct_AR="ar" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS +fi +fi +ac_ct_AR=$ac_cv_prog_ac_ct_AR +if test -n "$ac_ct_AR"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_AR" >&5 +$as_echo "$ac_ct_AR" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + if test "x$ac_ct_AR" = x; then + AR="" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + AR=$ac_ct_AR + fi +else + AR="$ac_cv_prog_AR" +fi + +if test "${AR}" = "" ; then + as_fn_error $? "Required archive tool 'ar' not found on PATH." "$LINENO" 5 +fi +touch conftest.c +${AR} $plugin_option rc conftest.a conftest.c +if test "$?" != 0; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Failed: $AR $plugin_option rc" >&5 +$as_echo "$as_me: WARNING: Failed: $AR $plugin_option rc" >&2;} + plugin_option= +fi +rm -f conftest.* +if test -n "$plugin_option"; then + plugin_option="$plugin_option" + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $plugin_option" >&5 +$as_echo "$plugin_option" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + +fi if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}ar", so it can be a program name with args. set dummy ${ac_tool_prefix}ar; ac_word=$2 @@ -7893,17 +8264,15 @@ fi test -z "$AR" && AR=ar if test -n "$plugin_option"; then - if $AR --help 2>&1 | grep -q "\--plugin"; then - touch conftest.c - $AR $plugin_option rc conftest.a conftest.c - if test "$?" != 0; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Failed: $AR $plugin_option rc" >&5 -$as_echo "$as_me: WARNING: Failed: $AR $plugin_option rc" >&2;} - else + case "$AR" in + *"$plugin_option"*) + ;; + *) + if $AR --help 2>&1 | grep -q "\--plugin"; then AR="$AR $plugin_option" fi - rm -f conftest.* - fi + ;; + esac fi test -z "$AR_FLAGS" && AR_FLAGS=cru @@ -8110,9 +8479,15 @@ fi test -z "$RANLIB" && RANLIB=: if test -n "$plugin_option" && test "$RANLIB" != ":"; then - if $RANLIB --help 2>&1 | grep -q "\--plugin"; then - RANLIB="$RANLIB $plugin_option" - fi + case "$RANLIB" in + *"$plugin_option"*) + ;; + *) + if $RANLIB --help 2>&1 | grep -q "\--plugin"; then + RANLIB="$RANLIB $plugin_option" + fi + ;; + esac fi @@ -12847,7 +13222,7 @@ else lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 lt_status=$lt_dlunknown cat > conftest.$ac_ext <<_LT_EOF -#line 12850 "configure" +#line 13225 "configure" #include "confdefs.h" #if HAVE_DLFCN_H @@ -12953,7 +13328,7 @@ else lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 lt_status=$lt_dlunknown cat > conftest.$ac_ext <<_LT_EOF -#line 12956 "configure" +#line 13331 "configure" #include "confdefs.h" #if HAVE_DLFCN_H diff --git a/libgm2/ChangeLog b/libgm2/ChangeLog index a7d26c880904..5e3460ff7c6e 100644 --- a/libgm2/ChangeLog +++ b/libgm2/ChangeLog @@ -1,3 +1,18 @@ +2025-10-07 Jonathan Wakely + + * configure.host: Fix spelling in comment. + +2025-10-05 Sam James + + * Makefile.in: Regenerate. + * aclocal.m4: Regenerate. + * configure: Regenerate. + * libm2cor/Makefile.in: Regenerate. + * libm2iso/Makefile.in: Regenerate. + * libm2log/Makefile.in: Regenerate. + * libm2min/Makefile.in: Regenerate. + * libm2pim/Makefile.in: Regenerate. + 2025-09-19 Gaius Mulley * libm2pim/Makefile.am (M2MODS): Add M2Diagnostic.mod. diff --git a/libgm2/Makefile.in b/libgm2/Makefile.in index 9cd79824a53d..af46b30ad608 100644 --- a/libgm2/Makefile.in +++ b/libgm2/Makefile.in @@ -91,7 +91,9 @@ target_triplet = @target@ subdir = . ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/../config/acx.m4 \ + $(top_srcdir)/../config/clang-plugin.m4 \ $(top_srcdir)/../config/depstand.m4 \ + $(top_srcdir)/../config/gcc-plugin.m4 \ $(top_srcdir)/../config/lead-dot.m4 \ $(top_srcdir)/../config/multi.m4 \ $(top_srcdir)/../config/no-executables.m4 \ @@ -215,6 +217,7 @@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LIPO = @LIPO@ +LLVM_CONFIG = @LLVM_CONFIG@ LN_S = @LN_S@ LTLIBOBJS = @LTLIBOBJS@ MAINT = @MAINT@ diff --git a/libgm2/aclocal.m4 b/libgm2/aclocal.m4 index 19cfb0d1eb26..80a7ff961962 100644 --- a/libgm2/aclocal.m4 +++ b/libgm2/aclocal.m4 @@ -1188,7 +1188,9 @@ AC_SUBST([am__untar]) ]) # _AM_PROG_TAR m4_include([../config/acx.m4]) +m4_include([../config/clang-plugin.m4]) m4_include([../config/depstand.m4]) +m4_include([../config/gcc-plugin.m4]) m4_include([../config/lead-dot.m4]) m4_include([../config/multi.m4]) m4_include([../config/no-executables.m4]) diff --git a/libgm2/configure b/libgm2/configure index 8ffdb3116250..95fcbfe2ee5a 100755 --- a/libgm2/configure +++ b/libgm2/configure @@ -656,6 +656,7 @@ OTOOL LIPO NMEDIT DSYMUTIL +LLVM_CONFIG OBJDUMP ac_ct_DUMPBIN DUMPBIN @@ -9791,8 +9792,266 @@ test -z "$deplibs_check_method" && deplibs_check_method=unknown -plugin_option= + +# Try CLANG_PLUGIN_FILE first since GCC_PLUGIN_OPTION may return the +# wrong plugin_option with clang. + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for clang" >&5 +$as_echo_n "checking for clang... " >&6; } +if ${clang_cv_is_clang+:} false; then : + $as_echo_n "(cached) " >&6 +else + + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +#ifdef __clang__ + yes +#endif + +_ACEOF +if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | + $EGREP "yes" >/dev/null 2>&1; then : + clang_cv_is_clang=yes +else + clang_cv_is_clang=no +fi +rm -f conftest* + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $clang_cv_is_clang" >&5 +$as_echo "$clang_cv_is_clang" >&6; } + plugin_file= + if test $clang_cv_is_clang = yes; then + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for clang plugin file" >&5 +$as_echo_n "checking for clang plugin file... " >&6; } + plugin_names="LLVMgold.so" + for plugin in $plugin_names; do + plugin_file=`${CC} ${CFLAGS} --print-file-name $plugin` + if test x$plugin_file = x$plugin; then + if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}llvm-config", so it can be a program name with args. +set dummy ${ac_tool_prefix}llvm-config; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_LLVM_CONFIG+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$LLVM_CONFIG"; then + ac_cv_prog_LLVM_CONFIG="$LLVM_CONFIG" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_LLVM_CONFIG="${ac_tool_prefix}llvm-config" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +LLVM_CONFIG=$ac_cv_prog_LLVM_CONFIG +if test -n "$LLVM_CONFIG"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $LLVM_CONFIG" >&5 +$as_echo "$LLVM_CONFIG" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + +fi +if test -z "$ac_cv_prog_LLVM_CONFIG"; then + ac_ct_LLVM_CONFIG=$LLVM_CONFIG + # Extract the first word of "llvm-config", so it can be a program name with args. +set dummy llvm-config; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_ac_ct_LLVM_CONFIG+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$ac_ct_LLVM_CONFIG"; then + ac_cv_prog_ac_ct_LLVM_CONFIG="$ac_ct_LLVM_CONFIG" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_ac_ct_LLVM_CONFIG="llvm-config" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +ac_ct_LLVM_CONFIG=$ac_cv_prog_ac_ct_LLVM_CONFIG +if test -n "$ac_ct_LLVM_CONFIG"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_LLVM_CONFIG" >&5 +$as_echo "$ac_ct_LLVM_CONFIG" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + if test "x$ac_ct_LLVM_CONFIG" = x; then + LLVM_CONFIG="" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + LLVM_CONFIG=$ac_ct_LLVM_CONFIG + fi +else + LLVM_CONFIG="$ac_cv_prog_LLVM_CONFIG" +fi + + if test "$?" != 0; then + as_fn_error $? "Required tool 'llvm-config' not found on PATH." "$LINENO" 5 + fi + clang_lib_dir=`$LLVM_CONFIG --libdir` + if test -f $clang_lib_dir/$plugin; then + plugin_file=$clang_lib_dir/$plugin + fi + if test x$plugin_file != x$plugin; then + break; + fi + fi + done + if test -z $plugin_file; then + as_fn_error $? "Couldn't find clang plugin file for $CC." "$LINENO" 5 + fi + if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}ar", so it can be a program name with args. +set dummy ${ac_tool_prefix}ar; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_AR+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$AR"; then + ac_cv_prog_AR="$AR" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_AR="${ac_tool_prefix}ar" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +AR=$ac_cv_prog_AR +if test -n "$AR"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $AR" >&5 +$as_echo "$AR" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + +fi +if test -z "$ac_cv_prog_AR"; then + ac_ct_AR=$AR + # Extract the first word of "ar", so it can be a program name with args. +set dummy ar; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_ac_ct_AR+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$ac_ct_AR"; then + ac_cv_prog_ac_ct_AR="$ac_ct_AR" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_ac_ct_AR="ar" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +ac_ct_AR=$ac_cv_prog_ac_ct_AR +if test -n "$ac_ct_AR"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_AR" >&5 +$as_echo "$ac_ct_AR" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + if test "x$ac_ct_AR" = x; then + AR="" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + AR=$ac_ct_AR + fi +else + AR="$ac_cv_prog_AR" +fi + + if test "${AR}" = "" ; then + as_fn_error $? "Required archive tool 'ar' not found on PATH." "$LINENO" 5 + fi + plugin_option="--plugin $plugin_file" + touch conftest.c + ${AR} $plugin_option rc conftest.a conftest.c + if test "$?" != 0; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Failed: $AR $plugin_option rc" >&5 +$as_echo "$as_me: WARNING: Failed: $AR $plugin_option rc" >&2;} + plugin_file= + fi + rm -f conftest.* + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $plugin_file" >&5 +$as_echo "$plugin_file" >&6; } + fi + plugin_file="$plugin_file" + +if test -n "$plugin_file"; then + plugin_option="--plugin $plugin_file" +else + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for -plugin option" >&5 +$as_echo_n "checking for -plugin option... " >&6; } + plugin_names="liblto_plugin.so liblto_plugin-0.dll cyglto_plugin-0.dll" +plugin_option= for plugin in $plugin_names; do plugin_so=`${CC} ${CFLAGS} --print-prog-name $plugin` if test x$plugin_so = x$plugin; then @@ -9803,7 +10062,119 @@ for plugin in $plugin_names; do break fi done +if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}ar", so it can be a program name with args. +set dummy ${ac_tool_prefix}ar; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_AR+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$AR"; then + ac_cv_prog_AR="$AR" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_AR="${ac_tool_prefix}ar" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +AR=$ac_cv_prog_AR +if test -n "$AR"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $AR" >&5 +$as_echo "$AR" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + +fi +if test -z "$ac_cv_prog_AR"; then + ac_ct_AR=$AR + # Extract the first word of "ar", so it can be a program name with args. +set dummy ar; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_ac_ct_AR+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$ac_ct_AR"; then + ac_cv_prog_ac_ct_AR="$ac_ct_AR" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_ac_ct_AR="ar" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS +fi +fi +ac_ct_AR=$ac_cv_prog_ac_ct_AR +if test -n "$ac_ct_AR"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_AR" >&5 +$as_echo "$ac_ct_AR" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + if test "x$ac_ct_AR" = x; then + AR="" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + AR=$ac_ct_AR + fi +else + AR="$ac_cv_prog_AR" +fi + +if test "${AR}" = "" ; then + as_fn_error $? "Required archive tool 'ar' not found on PATH." "$LINENO" 5 +fi +touch conftest.c +${AR} $plugin_option rc conftest.a conftest.c +if test "$?" != 0; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Failed: $AR $plugin_option rc" >&5 +$as_echo "$as_me: WARNING: Failed: $AR $plugin_option rc" >&2;} + plugin_option= +fi +rm -f conftest.* +if test -n "$plugin_option"; then + plugin_option="$plugin_option" + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $plugin_option" >&5 +$as_echo "$plugin_option" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + +fi if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}ar", so it can be a program name with args. set dummy ${ac_tool_prefix}ar; ac_word=$2 @@ -9898,17 +10269,15 @@ fi test -z "$AR" && AR=ar if test -n "$plugin_option"; then - if $AR --help 2>&1 | grep -q "\--plugin"; then - touch conftest.c - $AR $plugin_option rc conftest.a conftest.c - if test "$?" != 0; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Failed: $AR $plugin_option rc" >&5 -$as_echo "$as_me: WARNING: Failed: $AR $plugin_option rc" >&2;} - else + case "$AR" in + *"$plugin_option"*) + ;; + *) + if $AR --help 2>&1 | grep -q "\--plugin"; then AR="$AR $plugin_option" fi - rm -f conftest.* - fi + ;; + esac fi test -z "$AR_FLAGS" && AR_FLAGS=cru @@ -10115,9 +10484,15 @@ fi test -z "$RANLIB" && RANLIB=: if test -n "$plugin_option" && test "$RANLIB" != ":"; then - if $RANLIB --help 2>&1 | grep -q "\--plugin"; then - RANLIB="$RANLIB $plugin_option" - fi + case "$RANLIB" in + *"$plugin_option"*) + ;; + *) + if $RANLIB --help 2>&1 | grep -q "\--plugin"; then + RANLIB="$RANLIB $plugin_option" + fi + ;; + esac fi @@ -14854,7 +15229,7 @@ else lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 lt_status=$lt_dlunknown cat > conftest.$ac_ext <<_LT_EOF -#line 14857 "configure" +#line 15232 "configure" #include "confdefs.h" #if HAVE_DLFCN_H @@ -14960,7 +15335,7 @@ else lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 lt_status=$lt_dlunknown cat > conftest.$ac_ext <<_LT_EOF -#line 14963 "configure" +#line 15338 "configure" #include "confdefs.h" #if HAVE_DLFCN_H diff --git a/libgm2/configure.host b/libgm2/configure.host index 2806fd6872b3..b96a37cab170 100644 --- a/libgm2/configure.host +++ b/libgm2/configure.host @@ -200,10 +200,10 @@ cpu_opt_ext_random=cpu/generic/opt/bits/opt_random.h # Set any OS-dependent bits. # Set the os_include_dir. -# Set the error_costants_dir. +# Set the error_constants_dir. # Set c_model, c_compatibility here. # If atomic ops and/or numeric limits are OS-specific rather than -# CPU-specifc, set those here too. +# CPU-specific, set those here too. # THIS TABLE IS SORTED. KEEP IT THAT WAY. case "${host_os}" in aix[56789]*) diff --git a/libgm2/libm2cor/Makefile.in b/libgm2/libm2cor/Makefile.in index f9952cff71a7..19efef15b829 100644 --- a/libgm2/libm2cor/Makefile.in +++ b/libgm2/libm2cor/Makefile.in @@ -109,7 +109,9 @@ target_triplet = @target@ subdir = libm2cor ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/../config/acx.m4 \ + $(top_srcdir)/../config/clang-plugin.m4 \ $(top_srcdir)/../config/depstand.m4 \ + $(top_srcdir)/../config/gcc-plugin.m4 \ $(top_srcdir)/../config/lead-dot.m4 \ $(top_srcdir)/../config/multi.m4 \ $(top_srcdir)/../config/no-executables.m4 \ @@ -292,6 +294,7 @@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LIPO = @LIPO@ +LLVM_CONFIG = @LLVM_CONFIG@ LN_S = @LN_S@ LTLIBOBJS = @LTLIBOBJS@ MAINT = @MAINT@ diff --git a/libgm2/libm2iso/Makefile.in b/libgm2/libm2iso/Makefile.in index 308c023b9967..d6b143eaf234 100644 --- a/libgm2/libm2iso/Makefile.in +++ b/libgm2/libm2iso/Makefile.in @@ -109,7 +109,9 @@ target_triplet = @target@ subdir = libm2iso ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/../config/acx.m4 \ + $(top_srcdir)/../config/clang-plugin.m4 \ $(top_srcdir)/../config/depstand.m4 \ + $(top_srcdir)/../config/gcc-plugin.m4 \ $(top_srcdir)/../config/lead-dot.m4 \ $(top_srcdir)/../config/multi.m4 \ $(top_srcdir)/../config/no-executables.m4 \ @@ -318,6 +320,7 @@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LIPO = @LIPO@ +LLVM_CONFIG = @LLVM_CONFIG@ LN_S = @LN_S@ LTLIBOBJS = @LTLIBOBJS@ MAINT = @MAINT@ diff --git a/libgm2/libm2log/Makefile.in b/libgm2/libm2log/Makefile.in index dcd5941ccd00..93dcc6639fd5 100644 --- a/libgm2/libm2log/Makefile.in +++ b/libgm2/libm2log/Makefile.in @@ -109,7 +109,9 @@ target_triplet = @target@ subdir = libm2log ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/../config/acx.m4 \ + $(top_srcdir)/../config/clang-plugin.m4 \ $(top_srcdir)/../config/depstand.m4 \ + $(top_srcdir)/../config/gcc-plugin.m4 \ $(top_srcdir)/../config/lead-dot.m4 \ $(top_srcdir)/../config/multi.m4 \ $(top_srcdir)/../config/no-executables.m4 \ @@ -281,6 +283,7 @@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LIPO = @LIPO@ +LLVM_CONFIG = @LLVM_CONFIG@ LN_S = @LN_S@ LTLIBOBJS = @LTLIBOBJS@ MAINT = @MAINT@ diff --git a/libgm2/libm2min/Makefile.in b/libgm2/libm2min/Makefile.in index 93bf8a4586dc..2c6bb9a77f5c 100644 --- a/libgm2/libm2min/Makefile.in +++ b/libgm2/libm2min/Makefile.in @@ -109,7 +109,9 @@ target_triplet = @target@ subdir = libm2min ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/../config/acx.m4 \ + $(top_srcdir)/../config/clang-plugin.m4 \ $(top_srcdir)/../config/depstand.m4 \ + $(top_srcdir)/../config/gcc-plugin.m4 \ $(top_srcdir)/../config/lead-dot.m4 \ $(top_srcdir)/../config/multi.m4 \ $(top_srcdir)/../config/no-executables.m4 \ @@ -271,6 +273,7 @@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LIPO = @LIPO@ +LLVM_CONFIG = @LLVM_CONFIG@ LN_S = @LN_S@ LTLIBOBJS = @LTLIBOBJS@ MAINT = @MAINT@ diff --git a/libgm2/libm2pim/Makefile.in b/libgm2/libm2pim/Makefile.in index abc826e62813..139aec94ec08 100644 --- a/libgm2/libm2pim/Makefile.in +++ b/libgm2/libm2pim/Makefile.in @@ -109,7 +109,9 @@ target_triplet = @target@ subdir = libm2pim ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/../config/acx.m4 \ + $(top_srcdir)/../config/clang-plugin.m4 \ $(top_srcdir)/../config/depstand.m4 \ + $(top_srcdir)/../config/gcc-plugin.m4 \ $(top_srcdir)/../config/lead-dot.m4 \ $(top_srcdir)/../config/multi.m4 \ $(top_srcdir)/../config/no-executables.m4 \ @@ -309,6 +311,7 @@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LIPO = @LIPO@ +LLVM_CONFIG = @LLVM_CONFIG@ LN_S = @LN_S@ LTLIBOBJS = @LTLIBOBJS@ MAINT = @MAINT@ diff --git a/libgomp/ChangeLog b/libgomp/ChangeLog index ea83d9e44418..66f26a62a10c 100644 --- a/libgomp/ChangeLog +++ b/libgomp/ChangeLog @@ -1,3 +1,10 @@ +2025-10-05 Sam James + + * Makefile.in: Regenerate. + * aclocal.m4: Regenerate. + * configure: Regenerate. + * testsuite/Makefile.in: Regenerate. + 2025-09-18 Tobias Burnus Sandra Loosemore diff --git a/libgomp/Makefile.in b/libgomp/Makefile.in index 6d22b3d3bfd0..8dc2ace13a99 100644 --- a/libgomp/Makefile.in +++ b/libgomp/Makefile.in @@ -125,9 +125,11 @@ subdir = . ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/../config/acx.m4 \ $(top_srcdir)/../config/ax_count_cpus.m4 \ + $(top_srcdir)/../config/clang-plugin.m4 \ $(top_srcdir)/../config/depstand.m4 \ $(top_srcdir)/../config/enable.m4 \ $(top_srcdir)/../config/futex.m4 \ + $(top_srcdir)/../config/gcc-plugin.m4 \ $(top_srcdir)/../config/lead-dot.m4 \ $(top_srcdir)/../config/lthostflags.m4 \ $(top_srcdir)/../config/multi.m4 \ @@ -397,6 +399,7 @@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LIPO = @LIPO@ +LLVM_CONFIG = @LLVM_CONFIG@ LN_S = @LN_S@ LTLIBOBJS = @LTLIBOBJS@ MAINT = @MAINT@ diff --git a/libgomp/aclocal.m4 b/libgomp/aclocal.m4 index 55d9d71895a2..94d1b0af1253 100644 --- a/libgomp/aclocal.m4 +++ b/libgomp/aclocal.m4 @@ -1169,9 +1169,11 @@ AC_SUBST([am__untar]) m4_include([../config/acx.m4]) m4_include([../config/ax_count_cpus.m4]) +m4_include([../config/clang-plugin.m4]) m4_include([../config/depstand.m4]) m4_include([../config/enable.m4]) m4_include([../config/futex.m4]) +m4_include([../config/gcc-plugin.m4]) m4_include([../config/lead-dot.m4]) m4_include([../config/lthostflags.m4]) m4_include([../config/multi.m4]) diff --git a/libgomp/configure b/libgomp/configure index df1fc8df30e6..4136a0b8cd01 100755 --- a/libgomp/configure +++ b/libgomp/configure @@ -688,12 +688,13 @@ ENABLE_DARWIN_AT_RPATH_TRUE enable_static enable_shared lt_host_flags -CPP OTOOL64 OTOOL LIPO NMEDIT DSYMUTIL +LLVM_CONFIG +CPP OBJDUMP LN_S NM @@ -1636,6 +1637,43 @@ fi } # ac_fn_c_try_compile +# ac_fn_c_try_cpp LINENO +# ---------------------- +# Try to preprocess conftest.$ac_ext, and return whether this succeeded. +ac_fn_c_try_cpp () +{ + as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack + if { { ac_try="$ac_cpp conftest.$ac_ext" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" +$as_echo "$ac_try_echo"; } >&5 + (eval "$ac_cpp conftest.$ac_ext") 2>conftest.err + ac_status=$? + if test -s conftest.err; then + grep -v '^ *+' conftest.err >conftest.er1 + cat conftest.er1 >&5 + mv -f conftest.er1 conftest.err + fi + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } > conftest.i && { + test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" || + test ! -s conftest.err + }; then : + ac_retval=0 +else + $as_echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_retval=1 +fi + eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno + as_fn_set_status $ac_retval + +} # ac_fn_c_try_cpp + # ac_fn_c_try_link LINENO # ----------------------- # Try to link conftest.$ac_ext, and return whether this succeeded. @@ -1713,43 +1751,6 @@ $as_echo "$ac_res" >&6; } } # ac_fn_c_check_header_compile -# ac_fn_c_try_cpp LINENO -# ---------------------- -# Try to preprocess conftest.$ac_ext, and return whether this succeeded. -ac_fn_c_try_cpp () -{ - as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack - if { { ac_try="$ac_cpp conftest.$ac_ext" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" -$as_echo "$ac_try_echo"; } >&5 - (eval "$ac_cpp conftest.$ac_ext") 2>conftest.err - ac_status=$? - if test -s conftest.err; then - grep -v '^ *+' conftest.err >conftest.er1 - cat conftest.er1 >&5 - mv -f conftest.er1 conftest.err - fi - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; } > conftest.i && { - test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" || - test ! -s conftest.err - }; then : - ac_retval=0 -else - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - ac_retval=1 -fi - eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno - as_fn_set_status $ac_retval - -} # ac_fn_c_try_cpp - # ac_fn_c_try_run LINENO # ---------------------- # Try to link conftest.$ac_ext, and return whether this succeeded. Assumes @@ -6171,29 +6172,191 @@ test -z "$deplibs_check_method" && deplibs_check_method=unknown -plugin_option= -plugin_names="liblto_plugin.so liblto_plugin-0.dll cyglto_plugin-0.dll" -for plugin in $plugin_names; do - plugin_so=`${CC} ${CFLAGS} --print-prog-name $plugin` - if test x$plugin_so = x$plugin; then - plugin_so=`${CC} ${CFLAGS} --print-file-name $plugin` - fi - if test x$plugin_so != x$plugin; then - plugin_option="--plugin $plugin_so" - break - fi + +ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to run the C preprocessor" >&5 +$as_echo_n "checking how to run the C preprocessor... " >&6; } +# On Suns, sometimes $CPP names a directory. +if test -n "$CPP" && test -d "$CPP"; then + CPP= +fi +if test -z "$CPP"; then + if ${ac_cv_prog_CPP+:} false; then : + $as_echo_n "(cached) " >&6 +else + # Double quotes because CPP needs to be expanded + for CPP in "$CC -E" "$CC -E -traditional-cpp" "/lib/cpp" + do + ac_preproc_ok=false +for ac_c_preproc_warn_flag in '' yes +do + # Use a header file that comes with gcc, so configuring glibc + # with a fresh cross-compiler works. + # Prefer to if __STDC__ is defined, since + # exists even on freestanding compilers. + # On the NeXT, cc -E runs the code through the compiler's parser, + # not just through cpp. "Syntax error" is here to catch this case. + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#ifdef __STDC__ +# include +#else +# include +#endif + Syntax error +_ACEOF +if ac_fn_c_try_cpp "$LINENO"; then : + +else + # Broken: fails on valid input. +continue +fi +rm -f conftest.err conftest.i conftest.$ac_ext + + # OK, works on sane cases. Now check whether nonexistent headers + # can be detected and how. + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include +_ACEOF +if ac_fn_c_try_cpp "$LINENO"; then : + # Broken: success on invalid input. +continue +else + # Passes both tests. +ac_preproc_ok=: +break +fi +rm -f conftest.err conftest.i conftest.$ac_ext + done +# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped. +rm -f conftest.i conftest.err conftest.$ac_ext +if $ac_preproc_ok; then : + break +fi -if test -n "$ac_tool_prefix"; then - # Extract the first word of "${ac_tool_prefix}ar", so it can be a program name with args. -set dummy ${ac_tool_prefix}ar; ac_word=$2 + done + ac_cv_prog_CPP=$CPP + +fi + CPP=$ac_cv_prog_CPP +else + ac_cv_prog_CPP=$CPP +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $CPP" >&5 +$as_echo "$CPP" >&6; } +ac_preproc_ok=false +for ac_c_preproc_warn_flag in '' yes +do + # Use a header file that comes with gcc, so configuring glibc + # with a fresh cross-compiler works. + # Prefer to if __STDC__ is defined, since + # exists even on freestanding compilers. + # On the NeXT, cc -E runs the code through the compiler's parser, + # not just through cpp. "Syntax error" is here to catch this case. + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#ifdef __STDC__ +# include +#else +# include +#endif + Syntax error +_ACEOF +if ac_fn_c_try_cpp "$LINENO"; then : + +else + # Broken: fails on valid input. +continue +fi +rm -f conftest.err conftest.i conftest.$ac_ext + + # OK, works on sane cases. Now check whether nonexistent headers + # can be detected and how. + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include +_ACEOF +if ac_fn_c_try_cpp "$LINENO"; then : + # Broken: success on invalid input. +continue +else + # Passes both tests. +ac_preproc_ok=: +break +fi +rm -f conftest.err conftest.i conftest.$ac_ext + +done +# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped. +rm -f conftest.i conftest.err conftest.$ac_ext +if $ac_preproc_ok; then : + +else + { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 +$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} +as_fn_error $? "C preprocessor \"$CPP\" fails sanity check +See \`config.log' for more details" "$LINENO" 5; } +fi + +ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu + + + +# Try CLANG_PLUGIN_FILE first since GCC_PLUGIN_OPTION may return the +# wrong plugin_option with clang. + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for clang" >&5 +$as_echo_n "checking for clang... " >&6; } +if ${clang_cv_is_clang+:} false; then : + $as_echo_n "(cached) " >&6 +else + + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +#ifdef __clang__ + yes +#endif + +_ACEOF +if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | + $EGREP "yes" >/dev/null 2>&1; then : + clang_cv_is_clang=yes +else + clang_cv_is_clang=no +fi +rm -f conftest* + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $clang_cv_is_clang" >&5 +$as_echo "$clang_cv_is_clang" >&6; } + plugin_file= + if test $clang_cv_is_clang = yes; then + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for clang plugin file" >&5 +$as_echo_n "checking for clang plugin file... " >&6; } + plugin_names="LLVMgold.so" + for plugin in $plugin_names; do + plugin_file=`${CC} ${CFLAGS} --print-file-name $plugin` + if test x$plugin_file = x$plugin; then + if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}llvm-config", so it can be a program name with args. +set dummy ${ac_tool_prefix}llvm-config; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_prog_AR+:} false; then : +if ${ac_cv_prog_LLVM_CONFIG+:} false; then : $as_echo_n "(cached) " >&6 else - if test -n "$AR"; then - ac_cv_prog_AR="$AR" # Let the user override the test. + if test -n "$LLVM_CONFIG"; then + ac_cv_prog_LLVM_CONFIG="$LLVM_CONFIG" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH @@ -6202,7 +6365,7 @@ do test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_prog_AR="${ac_tool_prefix}ar" + ac_cv_prog_LLVM_CONFIG="${ac_tool_prefix}llvm-config" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi @@ -6212,10 +6375,10 @@ IFS=$as_save_IFS fi fi -AR=$ac_cv_prog_AR -if test -n "$AR"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $AR" >&5 -$as_echo "$AR" >&6; } +LLVM_CONFIG=$ac_cv_prog_LLVM_CONFIG +if test -n "$LLVM_CONFIG"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $LLVM_CONFIG" >&5 +$as_echo "$LLVM_CONFIG" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } @@ -6223,13 +6386,120 @@ fi fi -if test -z "$ac_cv_prog_AR"; then - ac_ct_AR=$AR - # Extract the first word of "ar", so it can be a program name with args. -set dummy ar; ac_word=$2 +if test -z "$ac_cv_prog_LLVM_CONFIG"; then + ac_ct_LLVM_CONFIG=$LLVM_CONFIG + # Extract the first word of "llvm-config", so it can be a program name with args. +set dummy llvm-config; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_prog_ac_ct_AR+:} false; then : +if ${ac_cv_prog_ac_ct_LLVM_CONFIG+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$ac_ct_LLVM_CONFIG"; then + ac_cv_prog_ac_ct_LLVM_CONFIG="$ac_ct_LLVM_CONFIG" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_ac_ct_LLVM_CONFIG="llvm-config" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +ac_ct_LLVM_CONFIG=$ac_cv_prog_ac_ct_LLVM_CONFIG +if test -n "$ac_ct_LLVM_CONFIG"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_LLVM_CONFIG" >&5 +$as_echo "$ac_ct_LLVM_CONFIG" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + if test "x$ac_ct_LLVM_CONFIG" = x; then + LLVM_CONFIG="" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + LLVM_CONFIG=$ac_ct_LLVM_CONFIG + fi +else + LLVM_CONFIG="$ac_cv_prog_LLVM_CONFIG" +fi + + if test "$?" != 0; then + as_fn_error $? "Required tool 'llvm-config' not found on PATH." "$LINENO" 5 + fi + clang_lib_dir=`$LLVM_CONFIG --libdir` + if test -f $clang_lib_dir/$plugin; then + plugin_file=$clang_lib_dir/$plugin + fi + if test x$plugin_file != x$plugin; then + break; + fi + fi + done + if test -z $plugin_file; then + as_fn_error $? "Couldn't find clang plugin file for $CC." "$LINENO" 5 + fi + if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}ar", so it can be a program name with args. +set dummy ${ac_tool_prefix}ar; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_AR+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$AR"; then + ac_cv_prog_AR="$AR" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_AR="${ac_tool_prefix}ar" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +AR=$ac_cv_prog_AR +if test -n "$AR"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $AR" >&5 +$as_echo "$AR" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + +fi +if test -z "$ac_cv_prog_AR"; then + ac_ct_AR=$AR + # Extract the first word of "ar", so it can be a program name with args. +set dummy ar; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_ac_ct_AR+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_AR"; then @@ -6262,7 +6532,7 @@ $as_echo "no" >&6; } fi if test "x$ac_ct_AR" = x; then - AR="false" + AR="" else case $cross_compiling:$ac_tool_warned in yes:) @@ -6276,19 +6546,257 @@ else AR="$ac_cv_prog_AR" fi -test -z "$AR" && AR=ar -if test -n "$plugin_option"; then - if $AR --help 2>&1 | grep -q "\--plugin"; then + if test "${AR}" = "" ; then + as_fn_error $? "Required archive tool 'ar' not found on PATH." "$LINENO" 5 + fi + plugin_option="--plugin $plugin_file" touch conftest.c - $AR $plugin_option rc conftest.a conftest.c + ${AR} $plugin_option rc conftest.a conftest.c if test "$?" != 0; then { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Failed: $AR $plugin_option rc" >&5 $as_echo "$as_me: WARNING: Failed: $AR $plugin_option rc" >&2;} - else - AR="$AR $plugin_option" + plugin_file= fi rm -f conftest.* + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $plugin_file" >&5 +$as_echo "$plugin_file" >&6; } + fi + plugin_file="$plugin_file" + +if test -n "$plugin_file"; then + plugin_option="--plugin $plugin_file" +else + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for -plugin option" >&5 +$as_echo_n "checking for -plugin option... " >&6; } + +plugin_names="liblto_plugin.so liblto_plugin-0.dll cyglto_plugin-0.dll" +plugin_option= +for plugin in $plugin_names; do + plugin_so=`${CC} ${CFLAGS} --print-prog-name $plugin` + if test x$plugin_so = x$plugin; then + plugin_so=`${CC} ${CFLAGS} --print-file-name $plugin` + fi + if test x$plugin_so != x$plugin; then + plugin_option="--plugin $plugin_so" + break + fi +done +if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}ar", so it can be a program name with args. +set dummy ${ac_tool_prefix}ar; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_AR+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$AR"; then + ac_cv_prog_AR="$AR" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_AR="${ac_tool_prefix}ar" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +AR=$ac_cv_prog_AR +if test -n "$AR"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $AR" >&5 +$as_echo "$AR" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + +fi +if test -z "$ac_cv_prog_AR"; then + ac_ct_AR=$AR + # Extract the first word of "ar", so it can be a program name with args. +set dummy ar; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_ac_ct_AR+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$ac_ct_AR"; then + ac_cv_prog_ac_ct_AR="$ac_ct_AR" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_ac_ct_AR="ar" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +ac_ct_AR=$ac_cv_prog_ac_ct_AR +if test -n "$ac_ct_AR"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_AR" >&5 +$as_echo "$ac_ct_AR" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + if test "x$ac_ct_AR" = x; then + AR="" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + AR=$ac_ct_AR fi +else + AR="$ac_cv_prog_AR" +fi + +if test "${AR}" = "" ; then + as_fn_error $? "Required archive tool 'ar' not found on PATH." "$LINENO" 5 +fi +touch conftest.c +${AR} $plugin_option rc conftest.a conftest.c +if test "$?" != 0; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Failed: $AR $plugin_option rc" >&5 +$as_echo "$as_me: WARNING: Failed: $AR $plugin_option rc" >&2;} + plugin_option= +fi +rm -f conftest.* +if test -n "$plugin_option"; then + plugin_option="$plugin_option" + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $plugin_option" >&5 +$as_echo "$plugin_option" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + +fi +if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}ar", so it can be a program name with args. +set dummy ${ac_tool_prefix}ar; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_AR+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$AR"; then + ac_cv_prog_AR="$AR" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_AR="${ac_tool_prefix}ar" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +AR=$ac_cv_prog_AR +if test -n "$AR"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $AR" >&5 +$as_echo "$AR" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + +fi +if test -z "$ac_cv_prog_AR"; then + ac_ct_AR=$AR + # Extract the first word of "ar", so it can be a program name with args. +set dummy ar; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_ac_ct_AR+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$ac_ct_AR"; then + ac_cv_prog_ac_ct_AR="$ac_ct_AR" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_ac_ct_AR="ar" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +ac_ct_AR=$ac_cv_prog_ac_ct_AR +if test -n "$ac_ct_AR"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_AR" >&5 +$as_echo "$ac_ct_AR" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + if test "x$ac_ct_AR" = x; then + AR="false" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + AR=$ac_ct_AR + fi +else + AR="$ac_cv_prog_AR" +fi + +test -z "$AR" && AR=ar +if test -n "$plugin_option"; then + case "$AR" in + *"$plugin_option"*) + ;; + *) + if $AR --help 2>&1 | grep -q "\--plugin"; then + AR="$AR $plugin_option" + fi + ;; + esac fi test -z "$AR_FLAGS" && AR_FLAGS=cru @@ -6495,9 +7003,15 @@ fi test -z "$RANLIB" && RANLIB=: if test -n "$plugin_option" && test "$RANLIB" != ":"; then - if $RANLIB --help 2>&1 | grep -q "\--plugin"; then - RANLIB="$RANLIB $plugin_option" - fi + case "$RANLIB" in + *"$plugin_option"*) + ;; + *) + if $RANLIB --help 2>&1 | grep -q "\--plugin"; then + RANLIB="$RANLIB $plugin_option" + fi + ;; + esac fi @@ -6824,7 +7338,6 @@ fi - # Check whether --enable-libtool-lock was given. @@ -7650,144 +8163,6 @@ $as_echo "$lt_cv_ld_force_load" >&6; } ;; esac -ac_ext=c -ac_cpp='$CPP $CPPFLAGS' -ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' -ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_c_compiler_gnu -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to run the C preprocessor" >&5 -$as_echo_n "checking how to run the C preprocessor... " >&6; } -# On Suns, sometimes $CPP names a directory. -if test -n "$CPP" && test -d "$CPP"; then - CPP= -fi -if test -z "$CPP"; then - if ${ac_cv_prog_CPP+:} false; then : - $as_echo_n "(cached) " >&6 -else - # Double quotes because CPP needs to be expanded - for CPP in "$CC -E" "$CC -E -traditional-cpp" "/lib/cpp" - do - ac_preproc_ok=false -for ac_c_preproc_warn_flag in '' yes -do - # Use a header file that comes with gcc, so configuring glibc - # with a fresh cross-compiler works. - # Prefer to if __STDC__ is defined, since - # exists even on freestanding compilers. - # On the NeXT, cc -E runs the code through the compiler's parser, - # not just through cpp. "Syntax error" is here to catch this case. - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#ifdef __STDC__ -# include -#else -# include -#endif - Syntax error -_ACEOF -if ac_fn_c_try_cpp "$LINENO"; then : - -else - # Broken: fails on valid input. -continue -fi -rm -f conftest.err conftest.i conftest.$ac_ext - - # OK, works on sane cases. Now check whether nonexistent headers - # can be detected and how. - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include -_ACEOF -if ac_fn_c_try_cpp "$LINENO"; then : - # Broken: success on invalid input. -continue -else - # Passes both tests. -ac_preproc_ok=: -break -fi -rm -f conftest.err conftest.i conftest.$ac_ext - -done -# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped. -rm -f conftest.i conftest.err conftest.$ac_ext -if $ac_preproc_ok; then : - break -fi - - done - ac_cv_prog_CPP=$CPP - -fi - CPP=$ac_cv_prog_CPP -else - ac_cv_prog_CPP=$CPP -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $CPP" >&5 -$as_echo "$CPP" >&6; } -ac_preproc_ok=false -for ac_c_preproc_warn_flag in '' yes -do - # Use a header file that comes with gcc, so configuring glibc - # with a fresh cross-compiler works. - # Prefer to if __STDC__ is defined, since - # exists even on freestanding compilers. - # On the NeXT, cc -E runs the code through the compiler's parser, - # not just through cpp. "Syntax error" is here to catch this case. - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#ifdef __STDC__ -# include -#else -# include -#endif - Syntax error -_ACEOF -if ac_fn_c_try_cpp "$LINENO"; then : - -else - # Broken: fails on valid input. -continue -fi -rm -f conftest.err conftest.i conftest.$ac_ext - - # OK, works on sane cases. Now check whether nonexistent headers - # can be detected and how. - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include -_ACEOF -if ac_fn_c_try_cpp "$LINENO"; then : - # Broken: success on invalid input. -continue -else - # Passes both tests. -ac_preproc_ok=: -break -fi -rm -f conftest.err conftest.i conftest.$ac_ext - -done -# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped. -rm -f conftest.i conftest.err conftest.$ac_ext -if $ac_preproc_ok; then : - -else - { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 -$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} -as_fn_error $? "C preprocessor \"$CPP\" fails sanity check -See \`config.log' for more details" "$LINENO" 5; } -fi - -ac_ext=c -ac_cpp='$CPP $CPPFLAGS' -ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' -ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_c_compiler_gnu - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ANSI C header files" >&5 $as_echo_n "checking for ANSI C header files... " >&6; } if ${ac_cv_header_stdc+:} false; then : @@ -11469,7 +11844,7 @@ else lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 lt_status=$lt_dlunknown cat > conftest.$ac_ext <<_LT_EOF -#line 11472 "configure" +#line 11847 "configure" #include "confdefs.h" #if HAVE_DLFCN_H @@ -11575,7 +11950,7 @@ else lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 lt_status=$lt_dlunknown cat > conftest.$ac_ext <<_LT_EOF -#line 11578 "configure" +#line 11953 "configure" #include "confdefs.h" #if HAVE_DLFCN_H diff --git a/libgomp/plugin/plugin-gcn.c b/libgomp/plugin/plugin-gcn.c index 18f01e090023..cd5a19b03551 100644 --- a/libgomp/plugin/plugin-gcn.c +++ b/libgomp/plugin/plugin-gcn.c @@ -3331,6 +3331,61 @@ gcn_exec (struct kernel_info *kernel, /* }}} */ /* {{{ Generic Plugin API */ +#if 0 /* TODO: Use to enable self-mapping/USM automatically. */ +/* FIXME: The auto-self-map feature depends on still mapping 'declare target' + variables, even if ignoring all other mappings. Cf. PR 115279. */ + +/* Return TRUE if the GPU is an APU, i.e. the GPU is integrated with the CPU + such that both use the same memory controller such that mapping or memory + migration is pointless. If CHECK_XNACK is TRUE, it additionally requires + that the GPU has *no* XNACK support otherwise FALSE is returned. + + In theory, enabling unified-shared memory for APUs should always work, + however, with AMD GPUs some APUs (e.g. MI300A) still require XNACK to be + enabled as it is required to handle page faults. + + Thus, for unified-shared memory access, either of the following must hold: + * HSA_AMD_SYSTEM_INFO_SVM_ACCESSIBLE_BY_DEFAULT is TRUE + This implies that all GPUs support USM access, either directly (as APU) + or via page migration. For MI300A, this is only the case if + HSA_AMD_SYSTEM_INFO_XNACK_ENABLED is TRUE. + * If the GPU an APU *and* it does not support XNACK. */ + +static bool +is_integrated_apu (struct agent_info *agent, bool check_xnack) +{ + enum { + HSACO_ATTR_UNSUPPORTED, + HSACO_ATTR_OFF, + HSACO_ATTR_ON, + HSACO_ATTR_ANY, + HSACO_ATTR_DEFAULT + }; + + bool is_apu; + uint8_t mem_prop[8]; + hsa_status_t status; + + status = hsa_fns.hsa_agent_get_info_fn ( + agent->id, (hsa_agent_info_t) HSA_AMD_AGENT_INFO_MEMORY_PROPERTIES, + mem_prop); + _Static_assert (HSA_AMD_MEMORY_PROPERTY_AGENT_IS_APU < 8, + "HSA_AMD_MEMORY_PROPERTY_AGENT_IS_APU < 8"); + is_apu = (status == HSA_STATUS_SUCCESS + && (mem_prop[0] & (1 << HSA_AMD_MEMORY_PROPERTY_AGENT_IS_APU))); + + if (check_xnack) + switch(agent->device_isa) + { +#define GCN_DEVICE(name, NAME, ELF, ISA, XNACK, ...) \ + case ELF: return is_apu && (XNACK == HSACO_ATTR_UNSUPPORTED); +#include "../../gcc/config/gcn/gcn-devices.def" + default: return false; /* Just to be save. */ + } + return is_apu; +} +#endif + /* Return the name of the accelerator, which is "gcn". */ const char * diff --git a/libgomp/plugin/plugin-nvptx.c b/libgomp/plugin/plugin-nvptx.c index eb7b5e59d8f7..92c62ee5b868 100644 --- a/libgomp/plugin/plugin-nvptx.c +++ b/libgomp/plugin/plugin-nvptx.c @@ -1246,6 +1246,24 @@ nvptx_get_current_cuda_context (void) return nvthd->ptx_dev->ctx; } +#if 0 /* TODO: Use to enable self-mapping/USM automatically. */ +/* FIXME: The auto-self-map feature depends on still mapping 'declare target' + variables, even if ignoring all other mappings. Cf. PR 115279. */ + +/* Return TRUE if the GPU is integrated with host memory, i.e. GPU and + host share the same memory controller. As of Oct 2025, no such + Nvidia GPU seems to exist. */ +static bool +is_integrated_apu (struct ptx_device *ptx_dev) +{ + int pi; + CUresult r; + r = CUDA_CALL_NOCHECK (cuDeviceGetAttribute, &pi, + CU_DEVICE_ATTRIBUTE_INTEGRATED, ptx_dev->dev); + return (r == CUDA_SUCCESS && pi == 1); +} +#endif + /* Plugin entry points. */ const char * diff --git a/libgomp/testsuite/Makefile.in b/libgomp/testsuite/Makefile.in index 4155350cf80e..477bfdb83de3 100644 --- a/libgomp/testsuite/Makefile.in +++ b/libgomp/testsuite/Makefile.in @@ -92,9 +92,11 @@ subdir = testsuite ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/../config/acx.m4 \ $(top_srcdir)/../config/ax_count_cpus.m4 \ + $(top_srcdir)/../config/clang-plugin.m4 \ $(top_srcdir)/../config/depstand.m4 \ $(top_srcdir)/../config/enable.m4 \ $(top_srcdir)/../config/futex.m4 \ + $(top_srcdir)/../config/gcc-plugin.m4 \ $(top_srcdir)/../config/lead-dot.m4 \ $(top_srcdir)/../config/lthostflags.m4 \ $(top_srcdir)/../config/multi.m4 \ @@ -175,6 +177,7 @@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LIPO = @LIPO@ +LLVM_CONFIG = @LLVM_CONFIG@ LN_S = @LN_S@ LTLIBOBJS = @LTLIBOBJS@ MAINT = @MAINT@ diff --git a/libgrust/ChangeLog b/libgrust/ChangeLog index 71634f38be9e..dfb93f0dfa24 100644 --- a/libgrust/ChangeLog +++ b/libgrust/ChangeLog @@ -1,3 +1,11 @@ +2025-10-05 Sam James + + * Makefile.in: Regenerate. + * aclocal.m4: Regenerate. + * configure: Regenerate. + * libformat_parser/Makefile.in: Regenerate. + * libproc_macro_internal/Makefile.in: Regenerate. + 2025-08-05 Marc Poulhiès * libproc_macro_internal/ffistring.h (FFIString__new): Likewise. diff --git a/libgrust/Makefile.in b/libgrust/Makefile.in index 6665f8da738f..767aa8b3ad9f 100644 --- a/libgrust/Makefile.in +++ b/libgrust/Makefile.in @@ -93,8 +93,10 @@ subdir = . ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/../config/acx.m4 \ $(top_srcdir)/../config/cet.m4 \ + $(top_srcdir)/../config/clang-plugin.m4 \ $(top_srcdir)/../config/depstand.m4 \ $(top_srcdir)/../config/enable.m4 \ + $(top_srcdir)/../config/gcc-plugin.m4 \ $(top_srcdir)/../config/lead-dot.m4 \ $(top_srcdir)/../config/multi.m4 \ $(top_srcdir)/../config/no-executables.m4 \ @@ -210,6 +212,7 @@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LIPO = @LIPO@ +LLVM_CONFIG = @LLVM_CONFIG@ LN_S = @LN_S@ LTLIBOBJS = @LTLIBOBJS@ MAINT = @MAINT@ diff --git a/libgrust/aclocal.m4 b/libgrust/aclocal.m4 index e66309232d25..afe66dff53b8 100644 --- a/libgrust/aclocal.m4 +++ b/libgrust/aclocal.m4 @@ -1249,8 +1249,10 @@ AC_SUBST([am__untar]) m4_include([../config/acx.m4]) m4_include([../config/cet.m4]) +m4_include([../config/clang-plugin.m4]) m4_include([../config/depstand.m4]) m4_include([../config/enable.m4]) +m4_include([../config/gcc-plugin.m4]) m4_include([../config/lead-dot.m4]) m4_include([../config/multi.m4]) m4_include([../config/no-executables.m4]) diff --git a/libgrust/configure b/libgrust/configure index 14a391643c69..b6f7c3eac4cd 100755 --- a/libgrust/configure +++ b/libgrust/configure @@ -651,6 +651,7 @@ LIPO NMEDIT DSYMUTIL RANLIB +LLVM_CONFIG OBJDUMP LN_S NM @@ -7593,8 +7594,266 @@ test -z "$deplibs_check_method" && deplibs_check_method=unknown -plugin_option= + +# Try CLANG_PLUGIN_FILE first since GCC_PLUGIN_OPTION may return the +# wrong plugin_option with clang. + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for clang" >&5 +$as_echo_n "checking for clang... " >&6; } +if ${clang_cv_is_clang+:} false; then : + $as_echo_n "(cached) " >&6 +else + + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +#ifdef __clang__ + yes +#endif + +_ACEOF +if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | + $EGREP "yes" >/dev/null 2>&1; then : + clang_cv_is_clang=yes +else + clang_cv_is_clang=no +fi +rm -f conftest* + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $clang_cv_is_clang" >&5 +$as_echo "$clang_cv_is_clang" >&6; } + plugin_file= + if test $clang_cv_is_clang = yes; then + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for clang plugin file" >&5 +$as_echo_n "checking for clang plugin file... " >&6; } + plugin_names="LLVMgold.so" + for plugin in $plugin_names; do + plugin_file=`${CC} ${CFLAGS} --print-file-name $plugin` + if test x$plugin_file = x$plugin; then + if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}llvm-config", so it can be a program name with args. +set dummy ${ac_tool_prefix}llvm-config; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_LLVM_CONFIG+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$LLVM_CONFIG"; then + ac_cv_prog_LLVM_CONFIG="$LLVM_CONFIG" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_LLVM_CONFIG="${ac_tool_prefix}llvm-config" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +LLVM_CONFIG=$ac_cv_prog_LLVM_CONFIG +if test -n "$LLVM_CONFIG"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $LLVM_CONFIG" >&5 +$as_echo "$LLVM_CONFIG" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + +fi +if test -z "$ac_cv_prog_LLVM_CONFIG"; then + ac_ct_LLVM_CONFIG=$LLVM_CONFIG + # Extract the first word of "llvm-config", so it can be a program name with args. +set dummy llvm-config; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_ac_ct_LLVM_CONFIG+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$ac_ct_LLVM_CONFIG"; then + ac_cv_prog_ac_ct_LLVM_CONFIG="$ac_ct_LLVM_CONFIG" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_ac_ct_LLVM_CONFIG="llvm-config" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +ac_ct_LLVM_CONFIG=$ac_cv_prog_ac_ct_LLVM_CONFIG +if test -n "$ac_ct_LLVM_CONFIG"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_LLVM_CONFIG" >&5 +$as_echo "$ac_ct_LLVM_CONFIG" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + if test "x$ac_ct_LLVM_CONFIG" = x; then + LLVM_CONFIG="" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + LLVM_CONFIG=$ac_ct_LLVM_CONFIG + fi +else + LLVM_CONFIG="$ac_cv_prog_LLVM_CONFIG" +fi + + if test "$?" != 0; then + as_fn_error $? "Required tool 'llvm-config' not found on PATH." "$LINENO" 5 + fi + clang_lib_dir=`$LLVM_CONFIG --libdir` + if test -f $clang_lib_dir/$plugin; then + plugin_file=$clang_lib_dir/$plugin + fi + if test x$plugin_file != x$plugin; then + break; + fi + fi + done + if test -z $plugin_file; then + as_fn_error $? "Couldn't find clang plugin file for $CC." "$LINENO" 5 + fi + if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}ar", so it can be a program name with args. +set dummy ${ac_tool_prefix}ar; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_AR+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$AR"; then + ac_cv_prog_AR="$AR" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_AR="${ac_tool_prefix}ar" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +AR=$ac_cv_prog_AR +if test -n "$AR"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $AR" >&5 +$as_echo "$AR" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + +fi +if test -z "$ac_cv_prog_AR"; then + ac_ct_AR=$AR + # Extract the first word of "ar", so it can be a program name with args. +set dummy ar; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_ac_ct_AR+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$ac_ct_AR"; then + ac_cv_prog_ac_ct_AR="$ac_ct_AR" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_ac_ct_AR="ar" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +ac_ct_AR=$ac_cv_prog_ac_ct_AR +if test -n "$ac_ct_AR"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_AR" >&5 +$as_echo "$ac_ct_AR" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + if test "x$ac_ct_AR" = x; then + AR="" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + AR=$ac_ct_AR + fi +else + AR="$ac_cv_prog_AR" +fi + + if test "${AR}" = "" ; then + as_fn_error $? "Required archive tool 'ar' not found on PATH." "$LINENO" 5 + fi + plugin_option="--plugin $plugin_file" + touch conftest.c + ${AR} $plugin_option rc conftest.a conftest.c + if test "$?" != 0; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Failed: $AR $plugin_option rc" >&5 +$as_echo "$as_me: WARNING: Failed: $AR $plugin_option rc" >&2;} + plugin_file= + fi + rm -f conftest.* + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $plugin_file" >&5 +$as_echo "$plugin_file" >&6; } + fi + plugin_file="$plugin_file" + +if test -n "$plugin_file"; then + plugin_option="--plugin $plugin_file" +else + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for -plugin option" >&5 +$as_echo_n "checking for -plugin option... " >&6; } + plugin_names="liblto_plugin.so liblto_plugin-0.dll cyglto_plugin-0.dll" +plugin_option= for plugin in $plugin_names; do plugin_so=`${CC} ${CFLAGS} --print-prog-name $plugin` if test x$plugin_so = x$plugin; then @@ -7605,7 +7864,119 @@ for plugin in $plugin_names; do break fi done +if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}ar", so it can be a program name with args. +set dummy ${ac_tool_prefix}ar; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_AR+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$AR"; then + ac_cv_prog_AR="$AR" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_AR="${ac_tool_prefix}ar" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS +fi +fi +AR=$ac_cv_prog_AR +if test -n "$AR"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $AR" >&5 +$as_echo "$AR" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + +fi +if test -z "$ac_cv_prog_AR"; then + ac_ct_AR=$AR + # Extract the first word of "ar", so it can be a program name with args. +set dummy ar; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_ac_ct_AR+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$ac_ct_AR"; then + ac_cv_prog_ac_ct_AR="$ac_ct_AR" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_ac_ct_AR="ar" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +ac_ct_AR=$ac_cv_prog_ac_ct_AR +if test -n "$ac_ct_AR"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_AR" >&5 +$as_echo "$ac_ct_AR" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + if test "x$ac_ct_AR" = x; then + AR="" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + AR=$ac_ct_AR + fi +else + AR="$ac_cv_prog_AR" +fi + +if test "${AR}" = "" ; then + as_fn_error $? "Required archive tool 'ar' not found on PATH." "$LINENO" 5 +fi +touch conftest.c +${AR} $plugin_option rc conftest.a conftest.c +if test "$?" != 0; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Failed: $AR $plugin_option rc" >&5 +$as_echo "$as_me: WARNING: Failed: $AR $plugin_option rc" >&2;} + plugin_option= +fi +rm -f conftest.* +if test -n "$plugin_option"; then + plugin_option="$plugin_option" + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $plugin_option" >&5 +$as_echo "$plugin_option" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + +fi if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}ar", so it can be a program name with args. set dummy ${ac_tool_prefix}ar; ac_word=$2 @@ -7700,17 +8071,15 @@ fi test -z "$AR" && AR=ar if test -n "$plugin_option"; then - if $AR --help 2>&1 | grep -q "\--plugin"; then - touch conftest.c - $AR $plugin_option rc conftest.a conftest.c - if test "$?" != 0; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Failed: $AR $plugin_option rc" >&5 -$as_echo "$as_me: WARNING: Failed: $AR $plugin_option rc" >&2;} - else + case "$AR" in + *"$plugin_option"*) + ;; + *) + if $AR --help 2>&1 | grep -q "\--plugin"; then AR="$AR $plugin_option" fi - rm -f conftest.* - fi + ;; + esac fi test -z "$AR_FLAGS" && AR_FLAGS=cru @@ -7917,9 +8286,15 @@ fi test -z "$RANLIB" && RANLIB=: if test -n "$plugin_option" && test "$RANLIB" != ":"; then - if $RANLIB --help 2>&1 | grep -q "\--plugin"; then - RANLIB="$RANLIB $plugin_option" - fi + case "$RANLIB" in + *"$plugin_option"*) + ;; + *) + if $RANLIB --help 2>&1 | grep -q "\--plugin"; then + RANLIB="$RANLIB $plugin_option" + fi + ;; + esac fi @@ -12657,7 +13032,7 @@ else lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 lt_status=$lt_dlunknown cat > conftest.$ac_ext <<_LT_EOF -#line 12660 "configure" +#line 13035 "configure" #include "confdefs.h" #if HAVE_DLFCN_H @@ -12763,7 +13138,7 @@ else lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 lt_status=$lt_dlunknown cat > conftest.$ac_ext <<_LT_EOF -#line 12766 "configure" +#line 13141 "configure" #include "confdefs.h" #if HAVE_DLFCN_H diff --git a/libgrust/libformat_parser/Makefile.in b/libgrust/libformat_parser/Makefile.in index f6c400d81499..b64ca2a41474 100644 --- a/libgrust/libformat_parser/Makefile.in +++ b/libgrust/libformat_parser/Makefile.in @@ -92,8 +92,10 @@ subdir = libformat_parser ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/../config/acx.m4 \ $(top_srcdir)/../config/cet.m4 \ + $(top_srcdir)/../config/clang-plugin.m4 \ $(top_srcdir)/../config/depstand.m4 \ $(top_srcdir)/../config/enable.m4 \ + $(top_srcdir)/../config/gcc-plugin.m4 \ $(top_srcdir)/../config/lead-dot.m4 \ $(top_srcdir)/../config/multi.m4 \ $(top_srcdir)/../config/no-executables.m4 \ @@ -170,6 +172,7 @@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LIPO = @LIPO@ +LLVM_CONFIG = @LLVM_CONFIG@ LN_S = @LN_S@ LTLIBOBJS = @LTLIBOBJS@ MAINT = @MAINT@ diff --git a/libgrust/libproc_macro_internal/Makefile.in b/libgrust/libproc_macro_internal/Makefile.in index 68aa46106899..cc03c1a174cd 100644 --- a/libgrust/libproc_macro_internal/Makefile.in +++ b/libgrust/libproc_macro_internal/Makefile.in @@ -92,8 +92,10 @@ subdir = libproc_macro_internal ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/../config/acx.m4 \ $(top_srcdir)/../config/cet.m4 \ + $(top_srcdir)/../config/clang-plugin.m4 \ $(top_srcdir)/../config/depstand.m4 \ $(top_srcdir)/../config/enable.m4 \ + $(top_srcdir)/../config/gcc-plugin.m4 \ $(top_srcdir)/../config/lead-dot.m4 \ $(top_srcdir)/../config/multi.m4 \ $(top_srcdir)/../config/no-executables.m4 \ @@ -170,6 +172,7 @@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LIPO = @LIPO@ +LLVM_CONFIG = @LLVM_CONFIG@ LN_S = @LN_S@ LTLIBOBJS = @LTLIBOBJS@ MAINT = @MAINT@ diff --git a/libiberty/ChangeLog b/libiberty/ChangeLog index 84edafa690d7..c60cf2859860 100644 --- a/libiberty/ChangeLog +++ b/libiberty/ChangeLog @@ -1,3 +1,9 @@ +2025-10-02 H.J. Lu + + * aclocal.m4: Regenerated. + * configure: Likewise. + * configure.ac: Synced from binutils-gdb. + 2025-08-17 Nathaniel Shead PR c++/120503 diff --git a/libiberty/aclocal.m4 b/libiberty/aclocal.m4 index 364fb6bc3b46..5151f5fee189 100644 --- a/libiberty/aclocal.m4 +++ b/libiberty/aclocal.m4 @@ -14,6 +14,7 @@ m4_ifndef([AC_CONFIG_MACRO_DIRS], [m4_defun([_AM_CONFIG_MACRO_DIRS], [])m4_defun([AC_CONFIG_MACRO_DIRS], [_AM_CONFIG_MACRO_DIRS($@)])]) m4_include([../config/acx.m4]) m4_include([../config/cet.m4]) +m4_include([../config/clang-plugin.m4]) m4_include([../config/enable.m4]) m4_include([../config/gcc-plugin.m4]) m4_include([../config/hwcaps.m4]) diff --git a/libiberty/configure b/libiberty/configure index 02fbaabe89e7..8996b6ea5e14 100755 --- a/libiberty/configure +++ b/libiberty/configure @@ -640,6 +640,9 @@ INSTALL_PROGRAM OUTPUT_OPTION NO_MINUS_C_MINUS_O ac_libiberty_warn_cflags +RANLIB_PLUGIN_OPTION +AR_PLUGIN_OPTION +LLVM_CONFIG EGREP GREP CPP @@ -650,8 +653,6 @@ CPPFLAGS LDFLAGS CFLAGS CC -RANLIB_PLUGIN_OPTION -AR_PLUGIN_OPTION RANLIB AR host_os @@ -2947,144 +2948,6 @@ else fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for -plugin option" >&5 -$as_echo_n "checking for -plugin option... " >&6; } - -plugin_names="liblto_plugin.so liblto_plugin-0.dll cyglto_plugin-0.dll" -plugin_option= -for plugin in $plugin_names; do - plugin_so=`${CC} ${CFLAGS} --print-prog-name $plugin` - if test x$plugin_so = x$plugin; then - plugin_so=`${CC} ${CFLAGS} --print-file-name $plugin` - fi - if test x$plugin_so != x$plugin; then - plugin_option="--plugin $plugin_so" - break - fi -done -if test -n "$ac_tool_prefix"; then - # Extract the first word of "${ac_tool_prefix}ar", so it can be a program name with args. -set dummy ${ac_tool_prefix}ar; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_prog_AR+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test -n "$AR"; then - ac_cv_prog_AR="$AR" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_prog_AR="${ac_tool_prefix}ar" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - -fi -fi -AR=$ac_cv_prog_AR -if test -n "$AR"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $AR" >&5 -$as_echo "$AR" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - -fi -if test -z "$ac_cv_prog_AR"; then - ac_ct_AR=$AR - # Extract the first word of "ar", so it can be a program name with args. -set dummy ar; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_prog_ac_ct_AR+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test -n "$ac_ct_AR"; then - ac_cv_prog_ac_ct_AR="$ac_ct_AR" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_prog_ac_ct_AR="ar" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - -fi -fi -ac_ct_AR=$ac_cv_prog_ac_ct_AR -if test -n "$ac_ct_AR"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_AR" >&5 -$as_echo "$ac_ct_AR" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - if test "x$ac_ct_AR" = x; then - AR="" - else - case $cross_compiling:$ac_tool_warned in -yes:) -{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 -$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} -ac_tool_warned=yes ;; -esac - AR=$ac_ct_AR - fi -else - AR="$ac_cv_prog_AR" -fi - -if test "${AR}" = "" ; then - as_fn_error $? "Required archive tool 'ar' not found on PATH." "$LINENO" 5 -fi -touch conftest.c -${AR} $plugin_option rc conftest.a conftest.c -if test "$?" != 0; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Failed: $AR $plugin_option rc" >&5 -$as_echo "$as_me: WARNING: Failed: $AR $plugin_option rc" >&2;} - plugin_option= -fi -rm -f conftest.* -if test -n "$plugin_option"; then - PLUGIN_OPTION="$plugin_option" - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $plugin_option" >&5 -$as_echo "$plugin_option" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - -if test -n "$PLUGIN_OPTION"; then - if $AR --help 2>&1 | grep -q "\--plugin"; then - AR_PLUGIN_OPTION="$PLUGIN_OPTION" - - fi - if $RANLIB --help 2>&1 | grep -q "\--plugin"; then - RANLIB_PLUGIN_OPTION="$PLUGIN_OPTION" - - fi -fi - # Add --enable-multilib to configure. # Default to --enable-multilib # Check whether --enable-multilib was given. @@ -4616,6 +4479,411 @@ fi ac_c_preproc_warn_flag=yes +# Try CLANG_PLUGIN_FILE first since GCC_PLUGIN_OPTION may return the +# wrong PLUGIN_OPTION with clang. + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for clang" >&5 +$as_echo_n "checking for clang... " >&6; } +if ${clang_cv_is_clang+:} false; then : + $as_echo_n "(cached) " >&6 +else + + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +#ifdef __clang__ + yes +#endif + +_ACEOF +if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | + $EGREP "yes" >/dev/null 2>&1; then : + clang_cv_is_clang=yes +else + clang_cv_is_clang=no +fi +rm -f conftest* + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $clang_cv_is_clang" >&5 +$as_echo "$clang_cv_is_clang" >&6; } + plugin_file= + if test $clang_cv_is_clang = yes; then + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for clang plugin file" >&5 +$as_echo_n "checking for clang plugin file... " >&6; } + plugin_names="LLVMgold.so" + for plugin in $plugin_names; do + plugin_file=`${CC} ${CFLAGS} --print-file-name $plugin` + if test x$plugin_file = x$plugin; then + if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}llvm-config", so it can be a program name with args. +set dummy ${ac_tool_prefix}llvm-config; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_LLVM_CONFIG+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$LLVM_CONFIG"; then + ac_cv_prog_LLVM_CONFIG="$LLVM_CONFIG" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_LLVM_CONFIG="${ac_tool_prefix}llvm-config" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +LLVM_CONFIG=$ac_cv_prog_LLVM_CONFIG +if test -n "$LLVM_CONFIG"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $LLVM_CONFIG" >&5 +$as_echo "$LLVM_CONFIG" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + +fi +if test -z "$ac_cv_prog_LLVM_CONFIG"; then + ac_ct_LLVM_CONFIG=$LLVM_CONFIG + # Extract the first word of "llvm-config", so it can be a program name with args. +set dummy llvm-config; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_ac_ct_LLVM_CONFIG+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$ac_ct_LLVM_CONFIG"; then + ac_cv_prog_ac_ct_LLVM_CONFIG="$ac_ct_LLVM_CONFIG" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_ac_ct_LLVM_CONFIG="llvm-config" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +ac_ct_LLVM_CONFIG=$ac_cv_prog_ac_ct_LLVM_CONFIG +if test -n "$ac_ct_LLVM_CONFIG"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_LLVM_CONFIG" >&5 +$as_echo "$ac_ct_LLVM_CONFIG" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + if test "x$ac_ct_LLVM_CONFIG" = x; then + LLVM_CONFIG="" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + LLVM_CONFIG=$ac_ct_LLVM_CONFIG + fi +else + LLVM_CONFIG="$ac_cv_prog_LLVM_CONFIG" +fi + + if test "$?" != 0; then + as_fn_error $? "Required tool 'llvm-config' not found on PATH." "$LINENO" 5 + fi + clang_lib_dir=`$LLVM_CONFIG --libdir` + if test -f $clang_lib_dir/$plugin; then + plugin_file=$clang_lib_dir/$plugin + fi + if test x$plugin_file != x$plugin; then + break; + fi + fi + done + if test -z $plugin_file; then + as_fn_error $? "Couldn't find clang plugin file for $CC." "$LINENO" 5 + fi + if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}ar", so it can be a program name with args. +set dummy ${ac_tool_prefix}ar; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_AR+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$AR"; then + ac_cv_prog_AR="$AR" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_AR="${ac_tool_prefix}ar" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +AR=$ac_cv_prog_AR +if test -n "$AR"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $AR" >&5 +$as_echo "$AR" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + +fi +if test -z "$ac_cv_prog_AR"; then + ac_ct_AR=$AR + # Extract the first word of "ar", so it can be a program name with args. +set dummy ar; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_ac_ct_AR+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$ac_ct_AR"; then + ac_cv_prog_ac_ct_AR="$ac_ct_AR" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_ac_ct_AR="ar" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +ac_ct_AR=$ac_cv_prog_ac_ct_AR +if test -n "$ac_ct_AR"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_AR" >&5 +$as_echo "$ac_ct_AR" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + if test "x$ac_ct_AR" = x; then + AR="" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + AR=$ac_ct_AR + fi +else + AR="$ac_cv_prog_AR" +fi + + if test "${AR}" = "" ; then + as_fn_error $? "Required archive tool 'ar' not found on PATH." "$LINENO" 5 + fi + plugin_option="--plugin $plugin_file" + touch conftest.c + ${AR} $plugin_option rc conftest.a conftest.c + if test "$?" != 0; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Failed: $AR $plugin_option rc" >&5 +$as_echo "$as_me: WARNING: Failed: $AR $plugin_option rc" >&2;} + plugin_file= + fi + rm -f conftest.* + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $plugin_file" >&5 +$as_echo "$plugin_file" >&6; } + fi + PLUGIN_FILE="$plugin_file" + +if test -n "$PLUGIN_FILE"; then + PLUGIN_OPTION="--plugin $PLUGIN_FILE" +else + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for -plugin option" >&5 +$as_echo_n "checking for -plugin option... " >&6; } + +plugin_names="liblto_plugin.so liblto_plugin-0.dll cyglto_plugin-0.dll" +plugin_option= +for plugin in $plugin_names; do + plugin_so=`${CC} ${CFLAGS} --print-prog-name $plugin` + if test x$plugin_so = x$plugin; then + plugin_so=`${CC} ${CFLAGS} --print-file-name $plugin` + fi + if test x$plugin_so != x$plugin; then + plugin_option="--plugin $plugin_so" + break + fi +done +if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}ar", so it can be a program name with args. +set dummy ${ac_tool_prefix}ar; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_AR+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$AR"; then + ac_cv_prog_AR="$AR" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_AR="${ac_tool_prefix}ar" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +AR=$ac_cv_prog_AR +if test -n "$AR"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $AR" >&5 +$as_echo "$AR" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + +fi +if test -z "$ac_cv_prog_AR"; then + ac_ct_AR=$AR + # Extract the first word of "ar", so it can be a program name with args. +set dummy ar; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_ac_ct_AR+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$ac_ct_AR"; then + ac_cv_prog_ac_ct_AR="$ac_ct_AR" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_ac_ct_AR="ar" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +ac_ct_AR=$ac_cv_prog_ac_ct_AR +if test -n "$ac_ct_AR"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_AR" >&5 +$as_echo "$ac_ct_AR" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + if test "x$ac_ct_AR" = x; then + AR="" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + AR=$ac_ct_AR + fi +else + AR="$ac_cv_prog_AR" +fi + +if test "${AR}" = "" ; then + as_fn_error $? "Required archive tool 'ar' not found on PATH." "$LINENO" 5 +fi +touch conftest.c +${AR} $plugin_option rc conftest.a conftest.c +if test "$?" != 0; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Failed: $AR $plugin_option rc" >&5 +$as_echo "$as_me: WARNING: Failed: $AR $plugin_option rc" >&2;} + plugin_option= +fi +rm -f conftest.* +if test -n "$plugin_option"; then + PLUGIN_OPTION="$plugin_option" + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $plugin_option" >&5 +$as_echo "$plugin_option" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + +fi +if test -n "$PLUGIN_OPTION"; then + case "$AR" in + *"$PLUGIN_OPTION"*) + ;; + *) + if $AR --help 2>&1 | grep -q "\--plugin"; then + AR_PLUGIN_OPTION="$PLUGIN_OPTION" + + fi + ;; + esac + case "$RANLIB" in + *"$PLUGIN_OPTION"*) + ;; + *) + if $RANLIB --help 2>&1 | grep -q "\--plugin"; then + RANLIB_PLUGIN_OPTION="$PLUGIN_OPTION" + + fi + ;; + esac +fi + ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' diff --git a/libiberty/configure.ac b/libiberty/configure.ac index 3de5eca0df2b..199fa192fe4c 100644 --- a/libiberty/configure.ac +++ b/libiberty/configure.ac @@ -114,18 +114,6 @@ dnl to call AC_CHECK_PROG. AC_CHECK_TOOL(AR, ar) AC_CHECK_TOOL(RANLIB, ranlib, :) -GCC_PLUGIN_OPTION(PLUGIN_OPTION) -if test -n "$PLUGIN_OPTION"; then - if $AR --help 2>&1 | grep -q "\--plugin"; then - AR_PLUGIN_OPTION="$PLUGIN_OPTION" - AC_SUBST(AR_PLUGIN_OPTION) - fi - if $RANLIB --help 2>&1 | grep -q "\--plugin"; then - RANLIB_PLUGIN_OPTION="$PLUGIN_OPTION" - AC_SUBST(RANLIB_PLUGIN_OPTION) - fi -fi - dnl When switching to automake, replace the following with AM_ENABLE_MULTILIB. # Add --enable-multilib to configure. # Default to --enable-multilib @@ -176,6 +164,37 @@ AC_USE_SYSTEM_EXTENSIONS AC_SYS_LARGEFILE AC_PROG_CPP_WERROR +# Try CLANG_PLUGIN_FILE first since GCC_PLUGIN_OPTION may return the +# wrong PLUGIN_OPTION with clang. +CLANG_PLUGIN_FILE(PLUGIN_FILE) +if test -n "$PLUGIN_FILE"; then + PLUGIN_OPTION="--plugin $PLUGIN_FILE" +else + GCC_PLUGIN_OPTION(PLUGIN_OPTION) +fi +if test -n "$PLUGIN_OPTION"; then + case "$AR" in + *"$PLUGIN_OPTION"*) + ;; + *) + if $AR --help 2>&1 | grep -q "\--plugin"; then + AR_PLUGIN_OPTION="$PLUGIN_OPTION" + AC_SUBST(AR_PLUGIN_OPTION) + fi + ;; + esac + case "$RANLIB" in + *"$PLUGIN_OPTION"*) + ;; + *) + if $RANLIB --help 2>&1 | grep -q "\--plugin"; then + RANLIB_PLUGIN_OPTION="$PLUGIN_OPTION" + AC_SUBST(RANLIB_PLUGIN_OPTION) + fi + ;; + esac +fi + ACX_PROG_CC_WARNING_OPTS([-W -Wall -Wwrite-strings -Wc++-compat \ -Wstrict-prototypes \ -Wshadow=local], [ac_libiberty_warn_cflags]) diff --git a/libitm/ChangeLog b/libitm/ChangeLog index 4dab5b48ad72..fd20bb051fba 100644 --- a/libitm/ChangeLog +++ b/libitm/ChangeLog @@ -1,3 +1,10 @@ +2025-10-05 Sam James + + * Makefile.in: Regenerate. + * aclocal.m4: Regenerate. + * configure: Regenerate. + * testsuite/Makefile.in: Regenerate. + 2025-05-09 David Malcolm PR other/116792 diff --git a/libitm/Makefile.in b/libitm/Makefile.in index f02ad05efb19..cbca70267603 100644 --- a/libitm/Makefile.in +++ b/libitm/Makefile.in @@ -97,9 +97,11 @@ subdir = . ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/../config/acx.m4 \ $(top_srcdir)/../config/asmcfi.m4 \ + $(top_srcdir)/../config/clang-plugin.m4 \ $(top_srcdir)/../config/depstand.m4 \ $(top_srcdir)/../config/enable.m4 \ $(top_srcdir)/../config/futex.m4 \ + $(top_srcdir)/../config/gcc-plugin.m4 \ $(top_srcdir)/../config/hwcaps.m4 \ $(top_srcdir)/../config/lead-dot.m4 \ $(top_srcdir)/../config/mmap.m4 \ @@ -358,6 +360,7 @@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LIPO = @LIPO@ +LLVM_CONFIG = @LLVM_CONFIG@ LN_S = @LN_S@ LTLIBOBJS = @LTLIBOBJS@ MAINT = @MAINT@ diff --git a/libitm/aclocal.m4 b/libitm/aclocal.m4 index 4f65f6944b74..4cb1a5f9098f 100644 --- a/libitm/aclocal.m4 +++ b/libitm/aclocal.m4 @@ -1189,9 +1189,11 @@ AC_SUBST([am__untar]) m4_include([../config/acx.m4]) m4_include([../config/asmcfi.m4]) +m4_include([../config/clang-plugin.m4]) m4_include([../config/depstand.m4]) m4_include([../config/enable.m4]) m4_include([../config/futex.m4]) +m4_include([../config/gcc-plugin.m4]) m4_include([../config/hwcaps.m4]) m4_include([../config/lead-dot.m4]) m4_include([../config/mmap.m4]) diff --git a/libitm/configure b/libitm/configure index 9ba7fb03a578..a76c9f5040d2 100755 --- a/libitm/configure +++ b/libitm/configure @@ -665,12 +665,13 @@ ENABLE_DARWIN_AT_RPATH_TRUE enable_static enable_shared CXXCPP -CPP OTOOL64 OTOOL LIPO NMEDIT DSYMUTIL +LLVM_CONFIG +CPP OBJDUMP LN_S ac_ct_DUMPBIN @@ -1662,6 +1663,43 @@ fi } # ac_fn_cxx_try_compile +# ac_fn_c_try_cpp LINENO +# ---------------------- +# Try to preprocess conftest.$ac_ext, and return whether this succeeded. +ac_fn_c_try_cpp () +{ + as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack + if { { ac_try="$ac_cpp conftest.$ac_ext" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" +$as_echo "$ac_try_echo"; } >&5 + (eval "$ac_cpp conftest.$ac_ext") 2>conftest.err + ac_status=$? + if test -s conftest.err; then + grep -v '^ *+' conftest.err >conftest.er1 + cat conftest.er1 >&5 + mv -f conftest.er1 conftest.err + fi + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } > conftest.i && { + test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" || + test ! -s conftest.err + }; then : + ac_retval=0 +else + $as_echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_retval=1 +fi + eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno + as_fn_set_status $ac_retval + +} # ac_fn_c_try_cpp + # ac_fn_c_try_link LINENO # ----------------------- # Try to link conftest.$ac_ext, and return whether this succeeded. @@ -1739,43 +1777,6 @@ $as_echo "$ac_res" >&6; } } # ac_fn_c_check_header_compile -# ac_fn_c_try_cpp LINENO -# ---------------------- -# Try to preprocess conftest.$ac_ext, and return whether this succeeded. -ac_fn_c_try_cpp () -{ - as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack - if { { ac_try="$ac_cpp conftest.$ac_ext" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" -$as_echo "$ac_try_echo"; } >&5 - (eval "$ac_cpp conftest.$ac_ext") 2>conftest.err - ac_status=$? - if test -s conftest.err; then - grep -v '^ *+' conftest.err >conftest.er1 - cat conftest.er1 >&5 - mv -f conftest.er1 conftest.err - fi - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; } > conftest.i && { - test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" || - test ! -s conftest.err - }; then : - ac_retval=0 -else - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - ac_retval=1 -fi - eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno - as_fn_set_status $ac_retval - -} # ac_fn_c_try_cpp - # ac_fn_c_try_run LINENO # ---------------------- # Try to link conftest.$ac_ext, and return whether this succeeded. Assumes @@ -6832,29 +6833,191 @@ test -z "$deplibs_check_method" && deplibs_check_method=unknown -plugin_option= -plugin_names="liblto_plugin.so liblto_plugin-0.dll cyglto_plugin-0.dll" -for plugin in $plugin_names; do - plugin_so=`${CC} ${CFLAGS} --print-prog-name $plugin` - if test x$plugin_so = x$plugin; then - plugin_so=`${CC} ${CFLAGS} --print-file-name $plugin` - fi - if test x$plugin_so != x$plugin; then - plugin_option="--plugin $plugin_so" - break - fi + +ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to run the C preprocessor" >&5 +$as_echo_n "checking how to run the C preprocessor... " >&6; } +# On Suns, sometimes $CPP names a directory. +if test -n "$CPP" && test -d "$CPP"; then + CPP= +fi +if test -z "$CPP"; then + if ${ac_cv_prog_CPP+:} false; then : + $as_echo_n "(cached) " >&6 +else + # Double quotes because CPP needs to be expanded + for CPP in "$CC -E" "$CC -E -traditional-cpp" "/lib/cpp" + do + ac_preproc_ok=false +for ac_c_preproc_warn_flag in '' yes +do + # Use a header file that comes with gcc, so configuring glibc + # with a fresh cross-compiler works. + # Prefer to if __STDC__ is defined, since + # exists even on freestanding compilers. + # On the NeXT, cc -E runs the code through the compiler's parser, + # not just through cpp. "Syntax error" is here to catch this case. + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#ifdef __STDC__ +# include +#else +# include +#endif + Syntax error +_ACEOF +if ac_fn_c_try_cpp "$LINENO"; then : + +else + # Broken: fails on valid input. +continue +fi +rm -f conftest.err conftest.i conftest.$ac_ext + + # OK, works on sane cases. Now check whether nonexistent headers + # can be detected and how. + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include +_ACEOF +if ac_fn_c_try_cpp "$LINENO"; then : + # Broken: success on invalid input. +continue +else + # Passes both tests. +ac_preproc_ok=: +break +fi +rm -f conftest.err conftest.i conftest.$ac_ext + done +# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped. +rm -f conftest.i conftest.err conftest.$ac_ext +if $ac_preproc_ok; then : + break +fi -if test -n "$ac_tool_prefix"; then - # Extract the first word of "${ac_tool_prefix}ar", so it can be a program name with args. -set dummy ${ac_tool_prefix}ar; ac_word=$2 + done + ac_cv_prog_CPP=$CPP + +fi + CPP=$ac_cv_prog_CPP +else + ac_cv_prog_CPP=$CPP +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $CPP" >&5 +$as_echo "$CPP" >&6; } +ac_preproc_ok=false +for ac_c_preproc_warn_flag in '' yes +do + # Use a header file that comes with gcc, so configuring glibc + # with a fresh cross-compiler works. + # Prefer to if __STDC__ is defined, since + # exists even on freestanding compilers. + # On the NeXT, cc -E runs the code through the compiler's parser, + # not just through cpp. "Syntax error" is here to catch this case. + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#ifdef __STDC__ +# include +#else +# include +#endif + Syntax error +_ACEOF +if ac_fn_c_try_cpp "$LINENO"; then : + +else + # Broken: fails on valid input. +continue +fi +rm -f conftest.err conftest.i conftest.$ac_ext + + # OK, works on sane cases. Now check whether nonexistent headers + # can be detected and how. + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include +_ACEOF +if ac_fn_c_try_cpp "$LINENO"; then : + # Broken: success on invalid input. +continue +else + # Passes both tests. +ac_preproc_ok=: +break +fi +rm -f conftest.err conftest.i conftest.$ac_ext + +done +# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped. +rm -f conftest.i conftest.err conftest.$ac_ext +if $ac_preproc_ok; then : + +else + { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 +$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} +as_fn_error $? "C preprocessor \"$CPP\" fails sanity check +See \`config.log' for more details" "$LINENO" 5; } +fi + +ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu + + + +# Try CLANG_PLUGIN_FILE first since GCC_PLUGIN_OPTION may return the +# wrong plugin_option with clang. + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for clang" >&5 +$as_echo_n "checking for clang... " >&6; } +if ${clang_cv_is_clang+:} false; then : + $as_echo_n "(cached) " >&6 +else + + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +#ifdef __clang__ + yes +#endif + +_ACEOF +if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | + $EGREP "yes" >/dev/null 2>&1; then : + clang_cv_is_clang=yes +else + clang_cv_is_clang=no +fi +rm -f conftest* + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $clang_cv_is_clang" >&5 +$as_echo "$clang_cv_is_clang" >&6; } + plugin_file= + if test $clang_cv_is_clang = yes; then + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for clang plugin file" >&5 +$as_echo_n "checking for clang plugin file... " >&6; } + plugin_names="LLVMgold.so" + for plugin in $plugin_names; do + plugin_file=`${CC} ${CFLAGS} --print-file-name $plugin` + if test x$plugin_file = x$plugin; then + if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}llvm-config", so it can be a program name with args. +set dummy ${ac_tool_prefix}llvm-config; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_prog_AR+:} false; then : +if ${ac_cv_prog_LLVM_CONFIG+:} false; then : $as_echo_n "(cached) " >&6 else - if test -n "$AR"; then - ac_cv_prog_AR="$AR" # Let the user override the test. + if test -n "$LLVM_CONFIG"; then + ac_cv_prog_LLVM_CONFIG="$LLVM_CONFIG" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH @@ -6863,7 +7026,7 @@ do test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_prog_AR="${ac_tool_prefix}ar" + ac_cv_prog_LLVM_CONFIG="${ac_tool_prefix}llvm-config" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi @@ -6873,10 +7036,10 @@ IFS=$as_save_IFS fi fi -AR=$ac_cv_prog_AR -if test -n "$AR"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $AR" >&5 -$as_echo "$AR" >&6; } +LLVM_CONFIG=$ac_cv_prog_LLVM_CONFIG +if test -n "$LLVM_CONFIG"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $LLVM_CONFIG" >&5 +$as_echo "$LLVM_CONFIG" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } @@ -6884,13 +7047,120 @@ fi fi -if test -z "$ac_cv_prog_AR"; then - ac_ct_AR=$AR - # Extract the first word of "ar", so it can be a program name with args. -set dummy ar; ac_word=$2 +if test -z "$ac_cv_prog_LLVM_CONFIG"; then + ac_ct_LLVM_CONFIG=$LLVM_CONFIG + # Extract the first word of "llvm-config", so it can be a program name with args. +set dummy llvm-config; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_prog_ac_ct_AR+:} false; then : +if ${ac_cv_prog_ac_ct_LLVM_CONFIG+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$ac_ct_LLVM_CONFIG"; then + ac_cv_prog_ac_ct_LLVM_CONFIG="$ac_ct_LLVM_CONFIG" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_ac_ct_LLVM_CONFIG="llvm-config" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +ac_ct_LLVM_CONFIG=$ac_cv_prog_ac_ct_LLVM_CONFIG +if test -n "$ac_ct_LLVM_CONFIG"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_LLVM_CONFIG" >&5 +$as_echo "$ac_ct_LLVM_CONFIG" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + if test "x$ac_ct_LLVM_CONFIG" = x; then + LLVM_CONFIG="" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + LLVM_CONFIG=$ac_ct_LLVM_CONFIG + fi +else + LLVM_CONFIG="$ac_cv_prog_LLVM_CONFIG" +fi + + if test "$?" != 0; then + as_fn_error $? "Required tool 'llvm-config' not found on PATH." "$LINENO" 5 + fi + clang_lib_dir=`$LLVM_CONFIG --libdir` + if test -f $clang_lib_dir/$plugin; then + plugin_file=$clang_lib_dir/$plugin + fi + if test x$plugin_file != x$plugin; then + break; + fi + fi + done + if test -z $plugin_file; then + as_fn_error $? "Couldn't find clang plugin file for $CC." "$LINENO" 5 + fi + if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}ar", so it can be a program name with args. +set dummy ${ac_tool_prefix}ar; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_AR+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$AR"; then + ac_cv_prog_AR="$AR" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_AR="${ac_tool_prefix}ar" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +AR=$ac_cv_prog_AR +if test -n "$AR"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $AR" >&5 +$as_echo "$AR" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + +fi +if test -z "$ac_cv_prog_AR"; then + ac_ct_AR=$AR + # Extract the first word of "ar", so it can be a program name with args. +set dummy ar; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_ac_ct_AR+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_AR"; then @@ -6923,7 +7193,7 @@ $as_echo "no" >&6; } fi if test "x$ac_ct_AR" = x; then - AR="false" + AR="" else case $cross_compiling:$ac_tool_warned in yes:) @@ -6937,19 +7207,257 @@ else AR="$ac_cv_prog_AR" fi -test -z "$AR" && AR=ar -if test -n "$plugin_option"; then - if $AR --help 2>&1 | grep -q "\--plugin"; then + if test "${AR}" = "" ; then + as_fn_error $? "Required archive tool 'ar' not found on PATH." "$LINENO" 5 + fi + plugin_option="--plugin $plugin_file" touch conftest.c - $AR $plugin_option rc conftest.a conftest.c + ${AR} $plugin_option rc conftest.a conftest.c if test "$?" != 0; then { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Failed: $AR $plugin_option rc" >&5 $as_echo "$as_me: WARNING: Failed: $AR $plugin_option rc" >&2;} - else - AR="$AR $plugin_option" + plugin_file= fi rm -f conftest.* + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $plugin_file" >&5 +$as_echo "$plugin_file" >&6; } + fi + plugin_file="$plugin_file" + +if test -n "$plugin_file"; then + plugin_option="--plugin $plugin_file" +else + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for -plugin option" >&5 +$as_echo_n "checking for -plugin option... " >&6; } + +plugin_names="liblto_plugin.so liblto_plugin-0.dll cyglto_plugin-0.dll" +plugin_option= +for plugin in $plugin_names; do + plugin_so=`${CC} ${CFLAGS} --print-prog-name $plugin` + if test x$plugin_so = x$plugin; then + plugin_so=`${CC} ${CFLAGS} --print-file-name $plugin` + fi + if test x$plugin_so != x$plugin; then + plugin_option="--plugin $plugin_so" + break + fi +done +if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}ar", so it can be a program name with args. +set dummy ${ac_tool_prefix}ar; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_AR+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$AR"; then + ac_cv_prog_AR="$AR" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_AR="${ac_tool_prefix}ar" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +AR=$ac_cv_prog_AR +if test -n "$AR"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $AR" >&5 +$as_echo "$AR" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + +fi +if test -z "$ac_cv_prog_AR"; then + ac_ct_AR=$AR + # Extract the first word of "ar", so it can be a program name with args. +set dummy ar; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_ac_ct_AR+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$ac_ct_AR"; then + ac_cv_prog_ac_ct_AR="$ac_ct_AR" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_ac_ct_AR="ar" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +ac_ct_AR=$ac_cv_prog_ac_ct_AR +if test -n "$ac_ct_AR"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_AR" >&5 +$as_echo "$ac_ct_AR" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + if test "x$ac_ct_AR" = x; then + AR="" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + AR=$ac_ct_AR fi +else + AR="$ac_cv_prog_AR" +fi + +if test "${AR}" = "" ; then + as_fn_error $? "Required archive tool 'ar' not found on PATH." "$LINENO" 5 +fi +touch conftest.c +${AR} $plugin_option rc conftest.a conftest.c +if test "$?" != 0; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Failed: $AR $plugin_option rc" >&5 +$as_echo "$as_me: WARNING: Failed: $AR $plugin_option rc" >&2;} + plugin_option= +fi +rm -f conftest.* +if test -n "$plugin_option"; then + plugin_option="$plugin_option" + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $plugin_option" >&5 +$as_echo "$plugin_option" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + +fi +if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}ar", so it can be a program name with args. +set dummy ${ac_tool_prefix}ar; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_AR+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$AR"; then + ac_cv_prog_AR="$AR" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_AR="${ac_tool_prefix}ar" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +AR=$ac_cv_prog_AR +if test -n "$AR"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $AR" >&5 +$as_echo "$AR" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + +fi +if test -z "$ac_cv_prog_AR"; then + ac_ct_AR=$AR + # Extract the first word of "ar", so it can be a program name with args. +set dummy ar; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_ac_ct_AR+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$ac_ct_AR"; then + ac_cv_prog_ac_ct_AR="$ac_ct_AR" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_ac_ct_AR="ar" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +ac_ct_AR=$ac_cv_prog_ac_ct_AR +if test -n "$ac_ct_AR"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_AR" >&5 +$as_echo "$ac_ct_AR" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + if test "x$ac_ct_AR" = x; then + AR="false" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + AR=$ac_ct_AR + fi +else + AR="$ac_cv_prog_AR" +fi + +test -z "$AR" && AR=ar +if test -n "$plugin_option"; then + case "$AR" in + *"$plugin_option"*) + ;; + *) + if $AR --help 2>&1 | grep -q "\--plugin"; then + AR="$AR $plugin_option" + fi + ;; + esac fi test -z "$AR_FLAGS" && AR_FLAGS=cru @@ -7156,9 +7664,15 @@ fi test -z "$RANLIB" && RANLIB=: if test -n "$plugin_option" && test "$RANLIB" != ":"; then - if $RANLIB --help 2>&1 | grep -q "\--plugin"; then - RANLIB="$RANLIB $plugin_option" - fi + case "$RANLIB" in + *"$plugin_option"*) + ;; + *) + if $RANLIB --help 2>&1 | grep -q "\--plugin"; then + RANLIB="$RANLIB $plugin_option" + fi + ;; + esac fi @@ -7485,7 +7999,6 @@ fi - # Check whether --enable-libtool-lock was given. @@ -8311,144 +8824,6 @@ $as_echo "$lt_cv_ld_force_load" >&6; } ;; esac -ac_ext=c -ac_cpp='$CPP $CPPFLAGS' -ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' -ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_c_compiler_gnu -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to run the C preprocessor" >&5 -$as_echo_n "checking how to run the C preprocessor... " >&6; } -# On Suns, sometimes $CPP names a directory. -if test -n "$CPP" && test -d "$CPP"; then - CPP= -fi -if test -z "$CPP"; then - if ${ac_cv_prog_CPP+:} false; then : - $as_echo_n "(cached) " >&6 -else - # Double quotes because CPP needs to be expanded - for CPP in "$CC -E" "$CC -E -traditional-cpp" "/lib/cpp" - do - ac_preproc_ok=false -for ac_c_preproc_warn_flag in '' yes -do - # Use a header file that comes with gcc, so configuring glibc - # with a fresh cross-compiler works. - # Prefer to if __STDC__ is defined, since - # exists even on freestanding compilers. - # On the NeXT, cc -E runs the code through the compiler's parser, - # not just through cpp. "Syntax error" is here to catch this case. - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#ifdef __STDC__ -# include -#else -# include -#endif - Syntax error -_ACEOF -if ac_fn_c_try_cpp "$LINENO"; then : - -else - # Broken: fails on valid input. -continue -fi -rm -f conftest.err conftest.i conftest.$ac_ext - - # OK, works on sane cases. Now check whether nonexistent headers - # can be detected and how. - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include -_ACEOF -if ac_fn_c_try_cpp "$LINENO"; then : - # Broken: success on invalid input. -continue -else - # Passes both tests. -ac_preproc_ok=: -break -fi -rm -f conftest.err conftest.i conftest.$ac_ext - -done -# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped. -rm -f conftest.i conftest.err conftest.$ac_ext -if $ac_preproc_ok; then : - break -fi - - done - ac_cv_prog_CPP=$CPP - -fi - CPP=$ac_cv_prog_CPP -else - ac_cv_prog_CPP=$CPP -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $CPP" >&5 -$as_echo "$CPP" >&6; } -ac_preproc_ok=false -for ac_c_preproc_warn_flag in '' yes -do - # Use a header file that comes with gcc, so configuring glibc - # with a fresh cross-compiler works. - # Prefer to if __STDC__ is defined, since - # exists even on freestanding compilers. - # On the NeXT, cc -E runs the code through the compiler's parser, - # not just through cpp. "Syntax error" is here to catch this case. - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#ifdef __STDC__ -# include -#else -# include -#endif - Syntax error -_ACEOF -if ac_fn_c_try_cpp "$LINENO"; then : - -else - # Broken: fails on valid input. -continue -fi -rm -f conftest.err conftest.i conftest.$ac_ext - - # OK, works on sane cases. Now check whether nonexistent headers - # can be detected and how. - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include -_ACEOF -if ac_fn_c_try_cpp "$LINENO"; then : - # Broken: success on invalid input. -continue -else - # Passes both tests. -ac_preproc_ok=: -break -fi -rm -f conftest.err conftest.i conftest.$ac_ext - -done -# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped. -rm -f conftest.i conftest.err conftest.$ac_ext -if $ac_preproc_ok; then : - -else - { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 -$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} -as_fn_error $? "C preprocessor \"$CPP\" fails sanity check -See \`config.log' for more details" "$LINENO" 5; } -fi - -ac_ext=c -ac_cpp='$CPP $CPPFLAGS' -ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' -ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_c_compiler_gnu - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ANSI C header files" >&5 $as_echo_n "checking for ANSI C header files... " >&6; } if ${ac_cv_header_stdc+:} false; then : @@ -12131,7 +12506,7 @@ else lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 lt_status=$lt_dlunknown cat > conftest.$ac_ext <<_LT_EOF -#line 12134 "configure" +#line 12509 "configure" #include "confdefs.h" #if HAVE_DLFCN_H @@ -12237,7 +12612,7 @@ else lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 lt_status=$lt_dlunknown cat > conftest.$ac_ext <<_LT_EOF -#line 12240 "configure" +#line 12615 "configure" #include "confdefs.h" #if HAVE_DLFCN_H diff --git a/libitm/testsuite/Makefile.in b/libitm/testsuite/Makefile.in index 41db3f5b85fd..2e0446333655 100644 --- a/libitm/testsuite/Makefile.in +++ b/libitm/testsuite/Makefile.in @@ -92,9 +92,11 @@ subdir = testsuite ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/../config/acx.m4 \ $(top_srcdir)/../config/asmcfi.m4 \ + $(top_srcdir)/../config/clang-plugin.m4 \ $(top_srcdir)/../config/depstand.m4 \ $(top_srcdir)/../config/enable.m4 \ $(top_srcdir)/../config/futex.m4 \ + $(top_srcdir)/../config/gcc-plugin.m4 \ $(top_srcdir)/../config/hwcaps.m4 \ $(top_srcdir)/../config/lead-dot.m4 \ $(top_srcdir)/../config/mmap.m4 \ @@ -180,6 +182,7 @@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LIPO = @LIPO@ +LLVM_CONFIG = @LLVM_CONFIG@ LN_S = @LN_S@ LTLIBOBJS = @LTLIBOBJS@ MAINT = @MAINT@ diff --git a/libobjc/ChangeLog b/libobjc/ChangeLog index 723002ce4f6a..5ddf80e0e7e2 100644 --- a/libobjc/ChangeLog +++ b/libobjc/ChangeLog @@ -1,3 +1,8 @@ +2025-10-05 Sam James + + * aclocal.m4: Regenerate. + * configure: Regenerate. + 2024-09-23 Andrew Kreimer * Makefile.in: s/overrridden/overridden. diff --git a/libobjc/aclocal.m4 b/libobjc/aclocal.m4 index 9ac0f645b52b..08cc6d0cd4b9 100644 --- a/libobjc/aclocal.m4 +++ b/libobjc/aclocal.m4 @@ -150,6 +150,8 @@ m4_include([../ltsugar.m4]) m4_include([../ltversion.m4]) m4_include([../lt~obsolete.m4]) m4_include([../config/cet.m4]) +m4_include([../config/clang-plugin.m4]) +m4_include([../config/gcc-plugin.m4]) m4_include([../config/lthostflags.m4]) m4_include([../config/multi.m4]) m4_include([../config/override.m4]) diff --git a/libobjc/configure b/libobjc/configure index 68172549137a..c7a5c8f0825a 100755 --- a/libobjc/configure +++ b/libobjc/configure @@ -640,7 +640,6 @@ extra_ldflags_libobjc ENABLE_DARWIN_AT_RPATH_FALSE ENABLE_DARWIN_AT_RPATH_TRUE SET_MAKE -CPP OTOOL64 OTOOL LIPO @@ -648,6 +647,8 @@ NMEDIT DSYMUTIL AWK STRIP +LLVM_CONFIG +CPP LN_S NM ac_ct_DUMPBIN @@ -1556,6 +1557,43 @@ fi } # ac_fn_c_try_compile +# ac_fn_c_try_cpp LINENO +# ---------------------- +# Try to preprocess conftest.$ac_ext, and return whether this succeeded. +ac_fn_c_try_cpp () +{ + as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack + if { { ac_try="$ac_cpp conftest.$ac_ext" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" +$as_echo "$ac_try_echo"; } >&5 + (eval "$ac_cpp conftest.$ac_ext") 2>conftest.err + ac_status=$? + if test -s conftest.err; then + grep -v '^ *+' conftest.err >conftest.er1 + cat conftest.er1 >&5 + mv -f conftest.er1 conftest.err + fi + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } > conftest.i && { + test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" || + test ! -s conftest.err + }; then : + ac_retval=0 +else + $as_echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_retval=1 +fi + eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno + as_fn_set_status $ac_retval + +} # ac_fn_c_try_cpp + # ac_fn_c_try_link LINENO # ----------------------- # Try to link conftest.$ac_ext, and return whether this succeeded. @@ -1633,43 +1671,6 @@ $as_echo "$ac_res" >&6; } } # ac_fn_c_check_header_compile -# ac_fn_c_try_cpp LINENO -# ---------------------- -# Try to preprocess conftest.$ac_ext, and return whether this succeeded. -ac_fn_c_try_cpp () -{ - as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack - if { { ac_try="$ac_cpp conftest.$ac_ext" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" -$as_echo "$ac_try_echo"; } >&5 - (eval "$ac_cpp conftest.$ac_ext") 2>conftest.err - ac_status=$? - if test -s conftest.err; then - grep -v '^ *+' conftest.err >conftest.er1 - cat conftest.er1 >&5 - mv -f conftest.er1 conftest.err - fi - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; } > conftest.i && { - test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" || - test ! -s conftest.err - }; then : - ac_retval=0 -else - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - ac_retval=1 -fi - eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno - as_fn_set_status $ac_retval - -} # ac_fn_c_try_cpp - # ac_fn_c_try_run LINENO # ---------------------- # Try to link conftest.$ac_ext, and return whether this succeeded. Assumes @@ -5506,29 +5507,190 @@ test -z "$deplibs_check_method" && deplibs_check_method=unknown -plugin_option= -plugin_names="liblto_plugin.so liblto_plugin-0.dll cyglto_plugin-0.dll" -for plugin in $plugin_names; do - plugin_so=`${CC} ${CFLAGS} --print-prog-name $plugin` - if test x$plugin_so = x$plugin; then - plugin_so=`${CC} ${CFLAGS} --print-file-name $plugin` - fi - if test x$plugin_so != x$plugin; then - plugin_option="--plugin $plugin_so" - break - fi +ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to run the C preprocessor" >&5 +$as_echo_n "checking how to run the C preprocessor... " >&6; } +# On Suns, sometimes $CPP names a directory. +if test -n "$CPP" && test -d "$CPP"; then + CPP= +fi +if test -z "$CPP"; then + if ${ac_cv_prog_CPP+:} false; then : + $as_echo_n "(cached) " >&6 +else + # Double quotes because CPP needs to be expanded + for CPP in "$CC -E" "$CC -E -traditional-cpp" "/lib/cpp" + do + ac_preproc_ok=false +for ac_c_preproc_warn_flag in '' yes +do + # Use a header file that comes with gcc, so configuring glibc + # with a fresh cross-compiler works. + # Prefer to if __STDC__ is defined, since + # exists even on freestanding compilers. + # On the NeXT, cc -E runs the code through the compiler's parser, + # not just through cpp. "Syntax error" is here to catch this case. + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#ifdef __STDC__ +# include +#else +# include +#endif + Syntax error +_ACEOF +if ac_fn_c_try_cpp "$LINENO"; then : + +else + # Broken: fails on valid input. +continue +fi +rm -f conftest.err conftest.i conftest.$ac_ext + + # OK, works on sane cases. Now check whether nonexistent headers + # can be detected and how. + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include +_ACEOF +if ac_fn_c_try_cpp "$LINENO"; then : + # Broken: success on invalid input. +continue +else + # Passes both tests. +ac_preproc_ok=: +break +fi +rm -f conftest.err conftest.i conftest.$ac_ext + done +# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped. +rm -f conftest.i conftest.err conftest.$ac_ext +if $ac_preproc_ok; then : + break +fi -if test -n "$ac_tool_prefix"; then - # Extract the first word of "${ac_tool_prefix}ar", so it can be a program name with args. -set dummy ${ac_tool_prefix}ar; ac_word=$2 + done + ac_cv_prog_CPP=$CPP + +fi + CPP=$ac_cv_prog_CPP +else + ac_cv_prog_CPP=$CPP +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $CPP" >&5 +$as_echo "$CPP" >&6; } +ac_preproc_ok=false +for ac_c_preproc_warn_flag in '' yes +do + # Use a header file that comes with gcc, so configuring glibc + # with a fresh cross-compiler works. + # Prefer to if __STDC__ is defined, since + # exists even on freestanding compilers. + # On the NeXT, cc -E runs the code through the compiler's parser, + # not just through cpp. "Syntax error" is here to catch this case. + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#ifdef __STDC__ +# include +#else +# include +#endif + Syntax error +_ACEOF +if ac_fn_c_try_cpp "$LINENO"; then : + +else + # Broken: fails on valid input. +continue +fi +rm -f conftest.err conftest.i conftest.$ac_ext + + # OK, works on sane cases. Now check whether nonexistent headers + # can be detected and how. + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include +_ACEOF +if ac_fn_c_try_cpp "$LINENO"; then : + # Broken: success on invalid input. +continue +else + # Passes both tests. +ac_preproc_ok=: +break +fi +rm -f conftest.err conftest.i conftest.$ac_ext + +done +# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped. +rm -f conftest.i conftest.err conftest.$ac_ext +if $ac_preproc_ok; then : + +else + { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 +$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} +as_fn_error $? "C preprocessor \"$CPP\" fails sanity check +See \`config.log' for more details" "$LINENO" 5; } +fi + +ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu + + + +# Try CLANG_PLUGIN_FILE first since GCC_PLUGIN_OPTION may return the +# wrong plugin_option with clang. + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for clang" >&5 +$as_echo_n "checking for clang... " >&6; } +if ${clang_cv_is_clang+:} false; then : + $as_echo_n "(cached) " >&6 +else + + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +#ifdef __clang__ + yes +#endif + +_ACEOF +if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | + $EGREP "yes" >/dev/null 2>&1; then : + clang_cv_is_clang=yes +else + clang_cv_is_clang=no +fi +rm -f conftest* + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $clang_cv_is_clang" >&5 +$as_echo "$clang_cv_is_clang" >&6; } + plugin_file= + if test $clang_cv_is_clang = yes; then + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for clang plugin file" >&5 +$as_echo_n "checking for clang plugin file... " >&6; } + plugin_names="LLVMgold.so" + for plugin in $plugin_names; do + plugin_file=`${CC} ${CFLAGS} --print-file-name $plugin` + if test x$plugin_file = x$plugin; then + if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}llvm-config", so it can be a program name with args. +set dummy ${ac_tool_prefix}llvm-config; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_prog_AR+:} false; then : +if ${ac_cv_prog_LLVM_CONFIG+:} false; then : $as_echo_n "(cached) " >&6 else - if test -n "$AR"; then - ac_cv_prog_AR="$AR" # Let the user override the test. + if test -n "$LLVM_CONFIG"; then + ac_cv_prog_LLVM_CONFIG="$LLVM_CONFIG" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH @@ -5537,7 +5699,7 @@ do test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_prog_AR="${ac_tool_prefix}ar" + ac_cv_prog_LLVM_CONFIG="${ac_tool_prefix}llvm-config" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi @@ -5547,10 +5709,10 @@ IFS=$as_save_IFS fi fi -AR=$ac_cv_prog_AR -if test -n "$AR"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $AR" >&5 -$as_echo "$AR" >&6; } +LLVM_CONFIG=$ac_cv_prog_LLVM_CONFIG +if test -n "$LLVM_CONFIG"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $LLVM_CONFIG" >&5 +$as_echo "$LLVM_CONFIG" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } @@ -5558,16 +5720,123 @@ fi fi -if test -z "$ac_cv_prog_AR"; then - ac_ct_AR=$AR - # Extract the first word of "ar", so it can be a program name with args. -set dummy ar; ac_word=$2 +if test -z "$ac_cv_prog_LLVM_CONFIG"; then + ac_ct_LLVM_CONFIG=$LLVM_CONFIG + # Extract the first word of "llvm-config", so it can be a program name with args. +set dummy llvm-config; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_prog_ac_ct_AR+:} false; then : +if ${ac_cv_prog_ac_ct_LLVM_CONFIG+:} false; then : $as_echo_n "(cached) " >&6 else - if test -n "$ac_ct_AR"; then + if test -n "$ac_ct_LLVM_CONFIG"; then + ac_cv_prog_ac_ct_LLVM_CONFIG="$ac_ct_LLVM_CONFIG" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_ac_ct_LLVM_CONFIG="llvm-config" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +ac_ct_LLVM_CONFIG=$ac_cv_prog_ac_ct_LLVM_CONFIG +if test -n "$ac_ct_LLVM_CONFIG"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_LLVM_CONFIG" >&5 +$as_echo "$ac_ct_LLVM_CONFIG" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + if test "x$ac_ct_LLVM_CONFIG" = x; then + LLVM_CONFIG="" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + LLVM_CONFIG=$ac_ct_LLVM_CONFIG + fi +else + LLVM_CONFIG="$ac_cv_prog_LLVM_CONFIG" +fi + + if test "$?" != 0; then + as_fn_error $? "Required tool 'llvm-config' not found on PATH." "$LINENO" 5 + fi + clang_lib_dir=`$LLVM_CONFIG --libdir` + if test -f $clang_lib_dir/$plugin; then + plugin_file=$clang_lib_dir/$plugin + fi + if test x$plugin_file != x$plugin; then + break; + fi + fi + done + if test -z $plugin_file; then + as_fn_error $? "Couldn't find clang plugin file for $CC." "$LINENO" 5 + fi + if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}ar", so it can be a program name with args. +set dummy ${ac_tool_prefix}ar; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_AR+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$AR"; then + ac_cv_prog_AR="$AR" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_AR="${ac_tool_prefix}ar" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +AR=$ac_cv_prog_AR +if test -n "$AR"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $AR" >&5 +$as_echo "$AR" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + +fi +if test -z "$ac_cv_prog_AR"; then + ac_ct_AR=$AR + # Extract the first word of "ar", so it can be a program name with args. +set dummy ar; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_ac_ct_AR+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$ac_ct_AR"; then ac_cv_prog_ac_ct_AR="$ac_ct_AR" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR @@ -5597,7 +5866,7 @@ $as_echo "no" >&6; } fi if test "x$ac_ct_AR" = x; then - AR="false" + AR="" else case $cross_compiling:$ac_tool_warned in yes:) @@ -5611,19 +5880,257 @@ else AR="$ac_cv_prog_AR" fi -test -z "$AR" && AR=ar -if test -n "$plugin_option"; then - if $AR --help 2>&1 | grep -q "\--plugin"; then + if test "${AR}" = "" ; then + as_fn_error $? "Required archive tool 'ar' not found on PATH." "$LINENO" 5 + fi + plugin_option="--plugin $plugin_file" touch conftest.c - $AR $plugin_option rc conftest.a conftest.c + ${AR} $plugin_option rc conftest.a conftest.c if test "$?" != 0; then { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Failed: $AR $plugin_option rc" >&5 $as_echo "$as_me: WARNING: Failed: $AR $plugin_option rc" >&2;} - else - AR="$AR $plugin_option" + plugin_file= fi rm -f conftest.* + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $plugin_file" >&5 +$as_echo "$plugin_file" >&6; } + fi + plugin_file="$plugin_file" + +if test -n "$plugin_file"; then + plugin_option="--plugin $plugin_file" +else + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for -plugin option" >&5 +$as_echo_n "checking for -plugin option... " >&6; } + +plugin_names="liblto_plugin.so liblto_plugin-0.dll cyglto_plugin-0.dll" +plugin_option= +for plugin in $plugin_names; do + plugin_so=`${CC} ${CFLAGS} --print-prog-name $plugin` + if test x$plugin_so = x$plugin; then + plugin_so=`${CC} ${CFLAGS} --print-file-name $plugin` + fi + if test x$plugin_so != x$plugin; then + plugin_option="--plugin $plugin_so" + break + fi +done +if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}ar", so it can be a program name with args. +set dummy ${ac_tool_prefix}ar; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_AR+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$AR"; then + ac_cv_prog_AR="$AR" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_AR="${ac_tool_prefix}ar" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +AR=$ac_cv_prog_AR +if test -n "$AR"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $AR" >&5 +$as_echo "$AR" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + +fi +if test -z "$ac_cv_prog_AR"; then + ac_ct_AR=$AR + # Extract the first word of "ar", so it can be a program name with args. +set dummy ar; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_ac_ct_AR+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$ac_ct_AR"; then + ac_cv_prog_ac_ct_AR="$ac_ct_AR" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_ac_ct_AR="ar" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 fi +done + done +IFS=$as_save_IFS + +fi +fi +ac_ct_AR=$ac_cv_prog_ac_ct_AR +if test -n "$ac_ct_AR"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_AR" >&5 +$as_echo "$ac_ct_AR" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + if test "x$ac_ct_AR" = x; then + AR="" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + AR=$ac_ct_AR + fi +else + AR="$ac_cv_prog_AR" +fi + +if test "${AR}" = "" ; then + as_fn_error $? "Required archive tool 'ar' not found on PATH." "$LINENO" 5 +fi +touch conftest.c +${AR} $plugin_option rc conftest.a conftest.c +if test "$?" != 0; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Failed: $AR $plugin_option rc" >&5 +$as_echo "$as_me: WARNING: Failed: $AR $plugin_option rc" >&2;} + plugin_option= +fi +rm -f conftest.* +if test -n "$plugin_option"; then + plugin_option="$plugin_option" + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $plugin_option" >&5 +$as_echo "$plugin_option" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + +fi +if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}ar", so it can be a program name with args. +set dummy ${ac_tool_prefix}ar; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_AR+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$AR"; then + ac_cv_prog_AR="$AR" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_AR="${ac_tool_prefix}ar" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +AR=$ac_cv_prog_AR +if test -n "$AR"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $AR" >&5 +$as_echo "$AR" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + +fi +if test -z "$ac_cv_prog_AR"; then + ac_ct_AR=$AR + # Extract the first word of "ar", so it can be a program name with args. +set dummy ar; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_ac_ct_AR+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$ac_ct_AR"; then + ac_cv_prog_ac_ct_AR="$ac_ct_AR" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_ac_ct_AR="ar" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +ac_ct_AR=$ac_cv_prog_ac_ct_AR +if test -n "$ac_ct_AR"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_AR" >&5 +$as_echo "$ac_ct_AR" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + if test "x$ac_ct_AR" = x; then + AR="false" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + AR=$ac_ct_AR + fi +else + AR="$ac_cv_prog_AR" +fi + +test -z "$AR" && AR=ar +if test -n "$plugin_option"; then + case "$AR" in + *"$plugin_option"*) + ;; + *) + if $AR --help 2>&1 | grep -q "\--plugin"; then + AR="$AR $plugin_option" + fi + ;; + esac fi test -z "$AR_FLAGS" && AR_FLAGS=cru @@ -5830,9 +6337,15 @@ fi test -z "$RANLIB" && RANLIB=: if test -n "$plugin_option" && test "$RANLIB" != ":"; then - if $RANLIB --help 2>&1 | grep -q "\--plugin"; then - RANLIB="$RANLIB $plugin_option" - fi + case "$RANLIB" in + *"$plugin_option"*) + ;; + *) + if $RANLIB --help 2>&1 | grep -q "\--plugin"; then + RANLIB="$RANLIB $plugin_option" + fi + ;; + esac fi @@ -7032,144 +7545,6 @@ $as_echo "$lt_cv_ld_force_load" >&6; } ;; esac -ac_ext=c -ac_cpp='$CPP $CPPFLAGS' -ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' -ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_c_compiler_gnu -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to run the C preprocessor" >&5 -$as_echo_n "checking how to run the C preprocessor... " >&6; } -# On Suns, sometimes $CPP names a directory. -if test -n "$CPP" && test -d "$CPP"; then - CPP= -fi -if test -z "$CPP"; then - if ${ac_cv_prog_CPP+:} false; then : - $as_echo_n "(cached) " >&6 -else - # Double quotes because CPP needs to be expanded - for CPP in "$CC -E" "$CC -E -traditional-cpp" "/lib/cpp" - do - ac_preproc_ok=false -for ac_c_preproc_warn_flag in '' yes -do - # Use a header file that comes with gcc, so configuring glibc - # with a fresh cross-compiler works. - # Prefer to if __STDC__ is defined, since - # exists even on freestanding compilers. - # On the NeXT, cc -E runs the code through the compiler's parser, - # not just through cpp. "Syntax error" is here to catch this case. - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#ifdef __STDC__ -# include -#else -# include -#endif - Syntax error -_ACEOF -if ac_fn_c_try_cpp "$LINENO"; then : - -else - # Broken: fails on valid input. -continue -fi -rm -f conftest.err conftest.i conftest.$ac_ext - - # OK, works on sane cases. Now check whether nonexistent headers - # can be detected and how. - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include -_ACEOF -if ac_fn_c_try_cpp "$LINENO"; then : - # Broken: success on invalid input. -continue -else - # Passes both tests. -ac_preproc_ok=: -break -fi -rm -f conftest.err conftest.i conftest.$ac_ext - -done -# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped. -rm -f conftest.i conftest.err conftest.$ac_ext -if $ac_preproc_ok; then : - break -fi - - done - ac_cv_prog_CPP=$CPP - -fi - CPP=$ac_cv_prog_CPP -else - ac_cv_prog_CPP=$CPP -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $CPP" >&5 -$as_echo "$CPP" >&6; } -ac_preproc_ok=false -for ac_c_preproc_warn_flag in '' yes -do - # Use a header file that comes with gcc, so configuring glibc - # with a fresh cross-compiler works. - # Prefer to if __STDC__ is defined, since - # exists even on freestanding compilers. - # On the NeXT, cc -E runs the code through the compiler's parser, - # not just through cpp. "Syntax error" is here to catch this case. - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#ifdef __STDC__ -# include -#else -# include -#endif - Syntax error -_ACEOF -if ac_fn_c_try_cpp "$LINENO"; then : - -else - # Broken: fails on valid input. -continue -fi -rm -f conftest.err conftest.i conftest.$ac_ext - - # OK, works on sane cases. Now check whether nonexistent headers - # can be detected and how. - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include -_ACEOF -if ac_fn_c_try_cpp "$LINENO"; then : - # Broken: success on invalid input. -continue -else - # Passes both tests. -ac_preproc_ok=: -break -fi -rm -f conftest.err conftest.i conftest.$ac_ext - -done -# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped. -rm -f conftest.i conftest.err conftest.$ac_ext -if $ac_preproc_ok; then : - -else - { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 -$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} -as_fn_error $? "C preprocessor \"$CPP\" fails sanity check -See \`config.log' for more details" "$LINENO" 5; } -fi - -ac_ext=c -ac_cpp='$CPP $CPPFLAGS' -ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' -ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_c_compiler_gnu - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ANSI C header files" >&5 $as_echo_n "checking for ANSI C header files... " >&6; } if ${ac_cv_header_stdc+:} false; then : @@ -10876,7 +11251,7 @@ else lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 lt_status=$lt_dlunknown cat > conftest.$ac_ext <<_LT_EOF -#line 10879 "configure" +#line 11254 "configure" #include "confdefs.h" #if HAVE_DLFCN_H @@ -10982,7 +11357,7 @@ else lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 lt_status=$lt_dlunknown cat > conftest.$ac_ext <<_LT_EOF -#line 10985 "configure" +#line 11360 "configure" #include "confdefs.h" #if HAVE_DLFCN_H diff --git a/libphobos/ChangeLog b/libphobos/ChangeLog index cabed28bb5d2..b803c615a015 100644 --- a/libphobos/ChangeLog +++ b/libphobos/ChangeLog @@ -1,3 +1,12 @@ +2025-10-05 Sam James + + * Makefile.in: Regenerate. + * aclocal.m4: Regenerate. + * configure: Regenerate. + * libdruntime/Makefile.in: Regenerate. + * src/Makefile.in: Regenerate. + * testsuite/Makefile.in: Regenerate. + 2025-09-07 Sam James * configure.tgt: Add hppa[12]*-*-linux* as a supported target. diff --git a/libphobos/Makefile.in b/libphobos/Makefile.in index cd64fd531ca9..6a3c25fd8106 100644 --- a/libphobos/Makefile.in +++ b/libphobos/Makefile.in @@ -109,7 +109,9 @@ subdir = . ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/../config/acx.m4 \ $(top_srcdir)/../config/cet.m4 \ + $(top_srcdir)/../config/clang-plugin.m4 \ $(top_srcdir)/../config/enable.m4 \ + $(top_srcdir)/../config/gcc-plugin.m4 \ $(top_srcdir)/../config/lead-dot.m4 \ $(top_srcdir)/../config/multi.m4 \ $(top_srcdir)/../config/override.m4 \ @@ -249,6 +251,7 @@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LIBZ = @LIBZ@ LIPO = @LIPO@ +LLVM_CONFIG = @LLVM_CONFIG@ LN_S = @LN_S@ LTLIBOBJS = @LTLIBOBJS@ MAINT = @MAINT@ diff --git a/libphobos/aclocal.m4 b/libphobos/aclocal.m4 index b2e1cbf0197e..68326d0b2859 100644 --- a/libphobos/aclocal.m4 +++ b/libphobos/aclocal.m4 @@ -874,7 +874,9 @@ AC_SUBST([am__untar]) m4_include([../config/acx.m4]) m4_include([../config/cet.m4]) +m4_include([../config/clang-plugin.m4]) m4_include([../config/enable.m4]) +m4_include([../config/gcc-plugin.m4]) m4_include([../config/lead-dot.m4]) m4_include([../config/multi.m4]) m4_include([../config/override.m4]) diff --git a/libphobos/configure b/libphobos/configure index 4f5be7d4ff4e..70e92efab66e 100755 --- a/libphobos/configure +++ b/libphobos/configure @@ -719,6 +719,7 @@ OTOOL LIPO NMEDIT DSYMUTIL +LLVM_CONFIG OBJDUMP LN_S NM @@ -6835,8 +6836,266 @@ test -z "$deplibs_check_method" && deplibs_check_method=unknown -plugin_option= + +# Try CLANG_PLUGIN_FILE first since GCC_PLUGIN_OPTION may return the +# wrong plugin_option with clang. + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for clang" >&5 +$as_echo_n "checking for clang... " >&6; } +if ${clang_cv_is_clang+:} false; then : + $as_echo_n "(cached) " >&6 +else + + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +#ifdef __clang__ + yes +#endif + +_ACEOF +if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | + $EGREP "yes" >/dev/null 2>&1; then : + clang_cv_is_clang=yes +else + clang_cv_is_clang=no +fi +rm -f conftest* + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $clang_cv_is_clang" >&5 +$as_echo "$clang_cv_is_clang" >&6; } + plugin_file= + if test $clang_cv_is_clang = yes; then + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for clang plugin file" >&5 +$as_echo_n "checking for clang plugin file... " >&6; } + plugin_names="LLVMgold.so" + for plugin in $plugin_names; do + plugin_file=`${CC} ${CFLAGS} --print-file-name $plugin` + if test x$plugin_file = x$plugin; then + if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}llvm-config", so it can be a program name with args. +set dummy ${ac_tool_prefix}llvm-config; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_LLVM_CONFIG+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$LLVM_CONFIG"; then + ac_cv_prog_LLVM_CONFIG="$LLVM_CONFIG" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_LLVM_CONFIG="${ac_tool_prefix}llvm-config" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +LLVM_CONFIG=$ac_cv_prog_LLVM_CONFIG +if test -n "$LLVM_CONFIG"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $LLVM_CONFIG" >&5 +$as_echo "$LLVM_CONFIG" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + +fi +if test -z "$ac_cv_prog_LLVM_CONFIG"; then + ac_ct_LLVM_CONFIG=$LLVM_CONFIG + # Extract the first word of "llvm-config", so it can be a program name with args. +set dummy llvm-config; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_ac_ct_LLVM_CONFIG+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$ac_ct_LLVM_CONFIG"; then + ac_cv_prog_ac_ct_LLVM_CONFIG="$ac_ct_LLVM_CONFIG" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_ac_ct_LLVM_CONFIG="llvm-config" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +ac_ct_LLVM_CONFIG=$ac_cv_prog_ac_ct_LLVM_CONFIG +if test -n "$ac_ct_LLVM_CONFIG"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_LLVM_CONFIG" >&5 +$as_echo "$ac_ct_LLVM_CONFIG" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + if test "x$ac_ct_LLVM_CONFIG" = x; then + LLVM_CONFIG="" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + LLVM_CONFIG=$ac_ct_LLVM_CONFIG + fi +else + LLVM_CONFIG="$ac_cv_prog_LLVM_CONFIG" +fi + + if test "$?" != 0; then + as_fn_error $? "Required tool 'llvm-config' not found on PATH." "$LINENO" 5 + fi + clang_lib_dir=`$LLVM_CONFIG --libdir` + if test -f $clang_lib_dir/$plugin; then + plugin_file=$clang_lib_dir/$plugin + fi + if test x$plugin_file != x$plugin; then + break; + fi + fi + done + if test -z $plugin_file; then + as_fn_error $? "Couldn't find clang plugin file for $CC." "$LINENO" 5 + fi + if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}ar", so it can be a program name with args. +set dummy ${ac_tool_prefix}ar; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_AR+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$AR"; then + ac_cv_prog_AR="$AR" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_AR="${ac_tool_prefix}ar" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +AR=$ac_cv_prog_AR +if test -n "$AR"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $AR" >&5 +$as_echo "$AR" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + +fi +if test -z "$ac_cv_prog_AR"; then + ac_ct_AR=$AR + # Extract the first word of "ar", so it can be a program name with args. +set dummy ar; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_ac_ct_AR+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$ac_ct_AR"; then + ac_cv_prog_ac_ct_AR="$ac_ct_AR" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_ac_ct_AR="ar" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +ac_ct_AR=$ac_cv_prog_ac_ct_AR +if test -n "$ac_ct_AR"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_AR" >&5 +$as_echo "$ac_ct_AR" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + if test "x$ac_ct_AR" = x; then + AR="" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + AR=$ac_ct_AR + fi +else + AR="$ac_cv_prog_AR" +fi + + if test "${AR}" = "" ; then + as_fn_error $? "Required archive tool 'ar' not found on PATH." "$LINENO" 5 + fi + plugin_option="--plugin $plugin_file" + touch conftest.c + ${AR} $plugin_option rc conftest.a conftest.c + if test "$?" != 0; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Failed: $AR $plugin_option rc" >&5 +$as_echo "$as_me: WARNING: Failed: $AR $plugin_option rc" >&2;} + plugin_file= + fi + rm -f conftest.* + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $plugin_file" >&5 +$as_echo "$plugin_file" >&6; } + fi + plugin_file="$plugin_file" + +if test -n "$plugin_file"; then + plugin_option="--plugin $plugin_file" +else + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for -plugin option" >&5 +$as_echo_n "checking for -plugin option... " >&6; } + plugin_names="liblto_plugin.so liblto_plugin-0.dll cyglto_plugin-0.dll" +plugin_option= for plugin in $plugin_names; do plugin_so=`${CC} ${CFLAGS} --print-prog-name $plugin` if test x$plugin_so = x$plugin; then @@ -6847,7 +7106,119 @@ for plugin in $plugin_names; do break fi done +if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}ar", so it can be a program name with args. +set dummy ${ac_tool_prefix}ar; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_AR+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$AR"; then + ac_cv_prog_AR="$AR" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_AR="${ac_tool_prefix}ar" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS +fi +fi +AR=$ac_cv_prog_AR +if test -n "$AR"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $AR" >&5 +$as_echo "$AR" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + +fi +if test -z "$ac_cv_prog_AR"; then + ac_ct_AR=$AR + # Extract the first word of "ar", so it can be a program name with args. +set dummy ar; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_ac_ct_AR+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$ac_ct_AR"; then + ac_cv_prog_ac_ct_AR="$ac_ct_AR" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_ac_ct_AR="ar" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +ac_ct_AR=$ac_cv_prog_ac_ct_AR +if test -n "$ac_ct_AR"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_AR" >&5 +$as_echo "$ac_ct_AR" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + if test "x$ac_ct_AR" = x; then + AR="" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + AR=$ac_ct_AR + fi +else + AR="$ac_cv_prog_AR" +fi + +if test "${AR}" = "" ; then + as_fn_error $? "Required archive tool 'ar' not found on PATH." "$LINENO" 5 +fi +touch conftest.c +${AR} $plugin_option rc conftest.a conftest.c +if test "$?" != 0; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Failed: $AR $plugin_option rc" >&5 +$as_echo "$as_me: WARNING: Failed: $AR $plugin_option rc" >&2;} + plugin_option= +fi +rm -f conftest.* +if test -n "$plugin_option"; then + plugin_option="$plugin_option" + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $plugin_option" >&5 +$as_echo "$plugin_option" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + +fi if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}ar", so it can be a program name with args. set dummy ${ac_tool_prefix}ar; ac_word=$2 @@ -6942,17 +7313,15 @@ fi test -z "$AR" && AR=ar if test -n "$plugin_option"; then - if $AR --help 2>&1 | grep -q "\--plugin"; then - touch conftest.c - $AR $plugin_option rc conftest.a conftest.c - if test "$?" != 0; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Failed: $AR $plugin_option rc" >&5 -$as_echo "$as_me: WARNING: Failed: $AR $plugin_option rc" >&2;} - else + case "$AR" in + *"$plugin_option"*) + ;; + *) + if $AR --help 2>&1 | grep -q "\--plugin"; then AR="$AR $plugin_option" fi - rm -f conftest.* - fi + ;; + esac fi test -z "$AR_FLAGS" && AR_FLAGS=cru @@ -7159,9 +7528,15 @@ fi test -z "$RANLIB" && RANLIB=: if test -n "$plugin_option" && test "$RANLIB" != ":"; then - if $RANLIB --help 2>&1 | grep -q "\--plugin"; then - RANLIB="$RANLIB $plugin_option" - fi + case "$RANLIB" in + *"$plugin_option"*) + ;; + *) + if $RANLIB --help 2>&1 | grep -q "\--plugin"; then + RANLIB="$RANLIB $plugin_option" + fi + ;; + esac fi @@ -11864,7 +12239,7 @@ else lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 lt_status=$lt_dlunknown cat > conftest.$ac_ext <<_LT_EOF -#line 11867 "configure" +#line 12242 "configure" #include "confdefs.h" #if HAVE_DLFCN_H @@ -11970,7 +12345,7 @@ else lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 lt_status=$lt_dlunknown cat > conftest.$ac_ext <<_LT_EOF -#line 11973 "configure" +#line 12348 "configure" #include "confdefs.h" #if HAVE_DLFCN_H diff --git a/libphobos/libdruntime/Makefile.in b/libphobos/libdruntime/Makefile.in index 1c0fa546dbbf..6d490cf4a9b7 100644 --- a/libphobos/libdruntime/Makefile.in +++ b/libphobos/libdruntime/Makefile.in @@ -135,7 +135,9 @@ subdir = libdruntime ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/../config/acx.m4 \ $(top_srcdir)/../config/cet.m4 \ + $(top_srcdir)/../config/clang-plugin.m4 \ $(top_srcdir)/../config/enable.m4 \ + $(top_srcdir)/../config/gcc-plugin.m4 \ $(top_srcdir)/../config/lead-dot.m4 \ $(top_srcdir)/../config/multi.m4 \ $(top_srcdir)/../config/override.m4 \ @@ -667,6 +669,7 @@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LIBZ = @LIBZ@ LIPO = @LIPO@ +LLVM_CONFIG = @LLVM_CONFIG@ LN_S = @LN_S@ LTLIBOBJS = @LTLIBOBJS@ MAINT = @MAINT@ diff --git a/libphobos/src/Makefile.in b/libphobos/src/Makefile.in index 64cc9c3d0104..2bbd70f960ad 100644 --- a/libphobos/src/Makefile.in +++ b/libphobos/src/Makefile.in @@ -94,7 +94,9 @@ subdir = src ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/../config/acx.m4 \ $(top_srcdir)/../config/cet.m4 \ + $(top_srcdir)/../config/clang-plugin.m4 \ $(top_srcdir)/../config/enable.m4 \ + $(top_srcdir)/../config/gcc-plugin.m4 \ $(top_srcdir)/../config/lead-dot.m4 \ $(top_srcdir)/../config/multi.m4 \ $(top_srcdir)/../config/override.m4 \ @@ -402,6 +404,7 @@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LIBZ = @LIBZ@ LIPO = @LIPO@ +LLVM_CONFIG = @LLVM_CONFIG@ LN_S = @LN_S@ LTLIBOBJS = @LTLIBOBJS@ MAINT = @MAINT@ diff --git a/libphobos/testsuite/Makefile.in b/libphobos/testsuite/Makefile.in index 3df08152b740..2f545f9d7239 100644 --- a/libphobos/testsuite/Makefile.in +++ b/libphobos/testsuite/Makefile.in @@ -94,7 +94,9 @@ subdir = testsuite ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/../config/acx.m4 \ $(top_srcdir)/../config/cet.m4 \ + $(top_srcdir)/../config/clang-plugin.m4 \ $(top_srcdir)/../config/enable.m4 \ + $(top_srcdir)/../config/gcc-plugin.m4 \ $(top_srcdir)/../config/lead-dot.m4 \ $(top_srcdir)/../config/multi.m4 \ $(top_srcdir)/../config/override.m4 \ @@ -193,6 +195,7 @@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LIBZ = @LIBZ@ LIPO = @LIPO@ +LLVM_CONFIG = @LLVM_CONFIG@ LN_S = @LN_S@ LTLIBOBJS = @LTLIBOBJS@ MAINT = @MAINT@ diff --git a/libquadmath/ChangeLog b/libquadmath/ChangeLog index 00af00809826..63eb0ba6d5b3 100644 --- a/libquadmath/ChangeLog +++ b/libquadmath/ChangeLog @@ -1,3 +1,9 @@ +2025-10-05 Sam James + + * Makefile.in: Regenerate. + * aclocal.m4: Regenerate. + * configure: Regenerate. + 2025-04-09 Jakub Jelinek * math/expq.c (C): Fix up THREEp96 constant. diff --git a/libquadmath/Makefile.in b/libquadmath/Makefile.in index ff3373064b17..ef7c3640bcb1 100644 --- a/libquadmath/Makefile.in +++ b/libquadmath/Makefile.in @@ -94,7 +94,9 @@ target_triplet = @target@ subdir = . ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/../config/acx.m4 \ + $(top_srcdir)/../config/clang-plugin.m4 \ $(top_srcdir)/../config/depstand.m4 \ + $(top_srcdir)/../config/gcc-plugin.m4 \ $(top_srcdir)/../config/lead-dot.m4 \ $(top_srcdir)/../config/lthostflags.m4 \ $(top_srcdir)/../config/multi.m4 \ @@ -360,6 +362,7 @@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LIPO = @LIPO@ +LLVM_CONFIG = @LLVM_CONFIG@ LN_S = @LN_S@ LTLIBOBJS = @LTLIBOBJS@ MAINT = @MAINT@ diff --git a/libquadmath/aclocal.m4 b/libquadmath/aclocal.m4 index f15cc0b9f081..ca5c22a666f2 100644 --- a/libquadmath/aclocal.m4 +++ b/libquadmath/aclocal.m4 @@ -1168,7 +1168,9 @@ AC_SUBST([am__untar]) ]) # _AM_PROG_TAR m4_include([../config/acx.m4]) +m4_include([../config/clang-plugin.m4]) m4_include([../config/depstand.m4]) +m4_include([../config/gcc-plugin.m4]) m4_include([../config/lead-dot.m4]) m4_include([../config/lthostflags.m4]) m4_include([../config/multi.m4]) diff --git a/libquadmath/configure b/libquadmath/configure index f82dd3d0d6d4..c0d6c6abe9dd 100755 --- a/libquadmath/configure +++ b/libquadmath/configure @@ -662,6 +662,7 @@ NMEDIT DSYMUTIL RANLIB AR +LLVM_CONFIG OBJDUMP LN_S NM @@ -5859,8 +5860,266 @@ test -z "$deplibs_check_method" && deplibs_check_method=unknown -plugin_option= + +# Try CLANG_PLUGIN_FILE first since GCC_PLUGIN_OPTION may return the +# wrong plugin_option with clang. + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for clang" >&5 +$as_echo_n "checking for clang... " >&6; } +if ${clang_cv_is_clang+:} false; then : + $as_echo_n "(cached) " >&6 +else + + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +#ifdef __clang__ + yes +#endif + +_ACEOF +if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | + $EGREP "yes" >/dev/null 2>&1; then : + clang_cv_is_clang=yes +else + clang_cv_is_clang=no +fi +rm -f conftest* + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $clang_cv_is_clang" >&5 +$as_echo "$clang_cv_is_clang" >&6; } + plugin_file= + if test $clang_cv_is_clang = yes; then + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for clang plugin file" >&5 +$as_echo_n "checking for clang plugin file... " >&6; } + plugin_names="LLVMgold.so" + for plugin in $plugin_names; do + plugin_file=`${CC} ${CFLAGS} --print-file-name $plugin` + if test x$plugin_file = x$plugin; then + if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}llvm-config", so it can be a program name with args. +set dummy ${ac_tool_prefix}llvm-config; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_LLVM_CONFIG+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$LLVM_CONFIG"; then + ac_cv_prog_LLVM_CONFIG="$LLVM_CONFIG" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_LLVM_CONFIG="${ac_tool_prefix}llvm-config" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +LLVM_CONFIG=$ac_cv_prog_LLVM_CONFIG +if test -n "$LLVM_CONFIG"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $LLVM_CONFIG" >&5 +$as_echo "$LLVM_CONFIG" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + +fi +if test -z "$ac_cv_prog_LLVM_CONFIG"; then + ac_ct_LLVM_CONFIG=$LLVM_CONFIG + # Extract the first word of "llvm-config", so it can be a program name with args. +set dummy llvm-config; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_ac_ct_LLVM_CONFIG+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$ac_ct_LLVM_CONFIG"; then + ac_cv_prog_ac_ct_LLVM_CONFIG="$ac_ct_LLVM_CONFIG" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_ac_ct_LLVM_CONFIG="llvm-config" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +ac_ct_LLVM_CONFIG=$ac_cv_prog_ac_ct_LLVM_CONFIG +if test -n "$ac_ct_LLVM_CONFIG"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_LLVM_CONFIG" >&5 +$as_echo "$ac_ct_LLVM_CONFIG" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + if test "x$ac_ct_LLVM_CONFIG" = x; then + LLVM_CONFIG="" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + LLVM_CONFIG=$ac_ct_LLVM_CONFIG + fi +else + LLVM_CONFIG="$ac_cv_prog_LLVM_CONFIG" +fi + + if test "$?" != 0; then + as_fn_error $? "Required tool 'llvm-config' not found on PATH." "$LINENO" 5 + fi + clang_lib_dir=`$LLVM_CONFIG --libdir` + if test -f $clang_lib_dir/$plugin; then + plugin_file=$clang_lib_dir/$plugin + fi + if test x$plugin_file != x$plugin; then + break; + fi + fi + done + if test -z $plugin_file; then + as_fn_error $? "Couldn't find clang plugin file for $CC." "$LINENO" 5 + fi + if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}ar", so it can be a program name with args. +set dummy ${ac_tool_prefix}ar; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_AR+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$AR"; then + ac_cv_prog_AR="$AR" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_AR="${ac_tool_prefix}ar" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +AR=$ac_cv_prog_AR +if test -n "$AR"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $AR" >&5 +$as_echo "$AR" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + +fi +if test -z "$ac_cv_prog_AR"; then + ac_ct_AR=$AR + # Extract the first word of "ar", so it can be a program name with args. +set dummy ar; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_ac_ct_AR+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$ac_ct_AR"; then + ac_cv_prog_ac_ct_AR="$ac_ct_AR" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_ac_ct_AR="ar" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +ac_ct_AR=$ac_cv_prog_ac_ct_AR +if test -n "$ac_ct_AR"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_AR" >&5 +$as_echo "$ac_ct_AR" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + if test "x$ac_ct_AR" = x; then + AR="" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + AR=$ac_ct_AR + fi +else + AR="$ac_cv_prog_AR" +fi + + if test "${AR}" = "" ; then + as_fn_error $? "Required archive tool 'ar' not found on PATH." "$LINENO" 5 + fi + plugin_option="--plugin $plugin_file" + touch conftest.c + ${AR} $plugin_option rc conftest.a conftest.c + if test "$?" != 0; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Failed: $AR $plugin_option rc" >&5 +$as_echo "$as_me: WARNING: Failed: $AR $plugin_option rc" >&2;} + plugin_file= + fi + rm -f conftest.* + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $plugin_file" >&5 +$as_echo "$plugin_file" >&6; } + fi + plugin_file="$plugin_file" + +if test -n "$plugin_file"; then + plugin_option="--plugin $plugin_file" +else + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for -plugin option" >&5 +$as_echo_n "checking for -plugin option... " >&6; } + plugin_names="liblto_plugin.so liblto_plugin-0.dll cyglto_plugin-0.dll" +plugin_option= for plugin in $plugin_names; do plugin_so=`${CC} ${CFLAGS} --print-prog-name $plugin` if test x$plugin_so = x$plugin; then @@ -5871,7 +6130,119 @@ for plugin in $plugin_names; do break fi done +if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}ar", so it can be a program name with args. +set dummy ${ac_tool_prefix}ar; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_AR+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$AR"; then + ac_cv_prog_AR="$AR" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_AR="${ac_tool_prefix}ar" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS +fi +fi +AR=$ac_cv_prog_AR +if test -n "$AR"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $AR" >&5 +$as_echo "$AR" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + +fi +if test -z "$ac_cv_prog_AR"; then + ac_ct_AR=$AR + # Extract the first word of "ar", so it can be a program name with args. +set dummy ar; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_ac_ct_AR+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$ac_ct_AR"; then + ac_cv_prog_ac_ct_AR="$ac_ct_AR" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_ac_ct_AR="ar" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +ac_ct_AR=$ac_cv_prog_ac_ct_AR +if test -n "$ac_ct_AR"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_AR" >&5 +$as_echo "$ac_ct_AR" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + if test "x$ac_ct_AR" = x; then + AR="" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + AR=$ac_ct_AR + fi +else + AR="$ac_cv_prog_AR" +fi + +if test "${AR}" = "" ; then + as_fn_error $? "Required archive tool 'ar' not found on PATH." "$LINENO" 5 +fi +touch conftest.c +${AR} $plugin_option rc conftest.a conftest.c +if test "$?" != 0; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Failed: $AR $plugin_option rc" >&5 +$as_echo "$as_me: WARNING: Failed: $AR $plugin_option rc" >&2;} + plugin_option= +fi +rm -f conftest.* +if test -n "$plugin_option"; then + plugin_option="$plugin_option" + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $plugin_option" >&5 +$as_echo "$plugin_option" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + +fi if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}ar", so it can be a program name with args. set dummy ${ac_tool_prefix}ar; ac_word=$2 @@ -5966,17 +6337,15 @@ fi test -z "$AR" && AR=ar if test -n "$plugin_option"; then - if $AR --help 2>&1 | grep -q "\--plugin"; then - touch conftest.c - $AR $plugin_option rc conftest.a conftest.c - if test "$?" != 0; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Failed: $AR $plugin_option rc" >&5 -$as_echo "$as_me: WARNING: Failed: $AR $plugin_option rc" >&2;} - else + case "$AR" in + *"$plugin_option"*) + ;; + *) + if $AR --help 2>&1 | grep -q "\--plugin"; then AR="$AR $plugin_option" fi - rm -f conftest.* - fi + ;; + esac fi test -z "$AR_FLAGS" && AR_FLAGS=cru @@ -6183,9 +6552,15 @@ fi test -z "$RANLIB" && RANLIB=: if test -n "$plugin_option" && test "$RANLIB" != ":"; then - if $RANLIB --help 2>&1 | grep -q "\--plugin"; then - RANLIB="$RANLIB $plugin_option" - fi + case "$RANLIB" in + *"$plugin_option"*) + ;; + *) + if $RANLIB --help 2>&1 | grep -q "\--plugin"; then + RANLIB="$RANLIB $plugin_option" + fi + ;; + esac fi @@ -10922,7 +11297,7 @@ else lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 lt_status=$lt_dlunknown cat > conftest.$ac_ext <<_LT_EOF -#line 10925 "configure" +#line 11300 "configure" #include "confdefs.h" #if HAVE_DLFCN_H @@ -11028,7 +11403,7 @@ else lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 lt_status=$lt_dlunknown cat > conftest.$ac_ext <<_LT_EOF -#line 11031 "configure" +#line 11406 "configure" #include "confdefs.h" #if HAVE_DLFCN_H diff --git a/libsanitizer/ChangeLog b/libsanitizer/ChangeLog index 9151572ce8bb..8bfc854072b5 100644 --- a/libsanitizer/ChangeLog +++ b/libsanitizer/ChangeLog @@ -1,3 +1,17 @@ +2025-10-05 Sam James + + * Makefile.in: Regenerate. + * aclocal.m4: Regenerate. + * asan/Makefile.in: Regenerate. + * configure: Regenerate. + * hwasan/Makefile.in: Regenerate. + * interception/Makefile.in: Regenerate. + * libbacktrace/Makefile.in: Regenerate. + * lsan/Makefile.in: Regenerate. + * sanitizer_common/Makefile.in: Regenerate. + * tsan/Makefile.in: Regenerate. + * ubsan/Makefile.in: Regenerate. + 2025-05-02 Florian Weimer Tom Stellard diff --git a/libsanitizer/Makefile.in b/libsanitizer/Makefile.in index f11219cae849..fa6fe9e26a3e 100644 --- a/libsanitizer/Makefile.in +++ b/libsanitizer/Makefile.in @@ -101,7 +101,9 @@ target_triplet = @target@ subdir = . ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/../config/acx.m4 \ + $(top_srcdir)/../config/clang-plugin.m4 \ $(top_srcdir)/../config/depstand.m4 \ + $(top_srcdir)/../config/gcc-plugin.m4 \ $(top_srcdir)/../config/lead-dot.m4 \ $(top_srcdir)/../config/libstdc++-raw-cxx.m4 \ $(top_srcdir)/../config/multi.m4 \ @@ -263,6 +265,7 @@ LIBSTDCXX_RAW_CXX_CXXFLAGS = @LIBSTDCXX_RAW_CXX_CXXFLAGS@ LIBSTDCXX_RAW_CXX_LDFLAGS = @LIBSTDCXX_RAW_CXX_LDFLAGS@ LIBTOOL = @LIBTOOL@ LIPO = @LIPO@ +LLVM_CONFIG = @LLVM_CONFIG@ LN_S = @LN_S@ LTLIBOBJS = @LTLIBOBJS@ MAINT = @MAINT@ diff --git a/libsanitizer/aclocal.m4 b/libsanitizer/aclocal.m4 index 6aa15694eba0..85284f527b2f 100644 --- a/libsanitizer/aclocal.m4 +++ b/libsanitizer/aclocal.m4 @@ -1188,7 +1188,9 @@ AC_SUBST([am__untar]) ]) # _AM_PROG_TAR m4_include([../config/acx.m4]) +m4_include([../config/clang-plugin.m4]) m4_include([../config/depstand.m4]) +m4_include([../config/gcc-plugin.m4]) m4_include([../config/lead-dot.m4]) m4_include([../config/libstdc++-raw-cxx.m4]) m4_include([../config/multi.m4]) diff --git a/libsanitizer/asan/Makefile.in b/libsanitizer/asan/Makefile.in index 54ee575bdf48..36d34fb5ba8c 100644 --- a/libsanitizer/asan/Makefile.in +++ b/libsanitizer/asan/Makefile.in @@ -96,7 +96,9 @@ target_triplet = @target@ subdir = asan ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/../config/acx.m4 \ + $(top_srcdir)/../config/clang-plugin.m4 \ $(top_srcdir)/../config/depstand.m4 \ + $(top_srcdir)/../config/gcc-plugin.m4 \ $(top_srcdir)/../config/lead-dot.m4 \ $(top_srcdir)/../config/libstdc++-raw-cxx.m4 \ $(top_srcdir)/../config/multi.m4 \ @@ -316,6 +318,7 @@ LIBSTDCXX_RAW_CXX_CXXFLAGS = @LIBSTDCXX_RAW_CXX_CXXFLAGS@ LIBSTDCXX_RAW_CXX_LDFLAGS = @LIBSTDCXX_RAW_CXX_LDFLAGS@ LIBTOOL = @LIBTOOL@ LIPO = @LIPO@ +LLVM_CONFIG = @LLVM_CONFIG@ LN_S = @LN_S@ LTLIBOBJS = @LTLIBOBJS@ MAINT = @MAINT@ diff --git a/libsanitizer/configure b/libsanitizer/configure index 6bfd28916d21..d4d987d2acce 100755 --- a/libsanitizer/configure +++ b/libsanitizer/configure @@ -678,6 +678,7 @@ LIPO NMEDIT DSYMUTIL AR +LLVM_CONFIG OBJDUMP LN_S NM @@ -7446,8 +7447,266 @@ test -z "$deplibs_check_method" && deplibs_check_method=unknown -plugin_option= + +# Try CLANG_PLUGIN_FILE first since GCC_PLUGIN_OPTION may return the +# wrong plugin_option with clang. + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for clang" >&5 +$as_echo_n "checking for clang... " >&6; } +if ${clang_cv_is_clang+:} false; then : + $as_echo_n "(cached) " >&6 +else + + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +#ifdef __clang__ + yes +#endif + +_ACEOF +if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | + $EGREP "yes" >/dev/null 2>&1; then : + clang_cv_is_clang=yes +else + clang_cv_is_clang=no +fi +rm -f conftest* + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $clang_cv_is_clang" >&5 +$as_echo "$clang_cv_is_clang" >&6; } + plugin_file= + if test $clang_cv_is_clang = yes; then + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for clang plugin file" >&5 +$as_echo_n "checking for clang plugin file... " >&6; } + plugin_names="LLVMgold.so" + for plugin in $plugin_names; do + plugin_file=`${CC} ${CFLAGS} --print-file-name $plugin` + if test x$plugin_file = x$plugin; then + if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}llvm-config", so it can be a program name with args. +set dummy ${ac_tool_prefix}llvm-config; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_LLVM_CONFIG+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$LLVM_CONFIG"; then + ac_cv_prog_LLVM_CONFIG="$LLVM_CONFIG" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_LLVM_CONFIG="${ac_tool_prefix}llvm-config" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +LLVM_CONFIG=$ac_cv_prog_LLVM_CONFIG +if test -n "$LLVM_CONFIG"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $LLVM_CONFIG" >&5 +$as_echo "$LLVM_CONFIG" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + +fi +if test -z "$ac_cv_prog_LLVM_CONFIG"; then + ac_ct_LLVM_CONFIG=$LLVM_CONFIG + # Extract the first word of "llvm-config", so it can be a program name with args. +set dummy llvm-config; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_ac_ct_LLVM_CONFIG+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$ac_ct_LLVM_CONFIG"; then + ac_cv_prog_ac_ct_LLVM_CONFIG="$ac_ct_LLVM_CONFIG" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_ac_ct_LLVM_CONFIG="llvm-config" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +ac_ct_LLVM_CONFIG=$ac_cv_prog_ac_ct_LLVM_CONFIG +if test -n "$ac_ct_LLVM_CONFIG"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_LLVM_CONFIG" >&5 +$as_echo "$ac_ct_LLVM_CONFIG" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + if test "x$ac_ct_LLVM_CONFIG" = x; then + LLVM_CONFIG="" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + LLVM_CONFIG=$ac_ct_LLVM_CONFIG + fi +else + LLVM_CONFIG="$ac_cv_prog_LLVM_CONFIG" +fi + + if test "$?" != 0; then + as_fn_error $? "Required tool 'llvm-config' not found on PATH." "$LINENO" 5 + fi + clang_lib_dir=`$LLVM_CONFIG --libdir` + if test -f $clang_lib_dir/$plugin; then + plugin_file=$clang_lib_dir/$plugin + fi + if test x$plugin_file != x$plugin; then + break; + fi + fi + done + if test -z $plugin_file; then + as_fn_error $? "Couldn't find clang plugin file for $CC." "$LINENO" 5 + fi + if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}ar", so it can be a program name with args. +set dummy ${ac_tool_prefix}ar; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_AR+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$AR"; then + ac_cv_prog_AR="$AR" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_AR="${ac_tool_prefix}ar" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +AR=$ac_cv_prog_AR +if test -n "$AR"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $AR" >&5 +$as_echo "$AR" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + +fi +if test -z "$ac_cv_prog_AR"; then + ac_ct_AR=$AR + # Extract the first word of "ar", so it can be a program name with args. +set dummy ar; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_ac_ct_AR+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$ac_ct_AR"; then + ac_cv_prog_ac_ct_AR="$ac_ct_AR" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_ac_ct_AR="ar" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +ac_ct_AR=$ac_cv_prog_ac_ct_AR +if test -n "$ac_ct_AR"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_AR" >&5 +$as_echo "$ac_ct_AR" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + if test "x$ac_ct_AR" = x; then + AR="" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + AR=$ac_ct_AR + fi +else + AR="$ac_cv_prog_AR" +fi + + if test "${AR}" = "" ; then + as_fn_error $? "Required archive tool 'ar' not found on PATH." "$LINENO" 5 + fi + plugin_option="--plugin $plugin_file" + touch conftest.c + ${AR} $plugin_option rc conftest.a conftest.c + if test "$?" != 0; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Failed: $AR $plugin_option rc" >&5 +$as_echo "$as_me: WARNING: Failed: $AR $plugin_option rc" >&2;} + plugin_file= + fi + rm -f conftest.* + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $plugin_file" >&5 +$as_echo "$plugin_file" >&6; } + fi + plugin_file="$plugin_file" + +if test -n "$plugin_file"; then + plugin_option="--plugin $plugin_file" +else + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for -plugin option" >&5 +$as_echo_n "checking for -plugin option... " >&6; } + plugin_names="liblto_plugin.so liblto_plugin-0.dll cyglto_plugin-0.dll" +plugin_option= for plugin in $plugin_names; do plugin_so=`${CC} ${CFLAGS} --print-prog-name $plugin` if test x$plugin_so = x$plugin; then @@ -7458,7 +7717,119 @@ for plugin in $plugin_names; do break fi done +if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}ar", so it can be a program name with args. +set dummy ${ac_tool_prefix}ar; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_AR+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$AR"; then + ac_cv_prog_AR="$AR" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_AR="${ac_tool_prefix}ar" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS +fi +fi +AR=$ac_cv_prog_AR +if test -n "$AR"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $AR" >&5 +$as_echo "$AR" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + +fi +if test -z "$ac_cv_prog_AR"; then + ac_ct_AR=$AR + # Extract the first word of "ar", so it can be a program name with args. +set dummy ar; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_ac_ct_AR+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$ac_ct_AR"; then + ac_cv_prog_ac_ct_AR="$ac_ct_AR" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_ac_ct_AR="ar" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +ac_ct_AR=$ac_cv_prog_ac_ct_AR +if test -n "$ac_ct_AR"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_AR" >&5 +$as_echo "$ac_ct_AR" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + if test "x$ac_ct_AR" = x; then + AR="" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + AR=$ac_ct_AR + fi +else + AR="$ac_cv_prog_AR" +fi + +if test "${AR}" = "" ; then + as_fn_error $? "Required archive tool 'ar' not found on PATH." "$LINENO" 5 +fi +touch conftest.c +${AR} $plugin_option rc conftest.a conftest.c +if test "$?" != 0; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Failed: $AR $plugin_option rc" >&5 +$as_echo "$as_me: WARNING: Failed: $AR $plugin_option rc" >&2;} + plugin_option= +fi +rm -f conftest.* +if test -n "$plugin_option"; then + plugin_option="$plugin_option" + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $plugin_option" >&5 +$as_echo "$plugin_option" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + +fi if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}ar", so it can be a program name with args. set dummy ${ac_tool_prefix}ar; ac_word=$2 @@ -7553,17 +7924,15 @@ fi test -z "$AR" && AR=ar if test -n "$plugin_option"; then - if $AR --help 2>&1 | grep -q "\--plugin"; then - touch conftest.c - $AR $plugin_option rc conftest.a conftest.c - if test "$?" != 0; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Failed: $AR $plugin_option rc" >&5 -$as_echo "$as_me: WARNING: Failed: $AR $plugin_option rc" >&2;} - else + case "$AR" in + *"$plugin_option"*) + ;; + *) + if $AR --help 2>&1 | grep -q "\--plugin"; then AR="$AR $plugin_option" fi - rm -f conftest.* - fi + ;; + esac fi test -z "$AR_FLAGS" && AR_FLAGS=cru @@ -7770,9 +8139,15 @@ fi test -z "$RANLIB" && RANLIB=: if test -n "$plugin_option" && test "$RANLIB" != ":"; then - if $RANLIB --help 2>&1 | grep -q "\--plugin"; then - RANLIB="$RANLIB $plugin_option" - fi + case "$RANLIB" in + *"$plugin_option"*) + ;; + *) + if $RANLIB --help 2>&1 | grep -q "\--plugin"; then + RANLIB="$RANLIB $plugin_option" + fi + ;; + esac fi @@ -12475,7 +12850,7 @@ else lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 lt_status=$lt_dlunknown cat > conftest.$ac_ext <<_LT_EOF -#line 12478 "configure" +#line 12853 "configure" #include "confdefs.h" #if HAVE_DLFCN_H @@ -12581,7 +12956,7 @@ else lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 lt_status=$lt_dlunknown cat > conftest.$ac_ext <<_LT_EOF -#line 12584 "configure" +#line 12959 "configure" #include "confdefs.h" #if HAVE_DLFCN_H diff --git a/libsanitizer/hwasan/Makefile.in b/libsanitizer/hwasan/Makefile.in index 4ff5deccb7f5..9c44a14d3b10 100644 --- a/libsanitizer/hwasan/Makefile.in +++ b/libsanitizer/hwasan/Makefile.in @@ -95,7 +95,9 @@ target_triplet = @target@ subdir = hwasan ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/../config/acx.m4 \ + $(top_srcdir)/../config/clang-plugin.m4 \ $(top_srcdir)/../config/depstand.m4 \ + $(top_srcdir)/../config/gcc-plugin.m4 \ $(top_srcdir)/../config/lead-dot.m4 \ $(top_srcdir)/../config/libstdc++-raw-cxx.m4 \ $(top_srcdir)/../config/multi.m4 \ @@ -309,6 +311,7 @@ LIBSTDCXX_RAW_CXX_CXXFLAGS = @LIBSTDCXX_RAW_CXX_CXXFLAGS@ LIBSTDCXX_RAW_CXX_LDFLAGS = @LIBSTDCXX_RAW_CXX_LDFLAGS@ LIBTOOL = @LIBTOOL@ LIPO = @LIPO@ +LLVM_CONFIG = @LLVM_CONFIG@ LN_S = @LN_S@ LTLIBOBJS = @LTLIBOBJS@ MAINT = @MAINT@ diff --git a/libsanitizer/interception/Makefile.in b/libsanitizer/interception/Makefile.in index 1f5a5ef2c860..c7a286c4367b 100644 --- a/libsanitizer/interception/Makefile.in +++ b/libsanitizer/interception/Makefile.in @@ -92,7 +92,9 @@ target_triplet = @target@ subdir = interception ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/../config/acx.m4 \ + $(top_srcdir)/../config/clang-plugin.m4 \ $(top_srcdir)/../config/depstand.m4 \ + $(top_srcdir)/../config/gcc-plugin.m4 \ $(top_srcdir)/../config/lead-dot.m4 \ $(top_srcdir)/../config/libstdc++-raw-cxx.m4 \ $(top_srcdir)/../config/multi.m4 \ @@ -235,6 +237,7 @@ LIBSTDCXX_RAW_CXX_CXXFLAGS = @LIBSTDCXX_RAW_CXX_CXXFLAGS@ LIBSTDCXX_RAW_CXX_LDFLAGS = @LIBSTDCXX_RAW_CXX_LDFLAGS@ LIBTOOL = @LIBTOOL@ LIPO = @LIPO@ +LLVM_CONFIG = @LLVM_CONFIG@ LN_S = @LN_S@ LTLIBOBJS = @LTLIBOBJS@ MAINT = @MAINT@ diff --git a/libsanitizer/libbacktrace/Makefile.in b/libsanitizer/libbacktrace/Makefile.in index b9d6e008f2b3..d6898cfcb858 100644 --- a/libsanitizer/libbacktrace/Makefile.in +++ b/libsanitizer/libbacktrace/Makefile.in @@ -123,7 +123,9 @@ target_triplet = @target@ subdir = libbacktrace ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/../config/acx.m4 \ + $(top_srcdir)/../config/clang-plugin.m4 \ $(top_srcdir)/../config/depstand.m4 \ + $(top_srcdir)/../config/gcc-plugin.m4 \ $(top_srcdir)/../config/lead-dot.m4 \ $(top_srcdir)/../config/libstdc++-raw-cxx.m4 \ $(top_srcdir)/../config/multi.m4 \ @@ -285,6 +287,7 @@ LIBSTDCXX_RAW_CXX_CXXFLAGS = @LIBSTDCXX_RAW_CXX_CXXFLAGS@ LIBSTDCXX_RAW_CXX_LDFLAGS = @LIBSTDCXX_RAW_CXX_LDFLAGS@ LIBTOOL = @LIBTOOL@ LIPO = @LIPO@ +LLVM_CONFIG = @LLVM_CONFIG@ LN_S = @LN_S@ LTLIBOBJS = @LTLIBOBJS@ MAINT = @MAINT@ diff --git a/libsanitizer/lsan/Makefile.in b/libsanitizer/lsan/Makefile.in index 7c1642a168ed..64e0cca3a3c3 100644 --- a/libsanitizer/lsan/Makefile.in +++ b/libsanitizer/lsan/Makefile.in @@ -94,7 +94,9 @@ target_triplet = @target@ subdir = lsan ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/../config/acx.m4 \ + $(top_srcdir)/../config/clang-plugin.m4 \ $(top_srcdir)/../config/depstand.m4 \ + $(top_srcdir)/../config/gcc-plugin.m4 \ $(top_srcdir)/../config/lead-dot.m4 \ $(top_srcdir)/../config/libstdc++-raw-cxx.m4 \ $(top_srcdir)/../config/multi.m4 \ @@ -280,6 +282,7 @@ LIBSTDCXX_RAW_CXX_CXXFLAGS = @LIBSTDCXX_RAW_CXX_CXXFLAGS@ LIBSTDCXX_RAW_CXX_LDFLAGS = @LIBSTDCXX_RAW_CXX_LDFLAGS@ LIBTOOL = @LIBTOOL@ LIPO = @LIPO@ +LLVM_CONFIG = @LLVM_CONFIG@ LN_S = @LN_S@ LTLIBOBJS = @LTLIBOBJS@ MAINT = @MAINT@ diff --git a/libsanitizer/sanitizer_common/Makefile.in b/libsanitizer/sanitizer_common/Makefile.in index 1bc07e51639a..ef2b17401840 100644 --- a/libsanitizer/sanitizer_common/Makefile.in +++ b/libsanitizer/sanitizer_common/Makefile.in @@ -98,7 +98,9 @@ target_triplet = @target@ subdir = sanitizer_common ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/../config/acx.m4 \ + $(top_srcdir)/../config/clang-plugin.m4 \ $(top_srcdir)/../config/depstand.m4 \ + $(top_srcdir)/../config/gcc-plugin.m4 \ $(top_srcdir)/../config/lead-dot.m4 \ $(top_srcdir)/../config/libstdc++-raw-cxx.m4 \ $(top_srcdir)/../config/multi.m4 \ @@ -273,6 +275,7 @@ LIBSTDCXX_RAW_CXX_CXXFLAGS = @LIBSTDCXX_RAW_CXX_CXXFLAGS@ LIBSTDCXX_RAW_CXX_LDFLAGS = @LIBSTDCXX_RAW_CXX_LDFLAGS@ LIBTOOL = @LIBTOOL@ LIPO = @LIPO@ +LLVM_CONFIG = @LLVM_CONFIG@ LN_S = @LN_S@ LTLIBOBJS = @LTLIBOBJS@ MAINT = @MAINT@ diff --git a/libsanitizer/tsan/Makefile.in b/libsanitizer/tsan/Makefile.in index 6c8ad7925141..5eadf0dc7375 100644 --- a/libsanitizer/tsan/Makefile.in +++ b/libsanitizer/tsan/Makefile.in @@ -95,7 +95,9 @@ target_triplet = @target@ subdir = tsan ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/../config/acx.m4 \ + $(top_srcdir)/../config/clang-plugin.m4 \ $(top_srcdir)/../config/depstand.m4 \ + $(top_srcdir)/../config/gcc-plugin.m4 \ $(top_srcdir)/../config/lead-dot.m4 \ $(top_srcdir)/../config/libstdc++-raw-cxx.m4 \ $(top_srcdir)/../config/multi.m4 \ @@ -309,6 +311,7 @@ LIBSTDCXX_RAW_CXX_CXXFLAGS = @LIBSTDCXX_RAW_CXX_CXXFLAGS@ LIBSTDCXX_RAW_CXX_LDFLAGS = @LIBSTDCXX_RAW_CXX_LDFLAGS@ LIBTOOL = @LIBTOOL@ LIPO = @LIPO@ +LLVM_CONFIG = @LLVM_CONFIG@ LN_S = @LN_S@ LTLIBOBJS = @LTLIBOBJS@ MAINT = @MAINT@ diff --git a/libsanitizer/ubsan/Makefile.in b/libsanitizer/ubsan/Makefile.in index 345190eeb34e..0b1e98e7a9ef 100644 --- a/libsanitizer/ubsan/Makefile.in +++ b/libsanitizer/ubsan/Makefile.in @@ -94,7 +94,9 @@ target_triplet = @target@ subdir = ubsan ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/../config/acx.m4 \ + $(top_srcdir)/../config/clang-plugin.m4 \ $(top_srcdir)/../config/depstand.m4 \ + $(top_srcdir)/../config/gcc-plugin.m4 \ $(top_srcdir)/../config/lead-dot.m4 \ $(top_srcdir)/../config/libstdc++-raw-cxx.m4 \ $(top_srcdir)/../config/multi.m4 \ @@ -274,6 +276,7 @@ LIBSTDCXX_RAW_CXX_CXXFLAGS = @LIBSTDCXX_RAW_CXX_CXXFLAGS@ LIBSTDCXX_RAW_CXX_LDFLAGS = @LIBSTDCXX_RAW_CXX_LDFLAGS@ LIBTOOL = @LIBTOOL@ LIPO = @LIPO@ +LLVM_CONFIG = @LLVM_CONFIG@ LN_S = @LN_S@ LTLIBOBJS = @LTLIBOBJS@ MAINT = @MAINT@ diff --git a/libssp/ChangeLog b/libssp/ChangeLog index d66e9f6fb652..37aafa3a86f3 100644 --- a/libssp/ChangeLog +++ b/libssp/ChangeLog @@ -1,3 +1,9 @@ +2025-10-05 Sam James + + * Makefile.in: Regenerate. + * aclocal.m4: Regenerate. + * configure: Regenerate. + 2024-05-07 Rainer Orth * Makefile.am [LIBSSP_USE_SYMVER_SUN] (ssp.map-sun): Pass diff --git a/libssp/Makefile.in b/libssp/Makefile.in index febbc4e5e578..8d8be3e5f778 100644 --- a/libssp/Makefile.in +++ b/libssp/Makefile.in @@ -94,8 +94,10 @@ subdir = . ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/../config/acx.m4 \ $(top_srcdir)/../config/cet.m4 \ + $(top_srcdir)/../config/clang-plugin.m4 \ $(top_srcdir)/../config/depstand.m4 \ $(top_srcdir)/../config/enable.m4 \ + $(top_srcdir)/../config/gcc-plugin.m4 \ $(top_srcdir)/../config/lead-dot.m4 \ $(top_srcdir)/../config/lthostflags.m4 \ $(top_srcdir)/../config/multi.m4 \ @@ -262,6 +264,7 @@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LIPO = @LIPO@ +LLVM_CONFIG = @LLVM_CONFIG@ LN_S = @LN_S@ LTLIBOBJS = @LTLIBOBJS@ MAINT = @MAINT@ diff --git a/libssp/aclocal.m4 b/libssp/aclocal.m4 index 68fc0a4a718a..47f54fc80cbb 100644 --- a/libssp/aclocal.m4 +++ b/libssp/aclocal.m4 @@ -1169,8 +1169,10 @@ AC_SUBST([am__untar]) m4_include([../config/acx.m4]) m4_include([../config/cet.m4]) +m4_include([../config/clang-plugin.m4]) m4_include([../config/depstand.m4]) m4_include([../config/enable.m4]) +m4_include([../config/gcc-plugin.m4]) m4_include([../config/lead-dot.m4]) m4_include([../config/lthostflags.m4]) m4_include([../config/multi.m4]) diff --git a/libssp/configure b/libssp/configure index 0052e03650d1..72ffc5a35f70 100755 --- a/libssp/configure +++ b/libssp/configure @@ -648,6 +648,7 @@ NMEDIT DSYMUTIL RANLIB AR +LLVM_CONFIG OBJDUMP LN_S NM @@ -6101,8 +6102,266 @@ test -z "$deplibs_check_method" && deplibs_check_method=unknown -plugin_option= + +# Try CLANG_PLUGIN_FILE first since GCC_PLUGIN_OPTION may return the +# wrong plugin_option with clang. + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for clang" >&5 +$as_echo_n "checking for clang... " >&6; } +if ${clang_cv_is_clang+:} false; then : + $as_echo_n "(cached) " >&6 +else + + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +#ifdef __clang__ + yes +#endif + +_ACEOF +if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | + $EGREP "yes" >/dev/null 2>&1; then : + clang_cv_is_clang=yes +else + clang_cv_is_clang=no +fi +rm -f conftest* + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $clang_cv_is_clang" >&5 +$as_echo "$clang_cv_is_clang" >&6; } + plugin_file= + if test $clang_cv_is_clang = yes; then + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for clang plugin file" >&5 +$as_echo_n "checking for clang plugin file... " >&6; } + plugin_names="LLVMgold.so" + for plugin in $plugin_names; do + plugin_file=`${CC} ${CFLAGS} --print-file-name $plugin` + if test x$plugin_file = x$plugin; then + if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}llvm-config", so it can be a program name with args. +set dummy ${ac_tool_prefix}llvm-config; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_LLVM_CONFIG+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$LLVM_CONFIG"; then + ac_cv_prog_LLVM_CONFIG="$LLVM_CONFIG" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_LLVM_CONFIG="${ac_tool_prefix}llvm-config" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +LLVM_CONFIG=$ac_cv_prog_LLVM_CONFIG +if test -n "$LLVM_CONFIG"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $LLVM_CONFIG" >&5 +$as_echo "$LLVM_CONFIG" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + +fi +if test -z "$ac_cv_prog_LLVM_CONFIG"; then + ac_ct_LLVM_CONFIG=$LLVM_CONFIG + # Extract the first word of "llvm-config", so it can be a program name with args. +set dummy llvm-config; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_ac_ct_LLVM_CONFIG+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$ac_ct_LLVM_CONFIG"; then + ac_cv_prog_ac_ct_LLVM_CONFIG="$ac_ct_LLVM_CONFIG" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_ac_ct_LLVM_CONFIG="llvm-config" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +ac_ct_LLVM_CONFIG=$ac_cv_prog_ac_ct_LLVM_CONFIG +if test -n "$ac_ct_LLVM_CONFIG"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_LLVM_CONFIG" >&5 +$as_echo "$ac_ct_LLVM_CONFIG" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + if test "x$ac_ct_LLVM_CONFIG" = x; then + LLVM_CONFIG="" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + LLVM_CONFIG=$ac_ct_LLVM_CONFIG + fi +else + LLVM_CONFIG="$ac_cv_prog_LLVM_CONFIG" +fi + + if test "$?" != 0; then + as_fn_error $? "Required tool 'llvm-config' not found on PATH." "$LINENO" 5 + fi + clang_lib_dir=`$LLVM_CONFIG --libdir` + if test -f $clang_lib_dir/$plugin; then + plugin_file=$clang_lib_dir/$plugin + fi + if test x$plugin_file != x$plugin; then + break; + fi + fi + done + if test -z $plugin_file; then + as_fn_error $? "Couldn't find clang plugin file for $CC." "$LINENO" 5 + fi + if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}ar", so it can be a program name with args. +set dummy ${ac_tool_prefix}ar; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_AR+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$AR"; then + ac_cv_prog_AR="$AR" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_AR="${ac_tool_prefix}ar" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +AR=$ac_cv_prog_AR +if test -n "$AR"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $AR" >&5 +$as_echo "$AR" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + +fi +if test -z "$ac_cv_prog_AR"; then + ac_ct_AR=$AR + # Extract the first word of "ar", so it can be a program name with args. +set dummy ar; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_ac_ct_AR+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$ac_ct_AR"; then + ac_cv_prog_ac_ct_AR="$ac_ct_AR" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_ac_ct_AR="ar" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +ac_ct_AR=$ac_cv_prog_ac_ct_AR +if test -n "$ac_ct_AR"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_AR" >&5 +$as_echo "$ac_ct_AR" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + if test "x$ac_ct_AR" = x; then + AR="" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + AR=$ac_ct_AR + fi +else + AR="$ac_cv_prog_AR" +fi + + if test "${AR}" = "" ; then + as_fn_error $? "Required archive tool 'ar' not found on PATH." "$LINENO" 5 + fi + plugin_option="--plugin $plugin_file" + touch conftest.c + ${AR} $plugin_option rc conftest.a conftest.c + if test "$?" != 0; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Failed: $AR $plugin_option rc" >&5 +$as_echo "$as_me: WARNING: Failed: $AR $plugin_option rc" >&2;} + plugin_file= + fi + rm -f conftest.* + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $plugin_file" >&5 +$as_echo "$plugin_file" >&6; } + fi + plugin_file="$plugin_file" + +if test -n "$plugin_file"; then + plugin_option="--plugin $plugin_file" +else + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for -plugin option" >&5 +$as_echo_n "checking for -plugin option... " >&6; } + plugin_names="liblto_plugin.so liblto_plugin-0.dll cyglto_plugin-0.dll" +plugin_option= for plugin in $plugin_names; do plugin_so=`${CC} ${CFLAGS} --print-prog-name $plugin` if test x$plugin_so = x$plugin; then @@ -6113,7 +6372,119 @@ for plugin in $plugin_names; do break fi done +if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}ar", so it can be a program name with args. +set dummy ${ac_tool_prefix}ar; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_AR+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$AR"; then + ac_cv_prog_AR="$AR" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_AR="${ac_tool_prefix}ar" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS +fi +fi +AR=$ac_cv_prog_AR +if test -n "$AR"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $AR" >&5 +$as_echo "$AR" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + +fi +if test -z "$ac_cv_prog_AR"; then + ac_ct_AR=$AR + # Extract the first word of "ar", so it can be a program name with args. +set dummy ar; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_ac_ct_AR+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$ac_ct_AR"; then + ac_cv_prog_ac_ct_AR="$ac_ct_AR" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_ac_ct_AR="ar" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +ac_ct_AR=$ac_cv_prog_ac_ct_AR +if test -n "$ac_ct_AR"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_AR" >&5 +$as_echo "$ac_ct_AR" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + if test "x$ac_ct_AR" = x; then + AR="" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + AR=$ac_ct_AR + fi +else + AR="$ac_cv_prog_AR" +fi + +if test "${AR}" = "" ; then + as_fn_error $? "Required archive tool 'ar' not found on PATH." "$LINENO" 5 +fi +touch conftest.c +${AR} $plugin_option rc conftest.a conftest.c +if test "$?" != 0; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Failed: $AR $plugin_option rc" >&5 +$as_echo "$as_me: WARNING: Failed: $AR $plugin_option rc" >&2;} + plugin_option= +fi +rm -f conftest.* +if test -n "$plugin_option"; then + plugin_option="$plugin_option" + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $plugin_option" >&5 +$as_echo "$plugin_option" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + +fi if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}ar", so it can be a program name with args. set dummy ${ac_tool_prefix}ar; ac_word=$2 @@ -6208,17 +6579,15 @@ fi test -z "$AR" && AR=ar if test -n "$plugin_option"; then - if $AR --help 2>&1 | grep -q "\--plugin"; then - touch conftest.c - $AR $plugin_option rc conftest.a conftest.c - if test "$?" != 0; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Failed: $AR $plugin_option rc" >&5 -$as_echo "$as_me: WARNING: Failed: $AR $plugin_option rc" >&2;} - else + case "$AR" in + *"$plugin_option"*) + ;; + *) + if $AR --help 2>&1 | grep -q "\--plugin"; then AR="$AR $plugin_option" fi - rm -f conftest.* - fi + ;; + esac fi test -z "$AR_FLAGS" && AR_FLAGS=cru @@ -6425,9 +6794,15 @@ fi test -z "$RANLIB" && RANLIB=: if test -n "$plugin_option" && test "$RANLIB" != ":"; then - if $RANLIB --help 2>&1 | grep -q "\--plugin"; then - RANLIB="$RANLIB $plugin_option" - fi + case "$RANLIB" in + *"$plugin_option"*) + ;; + *) + if $RANLIB --help 2>&1 | grep -q "\--plugin"; then + RANLIB="$RANLIB $plugin_option" + fi + ;; + esac fi @@ -11164,7 +11539,7 @@ else lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 lt_status=$lt_dlunknown cat > conftest.$ac_ext <<_LT_EOF -#line 11167 "configure" +#line 11542 "configure" #include "confdefs.h" #if HAVE_DLFCN_H @@ -11270,7 +11645,7 @@ else lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 lt_status=$lt_dlunknown cat > conftest.$ac_ext <<_LT_EOF -#line 11273 "configure" +#line 11648 "configure" #include "confdefs.h" #if HAVE_DLFCN_H diff --git a/libstdc++-v3/ChangeLog b/libstdc++-v3/ChangeLog index b215b3a80522..456006aac3fc 100644 --- a/libstdc++-v3/ChangeLog +++ b/libstdc++-v3/ChangeLog @@ -1,3 +1,288 @@ +2025-10-09 Jonathan Wakely + + * include/bits/hashtable.h (_Hashtable::_S_nothrow_move): Use + diagnostic pragmas to allow constexpr if in C++14. Use value + member instead of operator(). + +2025-10-09 Jonathan Wakely + + * include/bits/version.tpl: Fix comment on #endif. Tweak + description of when macros are defined. + * include/bits/version.h: Regenerate. + +2025-10-09 Tomasz Kamiński + + * testsuite/std/time/year_month_day_last/io.cc: New formatting tests. + * testsuite/std/time/year_month_weekday/io.cc: Likewise. + * testsuite/std/time/year_month_weekday_last/io.cc: Likewise. + +2025-10-08 Jonathan Wakely + + * doc/xml/manual/status_cxx2017.xml: Replace broken link to PSTL + upstream. + * doc/xml/manual/status_cxx2020.xml: Likewise. + * doc/html/manual/status.html: Regenerate. + +2025-10-08 Jonathan Wakely + + * config/cpu/i486/atomicity.h: Removed. + +2025-10-08 Jonathan Wakely + + PR libstdc++/122172 + * config/cpu/cris/atomicity.h: Removed. + +2025-10-08 Jonathan Wakely + + * include/bits/indirect.h (indirect::operator=(indirect&&)): + Move assign allocator when POCMA is true. + (polymorphic::operator=(polymorphic&&)): Likewise. + * testsuite/std/memory/indirect/copy.cc: Remove constexpr from + functions that use tracker_allocator. Add test_constexpr(). + * testsuite/std/memory/indirect/copy_alloc.cc: Remove constexpr + from all functions and remove static_assert. + * testsuite/std/memory/indirect/ctor.cc: Do not use + scoped_allocator_adaptor during constant evaluation. + * testsuite/std/memory/indirect/move.cc: Remove constexpr from + functions that use tracker_allocator. Add test_constexpr(). + * testsuite/std/memory/indirect/move_alloc.cc: Remove constexpr + from all functions and remove static_assert. + * testsuite/std/memory/indirect/relops.cc: Invoke lambda in + static_assert. + * testsuite/std/memory/polymorphic/copy.cc: Remove constexpr + from functions that use tracker_allocator. Add test_constexpr(). + * testsuite/std/memory/polymorphic/copy_alloc.cc: Remove + constexpr from all functions and remove static_assert. + * testsuite/std/memory/polymorphic/ctor.cc: Do not use + scoped_allocator_adaptor during constant evaluation. + * testsuite/std/memory/polymorphic/ctor_poly.cc: Likewise. + * testsuite/std/memory/polymorphic/move.cc: Remove constexpr + from functions that use tracker_allocator. Add test_constexpr(). + * testsuite/std/memory/polymorphic/move_alloc.cc: Remove + constexpr from all functions and remove static_assert. + * testsuite/util/testsuite_allocator.h (tracker_allocator): + Remove redundant 'inline' from friend. + (uneq_allocator): Make all functions constexpr. + (uneq_allocator::base, uneq_allocator::swap_base): Remove. + (uneq_allocator::~uneq_allocator): Remove. + (uneq_allocator::allocate, uneq_allocator::deallocate): Do not + use map of allocations during constant evaluation. + (propagating_allocator): Make all functions constexpr. + (propagating_allocator::base): Remove. + (propagating_allocator::swap_base): Simplify. + (ExplicitConsAlloc, CustomPointerAlloc, NullablePointer): Add + constexpr to all functions. + +2025-10-08 Jakub Jelinek + + * include/bits/unicode-data.h: Regenerate. + * testsuite/ext/unicode/properties.cc: Test __is_extended_pictographic + on U+1F004 rather than U+1F000. + +2025-10-08 Tomasz Kamiński + + * include/bits/chrono_io.h (_ChronoData::_M_fill_day): Replace + '%' by '/'. + +2025-10-08 Jonathan Wakely + + * testsuite/std/time/format/format.cc: Include . + +2025-10-08 Luc Grosheintz + + PR libstdc++/110352 + * include/std/mdspan (submdspan_mapping_result): New class. + * src/c++23/std.cc.in (submdspan_mapping_result): Add. + +2025-10-08 Luc Grosheintz + + PR libstdc++/110352 + * include/std/mdspan (full_extent_t): New class. + * src/c++23/std.cc.in (full_extent_t): Add. + +2025-10-08 Luc Grosheintz + + PR libstdc++/110352 + * include/bits/version.def (submdspan): New internal macro. + * include/bits/version.h: Regenerate. + * include/std/mdspan (strided_slice): New class. + * src/c++23/std.cc.in (strided_slice): Add. + * testsuite/23_containers/mdspan/submdspan/strided_slice.cc: New test. + * testsuite/23_containers/mdspan/submdspan/strided_slice_neg.cc: New test. + +2025-10-08 Luc Grosheintz + + * include/std/mdspan (__mdspan::__index_type_cast): Optimize by + skipping a __glibcxx_assert if it's know at compile-time. + (std::layout_left_padded, std::layout_righ_padded): Reorder + is_always_strided and is_unique member functions. + * testsuite/23_containers/mdspan/int_like.h: Rename _M_i to + value. + +2025-10-08 Luc Grosheintz + + PR libstdc++/110352 + * include/std/mdspan (_RightPaddedIndices): Traits for right + padded layouts. + (layout_right::mapping::mapping) New overload for right padded + layouts. + (layout_right_padded): Add implementation. + * src/c++23/std.cc.in (layout_right_padded): Add. + * testsuite/23_containers/mdspan/layouts/ctors.cc: Update + test for right padded layouts. + * testsuite/23_containers/mdspan/layouts/empty.cc: Ditto. + * testsuite/23_containers/mdspan/layouts/mapping.cc: Ditto. + * testsuite/23_containers/mdspan/layouts/padded.cc: Ditto. + * testsuite/23_containers/mdspan/layouts/padded_neg.cc: Ditto. + * testsuite/23_containers/mdspan/layouts/padded_traits.h: Ditto. + +2025-10-08 Luc Grosheintz + + PR libstdc++/110352 + * include/bits/version.def (padded_layouts): Add new internal + feature testing macro. + * include/bits/version.h: Regenerate. + * include/std/mdspan (__fwd_prod): New overload. + (layout_left_padded): Add declaration and implementation. + (layout_right_padded): Add declaration only. + (layout_left::mapping::mapping): New overload for left + padded mappings. + (__index_type_cast): New function that performs a checked cast + to index_type. + (__is_left_padded_mapping): New concept. + (__is_right_padded_mapping): Ditto. + (__standardized_mapping): Recognize left and right padded + mappings. + (_LeftPaddedIndices): Traits for left padded details. + (_PaddedStorage): New class for implementing padded layouts. + * src/c++23/std.cc.in (layout_left_padded): Add. + * testsuite/23_containers/mdspan/layouts/class_mandate_neg.cc: + Refactor and add tests for layout_left_padded. + * testsuite/23_containers/mdspan/layouts/ctors.cc: Ditto. + * testsuite/23_containers/mdspan/layouts/empty.cc: Ditto. + * testsuite/23_containers/mdspan/layouts/mapping.cc: Ditto. + * testsuite/23_containers/mdspan/layouts/padded.cc: Ditto. + * testsuite/23_containers/mdspan/layouts/padded_neg.cc: Ditto. + * testsuite/23_containers/mdspan/layouts/padded_traits.h: New + traits. + +2025-10-07 Jonathan Wakely + + * configure.host: Fix spelling in comment. + +2025-10-07 Jonathan Wakely + + * include/ext/ropeimpl.h (rope::_S_fetch): Initialize variable. + +2025-10-07 Jonathan Wakely + + * include/bits/sat_arith.h (mul_sat): Add parentheses around + operands. + +2025-10-07 Jonathan Wakely + + * testsuite/std/time/parse/parse.cc: Initialize variable. + +2025-10-07 Jonathan Wakely + + * testsuite/20_util/shared_ptr/cons/move.cc: Add comment and + dg-prune-output for -Wpessimizing-move warning. + * testsuite/experimental/memory/shared_ptr/cons/move_ctor.cc: + Likewise. + +2025-10-07 Jonathan Wakely + + * include/bits/random.h (philox_engine(result_type)): Reorder + ctor-initializer-list to match declaration order. + +2025-10-07 Jonathan Wakely + + * include/bits/basic_string.h (basic_string::_M_check): Cast + size_type arguments to size_t. + +2025-10-05 Sam James + + * Makefile.in: Regenerate. + * aclocal.m4: Regenerate. + * configure: Regenerate. + * doc/Makefile.in: Regenerate. + * include/Makefile.in: Regenerate. + * libsupc++/Makefile.in: Regenerate. + * po/Makefile.in: Regenerate. + * python/Makefile.in: Regenerate. + * src/Makefile.in: Regenerate. + * src/c++11/Makefile.in: Regenerate. + * src/c++17/Makefile.in: Regenerate. + * src/c++20/Makefile.in: Regenerate. + * src/c++23/Makefile.in: Regenerate. + * src/c++26/Makefile.in: Regenerate. + * src/c++98/Makefile.in: Regenerate. + * src/experimental/Makefile.in: Regenerate. + * src/filesystem/Makefile.in: Regenerate. + * src/libbacktrace/Makefile.in: Regenerate. + * testsuite/Makefile.in: Regenerate. + +2025-10-03 Tomasz Kamiński + + * doc/html/manual/index.html: Regenerated. + * doc/html/manual/status.html: Regenerated. + * doc/xml/manual/status_cxx2020.xml: Added status table. + +2025-10-01 François Dumont + + * include/std/vector (std::erase_if, std::erase): Replace _GLIBCXX20_CONSTEXPR + with 'constexpr' and remove implied 'inline' keyword. + * include/std/string (std::erase_if, std::erase): Likewise. + +2025-10-01 Jonathan Wakely + + * testsuite/28_regex/basic_regex/assign/wchar_t/pstring.cc: Use + wcslen(cs) instead of sizeof(cs)-1. + +2025-10-01 Jonathan Wakely + + * testsuite/20_util/unique_ptr/modifiers/93562.cc: Define a + separate deleter for array cases. + +2025-10-01 Jonathan Wakely + + * testsuite/27_io/basic_filebuf/seekoff/wchar_t/9875_seekoff.cc + (Cvt::do_length): Fix signature to override virtual function in + base. + * testsuite/27_io/basic_filebuf/seekpos/wchar_t/9875_seekpos.cc: + (Cvt::do_length): Likewise. + * testsuite/27_io/basic_filebuf/underflow/char/1.cc + (NoconvCvt::do_in): Likewise. + * testsuite/27_io/basic_filebuf/underflow/wchar_t/11603.cc + (checksumcvt::do_length): Likewise. + +2025-10-01 Jonathan Wakely + + * testsuite/22_locale/time_get/get/char/3.cc: Add parentheses to + x == y|z expression. + * testsuite/22_locale/time_get/get/wchar_t/3.cc: Likewise. + * testsuite/28_regex/algorithms/regex_match/multiline.cc: + Likewise. + +2025-10-01 Jonathan Wakely + + * include/bits/stl_uninitialized.h (uninitialized_copy) + (uninitialized_fill, uninitialized_fill_n): Use pragmas to + suppress -Wclass-memaccess warnings. + +2025-10-01 Jonathan Wakely + + * testsuite/std/memory/polymorphic/copy.cc: Fix spelling of + typedef. + +2025-09-30 François Dumont + + * include/std/inplace_vector: + (std::swap(inplace_vector<>&, inplace_vector<>&)): Remove the duplicated + implementation at std namespace level. Keep the friend inline one. + (inplace_vector::assign(initializer_list<>)): Add missing return + statement. + 2025-09-27 Jonathan Wakely * testsuite/20_util/allocator_traits/members/allocate_hint.cc: diff --git a/libstdc++-v3/Makefile.in b/libstdc++-v3/Makefile.in index 5beb3146ee6a..5d2570b31cb8 100644 --- a/libstdc++-v3/Makefile.in +++ b/libstdc++-v3/Makefile.in @@ -91,8 +91,10 @@ target_triplet = @target@ subdir = . ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/../config/acx.m4 \ + $(top_srcdir)/../config/clang-plugin.m4 \ $(top_srcdir)/../config/enable.m4 \ $(top_srcdir)/../config/futex.m4 \ + $(top_srcdir)/../config/gcc-plugin.m4 \ $(top_srcdir)/../config/hwcaps.m4 \ $(top_srcdir)/../config/iconv.m4 \ $(top_srcdir)/../config/lead-dot.m4 \ @@ -263,6 +265,7 @@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LIPO = @LIPO@ +LLVM_CONFIG = @LLVM_CONFIG@ LN_S = @LN_S@ LONG_DOUBLE_128_FLAGS = @LONG_DOUBLE_128_FLAGS@ LONG_DOUBLE_ALT128_COMPAT_FLAGS = @LONG_DOUBLE_ALT128_COMPAT_FLAGS@ diff --git a/libstdc++-v3/acinclude.m4 b/libstdc++-v3/acinclude.m4 index eb2d26286561..d040e8d30bee 100644 --- a/libstdc++-v3/acinclude.m4 +++ b/libstdc++-v3/acinclude.m4 @@ -5804,6 +5804,89 @@ AC_DEFUN([GLIBCXX_CHECK_DEBUGGING], [ AC_LANG_RESTORE ]) +dnl +dnl Check whether the dependencies for optimized std::print are available. +dnl +dnl Defines: +dnl _GLIBCXX_USE_STDIO_LOCKING if flockfile, putc_unlocked etc. are present. +dnl _GLIBCXX_USE_GLIBC_STDIO_EXT if FILE::_IO_write_ptr etc. are also present. +dnl +AC_DEFUN([GLIBCXX_CHECK_STDIO_LOCKING], [ +AC_LANG_SAVE + AC_LANG_CPLUSPLUS + + AC_MSG_CHECKING([whether flockfile and putc_unlocked are defined in ]) + AC_TRY_COMPILE([ + #include + ],[ + FILE* f = ::fopen("", ""); + ::flockfile(f); + ::putc_unlocked(' ', f); + ::funlockfile(f); + ::fclose(f); + ], [ac_stdio_locking=yes], [ac_stdio_locking=no]) + AC_MSG_RESULT($ac_stdio_locking) + + if test "$ac_stdio_locking" = yes; then + AC_DEFINE_UNQUOTED(_GLIBCXX_USE_STDIO_LOCKING, 1, + [Define if flockfile and putc_unlocked should be used for std::print.]) + + # This is not defined in POSIX, but is present in glibc, musl, and Solaris. + AC_MSG_CHECKING([whether fwrite_unlocked is defined in ]) + AC_TRY_COMPILE([ + #include + ],[ + FILE* f = ::fopen("", ""); + ::flockfile(f); + ::fwrite_unlocked("", 1, 1, f); + ::funlockfile(f); + ::fclose(f); + ], [ac_fwrite_unlocked=yes], [ac_fwrite_unlocked=no]) + AC_MSG_RESULT($ac_fwrite_unlocked) + if test "$ac_fwrite_unlocked" = yes; then + AC_DEFINE(HAVE_FWRITE_UNLOCKED, 1, + [Define if fwrite_unlocked can be used for std::print.]) + + # Check for Glibc-specific FILE members and extensions. + case "${target_os}" in + gnu* | linux* | kfreebsd*-gnu | knetbsd*-gnu) + AC_MSG_CHECKING([for FILE::_IO_write_ptr and ]) + AC_TRY_COMPILE([ + #include + #include + extern "C" { + using f1_type = int (*)(FILE*) noexcept; + using f2_type = size_t (*)(FILE*) noexcept; + } + ],[ + f1_type twritable = &::__fwritable; + f1_type tblk = &::__flbf; + f2_type pbufsize = &::__fbufsize; + FILE* f = ::fopen("", ""); + int i = ::__overflow(f, EOF); + bool writeable = ::__fwritable(f); + bool line_buffered = ::__flbf(f); + size_t bufsz = ::__fbufsize(f); + char*& pptr = f->_IO_write_ptr; + char*& epptr = f->_IO_buf_end; + ::fflush_unlocked(f); + ::fclose(f); + ], [ac_glibc_stdio=yes], [ac_glibc_stdio=no]) + AC_MSG_RESULT($ac_glibc_stdio) + if test "$ac_glibc_stdio" = yes; then + AC_DEFINE_UNQUOTED(_GLIBCXX_USE_GLIBC_STDIO_EXT, 1, + [Define if Glibc FILE internals should be used for std::print.]) + fi + ;; + *) + ;; + esac + fi + fi + + AC_LANG_RESTORE +]) + # Macros from the top-level gcc directory. m4_include([../config/gc++filt.m4]) diff --git a/libstdc++-v3/aclocal.m4 b/libstdc++-v3/aclocal.m4 index e5af3f62e1c2..0a19b02bf071 100644 --- a/libstdc++-v3/aclocal.m4 +++ b/libstdc++-v3/aclocal.m4 @@ -853,8 +853,10 @@ AC_SUBST([am__untar]) ]) # _AM_PROG_TAR m4_include([../config/acx.m4]) +m4_include([../config/clang-plugin.m4]) m4_include([../config/enable.m4]) m4_include([../config/futex.m4]) +m4_include([../config/gcc-plugin.m4]) m4_include([../config/hwcaps.m4]) m4_include([../config/iconv.m4]) m4_include([../config/lead-dot.m4]) diff --git a/libstdc++-v3/config.h.in b/libstdc++-v3/config.h.in index 818117aa6cce..4cfb9ba26be4 100644 --- a/libstdc++-v3/config.h.in +++ b/libstdc++-v3/config.h.in @@ -152,6 +152,9 @@ /* Define to 1 if you have the `frexpl' function. */ #undef HAVE_FREXPL +/* Define if fwrite_unlocked can be used for std::print. */ +#undef HAVE_FWRITE_UNLOCKED + /* Define if getentropy is available in . */ #undef HAVE_GETENTROPY @@ -828,6 +831,9 @@ /* Define if get_nprocs is available in . */ #undef _GLIBCXX_USE_GET_NPROCS +/* Define if Glibc FILE internals should be used for std::print. */ +#undef _GLIBCXX_USE_GLIBC_STDIO_EXT + /* Define if init_priority should be used for iostream initialization. */ #undef _GLIBCXX_USE_INIT_PRIORITY_ATTRIBUTE @@ -893,6 +899,9 @@ /* Define if sendfile is available in . */ #undef _GLIBCXX_USE_SENDFILE +/* Define if flockfile and putc_unlocked should be used for std::print. */ +#undef _GLIBCXX_USE_STDIO_LOCKING + /* Define to restrict std::__basic_file<> to stdio APIs. */ #undef _GLIBCXX_USE_STDIO_PURE diff --git a/libstdc++-v3/config/cpu/cris/atomicity.h b/libstdc++-v3/config/cpu/cris/atomicity.h deleted file mode 100644 index 9d3cec403a14..000000000000 --- a/libstdc++-v3/config/cpu/cris/atomicity.h +++ /dev/null @@ -1,89 +0,0 @@ -// Low-level functions for atomic operations: CRIS version -*- C++ -*- - -// Copyright (C) 2001-2025 Free Software Foundation, Inc. -// -// This file is part of the GNU ISO C++ Library. This library 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, or (at your option) -// any later version. - -// This library 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. - -// Under Section 7 of GPL version 3, you are granted additional -// permissions described in the GCC Runtime Library Exception, version -// 3.1, as published by the Free Software Foundation. - -// You should have received a copy of the GNU General Public License and -// a copy of the GCC Runtime Library Exception along with this program; -// see the files COPYING3 and COPYING.RUNTIME respectively. If not, see -// . - -#include - -namespace __gnu_cxx _GLIBCXX_VISIBILITY(default) -{ -_GLIBCXX_BEGIN_NAMESPACE_VERSION - - _Atomic_word - __exchange_and_add(volatile _Atomic_word* __mem, int __val) throw () - { - int __tmp; - _Atomic_word __result; - -#if (__CRIS_arch_version >= 32) - __asm__ __volatile__ (" clearf p \n" - "0: \n" - " move.d %4,%2 \n" - " move.d [%3],%0 \n" - " add.d %0,%2 \n" - " ax \n" - " move.d %2,[%3] \n" - " bcs 0b \n" - " clearf p \n" - : "=&r" (__result), "=Q" (*__mem), "=&r" (__tmp) - : "r" (__mem), "g" (__val), "Q" (*__mem) - : "memory"); -#elif (__CRIS_arch_version >= 10) - __asm__ __volatile__ (" clearf \n" - "0: \n" - " move.d %4,%2 \n" - " move.d [%3],%0 \n" - " add.d %0,%2 \n" - " ax \n" - " move.d %2,[%3] \n" - " bwf 0b \n" - " clearf \n" - : "=&r" (__result), "=Q" (*__mem), "=&r" (__tmp) - : "r" (__mem), "g" (__val), "Q" (*__mem) - /* The memory clobber must stay, regardless of - current uses of this function. */ - : "memory"); -#else - __asm__ __volatile__ (" move $ccr,$r9 \n" - " di \n" - " move.d %4,%2 \n" - " move.d [%3],%0 \n" - " add.d %0,%2 \n" - " move.d %2,[%3] \n" - " move $r9,$ccr \n" - : "=&r" (__result), "=Q" (*__mem), "=&r" (__tmp) - : "r" (__mem), "g" (__val), "Q" (*__mem) - : "r9", - /* The memory clobber must stay, regardless of - current uses of this function. */ - "memory"); -#endif - - return __result; - } - - void - __atomic_add(volatile _Atomic_word* __mem, int __val) throw () - { __exchange_and_add(__mem, __val); } - -_GLIBCXX_END_NAMESPACE_VERSION -} // namespace diff --git a/libstdc++-v3/config/cpu/i486/atomicity.h b/libstdc++-v3/config/cpu/i486/atomicity.h deleted file mode 100644 index 092ea9d1e892..000000000000 --- a/libstdc++-v3/config/cpu/i486/atomicity.h +++ /dev/null @@ -1,52 +0,0 @@ -// Low-level functions for atomic operations: x86, x >= 4 version -*- C++ -*- - -// Copyright (C) 1999-2025 Free Software Foundation, Inc. -// -// This file is part of the GNU ISO C++ Library. This library 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, or (at your option) -// any later version. - -// This library 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. - -// Under Section 7 of GPL version 3, you are granted additional -// permissions described in the GCC Runtime Library Exception, version -// 3.1, as published by the Free Software Foundation. - -// You should have received a copy of the GNU General Public License and -// a copy of the GCC Runtime Library Exception along with this program; -// see the files COPYING3 and COPYING.RUNTIME respectively. If not, see -// . - -#include - -namespace __gnu_cxx _GLIBCXX_VISIBILITY(default) -{ -_GLIBCXX_BEGIN_NAMESPACE_VERSION - - _Atomic_word - __attribute__ ((__unused__)) - __exchange_and_add(volatile _Atomic_word* __mem, int __val) throw () - { - register _Atomic_word __result; - __asm__ __volatile__ ("lock; xadd{l} {%0,%1|%1,%0}" - : "=r" (__result), "=m" (*__mem) - : "0" (__val), "m" (*__mem)); - return __result; - } - - void - __attribute__ ((__unused__)) - __atomic_add(volatile _Atomic_word* __mem, int __val) throw () - { - __asm__ __volatile__ ("lock; add{l} {%1,%0|%0,%1}" - : "=m" (*__mem) : "ir" (__val), "m" (*__mem)); - } - -_GLIBCXX_END_NAMESPACE_VERSION -} // namespace - diff --git a/libstdc++-v3/configure b/libstdc++-v3/configure index c0eaeb97c499..86ec969aaf15 100755 --- a/libstdc++-v3/configure +++ b/libstdc++-v3/configure @@ -802,6 +802,7 @@ OTOOL LIPO NMEDIT DSYMUTIL +LLVM_CONFIG OBJDUMP NM ac_ct_DUMPBIN @@ -7089,8 +7090,266 @@ test -z "$deplibs_check_method" && deplibs_check_method=unknown -plugin_option= + +# Try CLANG_PLUGIN_FILE first since GCC_PLUGIN_OPTION may return the +# wrong plugin_option with clang. + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for clang" >&5 +$as_echo_n "checking for clang... " >&6; } +if ${clang_cv_is_clang+:} false; then : + $as_echo_n "(cached) " >&6 +else + + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +#ifdef __clang__ + yes +#endif + +_ACEOF +if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | + $EGREP "yes" >/dev/null 2>&1; then : + clang_cv_is_clang=yes +else + clang_cv_is_clang=no +fi +rm -f conftest* + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $clang_cv_is_clang" >&5 +$as_echo "$clang_cv_is_clang" >&6; } + plugin_file= + if test $clang_cv_is_clang = yes; then + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for clang plugin file" >&5 +$as_echo_n "checking for clang plugin file... " >&6; } + plugin_names="LLVMgold.so" + for plugin in $plugin_names; do + plugin_file=`${CC} ${CFLAGS} --print-file-name $plugin` + if test x$plugin_file = x$plugin; then + if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}llvm-config", so it can be a program name with args. +set dummy ${ac_tool_prefix}llvm-config; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_LLVM_CONFIG+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$LLVM_CONFIG"; then + ac_cv_prog_LLVM_CONFIG="$LLVM_CONFIG" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_LLVM_CONFIG="${ac_tool_prefix}llvm-config" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +LLVM_CONFIG=$ac_cv_prog_LLVM_CONFIG +if test -n "$LLVM_CONFIG"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $LLVM_CONFIG" >&5 +$as_echo "$LLVM_CONFIG" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + +fi +if test -z "$ac_cv_prog_LLVM_CONFIG"; then + ac_ct_LLVM_CONFIG=$LLVM_CONFIG + # Extract the first word of "llvm-config", so it can be a program name with args. +set dummy llvm-config; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_ac_ct_LLVM_CONFIG+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$ac_ct_LLVM_CONFIG"; then + ac_cv_prog_ac_ct_LLVM_CONFIG="$ac_ct_LLVM_CONFIG" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_ac_ct_LLVM_CONFIG="llvm-config" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +ac_ct_LLVM_CONFIG=$ac_cv_prog_ac_ct_LLVM_CONFIG +if test -n "$ac_ct_LLVM_CONFIG"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_LLVM_CONFIG" >&5 +$as_echo "$ac_ct_LLVM_CONFIG" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + if test "x$ac_ct_LLVM_CONFIG" = x; then + LLVM_CONFIG="" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + LLVM_CONFIG=$ac_ct_LLVM_CONFIG + fi +else + LLVM_CONFIG="$ac_cv_prog_LLVM_CONFIG" +fi + + if test "$?" != 0; then + as_fn_error $? "Required tool 'llvm-config' not found on PATH." "$LINENO" 5 + fi + clang_lib_dir=`$LLVM_CONFIG --libdir` + if test -f $clang_lib_dir/$plugin; then + plugin_file=$clang_lib_dir/$plugin + fi + if test x$plugin_file != x$plugin; then + break; + fi + fi + done + if test -z $plugin_file; then + as_fn_error $? "Couldn't find clang plugin file for $CC." "$LINENO" 5 + fi + if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}ar", so it can be a program name with args. +set dummy ${ac_tool_prefix}ar; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_AR+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$AR"; then + ac_cv_prog_AR="$AR" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_AR="${ac_tool_prefix}ar" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +AR=$ac_cv_prog_AR +if test -n "$AR"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $AR" >&5 +$as_echo "$AR" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + +fi +if test -z "$ac_cv_prog_AR"; then + ac_ct_AR=$AR + # Extract the first word of "ar", so it can be a program name with args. +set dummy ar; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_ac_ct_AR+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$ac_ct_AR"; then + ac_cv_prog_ac_ct_AR="$ac_ct_AR" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_ac_ct_AR="ar" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +ac_ct_AR=$ac_cv_prog_ac_ct_AR +if test -n "$ac_ct_AR"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_AR" >&5 +$as_echo "$ac_ct_AR" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + if test "x$ac_ct_AR" = x; then + AR="" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + AR=$ac_ct_AR + fi +else + AR="$ac_cv_prog_AR" +fi + + if test "${AR}" = "" ; then + as_fn_error $? "Required archive tool 'ar' not found on PATH." "$LINENO" 5 + fi + plugin_option="--plugin $plugin_file" + touch conftest.c + ${AR} $plugin_option rc conftest.a conftest.c + if test "$?" != 0; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Failed: $AR $plugin_option rc" >&5 +$as_echo "$as_me: WARNING: Failed: $AR $plugin_option rc" >&2;} + plugin_file= + fi + rm -f conftest.* + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $plugin_file" >&5 +$as_echo "$plugin_file" >&6; } + fi + plugin_file="$plugin_file" + +if test -n "$plugin_file"; then + plugin_option="--plugin $plugin_file" +else + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for -plugin option" >&5 +$as_echo_n "checking for -plugin option... " >&6; } + plugin_names="liblto_plugin.so liblto_plugin-0.dll cyglto_plugin-0.dll" +plugin_option= for plugin in $plugin_names; do plugin_so=`${CC} ${CFLAGS} --print-prog-name $plugin` if test x$plugin_so = x$plugin; then @@ -7101,7 +7360,119 @@ for plugin in $plugin_names; do break fi done +if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}ar", so it can be a program name with args. +set dummy ${ac_tool_prefix}ar; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_AR+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$AR"; then + ac_cv_prog_AR="$AR" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_AR="${ac_tool_prefix}ar" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +AR=$ac_cv_prog_AR +if test -n "$AR"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $AR" >&5 +$as_echo "$AR" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + +fi +if test -z "$ac_cv_prog_AR"; then + ac_ct_AR=$AR + # Extract the first word of "ar", so it can be a program name with args. +set dummy ar; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_ac_ct_AR+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$ac_ct_AR"; then + ac_cv_prog_ac_ct_AR="$ac_ct_AR" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_ac_ct_AR="ar" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +ac_ct_AR=$ac_cv_prog_ac_ct_AR +if test -n "$ac_ct_AR"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_AR" >&5 +$as_echo "$ac_ct_AR" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + if test "x$ac_ct_AR" = x; then + AR="" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + AR=$ac_ct_AR + fi +else + AR="$ac_cv_prog_AR" +fi +if test "${AR}" = "" ; then + as_fn_error $? "Required archive tool 'ar' not found on PATH." "$LINENO" 5 +fi +touch conftest.c +${AR} $plugin_option rc conftest.a conftest.c +if test "$?" != 0; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Failed: $AR $plugin_option rc" >&5 +$as_echo "$as_me: WARNING: Failed: $AR $plugin_option rc" >&2;} + plugin_option= +fi +rm -f conftest.* +if test -n "$plugin_option"; then + plugin_option="$plugin_option" + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $plugin_option" >&5 +$as_echo "$plugin_option" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + +fi if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}ar", so it can be a program name with args. set dummy ${ac_tool_prefix}ar; ac_word=$2 @@ -7196,17 +7567,15 @@ fi test -z "$AR" && AR=ar if test -n "$plugin_option"; then - if $AR --help 2>&1 | grep -q "\--plugin"; then - touch conftest.c - $AR $plugin_option rc conftest.a conftest.c - if test "$?" != 0; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Failed: $AR $plugin_option rc" >&5 -$as_echo "$as_me: WARNING: Failed: $AR $plugin_option rc" >&2;} - else + case "$AR" in + *"$plugin_option"*) + ;; + *) + if $AR --help 2>&1 | grep -q "\--plugin"; then AR="$AR $plugin_option" fi - rm -f conftest.* - fi + ;; + esac fi test -z "$AR_FLAGS" && AR_FLAGS=cru @@ -7413,9 +7782,15 @@ fi test -z "$RANLIB" && RANLIB=: if test -n "$plugin_option" && test "$RANLIB" != ":"; then - if $RANLIB --help 2>&1 | grep -q "\--plugin"; then - RANLIB="$RANLIB $plugin_option" - fi + case "$RANLIB" in + *"$plugin_option"*) + ;; + *) + if $RANLIB --help 2>&1 | grep -q "\--plugin"; then + RANLIB="$RANLIB $plugin_option" + fi + ;; + esac fi @@ -12280,7 +12655,7 @@ else lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 lt_status=$lt_dlunknown cat > conftest.$ac_ext <<_LT_EOF -#line 12283 "configure" +#line 12658 "configure" #include "confdefs.h" #if HAVE_DLFCN_H @@ -12386,7 +12761,7 @@ else lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 lt_status=$lt_dlunknown cat > conftest.$ac_ext <<_LT_EOF -#line 12389 "configure" +#line 12764 "configure" #include "confdefs.h" #if HAVE_DLFCN_H @@ -16048,7 +16423,7 @@ $as_echo "$glibcxx_cv_atomic_word" >&6; } # Fake what AC_TRY_COMPILE does. cat > conftest.$ac_ext << EOF -#line 16051 "configure" +#line 16426 "configure" #include "${glibcxx_srcdir}/config/$atomic_word_dir/atomic_word.h" int main() { @@ -16194,7 +16569,7 @@ $as_echo "mutex" >&6; } # unnecessary for this test. cat > conftest.$ac_ext << EOF -#line 16197 "configure" +#line 16572 "configure" int main() { _Decimal32 d1; @@ -16236,7 +16611,7 @@ ac_compiler_gnu=$ac_cv_cxx_compiler_gnu # unnecessary for this test. cat > conftest.$ac_ext << EOF -#line 16239 "configure" +#line 16614 "configure" template struct same { typedef T2 type; }; @@ -53544,7 +53919,7 @@ $as_echo "$glibcxx_cv_libbacktrace_atomics" >&6; } CXXFLAGS='-O0 -S' cat > conftest.$ac_ext << EOF -#line 53547 "configure" +#line 53922 "configure" #include int main() { @@ -54574,6 +54949,154 @@ ac_compiler_gnu=$ac_cv_c_compiler_gnu +# For std::print + + + ac_ext=cpp +ac_cpp='$CXXCPP $CPPFLAGS' +ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_cxx_compiler_gnu + + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether flockfile and putc_unlocked are defined in " >&5 +$as_echo_n "checking whether flockfile and putc_unlocked are defined in ... " >&6; } + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + + #include + +int +main () +{ + + FILE* f = ::fopen("", ""); + ::flockfile(f); + ::putc_unlocked(' ', f); + ::funlockfile(f); + ::fclose(f); + + ; + return 0; +} +_ACEOF +if ac_fn_cxx_try_compile "$LINENO"; then : + ac_stdio_locking=yes +else + ac_stdio_locking=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_stdio_locking" >&5 +$as_echo "$ac_stdio_locking" >&6; } + + if test "$ac_stdio_locking" = yes; then + +cat >>confdefs.h <<_ACEOF +#define _GLIBCXX_USE_STDIO_LOCKING 1 +_ACEOF + + + # This is not defined in POSIX, but is present in glibc, musl, and Solaris. + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether fwrite_unlocked is defined in " >&5 +$as_echo_n "checking whether fwrite_unlocked is defined in ... " >&6; } + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + + #include + +int +main () +{ + + FILE* f = ::fopen("", ""); + ::flockfile(f); + ::fwrite_unlocked("", 1, 1, f); + ::funlockfile(f); + ::fclose(f); + + ; + return 0; +} +_ACEOF +if ac_fn_cxx_try_compile "$LINENO"; then : + ac_fwrite_unlocked=yes +else + ac_fwrite_unlocked=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_fwrite_unlocked" >&5 +$as_echo "$ac_fwrite_unlocked" >&6; } + if test "$ac_fwrite_unlocked" = yes; then + +$as_echo "#define HAVE_FWRITE_UNLOCKED 1" >>confdefs.h + + + # Check for Glibc-specific FILE members and extensions. + case "${target_os}" in + gnu* | linux* | kfreebsd*-gnu | knetbsd*-gnu) + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for FILE::_IO_write_ptr and " >&5 +$as_echo_n "checking for FILE::_IO_write_ptr and ... " >&6; } + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + + #include + #include + extern "C" { + using f1_type = int (*)(FILE*) noexcept; + using f2_type = size_t (*)(FILE*) noexcept; + } + +int +main () +{ + + f1_type twritable = &::__fwritable; + f1_type tblk = &::__flbf; + f2_type pbufsize = &::__fbufsize; + FILE* f = ::fopen("", ""); + int i = ::__overflow(f, EOF); + bool writeable = ::__fwritable(f); + bool line_buffered = ::__flbf(f); + size_t bufsz = ::__fbufsize(f); + char*& pptr = f->_IO_write_ptr; + char*& epptr = f->_IO_buf_end; + ::fflush_unlocked(f); + ::fclose(f); + + ; + return 0; +} +_ACEOF +if ac_fn_cxx_try_compile "$LINENO"; then : + ac_glibc_stdio=yes +else + ac_glibc_stdio=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_glibc_stdio" >&5 +$as_echo "$ac_glibc_stdio" >&6; } + if test "$ac_glibc_stdio" = yes; then + +cat >>confdefs.h <<_ACEOF +#define _GLIBCXX_USE_GLIBC_STDIO_EXT 1 +_ACEOF + + fi + ;; + *) + ;; + esac + fi + fi + + ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu + + + # Define documentation rules conditionally. # See if makeinfo has been installed and is modern enough diff --git a/libstdc++-v3/configure.ac b/libstdc++-v3/configure.ac index 0bf219174fe7..47813eb95ca6 100644 --- a/libstdc++-v3/configure.ac +++ b/libstdc++-v3/configure.ac @@ -590,6 +590,9 @@ GLIBCXX_CHECK_TEXT_ENCODING # For std::is_debugger_present GLIBCXX_CHECK_DEBUGGING +# For std::print +GLIBCXX_CHECK_STDIO_LOCKING + # Define documentation rules conditionally. # See if makeinfo has been installed and is modern enough diff --git a/libstdc++-v3/configure.host b/libstdc++-v3/configure.host index 87a1822c661a..ff97216167de 100644 --- a/libstdc++-v3/configure.host +++ b/libstdc++-v3/configure.host @@ -210,10 +210,10 @@ cpu_opt_ext_random=cpu/generic/opt/bits/opt_random.h # Set any OS-dependent bits. # Set the os_include_dir. -# Set the error_costants_dir. +# Set the error_constants_dir. # Set c_model, c_compatibility here. # If atomic ops and/or numeric limits are OS-specific rather than -# CPU-specifc, set those here too. +# CPU-specific, set those here too. # THIS TABLE IS SORTED. KEEP IT THAT WAY. case "${host_os}" in aix[56789]*) diff --git a/libstdc++-v3/doc/Makefile.in b/libstdc++-v3/doc/Makefile.in index c19e3e3044c8..6e7a5a0f9084 100644 --- a/libstdc++-v3/doc/Makefile.in +++ b/libstdc++-v3/doc/Makefile.in @@ -91,8 +91,10 @@ target_triplet = @target@ subdir = doc ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/../config/acx.m4 \ + $(top_srcdir)/../config/clang-plugin.m4 \ $(top_srcdir)/../config/enable.m4 \ $(top_srcdir)/../config/futex.m4 \ + $(top_srcdir)/../config/gcc-plugin.m4 \ $(top_srcdir)/../config/hwcaps.m4 \ $(top_srcdir)/../config/iconv.m4 \ $(top_srcdir)/../config/lead-dot.m4 \ @@ -222,6 +224,7 @@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LIPO = @LIPO@ +LLVM_CONFIG = @LLVM_CONFIG@ LN_S = @LN_S@ LONG_DOUBLE_128_FLAGS = @LONG_DOUBLE_128_FLAGS@ LONG_DOUBLE_ALT128_COMPAT_FLAGS = @LONG_DOUBLE_ALT128_COMPAT_FLAGS@ diff --git a/libstdc++-v3/doc/html/manual/index.html b/libstdc++-v3/doc/html/manual/index.html index 816a87a291cb..fb61205678f2 100644 --- a/libstdc++-v3/doc/html/manual/index.html +++ b/libstdc++-v3/doc/html/manual/index.html @@ -145,7 +145,7 @@
21.10. Non-unique Mapping Containers
21.11. Point Iterator Hierarchy
21.12. Invalidation Guarantee Tags Hierarchy
21.13. Container Tag Hierarchy
21.14. Hash functions, ranged-hash functions, and range-hashing functions
21.15. Insert hash sequence diagram
21.16. Insert hash sequence diagram with a null policy
21.17. Hash policy class diagram
21.18. Balls and bins
21.19. Insert resize sequence diagram
21.20. Standard resize policy trigger sequence diagram
21.21. Standard resize policy size sequence - diagram
21.22. Tree node invariants
21.23. Tree node invalidation
21.24. A tree and its update policy
21.25. Restoring node invariants
21.26. Insert update sequence
21.27. Useless update path
21.28. A PATRICIA trie
21.29. A trie and its update policy
21.30. A simple list
21.31. The counter algorithm
21.32. Underlying Priority-Queue Data-Structures.
21.33. Priority-Queue Data-Structure Tags.
B.1. Configure and Build File Dependencies

List of Tables

1.1. C++ 1998/2003 Implementation Status
1.2. C++ 2011 Implementation Status
1.3. C++ 2014 Implementation Status
1.4. C++ Technical Specifications Implementation Status
1.5. C++ 2017 Library Features
1.6. C++ 2017 Implementation Status
1.7. C++ Technical Specifications Implementation Status
1.8. Support for Extended ABI Tags
1.9. C++ 2020 Library Features
1.10. C++ 2023 Library Features
1.11. C++ TR1 Implementation Status
1.12. C++ TR 24733 Implementation Status
1.13. C++ Special Functions Implementation Status
3.1. C++ Command Options
3.2. C++ 1998 Library Headers
3.3. C++ 1998 Library Headers for C Library Facilities
3.4. C++ 1998 Deprecated Library Header
3.5. C++ 2011 Library Headers
3.6. C++ 2011 Library Headers for C Library Facilities
3.7. C++ 2014 Library Header
3.8. C++ 2017 Library Headers
3.9. C++ 2020 Library Headers
3.10. C++ 2020 Obsolete Headers
3.11. C++ 2023 Library Headers
3.12. C++ 2026 Library Headers
3.13. File System TS Header
3.14. Library Fundamentals TS Headers
3.15. Networking TS Headers
3.16. C++ TR 1 Library Headers
3.17. C++ TR 1 Library Headers for C Library Facilities
3.18. C++ TR 24733 Decimal Floating-Point Header
3.19. C++ ABI Headers
3.20. Extension Headers
3.21. Extension Debug Headers
3.22. Extension Parallel Headers
17.1. Debugging Containers
17.2. Debugging Containers C++11
18.1. Parallel Algorithms
20.1. Bitmap Allocator Memory Map
B.1. Doxygen Prerequisites
B.2. HTML to Doxygen Markup Comparison
B.3. Docbook Prerequisites
B.4. HTML to Docbook XML Markup Comparison
B.5. Docbook XML Element Use
B.6. Extension Allocators
B.7. Extension Allocators Continued

List of Tables

1.1. C++ 1998/2003 Implementation Status
1.2. C++ 2011 Implementation Status
1.3. C++ 2014 Implementation Status
1.4. C++ Technical Specifications Implementation Status
1.5. C++ 2017 Library Features
1.6. C++ 2017 Implementation Status
1.7. C++ Technical Specifications Implementation Status
1.8. Support for Extended ABI Tags
1.9. C++ 2020 Library Features
1.10. C++ 2020 Implementation Status
1.11. C++ 2023 Library Features
1.12. C++ TR1 Implementation Status
1.13. C++ TR 24733 Implementation Status
1.14. C++ Special Functions Implementation Status
3.1. C++ Command Options
3.2. C++ 1998 Library Headers
3.3. C++ 1998 Library Headers for C Library Facilities
3.4. C++ 1998 Deprecated Library Header
3.5. C++ 2011 Library Headers
3.6. C++ 2011 Library Headers for C Library Facilities
3.7. C++ 2014 Library Header
3.8. C++ 2017 Library Headers
3.9. C++ 2020 Library Headers
3.10. C++ 2020 Obsolete Headers
3.11. C++ 2023 Library Headers
3.12. C++ 2026 Library Headers
3.13. File System TS Header
3.14. Library Fundamentals TS Headers
3.15. Networking TS Headers
3.16. C++ TR 1 Library Headers
3.17. C++ TR 1 Library Headers for C Library Facilities
3.18. C++ TR 24733 Decimal Floating-Point Header
3.19. C++ ABI Headers
3.20. Extension Headers
3.21. Extension Debug Headers
3.22. Extension Parallel Headers
17.1. Debugging Containers
17.2. Debugging Containers C++11
18.1. Parallel Algorithms
20.1. Bitmap Allocator Memory Map
B.1. Doxygen Prerequisites
B.2. HTML to Doxygen Markup Comparison
B.3. Docbook Prerequisites
B.4. HTML to Docbook XML Markup Comparison
B.5. Docbook XML Element Use
B.6. Extension Allocators
B.7. Extension Allocators Continued

List of Equations

21.1. Ranged Hash Function
21.2. Range-Hashing, Division Method
21.3. Division via Prime Modulo
21.4. Division via Bit Mask
21.5. A Standard String Hash Function
21.6. Only k String DNA Hash diff --git a/libstdc++-v3/doc/html/manual/status.html b/libstdc++-v3/doc/html/manual/status.html index 164faebbf371..64a484082689 100644 --- a/libstdc++-v3/doc/html/manual/status.html +++ b/libstdc++-v3/doc/html/manual/status.html @@ -970,7 +970,7 @@ 28 Algorithms - 28.1General  28.2Header <algorithm> synopsis  28.3Algorithms requirements  28.4Parallel algorithms Using PSTL28.5Non-modifying sequence operationsY 28.6Mutating sequence operationsY 28.7Sorting and related operationsY 28.8C library algorithmsY  + 28.1General  28.2Header <algorithm> synopsis  28.3Algorithms requirements  28.4Parallel algorithms Uses code from oneDPL28.5Non-modifying sequence operationsY 28.6Mutating sequence operationsY 28.7Sorting and related operationsY 28.8C library algorithmsY  29 Numerics @@ -1759,7 +1759,101 @@ Note 2: The C++20 calendar types are supported since 11.1, time zones and UTC are supported since 13.1, and chrono::parse is supported since 14.1. -

Implementation Specific Behavior

For behaviour which is also specified by previous standards, +

+The following status table is based on the table of contents of +ISO/IEC 14882:2020. +Some subclauses are not shown in the table where the content is unchanged +since C++17 and the implementation is complete. +

Table 1.10. C++ 2020 Implementation Status

SectionDescriptionStatusComments
+ 17 + + Language support library +
17.1General  
17.2Common definitions  
17.2.1Header <cstddef> synopsisY 
17.2.2Header <cstdlib> synopsisY 
17.2.3Null pointersY 
17.2.4Sizes, alignments, and offsetsY 
17.2.5byte type operationsY 
17.3Implementation properties  
17.3.1General  
17.3.2Header <version> synopsisY 
17.3.3Header <limits> synopsisY 
17.3.4Floating-point type properties  
17.3.4.1Type float_round_styleN 
17.3.4.2Type float_denorm_styleN 
17.3.5Class template numeric_limitsY 
17.3.6Header <climits> synopsisY 
17.3.7Header <cfloat> synopsisY 
17.4Integer types  
17.4.1General  
17.4.2Header <cstdint> synopsisY 
17.5Startup and terminationPartialC library dependency for quick_exit, at_quick_exit
17.6Dynamic memory managementY 
17.7Type identificationY 
17.8Source location  
17.8.1Header <source_location> synopsisY 
17.8.2Class source_locationY 
17.9Exception handlingY 
17.10Initializer listsY 
17.11Comparisons  
17.11.1Header <compare> synopsisY 
17.11.2Comparison category typesY 
17.11.3Class template common_comparison_categoryY 
17.11.4Concept three_way_comparableY 
17.11.5Result of three-way comparisonY 
17.11.6Comparison algorithmsY 
17.12Coroutines  
17.12.1General  
17.12.2Header <coroutine> synopsisY 
17.12.3Coroutine traitsY 
17.12.4Class template coroutine_handleY 
17.12.5No-op coroutinesY 
17.13Other runtime supportY 
+ 18 + + Concepts library +
18.1General  
18.2Equality preservation  
18.3Header <concepts> synopsisY 
18.4Language-related concepts  
18.4.1General  
18.4.2Concept same_asY 
18.4.3Concept derived_fromY 
18.4.4Concept convertible_toY 
18.4.5Concept common_reference_withY 
18.4.6Concept common_withY 
18.4.7Arithmetic concepts  
18.4.8Concept assignable_fromY 
18.4.9Concept swappableY 
18.4.10Concept destructibleY 
18.4.11Concept constructible_fromY 
18.4.12Concept default_initializableY 
18.4.13Concept move_constructibleY 
18.4.14Concept copy_constructibleY 
18.5Comparison concepts  
18.5.1General  
18.5.2Boolean testabilityY 
18.5.3Concept equality_comparableY 
18.5.4Concept totally_orderedY 
18.6Object conceptsY 
18.7Callable concepts  
18.7.1General  
18.7.2Concept invocableY 
18.7.3Concept regular_invocableY 
18.7.4Concept predicateY 
18.7.5Concept relationY 
18.7.6Concept equivalence_relationY 
18.7.7Concept strict_weak_orderY 
+ 19 + + Diagnostics library +
19.1General  
19.2Exception classesY 
19.3AssertionsY 
19.4Error numbersY 
19.5System error support  
19.5.1General  
19.5.2Header <system_error> synopsisY 
19.5.3Class error_categoryY 
19.5.4Class error_codeY 
19.5.5Class error_conditionY 
19.5.6Comparison operator functionsY 
19.5.7System error hash supportY 
19.5.8Class system_errorY 
+ 20 + + General utilities library +
20.1General  
20.2Utility components  
20.2.1Header <utility> synopsisY 
20.2.2swapY 
20.2.3exchangeY 
20.2.4Forward/move helpersY 
20.2.5Function template as_constY 
20.2.6Function template declvalY 
20.2.7Integer comparison functionsY 
20.3Compile-time integer sequencesY 
20.4PairsY 
20.5TuplesY 
20.6Optional objectsY 
20.7VariantsY 
20.8Storage for any typeY 
20.9BitsetsY 
20.10MemoryY 
20.11Smart pointers  
20.11.1Class template unique_ptrY 
20.11.2Class bad_weak_ptrY 
20.11.3Class template shared_ptrYUses code from boost::shared_ptr.
20.11.4Class template weak_ptrY 
20.11.5Class template owner_lessY 
20.11.6Class template enable_shared_from_thisY 
20.11.7Smart pointer hash supportY 
20.12Memory resources  
20.12.1Header <memory_resource> synopsisY 
20.12.2Class memory_resourceY 
20.12.3Class template polymorphic_allocatorY 
20.12.4Access to program-wide memory_resource objectsY 
20.12.5Pool resource classesY 
20.12.6Class monotonic_buffer_resourceY 
20.13Class template scoped_allocator_adaptorY 
20.14Function objects  
20.14.1General  
20.14.2Header <functional> synopsisY 
20.14.3Definitions  
20.14.4Requirements  
20.14.5Function template invokeY 
20.14.6Class template reference_wrapperY 
20.14.7Arithmetic operationsY 
20.14.8ComparisonsY 
20.14.9Concept-constrained comparisonsY 
20.14.10Logical operationsY 
20.14.11Bitwise operationsY 
20.14.12Class identityY 
20.14.13Function template not_fnY 
20.14.14Function template bind_frontY 
20.14.15Function object bindersY 
20.14.16Function template mem_fnY 
20.14.17Polymorphic function wrappers  
20.14.17.1General  
20.14.17.2Class bad_function_callY 
20.14.17.3Class template functionY 
20.14.18SearchersY 
20.15Metaprogramming and type traits  
20.15.1General  
20.15.2RequirementsY 
20.15.3Header <type_traits> synopsisY 
20.15.4Helper classesY 
20.15.5Unary type traitsY 
20.15.6Type property queriesY 
20.15.7Relationships between typesY 
20.15.8Transformations between typesY 
20.15.9Logical operator traitsY 
20.15.10Member relationshipsY 
20.15.11Constant evaluation contextY 
20.16Compile-time rational arithmeticY 
20.17Class type_indexY 
20.18Execution policiesY 
20.19Primitive numeric conversions  
20.19.1Header <charconv> synopsisY 
20.19.2Primitive numeric output conversionY + Floating-point types up to 64-bit are formatted using + Ryu. + Types with greater precision are formatted using the C library + (sprintf and conditionally + strfromf128). + For powerpc64le-unknown-linux-gnu __sprintfieee128 + must be provided by Glibc. +
20.19.3Primitive numeric input conversionY + Floating-point types up to 64-bit are parsed using + fast_float. + Types with greater precision are parsed using the C library + (strtold). + For powerpc64le-unknown-linux-gnu __strtoieee128 + must be provided by Glibc. +
20.20Formatting  
20.20.1Header <format> synopsisY 
20.20.2Format string  
20.20.2.1 In generalY 
20.20.2.2Standard format specifiersY 
20.20.3Error reportingY 
20.20.4Formatting functionsY 
20.20.5FormatterY 
20.20.5.1Formatter requirements  
20.20.5.2Formatter specializationsY 
20.20.5.3Class template basic_format_parse_contextY 
20.20.5.4Class template basic_format_contextY 
20.20.6Arguments  
20.20.6.1Class template basic_format_argY 
20.20.6.2Class template format-arg-storeY 
20.20.6.3Class template basic_format_argsY 
20.20.7Class format_errorY 
+ 21 + + Strings library +
21.1General  
21.2Character traitsY 
21.3String classesY 
21.4String view classesY 
21.5Null-terminated sequence utilitiesPartialC library dependency.
+ 22 + + Containers library +
22.1General  
22.2Container requirementsY 
22.3Sequence containersY 
22.4Associative containersY 
22.5Unordered associative containersY 
22.6Container adaptorsY 
22.7Views  
22.7.1General  
22.7.2Header <span> synopsisY 
22.7.3Class template spanY 
+ 23 + + Iterators library +
23.1General  
23.2Header <iterator> synopsisY 
23.3Iterator requirements  
23.3.1In generalY 
23.3.2Associated typesY 
23.3.3Customization pointsY 
23.3.4Iterator conceptsY 
23.3.5C++17 iterator requirementsY 
23.3.6Indirect callable requirementsY 
23.3.7Common algorithm requirementsY 
23.4Iterator primitives  
23.4.1General  
23.4.2Standard iterator tagsY 
23.4.3Iterator operationsY 
23.4.4Range iterator operationsY 
23.5Iterator adaptors  
23.5.1Reverse iteratorsY 
23.5.2Insert iteratorsY 
23.5.3Move iterators and sentinelsY 
23.5.4Common iteratorsY 
23.5.5Default sentinelY 
23.5.6Counted iteratorsY 
23.5.7 Unreachable sentinelY 
23.6 Stream iteratorsY 
23.6.1General  
23.6.2 Class template istream_iteratorY 
23.6.3Class template ostream_iteratorY 
23.6.4Class template istreambuf_iteratorY 
23.6.5Class template ostreambuf_iteratorY 
23.7Range accessY 
+ 24 + + Ranges library +
24.1General  
24.2Header <ranges> synopsisY 
24.3Range accessY 
24.4Range requirements  
24.4.1General  
24.4.2RangesY 
24.4.3Sized rangesY 
24.4.4ViewsY 
24.4.5Other range refinementsY 
24.5Range utilities  
24.5.1General  
24.5.2Helper conceptsY 
24.5.3View interfaceY 
24.5.4Sub-rangesY 
24.5.5Dangling iterator handlingY 
24.6Range factories  
24.6.1General  
24.6.2Empty viewY 
24.6.3Single viewY 
24.6.4Iota viewY 
24.6.5Istream viewY 
24.7Range adaptors  
24.7.1General  
24.7.2Range adaptor objectsY 
24.7.3Semiregular wrapperY 
24.7.4All viewY 
24.7.5Filter viewY 
24.7.6Transform viewY 
24.7.7Take viewY 
24.7.8Take while viewY 
24.7.9Drop viewY 
24.7.10Drop while viewY 
24.7.11Join viewY 
24.7.12Split viewY 
24.7.13Counted viewY 
24.7.14Common viewY 
24.7.15Reverse viewY 
24.7.16Elements viewY 
+ 25 + + Algorithms library +
25.1General  
25.2Algorithms requirementsY 
25.3Parallel algorithms Uses code from oneDPL
25.4Header <algorithm> synopsisY 
25.5Algorithm result typesY 
25.6Non-modifying sequence operations  
25.6.1All ofY 
25.6.2Any ofY 
25.6.3None ofY 
25.6.4For eachY 
25.6.5FindY 
25.6.6Find endY 
25.6.7Find firstY 
25.6.8Adjacent findY 
25.6.9CountY 
25.6.10MismatchY 
25.6.11EqualY 
25.6.12Is permutationY 
25.6.13SearchY 
25.7Mutating sequence operations  
25.7.1CopyY 
25.7.2MoveY 
25.7.3SwapY 
25.7.4TransformY 
25.7.5ReplaceY 
25.7.6FillY 
25.7.7GenerateY 
25.7.8RemoveY 
25.7.9UniqueY 
25.7.10ReverseY 
25.7.11RotateY 
25.7.12SampleY 
25.7.13ShuffleY 
25.7.14ShiftY 
25.8Sorting and related operations  
25.8.1GeneralY 
25.8.2SortingY 
25.8.3Nth elementY 
25.8.4Binary searchY 
25.8.5PartitionsY 
25.8.6MergeY 
25.8.7Set operations on sorted structuresY 
25.8.8Heap operationsY 
25.8.9Minimum and maximumY 
25.8.10Bounded valueY 
25.8.11Lexicographical comparisonY 
25.8.12Three-way comparison algorithmsY 
25.8.13Permutation generatorsY 
25.9Header <numeric> synopsisY 
25.10Generalized numeric operations  
25.10.1General  
25.10.2Definitions  
25.10.3AccumulateY 
25.10.4ReduceY 
25.10.5Inner productY 
25.10.6Transform reduceY 
25.10.7Partial sumY 
25.10.8Exclusive scanY 
25.10.9Inclusive scanY 
25.10.10Transform exclusive scanY 
25.10.11Transform inclusive scanY 
25.10.12Adjacent differenceY 
25.10.13IotaY 
25.10.14Greatest common divisorY 
25.10.15Least common multipleY 
25.10.16MidpointY 
25.11Specialized <memory> algorithms  
25.11.1General  
25.11.2Special memory conceptsY 
25.11.3uninitialized_default_constructY 
25.11.4uninitialized_value_constructY 
25.11.5uninitialized_copyY 
25.11.6uninitialized_moveY 
25.11.7uninitialized_fillY 
25.11.8construct_atY 
25.11.9destroyY 
25.12C library algorithmsY 
+ 26 + + Numerics library +
26.1General  
26.2Numeric type requirementsY 
26.3The floating-point environmentY 
26.4Complex numbersY 
26.5Bit manipulation  
26.5.1General  
26.5.2Header <bit> synopsisY 
26.5.3Function template bit_castY 
26.5.4Integral powers of 2Y 
26.5.5RotatingY 
26.5.6CountingY 
26.5.7EndianY 
26.6Random number generationY 
26.7Numeric arraysY 
26.8Mathematical functions for floating-point typesY 
26.9Numbers  
26.9.1Header <numbers> synopsisY 
26.9.2Mathematical constantsY 
+ 27 + + Time library +
27.1General  
27.2Header <chrono> synopsisY 
27.3Cpp17Clock requirementsY 
27.4Time-related traits  
27.4.1treat_as_floating_pointY 
27.4.2duration_valuesY 
27.4.3Specializations of common_typeY 
27.4.4Class template is_clockY 
27.5Class template duration  
27.5.1GeneralY 
27.5.2ConstructorsY 
27.5.3ObserverY 
27.5.4ArithmeticY 
27.5.5Special valuesY 
27.5.6Non-member arithmeticY 
27.5.7ComparisonsY 
27.5.8ConversionsY 
27.5.9Suffixes for duration literalsY 
27.5.10AlgorithmsY 
27.5.11I/OY 
27.6Class template time_pointY 
27.7Clocks  
27.7.1GeneralY 
27.7.2Class system_clockY 
27.7.3Class utc_clockY 
27.7.4Class tai_clockY 
27.7.5Class gps_clockY 
27.7.6Type file_clockY 
27.7.7Class steady_clockY 
27.7.8Class high_resolution_clockY 
27.7.9Local timeY 
27.7.10time_point conversionsY 
27.8The civil calendar  
27.8.1In general  
27.8.2Class last_specY 
27.8.3Class dayY 
27.8.4Class monthY 
27.8.5Class yearY 
27.8.6Class weekdayY 
27.8.7Class weekday_indexedY 
27.8.8Class weekday_lastY 
27.8.9Class month_dayY 
27.8.10Class month_day_lastY 
27.8.11Class month_weekdayY 
27.8.12Class month_weekday_lastY 
27.8.13Class year_monthY 
27.8.14Class year_month_dayY 
27.8.15Class year_month_day_lastY 
27.8.16Class year_month_weekdayY 
27.8.17Class year_month_weekday_lastY 
27.9Class template hh_mm_ssY 
27.1012/24 hours functionsY 
27.11Time zones  
27.11.1In general  
27.11.2Time zone databaseY 
27.11.3Exception classesY 
27.11.4Information classesY 
27.11.5Class time_zoneY 
27.11.6Class template zoned_traitsY 
27.11.7Class template zoned_timeY 
27.11.8Class leap_secondY 
27.11.9Class time_zone_linkY 
27.12FormattingY 
27.13ParsingY 
27.14Header <ctime> synopsisY 
+ 28 + + Localization library +
28.1General  
28.2Header <locale> synopsisY 
28.3Locales  
28.3.1Class localeY 
28.3.2locale globalsY 
28.3.3Convenience interfaces  
28.3.3.1Character classificationY 
28.3.3.2Character conversionsY 
28.4Standard locale categories  
28.4.1General  
28.4.2The ctype categoryY 
28.4.3The numeric categoryY 
28.4.4The numeric punctuation facetY 
28.4.5The collate categoryY 
28.4.6The time categoryY 
28.4.7The monetary categoryY 
28.4.8The message retrieval categoryY 
28.5C library localesY 
+ 29 + + Input/output library +
29.1 GeneralY 
29.2Iostreams requirements  
29.2.1Imbue limitationsY 
29.2.2Positioning type limitationsY 
29.2.3Thread safetyPartial 
29.3Forward declarationsY 
29.4Standard iostream objectsY 
29.5Iostreams base classesY 
29.6Stream buffersY 
29.7Formatting and manipulatorsY 
29.8String-based streamsY 
29.9File-based streamsY 
29.10Synchronized output streams  
29.10.1Header <syncstream> synopsisY 
29.10.2Class template basic_syncbufY 
29.10.3Class template basic_osyncstreamY 
29.11File systems  
29.11.1General  
29.11.2ConformanceY 
29.11.3RequirementsY 
29.11.4Header <filesystem> synopsisY 
29.11.5Error reportingY 
29.11.6Class pathY 
29.11.7Class filesystem_errorY 
29.11.8Enumerations  
29.11.8.1Enum path::formatY 
29.11.8.2Enum class file_typeY 
29.11.8.3Enum class copy_optionsY 
29.11.8.4Enum class permsY 
29.11.8.5Enum class perm_optionsY 
29.11.8.6Enum class directory_optionsY 
29.11.9Class file_statusY 
29.11.10Class directory_entryY 
29.11.11Class directory_iteratorY 
29.11.12Class recursive_directory_iteratorY 
29.11.13Filesystem operation functionsY 
29.12C library files  
29.12.1Header <cstdio> synopsisY 
29.12.2Header <cinttypes> synopsisY 
+ 30 + + Regular expressions library +
30.1GeneralY 
30.2RequirementsY 
30.3Header <regex> synopsisY 
30.4Namespace std::regex_constantsY 
30.5Class regex_errorY 
30.6Class template regex_traitsPartialtransform_primary is not correctly implemented
30.7Class template basic_regexY 
30.8Class template sub_matchY 
30.9Class template match_resultsY 
30.10Regular expression algorithmsY 
30.11Regular expression iteratorsY 
30.12Modified ECMAScript regular expression grammarY 
+ 31 + + Atomics library +
31.1GeneralY 
31.2Header <atomic> synopsisY 
31.3Type aliasesY 
31.4Order and consistencyY 
31.5Lock-free propertyY 
31.6Waiting and notifyingPartialWaiting and notifying is not supported for volatile objects.
31.7Class template atomic_ref  
31.7.1GeneralY 
31.7.2OperationsPartial + volatile-qualified overloads for wait, + notify_one, and notify_all are not provided. +
31.7.3Specializations for integral typesY 
31.7.4Specializations for floating-point typesY 
31.7.5Partial specialization for pointersY 
31.8Class template atomic  
31.8.1GeneralY 
31.8.2Operations on atomic typesPartialWaiting and notifying is not supported for volatile objects.
31.8.3Specializations for integersY 
31.8.4Specializations for floating-point typesY 
31.8.5Partial specialization for pointersY 
31.8.6Member operators common to integers and pointers to objectsY 
31.8.7Partial specializations for smart pointers  
31.8.7.1GeneralY 
31.8.7.2Partial specialization for shared_ptrY 
31.8.7.3Partial specialization for weak_ptrY 
31.9Non-member functionsY 
31.10Flag type and operationsY 
31.11FencesY 
+ 32 + + Threads library +
32.1GeneralY 
32.2RequirementsY 
32.3Stop tokens  
32.3.1IntroductionY 
32.3.2Header <stop_token> synopsisY 
32.3.3Class stop_tokenY 
32.3.4Class stop_sourceY 
32.3.5Class template stop_callbackY 
32.4Threads  
32.4.1General  
32.4.2Header <thread> synopsisY 
32.4.3Class threadPartialthread::id comparisons not well-defined
32.4.4Class jthreadY 
32.4.5Namespace this_threadY 
32.5Mutual exclusion  
32.5.1General  
32.5.2Header <mutex> synopsis  
32.5.3Header <shared_mutex> synopsis  
32.5.4Mutex requirements  
32.5.4.1In general  
32.5.4.2Mutex typesY 
32.5.4.3Timed mutex typesY 
32.5.4.4Shared mutex typesY 
32.5.4.5Shared timed mutex typesY 
32.5.5LocksY 
32.5.6Generic locking algorithmsY 
32.5.7Call once  
32.5.7.1Struct once_flagY 
32.5.7.2Function call_oncePartialException support is broken. + See PR + 66146. +
32.6Condition variablesY 
32.7SemaphoreY 
32.7.1General  
32.7.2Header <semaphore> synopsisY 
32.7.3Class template counting_semaphoreY 
32.8Coordination types  
32.8.1General  
32.8.2Latches  
32.8.2.1General  
32.8.2.2Header <latch> synopsisY 
32.8.2.3Class latchY 
32.8.3Barriers  
32.8.3.1General  
32.8.3.2Header <barrier> synopsisY 
32.8.3.3Class template barrierY 
32.9FuturesY 
+ Appendix D + + Compatibility features +
D.10C headers  
D.10.1GeneralY 
D.10.2Header <complex.h> synopsisY 
D.10.3Header <iso646.h> synopsisY 
D.10.4Header <stdalign.h> synopsisY 
D.10.5Header <stdbool.h> synopsisY 
D.10.6Header <tgmath.h> synopsisY 
D.10.7Other C headersY 
D.12Relational operatorsY 
D.13char* streamsY 
D.13.1Header <strstream> synopsisY 
D.13.2Class strstreambufY 
D.13.3Class istrstreamY 
D.13.4Class ostrstreamY 
D.13.5Class strstreamY 
D.14Deprecated type traitsY 
D.15TupleY 
D.16VariantY 
D.17Deprecated iterator class templateY 
D.18Deprecated move_iterator accessY 
D.19Deprecated shared_ptr atomic accessY 
D.20Deprecated basic_string capacityY 
D.21Deprecated standard code conversion facets  
D.21.1GeneralY 
D.21.2Header <codecvt> synopsisY 
D.21.3RequirementsY 
D.22Deprecated convenience conversion interfaces  
D.22.1GeneralY 
D.22.2Class template wstring_convertY 
D.22.3Class template wbuffer_convertY 
D.23Deprecated locale category facetsY 
D.24Deprecated filesystem path factory functionsY 
D.25Deprecated atomic operations  
D.25.1GeneralY 
D.25.2Volatile accessY 
D.25.3Non-member functionsY 
D.25.4Operations on atomic typesY 
D.25.5Flag type and operationsY 

Implementation Specific Behavior

For behaviour which is also specified by previous standards, see C++ 1998/2003 Implementation Specific Behavior, C++ 2011 Implementation Specific Behavior, and @@ -1840,7 +1934,7 @@ SD-6: Feature-testing recommendations for C++ (where applicable) or any notes about the implementation. -

Table 1.10. C++ 2023 Library Features

Library FeatureProposalStatusSD-6 Feature Test / Notes
+

Table 1.11. C++ 2023 Library Features

Library FeatureProposalStatusSD-6 Feature Test / Notes
Ranges and Views
Range constructor for std::string_view @@ -2320,7 +2414,7 @@

This page describes the TR1 support in mainline GCC, not in any particular release. -

Table 1.11. C++ TR1 Implementation Status

SectionDescriptionStatusComments
2General Utilities
2.1Reference wrappers  
2.1.1Additions to header <functional> synopsisY 
2.1.2Class template reference_wrapper  
2.1.2.1reference_wrapper construct/copy/destroyY 
2.1.2.2reference_wrapper assignmentY 
2.1.2.3reference_wrapper accessY 
2.1.2.4reference_wrapper invocationY 
2.1.2.5reference_wrapper helper functionsY 
2.2Smart pointers  
2.2.1Additions to header <memory> synopsisY 
2.2.2Class bad_weak_ptrY 
2.2.3Class template shared_ptr  +

Table 1.12. C++ TR1 Implementation Status

SectionDescriptionStatusComments
2General Utilities
2.1Reference wrappers  
2.1.1Additions to header <functional> synopsisY 
2.1.2Class template reference_wrapper  
2.1.2.1reference_wrapper construct/copy/destroyY 
2.1.2.2reference_wrapper assignmentY 
2.1.2.3reference_wrapper accessY 
2.1.2.4reference_wrapper invocationY 
2.1.2.5reference_wrapper helper functionsY 
2.2Smart pointers  
2.2.1Additions to header <memory> synopsisY 
2.2.2Class bad_weak_ptrY 
2.2.3Class template shared_ptr 

Uses code from boost::shared_ptr. @@ -2341,7 +2435,7 @@

This page describes the TR 24733 support in mainline GCC, not in any particular release. -

Table 1.12. C++ TR 24733 Implementation Status

SectionDescriptionStatusComments
+

Table 1.13. C++ TR 24733 Implementation Status

SectionDescriptionStatusComments
0 Introduction @@ -2381,7 +2475,7 @@ hypergeometric functions and confluent hypergeometric functions from TR1 are also provided, defined in namespace __gnu_cxx. -

Table 1.13. C++ Special Functions Implementation Status

SectionDescriptionStatusComments
7Macro namesPartialNo diagnostic for inconsistent definitions of +

Table 1.14. C++ Special Functions Implementation Status

SectionDescriptionStatusComments
7Macro namesPartialNo diagnostic for inconsistent definitions of __STDCPP_WANT_MATH_SPEC_FUNCS__
8Mathematical special functionsY 
8.1Additions to header <cmath> synopsisY 
8.1.1associated Laguerre polynomialsY 
8.1.2associated Legendre functionsY 
8.1.3beta functionY 
8.1.4(complete) elliptic integral of the first kindY 
8.1.5(complete) elliptic integral of the second kindY 
8.1.6(complete) elliptic integral of the third kindY 
8.1.7regular modified cylindrical Bessel functionsY 
8.1.8cylindrical Bessel functions (of the first kind)Y 
8.1.9irregular modified cylindrical Bessel functionsY 
8.1.10cylindrical Neumann functionsY 
8.1.11(incomplete) elliptic integral of the first kindY 
8.1.12(incomplete) elliptic integral of the second kindY 
8.1.13(incomplete) elliptic integral of the third kindY 
8.1.14exponential integralY 
8.1.15Hermite polynomialsY 
8.1.16Laguerre polynomialsY 
8.1.17Legendre polynomialsY 
8.1.18Riemann zeta functionY 
8.1.19spherical Bessel functions (of the first kind)Y 
8.1.20spherical associated Legendre functionsY 
8.1.21spherical Neumann functionsY 
8.2Additions to header <math.h>Y 
8.3The header <ctgmath>PartialConflicts with C++ 2011 requirements.
8.4The header <tgmath.h>NConflicts with C++ 2011 requirements.

Implementation Specific Behavior

For behaviour which is specified by the 2011 standard, see C++ 2011 Implementation Specific Behavior. This section documents behaviour which diff --git a/libstdc++-v3/doc/xml/manual/status_cxx2017.xml b/libstdc++-v3/doc/xml/manual/status_cxx2017.xml index 253aa4832aa9..9c13caa084b1 100644 --- a/libstdc++-v3/doc/xml/manual/status_cxx2017.xml +++ b/libstdc++-v3/doc/xml/manual/status_cxx2017.xml @@ -1896,7 +1896,7 @@ since C++14 and the implementation is complete. 28.4 Parallel algorithms - Using PSTL + Uses code from oneDPL 28.5 diff --git a/libstdc++-v3/doc/xml/manual/status_cxx2020.xml b/libstdc++-v3/doc/xml/manual/status_cxx2020.xml index 9cee44fd438c..a1d3843abeff 100644 --- a/libstdc++-v3/doc/xml/manual/status_cxx2020.xml +++ b/libstdc++-v3/doc/xml/manual/status_cxx2020.xml @@ -1453,6 +1453,4421 @@ time zones and UTC are supported since 13.1, and chrono::parse is supported since 14.1. + +The following status table is based on the table of contents of +ISO/IEC 14882:2020. +Some subclauses are not shown in the table where the content is unchanged +since C++17 and the implementation is complete. + + + +C++ 2020 Implementation Status + + + + + + + + + Section + Description + Status + Comments + + + + + + + + 17 + + + Language support library + + + + + 17.1 + General + + + + + + 17.2 + Common definitions + + + + + + 17.2.1 + Header <cstddef> synopsis + Y + + + + + 17.2.2 + Header <cstdlib> synopsis + Y + + + + + 17.2.3 + Null pointers + Y + + + + + 17.2.4 + Sizes, alignments, and offsets + Y + + + + + 17.2.5 + byte type operations + Y + + + + + 17.3 + Implementation properties + + + + + + 17.3.1 + General + + + + + + 17.3.2 + Header <version> synopsis + Y + + + + + 17.3.3 + Header <limits> synopsis + Y + + + + + 17.3.4 + Floating-point type properties + + + + + + + 17.3.4.1 + Type float_round_style + N + + + + + + 17.3.4.2 + Type float_denorm_style + N + + + + + 17.3.5 + Class template numeric_limits + Y + + + + + 17.3.6 + Header <climits> synopsis + Y + + + + + 17.3.7 + Header <cfloat> synopsis + Y + + + + + 17.4 + Integer types + + + + + + 17.4.1 + General + + + + + + 17.4.2 + Header <cstdint> synopsis + Y + + + + + + 17.5 + Startup and termination + Partial + C library dependency for quick_exit, at_quick_exit + + + + 17.6 + Dynamic memory management + Y + + + + 17.7 + Type identification + Y + + + + + 17.8 + Source location + + + + + + 17.8.1 + Header <source_location> synopsis + Y + + + + + 17.8.2 + Class source_location + Y + + + + + 17.9 + Exception handling + Y + + + + + 17.10 + Initializer lists + Y + + + + + 17.11 + Comparisons + + + + + + 17.11.1 + Header <compare> synopsis + Y + + + + + 17.11.2 + Comparison category types + Y + + + + + 17.11.3 + Class template common_comparison_category + Y + + + + + 17.11.4 + Concept three_way_comparable + Y + + + + + 17.11.5 + Result of three-way comparison + Y + + + + + 17.11.6 + Comparison algorithms + Y + + + + + 17.12 + Coroutines + + + + + + 17.12.1 + General + + + + + + 17.12.2 + Header <coroutine> synopsis + Y + + + + + 17.12.3 + Coroutine traits + Y + + + + + 17.12.4 + Class template coroutine_handle + Y + + + + + 17.12.5 + No-op coroutines + Y + + + + + 17.13 + Other runtime support + Y + + + + + + 18 + + + Concepts library + + + + + 18.1 + General + + + + + + 18.2 + Equality preservation + + + + + + 18.3 + Header <concepts> synopsis + Y + + + + + 18.4 + Language-related concepts + + + + + + 18.4.1 + General + + + + + + 18.4.2 + Concept same_as + Y + + + + + 18.4.3 + Concept derived_from + Y + + + + + 18.4.4 + Concept convertible_to + Y + + + + + 18.4.5 + Concept common_reference_with + Y + + + + + 18.4.6 + Concept common_with + Y + + + + + 18.4.7 + Arithmetic concepts + + + + + + 18.4.8 + Concept assignable_from + Y + + + + + 18.4.9 + Concept swappable + Y + + + + + 18.4.10 + Concept destructible + Y + + + + + 18.4.11 + Concept constructible_from + Y + + + + + 18.4.12 + Concept default_initializable + Y + + + + + 18.4.13 + Concept move_constructible + Y + + + + + 18.4.14 + Concept copy_constructible + Y + + + + + 18.5 + Comparison concepts + + + + + + 18.5.1 + General + + + + + + 18.5.2 + Boolean testability + Y + + + + + 18.5.3 + Concept equality_comparable + Y + + + + + 18.5.4 + Concept totally_ordered + Y + + + + + 18.6 + Object concepts + Y + + + + + 18.7 + Callable concepts + + + + + + 18.7.1 + General + + + + + + 18.7.2 + Concept invocable + Y + + + + + 18.7.3 + Concept regular_invocable + Y + + + + + 18.7.4 + Concept predicate + Y + + + + + 18.7.5 + Concept relation + Y + + + + + 18.7.6 + Concept equivalence_relation + Y + + + + + 18.7.7 + Concept strict_weak_order + Y + + + + + + 19 + + + Diagnostics library + + + + + 19.1 + General + + + + + + 19.2 + Exception classes + Y + + + + + 19.3 + Assertions + Y + + + + + 19.4 + Error numbers + Y + + + + + 19.5 + System error support + + + + + + 19.5.1 + General + + + + + + 19.5.2 + Header <system_error> synopsis + Y + + + + + 19.5.3 + Class error_category + Y + + + + + 19.5.4 + Class error_code + Y + + + + + 19.5.5 + Class error_condition + Y + + + + + 19.5.6 + Comparison operator functions + Y + + + + + 19.5.7 + System error hash support + Y + + + + + 19.5.8 + Class system_error + Y + + + + + + 20 + + + General utilities library + + + + + 20.1 + General + + + + + + 20.2 + Utility components + + + + + + 20.2.1 + Header <utility> synopsis + Y + + + + + 20.2.2 + swap + Y + + + + + 20.2.3 + exchange + Y + + + + + 20.2.4 + Forward/move helpers + Y + + + + + 20.2.5 + Function template as_const + Y + + + + + 20.2.6 + Function template declval + Y + + + + + 20.2.7 + Integer comparison functions + Y + + + + + 20.3 + Compile-time integer sequences + Y + + + + + 20.4 + Pairs + Y + + + + + 20.5 + Tuples + Y + + + + + 20.6 + Optional objects + Y + + + + + 20.7 + Variants + Y + + + + + 20.8 + Storage for any type + Y + + + + + 20.9 + Bitsets + Y + + + + + 20.10 + Memory + Y + + + + + 20.11 + Smart pointers + + + + + + 20.11.1 + Class template unique_ptr + Y + + + + + 20.11.2 + Class bad_weak_ptr + Y + + + + + 20.11.3 + Class template shared_ptr + Y + Uses code from boost::shared_ptr. + + + + 20.11.4 + Class template weak_ptr + Y + + + + + 20.11.5 + Class template owner_less + Y + + + + + 20.11.6 + Class template enable_shared_from_this + Y + + + + + 20.11.7 + Smart pointer hash support + Y + + + + + 20.12 + Memory resources + + + + + + 20.12.1 + Header <memory_resource> synopsis + Y + + + + + 20.12.2 + Class memory_resource + Y + + + + + 20.12.3 + Class template polymorphic_allocator + Y + + + + + 20.12.4 + Access to program-wide memory_resource objects + Y + + + + + 20.12.5 + Pool resource classes + Y + + + + + 20.12.6 + Class monotonic_buffer_resource + Y + + + + + 20.13 + Class template scoped_allocator_adaptor + Y + + + + + 20.14 + Function objects + + + + + + 20.14.1 + General + + + + + + 20.14.2 + Header <functional> synopsis + Y + + + + + 20.14.3 + Definitions + + + + + + 20.14.4 + Requirements + + + + + + 20.14.5 + Function template invoke + Y + + + + + 20.14.6 + Class template reference_wrapper + Y + + + + + 20.14.7 + Arithmetic operations + Y + + + + + 20.14.8 + Comparisons + Y + + + + + 20.14.9 + Concept-constrained comparisons + Y + + + + + 20.14.10 + Logical operations + Y + + + + + 20.14.11 + Bitwise operations + Y + + + + + 20.14.12 + Class identity + Y + + + + + 20.14.13 + Function template not_fn + Y + + + + + 20.14.14 + Function template bind_front + Y + + + + + 20.14.15 + Function object binders + Y + + + + + 20.14.16 + Function template mem_fn + Y + + + + + 20.14.17 + Polymorphic function wrappers + + + + + + 20.14.17.1 + General + + + + + + 20.14.17.2 + Class bad_function_call + Y + + + + + 20.14.17.3 + Class template function + Y + + + + + 20.14.18 + Searchers + Y + + + + + 20.15 + Metaprogramming and type traits + + + + + + 20.15.1 + General + + + + + + 20.15.2 + Requirements + Y + + + + + 20.15.3 + Header <type_traits> synopsis + Y + + + + + 20.15.4 + Helper classes + Y + + + + + 20.15.5 + Unary type traits + Y + + + + + 20.15.6 + Type property queries + Y + + + + + 20.15.7 + Relationships between types + Y + + + + + 20.15.8 + Transformations between types + Y + + + + + 20.15.9 + Logical operator traits + Y + + + + + 20.15.10 + Member relationships + Y + + + + + 20.15.11 + Constant evaluation context + Y + + + + + 20.16 + Compile-time rational arithmetic + Y + + + + + 20.17 + Class type_index + Y + + + + + 20.18 + Execution policies + Y + + + + + 20.19 + Primitive numeric conversions + + + + + + 20.19.1 + Header <charconv> synopsis + Y + + + + + 20.19.2 + Primitive numeric output conversion + Y + + Floating-point types up to 64-bit are formatted using + Ryu. + Types with greater precision are formatted using the C library + (sprintf and conditionally + strfromf128). + For powerpc64le-unknown-linux-gnu __sprintfieee128 + must be provided by Glibc. + + + + + 20.19.3 + Primitive numeric input conversion + Y + + Floating-point types up to 64-bit are parsed using + fast_float. + Types with greater precision are parsed using the C library + (strtold). + For powerpc64le-unknown-linux-gnu __strtoieee128 + must be provided by Glibc. + + + + + 20.20 + Formatting + + + + + + 20.20.1 + Header <format> synopsis + Y + + + + + 20.20.2 + Format string + + + + + + 20.20.2.1 + In general + Y + + + + + 20.20.2.2 + Standard format specifiers + Y + + + + + 20.20.3 + Error reporting + Y + + + + + 20.20.4 + Formatting functions + Y + + + + + 20.20.5 + Formatter + Y + + + + + 20.20.5.1 + Formatter requirements + + + + + + 20.20.5.2 + Formatter specializations + Y + + + + + 20.20.5.3 + Class template basic_format_parse_context + Y + + + + + 20.20.5.4 + Class template basic_format_context + Y + + + + + 20.20.6 + Arguments + + + + + + 20.20.6.1 + Class template basic_format_arg + Y + + + + + 20.20.6.2 + Class template format-arg-store + Y + + + + + 20.20.6.3 + Class template basic_format_args + Y + + + + + 20.20.7 + Class format_error + Y + + + + + + 21 + + + Strings library + + + + + 21.1 + General + + + + + + 21.2 + Character traits + Y + + + + + 21.3 + String classes + Y + + + + + 21.4 + String view classes + Y + + + + + + 21.5 + Null-terminated sequence utilities + Partial + C library dependency. + + + + + 22 + + + Containers library + + + + + 22.1 + General + + + + + + 22.2 + Container requirements + Y + + + + + 22.3 + Sequence containers + Y + + + + + 22.4 + Associative containers + Y + + + + + 22.5 + Unordered associative containers + Y + + + + + 22.6 + Container adaptors + Y + + + + + 22.7 + Views + + + + + + 22.7.1 + General + + + + + + 22.7.2 + Header <span> synopsis + Y + + + + + 22.7.3 + Class template span + Y + + + + + + 23 + + + Iterators library + + + + + 23.1 + General + + + + + + 23.2 + Header <iterator> synopsis + Y + + + + + 23.3 + Iterator requirements + + + + + + 23.3.1 + In general + Y + + + + + 23.3.2 + Associated types + Y + + + + + 23.3.3 + Customization points + Y + + + + + 23.3.4 + Iterator concepts + Y + + + + + 23.3.5 + C++17 iterator requirements + Y + + + + + 23.3.6 + Indirect callable requirements + Y + + + + + 23.3.7 + Common algorithm requirements + Y + + + + + 23.4 + Iterator primitives + + + + + + 23.4.1 + General + + + + + + 23.4.2 + Standard iterator tags + Y + + + + + 23.4.3 + Iterator operations + Y + + + + + 23.4.4 + Range iterator operations + Y + + + + + 23.5 + Iterator adaptors + + + + + + 23.5.1 + Reverse iterators + Y + + + + + 23.5.2 + Insert iterators + Y + + + + + 23.5.3 + Move iterators and sentinels + Y + + + + + 23.5.4 + Common iterators + Y + + + + + 23.5.5 + Default sentinel + Y + + + + + 23.5.6 + Counted iterators + Y + + + + + 23.5.7 + Unreachable sentinel + Y + + + + + 23.6 + Stream iterators + Y + + + + + 23.6.1 + General + + + + + + 23.6.2 + Class template istream_iterator + Y + + + + + 23.6.3 + Class template ostream_iterator + Y + + + + + 23.6.4 + Class template istreambuf_iterator + Y + + + + + 23.6.5 + Class template ostreambuf_iterator + Y + + + + + 23.7 + Range access + Y + + + + + + 24 + + + Ranges library + + + + + 24.1 + General + + + + + + 24.2 + Header <ranges> synopsis + Y + + + + + 24.3 + Range access + Y + + + + + 24.4 + Range requirements + + + + + + 24.4.1 + General + + + + + + 24.4.2 + Ranges + Y + + + + + 24.4.3 + Sized ranges + Y + + + + + 24.4.4 + Views + Y + + + + + 24.4.5 + Other range refinements + Y + + + + + 24.5 + Range utilities + + + + + + 24.5.1 + General + + + + + + 24.5.2 + Helper concepts + Y + + + + + 24.5.3 + View interface + Y + + + + + 24.5.4 + Sub-ranges + Y + + + + + 24.5.5 + Dangling iterator handling + Y + + + + + 24.6 + Range factories + + + + + + 24.6.1 + General + + + + + + 24.6.2 + Empty view + Y + + + + + 24.6.3 + Single view + Y + + + + + 24.6.4 + Iota view + Y + + + + + 24.6.5 + Istream view + Y + + + + + 24.7 + Range adaptors + + + + + + 24.7.1 + General + + + + + + 24.7.2 + Range adaptor objects + Y + + + + + 24.7.3 + Semiregular wrapper + Y + + + + + 24.7.4 + All view + Y + + + + + 24.7.5 + Filter view + Y + + + + + 24.7.6 + Transform view + Y + + + + + 24.7.7 + Take view + Y + + + + + 24.7.8 + Take while view + Y + + + + + 24.7.9 + Drop view + Y + + + + + 24.7.10 + Drop while view + Y + + + + + 24.7.11 + Join view + Y + + + + + 24.7.12 + Split view + Y + + + + + 24.7.13 + Counted view + Y + + + + + 24.7.14 + Common view + Y + + + + + 24.7.15 + Reverse view + Y + + + + + 24.7.16 + Elements view + Y + + + + + + 25 + + + Algorithms library + + + + + 25.1 + General + + + + + + 25.2 + Algorithms requirements + Y + + + + + 25.3 + Parallel algorithms + + Uses code from oneDPL + + + + 25.4 + Header <algorithm> synopsis + Y + + + + + 25.5 + Algorithm result types + Y + + + + + 25.6 + Non-modifying sequence operations + + + + + + 25.6.1 + All of + Y + + + + + 25.6.2 + Any of + Y + + + + + 25.6.3 + None of + Y + + + + + 25.6.4 + For each + Y + + + + + 25.6.5 + Find + Y + + + + + 25.6.6 + Find end + Y + + + + + 25.6.7 + Find first + Y + + + + + 25.6.8 + Adjacent find + Y + + + + + 25.6.9 + Count + Y + + + + + 25.6.10 + Mismatch + Y + + + + + 25.6.11 + Equal + Y + + + + + 25.6.12 + Is permutation + Y + + + + + 25.6.13 + Search + Y + + + + + 25.7 + Mutating sequence operations + + + + + + 25.7.1 + Copy + Y + + + + + 25.7.2 + Move + Y + + + + + 25.7.3 + Swap + Y + + + + + 25.7.4 + Transform + Y + + + + + 25.7.5 + Replace + Y + + + + + 25.7.6 + Fill + Y + + + + + 25.7.7 + Generate + Y + + + + + 25.7.8 + Remove + Y + + + + + 25.7.9 + Unique + Y + + + + + 25.7.10 + Reverse + Y + + + + + 25.7.11 + Rotate + Y + + + + + 25.7.12 + Sample + Y + + + + + 25.7.13 + Shuffle + Y + + + + + 25.7.14 + Shift + Y + + + + + 25.8 + Sorting and related operations + + + + + + 25.8.1 + General + Y + + + + + 25.8.2 + Sorting + Y + + + + + 25.8.3 + Nth element + Y + + + + + 25.8.4 + Binary search + Y + + + + + 25.8.5 + Partitions + Y + + + + + 25.8.6 + Merge + Y + + + + + 25.8.7 + Set operations on sorted structures + Y + + + + + 25.8.8 + Heap operations + Y + + + + + 25.8.9 + Minimum and maximum + Y + + + + + 25.8.10 + Bounded value + Y + + + + + 25.8.11 + Lexicographical comparison + Y + + + + + 25.8.12 + Three-way comparison algorithms + Y + + + + + 25.8.13 + Permutation generators + Y + + + + + 25.9 + Header <numeric> synopsis + Y + + + + + 25.10 + Generalized numeric operations + + + + + + 25.10.1 + General + + + + + + 25.10.2 + Definitions + + + + + + 25.10.3 + Accumulate + Y + + + + + 25.10.4 + Reduce + Y + + + + + 25.10.5 + Inner product + Y + + + + + 25.10.6 + Transform reduce + Y + + + + + 25.10.7 + Partial sum + Y + + + + + 25.10.8 + Exclusive scan + Y + + + + + 25.10.9 + Inclusive scan + Y + + + + + 25.10.10 + Transform exclusive scan + Y + + + + + 25.10.11 + Transform inclusive scan + Y + + + + + 25.10.12 + Adjacent difference + Y + + + + + 25.10.13 + Iota + Y + + + + + 25.10.14 + Greatest common divisor + Y + + + + + 25.10.15 + Least common multiple + Y + + + + + 25.10.16 + Midpoint + Y + + + + + 25.11 + Specialized <memory> algorithms + + + + + + 25.11.1 + General + + + + + + 25.11.2 + Special memory concepts + Y + + + + + 25.11.3 + uninitialized_default_construct + Y + + + + + 25.11.4 + uninitialized_value_construct + Y + + + + + 25.11.5 + uninitialized_copy + Y + + + + + 25.11.6 + uninitialized_move + Y + + + + + 25.11.7 + uninitialized_fill + Y + + + + + 25.11.8 + construct_at + Y + + + + + 25.11.9 + destroy + Y + + + + + 25.12 + C library algorithms + Y + + + + + + 26 + + + Numerics library + + + + + + 26.1 + General + + + + + + 26.2 + Numeric type requirements + Y + + + + + 26.3 + The floating-point environment + Y + + + + + 26.4 + Complex numbers + Y + + + + + 26.5 + Bit manipulation + + + + + + 26.5.1 + General + + + + + + 26.5.2 + Header <bit> synopsis + Y + + + + + 26.5.3 + Function template bit_cast + Y + + + + + 26.5.4 + Integral powers of 2 + Y + + + + + 26.5.5 + Rotating + Y + + + + + 26.5.6 + Counting + Y + + + + + 26.5.7 + Endian + Y + + + + + 26.6 + Random number generation + Y + + + + + 26.7 + Numeric arrays + Y + + + + + 26.8 + Mathematical functions for floating-point types + Y + + + + + 26.9 + Numbers + + + + + + 26.9.1 + Header <numbers> synopsis + Y + + + + + 26.9.2 + Mathematical constants + Y + + + + + + 27 + + + Time library + + + + + 27.1 + General + + + + + + 27.2 + Header <chrono> synopsis + Y + + + + + 27.3 + Cpp17Clock requirements + Y + + + + + 27.4 + Time-related traits + + + + + + 27.4.1 + treat_as_floating_point + Y + + + + + 27.4.2 + duration_values + Y + + + + + 27.4.3 + Specializations of common_type + Y + + + + + 27.4.4 + Class template is_clock + Y + + + + + 27.5 + Class template duration + + + + + + 27.5.1 + General + Y + + + + + 27.5.2 + Constructors + Y + + + + + 27.5.3 + Observer + Y + + + + + 27.5.4 + Arithmetic + Y + + + + + 27.5.5 + Special values + Y + + + + + 27.5.6 + Non-member arithmetic + Y + + + + + 27.5.7 + Comparisons + Y + + + + + 27.5.8 + Conversions + Y + + + + + 27.5.9 + Suffixes for duration literals + Y + + + + + 27.5.10 + Algorithms + Y + + + + + 27.5.11 + I/O + Y + + + + + 27.6 + Class template time_point + Y + + + + + 27.7 + Clocks + + + + + + 27.7.1 + General + Y + + + + + 27.7.2 + Class system_clock + Y + + + + + 27.7.3 + Class utc_clock + Y + + + + + 27.7.4 + Class tai_clock + Y + + + + + 27.7.5 + Class gps_clock + Y + + + + + 27.7.6 + Type file_clock + Y + + + + + 27.7.7 + Class steady_clock + Y + + + + + 27.7.8 + Class high_resolution_clock + Y + + + + + 27.7.9 + Local time + Y + + + + + 27.7.10 + time_point conversions + Y + + + + + 27.8 + The civil calendar + + + + + + 27.8.1 + In general + + + + + + 27.8.2 + Class last_spec + Y + + + + + 27.8.3 + Class day + Y + + + + + 27.8.4 + Class month + Y + + + + + 27.8.5 + Class year + Y + + + + + 27.8.6 + Class weekday + Y + + + + + 27.8.7 + Class weekday_indexed + Y + + + + + 27.8.8 + Class weekday_last + Y + + + + + 27.8.9 + Class month_day + Y + + + + + 27.8.10 + Class month_day_last + Y + + + + + 27.8.11 + Class month_weekday + Y + + + + + 27.8.12 + Class month_weekday_last + Y + + + + + 27.8.13 + Class year_month + Y + + + + + 27.8.14 + Class year_month_day + Y + + + + + 27.8.15 + Class year_month_day_last + Y + + + + + 27.8.16 + Class year_month_weekday + Y + + + + + 27.8.17 + Class year_month_weekday_last + Y + + + + + 27.9 + Class template hh_mm_ss + Y + + + + + 27.10 + 12/24 hours functions + Y + + + + + 27.11 + Time zones + + + + + + 27.11.1 + In general + + + + + + 27.11.2 + Time zone database + Y + + + + + 27.11.3 + Exception classes + Y + + + + + 27.11.4 + Information classes + Y + + + + + 27.11.5 + Class time_zone + Y + + + + + 27.11.6 + Class template zoned_traits + Y + + + + + 27.11.7 + Class template zoned_time + Y + + + + + 27.11.8 + Class leap_second + Y + + + + + 27.11.9 + Class time_zone_link + Y + + + + + 27.12 + Formatting + Y + + + + + 27.13 + Parsing + Y + + + + + 27.14 + Header <ctime> synopsis + Y + + + + + + 28 + + + Localization library + + + + + 28.1 + General + + + + + + 28.2 + Header <locale> synopsis + Y + + + + + 28.3 + Locales + + + + + + 28.3.1 + Class locale + Y + + + + + 28.3.2 + locale globals + Y + + + + + 28.3.3 + Convenience interfaces + + + + + + 28.3.3.1 + Character classification + Y + + + + + 28.3.3.2 + Character conversions + Y + + + + + 28.4 + Standard locale categories + + + + + + 28.4.1 + General + + + + + + 28.4.2 + The ctype category + Y + + + + + 28.4.3 + The numeric category + Y + + + + + 28.4.4 + The numeric punctuation facet + Y + + + + + 28.4.5 + The collate category + Y + + + + + 28.4.6 + The time category + Y + + + + + 28.4.7 + The monetary category + Y + + + + + 28.4.8 + The message retrieval category + Y + + + + + 28.5 + C library locales + Y + + + + + + 29 + + + Input/output library + + + + + + + 29.1 + General + Y + + + + + 29.2 + Iostreams requirements + + + + + + 29.2.1 + Imbue limitations + Y + + + + + 29.2.2 + Positioning type limitations + Y + + + + + + 29.2.3 + Thread safety + Partial + + + + + 29.3 + Forward declarations + Y + + + + + 29.4 + Standard iostream objects + Y + + + + + 29.5 + Iostreams base classes + Y + + + + + 29.6 + Stream buffers + Y + + + + + 29.7 + Formatting and manipulators + Y + + + + + 29.8 + String-based streams + Y + + + + + 29.9 + File-based streams + Y + + + + + 29.10 + Synchronized output streams + + + + + + 29.10.1 + Header <syncstream> synopsis + Y + + + + + 29.10.2 + Class template basic_syncbuf + Y + + + + + 29.10.3 + Class template basic_osyncstream + Y + + + + + 29.11 + File systems + + + + + + 29.11.1 + General + + + + + + 29.11.2 + Conformance + Y + + + + + 29.11.3 + Requirements + Y + + + + + 29.11.4 + Header <filesystem> synopsis + Y + + + + + 29.11.5 + Error reporting + Y + + + + + 29.11.6 + Class path + Y + + + + + 29.11.7 + Class filesystem_error + Y + + + + + 29.11.8 + Enumerations + + + + + + 29.11.8.1 + Enum path::format + Y + + + + + 29.11.8.2 + Enum class file_type + Y + + + + + 29.11.8.3 + Enum class copy_options + Y + + + + + 29.11.8.4 + Enum class perms + Y + + + + + 29.11.8.5 + Enum class perm_options + Y + + + + + 29.11.8.6 + Enum class directory_options + Y + + + + + 29.11.9 + Class file_status + Y + + + + + 29.11.10 + Class directory_entry + Y + + + + + 29.11.11 + Class directory_iterator + Y + + + + + 29.11.12 + Class recursive_directory_iterator + Y + + + + + 29.11.13 + Filesystem operation functions + Y + + + + + 29.12 + C library files + + + + + + 29.12.1 + Header <cstdio> synopsis + Y + + + + + 29.12.2 + Header <cinttypes> synopsis + Y + + + + + + 30 + + + Regular expressions library + + + + + + 30.1 + General + Y + + + + + 30.2 + Requirements + Y + + + + + 30.3 + Header <regex> synopsis + Y + + + + + 30.4 + Namespace std::regex_constants + Y + + + + + 30.5 + Class regex_error + Y + + + + + + 30.6 + Class template regex_traits + Partial + transform_primary is not correctly implemented + + + + 30.7 + Class template basic_regex + Y + + + + + 30.8 + Class template sub_match + Y + + + + + 30.9 + Class template match_results + Y + + + + + 30.10 + Regular expression algorithms + Y + + + + + 30.11 + Regular expression iterators + Y + + + + + 30.12 + Modified ECMAScript regular expression grammar + Y + + + + + + 31 + + + Atomics library + + + + + + 31.1 + General + Y + + + + + 31.2 + Header <atomic> synopsis + Y + + + + + 31.3 + Type aliases + Y + + + + + 31.4 + Order and consistency + Y + + + + + 31.5 + Lock-free property + Y + + + + + + 31.6 + Waiting and notifying + Partial + Waiting and notifying is not supported for volatile objects. + + + + 31.7 + Class template atomic_ref + + + + + + 31.7.1 + General + Y + + + + + + 31.7.2 + Operations + Partial + + volatile-qualified overloads for wait, + notify_one, and notify_all are not provided. + + + + + 31.7.3 + Specializations for integral types + Y + + + + + 31.7.4 + Specializations for floating-point types + Y + + + + + 31.7.5 + Partial specialization for pointers + Y + + + + + 31.8 + Class template atomic + + + + + + 31.8.1 + General + Y + + + + + + 31.8.2 + Operations on atomic types + Partial + Waiting and notifying is not supported for volatile objects. + + + + 31.8.3 + Specializations for integers + Y + + + + + 31.8.4 + Specializations for floating-point types + Y + + + + + 31.8.5 + Partial specialization for pointers + Y + + + + + 31.8.6 + Member operators common to integers and pointers to objects + Y + + + + + 31.8.7 + Partial specializations for smart pointers + + + + + + 31.8.7.1 + General + Y + + + + + 31.8.7.2 + Partial specialization for shared_ptr + Y + + + + + 31.8.7.3 + Partial specialization for weak_ptr + Y + + + + + 31.9 + Non-member functions + Y + + + + + 31.10 + Flag type and operations + Y + + + + + 31.11 + Fences + Y + + + + + + 32 + + + Threads library + + + + + 32.1 + General + Y + + + + + 32.2 + Requirements + Y + + + + + 32.3 + Stop tokens + + + + + + 32.3.1 + Introduction + Y + + + + + 32.3.2 + Header <stop_token> synopsis + Y + + + + + 32.3.3 + Class stop_token + Y + + + + + 32.3.4 + Class stop_source + Y + + + + + 32.3.5 + Class template stop_callback + Y + + + + + 32.4 + Threads + + + + + + 32.4.1 + General + + + + + + 32.4.2 + Header <thread> synopsis + Y + + + + + + 32.4.3 + Class thread + Partial + thread::id comparisons not well-defined + + + + 32.4.4 + Class jthread + Y + + + + + 32.4.5 + Namespace this_thread + Y + + + + + 32.5 + Mutual exclusion + + + + + + 32.5.1 + General + + + + + + 32.5.2 + Header <mutex> synopsis + + + + + + 32.5.3 + Header <shared_mutex> synopsis + + + + + + 32.5.4 + Mutex requirements + + + + + + 32.5.4.1 + In general + + + + + + 32.5.4.2 + Mutex types + Y + + + + + 32.5.4.3 + Timed mutex types + Y + + + + + 32.5.4.4 + Shared mutex types + Y + + + + + 32.5.4.5 + Shared timed mutex types + Y + + + + + 32.5.5 + Locks + Y + + + + + 32.5.6 + Generic locking algorithms + Y + + + + + 32.5.7 + Call once + + + + + + 32.5.7.1 + Struct once_flag + Y + + + + + + 32.5.7.2 + Function call_once + Partial + Exception support is broken. + See PR + 66146. + + + + + 32.6 + Condition variables + Y + + + + + 32.7 + Semaphore + Y + + + + + 32.7.1 + General + + + + + + 32.7.2 + Header <semaphore> synopsis + Y + + + + + 32.7.3 + Class template counting_semaphore + Y + + + + + 32.8 + Coordination types + + + + + + 32.8.1 + General + + + + + + 32.8.2 + Latches + + + + + + 32.8.2.1 + General + + + + + + 32.8.2.2 + Header <latch> synopsis + Y + + + + + 32.8.2.3 + Class latch + Y + + + + + 32.8.3 + Barriers + + + + + + 32.8.3.1 + General + + + + + + 32.8.3.2 + Header <barrier> synopsis + Y + + + + + 32.8.3.3 + Class template barrier + Y + + + + + 32.9 + Futures + Y + + + + + + Appendix D + + + Compatibility features + + + + + D.10 + C headers + + + + + + D.10.1 + General + Y + + + + + D.10.2 + Header <complex.h> synopsis + Y + + + + + D.10.3 + Header <iso646.h> synopsis + Y + + + + + D.10.4 + Header <stdalign.h> synopsis + Y + + + + + D.10.5 + Header <stdbool.h> synopsis + Y + + + + + D.10.6 + Header <tgmath.h> synopsis + Y + + + + + D.10.7 + Other C headers + Y + + + + + D.12 + Relational operators + Y + + + + + D.13 + char* streams + Y + + + + + D.13.1 + Header <strstream> synopsis + Y + + + + + D.13.2 + Class strstreambuf + Y + + + + + D.13.3 + Class istrstream + Y + + + + + D.13.4 + Class ostrstream + Y + + + + + D.13.5 + Class strstream + Y + + + + + D.14 + Deprecated type traits + Y + + + + + D.15 + Tuple + Y + + + + + D.16 + Variant + Y + + + + + D.17 + Deprecated iterator class template + Y + + + + + D.18 + Deprecated move_iterator access + Y + + + + + D.19 + Deprecated shared_ptr atomic access + Y + + + + + D.20 + Deprecated basic_string capacity + Y + + + + + D.21 + Deprecated standard code conversion facets + + + + + + D.21.1 + General + Y + + + + + D.21.2 + Header <codecvt> synopsis + Y + + + + + D.21.3 + Requirements + Y + + + + + D.22 + Deprecated convenience conversion interfaces + + + + + + D.22.1 + General + Y + + + + + D.22.2 + Class template wstring_convert + Y + + + + + D.22.3 + Class template wbuffer_convert + Y + + + + + D.23 + Deprecated locale category facets + Y + + + + + D.24 + Deprecated filesystem path factory functions + Y + + + + + D.25 + Deprecated atomic operations + + + + + + D.25.1 + General + Y + + + + + D.25.2 + Volatile access + Y + + + + + D.25.3 + Non-member functions + Y + + + + + D.25.4 + Operations on atomic types + Y + + + + + D.25.5 + Flag type and operations + Y + + + + + +
+

Implementation Specific Behavior For behaviour which is also specified by previous standards, diff --git a/libstdc++-v3/include/Makefile.in b/libstdc++-v3/include/Makefile.in index 133984784cd5..f07e2326816b 100644 --- a/libstdc++-v3/include/Makefile.in +++ b/libstdc++-v3/include/Makefile.in @@ -91,8 +91,10 @@ target_triplet = @target@ subdir = include ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/../config/acx.m4 \ + $(top_srcdir)/../config/clang-plugin.m4 \ $(top_srcdir)/../config/enable.m4 \ $(top_srcdir)/../config/futex.m4 \ + $(top_srcdir)/../config/gcc-plugin.m4 \ $(top_srcdir)/../config/hwcaps.m4 \ $(top_srcdir)/../config/iconv.m4 \ $(top_srcdir)/../config/lead-dot.m4 \ @@ -222,6 +224,7 @@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LIPO = @LIPO@ +LLVM_CONFIG = @LLVM_CONFIG@ LN_S = @LN_S@ LONG_DOUBLE_128_FLAGS = @LONG_DOUBLE_128_FLAGS@ LONG_DOUBLE_ALT128_COMPAT_FLAGS = @LONG_DOUBLE_ALT128_COMPAT_FLAGS@ diff --git a/libstdc++-v3/include/bits/atomic_base.h b/libstdc++-v3/include/bits/atomic_base.h index 92d1269493f7..84661d449e25 100644 --- a/libstdc++-v3/include/bits/atomic_base.h +++ b/libstdc++-v3/include/bits/atomic_base.h @@ -1508,211 +1508,146 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION }; #undef _GLIBCXX20_INIT - template && !is_same_v<_Tp, bool>, - bool = is_floating_point_v<_Tp>> - struct __atomic_ref; + // __atomic_ref_base provides the common APIs for const and + // non-const types, + // __atomic_ref_base<_Tp> inherits from __atomic_ref_base, + // and provides the common APIs implementing constraints in [atomic.ref]. + // __atomic_ref<_Tp> inherits from __atomic_ref_base<_Tp> (const or non-const) + // adds type-specific mutating APIs. + // atomic_ref inherits from __atomic_ref; + + template + struct __atomic_ref_base; - // base class for non-integral, non-floating-point, non-pointer types template - struct __atomic_ref<_Tp, false, false> + struct __atomic_ref_base { - static_assert(is_trivially_copyable_v<_Tp>); + private: + using _Vt = remove_cv_t<_Tp>; + + static consteval bool + _S_is_always_lock_free() + { + if constexpr (is_pointer_v<_Vt>) + return ATOMIC_POINTER_LOCK_FREE == 2; + else + return __atomic_always_lock_free(sizeof(_Vt), 0); + } - // 1/2/4/8/16-byte types must be aligned to at least their size. - static constexpr int _S_min_alignment - = (sizeof(_Tp) & (sizeof(_Tp) - 1)) || sizeof(_Tp) > 16 - ? 0 : sizeof(_Tp); + static consteval int + _S_required_aligment() + { + if constexpr (is_floating_point_v<_Vt> || is_pointer_v<_Vt>) + return alignof(_Vt); + else if constexpr ((sizeof(_Vt) & (sizeof(_Vt) - 1)) || sizeof(_Vt) > 16) + return alignof(_Vt); + else + // 1/2/4/8/16-byte types, including integral types, + // must be aligned to at least their size. + return (sizeof(_Vt) > alignof(_Vt)) ? sizeof(_Vt) : alignof(_Vt); + } public: - using value_type = _Tp; + using value_type = _Vt; + static_assert(is_trivially_copyable_v); - static constexpr bool is_always_lock_free - = __atomic_always_lock_free(sizeof(_Tp), 0); + static constexpr bool is_always_lock_free = _S_is_always_lock_free(); + static_assert(is_always_lock_free || !is_volatile_v<_Tp>, + "atomic operations on volatile T must be lock-free"); - static constexpr size_t required_alignment - = _S_min_alignment > alignof(_Tp) ? _S_min_alignment : alignof(_Tp); + static constexpr size_t required_alignment = _S_required_aligment(); - __atomic_ref& operator=(const __atomic_ref&) = delete; + __atomic_ref_base() = delete; + __atomic_ref_base& operator=(const __atomic_ref_base&) = delete; explicit - __atomic_ref(_Tp& __t) : _M_ptr(std::__addressof(__t)) + __atomic_ref_base(const _Tp& __t) + : _M_ptr(const_cast<_Tp*>(std::addressof(__t))) { __glibcxx_assert(((__UINTPTR_TYPE__)_M_ptr % required_alignment) == 0); } - __atomic_ref(const __atomic_ref&) noexcept = default; - - _Tp - operator=(_Tp __t) const noexcept - { - this->store(__t); - return __t; - } + __atomic_ref_base(const __atomic_ref_base&) noexcept = default; - operator _Tp() const noexcept { return this->load(); } + operator value_type() const noexcept { return this->load(); } bool is_lock_free() const noexcept { return __atomic_impl::is_lock_free(); } - void - store(_Tp __t, memory_order __m = memory_order_seq_cst) const noexcept - { __atomic_impl::store(_M_ptr, __t, __m); } - - _Tp + value_type load(memory_order __m = memory_order_seq_cst) const noexcept { return __atomic_impl::load(_M_ptr, __m); } - _Tp - exchange(_Tp __desired, memory_order __m = memory_order_seq_cst) - const noexcept - { return __atomic_impl::exchange(_M_ptr, __desired, __m); } - - bool - compare_exchange_weak(_Tp& __expected, _Tp __desired, - memory_order __success, - memory_order __failure) const noexcept - { - return __atomic_impl::compare_exchange_weak( - _M_ptr, __expected, __desired, __success, __failure); - } - - bool - compare_exchange_strong(_Tp& __expected, _Tp __desired, - memory_order __success, - memory_order __failure) const noexcept - { - return __atomic_impl::compare_exchange_strong( - _M_ptr, __expected, __desired, __success, __failure); - } - - bool - compare_exchange_weak(_Tp& __expected, _Tp __desired, - memory_order __order = memory_order_seq_cst) - const noexcept - { - return compare_exchange_weak(__expected, __desired, __order, - __cmpexch_failure_order(__order)); - } - - bool - compare_exchange_strong(_Tp& __expected, _Tp __desired, - memory_order __order = memory_order_seq_cst) - const noexcept - { - return compare_exchange_strong(__expected, __desired, __order, - __cmpexch_failure_order(__order)); - } - #if __glibcxx_atomic_wait _GLIBCXX_ALWAYS_INLINE void - wait(_Tp __old, memory_order __m = memory_order_seq_cst) const noexcept - { __atomic_impl::wait(_M_ptr, __old, __m); } - - // TODO add const volatile overload - - _GLIBCXX_ALWAYS_INLINE void - notify_one() const noexcept - { __atomic_impl::notify_one(_M_ptr); } - - // TODO add const volatile overload - - _GLIBCXX_ALWAYS_INLINE void - notify_all() const noexcept - { __atomic_impl::notify_all(_M_ptr); } - - // TODO add const volatile overload + wait(value_type __old, memory_order __m = memory_order_seq_cst) const noexcept + { + // TODO remove when volatile is supported + static_assert(!is_volatile_v<_Tp>, "atomics waits on volatile are not supported"); + __atomic_impl::wait(_M_ptr, __old, __m); + } #endif // __glibcxx_atomic_wait - private: + protected: _Tp* _M_ptr; }; - // base class for atomic_ref template - struct __atomic_ref<_Tp, true, false> + struct __atomic_ref_base + : __atomic_ref_base { - static_assert(is_integral_v<_Tp>); - - public: - using value_type = _Tp; - using difference_type = value_type; - - static constexpr bool is_always_lock_free - = __atomic_always_lock_free(sizeof(_Tp), 0); - - static constexpr size_t required_alignment - = sizeof(_Tp) > alignof(_Tp) ? sizeof(_Tp) : alignof(_Tp); - - __atomic_ref() = delete; - __atomic_ref& operator=(const __atomic_ref&) = delete; + using value_type = typename __atomic_ref_base::value_type; explicit - __atomic_ref(_Tp& __t) : _M_ptr(&__t) - { - __glibcxx_assert(((__UINTPTR_TYPE__)_M_ptr % required_alignment) == 0); - } + __atomic_ref_base(_Tp& __t) : __atomic_ref_base(__t) + { } - __atomic_ref(const __atomic_ref&) noexcept = default; - - _Tp - operator=(_Tp __t) const noexcept + value_type + operator=(value_type __t) const noexcept { this->store(__t); return __t; } - operator _Tp() const noexcept { return this->load(); } - - bool - is_lock_free() const noexcept - { - return __atomic_impl::is_lock_free(); - } - void - store(_Tp __t, memory_order __m = memory_order_seq_cst) const noexcept - { __atomic_impl::store(_M_ptr, __t, __m); } - - _Tp - load(memory_order __m = memory_order_seq_cst) const noexcept - { return __atomic_impl::load(_M_ptr, __m); } + store(value_type __t, memory_order __m = memory_order_seq_cst) const noexcept + { __atomic_impl::store(this->_M_ptr, __t, __m); } - _Tp - exchange(_Tp __desired, - memory_order __m = memory_order_seq_cst) const noexcept - { return __atomic_impl::exchange(_M_ptr, __desired, __m); } + value_type + exchange(value_type __desired, memory_order __m = memory_order_seq_cst) + const noexcept + { return __atomic_impl::exchange(this->_M_ptr, __desired, __m); } bool - compare_exchange_weak(_Tp& __expected, _Tp __desired, + compare_exchange_weak(value_type& __expected, value_type __desired, memory_order __success, memory_order __failure) const noexcept { return __atomic_impl::compare_exchange_weak( - _M_ptr, __expected, __desired, __success, __failure); + this->_M_ptr, __expected, __desired, __success, __failure); } bool - compare_exchange_strong(_Tp& __expected, _Tp __desired, - memory_order __success, - memory_order __failure) const noexcept + compare_exchange_strong(value_type& __expected, value_type __desired, + memory_order __success, + memory_order __failure) const noexcept { return __atomic_impl::compare_exchange_strong( - _M_ptr, __expected, __desired, __success, __failure); + this->_M_ptr, __expected, __desired, __success, __failure); } bool - compare_exchange_weak(_Tp& __expected, _Tp __desired, + compare_exchange_weak(value_type& __expected, value_type __desired, memory_order __order = memory_order_seq_cst) const noexcept { return compare_exchange_weak(__expected, __desired, __order, - __cmpexch_failure_order(__order)); + __cmpexch_failure_order(__order)); } bool - compare_exchange_strong(_Tp& __expected, _Tp __desired, + compare_exchange_strong(value_type& __expected, value_type __desired, memory_order __order = memory_order_seq_cst) const noexcept { @@ -1721,49 +1656,81 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION } #if __glibcxx_atomic_wait - _GLIBCXX_ALWAYS_INLINE void - wait(_Tp __old, memory_order __m = memory_order_seq_cst) const noexcept - { __atomic_impl::wait(_M_ptr, __old, __m); } - - // TODO add const volatile overload - _GLIBCXX_ALWAYS_INLINE void notify_one() const noexcept - { __atomic_impl::notify_one(_M_ptr); } - - // TODO add const volatile overload + { + // TODO remove when volatile is supported + static_assert(!is_volatile_v<_Tp>, "atomics waits on volatile are not supported"); + __atomic_impl::notify_one(this->_M_ptr); + } _GLIBCXX_ALWAYS_INLINE void notify_all() const noexcept - { __atomic_impl::notify_all(_M_ptr); } - - // TODO add const volatile overload + { + // TODO remove when volatile is supported + static_assert(!is_volatile_v<_Tp>, "atomics waits on volatile are not supported"); + __atomic_impl::notify_all(this->_M_ptr); + } #endif // __glibcxx_atomic_wait + }; + + template && !is_same_v, bool>, + bool = is_floating_point_v<_Tp>, + bool = is_pointer_v<_Tp>> + struct __atomic_ref; + + // base class for non-integral, non-floating-point, non-pointer types + template + struct __atomic_ref<_Tp, false, false, false> + : __atomic_ref_base<_Tp> + { + using __atomic_ref_base<_Tp>::__atomic_ref_base; + using __atomic_ref_base<_Tp>::operator=; + }; + + template + struct __atomic_ref + : __atomic_ref_base + { + using __atomic_ref_base::__atomic_ref_base; + }; + + // base class for atomic_ref + template + struct __atomic_ref<_Tp, true, false, false> + : __atomic_ref_base<_Tp> + { + using value_type = typename __atomic_ref_base<_Tp>::value_type; + using difference_type = value_type; + + using __atomic_ref_base<_Tp>::__atomic_ref_base; + using __atomic_ref_base<_Tp>::operator=; value_type fetch_add(value_type __i, memory_order __m = memory_order_seq_cst) const noexcept - { return __atomic_impl::fetch_add(_M_ptr, __i, __m); } + { return __atomic_impl::fetch_add(this->_M_ptr, __i, __m); } value_type fetch_sub(value_type __i, memory_order __m = memory_order_seq_cst) const noexcept - { return __atomic_impl::fetch_sub(_M_ptr, __i, __m); } + { return __atomic_impl::fetch_sub(this->_M_ptr, __i, __m); } value_type fetch_and(value_type __i, memory_order __m = memory_order_seq_cst) const noexcept - { return __atomic_impl::fetch_and(_M_ptr, __i, __m); } + { return __atomic_impl::fetch_and(this->_M_ptr, __i, __m); } value_type fetch_or(value_type __i, memory_order __m = memory_order_seq_cst) const noexcept - { return __atomic_impl::fetch_or(_M_ptr, __i, __m); } + { return __atomic_impl::fetch_or(this->_M_ptr, __i, __m); } value_type fetch_xor(value_type __i, memory_order __m = memory_order_seq_cst) const noexcept - { return __atomic_impl::fetch_xor(_M_ptr, __i, __m); } + { return __atomic_impl::fetch_xor(this->_M_ptr, __i, __m); } _GLIBCXX_ALWAYS_INLINE value_type operator++(int) const noexcept @@ -1775,284 +1742,98 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION value_type operator++() const noexcept - { return __atomic_impl::__add_fetch(_M_ptr, value_type(1)); } + { return __atomic_impl::__add_fetch(this->_M_ptr, value_type(1)); } value_type operator--() const noexcept - { return __atomic_impl::__sub_fetch(_M_ptr, value_type(1)); } + { return __atomic_impl::__sub_fetch(this->_M_ptr, value_type(1)); } value_type operator+=(value_type __i) const noexcept - { return __atomic_impl::__add_fetch(_M_ptr, __i); } + { return __atomic_impl::__add_fetch(this->_M_ptr, __i); } value_type operator-=(value_type __i) const noexcept - { return __atomic_impl::__sub_fetch(_M_ptr, __i); } + { return __atomic_impl::__sub_fetch(this->_M_ptr, __i); } value_type operator&=(value_type __i) const noexcept - { return __atomic_impl::__and_fetch(_M_ptr, __i); } + { return __atomic_impl::__and_fetch(this->_M_ptr, __i); } value_type operator|=(value_type __i) const noexcept - { return __atomic_impl::__or_fetch(_M_ptr, __i); } + { return __atomic_impl::__or_fetch(this->_M_ptr, __i); } value_type operator^=(value_type __i) const noexcept - { return __atomic_impl::__xor_fetch(_M_ptr, __i); } + { return __atomic_impl::__xor_fetch(this->_M_ptr, __i); } + }; - private: - _Tp* _M_ptr; + template + struct __atomic_ref + : __atomic_ref_base + { + using difference_type = typename __atomic_ref_base::value_type; + using __atomic_ref_base::__atomic_ref_base; }; // base class for atomic_ref template - struct __atomic_ref<_Fp, false, true> + struct __atomic_ref<_Fp, false, true, false> + : __atomic_ref_base<_Fp> { - static_assert(is_floating_point_v<_Fp>); - - public: - using value_type = _Fp; + using value_type = typename __atomic_ref_base<_Fp>::value_type; using difference_type = value_type; - static constexpr bool is_always_lock_free - = __atomic_always_lock_free(sizeof(_Fp), 0); - - static constexpr size_t required_alignment = __alignof__(_Fp); - - __atomic_ref() = delete; - __atomic_ref& operator=(const __atomic_ref&) = delete; - - explicit - __atomic_ref(_Fp& __t) : _M_ptr(&__t) - { - __glibcxx_assert(((__UINTPTR_TYPE__)_M_ptr % required_alignment) == 0); - } - - __atomic_ref(const __atomic_ref&) noexcept = default; - - _Fp - operator=(_Fp __t) const noexcept - { - this->store(__t); - return __t; - } - - operator _Fp() const noexcept { return this->load(); } - - bool - is_lock_free() const noexcept - { - return __atomic_impl::is_lock_free(); - } - - void - store(_Fp __t, memory_order __m = memory_order_seq_cst) const noexcept - { __atomic_impl::store(_M_ptr, __t, __m); } - - _Fp - load(memory_order __m = memory_order_seq_cst) const noexcept - { return __atomic_impl::load(_M_ptr, __m); } - - _Fp - exchange(_Fp __desired, - memory_order __m = memory_order_seq_cst) const noexcept - { return __atomic_impl::exchange(_M_ptr, __desired, __m); } - - bool - compare_exchange_weak(_Fp& __expected, _Fp __desired, - memory_order __success, - memory_order __failure) const noexcept - { - return __atomic_impl::compare_exchange_weak( - _M_ptr, __expected, __desired, __success, __failure); - } - - bool - compare_exchange_strong(_Fp& __expected, _Fp __desired, - memory_order __success, - memory_order __failure) const noexcept - { - return __atomic_impl::compare_exchange_strong( - _M_ptr, __expected, __desired, __success, __failure); - } - - bool - compare_exchange_weak(_Fp& __expected, _Fp __desired, - memory_order __order = memory_order_seq_cst) - const noexcept - { - return compare_exchange_weak(__expected, __desired, __order, - __cmpexch_failure_order(__order)); - } - - bool - compare_exchange_strong(_Fp& __expected, _Fp __desired, - memory_order __order = memory_order_seq_cst) - const noexcept - { - return compare_exchange_strong(__expected, __desired, __order, - __cmpexch_failure_order(__order)); - } - -#if __glibcxx_atomic_wait - _GLIBCXX_ALWAYS_INLINE void - wait(_Fp __old, memory_order __m = memory_order_seq_cst) const noexcept - { __atomic_impl::wait(_M_ptr, __old, __m); } - - // TODO add const volatile overload - - _GLIBCXX_ALWAYS_INLINE void - notify_one() const noexcept - { __atomic_impl::notify_one(_M_ptr); } - - // TODO add const volatile overload - - _GLIBCXX_ALWAYS_INLINE void - notify_all() const noexcept - { __atomic_impl::notify_all(_M_ptr); } - - // TODO add const volatile overload -#endif // __glibcxx_atomic_wait + using __atomic_ref_base<_Fp>::__atomic_ref_base; + using __atomic_ref_base<_Fp>::operator=; value_type fetch_add(value_type __i, memory_order __m = memory_order_seq_cst) const noexcept - { return __atomic_impl::__fetch_add_flt(_M_ptr, __i, __m); } + { return __atomic_impl::__fetch_add_flt(this->_M_ptr, __i, __m); } value_type fetch_sub(value_type __i, memory_order __m = memory_order_seq_cst) const noexcept - { return __atomic_impl::__fetch_sub_flt(_M_ptr, __i, __m); } + { return __atomic_impl::__fetch_sub_flt(this->_M_ptr, __i, __m); } value_type operator+=(value_type __i) const noexcept - { return __atomic_impl::__add_fetch_flt(_M_ptr, __i); } + { return __atomic_impl::__add_fetch_flt(this->_M_ptr, __i); } value_type operator-=(value_type __i) const noexcept - { return __atomic_impl::__sub_fetch_flt(_M_ptr, __i); } + { return __atomic_impl::__sub_fetch_flt(this->_M_ptr, __i); } + }; - private: - _Fp* _M_ptr; + template + struct __atomic_ref + : __atomic_ref_base + { + using difference_type = typename __atomic_ref_base::value_type; + using __atomic_ref_base::__atomic_ref_base; }; // base class for atomic_ref - template - struct __atomic_ref<_Tp*, false, false> + template + struct __atomic_ref<_Pt, false, false, true> + : __atomic_ref_base<_Pt> { - public: - using value_type = _Tp*; + using value_type = typename __atomic_ref_base<_Pt>::value_type; using difference_type = ptrdiff_t; - static constexpr bool is_always_lock_free = ATOMIC_POINTER_LOCK_FREE == 2; - - static constexpr size_t required_alignment = __alignof__(_Tp*); - - __atomic_ref() = delete; - __atomic_ref& operator=(const __atomic_ref&) = delete; - - explicit - __atomic_ref(_Tp*& __t) : _M_ptr(std::__addressof(__t)) - { - __glibcxx_assert(((__UINTPTR_TYPE__)_M_ptr % required_alignment) == 0); - } - - __atomic_ref(const __atomic_ref&) noexcept = default; - - _Tp* - operator=(_Tp* __t) const noexcept - { - this->store(__t); - return __t; - } - - operator _Tp*() const noexcept { return this->load(); } - - bool - is_lock_free() const noexcept - { - return __atomic_impl::is_lock_free(); - } - - void - store(_Tp* __t, memory_order __m = memory_order_seq_cst) const noexcept - { __atomic_impl::store(_M_ptr, __t, __m); } - - _Tp* - load(memory_order __m = memory_order_seq_cst) const noexcept - { return __atomic_impl::load(_M_ptr, __m); } - - _Tp* - exchange(_Tp* __desired, - memory_order __m = memory_order_seq_cst) const noexcept - { return __atomic_impl::exchange(_M_ptr, __desired, __m); } - - bool - compare_exchange_weak(_Tp*& __expected, _Tp* __desired, - memory_order __success, - memory_order __failure) const noexcept - { - return __atomic_impl::compare_exchange_weak( - _M_ptr, __expected, __desired, __success, __failure); - } - - bool - compare_exchange_strong(_Tp*& __expected, _Tp* __desired, - memory_order __success, - memory_order __failure) const noexcept - { - return __atomic_impl::compare_exchange_strong( - _M_ptr, __expected, __desired, __success, __failure); - } - - bool - compare_exchange_weak(_Tp*& __expected, _Tp* __desired, - memory_order __order = memory_order_seq_cst) - const noexcept - { - return compare_exchange_weak(__expected, __desired, __order, - __cmpexch_failure_order(__order)); - } - - bool - compare_exchange_strong(_Tp*& __expected, _Tp* __desired, - memory_order __order = memory_order_seq_cst) - const noexcept - { - return compare_exchange_strong(__expected, __desired, __order, - __cmpexch_failure_order(__order)); - } - -#if __glibcxx_atomic_wait - _GLIBCXX_ALWAYS_INLINE void - wait(_Tp* __old, memory_order __m = memory_order_seq_cst) const noexcept - { __atomic_impl::wait(_M_ptr, __old, __m); } - - // TODO add const volatile overload - - _GLIBCXX_ALWAYS_INLINE void - notify_one() const noexcept - { __atomic_impl::notify_one(_M_ptr); } - - // TODO add const volatile overload - - _GLIBCXX_ALWAYS_INLINE void - notify_all() const noexcept - { __atomic_impl::notify_all(_M_ptr); } - - // TODO add const volatile overload -#endif // __glibcxx_atomic_wait - + using __atomic_ref_base<_Pt>::__atomic_ref_base; + using __atomic_ref_base<_Pt>::operator=; _GLIBCXX_ALWAYS_INLINE value_type fetch_add(difference_type __d, memory_order __m = memory_order_seq_cst) const noexcept - { return __atomic_impl::fetch_add(_M_ptr, _S_type_size(__d), __m); } + { return __atomic_impl::fetch_add(this->_M_ptr, _S_type_size(__d), __m); } _GLIBCXX_ALWAYS_INLINE value_type fetch_sub(difference_type __d, memory_order __m = memory_order_seq_cst) const noexcept - { return __atomic_impl::fetch_sub(_M_ptr, _S_type_size(__d), __m); } + { return __atomic_impl::fetch_sub(this->_M_ptr, _S_type_size(__d), __m); } value_type operator++(int) const noexcept @@ -2065,36 +1846,43 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION value_type operator++() const noexcept { - return __atomic_impl::__add_fetch(_M_ptr, _S_type_size(1)); + return __atomic_impl::__add_fetch(this->_M_ptr, _S_type_size(1)); } value_type operator--() const noexcept { - return __atomic_impl::__sub_fetch(_M_ptr, _S_type_size(1)); + return __atomic_impl::__sub_fetch(this->_M_ptr, _S_type_size(1)); } value_type operator+=(difference_type __d) const noexcept { - return __atomic_impl::__add_fetch(_M_ptr, _S_type_size(__d)); + return __atomic_impl::__add_fetch(this->_M_ptr, _S_type_size(__d)); } value_type operator-=(difference_type __d) const noexcept { - return __atomic_impl::__sub_fetch(_M_ptr, _S_type_size(__d)); + return __atomic_impl::__sub_fetch(this->_M_ptr, _S_type_size(__d)); } private: static constexpr ptrdiff_t _S_type_size(ptrdiff_t __d) noexcept { - static_assert(is_object_v<_Tp>); - return __d * sizeof(_Tp); + using _Et = remove_pointer_t; + static_assert(is_object_v<_Et>); + return __d * sizeof(_Et); } + }; - _Tp** _M_ptr; + template + struct __atomic_ref + : __atomic_ref_base + { + using difference_type = ptrdiff_t; + using __atomic_ref_base::__atomic_ref_base; }; #endif // C++2a diff --git a/libstdc++-v3/include/bits/basic_string.h b/libstdc++-v3/include/bits/basic_string.h index 708104984d2d..8ae6569f5016 100644 --- a/libstdc++-v3/include/bits/basic_string.h +++ b/libstdc++-v3/include/bits/basic_string.h @@ -411,7 +411,7 @@ _GLIBCXX_BEGIN_NAMESPACE_CXX11 if (__pos > this->size()) __throw_out_of_range_fmt(__N("%s: __pos (which is %zu) > " "this->size() (which is %zu)"), - __s, __pos, this->size()); + __s, (size_t)__pos, (size_t)this->size()); return __pos; } diff --git a/libstdc++-v3/include/bits/chrono_io.h b/libstdc++-v3/include/bits/chrono_io.h index 79a44d128b12..3b1f5862cba6 100644 --- a/libstdc++-v3/include/bits/chrono_io.h +++ b/libstdc++-v3/include/bits/chrono_io.h @@ -463,7 +463,7 @@ namespace __format { _M_day = __d; __parts -= _ChronoParts::_Day; - _M_weekday_index = ((unsigned)__d + 6u) % 7u; + _M_weekday_index = ((unsigned)__d + 6u) / 7u; __parts -= _ChronoParts::_WeekdayIndex; return __parts; } @@ -479,6 +479,7 @@ namespace __format return __parts; } + // pre: _M_year is set [[__gnu__::__always_inline__]] _ChronoParts _M_fill_aux(chrono::local_days __ld, _ChronoParts __parts) @@ -495,6 +496,7 @@ namespace __format return __parts; } + // pre: _M_year is set [[__gnu__::__always_inline__]] _ChronoParts _M_fill_ldays(chrono::local_days __ld, _ChronoParts __parts) @@ -559,7 +561,7 @@ namespace __format __formatter_chrono(_ChronoSpec<_CharT> __spec) noexcept : _M_spec(__spec) { } - + constexpr typename basic_format_parse_context<_CharT>::iterator _M_parse(basic_format_parse_context<_CharT>& __pc, _ChronoParts __parts, const _ChronoSpec<_CharT>& __def) @@ -2232,6 +2234,15 @@ namespace __format __format::__formatter_duration<_CharT> _M_f{__defSpec}; }; +#if __glibcxx_print >= 202406L + // _GLIBCXX_RESOLVE_LIB_DEFECTS + // 4400. enable_nonlocking_formatter_optimization for durations with custom rep + template + constexpr bool + enable_nonlocking_formatter_optimization> + = is_arithmetic_v<_Rep>; +#endif + template<__format::__char _CharT> struct formatter { @@ -2268,6 +2279,12 @@ namespace __format __format::__formatter_chrono<_CharT> _M_f{__defSpec}; }; +#if __glibcxx_print >= 202406L + template<> + inline constexpr bool + enable_nonlocking_formatter_optimization = true; +#endif + template<__format::__char _CharT> struct formatter { @@ -2306,6 +2323,12 @@ namespace __format __format::__formatter_chrono<_CharT> _M_f{__defSpec}; }; +#if __glibcxx_print >= 202406L + template<> + inline constexpr bool + enable_nonlocking_formatter_optimization = true; +#endif + template<__format::__char _CharT> struct formatter { @@ -2342,6 +2365,12 @@ namespace __format __format::__formatter_chrono<_CharT> _M_f{__defSpec}; }; +#if __glibcxx_print >= 202406L + template<> + inline constexpr bool + enable_nonlocking_formatter_optimization = true; +#endif + template<__format::__char _CharT> struct formatter { @@ -2380,6 +2409,12 @@ namespace __format __format::__formatter_chrono<_CharT> _M_f{__defSpec}; }; +#if __glibcxx_print >= 202406L + template<> + inline constexpr bool + enable_nonlocking_formatter_optimization = true; +#endif + template<__format::__char _CharT> struct formatter { @@ -2418,6 +2453,12 @@ namespace __format __format::__formatter_chrono<_CharT> _M_f{__defSpec}; }; +#if __glibcxx_print >= 202406L + template<> + inline constexpr bool + enable_nonlocking_formatter_optimization = true; +#endif + template<__format::__char _CharT> struct formatter { @@ -2456,6 +2497,12 @@ namespace __format __format::__formatter_chrono<_CharT> _M_f{__defSpec}; }; +#if __glibcxx_print >= 202406L + template<> + inline constexpr bool + enable_nonlocking_formatter_optimization = true; +#endif + template<__format::__char _CharT> struct formatter { @@ -2495,6 +2542,12 @@ namespace __format __format::__formatter_chrono<_CharT> _M_f{__defSpec}; }; +#if __glibcxx_print >= 202406L + template<> + inline constexpr bool + enable_nonlocking_formatter_optimization = true; +#endif + template<__format::__char _CharT> struct formatter { @@ -2533,6 +2586,12 @@ namespace __format __format::__formatter_chrono<_CharT> _M_f{__defSpec}; }; +#if __glibcxx_print >= 202406L + template<> + inline constexpr bool + enable_nonlocking_formatter_optimization = true; +#endif + template<__format::__char _CharT> struct formatter { @@ -2572,6 +2631,12 @@ namespace __format __format::__formatter_chrono<_CharT> _M_f{__defSpec}; }; +#if __glibcxx_print >= 202406L + template<> + inline constexpr bool + enable_nonlocking_formatter_optimization = true; +#endif + template<__format::__char _CharT> struct formatter { @@ -2611,6 +2676,12 @@ namespace __format __format::__formatter_chrono<_CharT> _M_f{__defSpec}; }; +#if __glibcxx_print >= 202406L + template<> + inline constexpr bool + enable_nonlocking_formatter_optimization = true; +#endif + template<__format::__char _CharT> struct formatter { @@ -2649,6 +2720,12 @@ namespace __format __format::__formatter_chrono<_CharT> _M_f{__defSpec}; }; +#if __glibcxx_print >= 202406L + template<> + inline constexpr bool + enable_nonlocking_formatter_optimization = true; +#endif + template<__format::__char _CharT> struct formatter { @@ -2671,8 +2748,7 @@ namespace __format if (__parts == 0) return _M_f._M_format(__cd, __fc); - chrono::local_days __ld(__t); - __cd._M_fill_ldays(__ld, __parts); + __cd._M_fill_ldays(chrono::local_days(__t), __parts); return _M_f._M_format(__cd, __fc); } @@ -2692,6 +2768,12 @@ namespace __format __format::__formatter_chrono<_CharT> _M_f{__defSpec}; }; +#if __glibcxx_print >= 202406L + template<> + inline constexpr bool + enable_nonlocking_formatter_optimization = true; +#endif + template<__format::__char _CharT> struct formatter { @@ -2707,19 +2789,17 @@ namespace __format format(const chrono::year_month_day_last& __t, basic_format_context<_Out, _CharT>& __fc) const { + using enum __format::_ChronoParts; + __format::_ChronoData<_CharT> __cd{}; auto __parts = _M_f._M_spec._M_needed; __parts = __cd._M_fill_year_month(__t, __parts); + if (_M_f._M_spec._M_needs(_Day|_WeekdayIndex)) + __parts = __cd._M_fill_day(__t.day(), __parts); if (__parts == 0) return _M_f._M_format(__cd, __fc); - chrono::local_days __ld(__t); - __parts = __cd._M_fill_ldays(__ld, __parts); - if (__parts == 0) - return _M_f._M_format(__cd, __fc); - - chrono::year_month_day __ymd(__ld); - __cd._M_fill_day(__ymd.day(), __parts); + __cd._M_fill_ldays(chrono::local_days(__t), __parts); return _M_f._M_format(__cd, __fc); } @@ -2741,6 +2821,12 @@ namespace __format __format::__formatter_chrono<_CharT> _M_f{__defSpec}; }; +#if __glibcxx_print >= 202406L + template<> + inline constexpr bool + enable_nonlocking_formatter_optimization = true; +#endif + template<__format::__char _CharT> struct formatter { @@ -2760,6 +2846,10 @@ namespace __format auto __parts = _M_f._M_spec._M_needed; __parts = __cd._M_fill_year_month(__t, __parts); __parts = __cd._M_fill_weekday(__t.weekday_indexed(), __parts); + if (__t.index() == 0) [[unlikely]] + // n.b. day cannot be negative, so any 0th weekday uses + // value-initialized (0) day of month + __parts -= __format::_ChronoParts::_Day; if (__parts == 0) return _M_f._M_format(__cd, __fc); @@ -2768,9 +2858,9 @@ namespace __format if (__parts == 0) return _M_f._M_format(__cd, __fc); - chrono::year_month_day __ymd(__ld); + auto __dom = __ld - chrono::local_days(__t.year()/__t.month()/0); // n.b. weekday index is supplied by input, do not override it - __cd._M_day = __ymd.day(); + __cd._M_day = chrono::day(__dom.count()); return _M_f._M_format(__cd, __fc); } @@ -2792,6 +2882,12 @@ namespace __format __format::__formatter_chrono<_CharT> _M_f{__defSpec}; }; +#if __glibcxx_print >= 202406L + template<> + inline constexpr bool + enable_nonlocking_formatter_optimization = true; +#endif + template<__format::__char _CharT> struct formatter { @@ -2820,8 +2916,8 @@ namespace __format if (__parts == 0) return _M_f._M_format(__cd, __fc); - chrono::year_month_day __ymd(__ld); - __cd._M_fill_day(__ymd.day(), __parts); + auto __dom = __ld - chrono::local_days(__t.year()/__t.month()/0); + __cd._M_fill_day(chrono::day(__dom.count()), __parts); return _M_f._M_format(__cd, __fc); } @@ -2843,6 +2939,12 @@ namespace __format __format::__formatter_chrono<_CharT> _M_f{__defSpec}; }; +#if __glibcxx_print >= 202406L + template<> + inline constexpr bool + enable_nonlocking_formatter_optimization = true; +#endif + template struct formatter>, _CharT> { @@ -2887,6 +2989,15 @@ namespace __format __format::__formatter_duration<_CharT> _M_f{__defSpec}; }; +#if __glibcxx_print >= 202406L + // _GLIBCXX_RESOLVE_LIB_DEFECTS + // 4400. enable_nonlocking_formatter_optimization for durations with custom rep + template + constexpr bool + enable_nonlocking_formatter_optimization> + = enable_nonlocking_formatter_optimization<_Duration>; +#endif + #if _GLIBCXX_USE_CXX11_ABI || ! _GLIBCXX_USE_DUAL_ABI template<__format::__char _CharT> struct formatter @@ -2905,6 +3016,12 @@ namespace __format __format::__formatter_chrono_info<_CharT> _M_f; }; +#if __glibcxx_print >= 202406L + template<> + inline constexpr bool + enable_nonlocking_formatter_optimization = true; +#endif + template<__format::__char _CharT> struct formatter { @@ -2921,6 +3038,12 @@ namespace __format private: __format::__formatter_chrono_info<_CharT> _M_f; }; + +#if __glibcxx_print >= 202406L + template<> + inline constexpr bool + enable_nonlocking_formatter_optimization = true; +#endif #endif template @@ -2959,6 +3082,15 @@ namespace __format __format::__formatter_duration<_CharT> _M_f{__defSpec}; }; +#if __glibcxx_print >= 202406L + // _GLIBCXX_RESOLVE_LIB_DEFECTS + // 4400. enable_nonlocking_formatter_optimization for durations with custom rep + template + constexpr bool + enable_nonlocking_formatter_optimization> + = enable_nonlocking_formatter_optimization<_Duration>; +#endif + template struct formatter, _CharT> { @@ -3003,6 +3135,15 @@ namespace __format __format::__formatter_duration<_CharT> _M_f{__defSpec}; }; +#if __glibcxx_print >= 202406L + // _GLIBCXX_RESOLVE_LIB_DEFECTS + // 4400. enable_nonlocking_formatter_optimization for durations with custom rep + template + constexpr bool + enable_nonlocking_formatter_optimization> + = enable_nonlocking_formatter_optimization<_Duration>; +#endif + template struct formatter, _CharT> { @@ -3038,6 +3179,15 @@ namespace __format __format::__formatter_duration<_CharT> _M_f{__defSpec}; }; +#if __glibcxx_print >= 202406L + // _GLIBCXX_RESOLVE_LIB_DEFECTS + // 4400. enable_nonlocking_formatter_optimization for durations with custom rep + template + constexpr bool + enable_nonlocking_formatter_optimization> + = enable_nonlocking_formatter_optimization<_Duration>; +#endif + template struct formatter, _CharT> { @@ -3073,6 +3223,15 @@ namespace __format __format::__formatter_duration<_CharT> _M_f{__defSpec}; }; +#if __glibcxx_print >= 202406L + // _GLIBCXX_RESOLVE_LIB_DEFECTS + // 4400. enable_nonlocking_formatter_optimization for durations with custom rep + template + constexpr bool + enable_nonlocking_formatter_optimization> + = enable_nonlocking_formatter_optimization<_Duration>; +#endif + template struct formatter, _CharT> { @@ -3108,6 +3267,15 @@ namespace __format __format::__formatter_duration<_CharT> _M_f{__defSpec}; }; +#if __glibcxx_print >= 202406L + // _GLIBCXX_RESOLVE_LIB_DEFECTS + // 4400. enable_nonlocking_formatter_optimization for durations with custom rep + template + constexpr bool + enable_nonlocking_formatter_optimization> + = enable_nonlocking_formatter_optimization<_Duration>; +#endif + template struct formatter, _CharT> { @@ -3142,6 +3310,15 @@ namespace __format __format::__formatter_duration<_CharT> _M_f{__defSpec}; }; +#if __glibcxx_print >= 202406L + // _GLIBCXX_RESOLVE_LIB_DEFECTS + // 4400. enable_nonlocking_formatter_optimization for durations with custom rep + template + constexpr bool + enable_nonlocking_formatter_optimization> + = enable_nonlocking_formatter_optimization<_Duration>; +#endif + template struct formatter, _CharT> { @@ -3202,6 +3379,16 @@ namespace __format __format::__formatter_duration<_CharT> _M_f{__defSpec}; }; +#if __glibcxx_print >= 202406L + // _GLIBCXX_RESOLVE_LIB_DEFECTS + // 4400. enable_nonlocking_formatter_optimization for durations with custom rep + template + constexpr bool + enable_nonlocking_formatter_optimization< + chrono::__detail::__local_time_fmt<_Duration>> + = enable_nonlocking_formatter_optimization<_Duration>; +#endif + #if _GLIBCXX_USE_CXX11_ABI || ! _GLIBCXX_USE_DUAL_ABI template struct formatter, _CharT> @@ -3221,6 +3408,16 @@ namespace __format return _Base::format(__lf, __fc); } }; + +#if __glibcxx_print >= 202406L + // _GLIBCXX_RESOLVE_LIB_DEFECTS + // 4400. enable_nonlocking_formatter_optimization for durations with custom rep + template + constexpr bool + enable_nonlocking_formatter_optimization< + chrono::zoned_time<_Duration, const chrono::time_zone*>> + = enable_nonlocking_formatter_optimization<_Duration>; +#endif #endif namespace chrono diff --git a/libstdc++-v3/include/bits/formatfwd.h b/libstdc++-v3/include/bits/formatfwd.h index 314b55d50bcd..883b772752a7 100644 --- a/libstdc++-v3/include/bits/formatfwd.h +++ b/libstdc++-v3/include/bits/formatfwd.h @@ -190,6 +190,11 @@ namespace __format }(); #endif // format_ranges +#if __glibcxx_print >= 202403L + template + constexpr bool enable_nonlocking_formatter_optimization = false; +#endif + _GLIBCXX_END_NAMESPACE_VERSION } // namespace std #endif // __glibcxx_format diff --git a/libstdc++-v3/include/bits/hashtable.h b/libstdc++-v3/include/bits/hashtable.h index 20f9bd98d5b7..b5a71f516f88 100644 --- a/libstdc++-v3/include/bits/hashtable.h +++ b/libstdc++-v3/include/bits/hashtable.h @@ -477,15 +477,18 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION static constexpr bool _S_nothrow_move() { -#if __cplusplus <= 201402L +#if __cpp_constexpr >= 201304 // >= C++14 +# pragma GCC diagnostic push +# pragma GCC diagnostic ignored "-Wc++17-extensions" // if constexpr + if constexpr (_No_realloc) + if constexpr (is_nothrow_copy_constructible<_Hash>::value) + return is_nothrow_copy_constructible<_Equal>::value; + return false; +# pragma GCC diagnostic pop +#else // In C++11 a constexpr function must be a single statement. return __and_<__bool_constant<_No_realloc>, is_nothrow_copy_constructible<_Hash>, is_nothrow_copy_constructible<_Equal>>::value; -#else - if constexpr (_No_realloc) - if constexpr (is_nothrow_copy_constructible<_Hash>()) - return is_nothrow_copy_constructible<_Equal>(); - return false; #endif } diff --git a/libstdc++-v3/include/bits/indirect.h b/libstdc++-v3/include/bits/indirect.h index 89fa8c874fbd..2df46cc39a21 100644 --- a/libstdc++-v3/include/bits/indirect.h +++ b/libstdc++-v3/include/bits/indirect.h @@ -263,7 +263,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION _M_reset(__ptr); if constexpr (__pocma) - _M_alloc = __other._M_alloc; + _M_alloc = std::move(__other._M_alloc); return *this; } @@ -736,7 +736,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION _M_reset(__ptr); if constexpr (__pocma) - _M_alloc = __other._M_alloc; + _M_alloc = std::move(__other._M_alloc); return *this; } diff --git a/libstdc++-v3/include/bits/random.h b/libstdc++-v3/include/bits/random.h index 4049a77fbf4c..ebc863e84534 100644 --- a/libstdc++-v3/include/bits/random.h +++ b/libstdc++-v3/include/bits/random.h @@ -1778,7 +1778,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION explicit philox_engine(result_type __value) - : _M_x{}, _M_y{}, _M_k{}, _M_i(__n - 1) + : _M_x{}, _M_k{}, _M_y{}, _M_i(__n - 1) { _M_k[0] = __value & max(); } /** @brief seed sequence constructor for %philox_engine diff --git a/libstdc++-v3/include/bits/sat_arith.h b/libstdc++-v3/include/bits/sat_arith.h index 97545d272ca7..e036fc88e40b 100644 --- a/libstdc++-v3/include/bits/sat_arith.h +++ b/libstdc++-v3/include/bits/sat_arith.h @@ -87,7 +87,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION return __z; if constexpr (is_unsigned_v<_Tp>) return __gnu_cxx::__int_traits<_Tp>::__max; - else if (__x < 0 != __y < 0) + else if ((__x < 0) != (__y < 0)) return __gnu_cxx::__int_traits<_Tp>::__min; else return __gnu_cxx::__int_traits<_Tp>::__max; diff --git a/libstdc++-v3/include/bits/stl_uninitialized.h b/libstdc++-v3/include/bits/stl_uninitialized.h index 0398b65fa140..70a564659814 100644 --- a/libstdc++-v3/include/bits/stl_uninitialized.h +++ b/libstdc++-v3/include/bits/stl_uninitialized.h @@ -236,6 +236,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION #pragma GCC diagnostic push #pragma GCC diagnostic ignored "-Wc++17-extensions" +#pragma GCC diagnostic ignored "-Wclass-memaccess" /** * @brief Copies the range [first,last) into result. * @param __first An input iterator. @@ -427,6 +428,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION #if __cplusplus >= 201103L #pragma GCC diagnostic push #pragma GCC diagnostic ignored "-Wc++17-extensions" +#pragma GCC diagnostic ignored "-Wclass-memaccess" #if __glibcxx_raw_memory_algorithms >= 202411L // >= C++26 if consteval { return std::__do_uninit_fill(__first, __last, __x); @@ -529,6 +531,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION #pragma GCC diagnostic push #pragma GCC diagnostic ignored "-Wc++17-extensions" +#pragma GCC diagnostic ignored "-Wclass-memaccess" // _GLIBCXX_RESOLVE_LIB_DEFECTS // DR 1339. uninitialized_fill_n should return the end of its range /** diff --git a/libstdc++-v3/include/bits/unicode-data.h b/libstdc++-v3/include/bits/unicode-data.h index 0ab5ecb56a71..45a68de3edb7 100644 --- a/libstdc++-v3/include/bits/unicode-data.h +++ b/libstdc++-v3/include/bits/unicode-data.h @@ -51,17 +51,17 @@ 0x3250, 0xa48d, 0xa490, 0xa4c7, 0xa960, 0xa97d, 0xac00, 0xd7a4, 0xf900, 0xfb00, 0xfe10, 0xfe1a, 0xfe30, 0xfe53, 0xfe54, 0xfe67, 0xfe68, 0xfe6c, 0xff01, 0xff61, 0xffe0, 0xffe7, 0x16fe0, 0x16fe5, - 0x16ff0, 0x16ff2, 0x17000, 0x187f8, 0x18800, 0x18cd6, 0x18cff, 0x18d09, + 0x16ff0, 0x16ff7, 0x17000, 0x18cd6, 0x18cff, 0x18d1f, 0x18d80, 0x18df3, 0x1aff0, 0x1aff4, 0x1aff5, 0x1affc, 0x1affd, 0x1afff, 0x1b000, 0x1b123, 0x1b132, 0x1b133, 0x1b150, 0x1b153, 0x1b155, 0x1b156, 0x1b164, 0x1b168, 0x1b170, 0x1b2fc, 0x1d300, 0x1d357, 0x1d360, 0x1d377, 0x1f004, 0x1f005, 0x1f0cf, 0x1f0d0, 0x1f18e, 0x1f18f, 0x1f191, 0x1f19b, 0x1f200, 0x1f203, 0x1f210, 0x1f23c, 0x1f240, 0x1f249, 0x1f250, 0x1f252, 0x1f260, 0x1f266, 0x1f300, 0x1f650, 0x1f680, 0x1f6c6, 0x1f6cc, 0x1f6cd, 0x1f6d0, 0x1f6d3, - 0x1f6d5, 0x1f6d8, 0x1f6dc, 0x1f6e0, 0x1f6eb, 0x1f6ed, 0x1f6f4, 0x1f6fd, + 0x1f6d5, 0x1f6d9, 0x1f6dc, 0x1f6e0, 0x1f6eb, 0x1f6ed, 0x1f6f4, 0x1f6fd, 0x1f7e0, 0x1f7ec, 0x1f7f0, 0x1f7f1, 0x1f900, 0x1fa00, 0x1fa70, 0x1fa7d, - 0x1fa80, 0x1fa8a, 0x1fa8f, 0x1fac7, 0x1face, 0x1fadd, 0x1fadf, 0x1faea, - 0x1faf0, 0x1faf9, 0x20000, 0x2fffe, 0x30000, 0x3fffe, + 0x1fa80, 0x1fa8b, 0x1fa8e, 0x1fac7, 0x1fac8, 0x1fac9, 0x1facd, 0x1fadd, + 0x1fadf, 0x1faeb, 0x1faef, 0x1faf9, 0x20000, 0x2fffe, 0x30000, 0x3fffe, }; // Values generated by contrib/unicode/gen_libstdcxx_unicode_data.py, @@ -76,7 +76,7 @@ 0xc39, 0xc3a, 0xdbb, 0xdbc, 0xe1d, 0xe20, 0xe97, 0xe9a, 0xf65, 0xf80, 0xff7, 0xffa, 0x105d, 0x1060, 0x107f, 0x1080, 0x10b9, 0x10bc, - 0x10bf, 0x10c0, 0x10d7, 0x10e0, 0x111f, 0x112e, + 0x10bf, 0x10c0, 0x10d7, 0x10e0, 0x1121, 0x112e, 0x11c5, 0x11c6, 0x1309, 0x130a, 0x131b, 0x131e, 0x1323, 0x1326, 0x1353, 0x1354, 0x1363, 0x1364, 0x1367, 0x136c, 0x1375, 0x1378, 0x138b, 0x138e, @@ -104,11 +104,11 @@ 0x17a3, 0x17ae, 0x17b1, 0x17cc, 0x17f7, 0x1800, 0x181b, 0x181c, 0x1823, 0x1824, 0x1853, 0x1854, 0x1875, 0x1878, 0x188b, 0x188c, 0x1893, 0x1894, - 0x189d, 0x18aa, 0x18af, 0x18b0, 0x18b7, 0x18ba, + 0x189d, 0x18aa, 0x18af, 0x18b0, 0x18b7, 0x18b8, 0x18bd, 0x18c0, 0x18c9, 0x18cc, 0x18e1, 0x18ee, 0x191b, 0x191c, 0x1923, 0x1924, 0x1953, 0x1954, 0x1969, 0x196a, 0x1975, 0x1978, 0x198b, 0x198c, - 0x1993, 0x1994, 0x199d, 0x19aa, 0x19af, 0x19ba, + 0x1993, 0x1994, 0x199d, 0x19aa, 0x19af, 0x19b8, 0x19bf, 0x19c0, 0x19c9, 0x19cc, 0x19e1, 0x19e2, 0x19e9, 0x1a00, 0x1a1b, 0x1a1c, 0x1a23, 0x1a24, 0x1a8b, 0x1a8c, 0x1a93, 0x1a94, 0x1aa1, 0x1aa8, @@ -141,19 +141,19 @@ 0x32eb, 0x3300, 0x3359, 0x3360, 0x3395, 0x33a0, 0x33b7, 0x33bc, 0x3439, 0x343c, 0x34bf, 0x34c0, 0x34fb, 0x34fe, 0x3515, 0x3520, 0x3535, 0x3540, - 0x355d, 0x3560, 0x359f, 0x3600, 0x369b, 0x369c, - 0x37e9, 0x37f8, 0x3871, 0x3876, 0x3895, 0x389a, - 0x3917, 0x3920, 0x3977, 0x397a, 0x3991, 0x39a0, - 0x39f7, 0x3a00, 0x3e2d, 0x3e30, 0x3e3d, 0x3e40, - 0x3e8d, 0x3e90, 0x3e9d, 0x3ea0, 0x3eb1, 0x3eb2, - 0x3eb5, 0x3eb6, 0x3eb9, 0x3eba, 0x3ebd, 0x3ebe, - 0x3efd, 0x3f00, 0x3f6b, 0x3f6c, 0x3f8b, 0x3f8c, - 0x3fa9, 0x3fac, 0x3fb9, 0x3fba, 0x3fe1, 0x3fe4, - 0x3feb, 0x3fec, 0x3fff, 0x4020, 0x4051, 0x4060, - 0x40bf, 0x40e0, 0x40e5, 0x40e8, 0x411f, 0x4120, - 0x413b, 0x4140, 0x4183, 0x41a0, 0x41e3, 0x4200, - 0x4319, 0x4320, 0x4855, 0x4880, 0x4897, 0x48c0, - 0x56e9, 0x56ec, 0x572d, 0x572e, 0x59e9, 0x59f2, + 0x355d, 0x3560, 0x35bd, 0x35c0, 0x35d9, 0x3600, + 0x369b, 0x369c, 0x37e9, 0x37f8, 0x3871, 0x3876, + 0x3895, 0x389a, 0x3917, 0x3920, 0x3977, 0x397a, + 0x3991, 0x39a0, 0x39f7, 0x3a00, 0x3e2d, 0x3e30, + 0x3e3d, 0x3e40, 0x3e8d, 0x3e90, 0x3e9d, 0x3ea0, + 0x3eb1, 0x3eb2, 0x3eb5, 0x3eb6, 0x3eb9, 0x3eba, + 0x3ebd, 0x3ebe, 0x3efd, 0x3f00, 0x3f6b, 0x3f6c, + 0x3f8b, 0x3f8c, 0x3fa9, 0x3fac, 0x3fb9, 0x3fba, + 0x3fe1, 0x3fe4, 0x3feb, 0x3fec, 0x3fff, 0x4020, + 0x4051, 0x4060, 0x40bf, 0x40e0, 0x40e5, 0x40e8, + 0x411f, 0x4120, 0x413b, 0x4140, 0x4185, 0x41a0, + 0x41e3, 0x4200, 0x4319, 0x4320, 0x4855, 0x4880, + 0x4897, 0x48c0, 0x56e9, 0x56ec, 0x59e9, 0x59f2, 0x5a4d, 0x5a4e, 0x5a51, 0x5a5a, 0x5a5d, 0x5a60, 0x5ad1, 0x5ade, 0x5ae3, 0x5afe, 0x5b2f, 0x5b40, 0x5b4f, 0x5b50, 0x5b5f, 0x5b60, 0x5b6f, 0x5b70, @@ -164,8 +164,7 @@ 0x6201, 0x620a, 0x6261, 0x6262, 0x631f, 0x6320, 0x63cd, 0x63de, 0x643f, 0x6440, 0x1491b, 0x14920, 0x1498f, 0x149a0, 0x14c59, 0x14c80, 0x14df1, 0x14e00, - 0x14f9d, 0x14fa0, 0x14fa5, 0x14fa6, 0x14fa9, 0x14faa, - 0x14fbb, 0x14fe4, 0x1505b, 0x15060, 0x15075, 0x15080, + 0x14fbb, 0x14fe2, 0x1505b, 0x15060, 0x15075, 0x15080, 0x150f1, 0x15100, 0x1518d, 0x1519c, 0x151b5, 0x151c0, 0x152a9, 0x152be, 0x152fb, 0x15300, 0x1539d, 0x1539e, 0x153b5, 0x153bc, 0x153ff, 0x15400, 0x1546f, 0x15480, @@ -177,7 +176,6 @@ 0x1f4dd, 0x1f4e0, 0x1f5b5, 0x1f600, 0x1f60f, 0x1f626, 0x1f631, 0x1f63a, 0x1f66f, 0x1f670, 0x1f67b, 0x1f67c, 0x1f67f, 0x1f680, 0x1f685, 0x1f686, 0x1f68b, 0x1f68c, - 0x1f787, 0x1f7a6, 0x1fb21, 0x1fb24, 0x1fb91, 0x1fb9e, 0x1fba1, 0x1fbe0, 0x1fc35, 0x1fc40, 0x1fca7, 0x1fca8, 0x1fccf, 0x1fcd0, 0x1fcd9, 0x1fce0, 0x1fceb, 0x1fcec, 0x1fdfb, 0x1fe02, 0x1ff7f, 0x1ff84, 0x1ff91, 0x1ff94, @@ -201,7 +199,7 @@ 0x2106d, 0x2106e, 0x21073, 0x21078, 0x2107b, 0x2107e, 0x210ad, 0x210ae, 0x2113f, 0x2114e, 0x21161, 0x211c0, 0x211e7, 0x211e8, 0x211ed, 0x211f6, 0x21239, 0x2123e, - 0x21275, 0x2127e, 0x21281, 0x21300, 0x21371, 0x21378, + 0x21275, 0x2127e, 0x212b5, 0x21300, 0x21371, 0x21378, 0x213a1, 0x213a4, 0x21409, 0x2140a, 0x2140f, 0x21418, 0x21429, 0x2142a, 0x21431, 0x21432, 0x2146d, 0x21470, 0x21477, 0x2147e, 0x21493, 0x214a0, 0x214b3, 0x214c0, @@ -212,108 +210,112 @@ 0x21a51, 0x21a60, 0x21a75, 0x21a80, 0x21acd, 0x21ad2, 0x21b0d, 0x21b1c, 0x21b21, 0x21cc0, 0x21cff, 0x21d00, 0x21d55, 0x21d56, 0x21d5d, 0x21d60, 0x21d65, 0x21d84, - 0x21d8b, 0x21df8, 0x21e51, 0x21e60, 0x21eb5, 0x21ee0, - 0x21f15, 0x21f60, 0x21f99, 0x21fc0, 0x21fef, 0x22000, - 0x2209d, 0x220a4, 0x220ed, 0x220fe, 0x2217b, 0x2217c, - 0x22187, 0x221a0, 0x221d3, 0x221e0, 0x221f5, 0x22200, - 0x2226b, 0x2226c, 0x22291, 0x222a0, 0x222ef, 0x22300, - 0x223c1, 0x223c2, 0x223eb, 0x22400, 0x22425, 0x22426, - 0x22485, 0x22500, 0x2250f, 0x22510, 0x22513, 0x22514, - 0x2251d, 0x2251e, 0x2253d, 0x2253e, 0x22555, 0x22560, - 0x225d7, 0x225e0, 0x225f5, 0x22600, 0x22609, 0x2260a, - 0x2261b, 0x2261e, 0x22623, 0x22626, 0x22653, 0x22654, - 0x22663, 0x22664, 0x22669, 0x2266a, 0x22675, 0x22676, - 0x2268b, 0x2268e, 0x22693, 0x22696, 0x2269d, 0x226a0, - 0x226a3, 0x226ae, 0x226b1, 0x226ba, 0x226c9, 0x226cc, - 0x226db, 0x226e0, 0x226eb, 0x22700, 0x22715, 0x22716, - 0x22719, 0x2271c, 0x2271f, 0x22720, 0x2276d, 0x2276e, - 0x22783, 0x22784, 0x22787, 0x2278a, 0x2278d, 0x2278e, - 0x22797, 0x22798, 0x227ad, 0x227ae, 0x227b3, 0x227c2, - 0x227c7, 0x22800, 0x228b9, 0x228ba, 0x228c5, 0x22900, - 0x22991, 0x229a0, 0x229b5, 0x22b00, 0x22b6d, 0x22b70, - 0x22bbd, 0x22c00, 0x22c8b, 0x22ca0, 0x22cb5, 0x22cc0, - 0x22cdb, 0x22d00, 0x22d75, 0x22d80, 0x22d95, 0x22da0, - 0x22dc9, 0x22e00, 0x22e37, 0x22e3a, 0x22e59, 0x22e60, - 0x22e8f, 0x23000, 0x23079, 0x23140, 0x231e7, 0x231fe, - 0x2320f, 0x23212, 0x23215, 0x23218, 0x23229, 0x2322a, - 0x2322f, 0x23230, 0x2326d, 0x2326e, 0x23273, 0x23276, - 0x2328f, 0x232a0, 0x232b5, 0x23340, 0x23351, 0x23354, - 0x233b1, 0x233b4, 0x233cb, 0x23400, 0x23491, 0x234a0, - 0x23547, 0x23560, 0x235f3, 0x23600, 0x23615, 0x23780, - 0x237c5, 0x237e0, 0x237f5, 0x23800, 0x23813, 0x23814, - 0x2386f, 0x23870, 0x2388d, 0x238a0, 0x238db, 0x238e0, - 0x23921, 0x23924, 0x23951, 0x23952, 0x2396f, 0x23a00, - 0x23a0f, 0x23a10, 0x23a15, 0x23a16, 0x23a6f, 0x23a74, - 0x23a77, 0x23a78, 0x23a7d, 0x23a7e, 0x23a91, 0x23aa0, - 0x23ab5, 0x23ac0, 0x23acd, 0x23ace, 0x23ad3, 0x23ad4, - 0x23b1f, 0x23b20, 0x23b25, 0x23b26, 0x23b33, 0x23b40, - 0x23b55, 0x23dc0, 0x23df3, 0x23e00, 0x23e23, 0x23e24, - 0x23e77, 0x23e7c, 0x23eb7, 0x23f60, 0x23f63, 0x23f80, - 0x23fe5, 0x23ffe, 0x24735, 0x24800, 0x248df, 0x248e0, - 0x248eb, 0x24900, 0x24a89, 0x25f20, 0x25fe7, 0x26000, - 0x26861, 0x26880, 0x268ad, 0x268c0, 0x287f7, 0x28800, - 0x28c8f, 0x2c200, 0x2c275, 0x2d000, 0x2d473, 0x2d480, - 0x2d4bf, 0x2d4c0, 0x2d4d5, 0x2d4dc, 0x2d57f, 0x2d580, - 0x2d595, 0x2d5a0, 0x2d5dd, 0x2d5e0, 0x2d5ed, 0x2d600, - 0x2d68d, 0x2d6a0, 0x2d6b5, 0x2d6b6, 0x2d6c5, 0x2d6c6, - 0x2d6f1, 0x2d6fa, 0x2d721, 0x2da80, 0x2daf5, 0x2dc80, - 0x2dd37, 0x2de00, 0x2de97, 0x2de9e, 0x2df11, 0x2df1e, - 0x2df41, 0x2dfc0, 0x2dfcb, 0x2dfe0, 0x2dfe5, 0x2e000, - 0x30ff1, 0x31000, 0x319ad, 0x319fe, 0x31a13, 0x35fe0, + 0x21d91, 0x21da0, 0x21db3, 0x21df4, 0x21e51, 0x21e60, + 0x21eb5, 0x21ee0, 0x21f15, 0x21f60, 0x21f99, 0x21fc0, + 0x21fef, 0x22000, 0x2209d, 0x220a4, 0x220ed, 0x220fe, + 0x2217b, 0x2217c, 0x22187, 0x221a0, 0x221d3, 0x221e0, + 0x221f5, 0x22200, 0x2226b, 0x2226c, 0x22291, 0x222a0, + 0x222ef, 0x22300, 0x223c1, 0x223c2, 0x223eb, 0x22400, + 0x22425, 0x22426, 0x22485, 0x22500, 0x2250f, 0x22510, + 0x22513, 0x22514, 0x2251d, 0x2251e, 0x2253d, 0x2253e, + 0x22555, 0x22560, 0x225d7, 0x225e0, 0x225f5, 0x22600, + 0x22609, 0x2260a, 0x2261b, 0x2261e, 0x22623, 0x22626, + 0x22653, 0x22654, 0x22663, 0x22664, 0x22669, 0x2266a, + 0x22675, 0x22676, 0x2268b, 0x2268e, 0x22693, 0x22696, + 0x2269d, 0x226a0, 0x226a3, 0x226ae, 0x226b1, 0x226ba, + 0x226c9, 0x226cc, 0x226db, 0x226e0, 0x226eb, 0x22700, + 0x22715, 0x22716, 0x22719, 0x2271c, 0x2271f, 0x22720, + 0x2276d, 0x2276e, 0x22783, 0x22784, 0x22787, 0x2278a, + 0x2278d, 0x2278e, 0x22797, 0x22798, 0x227ad, 0x227ae, + 0x227b3, 0x227c2, 0x227c7, 0x22800, 0x228b9, 0x228ba, + 0x228c5, 0x22900, 0x22991, 0x229a0, 0x229b5, 0x22b00, + 0x22b6d, 0x22b70, 0x22bbd, 0x22c00, 0x22c8b, 0x22ca0, + 0x22cb5, 0x22cc0, 0x22cdb, 0x22d00, 0x22d75, 0x22d80, + 0x22d95, 0x22da0, 0x22dc9, 0x22e00, 0x22e37, 0x22e3a, + 0x22e59, 0x22e60, 0x22e8f, 0x23000, 0x23079, 0x23140, + 0x231e7, 0x231fe, 0x2320f, 0x23212, 0x23215, 0x23218, + 0x23229, 0x2322a, 0x2322f, 0x23230, 0x2326d, 0x2326e, + 0x23273, 0x23276, 0x2328f, 0x232a0, 0x232b5, 0x23340, + 0x23351, 0x23354, 0x233b1, 0x233b4, 0x233cb, 0x23400, + 0x23491, 0x234a0, 0x23547, 0x23560, 0x235f3, 0x23600, + 0x23615, 0x236c0, 0x236d1, 0x23780, 0x237c5, 0x237e0, + 0x237f5, 0x23800, 0x23813, 0x23814, 0x2386f, 0x23870, + 0x2388d, 0x238a0, 0x238db, 0x238e0, 0x23921, 0x23924, + 0x23951, 0x23952, 0x2396f, 0x23a00, 0x23a0f, 0x23a10, + 0x23a15, 0x23a16, 0x23a6f, 0x23a74, 0x23a77, 0x23a78, + 0x23a7d, 0x23a7e, 0x23a91, 0x23aa0, 0x23ab5, 0x23ac0, + 0x23acd, 0x23ace, 0x23ad3, 0x23ad4, 0x23b1f, 0x23b20, + 0x23b25, 0x23b26, 0x23b33, 0x23b40, 0x23b55, 0x23b60, + 0x23bb9, 0x23bc0, 0x23bd5, 0x23dc0, 0x23df3, 0x23e00, + 0x23e23, 0x23e24, 0x23e77, 0x23e7c, 0x23eb7, 0x23f60, + 0x23f63, 0x23f80, 0x23fe5, 0x23ffe, 0x24735, 0x24800, + 0x248df, 0x248e0, 0x248eb, 0x24900, 0x24a89, 0x25f20, + 0x25fe7, 0x26000, 0x26861, 0x26880, 0x268ad, 0x268c0, + 0x287f7, 0x28800, 0x28c8f, 0x2c200, 0x2c275, 0x2d000, + 0x2d473, 0x2d480, 0x2d4bf, 0x2d4c0, 0x2d4d5, 0x2d4dc, + 0x2d57f, 0x2d580, 0x2d595, 0x2d5a0, 0x2d5dd, 0x2d5e0, + 0x2d5ed, 0x2d600, 0x2d68d, 0x2d6a0, 0x2d6b5, 0x2d6b6, + 0x2d6c5, 0x2d6c6, 0x2d6f1, 0x2d6fa, 0x2d721, 0x2da80, + 0x2daf5, 0x2dc80, 0x2dd37, 0x2dd40, 0x2dd73, 0x2dd76, + 0x2dda9, 0x2de00, 0x2de97, 0x2de9e, 0x2df11, 0x2df1e, + 0x2df41, 0x2dfc0, 0x2dfcb, 0x2dfe0, 0x2dfef, 0x2e000, + 0x319ad, 0x319fe, 0x31a3f, 0x31b00, 0x31be7, 0x35fe0, 0x35fe9, 0x35fea, 0x35ff9, 0x35ffa, 0x35fff, 0x36000, 0x36247, 0x36264, 0x36267, 0x362a0, 0x362a7, 0x362aa, 0x362ad, 0x362c8, 0x362d1, 0x362e0, 0x365f9, 0x37800, 0x378d7, 0x378e0, 0x378fb, 0x37900, 0x37913, 0x37920, - 0x37935, 0x37938, 0x37941, 0x39800, 0x399f5, 0x39a00, - 0x39d69, 0x39e00, 0x39e5d, 0x39e60, 0x39e8f, 0x39ea0, - 0x39f89, 0x3a000, 0x3a1ed, 0x3a200, 0x3a24f, 0x3a252, - 0x3a2e7, 0x3a2f6, 0x3a3d7, 0x3a400, 0x3a48d, 0x3a580, - 0x3a5a9, 0x3a5c0, 0x3a5e9, 0x3a600, 0x3a6af, 0x3a6c0, - 0x3a6f3, 0x3a800, 0x3a8ab, 0x3a8ac, 0x3a93b, 0x3a93c, - 0x3a941, 0x3a944, 0x3a947, 0x3a94a, 0x3a94f, 0x3a952, - 0x3a95b, 0x3a95c, 0x3a975, 0x3a976, 0x3a979, 0x3a97a, - 0x3a989, 0x3a98a, 0x3aa0d, 0x3aa0e, 0x3aa17, 0x3aa1a, - 0x3aa2b, 0x3aa2c, 0x3aa3b, 0x3aa3c, 0x3aa75, 0x3aa76, - 0x3aa7f, 0x3aa80, 0x3aa8b, 0x3aa8c, 0x3aa8f, 0x3aa94, - 0x3aaa3, 0x3aaa4, 0x3ad4d, 0x3ad50, 0x3af99, 0x3af9c, - 0x3b519, 0x3b536, 0x3b541, 0x3b542, 0x3b561, 0x3be00, - 0x3be3f, 0x3be4a, 0x3be57, 0x3c000, 0x3c00f, 0x3c010, - 0x3c033, 0x3c036, 0x3c045, 0x3c046, 0x3c04b, 0x3c04c, - 0x3c057, 0x3c060, 0x3c0dd, 0x3c11e, 0x3c121, 0x3c200, - 0x3c25b, 0x3c260, 0x3c27d, 0x3c280, 0x3c295, 0x3c29c, - 0x3c2a1, 0x3c520, 0x3c55f, 0x3c580, 0x3c5f5, 0x3c5fe, - 0x3c601, 0x3c9a0, 0x3c9f5, 0x3cba0, 0x3cbf7, 0x3cbfe, - 0x3cc01, 0x3cfc0, 0x3cfcf, 0x3cfd0, 0x3cfd9, 0x3cfda, - 0x3cfdf, 0x3cfe0, 0x3cfff, 0x3d000, 0x3d18b, 0x3d18e, - 0x3d1af, 0x3d200, 0x3d299, 0x3d2a0, 0x3d2b5, 0x3d2bc, - 0x3d2c1, 0x3d8e2, 0x3d96b, 0x3da02, 0x3da7d, 0x3dc00, - 0x3dc09, 0x3dc0a, 0x3dc41, 0x3dc42, 0x3dc47, 0x3dc48, - 0x3dc4b, 0x3dc4e, 0x3dc51, 0x3dc52, 0x3dc67, 0x3dc68, - 0x3dc71, 0x3dc72, 0x3dc75, 0x3dc76, 0x3dc79, 0x3dc84, - 0x3dc87, 0x3dc8e, 0x3dc91, 0x3dc92, 0x3dc95, 0x3dc96, - 0x3dc99, 0x3dc9a, 0x3dca1, 0x3dca2, 0x3dca7, 0x3dca8, - 0x3dcab, 0x3dcae, 0x3dcb1, 0x3dcb2, 0x3dcb5, 0x3dcb6, - 0x3dcb9, 0x3dcba, 0x3dcbd, 0x3dcbe, 0x3dcc1, 0x3dcc2, - 0x3dcc7, 0x3dcc8, 0x3dccb, 0x3dcce, 0x3dcd7, 0x3dcd8, - 0x3dce7, 0x3dce8, 0x3dcf1, 0x3dcf2, 0x3dcfb, 0x3dcfc, - 0x3dcff, 0x3dd00, 0x3dd15, 0x3dd16, 0x3dd39, 0x3dd42, - 0x3dd49, 0x3dd4a, 0x3dd55, 0x3dd56, 0x3dd79, 0x3dde0, - 0x3dde5, 0x3e000, 0x3e059, 0x3e060, 0x3e129, 0x3e140, - 0x3e15f, 0x3e162, 0x3e181, 0x3e182, 0x3e1a1, 0x3e1a2, - 0x3e1ed, 0x3e200, 0x3e35d, 0x3e3cc, 0x3e407, 0x3e420, - 0x3e479, 0x3e480, 0x3e493, 0x3e4a0, 0x3e4a5, 0x3e4c0, - 0x3e4cd, 0x3e600, 0x3edb1, 0x3edb8, 0x3eddb, 0x3ede0, - 0x3edfb, 0x3ee00, 0x3eeef, 0x3eef6, 0x3efb5, 0x3efc0, - 0x3efd9, 0x3efe0, 0x3efe3, 0x3f000, 0x3f019, 0x3f020, - 0x3f091, 0x3f0a0, 0x3f0b5, 0x3f0c0, 0x3f111, 0x3f120, - 0x3f15d, 0x3f160, 0x3f179, 0x3f180, 0x3f185, 0x3f200, - 0x3f4a9, 0x3f4c0, 0x3f4dd, 0x3f4e0, 0x3f4fb, 0x3f500, - 0x3f515, 0x3f51e, 0x3f58f, 0x3f59c, 0x3f5bb, 0x3f5be, - 0x3f5d5, 0x3f5e0, 0x3f5f3, 0x3f600, 0x3f727, 0x3f728, - 0x3f7f5, 0x40000, 0x54dc1, 0x54e00, 0x56e75, 0x56e80, - 0x5703d, 0x57040, 0x59d45, 0x59d60, 0x5d7c3, 0x5d7e0, - 0x5dcbd, 0x5f000, 0x5f43d, 0x60000, 0x62697, 0x626a0, - 0x64761, 0x1c0200, 0x1c03e1, + 0x37935, 0x37938, 0x37941, 0x39800, 0x399fb, 0x39a00, + 0x39d69, 0x39d74, 0x39da3, 0x39dc0, 0x39de3, 0x39e00, + 0x39e5d, 0x39e60, 0x39e8f, 0x39ea0, 0x39f89, 0x3a000, + 0x3a1ed, 0x3a200, 0x3a24f, 0x3a252, 0x3a2e7, 0x3a2f6, + 0x3a3d7, 0x3a400, 0x3a48d, 0x3a580, 0x3a5a9, 0x3a5c0, + 0x3a5e9, 0x3a600, 0x3a6af, 0x3a6c0, 0x3a6f3, 0x3a800, + 0x3a8ab, 0x3a8ac, 0x3a93b, 0x3a93c, 0x3a941, 0x3a944, + 0x3a947, 0x3a94a, 0x3a94f, 0x3a952, 0x3a95b, 0x3a95c, + 0x3a975, 0x3a976, 0x3a979, 0x3a97a, 0x3a989, 0x3a98a, + 0x3aa0d, 0x3aa0e, 0x3aa17, 0x3aa1a, 0x3aa2b, 0x3aa2c, + 0x3aa3b, 0x3aa3c, 0x3aa75, 0x3aa76, 0x3aa7f, 0x3aa80, + 0x3aa8b, 0x3aa8c, 0x3aa8f, 0x3aa94, 0x3aaa3, 0x3aaa4, + 0x3ad4d, 0x3ad50, 0x3af99, 0x3af9c, 0x3b519, 0x3b536, + 0x3b541, 0x3b542, 0x3b561, 0x3be00, 0x3be3f, 0x3be4a, + 0x3be57, 0x3c000, 0x3c00f, 0x3c010, 0x3c033, 0x3c036, + 0x3c045, 0x3c046, 0x3c04b, 0x3c04c, 0x3c057, 0x3c060, + 0x3c0dd, 0x3c11e, 0x3c121, 0x3c200, 0x3c25b, 0x3c260, + 0x3c27d, 0x3c280, 0x3c295, 0x3c29c, 0x3c2a1, 0x3c520, + 0x3c55f, 0x3c580, 0x3c5f5, 0x3c5fe, 0x3c601, 0x3c9a0, + 0x3c9f5, 0x3cba0, 0x3cbf7, 0x3cbfe, 0x3cc01, 0x3cd80, + 0x3cdbf, 0x3cdc0, 0x3cded, 0x3cdfc, 0x3ce01, 0x3cfc0, + 0x3cfcf, 0x3cfd0, 0x3cfd9, 0x3cfda, 0x3cfdf, 0x3cfe0, + 0x3cfff, 0x3d000, 0x3d18b, 0x3d18e, 0x3d1af, 0x3d200, + 0x3d299, 0x3d2a0, 0x3d2b5, 0x3d2bc, 0x3d2c1, 0x3d8e2, + 0x3d96b, 0x3da02, 0x3da7d, 0x3dc00, 0x3dc09, 0x3dc0a, + 0x3dc41, 0x3dc42, 0x3dc47, 0x3dc48, 0x3dc4b, 0x3dc4e, + 0x3dc51, 0x3dc52, 0x3dc67, 0x3dc68, 0x3dc71, 0x3dc72, + 0x3dc75, 0x3dc76, 0x3dc79, 0x3dc84, 0x3dc87, 0x3dc8e, + 0x3dc91, 0x3dc92, 0x3dc95, 0x3dc96, 0x3dc99, 0x3dc9a, + 0x3dca1, 0x3dca2, 0x3dca7, 0x3dca8, 0x3dcab, 0x3dcae, + 0x3dcb1, 0x3dcb2, 0x3dcb5, 0x3dcb6, 0x3dcb9, 0x3dcba, + 0x3dcbd, 0x3dcbe, 0x3dcc1, 0x3dcc2, 0x3dcc7, 0x3dcc8, + 0x3dccb, 0x3dcce, 0x3dcd7, 0x3dcd8, 0x3dce7, 0x3dce8, + 0x3dcf1, 0x3dcf2, 0x3dcfb, 0x3dcfc, 0x3dcff, 0x3dd00, + 0x3dd15, 0x3dd16, 0x3dd39, 0x3dd42, 0x3dd49, 0x3dd4a, + 0x3dd55, 0x3dd56, 0x3dd79, 0x3dde0, 0x3dde5, 0x3e000, + 0x3e059, 0x3e060, 0x3e129, 0x3e140, 0x3e15f, 0x3e162, + 0x3e181, 0x3e182, 0x3e1a1, 0x3e1a2, 0x3e1ed, 0x3e200, + 0x3e35d, 0x3e3cc, 0x3e407, 0x3e420, 0x3e479, 0x3e480, + 0x3e493, 0x3e4a0, 0x3e4a5, 0x3e4c0, 0x3e4cd, 0x3e600, + 0x3edb3, 0x3edb8, 0x3eddb, 0x3ede0, 0x3edfb, 0x3ee00, + 0x3efb5, 0x3efc0, 0x3efd9, 0x3efe0, 0x3efe3, 0x3f000, + 0x3f019, 0x3f020, 0x3f091, 0x3f0a0, 0x3f0b5, 0x3f0c0, + 0x3f111, 0x3f120, 0x3f15d, 0x3f160, 0x3f179, 0x3f180, + 0x3f185, 0x3f1a0, 0x3f1b3, 0x3f200, 0x3f4b1, 0x3f4c0, + 0x3f4dd, 0x3f4e0, 0x3f4fb, 0x3f500, 0x3f517, 0x3f51c, + 0x3f58f, 0x3f590, 0x3f593, 0x3f59a, 0x3f5bb, 0x3f5be, + 0x3f5d7, 0x3f5de, 0x3f5f3, 0x3f600, 0x3f727, 0x3f728, + 0x3f7f7, 0x40000, 0x54dc1, 0x54e00, 0x5703d, 0x57040, + 0x59d5d, 0x59d60, 0x5d7c3, 0x5d7e0, 0x5dcbd, 0x5f000, + 0x5f43d, 0x60000, 0x62697, 0x626a0, 0x668f5, 0x1c0200, + 0x1c03e1, }; enum class _Gcb_property { @@ -399,236 +401,238 @@ 0x19336, 0x19394, 0x193c0, 0x1a174, 0x1a196, 0x1a1b4, 0x1a1c0, 0x1a556, 0x1a564, 0x1a576, 0x1a584, 0x1a5f0, 0x1a604, 0x1a610, 0x1a624, 0x1a630, 0x1a654, 0x1a6d6, - 0x1a734, 0x1a7d0, 0x1a7f4, 0x1a800, 0x1ab04, 0x1acf0, - 0x1b004, 0x1b046, 0x1b050, 0x1b344, 0x1b3e6, 0x1b424, - 0x1b450, 0x1b6b4, 0x1b740, 0x1b804, 0x1b826, 0x1b830, - 0x1ba16, 0x1ba24, 0x1ba66, 0x1ba84, 0x1bae0, 0x1be64, - 0x1be76, 0x1be84, 0x1bea6, 0x1bed4, 0x1bee6, 0x1bef4, - 0x1bf40, 0x1c246, 0x1c2c4, 0x1c346, 0x1c364, 0x1c380, - 0x1cd04, 0x1cd30, 0x1cd44, 0x1ce16, 0x1ce24, 0x1ce90, - 0x1ced4, 0x1cee0, 0x1cf44, 0x1cf50, 0x1cf76, 0x1cf84, - 0x1cfa0, 0x1dc04, 0x1e000, 0x200b1, 0x200c4, 0x200da, - 0x200e1, 0x20100, 0x20281, 0x202f0, 0x20601, 0x20700, - 0x20d04, 0x20f10, 0x2cef4, 0x2cf20, 0x2d7f4, 0x2d800, - 0x2de04, 0x2e000, 0x302a4, 0x30300, 0x30994, 0x309b0, - 0xa66f4, 0xa6730, 0xa6744, 0xa67e0, 0xa69e4, 0xa6a00, - 0xa6f04, 0xa6f20, 0xa8024, 0xa8030, 0xa8064, 0xa8070, - 0xa80b4, 0xa80c0, 0xa8236, 0xa8254, 0xa8276, 0xa8280, - 0xa82c4, 0xa82d0, 0xa8806, 0xa8820, 0xa8b46, 0xa8c44, - 0xa8c60, 0xa8e04, 0xa8f20, 0xa8ff4, 0xa9000, 0xa9264, - 0xa92e0, 0xa9474, 0xa9526, 0xa9534, 0xa9540, 0xa9607, - 0xa97d0, 0xa9804, 0xa9836, 0xa9840, 0xa9b34, 0xa9b46, - 0xa9b64, 0xa9ba6, 0xa9bc4, 0xa9be6, 0xa9c04, 0xa9c10, - 0xa9e54, 0xa9e60, 0xaa294, 0xaa2f6, 0xaa314, 0xaa336, - 0xaa354, 0xaa370, 0xaa434, 0xaa440, 0xaa4c4, 0xaa4d6, - 0xaa4e0, 0xaa7c4, 0xaa7d0, 0xaab04, 0xaab10, 0xaab24, - 0xaab50, 0xaab74, 0xaab90, 0xaabe4, 0xaac00, 0xaac14, - 0xaac20, 0xaaeb6, 0xaaec4, 0xaaee6, 0xaaf00, 0xaaf56, - 0xaaf64, 0xaaf70, 0xabe36, 0xabe54, 0xabe66, 0xabe84, - 0xabe96, 0xabeb0, 0xabec6, 0xabed4, 0xabee0, 0xac00b, - 0xac01c, 0xac1cb, 0xac1dc, 0xac38b, 0xac39c, 0xac54b, - 0xac55c, 0xac70b, 0xac71c, 0xac8cb, 0xac8dc, 0xaca8b, - 0xaca9c, 0xacc4b, 0xacc5c, 0xace0b, 0xace1c, 0xacfcb, - 0xacfdc, 0xad18b, 0xad19c, 0xad34b, 0xad35c, 0xad50b, - 0xad51c, 0xad6cb, 0xad6dc, 0xad88b, 0xad89c, 0xada4b, - 0xada5c, 0xadc0b, 0xadc1c, 0xaddcb, 0xadddc, 0xadf8b, - 0xadf9c, 0xae14b, 0xae15c, 0xae30b, 0xae31c, 0xae4cb, - 0xae4dc, 0xae68b, 0xae69c, 0xae84b, 0xae85c, 0xaea0b, - 0xaea1c, 0xaebcb, 0xaebdc, 0xaed8b, 0xaed9c, 0xaef4b, - 0xaef5c, 0xaf10b, 0xaf11c, 0xaf2cb, 0xaf2dc, 0xaf48b, - 0xaf49c, 0xaf64b, 0xaf65c, 0xaf80b, 0xaf81c, 0xaf9cb, - 0xaf9dc, 0xafb8b, 0xafb9c, 0xafd4b, 0xafd5c, 0xaff0b, - 0xaff1c, 0xb00cb, 0xb00dc, 0xb028b, 0xb029c, 0xb044b, - 0xb045c, 0xb060b, 0xb061c, 0xb07cb, 0xb07dc, 0xb098b, - 0xb099c, 0xb0b4b, 0xb0b5c, 0xb0d0b, 0xb0d1c, 0xb0ecb, - 0xb0edc, 0xb108b, 0xb109c, 0xb124b, 0xb125c, 0xb140b, - 0xb141c, 0xb15cb, 0xb15dc, 0xb178b, 0xb179c, 0xb194b, - 0xb195c, 0xb1b0b, 0xb1b1c, 0xb1ccb, 0xb1cdc, 0xb1e8b, - 0xb1e9c, 0xb204b, 0xb205c, 0xb220b, 0xb221c, 0xb23cb, - 0xb23dc, 0xb258b, 0xb259c, 0xb274b, 0xb275c, 0xb290b, - 0xb291c, 0xb2acb, 0xb2adc, 0xb2c8b, 0xb2c9c, 0xb2e4b, - 0xb2e5c, 0xb300b, 0xb301c, 0xb31cb, 0xb31dc, 0xb338b, - 0xb339c, 0xb354b, 0xb355c, 0xb370b, 0xb371c, 0xb38cb, - 0xb38dc, 0xb3a8b, 0xb3a9c, 0xb3c4b, 0xb3c5c, 0xb3e0b, - 0xb3e1c, 0xb3fcb, 0xb3fdc, 0xb418b, 0xb419c, 0xb434b, - 0xb435c, 0xb450b, 0xb451c, 0xb46cb, 0xb46dc, 0xb488b, - 0xb489c, 0xb4a4b, 0xb4a5c, 0xb4c0b, 0xb4c1c, 0xb4dcb, - 0xb4ddc, 0xb4f8b, 0xb4f9c, 0xb514b, 0xb515c, 0xb530b, - 0xb531c, 0xb54cb, 0xb54dc, 0xb568b, 0xb569c, 0xb584b, - 0xb585c, 0xb5a0b, 0xb5a1c, 0xb5bcb, 0xb5bdc, 0xb5d8b, - 0xb5d9c, 0xb5f4b, 0xb5f5c, 0xb610b, 0xb611c, 0xb62cb, - 0xb62dc, 0xb648b, 0xb649c, 0xb664b, 0xb665c, 0xb680b, - 0xb681c, 0xb69cb, 0xb69dc, 0xb6b8b, 0xb6b9c, 0xb6d4b, - 0xb6d5c, 0xb6f0b, 0xb6f1c, 0xb70cb, 0xb70dc, 0xb728b, - 0xb729c, 0xb744b, 0xb745c, 0xb760b, 0xb761c, 0xb77cb, - 0xb77dc, 0xb798b, 0xb799c, 0xb7b4b, 0xb7b5c, 0xb7d0b, - 0xb7d1c, 0xb7ecb, 0xb7edc, 0xb808b, 0xb809c, 0xb824b, - 0xb825c, 0xb840b, 0xb841c, 0xb85cb, 0xb85dc, 0xb878b, - 0xb879c, 0xb894b, 0xb895c, 0xb8b0b, 0xb8b1c, 0xb8ccb, - 0xb8cdc, 0xb8e8b, 0xb8e9c, 0xb904b, 0xb905c, 0xb920b, - 0xb921c, 0xb93cb, 0xb93dc, 0xb958b, 0xb959c, 0xb974b, - 0xb975c, 0xb990b, 0xb991c, 0xb9acb, 0xb9adc, 0xb9c8b, - 0xb9c9c, 0xb9e4b, 0xb9e5c, 0xba00b, 0xba01c, 0xba1cb, - 0xba1dc, 0xba38b, 0xba39c, 0xba54b, 0xba55c, 0xba70b, - 0xba71c, 0xba8cb, 0xba8dc, 0xbaa8b, 0xbaa9c, 0xbac4b, - 0xbac5c, 0xbae0b, 0xbae1c, 0xbafcb, 0xbafdc, 0xbb18b, - 0xbb19c, 0xbb34b, 0xbb35c, 0xbb50b, 0xbb51c, 0xbb6cb, - 0xbb6dc, 0xbb88b, 0xbb89c, 0xbba4b, 0xbba5c, 0xbbc0b, - 0xbbc1c, 0xbbdcb, 0xbbddc, 0xbbf8b, 0xbbf9c, 0xbc14b, - 0xbc15c, 0xbc30b, 0xbc31c, 0xbc4cb, 0xbc4dc, 0xbc68b, - 0xbc69c, 0xbc84b, 0xbc85c, 0xbca0b, 0xbca1c, 0xbcbcb, - 0xbcbdc, 0xbcd8b, 0xbcd9c, 0xbcf4b, 0xbcf5c, 0xbd10b, - 0xbd11c, 0xbd2cb, 0xbd2dc, 0xbd48b, 0xbd49c, 0xbd64b, - 0xbd65c, 0xbd80b, 0xbd81c, 0xbd9cb, 0xbd9dc, 0xbdb8b, - 0xbdb9c, 0xbdd4b, 0xbdd5c, 0xbdf0b, 0xbdf1c, 0xbe0cb, - 0xbe0dc, 0xbe28b, 0xbe29c, 0xbe44b, 0xbe45c, 0xbe60b, - 0xbe61c, 0xbe7cb, 0xbe7dc, 0xbe98b, 0xbe99c, 0xbeb4b, - 0xbeb5c, 0xbed0b, 0xbed1c, 0xbeecb, 0xbeedc, 0xbf08b, - 0xbf09c, 0xbf24b, 0xbf25c, 0xbf40b, 0xbf41c, 0xbf5cb, - 0xbf5dc, 0xbf78b, 0xbf79c, 0xbf94b, 0xbf95c, 0xbfb0b, - 0xbfb1c, 0xbfccb, 0xbfcdc, 0xbfe8b, 0xbfe9c, 0xc004b, - 0xc005c, 0xc020b, 0xc021c, 0xc03cb, 0xc03dc, 0xc058b, - 0xc059c, 0xc074b, 0xc075c, 0xc090b, 0xc091c, 0xc0acb, - 0xc0adc, 0xc0c8b, 0xc0c9c, 0xc0e4b, 0xc0e5c, 0xc100b, - 0xc101c, 0xc11cb, 0xc11dc, 0xc138b, 0xc139c, 0xc154b, - 0xc155c, 0xc170b, 0xc171c, 0xc18cb, 0xc18dc, 0xc1a8b, - 0xc1a9c, 0xc1c4b, 0xc1c5c, 0xc1e0b, 0xc1e1c, 0xc1fcb, - 0xc1fdc, 0xc218b, 0xc219c, 0xc234b, 0xc235c, 0xc250b, - 0xc251c, 0xc26cb, 0xc26dc, 0xc288b, 0xc289c, 0xc2a4b, - 0xc2a5c, 0xc2c0b, 0xc2c1c, 0xc2dcb, 0xc2ddc, 0xc2f8b, - 0xc2f9c, 0xc314b, 0xc315c, 0xc330b, 0xc331c, 0xc34cb, - 0xc34dc, 0xc368b, 0xc369c, 0xc384b, 0xc385c, 0xc3a0b, - 0xc3a1c, 0xc3bcb, 0xc3bdc, 0xc3d8b, 0xc3d9c, 0xc3f4b, - 0xc3f5c, 0xc410b, 0xc411c, 0xc42cb, 0xc42dc, 0xc448b, - 0xc449c, 0xc464b, 0xc465c, 0xc480b, 0xc481c, 0xc49cb, - 0xc49dc, 0xc4b8b, 0xc4b9c, 0xc4d4b, 0xc4d5c, 0xc4f0b, - 0xc4f1c, 0xc50cb, 0xc50dc, 0xc528b, 0xc529c, 0xc544b, - 0xc545c, 0xc560b, 0xc561c, 0xc57cb, 0xc57dc, 0xc598b, - 0xc599c, 0xc5b4b, 0xc5b5c, 0xc5d0b, 0xc5d1c, 0xc5ecb, - 0xc5edc, 0xc608b, 0xc609c, 0xc624b, 0xc625c, 0xc640b, - 0xc641c, 0xc65cb, 0xc65dc, 0xc678b, 0xc679c, 0xc694b, - 0xc695c, 0xc6b0b, 0xc6b1c, 0xc6ccb, 0xc6cdc, 0xc6e8b, - 0xc6e9c, 0xc704b, 0xc705c, 0xc720b, 0xc721c, 0xc73cb, - 0xc73dc, 0xc758b, 0xc759c, 0xc774b, 0xc775c, 0xc790b, - 0xc791c, 0xc7acb, 0xc7adc, 0xc7c8b, 0xc7c9c, 0xc7e4b, - 0xc7e5c, 0xc800b, 0xc801c, 0xc81cb, 0xc81dc, 0xc838b, - 0xc839c, 0xc854b, 0xc855c, 0xc870b, 0xc871c, 0xc88cb, - 0xc88dc, 0xc8a8b, 0xc8a9c, 0xc8c4b, 0xc8c5c, 0xc8e0b, - 0xc8e1c, 0xc8fcb, 0xc8fdc, 0xc918b, 0xc919c, 0xc934b, - 0xc935c, 0xc950b, 0xc951c, 0xc96cb, 0xc96dc, 0xc988b, - 0xc989c, 0xc9a4b, 0xc9a5c, 0xc9c0b, 0xc9c1c, 0xc9dcb, - 0xc9ddc, 0xc9f8b, 0xc9f9c, 0xca14b, 0xca15c, 0xca30b, - 0xca31c, 0xca4cb, 0xca4dc, 0xca68b, 0xca69c, 0xca84b, - 0xca85c, 0xcaa0b, 0xcaa1c, 0xcabcb, 0xcabdc, 0xcad8b, - 0xcad9c, 0xcaf4b, 0xcaf5c, 0xcb10b, 0xcb11c, 0xcb2cb, - 0xcb2dc, 0xcb48b, 0xcb49c, 0xcb64b, 0xcb65c, 0xcb80b, - 0xcb81c, 0xcb9cb, 0xcb9dc, 0xcbb8b, 0xcbb9c, 0xcbd4b, - 0xcbd5c, 0xcbf0b, 0xcbf1c, 0xcc0cb, 0xcc0dc, 0xcc28b, - 0xcc29c, 0xcc44b, 0xcc45c, 0xcc60b, 0xcc61c, 0xcc7cb, - 0xcc7dc, 0xcc98b, 0xcc99c, 0xccb4b, 0xccb5c, 0xccd0b, - 0xccd1c, 0xccecb, 0xccedc, 0xcd08b, 0xcd09c, 0xcd24b, - 0xcd25c, 0xcd40b, 0xcd41c, 0xcd5cb, 0xcd5dc, 0xcd78b, - 0xcd79c, 0xcd94b, 0xcd95c, 0xcdb0b, 0xcdb1c, 0xcdccb, - 0xcdcdc, 0xcde8b, 0xcde9c, 0xce04b, 0xce05c, 0xce20b, - 0xce21c, 0xce3cb, 0xce3dc, 0xce58b, 0xce59c, 0xce74b, - 0xce75c, 0xce90b, 0xce91c, 0xceacb, 0xceadc, 0xcec8b, - 0xcec9c, 0xcee4b, 0xcee5c, 0xcf00b, 0xcf01c, 0xcf1cb, - 0xcf1dc, 0xcf38b, 0xcf39c, 0xcf54b, 0xcf55c, 0xcf70b, - 0xcf71c, 0xcf8cb, 0xcf8dc, 0xcfa8b, 0xcfa9c, 0xcfc4b, - 0xcfc5c, 0xcfe0b, 0xcfe1c, 0xcffcb, 0xcffdc, 0xd018b, - 0xd019c, 0xd034b, 0xd035c, 0xd050b, 0xd051c, 0xd06cb, - 0xd06dc, 0xd088b, 0xd089c, 0xd0a4b, 0xd0a5c, 0xd0c0b, - 0xd0c1c, 0xd0dcb, 0xd0ddc, 0xd0f8b, 0xd0f9c, 0xd114b, - 0xd115c, 0xd130b, 0xd131c, 0xd14cb, 0xd14dc, 0xd168b, - 0xd169c, 0xd184b, 0xd185c, 0xd1a0b, 0xd1a1c, 0xd1bcb, - 0xd1bdc, 0xd1d8b, 0xd1d9c, 0xd1f4b, 0xd1f5c, 0xd210b, - 0xd211c, 0xd22cb, 0xd22dc, 0xd248b, 0xd249c, 0xd264b, - 0xd265c, 0xd280b, 0xd281c, 0xd29cb, 0xd29dc, 0xd2b8b, - 0xd2b9c, 0xd2d4b, 0xd2d5c, 0xd2f0b, 0xd2f1c, 0xd30cb, - 0xd30dc, 0xd328b, 0xd329c, 0xd344b, 0xd345c, 0xd360b, - 0xd361c, 0xd37cb, 0xd37dc, 0xd398b, 0xd399c, 0xd3b4b, - 0xd3b5c, 0xd3d0b, 0xd3d1c, 0xd3ecb, 0xd3edc, 0xd408b, - 0xd409c, 0xd424b, 0xd425c, 0xd440b, 0xd441c, 0xd45cb, - 0xd45dc, 0xd478b, 0xd479c, 0xd494b, 0xd495c, 0xd4b0b, - 0xd4b1c, 0xd4ccb, 0xd4cdc, 0xd4e8b, 0xd4e9c, 0xd504b, - 0xd505c, 0xd520b, 0xd521c, 0xd53cb, 0xd53dc, 0xd558b, - 0xd559c, 0xd574b, 0xd575c, 0xd590b, 0xd591c, 0xd5acb, - 0xd5adc, 0xd5c8b, 0xd5c9c, 0xd5e4b, 0xd5e5c, 0xd600b, - 0xd601c, 0xd61cb, 0xd61dc, 0xd638b, 0xd639c, 0xd654b, - 0xd655c, 0xd670b, 0xd671c, 0xd68cb, 0xd68dc, 0xd6a8b, - 0xd6a9c, 0xd6c4b, 0xd6c5c, 0xd6e0b, 0xd6e1c, 0xd6fcb, - 0xd6fdc, 0xd718b, 0xd719c, 0xd734b, 0xd735c, 0xd750b, - 0xd751c, 0xd76cb, 0xd76dc, 0xd788b, 0xd789c, 0xd7a40, - 0xd7b08, 0xd7c70, 0xd7cb9, 0xd7fc0, 0xfb1e4, 0xfb1f0, - 0xfe004, 0xfe100, 0xfe204, 0xfe300, 0xfeff1, 0xff000, - 0xff9e4, 0xffa00, 0xfff01, 0xfffc0, 0x101fd4, 0x101fe0, - 0x102e04, 0x102e10, 0x103764, 0x1037b0, 0x10a014, 0x10a040, - 0x10a054, 0x10a070, 0x10a0c4, 0x10a100, 0x10a384, 0x10a3b0, - 0x10a3f4, 0x10a400, 0x10ae54, 0x10ae70, 0x10d244, 0x10d280, - 0x10d694, 0x10d6e0, 0x10eab4, 0x10ead0, 0x10efc4, 0x10f000, - 0x10f464, 0x10f510, 0x10f824, 0x10f860, 0x110006, 0x110014, - 0x110026, 0x110030, 0x110384, 0x110470, 0x110704, 0x110710, - 0x110734, 0x110750, 0x1107f4, 0x110826, 0x110830, 0x110b06, - 0x110b34, 0x110b76, 0x110b94, 0x110bb0, 0x110bd5, 0x110be0, - 0x110c24, 0x110c30, 0x110cd5, 0x110ce0, 0x111004, 0x111030, - 0x111274, 0x1112c6, 0x1112d4, 0x111350, 0x111456, 0x111470, - 0x111734, 0x111740, 0x111804, 0x111826, 0x111830, 0x111b36, - 0x111b64, 0x111bf6, 0x111c04, 0x111c10, 0x111c25, 0x111c40, - 0x111c94, 0x111cd0, 0x111ce6, 0x111cf4, 0x111d00, 0x1122c6, - 0x1122f4, 0x112326, 0x112344, 0x112380, 0x1123e4, 0x1123f0, - 0x112414, 0x112420, 0x112df4, 0x112e06, 0x112e34, 0x112eb0, - 0x113004, 0x113026, 0x113040, 0x1133b4, 0x1133d0, 0x1133e4, - 0x1133f6, 0x113404, 0x113416, 0x113450, 0x113476, 0x113490, - 0x1134b6, 0x1134d4, 0x1134e0, 0x113574, 0x113580, 0x113626, - 0x113640, 0x113664, 0x1136d0, 0x113704, 0x113750, 0x113b84, - 0x113b96, 0x113bb4, 0x113c10, 0x113c24, 0x113c30, 0x113c54, - 0x113c60, 0x113c74, 0x113ca6, 0x113cb0, 0x113cc6, 0x113ce4, - 0x113d15, 0x113d24, 0x113d30, 0x113e14, 0x113e30, 0x114356, - 0x114384, 0x114406, 0x114424, 0x114456, 0x114464, 0x114470, - 0x1145e4, 0x1145f0, 0x114b04, 0x114b16, 0x114b34, 0x114b96, - 0x114ba4, 0x114bb6, 0x114bd4, 0x114be6, 0x114bf4, 0x114c16, - 0x114c24, 0x114c40, 0x115af4, 0x115b06, 0x115b24, 0x115b60, - 0x115b86, 0x115bc4, 0x115be6, 0x115bf4, 0x115c10, 0x115dc4, - 0x115de0, 0x116306, 0x116334, 0x1163b6, 0x1163d4, 0x1163e6, - 0x1163f4, 0x116410, 0x116ab4, 0x116ac6, 0x116ad4, 0x116ae6, - 0x116b04, 0x116b80, 0x1171d4, 0x1171e6, 0x1171f4, 0x117200, - 0x117224, 0x117266, 0x117274, 0x1172c0, 0x1182c6, 0x1182f4, - 0x118386, 0x118394, 0x1183b0, 0x119304, 0x119316, 0x119360, - 0x119376, 0x119390, 0x1193b4, 0x1193f5, 0x119406, 0x119415, - 0x119426, 0x119434, 0x119440, 0x119d16, 0x119d44, 0x119d80, - 0x119da4, 0x119dc6, 0x119e04, 0x119e10, 0x119e46, 0x119e50, - 0x11a014, 0x11a0b0, 0x11a334, 0x11a396, 0x11a3a5, 0x11a3b4, - 0x11a3f0, 0x11a474, 0x11a480, 0x11a514, 0x11a576, 0x11a594, - 0x11a5c0, 0x11a845, 0x11a8a4, 0x11a976, 0x11a984, 0x11a9a0, - 0x11c2f6, 0x11c304, 0x11c370, 0x11c384, 0x11c3e6, 0x11c3f4, - 0x11c400, 0x11c924, 0x11ca80, 0x11ca96, 0x11caa4, 0x11cb16, - 0x11cb24, 0x11cb46, 0x11cb54, 0x11cb70, 0x11d314, 0x11d370, - 0x11d3a4, 0x11d3b0, 0x11d3c4, 0x11d3e0, 0x11d3f4, 0x11d465, - 0x11d474, 0x11d480, 0x11d8a6, 0x11d8f0, 0x11d904, 0x11d920, - 0x11d936, 0x11d954, 0x11d966, 0x11d974, 0x11d980, 0x11ef34, - 0x11ef56, 0x11ef70, 0x11f004, 0x11f025, 0x11f036, 0x11f040, - 0x11f346, 0x11f364, 0x11f3b0, 0x11f3e6, 0x11f404, 0x11f430, - 0x11f5a4, 0x11f5b0, 0x134301, 0x134404, 0x134410, 0x134474, - 0x134560, 0x1611e4, 0x1612a6, 0x1612d4, 0x161300, 0x16af04, - 0x16af50, 0x16b304, 0x16b370, 0x16d638, 0x16d640, 0x16d678, - 0x16d6b0, 0x16f4f4, 0x16f500, 0x16f516, 0x16f880, 0x16f8f4, - 0x16f930, 0x16fe44, 0x16fe50, 0x16ff04, 0x16ff20, 0x1bc9d4, - 0x1bc9f0, 0x1bca01, 0x1bca40, 0x1cf004, 0x1cf2e0, 0x1cf304, - 0x1cf470, 0x1d1654, 0x1d16a0, 0x1d16d4, 0x1d1731, 0x1d17b4, - 0x1d1830, 0x1d1854, 0x1d18c0, 0x1d1aa4, 0x1d1ae0, 0x1d2424, - 0x1d2450, 0x1da004, 0x1da370, 0x1da3b4, 0x1da6d0, 0x1da754, - 0x1da760, 0x1da844, 0x1da850, 0x1da9b4, 0x1daa00, 0x1daa14, - 0x1dab00, 0x1e0004, 0x1e0070, 0x1e0084, 0x1e0190, 0x1e01b4, - 0x1e0220, 0x1e0234, 0x1e0250, 0x1e0264, 0x1e02b0, 0x1e08f4, - 0x1e0900, 0x1e1304, 0x1e1370, 0x1e2ae4, 0x1e2af0, 0x1e2ec4, - 0x1e2f00, 0x1e4ec4, 0x1e4f00, 0x1e5ee4, 0x1e5f00, 0x1e8d04, - 0x1e8d70, 0x1e9444, 0x1e94b0, 0x1f1e6d, 0x1f2000, 0x1f3fb4, - 0x1f4000, 0xe00001, 0xe00204, 0xe00801, 0xe01004, 0xe01f01, - 0xe10000, + 0x1a734, 0x1a7d0, 0x1a7f4, 0x1a800, 0x1ab04, 0x1ade0, + 0x1ae04, 0x1aec0, 0x1b004, 0x1b046, 0x1b050, 0x1b344, + 0x1b3e6, 0x1b424, 0x1b450, 0x1b6b4, 0x1b740, 0x1b804, + 0x1b826, 0x1b830, 0x1ba16, 0x1ba24, 0x1ba66, 0x1ba84, + 0x1bae0, 0x1be64, 0x1be76, 0x1be84, 0x1bea6, 0x1bed4, + 0x1bee6, 0x1bef4, 0x1bf40, 0x1c246, 0x1c2c4, 0x1c346, + 0x1c364, 0x1c380, 0x1cd04, 0x1cd30, 0x1cd44, 0x1ce16, + 0x1ce24, 0x1ce90, 0x1ced4, 0x1cee0, 0x1cf44, 0x1cf50, + 0x1cf76, 0x1cf84, 0x1cfa0, 0x1dc04, 0x1e000, 0x200b1, + 0x200c4, 0x200da, 0x200e1, 0x20100, 0x20281, 0x202f0, + 0x20601, 0x20700, 0x20d04, 0x20f10, 0x2cef4, 0x2cf20, + 0x2d7f4, 0x2d800, 0x2de04, 0x2e000, 0x302a4, 0x30300, + 0x30994, 0x309b0, 0xa66f4, 0xa6730, 0xa6744, 0xa67e0, + 0xa69e4, 0xa6a00, 0xa6f04, 0xa6f20, 0xa8024, 0xa8030, + 0xa8064, 0xa8070, 0xa80b4, 0xa80c0, 0xa8236, 0xa8254, + 0xa8276, 0xa8280, 0xa82c4, 0xa82d0, 0xa8806, 0xa8820, + 0xa8b46, 0xa8c44, 0xa8c60, 0xa8e04, 0xa8f20, 0xa8ff4, + 0xa9000, 0xa9264, 0xa92e0, 0xa9474, 0xa9526, 0xa9534, + 0xa9540, 0xa9607, 0xa97d0, 0xa9804, 0xa9836, 0xa9840, + 0xa9b34, 0xa9b46, 0xa9b64, 0xa9ba6, 0xa9bc4, 0xa9be6, + 0xa9c04, 0xa9c10, 0xa9e54, 0xa9e60, 0xaa294, 0xaa2f6, + 0xaa314, 0xaa336, 0xaa354, 0xaa370, 0xaa434, 0xaa440, + 0xaa4c4, 0xaa4d6, 0xaa4e0, 0xaa7c4, 0xaa7d0, 0xaab04, + 0xaab10, 0xaab24, 0xaab50, 0xaab74, 0xaab90, 0xaabe4, + 0xaac00, 0xaac14, 0xaac20, 0xaaeb6, 0xaaec4, 0xaaee6, + 0xaaf00, 0xaaf56, 0xaaf64, 0xaaf70, 0xabe36, 0xabe54, + 0xabe66, 0xabe84, 0xabe96, 0xabeb0, 0xabec6, 0xabed4, + 0xabee0, 0xac00b, 0xac01c, 0xac1cb, 0xac1dc, 0xac38b, + 0xac39c, 0xac54b, 0xac55c, 0xac70b, 0xac71c, 0xac8cb, + 0xac8dc, 0xaca8b, 0xaca9c, 0xacc4b, 0xacc5c, 0xace0b, + 0xace1c, 0xacfcb, 0xacfdc, 0xad18b, 0xad19c, 0xad34b, + 0xad35c, 0xad50b, 0xad51c, 0xad6cb, 0xad6dc, 0xad88b, + 0xad89c, 0xada4b, 0xada5c, 0xadc0b, 0xadc1c, 0xaddcb, + 0xadddc, 0xadf8b, 0xadf9c, 0xae14b, 0xae15c, 0xae30b, + 0xae31c, 0xae4cb, 0xae4dc, 0xae68b, 0xae69c, 0xae84b, + 0xae85c, 0xaea0b, 0xaea1c, 0xaebcb, 0xaebdc, 0xaed8b, + 0xaed9c, 0xaef4b, 0xaef5c, 0xaf10b, 0xaf11c, 0xaf2cb, + 0xaf2dc, 0xaf48b, 0xaf49c, 0xaf64b, 0xaf65c, 0xaf80b, + 0xaf81c, 0xaf9cb, 0xaf9dc, 0xafb8b, 0xafb9c, 0xafd4b, + 0xafd5c, 0xaff0b, 0xaff1c, 0xb00cb, 0xb00dc, 0xb028b, + 0xb029c, 0xb044b, 0xb045c, 0xb060b, 0xb061c, 0xb07cb, + 0xb07dc, 0xb098b, 0xb099c, 0xb0b4b, 0xb0b5c, 0xb0d0b, + 0xb0d1c, 0xb0ecb, 0xb0edc, 0xb108b, 0xb109c, 0xb124b, + 0xb125c, 0xb140b, 0xb141c, 0xb15cb, 0xb15dc, 0xb178b, + 0xb179c, 0xb194b, 0xb195c, 0xb1b0b, 0xb1b1c, 0xb1ccb, + 0xb1cdc, 0xb1e8b, 0xb1e9c, 0xb204b, 0xb205c, 0xb220b, + 0xb221c, 0xb23cb, 0xb23dc, 0xb258b, 0xb259c, 0xb274b, + 0xb275c, 0xb290b, 0xb291c, 0xb2acb, 0xb2adc, 0xb2c8b, + 0xb2c9c, 0xb2e4b, 0xb2e5c, 0xb300b, 0xb301c, 0xb31cb, + 0xb31dc, 0xb338b, 0xb339c, 0xb354b, 0xb355c, 0xb370b, + 0xb371c, 0xb38cb, 0xb38dc, 0xb3a8b, 0xb3a9c, 0xb3c4b, + 0xb3c5c, 0xb3e0b, 0xb3e1c, 0xb3fcb, 0xb3fdc, 0xb418b, + 0xb419c, 0xb434b, 0xb435c, 0xb450b, 0xb451c, 0xb46cb, + 0xb46dc, 0xb488b, 0xb489c, 0xb4a4b, 0xb4a5c, 0xb4c0b, + 0xb4c1c, 0xb4dcb, 0xb4ddc, 0xb4f8b, 0xb4f9c, 0xb514b, + 0xb515c, 0xb530b, 0xb531c, 0xb54cb, 0xb54dc, 0xb568b, + 0xb569c, 0xb584b, 0xb585c, 0xb5a0b, 0xb5a1c, 0xb5bcb, + 0xb5bdc, 0xb5d8b, 0xb5d9c, 0xb5f4b, 0xb5f5c, 0xb610b, + 0xb611c, 0xb62cb, 0xb62dc, 0xb648b, 0xb649c, 0xb664b, + 0xb665c, 0xb680b, 0xb681c, 0xb69cb, 0xb69dc, 0xb6b8b, + 0xb6b9c, 0xb6d4b, 0xb6d5c, 0xb6f0b, 0xb6f1c, 0xb70cb, + 0xb70dc, 0xb728b, 0xb729c, 0xb744b, 0xb745c, 0xb760b, + 0xb761c, 0xb77cb, 0xb77dc, 0xb798b, 0xb799c, 0xb7b4b, + 0xb7b5c, 0xb7d0b, 0xb7d1c, 0xb7ecb, 0xb7edc, 0xb808b, + 0xb809c, 0xb824b, 0xb825c, 0xb840b, 0xb841c, 0xb85cb, + 0xb85dc, 0xb878b, 0xb879c, 0xb894b, 0xb895c, 0xb8b0b, + 0xb8b1c, 0xb8ccb, 0xb8cdc, 0xb8e8b, 0xb8e9c, 0xb904b, + 0xb905c, 0xb920b, 0xb921c, 0xb93cb, 0xb93dc, 0xb958b, + 0xb959c, 0xb974b, 0xb975c, 0xb990b, 0xb991c, 0xb9acb, + 0xb9adc, 0xb9c8b, 0xb9c9c, 0xb9e4b, 0xb9e5c, 0xba00b, + 0xba01c, 0xba1cb, 0xba1dc, 0xba38b, 0xba39c, 0xba54b, + 0xba55c, 0xba70b, 0xba71c, 0xba8cb, 0xba8dc, 0xbaa8b, + 0xbaa9c, 0xbac4b, 0xbac5c, 0xbae0b, 0xbae1c, 0xbafcb, + 0xbafdc, 0xbb18b, 0xbb19c, 0xbb34b, 0xbb35c, 0xbb50b, + 0xbb51c, 0xbb6cb, 0xbb6dc, 0xbb88b, 0xbb89c, 0xbba4b, + 0xbba5c, 0xbbc0b, 0xbbc1c, 0xbbdcb, 0xbbddc, 0xbbf8b, + 0xbbf9c, 0xbc14b, 0xbc15c, 0xbc30b, 0xbc31c, 0xbc4cb, + 0xbc4dc, 0xbc68b, 0xbc69c, 0xbc84b, 0xbc85c, 0xbca0b, + 0xbca1c, 0xbcbcb, 0xbcbdc, 0xbcd8b, 0xbcd9c, 0xbcf4b, + 0xbcf5c, 0xbd10b, 0xbd11c, 0xbd2cb, 0xbd2dc, 0xbd48b, + 0xbd49c, 0xbd64b, 0xbd65c, 0xbd80b, 0xbd81c, 0xbd9cb, + 0xbd9dc, 0xbdb8b, 0xbdb9c, 0xbdd4b, 0xbdd5c, 0xbdf0b, + 0xbdf1c, 0xbe0cb, 0xbe0dc, 0xbe28b, 0xbe29c, 0xbe44b, + 0xbe45c, 0xbe60b, 0xbe61c, 0xbe7cb, 0xbe7dc, 0xbe98b, + 0xbe99c, 0xbeb4b, 0xbeb5c, 0xbed0b, 0xbed1c, 0xbeecb, + 0xbeedc, 0xbf08b, 0xbf09c, 0xbf24b, 0xbf25c, 0xbf40b, + 0xbf41c, 0xbf5cb, 0xbf5dc, 0xbf78b, 0xbf79c, 0xbf94b, + 0xbf95c, 0xbfb0b, 0xbfb1c, 0xbfccb, 0xbfcdc, 0xbfe8b, + 0xbfe9c, 0xc004b, 0xc005c, 0xc020b, 0xc021c, 0xc03cb, + 0xc03dc, 0xc058b, 0xc059c, 0xc074b, 0xc075c, 0xc090b, + 0xc091c, 0xc0acb, 0xc0adc, 0xc0c8b, 0xc0c9c, 0xc0e4b, + 0xc0e5c, 0xc100b, 0xc101c, 0xc11cb, 0xc11dc, 0xc138b, + 0xc139c, 0xc154b, 0xc155c, 0xc170b, 0xc171c, 0xc18cb, + 0xc18dc, 0xc1a8b, 0xc1a9c, 0xc1c4b, 0xc1c5c, 0xc1e0b, + 0xc1e1c, 0xc1fcb, 0xc1fdc, 0xc218b, 0xc219c, 0xc234b, + 0xc235c, 0xc250b, 0xc251c, 0xc26cb, 0xc26dc, 0xc288b, + 0xc289c, 0xc2a4b, 0xc2a5c, 0xc2c0b, 0xc2c1c, 0xc2dcb, + 0xc2ddc, 0xc2f8b, 0xc2f9c, 0xc314b, 0xc315c, 0xc330b, + 0xc331c, 0xc34cb, 0xc34dc, 0xc368b, 0xc369c, 0xc384b, + 0xc385c, 0xc3a0b, 0xc3a1c, 0xc3bcb, 0xc3bdc, 0xc3d8b, + 0xc3d9c, 0xc3f4b, 0xc3f5c, 0xc410b, 0xc411c, 0xc42cb, + 0xc42dc, 0xc448b, 0xc449c, 0xc464b, 0xc465c, 0xc480b, + 0xc481c, 0xc49cb, 0xc49dc, 0xc4b8b, 0xc4b9c, 0xc4d4b, + 0xc4d5c, 0xc4f0b, 0xc4f1c, 0xc50cb, 0xc50dc, 0xc528b, + 0xc529c, 0xc544b, 0xc545c, 0xc560b, 0xc561c, 0xc57cb, + 0xc57dc, 0xc598b, 0xc599c, 0xc5b4b, 0xc5b5c, 0xc5d0b, + 0xc5d1c, 0xc5ecb, 0xc5edc, 0xc608b, 0xc609c, 0xc624b, + 0xc625c, 0xc640b, 0xc641c, 0xc65cb, 0xc65dc, 0xc678b, + 0xc679c, 0xc694b, 0xc695c, 0xc6b0b, 0xc6b1c, 0xc6ccb, + 0xc6cdc, 0xc6e8b, 0xc6e9c, 0xc704b, 0xc705c, 0xc720b, + 0xc721c, 0xc73cb, 0xc73dc, 0xc758b, 0xc759c, 0xc774b, + 0xc775c, 0xc790b, 0xc791c, 0xc7acb, 0xc7adc, 0xc7c8b, + 0xc7c9c, 0xc7e4b, 0xc7e5c, 0xc800b, 0xc801c, 0xc81cb, + 0xc81dc, 0xc838b, 0xc839c, 0xc854b, 0xc855c, 0xc870b, + 0xc871c, 0xc88cb, 0xc88dc, 0xc8a8b, 0xc8a9c, 0xc8c4b, + 0xc8c5c, 0xc8e0b, 0xc8e1c, 0xc8fcb, 0xc8fdc, 0xc918b, + 0xc919c, 0xc934b, 0xc935c, 0xc950b, 0xc951c, 0xc96cb, + 0xc96dc, 0xc988b, 0xc989c, 0xc9a4b, 0xc9a5c, 0xc9c0b, + 0xc9c1c, 0xc9dcb, 0xc9ddc, 0xc9f8b, 0xc9f9c, 0xca14b, + 0xca15c, 0xca30b, 0xca31c, 0xca4cb, 0xca4dc, 0xca68b, + 0xca69c, 0xca84b, 0xca85c, 0xcaa0b, 0xcaa1c, 0xcabcb, + 0xcabdc, 0xcad8b, 0xcad9c, 0xcaf4b, 0xcaf5c, 0xcb10b, + 0xcb11c, 0xcb2cb, 0xcb2dc, 0xcb48b, 0xcb49c, 0xcb64b, + 0xcb65c, 0xcb80b, 0xcb81c, 0xcb9cb, 0xcb9dc, 0xcbb8b, + 0xcbb9c, 0xcbd4b, 0xcbd5c, 0xcbf0b, 0xcbf1c, 0xcc0cb, + 0xcc0dc, 0xcc28b, 0xcc29c, 0xcc44b, 0xcc45c, 0xcc60b, + 0xcc61c, 0xcc7cb, 0xcc7dc, 0xcc98b, 0xcc99c, 0xccb4b, + 0xccb5c, 0xccd0b, 0xccd1c, 0xccecb, 0xccedc, 0xcd08b, + 0xcd09c, 0xcd24b, 0xcd25c, 0xcd40b, 0xcd41c, 0xcd5cb, + 0xcd5dc, 0xcd78b, 0xcd79c, 0xcd94b, 0xcd95c, 0xcdb0b, + 0xcdb1c, 0xcdccb, 0xcdcdc, 0xcde8b, 0xcde9c, 0xce04b, + 0xce05c, 0xce20b, 0xce21c, 0xce3cb, 0xce3dc, 0xce58b, + 0xce59c, 0xce74b, 0xce75c, 0xce90b, 0xce91c, 0xceacb, + 0xceadc, 0xcec8b, 0xcec9c, 0xcee4b, 0xcee5c, 0xcf00b, + 0xcf01c, 0xcf1cb, 0xcf1dc, 0xcf38b, 0xcf39c, 0xcf54b, + 0xcf55c, 0xcf70b, 0xcf71c, 0xcf8cb, 0xcf8dc, 0xcfa8b, + 0xcfa9c, 0xcfc4b, 0xcfc5c, 0xcfe0b, 0xcfe1c, 0xcffcb, + 0xcffdc, 0xd018b, 0xd019c, 0xd034b, 0xd035c, 0xd050b, + 0xd051c, 0xd06cb, 0xd06dc, 0xd088b, 0xd089c, 0xd0a4b, + 0xd0a5c, 0xd0c0b, 0xd0c1c, 0xd0dcb, 0xd0ddc, 0xd0f8b, + 0xd0f9c, 0xd114b, 0xd115c, 0xd130b, 0xd131c, 0xd14cb, + 0xd14dc, 0xd168b, 0xd169c, 0xd184b, 0xd185c, 0xd1a0b, + 0xd1a1c, 0xd1bcb, 0xd1bdc, 0xd1d8b, 0xd1d9c, 0xd1f4b, + 0xd1f5c, 0xd210b, 0xd211c, 0xd22cb, 0xd22dc, 0xd248b, + 0xd249c, 0xd264b, 0xd265c, 0xd280b, 0xd281c, 0xd29cb, + 0xd29dc, 0xd2b8b, 0xd2b9c, 0xd2d4b, 0xd2d5c, 0xd2f0b, + 0xd2f1c, 0xd30cb, 0xd30dc, 0xd328b, 0xd329c, 0xd344b, + 0xd345c, 0xd360b, 0xd361c, 0xd37cb, 0xd37dc, 0xd398b, + 0xd399c, 0xd3b4b, 0xd3b5c, 0xd3d0b, 0xd3d1c, 0xd3ecb, + 0xd3edc, 0xd408b, 0xd409c, 0xd424b, 0xd425c, 0xd440b, + 0xd441c, 0xd45cb, 0xd45dc, 0xd478b, 0xd479c, 0xd494b, + 0xd495c, 0xd4b0b, 0xd4b1c, 0xd4ccb, 0xd4cdc, 0xd4e8b, + 0xd4e9c, 0xd504b, 0xd505c, 0xd520b, 0xd521c, 0xd53cb, + 0xd53dc, 0xd558b, 0xd559c, 0xd574b, 0xd575c, 0xd590b, + 0xd591c, 0xd5acb, 0xd5adc, 0xd5c8b, 0xd5c9c, 0xd5e4b, + 0xd5e5c, 0xd600b, 0xd601c, 0xd61cb, 0xd61dc, 0xd638b, + 0xd639c, 0xd654b, 0xd655c, 0xd670b, 0xd671c, 0xd68cb, + 0xd68dc, 0xd6a8b, 0xd6a9c, 0xd6c4b, 0xd6c5c, 0xd6e0b, + 0xd6e1c, 0xd6fcb, 0xd6fdc, 0xd718b, 0xd719c, 0xd734b, + 0xd735c, 0xd750b, 0xd751c, 0xd76cb, 0xd76dc, 0xd788b, + 0xd789c, 0xd7a40, 0xd7b08, 0xd7c70, 0xd7cb9, 0xd7fc0, + 0xfb1e4, 0xfb1f0, 0xfe004, 0xfe100, 0xfe204, 0xfe300, + 0xfeff1, 0xff000, 0xff9e4, 0xffa00, 0xfff01, 0xfffc0, + 0x101fd4, 0x101fe0, 0x102e04, 0x102e10, 0x103764, 0x1037b0, + 0x10a014, 0x10a040, 0x10a054, 0x10a070, 0x10a0c4, 0x10a100, + 0x10a384, 0x10a3b0, 0x10a3f4, 0x10a400, 0x10ae54, 0x10ae70, + 0x10d244, 0x10d280, 0x10d694, 0x10d6e0, 0x10eab4, 0x10ead0, + 0x10efa4, 0x10f000, 0x10f464, 0x10f510, 0x10f824, 0x10f860, + 0x110006, 0x110014, 0x110026, 0x110030, 0x110384, 0x110470, + 0x110704, 0x110710, 0x110734, 0x110750, 0x1107f4, 0x110826, + 0x110830, 0x110b06, 0x110b34, 0x110b76, 0x110b94, 0x110bb0, + 0x110bd5, 0x110be0, 0x110c24, 0x110c30, 0x110cd5, 0x110ce0, + 0x111004, 0x111030, 0x111274, 0x1112c6, 0x1112d4, 0x111350, + 0x111456, 0x111470, 0x111734, 0x111740, 0x111804, 0x111826, + 0x111830, 0x111b36, 0x111b64, 0x111bf6, 0x111c04, 0x111c10, + 0x111c25, 0x111c40, 0x111c94, 0x111cd0, 0x111ce6, 0x111cf4, + 0x111d00, 0x1122c6, 0x1122f4, 0x112326, 0x112344, 0x112380, + 0x1123e4, 0x1123f0, 0x112414, 0x112420, 0x112df4, 0x112e06, + 0x112e34, 0x112eb0, 0x113004, 0x113026, 0x113040, 0x1133b4, + 0x1133d0, 0x1133e4, 0x1133f6, 0x113404, 0x113416, 0x113450, + 0x113476, 0x113490, 0x1134b6, 0x1134d4, 0x1134e0, 0x113574, + 0x113580, 0x113626, 0x113640, 0x113664, 0x1136d0, 0x113704, + 0x113750, 0x113b84, 0x113b96, 0x113bb4, 0x113c10, 0x113c24, + 0x113c30, 0x113c54, 0x113c60, 0x113c74, 0x113ca6, 0x113cb0, + 0x113cc6, 0x113ce4, 0x113d15, 0x113d24, 0x113d30, 0x113e14, + 0x113e30, 0x114356, 0x114384, 0x114406, 0x114424, 0x114456, + 0x114464, 0x114470, 0x1145e4, 0x1145f0, 0x114b04, 0x114b16, + 0x114b34, 0x114b96, 0x114ba4, 0x114bb6, 0x114bd4, 0x114be6, + 0x114bf4, 0x114c16, 0x114c24, 0x114c40, 0x115af4, 0x115b06, + 0x115b24, 0x115b60, 0x115b86, 0x115bc4, 0x115be6, 0x115bf4, + 0x115c10, 0x115dc4, 0x115de0, 0x116306, 0x116334, 0x1163b6, + 0x1163d4, 0x1163e6, 0x1163f4, 0x116410, 0x116ab4, 0x116ac6, + 0x116ad4, 0x116ae6, 0x116b04, 0x116b80, 0x1171d4, 0x1171e6, + 0x1171f4, 0x117200, 0x117224, 0x117266, 0x117274, 0x1172c0, + 0x1182c6, 0x1182f4, 0x118386, 0x118394, 0x1183b0, 0x119304, + 0x119316, 0x119360, 0x119376, 0x119390, 0x1193b4, 0x1193f5, + 0x119406, 0x119415, 0x119426, 0x119434, 0x119440, 0x119d16, + 0x119d44, 0x119d80, 0x119da4, 0x119dc6, 0x119e04, 0x119e10, + 0x119e46, 0x119e50, 0x11a014, 0x11a0b0, 0x11a334, 0x11a396, + 0x11a3a0, 0x11a3b4, 0x11a3f0, 0x11a474, 0x11a480, 0x11a514, + 0x11a576, 0x11a594, 0x11a5c0, 0x11a845, 0x11a8a4, 0x11a976, + 0x11a984, 0x11a9a0, 0x11b604, 0x11b616, 0x11b624, 0x11b656, + 0x11b664, 0x11b676, 0x11b680, 0x11c2f6, 0x11c304, 0x11c370, + 0x11c384, 0x11c3e6, 0x11c3f4, 0x11c400, 0x11c924, 0x11ca80, + 0x11ca96, 0x11caa4, 0x11cb16, 0x11cb24, 0x11cb46, 0x11cb54, + 0x11cb70, 0x11d314, 0x11d370, 0x11d3a4, 0x11d3b0, 0x11d3c4, + 0x11d3e0, 0x11d3f4, 0x11d465, 0x11d474, 0x11d480, 0x11d8a6, + 0x11d8f0, 0x11d904, 0x11d920, 0x11d936, 0x11d954, 0x11d966, + 0x11d974, 0x11d980, 0x11ef34, 0x11ef56, 0x11ef70, 0x11f004, + 0x11f025, 0x11f036, 0x11f040, 0x11f346, 0x11f364, 0x11f3b0, + 0x11f3e6, 0x11f404, 0x11f430, 0x11f5a4, 0x11f5b0, 0x134301, + 0x134404, 0x134410, 0x134474, 0x134560, 0x1611e4, 0x1612a6, + 0x1612d4, 0x161300, 0x16af04, 0x16af50, 0x16b304, 0x16b370, + 0x16d638, 0x16d640, 0x16d678, 0x16d6b0, 0x16f4f4, 0x16f500, + 0x16f516, 0x16f880, 0x16f8f4, 0x16f930, 0x16fe44, 0x16fe50, + 0x16ff04, 0x16ff20, 0x1bc9d4, 0x1bc9f0, 0x1bca01, 0x1bca40, + 0x1cf004, 0x1cf2e0, 0x1cf304, 0x1cf470, 0x1d1654, 0x1d16a0, + 0x1d16d4, 0x1d1731, 0x1d17b4, 0x1d1830, 0x1d1854, 0x1d18c0, + 0x1d1aa4, 0x1d1ae0, 0x1d2424, 0x1d2450, 0x1da004, 0x1da370, + 0x1da3b4, 0x1da6d0, 0x1da754, 0x1da760, 0x1da844, 0x1da850, + 0x1da9b4, 0x1daa00, 0x1daa14, 0x1dab00, 0x1e0004, 0x1e0070, + 0x1e0084, 0x1e0190, 0x1e01b4, 0x1e0220, 0x1e0234, 0x1e0250, + 0x1e0264, 0x1e02b0, 0x1e08f4, 0x1e0900, 0x1e1304, 0x1e1370, + 0x1e2ae4, 0x1e2af0, 0x1e2ec4, 0x1e2f00, 0x1e4ec4, 0x1e4f00, + 0x1e5ee4, 0x1e5f00, 0x1e6e34, 0x1e6e40, 0x1e6e64, 0x1e6e70, + 0x1e6ee4, 0x1e6f00, 0x1e6f54, 0x1e6f60, 0x1e8d04, 0x1e8d70, + 0x1e9444, 0x1e94b0, 0x1f1e6d, 0x1f2000, 0x1f3fb4, 0x1f4000, + 0xe00001, 0xe00204, 0xe00801, 0xe01004, 0xe01f01, 0xe10000, }; inline constexpr char32_t __incb_linkers[] = { - 0x094d, 0x09cd, 0x0acd, 0x0b4d, 0x0c4d, 0x0d4d, + 0x094d, 0x09cd, 0x0acd, 0x0b4d, 0x0c4d, 0x0d4d, 0x1039, 0x17d2, 0x1a60, 0x1b44, 0x1bab, 0xa9c0, 0xaaf6, 0x10a3f, 0x11133, 0x113d0, 0x1193e, 0x11a47, 0x11a99, 0x11f42, }; enum class _InCB { _Consonant = 1, _Extend = 2 }; @@ -681,94 +685,109 @@ 0x3cd6, 0x3cd8, 0x3cde, 0x3ce0, 0x3ce6, 0x3ce8, 0x3dc6, 0x3dfc, 0x3e02, 0x3e14, 0x3e1a, 0x3e20, 0x3e36, 0x3e60, 0x3e66, 0x3ef4, 0x3f1a, 0x3f1c, - 0x40b6, 0x40c4, 0x40ca, 0x40e0, 0x40e6, 0x40ec, - 0x40f6, 0x40fc, 0x4162, 0x4168, 0x417a, 0x4184, - 0x41c6, 0x41d4, 0x420a, 0x420c, 0x4216, 0x421c, - 0x4236, 0x4238, 0x4276, 0x4278, 0x4d76, 0x4d80, - 0x5c4a, 0x5c58, 0x5cca, 0x5cd4, 0x5d4a, 0x5d50, - 0x5dca, 0x5dd0, 0x5ed2, 0x5ed8, 0x5ede, 0x5ef8, - 0x5f1a, 0x5f1c, 0x5f26, 0x5f50, 0x5f76, 0x5f78, - 0x602e, 0x6038, 0x603e, 0x6040, 0x6216, 0x621c, - 0x62a6, 0x62a8, 0x6482, 0x648c, 0x649e, 0x64a4, - 0x64ca, 0x64cc, 0x64e6, 0x64f0, 0x685e, 0x6864, - 0x686e, 0x6870, 0x695a, 0x695c, 0x6962, 0x697c, - 0x6982, 0x6984, 0x698a, 0x698c, 0x6996, 0x69b4, - 0x69ce, 0x69f4, 0x69fe, 0x6a00, 0x6ac2, 0x6b3c, - 0x6c02, 0x6c10, 0x6cd2, 0x6cf8, 0x6d0a, 0x6d14, - 0x6dae, 0x6dd0, 0x6e02, 0x6e08, 0x6e8a, 0x6e98, - 0x6ea2, 0x6eb8, 0x6f9a, 0x6f9c, 0x6fa2, 0x6fa8, - 0x6fb6, 0x6fb8, 0x6fbe, 0x6fd0, 0x70b2, 0x70d0, - 0x70da, 0x70e0, 0x7342, 0x734c, 0x7352, 0x7384, - 0x738a, 0x73a4, 0x73b6, 0x73b8, 0x73d2, 0x73d4, - 0x73e2, 0x73e8, 0x7702, 0x7800, 0x8036, 0x8038, - 0x8342, 0x83c4, 0xb3be, 0xb3c8, 0xb5fe, 0xb600, - 0xb782, 0xb800, 0xc0aa, 0xc0c0, 0xc266, 0xc26c, - 0x299be, 0x299cc, 0x299d2, 0x299f8, 0x29a7a, 0x29a80, - 0x29bc2, 0x29bc8, 0x2a00a, 0x2a00c, 0x2a01a, 0x2a01c, - 0x2a02e, 0x2a030, 0x2a096, 0x2a09c, 0x2a0b2, 0x2a0b4, - 0x2a312, 0x2a318, 0x2a382, 0x2a3c8, 0x2a3fe, 0x2a400, - 0x2a49a, 0x2a4b8, 0x2a51e, 0x2a548, 0x2a54e, 0x2a550, - 0x2a602, 0x2a60c, 0x2a6ce, 0x2a6d0, 0x2a6da, 0x2a6e8, - 0x2a6f2, 0x2a6f8, 0x2a702, 0x2a704, 0x2a796, 0x2a798, - 0x2a8a6, 0x2a8bc, 0x2a8c6, 0x2a8cc, 0x2a8d6, 0x2a8dc, - 0x2a90e, 0x2a910, 0x2a932, 0x2a934, 0x2a9f2, 0x2a9f4, - 0x2aac2, 0x2aac4, 0x2aaca, 0x2aad4, 0x2aade, 0x2aae4, - 0x2aafa, 0x2ab00, 0x2ab06, 0x2ab08, 0x2abb2, 0x2abb8, - 0x2abda, 0x2abdc, 0x2af96, 0x2af98, 0x2afa2, 0x2afa4, - 0x2afb6, 0x2afb8, 0x3ec7a, 0x3ec7c, 0x3f802, 0x3f840, - 0x3f882, 0x3f8c0, 0x3fe7a, 0x3fe80, 0x407f6, 0x407f8, - 0x40b82, 0x40b84, 0x40dda, 0x40dec, 0x42806, 0x42810, - 0x42816, 0x4281c, 0x42832, 0x42840, 0x428e2, 0x428ec, - 0x428fe, 0x42900, 0x42b96, 0x42b9c, 0x43492, 0x434a0, - 0x435a6, 0x435b8, 0x43aae, 0x43ab4, 0x43bf2, 0x43c00, - 0x43d1a, 0x43d44, 0x43e0a, 0x43e18, 0x44006, 0x44008, - 0x440e2, 0x4411c, 0x441c2, 0x441c4, 0x441ce, 0x441d4, - 0x441fe, 0x44208, 0x442ce, 0x442dc, 0x442e6, 0x442ec, - 0x4430a, 0x4430c, 0x44402, 0x4440c, 0x4449e, 0x444b0, - 0x444b6, 0x444d4, 0x445ce, 0x445d0, 0x44602, 0x44608, - 0x446da, 0x446fc, 0x44702, 0x44704, 0x44726, 0x44734, - 0x4473e, 0x44740, 0x448be, 0x448c8, 0x448d2, 0x448e0, - 0x448fa, 0x448fc, 0x44906, 0x44908, 0x44b7e, 0x44b80, - 0x44b8e, 0x44bac, 0x44c02, 0x44c08, 0x44cee, 0x44cf4, - 0x44cfa, 0x44cfc, 0x44d02, 0x44d04, 0x44d36, 0x44d38, - 0x44d5e, 0x44d60, 0x44d9a, 0x44db4, 0x44dc2, 0x44dd4, - 0x44ee2, 0x44ee4, 0x44eee, 0x44f04, 0x44f0a, 0x44f0c, - 0x44f16, 0x44f18, 0x44f1e, 0x44f28, 0x44f3a, 0x44f44, - 0x44f4a, 0x44f4c, 0x44f86, 0x44f8c, 0x450e2, 0x45100, - 0x4510a, 0x45114, 0x4511a, 0x4511c, 0x4517a, 0x4517c, - 0x452c2, 0x452c4, 0x452ce, 0x452e4, 0x452ea, 0x452ec, - 0x452f6, 0x452f8, 0x452fe, 0x45304, 0x4530a, 0x45310, - 0x456be, 0x456c0, 0x456ca, 0x456d8, 0x456f2, 0x456f8, - 0x456fe, 0x45704, 0x45772, 0x45778, 0x458ce, 0x458ec, - 0x458f6, 0x458f8, 0x458fe, 0x45904, 0x45aae, 0x45ab0, - 0x45ab6, 0x45ab8, 0x45ac2, 0x45ae0, 0x45c76, 0x45c78, - 0x45c7e, 0x45c80, 0x45c8a, 0x45c98, 0x45c9e, 0x45cb0, - 0x460be, 0x460e0, 0x460e6, 0x460ec, 0x464c2, 0x464c4, - 0x464ee, 0x464fc, 0x4650e, 0x46510, 0x46752, 0x46760, - 0x4676a, 0x46770, 0x46782, 0x46784, 0x46806, 0x4682c, - 0x468ce, 0x468e4, 0x468ee, 0x468fc, 0x4691e, 0x46920, - 0x46946, 0x4695c, 0x46966, 0x46970, 0x46a2a, 0x46a5c, - 0x46a62, 0x46a68, 0x470c2, 0x470dc, 0x470e2, 0x470f8, - 0x470fe, 0x47100, 0x4724a, 0x472a0, 0x472aa, 0x472c4, - 0x472ca, 0x472d0, 0x472d6, 0x472dc, 0x474c6, 0x474dc, - 0x474ea, 0x474ec, 0x474f2, 0x474f8, 0x474fe, 0x47518, - 0x4751e, 0x47520, 0x47642, 0x47648, 0x47656, 0x47658, - 0x4765e, 0x47660, 0x47bce, 0x47bd4, 0x47c02, 0x47c08, - 0x47cda, 0x47cec, 0x47d02, 0x47d0c, 0x47d6a, 0x47d6c, - 0x4d102, 0x4d104, 0x4d11e, 0x4d158, 0x5847a, 0x584a8, - 0x584b6, 0x584c0, 0x5abc2, 0x5abd4, 0x5acc2, 0x5acdc, - 0x5bd3e, 0x5bd40, 0x5be3e, 0x5be4c, 0x5bf92, 0x5bf94, - 0x5bfc2, 0x5bfc8, 0x6f276, 0x6f27c, 0x73c02, 0x73cb8, - 0x73cc2, 0x73d1c, 0x74596, 0x745a8, 0x745b6, 0x745cc, - 0x745ee, 0x7460c, 0x74616, 0x74630, 0x746aa, 0x746b8, - 0x7490a, 0x74914, 0x76802, 0x768dc, 0x768ee, 0x769b4, - 0x769d6, 0x769d8, 0x76a12, 0x76a14, 0x76a6e, 0x76a80, - 0x76a86, 0x76ac0, 0x78002, 0x7801c, 0x78022, 0x78064, - 0x7806e, 0x78088, 0x7808e, 0x78094, 0x7809a, 0x780ac, - 0x7823e, 0x78240, 0x784c2, 0x784dc, 0x78aba, 0x78abc, - 0x78bb2, 0x78bc0, 0x793b2, 0x793c0, 0x797ba, 0x797c0, - 0x7a342, 0x7a35c, 0x7a512, 0x7a52c, 0x7cfee, 0x7d000, - 0x380082, 0x380200, 0x380402, 0x3807c0, + 0x4001, 0x40ac, 0x40b6, 0x40c4, 0x40ca, 0x40e0, + 0x40ea, 0x40ec, 0x40f6, 0x40fd, 0x4100, 0x4141, + 0x4158, 0x4162, 0x4169, 0x417a, 0x4185, 0x4188, + 0x4195, 0x419c, 0x41b9, 0x41c6, 0x41d5, 0x420a, + 0x420c, 0x4216, 0x421c, 0x4236, 0x4239, 0x423c, + 0x4276, 0x4278, 0x4d76, 0x4d80, 0x5c4a, 0x5c58, + 0x5cca, 0x5cd4, 0x5d4a, 0x5d50, 0x5dca, 0x5dd0, + 0x5e01, 0x5ed2, 0x5ed8, 0x5ede, 0x5ef8, 0x5f1a, + 0x5f1c, 0x5f26, 0x5f48, 0x5f4e, 0x5f50, 0x5f76, + 0x5f78, 0x602e, 0x6038, 0x603e, 0x6040, 0x6216, + 0x621c, 0x62a6, 0x62a8, 0x6482, 0x648c, 0x649e, + 0x64a4, 0x64ca, 0x64cc, 0x64e6, 0x64f0, 0x685e, + 0x6864, 0x686e, 0x6870, 0x6881, 0x6954, 0x695a, + 0x695c, 0x6962, 0x697c, 0x698a, 0x698c, 0x6996, + 0x69b4, 0x69ce, 0x69f4, 0x69fe, 0x6a00, 0x6ac2, + 0x6b78, 0x6b82, 0x6bb0, 0x6c02, 0x6c10, 0x6c2d, + 0x6c34, 0x6c4d, 0x6cd2, 0x6cf8, 0x6d0a, 0x6d10, + 0x6d15, 0x6d34, 0x6dae, 0x6dd0, 0x6e02, 0x6e08, + 0x6e0d, 0x6e84, 0x6e8a, 0x6e98, 0x6ea2, 0x6eac, + 0x6eb2, 0x6eb9, 0x6ec0, 0x6eed, 0x6ef8, 0x6f9a, + 0x6f9c, 0x6fa2, 0x6fa8, 0x6fb6, 0x6fb8, 0x6fbe, + 0x6fd0, 0x70b2, 0x70d0, 0x70da, 0x70e0, 0x7342, + 0x734c, 0x7352, 0x7384, 0x738a, 0x73a4, 0x73b6, + 0x73b8, 0x73d2, 0x73d4, 0x73e2, 0x73e8, 0x7702, + 0x7800, 0x8036, 0x8038, 0x8342, 0x83c4, 0xb3be, + 0xb3c8, 0xb5fe, 0xb600, 0xb782, 0xb800, 0xc0aa, + 0xc0c0, 0xc266, 0xc26c, 0x299be, 0x299cc, 0x299d2, + 0x299f8, 0x29a7a, 0x29a80, 0x29bc2, 0x29bc8, 0x2a00a, + 0x2a00c, 0x2a01a, 0x2a01c, 0x2a02e, 0x2a030, 0x2a096, + 0x2a09c, 0x2a0b2, 0x2a0b4, 0x2a312, 0x2a318, 0x2a382, + 0x2a3c8, 0x2a3fe, 0x2a400, 0x2a49a, 0x2a4b8, 0x2a51e, + 0x2a548, 0x2a54e, 0x2a550, 0x2a602, 0x2a60c, 0x2a625, + 0x2a630, 0x2a63d, 0x2a6ce, 0x2a6d0, 0x2a6da, 0x2a6e8, + 0x2a6f2, 0x2a6f8, 0x2a781, 0x2a796, 0x2a798, 0x2a79d, + 0x2a7c0, 0x2a7e9, 0x2a7fc, 0x2a8a6, 0x2a8bc, 0x2a8c6, + 0x2a8cc, 0x2a8d6, 0x2a8dc, 0x2a90e, 0x2a910, 0x2a932, + 0x2a934, 0x2a981, 0x2a9c0, 0x2a9c5, 0x2a9d0, 0x2a9e9, + 0x2a9ec, 0x2a9f2, 0x2a9f4, 0x2a9f9, 0x2aa00, 0x2aac2, + 0x2aac4, 0x2aaca, 0x2aad4, 0x2aade, 0x2aae4, 0x2aafa, + 0x2ab00, 0x2ab06, 0x2ab08, 0x2ab81, 0x2abac, 0x2abb2, + 0x2abb8, 0x2af01, 0x2af6c, 0x2af96, 0x2af98, 0x2afa2, + 0x2afa4, 0x2afb6, 0x2afb8, 0x3ec7a, 0x3ec7c, 0x3f802, + 0x3f840, 0x3f882, 0x3f8c0, 0x3fe7a, 0x3fe80, 0x407f6, + 0x407f8, 0x40b82, 0x40b84, 0x40dda, 0x40dec, 0x42801, + 0x42806, 0x42810, 0x42816, 0x4281c, 0x42832, 0x42841, + 0x42850, 0x42855, 0x42860, 0x42865, 0x428d8, 0x428e2, + 0x428ec, 0x42b96, 0x42b9c, 0x43492, 0x434a0, 0x435a6, + 0x435b8, 0x43aae, 0x43ab4, 0x43bea, 0x43c00, 0x43d1a, + 0x43d44, 0x43e0a, 0x43e18, 0x44006, 0x44008, 0x440e2, + 0x4411c, 0x441c2, 0x441c4, 0x441ce, 0x441d4, 0x441fe, + 0x44208, 0x442ce, 0x442dc, 0x442e6, 0x442ec, 0x4430a, + 0x4430c, 0x44402, 0x4440d, 0x4449e, 0x444b0, 0x444b6, + 0x444cc, 0x444d2, 0x444d4, 0x44511, 0x44514, 0x4451d, + 0x44520, 0x445ce, 0x445d0, 0x44602, 0x44608, 0x446da, + 0x446fc, 0x44702, 0x44704, 0x44726, 0x44734, 0x4473e, + 0x44740, 0x448be, 0x448c8, 0x448d2, 0x448e0, 0x448fa, + 0x448fc, 0x44906, 0x44908, 0x44b7e, 0x44b80, 0x44b8e, + 0x44bac, 0x44c02, 0x44c08, 0x44cee, 0x44cf4, 0x44cfa, + 0x44cfc, 0x44d02, 0x44d04, 0x44d36, 0x44d38, 0x44d5e, + 0x44d60, 0x44d9a, 0x44db4, 0x44dc2, 0x44dd4, 0x44e01, + 0x44e28, 0x44e2d, 0x44e30, 0x44e39, 0x44e3c, 0x44e41, + 0x44ed8, 0x44ee2, 0x44ee4, 0x44eee, 0x44f04, 0x44f0a, + 0x44f0c, 0x44f16, 0x44f18, 0x44f1e, 0x44f28, 0x44f3a, + 0x44f40, 0x44f4a, 0x44f4c, 0x44f86, 0x44f8c, 0x450e2, + 0x45100, 0x4510a, 0x45114, 0x4511a, 0x4511c, 0x4517a, + 0x4517c, 0x452c2, 0x452c4, 0x452ce, 0x452e4, 0x452ea, + 0x452ec, 0x452f6, 0x452f8, 0x452fe, 0x45304, 0x4530a, + 0x45310, 0x456be, 0x456c0, 0x456ca, 0x456d8, 0x456f2, + 0x456f8, 0x456fe, 0x45704, 0x45772, 0x45778, 0x458ce, + 0x458ec, 0x458f6, 0x458f8, 0x458fe, 0x45904, 0x45aae, + 0x45ab0, 0x45ab6, 0x45ab8, 0x45ac2, 0x45ae0, 0x45c76, + 0x45c78, 0x45c7e, 0x45c80, 0x45c8a, 0x45c98, 0x45c9e, + 0x45cb0, 0x460be, 0x460e0, 0x460e6, 0x460ec, 0x46401, + 0x4641c, 0x46425, 0x46428, 0x46431, 0x46450, 0x46455, + 0x4645c, 0x46461, 0x464c2, 0x464c4, 0x464ee, 0x464f8, + 0x4650e, 0x46510, 0x46752, 0x46760, 0x4676a, 0x46770, + 0x46782, 0x46784, 0x46801, 0x46806, 0x4682d, 0x468ce, + 0x468e4, 0x468ee, 0x468fc, 0x46941, 0x46946, 0x4695c, + 0x46966, 0x46971, 0x46a10, 0x46a2a, 0x46a5c, 0x46a62, + 0x46a64, 0x46d82, 0x46d84, 0x46d8a, 0x46d94, 0x46d9a, + 0x46d9c, 0x470c2, 0x470dc, 0x470e2, 0x470f8, 0x470fe, + 0x47100, 0x4724a, 0x472a0, 0x472aa, 0x472c4, 0x472ca, + 0x472d0, 0x472d6, 0x472dc, 0x474c6, 0x474dc, 0x474ea, + 0x474ec, 0x474f2, 0x474f8, 0x474fe, 0x47518, 0x4751e, + 0x47520, 0x47642, 0x47648, 0x47656, 0x47658, 0x4765e, + 0x47660, 0x47bce, 0x47bd4, 0x47c02, 0x47c08, 0x47c11, + 0x47c44, 0x47c49, 0x47cd0, 0x47cda, 0x47cec, 0x47d02, + 0x47d08, 0x47d6a, 0x47d6c, 0x4d102, 0x4d104, 0x4d11e, + 0x4d158, 0x5847a, 0x584a8, 0x584b6, 0x584c0, 0x5abc2, + 0x5abd4, 0x5acc2, 0x5acdc, 0x5bd3e, 0x5bd40, 0x5be3e, + 0x5be4c, 0x5bf92, 0x5bf94, 0x5bfc2, 0x5bfc8, 0x6f276, + 0x6f27c, 0x73c02, 0x73cb8, 0x73cc2, 0x73d1c, 0x74596, + 0x745a8, 0x745b6, 0x745cc, 0x745ee, 0x7460c, 0x74616, + 0x74630, 0x746aa, 0x746b8, 0x7490a, 0x74914, 0x76802, + 0x768dc, 0x768ee, 0x769b4, 0x769d6, 0x769d8, 0x76a12, + 0x76a14, 0x76a6e, 0x76a80, 0x76a86, 0x76ac0, 0x78002, + 0x7801c, 0x78022, 0x78064, 0x7806e, 0x78088, 0x7808e, + 0x78094, 0x7809a, 0x780ac, 0x7823e, 0x78240, 0x784c2, + 0x784dc, 0x78aba, 0x78abc, 0x78bb2, 0x78bc0, 0x793b2, + 0x793c0, 0x797ba, 0x797c0, 0x79b8e, 0x79b90, 0x79b9a, + 0x79b9c, 0x79bba, 0x79bc0, 0x79bd6, 0x79bd8, 0x7a342, + 0x7a35c, 0x7a512, 0x7a52c, 0x7cfee, 0x7d000, 0x380082, + 0x380200, 0x380402, 0x3807c0, }; // Table generated by contrib/unicode/gen_libstdcxx_unicode_data.py, @@ -776,24 +795,43 @@ inline constexpr char32_t __xpicto_edges[] = { 0xa9, 0xaa, 0xae, 0xaf, 0x203c, 0x203d, 0x2049, 0x204a, 0x2122, 0x2123, 0x2139, 0x213a, 0x2194, 0x219a, 0x21a9, 0x21ab, - 0x231a, 0x231c, 0x2328, 0x2329, 0x2388, 0x2389, 0x23cf, 0x23d0, - 0x23e9, 0x23f4, 0x23f8, 0x23fb, 0x24c2, 0x24c3, 0x25aa, 0x25ac, - 0x25b6, 0x25b7, 0x25c0, 0x25c1, 0x25fb, 0x25ff, 0x2600, 0x2606, - 0x2607, 0x2613, 0x2614, 0x2686, 0x2690, 0x2706, 0x2708, 0x2713, - 0x2714, 0x2715, 0x2716, 0x2717, 0x271d, 0x271e, 0x2721, 0x2722, - 0x2728, 0x2729, 0x2733, 0x2735, 0x2744, 0x2745, 0x2747, 0x2748, - 0x274c, 0x274d, 0x274e, 0x274f, 0x2753, 0x2756, 0x2757, 0x2758, - 0x2763, 0x2768, 0x2795, 0x2798, 0x27a1, 0x27a2, 0x27b0, 0x27b1, - 0x27bf, 0x27c0, 0x2934, 0x2936, 0x2b05, 0x2b08, 0x2b1b, 0x2b1d, - 0x2b50, 0x2b51, 0x2b55, 0x2b56, 0x3030, 0x3031, 0x303d, 0x303e, - 0x3297, 0x3298, 0x3299, 0x329a, 0x1f000, 0x1f100, 0x1f10d, 0x1f110, - 0x1f12f, 0x1f130, 0x1f16c, 0x1f172, 0x1f17e, 0x1f180, 0x1f18e, 0x1f18f, - 0x1f191, 0x1f19b, 0x1f1ad, 0x1f1e6, 0x1f201, 0x1f210, 0x1f21a, 0x1f21b, - 0x1f22f, 0x1f230, 0x1f232, 0x1f23b, 0x1f23c, 0x1f240, 0x1f249, 0x1f3fb, - 0x1f400, 0x1f53e, 0x1f546, 0x1f650, 0x1f680, 0x1f700, 0x1f774, 0x1f780, - 0x1f7d5, 0x1f800, 0x1f80c, 0x1f810, 0x1f848, 0x1f850, 0x1f85a, 0x1f860, - 0x1f888, 0x1f890, 0x1f8ae, 0x1f900, 0x1f90c, 0x1f93b, 0x1f93c, 0x1f946, - 0x1f947, 0x1fb00, 0x1fc00, 0x1fffe, + 0x231a, 0x231c, 0x2328, 0x2329, 0x23cf, 0x23d0, 0x23e9, 0x23f4, + 0x23f8, 0x23fb, 0x24c2, 0x24c3, 0x25aa, 0x25ac, 0x25b6, 0x25b7, + 0x25c0, 0x25c1, 0x25fb, 0x25ff, 0x2600, 0x2605, 0x260e, 0x260f, + 0x2611, 0x2612, 0x2614, 0x2616, 0x2618, 0x2619, 0x261d, 0x261e, + 0x2620, 0x2621, 0x2622, 0x2624, 0x2626, 0x2627, 0x262a, 0x262b, + 0x262e, 0x2630, 0x2638, 0x263b, 0x2640, 0x2641, 0x2642, 0x2643, + 0x2648, 0x2654, 0x265f, 0x2661, 0x2663, 0x2664, 0x2665, 0x2667, + 0x2668, 0x2669, 0x267b, 0x267c, 0x267e, 0x2680, 0x2692, 0x2698, + 0x2699, 0x269a, 0x269b, 0x269d, 0x26a0, 0x26a2, 0x26a7, 0x26a8, + 0x26aa, 0x26ac, 0x26b0, 0x26b2, 0x26bd, 0x26bf, 0x26c4, 0x26c6, + 0x26c8, 0x26c9, 0x26ce, 0x26d0, 0x26d1, 0x26d2, 0x26d3, 0x26d5, + 0x26e9, 0x26eb, 0x26f0, 0x26f6, 0x26f7, 0x26fb, 0x26fd, 0x26fe, + 0x2702, 0x2703, 0x2705, 0x2706, 0x2708, 0x270e, 0x270f, 0x2710, + 0x2712, 0x2713, 0x2714, 0x2715, 0x2716, 0x2717, 0x271d, 0x271e, + 0x2721, 0x2722, 0x2728, 0x2729, 0x2733, 0x2735, 0x2744, 0x2745, + 0x2747, 0x2748, 0x274c, 0x274d, 0x274e, 0x274f, 0x2753, 0x2756, + 0x2757, 0x2758, 0x2763, 0x2765, 0x2795, 0x2798, 0x27a1, 0x27a2, + 0x27b0, 0x27b1, 0x27bf, 0x27c0, 0x2934, 0x2936, 0x2b05, 0x2b08, + 0x2b1b, 0x2b1d, 0x2b50, 0x2b51, 0x2b55, 0x2b56, 0x3030, 0x3031, + 0x303d, 0x303e, 0x3297, 0x3298, 0x3299, 0x329a, 0x1f004, 0x1f005, + 0x1f02c, 0x1f030, 0x1f094, 0x1f0a0, 0x1f0af, 0x1f0b1, 0x1f0c0, 0x1f0c1, + 0x1f0cf, 0x1f0d1, 0x1f0f6, 0x1f100, 0x1f170, 0x1f172, 0x1f17e, 0x1f180, + 0x1f18e, 0x1f18f, 0x1f191, 0x1f19b, 0x1f1ae, 0x1f1e6, 0x1f201, 0x1f210, + 0x1f21a, 0x1f21b, 0x1f22f, 0x1f230, 0x1f232, 0x1f23b, 0x1f23c, 0x1f240, + 0x1f249, 0x1f260, 0x1f266, 0x1f322, 0x1f324, 0x1f394, 0x1f396, 0x1f398, + 0x1f399, 0x1f39c, 0x1f39e, 0x1f3f1, 0x1f3f3, 0x1f3f6, 0x1f3f7, 0x1f3fb, + 0x1f400, 0x1f4fe, 0x1f4ff, 0x1f53e, 0x1f549, 0x1f54f, 0x1f550, 0x1f568, + 0x1f56f, 0x1f571, 0x1f573, 0x1f57b, 0x1f587, 0x1f588, 0x1f58a, 0x1f58e, + 0x1f590, 0x1f591, 0x1f595, 0x1f597, 0x1f5a4, 0x1f5a6, 0x1f5a8, 0x1f5a9, + 0x1f5b1, 0x1f5b3, 0x1f5bc, 0x1f5bd, 0x1f5c2, 0x1f5c5, 0x1f5d1, 0x1f5d4, + 0x1f5dc, 0x1f5df, 0x1f5e1, 0x1f5e2, 0x1f5e3, 0x1f5e4, 0x1f5e8, 0x1f5e9, + 0x1f5ef, 0x1f5f0, 0x1f5f3, 0x1f5f4, 0x1f5fa, 0x1f650, 0x1f680, 0x1f6c6, + 0x1f6cb, 0x1f6d3, 0x1f6d5, 0x1f6e6, 0x1f6e9, 0x1f6ea, 0x1f6eb, 0x1f6f1, + 0x1f6f3, 0x1f700, 0x1f7da, 0x1f800, 0x1f80c, 0x1f810, 0x1f848, 0x1f850, + 0x1f85a, 0x1f860, 0x1f888, 0x1f890, 0x1f8ae, 0x1f8b0, 0x1f8bc, 0x1f8c0, + 0x1f8c2, 0x1f8d0, 0x1f8d9, 0x1f900, 0x1f90c, 0x1f93b, 0x1f93c, 0x1f946, + 0x1f947, 0x1fa00, 0x1fa58, 0x1fa60, 0x1fa6e, 0x1fb00, 0x1fc00, 0x1fffe, }; #undef _GLIBCXX_GET_UNICODE_DATA diff --git a/libstdc++-v3/include/bits/version.def b/libstdc++-v3/include/bits/version.def index 3a26234f87ed..83f1817bf8e4 100644 --- a/libstdc++-v3/include/bits/version.def +++ b/libstdc++-v3/include/bits/version.def @@ -1062,6 +1062,25 @@ ftms = { cxxmin = 26; extra_cond = "__glibcxx_assume_aligned " "&& __glibcxx_is_sufficiently_aligned"; + }; +}; + +// Purely internal macro padded layouts. +ftms = { + name = padded_layouts; + no_stdname = true; // internal + values = { + v = 1; + cxxmin = 26; + }; +}; + +ftms = { + name = submdspan; + no_stdname = true; // TODO: change once complete + values = { + v = 1; + cxxmin = 26; }; }; @@ -1846,7 +1865,7 @@ ftms = { ftms = { name = print; values = { - v = 202211; + v = 202406; cxxmin = 23; hosted = yes; }; diff --git a/libstdc++-v3/include/bits/version.h b/libstdc++-v3/include/bits/version.h index 46e4c1121e7a..0d6692d244a6 100644 --- a/libstdc++-v3/include/bits/version.h +++ b/libstdc++-v3/include/bits/version.h @@ -57,7 +57,7 @@ # define __cpp_lib_incomplete_container_elements 201505L # endif # endif -#endif /* !defined(__cpp_lib_incomplete_container_elements) && defined(__glibcxx_want_incomplete_container_elements) */ +#endif /* !defined(__cpp_lib_incomplete_container_elements) */ #undef __glibcxx_want_incomplete_container_elements #if !defined(__cpp_lib_uncaught_exceptions) @@ -67,7 +67,7 @@ # define __cpp_lib_uncaught_exceptions 201411L # endif # endif -#endif /* !defined(__cpp_lib_uncaught_exceptions) && defined(__glibcxx_want_uncaught_exceptions) */ +#endif /* !defined(__cpp_lib_uncaught_exceptions) */ #undef __glibcxx_want_uncaught_exceptions #if !defined(__cpp_lib_allocator_traits_is_always_equal) @@ -77,7 +77,7 @@ # define __cpp_lib_allocator_traits_is_always_equal 201411L # endif # endif -#endif /* !defined(__cpp_lib_allocator_traits_is_always_equal) && defined(__glibcxx_want_allocator_traits_is_always_equal) */ +#endif /* !defined(__cpp_lib_allocator_traits_is_always_equal) */ #undef __glibcxx_want_allocator_traits_is_always_equal #if !defined(__cpp_lib_is_null_pointer) @@ -87,7 +87,7 @@ # define __cpp_lib_is_null_pointer 201309L # endif # endif -#endif /* !defined(__cpp_lib_is_null_pointer) && defined(__glibcxx_want_is_null_pointer) */ +#endif /* !defined(__cpp_lib_is_null_pointer) */ #undef __glibcxx_want_is_null_pointer #if !defined(__cpp_lib_result_of_sfinae) @@ -97,7 +97,7 @@ # define __cpp_lib_result_of_sfinae 201210L # endif # endif -#endif /* !defined(__cpp_lib_result_of_sfinae) && defined(__glibcxx_want_result_of_sfinae) */ +#endif /* !defined(__cpp_lib_result_of_sfinae) */ #undef __glibcxx_want_result_of_sfinae #if !defined(__cpp_lib_shared_ptr_arrays) @@ -112,7 +112,7 @@ # define __cpp_lib_shared_ptr_arrays 201611L # endif # endif -#endif /* !defined(__cpp_lib_shared_ptr_arrays) && defined(__glibcxx_want_shared_ptr_arrays) */ +#endif /* !defined(__cpp_lib_shared_ptr_arrays) */ #undef __glibcxx_want_shared_ptr_arrays #if !defined(__cpp_lib_is_swappable) @@ -122,7 +122,7 @@ # define __cpp_lib_is_swappable 201603L # endif # endif -#endif /* !defined(__cpp_lib_is_swappable) && defined(__glibcxx_want_is_swappable) */ +#endif /* !defined(__cpp_lib_is_swappable) */ #undef __glibcxx_want_is_swappable #if !defined(__cpp_lib_void_t) @@ -132,7 +132,7 @@ # define __cpp_lib_void_t 201411L # endif # endif -#endif /* !defined(__cpp_lib_void_t) && defined(__glibcxx_want_void_t) */ +#endif /* !defined(__cpp_lib_void_t) */ #undef __glibcxx_want_void_t #if !defined(__cpp_lib_enable_shared_from_this) @@ -142,7 +142,7 @@ # define __cpp_lib_enable_shared_from_this 201603L # endif # endif -#endif /* !defined(__cpp_lib_enable_shared_from_this) && defined(__glibcxx_want_enable_shared_from_this) */ +#endif /* !defined(__cpp_lib_enable_shared_from_this) */ #undef __glibcxx_want_enable_shared_from_this #if !defined(__cpp_lib_math_spec_funcs) @@ -152,7 +152,7 @@ # define __STDCPP_MATH_SPEC_FUNCS__ 201003L # endif # endif -#endif /* !defined(__cpp_lib_math_spec_funcs) && defined(__glibcxx_want_math_spec_funcs) */ +#endif /* !defined(__cpp_lib_math_spec_funcs) */ #undef __glibcxx_want_math_spec_funcs #if !defined(__cpp_lib_coroutine) @@ -162,7 +162,7 @@ # define __cpp_lib_coroutine 201902L # endif # endif -#endif /* !defined(__cpp_lib_coroutine) && defined(__glibcxx_want_coroutine) */ +#endif /* !defined(__cpp_lib_coroutine) */ #undef __glibcxx_want_coroutine #if !defined(__cpp_lib_exchange_function) @@ -172,7 +172,7 @@ # define __cpp_lib_exchange_function 201304L # endif # endif -#endif /* !defined(__cpp_lib_exchange_function) && defined(__glibcxx_want_exchange_function) */ +#endif /* !defined(__cpp_lib_exchange_function) */ #undef __glibcxx_want_exchange_function #if !defined(__cpp_lib_integer_sequence) @@ -182,7 +182,7 @@ # define __cpp_lib_integer_sequence 201304L # endif # endif -#endif /* !defined(__cpp_lib_integer_sequence) && defined(__glibcxx_want_integer_sequence) */ +#endif /* !defined(__cpp_lib_integer_sequence) */ #undef __glibcxx_want_integer_sequence #if !defined(__cpp_lib_integral_constant_callable) @@ -192,7 +192,7 @@ # define __cpp_lib_integral_constant_callable 201304L # endif # endif -#endif /* !defined(__cpp_lib_integral_constant_callable) && defined(__glibcxx_want_integral_constant_callable) */ +#endif /* !defined(__cpp_lib_integral_constant_callable) */ #undef __glibcxx_want_integral_constant_callable #if !defined(__cpp_lib_is_final) @@ -202,7 +202,7 @@ # define __cpp_lib_is_final 201402L # endif # endif -#endif /* !defined(__cpp_lib_is_final) && defined(__glibcxx_want_is_final) */ +#endif /* !defined(__cpp_lib_is_final) */ #undef __glibcxx_want_is_final #if !defined(__cpp_lib_make_reverse_iterator) @@ -212,7 +212,7 @@ # define __cpp_lib_make_reverse_iterator 201402L # endif # endif -#endif /* !defined(__cpp_lib_make_reverse_iterator) && defined(__glibcxx_want_make_reverse_iterator) */ +#endif /* !defined(__cpp_lib_make_reverse_iterator) */ #undef __glibcxx_want_make_reverse_iterator #if !defined(__cpp_lib_null_iterators) @@ -222,7 +222,7 @@ # define __cpp_lib_null_iterators 201304L # endif # endif -#endif /* !defined(__cpp_lib_null_iterators) && defined(__glibcxx_want_null_iterators) */ +#endif /* !defined(__cpp_lib_null_iterators) */ #undef __glibcxx_want_null_iterators #if !defined(__cpp_lib_transformation_trait_aliases) @@ -232,7 +232,7 @@ # define __cpp_lib_transformation_trait_aliases 201304L # endif # endif -#endif /* !defined(__cpp_lib_transformation_trait_aliases) && defined(__glibcxx_want_transformation_trait_aliases) */ +#endif /* !defined(__cpp_lib_transformation_trait_aliases) */ #undef __glibcxx_want_transformation_trait_aliases #if !defined(__cpp_lib_transparent_operators) @@ -242,7 +242,7 @@ # define __cpp_lib_transparent_operators 201510L # endif # endif -#endif /* !defined(__cpp_lib_transparent_operators) && defined(__glibcxx_want_transparent_operators) */ +#endif /* !defined(__cpp_lib_transparent_operators) */ #undef __glibcxx_want_transparent_operators #if !defined(__cpp_lib_tuple_element_t) @@ -252,7 +252,7 @@ # define __cpp_lib_tuple_element_t 201402L # endif # endif -#endif /* !defined(__cpp_lib_tuple_element_t) && defined(__glibcxx_want_tuple_element_t) */ +#endif /* !defined(__cpp_lib_tuple_element_t) */ #undef __glibcxx_want_tuple_element_t #if !defined(__cpp_lib_tuples_by_type) @@ -262,7 +262,7 @@ # define __cpp_lib_tuples_by_type 201304L # endif # endif -#endif /* !defined(__cpp_lib_tuples_by_type) && defined(__glibcxx_want_tuples_by_type) */ +#endif /* !defined(__cpp_lib_tuples_by_type) */ #undef __glibcxx_want_tuples_by_type #if !defined(__cpp_lib_robust_nonmodifying_seq_ops) @@ -272,7 +272,7 @@ # define __cpp_lib_robust_nonmodifying_seq_ops 201304L # endif # endif -#endif /* !defined(__cpp_lib_robust_nonmodifying_seq_ops) && defined(__glibcxx_want_robust_nonmodifying_seq_ops) */ +#endif /* !defined(__cpp_lib_robust_nonmodifying_seq_ops) */ #undef __glibcxx_want_robust_nonmodifying_seq_ops #if !defined(__cpp_lib_to_chars) @@ -287,7 +287,7 @@ # define __cpp_lib_to_chars 201611L # endif # endif -#endif /* !defined(__cpp_lib_to_chars) && defined(__glibcxx_want_to_chars) */ +#endif /* !defined(__cpp_lib_to_chars) */ #undef __glibcxx_want_to_chars #if !defined(__cpp_lib_chrono_udls) @@ -297,7 +297,7 @@ # define __cpp_lib_chrono_udls 201304L # endif # endif -#endif /* !defined(__cpp_lib_chrono_udls) && defined(__glibcxx_want_chrono_udls) */ +#endif /* !defined(__cpp_lib_chrono_udls) */ #undef __glibcxx_want_chrono_udls #if !defined(__cpp_lib_complex_udls) @@ -307,7 +307,7 @@ # define __cpp_lib_complex_udls 201309L # endif # endif -#endif /* !defined(__cpp_lib_complex_udls) && defined(__glibcxx_want_complex_udls) */ +#endif /* !defined(__cpp_lib_complex_udls) */ #undef __glibcxx_want_complex_udls #if !defined(__cpp_lib_generic_associative_lookup) @@ -317,7 +317,7 @@ # define __cpp_lib_generic_associative_lookup 201304L # endif # endif -#endif /* !defined(__cpp_lib_generic_associative_lookup) && defined(__glibcxx_want_generic_associative_lookup) */ +#endif /* !defined(__cpp_lib_generic_associative_lookup) */ #undef __glibcxx_want_generic_associative_lookup #if !defined(__cpp_lib_make_unique) @@ -327,7 +327,7 @@ # define __cpp_lib_make_unique 201304L # endif # endif -#endif /* !defined(__cpp_lib_make_unique) && defined(__glibcxx_want_make_unique) */ +#endif /* !defined(__cpp_lib_make_unique) */ #undef __glibcxx_want_make_unique #if !defined(__cpp_lib_quoted_string_io) @@ -337,7 +337,7 @@ # define __cpp_lib_quoted_string_io 201304L # endif # endif -#endif /* !defined(__cpp_lib_quoted_string_io) && defined(__glibcxx_want_quoted_string_io) */ +#endif /* !defined(__cpp_lib_quoted_string_io) */ #undef __glibcxx_want_quoted_string_io #if !defined(__cpp_lib_shared_timed_mutex) @@ -347,7 +347,7 @@ # define __cpp_lib_shared_timed_mutex 201402L # endif # endif -#endif /* !defined(__cpp_lib_shared_timed_mutex) && defined(__glibcxx_want_shared_timed_mutex) */ +#endif /* !defined(__cpp_lib_shared_timed_mutex) */ #undef __glibcxx_want_shared_timed_mutex #if !defined(__cpp_lib_string_udls) @@ -357,7 +357,7 @@ # define __cpp_lib_string_udls 201304L # endif # endif -#endif /* !defined(__cpp_lib_string_udls) && defined(__glibcxx_want_string_udls) */ +#endif /* !defined(__cpp_lib_string_udls) */ #undef __glibcxx_want_string_udls #if !defined(__cpp_lib_addressof_constexpr) @@ -367,7 +367,7 @@ # define __cpp_lib_addressof_constexpr 201603L # endif # endif -#endif /* !defined(__cpp_lib_addressof_constexpr) && defined(__glibcxx_want_addressof_constexpr) */ +#endif /* !defined(__cpp_lib_addressof_constexpr) */ #undef __glibcxx_want_addressof_constexpr #if !defined(__cpp_lib_any) @@ -377,7 +377,7 @@ # define __cpp_lib_any 201606L # endif # endif -#endif /* !defined(__cpp_lib_any) && defined(__glibcxx_want_any) */ +#endif /* !defined(__cpp_lib_any) */ #undef __glibcxx_want_any #if !defined(__cpp_lib_apply) @@ -387,7 +387,7 @@ # define __cpp_lib_apply 201603L # endif # endif -#endif /* !defined(__cpp_lib_apply) && defined(__glibcxx_want_apply) */ +#endif /* !defined(__cpp_lib_apply) */ #undef __glibcxx_want_apply #if !defined(__cpp_lib_as_const) @@ -397,7 +397,7 @@ # define __cpp_lib_as_const 201510L # endif # endif -#endif /* !defined(__cpp_lib_as_const) && defined(__glibcxx_want_as_const) */ +#endif /* !defined(__cpp_lib_as_const) */ #undef __glibcxx_want_as_const #if !defined(__cpp_lib_atomic_is_always_lock_free) @@ -407,7 +407,7 @@ # define __cpp_lib_atomic_is_always_lock_free 201603L # endif # endif -#endif /* !defined(__cpp_lib_atomic_is_always_lock_free) && defined(__glibcxx_want_atomic_is_always_lock_free) */ +#endif /* !defined(__cpp_lib_atomic_is_always_lock_free) */ #undef __glibcxx_want_atomic_is_always_lock_free #if !defined(__cpp_lib_bool_constant) @@ -417,7 +417,7 @@ # define __cpp_lib_bool_constant 201505L # endif # endif -#endif /* !defined(__cpp_lib_bool_constant) && defined(__glibcxx_want_bool_constant) */ +#endif /* !defined(__cpp_lib_bool_constant) */ #undef __glibcxx_want_bool_constant #if !defined(__cpp_lib_byte) @@ -427,7 +427,7 @@ # define __cpp_lib_byte 201603L # endif # endif -#endif /* !defined(__cpp_lib_byte) && defined(__glibcxx_want_byte) */ +#endif /* !defined(__cpp_lib_byte) */ #undef __glibcxx_want_byte #if !defined(__cpp_lib_constant_wrapper) @@ -437,7 +437,7 @@ # define __cpp_lib_constant_wrapper 202506L # endif # endif -#endif /* !defined(__cpp_lib_constant_wrapper) && defined(__glibcxx_want_constant_wrapper) */ +#endif /* !defined(__cpp_lib_constant_wrapper) */ #undef __glibcxx_want_constant_wrapper #if !defined(__cpp_lib_has_unique_object_representations) @@ -447,7 +447,7 @@ # define __cpp_lib_has_unique_object_representations 201606L # endif # endif -#endif /* !defined(__cpp_lib_has_unique_object_representations) && defined(__glibcxx_want_has_unique_object_representations) */ +#endif /* !defined(__cpp_lib_has_unique_object_representations) */ #undef __glibcxx_want_has_unique_object_representations #if !defined(__cpp_lib_hardware_interference_size) @@ -457,7 +457,7 @@ # define __cpp_lib_hardware_interference_size 201703L # endif # endif -#endif /* !defined(__cpp_lib_hardware_interference_size) && defined(__glibcxx_want_hardware_interference_size) */ +#endif /* !defined(__cpp_lib_hardware_interference_size) */ #undef __glibcxx_want_hardware_interference_size #if !defined(__cpp_lib_invoke) @@ -467,7 +467,7 @@ # define __cpp_lib_invoke 201411L # endif # endif -#endif /* !defined(__cpp_lib_invoke) && defined(__glibcxx_want_invoke) */ +#endif /* !defined(__cpp_lib_invoke) */ #undef __glibcxx_want_invoke #if !defined(__cpp_lib_is_aggregate) @@ -477,7 +477,7 @@ # define __cpp_lib_is_aggregate 201703L # endif # endif -#endif /* !defined(__cpp_lib_is_aggregate) && defined(__glibcxx_want_is_aggregate) */ +#endif /* !defined(__cpp_lib_is_aggregate) */ #undef __glibcxx_want_is_aggregate #if !defined(__cpp_lib_is_invocable) @@ -487,7 +487,7 @@ # define __cpp_lib_is_invocable 201703L # endif # endif -#endif /* !defined(__cpp_lib_is_invocable) && defined(__glibcxx_want_is_invocable) */ +#endif /* !defined(__cpp_lib_is_invocable) */ #undef __glibcxx_want_is_invocable #if !defined(__cpp_lib_launder) @@ -497,7 +497,7 @@ # define __cpp_lib_launder 201606L # endif # endif -#endif /* !defined(__cpp_lib_launder) && defined(__glibcxx_want_launder) */ +#endif /* !defined(__cpp_lib_launder) */ #undef __glibcxx_want_launder #if !defined(__cpp_lib_logical_traits) @@ -507,7 +507,7 @@ # define __cpp_lib_logical_traits 201510L # endif # endif -#endif /* !defined(__cpp_lib_logical_traits) && defined(__glibcxx_want_logical_traits) */ +#endif /* !defined(__cpp_lib_logical_traits) */ #undef __glibcxx_want_logical_traits #if !defined(__cpp_lib_make_from_tuple) @@ -517,7 +517,7 @@ # define __cpp_lib_make_from_tuple 201606L # endif # endif -#endif /* !defined(__cpp_lib_make_from_tuple) && defined(__glibcxx_want_make_from_tuple) */ +#endif /* !defined(__cpp_lib_make_from_tuple) */ #undef __glibcxx_want_make_from_tuple #if !defined(__cpp_lib_not_fn) @@ -532,7 +532,7 @@ # define __cpp_lib_not_fn 201603L # endif # endif -#endif /* !defined(__cpp_lib_not_fn) && defined(__glibcxx_want_not_fn) */ +#endif /* !defined(__cpp_lib_not_fn) */ #undef __glibcxx_want_not_fn #if !defined(__cpp_lib_type_trait_variable_templates) @@ -542,7 +542,7 @@ # define __cpp_lib_type_trait_variable_templates 201510L # endif # endif -#endif /* !defined(__cpp_lib_type_trait_variable_templates) && defined(__glibcxx_want_type_trait_variable_templates) */ +#endif /* !defined(__cpp_lib_type_trait_variable_templates) */ #undef __glibcxx_want_type_trait_variable_templates #if !defined(__cpp_lib_variant) @@ -562,7 +562,7 @@ # define __cpp_lib_variant 202102L # endif # endif -#endif /* !defined(__cpp_lib_variant) && defined(__glibcxx_want_variant) */ +#endif /* !defined(__cpp_lib_variant) */ #undef __glibcxx_want_variant #if !defined(__cpp_lib_lcm) @@ -572,7 +572,7 @@ # define __cpp_lib_lcm 201606L # endif # endif -#endif /* !defined(__cpp_lib_lcm) && defined(__glibcxx_want_lcm) */ +#endif /* !defined(__cpp_lib_lcm) */ #undef __glibcxx_want_lcm #if !defined(__cpp_lib_gcd) @@ -582,7 +582,7 @@ # define __cpp_lib_gcd 201606L # endif # endif -#endif /* !defined(__cpp_lib_gcd) && defined(__glibcxx_want_gcd) */ +#endif /* !defined(__cpp_lib_gcd) */ #undef __glibcxx_want_gcd #if !defined(__cpp_lib_gcd_lcm) @@ -592,7 +592,7 @@ # define __cpp_lib_gcd_lcm 201606L # endif # endif -#endif /* !defined(__cpp_lib_gcd_lcm) && defined(__glibcxx_want_gcd_lcm) */ +#endif /* !defined(__cpp_lib_gcd_lcm) */ #undef __glibcxx_want_gcd_lcm #if !defined(__cpp_lib_raw_memory_algorithms) @@ -607,7 +607,7 @@ # define __cpp_lib_raw_memory_algorithms 201606L # endif # endif -#endif /* !defined(__cpp_lib_raw_memory_algorithms) && defined(__glibcxx_want_raw_memory_algorithms) */ +#endif /* !defined(__cpp_lib_raw_memory_algorithms) */ #undef __glibcxx_want_raw_memory_algorithms #if !defined(__cpp_lib_array_constexpr) @@ -622,7 +622,7 @@ # define __cpp_lib_array_constexpr 201803L # endif # endif -#endif /* !defined(__cpp_lib_array_constexpr) && defined(__glibcxx_want_array_constexpr) */ +#endif /* !defined(__cpp_lib_array_constexpr) */ #undef __glibcxx_want_array_constexpr #if !defined(__cpp_lib_nonmember_container_access) @@ -632,7 +632,7 @@ # define __cpp_lib_nonmember_container_access 201411L # endif # endif -#endif /* !defined(__cpp_lib_nonmember_container_access) && defined(__glibcxx_want_nonmember_container_access) */ +#endif /* !defined(__cpp_lib_nonmember_container_access) */ #undef __glibcxx_want_nonmember_container_access #if !defined(__cpp_lib_clamp) @@ -642,7 +642,7 @@ # define __cpp_lib_clamp 201603L # endif # endif -#endif /* !defined(__cpp_lib_clamp) && defined(__glibcxx_want_clamp) */ +#endif /* !defined(__cpp_lib_clamp) */ #undef __glibcxx_want_clamp #if !defined(__cpp_lib_sample) @@ -652,7 +652,7 @@ # define __cpp_lib_sample 201603L # endif # endif -#endif /* !defined(__cpp_lib_sample) && defined(__glibcxx_want_sample) */ +#endif /* !defined(__cpp_lib_sample) */ #undef __glibcxx_want_sample #if !defined(__cpp_lib_boyer_moore_searcher) @@ -662,7 +662,7 @@ # define __cpp_lib_boyer_moore_searcher 201603L # endif # endif -#endif /* !defined(__cpp_lib_boyer_moore_searcher) && defined(__glibcxx_want_boyer_moore_searcher) */ +#endif /* !defined(__cpp_lib_boyer_moore_searcher) */ #undef __glibcxx_want_boyer_moore_searcher #if !defined(__cpp_lib_chrono) @@ -677,7 +677,7 @@ # define __cpp_lib_chrono 201611L # endif # endif -#endif /* !defined(__cpp_lib_chrono) && defined(__glibcxx_want_chrono) */ +#endif /* !defined(__cpp_lib_chrono) */ #undef __glibcxx_want_chrono #if !defined(__cpp_lib_chrono_cxx20) @@ -686,7 +686,7 @@ # if defined(__glibcxx_want_all) || defined(__glibcxx_want_chrono_cxx20) # endif # endif -#endif /* !defined(__cpp_lib_chrono_cxx20) && defined(__glibcxx_want_chrono_cxx20) */ +#endif /* !defined(__cpp_lib_chrono_cxx20) */ #undef __glibcxx_want_chrono_cxx20 #if !defined(__cpp_lib_execution) @@ -696,7 +696,7 @@ # define __cpp_lib_execution 201902L # endif # endif -#endif /* !defined(__cpp_lib_execution) && defined(__glibcxx_want_execution) */ +#endif /* !defined(__cpp_lib_execution) */ #undef __glibcxx_want_execution #if !defined(__cpp_lib_filesystem) @@ -706,7 +706,7 @@ # define __cpp_lib_filesystem 201703L # endif # endif -#endif /* !defined(__cpp_lib_filesystem) && defined(__glibcxx_want_filesystem) */ +#endif /* !defined(__cpp_lib_filesystem) */ #undef __glibcxx_want_filesystem #if !defined(__cpp_lib_hypot) @@ -716,7 +716,7 @@ # define __cpp_lib_hypot 201603L # endif # endif -#endif /* !defined(__cpp_lib_hypot) && defined(__glibcxx_want_hypot) */ +#endif /* !defined(__cpp_lib_hypot) */ #undef __glibcxx_want_hypot #if !defined(__cpp_lib_map_try_emplace) @@ -726,7 +726,7 @@ # define __cpp_lib_map_try_emplace 201411L # endif # endif -#endif /* !defined(__cpp_lib_map_try_emplace) && defined(__glibcxx_want_map_try_emplace) */ +#endif /* !defined(__cpp_lib_map_try_emplace) */ #undef __glibcxx_want_map_try_emplace #if !defined(__cpp_lib_math_special_functions) @@ -736,7 +736,7 @@ # define __cpp_lib_math_special_functions 201603L # endif # endif -#endif /* !defined(__cpp_lib_math_special_functions) && defined(__glibcxx_want_math_special_functions) */ +#endif /* !defined(__cpp_lib_math_special_functions) */ #undef __glibcxx_want_math_special_functions #if !defined(__cpp_lib_memory_resource) @@ -751,7 +751,7 @@ # define __cpp_lib_memory_resource 1L # endif # endif -#endif /* !defined(__cpp_lib_memory_resource) && defined(__glibcxx_want_memory_resource) */ +#endif /* !defined(__cpp_lib_memory_resource) */ #undef __glibcxx_want_memory_resource #if !defined(__cpp_lib_node_extract) @@ -761,7 +761,7 @@ # define __cpp_lib_node_extract 201606L # endif # endif -#endif /* !defined(__cpp_lib_node_extract) && defined(__glibcxx_want_node_extract) */ +#endif /* !defined(__cpp_lib_node_extract) */ #undef __glibcxx_want_node_extract #if !defined(__cpp_lib_parallel_algorithm) @@ -771,7 +771,7 @@ # define __cpp_lib_parallel_algorithm 201603L # endif # endif -#endif /* !defined(__cpp_lib_parallel_algorithm) && defined(__glibcxx_want_parallel_algorithm) */ +#endif /* !defined(__cpp_lib_parallel_algorithm) */ #undef __glibcxx_want_parallel_algorithm #if !defined(__cpp_lib_scoped_lock) @@ -781,7 +781,7 @@ # define __cpp_lib_scoped_lock 201703L # endif # endif -#endif /* !defined(__cpp_lib_scoped_lock) && defined(__glibcxx_want_scoped_lock) */ +#endif /* !defined(__cpp_lib_scoped_lock) */ #undef __glibcxx_want_scoped_lock #if !defined(__cpp_lib_shared_mutex) @@ -791,7 +791,7 @@ # define __cpp_lib_shared_mutex 201505L # endif # endif -#endif /* !defined(__cpp_lib_shared_mutex) && defined(__glibcxx_want_shared_mutex) */ +#endif /* !defined(__cpp_lib_shared_mutex) */ #undef __glibcxx_want_shared_mutex #if !defined(__cpp_lib_shared_ptr_weak_type) @@ -801,7 +801,7 @@ # define __cpp_lib_shared_ptr_weak_type 201606L # endif # endif -#endif /* !defined(__cpp_lib_shared_ptr_weak_type) && defined(__glibcxx_want_shared_ptr_weak_type) */ +#endif /* !defined(__cpp_lib_shared_ptr_weak_type) */ #undef __glibcxx_want_shared_ptr_weak_type #if !defined(__cpp_lib_string_view) @@ -816,7 +816,7 @@ # define __cpp_lib_string_view 201803L # endif # endif -#endif /* !defined(__cpp_lib_string_view) && defined(__glibcxx_want_string_view) */ +#endif /* !defined(__cpp_lib_string_view) */ #undef __glibcxx_want_string_view #if !defined(__cpp_lib_unordered_map_try_emplace) @@ -826,7 +826,7 @@ # define __cpp_lib_unordered_map_try_emplace 201411L # endif # endif -#endif /* !defined(__cpp_lib_unordered_map_try_emplace) && defined(__glibcxx_want_unordered_map_try_emplace) */ +#endif /* !defined(__cpp_lib_unordered_map_try_emplace) */ #undef __glibcxx_want_unordered_map_try_emplace #if !defined(__cpp_lib_assume_aligned) @@ -836,7 +836,7 @@ # define __cpp_lib_assume_aligned 201811L # endif # endif -#endif /* !defined(__cpp_lib_assume_aligned) && defined(__glibcxx_want_assume_aligned) */ +#endif /* !defined(__cpp_lib_assume_aligned) */ #undef __glibcxx_want_assume_aligned #if !defined(__cpp_lib_is_sufficiently_aligned) @@ -846,7 +846,7 @@ # define __cpp_lib_is_sufficiently_aligned 202411L # endif # endif -#endif /* !defined(__cpp_lib_is_sufficiently_aligned) && defined(__glibcxx_want_is_sufficiently_aligned) */ +#endif /* !defined(__cpp_lib_is_sufficiently_aligned) */ #undef __glibcxx_want_is_sufficiently_aligned #if !defined(__cpp_lib_atomic_flag_test) @@ -856,7 +856,7 @@ # define __cpp_lib_atomic_flag_test 201907L # endif # endif -#endif /* !defined(__cpp_lib_atomic_flag_test) && defined(__glibcxx_want_atomic_flag_test) */ +#endif /* !defined(__cpp_lib_atomic_flag_test) */ #undef __glibcxx_want_atomic_flag_test #if !defined(__cpp_lib_atomic_float) @@ -866,7 +866,7 @@ # define __cpp_lib_atomic_float 201711L # endif # endif -#endif /* !defined(__cpp_lib_atomic_float) && defined(__glibcxx_want_atomic_float) */ +#endif /* !defined(__cpp_lib_atomic_float) */ #undef __glibcxx_want_atomic_float #if !defined(__cpp_lib_atomic_lock_free_type_aliases) @@ -876,7 +876,7 @@ # define __cpp_lib_atomic_lock_free_type_aliases 201907L # endif # endif -#endif /* !defined(__cpp_lib_atomic_lock_free_type_aliases) && defined(__glibcxx_want_atomic_lock_free_type_aliases) */ +#endif /* !defined(__cpp_lib_atomic_lock_free_type_aliases) */ #undef __glibcxx_want_atomic_lock_free_type_aliases #if !defined(__cpp_lib_atomic_ref) @@ -886,7 +886,7 @@ # define __cpp_lib_atomic_ref 201806L # endif # endif -#endif /* !defined(__cpp_lib_atomic_ref) && defined(__glibcxx_want_atomic_ref) */ +#endif /* !defined(__cpp_lib_atomic_ref) */ #undef __glibcxx_want_atomic_ref #if !defined(__cpp_lib_atomic_value_initialization) @@ -896,7 +896,7 @@ # define __cpp_lib_atomic_value_initialization 201911L # endif # endif -#endif /* !defined(__cpp_lib_atomic_value_initialization) && defined(__glibcxx_want_atomic_value_initialization) */ +#endif /* !defined(__cpp_lib_atomic_value_initialization) */ #undef __glibcxx_want_atomic_value_initialization #if !defined(__cpp_lib_bind_front) @@ -911,7 +911,7 @@ # define __cpp_lib_bind_front 201907L # endif # endif -#endif /* !defined(__cpp_lib_bind_front) && defined(__glibcxx_want_bind_front) */ +#endif /* !defined(__cpp_lib_bind_front) */ #undef __glibcxx_want_bind_front #if !defined(__cpp_lib_bind_back) @@ -926,7 +926,7 @@ # define __cpp_lib_bind_back 202202L # endif # endif -#endif /* !defined(__cpp_lib_bind_back) && defined(__glibcxx_want_bind_back) */ +#endif /* !defined(__cpp_lib_bind_back) */ #undef __glibcxx_want_bind_back #if !defined(__cpp_lib_starts_ends_with) @@ -936,7 +936,7 @@ # define __cpp_lib_starts_ends_with 201711L # endif # endif -#endif /* !defined(__cpp_lib_starts_ends_with) && defined(__glibcxx_want_starts_ends_with) */ +#endif /* !defined(__cpp_lib_starts_ends_with) */ #undef __glibcxx_want_starts_ends_with #if !defined(__cpp_lib_bit_cast) @@ -946,7 +946,7 @@ # define __cpp_lib_bit_cast 201806L # endif # endif -#endif /* !defined(__cpp_lib_bit_cast) && defined(__glibcxx_want_bit_cast) */ +#endif /* !defined(__cpp_lib_bit_cast) */ #undef __glibcxx_want_bit_cast #if !defined(__cpp_lib_bitops) @@ -956,7 +956,7 @@ # define __cpp_lib_bitops 201907L # endif # endif -#endif /* !defined(__cpp_lib_bitops) && defined(__glibcxx_want_bitops) */ +#endif /* !defined(__cpp_lib_bitops) */ #undef __glibcxx_want_bitops #if !defined(__cpp_lib_bounded_array_traits) @@ -966,7 +966,7 @@ # define __cpp_lib_bounded_array_traits 201902L # endif # endif -#endif /* !defined(__cpp_lib_bounded_array_traits) && defined(__glibcxx_want_bounded_array_traits) */ +#endif /* !defined(__cpp_lib_bounded_array_traits) */ #undef __glibcxx_want_bounded_array_traits #if !defined(__cpp_lib_concepts) @@ -976,7 +976,7 @@ # define __cpp_lib_concepts 202002L # endif # endif -#endif /* !defined(__cpp_lib_concepts) && defined(__glibcxx_want_concepts) */ +#endif /* !defined(__cpp_lib_concepts) */ #undef __glibcxx_want_concepts #if !defined(__cpp_lib_optional) @@ -996,7 +996,7 @@ # define __cpp_lib_optional 201606L # endif # endif -#endif /* !defined(__cpp_lib_optional) && defined(__glibcxx_want_optional) */ +#endif /* !defined(__cpp_lib_optional) */ #undef __glibcxx_want_optional #if !defined(__cpp_lib_optional_range_support) @@ -1006,7 +1006,7 @@ # define __cpp_lib_optional_range_support 202406L # endif # endif -#endif /* !defined(__cpp_lib_optional_range_support) && defined(__glibcxx_want_optional_range_support) */ +#endif /* !defined(__cpp_lib_optional_range_support) */ #undef __glibcxx_want_optional_range_support #if !defined(__cpp_lib_destroying_delete) @@ -1016,7 +1016,7 @@ # define __cpp_lib_destroying_delete 201806L # endif # endif -#endif /* !defined(__cpp_lib_destroying_delete) && defined(__glibcxx_want_destroying_delete) */ +#endif /* !defined(__cpp_lib_destroying_delete) */ #undef __glibcxx_want_destroying_delete #if !defined(__cpp_lib_constexpr_string_view) @@ -1026,7 +1026,7 @@ # define __cpp_lib_constexpr_string_view 201811L # endif # endif -#endif /* !defined(__cpp_lib_constexpr_string_view) && defined(__glibcxx_want_constexpr_string_view) */ +#endif /* !defined(__cpp_lib_constexpr_string_view) */ #undef __glibcxx_want_constexpr_string_view #if !defined(__cpp_lib_endian) @@ -1036,7 +1036,7 @@ # define __cpp_lib_endian 201907L # endif # endif -#endif /* !defined(__cpp_lib_endian) && defined(__glibcxx_want_endian) */ +#endif /* !defined(__cpp_lib_endian) */ #undef __glibcxx_want_endian #if !defined(__cpp_lib_int_pow2) @@ -1046,7 +1046,7 @@ # define __cpp_lib_int_pow2 202002L # endif # endif -#endif /* !defined(__cpp_lib_int_pow2) && defined(__glibcxx_want_int_pow2) */ +#endif /* !defined(__cpp_lib_int_pow2) */ #undef __glibcxx_want_int_pow2 #if !defined(__cpp_lib_integer_comparison_functions) @@ -1056,7 +1056,7 @@ # define __cpp_lib_integer_comparison_functions 202002L # endif # endif -#endif /* !defined(__cpp_lib_integer_comparison_functions) && defined(__glibcxx_want_integer_comparison_functions) */ +#endif /* !defined(__cpp_lib_integer_comparison_functions) */ #undef __glibcxx_want_integer_comparison_functions #if !defined(__cpp_lib_is_constant_evaluated) @@ -1066,7 +1066,7 @@ # define __cpp_lib_is_constant_evaluated 201811L # endif # endif -#endif /* !defined(__cpp_lib_is_constant_evaluated) && defined(__glibcxx_want_is_constant_evaluated) */ +#endif /* !defined(__cpp_lib_is_constant_evaluated) */ #undef __glibcxx_want_is_constant_evaluated #if !defined(__cpp_lib_constexpr_char_traits) @@ -1081,7 +1081,7 @@ # define __cpp_lib_constexpr_char_traits 201611L # endif # endif -#endif /* !defined(__cpp_lib_constexpr_char_traits) && defined(__glibcxx_want_constexpr_char_traits) */ +#endif /* !defined(__cpp_lib_constexpr_char_traits) */ #undef __glibcxx_want_constexpr_char_traits #if !defined(__cpp_lib_is_layout_compatible) @@ -1091,7 +1091,7 @@ # define __cpp_lib_is_layout_compatible 201907L # endif # endif -#endif /* !defined(__cpp_lib_is_layout_compatible) && defined(__glibcxx_want_is_layout_compatible) */ +#endif /* !defined(__cpp_lib_is_layout_compatible) */ #undef __glibcxx_want_is_layout_compatible #if !defined(__cpp_lib_is_nothrow_convertible) @@ -1101,7 +1101,7 @@ # define __cpp_lib_is_nothrow_convertible 201806L # endif # endif -#endif /* !defined(__cpp_lib_is_nothrow_convertible) && defined(__glibcxx_want_is_nothrow_convertible) */ +#endif /* !defined(__cpp_lib_is_nothrow_convertible) */ #undef __glibcxx_want_is_nothrow_convertible #if !defined(__cpp_lib_is_pointer_interconvertible) @@ -1111,7 +1111,7 @@ # define __cpp_lib_is_pointer_interconvertible 201907L # endif # endif -#endif /* !defined(__cpp_lib_is_pointer_interconvertible) && defined(__glibcxx_want_is_pointer_interconvertible) */ +#endif /* !defined(__cpp_lib_is_pointer_interconvertible) */ #undef __glibcxx_want_is_pointer_interconvertible #if !defined(__cpp_lib_math_constants) @@ -1121,7 +1121,7 @@ # define __cpp_lib_math_constants 201907L # endif # endif -#endif /* !defined(__cpp_lib_math_constants) && defined(__glibcxx_want_math_constants) */ +#endif /* !defined(__cpp_lib_math_constants) */ #undef __glibcxx_want_math_constants #if !defined(__cpp_lib_make_obj_using_allocator) @@ -1130,7 +1130,7 @@ # if defined(__glibcxx_want_all) || defined(__glibcxx_want_make_obj_using_allocator) # endif # endif -#endif /* !defined(__cpp_lib_make_obj_using_allocator) && defined(__glibcxx_want_make_obj_using_allocator) */ +#endif /* !defined(__cpp_lib_make_obj_using_allocator) */ #undef __glibcxx_want_make_obj_using_allocator #if !defined(__cpp_lib_remove_cvref) @@ -1140,7 +1140,7 @@ # define __cpp_lib_remove_cvref 201711L # endif # endif -#endif /* !defined(__cpp_lib_remove_cvref) && defined(__glibcxx_want_remove_cvref) */ +#endif /* !defined(__cpp_lib_remove_cvref) */ #undef __glibcxx_want_remove_cvref #if !defined(__cpp_lib_source_location) @@ -1150,7 +1150,7 @@ # define __cpp_lib_source_location 201907L # endif # endif -#endif /* !defined(__cpp_lib_source_location) && defined(__glibcxx_want_source_location) */ +#endif /* !defined(__cpp_lib_source_location) */ #undef __glibcxx_want_source_location #if !defined(__cpp_lib_span) @@ -1165,7 +1165,7 @@ # define __cpp_lib_span 202002L # endif # endif -#endif /* !defined(__cpp_lib_span) && defined(__glibcxx_want_span) */ +#endif /* !defined(__cpp_lib_span) */ #undef __glibcxx_want_span #if !defined(__cpp_lib_mdspan) @@ -1180,7 +1180,7 @@ # define __cpp_lib_mdspan 202207L # endif # endif -#endif /* !defined(__cpp_lib_mdspan) && defined(__glibcxx_want_mdspan) */ +#endif /* !defined(__cpp_lib_mdspan) */ #undef __glibcxx_want_mdspan #if !defined(__cpp_lib_aligned_accessor) @@ -1190,9 +1190,27 @@ # define __cpp_lib_aligned_accessor 202411L # endif # endif -#endif /* !defined(__cpp_lib_aligned_accessor) && defined(__glibcxx_want_aligned_accessor) */ +#endif /* !defined(__cpp_lib_aligned_accessor) */ #undef __glibcxx_want_aligned_accessor +#if !defined(__cpp_lib_padded_layouts) +# if (__cplusplus > 202302L) +# define __glibcxx_padded_layouts 1L +# if defined(__glibcxx_want_all) || defined(__glibcxx_want_padded_layouts) +# endif +# endif +#endif /* !defined(__cpp_lib_padded_layouts) */ +#undef __glibcxx_want_padded_layouts + +#if !defined(__cpp_lib_submdspan) +# if (__cplusplus > 202302L) +# define __glibcxx_submdspan 1L +# if defined(__glibcxx_want_all) || defined(__glibcxx_want_submdspan) +# endif +# endif +#endif /* !defined(__cpp_lib_submdspan) */ +#undef __glibcxx_want_submdspan + #if !defined(__cpp_lib_ssize) # if (__cplusplus >= 202002L) # define __glibcxx_ssize 201902L @@ -1200,7 +1218,7 @@ # define __cpp_lib_ssize 201902L # endif # endif -#endif /* !defined(__cpp_lib_ssize) && defined(__glibcxx_want_ssize) */ +#endif /* !defined(__cpp_lib_ssize) */ #undef __glibcxx_want_ssize #if !defined(__cpp_lib_three_way_comparison) @@ -1210,7 +1228,7 @@ # define __cpp_lib_three_way_comparison 201907L # endif # endif -#endif /* !defined(__cpp_lib_three_way_comparison) && defined(__glibcxx_want_three_way_comparison) */ +#endif /* !defined(__cpp_lib_three_way_comparison) */ #undef __glibcxx_want_three_way_comparison #if !defined(__cpp_lib_to_address) @@ -1220,7 +1238,7 @@ # define __cpp_lib_to_address 201711L # endif # endif -#endif /* !defined(__cpp_lib_to_address) && defined(__glibcxx_want_to_address) */ +#endif /* !defined(__cpp_lib_to_address) */ #undef __glibcxx_want_to_address #if !defined(__cpp_lib_to_array) @@ -1230,7 +1248,7 @@ # define __cpp_lib_to_array 201907L # endif # endif -#endif /* !defined(__cpp_lib_to_array) && defined(__glibcxx_want_to_array) */ +#endif /* !defined(__cpp_lib_to_array) */ #undef __glibcxx_want_to_array #if !defined(__cpp_lib_type_identity) @@ -1240,7 +1258,7 @@ # define __cpp_lib_type_identity 201806L # endif # endif -#endif /* !defined(__cpp_lib_type_identity) && defined(__glibcxx_want_type_identity) */ +#endif /* !defined(__cpp_lib_type_identity) */ #undef __glibcxx_want_type_identity #if !defined(__cpp_lib_unwrap_ref) @@ -1250,7 +1268,7 @@ # define __cpp_lib_unwrap_ref 201811L # endif # endif -#endif /* !defined(__cpp_lib_unwrap_ref) && defined(__glibcxx_want_unwrap_ref) */ +#endif /* !defined(__cpp_lib_unwrap_ref) */ #undef __glibcxx_want_unwrap_ref #if !defined(__cpp_lib_constexpr_iterator) @@ -1260,7 +1278,7 @@ # define __cpp_lib_constexpr_iterator 201811L # endif # endif -#endif /* !defined(__cpp_lib_constexpr_iterator) && defined(__glibcxx_want_constexpr_iterator) */ +#endif /* !defined(__cpp_lib_constexpr_iterator) */ #undef __glibcxx_want_constexpr_iterator #if !defined(__cpp_lib_interpolate) @@ -1270,7 +1288,7 @@ # define __cpp_lib_interpolate 201902L # endif # endif -#endif /* !defined(__cpp_lib_interpolate) && defined(__glibcxx_want_interpolate) */ +#endif /* !defined(__cpp_lib_interpolate) */ #undef __glibcxx_want_interpolate #if !defined(__cpp_lib_constexpr_utility) @@ -1280,7 +1298,7 @@ # define __cpp_lib_constexpr_utility 201811L # endif # endif -#endif /* !defined(__cpp_lib_constexpr_utility) && defined(__glibcxx_want_constexpr_utility) */ +#endif /* !defined(__cpp_lib_constexpr_utility) */ #undef __glibcxx_want_constexpr_utility #if !defined(__cpp_lib_shift) @@ -1295,7 +1313,7 @@ # define __cpp_lib_shift 201806L # endif # endif -#endif /* !defined(__cpp_lib_shift) && defined(__glibcxx_want_shift) */ +#endif /* !defined(__cpp_lib_shift) */ #undef __glibcxx_want_shift #if !defined(__cpp_lib_ranges) @@ -1315,7 +1333,7 @@ # define __cpp_lib_ranges 202110L # endif # endif -#endif /* !defined(__cpp_lib_ranges) && defined(__glibcxx_want_ranges) */ +#endif /* !defined(__cpp_lib_ranges) */ #undef __glibcxx_want_ranges #if !defined(__cpp_lib_constexpr_numeric) @@ -1325,7 +1343,7 @@ # define __cpp_lib_constexpr_numeric 201911L # endif # endif -#endif /* !defined(__cpp_lib_constexpr_numeric) && defined(__glibcxx_want_constexpr_numeric) */ +#endif /* !defined(__cpp_lib_constexpr_numeric) */ #undef __glibcxx_want_constexpr_numeric #if !defined(__cpp_lib_constexpr_functional) @@ -1335,7 +1353,7 @@ # define __cpp_lib_constexpr_functional 201907L # endif # endif -#endif /* !defined(__cpp_lib_constexpr_functional) && defined(__glibcxx_want_constexpr_functional) */ +#endif /* !defined(__cpp_lib_constexpr_functional) */ #undef __glibcxx_want_constexpr_functional #if !defined(__cpp_lib_constexpr_algorithms) @@ -1350,7 +1368,7 @@ # define __cpp_lib_constexpr_algorithms 201806L # endif # endif -#endif /* !defined(__cpp_lib_constexpr_algorithms) && defined(__glibcxx_want_constexpr_algorithms) */ +#endif /* !defined(__cpp_lib_constexpr_algorithms) */ #undef __glibcxx_want_constexpr_algorithms #if !defined(__cpp_lib_constexpr_tuple) @@ -1360,7 +1378,7 @@ # define __cpp_lib_constexpr_tuple 201811L # endif # endif -#endif /* !defined(__cpp_lib_constexpr_tuple) && defined(__glibcxx_want_constexpr_tuple) */ +#endif /* !defined(__cpp_lib_constexpr_tuple) */ #undef __glibcxx_want_constexpr_tuple #if !defined(__cpp_lib_constexpr_memory) @@ -1375,7 +1393,7 @@ # define __cpp_lib_constexpr_memory 201811L # endif # endif -#endif /* !defined(__cpp_lib_constexpr_memory) && defined(__glibcxx_want_constexpr_memory) */ +#endif /* !defined(__cpp_lib_constexpr_memory) */ #undef __glibcxx_want_constexpr_memory #if !defined(__cpp_lib_atomic_shared_ptr) @@ -1385,7 +1403,7 @@ # define __cpp_lib_atomic_shared_ptr 201711L # endif # endif -#endif /* !defined(__cpp_lib_atomic_shared_ptr) && defined(__glibcxx_want_atomic_shared_ptr) */ +#endif /* !defined(__cpp_lib_atomic_shared_ptr) */ #undef __glibcxx_want_atomic_shared_ptr #if !defined(__cpp_lib_atomic_wait) @@ -1400,7 +1418,7 @@ # define __cpp_lib_atomic_wait 201907L # endif # endif -#endif /* !defined(__cpp_lib_atomic_wait) && defined(__glibcxx_want_atomic_wait) */ +#endif /* !defined(__cpp_lib_atomic_wait) */ #undef __glibcxx_want_atomic_wait #if !defined(__cpp_lib_barrier) @@ -1410,7 +1428,7 @@ # define __cpp_lib_barrier 201907L # endif # endif -#endif /* !defined(__cpp_lib_barrier) && defined(__glibcxx_want_barrier) */ +#endif /* !defined(__cpp_lib_barrier) */ #undef __glibcxx_want_barrier #if !defined(__cpp_lib_format) @@ -1425,7 +1443,7 @@ # define __cpp_lib_format 202304L # endif # endif -#endif /* !defined(__cpp_lib_format) && defined(__glibcxx_want_format) */ +#endif /* !defined(__cpp_lib_format) */ #undef __glibcxx_want_format #if !defined(__cpp_lib_format_uchar) @@ -1435,7 +1453,7 @@ # define __cpp_lib_format_uchar 202311L # endif # endif -#endif /* !defined(__cpp_lib_format_uchar) && defined(__glibcxx_want_format_uchar) */ +#endif /* !defined(__cpp_lib_format_uchar) */ #undef __glibcxx_want_format_uchar #if !defined(__cpp_lib_constexpr_complex) @@ -1445,7 +1463,7 @@ # define __cpp_lib_constexpr_complex 201711L # endif # endif -#endif /* !defined(__cpp_lib_constexpr_complex) && defined(__glibcxx_want_constexpr_complex) */ +#endif /* !defined(__cpp_lib_constexpr_complex) */ #undef __glibcxx_want_constexpr_complex #if !defined(__cpp_lib_constexpr_dynamic_alloc) @@ -1455,7 +1473,7 @@ # define __cpp_lib_constexpr_dynamic_alloc 201907L # endif # endif -#endif /* !defined(__cpp_lib_constexpr_dynamic_alloc) && defined(__glibcxx_want_constexpr_dynamic_alloc) */ +#endif /* !defined(__cpp_lib_constexpr_dynamic_alloc) */ #undef __glibcxx_want_constexpr_dynamic_alloc #if !defined(__cpp_lib_constexpr_string) @@ -1475,7 +1493,7 @@ # define __cpp_lib_constexpr_string 201611L # endif # endif -#endif /* !defined(__cpp_lib_constexpr_string) && defined(__glibcxx_want_constexpr_string) */ +#endif /* !defined(__cpp_lib_constexpr_string) */ #undef __glibcxx_want_constexpr_string #if !defined(__cpp_lib_constexpr_vector) @@ -1485,7 +1503,7 @@ # define __cpp_lib_constexpr_vector 201907L # endif # endif -#endif /* !defined(__cpp_lib_constexpr_vector) && defined(__glibcxx_want_constexpr_vector) */ +#endif /* !defined(__cpp_lib_constexpr_vector) */ #undef __glibcxx_want_constexpr_vector #if !defined(__cpp_lib_constrained_equality) @@ -1500,7 +1518,7 @@ # define __cpp_lib_constrained_equality 202403L # endif # endif -#endif /* !defined(__cpp_lib_constrained_equality) && defined(__glibcxx_want_constrained_equality) */ +#endif /* !defined(__cpp_lib_constrained_equality) */ #undef __glibcxx_want_constrained_equality #if !defined(__cpp_lib_erase_if) @@ -1510,7 +1528,7 @@ # define __cpp_lib_erase_if 202002L # endif # endif -#endif /* !defined(__cpp_lib_erase_if) && defined(__glibcxx_want_erase_if) */ +#endif /* !defined(__cpp_lib_erase_if) */ #undef __glibcxx_want_erase_if #if !defined(__cpp_lib_generic_unordered_lookup) @@ -1520,7 +1538,7 @@ # define __cpp_lib_generic_unordered_lookup 201811L # endif # endif -#endif /* !defined(__cpp_lib_generic_unordered_lookup) && defined(__glibcxx_want_generic_unordered_lookup) */ +#endif /* !defined(__cpp_lib_generic_unordered_lookup) */ #undef __glibcxx_want_generic_unordered_lookup #if !defined(__cpp_lib_jthread) @@ -1530,7 +1548,7 @@ # define __cpp_lib_jthread 201911L # endif # endif -#endif /* !defined(__cpp_lib_jthread) && defined(__glibcxx_want_jthread) */ +#endif /* !defined(__cpp_lib_jthread) */ #undef __glibcxx_want_jthread #if !defined(__cpp_lib_latch) @@ -1540,7 +1558,7 @@ # define __cpp_lib_latch 201907L # endif # endif -#endif /* !defined(__cpp_lib_latch) && defined(__glibcxx_want_latch) */ +#endif /* !defined(__cpp_lib_latch) */ #undef __glibcxx_want_latch #if !defined(__cpp_lib_list_remove_return_type) @@ -1550,7 +1568,7 @@ # define __cpp_lib_list_remove_return_type 201806L # endif # endif -#endif /* !defined(__cpp_lib_list_remove_return_type) && defined(__glibcxx_want_list_remove_return_type) */ +#endif /* !defined(__cpp_lib_list_remove_return_type) */ #undef __glibcxx_want_list_remove_return_type #if !defined(__cpp_lib_polymorphic_allocator) @@ -1560,7 +1578,7 @@ # define __cpp_lib_polymorphic_allocator 201902L # endif # endif -#endif /* !defined(__cpp_lib_polymorphic_allocator) && defined(__glibcxx_want_polymorphic_allocator) */ +#endif /* !defined(__cpp_lib_polymorphic_allocator) */ #undef __glibcxx_want_polymorphic_allocator #if !defined(__cpp_lib_move_iterator_concept) @@ -1570,7 +1588,7 @@ # define __cpp_lib_move_iterator_concept 202207L # endif # endif -#endif /* !defined(__cpp_lib_move_iterator_concept) && defined(__glibcxx_want_move_iterator_concept) */ +#endif /* !defined(__cpp_lib_move_iterator_concept) */ #undef __glibcxx_want_move_iterator_concept #if !defined(__cpp_lib_semaphore) @@ -1580,7 +1598,7 @@ # define __cpp_lib_semaphore 201907L # endif # endif -#endif /* !defined(__cpp_lib_semaphore) && defined(__glibcxx_want_semaphore) */ +#endif /* !defined(__cpp_lib_semaphore) */ #undef __glibcxx_want_semaphore #if !defined(__cpp_lib_smart_ptr_for_overwrite) @@ -1590,7 +1608,7 @@ # define __cpp_lib_smart_ptr_for_overwrite 202002L # endif # endif -#endif /* !defined(__cpp_lib_smart_ptr_for_overwrite) && defined(__glibcxx_want_smart_ptr_for_overwrite) */ +#endif /* !defined(__cpp_lib_smart_ptr_for_overwrite) */ #undef __glibcxx_want_smart_ptr_for_overwrite #if !defined(__cpp_lib_syncbuf) @@ -1600,7 +1618,7 @@ # define __cpp_lib_syncbuf 201803L # endif # endif -#endif /* !defined(__cpp_lib_syncbuf) && defined(__glibcxx_want_syncbuf) */ +#endif /* !defined(__cpp_lib_syncbuf) */ #undef __glibcxx_want_syncbuf #if !defined(__cpp_lib_byteswap) @@ -1610,7 +1628,7 @@ # define __cpp_lib_byteswap 202110L # endif # endif -#endif /* !defined(__cpp_lib_byteswap) && defined(__glibcxx_want_byteswap) */ +#endif /* !defined(__cpp_lib_byteswap) */ #undef __glibcxx_want_byteswap #if !defined(__cpp_lib_constexpr_charconv) @@ -1620,7 +1638,7 @@ # define __cpp_lib_constexpr_charconv 202207L # endif # endif -#endif /* !defined(__cpp_lib_constexpr_charconv) && defined(__glibcxx_want_constexpr_charconv) */ +#endif /* !defined(__cpp_lib_constexpr_charconv) */ #undef __glibcxx_want_constexpr_charconv #if !defined(__cpp_lib_constexpr_typeinfo) @@ -1630,7 +1648,7 @@ # define __cpp_lib_constexpr_typeinfo 202106L # endif # endif -#endif /* !defined(__cpp_lib_constexpr_typeinfo) && defined(__glibcxx_want_constexpr_typeinfo) */ +#endif /* !defined(__cpp_lib_constexpr_typeinfo) */ #undef __glibcxx_want_constexpr_typeinfo #if !defined(__cpp_lib_expected) @@ -1640,7 +1658,7 @@ # define __cpp_lib_expected 202211L # endif # endif -#endif /* !defined(__cpp_lib_expected) && defined(__glibcxx_want_expected) */ +#endif /* !defined(__cpp_lib_expected) */ #undef __glibcxx_want_expected #if !defined(__cpp_lib_format_ranges) @@ -1650,7 +1668,7 @@ # define __cpp_lib_format_ranges 202207L # endif # endif -#endif /* !defined(__cpp_lib_format_ranges) && defined(__glibcxx_want_format_ranges) */ +#endif /* !defined(__cpp_lib_format_ranges) */ #undef __glibcxx_want_format_ranges #if !defined(__cpp_lib_freestanding_algorithm) @@ -1660,7 +1678,7 @@ # define __cpp_lib_freestanding_algorithm 202311L # endif # endif -#endif /* !defined(__cpp_lib_freestanding_algorithm) && defined(__glibcxx_want_freestanding_algorithm) */ +#endif /* !defined(__cpp_lib_freestanding_algorithm) */ #undef __glibcxx_want_freestanding_algorithm #if !defined(__cpp_lib_freestanding_array) @@ -1670,7 +1688,7 @@ # define __cpp_lib_freestanding_array 202311L # endif # endif -#endif /* !defined(__cpp_lib_freestanding_array) && defined(__glibcxx_want_freestanding_array) */ +#endif /* !defined(__cpp_lib_freestanding_array) */ #undef __glibcxx_want_freestanding_array #if !defined(__cpp_lib_freestanding_cstring) @@ -1680,7 +1698,7 @@ # define __cpp_lib_freestanding_cstring 202311L # endif # endif -#endif /* !defined(__cpp_lib_freestanding_cstring) && defined(__glibcxx_want_freestanding_cstring) */ +#endif /* !defined(__cpp_lib_freestanding_cstring) */ #undef __glibcxx_want_freestanding_cstring #if !defined(__cpp_lib_freestanding_expected) @@ -1690,7 +1708,7 @@ # define __cpp_lib_freestanding_expected 202311L # endif # endif -#endif /* !defined(__cpp_lib_freestanding_expected) && defined(__glibcxx_want_freestanding_expected) */ +#endif /* !defined(__cpp_lib_freestanding_expected) */ #undef __glibcxx_want_freestanding_expected #if !defined(__cpp_lib_freestanding_optional) @@ -1700,7 +1718,7 @@ # define __cpp_lib_freestanding_optional 202311L # endif # endif -#endif /* !defined(__cpp_lib_freestanding_optional) && defined(__glibcxx_want_freestanding_optional) */ +#endif /* !defined(__cpp_lib_freestanding_optional) */ #undef __glibcxx_want_freestanding_optional #if !defined(__cpp_lib_freestanding_string_view) @@ -1710,7 +1728,7 @@ # define __cpp_lib_freestanding_string_view 202311L # endif # endif -#endif /* !defined(__cpp_lib_freestanding_string_view) && defined(__glibcxx_want_freestanding_string_view) */ +#endif /* !defined(__cpp_lib_freestanding_string_view) */ #undef __glibcxx_want_freestanding_string_view #if !defined(__cpp_lib_freestanding_variant) @@ -1720,7 +1738,7 @@ # define __cpp_lib_freestanding_variant 202311L # endif # endif -#endif /* !defined(__cpp_lib_freestanding_variant) && defined(__glibcxx_want_freestanding_variant) */ +#endif /* !defined(__cpp_lib_freestanding_variant) */ #undef __glibcxx_want_freestanding_variant #if !defined(__cpp_lib_invoke_r) @@ -1730,7 +1748,7 @@ # define __cpp_lib_invoke_r 202106L # endif # endif -#endif /* !defined(__cpp_lib_invoke_r) && defined(__glibcxx_want_invoke_r) */ +#endif /* !defined(__cpp_lib_invoke_r) */ #undef __glibcxx_want_invoke_r #if !defined(__cpp_lib_is_scoped_enum) @@ -1740,7 +1758,7 @@ # define __cpp_lib_is_scoped_enum 202011L # endif # endif -#endif /* !defined(__cpp_lib_is_scoped_enum) && defined(__glibcxx_want_is_scoped_enum) */ +#endif /* !defined(__cpp_lib_is_scoped_enum) */ #undef __glibcxx_want_is_scoped_enum #if !defined(__cpp_lib_reference_from_temporary) @@ -1750,7 +1768,7 @@ # define __cpp_lib_reference_from_temporary 202202L # endif # endif -#endif /* !defined(__cpp_lib_reference_from_temporary) && defined(__glibcxx_want_reference_from_temporary) */ +#endif /* !defined(__cpp_lib_reference_from_temporary) */ #undef __glibcxx_want_reference_from_temporary #if !defined(__cpp_lib_containers_ranges) @@ -1760,7 +1778,7 @@ # define __cpp_lib_containers_ranges 202202L # endif # endif -#endif /* !defined(__cpp_lib_containers_ranges) && defined(__glibcxx_want_containers_ranges) */ +#endif /* !defined(__cpp_lib_containers_ranges) */ #undef __glibcxx_want_containers_ranges #if !defined(__cpp_lib_ranges_to_container) @@ -1770,7 +1788,7 @@ # define __cpp_lib_ranges_to_container 202202L # endif # endif -#endif /* !defined(__cpp_lib_ranges_to_container) && defined(__glibcxx_want_ranges_to_container) */ +#endif /* !defined(__cpp_lib_ranges_to_container) */ #undef __glibcxx_want_ranges_to_container #if !defined(__cpp_lib_ranges_zip) @@ -1780,7 +1798,7 @@ # define __cpp_lib_ranges_zip 202110L # endif # endif -#endif /* !defined(__cpp_lib_ranges_zip) && defined(__glibcxx_want_ranges_zip) */ +#endif /* !defined(__cpp_lib_ranges_zip) */ #undef __glibcxx_want_ranges_zip #if !defined(__cpp_lib_ranges_chunk) @@ -1790,7 +1808,7 @@ # define __cpp_lib_ranges_chunk 202202L # endif # endif -#endif /* !defined(__cpp_lib_ranges_chunk) && defined(__glibcxx_want_ranges_chunk) */ +#endif /* !defined(__cpp_lib_ranges_chunk) */ #undef __glibcxx_want_ranges_chunk #if !defined(__cpp_lib_ranges_slide) @@ -1800,7 +1818,7 @@ # define __cpp_lib_ranges_slide 202202L # endif # endif -#endif /* !defined(__cpp_lib_ranges_slide) && defined(__glibcxx_want_ranges_slide) */ +#endif /* !defined(__cpp_lib_ranges_slide) */ #undef __glibcxx_want_ranges_slide #if !defined(__cpp_lib_ranges_chunk_by) @@ -1810,7 +1828,7 @@ # define __cpp_lib_ranges_chunk_by 202202L # endif # endif -#endif /* !defined(__cpp_lib_ranges_chunk_by) && defined(__glibcxx_want_ranges_chunk_by) */ +#endif /* !defined(__cpp_lib_ranges_chunk_by) */ #undef __glibcxx_want_ranges_chunk_by #if !defined(__cpp_lib_ranges_join_with) @@ -1820,7 +1838,7 @@ # define __cpp_lib_ranges_join_with 202202L # endif # endif -#endif /* !defined(__cpp_lib_ranges_join_with) && defined(__glibcxx_want_ranges_join_with) */ +#endif /* !defined(__cpp_lib_ranges_join_with) */ #undef __glibcxx_want_ranges_join_with #if !defined(__cpp_lib_ranges_repeat) @@ -1830,7 +1848,7 @@ # define __cpp_lib_ranges_repeat 202207L # endif # endif -#endif /* !defined(__cpp_lib_ranges_repeat) && defined(__glibcxx_want_ranges_repeat) */ +#endif /* !defined(__cpp_lib_ranges_repeat) */ #undef __glibcxx_want_ranges_repeat #if !defined(__cpp_lib_ranges_stride) @@ -1840,7 +1858,7 @@ # define __cpp_lib_ranges_stride 202207L # endif # endif -#endif /* !defined(__cpp_lib_ranges_stride) && defined(__glibcxx_want_ranges_stride) */ +#endif /* !defined(__cpp_lib_ranges_stride) */ #undef __glibcxx_want_ranges_stride #if !defined(__cpp_lib_ranges_cartesian_product) @@ -1850,7 +1868,7 @@ # define __cpp_lib_ranges_cartesian_product 202207L # endif # endif -#endif /* !defined(__cpp_lib_ranges_cartesian_product) && defined(__glibcxx_want_ranges_cartesian_product) */ +#endif /* !defined(__cpp_lib_ranges_cartesian_product) */ #undef __glibcxx_want_ranges_cartesian_product #if !defined(__cpp_lib_ranges_as_rvalue) @@ -1860,7 +1878,7 @@ # define __cpp_lib_ranges_as_rvalue 202207L # endif # endif -#endif /* !defined(__cpp_lib_ranges_as_rvalue) && defined(__glibcxx_want_ranges_as_rvalue) */ +#endif /* !defined(__cpp_lib_ranges_as_rvalue) */ #undef __glibcxx_want_ranges_as_rvalue #if !defined(__cpp_lib_ranges_as_const) @@ -1870,7 +1888,7 @@ # define __cpp_lib_ranges_as_const 202311L # endif # endif -#endif /* !defined(__cpp_lib_ranges_as_const) && defined(__glibcxx_want_ranges_as_const) */ +#endif /* !defined(__cpp_lib_ranges_as_const) */ #undef __glibcxx_want_ranges_as_const #if !defined(__cpp_lib_ranges_enumerate) @@ -1880,7 +1898,7 @@ # define __cpp_lib_ranges_enumerate 202302L # endif # endif -#endif /* !defined(__cpp_lib_ranges_enumerate) && defined(__glibcxx_want_ranges_enumerate) */ +#endif /* !defined(__cpp_lib_ranges_enumerate) */ #undef __glibcxx_want_ranges_enumerate #if !defined(__cpp_lib_ranges_fold) @@ -1890,7 +1908,7 @@ # define __cpp_lib_ranges_fold 202207L # endif # endif -#endif /* !defined(__cpp_lib_ranges_fold) && defined(__glibcxx_want_ranges_fold) */ +#endif /* !defined(__cpp_lib_ranges_fold) */ #undef __glibcxx_want_ranges_fold #if !defined(__cpp_lib_ranges_contains) @@ -1900,7 +1918,7 @@ # define __cpp_lib_ranges_contains 202207L # endif # endif -#endif /* !defined(__cpp_lib_ranges_contains) && defined(__glibcxx_want_ranges_contains) */ +#endif /* !defined(__cpp_lib_ranges_contains) */ #undef __glibcxx_want_ranges_contains #if !defined(__cpp_lib_ranges_iota) @@ -1910,7 +1928,7 @@ # define __cpp_lib_ranges_iota 202202L # endif # endif -#endif /* !defined(__cpp_lib_ranges_iota) && defined(__glibcxx_want_ranges_iota) */ +#endif /* !defined(__cpp_lib_ranges_iota) */ #undef __glibcxx_want_ranges_iota #if !defined(__cpp_lib_ranges_find_last) @@ -1920,7 +1938,7 @@ # define __cpp_lib_ranges_find_last 202207L # endif # endif -#endif /* !defined(__cpp_lib_ranges_find_last) && defined(__glibcxx_want_ranges_find_last) */ +#endif /* !defined(__cpp_lib_ranges_find_last) */ #undef __glibcxx_want_ranges_find_last #if !defined(__cpp_lib_ranges_starts_ends_with) @@ -1930,7 +1948,7 @@ # define __cpp_lib_ranges_starts_ends_with 202106L # endif # endif -#endif /* !defined(__cpp_lib_ranges_starts_ends_with) && defined(__glibcxx_want_ranges_starts_ends_with) */ +#endif /* !defined(__cpp_lib_ranges_starts_ends_with) */ #undef __glibcxx_want_ranges_starts_ends_with #if !defined(__cpp_lib_constexpr_bitset) @@ -1940,7 +1958,7 @@ # define __cpp_lib_constexpr_bitset 202202L # endif # endif -#endif /* !defined(__cpp_lib_constexpr_bitset) && defined(__glibcxx_want_constexpr_bitset) */ +#endif /* !defined(__cpp_lib_constexpr_bitset) */ #undef __glibcxx_want_constexpr_bitset #if !defined(__cpp_lib_stdatomic_h) @@ -1950,7 +1968,7 @@ # define __cpp_lib_stdatomic_h 202011L # endif # endif -#endif /* !defined(__cpp_lib_stdatomic_h) && defined(__glibcxx_want_stdatomic_h) */ +#endif /* !defined(__cpp_lib_stdatomic_h) */ #undef __glibcxx_want_stdatomic_h #if !defined(__cpp_lib_adaptor_iterator_pair_constructor) @@ -1960,7 +1978,7 @@ # define __cpp_lib_adaptor_iterator_pair_constructor 202106L # endif # endif -#endif /* !defined(__cpp_lib_adaptor_iterator_pair_constructor) && defined(__glibcxx_want_adaptor_iterator_pair_constructor) */ +#endif /* !defined(__cpp_lib_adaptor_iterator_pair_constructor) */ #undef __glibcxx_want_adaptor_iterator_pair_constructor #if !defined(__cpp_lib_flat_map) @@ -1970,7 +1988,7 @@ # define __cpp_lib_flat_map 202207L # endif # endif -#endif /* !defined(__cpp_lib_flat_map) && defined(__glibcxx_want_flat_map) */ +#endif /* !defined(__cpp_lib_flat_map) */ #undef __glibcxx_want_flat_map #if !defined(__cpp_lib_flat_set) @@ -1980,7 +1998,7 @@ # define __cpp_lib_flat_set 202207L # endif # endif -#endif /* !defined(__cpp_lib_flat_set) && defined(__glibcxx_want_flat_set) */ +#endif /* !defined(__cpp_lib_flat_set) */ #undef __glibcxx_want_flat_set #if !defined(__cpp_lib_formatters) @@ -1990,7 +2008,7 @@ # define __cpp_lib_formatters 202302L # endif # endif -#endif /* !defined(__cpp_lib_formatters) && defined(__glibcxx_want_formatters) */ +#endif /* !defined(__cpp_lib_formatters) */ #undef __glibcxx_want_formatters #if !defined(__cpp_lib_forward_like) @@ -2000,7 +2018,7 @@ # define __cpp_lib_forward_like 202207L # endif # endif -#endif /* !defined(__cpp_lib_forward_like) && defined(__glibcxx_want_forward_like) */ +#endif /* !defined(__cpp_lib_forward_like) */ #undef __glibcxx_want_forward_like #if !defined(__cpp_lib_generator) @@ -2010,7 +2028,7 @@ # define __cpp_lib_generator 202207L # endif # endif -#endif /* !defined(__cpp_lib_generator) && defined(__glibcxx_want_generator) */ +#endif /* !defined(__cpp_lib_generator) */ #undef __glibcxx_want_generator #if !defined(__cpp_lib_ios_noreplace) @@ -2020,7 +2038,7 @@ # define __cpp_lib_ios_noreplace 202207L # endif # endif -#endif /* !defined(__cpp_lib_ios_noreplace) && defined(__glibcxx_want_ios_noreplace) */ +#endif /* !defined(__cpp_lib_ios_noreplace) */ #undef __glibcxx_want_ios_noreplace #if !defined(__cpp_lib_move_only_function) @@ -2030,7 +2048,7 @@ # define __cpp_lib_move_only_function 202110L # endif # endif -#endif /* !defined(__cpp_lib_move_only_function) && defined(__glibcxx_want_move_only_function) */ +#endif /* !defined(__cpp_lib_move_only_function) */ #undef __glibcxx_want_move_only_function #if !defined(__cpp_lib_copyable_function) @@ -2040,7 +2058,7 @@ # define __cpp_lib_copyable_function 202306L # endif # endif -#endif /* !defined(__cpp_lib_copyable_function) && defined(__glibcxx_want_copyable_function) */ +#endif /* !defined(__cpp_lib_copyable_function) */ #undef __glibcxx_want_copyable_function #if !defined(__cpp_lib_function_ref) @@ -2050,7 +2068,7 @@ # define __cpp_lib_function_ref 202306L # endif # endif -#endif /* !defined(__cpp_lib_function_ref) && defined(__glibcxx_want_function_ref) */ +#endif /* !defined(__cpp_lib_function_ref) */ #undef __glibcxx_want_function_ref #if !defined(__cpp_lib_out_ptr) @@ -2060,17 +2078,17 @@ # define __cpp_lib_out_ptr 202311L # endif # endif -#endif /* !defined(__cpp_lib_out_ptr) && defined(__glibcxx_want_out_ptr) */ +#endif /* !defined(__cpp_lib_out_ptr) */ #undef __glibcxx_want_out_ptr #if !defined(__cpp_lib_print) # if (__cplusplus >= 202100L) && _GLIBCXX_HOSTED -# define __glibcxx_print 202211L +# define __glibcxx_print 202406L # if defined(__glibcxx_want_all) || defined(__glibcxx_want_print) -# define __cpp_lib_print 202211L +# define __cpp_lib_print 202406L # endif # endif -#endif /* !defined(__cpp_lib_print) && defined(__glibcxx_want_print) */ +#endif /* !defined(__cpp_lib_print) */ #undef __glibcxx_want_print #if !defined(__cpp_lib_spanstream) @@ -2080,7 +2098,7 @@ # define __cpp_lib_spanstream 202106L # endif # endif -#endif /* !defined(__cpp_lib_spanstream) && defined(__glibcxx_want_spanstream) */ +#endif /* !defined(__cpp_lib_spanstream) */ #undef __glibcxx_want_spanstream #if !defined(__cpp_lib_stacktrace) @@ -2090,7 +2108,7 @@ # define __cpp_lib_stacktrace 202011L # endif # endif -#endif /* !defined(__cpp_lib_stacktrace) && defined(__glibcxx_want_stacktrace) */ +#endif /* !defined(__cpp_lib_stacktrace) */ #undef __glibcxx_want_stacktrace #if !defined(__cpp_lib_start_lifetime_as) @@ -2100,7 +2118,7 @@ # define __cpp_lib_start_lifetime_as 202207L # endif # endif -#endif /* !defined(__cpp_lib_start_lifetime_as) && defined(__glibcxx_want_start_lifetime_as) */ +#endif /* !defined(__cpp_lib_start_lifetime_as) */ #undef __glibcxx_want_start_lifetime_as #if !defined(__cpp_lib_string_contains) @@ -2110,7 +2128,7 @@ # define __cpp_lib_string_contains 202011L # endif # endif -#endif /* !defined(__cpp_lib_string_contains) && defined(__glibcxx_want_string_contains) */ +#endif /* !defined(__cpp_lib_string_contains) */ #undef __glibcxx_want_string_contains #if !defined(__cpp_lib_string_resize_and_overwrite) @@ -2120,7 +2138,7 @@ # define __cpp_lib_string_resize_and_overwrite 202110L # endif # endif -#endif /* !defined(__cpp_lib_string_resize_and_overwrite) && defined(__glibcxx_want_string_resize_and_overwrite) */ +#endif /* !defined(__cpp_lib_string_resize_and_overwrite) */ #undef __glibcxx_want_string_resize_and_overwrite #if !defined(__cpp_lib_to_underlying) @@ -2130,7 +2148,7 @@ # define __cpp_lib_to_underlying 202102L # endif # endif -#endif /* !defined(__cpp_lib_to_underlying) && defined(__glibcxx_want_to_underlying) */ +#endif /* !defined(__cpp_lib_to_underlying) */ #undef __glibcxx_want_to_underlying #if !defined(__cpp_lib_tuple_like) @@ -2145,7 +2163,7 @@ # define __cpp_lib_tuple_like 202207L # endif # endif -#endif /* !defined(__cpp_lib_tuple_like) && defined(__glibcxx_want_tuple_like) */ +#endif /* !defined(__cpp_lib_tuple_like) */ #undef __glibcxx_want_tuple_like #if !defined(__cpp_lib_unreachable) @@ -2155,7 +2173,7 @@ # define __cpp_lib_unreachable 202202L # endif # endif -#endif /* !defined(__cpp_lib_unreachable) && defined(__glibcxx_want_unreachable) */ +#endif /* !defined(__cpp_lib_unreachable) */ #undef __glibcxx_want_unreachable #if !defined(__cpp_lib_algorithm_default_value_type) @@ -2165,7 +2183,7 @@ # define __cpp_lib_algorithm_default_value_type 202403L # endif # endif -#endif /* !defined(__cpp_lib_algorithm_default_value_type) && defined(__glibcxx_want_algorithm_default_value_type) */ +#endif /* !defined(__cpp_lib_algorithm_default_value_type) */ #undef __glibcxx_want_algorithm_default_value_type #if !defined(__cpp_lib_constexpr_new) @@ -2175,7 +2193,7 @@ # define __cpp_lib_constexpr_new 202406L # endif # endif -#endif /* !defined(__cpp_lib_constexpr_new) && defined(__glibcxx_want_constexpr_new) */ +#endif /* !defined(__cpp_lib_constexpr_new) */ #undef __glibcxx_want_constexpr_new #if !defined(__cpp_lib_debugging) @@ -2185,7 +2203,7 @@ # define __cpp_lib_debugging 202403L # endif # endif -#endif /* !defined(__cpp_lib_debugging) && defined(__glibcxx_want_debugging) */ +#endif /* !defined(__cpp_lib_debugging) */ #undef __glibcxx_want_debugging #if !defined(__cpp_lib_fstream_native_handle) @@ -2195,7 +2213,7 @@ # define __cpp_lib_fstream_native_handle 202306L # endif # endif -#endif /* !defined(__cpp_lib_fstream_native_handle) && defined(__glibcxx_want_fstream_native_handle) */ +#endif /* !defined(__cpp_lib_fstream_native_handle) */ #undef __glibcxx_want_fstream_native_handle #if !defined(__cpp_lib_is_virtual_base_of) @@ -2205,7 +2223,7 @@ # define __cpp_lib_is_virtual_base_of 202406L # endif # endif -#endif /* !defined(__cpp_lib_is_virtual_base_of) && defined(__glibcxx_want_is_virtual_base_of) */ +#endif /* !defined(__cpp_lib_is_virtual_base_of) */ #undef __glibcxx_want_is_virtual_base_of #if !defined(__cpp_lib_ranges_cache_latest) @@ -2215,7 +2233,7 @@ # define __cpp_lib_ranges_cache_latest 202411L # endif # endif -#endif /* !defined(__cpp_lib_ranges_cache_latest) && defined(__glibcxx_want_ranges_cache_latest) */ +#endif /* !defined(__cpp_lib_ranges_cache_latest) */ #undef __glibcxx_want_ranges_cache_latest #if !defined(__cpp_lib_ranges_concat) @@ -2225,7 +2243,7 @@ # define __cpp_lib_ranges_concat 202403L # endif # endif -#endif /* !defined(__cpp_lib_ranges_concat) && defined(__glibcxx_want_ranges_concat) */ +#endif /* !defined(__cpp_lib_ranges_concat) */ #undef __glibcxx_want_ranges_concat #if !defined(__cpp_lib_ratio) @@ -2235,7 +2253,7 @@ # define __cpp_lib_ratio 202306L # endif # endif -#endif /* !defined(__cpp_lib_ratio) && defined(__glibcxx_want_ratio) */ +#endif /* !defined(__cpp_lib_ratio) */ #undef __glibcxx_want_ratio #if !defined(__cpp_lib_reference_wrapper) @@ -2245,7 +2263,7 @@ # define __cpp_lib_reference_wrapper 202403L # endif # endif -#endif /* !defined(__cpp_lib_reference_wrapper) && defined(__glibcxx_want_reference_wrapper) */ +#endif /* !defined(__cpp_lib_reference_wrapper) */ #undef __glibcxx_want_reference_wrapper #if !defined(__cpp_lib_saturation_arithmetic) @@ -2255,7 +2273,7 @@ # define __cpp_lib_saturation_arithmetic 202311L # endif # endif -#endif /* !defined(__cpp_lib_saturation_arithmetic) && defined(__glibcxx_want_saturation_arithmetic) */ +#endif /* !defined(__cpp_lib_saturation_arithmetic) */ #undef __glibcxx_want_saturation_arithmetic #if !defined(__cpp_lib_span_initializer_list) @@ -2265,7 +2283,7 @@ # define __cpp_lib_span_initializer_list 202311L # endif # endif -#endif /* !defined(__cpp_lib_span_initializer_list) && defined(__glibcxx_want_span_initializer_list) */ +#endif /* !defined(__cpp_lib_span_initializer_list) */ #undef __glibcxx_want_span_initializer_list #if !defined(__cpp_lib_text_encoding) @@ -2275,7 +2293,7 @@ # define __cpp_lib_text_encoding 202306L # endif # endif -#endif /* !defined(__cpp_lib_text_encoding) && defined(__glibcxx_want_text_encoding) */ +#endif /* !defined(__cpp_lib_text_encoding) */ #undef __glibcxx_want_text_encoding #if !defined(__cpp_lib_ranges_to_input) @@ -2285,7 +2303,7 @@ # define __cpp_lib_ranges_to_input 202502L # endif # endif -#endif /* !defined(__cpp_lib_ranges_to_input) && defined(__glibcxx_want_ranges_to_input) */ +#endif /* !defined(__cpp_lib_ranges_to_input) */ #undef __glibcxx_want_ranges_to_input #if !defined(__cpp_lib_to_string) @@ -2295,7 +2313,7 @@ # define __cpp_lib_to_string 202306L # endif # endif -#endif /* !defined(__cpp_lib_to_string) && defined(__glibcxx_want_to_string) */ +#endif /* !defined(__cpp_lib_to_string) */ #undef __glibcxx_want_to_string #if !defined(__cpp_lib_modules) @@ -2305,7 +2323,7 @@ # define __cpp_lib_modules 202207L # endif # endif -#endif /* !defined(__cpp_lib_modules) && defined(__glibcxx_want_modules) */ +#endif /* !defined(__cpp_lib_modules) */ #undef __glibcxx_want_modules #if !defined(__cpp_lib_inplace_vector) @@ -2315,7 +2333,7 @@ # define __cpp_lib_inplace_vector 202406L # endif # endif -#endif /* !defined(__cpp_lib_inplace_vector) && defined(__glibcxx_want_inplace_vector) */ +#endif /* !defined(__cpp_lib_inplace_vector) */ #undef __glibcxx_want_inplace_vector #if !defined(__cpp_lib_indirect) @@ -2325,7 +2343,7 @@ # define __cpp_lib_indirect 202502L # endif # endif -#endif /* !defined(__cpp_lib_indirect) && defined(__glibcxx_want_indirect) */ +#endif /* !defined(__cpp_lib_indirect) */ #undef __glibcxx_want_indirect #if !defined(__cpp_lib_polymorphic) @@ -2335,7 +2353,7 @@ # define __cpp_lib_polymorphic 202502L # endif # endif -#endif /* !defined(__cpp_lib_polymorphic) && defined(__glibcxx_want_polymorphic) */ +#endif /* !defined(__cpp_lib_polymorphic) */ #undef __glibcxx_want_polymorphic #if !defined(__cpp_lib_smart_ptr_owner_equality) @@ -2345,7 +2363,7 @@ # define __cpp_lib_smart_ptr_owner_equality 202306L # endif # endif -#endif /* !defined(__cpp_lib_smart_ptr_owner_equality) && defined(__glibcxx_want_smart_ptr_owner_equality) */ +#endif /* !defined(__cpp_lib_smart_ptr_owner_equality) */ #undef __glibcxx_want_smart_ptr_owner_equality #if !defined(__cpp_lib_sstream_from_string_view) @@ -2355,7 +2373,7 @@ # define __cpp_lib_sstream_from_string_view 202306L # endif # endif -#endif /* !defined(__cpp_lib_sstream_from_string_view) && defined(__glibcxx_want_sstream_from_string_view) */ +#endif /* !defined(__cpp_lib_sstream_from_string_view) */ #undef __glibcxx_want_sstream_from_string_view #if !defined(__cpp_lib_type_order) @@ -2365,7 +2383,7 @@ # define __cpp_lib_type_order 202506L # endif # endif -#endif /* !defined(__cpp_lib_type_order) && defined(__glibcxx_want_type_order) */ +#endif /* !defined(__cpp_lib_type_order) */ #undef __glibcxx_want_type_order #if !defined(__cpp_lib_exception_ptr_cast) @@ -2375,7 +2393,7 @@ # define __cpp_lib_exception_ptr_cast 202506L # endif # endif -#endif /* !defined(__cpp_lib_exception_ptr_cast) && defined(__glibcxx_want_exception_ptr_cast) */ +#endif /* !defined(__cpp_lib_exception_ptr_cast) */ #undef __glibcxx_want_exception_ptr_cast #if !defined(__cpp_lib_bitset) @@ -2385,7 +2403,7 @@ # define __cpp_lib_bitset 202306L # endif # endif -#endif /* !defined(__cpp_lib_bitset) && defined(__glibcxx_want_bitset) */ +#endif /* !defined(__cpp_lib_bitset) */ #undef __glibcxx_want_bitset #if !defined(__cpp_lib_constexpr_exceptions) @@ -2394,7 +2412,7 @@ # if defined(__glibcxx_want_all) || defined(__glibcxx_want_constexpr_exceptions) # endif # endif -#endif /* !defined(__cpp_lib_constexpr_exceptions) && defined(__glibcxx_want_constexpr_exceptions) */ +#endif /* !defined(__cpp_lib_constexpr_exceptions) */ #undef __glibcxx_want_constexpr_exceptions #if !defined(__cpp_lib_philox_engine) @@ -2404,7 +2422,7 @@ # define __cpp_lib_philox_engine 202406L # endif # endif -#endif /* !defined(__cpp_lib_philox_engine) && defined(__glibcxx_want_philox_engine) */ +#endif /* !defined(__cpp_lib_philox_engine) */ #undef __glibcxx_want_philox_engine #undef __glibcxx_want_all diff --git a/libstdc++-v3/include/bits/version.tpl b/libstdc++-v3/include/bits/version.tpl index ccda71d6bcfe..5d62b2a17f55 100644 --- a/libstdc++-v3/include/bits/version.tpl +++ b/libstdc++-v3/include/bits/version.tpl @@ -132,10 +132,11 @@ h This macro block defines two versions of each FTM: - 1. __glibcxx_NAME, which is defined unconditionally, and - 2. __cpp_lib_NAME, which is defined only if marked as wanted. + 1. __glibcxx_NAME, which is defined as long its conditions are met, and + 2. __cpp_lib_NAME, which is defined only if __glibcxx_want_NAME is defined + and no_stdname is not set. - This allows FTMs to depend on eachother in their definitions without messing + This allows FTMs to depend on each other in their definitions without messing with the exported values. This can also be used by bits that do not want to expose FTMs that they can't @@ -155,7 +156,7 @@ h # endif /*{ ENDFOR values }*/# endif -#endif /* !defined(__cpp_lib_/*{name}*/) && defined(__glibcxx_want_/*{name}*/) */ +#endif /* !defined(__cpp_lib_/*{name}*/) */ #undef __glibcxx_want_/*{name }*//*{ (unless (last-for?) "\n\n" "\n")}*/ /*{ ENDFOR ftms }*//*{ diff --git a/libstdc++-v3/include/ext/ropeimpl.h b/libstdc++-v3/include/ext/ropeimpl.h index 320192706ff9..00b334cb4f4e 100644 --- a/libstdc++-v3/include/ext/ropeimpl.h +++ b/libstdc++-v3/include/ext/ropeimpl.h @@ -1355,7 +1355,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION case __detail::_S_substringfn: { _RopeFunction* __f = (_RopeFunction*)__r; - _CharT __result; + _CharT __result = _CharT(); (*(__f->_M_fn))(__i, 1, &__result); return __result; diff --git a/libstdc++-v3/include/std/atomic b/libstdc++-v3/include/std/atomic index 9b1aca0fc09a..ccb77fa6327d 100644 --- a/libstdc++-v3/include/std/atomic +++ b/libstdc++-v3/include/std/atomic @@ -217,6 +217,11 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION static_assert(sizeof(_Tp) > 0, "Incomplete or zero-sized types are not supported"); + // _GLIBCXX_RESOLVE_LIB_DEFECTS + // 4069. std::atomic should be ill-formed + static_assert(is_same<_Tp, typename remove_cv<_Tp>::type>::value, + "template argument for std::atomic must not be const or volatile"); + #if __cplusplus > 201703L static_assert(is_copy_constructible_v<_Tp>); static_assert(is_move_constructible_v<_Tp>); diff --git a/libstdc++-v3/include/std/format b/libstdc++-v3/include/std/format index 842972eed4ca..281c038559e4 100644 --- a/libstdc++-v3/include/std/format +++ b/libstdc++-v3/include/std/format @@ -2599,6 +2599,11 @@ namespace __format __format::__formatter_int<_CharT> _M_f; }; +#if __glibcxx_print >= 202403L + template<__format::__char _CharT> + constexpr bool enable_nonlocking_formatter_optimization<_CharT> = true; +#endif + #ifdef _GLIBCXX_USE_WCHAR_T /// Format a char value for wide character output. template<> @@ -2660,6 +2665,11 @@ namespace __format __format::__formatter_str<_CharT> _M_f; }; +#if __glibcxx_print >= 202403L + template<__format::__char _CharT> + constexpr bool enable_nonlocking_formatter_optimization<_CharT*> = true; +#endif + template<__format::__char _CharT> struct formatter { @@ -2685,6 +2695,12 @@ namespace __format __format::__formatter_str<_CharT> _M_f; }; +#if __glibcxx_print >= 202403L + template<__format::__char _CharT> + constexpr bool + enable_nonlocking_formatter_optimization = true; +#endif + template<__format::__char _CharT, size_t _Nm> struct formatter<_CharT[_Nm], _CharT> { @@ -2709,6 +2725,11 @@ namespace __format __format::__formatter_str<_CharT> _M_f; }; +#if __glibcxx_print >= 202403L + template<__format::__char _CharT, size_t _Nm> + constexpr bool enable_nonlocking_formatter_optimization<_CharT[_Nm]> = true; +#endif + template struct formatter, char> { @@ -2733,6 +2754,13 @@ namespace __format __format::__formatter_str _M_f; }; +#if __glibcxx_print >= 202403L + template + constexpr bool + enable_nonlocking_formatter_optimization> + = true; +#endif + #ifdef _GLIBCXX_USE_WCHAR_T template struct formatter, wchar_t> @@ -2757,6 +2785,14 @@ namespace __format private: __format::__formatter_str _M_f; }; + +#if __glibcxx_print >= 202403L + template + constexpr bool + enable_nonlocking_formatter_optimization> + = true; +#endif + #endif // USE_WCHAR_T template @@ -2783,6 +2819,13 @@ namespace __format __format::__formatter_str _M_f; }; +#if __glibcxx_print >= 202403L + template + constexpr bool + enable_nonlocking_formatter_optimization> + = true; +#endif + #ifdef _GLIBCXX_USE_WCHAR_T template struct formatter, wchar_t> @@ -2807,6 +2850,13 @@ namespace __format private: __format::__formatter_str _M_f; }; + +#if __glibcxx_print >= 202403L + template + constexpr bool + enable_nonlocking_formatter_optimization> + = true; +#endif #endif // USE_WCHAR_T /// @} @@ -2831,12 +2881,14 @@ namespace __format #endif template<> inline constexpr bool __is_formattable_integer = false; template<> inline constexpr bool __is_formattable_integer = false; + + template + concept __formattable_integer = __is_formattable_integer<_Tp>; } /// @endcond /// Format an integer. - template - requires __format::__is_formattable_integer<_Tp> + template<__format::__formattable_integer _Tp, __format::__char _CharT> struct formatter<_Tp, _CharT> { formatter() = default; @@ -2857,6 +2909,12 @@ namespace __format __format::__formatter_int<_CharT> _M_f; }; +#if __glibcxx_print >= 202403L + template<__format::__formattable_integer _Tp> + constexpr bool + enable_nonlocking_formatter_optimization<_Tp> = true; +#endif + #if defined __glibcxx_to_chars /// Format a floating-point value. template<__format::__formattable_float _Tp, __format::__char _CharT> @@ -2878,6 +2936,12 @@ namespace __format __format::__formatter_fp<_CharT> _M_f; }; +#if __glibcxx_print >= 202403L + template<__format::__formattable_float _Tp> + constexpr bool + enable_nonlocking_formatter_optimization<_Tp> = true; +#endif + #if __LDBL_MANT_DIG__ == __DBL_MANT_DIG__ // Reuse __formatter_fp::format for long double. template<__format::__char _CharT> @@ -3056,6 +3120,12 @@ namespace __format __format::__formatter_ptr<_CharT> _M_f; }; +#if __glibcxx_print >= 202403L + template<> + inline constexpr bool + enable_nonlocking_formatter_optimization = true; +#endif + template<__format::__char _CharT> struct formatter { @@ -3075,6 +3145,12 @@ namespace __format __format::__formatter_ptr<_CharT> _M_f; }; +#if __glibcxx_print >= 202403l + template<> + inline constexpr bool + enable_nonlocking_formatter_optimization = true; +#endif + template<__format::__char _CharT> struct formatter { @@ -3095,6 +3171,12 @@ namespace __format }; /// @} +#if __glibcxx_print >= 202403L + template<> + inline constexpr bool + enable_nonlocking_formatter_optimization = true; +#endif + #if defined _GLIBCXX_USE_WCHAR_T && __glibcxx_format_ranges // _GLIBCXX_RESOLVE_LIB_DEFECTS // 3944. Formatters converting sequences of char to sequences of wchar_t @@ -5790,6 +5872,15 @@ namespace __format { return this->_M_format_elems(__p.first, __p.second, __fc); } }; +#if __glibcxx_print >= 202406L + // _GLIBCXX_RESOLVE_LIB_DEFECTS + // 4399. enable_nonlocking_formatter_optimization for pair and tuple needs remove_cvref_t + template + constexpr bool enable_nonlocking_formatter_optimization> + = enable_nonlocking_formatter_optimization> + && enable_nonlocking_formatter_optimization>; +#endif + template<__format::__char _CharT, formattable<_CharT>... _Tps> struct formatter, _CharT> : __format::__tuple_formatter<_CharT, remove_cvref_t<_Tps>...> @@ -5808,6 +5899,14 @@ namespace __format { return this->_M_format(__t, index_sequence_for<_Tps...>(), __fc); } }; +#if __glibcxx_print >= 202406L + // _GLIBCXX_RESOLVE_LIB_DEFECTS + // 4399. enable_nonlocking_formatter_optimization for pair and tuple needs remove_cvref_t + template + constexpr bool enable_nonlocking_formatter_optimization> + = (enable_nonlocking_formatter_optimization> && ...); +#endif + // [format.range.formatter], class template range_formatter template requires same_as, _Tp> && formattable<_Tp, _CharT> @@ -6102,6 +6201,13 @@ namespace __format range_formatter<_Vt, _CharT>>; _Formatter_under _M_under; }; + +#if __glibcxx_print >= 202406L + template + requires (format_kind<_Rg> != range_format::disabled) + constexpr bool enable_nonlocking_formatter_optimization<_Rg> = false; +#endif + #endif // C++23 formatting ranges #undef _GLIBCXX_WIDEN diff --git a/libstdc++-v3/include/std/inplace_vector b/libstdc++-v3/include/std/inplace_vector index 91ceace08f5b..7aa6f9d4ab28 100644 --- a/libstdc++-v3/include/std/inplace_vector +++ b/libstdc++-v3/include/std/inplace_vector @@ -823,6 +823,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION __detail::__synth3way); } + // [inplace.vector.special], specialized algorithms constexpr friend void swap(inplace_vector& __x, inplace_vector& __y) noexcept(is_nothrow_swappable_v<_Tp> && is_nothrow_move_constructible_v<_Tp>) @@ -907,13 +908,6 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION } }; - // [inplace.vector.special], specialized algorithms - template - constexpr void - swap(inplace_vector<_Tp, _Nm>& __x, inplace_vector<_Tp, _Nm>& __y) - noexcept(noexcept(__x.swap(__y))) - { __x.swap(__y); } - // specialization for zero capacity, that is required to be trivally copyable // and empty regardless of _Tp. template @@ -992,6 +986,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION { if (__il.size() != 0) __throw_bad_alloc(); + return *this; } template<__any_input_iterator _InputIterator> diff --git a/libstdc++-v3/include/std/mdspan b/libstdc++-v3/include/std/mdspan index d9b5152b6938..d555b7f2580a 100644 --- a/libstdc++-v3/include/std/mdspan +++ b/libstdc++-v3/include/std/mdspan @@ -44,6 +44,7 @@ #define __glibcxx_want_mdspan #define __glibcxx_want_aligned_accessor +#define __glibcxx_want_submdspan #include #ifdef __glibcxx_mdspan @@ -71,6 +72,33 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION return true; } + template + constexpr _IndexType + __index_type_cast(_OIndexType&& __other) + { + if constexpr (std::is_integral_v<_OIndexType>) + { + constexpr _IndexType __index_type_max + = __gnu_cxx::__int_traits<_IndexType>::__max; + constexpr _OIndexType __oindex_type_max + = __gnu_cxx::__int_traits<_OIndexType>::__max; + + if constexpr (__index_type_max < __oindex_type_max) + __glibcxx_assert(cmp_less_equal(__other, __index_type_max)); + + if constexpr (std::is_signed_v<_OIndexType>) + __glibcxx_assert(__other >= 0); + return static_cast<_IndexType>(__other); + } + else + { + auto __ret = static_cast<_IndexType>(std::move(__other)); + if constexpr (std::is_signed_v<_IndexType>) + __glibcxx_assert(__ret >= 0); + return __ret; + } + } + template class _StaticExtents { @@ -261,6 +289,14 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION __static_extents() noexcept { return _Extents::_Storage::_S_static_extents(); } + template + constexpr span + __static_extents(size_t __begin, size_t __end) noexcept + { + const auto& __sta_exts = __static_extents<_Extents>(); + return span(__sta_exts.data() + __begin, __end - __begin); + } + // Pre-compute: \prod_{i = 0}^r _Extents[i], for r = 0,..., n (exclusive) template constexpr auto __fwd_partial_prods = [] consteval @@ -300,6 +336,40 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION { return __exts._M_exts._M_dynamic_extents(__begin, __end); } } +#if __glibcxx_submdspan + struct full_extent_t + { + explicit full_extent_t() = default; + }; + + inline constexpr full_extent_t full_extent{}; + + template + struct strided_slice { + static_assert(__is_standard_integer<_OffsetType>::value + || __detail::__integral_constant_like<_OffsetType>); + static_assert(__is_standard_integer<_ExtentType>::value + || __detail::__integral_constant_like<_ExtentType>); + static_assert(__is_standard_integer<_StrideType>::value + || __detail::__integral_constant_like<_StrideType>); + + using offset_type = _OffsetType; + using extent_type = _ExtentType; + using stride_type = _StrideType; + + [[no_unique_address]] offset_type offset{}; + [[no_unique_address]] extent_type extent{}; + [[no_unique_address]] stride_type stride{}; + }; + + template + struct submdspan_mapping_result + { + [[no_unique_address]] _Mapping mapping = _Mapping(); + size_t offset{}; + }; +#endif + template class extents { @@ -476,6 +546,21 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION } // Preconditions: _r < _Extents::rank() + template + constexpr typename _Extents::index_type + __fwd_prod(const _Extents& __exts, size_t __begin, size_t __end) noexcept + { + size_t __sta_prod = [__begin, __end] { + span __sta_exts = __static_extents<_Extents>(__begin, __end); + size_t __ret = 1; + for(auto __ext : __sta_exts) + if (__ext != dynamic_extent) + __ret *= __ext; + return __ret; + }(); + return __extents_prod(__exts, __sta_prod, __begin, __end); + } + template constexpr typename _Extents::index_type __fwd_prod(const _Extents& __exts, size_t __r) noexcept @@ -567,6 +652,22 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION class mapping; }; +#ifdef __glibcxx_padded_layouts + template + struct layout_left_padded + { + template + class mapping; + }; + + template + struct layout_right_padded + { + template + class mapping; + }; +#endif + namespace __mdspan { template @@ -669,10 +770,34 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION is_same_v, _Mapping>; + template typename _Layout, typename _Mapping> + concept __padded_mapping_of = __mapping_of< + _Layout<_Mapping::padding_value>, _Mapping>; + +#ifdef __glibcxx_padded_layouts + template + constexpr bool __is_left_padded_mapping = __padded_mapping_of< + layout_left_padded, _Mapping>; + + template + constexpr bool __is_right_padded_mapping = __padded_mapping_of< + layout_right_padded, _Mapping>; +#endif + + template + consteval size_t + __get_static_stride() + { return _PaddedMapping::_PaddedStorage::_S_static_stride; } + template concept __standardized_mapping = __mapping_of || __mapping_of - || __mapping_of; + || __mapping_of +#ifdef __glibcxx_padded_layouts + || __is_left_padded_mapping<_Mapping> + || __is_right_padded_mapping<_Mapping> +#endif + ; // A tag type to create internal ctors. class __internal_ctor @@ -726,6 +851,32 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION : mapping(__other.extents(), __mdspan::__internal_ctor{}) { __glibcxx_assert(*this == __other); } +#if __glibcxx_padded_layouts + template + requires __mdspan::__is_left_padded_mapping<_LeftpadMapping> + && is_constructible_v + constexpr + explicit(!is_convertible_v) + mapping(const _LeftpadMapping& __other) noexcept + : mapping(__other.extents(), __mdspan::__internal_ctor{}) + { + constexpr size_t __ostride_sta + = __mdspan::__get_static_stride<_LeftpadMapping>(); + + if constexpr (extents_type::rank() > 1) + { + if constexpr (extents_type::static_extent(0) != dynamic_extent + && __ostride_sta != dynamic_extent) + static_assert(extents_type::static_extent(0) == __ostride_sta); + else + __glibcxx_assert(__other.stride(1) + == __other.extents().extent(0)); + } + } +#endif // __glibcxx_padded_layouts + constexpr mapping& operator=(const mapping&) noexcept = default; @@ -867,6 +1018,34 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION : mapping(__other.extents(), __mdspan::__internal_ctor{}) { __glibcxx_assert(*this == __other); } +#if __glibcxx_padded_layouts + template + requires __mdspan::__is_right_padded_mapping<_RightPaddedMapping> + && is_constructible_v + constexpr + explicit(!is_convertible_v) + mapping(const _RightPaddedMapping& __other) noexcept + : mapping(__other.extents(), __mdspan::__internal_ctor{}) + { + constexpr size_t __rank = extents_type::rank(); + constexpr size_t __ostride_sta + = __mdspan::__get_static_stride<_RightPaddedMapping>(); + + if constexpr (__rank > 1) + { + if constexpr (extents_type::static_extent(__rank - 1) != dynamic_extent + && __ostride_sta != dynamic_extent) + static_assert(extents_type::static_extent(__rank - 1) + == __ostride_sta); + else + __glibcxx_assert(__other.stride(__rank - 2) + == __other.extents().extent(__rank - 1)); + } + } +#endif + constexpr mapping& operator=(const mapping&) noexcept = default; @@ -1173,6 +1352,774 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION [[no_unique_address]] _Strides _M_strides; }; +#ifdef __glibcxx_padded_layouts + namespace __mdspan + { + constexpr size_t + __least_multiple(size_t __x, size_t __y) + { + if (__x <= 1) + return __y; + return (__y / __x + (__y % __x != 0)) * __x ; + } + + template + constexpr bool + __is_representable_least_multiple(size_t __x, size_t __y) + { + constexpr auto __y_max = __gnu_cxx::__int_traits<_IndexType>::__max; + if(std::cmp_greater(__y, __y_max)) + return false; + + if(__x <= 1) + return true; + + auto __max_delta = __y_max - static_cast<_IndexType>(__y); + auto __y_mod_x = __y % __x; + auto __delta = (__y_mod_x == 0) ? size_t(0) : (__x - __y_mod_x); + return std::cmp_less_equal(__delta, __max_delta); + } + + template + concept __valid_static_stride = (_Extents::rank() <= 1) + || (_PaddingValue == dynamic_extent) + || (_Extents::static_extent(_LayoutTraits::_S_ext_idx) == dynamic_extent) + || (__is_representable_least_multiple( + _PaddingValue, _Extents::static_extent(_LayoutTraits::_S_ext_idx))); + + template + consteval bool + __is_representable_padded_size() + { + using _IndexType = typename _Extents::index_type; + auto __sta_exts = __static_extents<_Extents>( + _LayoutTraits::_S_unpad_begin, _LayoutTraits::_S_unpad_end); + size_t __max = __gnu_cxx::__int_traits<_IndexType>::__max; + return __static_quotient(__sta_exts, __max / _PaddedStride) != 0; + } + + template + concept __valid_padded_size = (_Rank <= 1) + || (_PaddedStride == dynamic_extent) + || (!__all_static(__static_extents<_Extents>())) + || (__contains_zero(__static_extents<_Extents>())) + || (__is_representable_padded_size<_PaddedStride, _Extents, + _LayoutTraits>()); + + template + constexpr typename _Extents::index_type + __linear_index_leftpad(const _Extents& __exts, _Stride __stride, + _Indices... __indices) + { + // i0 + stride*(i1 + extents.extent(1)*...) + using _IndexType = typename _Extents::index_type; + _IndexType __res = 0; + if constexpr (sizeof...(__indices) > 0) + { + _IndexType __mult = 1; + + auto __update_rest = [&, __pos = 1u](_IndexType __idx) mutable + { + __res += __idx * __mult; + __mult *= __exts.extent(__pos); + ++__pos; + }; + + auto __update = [&](_IndexType __idx, auto... __rest) + { + __res += __idx; + __mult = __stride.extent(0); + (__update_rest(__rest), ...); + }; + __update(__indices...); + } + return __res; + } + + template + constexpr typename _Extents::index_type + __linear_index_rightpad(const _Extents& __exts, _Stride __stride, + _Indices... __indices) + { + // i[n-1] + stride*(i[n-2] + extents.extent(n-2])*...) + using _IndexType = typename _Extents::index_type; + _IndexType __res = 0; + if constexpr (sizeof...(__indices) > 0) + { + _IndexType __mult = 1; + array<_IndexType, sizeof...(__indices)> __ind_arr{__indices...}; + + auto __update_rest = [&, __pos = __exts.rank()-1](_IndexType) mutable + { + --__pos; + __res += __ind_arr[__pos] * __mult; + __mult *= __exts.extent(__pos); + }; + + auto __update = [&](_IndexType, auto... __rest) + { + __res += __ind_arr[__exts.rank() - 1]; + __mult = __stride.extent(0); + (__update_rest(__rest), ...); + }; + __update(__indices...); + } + return __res; + } + + template + struct _LeftPaddedLayoutTraits + { + using _LayoutSame = layout_left; + using _LayoutOther = layout_right; + + constexpr static const size_t _S_ext_idx = 0; + constexpr static const size_t _S_stride_idx = 1; + constexpr static const size_t _S_unpad_begin = 1; + constexpr static const size_t _S_unpad_end = _Rank; + + template + constexpr static auto + _S_make_padded_extent( + extents<_IndexType, _StaticStride> __stride, + const extents<_IndexType, _Extents...>& __exts) + { + auto __impl = [&](integer_sequence) + { + return extents<_IndexType, _StaticStride, + (_Extents...[_Is + 1])...>{ + __stride.extent(0), __exts.extent(_Is + 1)...}; + }; + return __impl(make_index_sequence()); + } + }; + + template + struct _RightPaddedLayoutTraits + { + using _LayoutSame = layout_right; + using _LayoutOther = layout_left; + + constexpr static size_t _S_ext_idx = _Rank - 1; + constexpr static size_t _S_stride_idx = _Rank - 2; + constexpr static size_t _S_unpad_begin = 0; + constexpr static size_t _S_unpad_end = _Rank - 1; + + template + constexpr static auto + _S_make_padded_extent( + extents<_IndexType, _StaticStride> __stride, + const extents<_IndexType, _Extents...>& __exts) + { + auto __impl = [&](integer_sequence) + { + return extents<_IndexType, (_Extents...[_Is])..., _StaticStride>{ + __exts.extent(_Is)..., __stride.extent(0)}; + }; + return __impl(make_index_sequence()); + } + }; + + template + class _PaddedStorage + { + using _LayoutSame = typename _LayoutTraits::_LayoutSame; + + public: + using _IndexType = typename _Extents::index_type; + constexpr static size_t _S_rank = _Extents::rank(); + + // _GLIBCXX_RESOLVE_LIB_DEFECTS + // 4372. Weaken Mandates: for dynamic padding values in padded layouts + static_assert((_PaddingValue == dynamic_extent) + || (cmp_less_equal(_PaddingValue, + __gnu_cxx::__int_traits<_IndexType>::__max)), + "padding_value must be representable as index_type"); + + static_assert(__representable_size<_Extents, _IndexType>, + "The size of extents_type must be representable as index_type"); + + static_assert(__valid_static_stride<_Extents, _PaddingValue, + _LayoutTraits>, + "The padded stride must be representable as size_t"); + + static constexpr size_t _S_static_stride = [] consteval + { + constexpr size_t __rank = _Extents::rank(); + if constexpr (__rank <= 1) + return 0; + else + { + constexpr size_t __ext_idx = _LayoutTraits::_S_ext_idx; + constexpr size_t __sta_ext = _Extents::static_extent(__ext_idx); + if constexpr (__sta_ext == 0) + return size_t(0); + else if constexpr (_PaddingValue == dynamic_extent + || __sta_ext == dynamic_extent) + return dynamic_extent; + else + return __least_multiple(_PaddingValue, __sta_ext); + } + }(); + + static_assert(_S_static_stride == dynamic_extent + || cmp_less_equal(_S_static_stride, + __gnu_cxx::__int_traits<_IndexType>::__max), + "Padded stride must be representable as index_type"); + + static_assert(__valid_padded_size<_Extents, _S_static_stride, + _LayoutTraits>); + + constexpr + _PaddedStorage() noexcept + { + if constexpr (_S_rank > 1) + if constexpr (_S_static_stride == dynamic_extent + && _S_static_padextent() != dynamic_extent) + _M_stride = _Stride{_S_static_padextent()}; + } + + constexpr explicit + _PaddedStorage(const _Extents& __exts) + : _M_extents(__exts) + { + if constexpr (!__all_static(__static_extents<_Extents>())) + __glibcxx_assert(__is_representable_extents(_M_extents)); + + if constexpr (_S_rank > 1) + { + _IndexType __stride; + if constexpr (_PaddingValue == dynamic_extent) + __stride = _M_padextent(); + else if constexpr (_S_static_padextent() != dynamic_extent) + return; + else + { + __glibcxx_assert( + __is_representable_least_multiple<_IndexType>( + _PaddingValue, _M_padextent())); + + __stride = static_cast<_IndexType>( + __least_multiple(_PaddingValue, _M_padextent())); + + __glibcxx_assert(__is_representable_extents( + _LayoutTraits::_S_make_padded_extent( + std::dextents<_IndexType, 1>{__stride}, + _M_extents))); + } + _M_stride = _Stride{__stride}; + } + } + + constexpr explicit + _PaddedStorage(const _Extents& __exts, _IndexType __pad) + : _M_extents(__exts) + { + if constexpr (_PaddingValue != dynamic_extent) + __glibcxx_assert(cmp_equal(_PaddingValue, __pad)); + if constexpr (_S_rank > 1 && _S_static_stride == dynamic_extent) + { + __glibcxx_assert( + __is_representable_least_multiple<_IndexType>( + __pad, _M_padextent())); + + _M_stride = _Stride{static_cast<_IndexType>( + __least_multiple(__pad, _M_padextent()))}; + + __glibcxx_assert(__is_representable_extents( + _LayoutTraits::_S_make_padded_extent( + _M_stride, _M_extents))); + } + } + + template + constexpr explicit + _PaddedStorage(const typename _LayoutSame::mapping<_OExtents>& + __other) + : _PaddedStorage(_Extents(__other.extents())) + { + constexpr size_t __stride_idx = _LayoutTraits::_S_stride_idx; + constexpr size_t __ext_idx = _LayoutTraits::_S_ext_idx; + if constexpr (_S_rank > 1 && _PaddingValue != dynamic_extent) + { + static_assert(_S_static_stride == dynamic_extent + || _OExtents::static_extent(__ext_idx) == dynamic_extent + || _S_static_stride == _OExtents::static_extent(__ext_idx), + "The padded stride must be compatible with other"); + + if constexpr (_S_static_stride == dynamic_extent + || _OExtents::static_extent(__stride_idx) == dynamic_extent) + __glibcxx_assert(std::cmp_equal(_M_padstride(), + _M_padextent())); + } + } + + template + constexpr explicit + _PaddedStorage(const typename layout_stride::mapping<_OExtents>& + __other) + : _M_extents(__other.extents()) + { + __glibcxx_assert(cmp_less_equal(__other.required_span_size(), + __gnu_cxx::__int_traits<_IndexType> + ::__max)); + + constexpr size_t __stride_idx = _LayoutTraits::_S_stride_idx; + if constexpr (_S_rank > 1) + { + if constexpr (_PaddingValue != dynamic_extent) + __glibcxx_assert(cmp_equal(__other.stride(__stride_idx), + _M_calc_padstride()) + && "The padded stride must be compatible with other"); + if constexpr (_S_static_stride == dynamic_extent) + _M_stride = _Stride{__other.stride(__stride_idx)}; + } + } + + template + constexpr explicit + _PaddedStorage(_LayoutTraits::_LayoutSame, + const _SamePaddedMapping& __other) + : _M_extents(__other.extents()) + { + if constexpr (_S_rank > 1) + { + static_assert(_PaddingValue == dynamic_extent + || _SamePaddedMapping::padding_value == dynamic_extent + || _PaddingValue == _SamePaddedMapping::padding_value, + "If neither PaddingValue is dynamic_extent, then they must " + "be equal"); + + constexpr size_t __stride_idx = _LayoutTraits::_S_stride_idx; + if constexpr (_PaddingValue != dynamic_extent) + __glibcxx_assert(cmp_equal(__other.stride(__stride_idx), + _M_calc_padstride()) + && "The padded stride must be compatible with other"); + if constexpr (_S_static_stride == dynamic_extent) + _M_stride = _Stride{__other.stride(__stride_idx)}; + } + __glibcxx_assert(cmp_less_equal(__other.required_span_size(), + __gnu_cxx::__int_traits<_IndexType>::__max)); + } + + template + constexpr explicit + _PaddedStorage(_LayoutTraits::_LayoutOther, + const _OtherPaddedMapping& __other) noexcept + : _M_extents(__other.extents()) + { + __glibcxx_assert(cmp_less_equal(__other.required_span_size(), + __gnu_cxx::__int_traits<_IndexType>::__max)); + } + + static constexpr bool + _M_is_always_exhaustive() noexcept + { + if constexpr (_S_rank <= 1) + return true; + else + return _S_static_padextent() != dynamic_extent + && _S_static_stride != dynamic_extent + && _S_static_padextent() == _S_static_stride; + } + + constexpr bool + _M_is_exhaustive() const noexcept + { + if constexpr (_M_is_always_exhaustive()) + return true; + else + return cmp_equal(_M_padextent(), _M_padstride()); + } + + constexpr static size_t + _S_static_padextent() noexcept + { return _Extents::static_extent(_LayoutTraits::_S_ext_idx); } + + constexpr _IndexType + _M_padextent() const noexcept + { return _M_extents.extent(_LayoutTraits::_S_ext_idx); } + + constexpr _IndexType + _M_calc_padstride() const noexcept + { + if constexpr (_S_static_stride != dynamic_extent) + return _S_static_stride; + else if constexpr (_PaddingValue != dynamic_extent) + return __least_multiple(_PaddingValue, _M_padextent()); + else + return _M_padextent(); + } + + constexpr _IndexType + _M_padstride() const noexcept + { return _M_stride.extent(0); } + + constexpr _IndexType + _M_required_span_size() const noexcept + { + if constexpr (_S_rank == 0) + return 1; + else if (__mdspan::__empty(_M_extents)) + return 0; + else + { + size_t __stride = static_cast(_M_padstride()); + size_t __prod_rest = __mdspan::__fwd_prod(_M_extents, + _LayoutTraits::_S_unpad_begin, _LayoutTraits::_S_unpad_end); + size_t __delta = _M_padstride() - _M_padextent(); + return static_cast<_IndexType>(__stride * __prod_rest - __delta); + } + } + + template + constexpr bool + _M_equal(const _SamePaddedMapping& __other) const noexcept + { + return _M_extents == __other.extents() + && (_S_rank < 2 + || cmp_equal(_M_stride.extent(0), + __other.stride(_LayoutTraits::_S_stride_idx))); + } + + using _Stride = std::extents<_IndexType, _S_static_stride>; + [[no_unique_address]] _Stride _M_stride; + [[no_unique_address]] _Extents _M_extents; + }; + } + + template + template + class layout_left_padded<_PaddingValue>::mapping + { + public: + static constexpr size_t padding_value = _PaddingValue; + + using extents_type = _Extents; + using index_type = typename extents_type::index_type; + using size_type = typename extents_type::size_type; + using rank_type = typename extents_type::rank_type; + using layout_type = layout_left_padded; + + private: + static constexpr size_t _S_rank = extents_type::rank(); + using _PaddedStorage = __mdspan::_PaddedStorage<_PaddingValue, + _Extents, __mdspan::_LeftPaddedLayoutTraits<_S_rank>>; + [[no_unique_address]] _PaddedStorage _M_storage; + + consteval friend size_t + __mdspan::__get_static_stride(); + + constexpr index_type + _M_extent(size_t __r) const noexcept + { return _M_storage._M_extents.extent(__r); } + + constexpr index_type + _M_padstride() const noexcept + { return _M_storage._M_stride.extent(0); } + + public: + constexpr + mapping() noexcept + { } + + constexpr + mapping(const mapping&) noexcept = default; + + constexpr + mapping(const extents_type& __exts) + : _M_storage(__exts) + { } + + template<__mdspan::__valid_index_type _OIndexType> + constexpr + mapping(const extents_type& __exts, _OIndexType __pad) + : _M_storage(__exts, + __mdspan::__index_type_cast(std::move(__pad))) + { } + + template + requires is_constructible_v + constexpr explicit(!is_convertible_v<_OExtents, extents_type>) + mapping(const layout_left::mapping<_OExtents>& __other) + : _M_storage(__other) + { } + + template + requires is_constructible_v<_OExtents, extents_type> + constexpr explicit(_OExtents::rank() > 0) + mapping(const typename layout_stride::mapping<_OExtents>& __other) + : _M_storage(__other) + { __glibcxx_assert(*this == __other); } + + template + requires __mdspan::__is_left_padded_mapping<_LeftpadMapping> + && is_constructible_v + constexpr explicit(_S_rank > 1 && (padding_value != dynamic_extent + || _LeftpadMapping::padding_value == dynamic_extent)) + mapping(const _LeftpadMapping& __other) + : _M_storage(layout_left{}, __other) + { } + + template + requires (__mdspan::__is_right_padded_mapping<_RightPaddedMapping> + || __mdspan::__mapping_of) + && (_S_rank <= 1) + && is_constructible_v + constexpr explicit(!is_convertible_v< + typename _RightPaddedMapping::extents_type, extents_type>) + mapping(const _RightPaddedMapping& __other) noexcept + : _M_storage(layout_right{}, __other) + { } + + constexpr mapping& + operator=(const mapping&) noexcept = default; + + constexpr const extents_type& + extents() const noexcept { return _M_storage._M_extents; } + + constexpr array + strides() const noexcept + { + array __ret; + if constexpr (_S_rank > 0) + __ret[0] = 1; + if constexpr (_S_rank > 1) + __ret[1] = _M_padstride(); + if constexpr (_S_rank > 2) + for(size_t __i = 2; __i < _S_rank; ++__i) + __ret[__i] = __ret[__i - 1] * _M_extent(__i - 1); + return __ret; + } + + constexpr index_type + required_span_size() const noexcept + { return _M_storage._M_required_span_size(); } + + // _GLIBCXX_RESOLVE_LIB_DEFECTS + // 4314. Missing move in mdspan layout mapping::operator() + template<__mdspan::__valid_index_type... _Indices> + requires (sizeof...(_Indices) == _S_rank) + constexpr index_type + operator()(_Indices... __indices) const noexcept + { + return __mdspan::__linear_index_leftpad( + extents(), _M_storage._M_stride, + static_cast(std::move(__indices))...); + } + + static constexpr bool + is_always_exhaustive() noexcept + { return _PaddedStorage::_M_is_always_exhaustive(); } + + constexpr bool + is_exhaustive() noexcept + { return _M_storage._M_is_exhaustive(); } + + static constexpr bool + is_always_unique() noexcept { return true; } + + static constexpr bool + is_unique() noexcept { return true; } + + static constexpr bool + is_always_strided() noexcept { return true; } + + static constexpr bool + is_strided() noexcept { return true; } + + constexpr index_type + stride(rank_type __r) const noexcept + { + __glibcxx_assert(__r < _S_rank); + if (__r == 0) + return 1; + else + return static_cast( + static_cast(_M_padstride()) * + static_cast(__mdspan::__fwd_prod(extents(), 1, __r))); + } + + template + requires(__mdspan::__is_left_padded_mapping<_LeftpadMapping> + && _LeftpadMapping::extents_type::rank() == _S_rank) + friend constexpr bool + operator==(const mapping& __self, const _LeftpadMapping& __other) + noexcept + { return __self._M_storage._M_equal(__other); } + }; + + template + template + class layout_right_padded<_PaddingValue>::mapping { + public: + static constexpr size_t padding_value = _PaddingValue; + using extents_type = _Extents; + using index_type = typename extents_type::index_type; + using size_type = typename extents_type::size_type; + using rank_type = typename extents_type::rank_type; + using layout_type = layout_right_padded<_PaddingValue>; + + private: + static constexpr size_t _S_rank = extents_type::rank(); + using _PaddedStorage = __mdspan::_PaddedStorage<_PaddingValue, + _Extents, __mdspan::_RightPaddedLayoutTraits<_S_rank>>; + [[no_unique_address]] _PaddedStorage _M_storage; + + consteval friend size_t + __mdspan::__get_static_stride(); + + constexpr index_type + _M_extent(size_t __r) const noexcept + { return _M_storage._M_extents.extent(__r); } + + constexpr index_type + _M_padstride() const noexcept + { return _M_storage._M_stride.extent(0); } + + public: + constexpr + mapping() noexcept + { } + + constexpr + mapping(const mapping&) noexcept = default; + + constexpr + mapping(const extents_type& __exts) + : _M_storage(__exts) + { } + + template<__mdspan::__valid_index_type _OIndexType> + constexpr + mapping(const extents_type& __exts, _OIndexType __pad) + : _M_storage(__exts, + __mdspan::__index_type_cast(std::move(__pad))) + { } + + template + requires is_constructible_v + constexpr explicit(!is_convertible_v<_OExtents, extents_type>) + mapping(const layout_right::mapping<_OExtents>& __other) + : _M_storage(__other) + { } + + template + requires is_constructible_v<_OExtents, extents_type> + constexpr explicit(_OExtents::rank() > 0) + mapping(const typename layout_stride::mapping<_OExtents>& __other) + : _M_storage(__other) + { __glibcxx_assert(*this == __other); } + + template + requires __mdspan::__is_right_padded_mapping<_RightPaddedMapping> + && is_constructible_v + constexpr explicit(_S_rank > 1 && (padding_value != dynamic_extent + || _RightPaddedMapping::padding_value == dynamic_extent)) + mapping(const _RightPaddedMapping& __other) + : _M_storage(layout_right{}, __other) + { } + + template + requires (__mdspan::__is_left_padded_mapping<_LeftPaddedMapping> + || __mdspan::__mapping_of) + && (_S_rank <= 1) + && is_constructible_v + constexpr explicit(!is_convertible_v< + typename _LeftPaddedMapping::extents_type, extents_type>) + mapping(const _LeftPaddedMapping& __other) noexcept + : _M_storage(layout_left{}, __other) + { } + + constexpr mapping& operator=(const mapping&) noexcept = default; + + constexpr const extents_type& + extents() const noexcept { return _M_storage._M_extents; } + + constexpr array + strides() const noexcept + { + array __ret; + if constexpr (_S_rank > 0) + __ret[_S_rank - 1] = 1; + if constexpr (_S_rank > 1) + __ret[_S_rank - 2] = _M_padstride(); + if constexpr (_S_rank > 2) + for(size_t __i = _S_rank - 2; __i > 0; --__i) + __ret[__i - 1] = __ret[__i] * _M_extent(__i); + return __ret; + } + + constexpr index_type + required_span_size() const noexcept + { return _M_storage._M_required_span_size(); } + + // _GLIBCXX_RESOLVE_LIB_DEFECTS + // 4314. Missing move in mdspan layout mapping::operator() + template<__mdspan::__valid_index_type... _Indices> + requires (sizeof...(_Indices) == _S_rank) + constexpr index_type + operator()(_Indices... __indices) const noexcept + { + return __mdspan::__linear_index_rightpad( + extents(), _M_storage._M_stride, + static_cast(std::move(__indices))...); + } + + static constexpr bool + is_always_exhaustive() noexcept + { return _PaddedStorage::_M_is_always_exhaustive(); } + + constexpr bool + is_exhaustive() noexcept + { return _M_storage._M_is_exhaustive(); } + + static constexpr bool + is_always_unique() noexcept { return true; } + + static constexpr bool + is_unique() noexcept { return true; } + + static constexpr bool + is_always_strided() noexcept { return true; } + + static constexpr bool + is_strided() noexcept { return true; } + + constexpr index_type + stride(rank_type __r) const noexcept + { + __glibcxx_assert(__r < _S_rank); + if constexpr (_S_rank <= 1) + return 1; + else if (__r == _S_rank - 1) + return 1; + else if (__r == _S_rank - 2) + return _M_padstride(); + else + return static_cast( + static_cast(_M_padstride()) * + static_cast(__mdspan::__fwd_prod( + extents(), __r + 1, _S_rank - 1))); + } + + template + requires(__mdspan::__is_right_padded_mapping<_RightPaddedMapping> + && _RightPaddedMapping::extents_type::rank() == _S_rank) + friend constexpr bool + operator==(const mapping& __self, const _RightPaddedMapping& __other) + noexcept + { return __self._M_storage._M_equal(__other); } + }; +#endif // __glibcxx_padded_layouts + template struct default_accessor { @@ -1370,7 +2317,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION mdspan(data_handle_type __handle, const mapping_type& __mapping, const accessor_type& __accessor) : _M_accessor(__accessor), _M_mapping(__mapping), - _M_handle(std::move(__handle)) + _M_handle(std::move(__handle)) { } template __fmt, _Args&&... __args) { auto __fmtargs = std::make_format_args(__args...); +#if defined(_WIN32) && !defined(__CYGWIN__) if constexpr (__unicode::__literal_encoding_is_utf8()) std::vprint_unicode(__os, __fmt.get(), __fmtargs); else +#endif std::vprint_nonunicode(__os, __fmt.get(), __fmtargs); } @@ -269,10 +271,17 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION inline void println(ostream& __os, format_string<_Args...> __fmt, _Args&&... __args) { - // _GLIBCXX_RESOLVE_LIB_DEFECTS - // 4088. println ignores the locale imbued in std::ostream - std::print(__os, "{}\n", std::format(__os.getloc(), __fmt, - std::forward<_Args>(__args)...)); + auto __fmtargs = std::make_format_args(__args...); + std::string __fmtn; + __fmtn.reserve(__fmt.get().size() + 1); + __fmtn = __fmt.get(); + __fmtn += '\n'; +#if defined(_WIN32) && !defined(__CYGWIN__) + if constexpr (__unicode::__literal_encoding_is_utf8()) + std::vprint_unicode(__os, __fmtn, __fmtargs); + else +#endif + std::vprint_nonunicode(__os, __fmtn, __fmtargs); } // Defined for C++26, supported as an extension to C++23. diff --git a/libstdc++-v3/include/std/print b/libstdc++-v3/include/std/print index 92dbe118fc31..6ffd9a4b1b3f 100644 --- a/libstdc++-v3/include/std/print +++ b/libstdc++-v3/include/std/print @@ -53,8 +53,213 @@ namespace std _GLIBCXX_VISIBILITY(default) { _GLIBCXX_BEGIN_NAMESPACE_VERSION +namespace __format +{ +#if _GLIBCXX_USE_STDIO_LOCKING && _GLIBCXX_USE_GLIBC_STDIO_EXT + // These are defined in but we don't want to include that. + extern "C" int __fwritable(FILE*) noexcept; + extern "C" int __flbf(FILE*) noexcept; + extern "C" size_t __fbufsize(FILE*) noexcept; + + // A format sink that writes directly to a Glibc FILE. + // The file is locked on construction and its buffer is accessed directly. + class _File_sink final : _Buf_sink + { + struct _File + { + explicit + _File(FILE* __f) : _M_file(__f) + { + ::flockfile(__f); + // Ensure stream is in write mode + if (!__fwritable(__f)) + { + ::funlockfile(__f); + __throw_system_error(EACCES); + } + // Allocate buffer if needed: + if (_M_write_buf().empty()) + if (::__overflow(__f, EOF) == EOF) + { + const int __err = errno; + ::funlockfile(__f); + __throw_system_error(__err); + } + } + + ~_File() { ::funlockfile(_M_file); } + + _File(_File&&) = delete; + + // A span viewing the unused portion of the stream's output buffer. + std::span + _M_write_buf() noexcept + { + return {_M_file->_IO_write_ptr, + size_t(_M_file->_IO_buf_end - _M_file->_IO_write_ptr)}; + } + + // Flush the output buffer to the file so we can write to it again. + void + _M_flush() + { + if (::fflush_unlocked(_M_file)) + __throw_system_error(errno); + } + + // Update the current position in the output buffer. + void + _M_bump(size_t __n) noexcept + { _M_file->_IO_write_ptr += __n; } + + bool + _M_line_buffered() const noexcept + { return __flbf(_M_file); } // Or: _M_file->_flags & 0x200 + + bool + _M_unbuffered() const noexcept + { return __fbufsize(_M_file) == 1; } // Or: _M_file->_flags & 0x2 + + FILE* _M_file; + } _M_file; + + bool _M_add_newline; // True for std::println, false for std::print. + + // Flush the stream's put area so it can be refilled. + void + _M_overflow() override + { + auto __s = this->_M_used(); + if (__s.data() == this->_M_buf) + { + // Characters in internal buffer need to be transferred to the FILE. + auto __n = ::fwrite_unlocked(__s.data(), 1, __s.size(), + _M_file._M_file); + if (__n != __s.size()) + __throw_system_error(errno); + this->_M_reset(this->_M_buf); + } + else + { + // Characters were written directly to the FILE's output buffer. + _M_file._M_bump(__s.size()); + _M_file._M_flush(); + this->_M_reset(_M_file._M_write_buf()); + } + } + + public: + _File_sink(FILE* __f, bool __add_newline) + : _M_file(__f), _M_add_newline(__add_newline) + { + if (!_M_file._M_unbuffered()) + // Write directly to the FILE's output buffer. + this->_M_reset(_M_file._M_write_buf()); + } + + ~_File_sink() noexcept(false) + { + auto __s = this->_M_used(); + if (__s.data() == this->_M_buf) // Unbuffered stream + { + _File_sink::_M_overflow(); + if (_M_add_newline) + ::putc_unlocked('\n', _M_file._M_file); + } + else + { + _M_file._M_bump(__s.size()); + if (_M_add_newline) + ::putc_unlocked('\n', _M_file._M_file); + else if (_M_file._M_line_buffered() && __s.size() + && (__s.back() == '\n' + || __builtin_memchr(__s.data(), '\n', __s.size()))) + _M_file._M_flush(); + } + } + + using _Sink::out; + }; +#elif _GLIBCXX_USE_STDIO_LOCKING + // A format sink that buffers output and then copies it to a stdio FILE. + // The file is locked on construction and written to using fwrite_unlocked. + class _File_sink final : _Buf_sink + { + FILE* _M_file; + bool _M_add_newline; + + // Transfer buffer contents to the FILE, so buffer can be refilled. + void + _M_overflow() override + { + auto __s = this->_M_used(); +#if _GLIBCXX_HAVE_FWRITE_UNLOCKED + auto __n = ::fwrite_unlocked(__s.data(), 1, __s.size(), _M_file); + if (__n != __s.size()) + __throw_system_error(errno); +#else + for (char __c : __s) + ::putc_unlocked(__c, _M_file); + if (::ferror(_M_file)) + __throw_system_error(errno); +#endif + this->_M_reset(this->_M_buf); + } + + public: + _File_sink(FILE* __f, bool __add_newline) noexcept + : _Buf_sink(), _M_file(__f), _M_add_newline(__add_newline) + { ::flockfile(__f); } + + ~_File_sink() noexcept(false) + { + _File_sink::_M_overflow(); + if (_M_add_newline) + ::putc_unlocked('\n', _M_file); + ::funlockfile(_M_file); + } + + using _Sink::out; + }; +#else + // A wrapper around a format sink that copies the output to a stdio FILE. + // This is not actually a _Sink itself, but it creates one to hold the + // formatted characters and then copies them to the file when finished. + class _File_sink final + { + FILE* _M_file; + _Str_sink _M_sink; + bool _M_add_newline; + + public: + _File_sink(FILE* __f, bool __add_newline) noexcept + : _M_file(__f), _M_add_newline(__add_newline) + { } + + ~_File_sink() noexcept(false) + { + string __s = std::move(_M_sink).get(); + if (_M_add_newline) + __s += '\n'; + auto __n = std::fwrite(__s.data(), 1, __s.size(), _M_file); + if (__n < __s.size()) + __throw_system_error(EIO); + } + + auto out() { return _M_sink.out(); } + }; +#endif +} // namespace __format + inline void vprint_nonunicode(FILE* __stream, string_view __fmt, format_args __args) + { + std::vformat_to(__format::_File_sink(__stream, false).out(), __fmt, __args); + } + + inline void + vprint_nonunicode_buffered(FILE* __stream, string_view __fmt, + format_args __args) { __format::_Str_sink __buf; std::vformat_to(__buf.out(), __fmt, __args); @@ -80,7 +285,6 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION // If stream refers to a terminal, write a native Unicode string to it. if (auto __term = __open_terminal(__stream)) { - string __out = std::vformat(__fmt, __args); error_code __e; if (!std::fflush(__stream)) { @@ -95,21 +299,44 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION _GLIBCXX_THROW_OR_ABORT(system_error(__e, "std::vprint_unicode")); } - // Otherwise just write the string to the file as vprint_nonunicode does. + // Otherwise just write the string to the file. if (std::fwrite(__out.data(), 1, __out.size(), __stream) != __out.size()) __throw_system_error(EIO); #endif } + inline void + vprint_unicode_buffered(FILE* __stream, string_view __fmt, format_args __args) + { +#if !defined(_WIN32) || defined(__CYGWIN__) + // For most targets we don't need to do anything special to write + // Unicode to a terminal. Just use the nonunicode function. + std::vprint_nonunicode_buffered(__stream, __fmt, __args); +#else + // For Windows the locking function formats everything first anyway, + // so no formatting happens while a lock is taken. Just use that. + std::vprint_unicode(__stream, __fmt, __args); +#endif + } + template inline void print(FILE* __stream, format_string<_Args...> __fmt, _Args&&... __args) { + constexpr bool __locksafe = + (enable_nonlocking_formatter_optimization> && ...); + auto __fmtargs = std::make_format_args(__args...); +#if defined(_WIN32) && !defined(__CYGWIN__) if constexpr (__unicode::__literal_encoding_is_utf8()) - std::vprint_unicode(__stream, __fmt.get(), __fmtargs); + std::vprint_unicode_buffered(__stream, __fmt.get(), __fmtargs); else +#endif + + if constexpr (__locksafe) std::vprint_nonunicode(__stream, __fmt.get(), __fmtargs); + else + std::vprint_nonunicode_buffered(__stream, __fmt.get(), __fmtargs); } template @@ -121,8 +348,45 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION inline void println(FILE* __stream, format_string<_Args...> __fmt, _Args&&... __args) { - std::print(__stream, "{}\n", - std::format(__fmt, std::forward<_Args>(__args)...)); + constexpr bool __locksafe = + (enable_nonlocking_formatter_optimization> && ...); + + // The standard wants us to call + // print(stream, runtime_format(string(fmt.get()) + '\n'), args...) + // here, but we can avoid that string concatenation in most cases, + // and we know what that would call, so we can call that directly. + + auto __fmtargs = std::make_format_args(__args...); +#if defined(_WIN32) && !defined(__CYGWIN__) + if constexpr (__unicode::__literal_encoding_is_utf8()) + { + // We can't avoid the string concatenation here, but we can call + // vprint_unicode_buffered directly, since that's what print would do. + string __fmtn; + __fmtn.reserve(__fmt.get().size() + 1); + __fmtn = __fmt.get(); + __fmtn += '\n'; + std::vprint_unicode_buffered(__stream, __fmtn, __fmtargs); + } + else +#endif + + // For non-Windows and for non-Unicode on Windows, we know that print + // would call vprint_nonunicode or vprint_nonunicode_buffered with a + // newline appended to the format-string. Use a _File_sink that adds + // the newline automatically and write to it directly. + if constexpr (__locksafe) + std::vformat_to(__format::_File_sink(__stream, true).out(), + __fmt.get(), __fmtargs); + else + { + // Format to a string buffer first, then write the result to a + // _File_sink that adds a newline. + __format::_Str_sink __buf; + std::vformat_to(__buf.out(), __fmt.get(), __fmtargs); + string_view __s(__buf.view()); + __format::_File_sink(__stream, true).out() = __s; + } } template @@ -131,19 +395,19 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION { std::println(stdout, __fmt, std::forward<_Args>(__args)...); } inline void - vprint_unicode(string_view __fmt, format_args __args) - { std::vprint_unicode(stdout, __fmt, __args); } + vprint_unicode_buffered(string_view __fmt, format_args __args) + { std::vprint_unicode_buffered(stdout, __fmt, __args); } inline void - vprint_nonunicode(string_view __fmt, format_args __args) - { std::vprint_nonunicode(stdout, __fmt, __args); } + vprint_nonunicode_buffered(string_view __fmt, format_args __args) + { std::vprint_nonunicode_buffered(stdout, __fmt, __args); } // Defined for C++26, supported as an extension to C++23. inline void println(FILE* __stream) { #if defined(_WIN32) && !defined(__CYGWIN__) if constexpr (__unicode::__literal_encoding_is_utf8()) - std::vprint_unicode(__stream, "\n", std::make_format_args()); + std::vprint_unicode_buffered(__stream, "\n", std::make_format_args()); else #endif if (std::putc('\n', __stream) == EOF) diff --git a/libstdc++-v3/include/std/queue b/libstdc++-v3/include/std/queue index 1b76088b31b3..bf2b344c81cc 100644 --- a/libstdc++-v3/include/std/queue +++ b/libstdc++-v3/include/std/queue @@ -112,6 +112,14 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION range_formatter<_Tp, _CharT> _M_f; }; +#if __glibcxx_print >= 202406L + // _GLIBCXX_RESOLVE_LIB_DEFECTS + // 4398. enable_nonlocking_formatter_optimization should be disabled for container adaptors + template + constexpr bool + enable_nonlocking_formatter_optimization> = false; +#endif + template<__format::__char _CharT, typename _Tp, formattable<_CharT> _Container, typename _Compare> struct formatter, _CharT> @@ -146,6 +154,15 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION range_formatter<_Tp, _CharT> _M_f; }; +#if __glibcxx_print >= 202406L + // _GLIBCXX_RESOLVE_LIB_DEFECTS + // 4398. enable_nonlocking_formatter_optimization should be disabled for container adaptors + template + constexpr bool + enable_nonlocking_formatter_optimization< + priority_queue<_Tp, _Container, _Comparator>> = false; +#endif + _GLIBCXX_END_NAMESPACE_VERSION } // namespace std #endif // __glibcxx_format_ranges diff --git a/libstdc++-v3/include/std/stack b/libstdc++-v3/include/std/stack index a57a5a08bc3c..507b9746c8a9 100644 --- a/libstdc++-v3/include/std/stack +++ b/libstdc++-v3/include/std/stack @@ -105,6 +105,14 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION // Standard uses formatter, _CharT>. range_formatter<_Tp, _CharT> _M_f; }; + +#if __glibcxx_print >= 202406L + // _GLIBCXX_RESOLVE_LIB_DEFECTS + // 4398. enable_nonlocking_formatter_optimization should be disabled for container adaptors + template + constexpr bool + enable_nonlocking_formatter_optimization> = false; +#endif _GLIBCXX_END_NAMESPACE_VERSION } // namespace std #endif // __glibcxx_format_ranges diff --git a/libstdc++-v3/include/std/stacktrace b/libstdc++-v3/include/std/stacktrace index 491122293c5f..01e18ba171c0 100644 --- a/libstdc++-v3/include/std/stacktrace +++ b/libstdc++-v3/include/std/stacktrace @@ -765,6 +765,12 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION __format::_Spec _M_spec; }; +#if __glibcxx_print >= 202406L + template<> + inline constexpr bool + enable_nonlocking_formatter_optimization = true; +#endif + template class formatter> { @@ -790,6 +796,12 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION } }; +#if __glibcxx_print >= 202406L + template + constexpr bool + enable_nonlocking_formatter_optimization> = true; +#endif + namespace pmr { using stacktrace diff --git a/libstdc++-v3/include/std/string b/libstdc++-v3/include/std/string index 4b84aeaa857b..97ded057a87b 100644 --- a/libstdc++-v3/include/std/string +++ b/libstdc++-v3/include/std/string @@ -95,8 +95,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION template - _GLIBCXX20_CONSTEXPR - inline typename basic_string<_CharT, _Traits, _Alloc>::size_type + constexpr typename basic_string<_CharT, _Traits, _Alloc>::size_type erase_if(basic_string<_CharT, _Traits, _Alloc>& __cont, _Predicate __pred) { using namespace __gnu_cxx; @@ -110,8 +109,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION template - _GLIBCXX20_CONSTEXPR - inline typename basic_string<_CharT, _Traits, _Alloc>::size_type + constexpr typename basic_string<_CharT, _Traits, _Alloc>::size_type erase(basic_string<_CharT, _Traits, _Alloc>& __cont, const _Up& __value) { return std::erase_if(__cont, __gnu_cxx::__ops::__equal_to(__value)); } diff --git a/libstdc++-v3/include/std/thread b/libstdc++-v3/include/std/thread index 94ded714e9e0..ccab1e44fbc4 100644 --- a/libstdc++-v3/include/std/thread +++ b/libstdc++-v3/include/std/thread @@ -384,6 +384,13 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION private: __format::_Spec<_CharT> _M_spec; }; + +#if __glibcxx_print >= 202406L + template<> + inline constexpr bool + enable_nonlocking_formatter_optimization = true; +#endif + #endif // __cpp_lib_formatters /// @} group threads diff --git a/libstdc++-v3/include/std/vector b/libstdc++-v3/include/std/vector index cdc30cbff6de..920f852f7944 100644 --- a/libstdc++-v3/include/std/vector +++ b/libstdc++-v3/include/std/vector @@ -112,8 +112,7 @@ namespace std _GLIBCXX_VISIBILITY(default) _GLIBCXX_BEGIN_NAMESPACE_VERSION template - _GLIBCXX20_CONSTEXPR - inline typename vector<_Tp, _Alloc>::size_type + constexpr typename vector<_Tp, _Alloc>::size_type erase_if(vector<_Tp, _Alloc>& __cont, _Predicate __pred) { using namespace __gnu_cxx; @@ -134,8 +133,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION template - _GLIBCXX20_CONSTEXPR - inline typename vector<_Tp, _Alloc>::size_type + constexpr typename vector<_Tp, _Alloc>::size_type erase(vector<_Tp, _Alloc>& __cont, const _Up& __value) { return std::erase_if(__cont, __gnu_cxx::__ops::__equal_to(__value)); } @@ -171,6 +169,13 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION private: __format::__formatter_int<_CharT> _M_f; }; + +#if __glibcxx_print >= 202406L + template<> + inline constexpr bool + enable_nonlocking_formatter_optimization<_GLIBCXX_STD_C::_Bit_reference> = true; +#endif + _GLIBCXX_END_NAMESPACE_VERSION } // namespace std #endif // __glibcxx_format_ranges diff --git a/libstdc++-v3/libsupc++/Makefile.in b/libstdc++-v3/libsupc++/Makefile.in index b691915e396b..db5e83803d52 100644 --- a/libstdc++-v3/libsupc++/Makefile.in +++ b/libstdc++-v3/libsupc++/Makefile.in @@ -93,8 +93,10 @@ target_triplet = @target@ subdir = libsupc++ ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/../config/acx.m4 \ + $(top_srcdir)/../config/clang-plugin.m4 \ $(top_srcdir)/../config/enable.m4 \ $(top_srcdir)/../config/futex.m4 \ + $(top_srcdir)/../config/gcc-plugin.m4 \ $(top_srcdir)/../config/hwcaps.m4 \ $(top_srcdir)/../config/iconv.m4 \ $(top_srcdir)/../config/lead-dot.m4 \ @@ -331,6 +333,7 @@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LIPO = @LIPO@ +LLVM_CONFIG = @LLVM_CONFIG@ LN_S = @LN_S@ LONG_DOUBLE_128_FLAGS = @LONG_DOUBLE_128_FLAGS@ LONG_DOUBLE_ALT128_COMPAT_FLAGS = @LONG_DOUBLE_ALT128_COMPAT_FLAGS@ diff --git a/libstdc++-v3/po/Makefile.in b/libstdc++-v3/po/Makefile.in index 8e93445acd20..54d8eff693b1 100644 --- a/libstdc++-v3/po/Makefile.in +++ b/libstdc++-v3/po/Makefile.in @@ -91,8 +91,10 @@ target_triplet = @target@ subdir = po ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/../config/acx.m4 \ + $(top_srcdir)/../config/clang-plugin.m4 \ $(top_srcdir)/../config/enable.m4 \ $(top_srcdir)/../config/futex.m4 \ + $(top_srcdir)/../config/gcc-plugin.m4 \ $(top_srcdir)/../config/hwcaps.m4 \ $(top_srcdir)/../config/iconv.m4 \ $(top_srcdir)/../config/lead-dot.m4 \ @@ -222,6 +224,7 @@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LIPO = @LIPO@ +LLVM_CONFIG = @LLVM_CONFIG@ LN_S = @LN_S@ LONG_DOUBLE_128_FLAGS = @LONG_DOUBLE_128_FLAGS@ LONG_DOUBLE_ALT128_COMPAT_FLAGS = @LONG_DOUBLE_ALT128_COMPAT_FLAGS@ diff --git a/libstdc++-v3/python/Makefile.in b/libstdc++-v3/python/Makefile.in index c527e6cf1866..105a3a64de21 100644 --- a/libstdc++-v3/python/Makefile.in +++ b/libstdc++-v3/python/Makefile.in @@ -92,8 +92,10 @@ target_triplet = @target@ subdir = python ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/../config/acx.m4 \ + $(top_srcdir)/../config/clang-plugin.m4 \ $(top_srcdir)/../config/enable.m4 \ $(top_srcdir)/../config/futex.m4 \ + $(top_srcdir)/../config/gcc-plugin.m4 \ $(top_srcdir)/../config/hwcaps.m4 \ $(top_srcdir)/../config/iconv.m4 \ $(top_srcdir)/../config/lead-dot.m4 \ @@ -252,6 +254,7 @@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LIPO = @LIPO@ +LLVM_CONFIG = @LLVM_CONFIG@ LN_S = @LN_S@ LONG_DOUBLE_128_FLAGS = @LONG_DOUBLE_128_FLAGS@ LONG_DOUBLE_ALT128_COMPAT_FLAGS = @LONG_DOUBLE_ALT128_COMPAT_FLAGS@ diff --git a/libstdc++-v3/src/Makefile.in b/libstdc++-v3/src/Makefile.in index 106b96995aa6..f0ad019a71fd 100644 --- a/libstdc++-v3/src/Makefile.in +++ b/libstdc++-v3/src/Makefile.in @@ -92,8 +92,10 @@ target_triplet = @target@ subdir = src ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/../config/acx.m4 \ + $(top_srcdir)/../config/clang-plugin.m4 \ $(top_srcdir)/../config/enable.m4 \ $(top_srcdir)/../config/futex.m4 \ + $(top_srcdir)/../config/gcc-plugin.m4 \ $(top_srcdir)/../config/hwcaps.m4 \ $(top_srcdir)/../config/iconv.m4 \ $(top_srcdir)/../config/lead-dot.m4 \ @@ -326,6 +328,7 @@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LIPO = @LIPO@ +LLVM_CONFIG = @LLVM_CONFIG@ LN_S = @LN_S@ LONG_DOUBLE_128_FLAGS = @LONG_DOUBLE_128_FLAGS@ LONG_DOUBLE_ALT128_COMPAT_FLAGS = @LONG_DOUBLE_ALT128_COMPAT_FLAGS@ diff --git a/libstdc++-v3/src/c++11/Makefile.in b/libstdc++-v3/src/c++11/Makefile.in index 9d04548f1571..bd684bb4209c 100644 --- a/libstdc++-v3/src/c++11/Makefile.in +++ b/libstdc++-v3/src/c++11/Makefile.in @@ -92,8 +92,10 @@ target_triplet = @target@ subdir = src/c++11 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/../config/acx.m4 \ + $(top_srcdir)/../config/clang-plugin.m4 \ $(top_srcdir)/../config/enable.m4 \ $(top_srcdir)/../config/futex.m4 \ + $(top_srcdir)/../config/gcc-plugin.m4 \ $(top_srcdir)/../config/hwcaps.m4 \ $(top_srcdir)/../config/iconv.m4 \ $(top_srcdir)/../config/lead-dot.m4 \ @@ -295,6 +297,7 @@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LIPO = @LIPO@ +LLVM_CONFIG = @LLVM_CONFIG@ LN_S = @LN_S@ LONG_DOUBLE_128_FLAGS = @LONG_DOUBLE_128_FLAGS@ LONG_DOUBLE_ALT128_COMPAT_FLAGS = @LONG_DOUBLE_ALT128_COMPAT_FLAGS@ diff --git a/libstdc++-v3/src/c++17/Makefile.in b/libstdc++-v3/src/c++17/Makefile.in index edbee94aaf91..6dff0d9491d5 100644 --- a/libstdc++-v3/src/c++17/Makefile.in +++ b/libstdc++-v3/src/c++17/Makefile.in @@ -92,8 +92,10 @@ target_triplet = @target@ subdir = src/c++17 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/../config/acx.m4 \ + $(top_srcdir)/../config/clang-plugin.m4 \ $(top_srcdir)/../config/enable.m4 \ $(top_srcdir)/../config/futex.m4 \ + $(top_srcdir)/../config/gcc-plugin.m4 \ $(top_srcdir)/../config/hwcaps.m4 \ $(top_srcdir)/../config/iconv.m4 \ $(top_srcdir)/../config/lead-dot.m4 \ @@ -269,6 +271,7 @@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LIPO = @LIPO@ +LLVM_CONFIG = @LLVM_CONFIG@ LN_S = @LN_S@ LONG_DOUBLE_128_FLAGS = @LONG_DOUBLE_128_FLAGS@ LONG_DOUBLE_ALT128_COMPAT_FLAGS = @LONG_DOUBLE_ALT128_COMPAT_FLAGS@ diff --git a/libstdc++-v3/src/c++20/Makefile.in b/libstdc++-v3/src/c++20/Makefile.in index 104ee597b5ec..f481ad08edbe 100644 --- a/libstdc++-v3/src/c++20/Makefile.in +++ b/libstdc++-v3/src/c++20/Makefile.in @@ -92,8 +92,10 @@ target_triplet = @target@ subdir = src/c++20 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/../config/acx.m4 \ + $(top_srcdir)/../config/clang-plugin.m4 \ $(top_srcdir)/../config/enable.m4 \ $(top_srcdir)/../config/futex.m4 \ + $(top_srcdir)/../config/gcc-plugin.m4 \ $(top_srcdir)/../config/hwcaps.m4 \ $(top_srcdir)/../config/iconv.m4 \ $(top_srcdir)/../config/lead-dot.m4 \ @@ -264,6 +266,7 @@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LIPO = @LIPO@ +LLVM_CONFIG = @LLVM_CONFIG@ LN_S = @LN_S@ LONG_DOUBLE_128_FLAGS = @LONG_DOUBLE_128_FLAGS@ LONG_DOUBLE_ALT128_COMPAT_FLAGS = @LONG_DOUBLE_ALT128_COMPAT_FLAGS@ diff --git a/libstdc++-v3/src/c++23/Makefile.in b/libstdc++-v3/src/c++23/Makefile.in index 715c14c6b815..fd9110ab8ad2 100644 --- a/libstdc++-v3/src/c++23/Makefile.in +++ b/libstdc++-v3/src/c++23/Makefile.in @@ -93,8 +93,10 @@ target_triplet = @target@ subdir = src/c++23 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/../config/acx.m4 \ + $(top_srcdir)/../config/clang-plugin.m4 \ $(top_srcdir)/../config/enable.m4 \ $(top_srcdir)/../config/futex.m4 \ + $(top_srcdir)/../config/gcc-plugin.m4 \ $(top_srcdir)/../config/hwcaps.m4 \ $(top_srcdir)/../config/iconv.m4 \ $(top_srcdir)/../config/lead-dot.m4 \ @@ -295,6 +297,7 @@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LIPO = @LIPO@ +LLVM_CONFIG = @LLVM_CONFIG@ LN_S = @LN_S@ LONG_DOUBLE_128_FLAGS = @LONG_DOUBLE_128_FLAGS@ LONG_DOUBLE_ALT128_COMPAT_FLAGS = @LONG_DOUBLE_ALT128_COMPAT_FLAGS@ diff --git a/libstdc++-v3/src/c++23/std.cc.in b/libstdc++-v3/src/c++23/std.cc.in index 9352482cbdb1..9cf5fa7dcb62 100644 --- a/libstdc++-v3/src/c++23/std.cc.in +++ b/libstdc++-v3/src/c++23/std.cc.in @@ -1869,9 +1869,15 @@ export namespace std using std::aligned_accessor; #endif using std::mdspan; - // FIXME layout_left_padded, layout_right_padded, strided_slice, - // submdspan_mapping_result, full_extent_t, full_extent, submdspan_extents, - // mdsubspan +#if __glibcxx_padded_layouts + using std::layout_left_padded; + using std::layout_right_padded; + using strided_slice; + using full_extent_t; + using full_extent; + using submdspan_mapping_result; +#endif + // FIXME submdspan_extents, mdsubspan } #endif diff --git a/libstdc++-v3/src/c++26/Makefile.in b/libstdc++-v3/src/c++26/Makefile.in index 1c317d6ac7c2..13c3a03b236b 100644 --- a/libstdc++-v3/src/c++26/Makefile.in +++ b/libstdc++-v3/src/c++26/Makefile.in @@ -92,8 +92,10 @@ target_triplet = @target@ subdir = src/c++26 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/../config/acx.m4 \ + $(top_srcdir)/../config/clang-plugin.m4 \ $(top_srcdir)/../config/enable.m4 \ $(top_srcdir)/../config/futex.m4 \ + $(top_srcdir)/../config/gcc-plugin.m4 \ $(top_srcdir)/../config/hwcaps.m4 \ $(top_srcdir)/../config/iconv.m4 \ $(top_srcdir)/../config/lead-dot.m4 \ @@ -264,6 +266,7 @@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LIPO = @LIPO@ +LLVM_CONFIG = @LLVM_CONFIG@ LN_S = @LN_S@ LONG_DOUBLE_128_FLAGS = @LONG_DOUBLE_128_FLAGS@ LONG_DOUBLE_ALT128_COMPAT_FLAGS = @LONG_DOUBLE_ALT128_COMPAT_FLAGS@ diff --git a/libstdc++-v3/src/c++98/Makefile.in b/libstdc++-v3/src/c++98/Makefile.in index 95e909b10493..c8df597f40d5 100644 --- a/libstdc++-v3/src/c++98/Makefile.in +++ b/libstdc++-v3/src/c++98/Makefile.in @@ -92,8 +92,10 @@ target_triplet = @target@ subdir = src/c++98 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/../config/acx.m4 \ + $(top_srcdir)/../config/clang-plugin.m4 \ $(top_srcdir)/../config/enable.m4 \ $(top_srcdir)/../config/futex.m4 \ + $(top_srcdir)/../config/gcc-plugin.m4 \ $(top_srcdir)/../config/hwcaps.m4 \ $(top_srcdir)/../config/iconv.m4 \ $(top_srcdir)/../config/lead-dot.m4 \ @@ -284,6 +286,7 @@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LIPO = @LIPO@ +LLVM_CONFIG = @LLVM_CONFIG@ LN_S = @LN_S@ LONG_DOUBLE_128_FLAGS = @LONG_DOUBLE_128_FLAGS@ LONG_DOUBLE_ALT128_COMPAT_FLAGS = @LONG_DOUBLE_ALT128_COMPAT_FLAGS@ diff --git a/libstdc++-v3/src/experimental/Makefile.in b/libstdc++-v3/src/experimental/Makefile.in index f7b4ee299f33..8cb0acd4e68b 100644 --- a/libstdc++-v3/src/experimental/Makefile.in +++ b/libstdc++-v3/src/experimental/Makefile.in @@ -92,8 +92,10 @@ target_triplet = @target@ subdir = src/experimental ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/../config/acx.m4 \ + $(top_srcdir)/../config/clang-plugin.m4 \ $(top_srcdir)/../config/enable.m4 \ $(top_srcdir)/../config/futex.m4 \ + $(top_srcdir)/../config/gcc-plugin.m4 \ $(top_srcdir)/../config/hwcaps.m4 \ $(top_srcdir)/../config/iconv.m4 \ $(top_srcdir)/../config/lead-dot.m4 \ @@ -291,6 +293,7 @@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LIPO = @LIPO@ +LLVM_CONFIG = @LLVM_CONFIG@ LN_S = @LN_S@ LONG_DOUBLE_128_FLAGS = @LONG_DOUBLE_128_FLAGS@ LONG_DOUBLE_ALT128_COMPAT_FLAGS = @LONG_DOUBLE_ALT128_COMPAT_FLAGS@ diff --git a/libstdc++-v3/src/filesystem/Makefile.in b/libstdc++-v3/src/filesystem/Makefile.in index 76ba905087b0..b138a079deb1 100644 --- a/libstdc++-v3/src/filesystem/Makefile.in +++ b/libstdc++-v3/src/filesystem/Makefile.in @@ -92,8 +92,10 @@ target_triplet = @target@ subdir = src/filesystem ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/../config/acx.m4 \ + $(top_srcdir)/../config/clang-plugin.m4 \ $(top_srcdir)/../config/enable.m4 \ $(top_srcdir)/../config/futex.m4 \ + $(top_srcdir)/../config/gcc-plugin.m4 \ $(top_srcdir)/../config/hwcaps.m4 \ $(top_srcdir)/../config/iconv.m4 \ $(top_srcdir)/../config/lead-dot.m4 \ @@ -297,6 +299,7 @@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LIPO = @LIPO@ +LLVM_CONFIG = @LLVM_CONFIG@ LN_S = @LN_S@ LONG_DOUBLE_128_FLAGS = @LONG_DOUBLE_128_FLAGS@ LONG_DOUBLE_ALT128_COMPAT_FLAGS = @LONG_DOUBLE_ALT128_COMPAT_FLAGS@ diff --git a/libstdc++-v3/src/libbacktrace/Makefile.in b/libstdc++-v3/src/libbacktrace/Makefile.in index cde092464a40..34fec1ec9a85 100644 --- a/libstdc++-v3/src/libbacktrace/Makefile.in +++ b/libstdc++-v3/src/libbacktrace/Makefile.in @@ -123,8 +123,10 @@ target_triplet = @target@ subdir = src/libbacktrace ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/../config/acx.m4 \ + $(top_srcdir)/../config/clang-plugin.m4 \ $(top_srcdir)/../config/enable.m4 \ $(top_srcdir)/../config/futex.m4 \ + $(top_srcdir)/../config/gcc-plugin.m4 \ $(top_srcdir)/../config/hwcaps.m4 \ $(top_srcdir)/../config/iconv.m4 \ $(top_srcdir)/../config/lead-dot.m4 \ @@ -297,6 +299,7 @@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LIPO = @LIPO@ +LLVM_CONFIG = @LLVM_CONFIG@ LN_S = @LN_S@ LONG_DOUBLE_128_FLAGS = @LONG_DOUBLE_128_FLAGS@ LONG_DOUBLE_ALT128_COMPAT_FLAGS = @LONG_DOUBLE_ALT128_COMPAT_FLAGS@ diff --git a/libstdc++-v3/testsuite/20_util/shared_ptr/cons/move.cc b/libstdc++-v3/testsuite/20_util/shared_ptr/cons/move.cc index 2dc161d641a2..e380d767d52a 100644 --- a/libstdc++-v3/testsuite/20_util/shared_ptr/cons/move.cc +++ b/libstdc++-v3/testsuite/20_util/shared_ptr/cons/move.cc @@ -140,6 +140,8 @@ test05() { reset_count_struct __attribute__((unused)) reset; + // The std::move here prevents copy elision, so we construct from a prvalue. + // { dg-prune-output "-Wpessimizing-move" } std::shared_ptr a(std::move(std::shared_ptr(new A))); VERIFY( a.use_count() == 1 ); VERIFY( A::ctor_count == 1 ); diff --git a/libstdc++-v3/testsuite/20_util/unique_ptr/modifiers/93562.cc b/libstdc++-v3/testsuite/20_util/unique_ptr/modifiers/93562.cc index 95df7afb9644..044357888ea6 100644 --- a/libstdc++-v3/testsuite/20_util/unique_ptr/modifiers/93562.cc +++ b/libstdc++-v3/testsuite/20_util/unique_ptr/modifiers/93562.cc @@ -76,11 +76,32 @@ test03() VERIFY(p2.get_deleter().id == -1); } +namespace B +{ + struct Deleter + { + Deleter& operator=(const Deleter&) = delete; + + void operator()(int* p) const noexcept { delete[] p; } + + // found by ADL + friend void swap(Deleter& lhs, Deleter& rhs) noexcept + { std::swap(lhs.id, rhs.id); } + + int id; + }; + + static_assert(!std::is_move_assignable::value, "not assignable"); +#if __cplusplus >= 201703L + static_assert(std::is_swappable_v, "but swappable"); +#endif +} // namespace B + void test04() { - std::unique_ptr p1(new int[1]{1}, { -1 }); - std::unique_ptr p2(new int[2]{2, 2}, { -2 }); + std::unique_ptr p1(new int[1]{1}, { -1 }); + std::unique_ptr p2(new int[2]{2, 2}, { -2 }); int* const pi1 = p1.get(); int* const pi2 = p2.get(); // This type must swappable even though the deleter is not move-assignable: diff --git a/libstdc++-v3/testsuite/22_locale/time_get/get/char/3.cc b/libstdc++-v3/testsuite/22_locale/time_get/get/char/3.cc index 48a5f12e26e8..49bcd2adbcb1 100644 --- a/libstdc++-v3/testsuite/22_locale/time_get/get/char/3.cc +++ b/libstdc++-v3/testsuite/22_locale/time_get/get/char/3.cc @@ -226,7 +226,7 @@ test01() format = "%e"; ret = tget.get(iter(iss), end, iss, err, &time, format.data(), format.data()+format.size()); - VERIFY( err == ios_base::failbit|ios_base::eofbit ); + VERIFY( err == (ios_base::failbit|ios_base::eofbit) ); VERIFY( ret == end ); iss.str("35"); diff --git a/libstdc++-v3/testsuite/22_locale/time_get/get/wchar_t/3.cc b/libstdc++-v3/testsuite/22_locale/time_get/get/wchar_t/3.cc index b7eb5bcb204a..4b1b6e4924e6 100644 --- a/libstdc++-v3/testsuite/22_locale/time_get/get/wchar_t/3.cc +++ b/libstdc++-v3/testsuite/22_locale/time_get/get/wchar_t/3.cc @@ -226,7 +226,7 @@ test01() format = L"%e"; ret = tget.get(iter(iss), end, iss, err, &time, format.data(), format.data()+format.size()); - VERIFY( err == ios_base::failbit|ios_base::eofbit ); + VERIFY( err == (ios_base::failbit|ios_base::eofbit) ); VERIFY( ret == end ); iss.str(L"35"); diff --git a/libstdc++-v3/testsuite/23_containers/mdspan/int_like.h b/libstdc++-v3/testsuite/23_containers/mdspan/int_like.h index 310dd8ddf207..e9172c134559 100644 --- a/libstdc++-v3/testsuite/23_containers/mdspan/int_like.h +++ b/libstdc++-v3/testsuite/23_containers/mdspan/int_like.h @@ -15,7 +15,7 @@ template public: explicit CustomIndexType(int i) - : _M_i(i) + : value(i) { } CustomIndexType() = delete; @@ -31,25 +31,25 @@ template constexpr operator int() const noexcept requires (Kind == CustomIndexKind::Const) - { return _M_i; } + { return value; } constexpr operator int() const requires (Kind == CustomIndexKind::Throwing) - { return _M_i; } + { return value; } constexpr operator int() noexcept requires (Kind == CustomIndexKind::Mutating) - { return _M_i; } + { return value; } constexpr operator int() && noexcept requires (Kind == CustomIndexKind::RValue) - { return _M_i; } + { return value; } private: - int _M_i; + int value; }; using IntLike = CustomIndexType; diff --git a/libstdc++-v3/testsuite/23_containers/mdspan/layouts/class_mandate_neg.cc b/libstdc++-v3/testsuite/23_containers/mdspan/layouts/class_mandate_neg.cc index 7091153daba8..edf07c983dac 100644 --- a/libstdc++-v3/testsuite/23_containers/mdspan/layouts/class_mandate_neg.cc +++ b/libstdc++-v3/testsuite/23_containers/mdspan/layouts/class_mandate_neg.cc @@ -46,3 +46,4 @@ auto b6 = B<6, std::layout_stride, std::layout_left>(); // { dg-error "require auto b7 = B<7, std::layout_stride, std::layout_stride>(); // { dg-error "required from" } // { dg-prune-output "must be representable as index_type" } +// { dg-prune-output "static assertion failed" } diff --git a/libstdc++-v3/testsuite/23_containers/mdspan/layouts/ctors.cc b/libstdc++-v3/testsuite/23_containers/mdspan/layouts/ctors.cc index 23c0a55dae19..27065a0dfc6e 100644 --- a/libstdc++-v3/testsuite/23_containers/mdspan/layouts/ctors.cc +++ b/libstdc++-v3/testsuite/23_containers/mdspan/layouts/ctors.cc @@ -1,6 +1,7 @@ // { dg-do run { target c++23 } } #include +#include "padded_traits.h" #include #include @@ -27,7 +28,6 @@ template VERIFY(std::cmp_equal(m.stride(i), other.stride(i))); } - template constexpr void verify_convertible(From from) @@ -40,7 +40,10 @@ template constexpr void verify_nothrow_convertible(From from) { - static_assert(std::is_nothrow_constructible_v); + if constexpr (is_padded_layout) + static_assert(std::is_constructible_v); + else + static_assert(std::is_nothrow_constructible_v); verify_convertible(from); } @@ -57,7 +60,10 @@ template constexpr void verify_nothrow_constructible(From from) { - static_assert(std::is_nothrow_constructible_v); + if constexpr (is_padded_layout) + static_assert(std::is_constructible_v); + else + static_assert(std::is_nothrow_constructible_v); verify_constructible(from); } @@ -196,6 +202,16 @@ namespace from_extents // ctor: mapping(mapping) namespace from_same_layout { + template + constexpr void + verify_convertible(OExtents exts) + { + using Mapping = typename Layout::mapping; + using OMapping = typename Layout::mapping; + + ::verify_convertible(OMapping(exts)); + } + template constexpr void verify_nothrow_convertible(OExtents exts) @@ -223,8 +239,12 @@ namespace from_same_layout verify_nothrow_convertible>( std::extents{}); - verify_nothrow_constructible>( - std::extents{}); + if constexpr (!is_padded_layout) + verify_nothrow_constructible>( + std::extents{}); + else + verify_convertible>( + std::extents{}); assert_not_constructible< typename Layout::mapping>, @@ -234,8 +254,12 @@ namespace from_same_layout typename Layout::mapping>, typename Layout::mapping>>(); - verify_nothrow_constructible>( - std::extents{1}); + if constexpr (!is_padded_layout) + verify_nothrow_constructible>( + std::extents{1}); + else + verify_convertible>( + std::extents{1}); verify_nothrow_convertible>( std::extents{}); @@ -247,8 +271,12 @@ namespace from_same_layout verify_nothrow_constructible>( std::extents{1}); - verify_nothrow_convertible>( - std::extents{}); + if constexpr (!is_padded_layout) + verify_nothrow_convertible>( + std::extents{}); + else + verify_nothrow_constructible>( + std::extents{}); return true; } @@ -424,11 +452,25 @@ template from_stride::test_all(); } +template typename Layout> + constexpr void + test_padded_all() + { + test_all>(); + test_all>(); + test_all>(); + test_all>(); + } + int main() { test_all(); test_all(); +#if __cplusplus > 202302L + test_padded_all(); + test_padded_all(); +#endif from_left_or_right::test_all(); from_left_or_right::test_all(); diff --git a/libstdc++-v3/testsuite/23_containers/mdspan/layouts/empty.cc b/libstdc++-v3/testsuite/23_containers/mdspan/layouts/empty.cc index cbc425f6c159..8840d07879cc 100644 --- a/libstdc++-v3/testsuite/23_containers/mdspan/layouts/empty.cc +++ b/libstdc++-v3/testsuite/23_containers/mdspan/layouts/empty.cc @@ -35,7 +35,8 @@ template { constexpr Int n1 = std::numeric_limits::max(); constexpr size_t n2 = std::dynamic_extent - 1; - constexpr size_t n = std::cmp_less(n1, n2) ? size_t(n1) : n2; + // Allow some room for padding. + constexpr size_t n = (std::cmp_less(n1, n2) ? size_t(n1) : n2) - 4; verify_all(typename Layout::mapping>{}); verify_all(typename Layout::mapping>{}); @@ -73,7 +74,8 @@ template { constexpr Int n1 = std::numeric_limits::max(); constexpr size_t n2 = std::dynamic_extent - 1; - constexpr Int n = std::cmp_less(n1, n2) ? n1 : Int(n2); + // Allow some room for padding. + constexpr Int n = (std::cmp_less(n1, n2) ? n1 : Int(n2)) - 4; verify_all(make_mapping( std::extents{n, n, n, n})); @@ -121,11 +123,26 @@ template return true; } +template typename Layout> + constexpr bool + test_padded_all() + { + static_assert(test_all>()); + static_assert(test_all>()); + static_assert(test_all>()); + static_assert(test_all>()); + return true; + } + int main() { static_assert(test_all()); static_assert(test_all()); static_assert(test_all()); +#if __cplusplus > 202302L + static_assert(test_padded_all()); + static_assert(test_padded_all()); +#endif return 0; } diff --git a/libstdc++-v3/testsuite/23_containers/mdspan/layouts/mapping.cc b/libstdc++-v3/testsuite/23_containers/mdspan/layouts/mapping.cc index db15e2a48f34..d1486e4e11c8 100644 --- a/libstdc++-v3/testsuite/23_containers/mdspan/layouts/mapping.cc +++ b/libstdc++-v3/testsuite/23_containers/mdspan/layouts/mapping.cc @@ -2,6 +2,7 @@ #include #include "../int_like.h" +#include "padded_traits.h" #include #include @@ -370,6 +371,37 @@ template<> } }; +#if __cplusplus > 202302L +template + requires is_left_padded || is_right_padded + struct TestStride2D + { + static constexpr void + run() + { + using Traits = LayoutTraits()>; + using Extents = typename Traits::extents_type>; + using Mapping = typename Layout::mapping; + constexpr size_t padding_value = Mapping::padding_value; + + Mapping m; + size_t effective_pad = (padding_value == 0 || padding_value == dyn) + ? size_t(1) : padding_value; + + constexpr auto i0 = is_left_padded ? 0 : 1; + VERIFY(m.stride(i0) == 1); + + // The next multiple of padding_value, that's greater or equal + // to exts.extent(0) is the unique value in the range: + // [exts.extent(0), exts.extent(0) + padding_value) + // that is divisible by padding_value. + auto stride = Traits::padded_stride(m); + VERIFY((stride % effective_pad) == 0); + VERIFY(3 <= stride && std::cmp_less(stride, 3 + effective_pad)); + } + }; +#endif + template constexpr void test_stride_2d() @@ -423,6 +455,40 @@ template<> } }; +#if __cplusplus > 202302L +template + requires is_left_padded || is_right_padded + struct TestStride3D + { + static constexpr void + run() + { + using Traits = LayoutTraits()>; + using Extents = typename Traits::extents_type>; + using Mapping = typename Layout::mapping; + constexpr size_t padding_value = Mapping::padding_value; + + Mapping m; + size_t effective_pad = (padding_value == 0 || padding_value == dyn) + ? size_t(1) : padding_value; + + constexpr auto i0 = is_left_padded ? 0 : 2; + VERIFY(m.stride(i0) == 1); + + // The next multiple of padding_value, that's greater or equal + // to exts.extent(0) is the unique value in the range: + // [exts.extent(0), exts.extent(0) + padding_value) + // that is divisible by padding_value. + auto stride = Traits::padded_stride(m); + VERIFY((stride % effective_pad) == 0); + VERIFY(3 <= stride && std::cmp_less(stride, 3 + effective_pad)); + + constexpr auto i2 = is_left_padded ? 2 : 0; + VERIFY(stride * 5 == m.stride(i2)); + } + }; +#endif + template constexpr void test_stride_3d() @@ -451,7 +517,8 @@ template test_has_stride_0d() { using Mapping = typename Layout::mapping>; - constexpr bool expected = std::is_same_v; + constexpr bool expected = !(std::is_same_v + || std::is_same_v); static_assert(has_stride == expected); } @@ -595,16 +662,56 @@ template test_has_op_eq(); } +#if __cplusplus > 202302L +template typename Layout> + constexpr bool + test_padded_all() + { + test_all>(); + test_all>(); + test_all>(); + test_all>(); + test_all>(); + return true; + } + +template typename Layout> + constexpr bool + test_padded_has_op_eq() + { + using Traits = LayoutTraits()>; + test_has_op_eq, false>(); + test_has_op_eq, false>(); + test_has_op_eq, false>(); + // The next one looks strange, because it's neither. Somehow, the + // conversion rules seem to be playing a critical role again. + // test_has_op_eq, false>(); + + test_has_op_eq, Layout<6>, true>(); + test_has_op_eq, Layout, true>(); + return true; + } +#endif + int main() { test_all(); test_all(); test_all(); +#if __cplusplus > 202302L + test_padded_all(); + test_padded_all(); +#endif test_has_op_eq(); test_has_op_eq(); test_has_op_eq(); +#if __cplusplus > 202302L + test_padded_has_op_eq(); + test_padded_has_op_eq(); +#endif + test_has_op_eq_peculiar(); return 0; } diff --git a/libstdc++-v3/testsuite/23_containers/mdspan/layouts/padded.cc b/libstdc++-v3/testsuite/23_containers/mdspan/layouts/padded.cc new file mode 100644 index 000000000000..cf4821a3c74f --- /dev/null +++ b/libstdc++-v3/testsuite/23_containers/mdspan/layouts/padded.cc @@ -0,0 +1,677 @@ +// { dg-do run { target c++26 } } +#include + +#include +#include "../int_like.h" +#include "padded_traits.h" +#include + +constexpr size_t dyn = std::dynamic_extent; + +template typename Layout> + constexpr bool + test_representable_padded_size() + { + using Traits = LayoutTraits()>; + { + using E = typename Traits::extents_type>; + [[maybe_unused]] typename Layout<1>::mapping m1; + } + + { + using E = typename Traits::extents_type>; + [[maybe_unused]] typename Layout<0>::mapping m1; + [[maybe_unused]] typename Layout<1>::mapping m2; + [[maybe_unused]] typename Layout<128>::mapping m3; + [[maybe_unused]] typename Layout<255>::mapping m4; + } + + { + using E = typename Traits::extents_type>; + [[maybe_unused]] typename Layout::mapping m1(E{}, 0); + [[maybe_unused]] typename Layout::mapping m2(E{}, 1); + [[maybe_unused]] typename Layout::mapping m3(E{}, 128); + [[maybe_unused]] typename Layout::mapping m4(E{}, 255); + } + + { + using E = typename Traits::extents_type>; + [[maybe_unused]] typename Layout<0>::mapping m1; + [[maybe_unused]] typename Layout<1>::mapping m2; + [[maybe_unused]] typename Layout<128>::mapping m3; + [[maybe_unused]] typename Layout<255>::mapping m4; + } + return true; + } + +template + constexpr void + test_default_ctor_single(auto canonical_strides) + { + using Traits = LayoutTraits()>; + using E = typename Traits::extents_type; + auto strides = Traits::make_array(canonical_strides); + + typename Layout::template mapping msta; + VERIFY(msta.stride(0) == strides[0]); + VERIFY(msta.stride(1) == strides[1]); + } + + +template typename Layout> + constexpr bool + test_default_ctor() + { + using E1 = std::extents; + test_default_ctor_single, E1>(std::array{1, 4}); + test_default_ctor_single, E1>(std::array{1, 3}); + + using E2 = std::extents; + test_default_ctor_single, E2>(std::array{1, 0}); + test_default_ctor_single, E2>(std::array{1, 0}); + return true; + } + +template typename Layout> + constexpr bool + test_from_exts() + { + using Traits = LayoutTraits()>; + auto exts = Traits::make_extents(std::dextents{3, 5}); + + typename Layout<0>::mapping m0_sta(exts); + VERIFY(Traits::padded_stride(m0_sta) == Traits::padded_extent(exts)); + + typename Layout<1>::mapping m1_sta(exts); + VERIFY(Traits::padded_stride(m1_sta) == Traits::padded_extent(exts)); + + typename Layout<2>::mapping m2_sta(exts); + VERIFY(Traits::padded_stride(m2_sta) == 4); + + typename Layout::mapping mdyn(exts); + VERIFY(Traits::padded_stride(mdyn) == Traits::padded_extent(exts)); + return true; + } + +template + constexpr bool + test_from_pad_single() + { + using Traits = LayoutTraits()>; + auto pad = 3; + auto exts = Traits::make_extents(std::dextents{pad + 1, 5, 7}); + typename Layout::mapping m(exts, CustomPadType{pad}); + VERIFY(std::cmp_equal(Traits::padded_stride(m), 2*pad)); + VERIFY(m.extents() == exts); + return true; + } + +template + constexpr void + test_from_pad() + { + test_from_pad_single(); + static_assert(test_from_pad_single()); + + test_from_pad_single(); + test_from_pad_single(); + test_from_pad_single(); + + using Extents = std::dims<3>; + using Mapping = Layout::template mapping; + static_assert(!std::is_constructible_v); + static_assert(!std::is_constructible_v); + } + +template typename Layout> + constexpr void + test_from_pad_all() + { + test_from_pad>(); + test_from_pad>(); + } + +constexpr bool +is_same_mapping(const auto& lhs, const auto& rhs) +{ + if (lhs.extents().rank() != rhs.extents().rank()) + return false; + + if (lhs.extents() != rhs.extents()) + return false; + + for (size_t i = 0; i < lhs.extents().rank(); ++i) + if (lhs.stride(i) != rhs.stride(i)) + return false; + return true; +} + +enum class ConversionRule +{ + Never, + Always, + Regular +}; + +template +consteval bool +should_convert(auto rule) +{ + if constexpr (rule == ConversionRule::Never) + return false; + if constexpr (rule == ConversionRule::Always) + return true; + else + return std::is_convertible_v; +} + +template + constexpr void + check_convertible(const From& m, auto conversion_rule) + { + VERIFY(is_same_mapping(m, To(m))); + constexpr bool expected = should_convert(conversion_rule); + static_assert(std::is_convertible_v == expected); + } + +template + constexpr void + check_convertible_variants(auto msta, auto conversion_rule) + { + using LayoutFrom = decltype(msta)::layout_type; + constexpr auto cregular = std::cw; + + // There's a twist when both mappings are left-padded. There's two distinct + // ctors: a defaulted copy ctor and a constrained template that enables + // construction from left-padded mappings even if their layout_type is + // different. The two ctors have different rules regarding conversion. + + if constexpr (!std::same_as) + check_convertible>(msta, conversion_rule); + else + check_convertible>(msta, cregular); + + check_convertible>(msta, conversion_rule); + + auto mdyn = typename LayoutFrom::mapping(msta); + check_convertible>(mdyn, conversion_rule); + if constexpr (!std::same_as) + check_convertible>(mdyn, conversion_rule); + else + check_convertible>(mdyn, cregular); + + static_assert(!std::is_constructible_v< + typename LayoutTo::mapping, typename LayoutFrom::mapping>); + }; + +template + constexpr void + test_from_same_1d() + { + using E1 = std::extents; + using E2 = std::extents; + using E3 = std::extents; + constexpr auto cr = std::cw; + + using Traits = LayoutTraits()>; + auto msta = typename Traits::layout_same::mapping(E1{}); + check_convertible_variants(msta, cr); + } + +template + constexpr void + test_from_same_2d() + { + using Traits = LayoutTraits()>; + using E1 = typename Traits::extents_type>; + using E2 = typename Traits::extents_type>; + using E3 = typename Traits::extents_type>; + constexpr auto cr = std::cw; + + auto msta = typename Traits::layout_same::mapping(E1{}); + check_convertible_variants(msta, cr); + } + +template typename Layout> +constexpr bool +test_from_same() +{ + auto check = [](PaddedLayout) + { + test_from_same_1d(); + test_from_same_2d(); + }; + + check(Layout<0>{}); + check(Layout<1>{}); + check(Layout<2>{}); + check(Layout<6>{}); + check(Layout{}); + + // rank == 1 is more permissive: + test_from_same_1d>(); + return true; +} + +template typename Layout, typename E1_, typename E2_, + typename E3_> + constexpr bool + test_from_stride_nd(auto strides_) + { + using Traits = LayoutTraits()>; + using E1 = typename Traits::extents_type; + using E2 = typename Traits::extents_type; + using E3 = typename Traits::extents_type; + auto strides = Traits::make_array(strides_); + + auto check = [&strides](PaddedLayout) + { + auto exts = E1{}; + constexpr auto cr = std::cw; + + auto m = std::layout_stride::mapping(exts, strides); + check_convertible_variants(m, cr); + }; + + check(Layout<0>{}); + check(Layout<1>{}); + check(Layout<2>{}); + check(Layout<6>{}); + check(Layout{}); + return true; + } + +template typename Layout> + constexpr bool + test_from_stride_2d() + { + using E1 = std::extents; + using E2 = std::dims<2>; + using E3 = std::extents; + + auto strides = std::array{1, 6}; + test_from_stride_nd(strides); + return true; + } + +template typename Layout> + constexpr bool + test_from_stride_3d() + { + using E1 = std::extents; + using E2 = std::dims<3>; + using E3 = std::extents; + + auto strides = std::array{1, 6, 6*5}; + test_from_stride_nd(strides); + return true; + } + +template typename Layout> + constexpr bool + test_from_stride() + { + test_from_stride_2d(); + test_from_stride_3d(); + return true; + } + +template typename Layout> + constexpr void + test_from_samepad_0d() + { + using E1 = std::extents; + using E2 = std::extents; + using E3 = std::extents; + + typename Layout<6>::mapping msta{E1{}}; + + auto check = [](To, auto m) + { + constexpr auto cr = std::cw; + check_convertible_variants(m, cr); + }; + + check(Layout<6>{}, msta); + check(Layout{}, msta); + } + +template typename Layout> + constexpr void + test_from_samepad_1d() + { + using E1 = std::extents; + using E2 = std::extents; + using E3 = std::extents; + + typename Layout<6>::mapping msta{E1{}}; + typename Layout::mapping mdyn{E1{}}; + + auto check = [](To, auto m) + { + constexpr auto cr = std::cw; + check_convertible_variants(m, cr); + }; + + // Remember, for rank <= 1 the padding_value is irrelevant. + check(Layout<6>{}, msta); + check(Layout<6>{}, mdyn); + check(Layout{}, msta); + check(Layout{}, mdyn); + } + +template typename Layout> + constexpr void + test_from_samepad_2d() + { + using Traits = LayoutTraits()>; + using E1 = typename Traits::extents_type>; + using E2 = typename Traits::extents_type>; + using E3 = typename Traits::extents_type>; + + typename Layout<6>::mapping msta{E1{}}; + typename Layout::mapping mdyn{E1{}}; + + constexpr auto calways = std::cw; + constexpr auto cnever = std::cw; + + auto check = [](To, auto m, auto cr) + { check_convertible_variants(m, cr); }; + + check(Layout<6>{}, msta, cnever); + check(Layout<6>{}, mdyn, cnever); + check(Layout{}, msta, calways); + check(Layout{}, mdyn, cnever); + } + +template typename Layout> + constexpr bool + test_from_samepad() + { + test_from_samepad_0d(); + test_from_samepad_1d(); + test_from_samepad_2d(); + return true; + } + +template typename Layout> + constexpr bool + test_from_other() + { + using Traits = LayoutTraits()>; + using E1 = std::extents; + using E2 = std::dims<1>; + using E3 = std::extents; + + auto check = [](PaddedLayout) + { + constexpr auto cr = std::cw; + + using layout_other = typename Traits::layout_other; + auto msta = typename layout_other::mapping(E1{}); + check_convertible_variants(msta, cr); + }; + + + // Remember, the padding_value has no effect for rank <= 1. + check(Layout<0>{}); + check(Layout<1>{}); + check(Layout<2>{}); + check(Layout<5>{}); + check(Layout<6>{}); + check(Layout{}); + return true; + } + +template typename Layout> + constexpr bool + test_to_same() + { + using Traits = LayoutTraits()>; + using E1 = typename Traits::extents_type>; + using E2 = typename Traits::extents_type>; + using E3 = typename Traits::extents_type>; + + auto check = [](auto msta) + { + constexpr auto cr = std::cw; + using LayoutSame = typename Traits::layout_same; + check_convertible_variants(msta, cr); + }; + + check(typename Layout<0>::mapping(E1{})); + check(typename Layout<2>::mapping(E1{})); + check(typename Layout<6>::mapping(E1{})); + check(typename Layout::mapping(E1{}, 0)); + check(typename Layout::mapping(E1{}, 2)); + check(typename Layout::mapping(E1{}, 6)); + return true; + } + +template typename Layout> + constexpr bool + test_never_to_other() + { + using Traits = LayoutTraits()>; + using E1 = std::extents; + using E2 = std::dims<1>; + + auto check = [](PaddedLayout, auto exts) + { + using LayoutOther = typename Traits::layout_other; + auto mr = typename LayoutOther::mapping(exts); + auto mlp = typename PaddedLayout::mapping{mr}; + static_assert(!std::is_constructible_v); + }; + + check(Layout<2>{}, E1{}); + check(Layout<2>{}, E2{E1{}}); + return true; + } + +template + constexpr void + test_strides() + { + auto check = [](auto exts) + { + auto m = typename Layout::mapping(exts); + using IndexType = typename decltype(m)::index_type; + constexpr size_t rank = decltype(m)::extents_type::rank(); + + auto strides = m.strides(); + static_assert(std::same_as>); + VERIFY(strides.size() == rank); + for (size_t i = 0; i < strides.size(); ++i) + VERIFY(strides[i] == m.stride(i)); + }; + + check(std::extents()); + check(std::extents(0)); + check(std::extents(3)); + check(std::extents(3, 5, 7)); + check(std::extents(3, 0, 7)); + } + +template typename Layout> + constexpr bool + test_strides_all() + { + test_strides>(); + test_strides>(); + test_strides>(); + test_strides>(); + return true; + } + +template typename Layout> + constexpr void + test_exhaustive_0d() + { + auto exts = std::extents{}; + + auto check = [](auto m) + { + static_assert(m.is_always_exhaustive()); + VERIFY(m.is_exhaustive()); + }; + + check(typename Layout<0>::mapping(exts)); + check(typename Layout<1>::mapping(exts)); + check(typename Layout<2>::mapping(exts)); + check(typename Layout::mapping(exts)); + } + +template typename Layout> +constexpr void + test_exhaustive_1d() + { + auto check_dyn_and_sta = [](PaddedLayout) + { + auto check = [](auto exts) + { + auto m = typename PaddedLayout::mapping(exts); + static_assert(m.is_always_exhaustive()); + VERIFY(m.is_exhaustive()); + }; + + check(std::extents(4)); + check(std::extents{}); + }; + + check_dyn_and_sta(Layout<1>{}); + check_dyn_and_sta(Layout<2>{}); + check_dyn_and_sta(Layout<6>{}); + check_dyn_and_sta(Layout{}); + } + +template typename Layout> + constexpr void + test_exhaustive_3d() + { + using Traits = LayoutTraits()>; + auto exts_dyn = Traits::make_extents(std::extents(4, 5, 7)); + auto exts_sta = Traits::make_extents(std::extents{}); + auto ctrue = std::cw; + auto cfalse= std::cw; + + auto check = [](auto m, auto static_expected, auto runtime_expected) + { + static_assert(m.is_always_exhaustive() == static_expected); + VERIFY(m.is_exhaustive() == runtime_expected); + }; + + check(typename Layout<0>::mapping(exts_sta), ctrue, true); + check(typename Layout<0>::mapping(exts_dyn), cfalse, true); + check(typename Layout<1>::mapping(exts_sta), ctrue, true); + check(typename Layout<1>::mapping(exts_dyn), cfalse, true); + check(typename Layout<2>::mapping(exts_sta), ctrue, true); + check(typename Layout<2>::mapping(exts_dyn), cfalse, true); + check(typename Layout<6>::mapping(exts_dyn), cfalse, false); + check(typename Layout<6>::mapping(exts_sta), cfalse, false); + check(typename Layout::mapping(exts_sta), cfalse, true); + check(typename Layout::mapping(exts_dyn, 2), cfalse, true); + check(typename Layout::mapping(exts_dyn, 3), cfalse, false); + } + +template typename Layout> + constexpr bool + test_exhaustive() + { + test_exhaustive_0d(); + test_exhaustive_1d(); + test_exhaustive_3d(); + return true; + } + +template typename Layout> + constexpr bool + test_op_eq() + { + // The generic cases are handled in layouts/mapping.cc. Here we check + // special cases related to non exhaustive layouts. + using Traits = LayoutTraits()>; + + auto exts_sta = Traits::make_extents(std::extents{}); + auto exts_dyn = std::dims<3>(exts_sta); + auto exts_other = Traits::make_extents(std::extents{}); + + auto m1 = typename Layout<0>::mapping(exts_sta); + auto m2 = typename Layout<7>::mapping(exts_sta); + + VERIFY(m1 == typename Layout<0>::mapping(exts_sta)); + VERIFY(m1 == typename Layout<1>::mapping(exts_sta)); + VERIFY(m1 == typename Layout<2>::mapping(exts_sta)); + VERIFY(m1 == typename Layout<6>::mapping(exts_sta)); + VERIFY(m1 != typename Layout<7>::mapping(exts_sta)); + VERIFY(m1 == typename Layout::mapping(exts_sta)); + VERIFY(m1 != typename Layout::mapping(exts_sta, 7)); + + VERIFY(m1 == typename Layout<0>::mapping(exts_dyn)); + VERIFY(m1 == typename Layout<1>::mapping(exts_dyn)); + VERIFY(m1 == typename Layout<2>::mapping(exts_dyn)); + VERIFY(m1 == typename Layout<6>::mapping(exts_dyn)); + VERIFY(m1 != typename Layout<7>::mapping(exts_dyn)); + VERIFY(m1 == typename Layout::mapping(exts_dyn)); + VERIFY(m1 != typename Layout::mapping(exts_dyn, 7)); + + VERIFY(m2 == typename Layout<7>::mapping(exts_sta)); + VERIFY(m2 == typename Layout::mapping(exts_sta, 7)); + VERIFY(m2 == typename Layout<7>::mapping(exts_dyn)); + VERIFY(m2 == typename Layout::mapping(exts_dyn, 7)); + + VERIFY(m2 != typename Layout<7>::mapping(exts_other)); + VERIFY(m2 != typename Layout::mapping(exts_other, 7)); + return true; + } + +template typename Layout> + constexpr bool + test_required_span_size_overflow() + { + using Traits = LayoutTraits()>; + using Extents = std::dextents; + auto exts = Traits::make_extents(Extents{64, 2}); + auto strides = Traits::make_array(std::array{1, 128}); + auto ms = std::layout_stride::mapping(exts, strides); + auto m = typename Layout::mapping(ms); + VERIFY(is_same_mapping(m, ms)); + VERIFY(m.required_span_size() == ms.required_span_size()); + return true; + } + +template typename Layout> + constexpr bool + test_all() + { + test_representable_padded_size(); + test_default_ctor(); + test_from_exts(); + test_from_stride(); + test_from_samepad(); + test_from_same(); + test_from_other(); + test_to_same(); + test_never_to_other(); + test_strides_all(); + test_exhaustive(); + test_op_eq(); + test_required_span_size_overflow(); + return true; + } + +int +main() +{ + test_all(); + static_assert(test_all()); + + test_all(); + static_assert(test_all()); + + test_from_pad_all(); + test_from_pad_all(); + return 0; +} diff --git a/libstdc++-v3/testsuite/23_containers/mdspan/layouts/padded_neg.cc b/libstdc++-v3/testsuite/23_containers/mdspan/layouts/padded_neg.cc new file mode 100644 index 000000000000..a758f74287f2 --- /dev/null +++ b/libstdc++-v3/testsuite/23_containers/mdspan/layouts/padded_neg.cc @@ -0,0 +1,352 @@ +// { dg-do compile { target c++26 } } +#include + +#include "padded_traits.h" +#include + +constexpr size_t dyn = std::dynamic_extent; + +template typename Layout> + constexpr bool + test_from_extens_representable_sta() + { + using E1 = std::extents; + auto m = typename Layout::mapping(E1{}); // { dg-error "required from" } + return true; + } +static_assert(test_from_extens_representable_sta()); // { dg-error "from here" } +static_assert(test_from_extens_representable_sta()); // { dg-error "from here" } + +template typename Layout> + constexpr bool + test_from_extents_representable_padded_size() + { + using E1 = std::extents; + using E2 = std::dextents; + + auto m = typename Layout::mapping(E2{E1{}}); // { dg-error "expansion of" } + (void) m; + return true; + } +static_assert(test_from_extents_representable_padded_size()); // { dg-error "expansion of" } +static_assert(test_from_extents_representable_padded_size()); // { dg-error "expansion of" } + +template typename Layout> + constexpr bool + test_from_extents_representable_stride() + { + using Traits = LayoutTraits()>; + using E1 = typename Traits::extents_type>; + auto m = typename Layout<128>::mapping(E1{129}); // { dg-error "expansion of" } + (void) m; + return true; + } +static_assert(test_from_extents_representable_stride()); // { dg-error "expansion of" } +static_assert(test_from_extents_representable_stride()); // { dg-error "expansion of" } + +template typename Layout> + constexpr bool + test_from_pad_representable_stride() + { + using Traits = LayoutTraits()>; + auto exts = Traits::make_extents(std::dextents(129, 2)); + auto m = typename Layout::mapping(exts, 128); // { dg-error "expansion of" } + return true; + } +static_assert(test_from_pad_representable_stride()); // { dg-error "expansion of" } +static_assert(test_from_pad_representable_stride()); // { dg-error "expansion of" } + +template typename Layout> + constexpr bool + test_from_pad_representable_padded_size() + { + using Traits = LayoutTraits()>; + auto exts = Traits::make_extents(std::dextents(64, 2)); + auto m = typename Layout::mapping(exts, 128); // { dg-error "expansion of" } + return true; + } +static_assert(test_from_pad_representable_padded_size()); // { dg-error "expansion of" } +static_assert(test_from_pad_representable_padded_size()); // { dg-error "expansion of" } + +template typename Layout> + constexpr bool + test_from_left() + { + using Traits = LayoutTraits()>; + using LayoutSame = typename Traits::layout_same; + auto exts = Traits::make_extents(std::extents{4}); + auto ml = typename LayoutSame::mapping(exts); + + typename Layout<4>::mapping m(ml); // { dg-error "expansion of" } + return true; + } +static_assert(test_from_left()); // { dg-error "required from here" } +static_assert(test_from_left()); // { dg-error "required from here" } + +template typename Layout> + constexpr bool + test_from_left_bad_runtime_stride() + { + using Traits = LayoutTraits()>; + auto exts = Traits::make_extents(std::extents{6, 4}); + auto ml = typename Traits::layout_same::mapping(exts); + + typename Layout<4>::mapping m(ml); // { dg-error "expansion of" } + (void) m; + return true; + } +static_assert(test_from_left_bad_runtime_stride()); // { dg-error "expansion of" } +static_assert(test_from_left_bad_runtime_stride()); // { dg-error "expansion of" } + +template typename Layout> + constexpr bool + test_from_left_representable_extents() + { + using Traits = LayoutTraits()>; + auto exts = Traits::make_extents(std::extents{8, 128}); + auto ml = typename Traits::layout_same::mapping(exts); + + typename Layout<8>::mapping> m(ml); // { dg-error "expansion of" } + return true; + } +static_assert(test_from_left_representable_extents()); // { dg-error "expansion of" } +static_assert(test_from_left_representable_extents()); // { dg-error "expansion of" } + +template typename Layout, size_t PaddingValue> + constexpr bool + test_pad_overflow() + { + auto exts = std::extents{4}; + auto n = size_t(1) << 9; + auto m = typename Layout::mapping(exts, n); + (void) m; + return true; + } +static_assert(test_pad_overflow()); // { dg-error "expansion of" } +static_assert(test_pad_overflow()); // { dg-error "expansion of" } +static_assert(test_pad_overflow()); // { dg-error "expansion of" } +static_assert(test_pad_overflow()); // { dg-error "expansion of" } + +template typename Layout, size_t PaddingValue> + constexpr bool + test_from_pad_negative() + { + auto exts = std::extents(4); + auto m = typename Layout::mapping(exts, -1); + (void) m; + return true; + } +static_assert(test_from_pad_negative()); // { dg-error "expansion of" } +static_assert(test_from_pad_negative()); // { dg-error "expansion of" } +static_assert(test_from_pad_negative()); // { dg-error "expansion of" } +static_assert(test_from_pad_negative()); // { dg-error "expansion of" } + +template typename Layout, size_t Pad> + constexpr bool + test_static_pad_same() + { + using Extents = std::extents; + using Mapping = typename Layout::mapping; + auto exts = Extents{4}; + auto m = Mapping(exts, Pad + 1); // { dg-error "expansion of" } + (void) m; + return true; + } +static_assert(test_static_pad_same()); // { dg-error "expansion of" } +static_assert(test_static_pad_same()); // { dg-error "expansion of" } +static_assert(test_static_pad_same()); // { dg-error "expansion of" } +static_assert(test_static_pad_same()); // { dg-error "expansion of" } + +template typename Layout> + constexpr bool + test_from_stride_wrong_stride0() + { + using Traits = LayoutTraits()>; + auto e = Traits::make_extents(std::extents{3, 5}); + auto s = Traits::make_array(std::array{2, 7}); + auto ms = std::layout_stride::mapping(e, s); + auto m = typename Layout::mapping(ms); // { dg-error "expansion of" } + (void) m; + return true; + } +static_assert(test_from_stride_wrong_stride0()); // { dg-error "expansion of" } +static_assert(test_from_stride_wrong_stride0()); // { dg-error "expansion of" } + +template typename Layout> + constexpr bool + test_from_stride_wrong_stride1() + { + using Traits = LayoutTraits()>; + auto e = Traits::make_extents(std::extents(3, 5)); + auto s = Traits::make_array(std::array{1, 3}); + auto ms = std::layout_stride::mapping(e, s); + auto m = typename Layout<2>::mapping(ms); // { dg-error "expansion of" } + (void) m; + return true; + } +static_assert(test_from_stride_wrong_stride1()); // { dg-error "expansion of" } +static_assert(test_from_stride_wrong_stride1()); // { dg-error "expansion of" } + +template typename Layout> + constexpr bool + test_from_stride_wrong_stride2() + { + using Traits = LayoutTraits()>; + auto e = Traits::make_extents(std::extents(3, 5, 7)); + auto s = Traits::make_array(std::array{1, 4, 21}); + auto ms = std::layout_stride::mapping(e, s); + auto m = typename Layout::mapping(ms); // here (not implemented) + (void) m; + return true; + } +static_assert(test_from_stride_wrong_stride2()); +static_assert(test_from_stride_wrong_stride2()); + +template typename Layout> + constexpr bool + test_from_stride_oversized() + { + using Traits = LayoutTraits()>; + auto exts = Traits::make_extents(std::extents{3, 6}); + auto s = Traits::make_array(std::array{1, 128}); + auto ms = std::layout_stride::mapping(exts, s); + + using Mapping = typename Layout::mapping>; + Mapping m(ms); // { dg-error "expansion of" } + (void) m; + return true; + } +static_assert(test_from_stride_oversized()); // { dg-error "expansion of" } +static_assert(test_from_stride_oversized()); // { dg-error "expansion of" } + +template typename Layout> + constexpr bool + test_from_samepad_dyn() + { + using Traits = LayoutTraits()>; + auto e = Traits::make_extents(std::extents(3, 5)); + auto mlp = typename Layout::mapping(e); + auto m = typename Layout<2>::mapping(mlp); // { dg-error "expansion of" } + (void) m; + return true; + } +static_assert(test_from_samepad_dyn()); // { dg-error "expansion of" } +static_assert(test_from_samepad_dyn()); // { dg-error "expansion of" } + +template typename Layout> + constexpr bool + test_from_samepad_sta() + { + using Traits = LayoutTraits()>; + auto e = Traits::make_extents(std::extents{3, 5}); + auto mlp = typename Layout<3>::mapping(e); + auto m = typename Layout<2>::mapping(mlp); // { dg-error "expansion of" } + (void) m; + return true; + } +static_assert(test_from_samepad_sta()); // { dg-error "expansion of" } +static_assert(test_from_samepad_sta()); // { dg-error "expansion of" } + +template typename Layout> + constexpr bool + test_from_samepad_oversized() + { + using Traits = LayoutTraits()>; + using E1 = typename Traits::extents_type>; + using E2 = typename Traits::extents_type>; + auto mlp = typename Layout::mapping(E1{}); + auto m = typename Layout::mapping(mlp); // { dg-error "expansion of" } + (void) m; + return true; + } +static_assert(test_from_samepad_oversized()); // { dg-error "expansion of" } +static_assert(test_from_samepad_oversized()); // { dg-error "expansion of" } + +template typename Layout, size_t RunId> + constexpr bool + test_to_same_not_exhaustive() + { + using Traits = LayoutTraits()>; + using E1 = typename Traits::extents_type>; + using E2 = typename Traits::extents_type>; + + [[maybe_unused]] auto msta = typename Layout<7>::mapping(E1{}); + if constexpr (RunId == 0) + { + auto m = typename Traits::layout_same::mapping(msta); // { dg-error "required from" } + (void) m; + } + if constexpr (RunId == 1) + { + auto m = typename Traits::layout_same::mapping(msta); // { dg-error "expansion of" } + (void) m; + } + + [[maybe_unused]] auto mdyn = typename Layout::mapping(E2{E1{}}, 7); + if constexpr (RunId == 2) + { + auto m = typename Traits::layout_same::mapping(mdyn); // { dg-error "expansion of" } + (void) m; + } + if constexpr (RunId == 3) + { + auto m = typename Traits::layout_same::mapping(mdyn); // { dg-error "expansion of" } + (void) m; + } + return true; + } +static_assert(test_to_same_not_exhaustive()); // { dg-error "expansion of" } +static_assert(test_to_same_not_exhaustive()); // { dg-error "expansion of" } +static_assert(test_to_same_not_exhaustive()); // { dg-error "expansion of" } +static_assert(test_to_same_not_exhaustive()); // { dg-error "expansion of" } +static_assert(test_to_same_not_exhaustive()); // { dg-error "expansion of" } +static_assert(test_to_same_not_exhaustive()); // { dg-error "expansion of" } +static_assert(test_to_same_not_exhaustive()); // { dg-error "expansion of" } +static_assert(test_to_same_not_exhaustive()); // { dg-error "expansion of" } + +template typename Layout> + constexpr bool + test_statically_bad_padding_value1() + { + using Traits = LayoutTraits()>; + constexpr auto N = std::numeric_limits::max() - 1; + using Extents = typename Traits::extents_type>; + typename Layout<10>::mapping m; // { dg-error "required from" } + return true; + } +static_assert(test_statically_bad_padding_value1()); // { dg-error "required from" } +static_assert(test_statically_bad_padding_value1()); // { dg-error "required from" } + +template typename Layout> + constexpr bool + test_statically_bad_padding_value2() + { + using Traits = LayoutTraits()>; + using Extents = typename Traits::extents_type>; + typename Layout<2>::mapping m; // { dg-error "required from" } + return true; + } +static_assert(test_statically_bad_padding_value2()); // { dg-error "required from" } +static_assert(test_statically_bad_padding_value2()); // { dg-error "required from" } + +template typename Layout> + constexpr bool + test_statically_oversized() + { + using Traits = LayoutTraits()>; + using Extents = typename Traits::extents_type>; + typename Layout<2>::mapping m; // { dg-error "required from" } + return true; + } +static_assert(test_statically_oversized()); // { dg-error "from here" } +static_assert(test_statically_oversized()); // { dg-error "from here" } + +// { dg-prune-output "padding_value must be representable as index_type" } +// { dg-prune-output "non-constant condition for static assertion" } +// { dg-prune-output "called in a constant expression" } +// { dg-prune-output "no matching function" } +// { dg-prune-output "static assertion failed" } +// { dg-prune-output "__glibcxx_assert_fail()" } +// { dg-prune-output "must be compatible with other.stride" } +// { dg-prune-output "padding_value is dynamic_extent" } +// { dg-prune-output "_S_rank <= 1" } diff --git a/libstdc++-v3/testsuite/23_containers/mdspan/layouts/padded_traits.h b/libstdc++-v3/testsuite/23_containers/mdspan/layouts/padded_traits.h new file mode 100644 index 000000000000..788ae82fcc49 --- /dev/null +++ b/libstdc++-v3/testsuite/23_containers/mdspan/layouts/padded_traits.h @@ -0,0 +1,149 @@ +#ifndef TEST_MDSPAN_PADDED_TRAITS_H +#define TEST_MDSPAN_PADDED_TRAITS_H + +#include + +template + constexpr static bool is_left_padded = false; + +#if __cplusplus > 202302L +template + constexpr static bool is_left_padded> + = true; +#endif + +template + constexpr static bool is_right_padded = false; + +#if __cplusplus > 202302L +template + constexpr static bool is_right_padded> + = true; +#endif + +template + constexpr bool + is_padded_layout = is_left_padded || is_right_padded; + +#if __cplusplus > 202302L +template + constexpr auto + dynamic_extents_array(const Extents& exts) + { + std::array ret; + for(size_t i = 0; i < Extents::rank(); ++i) + ret[i] = exts.extent(i); + return ret; + } + +enum class PaddingSide +{ + Left, + Right +}; + +struct DeducePaddingSide +{ + template typename Layout> + constexpr static PaddingSide + from_template() + { + if constexpr (std::same_as, std::layout_left_padded<0>>) + return PaddingSide::Left; + else + return PaddingSide::Right; + } + + template + constexpr static PaddingSide + from_typename() + { + if constexpr (is_left_padded) + return PaddingSide::Left; + else + return PaddingSide::Right; + } +}; + +template + struct LayoutTraits; + +template<> + struct LayoutTraits + { + using layout_same = std::layout_left; + using layout_other = std::layout_right; + + template + using extents_type = Extents; + + template + constexpr static extents_type + make_extents(const Extents& exts) + { return exts; } + + template + constexpr static std::array + make_array(const std::array& expected) + { return expected; } + + template + constexpr static auto + padded_stride(const Mapping& m) + { return m.stride(1); } + + template + constexpr static auto + padded_extent(const Extents& exts) + { return exts.extent(0); } + }; + +template<> + struct LayoutTraits + { + using layout_same = std::layout_right; + using layout_other = std::layout_left; + + template + constexpr static auto + make_extents(const std::extents& exts) + { + constexpr size_t rank = sizeof...(Extents); + auto impl = [&](std::index_sequence) + { + auto dyn_exts = make_array(dynamic_extents_array(exts)); + return std::extents(dyn_exts); + }; + return impl(std::make_index_sequence()); + } + + template + using extents_type = decltype(make_extents(std::declval())); + + template + constexpr static std::array + make_array(std::array a) + { + std::ranges::reverse(a); + return a; + } + + template + constexpr static auto + padded_stride(const Mapping& m) + { + auto rank = Mapping::extents_type::rank(); + return m.stride(rank - 2); + } + + template + constexpr static auto + padded_extent(const Extents& exts) + { + auto rank = Extents::rank(); + return exts.extent(rank - 1); + } + }; + +#endif +#endif diff --git a/libstdc++-v3/testsuite/23_containers/mdspan/submdspan/strided_slice.cc b/libstdc++-v3/testsuite/23_containers/mdspan/submdspan/strided_slice.cc new file mode 100644 index 000000000000..c43a82143214 --- /dev/null +++ b/libstdc++-v3/testsuite/23_containers/mdspan/submdspan/strided_slice.cc @@ -0,0 +1,46 @@ +// { dg-do run { target c++26 } } +#include + +#include +#include + +constexpr void +check_strided_slice(auto s, auto offset, auto extent, auto stride) +{ + using slice_type = std::strided_slice; + static_assert(std::same_as); + VERIFY(s.offset == offset); + VERIFY(s.extent == extent); + VERIFY(s.stride == stride); +} + +constexpr void +test_initializers(auto offset, auto extent, auto stride) +{ + auto check = [&](auto s) + { + check_strided_slice(s, offset, extent, stride); + }; + + check(std::strided_slice{.offset=offset, .extent=extent, .stride=stride}); + check(std::strided_slice{offset, extent, stride}); + check(std::strided_slice(offset, extent, stride)); +} + +constexpr bool +test_all() +{ + test_initializers(0, 1, 2); + test_initializers(std::integral_constant{}, size_t{1}, std::cw<2>); + test_initializers(-1, 2, 2); + return true; +} + +int +main() +{ + test_all(); + static_assert(test_all()); + return 0; +} diff --git a/libstdc++-v3/testsuite/23_containers/mdspan/submdspan/strided_slice_neg.cc b/libstdc++-v3/testsuite/23_containers/mdspan/submdspan/strided_slice_neg.cc new file mode 100644 index 000000000000..0f1d791d13aa --- /dev/null +++ b/libstdc++-v3/testsuite/23_containers/mdspan/submdspan/strided_slice_neg.cc @@ -0,0 +1,19 @@ +// { dg-do compile { target c++26 } } +#include + +#include + +template + constexpr bool + test_invalid() + { + auto s1 = std::strided_slice(OffsetType{}, ExtentType{}, StrideType{}); // { dg-error "required from" } + return true; + } + +static_assert(test_invalid()); // { dg-error "required from" } +static_assert(test_invalid()); // { dg-error "required from" } +static_assert(test_invalid()); // { dg-error "required from" } +static_assert(test_invalid()); // { dg-error "required from" } + +// { dg-prune-output "static assertion failed" } diff --git a/libstdc++-v3/testsuite/23_containers/vector/bool/format.cc b/libstdc++-v3/testsuite/23_containers/vector/bool/format.cc index cecc535f15f1..833727f4b418 100644 --- a/libstdc++-v3/testsuite/23_containers/vector/bool/format.cc +++ b/libstdc++-v3/testsuite/23_containers/vector/bool/format.cc @@ -7,6 +7,7 @@ static_assert(!std::formattable::reference, int>); static_assert(!std::formattable::reference, char32_t>); +static_assert(std::enable_nonlocking_formatter_optimization::reference>); template bool diff --git a/libstdc++-v3/testsuite/27_io/basic_filebuf/seekoff/wchar_t/9875_seekoff.cc b/libstdc++-v3/testsuite/27_io/basic_filebuf/seekoff/wchar_t/9875_seekoff.cc index 052d80fceb72..474a49f83dce 100644 --- a/libstdc++-v3/testsuite/27_io/basic_filebuf/seekoff/wchar_t/9875_seekoff.cc +++ b/libstdc++-v3/testsuite/27_io/basic_filebuf/seekoff/wchar_t/9875_seekoff.cc @@ -66,7 +66,7 @@ class Cvt : public std::codecvt virtual int do_length(std::mbstate_t&, const char* from, const char* end, - std::size_t max) + std::size_t max) const { std::size_t len = (end - from) / sizeof(wchar_t); return std::min(len, max) * sizeof(wchar_t); diff --git a/libstdc++-v3/testsuite/27_io/basic_filebuf/seekpos/wchar_t/9875_seekpos.cc b/libstdc++-v3/testsuite/27_io/basic_filebuf/seekpos/wchar_t/9875_seekpos.cc index 5767f8aa2a9a..f0d3b59f7b23 100644 --- a/libstdc++-v3/testsuite/27_io/basic_filebuf/seekpos/wchar_t/9875_seekpos.cc +++ b/libstdc++-v3/testsuite/27_io/basic_filebuf/seekpos/wchar_t/9875_seekpos.cc @@ -66,7 +66,7 @@ class Cvt : public std::codecvt virtual int do_length(std::mbstate_t&, const char* from, const char* end, - std::size_t max) + std::size_t max) const { std::size_t len = (end - from) / sizeof(wchar_t); return std::min(len, max) * sizeof(wchar_t); diff --git a/libstdc++-v3/testsuite/27_io/basic_filebuf/underflow/char/1.cc b/libstdc++-v3/testsuite/27_io/basic_filebuf/underflow/char/1.cc index a0396a4cf1f7..6d4c71fe9a53 100644 --- a/libstdc++-v3/testsuite/27_io/basic_filebuf/underflow/char/1.cc +++ b/libstdc++-v3/testsuite/27_io/basic_filebuf/underflow/char/1.cc @@ -35,7 +35,7 @@ class NoconvCvt : public std::codecvt virtual result do_in(state_type&, const char* from, const char*, const char*& from_next, - char* to, char*, char*& to_next) + char* to, char*, char*& to_next) const { from_next = from; to_next = to; diff --git a/libstdc++-v3/testsuite/27_io/basic_filebuf/underflow/wchar_t/11603.cc b/libstdc++-v3/testsuite/27_io/basic_filebuf/underflow/wchar_t/11603.cc index fcd95a9d5e85..c62ad020b0af 100644 --- a/libstdc++-v3/testsuite/27_io/basic_filebuf/underflow/wchar_t/11603.cc +++ b/libstdc++-v3/testsuite/27_io/basic_filebuf/underflow/wchar_t/11603.cc @@ -119,7 +119,7 @@ class checksumcvt : public std::codecvt { return width; } virtual int - do_length(const StateT&, const extern_type* from, + do_length(StateT&, const extern_type* from, const extern_type* end, size_t max) const { size_t len = std::min(max, diff --git a/libstdc++-v3/testsuite/27_io/print/1.cc b/libstdc++-v3/testsuite/27_io/print/1.cc index 2a74e5002f44..58f1eb163dfa 100644 --- a/libstdc++-v3/testsuite/27_io/print/1.cc +++ b/libstdc++-v3/testsuite/27_io/print/1.cc @@ -68,15 +68,22 @@ test_print_raw() void test_vprint_nonunicode() { - std::vprint_nonunicode("{0} in \xc0 {0} out\n", + std::vprint_nonunicode_buffered("{0} in \xc0 {0} out\n", std::make_format_args("garbage")); - // { dg-output "garbage in . garbage out" } + // { dg-output "garbage in . garbage out\r?\n" } + std::vprint_nonunicode_buffered(stdout, "{0} in \xc3 {0} out\n", + std::make_format_args("junk")); + // { dg-output "junk in . junk out\r?\n" } + std::vprint_nonunicode(stdout, "{0} in \xc2 {0} out\n", + std::make_format_args("trash")); + // { dg-output "trash in . trash out\r?\n" } + } +#ifdef __cpp_exceptions void test_errors() { -#ifdef __cpp_exceptions try { std::print(stdin, "{}", "nope"); @@ -85,9 +92,47 @@ test_errors() catch (const std::system_error&) { } -#endif } +struct ThrowOnFormat +{}; + +template +struct std::formatter +{ + constexpr typename std::basic_format_parse_context::iterator + parse(const std::basic_format_parse_context& pc) const + { return pc.begin(); } + + template + typename std::basic_format_context::iterator + format(ThrowOnFormat, const std::basic_format_context&) const + { throw ThrowOnFormat{}; } +}; + +void +test_buffered() +{ + __gnu_test::scoped_file f; + FILE* strm = std::fopen(f.path.string().c_str(), "w"); + VERIFY( strm ); + try + { + std::string s = "Test"; + ThrowOnFormat tf; + std::vprint_unicode_buffered(strm, "{} {} {} {}", std::make_format_args(s, s, s, tf)); + VERIFY(false); + } + catch (ThrowOnFormat) + { } + std::fclose(strm); + + std::ifstream in(f.path); + std::string txt(std::istreambuf_iterator(in), {}); + VERIFY( txt.empty() ); +} +#endif + int main() { test_print_default(); @@ -96,5 +141,8 @@ int main() test_println_file(); test_print_raw(); test_vprint_nonunicode(); +#ifdef __cpp_exceptions test_errors(); + test_buffered(); +#endif } diff --git a/libstdc++-v3/testsuite/28_regex/algorithms/regex_match/multiline.cc b/libstdc++-v3/testsuite/28_regex/algorithms/regex_match/multiline.cc index a1982fc8f786..f4b3cf03a225 100644 --- a/libstdc++-v3/testsuite/28_regex/algorithms/regex_match/multiline.cc +++ b/libstdc++-v3/testsuite/28_regex/algorithms/regex_match/multiline.cc @@ -27,11 +27,11 @@ test01() VERIFY(std::regex_search("x\nab\nx", ml)); ml.assign("a$\n^b$\n^c", ECMAScript|__multiline); - VERIFY( ml.flags() == ECMAScript|__multiline ); + VERIFY( ml.flags() == (ECMAScript|__multiline) ); VERIFY( regex_search("a\nb\nc", ml) ); ml.assign("a$\n^b$\n^c", ECMAScript|__multiline|icase); - VERIFY( ml.flags() == ECMAScript|__multiline|icase ); + VERIFY( ml.flags() == (ECMAScript|__multiline|icase) ); VERIFY( regex_search("A\nB\nC", ml) ); } diff --git a/libstdc++-v3/testsuite/28_regex/basic_regex/assign/wchar_t/pstring.cc b/libstdc++-v3/testsuite/28_regex/basic_regex/assign/wchar_t/pstring.cc index 2e9dea13a774..91e55129908c 100644 --- a/libstdc++-v3/testsuite/28_regex/basic_regex/assign/wchar_t/pstring.cc +++ b/libstdc++-v3/testsuite/28_regex/basic_regex/assign/wchar_t/pstring.cc @@ -23,6 +23,7 @@ // [28.8.3] class template basic_regex assign() #include +#include // Tests assign operation from a Pascal-style counted-string. void test01() @@ -31,7 +32,7 @@ void test01() const wchar_t cs[] = L"aab"; test_type re; - re.assign(cs, sizeof(cs)-1, std::regex_constants::basic); + re.assign(cs, std::wcslen(cs), std::regex_constants::basic); } int diff --git a/libstdc++-v3/testsuite/29_atomics/atomic/requirements/types_neg.cc b/libstdc++-v3/testsuite/29_atomics/atomic/requirements/types_neg.cc index cfe44d255ca2..b9105481006f 100644 --- a/libstdc++-v3/testsuite/29_atomics/atomic/requirements/types_neg.cc +++ b/libstdc++-v3/testsuite/29_atomics/atomic/requirements/types_neg.cc @@ -19,7 +19,9 @@ #include -std::atomic a; // { dg-error "here" } +std::atomic ca; // { dg-error "here" } +std::atomic va; // { dg-error "here" } +std::atomic cva; // { dg-error "here" } // { dg-error "assignment to read-only type" "" { target *-*-* } 0 } struct MoveOnly diff --git a/libstdc++-v3/testsuite/29_atomics/atomic_ref/bool.cc b/libstdc++-v3/testsuite/29_atomics/atomic_ref/bool.cc index 4702932627e8..c73319010ee8 100644 --- a/libstdc++-v3/testsuite/29_atomics/atomic_ref/bool.cc +++ b/libstdc++-v3/testsuite/29_atomics/atomic_ref/bool.cc @@ -1,15 +1,85 @@ -// { dg-do compile { target c++20 } } +// Copyright (C) 2019-2025 Free Software Foundation, Inc. +// +// This file is part of the GNU ISO C++ Library. This library 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, or (at your option) +// any later version. + +// This library 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 library; see the file COPYING3. If not see +// . + +// { dg-do run { target c++20 } } +// { dg-require-atomic-cmpxchg-word "" } +// { dg-add-options libatomic } #include +#include + +void +test01() +{ + bool value; + + { + const auto mo = std::memory_order_relaxed; + std::atomic_ref a(value); + bool ok = a.is_lock_free(); + if constexpr (std::atomic_ref::is_always_lock_free) + VERIFY( ok ); + a = false; + VERIFY( !a.load() ); + VERIFY( !a.load(mo) ); + a.store(true); + VERIFY( a.load() ); + auto v = a.exchange(false); + VERIFY( !a.load() ); + VERIFY( v ); + v = a.exchange(true, mo); + VERIFY( a.load() ); + VERIFY( !v ); + + auto expected = a.load(); + while (!a.compare_exchange_weak(expected, false, mo, mo)) + { /* weak form can fail spuriously */ } + VERIFY( !a.load() ); + VERIFY( expected ); + + ok = a.compare_exchange_strong(expected, true); + VERIFY( !ok && !a.load() && !expected ); + + ok = a.compare_exchange_strong(expected, true); + VERIFY( ok && a.load() && !expected ); + } +} + +void +test02() +{ + bool b = false; + std::atomic_ref a0(b); + std::atomic_ref a1(b); + std::atomic_ref a1c(b); + std::atomic_ref a1v(b); + std::atomic_ref a1cv(b); + std::atomic_ref a2(a0); + b = true; + VERIFY( a1.load() ); + VERIFY( a1c.load() ); + VERIFY( a1v.load() ); + VERIFY( a1cv.load() ); + VERIFY( a2.load() ); +} -template concept has_and = requires (T& a) { a &= false; }; -template concept has_or = requires (T& a) { a |= false; }; -template concept has_xor = requires (T& a) { a ^= false; }; -template concept has_fetch_add = requires (T& a) { a.fetch_add(true); }; -template concept has_fetch_sub = requires (T& a) { a.fetch_sub(true); }; - -static_assert( not has_and> ); -static_assert( not has_or> ); -static_assert( not has_xor> ); -static_assert( not has_fetch_add> ); -static_assert( not has_fetch_sub> ); +int +main() +{ + test01(); + test02(); +} diff --git a/libstdc++-v3/testsuite/29_atomics/atomic_ref/cv_qual.cc b/libstdc++-v3/testsuite/29_atomics/atomic_ref/cv_qual.cc new file mode 100644 index 000000000000..dfc6a5599451 --- /dev/null +++ b/libstdc++-v3/testsuite/29_atomics/atomic_ref/cv_qual.cc @@ -0,0 +1,94 @@ +// Copyright (C) 2019-2025 Free Software Foundation, Inc. +// +// This file is part of the GNU ISO C++ Library. This library 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, or (at your option) +// any later version. + +// This library 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 library; see the file COPYING3. If not see +// . + +// { dg-do run { target c++20 } } +// { dg-require-atomic-cmpxchg-word "" } +// { dg-add-options libatomic } + +#include +#include + +struct X +{ + X() = default; + X(int i) : i(i) { } + int i; + + friend bool + operator==(X, X) = default; +}; + +template +void +test01(V v0, V v1) +{ + V value; + + if constexpr (std::atomic_ref::is_always_lock_free) + { + std::atomic_ref a(value); + VERIFY( a.is_lock_free() ); + + a = v0; + VERIFY( V(a) == v0 ); + VERIFY( a.load() == v0 ); + + a.store(v1); + VERIFY( a.load() == v1 ); + + V last = a.exchange(v0); + VERIFY( a.load() == v0 ); + VERIFY( last == v1 ); + + V expected = a.load(); + while (!a.compare_exchange_weak(expected, v1)) + { /* weak form can fail spuriously */ } + VERIFY( a.load() == v1 ); + VERIFY( expected == v0 ); + + bool ok; + ok = a.compare_exchange_strong(expected, v0); + VERIFY( !ok && a.load() == v1 && expected == v1 ); + + ok = a.compare_exchange_strong(expected, v0); + VERIFY( ok && a.load() == v0 && expected == v1 ); + + std::atomic_ref cva(value); + VERIFY( cva.is_lock_free() ); + VERIFY( V(cva) == v0 ); + VERIFY( cva.load() == v0 ); + } + + value = v0; + std::atomic_ref ca(value); + bool lf = ca.is_lock_free(); + if constexpr (std::atomic_ref::is_always_lock_free) + VERIFY( lf ); + VERIFY( V(ca) == v0 ); + VERIFY( ca.load() == v0 ); +} + +int +main() +{ + int x; + test01(false, true); + test01(1, 2); + test01(1.2, 3.4); + test01(&x, &x+1); + test01(12, 13); +} diff --git a/libstdc++-v3/testsuite/29_atomics/atomic_ref/deduction.cc b/libstdc++-v3/testsuite/29_atomics/atomic_ref/deduction.cc index f67190e97a3a..01dbfce23751 100644 --- a/libstdc++-v3/testsuite/29_atomics/atomic_ref/deduction.cc +++ b/libstdc++-v3/testsuite/29_atomics/atomic_ref/deduction.cc @@ -19,22 +19,29 @@ #include +template void -test01() +test_impl(T v) { - int i = 0; - std::atomic_ref a0(i); - static_assert(std::is_same_v>); - - float f = 1.0f; - std::atomic_ref a1(f); - static_assert(std::is_same_v>); + std::atomic_ref a(v); + static_assert(std::is_same_v>); +} - int* p = &i; - std::atomic_ref a2(p); - static_assert(std::is_same_v>); +template +void +test(T v) +{ + test_impl(v); + test_impl(v); + test_impl(v); + test_impl(v); +} +int main() +{ + test(0); + test(1.0f); + test(nullptr); struct X { } x; - std::atomic_ref a3(x); - static_assert(std::is_same_v>); + test(x); } diff --git a/libstdc++-v3/testsuite/29_atomics/atomic_ref/float.cc b/libstdc++-v3/testsuite/29_atomics/atomic_ref/float.cc index 5773d144c36a..c69f3a711d34 100644 --- a/libstdc++-v3/testsuite/29_atomics/atomic_ref/float.cc +++ b/libstdc++-v3/testsuite/29_atomics/atomic_ref/float.cc @@ -299,14 +299,19 @@ test04() { if constexpr (std::atomic_ref::is_always_lock_free) { - float i = 0; - float* ptr = 0; - std::atomic_ref a0(ptr); - std::atomic_ref a1(ptr); - std::atomic_ref a2(a0); - a0 = &i; - VERIFY( a1 == &i ); - VERIFY( a2 == &i ); + float i = 0.0f; + std::atomic_ref a0(i); + std::atomic_ref a1(i); + std::atomic_ref a1c(i); + std::atomic_ref a1v(i); + std::atomic_ref a1cv(i); + std::atomic_ref a2(a0); + a0 = 1.0f; + VERIFY( a1 == 1.0f ); + VERIFY( a1c == 1.0f ); + VERIFY( a1v == 1.0f ); + VERIFY( a1cv == 1.0f ); + VERIFY( a2 == 1.0f ); } } diff --git a/libstdc++-v3/testsuite/29_atomics/atomic_ref/generic.cc b/libstdc++-v3/testsuite/29_atomics/atomic_ref/generic.cc index 2e6fa0f90e2d..079ec1b1a785 100644 --- a/libstdc++-v3/testsuite/29_atomics/atomic_ref/generic.cc +++ b/libstdc++-v3/testsuite/29_atomics/atomic_ref/generic.cc @@ -108,9 +108,15 @@ test02() X i; std::atomic_ref a0(i); std::atomic_ref a1(i); + std::atomic_ref a1c(i); + std::atomic_ref a1v(i); + std::atomic_ref a1cv(i); std::atomic_ref a2(a0); a0 = 42; VERIFY( a1.load() == 42 ); + VERIFY( a1c.load() == 42 ); + VERIFY( a1v.load() == 42 ); + VERIFY( a1cv.load() == 42 ); VERIFY( a2.load() == 42 ); } diff --git a/libstdc++-v3/testsuite/29_atomics/atomic_ref/integral.cc b/libstdc++-v3/testsuite/29_atomics/atomic_ref/integral.cc index f6b68ebc5989..310434cefb54 100644 --- a/libstdc++-v3/testsuite/29_atomics/atomic_ref/integral.cc +++ b/libstdc++-v3/testsuite/29_atomics/atomic_ref/integral.cc @@ -302,9 +302,15 @@ test03() int i = 0; std::atomic_ref a0(i); std::atomic_ref a1(i); + std::atomic_ref a1c(i); + std::atomic_ref a1v(i); + std::atomic_ref a1cv(i); std::atomic_ref a2(a0); a0 = 42; VERIFY( a1 == 42 ); + VERIFY( a1c == 42 ); + VERIFY( a1v == 42 ); + VERIFY( a1cv == 42 ); VERIFY( a2 == 42 ); } diff --git a/libstdc++-v3/testsuite/29_atomics/atomic_ref/op_support.cc b/libstdc++-v3/testsuite/29_atomics/atomic_ref/op_support.cc new file mode 100644 index 000000000000..93c65dce2636 --- /dev/null +++ b/libstdc++-v3/testsuite/29_atomics/atomic_ref/op_support.cc @@ -0,0 +1,113 @@ +// { dg-do compile { target c++20 } } + +#include + +template concept has_and = requires (T& a) { a &= false; }; +template concept has_or = requires (T& a) { a |= false; }; +template concept has_xor = requires (T& a) { a ^= false; }; +template concept has_fetch_add = requires (T& a) { a.fetch_add(true); }; +template concept has_fetch_sub = requires (T& a) { a.fetch_sub(true); }; + +static constexpr std::memory_order mo = std::memory_order_seq_cst; + +#define HAS(op) (requires (std::atomic_ref a, T t) { op; }) + +template +void +no_stores() +{ + static_assert( !HAS(a = t) ); + static_assert( !HAS(a.store(t)) ); + static_assert( !HAS(a.store(t, mo)) ); + static_assert( !HAS(a.exchange(t)) ); + static_assert( !HAS(a.exchange(t, mo)) ); + + static_assert( !HAS(a.compare_exchange_weak(t, t)) ); + static_assert( !HAS(a.compare_exchange_weak(t, t, mo)) ); + static_assert( !HAS(a.compare_exchange_weak(t, t, mo, mo)) ); + + static_assert( !HAS(a.compare_exchange_strong(t, t)) ); + static_assert( !HAS(a.compare_exchange_strong(t, t, mo)) ); + static_assert( !HAS(a.compare_exchange_strong(t, t, mo, mo)) ); +} + +template +void +no_additions() +{ + static_assert( !HAS(a++) ); + static_assert( !HAS(++a) ); + static_assert( !HAS(a += t) ); + static_assert( !HAS(a.fetch_add(t)) ); + static_assert( !HAS(a.fetch_add(t, mo)) ); + + static_assert( !HAS(a--) ); + static_assert( !HAS(--a) ); + static_assert( !HAS(a -= t) ); + static_assert( !HAS(a.fetch_sub(t)) ); + static_assert( !HAS(a.fetch_sub(t, mo)) ); +} + +template +void +no_bitops() +{ + static_assert( !HAS(a &= t) ); + static_assert( !HAS(a.fetch_and(t)) ); + static_assert( !HAS(a.fetch_and(t, mo)) ); + + static_assert( !HAS(a |= t) ); + static_assert( !HAS(a.fetch_or(t)) ); + static_assert( !HAS(a.fetch_or(t, mo)) ); + + static_assert( !HAS(a ^= t) ); + static_assert( !HAS(a.fetch_xor(t)) ); + static_assert( !HAS(a.fetch_xor(t, mo)) ); +} + +template +void +no_math() +{ + no_additions(); + no_bitops(); +} + +template +void +no_mutations() +{ + no_stores(); + no_math(); +} + +struct S +{ + int x; + int y; +}; + +int main() +{ + no_mutations(); + no_mutations(); + + no_bitops(); + no_bitops(); + no_mutations(); + + no_bitops(); + no_bitops(); + no_mutations(); + no_mutations(); + + no_math(); + no_math(); + no_mutations(); + no_mutations(); + + no_math(); + no_math(); + no_mutations(); + no_mutations(); +} diff --git a/libstdc++-v3/testsuite/29_atomics/atomic_ref/pointer.cc b/libstdc++-v3/testsuite/29_atomics/atomic_ref/pointer.cc index d1789af890eb..8db45c797c8d 100644 --- a/libstdc++-v3/testsuite/29_atomics/atomic_ref/pointer.cc +++ b/libstdc++-v3/testsuite/29_atomics/atomic_ref/pointer.cc @@ -210,9 +210,15 @@ test03() int* ptr = 0; std::atomic_ref a0(ptr); std::atomic_ref a1(ptr); + std::atomic_ref a1c(ptr); + std::atomic_ref a1v(ptr); + std::atomic_ref a1cv(ptr); std::atomic_ref a2(a0); a0 = &i; VERIFY( a1 == &i ); + VERIFY( a1c == &i ); + VERIFY( a1v == &i ); + VERIFY( a1cv == &i ); VERIFY( a2 == &i ); } diff --git a/libstdc++-v3/testsuite/29_atomics/atomic_ref/requirements.cc b/libstdc++-v3/testsuite/29_atomics/atomic_ref/requirements.cc index 3b929563a1e7..8617661f8e13 100644 --- a/libstdc++-v3/testsuite/29_atomics/atomic_ref/requirements.cc +++ b/libstdc++-v3/testsuite/29_atomics/atomic_ref/requirements.cc @@ -18,56 +18,92 @@ // { dg-do compile { target c++20 } } #include +#include +template void -test01() +test_generic() { - struct X { int c; }; - using A = std::atomic_ref; + using A = std::atomic_ref; static_assert( std::is_standard_layout_v ); static_assert( std::is_nothrow_copy_constructible_v ); static_assert( std::is_trivially_destructible_v ); - static_assert( std::is_same_v ); + static_assert( std::is_same_v> ); + static_assert( !requires { typename A::difference_type; } ); static_assert( !std::is_copy_assignable_v ); static_assert( !std::is_move_assignable_v ); } +template void -test02() +test_integral() { - using A = std::atomic_ref; + using A = std::atomic_ref; static_assert( std::is_standard_layout_v ); static_assert( std::is_nothrow_copy_constructible_v ); static_assert( std::is_trivially_destructible_v ); - static_assert( std::is_same_v ); - static_assert( std::is_same_v ); + static_assert( std::is_same_v> ); + static_assert( std::is_same_v ); static_assert( !std::is_copy_assignable_v ); static_assert( !std::is_move_assignable_v ); } +template void -test03() +test_floating_point() { - using A = std::atomic_ref; + using A = std::atomic_ref; static_assert( std::is_standard_layout_v ); static_assert( std::is_nothrow_copy_constructible_v ); static_assert( std::is_trivially_destructible_v ); - static_assert( std::is_same_v ); - static_assert( std::is_same_v ); + static_assert( std::is_same_v> ); + static_assert( std::is_same_v ); static_assert( !std::is_copy_assignable_v ); static_assert( !std::is_move_assignable_v ); } +template void -test04() +test_pointer() { - using A = std::atomic_ref; + using A = std::atomic_ref; static_assert( std::is_standard_layout_v ); static_assert( std::is_nothrow_copy_constructible_v ); static_assert( std::is_trivially_destructible_v ); - static_assert( std::is_same_v ); - static_assert( std::is_same_v ); + static_assert( std::is_same_v> ); + static_assert( std::is_same_v ); static_assert( std::is_nothrow_copy_constructible_v ); static_assert( !std::is_copy_assignable_v ); static_assert( !std::is_move_assignable_v ); } + +int +main() +{ + struct X { int c; }; + test_generic(); + test_generic(); + test_generic(); + test_generic(); + + // atomic_ref excludes (cv) `bool` from the set of integral types + test_generic(); + test_generic(); + test_generic(); + test_generic(); + + test_integral(); + test_integral(); + test_integral(); + test_integral(); + + test_floating_point(); + test_floating_point(); + test_floating_point(); + test_floating_point(); + + test_pointer(); + test_pointer(); + test_pointer(); + test_pointer(); +} diff --git a/libstdc++-v3/testsuite/29_atomics/atomic_ref/requirements_neg.cc b/libstdc++-v3/testsuite/29_atomics/atomic_ref/requirements_neg.cc new file mode 100644 index 000000000000..8b0abbde023f --- /dev/null +++ b/libstdc++-v3/testsuite/29_atomics/atomic_ref/requirements_neg.cc @@ -0,0 +1,34 @@ +// { dg-do compile { target c++20 } } + +#include + +template +struct NonTrivial +{ + NonTrivial() = default; + NonTrivial(NonTrivial const&) { }; +}; + +template +NonTrivial ntv; + +std::atomic_ref> nt(ntv<0>); // { dg-error "here" } +std::atomic_ref> cnt(ntv<1>); // { dg-error "here" } +std::atomic_ref> vnt(ntv<2>); // { dg-error "here" } +std::atomic_ref> cvnt(ntv<3>); // { dg-error "here" } + +template +struct NonLockFree +{ + char c[1024 + N]; +}; + +template +NonLockFree nlfv; + +std::atomic_ref> nlf(nlfv<0>); +std::atomic_ref> cnlf(nlfv<1>); +std::atomic_ref> vnlf(nlfv<2>); // { dg-error "here" } +std::atomic_ref> cvnlf(nlfv<3>); // { dg-error "here" } + +// { dg-error "static assertion failed" "" { target *-*-* } 0 } diff --git a/libstdc++-v3/testsuite/29_atomics/atomic_ref/wait_notify.cc b/libstdc++-v3/testsuite/29_atomics/atomic_ref/wait_notify.cc index ecabeecd5bb3..db20a197ed06 100644 --- a/libstdc++-v3/testsuite/29_atomics/atomic_ref/wait_notify.cc +++ b/libstdc++-v3/testsuite/29_atomics/atomic_ref/wait_notify.cc @@ -41,6 +41,16 @@ template }); a.wait(va); t.join(); + + std::atomic_ref b{ aa }; + b.wait(va); + std::thread t2([&] + { + a.store(va); + a.notify_one(); + }); + b.wait(vb); + t2.join(); } } diff --git a/libstdc++-v3/testsuite/30_threads/thread/id/output.cc b/libstdc++-v3/testsuite/30_threads/thread/id/output.cc index 3d1dd38d998f..c3e0d421d19f 100644 --- a/libstdc++-v3/testsuite/30_threads/thread/id/output.cc +++ b/libstdc++-v3/testsuite/30_threads/thread/id/output.cc @@ -81,7 +81,6 @@ void test02() { #if __cpp_lib_formatters >= 202302 - static_assert( std::is_default_constructible_v> ); std::thread t1([]{}); @@ -155,6 +154,10 @@ test02() #endif } +#if __cplusplus >= 202302L +static_assert(std::enable_nonlocking_formatter_optimization); +#endif + int main() { test01(); diff --git a/libstdc++-v3/testsuite/Makefile.in b/libstdc++-v3/testsuite/Makefile.in index 2e42d470645e..aeb3f716216f 100644 --- a/libstdc++-v3/testsuite/Makefile.in +++ b/libstdc++-v3/testsuite/Makefile.in @@ -91,8 +91,10 @@ target_triplet = @target@ subdir = testsuite ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/../config/acx.m4 \ + $(top_srcdir)/../config/clang-plugin.m4 \ $(top_srcdir)/../config/enable.m4 \ $(top_srcdir)/../config/futex.m4 \ + $(top_srcdir)/../config/gcc-plugin.m4 \ $(top_srcdir)/../config/hwcaps.m4 \ $(top_srcdir)/../config/iconv.m4 \ $(top_srcdir)/../config/lead-dot.m4 \ @@ -222,6 +224,7 @@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LIPO = @LIPO@ +LLVM_CONFIG = @LLVM_CONFIG@ LN_S = @LN_S@ LONG_DOUBLE_128_FLAGS = @LONG_DOUBLE_128_FLAGS@ LONG_DOUBLE_ALT128_COMPAT_FLAGS = @LONG_DOUBLE_ALT128_COMPAT_FLAGS@ diff --git a/libstdc++-v3/testsuite/experimental/memory/shared_ptr/cons/move_ctor.cc b/libstdc++-v3/testsuite/experimental/memory/shared_ptr/cons/move_ctor.cc index f8ce58e4f094..e414b1f3cea0 100644 --- a/libstdc++-v3/testsuite/experimental/memory/shared_ptr/cons/move_ctor.cc +++ b/libstdc++-v3/testsuite/experimental/memory/shared_ptr/cons/move_ctor.cc @@ -106,6 +106,8 @@ test04() { reset_count_struct __attribute__((unused)) reset; + // The std::move here prevents copy elision, so we construct from a prvalue. + // { dg-prune-output "-Wpessimizing-move" } std::experimental::shared_ptr a(std::move(std::experimental ::shared_ptr (new A[5]))); diff --git a/libstdc++-v3/testsuite/ext/unicode/properties.cc b/libstdc++-v3/testsuite/ext/unicode/properties.cc index 50b215e95635..120192d59f5c 100644 --- a/libstdc++-v3/testsuite/ext/unicode/properties.cc +++ b/libstdc++-v3/testsuite/ext/unicode/properties.cc @@ -122,7 +122,7 @@ static_assert( uc::__is_extended_pictographic(U'\N{SOUTH WEST ARROW}') ); static_assert( ! uc::__is_extended_pictographic(U'\N{SOUTH WEST ARROW}' + 1) ); static_assert( uc::__is_extended_pictographic(U'\N{POSTBOX}') ); static_assert( ! uc::__is_extended_pictographic(U'\U0001EFFF') ); -static_assert( uc::__is_extended_pictographic(U'\U0001F000') ); +static_assert( uc::__is_extended_pictographic(U'\U0001F004') ); static_assert( uc::__is_extended_pictographic(U'\U0001FFFD') ); static_assert( ! uc::__is_extended_pictographic(U'\U0001FFFE') ); static_assert( ! uc::__is_extended_pictographic(U'\U0001FFFF') ); diff --git a/libstdc++-v3/testsuite/std/format/formatter/nonlocking.cc b/libstdc++-v3/testsuite/std/format/formatter/nonlocking.cc new file mode 100644 index 000000000000..a726e9d74cee --- /dev/null +++ b/libstdc++-v3/testsuite/std/format/formatter/nonlocking.cc @@ -0,0 +1,59 @@ +// { dg-do compile { target c++23 } } + +#include +#include + +template +struct MyTraits : std::char_traits +{}; + +template +struct MyAlloc : std::allocator +{ + using std::allocator::allocator; +}; + +template +void testCharacters() +{ + static_assert(std::enable_nonlocking_formatter_optimization< + CharT>); + static_assert(std::enable_nonlocking_formatter_optimization< + CharT*>); + static_assert(std::enable_nonlocking_formatter_optimization< + const CharT*>); + static_assert(std::enable_nonlocking_formatter_optimization< + CharT[5]>); + + static_assert(std::enable_nonlocking_formatter_optimization< + std::basic_string>); + static_assert(std::enable_nonlocking_formatter_optimization< + std::basic_string>>); + static_assert(std::enable_nonlocking_formatter_optimization< + std::basic_string, MyAlloc>>); + + static_assert(std::enable_nonlocking_formatter_optimization< + std::basic_string_view>); + static_assert(std::enable_nonlocking_formatter_optimization< + std::basic_string_view>>); +} + +void testAll() +{ + static_assert(std::enable_nonlocking_formatter_optimization< + int>); + static_assert(std::enable_nonlocking_formatter_optimization< + float>); + static_assert(std::enable_nonlocking_formatter_optimization< + void*>); + static_assert(std::enable_nonlocking_formatter_optimization< + const void*>); + static_assert(std::enable_nonlocking_formatter_optimization< + std::nullptr_t>); + + testCharacters(); +#ifdef _GLIBCXX_USE_WCHAR_T + testCharacters(); +#endif // USE_WCHAR_T +} + diff --git a/libstdc++-v3/testsuite/std/format/ranges/adaptors.cc b/libstdc++-v3/testsuite/std/format/ranges/adaptors.cc index a4e2dfb3321e..649eea47f168 100644 --- a/libstdc++-v3/testsuite/std/format/ranges/adaptors.cc +++ b/libstdc++-v3/testsuite/std/format/ranges/adaptors.cc @@ -121,6 +121,15 @@ test_output() // Formatter check if container is formattable, not container elements. static_assert(!std::formattable>, CharT>); + + static_assert(!std::enable_nonlocking_formatter_optimization< + Adaptor>); + static_assert(!std::enable_nonlocking_formatter_optimization< + Adaptor>); + static_assert(!std::enable_nonlocking_formatter_optimization< + Adaptor>>); + static_assert(!std::enable_nonlocking_formatter_optimization< + Adaptor>>); } template> class Adaptor> diff --git a/libstdc++-v3/testsuite/std/format/ranges/formatter.cc b/libstdc++-v3/testsuite/std/format/ranges/formatter.cc index d3e089767bfe..a50c5b1033fb 100644 --- a/libstdc++-v3/testsuite/std/format/ranges/formatter.cc +++ b/libstdc++-v3/testsuite/std/format/ranges/formatter.cc @@ -4,6 +4,7 @@ #include #include #include +#include #define WIDEN_(C, S) ::std::__format::_Widen(S, L##S) #define WIDEN(S) WIDEN_(CharT, S) @@ -145,7 +146,7 @@ struct MyFlatMap : std::flat_map template struct std::formatter - // This cannot apply format BitVector const&, because formatted type would + // We cannot format MyFlatMap const&, because formatted type would // be std::pair, and formatter for // pair cannot format it. : std::range_formatter @@ -161,10 +162,21 @@ void test_const_ref_type_mismatch() template using VectorFormatter = std::formatter, CharT>; +template typename Range> +void test_nonblocking() +{ + static_assert(!std::enable_nonlocking_formatter_optimization< + Range>); +} + int main() { test_outputs(); test_outputs(); test_nested(); test_const_ref_type_mismatch(); + + test_nonblocking(); + test_nonblocking(); + test_nonblocking(); } diff --git a/libstdc++-v3/testsuite/std/format/tuple.cc b/libstdc++-v3/testsuite/std/format/tuple.cc index ba6dae8935b6..eace82730f0a 100644 --- a/libstdc++-v3/testsuite/std/format/tuple.cc +++ b/libstdc++-v3/testsuite/std/format/tuple.cc @@ -341,6 +341,39 @@ void test_padding() VERIFY( check_elems(resv) ); } +struct Custom {}; + +template +struct std::formatter +{ + constexpr std::basic_format_parse_context::iterator + parse(const std::basic_format_parse_context& pc) + { return pc.begin(); } + + template + typename std::basic_format_context::iterator + format(Custom, const std::basic_format_context& fc) const + { return fc.out(); } +}; + +template typename Tuple> +void test_nonblocking() +{ + static_assert(std::enable_nonlocking_formatter_optimization< + Tuple>); + static_assert(std::enable_nonlocking_formatter_optimization< + Tuple>); + static_assert(std::enable_nonlocking_formatter_optimization< + Tuple>); + + static_assert(!std::enable_nonlocking_formatter_optimization< + Tuple>); + static_assert(!std::enable_nonlocking_formatter_optimization< + Tuple>); + static_assert(!std::enable_nonlocking_formatter_optimization< + Tuple>); +} + int main() { test_format_string(); @@ -348,4 +381,7 @@ int main() test_outputs(); test_nested(); test_padding(); + + test_nonblocking(); + test_nonblocking(); } diff --git a/libstdc++-v3/testsuite/std/memory/indirect/copy.cc b/libstdc++-v3/testsuite/std/memory/indirect/copy.cc index 0ac6e92a9213..5ecfbbd898f4 100644 --- a/libstdc++-v3/testsuite/std/memory/indirect/copy.cc +++ b/libstdc++-v3/testsuite/std/memory/indirect/copy.cc @@ -14,7 +14,7 @@ using Vector = std::vector; using Indirect = std::indirect>; const Indirect src(std::in_place, {1, 2, 3}); -constexpr void +void test_ctor() { Counter::reset(); @@ -36,7 +36,7 @@ test_ctor() VERIFY( Counter::get_destruct_count() == 0 ); } -constexpr void +void test_assign() { Indirect i1; @@ -62,7 +62,7 @@ test_assign() VERIFY( Counter::get_destruct_count() == 0 ); } -constexpr void +void test_valueless() { Indirect e; @@ -103,19 +103,54 @@ test_valueless() } constexpr void -test_all() +test_constexpr() { - test_ctor(); - test_assign(); - test_valueless(); + using Alloc = __gnu_test::uneq_allocator; + using Indirect = std::indirect; + const Indirect src(std::in_place, {1, 2, 3}); + + Indirect i1(src); + VERIFY( *i1 == *src ); + VERIFY( &*i1 != &*src ); + VERIFY( i1.get_allocator() == Alloc{} ); + + Indirect i2(std::allocator_arg, Alloc{2}, src); + VERIFY( *i2 == *src ); + VERIFY( &*i2 != &*src ); + VERIFY( i2.get_allocator() == Alloc{2} ); + + Indirect i3(std::allocator_arg, Alloc{3}); + i3 = src; + VERIFY( *i3 == *src ); + VERIFY( &*i3 != &*src ); + VERIFY( i3.get_allocator() == Alloc{3} ); + + Indirect e; + auto(std::move(e)); + VERIFY( e.valueless_after_move() ); + + Indirect e1(e); + VERIFY( e1.valueless_after_move() ); + + Indirect e2(std::allocator_arg, {}, e); + VERIFY( e2.valueless_after_move() ); + + i3 = e; + VERIFY( i3.valueless_after_move() ); + + i3 = e; + VERIFY( i3.valueless_after_move() ); } int main() { - test_all(); + test_ctor(); + test_assign(); + test_valueless(); + test_constexpr(); static_assert([] { - test_all(); + test_constexpr(); return true; - }); + }()); } diff --git a/libstdc++-v3/testsuite/std/memory/indirect/copy_alloc.cc b/libstdc++-v3/testsuite/std/memory/indirect/copy_alloc.cc index d5865b9a580d..e48855a0eac5 100644 --- a/libstdc++-v3/testsuite/std/memory/indirect/copy_alloc.cc +++ b/libstdc++-v3/testsuite/std/memory/indirect/copy_alloc.cc @@ -13,7 +13,7 @@ using __gnu_test::tracker_allocator; using Counter = __gnu_test::tracker_allocator_counter; template -constexpr void +void test_ctor() { using PropAlloc = propagating_allocator; @@ -59,7 +59,7 @@ test_ctor() } template -constexpr void +void test_assign() { using PropAlloc = propagating_allocator; @@ -144,7 +144,7 @@ test_assign() } template -constexpr void +void test_valueless() { using PropAlloc = propagating_allocator; @@ -219,10 +219,4 @@ int main() { test_all(); test_all(); - - static_assert([] { - test_all(); - test_all(); - return true; - }); } diff --git a/libstdc++-v3/testsuite/std/memory/indirect/ctor.cc b/libstdc++-v3/testsuite/std/memory/indirect/ctor.cc index 124874d02fe6..dfd9341582f5 100644 --- a/libstdc++-v3/testsuite/std/memory/indirect/ctor.cc +++ b/libstdc++-v3/testsuite/std/memory/indirect/ctor.cc @@ -58,6 +58,9 @@ test_default_ctor() std::indirect> i2(std::allocator_arg, a); VERIFY( i2.get_allocator() == a ); + if (std::is_constant_evaluated()) + return; + // Object is constructed using allocator-aware constructor. std::indirect, ScopedAlloc> i3(std::allocator_arg, ScopedAlloc(11, 22)); @@ -93,6 +96,9 @@ test_forwarding_ctor() std::indirect i6(7); VERIFY( i6->i == 7 ); + if (std::is_constant_evaluated()) + return; + std::vector v{1, 2, 3, 4, 5}; // Object is constructed using allocator-aware constructor. std::indirect, ScopedAlloc> @@ -165,6 +171,9 @@ test_inplace_ctor() VERIFY( i10->at(2) == 3 ); VERIFY( i10->get_allocator().get_personality() == 42 ); + if (std::is_constant_evaluated()) + return; + std::indirect, ScopedAlloc> i14(std::allocator_arg, ScopedAlloc(11, 22), std::in_place); @@ -200,5 +209,5 @@ int main() test_forwarding_ctor(); test_inplace_ctor(); return true; - }); + }()); } diff --git a/libstdc++-v3/testsuite/std/memory/indirect/move.cc b/libstdc++-v3/testsuite/std/memory/indirect/move.cc index 6e87c60adb0d..9800f7fd1a79 100644 --- a/libstdc++-v3/testsuite/std/memory/indirect/move.cc +++ b/libstdc++-v3/testsuite/std/memory/indirect/move.cc @@ -15,7 +15,7 @@ using Vector = std::vector; using Indirect = std::indirect>; const Indirect val(std::in_place, {1, 2, 3}); -constexpr void +void verifyNoAllocations() { VERIFY( Counter::get_allocation_count() == 0 ); @@ -24,7 +24,7 @@ verifyNoAllocations() VERIFY( Counter::get_destruct_count() == 0 ); } -constexpr void +void test_ctor() { std::optional src; @@ -45,7 +45,7 @@ test_ctor() verifyNoAllocations(); } -constexpr void +void test_assign() { std::optional src; @@ -72,7 +72,7 @@ test_assign() verifyNoAllocations(); } -constexpr void +void test_swap() { const Indirect val1(std::in_place, {1, 2, 3}); @@ -87,7 +87,7 @@ test_swap() verifyNoAllocations(); auto(std::move(i1)); - + Counter::reset(); i1.swap(i2); VERIFY( *i1 == *val1 ); @@ -95,7 +95,7 @@ test_swap() verifyNoAllocations(); } -constexpr void +void test_valueless() { auto e = [] { @@ -125,20 +125,77 @@ test_valueless() } constexpr void -test_all() +test_constexpr() { - test_ctor(); - test_assign(); - test_swap(); - test_valueless(); + using Alloc = __gnu_test::uneq_allocator; + using Indirect = std::indirect; + const Indirect val(std::in_place, {1, 2, 3}); + + std::optional src; + auto make = [&src, &val] -> Indirect&& { + src.emplace(val); + return std::move(*src); + }; + + Indirect i1(make()); + VERIFY( src->valueless_after_move() ); + VERIFY( *i1 == *val ); + + Indirect i2(std::allocator_arg, {}, make()); + VERIFY( src->valueless_after_move() ); + VERIFY( *i2 == *val ); + + i2 = make(); + VERIFY( src->valueless_after_move() ); + VERIFY( *i2 == *val ); + + auto(std::move(i2)); + i2 = make(); + VERIFY( *i2 == *val ); + VERIFY( src->valueless_after_move() ); + + const Indirect val1(std::in_place, {1, 2, 3}); + const Indirect val2(std::in_place, {2, 4, 6}); + + Indirect s1(val1); + Indirect s2(val2); + s1.swap(s2); + VERIFY( *s2 == *val1 ); + VERIFY( *s1 == *val2 ); + + auto(std::move(s1)); + + s1.swap(s2); + VERIFY( *s1 == *val1 ); + VERIFY( s2.valueless_after_move() ); + + auto e = [] { + Indirect res; + auto(std::move(res)); + return res; + }; + + Indirect e1(e()); + VERIFY( e1.valueless_after_move() ); + + Indirect e2(std::allocator_arg, {}, e()); + VERIFY( e2.valueless_after_move() ); + + Indirect e3(val); + e3 = e(); + e3 = e(); } int main() { - test_all(); + test_ctor(); + test_assign(); + test_swap(); + test_valueless(); + test_constexpr(); static_assert([] { - test_all(); + test_constexpr(); return true; - }); + }()); } diff --git a/libstdc++-v3/testsuite/std/memory/indirect/move_alloc.cc b/libstdc++-v3/testsuite/std/memory/indirect/move_alloc.cc index cd6f90dcdc56..cf35e83310f7 100644 --- a/libstdc++-v3/testsuite/std/memory/indirect/move_alloc.cc +++ b/libstdc++-v3/testsuite/std/memory/indirect/move_alloc.cc @@ -13,7 +13,7 @@ using __gnu_test::propagating_allocator; using __gnu_test::tracker_allocator; using Counter = __gnu_test::tracker_allocator_counter; -constexpr void +void verifyNoAllocations() { VERIFY( Counter::get_allocation_count() == 0 ); @@ -23,7 +23,7 @@ verifyNoAllocations() } template -constexpr void +void test_ctor() { using PropAlloc = propagating_allocator; @@ -68,7 +68,7 @@ test_ctor() } template -constexpr void +void test_assign() { using PropAlloc = propagating_allocator; @@ -159,7 +159,7 @@ test_assign() } template -constexpr void +void test_swap() { using PropAlloc = propagating_allocator; @@ -212,7 +212,7 @@ test_swap() } template -constexpr void +void test_valueless() { using PropAlloc = propagating_allocator; @@ -274,7 +274,7 @@ test_valueless() } template -constexpr void +void test_all() { test_ctor(); @@ -287,10 +287,4 @@ int main() { test_all(); test_all(); - - static_assert([] { - test_all(); - test_all(); - return true; - }); } diff --git a/libstdc++-v3/testsuite/std/memory/indirect/relops.cc b/libstdc++-v3/testsuite/std/memory/indirect/relops.cc index d77fef2a4306..77d599c80861 100644 --- a/libstdc++-v3/testsuite/std/memory/indirect/relops.cc +++ b/libstdc++-v3/testsuite/std/memory/indirect/relops.cc @@ -78,5 +78,5 @@ int main() test_relops(); test_comp_with_t(); return true; - }); + }()); } diff --git a/libstdc++-v3/testsuite/std/memory/polymorphic/copy.cc b/libstdc++-v3/testsuite/std/memory/polymorphic/copy.cc index bea05acfcab7..34c78220e320 100644 --- a/libstdc++-v3/testsuite/std/memory/polymorphic/copy.cc +++ b/libstdc++-v3/testsuite/std/memory/polymorphic/copy.cc @@ -44,14 +44,14 @@ struct Derived : Base using __gnu_test::tracker_allocator; using Counter = __gnu_test::tracker_allocator_counter; -using Polymorhic = std::polymorphic>; -const Polymorhic src(std::in_place_type, 1, 2, 3); +using Polymorphic = std::polymorphic>; +const Polymorphic src(std::in_place_type, 1, 2, 3); -constexpr void +void test_ctor() { Counter::reset(); - Polymorhic i1(src); + Polymorphic i1(src); VERIFY( *i1 == *src ); VERIFY( &*i1 != &*src ); VERIFY( Counter::get_allocation_count() >= sizeof(Derived) ); @@ -60,7 +60,7 @@ test_ctor() VERIFY( Counter::get_destruct_count() == 0 ); Counter::reset(); - Polymorhic i2(std::allocator_arg, {}, src); + Polymorphic i2(std::allocator_arg, {}, src); VERIFY( *i2 == *src ); VERIFY( &*i2 != &*src ); VERIFY( Counter::get_allocation_count() >= sizeof(Derived) ); @@ -69,11 +69,11 @@ test_ctor() VERIFY( Counter::get_destruct_count() == 0 ); } -constexpr void +void test_assign() { Counter::reset(); - Polymorhic i1(std::in_place_type); + Polymorphic i1(std::in_place_type); const size_t holderSize = Counter::get_allocation_count(); VERIFY( holderSize >= sizeof(Derived) ); Counter::reset(); @@ -98,29 +98,29 @@ test_assign() VERIFY( Counter::get_destruct_count() == 0 ); } -constexpr void +void test_valueless() { - Polymorhic e(std::in_place_type); + Polymorphic e(std::in_place_type); auto(std::move(e)); VERIFY( e.valueless_after_move() ); Counter::reset(); - Polymorhic i1(e); + Polymorphic i1(e); VERIFY( i1.valueless_after_move() ); VERIFY( Counter::get_allocation_count() == 0 ); VERIFY( Counter::get_deallocation_count() == 0 ); VERIFY( Counter::get_construct_count() == 0 ); VERIFY( Counter::get_destruct_count() == 0 ); - Polymorhic i2(std::allocator_arg, {}, e); + Polymorphic i2(std::allocator_arg, {}, e); VERIFY( i2.valueless_after_move() ); VERIFY( Counter::get_allocation_count() == 0 ); VERIFY( Counter::get_deallocation_count() == 0 ); VERIFY( Counter::get_construct_count() == 0 ); VERIFY( Counter::get_destruct_count() == 0 ); - Polymorhic i3(src); + Polymorphic i3(src); Counter::reset(); i3 = e; VERIFY( i3.valueless_after_move() ); @@ -139,19 +139,54 @@ test_valueless() } constexpr void -test_all() +test_constexpr() { - test_ctor(); - test_assign(); - test_valueless(); + using Polymorphic = std::polymorphic>; + const Polymorphic src(std::in_place_type, 1, 2, 3); + + Polymorphic i1(src); + VERIFY( *i1 == *src ); + VERIFY( &*i1 != &*src ); + + Polymorphic i2(std::allocator_arg, {}, src); + VERIFY( *i2 == *src ); + VERIFY( &*i2 != &*src ); + + i1 = Polymorphic(std::in_place_type); + VERIFY( *i1 != *src ); + i1 = src; + VERIFY( *i1 == *src ); + VERIFY( &*i1 != &*src ); + + auto(std::move(i1)); + i1 = src; + VERIFY( *i1 == *src ); + VERIFY( &*i1 != &*src ); + + Polymorphic e(std::in_place_type); + auto(std::move(e)); + VERIFY( e.valueless_after_move() ); + + Polymorphic e1(e); + VERIFY( e1.valueless_after_move() ); + + Polymorphic e2(std::allocator_arg, {}, e); + VERIFY( e2.valueless_after_move() ); + + Polymorphic e3(src); + e3 = e; + VERIFY( e3.valueless_after_move() ); } int main() { - test_all(); + test_ctor(); + test_assign(); + test_valueless(); + test_constexpr(); static_assert([] { - test_all(); + test_constexpr(); return true; - }); + }()); } diff --git a/libstdc++-v3/testsuite/std/memory/polymorphic/copy_alloc.cc b/libstdc++-v3/testsuite/std/memory/polymorphic/copy_alloc.cc index f41c32e1e1de..f149fc860e02 100644 --- a/libstdc++-v3/testsuite/std/memory/polymorphic/copy_alloc.cc +++ b/libstdc++-v3/testsuite/std/memory/polymorphic/copy_alloc.cc @@ -9,16 +9,16 @@ #include struct Base { - friend constexpr + friend bool operator==(const Base& lhs, const Base& rhs) { return lhs.eq(rhs); } - virtual constexpr int + virtual int get_alloc_personality() const { return -1; } private: - constexpr virtual bool + virtual bool eq(const Base& other) const = 0; }; @@ -29,13 +29,13 @@ struct VecDerived : Base, std::vector using VecBase::VecBase; - constexpr int + int get_alloc_personality() const override { return this->get_allocator().get_personality(); } private: - constexpr bool + bool eq(const Base& other) const override { if (auto op = dynamic_cast(&other)) @@ -50,7 +50,7 @@ using __gnu_test::tracker_allocator; using Counter = __gnu_test::tracker_allocator_counter; template -constexpr void +void test_ctor() { using PropAlloc = propagating_allocator; @@ -96,7 +96,7 @@ test_ctor() } template -constexpr void +void test_assign() { using PropAlloc = propagating_allocator; @@ -185,7 +185,7 @@ test_assign() } template -constexpr void +void test_valueless() { using PropAlloc = propagating_allocator; @@ -249,7 +249,7 @@ test_valueless() } template -constexpr void +void test_all() { test_ctor(); @@ -261,10 +261,4 @@ int main() { test_all(); test_all(); - - static_assert([] { - test_all(); - test_all(); - return true; - }); } diff --git a/libstdc++-v3/testsuite/std/memory/polymorphic/ctor.cc b/libstdc++-v3/testsuite/std/memory/polymorphic/ctor.cc index bb4c947285e7..4d043db0ea4a 100644 --- a/libstdc++-v3/testsuite/std/memory/polymorphic/ctor.cc +++ b/libstdc++-v3/testsuite/std/memory/polymorphic/ctor.cc @@ -45,6 +45,9 @@ test_default_ctor() std::polymorphic> i2(std::allocator_arg, a); VERIFY( i2.get_allocator() == a ); + if (std::is_constant_evaluated()) + return; + // Object is constructed using allocator-aware constructor. std::polymorphic, ScopedAlloc> i3(std::allocator_arg, ScopedAlloc(11, 22)); @@ -76,6 +79,9 @@ test_forwarding_ctor() std::polymorphic i5({1, {'2', '3'}}); verify(i5); + if (std::is_constant_evaluated()) + return; + std::vector v{1, 2, 3, 4, 5}; // Object is constructed using allocator-aware constructor. std::polymorphic, ScopedAlloc> @@ -151,6 +157,9 @@ test_inplace_ctor() VERIFY( i10->at(2) == 3 ); VERIFY( i10->get_allocator().get_personality() == 42 ); + if (std::is_constant_evaluated()) + return; + std::polymorphic, ScopedAlloc> i14(std::allocator_arg, ScopedAlloc(11, 22), std::in_place_type>); @@ -186,5 +195,5 @@ int main() test_forwarding_ctor(); test_inplace_ctor(); return true; - }); + }()); } diff --git a/libstdc++-v3/testsuite/std/memory/polymorphic/ctor_poly.cc b/libstdc++-v3/testsuite/std/memory/polymorphic/ctor_poly.cc index 03519a1db004..cb18031a9037 100644 --- a/libstdc++-v3/testsuite/std/memory/polymorphic/ctor_poly.cc +++ b/libstdc++-v3/testsuite/std/memory/polymorphic/ctor_poly.cc @@ -126,6 +126,9 @@ test_forwarding_ctor() VERIFY( *i4 == src ); VERIFY( i4->get_personality() == -2 ); + if (std::is_constant_evaluated()) + return; + const VecDerived v{1, 2, 3, 4, 5}; // Object is constructed using allocator-aware constructor. std::polymorphic @@ -183,6 +186,9 @@ test_inplace_ctor() VERIFY( *i7 == il ); VERIFY( i7->get_personality() == 42 ); + if (std::is_constant_evaluated()) + return; + std::polymorphic i8(std::allocator_arg, ScopedAlloc(11, 22), std::in_place_type>); @@ -216,5 +222,5 @@ int main() test_forwarding_ctor(); test_inplace_ctor(); return true; - }); + }()); } diff --git a/libstdc++-v3/testsuite/std/memory/polymorphic/move.cc b/libstdc++-v3/testsuite/std/memory/polymorphic/move.cc index c80215983b6c..97e598e69220 100644 --- a/libstdc++-v3/testsuite/std/memory/polymorphic/move.cc +++ b/libstdc++-v3/testsuite/std/memory/polymorphic/move.cc @@ -48,7 +48,7 @@ using Counter = __gnu_test::tracker_allocator_counter; using Polymorphic = std::polymorphic>; const Polymorphic val(std::in_place_type, 1, 2, 3); -constexpr void +void verifyNoAllocations() { VERIFY( Counter::get_allocation_count() == 0 ); @@ -57,7 +57,7 @@ verifyNoAllocations() VERIFY( Counter::get_destruct_count() == 0 ); } -constexpr void +void test_ctor() { std::optional src; @@ -78,7 +78,7 @@ test_ctor() verifyNoAllocations(); } -constexpr void +void test_assign() { std::optional src; @@ -105,7 +105,7 @@ test_assign() verifyNoAllocations(); } -constexpr void +void test_swap() { const Polymorphic val1(std::in_place_type, 1, 2, 3); @@ -128,7 +128,7 @@ test_swap() verifyNoAllocations(); } -constexpr void +void test_valueless() { auto e = [] { @@ -158,20 +158,75 @@ test_valueless() } constexpr void -test_all() +test_constexpr() { - test_ctor(); - test_assign(); - test_swap(); - test_valueless(); + using Polymorphic = std::polymorphic>; + const Polymorphic val(std::in_place_type, 1, 2, 3); + + std::optional src; + auto make = [&src, &val] -> Polymorphic&& { + src.emplace(val); + return std::move(*src); + }; + + Polymorphic i1(make()); + VERIFY( src->valueless_after_move() ); + VERIFY( *i1 == *val ); + + Polymorphic i2(std::allocator_arg, {}, make()); + VERIFY( src->valueless_after_move() ); + VERIFY( *i2 == *val ); + + i1 = make(); + VERIFY( src->valueless_after_move() ); + VERIFY( *i1 == *val ); + + auto(std::move(i1)); + i1 = make(); + VERIFY( *i1 == *val ); + VERIFY( src->valueless_after_move() ); + + const Polymorphic val1(std::in_place_type, 1, 2, 3); + const Polymorphic val2(std::in_place_type, 2, 4, 6); + + Polymorphic s1(val1); + Polymorphic s2(val2); + s1.swap(s2); + VERIFY( *s2 == *val1 ); + VERIFY( *s1 == *val2 ); + + auto(std::move(s1)); + s1.swap(s2); + VERIFY( *s1 == *val1 ); + VERIFY( s2.valueless_after_move() ); + + auto e = [] { + Polymorphic res(std::in_place_type); + auto(std::move(res)); + return res; + }; + + Polymorphic e1(e()); + VERIFY( e1.valueless_after_move() ); + + Polymorphic e2(std::allocator_arg, {}, e()); + VERIFY( e2.valueless_after_move() ); + + Polymorphic e3(val); + e3 = e(); + e3 = e(); } int main() { - test_all(); + test_ctor(); + test_assign(); + test_swap(); + test_valueless(); + test_constexpr(); static_assert([] { - test_all(); + test_constexpr(); return true; - }); + }()); } diff --git a/libstdc++-v3/testsuite/std/memory/polymorphic/move_alloc.cc b/libstdc++-v3/testsuite/std/memory/polymorphic/move_alloc.cc index 09afedb78848..490bffb8c392 100644 --- a/libstdc++-v3/testsuite/std/memory/polymorphic/move_alloc.cc +++ b/libstdc++-v3/testsuite/std/memory/polymorphic/move_alloc.cc @@ -50,7 +50,7 @@ using __gnu_test::propagating_allocator; using __gnu_test::tracker_allocator; using Counter = __gnu_test::tracker_allocator_counter; -constexpr void +void verifyNoAllocations() { VERIFY( Counter::get_allocation_count() == 0 ); @@ -60,7 +60,7 @@ verifyNoAllocations() } template -constexpr void +void test_ctor() { using PropAlloc = propagating_allocator; @@ -105,7 +105,7 @@ test_ctor() } template -constexpr void +void test_assign() { using PropAlloc = propagating_allocator; @@ -201,7 +201,7 @@ test_assign() } template -constexpr void +void test_swap() { using PropAlloc = propagating_allocator; @@ -254,7 +254,7 @@ test_swap() } template -constexpr void +void test_valueless() { using PropAlloc = propagating_allocator; @@ -317,7 +317,7 @@ test_valueless() } template -constexpr void +void test_all() { test_ctor(); @@ -330,10 +330,4 @@ int main() { test_all(); test_all(); - - static_assert([] { - test_all(); - test_all(); - return true; - }); } diff --git a/libstdc++-v3/testsuite/std/time/format/custom_rep.h b/libstdc++-v3/testsuite/std/time/format/custom_rep.h new file mode 100644 index 000000000000..8363eaafebcc --- /dev/null +++ b/libstdc++-v3/testsuite/std/time/format/custom_rep.h @@ -0,0 +1,92 @@ +#include +#include + +#define WIDEN_(C, S) ::std::__format::_Widen(S, L##S) +#define WIDEN(S) WIDEN_(CharT, S) + +template +struct Rep +{ + using Return + = std::conditional_t, Rep, Ret>; + + Rep(Under v = 0) : val(v) {} + + template + Rep(Rep o) : val(o.val) {} + + operator Under() const + { return val; } + + Return + operator+() const + { return val; } + + Rep + operator-() const + { return -val; } + + friend Rep + operator+(Rep lhs, Rep rhs) + { return lhs.val + rhs.val; } + + friend Rep + operator-(Rep lhs, Rep rhs) + { return lhs.val - rhs.val; } + + friend Rep + operator*(Rep lhs, Rep rhs) + { return lhs.val * rhs.val; } + + friend Rep + operator/(Rep lhs, Rep rhs) + { return lhs.val / rhs.val; } + + friend auto operator<=>(Rep, Rep) = default; + + template + friend std::basic_ostream& + operator<<(std::basic_ostream& os, const Rep& t) + { return os << t.val << WIDEN("[via <<]"); } + + Under val; +}; + +template +struct std::common_type, Rep> +{ + using type = Rep>; +}; + +template + requires std::is_integral_v +struct std::common_type, Other> +{ + using type = Rep>; +}; + +template + requires std::is_integral_v +struct std::common_type> + : std::common_type, Other> +{ }; + +template +struct std::numeric_limits> + : std::numeric_limits +{ }; + +template +struct std::formatter, CharT> + : std::formatter +{ + template + typename std::basic_format_context::iterator + format(const Rep& t, std::basic_format_context& ctx) const + { + constexpr std::basic_string_view suffix = WIDEN("[via format]"); + auto out = std::formatter::format(t.val, ctx); + return std::ranges::copy(suffix, out).out; + } +}; + diff --git a/libstdc++-v3/testsuite/std/time/format/empty_spec.cc b/libstdc++-v3/testsuite/std/time/format/empty_spec.cc index a20c074018e8..b84f84a3069f 100644 --- a/libstdc++-v3/testsuite/std/time/format/empty_spec.cc +++ b/libstdc++-v3/testsuite/std/time/format/empty_spec.cc @@ -6,11 +6,10 @@ #include #include #include +#include "custom_rep.h" using namespace std::chrono; -#define WIDEN_(C, S) ::std::__format::_Widen(S, L##S) -#define WIDEN(S) WIDEN_(CharT, S) template void @@ -77,92 +76,6 @@ test_padding() VERIFY( res == WIDEN("==16 is not a valid month==") ); } -template -struct Rep -{ - using Return - = std::conditional_t, Rep, Ret>; - - Rep(Under v = 0) : val(v) {} - - template - Rep(Rep o) : val(o.val) {} - - operator Under() const - { return val; } - - Return - operator+() const - { return val; } - - Rep - operator-() const - { return -val; } - - friend Rep - operator+(Rep lhs, Rep rhs) - { return lhs.val + rhs.val; } - - friend Rep - operator-(Rep lhs, Rep rhs) - { return lhs.val - rhs.val; } - - friend Rep - operator*(Rep lhs, Rep rhs) - { return lhs.val * rhs.val; } - - friend Rep - operator/(Rep lhs, Rep rhs) - { return lhs.val / rhs.val; } - - friend auto operator<=>(Rep, Rep) = default; - - template - friend std::basic_ostream& - operator<<(std::basic_ostream& os, const Rep& t) - { return os << t.val << WIDEN("[via <<]"); } - - Under val; -}; - -template -struct std::common_type, Rep> -{ - using type = Rep>; -}; - -template - requires std::is_integral_v -struct std::common_type, Other> -{ - using type = Rep>; -}; - -template - requires std::is_integral_v -struct std::common_type> - : std::common_type, Other> -{ }; - -template -struct std::numeric_limits> - : std::numeric_limits -{ }; - -template -struct std::formatter, CharT> - : std::formatter -{ - template - typename std::basic_format_context::iterator - format(const Rep& t, std::basic_format_context& ctx) const - { - constexpr std::basic_string_view suffix = WIDEN("[via format]"); - auto out = std::formatter::format(t.val, ctx); - return std::ranges::copy(suffix, out).out; - } -}; - using deciseconds = duration; template diff --git a/libstdc++-v3/testsuite/std/time/format/format.cc b/libstdc++-v3/testsuite/std/time/format/format.cc index 00affb9e11a3..d1aee053acd4 100644 --- a/libstdc++-v3/testsuite/std/time/format/format.cc +++ b/libstdc++-v3/testsuite/std/time/format/format.cc @@ -2,6 +2,7 @@ // { dg-timeout-factor 2 } #include +#include #include void diff --git a/libstdc++-v3/testsuite/std/time/format/nonlocking.cc b/libstdc++-v3/testsuite/std/time/format/nonlocking.cc new file mode 100644 index 000000000000..f1b57b5a3485 --- /dev/null +++ b/libstdc++-v3/testsuite/std/time/format/nonlocking.cc @@ -0,0 +1,164 @@ +// { dg-do compile { target c++23 } } + +#include +#include +#include "custom_rep.h" + +static_assert(std::enable_nonlocking_formatter_optimization< + std::chrono::day>); +static_assert(std::enable_nonlocking_formatter_optimization< + std::chrono::month>); +static_assert(std::enable_nonlocking_formatter_optimization< + std::chrono::year>); +static_assert(std::enable_nonlocking_formatter_optimization< + std::chrono::weekday>); +static_assert(std::enable_nonlocking_formatter_optimization< + std::chrono::weekday_indexed>); +static_assert(std::enable_nonlocking_formatter_optimization< + std::chrono::weekday_last>); +static_assert(std::enable_nonlocking_formatter_optimization< + std::chrono::month_day>); +static_assert(std::enable_nonlocking_formatter_optimization< + std::chrono::month_day_last>); +static_assert(std::enable_nonlocking_formatter_optimization< + std::chrono::month_weekday>); +static_assert(std::enable_nonlocking_formatter_optimization< + std::chrono::month_weekday_last>); +static_assert(std::enable_nonlocking_formatter_optimization< + std::chrono::year_month>); +static_assert(std::enable_nonlocking_formatter_optimization< + std::chrono::year_month_day>); +static_assert(std::enable_nonlocking_formatter_optimization< + std::chrono::year_month_day_last>); +static_assert(std::enable_nonlocking_formatter_optimization< + std::chrono::year_month_weekday>); +static_assert(std::enable_nonlocking_formatter_optimization< + std::chrono::year_month_weekday_last>); + +#if _GLIBCXX_USE_CXX11_ABI || !_GLIBCXX_USE_DUAL_ABI +static_assert(std::enable_nonlocking_formatter_optimization< + std::chrono::local_info>); +static_assert(std::enable_nonlocking_formatter_optimization< + std::chrono::sys_info>); +#endif + +template +using local_time_fmt + = decltype(std::chrono::local_time_format(std::chrono::local_time{})); + +static_assert(std::enable_nonlocking_formatter_optimization< + std::chrono::seconds>); +static_assert(std::enable_nonlocking_formatter_optimization< + std::chrono::duration>); +static_assert(std::enable_nonlocking_formatter_optimization< + std::chrono::duration>); +static_assert(std::enable_nonlocking_formatter_optimization< + std::chrono::local_time>); +static_assert(std::enable_nonlocking_formatter_optimization< + std::chrono::sys_time>); +static_assert(std::enable_nonlocking_formatter_optimization< + std::chrono::utc_time>); +static_assert(std::enable_nonlocking_formatter_optimization< + std::chrono::gps_time>); +static_assert(std::enable_nonlocking_formatter_optimization< + std::chrono::tai_time>); +static_assert(std::enable_nonlocking_formatter_optimization< + std::chrono::file_time>); +static_assert(std::enable_nonlocking_formatter_optimization< + local_time_fmt>); + +using BufferedDuration = std::chrono::duration>; + +static_assert(!std::enable_nonlocking_formatter_optimization< + BufferedDuration>); +static_assert(!std::enable_nonlocking_formatter_optimization< + std::chrono::local_time>); +static_assert(!std::enable_nonlocking_formatter_optimization< + std::chrono::sys_time>); +static_assert(!std::enable_nonlocking_formatter_optimization< + std::chrono::utc_time>); +static_assert(!std::enable_nonlocking_formatter_optimization< + std::chrono::gps_time>); +static_assert(!std::enable_nonlocking_formatter_optimization< + std::chrono::tai_time>); +static_assert(!std::enable_nonlocking_formatter_optimization< + std::chrono::file_time>); +static_assert(!std::enable_nonlocking_formatter_optimization< + local_time_fmt>); + +template<> +inline constexpr bool + std::enable_nonlocking_formatter_optimization> = true; + +using NonBufferedRep = std::chrono::duration>; + +static_assert(!std::enable_nonlocking_formatter_optimization< + NonBufferedRep>); +static_assert(!std::enable_nonlocking_formatter_optimization< + std::chrono::local_time>); +static_assert(!std::enable_nonlocking_formatter_optimization< + std::chrono::sys_time>); +static_assert(!std::enable_nonlocking_formatter_optimization< + std::chrono::utc_time>); +static_assert(!std::enable_nonlocking_formatter_optimization< + std::chrono::gps_time>); +static_assert(!std::enable_nonlocking_formatter_optimization< + std::chrono::tai_time>); +static_assert(!std::enable_nonlocking_formatter_optimization< + std::chrono::file_time>); +static_assert(!std::enable_nonlocking_formatter_optimization< + local_time_fmt>); + +using NonBufferedDuration = std::chrono::duration>; + +template<> +inline constexpr bool + std::enable_nonlocking_formatter_optimization = true; + +static_assert(std::enable_nonlocking_formatter_optimization< + NonBufferedDuration>); +static_assert(std::enable_nonlocking_formatter_optimization< + std::chrono::local_time>); +static_assert(std::enable_nonlocking_formatter_optimization< + std::chrono::sys_time>); +static_assert(std::enable_nonlocking_formatter_optimization< + std::chrono::utc_time>); +static_assert(std::enable_nonlocking_formatter_optimization< + std::chrono::gps_time>); +static_assert(std::enable_nonlocking_formatter_optimization< + std::chrono::tai_time>); +static_assert(std::enable_nonlocking_formatter_optimization< + std::chrono::file_time>); +static_assert(std::enable_nonlocking_formatter_optimization< + local_time_fmt>); + +#if _GLIBCXX_USE_CXX11_ABI || !_GLIBCXX_USE_DUAL_ABI +static_assert(std::enable_nonlocking_formatter_optimization< + std::chrono::zoned_time>); +static_assert(!std::enable_nonlocking_formatter_optimization< + std::chrono::zoned_time>); +static_assert(!std::enable_nonlocking_formatter_optimization< + std::chrono::zoned_time>); +static_assert(std::enable_nonlocking_formatter_optimization< + std::chrono::zoned_time>); + +struct MyTimeZone : std::chrono::time_zone +{}; + +template<> +struct std::chrono::zoned_traits +{ + static const MyTimeZone* default_zone(); + static const MyTimeZone* locate_zone(std::string_view name); +}; + +static_assert(!std::enable_nonlocking_formatter_optimization< + std::chrono::zoned_time>); +static_assert(!std::enable_nonlocking_formatter_optimization< + std::chrono::zoned_time>); +static_assert(!std::enable_nonlocking_formatter_optimization< + std::chrono::zoned_time>); +static_assert(!std::enable_nonlocking_formatter_optimization< + std::chrono::zoned_time>); +#endif + diff --git a/libstdc++-v3/testsuite/std/time/parse/parse.cc b/libstdc++-v3/testsuite/std/time/parse/parse.cc index 8bb0fd0bebab..78c761c115f6 100644 --- a/libstdc++-v3/testsuite/std/time/parse/parse.cc +++ b/libstdc++-v3/testsuite/std/time/parse/parse.cc @@ -309,7 +309,7 @@ test_modifiers() is >> parse("%5M", min); VERIFY( is.eof() && is.fail() ); - std::chrono::seconds s; + std::chrono::seconds s{}; is.clear(); is.str("000000000012345"); is >> parse("%12S", s); // Read more than 10 digits to check overflow logic. diff --git a/libstdc++-v3/testsuite/std/time/year_month_day_last/io.cc b/libstdc++-v3/testsuite/std/time/year_month_day_last/io.cc index 3241536a2e64..de4f24795572 100644 --- a/libstdc++-v3/testsuite/std/time/year_month_day_last/io.cc +++ b/libstdc++-v3/testsuite/std/time/year_month_day_last/io.cc @@ -22,9 +22,88 @@ test_ostream() VERIFY( ss.str() == "2023/juil./last" ); } +void +test_format() +{ + using namespace std::chrono; + + std::string s = std::format("{:%Y%t%C%%%y%n%j %b %a}", 2024y/January/last); + VERIFY( s == "2024\t20%24\n031 Jan Wed" ); + std::wstring ws = std::format(L"{:%Y%t%C%%%y%n%j %b %a}", 2024y/December/last); + VERIFY( ws == L"2024\t20%24\n366 Dec Tue" ); + + s = std::format("{0:%Y-%m-%d} {0}", 2023y/May/last); + VERIFY( s == "2023-05-31 2023/May/last" ); + s = std::format("{0:%Y-%m-%d} {0}", 2023y/month(13)/last); + VERIFY( s == "2023-13-30 2023/13 is not a valid month/last" ); + + s = std::format("{:%Y-%m-%d %j}", 2024y/February/last); + VERIFY( s == "2024-02-29 060" ); + s = std::format("{:%Y-%m-%d %j}", 2023y/February/last); + VERIFY( s == "2023-02-28 059" ); + s = std::format("{:%Y-%m-%d %j}", 2024y/September/last); + VERIFY( s == "2024-09-30 274" ); + + // %U: Week number for weeks starting on Sunday + s = std::format("{:%Y-U%U}", 2023y/January/last); + VERIFY( s == "2023-U05" ); + s = std::format("{:%Y-U%U}", 2023y/December/last); + VERIFY( s == "2023-U53" ); + // %W: Week number for weeks starting on Monday + s = std::format("{:%Y-W%W}", 2023y/January/last); + VERIFY( s == "2023-W05" ); + s = std::format("{:%Y-W%W}", 2023y/December/last); + VERIFY( s == "2023-W52" ); + + // %G: ISO week-calendar year (ISO 8601) + // %V: ISO week number (ISO 8601). + s = std::format("{:%G-V%V}", 2019y/December/last); + VERIFY( s == "2020-V01" ); + s = std::format("{:%G-V%V}", 2023y/January/last); + VERIFY( s == "2023-V05" ); + s = std::format("{:%G-V%V}", 2023y/December/last); + VERIFY( s == "2023-V52" ); + + s = std::format("{:%F}", 2023y/July/last); + VERIFY( s == "2023-07-31" ); + s = std::format("{:%x}", 2023y/July/last); + VERIFY( s == "07/31/23" ); + s = std::format("{:L%x}", 2023y/July/last); + VERIFY( s == "07/31/23" ); + std::locale loc_fr(ISO_8859(15,fr_FR)); + s = std::format(loc_fr, "{:%x}", 2023y/July/last); + VERIFY( s == "07/31/23" ); + s = std::format(loc_fr, "{:L%x}", 2023y/July/last); + VERIFY( s == "31/07/2023" || s == "31.07.2023" ); // depends on locale defs + s = std::format(loc_fr, "{:L}", 2023y/July/last); + VERIFY( s == "2023/juil./last" ); + + std::string_view specs = "aAbBcCdDeFgGhHIjmMpqQrRSTuUVwWxXyYzZ"; + std::string_view my_specs = "aAbBCdDeFgGhjmuUVwWxyY"; + for (char c : specs) + { + char fmt[] = { '{', ':', '%', c, '}' }; + try + { + year_month_weekday ymw = 2023y/July/Thursday[2]; + (void) std::vformat(std::string_view(fmt, 5), std::make_format_args(ymw)); + // The call above should throw for any conversion-spec not in my_specs: + VERIFY(my_specs.find(c) != my_specs.npos); + } + catch (const std::format_error& e) + { + VERIFY(my_specs.find(c) == my_specs.npos); + std::string_view s = e.what(); + // Libstdc++-specific message: + VERIFY(s.find("format argument does not contain the information " + "required by the chrono-specs") != s.npos); + } + } +} + int main() { test_ostream(); - // TODO: test_format(); + test_format(); // TODO: test_parse(); } diff --git a/libstdc++-v3/testsuite/std/time/year_month_weekday/io.cc b/libstdc++-v3/testsuite/std/time/year_month_weekday/io.cc index 65baf1d37ae3..253d4f6a552e 100644 --- a/libstdc++-v3/testsuite/std/time/year_month_weekday/io.cc +++ b/libstdc++-v3/testsuite/std/time/year_month_weekday/io.cc @@ -34,9 +34,154 @@ test_ostream() VERIFY( ss.str() == "2023/juil./jeu.[2]" ); } +void +test_format() +{ + using namespace std::chrono; + + std::string s = std::format("{:%Y%t%C%%%y%n%j %b %a}", 2024y/January/Friday[2]); + VERIFY( s == "2024\t20%24\n012 Jan Fri" ); + std::wstring ws = std::format(L"{:%Y%t%C%%%y%n%j %b %a}", 2024y/December/Monday[1]); + VERIFY( ws == L"2024\t20%24\n337 Dec Mon" ); + + s = std::format("{0:%Y-%m-%d} {0}", 2023y/May/Monday[1]); + VERIFY( s == "2023-05-01 2023/May/Mon[1]" ); + s = std::format("{0:%Y-%m-%d} {0}", 2023y/month(13)/Monday[1]); + VERIFY( s == "2023-13-01 2023/13 is not a valid month/Mon[1]" ); + + s = std::format("{:%u %w}", Monday[1]); + VERIFY( s == "1 1" ); + s = std::format("{:%u %w}", Sunday[2]); + VERIFY( s == "7 0" ); + // 0 and 7 are both Sundays + s = std::format("{:%u %w}", weekday(0)[1]); + VERIFY( s == "7 0" ); + s = std::format("{:%u %w}", weekday(7)[1]); + VERIFY( s == "7 0" ); + s = std::format("{:%u %w}", weekday(9)[1]); + VERIFY( s == "9 9" ); + + s = std::format("{:%Y-%m-%d %j}", 2024y/February/Thursday[5]); + VERIFY( s == "2024-02-29 060" ); + s = std::format("{:%Y-%m-%d %j}", 2023y/February/Tuesday[4]); + VERIFY( s == "2023-02-28 059" ); + s = std::format("{:%Y-%m-%d %j}", 2024y/September/Sunday[1]); + VERIFY( s == "2024-09-01 245" ); + s = std::format("{:%Y-%m-%d %j}", 2024y/September/Sunday[5]); + VERIFY( s == "2024-09-29 273" ); + // first weeks of next month + s = std::format("{:%Y-%m-%d %j}", 2024y/September/Sunday[6]); + VERIFY( s == "2024-09-36 280" ); + s = std::format("{:%Y-%m-%d %j}", 2024y/September/Sunday[7]); + VERIFY( s == "2024-09-43 287" ); + // last week on previous month + s = std::format("{:%Y-%m-%d %j}", 2024y/September/Saturday[0]); + VERIFY( s == "2024-09-00 244" ); + s = std::format("{:%Y-%m-%d %j}", 2024y/September/Sunday[0]); + VERIFY( s == "2024-09-00 238" ); // day is de-facto -6 + + // %U: Week number for weeks starting on Sunday + s = std::format("{:%Y-U%U}", 2023y/January/Sunday[0]); + VERIFY( s == "2023-U00" ); + s = std::format("{:%Y-U%U}", 2023y/January/Sunday[1]); + VERIFY( s == "2023-U01" ); + s = std::format("{:%Y-U%U}", 2023y/January/Sunday[4]); + VERIFY( s == "2023-U04" ); + s = std::format("{:%Y-U%U}", 2023y/January/Sunday[7]); + VERIFY( s == "2023-U07" ); + s = std::format("{:%Y-U%U}", 2023y/December/Sunday[0]); + VERIFY( s == "2023-U48" ); + s = std::format("{:%Y-U%U}", 2023y/December/Sunday[1]); + VERIFY( s == "2023-U49" ); + s = std::format("{:%Y-U%U}", 2023y/December/Sunday[4]); + VERIFY( s == "2023-U52" ); + s = std::format("{:%Y-U%U}", 2023y/December/Sunday[7]); + VERIFY( s == "2023-U55" ); + // %W: Week number for weeks starting on Monday + s = std::format("{:%Y-W%W}", 2023y/January/Monday[0]); + VERIFY( s == "2023-W00" ); + s = std::format("{:%Y-W%W}", 2023y/January/Monday[1]); + VERIFY( s == "2023-W01" ); + s = std::format("{:%Y-W%W}", 2023y/January/Monday[4]); + VERIFY( s == "2023-W04" ); + s = std::format("{:%Y-W%W}", 2023y/January/Monday[7]); + VERIFY( s == "2023-W07" ); + s = std::format("{:%Y-W%W}", 2023y/December/Monday[0]); + VERIFY( s == "2023-W48" ); + s = std::format("{:%Y-W%W}", 2023y/December/Monday[1]); + VERIFY( s == "2023-W49" ); + s = std::format("{:%Y-W%W}", 2023y/December/Monday[4]); + VERIFY( s == "2023-W52" ); + s = std::format("{:%Y-W%W}", 2023y/December/Monday[7]); + VERIFY( s == "2023-W55" ); + // First Sunday precedes first Monday, so happens on + // last week of previous month and thus year + s = std::format("{:%Y-W%W}", 2023y/January/Sunday[1]); + VERIFY( s == "2023-W00" ); + // Last Sunday of pevious year happens on second to + // last week on previous year + s = std::format("{:%Y-W%W}", 2023y/January/Sunday[0]); + VERIFY( s == "2023-W99" ); + + // %G: ISO week-calendar year (ISO 8601) + // %V: ISO week number (ISO 8601). + s = std::format("{:%G-V%V}", 2023y/January/Monday[0]); + VERIFY( s == "2022-V52" ); + s = std::format("{:%G-V%V}", 2023y/January/Monday[1]); + VERIFY( s == "2023-V01" ); + s = std::format("{:%G-V%V}", 2023y/January/Monday[4]); + VERIFY( s == "2023-V04" ); + s = std::format("{:%G-V%V}", 2023y/January/Monday[7]); + VERIFY( s == "2023-V07" ); + s = std::format("{:%G-V%V}", 2023y/December/Friday[0]); + VERIFY( s == "2023-V47" ); + s = std::format("{:%G-V%V}", 2023y/December/Friday[1]); + VERIFY( s == "2023-V48" ); + s = std::format("{:%G-V%V}", 2023y/December/Friday[5]); + VERIFY( s == "2023-V52" ); + s = std::format("{:%G-V%V}", 2023y/December/Friday[6]); + VERIFY( s == "2024-V01" ); + + s = std::format("{:%F}", 2023y/July/Thursday[2]); + VERIFY( s == "2023-07-13" ); + s = std::format("{:%x}", 2023y/July/Thursday[2]); + VERIFY( s == "07/13/23" ); + s = std::format("{:L%x}", 2023y/July/Thursday[2]); + VERIFY( s == "07/13/23" ); + std::locale loc_fr(ISO_8859(15,fr_FR)); + s = std::format(loc_fr, "{:%x}", 2023y/July/Thursday[2]); + VERIFY( s == "07/13/23" ); + s = std::format(loc_fr, "{:L%x}", 2023y/July/Thursday[2]); + VERIFY( s == "13/07/2023" || s == "13.07.2023" ); // depends on locale defs + s = std::format(loc_fr, "{:L}", 2023y/July/Thursday[2]); + VERIFY( s == "2023/juil./jeu.[2]" ); + + std::string_view specs = "aAbBcCdDeFgGhHIjmMpqQrRSTuUVwWxXyYzZ"; + std::string_view my_specs = "aAbBCdDeFgGhjmuUVwWxyY"; + for (char c : specs) + { + char fmt[] = { '{', ':', '%', c, '}' }; + try + { + year_month_weekday ymw = 2023y/July/Thursday[2]; + (void) std::vformat(std::string_view(fmt, 5), std::make_format_args(ymw)); + // The call above should throw for any conversion-spec not in my_specs: + VERIFY(my_specs.find(c) != my_specs.npos); + } + catch (const std::format_error& e) + { + VERIFY(my_specs.find(c) == my_specs.npos); + std::string_view s = e.what(); + // Libstdc++-specific message: + VERIFY(s.find("format argument does not contain the information " + "required by the chrono-specs") != s.npos); + } + } +} + int main() { test_ostream(); - // TODO: test_format(); + test_format(); // TODO: test_parse(); } diff --git a/libstdc++-v3/testsuite/std/time/year_month_weekday_last/io.cc b/libstdc++-v3/testsuite/std/time/year_month_weekday_last/io.cc index 17f2244420d7..983589720b5e 100644 --- a/libstdc++-v3/testsuite/std/time/year_month_weekday_last/io.cc +++ b/libstdc++-v3/testsuite/std/time/year_month_weekday_last/io.cc @@ -30,9 +30,104 @@ test_ostream() VERIFY( ss.str() == "2023/juil./jeu.[last]" ); } +void +test_format() +{ + using namespace std::chrono; + + std::string s = std::format("{:%Y%t%C%%%y%n%j %b %a}", 2024y/January/Friday[last]); + VERIFY( s == "2024\t20%24\n026 Jan Fri" ); + std::wstring ws = std::format(L"{:%Y%t%C%%%y%n%j %b %a}", 2024y/December/Monday[last]); + VERIFY( ws == L"2024\t20%24\n365 Dec Mon" ); + + s = std::format("{0:%Y-%m-%d} {0}", 2023y/May/Monday[last]); + VERIFY( s == "2023-05-29 2023/May/Mon[last]" ); + s = std::format("{0:%Y-%m-%d} {0}", 2023y/month(13)/Monday[last]); + VERIFY( s == "2023-13-29 2023/13 is not a valid month/Mon[last]" ); + + s = std::format("{:%u %w}", Monday[last]); + VERIFY( s == "1 1" ); + s = std::format("{:%u %w}", Sunday[2]); + VERIFY( s == "7 0" ); + // 0 and 7 are both Sundays + s = std::format("{:%u %w}", weekday(0)[last]); + VERIFY( s == "7 0" ); + s = std::format("{:%u %w}", weekday(7)[last]); + VERIFY( s == "7 0" ); + s = std::format("{:%u %w}", weekday(9)[last]); + VERIFY( s == "9 9" ); + + s = std::format("{:%Y-%m-%d %j}", 2024y/February/Thursday[last]); + VERIFY( s == "2024-02-29 060" ); + s = std::format("{:%Y-%m-%d %j}", 2023y/February/Tuesday[last]); + VERIFY( s == "2023-02-28 059" ); + s = std::format("{:%Y-%m-%d %j}", 2024y/September/Sunday[last]); + VERIFY( s == "2024-09-29 273" ); + + // %U: Week number for weeks starting on Sunday + s = std::format("{:%Y-U%U}", 2023y/January/Sunday[last]); + VERIFY( s == "2023-U05" ); + s = std::format("{:%Y-U%U}", 2023y/December/Sunday[last]); + VERIFY( s == "2023-U53" ); + // %W: Week number for weeks starting on Monday + s = std::format("{:%Y-W%W}", 2023y/January/Monday[last]); + VERIFY( s == "2023-W05" ); + s = std::format("{:%Y-W%W}", 2023y/December/Monday[last]); + VERIFY( s == "2023-W52" ); + s = std::format("{:%Y-W%W}", 2023y/January/Sunday[last]); + VERIFY( s == "2023-W04" ); + s = std::format("{:%Y-W%W}", 2023y/December/Sunday[last]); + VERIFY( s == "2023-W52" ); + + // %G: ISO week-calendar year (ISO 8601) + // %V: ISO week number (ISO 8601). + s = std::format("{:%G-V%V}", 2019y/December/Tuesday[last]); + VERIFY( s == "2020-V01" ); + s = std::format("{:%G-V%V}", 2023y/January/Monday[last]); + VERIFY( s == "2023-V05" ); + s = std::format("{:%G-V%V}", 2023y/December/Friday[last]); + VERIFY( s == "2023-V52" ); + + s = std::format("{:%F}", 2023y/July/Thursday[last]); + VERIFY( s == "2023-07-27" ); + s = std::format("{:%x}", 2023y/July/Thursday[last]); + VERIFY( s == "07/27/23" ); + s = std::format("{:L%x}", 2023y/July/Thursday[last]); + VERIFY( s == "07/27/23" ); + std::locale loc_fr(ISO_8859(15,fr_FR)); + s = std::format(loc_fr, "{:%x}", 2023y/July/Thursday[last]); + VERIFY( s == "07/27/23" ); + s = std::format(loc_fr, "{:L%x}", 2023y/July/Thursday[last]); + VERIFY( s == "27/07/2023" || s == "27.07.2023" ); // depends on locale defs + s = std::format(loc_fr, "{:L}", 2023y/July/Thursday[last]); + VERIFY( s == "2023/juil./jeu.[last]" ); + + std::string_view specs = "aAbBcCdDeFgGhHIjmMpqQrRSTuUVwWxXyYzZ"; + std::string_view my_specs = "aAbBCdDeFgGhjmuUVwWxyY"; + for (char c : specs) + { + char fmt[] = { '{', ':', '%', c, '}' }; + try + { + year_month_weekday ymw = 2023y/July/Thursday[2]; + (void) std::vformat(std::string_view(fmt, 5), std::make_format_args(ymw)); + // The call above should throw for any conversion-spec not in my_specs: + VERIFY(my_specs.find(c) != my_specs.npos); + } + catch (const std::format_error& e) + { + VERIFY(my_specs.find(c) == my_specs.npos); + std::string_view s = e.what(); + // Libstdc++-specific message: + VERIFY(s.find("format argument does not contain the information " + "required by the chrono-specs") != s.npos); + } + } +} + int main() { test_ostream(); - // TODO: test_format(); + test_format(); // TODO: test_parse(); } diff --git a/libstdc++-v3/testsuite/util/testsuite_allocator.h b/libstdc++-v3/testsuite/util/testsuite_allocator.h index ee9575266a00..086685b4ac6d 100644 --- a/libstdc++-v3/testsuite/util/testsuite_allocator.h +++ b/libstdc++-v3/testsuite/util/testsuite_allocator.h @@ -216,7 +216,7 @@ namespace __gnu_test } // Implement swap for underlying allocators that might need it. - friend inline void + friend void swap(tracker_allocator& a, tracker_allocator& b) { using std::swap; @@ -310,10 +310,6 @@ namespace __gnu_test { typedef __gnu_cxx::__alloc_traits AllocTraits; - Alloc& base() { return *this; } - const Alloc& base() const { return *this; } - void swap_base(Alloc& b) { using std::swap; swap(b, this->base()); } - public: typedef typename check_consistent_alloc_value_type::value_type value_type; @@ -332,9 +328,11 @@ namespace __gnu_test typename AllocTraits::template rebind::other> other; }; + _GLIBCXX_CONSTEXPR uneq_allocator() _GLIBCXX_USE_NOEXCEPT : personality(0) { } + _GLIBCXX_CONSTEXPR uneq_allocator(int person) _GLIBCXX_USE_NOEXCEPT : personality(person) { } @@ -344,21 +342,23 @@ namespace __gnu_test #endif template + _GLIBCXX_CONSTEXPR uneq_allocator(const uneq_allocator::other>& b) _GLIBCXX_USE_NOEXCEPT : personality(b.get_personality()) { } - ~uneq_allocator() _GLIBCXX_USE_NOEXCEPT - { } - - int get_personality() const { return personality; } + _GLIBCXX_CONSTEXPR int get_personality() const { return personality; } + _GLIBCXX20_CONSTEXPR pointer allocate(size_type n, const void* = 0) { pointer p = AllocTraits::allocate(*this, n); + if (std::__is_constant_evaluated()) + return p; + try { get_map().insert(map_type::value_type(reinterpret_cast(p), @@ -373,19 +373,24 @@ namespace __gnu_test return p; } + _GLIBCXX14_CONSTEXPR void deallocate(pointer p, size_type n) { VERIFY( p ); - map_type::iterator it = get_map().find(reinterpret_cast(p)); - VERIFY( it != get_map().end() ); + if (!std::__is_constant_evaluated()) + { + map_type::iterator it = get_map().find(reinterpret_cast(p)); + VERIFY( it != get_map().end() ); + + // Enforce requirements in Table 32 about deallocation vs + // allocator equality. + VERIFY( it->second == personality ); - // Enforce requirements in Table 32 about deallocation vs - // allocator equality. - VERIFY( it->second == personality ); + get_map().erase(it); + } - get_map().erase(it); AllocTraits::deallocate(*this, p, n); } @@ -406,22 +411,23 @@ namespace __gnu_test private: // ... yet swappable! - friend inline void + friend _GLIBCXX_CONSTEXPR void swap(uneq_allocator& a, uneq_allocator& b) { std::swap(a.personality, b.personality); - a.swap_base(b); + using std::swap; + swap(static_cast(a), static_cast(b)); } template - friend inline bool + friend _GLIBCXX_CONSTEXPR bool operator==(const uneq_allocator& a, const uneq_allocator::other>& b) { return a.personality == b.get_personality(); } template - friend inline bool + friend _GLIBCXX_CONSTEXPR bool operator!=(const uneq_allocator& a, const uneq_allocator::other>& b) @@ -438,9 +444,12 @@ namespace __gnu_test typedef __gnu_cxx::__alloc_traits AllocTraits; typedef uneq_allocator base_alloc; - base_alloc& base() { return *this; } - const base_alloc& base() const { return *this; } - void swap_base(base_alloc& b) { swap(b, this->base()); } + _GLIBCXX14_CONSTEXPR void + swap_base(base_alloc& b) + { + using std::swap; + swap(b, static_cast(*this)); + } typedef std::integral_constant trait_type; @@ -454,11 +463,13 @@ namespace __gnu_test typename AllocTraits::template rebind::other> other; }; + constexpr propagating_allocator(int i) noexcept : base_alloc(i) { } template + constexpr propagating_allocator(const propagating_allocator::other>& a) noexcept @@ -469,6 +480,7 @@ namespace __gnu_test propagating_allocator(const propagating_allocator&) noexcept = default; + _GLIBCXX14_CONSTEXPR propagating_allocator& operator=(const propagating_allocator& a) noexcept { @@ -478,6 +490,7 @@ namespace __gnu_test } template + _GLIBCXX14_CONSTEXPR propagating_allocator& operator=(const propagating_allocator& a) noexcept { @@ -487,11 +500,13 @@ namespace __gnu_test } // postcondition: LWG2593 a.get_personality() un-changed. + constexpr propagating_allocator(propagating_allocator&& a) noexcept - : base_alloc(std::move(a.base())) + : base_alloc(static_cast(a)) { } // postcondition: LWG2593 a.get_personality() un-changed + _GLIBCXX14_CONSTEXPR propagating_allocator& operator=(propagating_allocator&& a) noexcept { @@ -503,7 +518,8 @@ namespace __gnu_test typedef trait_type propagate_on_container_move_assignment; typedef trait_type propagate_on_container_swap; - propagating_allocator select_on_container_copy_construction() const + constexpr propagating_allocator + select_on_container_copy_construction() const { return Propagate ? *this : propagating_allocator(); } }; @@ -551,11 +567,11 @@ namespace __gnu_test : state(a.state) { } - constexpr T* + _GLIBCXX14_CONSTEXPR T* allocate(std::size_t n) { return std::allocator().allocate(n); } - constexpr void + _GLIBCXX14_CONSTEXPR void deallocate(T* p, std::size_t n) { std::allocator().deallocate(p, n); } @@ -581,7 +597,7 @@ namespace __gnu_test ExplicitConsAlloc() { } template - explicit + explicit _GLIBCXX_CONSTEXPR ExplicitConsAlloc(const ExplicitConsAlloc&) { } template @@ -600,6 +616,7 @@ namespace __gnu_test CustomPointerAlloc() = default; template + constexpr CustomPointerAlloc(const CustomPointerAlloc&) { } template @@ -611,9 +628,11 @@ namespace __gnu_test typedef Ptr void_pointer; typedef Ptr const_void_pointer; + _GLIBCXX14_CONSTEXPR pointer allocate(std::size_t n, const_void_pointer = {}) { return pointer(std::allocator::allocate(n)); } + _GLIBCXX14_CONSTEXPR void deallocate(pointer p, std::size_t n) { std::allocator::deallocate(std::addressof(*p), n); } }; @@ -631,16 +650,16 @@ namespace __gnu_test explicit operator bool() const noexcept { return value != nullptr; } - friend inline bool + friend constexpr bool operator==(NullablePointer lhs, NullablePointer rhs) noexcept { return lhs.value == rhs.value; } - friend inline bool + friend constexpr bool operator!=(NullablePointer lhs, NullablePointer rhs) noexcept { return lhs.value != rhs.value; } protected: - explicit NullablePointer(Ptr p) noexcept : value(p) { } + constexpr explicit NullablePointer(Ptr p) noexcept : value(p) { } Ptr value; }; @@ -649,16 +668,16 @@ namespace __gnu_test struct NullablePointer { NullablePointer() = default; - NullablePointer(std::nullptr_t) noexcept { } - explicit NullablePointer(const volatile void*) noexcept { } + constexpr NullablePointer(std::nullptr_t) noexcept { } + constexpr explicit NullablePointer(const volatile void*) noexcept { } - explicit operator bool() const noexcept { return false; } + constexpr explicit operator bool() const noexcept { return false; } - friend inline bool + friend constexpr bool operator==(NullablePointer, NullablePointer) noexcept { return true; } - friend inline bool + friend constexpr bool operator!=(NullablePointer, NullablePointer) noexcept { return false; } }; diff --git a/libtool.m4 b/libtool.m4 index add2d4a1e23d..0e639dc98b24 100644 --- a/libtool.m4 +++ b/libtool.m4 @@ -1372,32 +1372,27 @@ need_locks="$enable_libtool_lock" # _LT_CMD_OLD_ARCHIVE # ------------------- m4_defun([_LT_CMD_OLD_ARCHIVE], -[plugin_option= -plugin_names="liblto_plugin.so liblto_plugin-0.dll cyglto_plugin-0.dll" -for plugin in $plugin_names; do - plugin_so=`${CC} ${CFLAGS} --print-prog-name $plugin` - if test x$plugin_so = x$plugin; then - plugin_so=`${CC} ${CFLAGS} --print-file-name $plugin` - fi - if test x$plugin_so != x$plugin; then - plugin_option="--plugin $plugin_so" - break - fi -done - +[ +# Try CLANG_PLUGIN_FILE first since GCC_PLUGIN_OPTION may return the +# wrong plugin_option with clang. +CLANG_PLUGIN_FILE(plugin_file) +if test -n "$plugin_file"; then + plugin_option="--plugin $plugin_file" +else + GCC_PLUGIN_OPTION(plugin_option) +fi AC_CHECK_TOOL(AR, ar, false) test -z "$AR" && AR=ar if test -n "$plugin_option"; then - if $AR --help 2>&1 | grep -q "\--plugin"; then - touch conftest.c - $AR $plugin_option rc conftest.a conftest.c - if test "$?" != 0; then - AC_MSG_WARN([Failed: $AR $plugin_option rc]) - else + case "$AR" in + *"$plugin_option"*) + ;; + *) + if $AR --help 2>&1 | grep -q "\--plugin"; then AR="$AR $plugin_option" fi - rm -f conftest.* - fi + ;; + esac fi test -z "$AR_FLAGS" && AR_FLAGS=cru _LT_DECL([], [AR], [1], [The archiver]) @@ -1410,9 +1405,15 @@ _LT_DECL([], [STRIP], [1], [A symbol stripping program]) AC_CHECK_TOOL(RANLIB, ranlib, :) test -z "$RANLIB" && RANLIB=: if test -n "$plugin_option" && test "$RANLIB" != ":"; then - if $RANLIB --help 2>&1 | grep -q "\--plugin"; then - RANLIB="$RANLIB $plugin_option" - fi + case "$RANLIB" in + *"$plugin_option"*) + ;; + *) + if $RANLIB --help 2>&1 | grep -q "\--plugin"; then + RANLIB="$RANLIB $plugin_option" + fi + ;; + esac fi _LT_DECL([], [RANLIB], [1], [Commands used to install an old-style archive]) diff --git a/libvtv/ChangeLog b/libvtv/ChangeLog index 4d1bd448bdce..c4f27708a554 100644 --- a/libvtv/ChangeLog +++ b/libvtv/ChangeLog @@ -1,3 +1,10 @@ +2025-10-05 Sam James + + * Makefile.in: Regenerate. + * aclocal.m4: Regenerate. + * configure: Regenerate. + * testsuite/Makefile.in: Regenerate. + 2025-05-09 David Malcolm PR other/116792 diff --git a/libvtv/Makefile.in b/libvtv/Makefile.in index 70b440347126..739b0b4e039c 100644 --- a/libvtv/Makefile.in +++ b/libvtv/Makefile.in @@ -95,7 +95,9 @@ target_triplet = @target@ subdir = . ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/../config/acx.m4 \ + $(top_srcdir)/../config/clang-plugin.m4 \ $(top_srcdir)/../config/depstand.m4 \ + $(top_srcdir)/../config/gcc-plugin.m4 \ $(top_srcdir)/../config/lead-dot.m4 \ $(top_srcdir)/../config/libstdc++-raw-cxx.m4 \ $(top_srcdir)/../config/lthostflags.m4 \ @@ -310,6 +312,7 @@ LIBSTDCXX_RAW_CXX_CXXFLAGS = @LIBSTDCXX_RAW_CXX_CXXFLAGS@ LIBSTDCXX_RAW_CXX_LDFLAGS = @LIBSTDCXX_RAW_CXX_LDFLAGS@ LIBTOOL = @LIBTOOL@ LIPO = @LIPO@ +LLVM_CONFIG = @LLVM_CONFIG@ LN_S = @LN_S@ LTLIBOBJS = @LTLIBOBJS@ MAINT = @MAINT@ diff --git a/libvtv/aclocal.m4 b/libvtv/aclocal.m4 index 7da4c3a5b9ba..ad58419afc9d 100644 --- a/libvtv/aclocal.m4 +++ b/libvtv/aclocal.m4 @@ -1168,7 +1168,9 @@ AC_SUBST([am__untar]) ]) # _AM_PROG_TAR m4_include([../config/acx.m4]) +m4_include([../config/clang-plugin.m4]) m4_include([../config/depstand.m4]) +m4_include([../config/gcc-plugin.m4]) m4_include([../config/lead-dot.m4]) m4_include([../config/libstdc++-raw-cxx.m4]) m4_include([../config/lthostflags.m4]) diff --git a/libvtv/configure b/libvtv/configure index a7889161c50b..1a29d899e3c4 100755 --- a/libvtv/configure +++ b/libvtv/configure @@ -651,6 +651,7 @@ OTOOL LIPO NMEDIT DSYMUTIL +LLVM_CONFIG OBJDUMP LN_S NM @@ -7340,8 +7341,266 @@ test -z "$deplibs_check_method" && deplibs_check_method=unknown -plugin_option= + +# Try CLANG_PLUGIN_FILE first since GCC_PLUGIN_OPTION may return the +# wrong plugin_option with clang. + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for clang" >&5 +$as_echo_n "checking for clang... " >&6; } +if ${clang_cv_is_clang+:} false; then : + $as_echo_n "(cached) " >&6 +else + + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +#ifdef __clang__ + yes +#endif + +_ACEOF +if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | + $EGREP "yes" >/dev/null 2>&1; then : + clang_cv_is_clang=yes +else + clang_cv_is_clang=no +fi +rm -f conftest* + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $clang_cv_is_clang" >&5 +$as_echo "$clang_cv_is_clang" >&6; } + plugin_file= + if test $clang_cv_is_clang = yes; then + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for clang plugin file" >&5 +$as_echo_n "checking for clang plugin file... " >&6; } + plugin_names="LLVMgold.so" + for plugin in $plugin_names; do + plugin_file=`${CC} ${CFLAGS} --print-file-name $plugin` + if test x$plugin_file = x$plugin; then + if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}llvm-config", so it can be a program name with args. +set dummy ${ac_tool_prefix}llvm-config; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_LLVM_CONFIG+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$LLVM_CONFIG"; then + ac_cv_prog_LLVM_CONFIG="$LLVM_CONFIG" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_LLVM_CONFIG="${ac_tool_prefix}llvm-config" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +LLVM_CONFIG=$ac_cv_prog_LLVM_CONFIG +if test -n "$LLVM_CONFIG"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $LLVM_CONFIG" >&5 +$as_echo "$LLVM_CONFIG" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + +fi +if test -z "$ac_cv_prog_LLVM_CONFIG"; then + ac_ct_LLVM_CONFIG=$LLVM_CONFIG + # Extract the first word of "llvm-config", so it can be a program name with args. +set dummy llvm-config; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_ac_ct_LLVM_CONFIG+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$ac_ct_LLVM_CONFIG"; then + ac_cv_prog_ac_ct_LLVM_CONFIG="$ac_ct_LLVM_CONFIG" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_ac_ct_LLVM_CONFIG="llvm-config" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +ac_ct_LLVM_CONFIG=$ac_cv_prog_ac_ct_LLVM_CONFIG +if test -n "$ac_ct_LLVM_CONFIG"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_LLVM_CONFIG" >&5 +$as_echo "$ac_ct_LLVM_CONFIG" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + if test "x$ac_ct_LLVM_CONFIG" = x; then + LLVM_CONFIG="" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + LLVM_CONFIG=$ac_ct_LLVM_CONFIG + fi +else + LLVM_CONFIG="$ac_cv_prog_LLVM_CONFIG" +fi + + if test "$?" != 0; then + as_fn_error $? "Required tool 'llvm-config' not found on PATH." "$LINENO" 5 + fi + clang_lib_dir=`$LLVM_CONFIG --libdir` + if test -f $clang_lib_dir/$plugin; then + plugin_file=$clang_lib_dir/$plugin + fi + if test x$plugin_file != x$plugin; then + break; + fi + fi + done + if test -z $plugin_file; then + as_fn_error $? "Couldn't find clang plugin file for $CC." "$LINENO" 5 + fi + if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}ar", so it can be a program name with args. +set dummy ${ac_tool_prefix}ar; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_AR+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$AR"; then + ac_cv_prog_AR="$AR" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_AR="${ac_tool_prefix}ar" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +AR=$ac_cv_prog_AR +if test -n "$AR"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $AR" >&5 +$as_echo "$AR" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + +fi +if test -z "$ac_cv_prog_AR"; then + ac_ct_AR=$AR + # Extract the first word of "ar", so it can be a program name with args. +set dummy ar; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_ac_ct_AR+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$ac_ct_AR"; then + ac_cv_prog_ac_ct_AR="$ac_ct_AR" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_ac_ct_AR="ar" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +ac_ct_AR=$ac_cv_prog_ac_ct_AR +if test -n "$ac_ct_AR"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_AR" >&5 +$as_echo "$ac_ct_AR" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + if test "x$ac_ct_AR" = x; then + AR="" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + AR=$ac_ct_AR + fi +else + AR="$ac_cv_prog_AR" +fi + + if test "${AR}" = "" ; then + as_fn_error $? "Required archive tool 'ar' not found on PATH." "$LINENO" 5 + fi + plugin_option="--plugin $plugin_file" + touch conftest.c + ${AR} $plugin_option rc conftest.a conftest.c + if test "$?" != 0; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Failed: $AR $plugin_option rc" >&5 +$as_echo "$as_me: WARNING: Failed: $AR $plugin_option rc" >&2;} + plugin_file= + fi + rm -f conftest.* + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $plugin_file" >&5 +$as_echo "$plugin_file" >&6; } + fi + plugin_file="$plugin_file" + +if test -n "$plugin_file"; then + plugin_option="--plugin $plugin_file" +else + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for -plugin option" >&5 +$as_echo_n "checking for -plugin option... " >&6; } + plugin_names="liblto_plugin.so liblto_plugin-0.dll cyglto_plugin-0.dll" +plugin_option= for plugin in $plugin_names; do plugin_so=`${CC} ${CFLAGS} --print-prog-name $plugin` if test x$plugin_so = x$plugin; then @@ -7352,7 +7611,119 @@ for plugin in $plugin_names; do break fi done +if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}ar", so it can be a program name with args. +set dummy ${ac_tool_prefix}ar; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_AR+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$AR"; then + ac_cv_prog_AR="$AR" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_AR="${ac_tool_prefix}ar" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +AR=$ac_cv_prog_AR +if test -n "$AR"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $AR" >&5 +$as_echo "$AR" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + +fi +if test -z "$ac_cv_prog_AR"; then + ac_ct_AR=$AR + # Extract the first word of "ar", so it can be a program name with args. +set dummy ar; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_ac_ct_AR+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$ac_ct_AR"; then + ac_cv_prog_ac_ct_AR="$ac_ct_AR" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_ac_ct_AR="ar" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS +fi +fi +ac_ct_AR=$ac_cv_prog_ac_ct_AR +if test -n "$ac_ct_AR"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_AR" >&5 +$as_echo "$ac_ct_AR" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + if test "x$ac_ct_AR" = x; then + AR="" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + AR=$ac_ct_AR + fi +else + AR="$ac_cv_prog_AR" +fi + +if test "${AR}" = "" ; then + as_fn_error $? "Required archive tool 'ar' not found on PATH." "$LINENO" 5 +fi +touch conftest.c +${AR} $plugin_option rc conftest.a conftest.c +if test "$?" != 0; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Failed: $AR $plugin_option rc" >&5 +$as_echo "$as_me: WARNING: Failed: $AR $plugin_option rc" >&2;} + plugin_option= +fi +rm -f conftest.* +if test -n "$plugin_option"; then + plugin_option="$plugin_option" + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $plugin_option" >&5 +$as_echo "$plugin_option" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + +fi if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}ar", so it can be a program name with args. set dummy ${ac_tool_prefix}ar; ac_word=$2 @@ -7447,17 +7818,15 @@ fi test -z "$AR" && AR=ar if test -n "$plugin_option"; then - if $AR --help 2>&1 | grep -q "\--plugin"; then - touch conftest.c - $AR $plugin_option rc conftest.a conftest.c - if test "$?" != 0; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Failed: $AR $plugin_option rc" >&5 -$as_echo "$as_me: WARNING: Failed: $AR $plugin_option rc" >&2;} - else + case "$AR" in + *"$plugin_option"*) + ;; + *) + if $AR --help 2>&1 | grep -q "\--plugin"; then AR="$AR $plugin_option" fi - rm -f conftest.* - fi + ;; + esac fi test -z "$AR_FLAGS" && AR_FLAGS=cru @@ -7664,9 +8033,15 @@ fi test -z "$RANLIB" && RANLIB=: if test -n "$plugin_option" && test "$RANLIB" != ":"; then - if $RANLIB --help 2>&1 | grep -q "\--plugin"; then - RANLIB="$RANLIB $plugin_option" - fi + case "$RANLIB" in + *"$plugin_option"*) + ;; + *) + if $RANLIB --help 2>&1 | grep -q "\--plugin"; then + RANLIB="$RANLIB $plugin_option" + fi + ;; + esac fi @@ -12369,7 +12744,7 @@ else lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 lt_status=$lt_dlunknown cat > conftest.$ac_ext <<_LT_EOF -#line 12372 "configure" +#line 12747 "configure" #include "confdefs.h" #if HAVE_DLFCN_H @@ -12475,7 +12850,7 @@ else lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 lt_status=$lt_dlunknown cat > conftest.$ac_ext <<_LT_EOF -#line 12478 "configure" +#line 12853 "configure" #include "confdefs.h" #if HAVE_DLFCN_H diff --git a/libvtv/testsuite/Makefile.in b/libvtv/testsuite/Makefile.in index cb804c442d68..167f8b17eca9 100644 --- a/libvtv/testsuite/Makefile.in +++ b/libvtv/testsuite/Makefile.in @@ -91,7 +91,9 @@ target_triplet = @target@ subdir = testsuite ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/../config/acx.m4 \ + $(top_srcdir)/../config/clang-plugin.m4 \ $(top_srcdir)/../config/depstand.m4 \ + $(top_srcdir)/../config/gcc-plugin.m4 \ $(top_srcdir)/../config/lead-dot.m4 \ $(top_srcdir)/../config/libstdc++-raw-cxx.m4 \ $(top_srcdir)/../config/lthostflags.m4 \ @@ -175,6 +177,7 @@ LIBSTDCXX_RAW_CXX_CXXFLAGS = @LIBSTDCXX_RAW_CXX_CXXFLAGS@ LIBSTDCXX_RAW_CXX_LDFLAGS = @LIBSTDCXX_RAW_CXX_LDFLAGS@ LIBTOOL = @LIBTOOL@ LIPO = @LIPO@ +LLVM_CONFIG = @LLVM_CONFIG@ LN_S = @LN_S@ LTLIBOBJS = @LTLIBOBJS@ MAINT = @MAINT@ diff --git a/lto-plugin/ChangeLog b/lto-plugin/ChangeLog index 18c1f5377881..9c4d232cf164 100644 --- a/lto-plugin/ChangeLog +++ b/lto-plugin/ChangeLog @@ -1,3 +1,9 @@ +2025-10-05 Sam James + + * Makefile.in: Regenerate. + * aclocal.m4: Regenerate. + * configure: Regenerate. + 2025-03-06 Michal Jires * lto-plugin.c (cleanup_handler): Keep only files in ltrans diff --git a/lto-plugin/Makefile.in b/lto-plugin/Makefile.in index f6f5b020ff5f..d776474b9b93 100644 --- a/lto-plugin/Makefile.in +++ b/lto-plugin/Makefile.in @@ -93,8 +93,10 @@ subdir = . ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/../config/acx.m4 \ $(top_srcdir)/../config/cet.m4 \ + $(top_srcdir)/../config/clang-plugin.m4 \ $(top_srcdir)/../config/depstand.m4 \ $(top_srcdir)/../config/enable.m4 \ + $(top_srcdir)/../config/gcc-plugin.m4 \ $(top_srcdir)/../config/lead-dot.m4 \ $(top_srcdir)/../config/lthostflags.m4 \ $(top_srcdir)/../config/override.m4 \ @@ -245,6 +247,7 @@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LIPO = @LIPO@ +LLVM_CONFIG = @LLVM_CONFIG@ LN_S = @LN_S@ LTLIBOBJS = @LTLIBOBJS@ MAINT = @MAINT@ diff --git a/lto-plugin/aclocal.m4 b/lto-plugin/aclocal.m4 index f1fc28d4f13e..5c10b8358883 100644 --- a/lto-plugin/aclocal.m4 +++ b/lto-plugin/aclocal.m4 @@ -1169,8 +1169,10 @@ AC_SUBST([am__untar]) m4_include([../config/acx.m4]) m4_include([../config/cet.m4]) +m4_include([../config/clang-plugin.m4]) m4_include([../config/depstand.m4]) m4_include([../config/enable.m4]) +m4_include([../config/gcc-plugin.m4]) m4_include([../config/lead-dot.m4]) m4_include([../config/lthostflags.m4]) m4_include([../config/override.m4]) diff --git a/lto-plugin/configure b/lto-plugin/configure index 28f5dd79cd70..96f0a5b8e335 100755 --- a/lto-plugin/configure +++ b/lto-plugin/configure @@ -643,6 +643,7 @@ NMEDIT DSYMUTIL RANLIB AR +LLVM_CONFIG OBJDUMP LN_S NM @@ -7211,8 +7212,266 @@ test -z "$deplibs_check_method" && deplibs_check_method=unknown -plugin_option= + +# Try CLANG_PLUGIN_FILE first since GCC_PLUGIN_OPTION may return the +# wrong plugin_option with clang. + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for clang" >&5 +$as_echo_n "checking for clang... " >&6; } +if ${clang_cv_is_clang+:} false; then : + $as_echo_n "(cached) " >&6 +else + + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +#ifdef __clang__ + yes +#endif + +_ACEOF +if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | + $EGREP "yes" >/dev/null 2>&1; then : + clang_cv_is_clang=yes +else + clang_cv_is_clang=no +fi +rm -f conftest* + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $clang_cv_is_clang" >&5 +$as_echo "$clang_cv_is_clang" >&6; } + plugin_file= + if test $clang_cv_is_clang = yes; then + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for clang plugin file" >&5 +$as_echo_n "checking for clang plugin file... " >&6; } + plugin_names="LLVMgold.so" + for plugin in $plugin_names; do + plugin_file=`${CC} ${CFLAGS} --print-file-name $plugin` + if test x$plugin_file = x$plugin; then + if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}llvm-config", so it can be a program name with args. +set dummy ${ac_tool_prefix}llvm-config; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_LLVM_CONFIG+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$LLVM_CONFIG"; then + ac_cv_prog_LLVM_CONFIG="$LLVM_CONFIG" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_LLVM_CONFIG="${ac_tool_prefix}llvm-config" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +LLVM_CONFIG=$ac_cv_prog_LLVM_CONFIG +if test -n "$LLVM_CONFIG"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $LLVM_CONFIG" >&5 +$as_echo "$LLVM_CONFIG" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + +fi +if test -z "$ac_cv_prog_LLVM_CONFIG"; then + ac_ct_LLVM_CONFIG=$LLVM_CONFIG + # Extract the first word of "llvm-config", so it can be a program name with args. +set dummy llvm-config; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_ac_ct_LLVM_CONFIG+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$ac_ct_LLVM_CONFIG"; then + ac_cv_prog_ac_ct_LLVM_CONFIG="$ac_ct_LLVM_CONFIG" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_ac_ct_LLVM_CONFIG="llvm-config" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +ac_ct_LLVM_CONFIG=$ac_cv_prog_ac_ct_LLVM_CONFIG +if test -n "$ac_ct_LLVM_CONFIG"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_LLVM_CONFIG" >&5 +$as_echo "$ac_ct_LLVM_CONFIG" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + if test "x$ac_ct_LLVM_CONFIG" = x; then + LLVM_CONFIG="" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + LLVM_CONFIG=$ac_ct_LLVM_CONFIG + fi +else + LLVM_CONFIG="$ac_cv_prog_LLVM_CONFIG" +fi + + if test "$?" != 0; then + as_fn_error $? "Required tool 'llvm-config' not found on PATH." "$LINENO" 5 + fi + clang_lib_dir=`$LLVM_CONFIG --libdir` + if test -f $clang_lib_dir/$plugin; then + plugin_file=$clang_lib_dir/$plugin + fi + if test x$plugin_file != x$plugin; then + break; + fi + fi + done + if test -z $plugin_file; then + as_fn_error $? "Couldn't find clang plugin file for $CC." "$LINENO" 5 + fi + if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}ar", so it can be a program name with args. +set dummy ${ac_tool_prefix}ar; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_AR+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$AR"; then + ac_cv_prog_AR="$AR" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_AR="${ac_tool_prefix}ar" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +AR=$ac_cv_prog_AR +if test -n "$AR"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $AR" >&5 +$as_echo "$AR" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + +fi +if test -z "$ac_cv_prog_AR"; then + ac_ct_AR=$AR + # Extract the first word of "ar", so it can be a program name with args. +set dummy ar; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_ac_ct_AR+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$ac_ct_AR"; then + ac_cv_prog_ac_ct_AR="$ac_ct_AR" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_ac_ct_AR="ar" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +ac_ct_AR=$ac_cv_prog_ac_ct_AR +if test -n "$ac_ct_AR"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_AR" >&5 +$as_echo "$ac_ct_AR" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + if test "x$ac_ct_AR" = x; then + AR="" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + AR=$ac_ct_AR + fi +else + AR="$ac_cv_prog_AR" +fi + + if test "${AR}" = "" ; then + as_fn_error $? "Required archive tool 'ar' not found on PATH." "$LINENO" 5 + fi + plugin_option="--plugin $plugin_file" + touch conftest.c + ${AR} $plugin_option rc conftest.a conftest.c + if test "$?" != 0; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Failed: $AR $plugin_option rc" >&5 +$as_echo "$as_me: WARNING: Failed: $AR $plugin_option rc" >&2;} + plugin_file= + fi + rm -f conftest.* + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $plugin_file" >&5 +$as_echo "$plugin_file" >&6; } + fi + plugin_file="$plugin_file" + +if test -n "$plugin_file"; then + plugin_option="--plugin $plugin_file" +else + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for -plugin option" >&5 +$as_echo_n "checking for -plugin option... " >&6; } + plugin_names="liblto_plugin.so liblto_plugin-0.dll cyglto_plugin-0.dll" +plugin_option= for plugin in $plugin_names; do plugin_so=`${CC} ${CFLAGS} --print-prog-name $plugin` if test x$plugin_so = x$plugin; then @@ -7223,7 +7482,119 @@ for plugin in $plugin_names; do break fi done +if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}ar", so it can be a program name with args. +set dummy ${ac_tool_prefix}ar; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_AR+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$AR"; then + ac_cv_prog_AR="$AR" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_AR="${ac_tool_prefix}ar" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS +fi +fi +AR=$ac_cv_prog_AR +if test -n "$AR"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $AR" >&5 +$as_echo "$AR" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + +fi +if test -z "$ac_cv_prog_AR"; then + ac_ct_AR=$AR + # Extract the first word of "ar", so it can be a program name with args. +set dummy ar; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_ac_ct_AR+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$ac_ct_AR"; then + ac_cv_prog_ac_ct_AR="$ac_ct_AR" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_ac_ct_AR="ar" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +ac_ct_AR=$ac_cv_prog_ac_ct_AR +if test -n "$ac_ct_AR"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_AR" >&5 +$as_echo "$ac_ct_AR" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + if test "x$ac_ct_AR" = x; then + AR="" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + AR=$ac_ct_AR + fi +else + AR="$ac_cv_prog_AR" +fi + +if test "${AR}" = "" ; then + as_fn_error $? "Required archive tool 'ar' not found on PATH." "$LINENO" 5 +fi +touch conftest.c +${AR} $plugin_option rc conftest.a conftest.c +if test "$?" != 0; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Failed: $AR $plugin_option rc" >&5 +$as_echo "$as_me: WARNING: Failed: $AR $plugin_option rc" >&2;} + plugin_option= +fi +rm -f conftest.* +if test -n "$plugin_option"; then + plugin_option="$plugin_option" + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $plugin_option" >&5 +$as_echo "$plugin_option" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + +fi if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}ar", so it can be a program name with args. set dummy ${ac_tool_prefix}ar; ac_word=$2 @@ -7318,17 +7689,15 @@ fi test -z "$AR" && AR=ar if test -n "$plugin_option"; then - if $AR --help 2>&1 | grep -q "\--plugin"; then - touch conftest.c - $AR $plugin_option rc conftest.a conftest.c - if test "$?" != 0; then - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Failed: $AR $plugin_option rc" >&5 -$as_echo "$as_me: WARNING: Failed: $AR $plugin_option rc" >&2;} - else + case "$AR" in + *"$plugin_option"*) + ;; + *) + if $AR --help 2>&1 | grep -q "\--plugin"; then AR="$AR $plugin_option" fi - rm -f conftest.* - fi + ;; + esac fi test -z "$AR_FLAGS" && AR_FLAGS=cru @@ -7535,9 +7904,15 @@ fi test -z "$RANLIB" && RANLIB=: if test -n "$plugin_option" && test "$RANLIB" != ":"; then - if $RANLIB --help 2>&1 | grep -q "\--plugin"; then - RANLIB="$RANLIB $plugin_option" - fi + case "$RANLIB" in + *"$plugin_option"*) + ;; + *) + if $RANLIB --help 2>&1 | grep -q "\--plugin"; then + RANLIB="$RANLIB $plugin_option" + fi + ;; + esac fi @@ -12241,7 +12616,7 @@ else lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 lt_status=$lt_dlunknown cat > conftest.$ac_ext <<_LT_EOF -#line 12244 "configure" +#line 12619 "configure" #include "confdefs.h" #if HAVE_DLFCN_H @@ -12347,7 +12722,7 @@ else lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 lt_status=$lt_dlunknown cat > conftest.$ac_ext <<_LT_EOF -#line 12350 "configure" +#line 12725 "configure" #include "confdefs.h" #if HAVE_DLFCN_H diff --git a/zlib/ChangeLog b/zlib/ChangeLog index b0aebbc394fc..ebe9a0021086 100644 --- a/zlib/ChangeLog +++ b/zlib/ChangeLog @@ -1,3 +1,9 @@ +2025-10-02 H.J. Lu + + * Makefile.in: Regenerated. + * aclocal.m4: Likewise. + * configure: Likewise. + 2025-07-31 Sam James * configure: Regenerate. diff --git a/zlib/Makefile.in b/zlib/Makefile.in index 80fe3b691166..23b5afe576d0 100644 --- a/zlib/Makefile.in +++ b/zlib/Makefile.in @@ -93,8 +93,10 @@ target_triplet = @target@ subdir = . ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/../config/cet.m4 \ + $(top_srcdir)/../config/clang-plugin.m4 \ $(top_srcdir)/../config/depstand.m4 \ $(top_srcdir)/../config/enable.m4 \ + $(top_srcdir)/../config/gcc-plugin.m4 \ $(top_srcdir)/../config/lead-dot.m4 \ $(top_srcdir)/../config/multi.m4 \ $(top_srcdir)/../config/override.m4 \ @@ -305,6 +307,7 @@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LIBTOOL = @LIBTOOL@ LIPO = @LIPO@ +LLVM_CONFIG = @LLVM_CONFIG@ LN_S = @LN_S@ LTLIBOBJS = @LTLIBOBJS@ MAINT = @MAINT@ diff --git a/zlib/aclocal.m4 b/zlib/aclocal.m4 index f3676e70476c..b8f66c523266 100644 --- a/zlib/aclocal.m4 +++ b/zlib/aclocal.m4 @@ -1168,8 +1168,10 @@ AC_SUBST([am__untar]) ]) # _AM_PROG_TAR m4_include([../config/cet.m4]) +m4_include([../config/clang-plugin.m4]) m4_include([../config/depstand.m4]) m4_include([../config/enable.m4]) +m4_include([../config/gcc-plugin.m4]) m4_include([../config/lead-dot.m4]) m4_include([../config/multi.m4]) m4_include([../config/override.m4]) diff --git a/zlib/configure b/zlib/configure index 202c15f3b513..9aae63551026 100755 --- a/zlib/configure +++ b/zlib/configure @@ -643,7 +643,6 @@ toolexeclibdir toolexecdir ENABLE_DARWIN_AT_RPATH_FALSE ENABLE_DARWIN_AT_RPATH_TRUE -CPP OTOOL64 OTOOL LIPO @@ -651,6 +650,8 @@ NMEDIT DSYMUTIL RANLIB AR +LLVM_CONFIG +CPP OBJDUMP LN_S NM @@ -1573,6 +1574,43 @@ fi } # ac_fn_c_try_compile +# ac_fn_c_try_cpp LINENO +# ---------------------- +# Try to preprocess conftest.$ac_ext, and return whether this succeeded. +ac_fn_c_try_cpp () +{ + as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack + if { { ac_try="$ac_cpp conftest.$ac_ext" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" +$as_echo "$ac_try_echo"; } >&5 + (eval "$ac_cpp conftest.$ac_ext") 2>conftest.err + ac_status=$? + if test -s conftest.err; then + grep -v '^ *+' conftest.err >conftest.er1 + cat conftest.er1 >&5 + mv -f conftest.er1 conftest.err + fi + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } > conftest.i && { + test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" || + test ! -s conftest.err + }; then : + ac_retval=0 +else + $as_echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_retval=1 +fi + eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno + as_fn_set_status $ac_retval + +} # ac_fn_c_try_cpp + # ac_fn_c_try_link LINENO # ----------------------- # Try to link conftest.$ac_ext, and return whether this succeeded. @@ -1650,43 +1688,6 @@ $as_echo "$ac_res" >&6; } } # ac_fn_c_check_header_compile -# ac_fn_c_try_cpp LINENO -# ---------------------- -# Try to preprocess conftest.$ac_ext, and return whether this succeeded. -ac_fn_c_try_cpp () -{ - as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack - if { { ac_try="$ac_cpp conftest.$ac_ext" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" -$as_echo "$ac_try_echo"; } >&5 - (eval "$ac_cpp conftest.$ac_ext") 2>conftest.err - ac_status=$? - if test -s conftest.err; then - grep -v '^ *+' conftest.err >conftest.er1 - cat conftest.er1 >&5 - mv -f conftest.er1 conftest.err - fi - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; } > conftest.i && { - test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" || - test ! -s conftest.err - }; then : - ac_retval=0 -else - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - ac_retval=1 -fi - eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno - as_fn_set_status $ac_retval - -} # ac_fn_c_try_cpp - # ac_fn_c_try_run LINENO # ---------------------- # Try to link conftest.$ac_ext, and return whether this succeeded. Assumes @@ -2425,7 +2426,6 @@ test -n "$target_alias" && NONENONEs,x,x, && program_prefix=${target_alias}- - # This works around an automake problem. mkinstalldirs="`cd $ac_aux_dir && ${PWDCMD-pwd}`/mkinstalldirs" @@ -5524,29 +5524,190 @@ test -z "$deplibs_check_method" && deplibs_check_method=unknown -plugin_option= -plugin_names="liblto_plugin.so liblto_plugin-0.dll cyglto_plugin-0.dll" -for plugin in $plugin_names; do - plugin_so=`${CC} ${CFLAGS} --print-prog-name $plugin` - if test x$plugin_so = x$plugin; then - plugin_so=`${CC} ${CFLAGS} --print-file-name $plugin` - fi - if test x$plugin_so != x$plugin; then - plugin_option="--plugin $plugin_so" - break - fi +ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to run the C preprocessor" >&5 +$as_echo_n "checking how to run the C preprocessor... " >&6; } +# On Suns, sometimes $CPP names a directory. +if test -n "$CPP" && test -d "$CPP"; then + CPP= +fi +if test -z "$CPP"; then + if ${ac_cv_prog_CPP+:} false; then : + $as_echo_n "(cached) " >&6 +else + # Double quotes because CPP needs to be expanded + for CPP in "$CC -E" "$CC -E -traditional-cpp" "/lib/cpp" + do + ac_preproc_ok=false +for ac_c_preproc_warn_flag in '' yes +do + # Use a header file that comes with gcc, so configuring glibc + # with a fresh cross-compiler works. + # Prefer to if __STDC__ is defined, since + # exists even on freestanding compilers. + # On the NeXT, cc -E runs the code through the compiler's parser, + # not just through cpp. "Syntax error" is here to catch this case. + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#ifdef __STDC__ +# include +#else +# include +#endif + Syntax error +_ACEOF +if ac_fn_c_try_cpp "$LINENO"; then : + +else + # Broken: fails on valid input. +continue +fi +rm -f conftest.err conftest.i conftest.$ac_ext + + # OK, works on sane cases. Now check whether nonexistent headers + # can be detected and how. + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include +_ACEOF +if ac_fn_c_try_cpp "$LINENO"; then : + # Broken: success on invalid input. +continue +else + # Passes both tests. +ac_preproc_ok=: +break +fi +rm -f conftest.err conftest.i conftest.$ac_ext + done +# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped. +rm -f conftest.i conftest.err conftest.$ac_ext +if $ac_preproc_ok; then : + break +fi -if test -n "$ac_tool_prefix"; then - # Extract the first word of "${ac_tool_prefix}ar", so it can be a program name with args. -set dummy ${ac_tool_prefix}ar; ac_word=$2 + done + ac_cv_prog_CPP=$CPP + +fi + CPP=$ac_cv_prog_CPP +else + ac_cv_prog_CPP=$CPP +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $CPP" >&5 +$as_echo "$CPP" >&6; } +ac_preproc_ok=false +for ac_c_preproc_warn_flag in '' yes +do + # Use a header file that comes with gcc, so configuring glibc + # with a fresh cross-compiler works. + # Prefer to if __STDC__ is defined, since + # exists even on freestanding compilers. + # On the NeXT, cc -E runs the code through the compiler's parser, + # not just through cpp. "Syntax error" is here to catch this case. + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#ifdef __STDC__ +# include +#else +# include +#endif + Syntax error +_ACEOF +if ac_fn_c_try_cpp "$LINENO"; then : + +else + # Broken: fails on valid input. +continue +fi +rm -f conftest.err conftest.i conftest.$ac_ext + + # OK, works on sane cases. Now check whether nonexistent headers + # can be detected and how. + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include +_ACEOF +if ac_fn_c_try_cpp "$LINENO"; then : + # Broken: success on invalid input. +continue +else + # Passes both tests. +ac_preproc_ok=: +break +fi +rm -f conftest.err conftest.i conftest.$ac_ext + +done +# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped. +rm -f conftest.i conftest.err conftest.$ac_ext +if $ac_preproc_ok; then : + +else + { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 +$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} +as_fn_error $? "C preprocessor \"$CPP\" fails sanity check +See \`config.log' for more details" "$LINENO" 5; } +fi + +ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu + + + +# Try CLANG_PLUGIN_FILE first since GCC_PLUGIN_OPTION may return the +# wrong plugin_option with clang. + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for clang" >&5 +$as_echo_n "checking for clang... " >&6; } +if ${clang_cv_is_clang+:} false; then : + $as_echo_n "(cached) " >&6 +else + + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +#ifdef __clang__ + yes +#endif + +_ACEOF +if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | + $EGREP "yes" >/dev/null 2>&1; then : + clang_cv_is_clang=yes +else + clang_cv_is_clang=no +fi +rm -f conftest* + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $clang_cv_is_clang" >&5 +$as_echo "$clang_cv_is_clang" >&6; } + plugin_file= + if test $clang_cv_is_clang = yes; then + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for clang plugin file" >&5 +$as_echo_n "checking for clang plugin file... " >&6; } + plugin_names="LLVMgold.so" + for plugin in $plugin_names; do + plugin_file=`${CC} ${CFLAGS} --print-file-name $plugin` + if test x$plugin_file = x$plugin; then + if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}llvm-config", so it can be a program name with args. +set dummy ${ac_tool_prefix}llvm-config; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_prog_AR+:} false; then : +if ${ac_cv_prog_LLVM_CONFIG+:} false; then : $as_echo_n "(cached) " >&6 else - if test -n "$AR"; then - ac_cv_prog_AR="$AR" # Let the user override the test. + if test -n "$LLVM_CONFIG"; then + ac_cv_prog_LLVM_CONFIG="$LLVM_CONFIG" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH @@ -5555,7 +5716,7 @@ do test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - ac_cv_prog_AR="${ac_tool_prefix}ar" + ac_cv_prog_LLVM_CONFIG="${ac_tool_prefix}llvm-config" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi @@ -5565,10 +5726,10 @@ IFS=$as_save_IFS fi fi -AR=$ac_cv_prog_AR -if test -n "$AR"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $AR" >&5 -$as_echo "$AR" >&6; } +LLVM_CONFIG=$ac_cv_prog_LLVM_CONFIG +if test -n "$LLVM_CONFIG"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $LLVM_CONFIG" >&5 +$as_echo "$LLVM_CONFIG" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } @@ -5576,16 +5737,123 @@ fi fi -if test -z "$ac_cv_prog_AR"; then - ac_ct_AR=$AR - # Extract the first word of "ar", so it can be a program name with args. -set dummy ar; ac_word=$2 +if test -z "$ac_cv_prog_LLVM_CONFIG"; then + ac_ct_LLVM_CONFIG=$LLVM_CONFIG + # Extract the first word of "llvm-config", so it can be a program name with args. +set dummy llvm-config; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_prog_ac_ct_AR+:} false; then : +if ${ac_cv_prog_ac_ct_LLVM_CONFIG+:} false; then : $as_echo_n "(cached) " >&6 else - if test -n "$ac_ct_AR"; then + if test -n "$ac_ct_LLVM_CONFIG"; then + ac_cv_prog_ac_ct_LLVM_CONFIG="$ac_ct_LLVM_CONFIG" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_ac_ct_LLVM_CONFIG="llvm-config" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +ac_ct_LLVM_CONFIG=$ac_cv_prog_ac_ct_LLVM_CONFIG +if test -n "$ac_ct_LLVM_CONFIG"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_LLVM_CONFIG" >&5 +$as_echo "$ac_ct_LLVM_CONFIG" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + if test "x$ac_ct_LLVM_CONFIG" = x; then + LLVM_CONFIG="" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + LLVM_CONFIG=$ac_ct_LLVM_CONFIG + fi +else + LLVM_CONFIG="$ac_cv_prog_LLVM_CONFIG" +fi + + if test "$?" != 0; then + as_fn_error $? "Required tool 'llvm-config' not found on PATH." "$LINENO" 5 + fi + clang_lib_dir=`$LLVM_CONFIG --libdir` + if test -f $clang_lib_dir/$plugin; then + plugin_file=$clang_lib_dir/$plugin + fi + if test x$plugin_file != x$plugin; then + break; + fi + fi + done + if test -z $plugin_file; then + as_fn_error $? "Couldn't find clang plugin file for $CC." "$LINENO" 5 + fi + if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}ar", so it can be a program name with args. +set dummy ${ac_tool_prefix}ar; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_AR+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$AR"; then + ac_cv_prog_AR="$AR" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_AR="${ac_tool_prefix}ar" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +AR=$ac_cv_prog_AR +if test -n "$AR"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $AR" >&5 +$as_echo "$AR" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + +fi +if test -z "$ac_cv_prog_AR"; then + ac_ct_AR=$AR + # Extract the first word of "ar", so it can be a program name with args. +set dummy ar; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_ac_ct_AR+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$ac_ct_AR"; then ac_cv_prog_ac_ct_AR="$ac_ct_AR" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR @@ -5615,7 +5883,7 @@ $as_echo "no" >&6; } fi if test "x$ac_ct_AR" = x; then - AR="false" + AR="" else case $cross_compiling:$ac_tool_warned in yes:) @@ -5629,19 +5897,257 @@ else AR="$ac_cv_prog_AR" fi -test -z "$AR" && AR=ar -if test -n "$plugin_option"; then - if $AR --help 2>&1 | grep -q "\--plugin"; then + if test "${AR}" = "" ; then + as_fn_error $? "Required archive tool 'ar' not found on PATH." "$LINENO" 5 + fi + plugin_option="--plugin $plugin_file" touch conftest.c - $AR $plugin_option rc conftest.a conftest.c + ${AR} $plugin_option rc conftest.a conftest.c if test "$?" != 0; then { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Failed: $AR $plugin_option rc" >&5 $as_echo "$as_me: WARNING: Failed: $AR $plugin_option rc" >&2;} - else - AR="$AR $plugin_option" + plugin_file= fi rm -f conftest.* + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $plugin_file" >&5 +$as_echo "$plugin_file" >&6; } + fi + plugin_file="$plugin_file" + +if test -n "$plugin_file"; then + plugin_option="--plugin $plugin_file" +else + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for -plugin option" >&5 +$as_echo_n "checking for -plugin option... " >&6; } + +plugin_names="liblto_plugin.so liblto_plugin-0.dll cyglto_plugin-0.dll" +plugin_option= +for plugin in $plugin_names; do + plugin_so=`${CC} ${CFLAGS} --print-prog-name $plugin` + if test x$plugin_so = x$plugin; then + plugin_so=`${CC} ${CFLAGS} --print-file-name $plugin` + fi + if test x$plugin_so != x$plugin; then + plugin_option="--plugin $plugin_so" + break fi +done +if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}ar", so it can be a program name with args. +set dummy ${ac_tool_prefix}ar; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_AR+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$AR"; then + ac_cv_prog_AR="$AR" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_AR="${ac_tool_prefix}ar" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +AR=$ac_cv_prog_AR +if test -n "$AR"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $AR" >&5 +$as_echo "$AR" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + +fi +if test -z "$ac_cv_prog_AR"; then + ac_ct_AR=$AR + # Extract the first word of "ar", so it can be a program name with args. +set dummy ar; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_ac_ct_AR+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$ac_ct_AR"; then + ac_cv_prog_ac_ct_AR="$ac_ct_AR" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_ac_ct_AR="ar" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +ac_ct_AR=$ac_cv_prog_ac_ct_AR +if test -n "$ac_ct_AR"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_AR" >&5 +$as_echo "$ac_ct_AR" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + if test "x$ac_ct_AR" = x; then + AR="" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + AR=$ac_ct_AR + fi +else + AR="$ac_cv_prog_AR" +fi + +if test "${AR}" = "" ; then + as_fn_error $? "Required archive tool 'ar' not found on PATH." "$LINENO" 5 +fi +touch conftest.c +${AR} $plugin_option rc conftest.a conftest.c +if test "$?" != 0; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Failed: $AR $plugin_option rc" >&5 +$as_echo "$as_me: WARNING: Failed: $AR $plugin_option rc" >&2;} + plugin_option= +fi +rm -f conftest.* +if test -n "$plugin_option"; then + plugin_option="$plugin_option" + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $plugin_option" >&5 +$as_echo "$plugin_option" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + +fi +if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}ar", so it can be a program name with args. +set dummy ${ac_tool_prefix}ar; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_AR+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$AR"; then + ac_cv_prog_AR="$AR" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_AR="${ac_tool_prefix}ar" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +AR=$ac_cv_prog_AR +if test -n "$AR"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $AR" >&5 +$as_echo "$AR" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + +fi +if test -z "$ac_cv_prog_AR"; then + ac_ct_AR=$AR + # Extract the first word of "ar", so it can be a program name with args. +set dummy ar; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_ac_ct_AR+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$ac_ct_AR"; then + ac_cv_prog_ac_ct_AR="$ac_ct_AR" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_ac_ct_AR="ar" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +ac_ct_AR=$ac_cv_prog_ac_ct_AR +if test -n "$ac_ct_AR"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_AR" >&5 +$as_echo "$ac_ct_AR" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + if test "x$ac_ct_AR" = x; then + AR="false" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + AR=$ac_ct_AR + fi +else + AR="$ac_cv_prog_AR" +fi + +test -z "$AR" && AR=ar +if test -n "$plugin_option"; then + case "$AR" in + *"$plugin_option"*) + ;; + *) + if $AR --help 2>&1 | grep -q "\--plugin"; then + AR="$AR $plugin_option" + fi + ;; + esac fi test -z "$AR_FLAGS" && AR_FLAGS=cru @@ -5848,9 +6354,15 @@ fi test -z "$RANLIB" && RANLIB=: if test -n "$plugin_option" && test "$RANLIB" != ":"; then - if $RANLIB --help 2>&1 | grep -q "\--plugin"; then - RANLIB="$RANLIB $plugin_option" - fi + case "$RANLIB" in + *"$plugin_option"*) + ;; + *) + if $RANLIB --help 2>&1 | grep -q "\--plugin"; then + RANLIB="$RANLIB $plugin_option" + fi + ;; + esac fi @@ -7008,144 +7520,6 @@ $as_echo "$lt_cv_ld_force_load" >&6; } ;; esac -ac_ext=c -ac_cpp='$CPP $CPPFLAGS' -ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' -ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_c_compiler_gnu -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to run the C preprocessor" >&5 -$as_echo_n "checking how to run the C preprocessor... " >&6; } -# On Suns, sometimes $CPP names a directory. -if test -n "$CPP" && test -d "$CPP"; then - CPP= -fi -if test -z "$CPP"; then - if ${ac_cv_prog_CPP+:} false; then : - $as_echo_n "(cached) " >&6 -else - # Double quotes because CPP needs to be expanded - for CPP in "$CC -E" "$CC -E -traditional-cpp" "/lib/cpp" - do - ac_preproc_ok=false -for ac_c_preproc_warn_flag in '' yes -do - # Use a header file that comes with gcc, so configuring glibc - # with a fresh cross-compiler works. - # Prefer to if __STDC__ is defined, since - # exists even on freestanding compilers. - # On the NeXT, cc -E runs the code through the compiler's parser, - # not just through cpp. "Syntax error" is here to catch this case. - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#ifdef __STDC__ -# include -#else -# include -#endif - Syntax error -_ACEOF -if ac_fn_c_try_cpp "$LINENO"; then : - -else - # Broken: fails on valid input. -continue -fi -rm -f conftest.err conftest.i conftest.$ac_ext - - # OK, works on sane cases. Now check whether nonexistent headers - # can be detected and how. - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include -_ACEOF -if ac_fn_c_try_cpp "$LINENO"; then : - # Broken: success on invalid input. -continue -else - # Passes both tests. -ac_preproc_ok=: -break -fi -rm -f conftest.err conftest.i conftest.$ac_ext - -done -# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped. -rm -f conftest.i conftest.err conftest.$ac_ext -if $ac_preproc_ok; then : - break -fi - - done - ac_cv_prog_CPP=$CPP - -fi - CPP=$ac_cv_prog_CPP -else - ac_cv_prog_CPP=$CPP -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $CPP" >&5 -$as_echo "$CPP" >&6; } -ac_preproc_ok=false -for ac_c_preproc_warn_flag in '' yes -do - # Use a header file that comes with gcc, so configuring glibc - # with a fresh cross-compiler works. - # Prefer to if __STDC__ is defined, since - # exists even on freestanding compilers. - # On the NeXT, cc -E runs the code through the compiler's parser, - # not just through cpp. "Syntax error" is here to catch this case. - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#ifdef __STDC__ -# include -#else -# include -#endif - Syntax error -_ACEOF -if ac_fn_c_try_cpp "$LINENO"; then : - -else - # Broken: fails on valid input. -continue -fi -rm -f conftest.err conftest.i conftest.$ac_ext - - # OK, works on sane cases. Now check whether nonexistent headers - # can be detected and how. - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include -_ACEOF -if ac_fn_c_try_cpp "$LINENO"; then : - # Broken: success on invalid input. -continue -else - # Passes both tests. -ac_preproc_ok=: -break -fi -rm -f conftest.err conftest.i conftest.$ac_ext - -done -# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped. -rm -f conftest.i conftest.err conftest.$ac_ext -if $ac_preproc_ok; then : - -else - { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 -$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} -as_fn_error $? "C preprocessor \"$CPP\" fails sanity check -See \`config.log' for more details" "$LINENO" 5; } -fi - -ac_ext=c -ac_cpp='$CPP $CPPFLAGS' -ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' -ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_c_compiler_gnu - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ANSI C header files" >&5 $as_echo_n "checking for ANSI C header files... " >&6; } if ${ac_cv_header_stdc+:} false; then : @@ -10854,7 +11228,7 @@ else lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 lt_status=$lt_dlunknown cat > conftest.$ac_ext <<_LT_EOF -#line 10857 "configure" +#line 11231 "configure" #include "confdefs.h" #if HAVE_DLFCN_H @@ -10960,7 +11334,7 @@ else lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 lt_status=$lt_dlunknown cat > conftest.$ac_ext <<_LT_EOF -#line 10963 "configure" +#line 11337 "configure" #include "confdefs.h" #if HAVE_DLFCN_H diff --git a/zlib/configure.ac b/zlib/configure.ac index 736b760cdf57..434bfcb072a4 100644 --- a/zlib/configure.ac +++ b/zlib/configure.ac @@ -7,7 +7,7 @@ if test -n "${with_target_subdir}"; then AM_ENABLE_MULTILIB(, ..) fi -AC_CANONICAL_SYSTEM +AC_CANONICAL_TARGET # This works around an automake problem. mkinstalldirs="`cd $ac_aux_dir && ${PWDCMD-pwd}`/mkinstalldirs"